ur-agent 1.81.2 → 1.81.3
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/CHANGELOG.md +18 -0
- package/README.md +6 -0
- package/dist/cli.js +378 -169
- package/docs/CONFIGURATION.md +6 -0
- package/docs/VALIDATION.md +23 -1
- package/docs/providers.md +21 -1
- package/documentation/index.html +1 -1
- package/extensions/jetbrains-ur/build.gradle.kts +1 -1
- package/extensions/vscode-ur-inline-diffs/package.json +1 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -55298,7 +55298,9 @@ function getValidModelIdsForProvider(providerId) {
|
|
|
55298
55298
|
}
|
|
55299
55299
|
function formatInvalidProviderModelMessage(providerId, modelId, validModels, suggestedModel) {
|
|
55300
55300
|
const provider = resolveProviderId(providerId) ?? String(providerId);
|
|
55301
|
-
const
|
|
55301
|
+
const visibleModels = validModels.slice(0, 8);
|
|
55302
|
+
const hiddenCount = validModels.length - visibleModels.length;
|
|
55303
|
+
const validList = validModels.length > 0 ? `${visibleModels.join(", ")}${hiddenCount > 0 ? `, \u2026 and ${hiddenCount} more` : ""}` : "(no models discovered)";
|
|
55302
55304
|
const suggested = suggestedModel ?? validModels[0] ?? "<valid-model>";
|
|
55303
55305
|
return `Model "${modelId}" is not available for provider "${provider}". Valid models for ${provider}: ${validList}. Run /model and choose a model from ${provider}, or run: ur config set model ${suggested}`;
|
|
55304
55306
|
}
|
|
@@ -91099,12 +91101,18 @@ function normalizeOpenAIChatUsage(usage) {
|
|
|
91099
91101
|
const promptTokens = count3(u2.prompt_tokens);
|
|
91100
91102
|
const cacheRead = count3(promptDetails.cached_tokens);
|
|
91101
91103
|
const cacheWrite2 = count3(promptDetails.cache_write_tokens);
|
|
91102
|
-
return
|
|
91103
|
-
|
|
91104
|
-
|
|
91105
|
-
|
|
91106
|
-
|
|
91107
|
-
|
|
91104
|
+
return {
|
|
91105
|
+
...withOptionalFields({
|
|
91106
|
+
input_tokens: remainder(promptTokens, cacheRead, cacheWrite2),
|
|
91107
|
+
output_tokens: count3(u2.completion_tokens),
|
|
91108
|
+
cache_creation_input_tokens: cacheWrite2,
|
|
91109
|
+
cache_read_input_tokens: cacheRead
|
|
91110
|
+
}, count3(completionDetails.reasoning_tokens), count3(u2.total_tokens)),
|
|
91111
|
+
server_tool_use: {
|
|
91112
|
+
web_search_requests: count3(u2.server_tool_use?.web_search_requests),
|
|
91113
|
+
web_fetch_requests: count3(u2.server_tool_use?.web_fetch_requests)
|
|
91114
|
+
}
|
|
91115
|
+
};
|
|
91108
91116
|
}
|
|
91109
91117
|
function normalizeOpenAIResponsesUsage(usage) {
|
|
91110
91118
|
const u2 = usage ?? {};
|
|
@@ -91148,6 +91156,45 @@ function getStoredGeminiThoughtSignature(block) {
|
|
|
91148
91156
|
}
|
|
91149
91157
|
var GEMINI_THOUGHT_SIGNATURE = "gemini_thought_signature";
|
|
91150
91158
|
|
|
91159
|
+
// src/services/api/openRouterCitations.ts
|
|
91160
|
+
function collectOpenRouterUrlCitations(annotations) {
|
|
91161
|
+
if (!Array.isArray(annotations))
|
|
91162
|
+
return [];
|
|
91163
|
+
const citations = new Map;
|
|
91164
|
+
for (const annotation of annotations) {
|
|
91165
|
+
if (!annotation || typeof annotation !== "object")
|
|
91166
|
+
continue;
|
|
91167
|
+
const record2 = annotation;
|
|
91168
|
+
if (record2.type !== "url_citation")
|
|
91169
|
+
continue;
|
|
91170
|
+
const citation = record2.url_citation;
|
|
91171
|
+
if (!citation || typeof citation !== "object")
|
|
91172
|
+
continue;
|
|
91173
|
+
const value = citation;
|
|
91174
|
+
if (typeof value.url !== "string" || !/^https?:\/\//i.test(value.url)) {
|
|
91175
|
+
continue;
|
|
91176
|
+
}
|
|
91177
|
+
const rawTitle = typeof value.title === "string" && value.title.trim() ? value.title.trim() : new URL(value.url).hostname;
|
|
91178
|
+
const title = rawTitle.replace(/[\r\n]+/g, " ").replace(/[\[\]]/g, "").trim();
|
|
91179
|
+
if (!citations.has(value.url)) {
|
|
91180
|
+
citations.set(value.url, { url: value.url, title });
|
|
91181
|
+
}
|
|
91182
|
+
}
|
|
91183
|
+
return [...citations.values()];
|
|
91184
|
+
}
|
|
91185
|
+
function formatOpenRouterCitations(citations) {
|
|
91186
|
+
const unique = new Map;
|
|
91187
|
+
for (const citation of citations)
|
|
91188
|
+
unique.set(citation.url, citation);
|
|
91189
|
+
if (unique.size === 0)
|
|
91190
|
+
return "";
|
|
91191
|
+
return `
|
|
91192
|
+
|
|
91193
|
+
Sources:
|
|
91194
|
+
${[...unique.values()].map((citation) => `- [${citation.title}](${citation.url})`).join(`
|
|
91195
|
+
`)}`;
|
|
91196
|
+
}
|
|
91197
|
+
|
|
91151
91198
|
// src/services/api/providerHttp.ts
|
|
91152
91199
|
function parsePositiveInteger(value) {
|
|
91153
91200
|
if (typeof value !== "string" && typeof value !== "number")
|
|
@@ -91572,6 +91619,7 @@ async function* streamOpenAIEvents(body, options) {
|
|
|
91572
91619
|
let finishReason;
|
|
91573
91620
|
let usage = EMPTY_USAGE;
|
|
91574
91621
|
const emittedToolIds = new Set;
|
|
91622
|
+
const urlCitations = new Map;
|
|
91575
91623
|
const toolStates = new Map;
|
|
91576
91624
|
let activeThinkingIndex = null;
|
|
91577
91625
|
const stopThinking = function* () {
|
|
@@ -91664,6 +91712,9 @@ async function* streamOpenAIEvents(body, options) {
|
|
|
91664
91712
|
}
|
|
91665
91713
|
for (const choice of chunk?.choices ?? []) {
|
|
91666
91714
|
const delta = choice?.delta ?? {};
|
|
91715
|
+
for (const citation of collectOpenRouterUrlCitations(delta.annotations ?? choice?.message?.annotations)) {
|
|
91716
|
+
urlCitations.set(citation.url, citation);
|
|
91717
|
+
}
|
|
91667
91718
|
const reasoning = typeof delta.reasoning_content === "string" ? delta.reasoning_content : typeof delta.reasoning === "string" ? delta.reasoning : "";
|
|
91668
91719
|
if (reasoning.length > 0) {
|
|
91669
91720
|
for (const event of ensureThinking())
|
|
@@ -91738,6 +91789,16 @@ async function* streamOpenAIEvents(body, options) {
|
|
|
91738
91789
|
}
|
|
91739
91790
|
}
|
|
91740
91791
|
}
|
|
91792
|
+
const citationText = formatOpenRouterCitations(urlCitations.values());
|
|
91793
|
+
if (citationText) {
|
|
91794
|
+
for (const event of ensureText())
|
|
91795
|
+
yield event;
|
|
91796
|
+
yield {
|
|
91797
|
+
type: "content_block_delta",
|
|
91798
|
+
index: activeTextIndex,
|
|
91799
|
+
delta: { type: "text_delta", text: citationText }
|
|
91800
|
+
};
|
|
91801
|
+
}
|
|
91741
91802
|
for (const event of stopText())
|
|
91742
91803
|
yield event;
|
|
91743
91804
|
for (const event of stopThinking())
|
|
@@ -92671,6 +92732,8 @@ function toOpenAICompatibleRequest(params, providerName = "openai-compatible") {
|
|
|
92671
92732
|
effort: toOpenRouterReasoningEffort(String(params.model ?? ""), reasoningEffort)
|
|
92672
92733
|
} : undefined;
|
|
92673
92734
|
const compatibleReasoningEffort = reasoningEffort === "max" ? "high" : reasoningEffort;
|
|
92735
|
+
const openRouterServerSearch = providerName === "openrouter" && tools.some((tool) => tool?.type === "openrouter:web_search");
|
|
92736
|
+
const toolChoice = openRouterServerSearch ? undefined : mapOpenAIToolChoice(params.tool_choice);
|
|
92674
92737
|
return {
|
|
92675
92738
|
model: params.model,
|
|
92676
92739
|
messages: toOpenAIMessages(params, providerName),
|
|
@@ -92684,7 +92747,7 @@ function toOpenAICompatibleRequest(params, providerName = "openai-compatible") {
|
|
|
92684
92747
|
stream: Boolean(params.stream),
|
|
92685
92748
|
...params.stream && providerName !== "openrouter" ? { stream_options: { include_usage: true } } : {},
|
|
92686
92749
|
...tools.length > 0 ? { tools } : {},
|
|
92687
|
-
...
|
|
92750
|
+
...toolChoice !== undefined ? { tool_choice: toolChoice } : {}
|
|
92688
92751
|
};
|
|
92689
92752
|
}
|
|
92690
92753
|
function toOpenAIResponseFormat(format4) {
|
|
@@ -92830,7 +92893,7 @@ function toOpenAITools(tools, providerName = "OpenAI") {
|
|
|
92830
92893
|
throw new ToolSchemaValidationError(`${providerName} tools must be an array.`);
|
|
92831
92894
|
}
|
|
92832
92895
|
const result = tools.map((tool) => toOpenAITool(tool, providerName));
|
|
92833
|
-
assertUniqueToolNames(result.map((tool) => tool.function.name), providerName);
|
|
92896
|
+
assertUniqueToolNames(result.filter((tool) => tool?.type === "function").map((tool) => tool.function.name), providerName);
|
|
92834
92897
|
return result;
|
|
92835
92898
|
}
|
|
92836
92899
|
function mapOpenAIToolChoice(toolChoice) {
|
|
@@ -92906,6 +92969,16 @@ function isOpenAIToolStopReason2(reason) {
|
|
|
92906
92969
|
return reason === "tool_calls" || reason === "function_call" || reason === "tool_use";
|
|
92907
92970
|
}
|
|
92908
92971
|
function toOpenAITool(tool, providerName) {
|
|
92972
|
+
if (providerName === "openrouter" && tool?.type === "web_search_20250305") {
|
|
92973
|
+
return {
|
|
92974
|
+
type: "openrouter:web_search",
|
|
92975
|
+
parameters: {
|
|
92976
|
+
...Number.isInteger(tool.max_uses) && tool.max_uses > 0 ? { max_uses: tool.max_uses } : {},
|
|
92977
|
+
...Array.isArray(tool.allowed_domains) && tool.allowed_domains.length > 0 ? { allowed_domains: tool.allowed_domains } : {},
|
|
92978
|
+
...Array.isArray(tool.blocked_domains) && tool.blocked_domains.length > 0 ? { excluded_domains: tool.blocked_domains } : {}
|
|
92979
|
+
}
|
|
92980
|
+
};
|
|
92981
|
+
}
|
|
92909
92982
|
if (tool?.type === "function" && tool.function) {
|
|
92910
92983
|
assertValidToolName(tool.function.name, providerName);
|
|
92911
92984
|
const strict2 = tool.function.strict === true;
|
|
@@ -93044,7 +93117,8 @@ function parseOpenAIMessageContent(message, legacyText, providerName) {
|
|
|
93044
93117
|
if (reasoning.length > 0) {
|
|
93045
93118
|
content.push({ type: "thinking", thinking: reasoning });
|
|
93046
93119
|
}
|
|
93047
|
-
const
|
|
93120
|
+
const citationText = formatOpenRouterCitations(collectOpenRouterUrlCitations(message?.annotations));
|
|
93121
|
+
const text = openAIMessageText(message?.content, legacyText) + citationText;
|
|
93048
93122
|
if (text.length > 0) {
|
|
93049
93123
|
content.push({ type: "text", text });
|
|
93050
93124
|
}
|
|
@@ -95425,7 +95499,10 @@ function formatRuntimeDispatchError({
|
|
|
95425
95499
|
suggestedModel
|
|
95426
95500
|
}) {
|
|
95427
95501
|
const provider = resolveProviderId(providerId) ?? String(providerId);
|
|
95428
|
-
const
|
|
95502
|
+
const discoveredModels = validModels?.length ? validModels : getValidModelIdsForProvider(provider);
|
|
95503
|
+
const visibleModels = discoveredModels.slice(0, 8);
|
|
95504
|
+
const hiddenCount = discoveredModels.length - visibleModels.length;
|
|
95505
|
+
const valid = discoveredModels.length ? `${visibleModels.join(", ")}${hiddenCount > 0 ? `, \u2026 and ${hiddenCount} more` : ""}` : "(no models discovered)";
|
|
95429
95506
|
const suggestion = suggestedModel ?? getDefaultModelForProvider(provider) ?? "<valid-model>";
|
|
95430
95507
|
return `Provider "${provider}" is selected with model "${model}", but runtime dispatch cannot use that provider/model pair. Reason: ${why}. Valid models for ${provider}: ${valid}. Run /model and choose a model from ${provider}, or run: ur config set model ${suggestion}`;
|
|
95431
95508
|
}
|
|
@@ -96627,13 +96704,14 @@ function getDefaultOllamaModel() {
|
|
|
96627
96704
|
}
|
|
96628
96705
|
return DEFAULT_OLLAMA_MODEL2;
|
|
96629
96706
|
}
|
|
96630
|
-
function getSmallFastModel() {
|
|
96631
|
-
|
|
96707
|
+
function getSmallFastModel(providerSettings) {
|
|
96708
|
+
const activeProvider = providerSettings?.active ?? getActiveProviderSettings().active;
|
|
96709
|
+
if (activeProvider === "ollama" && process.env.OLLAMA_MODEL !== undefined && process.env.OLLAMA_SMALL_FAST_MODEL === undefined) {
|
|
96632
96710
|
const mainLoopModel = getMainLoopModel();
|
|
96633
96711
|
if (mainLoopModel)
|
|
96634
96712
|
return mainLoopModel;
|
|
96635
96713
|
}
|
|
96636
|
-
if (getAPIProvider() === "ollama") {
|
|
96714
|
+
if (activeProvider === "ollama" || !activeProvider && getAPIProvider() === "ollama") {
|
|
96637
96715
|
if (process.env.OLLAMA_SMALL_FAST_MODEL) {
|
|
96638
96716
|
return process.env.OLLAMA_SMALL_FAST_MODEL;
|
|
96639
96717
|
}
|
|
@@ -96651,7 +96729,11 @@ function getSmallFastModel() {
|
|
|
96651
96729
|
return sessionModel;
|
|
96652
96730
|
return getDefaultOllamaModel();
|
|
96653
96731
|
}
|
|
96654
|
-
|
|
96732
|
+
if (process.env.URHQ_SMALL_FAST_MODEL) {
|
|
96733
|
+
return process.env.URHQ_SMALL_FAST_MODEL;
|
|
96734
|
+
}
|
|
96735
|
+
const selectedModel = providerSettings?.model ?? getMainLoopModel();
|
|
96736
|
+
return selectedModel || getDefaultmodelHModel();
|
|
96655
96737
|
}
|
|
96656
96738
|
function isNonCustommodelOModel(model) {
|
|
96657
96739
|
return model === getModelStrings2().modelO40 || model === getModelStrings2().modelO41 || model === getModelStrings2().modelO45 || model === getModelStrings2().modelO46;
|
|
@@ -108154,7 +108236,7 @@ var init_auth = __esm(() => {
|
|
|
108154
108236
|
|
|
108155
108237
|
// src/utils/userAgent.ts
|
|
108156
108238
|
function getURCodeUserAgent() {
|
|
108157
|
-
return `ur/${"1.81.
|
|
108239
|
+
return `ur/${"1.81.3"}`;
|
|
108158
108240
|
}
|
|
108159
108241
|
|
|
108160
108242
|
// src/utils/workloadContext.ts
|
|
@@ -108176,7 +108258,7 @@ function getUserAgent() {
|
|
|
108176
108258
|
const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
|
|
108177
108259
|
const workload = getWorkload();
|
|
108178
108260
|
const workloadSuffix = workload ? `, workload/${workload}` : "";
|
|
108179
|
-
return `ur-cli/${"1.81.
|
|
108261
|
+
return `ur-cli/${"1.81.3"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
|
|
108180
108262
|
}
|
|
108181
108263
|
function getMCPUserAgent() {
|
|
108182
108264
|
const parts = [];
|
|
@@ -108190,7 +108272,7 @@ function getMCPUserAgent() {
|
|
|
108190
108272
|
parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
|
|
108191
108273
|
}
|
|
108192
108274
|
const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
|
|
108193
|
-
return `ur/${"1.81.
|
|
108275
|
+
return `ur/${"1.81.3"}${suffix}`;
|
|
108194
108276
|
}
|
|
108195
108277
|
function getWebFetchUserAgent() {
|
|
108196
108278
|
return `UR-User (${getURCodeUserAgent()})`;
|
|
@@ -108328,7 +108410,7 @@ var init_user = __esm(() => {
|
|
|
108328
108410
|
deviceId,
|
|
108329
108411
|
sessionId: getSessionId(),
|
|
108330
108412
|
email: getEmail(),
|
|
108331
|
-
appVersion: "1.81.
|
|
108413
|
+
appVersion: "1.81.3",
|
|
108332
108414
|
platform: getHostPlatformForAnalytics(),
|
|
108333
108415
|
organizationUuid,
|
|
108334
108416
|
accountUuid,
|
|
@@ -116215,7 +116297,7 @@ var init_metadata = __esm(() => {
|
|
|
116215
116297
|
COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
|
|
116216
116298
|
WHITESPACE_REGEX = /\s+/;
|
|
116217
116299
|
getVersionBase = memoize_default(() => {
|
|
116218
|
-
const match = "1.81.
|
|
116300
|
+
const match = "1.81.3".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
|
|
116219
116301
|
return match ? match[0] : undefined;
|
|
116220
116302
|
});
|
|
116221
116303
|
buildEnvContext = memoize_default(async () => {
|
|
@@ -116255,7 +116337,7 @@ var init_metadata = __esm(() => {
|
|
|
116255
116337
|
isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
|
|
116256
116338
|
isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
|
|
116257
116339
|
isURAiAuth: isURAISubscriber(),
|
|
116258
|
-
version: "1.81.
|
|
116340
|
+
version: "1.81.3",
|
|
116259
116341
|
versionBase: getVersionBase(),
|
|
116260
116342
|
buildTime: "",
|
|
116261
116343
|
deploymentEnvironment: env2.detectDeploymentEnvironment(),
|
|
@@ -116925,7 +117007,7 @@ function initialize1PEventLogging() {
|
|
|
116925
117007
|
const platform2 = getPlatform();
|
|
116926
117008
|
const attributes = {
|
|
116927
117009
|
[import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
|
|
116928
|
-
[import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.81.
|
|
117010
|
+
[import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.81.3"
|
|
116929
117011
|
};
|
|
116930
117012
|
if (platform2 === "wsl") {
|
|
116931
117013
|
const wslVersion = getWslVersion();
|
|
@@ -116953,7 +117035,7 @@ function initialize1PEventLogging() {
|
|
|
116953
117035
|
})
|
|
116954
117036
|
]
|
|
116955
117037
|
});
|
|
116956
|
-
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.81.
|
|
117038
|
+
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.81.3");
|
|
116957
117039
|
}
|
|
116958
117040
|
async function reinitialize1PEventLoggingIfConfigChanged() {
|
|
116959
117041
|
if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
|
|
@@ -126919,7 +127001,7 @@ function formatA2AAgentCard(options = {}, pretty = true) {
|
|
|
126919
127001
|
function formatA2AV1AgentCard(options = {}, pretty = true) {
|
|
126920
127002
|
return JSON.stringify(buildA2AV1AgentCard(options), null, pretty ? 2 : 0);
|
|
126921
127003
|
}
|
|
126922
|
-
var urVersion = "1.81.
|
|
127004
|
+
var urVersion = "1.81.3", researchSnapshotDate = "2026-08-10", coverage, priorityRoadmap;
|
|
126923
127005
|
var init_trends = __esm(() => {
|
|
126924
127006
|
init_a2aCardSignature();
|
|
126925
127007
|
coverage = [
|
|
@@ -129809,7 +129891,7 @@ function getAttributionHeader(fingerprint) {
|
|
|
129809
129891
|
if (!isAttributionHeaderEnabled()) {
|
|
129810
129892
|
return "";
|
|
129811
129893
|
}
|
|
129812
|
-
const version2 = `${"1.81.
|
|
129894
|
+
const version2 = `${"1.81.3"}.${fingerprint}`;
|
|
129813
129895
|
const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
|
|
129814
129896
|
const cch = "";
|
|
129815
129897
|
const workload = getWorkload();
|
|
@@ -184730,7 +184812,7 @@ var init_projectSafety = __esm(() => {
|
|
|
184730
184812
|
function getInstruments() {
|
|
184731
184813
|
if (instruments)
|
|
184732
184814
|
return instruments;
|
|
184733
|
-
const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.81.
|
|
184815
|
+
const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.81.3");
|
|
184734
184816
|
instruments = {
|
|
184735
184817
|
operationDuration: meter.createHistogram("gen_ai.client.operation.duration", {
|
|
184736
184818
|
description: "GenAI operation duration.",
|
|
@@ -184828,7 +184910,7 @@ function genAiAgentAttributes() {
|
|
|
184828
184910
|
"gen_ai.operation.name": GEN_AI_OPERATION_INVOKE_AGENT,
|
|
184829
184911
|
"gen_ai.provider.name": "ur",
|
|
184830
184912
|
"gen_ai.agent.name": "UR-Nexus",
|
|
184831
|
-
"gen_ai.agent.version": "1.81.
|
|
184913
|
+
"gen_ai.agent.version": "1.81.3"
|
|
184832
184914
|
};
|
|
184833
184915
|
}
|
|
184834
184916
|
function genAiWorkflowAttributes(workflowName, workflowRunId) {
|
|
@@ -184849,7 +184931,7 @@ function genAiWorkflowAttributes(workflowName, workflowRunId) {
|
|
|
184849
184931
|
function startGenAiWorkflowSpan(workflowName, workflowRunId) {
|
|
184850
184932
|
const attributes = genAiWorkflowAttributes(workflowName, workflowRunId);
|
|
184851
184933
|
const name = typeof attributes["gen_ai.workflow.name"] === "string" ? `invoke_workflow ${attributes["gen_ai.workflow.name"]}` : GEN_AI_OPERATION_INVOKE_WORKFLOW;
|
|
184852
|
-
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.81.
|
|
184934
|
+
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.81.3").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
|
|
184853
184935
|
}
|
|
184854
184936
|
function endGenAiWorkflowSpan(span, options2 = {}) {
|
|
184855
184937
|
try {
|
|
@@ -184887,7 +184969,7 @@ function startGenAiMemorySpan(operation, options2 = {}) {
|
|
|
184887
184969
|
if (options2.recordCount !== undefined && Number.isInteger(options2.recordCount) && options2.recordCount >= 0) {
|
|
184888
184970
|
attributes["gen_ai.memory.record.count"] = options2.recordCount;
|
|
184889
184971
|
}
|
|
184890
|
-
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.81.
|
|
184972
|
+
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.81.3").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
|
|
184891
184973
|
}
|
|
184892
184974
|
function endGenAiMemorySpan(span, options2 = {}) {
|
|
184893
184975
|
try {
|
|
@@ -278602,7 +278684,7 @@ function getTelemetryAttributes() {
|
|
|
278602
278684
|
attributes["session.id"] = sessionId;
|
|
278603
278685
|
}
|
|
278604
278686
|
if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
|
|
278605
|
-
attributes["app.version"] = "1.81.
|
|
278687
|
+
attributes["app.version"] = "1.81.3";
|
|
278606
278688
|
}
|
|
278607
278689
|
const oauthAccount = getOauthAccountInfo();
|
|
278608
278690
|
if (oauthAccount) {
|
|
@@ -320006,7 +320088,7 @@ function getInstallationEnv() {
|
|
|
320006
320088
|
return;
|
|
320007
320089
|
}
|
|
320008
320090
|
function getURCodeVersion() {
|
|
320009
|
-
return "1.81.
|
|
320091
|
+
return "1.81.3";
|
|
320010
320092
|
}
|
|
320011
320093
|
async function getInstalledVSCodeExtensionVersion(command) {
|
|
320012
320094
|
const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
|
|
@@ -327376,7 +327458,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
|
|
|
327376
327458
|
const client2 = new Client({
|
|
327377
327459
|
name: "ur",
|
|
327378
327460
|
title: "UR",
|
|
327379
|
-
version: "1.81.
|
|
327461
|
+
version: "1.81.3",
|
|
327380
327462
|
description: "UR-Nexus autonomous engineering workflow engine",
|
|
327381
327463
|
websiteUrl: PRODUCT_URL
|
|
327382
327464
|
}, {
|
|
@@ -327737,7 +327819,7 @@ var init_client5 = __esm(() => {
|
|
|
327737
327819
|
const client2 = new Client({
|
|
327738
327820
|
name: "ur",
|
|
327739
327821
|
title: "UR",
|
|
327740
|
-
version: "1.81.
|
|
327822
|
+
version: "1.81.3",
|
|
327741
327823
|
description: "UR-Nexus autonomous engineering workflow engine",
|
|
327742
327824
|
websiteUrl: PRODUCT_URL
|
|
327743
327825
|
}, {
|
|
@@ -340510,7 +340592,7 @@ async function createRuntime() {
|
|
|
340510
340592
|
bootstrapTelemetry();
|
|
340511
340593
|
const resource = defaultResource().merge(detectResources({ detectors: [envDetector] })).merge(resourceFromAttributes({
|
|
340512
340594
|
[import_semantic_conventions7.ATTR_SERVICE_NAME]: "ur-agent",
|
|
340513
|
-
[import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.81.
|
|
340595
|
+
[import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.81.3"
|
|
340514
340596
|
}));
|
|
340515
340597
|
const tracerProvider = exporters.traces.length > 0 ? new BasicTracerProvider({
|
|
340516
340598
|
resource,
|
|
@@ -340543,11 +340625,11 @@ async function createRuntime() {
|
|
|
340543
340625
|
setMeterProvider(meterProvider);
|
|
340544
340626
|
setLoggerProvider(loggerProvider);
|
|
340545
340627
|
if (meterProvider) {
|
|
340546
|
-
const meter = meterProvider.getMeter("ur-agent", "1.81.
|
|
340628
|
+
const meter = meterProvider.getMeter("ur-agent", "1.81.3");
|
|
340547
340629
|
setMeter(meter, (name, options2) => meter.createCounter(name, options2));
|
|
340548
340630
|
}
|
|
340549
340631
|
if (loggerProvider) {
|
|
340550
|
-
setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.81.
|
|
340632
|
+
setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.81.3"));
|
|
340551
340633
|
}
|
|
340552
340634
|
if (!cleanupRegistered3) {
|
|
340553
340635
|
cleanupRegistered3 = true;
|
|
@@ -341209,9 +341291,9 @@ async function assertMinVersion() {
|
|
|
341209
341291
|
if (false) {}
|
|
341210
341292
|
try {
|
|
341211
341293
|
const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
|
|
341212
|
-
if (versionConfig.minVersion && lt("1.81.
|
|
341294
|
+
if (versionConfig.minVersion && lt("1.81.3", versionConfig.minVersion)) {
|
|
341213
341295
|
console.error(`
|
|
341214
|
-
It looks like your version of UR (${"1.81.
|
|
341296
|
+
It looks like your version of UR (${"1.81.3"}) needs an update.
|
|
341215
341297
|
A newer version (${versionConfig.minVersion} or higher) is required to continue.
|
|
341216
341298
|
|
|
341217
341299
|
To update, please run:
|
|
@@ -341427,7 +341509,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
341427
341509
|
logError2(new AutoUpdaterError("Another process is currently installing an update"));
|
|
341428
341510
|
logEvent("tengu_auto_updater_lock_contention", {
|
|
341429
341511
|
pid: process.pid,
|
|
341430
|
-
currentVersion: "1.81.
|
|
341512
|
+
currentVersion: "1.81.3"
|
|
341431
341513
|
});
|
|
341432
341514
|
return "in_progress";
|
|
341433
341515
|
}
|
|
@@ -341436,7 +341518,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
341436
341518
|
if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
|
|
341437
341519
|
logError2(new Error("Windows NPM detected in WSL environment"));
|
|
341438
341520
|
logEvent("tengu_auto_updater_windows_npm_in_wsl", {
|
|
341439
|
-
currentVersion: "1.81.
|
|
341521
|
+
currentVersion: "1.81.3"
|
|
341440
341522
|
});
|
|
341441
341523
|
console.error(`
|
|
341442
341524
|
Error: Windows NPM detected in WSL
|
|
@@ -341971,7 +342053,7 @@ function detectLinuxGlobPatternWarnings() {
|
|
|
341971
342053
|
}
|
|
341972
342054
|
async function getDoctorDiagnostic() {
|
|
341973
342055
|
const installationType = await getCurrentInstallationType();
|
|
341974
|
-
const version2 = typeof MACRO !== "undefined" ? "1.81.
|
|
342056
|
+
const version2 = typeof MACRO !== "undefined" ? "1.81.3" : "unknown";
|
|
341975
342057
|
const installationPath = await getInstallationPath();
|
|
341976
342058
|
const invokedBinary = getInvokedBinary();
|
|
341977
342059
|
const multipleInstallations = await detectMultipleInstallations();
|
|
@@ -342906,8 +342988,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
342906
342988
|
const maxVersion = await getMaxVersion();
|
|
342907
342989
|
if (maxVersion && gt(version2, maxVersion)) {
|
|
342908
342990
|
logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
|
|
342909
|
-
if (gte("1.81.
|
|
342910
|
-
logForDebugging(`Native installer: current version ${"1.81.
|
|
342991
|
+
if (gte("1.81.3", maxVersion)) {
|
|
342992
|
+
logForDebugging(`Native installer: current version ${"1.81.3"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
342911
342993
|
logEvent("tengu_native_update_skipped_max_version", {
|
|
342912
342994
|
latency_ms: Date.now() - startTime,
|
|
342913
342995
|
max_version: maxVersion,
|
|
@@ -342918,7 +343000,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
342918
343000
|
version2 = maxVersion;
|
|
342919
343001
|
}
|
|
342920
343002
|
}
|
|
342921
|
-
if (!forceReinstall && version2 === "1.81.
|
|
343003
|
+
if (!forceReinstall && version2 === "1.81.3" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
|
|
342922
343004
|
logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
|
|
342923
343005
|
logEvent("tengu_native_update_complete", {
|
|
342924
343006
|
latency_ms: Date.now() - startTime,
|
|
@@ -393124,7 +393206,7 @@ async function getURLMarkdownContent(url3, abortController) {
|
|
|
393124
393206
|
URL_CACHE.set(url3, entry, { size: Math.max(1, contentBytes) });
|
|
393125
393207
|
return entry;
|
|
393126
393208
|
}
|
|
393127
|
-
async function applyPromptToMarkdown(prompt, markdownContent, signal, isNonInteractiveSession, isPreapprovedDomain) {
|
|
393209
|
+
async function applyPromptToMarkdown(prompt, markdownContent, signal, isNonInteractiveSession, isPreapprovedDomain, providerSettings) {
|
|
393128
393210
|
const truncatedContent = markdownContent.length > MAX_MARKDOWN_LENGTH ? markdownContent.slice(0, MAX_MARKDOWN_LENGTH) + `
|
|
393129
393211
|
|
|
393130
393212
|
[Content truncated due to length...]` : markdownContent;
|
|
@@ -393138,7 +393220,8 @@ async function applyPromptToMarkdown(prompt, markdownContent, signal, isNonInter
|
|
|
393138
393220
|
agents: [],
|
|
393139
393221
|
isNonInteractiveSession,
|
|
393140
393222
|
hasAppendSystemPrompt: false,
|
|
393141
|
-
mcpTools: []
|
|
393223
|
+
mcpTools: [],
|
|
393224
|
+
providerSettings
|
|
393142
393225
|
}
|
|
393143
393226
|
});
|
|
393144
393227
|
if (signal.aborted) {
|
|
@@ -393582,7 +393665,7 @@ To complete your request, I need to fetch content from the redirected URL. Pleas
|
|
|
393582
393665
|
if (isPreapproved && contentType2.includes("text/markdown") && content.length < MAX_MARKDOWN_LENGTH) {
|
|
393583
393666
|
result = content;
|
|
393584
393667
|
} else {
|
|
393585
|
-
result = await applyPromptToMarkdown(prompt, content, abortController.signal, isNonInteractiveSession, isPreapproved);
|
|
393668
|
+
result = await applyPromptToMarkdown(prompt, content, abortController.signal, isNonInteractiveSession, isPreapproved, context5.getAppState().provider);
|
|
393586
393669
|
}
|
|
393587
393670
|
if (persistedPath) {
|
|
393588
393671
|
result += `
|
|
@@ -396300,8 +396383,9 @@ function renderToolUseProgressMessage9(progressMessages) {
|
|
|
396300
396383
|
}
|
|
396301
396384
|
function renderToolResultMessage17(output) {
|
|
396302
396385
|
const {
|
|
396303
|
-
searchCount
|
|
396386
|
+
searchCount: inferredSearchCount
|
|
396304
396387
|
} = getSearchSummary(output.results ?? []);
|
|
396388
|
+
const searchCount = output.searchCount ?? inferredSearchCount;
|
|
396305
396389
|
const timeDisplay = output.durationSeconds >= 1 ? `${Math.round(output.durationSeconds)}s` : `${Math.round(output.durationSeconds * 1000)}ms`;
|
|
396306
396390
|
return /* @__PURE__ */ jsx_dev_runtime144.jsxDEV(ThemedBox_default, {
|
|
396307
396391
|
justifyContent: "space-between",
|
|
@@ -396346,7 +396430,7 @@ function makeToolSchema(input, maxUses) {
|
|
|
396346
396430
|
max_uses: maxUses
|
|
396347
396431
|
};
|
|
396348
396432
|
}
|
|
396349
|
-
function makeOutputFromSearchResponse(result, query2, durationSeconds) {
|
|
396433
|
+
function makeOutputFromSearchResponse(result, query2, durationSeconds, searchCount) {
|
|
396350
396434
|
const results = [];
|
|
396351
396435
|
let textAcc = "";
|
|
396352
396436
|
let inText = true;
|
|
@@ -396389,7 +396473,8 @@ function makeOutputFromSearchResponse(result, query2, durationSeconds) {
|
|
|
396389
396473
|
return {
|
|
396390
396474
|
query: query2,
|
|
396391
396475
|
results,
|
|
396392
|
-
durationSeconds
|
|
396476
|
+
durationSeconds,
|
|
396477
|
+
...searchCount !== undefined ? { searchCount } : {}
|
|
396393
396478
|
};
|
|
396394
396479
|
}
|
|
396395
396480
|
var inputSchema28, searchResultSchema, outputSchema24, WebSearchTool;
|
|
@@ -396426,7 +396511,8 @@ var init_WebSearchTool = __esm(() => {
|
|
|
396426
396511
|
outputSchema24 = lazySchema(() => exports_external.object({
|
|
396427
396512
|
query: exports_external.string().describe("The search query that was executed"),
|
|
396428
396513
|
results: exports_external.array(exports_external.union([searchResultSchema(), exports_external.string()])).describe("Search results and/or text commentary from the model"),
|
|
396429
|
-
durationSeconds: exports_external.number().describe("Time taken to complete the search operation")
|
|
396514
|
+
durationSeconds: exports_external.number().describe("Time taken to complete the search operation"),
|
|
396515
|
+
searchCount: exports_external.number().int().nonnegative().optional().describe("Provider-reported number of web searches performed")
|
|
396430
396516
|
}));
|
|
396431
396517
|
WebSearchTool = buildTool({
|
|
396432
396518
|
name: WEB_SEARCH_TOOL_NAME,
|
|
@@ -396561,7 +396647,7 @@ var init_WebSearchTool = __esm(() => {
|
|
|
396561
396647
|
const startTime = performance.now();
|
|
396562
396648
|
const { query: query2 } = input;
|
|
396563
396649
|
const userMessage = createUserMessage({
|
|
396564
|
-
content: "Perform a web search for the query: " + query2
|
|
396650
|
+
content: "You MUST use the provided web search tool at least once. Perform a web search for the query: " + query2
|
|
396565
396651
|
});
|
|
396566
396652
|
const budget = reserveWebSearchBudget(8);
|
|
396567
396653
|
if (budget.granted === 0) {
|
|
@@ -396580,7 +396666,7 @@ var init_WebSearchTool = __esm(() => {
|
|
|
396580
396666
|
signal: context5.abortController.signal,
|
|
396581
396667
|
options: {
|
|
396582
396668
|
getToolPermissionContext: async () => appState.toolPermissionContext,
|
|
396583
|
-
model: usemodelH ? getSmallFastModel() : context5.options.mainLoopModel,
|
|
396669
|
+
model: usemodelH ? getSmallFastModel(appState.provider) : context5.options.mainLoopModel,
|
|
396584
396670
|
toolChoice: usemodelH ? { type: "tool", name: "web_search" } : undefined,
|
|
396585
396671
|
isNonInteractiveSession: context5.options.isNonInteractiveSession,
|
|
396586
396672
|
hasAppendSystemPrompt: !!context5.options.appendSystemPrompt,
|
|
@@ -396603,6 +396689,7 @@ var init_WebSearchTool = __esm(() => {
|
|
|
396603
396689
|
for await (const event of queryStream) {
|
|
396604
396690
|
if (event.type === "assistant") {
|
|
396605
396691
|
allContentBlocks.push(...event.message.content);
|
|
396692
|
+
actualSearches = Math.max(actualSearches, event.message.usage?.server_tool_use?.web_search_requests ?? 0);
|
|
396606
396693
|
continue;
|
|
396607
396694
|
}
|
|
396608
396695
|
if (event.type === "stream_event" && event.event?.type === "content_block_start") {
|
|
@@ -396664,7 +396751,10 @@ var init_WebSearchTool = __esm(() => {
|
|
|
396664
396751
|
}
|
|
396665
396752
|
const endTime = performance.now();
|
|
396666
396753
|
const durationSeconds = (endTime - startTime) / 1000;
|
|
396667
|
-
const data = makeOutputFromSearchResponse(allContentBlocks, query2, durationSeconds);
|
|
396754
|
+
const data = makeOutputFromSearchResponse(allContentBlocks, query2, durationSeconds, actualSearches);
|
|
396755
|
+
if (actualSearches === 0) {
|
|
396756
|
+
throw new Error("The selected provider returned text without performing a web search. Retry with a model that supports OpenRouter web search or switch providers.");
|
|
396757
|
+
}
|
|
396668
396758
|
return { data };
|
|
396669
396759
|
},
|
|
396670
396760
|
mapToolResultToToolResultBlockParam(output, toolUseID) {
|
|
@@ -413597,7 +413687,7 @@ function isAnyTracingEnabled() {
|
|
|
413597
413687
|
return isTelemetryEnabled() || isEnhancedTelemetryEnabled() || isBetaTracingEnabled();
|
|
413598
413688
|
}
|
|
413599
413689
|
function getTracer() {
|
|
413600
|
-
return import_api39.trace.getTracer("ur-agent.gen_ai", "1.81.
|
|
413690
|
+
return import_api39.trace.getTracer("ur-agent.gen_ai", "1.81.3");
|
|
413601
413691
|
}
|
|
413602
413692
|
function createSpanAttributes(spanType, customAttributes = {}) {
|
|
413603
413693
|
const baseAttributes = getTelemetryAttributes();
|
|
@@ -443756,7 +443846,7 @@ function Feedback({
|
|
|
443756
443846
|
platform: env2.platform,
|
|
443757
443847
|
gitRepo: envInfo.isGit,
|
|
443758
443848
|
terminal: env2.terminal,
|
|
443759
|
-
version: "1.81.
|
|
443849
|
+
version: "1.81.3",
|
|
443760
443850
|
transcript: normalizeMessagesForAPI(messages),
|
|
443761
443851
|
errors: sanitizedErrors,
|
|
443762
443852
|
lastApiRequest: getLastAPIRequest(),
|
|
@@ -443948,7 +444038,7 @@ function Feedback({
|
|
|
443948
444038
|
", ",
|
|
443949
444039
|
env2.terminal,
|
|
443950
444040
|
", v",
|
|
443951
|
-
"1.81.
|
|
444041
|
+
"1.81.3"
|
|
443952
444042
|
]
|
|
443953
444043
|
}, undefined, true, undefined, this)
|
|
443954
444044
|
]
|
|
@@ -444054,7 +444144,7 @@ ${sanitizedDescription}
|
|
|
444054
444144
|
` + `**Environment Info**
|
|
444055
444145
|
` + `- Platform: ${env2.platform}
|
|
444056
444146
|
` + `- Terminal: ${env2.terminal}
|
|
444057
|
-
` + `- Version: ${"1.81.
|
|
444147
|
+
` + `- Version: ${"1.81.3"}
|
|
444058
444148
|
` + `- Feedback ID: ${feedbackId}
|
|
444059
444149
|
` + `
|
|
444060
444150
|
**Errors**
|
|
@@ -447164,7 +447254,7 @@ function buildPrimarySection() {
|
|
|
447164
447254
|
}, undefined, false, undefined, this);
|
|
447165
447255
|
return [{
|
|
447166
447256
|
label: "Version",
|
|
447167
|
-
value: "1.81.
|
|
447257
|
+
value: "1.81.3"
|
|
447168
447258
|
}, {
|
|
447169
447259
|
label: "Session name",
|
|
447170
447260
|
value: nameValue
|
|
@@ -450546,7 +450636,7 @@ function Config({
|
|
|
450546
450636
|
}
|
|
450547
450637
|
}, undefined, false, undefined, this)
|
|
450548
450638
|
}, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime179.jsxDEV(ChannelDowngradeDialog, {
|
|
450549
|
-
currentVersion: "1.81.
|
|
450639
|
+
currentVersion: "1.81.3",
|
|
450550
450640
|
onChoice: (choice) => {
|
|
450551
450641
|
setShowSubmenu(null);
|
|
450552
450642
|
setTabsHidden(false);
|
|
@@ -450558,7 +450648,7 @@ function Config({
|
|
|
450558
450648
|
autoUpdatesChannel: "stable"
|
|
450559
450649
|
};
|
|
450560
450650
|
if (choice === "stay") {
|
|
450561
|
-
newSettings.minimumVersion = "1.81.
|
|
450651
|
+
newSettings.minimumVersion = "1.81.3";
|
|
450562
450652
|
}
|
|
450563
450653
|
updateSettingsForSource("userSettings", newSettings);
|
|
450564
450654
|
setSettingsData((prev_27) => ({
|
|
@@ -458867,7 +458957,7 @@ function HelpV2(t0) {
|
|
|
458867
458957
|
let t6;
|
|
458868
458958
|
if ($2[31] !== tabs) {
|
|
458869
458959
|
t6 = /* @__PURE__ */ jsx_dev_runtime206.jsxDEV(Tabs, {
|
|
458870
|
-
title: `UR v${"1.81.
|
|
458960
|
+
title: `UR v${"1.81.3"}`,
|
|
458871
458961
|
color: "professionalBlue",
|
|
458872
458962
|
defaultTab: "general",
|
|
458873
458963
|
children: tabs
|
|
@@ -459800,7 +459890,7 @@ function buildToolUseContext(tools, readFileStateCache, toolPermissionContext, a
|
|
|
459800
459890
|
async function handleInitialize(options2) {
|
|
459801
459891
|
return {
|
|
459802
459892
|
name: "UR",
|
|
459803
|
-
version: "1.81.
|
|
459893
|
+
version: "1.81.3",
|
|
459804
459894
|
protocolVersion: "0.1.0",
|
|
459805
459895
|
workspaceRoot: options2.cwd,
|
|
459806
459896
|
capabilities: {
|
|
@@ -476908,7 +476998,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
|
|
|
476908
476998
|
return [];
|
|
476909
476999
|
}
|
|
476910
477000
|
}
|
|
476911
|
-
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.81.
|
|
477001
|
+
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.81.3") {
|
|
476912
477002
|
if (process.env.USER_TYPE === "ant") {
|
|
476913
477003
|
const changelog = "";
|
|
476914
477004
|
if (changelog) {
|
|
@@ -476935,7 +477025,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.81.2")
|
|
|
476935
477025
|
releaseNotes
|
|
476936
477026
|
};
|
|
476937
477027
|
}
|
|
476938
|
-
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.81.
|
|
477028
|
+
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.81.3") {
|
|
476939
477029
|
if (process.env.USER_TYPE === "ant") {
|
|
476940
477030
|
const changelog = "";
|
|
476941
477031
|
if (changelog) {
|
|
@@ -479840,7 +479930,7 @@ function getRecentActivitySync() {
|
|
|
479840
479930
|
return cachedActivity;
|
|
479841
479931
|
}
|
|
479842
479932
|
function getLogoDisplayData() {
|
|
479843
|
-
const version2 = process.env.DEMO_VERSION ?? "1.81.
|
|
479933
|
+
const version2 = process.env.DEMO_VERSION ?? "1.81.3";
|
|
479844
479934
|
const serverUrl = getDirectConnectServerUrl();
|
|
479845
479935
|
const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd());
|
|
479846
479936
|
const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
|
|
@@ -479914,6 +480004,14 @@ var init_logoV2Utils = __esm(() => {
|
|
|
479914
480004
|
});
|
|
479915
480005
|
|
|
479916
480006
|
// src/components/LogoV2/URBanner.tsx
|
|
480007
|
+
function getURWordmarkGlyphTone(glyph, row, column) {
|
|
480008
|
+
if (glyph === "\u2588") {
|
|
480009
|
+
return SPECULAR_GLYPHS.has(`${row}:${column}`) ? "warningShimmer" : "urShimmer";
|
|
480010
|
+
}
|
|
480011
|
+
if ("\u2557\u2551\u2554\u255D\u255A\u2550".includes(glyph))
|
|
480012
|
+
return "ur";
|
|
480013
|
+
return;
|
|
480014
|
+
}
|
|
479917
480015
|
function URBanner() {
|
|
479918
480016
|
if (isScreenReaderMode()) {
|
|
479919
480017
|
return /* @__PURE__ */ jsx_dev_runtime233.jsxDEV(ThemedText, {
|
|
@@ -479925,18 +480023,21 @@ function URBanner() {
|
|
|
479925
480023
|
alignItems: "center",
|
|
479926
480024
|
children: [
|
|
479927
480025
|
UR_WORDMARK_ROWS.map((row, i3) => /* @__PURE__ */ jsx_dev_runtime233.jsxDEV(ThemedText, {
|
|
479928
|
-
color: "ur",
|
|
479929
480026
|
bold: true,
|
|
479930
|
-
children: row
|
|
480027
|
+
children: [...row].map((glyph, column) => /* @__PURE__ */ jsx_dev_runtime233.jsxDEV(ThemedText, {
|
|
480028
|
+
color: getURWordmarkGlyphTone(glyph, i3, column),
|
|
480029
|
+
children: glyph
|
|
480030
|
+
}, `${i3}:${column}`, false, undefined, this))
|
|
479931
480031
|
}, i3, false, undefined, this)),
|
|
479932
480032
|
/* @__PURE__ */ jsx_dev_runtime233.jsxDEV(ThemedText, {
|
|
480033
|
+
bold: true,
|
|
479933
480034
|
children: [
|
|
479934
480035
|
/* @__PURE__ */ jsx_dev_runtime233.jsxDEV(ThemedText, {
|
|
479935
|
-
color: "
|
|
479936
|
-
children: "\
|
|
480036
|
+
color: "warningShimmer",
|
|
480037
|
+
children: "\u2726"
|
|
479937
480038
|
}, undefined, false, undefined, this),
|
|
479938
480039
|
/* @__PURE__ */ jsx_dev_runtime233.jsxDEV(ThemedText, {
|
|
479939
|
-
|
|
480040
|
+
color: "urShimmer",
|
|
479940
480041
|
children: [
|
|
479941
480042
|
" ",
|
|
479942
480043
|
UR_WORDMARK_TAGLINE,
|
|
@@ -479944,15 +480045,15 @@ function URBanner() {
|
|
|
479944
480045
|
]
|
|
479945
480046
|
}, undefined, true, undefined, this),
|
|
479946
480047
|
/* @__PURE__ */ jsx_dev_runtime233.jsxDEV(ThemedText, {
|
|
479947
|
-
color: "
|
|
479948
|
-
children: "\
|
|
480048
|
+
color: "warningShimmer",
|
|
480049
|
+
children: "\u2726"
|
|
479949
480050
|
}, undefined, false, undefined, this)
|
|
479950
480051
|
]
|
|
479951
480052
|
}, undefined, true, undefined, this)
|
|
479952
480053
|
]
|
|
479953
480054
|
}, undefined, true, undefined, this);
|
|
479954
480055
|
}
|
|
479955
|
-
var jsx_dev_runtime233, UR_WORDMARK_ROWS, UR_WORDMARK_TAGLINE = "THE AUTONOMOUS AGENT";
|
|
480056
|
+
var jsx_dev_runtime233, UR_WORDMARK_ROWS, UR_WORDMARK_TAGLINE = "THE AUTONOMOUS AGENT", SPECULAR_GLYPHS;
|
|
479956
480057
|
var init_URBanner = __esm(() => {
|
|
479957
480058
|
init_ink2();
|
|
479958
480059
|
init_screenReader();
|
|
@@ -479965,6 +480066,25 @@ var init_URBanner = __esm(() => {
|
|
|
479965
480066
|
"\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D \u2588\u2588\u2551 \u2588\u2588\u2551",
|
|
479966
480067
|
" \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u255D"
|
|
479967
480068
|
];
|
|
480069
|
+
SPECULAR_GLYPHS = new Set([
|
|
480070
|
+
"0:0",
|
|
480071
|
+
"0:1",
|
|
480072
|
+
"0:6",
|
|
480073
|
+
"0:7",
|
|
480074
|
+
"0:11",
|
|
480075
|
+
"0:12",
|
|
480076
|
+
"0:13",
|
|
480077
|
+
"0:14",
|
|
480078
|
+
"0:15",
|
|
480079
|
+
"0:16",
|
|
480080
|
+
"1:0",
|
|
480081
|
+
"1:6",
|
|
480082
|
+
"1:11",
|
|
480083
|
+
"1:15",
|
|
480084
|
+
"2:0",
|
|
480085
|
+
"2:6",
|
|
480086
|
+
"2:11"
|
|
480087
|
+
]);
|
|
479968
480088
|
});
|
|
479969
480089
|
|
|
479970
480090
|
// src/components/LogoV2/UrHouse.tsx
|
|
@@ -480732,7 +480852,7 @@ function LogoV2() {
|
|
|
480732
480852
|
if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
480733
480853
|
t2 = () => {
|
|
480734
480854
|
const currentConfig = getGlobalConfig();
|
|
480735
|
-
if (currentConfig.lastReleaseNotesSeen === "1.81.
|
|
480855
|
+
if (currentConfig.lastReleaseNotesSeen === "1.81.3") {
|
|
480736
480856
|
return;
|
|
480737
480857
|
}
|
|
480738
480858
|
saveGlobalConfig(_temp325);
|
|
@@ -481417,12 +481537,12 @@ function LogoV2() {
|
|
|
481417
481537
|
return t41;
|
|
481418
481538
|
}
|
|
481419
481539
|
function _temp325(current) {
|
|
481420
|
-
if (current.lastReleaseNotesSeen === "1.81.
|
|
481540
|
+
if (current.lastReleaseNotesSeen === "1.81.3") {
|
|
481421
481541
|
return current;
|
|
481422
481542
|
}
|
|
481423
481543
|
return {
|
|
481424
481544
|
...current,
|
|
481425
|
-
lastReleaseNotesSeen: "1.81.
|
|
481545
|
+
lastReleaseNotesSeen: "1.81.3"
|
|
481426
481546
|
};
|
|
481427
481547
|
}
|
|
481428
481548
|
function _temp241(s_0) {
|
|
@@ -497372,7 +497492,7 @@ function compileAgenticCiWorkflow(specName = "default", options2 = {}) {
|
|
|
497372
497492
|
if (spec.name !== specName) {
|
|
497373
497493
|
throw new Error("Agentic CI workflow spec name does not match");
|
|
497374
497494
|
}
|
|
497375
|
-
const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.81.
|
|
497495
|
+
const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.81.3" : "1.81.3");
|
|
497376
497496
|
if (!/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(packageVersion)) {
|
|
497377
497497
|
throw new Error("invalid ur-agent package version");
|
|
497378
497498
|
}
|
|
@@ -498365,7 +498485,7 @@ runner; \`ur trigger\` is the inbound parser that decides what to run.
|
|
|
498365
498485
|
path: ".github/workflows/ur.yml",
|
|
498366
498486
|
root: "project",
|
|
498367
498487
|
content: compileAgenticCiWorkflow("default", {
|
|
498368
|
-
packageVersion: typeof MACRO !== "undefined" ? "1.81.
|
|
498488
|
+
packageVersion: typeof MACRO !== "undefined" ? "1.81.3" : "1.81.3"
|
|
498369
498489
|
})
|
|
498370
498490
|
},
|
|
498371
498491
|
{
|
|
@@ -498428,7 +498548,7 @@ function value(tokens, flag) {
|
|
|
498428
498548
|
return index2 >= 0 ? tokens[index2 + 1] : undefined;
|
|
498429
498549
|
}
|
|
498430
498550
|
function cliVersion() {
|
|
498431
|
-
return typeof MACRO !== "undefined" ? "1.81.
|
|
498551
|
+
return typeof MACRO !== "undefined" ? "1.81.3" : "1.81.3";
|
|
498432
498552
|
}
|
|
498433
498553
|
function workflowPath(cwd2) {
|
|
498434
498554
|
return join168(cwd2, ".github", "workflows", "ur-agentic-ci.yml");
|
|
@@ -504284,7 +504404,7 @@ function createAcpStdioApp(deps) {
|
|
|
504284
504404
|
}
|
|
504285
504405
|
},
|
|
504286
504406
|
authMethods: [],
|
|
504287
|
-
agentInfo: { name: "UR-Nexus", version: "1.81.
|
|
504407
|
+
agentInfo: { name: "UR-Nexus", version: "1.81.3" }
|
|
504288
504408
|
})).onRequest("authenticate", () => ({})).onRequest("session/new", async (context6) => {
|
|
504289
504409
|
const result = runtime2.newSession(context6.params.cwd, context6.params.mcpServers, context6.params.additionalDirectories);
|
|
504290
504410
|
await runtime2.announce({
|
|
@@ -504381,7 +504501,7 @@ function createAcpStdioAgent(deps) {
|
|
|
504381
504501
|
}
|
|
504382
504502
|
},
|
|
504383
504503
|
authMethods: [],
|
|
504384
|
-
agentInfo: { name: "UR-Nexus", version: "1.81.
|
|
504504
|
+
agentInfo: { name: "UR-Nexus", version: "1.81.3" }
|
|
504385
504505
|
});
|
|
504386
504506
|
return;
|
|
504387
504507
|
case "authenticate":
|
|
@@ -715633,7 +715753,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
|
|
|
715633
715753
|
smapsRollup,
|
|
715634
715754
|
platform: process.platform,
|
|
715635
715755
|
nodeVersion: process.version,
|
|
715636
|
-
ccVersion: "1.81.
|
|
715756
|
+
ccVersion: "1.81.3"
|
|
715637
715757
|
};
|
|
715638
715758
|
}
|
|
715639
715759
|
async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
|
|
@@ -716222,7 +716342,7 @@ var init_bridge_kick = __esm(() => {
|
|
|
716222
716342
|
var call154 = async () => {
|
|
716223
716343
|
return {
|
|
716224
716344
|
type: "text",
|
|
716225
|
-
value: "1.81.
|
|
716345
|
+
value: "1.81.3"
|
|
716226
716346
|
};
|
|
716227
716347
|
}, version2, version_default;
|
|
716228
716348
|
var init_version = __esm(() => {
|
|
@@ -719236,9 +719356,10 @@ function ProviderFirstModelPicker({
|
|
|
719236
719356
|
const [credentialNotice, setCredentialNotice] = import_react186.useState(null);
|
|
719237
719357
|
const [modelReloadToken, setModelReloadToken] = import_react186.useState(0);
|
|
719238
719358
|
const terminalSize = import_react186.useContext(TerminalSizeContext);
|
|
719239
|
-
const keyInputColumns =
|
|
719359
|
+
const keyInputColumns = getProviderKeyInputColumns(terminalSize?.columns);
|
|
719240
719360
|
const effortValue = useAppState(selectEffortValue2);
|
|
719241
|
-
const [effort] = import_react186.useState(effortValue !== undefined ? convertEffortValueToLevel(effortValue) : undefined);
|
|
719361
|
+
const [effort, setEffort] = import_react186.useState(effortValue !== undefined ? convertEffortValueToLevel(effortValue) : undefined);
|
|
719362
|
+
const [hasToggledEffort, setHasToggledEffort] = import_react186.useState(false);
|
|
719242
719363
|
const appThinkingEnabled = useAppState(selectThinkingEnabled2);
|
|
719243
719364
|
const hasToggledThinking = false;
|
|
719244
719365
|
const [thinkingEnabled] = import_react186.useState(() => appThinkingEnabled ?? shouldEnableThinkingByDefault());
|
|
@@ -719288,7 +719409,11 @@ function ProviderFirstModelPicker({
|
|
|
719288
719409
|
const options5 = result.models.map((model) => ({
|
|
719289
719410
|
value: model.id,
|
|
719290
719411
|
label: model.displayName,
|
|
719291
|
-
description:
|
|
719412
|
+
description: formatProviderModelDescription(model, result.source, providerId),
|
|
719413
|
+
pricing: model.pricing,
|
|
719414
|
+
contextLength: model.contextLength,
|
|
719415
|
+
supportedParameters: model.supportedParameters,
|
|
719416
|
+
reasoning: model.reasoning,
|
|
719292
719417
|
...model.supportedParameters !== undefined && !model.supportedParameters.includes("tools") ? { disabled: true } : {}
|
|
719293
719418
|
}));
|
|
719294
719419
|
setModelOptions(options5);
|
|
@@ -719333,6 +719458,11 @@ function ProviderFirstModelPicker({
|
|
|
719333
719458
|
const modelVisibleCount = Math.max(1, Math.min(modelSelectOptions.length, Math.max(5, (terminalSize?.rows ?? 24) - 14)));
|
|
719334
719459
|
const focusedProvider = providerOptions.find((p2) => p2.value === focusedProviderValue);
|
|
719335
719460
|
const focusedModel = modelOptions.find((m) => m.value === focusedModelValue);
|
|
719461
|
+
const focusedResolvedModel = focusedModel ? parseUserSpecifiedModel(focusedModel.value) : undefined;
|
|
719462
|
+
const focusedSupportsEffort = focusedResolvedModel ? modelSupportsEffort(focusedResolvedModel) : false;
|
|
719463
|
+
const focusedSupportsMax = focusedResolvedModel ? modelSupportsMaxEffort(focusedResolvedModel) : false;
|
|
719464
|
+
const focusedDefaultEffort = focusedResolvedModel ? convertEffortValueToLevel(getDefaultEffortForModel(focusedResolvedModel) ?? "high") : "high";
|
|
719465
|
+
const displayedEffort = effort === "max" && !focusedSupportsMax ? "high" : effort ?? focusedDefaultEffort;
|
|
719336
719466
|
function handleProviderFocus(value2) {
|
|
719337
719467
|
setFocusedProviderValue(value2);
|
|
719338
719468
|
setProviderWarning(null);
|
|
@@ -719340,6 +719470,20 @@ function ProviderFirstModelPicker({
|
|
|
719340
719470
|
function handleModelFocus(value2) {
|
|
719341
719471
|
setFocusedModelValue(value2);
|
|
719342
719472
|
}
|
|
719473
|
+
function handleCycleEffort(direction) {
|
|
719474
|
+
if (!focusedSupportsEffort)
|
|
719475
|
+
return;
|
|
719476
|
+
setEffort((previous) => cycleProviderPickerEffort(previous ?? focusedDefaultEffort, direction, focusedSupportsMax));
|
|
719477
|
+
setHasToggledEffort(true);
|
|
719478
|
+
}
|
|
719479
|
+
use_input_default((_input, key, event) => {
|
|
719480
|
+
if (!key.leftArrow && !key.rightArrow)
|
|
719481
|
+
return;
|
|
719482
|
+
handleCycleEffort(key.rightArrow ? "right" : "left");
|
|
719483
|
+
event.stopImmediatePropagation();
|
|
719484
|
+
}, {
|
|
719485
|
+
isActive: step === "model" && !loadingModels && focusedSupportsEffort
|
|
719486
|
+
});
|
|
719343
719487
|
function handleProviderSelect(value2) {
|
|
719344
719488
|
const provider = providerOptions.find((p2) => p2.value === value2);
|
|
719345
719489
|
if (provider) {
|
|
@@ -719421,6 +719565,14 @@ function ProviderFirstModelPicker({
|
|
|
719421
719565
|
return;
|
|
719422
719566
|
}
|
|
719423
719567
|
}
|
|
719568
|
+
if (hasToggledEffort) {
|
|
719569
|
+
const persistable = effort ? toPersistableEffort(effort) : undefined;
|
|
719570
|
+
if (persistable !== undefined) {
|
|
719571
|
+
updateSettingsForSource("userSettings", {
|
|
719572
|
+
effortLevel: persistable
|
|
719573
|
+
});
|
|
719574
|
+
}
|
|
719575
|
+
}
|
|
719424
719576
|
setAppState((prev) => ({
|
|
719425
719577
|
...prev,
|
|
719426
719578
|
provider: {
|
|
@@ -719428,10 +719580,10 @@ function ProviderFirstModelPicker({
|
|
|
719428
719580
|
active: selectedProvider?.value,
|
|
719429
719581
|
model: value2
|
|
719430
719582
|
},
|
|
719431
|
-
effortValue: effort,
|
|
719583
|
+
...hasToggledEffort ? { effortValue: effort } : {},
|
|
719432
719584
|
...hasToggledThinking ? { thinkingEnabled } : {}
|
|
719433
719585
|
}));
|
|
719434
|
-
onSelect(value2, effort, selectedProvider ? {
|
|
719586
|
+
onSelect(value2, hasToggledEffort ? effort : undefined, selectedProvider ? {
|
|
719435
719587
|
providerId: selectedProvider.value,
|
|
719436
719588
|
providerName: selectedProvider.label,
|
|
719437
719589
|
accessType: selectedProvider.accessType,
|
|
@@ -719601,22 +719753,33 @@ function ProviderFirstModelPicker({
|
|
|
719601
719753
|
]
|
|
719602
719754
|
}, undefined, true, undefined, this),
|
|
719603
719755
|
/* @__PURE__ */ jsx_dev_runtime336.jsxDEV(ThemedBox_default, {
|
|
719756
|
+
width: "100%",
|
|
719757
|
+
flexDirection: "row",
|
|
719604
719758
|
children: [
|
|
719605
|
-
/* @__PURE__ */ jsx_dev_runtime336.jsxDEV(
|
|
719606
|
-
|
|
719759
|
+
/* @__PURE__ */ jsx_dev_runtime336.jsxDEV(ThemedBox_default, {
|
|
719760
|
+
width: 12,
|
|
719761
|
+
flexShrink: 0,
|
|
719762
|
+
children: /* @__PURE__ */ jsx_dev_runtime336.jsxDEV(ThemedText, {
|
|
719763
|
+
bold: true,
|
|
719764
|
+
color: "subtle",
|
|
719765
|
+
children: "API key"
|
|
719766
|
+
}, undefined, false, undefined, this)
|
|
719607
719767
|
}, undefined, false, undefined, this),
|
|
719608
|
-
/* @__PURE__ */ jsx_dev_runtime336.jsxDEV(
|
|
719609
|
-
|
|
719610
|
-
|
|
719611
|
-
|
|
719612
|
-
|
|
719613
|
-
|
|
719614
|
-
|
|
719615
|
-
|
|
719616
|
-
|
|
719617
|
-
|
|
719618
|
-
|
|
719619
|
-
|
|
719768
|
+
/* @__PURE__ */ jsx_dev_runtime336.jsxDEV(ThemedBox_default, {
|
|
719769
|
+
flexGrow: 1,
|
|
719770
|
+
children: /* @__PURE__ */ jsx_dev_runtime336.jsxDEV(TextInput, {
|
|
719771
|
+
value: apiKeyInput,
|
|
719772
|
+
onChange: setApiKeyInput,
|
|
719773
|
+
onSubmit: handleKeySubmit,
|
|
719774
|
+
mask: "*",
|
|
719775
|
+
placeholder: "paste key, then Enter",
|
|
719776
|
+
focus: true,
|
|
719777
|
+
showCursor: true,
|
|
719778
|
+
multiline: false,
|
|
719779
|
+
columns: keyInputColumns,
|
|
719780
|
+
cursorOffset: apiKeyCursorOffset,
|
|
719781
|
+
onChangeCursorOffset: setApiKeyCursorOffset
|
|
719782
|
+
}, undefined, false, undefined, this)
|
|
719620
719783
|
}, undefined, false, undefined, this)
|
|
719621
719784
|
]
|
|
719622
719785
|
}, undefined, true, undefined, this),
|
|
@@ -719809,34 +719972,31 @@ function ProviderFirstModelPicker({
|
|
|
719809
719972
|
/* @__PURE__ */ jsx_dev_runtime336.jsxDEV(ThemedText, {
|
|
719810
719973
|
color: "remember",
|
|
719811
719974
|
bold: true,
|
|
719812
|
-
children: "Select model"
|
|
719975
|
+
children: selectedProvider?.value === "openrouter" ? "OpenRouter model catalog" : "Select model"
|
|
719813
719976
|
}, undefined, false, undefined, this),
|
|
719814
719977
|
/* @__PURE__ */ jsx_dev_runtime336.jsxDEV(ThemedText, {
|
|
719815
719978
|
dimColor: true,
|
|
719816
|
-
children:
|
|
719817
|
-
|
|
719818
|
-
selectedProvider?.label,
|
|
719819
|
-
" (",
|
|
719820
|
-
selectedProvider?.accessType,
|
|
719821
|
-
")"
|
|
719822
|
-
]
|
|
719823
|
-
}, undefined, true, undefined, this),
|
|
719979
|
+
children: selectedProvider?.value === "openrouter" ? `${modelOptions.length} current models from your OpenRouter account` : `Showing models for ${selectedProvider?.label} (${selectedProvider?.accessType})`
|
|
719980
|
+
}, undefined, false, undefined, this),
|
|
719824
719981
|
/* @__PURE__ */ jsx_dev_runtime336.jsxDEV(ThemedText, {
|
|
719825
|
-
|
|
719826
|
-
color: "subtle",
|
|
719982
|
+
color: modelSource === "live" ? "success" : "subtle",
|
|
719827
719983
|
children: [
|
|
719828
|
-
|
|
719829
|
-
|
|
719984
|
+
formatModelSourceLabel(modelSource),
|
|
719985
|
+
/* @__PURE__ */ jsx_dev_runtime336.jsxDEV(ThemedText, {
|
|
719986
|
+
dimColor: true,
|
|
719987
|
+
color: "subtle",
|
|
719988
|
+
children: [
|
|
719989
|
+
" ",
|
|
719990
|
+
"\xB7 agent-capable models can be selected"
|
|
719991
|
+
]
|
|
719992
|
+
}, undefined, true, undefined, this)
|
|
719830
719993
|
]
|
|
719831
719994
|
}, undefined, true, undefined, this),
|
|
719832
719995
|
/* @__PURE__ */ jsx_dev_runtime336.jsxDEV(ThemedText, {
|
|
719833
719996
|
dimColor: true,
|
|
719834
719997
|
color: "subtle",
|
|
719835
|
-
children:
|
|
719836
|
-
|
|
719837
|
-
selectedProvider?.label
|
|
719838
|
-
]
|
|
719839
|
-
}, undefined, true, undefined, this)
|
|
719998
|
+
children: "\u2191\u2193 browse \xB7 Enter select \xB7 \u2190\u2192 effort \xB7 Ctrl+R refresh \xB7 Esc providers"
|
|
719999
|
+
}, undefined, false, undefined, this)
|
|
719840
720000
|
]
|
|
719841
720001
|
}, undefined, true, undefined, this),
|
|
719842
720002
|
loadingModels ? /* @__PURE__ */ jsx_dev_runtime336.jsxDEV(ThemedBox_default, {
|
|
@@ -719868,25 +720028,34 @@ function ProviderFirstModelPicker({
|
|
|
719868
720028
|
flexDirection: "column",
|
|
719869
720029
|
children: [
|
|
719870
720030
|
/* @__PURE__ */ jsx_dev_runtime336.jsxDEV(ThemedText, {
|
|
719871
|
-
|
|
719872
|
-
|
|
719873
|
-
|
|
719874
|
-
|
|
719875
|
-
focusedModel.description
|
|
719876
|
-
]
|
|
719877
|
-
}, undefined, true, undefined, this),
|
|
720031
|
+
bold: true,
|
|
720032
|
+
color: "text",
|
|
720033
|
+
children: focusedModel.label
|
|
720034
|
+
}, undefined, false, undefined, this),
|
|
719878
720035
|
/* @__PURE__ */ jsx_dev_runtime336.jsxDEV(ThemedText, {
|
|
719879
720036
|
dimColor: true,
|
|
719880
|
-
|
|
720037
|
+
children: focusedModel.description
|
|
720038
|
+
}, undefined, false, undefined, this),
|
|
720039
|
+
focusedSupportsEffort && /* @__PURE__ */ jsx_dev_runtime336.jsxDEV(ThemedText, {
|
|
719881
720040
|
children: [
|
|
719882
|
-
|
|
719883
|
-
|
|
720041
|
+
/* @__PURE__ */ jsx_dev_runtime336.jsxDEV(ThemedText, {
|
|
720042
|
+
color: "ur",
|
|
720043
|
+
children: [
|
|
720044
|
+
effortLevelToSymbol(displayedEffort),
|
|
720045
|
+
" ",
|
|
720046
|
+
displayedEffort.toUpperCase()
|
|
720047
|
+
]
|
|
720048
|
+
}, undefined, true, undefined, this),
|
|
720049
|
+
/* @__PURE__ */ jsx_dev_runtime336.jsxDEV(ThemedText, {
|
|
720050
|
+
dimColor: true,
|
|
720051
|
+
color: "subtle",
|
|
720052
|
+
children: [
|
|
720053
|
+
" ",
|
|
720054
|
+
"effort \xB7 use \u2190 \u2192 to adjust"
|
|
720055
|
+
]
|
|
720056
|
+
}, undefined, true, undefined, this)
|
|
719884
720057
|
]
|
|
719885
|
-
}, undefined, true, undefined, this)
|
|
719886
|
-
modelSupportsEffort(parseUserSpecifiedModel(focusedModel.value)) && /* @__PURE__ */ jsx_dev_runtime336.jsxDEV(ThemedText, {
|
|
719887
|
-
dimColor: true,
|
|
719888
|
-
children: "\u2190 \u2192 to adjust effort"
|
|
719889
|
-
}, undefined, false, undefined, this)
|
|
720058
|
+
}, undefined, true, undefined, this)
|
|
719890
720059
|
]
|
|
719891
720060
|
}, undefined, true, undefined, this),
|
|
719892
720061
|
modelWarning && /* @__PURE__ */ jsx_dev_runtime336.jsxDEV(ThemedBox_default, {
|
|
@@ -719949,6 +720118,45 @@ function ProviderFirstModelPicker({
|
|
|
719949
720118
|
}, undefined, false, undefined, this);
|
|
719950
720119
|
}
|
|
719951
720120
|
function noop8() {}
|
|
720121
|
+
function getProviderKeyInputColumns(terminalColumns) {
|
|
720122
|
+
const columns = Number.isFinite(terminalColumns) && terminalColumns > 0 ? Math.floor(terminalColumns) : 80;
|
|
720123
|
+
return Math.max(8, columns - 20);
|
|
720124
|
+
}
|
|
720125
|
+
function cycleProviderPickerEffort(current, direction, includeMax) {
|
|
720126
|
+
const levels = includeMax ? ["low", "medium", "high", "max"] : ["low", "medium", "high"];
|
|
720127
|
+
const index2 = levels.indexOf(current);
|
|
720128
|
+
const currentIndex = index2 >= 0 ? index2 : levels.indexOf("high");
|
|
720129
|
+
const delta = direction === "right" ? 1 : -1;
|
|
720130
|
+
return levels[(currentIndex + delta + levels.length) % levels.length];
|
|
720131
|
+
}
|
|
720132
|
+
function formatModelSourceLabel(source) {
|
|
720133
|
+
if (source === "live")
|
|
720134
|
+
return "\u25CF LIVE CATALOG";
|
|
720135
|
+
if (source === "cache")
|
|
720136
|
+
return "\u25D0 CACHED CATALOG";
|
|
720137
|
+
return "\u25CB BUILT-IN CATALOG";
|
|
720138
|
+
}
|
|
720139
|
+
function formatProviderModelDescription(model, source, providerId) {
|
|
720140
|
+
if (providerId !== "openrouter") {
|
|
720141
|
+
return `${model.description} \xB7 ${source}`;
|
|
720142
|
+
}
|
|
720143
|
+
const details = [];
|
|
720144
|
+
if (model.pricing === "free")
|
|
720145
|
+
details.push("FREE");
|
|
720146
|
+
else if (model.pricing === "paid")
|
|
720147
|
+
details.push("PAID");
|
|
720148
|
+
if (model.contextLength) {
|
|
720149
|
+
details.push(model.contextLength >= 1e6 ? `${Math.round(model.contextLength / 1e6)}M context` : `${Math.round(model.contextLength / 1000)}K context`);
|
|
720150
|
+
}
|
|
720151
|
+
if (model.supportedParameters?.includes("tools"))
|
|
720152
|
+
details.push("tools");
|
|
720153
|
+
else if (model.supportedParameters)
|
|
720154
|
+
details.push("chat only");
|
|
720155
|
+
if (model.reasoning || model.supportedParameters?.some((parameter) => parameter === "reasoning" || parameter === "reasoning_effort")) {
|
|
720156
|
+
details.push("reasoning");
|
|
720157
|
+
}
|
|
720158
|
+
return details.length > 0 ? details.join(" \xB7 ") : model.description;
|
|
720159
|
+
}
|
|
719952
720160
|
var import_react186, jsx_dev_runtime336, selectCurrentProvider = (s) => s.provider?.active ?? "ollama", selectEffortValue2 = (s) => s.effortValue, selectThinkingEnabled2 = (s) => s.thinkingEnabled;
|
|
719953
720161
|
var init_ProviderFirstModelPicker = __esm(() => {
|
|
719954
720162
|
init_analytics();
|
|
@@ -719970,6 +720178,7 @@ var init_ProviderFirstModelPicker = __esm(() => {
|
|
|
719970
720178
|
init_model();
|
|
719971
720179
|
init_thinking();
|
|
719972
720180
|
init_providerClient();
|
|
720181
|
+
init_EffortIndicator();
|
|
719973
720182
|
import_react186 = __toESM(require_react(), 1);
|
|
719974
720183
|
jsx_dev_runtime336 = __toESM(require_jsx_dev_runtime(), 1);
|
|
719975
720184
|
});
|
|
@@ -727492,7 +727701,7 @@ function generateHtmlReport(data, insights) {
|
|
|
727492
727701
|
</html>`;
|
|
727493
727702
|
}
|
|
727494
727703
|
function buildExportData(data, insights, facets, remoteStats) {
|
|
727495
|
-
const version3 = typeof MACRO !== "undefined" ? "1.81.
|
|
727704
|
+
const version3 = typeof MACRO !== "undefined" ? "1.81.3" : "unknown";
|
|
727496
727705
|
const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
|
|
727497
727706
|
const facets_summary = {
|
|
727498
727707
|
total: facets.size,
|
|
@@ -731805,7 +732014,7 @@ var init_sessionStorage = __esm(() => {
|
|
|
731805
732014
|
init_settings2();
|
|
731806
732015
|
init_slowOperations();
|
|
731807
732016
|
init_uuid();
|
|
731808
|
-
VERSION7 = typeof MACRO !== "undefined" ? "1.81.
|
|
732017
|
+
VERSION7 = typeof MACRO !== "undefined" ? "1.81.3" : "unknown";
|
|
731809
732018
|
MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
|
|
731810
732019
|
SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
|
|
731811
732020
|
EPHEMERAL_PROGRESS_TYPES = new Set([
|
|
@@ -733020,7 +733229,7 @@ var init_filesystem = __esm(() => {
|
|
|
733020
733229
|
});
|
|
733021
733230
|
getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
|
|
733022
733231
|
const nonce = randomBytes24(16).toString("hex");
|
|
733023
|
-
return join243(getURTempDir(), "bundled-skills", "1.81.
|
|
733232
|
+
return join243(getURTempDir(), "bundled-skills", "1.81.3", nonce);
|
|
733024
733233
|
});
|
|
733025
733234
|
getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
|
|
733026
733235
|
});
|
|
@@ -739420,7 +739629,7 @@ function computeFingerprint(messageText2, version3) {
|
|
|
739420
739629
|
}
|
|
739421
739630
|
function computeFingerprintFromMessages(messages) {
|
|
739422
739631
|
const firstMessageText = extractFirstMessageText(messages);
|
|
739423
|
-
return computeFingerprint(firstMessageText, "1.81.
|
|
739632
|
+
return computeFingerprint(firstMessageText, "1.81.3");
|
|
739424
739633
|
}
|
|
739425
739634
|
var FINGERPRINT_SALT = "59cf53e54c78";
|
|
739426
739635
|
var init_fingerprint = () => {};
|
|
@@ -741178,7 +741387,7 @@ async function querymodelH({
|
|
|
741178
741387
|
signal,
|
|
741179
741388
|
options: {
|
|
741180
741389
|
...options5,
|
|
741181
|
-
model: getSmallFastModel(),
|
|
741390
|
+
model: getSmallFastModel(options5.providerSettings),
|
|
741182
741391
|
enablePromptCaching: options5.enablePromptCaching ?? false,
|
|
741183
741392
|
outputFormat,
|
|
741184
741393
|
async getToolPermissionContext() {
|
|
@@ -741355,7 +741564,7 @@ async function sideQuery(opts) {
|
|
|
741355
741564
|
betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
|
|
741356
741565
|
}
|
|
741357
741566
|
const messageText2 = extractFirstUserMessageText(messages);
|
|
741358
|
-
const fingerprint2 = computeFingerprint(messageText2, "1.81.
|
|
741567
|
+
const fingerprint2 = computeFingerprint(messageText2, "1.81.3");
|
|
741359
741568
|
const attributionHeader = getAttributionHeader(fingerprint2);
|
|
741360
741569
|
const systemBlocks = [
|
|
741361
741570
|
attributionHeader ? { type: "text", text: attributionHeader } : null,
|
|
@@ -746189,7 +746398,7 @@ function buildSystemInitMessage(inputs) {
|
|
|
746189
746398
|
slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
|
|
746190
746399
|
apiKeySource: getURHQApiKeyWithSource().source,
|
|
746191
746400
|
betas: getSdkBetas(),
|
|
746192
|
-
ur_version: "1.81.
|
|
746401
|
+
ur_version: "1.81.3",
|
|
746193
746402
|
output_style: outputStyle,
|
|
746194
746403
|
agents: inputs.agents.map((agent2) => agent2.agentType),
|
|
746195
746404
|
skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
|
|
@@ -760025,7 +760234,7 @@ var init_useVoiceEnabled = __esm(() => {
|
|
|
760025
760234
|
function getSemverPart(version3) {
|
|
760026
760235
|
return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
|
|
760027
760236
|
}
|
|
760028
|
-
function useUpdateNotification(updatedVersion, initialVersion = "1.81.
|
|
760237
|
+
function useUpdateNotification(updatedVersion, initialVersion = "1.81.3") {
|
|
760029
760238
|
const [lastNotifiedSemver, setLastNotifiedSemver] = import_react225.useState(() => getSemverPart(initialVersion));
|
|
760030
760239
|
if (!updatedVersion) {
|
|
760031
760240
|
return null;
|
|
@@ -760074,7 +760283,7 @@ function AutoUpdater({
|
|
|
760074
760283
|
return;
|
|
760075
760284
|
}
|
|
760076
760285
|
if (false) {}
|
|
760077
|
-
const currentVersion = "1.81.
|
|
760286
|
+
const currentVersion = "1.81.3";
|
|
760078
760287
|
const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
760079
760288
|
let latestVersion = await getLatestVersion(channel);
|
|
760080
760289
|
const isDisabled = isAutoUpdaterDisabled();
|
|
@@ -760303,12 +760512,12 @@ function NativeAutoUpdater({
|
|
|
760303
760512
|
logEvent("tengu_native_auto_updater_start", {});
|
|
760304
760513
|
try {
|
|
760305
760514
|
const maxVersion = await getMaxVersion();
|
|
760306
|
-
if (maxVersion && gt("1.81.
|
|
760515
|
+
if (maxVersion && gt("1.81.3", maxVersion)) {
|
|
760307
760516
|
const msg = await getMaxVersionMessage();
|
|
760308
760517
|
setMaxVersionIssue(msg ?? "affects your version");
|
|
760309
760518
|
}
|
|
760310
760519
|
const result = await installLatest(channel);
|
|
760311
|
-
const currentVersion = "1.81.
|
|
760520
|
+
const currentVersion = "1.81.3";
|
|
760312
760521
|
const latencyMs = Date.now() - startTime;
|
|
760313
760522
|
if (result.lockFailed) {
|
|
760314
760523
|
logEvent("tengu_native_auto_updater_lock_contention", {
|
|
@@ -760445,17 +760654,17 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
760445
760654
|
const maxVersion = await getMaxVersion();
|
|
760446
760655
|
if (maxVersion && latest && gt(latest, maxVersion)) {
|
|
760447
760656
|
logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
|
|
760448
|
-
if (gte("1.81.
|
|
760449
|
-
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.81.
|
|
760657
|
+
if (gte("1.81.3", maxVersion)) {
|
|
760658
|
+
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.81.3"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
760450
760659
|
setUpdateAvailable(false);
|
|
760451
760660
|
return;
|
|
760452
760661
|
}
|
|
760453
760662
|
latest = maxVersion;
|
|
760454
760663
|
}
|
|
760455
|
-
const hasUpdate = latest && !gte("1.81.
|
|
760664
|
+
const hasUpdate = latest && !gte("1.81.3", latest) && !shouldSkipVersion(latest);
|
|
760456
760665
|
setUpdateAvailable(!!hasUpdate);
|
|
760457
760666
|
if (hasUpdate) {
|
|
760458
|
-
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.81.
|
|
760667
|
+
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.81.3"} -> ${latest}`);
|
|
760459
760668
|
}
|
|
760460
760669
|
};
|
|
760461
760670
|
$2[0] = t1;
|
|
@@ -760489,7 +760698,7 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
760489
760698
|
wrap: "truncate",
|
|
760490
760699
|
children: [
|
|
760491
760700
|
"currentVersion: ",
|
|
760492
|
-
"1.81.
|
|
760701
|
+
"1.81.3"
|
|
760493
760702
|
]
|
|
760494
760703
|
}, undefined, true, undefined, this);
|
|
760495
760704
|
$2[3] = verbose;
|
|
@@ -771342,7 +771551,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
|
|
|
771342
771551
|
project_dir: getOriginalCwd(),
|
|
771343
771552
|
added_dirs: addedDirs
|
|
771344
771553
|
},
|
|
771345
|
-
version: "1.81.
|
|
771554
|
+
version: "1.81.3",
|
|
771346
771555
|
output_style: {
|
|
771347
771556
|
name: outputStyleName
|
|
771348
771557
|
},
|
|
@@ -771477,7 +771686,7 @@ function StatusLineInner({
|
|
|
771477
771686
|
const attention = customStatusError ?? taskAttention;
|
|
771478
771687
|
const terminalSize = React133.useContext(TerminalSizeContext);
|
|
771479
771688
|
const defaultStatusLineText = buildDefaultStatusBar({
|
|
771480
|
-
version: "1.81.
|
|
771689
|
+
version: "1.81.3",
|
|
771481
771690
|
providerLabel: providerRuntime.providerLabel,
|
|
771482
771691
|
authMode: providerRuntime.authLabel,
|
|
771483
771692
|
model: renderModelName(mainLoopModel) || providerRuntime.model || "",
|
|
@@ -783733,7 +783942,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
|
|
|
783733
783942
|
} catch {}
|
|
783734
783943
|
const data = {
|
|
783735
783944
|
trigger: trigger2,
|
|
783736
|
-
version: "1.81.
|
|
783945
|
+
version: "1.81.3",
|
|
783737
783946
|
platform: process.platform,
|
|
783738
783947
|
transcript,
|
|
783739
783948
|
subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
|
|
@@ -796102,7 +796311,7 @@ function WelcomeV2() {
|
|
|
796102
796311
|
dimColor: true,
|
|
796103
796312
|
children: [
|
|
796104
796313
|
"v",
|
|
796105
|
-
"1.81.
|
|
796314
|
+
"1.81.3"
|
|
796106
796315
|
]
|
|
796107
796316
|
}, undefined, true, undefined, this)
|
|
796108
796317
|
]
|
|
@@ -797362,7 +797571,7 @@ function completeOnboarding() {
|
|
|
797362
797571
|
saveGlobalConfig((current) => ({
|
|
797363
797572
|
...current,
|
|
797364
797573
|
hasCompletedOnboarding: true,
|
|
797365
|
-
lastOnboardingVersion: "1.81.
|
|
797574
|
+
lastOnboardingVersion: "1.81.3"
|
|
797366
797575
|
}));
|
|
797367
797576
|
}
|
|
797368
797577
|
function showDialog(root2, renderer) {
|
|
@@ -802508,7 +802717,7 @@ function appendToLog(path28, message) {
|
|
|
802508
802717
|
cwd: getFsImplementation().cwd(),
|
|
802509
802718
|
userType: process.env.USER_TYPE,
|
|
802510
802719
|
sessionId: getSessionId(),
|
|
802511
|
-
version: "1.81.
|
|
802720
|
+
version: "1.81.3"
|
|
802512
802721
|
};
|
|
802513
802722
|
getLogWriter(path28).write(messageWithTimestamp);
|
|
802514
802723
|
}
|
|
@@ -806672,8 +806881,8 @@ async function getEnvLessBridgeConfig() {
|
|
|
806672
806881
|
}
|
|
806673
806882
|
async function checkEnvLessBridgeMinVersion() {
|
|
806674
806883
|
const cfg = await getEnvLessBridgeConfig();
|
|
806675
|
-
if (cfg.min_version && lt("1.81.
|
|
806676
|
-
return `Your version of UR (${"1.81.
|
|
806884
|
+
if (cfg.min_version && lt("1.81.3", cfg.min_version)) {
|
|
806885
|
+
return `Your version of UR (${"1.81.3"}) is too old for Remote Control.
|
|
806677
806886
|
Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
|
|
806678
806887
|
}
|
|
806679
806888
|
return null;
|
|
@@ -807147,7 +807356,7 @@ async function initBridgeCore(params) {
|
|
|
807147
807356
|
const rawApi = createBridgeApiClient({
|
|
807148
807357
|
baseUrl,
|
|
807149
807358
|
getAccessToken,
|
|
807150
|
-
runnerVersion: "1.81.
|
|
807359
|
+
runnerVersion: "1.81.3",
|
|
807151
807360
|
onDebug: logForDebugging,
|
|
807152
807361
|
onAuth401,
|
|
807153
807362
|
getTrustedDeviceToken
|
|
@@ -816620,7 +816829,7 @@ function getAgUiCapabilities() {
|
|
|
816620
816829
|
name: "UR-Nexus",
|
|
816621
816830
|
type: "ur-nexus",
|
|
816622
816831
|
description: "Provider-flexible, local-first autonomous engineering workflow agent.",
|
|
816623
|
-
version: "1.81.
|
|
816832
|
+
version: "1.81.3",
|
|
816624
816833
|
provider: "UR",
|
|
816625
816834
|
documentationUrl: "https://github.com/Maitham16/UR/blob/master/docs/AG_UI.md"
|
|
816626
816835
|
},
|
|
@@ -817847,7 +818056,7 @@ function createMCPServer(cwd4, debug2, verbose) {
|
|
|
817847
818056
|
};
|
|
817848
818057
|
const server2 = new Server({
|
|
817849
818058
|
name: "ur-nexus",
|
|
817850
|
-
version: "1.81.
|
|
818059
|
+
version: "1.81.3"
|
|
817851
818060
|
}, {
|
|
817852
818061
|
capabilities: {
|
|
817853
818062
|
tools: {}
|
|
@@ -819051,7 +819260,7 @@ function thrownResponse(error40) {
|
|
|
819051
819260
|
}
|
|
819052
819261
|
async function createUrMcp2026Runtime(options5) {
|
|
819053
819262
|
const server2 = createMCPServer(options5.cwd, options5.debug === true, options5.verbose === true);
|
|
819054
|
-
const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.81.
|
|
819263
|
+
const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.81.3" }, { capabilities: {} });
|
|
819055
819264
|
const [clientTransport, serverTransport] = createLinkedTransportPair();
|
|
819056
819265
|
try {
|
|
819057
819266
|
await server2.connect(serverTransport);
|
|
@@ -819062,7 +819271,7 @@ async function createUrMcp2026Runtime(options5) {
|
|
|
819062
819271
|
}
|
|
819063
819272
|
const runtime2 = new Mcp2026Runtime({
|
|
819064
819273
|
cwd: options5.cwd,
|
|
819065
|
-
version: "1.81.
|
|
819274
|
+
version: "1.81.3",
|
|
819066
819275
|
backend: {
|
|
819067
819276
|
listTools: async () => {
|
|
819068
819277
|
const listed = await client2.listTools();
|
|
@@ -821797,7 +822006,7 @@ async function update() {
|
|
|
821797
822006
|
logEvent("tengu_update_check", {});
|
|
821798
822007
|
const diagnostic2 = await getDoctorDiagnostic();
|
|
821799
822008
|
const result = await checkUpgradeStatus({
|
|
821800
|
-
currentVersion: "1.81.
|
|
822009
|
+
currentVersion: "1.81.3",
|
|
821801
822010
|
packageName: UR_AGENT_PACKAGE_NAME,
|
|
821802
822011
|
installationType: diagnostic2.installationType,
|
|
821803
822012
|
latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
|
|
@@ -823125,7 +823334,7 @@ ${customInstructions}` : customInstructions;
|
|
|
823125
823334
|
}
|
|
823126
823335
|
}
|
|
823127
823336
|
logForDiagnosticsNoPII("info", "started", {
|
|
823128
|
-
version: "1.81.
|
|
823337
|
+
version: "1.81.3",
|
|
823129
823338
|
is_native_binary: isInBundledMode()
|
|
823130
823339
|
});
|
|
823131
823340
|
registerCleanup(async () => {
|
|
@@ -823912,7 +824121,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
823912
824121
|
pendingHookMessages
|
|
823913
824122
|
}, renderAndRun);
|
|
823914
824123
|
}
|
|
823915
|
-
}).version("1.81.
|
|
824124
|
+
}).version("1.81.3 (UR-Nexus)", "-v, --version", "Output the version number");
|
|
823916
824125
|
program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
|
|
823917
824126
|
program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
|
|
823918
824127
|
if (canUserConfigureAdvisor()) {
|
|
@@ -825039,7 +825248,7 @@ if (false) {}
|
|
|
825039
825248
|
async function main2() {
|
|
825040
825249
|
const args = process.argv.slice(2);
|
|
825041
825250
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
825042
|
-
console.log(`${"1.81.
|
|
825251
|
+
console.log(`${"1.81.3"} (UR-Nexus)`);
|
|
825043
825252
|
return;
|
|
825044
825253
|
}
|
|
825045
825254
|
if (args[0] === "a2a" && args[1] === "serve" && !args.includes("--help") && !args.includes("-h")) {
|