@matheuskrumenauer/tanya 0.17.0 → 0.17.6
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/{chunk-5PSV2Y3X.js → chunk-3NV2QP7J.js} +576 -249
- package/dist/chunk-3NV2QP7J.js.map +1 -0
- package/dist/cli.js +91 -5
- package/dist/cli.js.map +1 -1
- package/dist/{runInkChat-AZFI7553.js → runInkChat-SVBEQCQ4.js} +76 -9
- package/dist/runInkChat-SVBEQCQ4.js.map +1 -0
- package/package.json +2 -1
- package/dist/chunk-5PSV2Y3X.js.map +0 -1
- package/dist/runInkChat-AZFI7553.js.map +0 -1
package/dist/cli.js
CHANGED
|
@@ -36,7 +36,7 @@ import {
|
|
|
36
36
|
startInteractiveChat,
|
|
37
37
|
validateGoldenTaskSummary,
|
|
38
38
|
videoPresets
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-3NV2QP7J.js";
|
|
40
40
|
|
|
41
41
|
// src/cli.ts
|
|
42
42
|
import { existsSync as existsSync7, readFileSync as readFileSync6 } from "fs";
|
|
@@ -247,6 +247,7 @@ var knownEventTypes = /* @__PURE__ */ new Set([
|
|
|
247
247
|
"tool_call_parse_warning",
|
|
248
248
|
"schema_flatten_warning",
|
|
249
249
|
"provider_throttle",
|
|
250
|
+
"provider.raw",
|
|
250
251
|
"model_routed",
|
|
251
252
|
"escalation_event",
|
|
252
253
|
"compact_event",
|
|
@@ -703,7 +704,7 @@ var OpenAiCompatibleProvider = class {
|
|
|
703
704
|
this.baseUrl = (options.baseUrl || this.adapter.defaultBaseUrl || "").replace(/\/$/, "");
|
|
704
705
|
this.model = options.model || this.adapter.defaultModel || "";
|
|
705
706
|
warnDeprecatedDeepSeekModel(this.adapter.id, this.model);
|
|
706
|
-
this.contextWindow = this.adapter.capabilities.contextWindow;
|
|
707
|
+
this.contextWindow = options.contextWindow ?? this.adapter.capabilities.contextWindow;
|
|
707
708
|
this.reasoning = reasoningEnabled(this.adapter, this.model);
|
|
708
709
|
this.roundTripReasoning = this.adapter.capabilities.roundTripReasoning === true;
|
|
709
710
|
const envTimeout = parseInt(envValue({}, "TANYA_TIMEOUT_MS"), 10);
|
|
@@ -926,7 +927,8 @@ function createProviderForRoute(config, target) {
|
|
|
926
927
|
model: target.model,
|
|
927
928
|
temperature: config.temperature,
|
|
928
929
|
topP: config.topP,
|
|
929
|
-
timeoutMs: config.timeoutMs
|
|
930
|
+
timeoutMs: config.timeoutMs,
|
|
931
|
+
...target.maxInputTokens ? { contextWindow: target.maxInputTokens } : {}
|
|
930
932
|
});
|
|
931
933
|
}
|
|
932
934
|
|
|
@@ -4575,6 +4577,90 @@ function markdownList(title, items) {
|
|
|
4575
4577
|
return [...lines, "", ...items.map((item) => `- \`${item.taskId}\`: ${item.reason}`)].join("\n");
|
|
4576
4578
|
}
|
|
4577
4579
|
|
|
4580
|
+
// src/integrations/cosmochatFinalize.ts
|
|
4581
|
+
function createCosmoChatFinalizeSink(sink, options = {}) {
|
|
4582
|
+
const config = resolveFinalizeConfig(options);
|
|
4583
|
+
if (!config) return sink;
|
|
4584
|
+
let finalized = false;
|
|
4585
|
+
let messageEndTimer;
|
|
4586
|
+
const clearMessageEndTimer = () => {
|
|
4587
|
+
if (!messageEndTimer) return;
|
|
4588
|
+
clearTimeout(messageEndTimer);
|
|
4589
|
+
messageEndTimer = void 0;
|
|
4590
|
+
};
|
|
4591
|
+
const finalize = (status, error) => {
|
|
4592
|
+
if (finalized) return;
|
|
4593
|
+
finalized = true;
|
|
4594
|
+
clearMessageEndTimer();
|
|
4595
|
+
void patchCosmoChatRun(config, status, error).catch(() => {
|
|
4596
|
+
});
|
|
4597
|
+
};
|
|
4598
|
+
return async (event) => {
|
|
4599
|
+
await sink(event);
|
|
4600
|
+
if (event.type === "message_end") {
|
|
4601
|
+
clearMessageEndTimer();
|
|
4602
|
+
messageEndTimer = setTimeout(() => {
|
|
4603
|
+
finalize("failed", `timeout: message_end without follow-up event for ${config.graceMs}ms`);
|
|
4604
|
+
}, config.graceMs);
|
|
4605
|
+
return;
|
|
4606
|
+
}
|
|
4607
|
+
if (event.type === "tool_call" || event.type === "tool_result" || event.type === "message_start") {
|
|
4608
|
+
clearMessageEndTimer();
|
|
4609
|
+
return;
|
|
4610
|
+
}
|
|
4611
|
+
if (event.type === "error") {
|
|
4612
|
+
finalize("failed", event.message);
|
|
4613
|
+
return;
|
|
4614
|
+
}
|
|
4615
|
+
if (event.type === "final") {
|
|
4616
|
+
finalize(finalEventStatus(event), finalEventError(event));
|
|
4617
|
+
}
|
|
4618
|
+
};
|
|
4619
|
+
}
|
|
4620
|
+
function resolveFinalizeConfig(options) {
|
|
4621
|
+
const env = options.env ?? process.env;
|
|
4622
|
+
const runId = env.COSMOCHAT_RUN_ID || env.TANYA_COSMOCHAT_RUN_ID;
|
|
4623
|
+
const explicitURL = env.COSMOCHAT_RUN_FINALIZE_URL || env.TANYA_COSMOCHAT_RUN_FINALIZE_URL;
|
|
4624
|
+
const baseURL = env.COSMOCHAT_BASE_URL || env.TANYA_COSMOCHAT_BASE_URL;
|
|
4625
|
+
const endpoint = explicitURL || (runId && baseURL ? `${baseURL.replace(/\/$/, "")}/v1/runs/${encodeURIComponent(runId)}` : "");
|
|
4626
|
+
if (!runId || !endpoint) return null;
|
|
4627
|
+
const fetchImpl = options.fetchImpl ?? globalThis.fetch;
|
|
4628
|
+
if (!fetchImpl) return null;
|
|
4629
|
+
const graceMs = Math.max(0, Number(env.TANYA_COSMOCHAT_MESSAGE_END_GRACE_MS ?? env.COSMOCHAT_MESSAGE_END_GRACE_MS ?? 3e4));
|
|
4630
|
+
const token = env.COSMOCHAT_SERVICE_TOKEN || env.TANYA_COSMOCHAT_SERVICE_TOKEN;
|
|
4631
|
+
return {
|
|
4632
|
+
runId,
|
|
4633
|
+
endpoint,
|
|
4634
|
+
...token ? { token } : {},
|
|
4635
|
+
graceMs,
|
|
4636
|
+
fetchImpl
|
|
4637
|
+
};
|
|
4638
|
+
}
|
|
4639
|
+
async function patchCosmoChatRun(config, status, error) {
|
|
4640
|
+
const headers = { "content-type": "application/json" };
|
|
4641
|
+
if (config.token) headers.authorization = `Bearer ${config.token}`;
|
|
4642
|
+
await config.fetchImpl(config.endpoint, {
|
|
4643
|
+
method: "PATCH",
|
|
4644
|
+
headers,
|
|
4645
|
+
body: JSON.stringify({
|
|
4646
|
+
status,
|
|
4647
|
+
...error ? { error } : {}
|
|
4648
|
+
})
|
|
4649
|
+
});
|
|
4650
|
+
}
|
|
4651
|
+
function finalEventStatus(event) {
|
|
4652
|
+
const message = event.message || "";
|
|
4653
|
+
const blockers = Array.isArray(event.manifest?.blockers) ? event.manifest.blockers : [];
|
|
4654
|
+
if (/TANIA RESULT:\s*FAIL/i.test(message) || blockers.length > 0) return "failed";
|
|
4655
|
+
return "succeeded";
|
|
4656
|
+
}
|
|
4657
|
+
function finalEventError(event) {
|
|
4658
|
+
if (finalEventStatus(event) !== "failed") return void 0;
|
|
4659
|
+
const blockers = Array.isArray(event.manifest?.blockers) ? event.manifest.blockers.filter((item) => typeof item === "string") : [];
|
|
4660
|
+
if (blockers.length > 0) return blockers.join("; ");
|
|
4661
|
+
return "Tanya final report failed";
|
|
4662
|
+
}
|
|
4663
|
+
|
|
4578
4664
|
// src/cli.ts
|
|
4579
4665
|
var knownCommands = /* @__PURE__ */ new Set(["chat", "ask", "run", "review", "init", "video", "golden", "benchmark", "eval", "providers", "permissions", "mcp", "doctor", "debug-prompt", "runs", "patterns", "sessions", "help"]);
|
|
4580
4666
|
var cliOptionDefinitions = [
|
|
@@ -5535,7 +5621,7 @@ Length: ${systemPrompt.length} chars (~${Math.ceil(systemPrompt.length / 4)} tok
|
|
|
5535
5621
|
const routing = buildRoutingOptions(config, cwd);
|
|
5536
5622
|
const json = hasFlag(args, "json");
|
|
5537
5623
|
if (shouldUseInkChat(args, json)) {
|
|
5538
|
-
const { startInkChat } = await import("./runInkChat-
|
|
5624
|
+
const { startInkChat } = await import("./runInkChat-SVBEQCQ4.js");
|
|
5539
5625
|
await startInkChat({
|
|
5540
5626
|
provider,
|
|
5541
5627
|
cwd,
|
|
@@ -5545,7 +5631,7 @@ Length: ${systemPrompt.length} chars (~${Math.ceil(systemPrompt.length / 4)} tok
|
|
|
5545
5631
|
});
|
|
5546
5632
|
return;
|
|
5547
5633
|
}
|
|
5548
|
-
const sink = json ? createJsonlSink() : createHumanSink(process.stdout, { liveStatus: args.command === "chat" });
|
|
5634
|
+
const sink = createCosmoChatFinalizeSink(json ? createJsonlSink() : createHumanSink(process.stdout, { liveStatus: args.command === "chat" }));
|
|
5549
5635
|
let runPromptTokens = 0;
|
|
5550
5636
|
let runCompletionTokens = 0;
|
|
5551
5637
|
const trackingSink = async (event) => {
|