@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/cli.js CHANGED
@@ -36,7 +36,7 @@ import {
36
36
  startInteractiveChat,
37
37
  validateGoldenTaskSummary,
38
38
  videoPresets
39
- } from "./chunk-5PSV2Y3X.js";
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-AZFI7553.js");
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) => {