ur-agent 1.65.12 → 1.65.13
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 +15 -0
- package/dist/cli.js +419 -339
- package/docs/VALIDATION.md +1 -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/technical/04-tools.md +19 -5
- package/technical/README.md +1 -1
package/dist/cli.js
CHANGED
|
@@ -56693,6 +56693,150 @@ var init_ollamaTuning = __esm(() => {
|
|
|
56693
56693
|
NUM_CTX_BUCKETS = [32768, 49152, 65536, 98304, 131072, 196608, 262144];
|
|
56694
56694
|
});
|
|
56695
56695
|
|
|
56696
|
+
// src/tools/ExitPlanModeTool/constants.ts
|
|
56697
|
+
var EXIT_PLAN_MODE_TOOL_NAME = "ExitPlanMode", EXIT_PLAN_MODE_V2_TOOL_NAME = "ExitPlanMode";
|
|
56698
|
+
|
|
56699
|
+
// src/tools/AskUserQuestionTool/prompt.ts
|
|
56700
|
+
var ASK_USER_QUESTION_TOOL_NAME = "AskUserQuestion", ASK_USER_QUESTION_TOOL_CHIP_WIDTH = 12, DESCRIPTION = "Asks the user multiple choice questions to gather information, clarify ambiguity, understand preferences, make decisions or offer them choices. This is the required way to present the user with a choice: whenever you would otherwise end a message by asking the user to pick between options or decide a direction, call this tool instead of asking in plain text, so the user gets a selectable menu rather than having to type a free-form answer.", PREVIEW_FEATURE_PROMPT, ASK_USER_QUESTION_TOOL_PROMPT;
|
|
56701
|
+
var init_prompt = __esm(() => {
|
|
56702
|
+
PREVIEW_FEATURE_PROMPT = {
|
|
56703
|
+
markdown: `
|
|
56704
|
+
Preview feature:
|
|
56705
|
+
Use the optional \`preview\` field on options when presenting concrete artifacts that users need to visually compare:
|
|
56706
|
+
- ASCII mockups of UI layouts or components
|
|
56707
|
+
- Code snippets showing different implementations
|
|
56708
|
+
- Diagram variations
|
|
56709
|
+
- Configuration examples
|
|
56710
|
+
|
|
56711
|
+
Preview content is rendered as markdown in a monospace box. Multi-line text with newlines is supported. When any option has a preview, the UI switches to a side-by-side layout with a vertical option list on the left and preview on the right. Do not use previews for simple preference questions where labels and descriptions suffice. Note: previews are only supported for single-select questions (not multiSelect).
|
|
56712
|
+
`,
|
|
56713
|
+
html: `
|
|
56714
|
+
Preview feature:
|
|
56715
|
+
Use the optional \`preview\` field on options when presenting concrete artifacts that users need to visually compare:
|
|
56716
|
+
- Plain-text or ASCII mockups of UI layouts or components
|
|
56717
|
+
- Inert code snippets showing different implementations
|
|
56718
|
+
- Textual visual comparisons or diagrams
|
|
56719
|
+
|
|
56720
|
+
Preview content is untrusted text: raw HTML is not accepted or executed. It is escaped and rendered as inert preformatted text. Do not include HTML tags, attributes, URLs, scripts, styles, event handlers, or other executable markup. Do not use previews for simple preference questions where labels and descriptions suffice. Note: previews are only supported for single-select questions (not multiSelect).
|
|
56721
|
+
`
|
|
56722
|
+
};
|
|
56723
|
+
ASK_USER_QUESTION_TOOL_PROMPT = `Use this tool when you need to ask the user questions during execution. This allows you to:
|
|
56724
|
+
1. Gather user preferences or requirements
|
|
56725
|
+
2. Clarify ambiguous instructions
|
|
56726
|
+
3. Get decisions on implementation choices as you work
|
|
56727
|
+
4. Offer choices to the user about what direction to take.
|
|
56728
|
+
|
|
56729
|
+
Strongly prefer this tool over asking a question in plain assistant text. Any time your reply would end with a question that offers the user options or asks them to choose a direction (e.g. "Would you like A or B?", "Which approach should I take?", "Want me to do X or Y?"), call this tool with those options instead so the user gets a selectable arrow-key menu. Only ask in plain text when the answer is genuinely open-ended and cannot be expressed as a small set of choices.
|
|
56730
|
+
|
|
56731
|
+
Strict input hierarchy:
|
|
56732
|
+
- Invoke the tool with exactly one top-level \`questions\` array containing 1-4 complete question objects.
|
|
56733
|
+
- Every question object contains \`question\`, a concise \`header\` (maximum 12 characters), and an \`options\` array with 2-8 option objects. Use \`multiSelect: true\` only when more than one choice may apply.
|
|
56734
|
+
- Every option object contains a \`label\`. Add \`description\` only when it contributes a real consequence, trade-off, or limitation; \`preview\` is optional.
|
|
56735
|
+
- Keep each question and its own options nested together. Never put option rows directly in the top-level \`questions\` array, and never send incomplete header/prompt-only entries.
|
|
56736
|
+
|
|
56737
|
+
Canonical valid tool arguments (invoke the structured tool; do not print this object as prose):
|
|
56738
|
+
{"questions":[{"question":"Which database should we use?","header":"Database","options":[{"label":"PostgreSQL (Recommended)","description":"Strong consistency and concurrency; requires a running server and migrations."},{"label":"SQLite","description":"Zero setup and a single file; unsuitable for multiple concurrent writers."}],"multiSelect":false}]}
|
|
56739
|
+
|
|
56740
|
+
Usage notes:
|
|
56741
|
+
- Users will always be able to select "Other" to provide custom text input, so it is safe to offer choices even when you are unsure you have listed every option
|
|
56742
|
+
- Use multiSelect: true to allow multiple answers to be selected for a question
|
|
56743
|
+
- If you recommend a specific option, make that the first option in the list and add "(Recommended)" at the end of the label
|
|
56744
|
+
- Do not over-question. Ask only decisions that materially affect the result and cannot be inferred safely. If more than four decisions are truly needed, ask the most blocking 1-4 first and ask the remainder in a later round.
|
|
56745
|
+
|
|
56746
|
+
Writing the three fields \u2014 they must each carry DIFFERENT information:
|
|
56747
|
+
- \`header\` names the dimension being decided ("Database", "Auth method"). It is not a shortened copy of the question.
|
|
56748
|
+
- \`label\` names the choice ("PostgreSQL"). It is not a restatement of the question.
|
|
56749
|
+
- \`description\` says what happens if this is picked and what it costs \u2014 the trade-off, limitation or consequence the label does not already convey. It is the only field with room to be genuinely informative, so it must not paraphrase the label back to the user.
|
|
56750
|
+
|
|
56751
|
+
A description that can be derived from reading the label is wasted space and makes the menu harder to use, not easier. Before writing one, ask: does this tell the user something they could not already see? If not, replace it with the thing that actually distinguishes this option from its neighbours.
|
|
56752
|
+
|
|
56753
|
+
Bad \u2014 description restates the label:
|
|
56754
|
+
question: "Which database should we use?"
|
|
56755
|
+
header: "Which DB" (repeats the question)
|
|
56756
|
+
label: "Use PostgreSQL" description: "Use PostgreSQL as the database."
|
|
56757
|
+
|
|
56758
|
+
Good \u2014 each field adds something:
|
|
56759
|
+
question: "Which database should we use?"
|
|
56760
|
+
header: "Database"
|
|
56761
|
+
label: "PostgreSQL" description: "Relational with strong consistency; needs a running server and a migration step."
|
|
56762
|
+
label: "SQLite" description: "Zero setup, single file; no concurrent writers, so it will not survive multiple workers."
|
|
56763
|
+
|
|
56764
|
+
Plan mode note: In plan mode, use this tool to clarify requirements or choose between approaches BEFORE finalizing your plan. Do NOT use this tool to ask "Is my plan ready?" or "Should I proceed?" - use ${EXIT_PLAN_MODE_TOOL_NAME} for plan approval. IMPORTANT: Do not reference "the plan" in your questions (e.g., "Do you have feedback about the plan?", "Does the plan look good?") because the user cannot see the plan in the UI until you call ${EXIT_PLAN_MODE_TOOL_NAME}. If you need plan approval, use ${EXIT_PLAN_MODE_TOOL_NAME} instead.
|
|
56765
|
+
`;
|
|
56766
|
+
});
|
|
56767
|
+
|
|
56768
|
+
// src/tools/AskUserQuestionTool/normalization.ts
|
|
56769
|
+
function objectValue(value) {
|
|
56770
|
+
return value && typeof value === "object" && !Array.isArray(value) ? value : null;
|
|
56771
|
+
}
|
|
56772
|
+
function sliceWithoutSplittingSurrogate(value, max) {
|
|
56773
|
+
let result = value.slice(0, max);
|
|
56774
|
+
if (result.length > 0 && /[\uD800-\uDBFF]/.test(result[result.length - 1])) {
|
|
56775
|
+
result = result.slice(0, -1);
|
|
56776
|
+
}
|
|
56777
|
+
return result;
|
|
56778
|
+
}
|
|
56779
|
+
function headerFromQuestion(question, index2) {
|
|
56780
|
+
const word = question.replace(/[^A-Za-z0-9]+/g, " ").split(/\s+/).find((part) => part && !HEADER_STOP_WORDS.has(part.toLowerCase())) ?? `Question ${index2 + 1}`;
|
|
56781
|
+
return sliceWithoutSplittingSurrogate(word, ASK_USER_QUESTION_TOOL_CHIP_WIDTH);
|
|
56782
|
+
}
|
|
56783
|
+
function normalizeQuestionHeader(header, question, index2) {
|
|
56784
|
+
const trimmed = header.trim();
|
|
56785
|
+
if (trimmed.length <= ASK_USER_QUESTION_TOOL_CHIP_WIDTH || trimmed.length > MAX_RECOVERABLE_HEADER_CHARS || CONTROL_OR_ANSI_RE.test(trimmed)) {
|
|
56786
|
+
return trimmed;
|
|
56787
|
+
}
|
|
56788
|
+
const firstWord = trimmed.split(/\s+/)[0] ?? "";
|
|
56789
|
+
const compact = sliceWithoutSplittingSurrogate(firstWord, ASK_USER_QUESTION_TOOL_CHIP_WIDTH);
|
|
56790
|
+
return compact || headerFromQuestion(question, index2);
|
|
56791
|
+
}
|
|
56792
|
+
function normalizeAskQuestionHeaders(value) {
|
|
56793
|
+
if (!Array.isArray(value.questions))
|
|
56794
|
+
return value;
|
|
56795
|
+
let changed = false;
|
|
56796
|
+
const questions = value.questions.map((candidate, index2) => {
|
|
56797
|
+
const question = objectValue(candidate);
|
|
56798
|
+
if (!question || typeof question.header !== "string" || typeof question.question !== "string") {
|
|
56799
|
+
return candidate;
|
|
56800
|
+
}
|
|
56801
|
+
const header = normalizeQuestionHeader(question.header, question.question, index2);
|
|
56802
|
+
if (header === question.header)
|
|
56803
|
+
return candidate;
|
|
56804
|
+
changed = true;
|
|
56805
|
+
return { ...question, header };
|
|
56806
|
+
});
|
|
56807
|
+
return changed ? { ...value, questions } : value;
|
|
56808
|
+
}
|
|
56809
|
+
var MAX_RECOVERABLE_HEADER_CHARS = 500, CONTROL_OR_ANSI_RE, HEADER_STOP_WORDS;
|
|
56810
|
+
var init_normalization = __esm(() => {
|
|
56811
|
+
init_prompt();
|
|
56812
|
+
CONTROL_OR_ANSI_RE = /[\u0000-\u0008\u000B\u000C\u000E-\u001F\u007F]|\u001B\[/;
|
|
56813
|
+
HEADER_STOP_WORDS = new Set([
|
|
56814
|
+
"a",
|
|
56815
|
+
"about",
|
|
56816
|
+
"also",
|
|
56817
|
+
"an",
|
|
56818
|
+
"are",
|
|
56819
|
+
"be",
|
|
56820
|
+
"do",
|
|
56821
|
+
"does",
|
|
56822
|
+
"for",
|
|
56823
|
+
"is",
|
|
56824
|
+
"or",
|
|
56825
|
+
"should",
|
|
56826
|
+
"support",
|
|
56827
|
+
"that",
|
|
56828
|
+
"the",
|
|
56829
|
+
"this",
|
|
56830
|
+
"to",
|
|
56831
|
+
"want",
|
|
56832
|
+
"what",
|
|
56833
|
+
"which",
|
|
56834
|
+
"with",
|
|
56835
|
+
"without",
|
|
56836
|
+
"you"
|
|
56837
|
+
]);
|
|
56838
|
+
});
|
|
56839
|
+
|
|
56696
56840
|
// src/cli/transports/kimiToolCalls.ts
|
|
56697
56841
|
import { randomUUID as randomUUID2 } from "crypto";
|
|
56698
56842
|
function parsedToolCallId(prefix, index2) {
|
|
@@ -56918,38 +57062,9 @@ function removableLineRange(text, start, end) {
|
|
|
56918
57062
|
return null;
|
|
56919
57063
|
return { prefixEnd: lineStart, end: end + after[0].length };
|
|
56920
57064
|
}
|
|
56921
|
-
function
|
|
57065
|
+
function objectValue2(value) {
|
|
56922
57066
|
return value && typeof value === "object" && !Array.isArray(value) ? value : null;
|
|
56923
57067
|
}
|
|
56924
|
-
function headerFromQuestion(question, index2) {
|
|
56925
|
-
const stopWords = new Set([
|
|
56926
|
-
"a",
|
|
56927
|
-
"about",
|
|
56928
|
-
"also",
|
|
56929
|
-
"an",
|
|
56930
|
-
"are",
|
|
56931
|
-
"be",
|
|
56932
|
-
"do",
|
|
56933
|
-
"does",
|
|
56934
|
-
"for",
|
|
56935
|
-
"is",
|
|
56936
|
-
"or",
|
|
56937
|
-
"should",
|
|
56938
|
-
"support",
|
|
56939
|
-
"that",
|
|
56940
|
-
"the",
|
|
56941
|
-
"this",
|
|
56942
|
-
"to",
|
|
56943
|
-
"want",
|
|
56944
|
-
"what",
|
|
56945
|
-
"which",
|
|
56946
|
-
"with",
|
|
56947
|
-
"without",
|
|
56948
|
-
"you"
|
|
56949
|
-
]);
|
|
56950
|
-
const word = question.replace(/[^A-Za-z0-9]+/g, " ").split(/\s+/).find((part) => part && !stopWords.has(part.toLowerCase())) ?? `Question ${index2 + 1}`;
|
|
56951
|
-
return word.slice(0, 12);
|
|
56952
|
-
}
|
|
56953
57068
|
function stringField(input, names) {
|
|
56954
57069
|
for (const name of names) {
|
|
56955
57070
|
const value = input[name];
|
|
@@ -56959,7 +57074,7 @@ function stringField(input, names) {
|
|
|
56959
57074
|
return "";
|
|
56960
57075
|
}
|
|
56961
57076
|
function normalizeQuestionOption(value) {
|
|
56962
|
-
const option =
|
|
57077
|
+
const option = objectValue2(value);
|
|
56963
57078
|
if (!option)
|
|
56964
57079
|
return null;
|
|
56965
57080
|
if (!sameKeys(option, ["label"], ["description", "preview"]))
|
|
@@ -56979,7 +57094,7 @@ function normalizeQuestionOption(value) {
|
|
|
56979
57094
|
};
|
|
56980
57095
|
}
|
|
56981
57096
|
function normalizeQuestion(value, index2) {
|
|
56982
|
-
const question =
|
|
57097
|
+
const question = objectValue2(value);
|
|
56983
57098
|
if (!question)
|
|
56984
57099
|
return null;
|
|
56985
57100
|
const questionText = stringField(question, [
|
|
@@ -57001,7 +57116,7 @@ function normalizeQuestion(value, index2) {
|
|
|
57001
57116
|
const options = normalizedOptions;
|
|
57002
57117
|
if (options.length < 2 || options.length > 8)
|
|
57003
57118
|
return null;
|
|
57004
|
-
const header = typeof question.header === "string" && question.header.trim() ? question.header
|
|
57119
|
+
const header = typeof question.header === "string" && question.header.trim() ? normalizeQuestionHeader(question.header, questionText, index2) : headerFromQuestion(questionText, index2);
|
|
57005
57120
|
return {
|
|
57006
57121
|
question: questionText,
|
|
57007
57122
|
header,
|
|
@@ -57018,7 +57133,7 @@ function normalizeAskUserQuestionInput(input) {
|
|
|
57018
57133
|
return null;
|
|
57019
57134
|
return {
|
|
57020
57135
|
questions,
|
|
57021
|
-
...
|
|
57136
|
+
...objectValue2(input.metadata) ? { metadata: input.metadata } : {}
|
|
57022
57137
|
};
|
|
57023
57138
|
}
|
|
57024
57139
|
function stringArray(value) {
|
|
@@ -57084,7 +57199,7 @@ function normalizeTaskUpdateInput(input) {
|
|
|
57084
57199
|
"metadata"
|
|
57085
57200
|
];
|
|
57086
57201
|
const allowedStatuses = new Set(["pending", "in_progress", "completed", "deleted"]);
|
|
57087
|
-
if (!sameKeys(input, ["taskId"], updateFields) || typeof input.taskId !== "string" || !updateFields.some((field) => Object.prototype.hasOwnProperty.call(input, field)) || input.subject !== undefined && typeof input.subject !== "string" || input.description !== undefined && typeof input.description !== "string" || input.activeForm !== undefined && typeof input.activeForm !== "string" || input.status !== undefined && (typeof input.status !== "string" || !allowedStatuses.has(input.status)) || input.addBlocks !== undefined && !stringArray(input.addBlocks) || input.addBlockedBy !== undefined && !stringArray(input.addBlockedBy) || input.owner !== undefined && typeof input.owner !== "string" || input.metadata !== undefined && !
|
|
57202
|
+
if (!sameKeys(input, ["taskId"], updateFields) || typeof input.taskId !== "string" || !updateFields.some((field) => Object.prototype.hasOwnProperty.call(input, field)) || input.subject !== undefined && typeof input.subject !== "string" || input.description !== undefined && typeof input.description !== "string" || input.activeForm !== undefined && typeof input.activeForm !== "string" || input.status !== undefined && (typeof input.status !== "string" || !allowedStatuses.has(input.status)) || input.addBlocks !== undefined && !stringArray(input.addBlocks) || input.addBlockedBy !== undefined && !stringArray(input.addBlockedBy) || input.owner !== undefined && typeof input.owner !== "string" || input.metadata !== undefined && !objectValue2(input.metadata)) {
|
|
57088
57203
|
return null;
|
|
57089
57204
|
}
|
|
57090
57205
|
return input;
|
|
@@ -57101,10 +57216,11 @@ function maybeBareJsonToolCall(text, availableToolNames, index2) {
|
|
|
57101
57216
|
if (!hasTool(availableToolNames, name)) {
|
|
57102
57217
|
return null;
|
|
57103
57218
|
}
|
|
57219
|
+
const wrappedInput = input.input;
|
|
57104
57220
|
return {
|
|
57105
57221
|
id: parsedToolCallId("bare", index2),
|
|
57106
57222
|
name,
|
|
57107
|
-
input:
|
|
57223
|
+
input: name === "AskUserQuestion" ? normalizeAskQuestionHeaders(wrappedInput) : wrappedInput
|
|
57108
57224
|
};
|
|
57109
57225
|
}
|
|
57110
57226
|
if (hasTool(availableToolNames, "TaskCreate") && sameKeys(input, ["subject", "description"], ["activeForm", "metadata"]) && typeof input.subject === "string" && typeof input.description === "string" && (input.activeForm === undefined || typeof input.activeForm === "string") && (input.metadata === undefined || typeof input.metadata === "object" && input.metadata !== null && !Array.isArray(input.metadata))) {
|
|
@@ -57308,6 +57424,7 @@ function synthesizeKimiToolCalls(message) {
|
|
|
57308
57424
|
var SECTION_RE, CALL_RE, STRAY_RE, KimiToolCallParseError;
|
|
57309
57425
|
var init_kimiToolCalls = __esm(() => {
|
|
57310
57426
|
init_json();
|
|
57427
|
+
init_normalization();
|
|
57311
57428
|
SECTION_RE = /<\|tool_calls_section_begin\|>([\s\S]*?)<\|tool_calls_section_end\|>/g;
|
|
57312
57429
|
CALL_RE = /<\|tool_call_begin\|>([\s\S]*?)<\|tool_call_argument_begin\|>([\s\S]*?)<\|tool_call_end\|>/g;
|
|
57313
57430
|
STRAY_RE = /<\|tool_calls?_section_(?:begin|end)\|>|<\|tool_call_(?:begin|end|argument_begin)\|>/g;
|
|
@@ -75444,7 +75561,7 @@ var init_auth = __esm(() => {
|
|
|
75444
75561
|
|
|
75445
75562
|
// src/utils/userAgent.ts
|
|
75446
75563
|
function getURCodeUserAgent() {
|
|
75447
|
-
return `ur/${"1.65.
|
|
75564
|
+
return `ur/${"1.65.13"}`;
|
|
75448
75565
|
}
|
|
75449
75566
|
|
|
75450
75567
|
// src/utils/workloadContext.ts
|
|
@@ -75466,7 +75583,7 @@ function getUserAgent() {
|
|
|
75466
75583
|
const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
|
|
75467
75584
|
const workload = getWorkload();
|
|
75468
75585
|
const workloadSuffix = workload ? `, workload/${workload}` : "";
|
|
75469
|
-
return `ur-cli/${"1.65.
|
|
75586
|
+
return `ur-cli/${"1.65.13"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
|
|
75470
75587
|
}
|
|
75471
75588
|
function getMCPUserAgent() {
|
|
75472
75589
|
const parts = [];
|
|
@@ -75480,7 +75597,7 @@ function getMCPUserAgent() {
|
|
|
75480
75597
|
parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
|
|
75481
75598
|
}
|
|
75482
75599
|
const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
|
|
75483
|
-
return `ur/${"1.65.
|
|
75600
|
+
return `ur/${"1.65.13"}${suffix}`;
|
|
75484
75601
|
}
|
|
75485
75602
|
function getWebFetchUserAgent() {
|
|
75486
75603
|
return `UR-User (${getURCodeUserAgent()})`;
|
|
@@ -75618,7 +75735,7 @@ var init_user = __esm(() => {
|
|
|
75618
75735
|
deviceId,
|
|
75619
75736
|
sessionId: getSessionId(),
|
|
75620
75737
|
email: getEmail(),
|
|
75621
|
-
appVersion: "1.65.
|
|
75738
|
+
appVersion: "1.65.13",
|
|
75622
75739
|
platform: getHostPlatformForAnalytics(),
|
|
75623
75740
|
organizationUuid,
|
|
75624
75741
|
accountUuid,
|
|
@@ -83818,7 +83935,7 @@ var init_metadata = __esm(() => {
|
|
|
83818
83935
|
COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
|
|
83819
83936
|
WHITESPACE_REGEX = /\s+/;
|
|
83820
83937
|
getVersionBase = memoize_default(() => {
|
|
83821
|
-
const match = "1.65.
|
|
83938
|
+
const match = "1.65.13".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
|
|
83822
83939
|
return match ? match[0] : undefined;
|
|
83823
83940
|
});
|
|
83824
83941
|
buildEnvContext = memoize_default(async () => {
|
|
@@ -83858,7 +83975,7 @@ var init_metadata = __esm(() => {
|
|
|
83858
83975
|
isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
|
|
83859
83976
|
isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
|
|
83860
83977
|
isURAiAuth: isURAISubscriber(),
|
|
83861
|
-
version: "1.65.
|
|
83978
|
+
version: "1.65.13",
|
|
83862
83979
|
versionBase: getVersionBase(),
|
|
83863
83980
|
buildTime: "",
|
|
83864
83981
|
deploymentEnvironment: env2.detectDeploymentEnvironment(),
|
|
@@ -84528,7 +84645,7 @@ function initialize1PEventLogging() {
|
|
|
84528
84645
|
const platform2 = getPlatform();
|
|
84529
84646
|
const attributes = {
|
|
84530
84647
|
[import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
|
|
84531
|
-
[import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.65.
|
|
84648
|
+
[import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.65.13"
|
|
84532
84649
|
};
|
|
84533
84650
|
if (platform2 === "wsl") {
|
|
84534
84651
|
const wslVersion = getWslVersion();
|
|
@@ -84556,7 +84673,7 @@ function initialize1PEventLogging() {
|
|
|
84556
84673
|
})
|
|
84557
84674
|
]
|
|
84558
84675
|
});
|
|
84559
|
-
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.65.
|
|
84676
|
+
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.65.13");
|
|
84560
84677
|
}
|
|
84561
84678
|
async function reinitialize1PEventLoggingIfConfigChanged() {
|
|
84562
84679
|
if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
|
|
@@ -86616,7 +86733,7 @@ var init_constants2 = __esm(() => {
|
|
|
86616
86733
|
var TASK_OUTPUT_TOOL_NAME = "TaskOutput";
|
|
86617
86734
|
|
|
86618
86735
|
// src/tools/TaskStopTool/prompt.ts
|
|
86619
|
-
var TASK_STOP_TOOL_NAME = "TaskStop",
|
|
86736
|
+
var TASK_STOP_TOOL_NAME = "TaskStop", DESCRIPTION2 = `
|
|
86620
86737
|
- Stops a running background task by its ID
|
|
86621
86738
|
- Takes a task_id parameter identifying the task to stop
|
|
86622
86739
|
- Returns a success or failure status
|
|
@@ -94444,7 +94561,7 @@ function formatAgentTrendReport(report = buildAgentTrendReport()) {
|
|
|
94444
94561
|
function formatA2AAgentCard(options = {}, pretty = true) {
|
|
94445
94562
|
return JSON.stringify(buildA2AAgentCard(options), null, pretty ? 2 : 0);
|
|
94446
94563
|
}
|
|
94447
|
-
var urVersion = "1.65.
|
|
94564
|
+
var urVersion = "1.65.13", researchSnapshotDate = "2026-07-15", coverage, priorityRoadmap;
|
|
94448
94565
|
var init_trends = __esm(() => {
|
|
94449
94566
|
init_a2aCardSignature();
|
|
94450
94567
|
coverage = [
|
|
@@ -97247,7 +97364,7 @@ function getAttributionHeader(fingerprint) {
|
|
|
97247
97364
|
if (!isAttributionHeaderEnabled()) {
|
|
97248
97365
|
return "";
|
|
97249
97366
|
}
|
|
97250
|
-
const version2 = `${"1.65.
|
|
97367
|
+
const version2 = `${"1.65.13"}.${fingerprint}`;
|
|
97251
97368
|
const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
|
|
97252
97369
|
const cch = "";
|
|
97253
97370
|
const workload = getWorkload();
|
|
@@ -97688,7 +97805,7 @@ function getDescription() {
|
|
|
97688
97805
|
`;
|
|
97689
97806
|
}
|
|
97690
97807
|
var GREP_TOOL_NAME = "Grep";
|
|
97691
|
-
var
|
|
97808
|
+
var init_prompt2 = __esm(() => {
|
|
97692
97809
|
init_constants2();
|
|
97693
97810
|
});
|
|
97694
97811
|
|
|
@@ -97753,8 +97870,8 @@ ${lineFormat}
|
|
|
97753
97870
|
- You will regularly be asked to read screenshots. If the user provides a path to a screenshot, ALWAYS use this tool to view the file at the path. This tool will work with all temporary file paths.
|
|
97754
97871
|
- If you read a file that exists but has empty contents you will receive a system reminder warning in place of file contents.`;
|
|
97755
97872
|
}
|
|
97756
|
-
var FILE_READ_TOOL_NAME = "Read", FILE_UNCHANGED_STUB = "File unchanged since last read. The content from the earlier Read tool_result in this conversation is still current \u2014 refer to that instead of re-reading.", MAX_LINES_TO_READ = 2000,
|
|
97757
|
-
var
|
|
97873
|
+
var FILE_READ_TOOL_NAME = "Read", FILE_UNCHANGED_STUB = "File unchanged since last read. The content from the earlier Read tool_result in this conversation is still current \u2014 refer to that instead of re-reading.", MAX_LINES_TO_READ = 2000, DESCRIPTION3 = "Read a file from the local filesystem.", LINE_FORMAT_INSTRUCTION = "- Results are returned using cat -n format, with line numbers starting at 1", OFFSET_INSTRUCTION_DEFAULT = "- You can optionally specify a line offset and limit (especially handy for long files), but it's recommended to read the whole file by not providing these parameters", OFFSET_INSTRUCTION_TARGETED = "- When you already know which part of the file you need, only read that part. This can be important for larger files.";
|
|
97874
|
+
var init_prompt3 = __esm(() => {
|
|
97758
97875
|
init_pdfUtils();
|
|
97759
97876
|
});
|
|
97760
97877
|
|
|
@@ -97777,12 +97894,12 @@ Usage:
|
|
|
97777
97894
|
- Only use emojis if the user explicitly requests it. Avoid writing emojis to files unless asked.`;
|
|
97778
97895
|
}
|
|
97779
97896
|
var FILE_WRITE_TOOL_NAME = "Write";
|
|
97780
|
-
var
|
|
97781
|
-
|
|
97897
|
+
var init_prompt4 = __esm(() => {
|
|
97898
|
+
init_prompt3();
|
|
97782
97899
|
});
|
|
97783
97900
|
|
|
97784
97901
|
// src/tools/GlobTool/prompt.ts
|
|
97785
|
-
var GLOB_TOOL_NAME = "Glob",
|
|
97902
|
+
var GLOB_TOOL_NAME = "Glob", DESCRIPTION4 = `- Fast file pattern matching tool that works with any codebase size
|
|
97786
97903
|
- Supports glob patterns like "**/*.js" or "src/**/*.ts"
|
|
97787
97904
|
- Returns matching file paths sorted by modification time
|
|
97788
97905
|
- Use this tool when you need to find files by name patterns
|
|
@@ -97803,9 +97920,9 @@ var REPL_TOOL_NAME = "REPL", REPL_ONLY_TOOLS;
|
|
|
97803
97920
|
var init_constants4 = __esm(() => {
|
|
97804
97921
|
init_envUtils();
|
|
97805
97922
|
init_constants2();
|
|
97806
|
-
init_prompt2();
|
|
97807
97923
|
init_prompt3();
|
|
97808
|
-
|
|
97924
|
+
init_prompt4();
|
|
97925
|
+
init_prompt2();
|
|
97809
97926
|
REPL_ONLY_TOOLS = new Set([
|
|
97810
97927
|
FILE_READ_TOOL_NAME,
|
|
97811
97928
|
FILE_WRITE_TOOL_NAME,
|
|
@@ -114639,28 +114756,28 @@ function getEventPriority(eventType) {
|
|
|
114639
114756
|
case "focus":
|
|
114640
114757
|
case "blur":
|
|
114641
114758
|
case "paste":
|
|
114642
|
-
return
|
|
114759
|
+
return import_constants12.DiscreteEventPriority;
|
|
114643
114760
|
case "resize":
|
|
114644
114761
|
case "scroll":
|
|
114645
114762
|
case "mousemove":
|
|
114646
|
-
return
|
|
114763
|
+
return import_constants12.ContinuousEventPriority;
|
|
114647
114764
|
default:
|
|
114648
|
-
return
|
|
114765
|
+
return import_constants12.DefaultEventPriority;
|
|
114649
114766
|
}
|
|
114650
114767
|
}
|
|
114651
114768
|
|
|
114652
114769
|
class Dispatcher {
|
|
114653
114770
|
currentEvent = null;
|
|
114654
|
-
currentUpdatePriority =
|
|
114771
|
+
currentUpdatePriority = import_constants12.DefaultEventPriority;
|
|
114655
114772
|
discreteUpdates = null;
|
|
114656
114773
|
resolveEventPriority() {
|
|
114657
|
-
if (this.currentUpdatePriority !==
|
|
114774
|
+
if (this.currentUpdatePriority !== import_constants12.NoEventPriority) {
|
|
114658
114775
|
return this.currentUpdatePriority;
|
|
114659
114776
|
}
|
|
114660
114777
|
if (this.currentEvent) {
|
|
114661
114778
|
return getEventPriority(this.currentEvent.type);
|
|
114662
114779
|
}
|
|
114663
|
-
return
|
|
114780
|
+
return import_constants12.DefaultEventPriority;
|
|
114664
114781
|
}
|
|
114665
114782
|
dispatch(target, event) {
|
|
114666
114783
|
const previousEvent = this.currentEvent;
|
|
@@ -114685,18 +114802,18 @@ class Dispatcher {
|
|
|
114685
114802
|
dispatchContinuous(target, event) {
|
|
114686
114803
|
const previousPriority = this.currentUpdatePriority;
|
|
114687
114804
|
try {
|
|
114688
|
-
this.currentUpdatePriority =
|
|
114805
|
+
this.currentUpdatePriority = import_constants12.ContinuousEventPriority;
|
|
114689
114806
|
return this.dispatch(target, event);
|
|
114690
114807
|
} finally {
|
|
114691
114808
|
this.currentUpdatePriority = previousPriority;
|
|
114692
114809
|
}
|
|
114693
114810
|
}
|
|
114694
114811
|
}
|
|
114695
|
-
var
|
|
114812
|
+
var import_constants12;
|
|
114696
114813
|
var init_dispatcher = __esm(() => {
|
|
114697
114814
|
init_log2();
|
|
114698
114815
|
init_event_handlers();
|
|
114699
|
-
|
|
114816
|
+
import_constants12 = __toESM(require_constants2(), 1);
|
|
114700
114817
|
});
|
|
114701
114818
|
|
|
114702
114819
|
// src/ink/events/terminal-event.ts
|
|
@@ -123497,7 +123614,7 @@ function applyPositionedHighlight(screen, stylePool, positions, rowOffset, curre
|
|
|
123497
123614
|
}
|
|
123498
123615
|
return true;
|
|
123499
123616
|
}
|
|
123500
|
-
var
|
|
123617
|
+
var import_constants14, timing;
|
|
123501
123618
|
var init_render_to_screen = __esm(() => {
|
|
123502
123619
|
init_debug();
|
|
123503
123620
|
init_dom();
|
|
@@ -123506,7 +123623,7 @@ var init_render_to_screen = __esm(() => {
|
|
|
123506
123623
|
init_reconciler();
|
|
123507
123624
|
init_render_node_to_output();
|
|
123508
123625
|
init_screen();
|
|
123509
|
-
|
|
123626
|
+
import_constants14 = __toESM(require_constants2(), 1);
|
|
123510
123627
|
timing = { reconcile: 0, yoga: 0, paint: 0, scan: 0, calls: 0 };
|
|
123511
123628
|
});
|
|
123512
123629
|
|
|
@@ -123816,7 +123933,7 @@ class Ink {
|
|
|
123816
123933
|
};
|
|
123817
123934
|
}
|
|
123818
123935
|
};
|
|
123819
|
-
this.container = reconciler_default.createContainer(this.rootNode,
|
|
123936
|
+
this.container = reconciler_default.createContainer(this.rootNode, import_constants15.ConcurrentRoot, null, false, null, "id", noop_default, noop_default, noop_default, noop_default);
|
|
123820
123937
|
if (false) {}
|
|
123821
123938
|
}
|
|
123822
123939
|
handleResume = () => {
|
|
@@ -124629,7 +124746,7 @@ function drainStdin(stdin = process.stdin) {
|
|
|
124629
124746
|
}
|
|
124630
124747
|
}
|
|
124631
124748
|
}
|
|
124632
|
-
var
|
|
124749
|
+
var import_constants15, jsx_dev_runtime8, ALT_SCREEN_ANCHOR_CURSOR, CURSOR_HOME_PATCH, ERASE_THEN_HOME_PATCH, CONSOLE_STDOUT_METHODS, CONSOLE_STDERR_METHODS;
|
|
124633
124750
|
var init_ink = __esm(() => {
|
|
124634
124751
|
init_noop();
|
|
124635
124752
|
init_throttle2();
|
|
@@ -124661,7 +124778,7 @@ var init_ink = __esm(() => {
|
|
|
124661
124778
|
init_dec();
|
|
124662
124779
|
init_osc();
|
|
124663
124780
|
init_useTerminalNotification();
|
|
124664
|
-
|
|
124781
|
+
import_constants15 = __toESM(require_constants2(), 1);
|
|
124665
124782
|
jsx_dev_runtime8 = __toESM(require_jsx_dev_runtime(), 1);
|
|
124666
124783
|
ALT_SCREEN_ANCHOR_CURSOR = Object.freeze({
|
|
124667
124784
|
x: 0,
|
|
@@ -129929,7 +130046,7 @@ A small ${species} named ${name} sits beside the user's input box and occasional
|
|
|
129929
130046
|
|
|
129930
130047
|
When the user addresses ${name} directly (by name), its bubble will answer. Your job in that moment is to stay out of the way: respond in ONE line or less, or just answer any part of the message meant for you. Don't explain that you're not ${name} \u2014 they know. Don't narrate what ${name} might say \u2014 the bubble handles that.`;
|
|
129931
130048
|
}
|
|
129932
|
-
var
|
|
130049
|
+
var init_prompt5 = __esm(() => {
|
|
129933
130050
|
init_config();
|
|
129934
130051
|
init_companion();
|
|
129935
130052
|
});
|
|
@@ -138611,7 +138728,7 @@ ${prompt}
|
|
|
138611
138728
|
${guidelines}
|
|
138612
138729
|
`;
|
|
138613
138730
|
}
|
|
138614
|
-
var WEB_FETCH_TOOL_NAME = "WebFetch",
|
|
138731
|
+
var WEB_FETCH_TOOL_NAME = "WebFetch", DESCRIPTION5 = `
|
|
138615
138732
|
- Fetches content from a specified URL and processes it using an AI model
|
|
138616
138733
|
- Takes a URL and a prompt as input
|
|
138617
138734
|
- Fetches the URL content, converts HTML to markdown
|
|
@@ -139137,7 +139254,7 @@ var init_sandbox_adapter = __esm(() => {
|
|
|
139137
139254
|
init_constants();
|
|
139138
139255
|
init_managedPath();
|
|
139139
139256
|
init_settings2();
|
|
139140
|
-
|
|
139257
|
+
init_prompt3();
|
|
139141
139258
|
init_errors();
|
|
139142
139259
|
init_filesystem();
|
|
139143
139260
|
init_ripgrep();
|
|
@@ -144397,8 +144514,8 @@ var init_loadPluginAgents = __esm(() => {
|
|
|
144397
144514
|
init_memoize();
|
|
144398
144515
|
init_paths();
|
|
144399
144516
|
init_agentMemory();
|
|
144400
|
-
init_prompt2();
|
|
144401
144517
|
init_prompt3();
|
|
144518
|
+
init_prompt4();
|
|
144402
144519
|
init_debug();
|
|
144403
144520
|
init_effort();
|
|
144404
144521
|
init_frontmatterParser();
|
|
@@ -144584,7 +144701,7 @@ IMPORTANT - Use the correct year in search queries:
|
|
|
144584
144701
|
`;
|
|
144585
144702
|
}
|
|
144586
144703
|
var WEB_SEARCH_TOOL_NAME = "WebSearch";
|
|
144587
|
-
var
|
|
144704
|
+
var init_prompt6 = __esm(() => {
|
|
144588
144705
|
init_common2();
|
|
144589
144706
|
});
|
|
144590
144707
|
|
|
@@ -144657,9 +144774,9 @@ function getFeedbackGuideline() {
|
|
|
144657
144774
|
}
|
|
144658
144775
|
var UR_CODE_DOCS_MAP_URL = "https://docs.ur.dev/docs/en/ur_docs_map.md", CDP_DOCS_MAP_URL = "https://docs.claude.com/llms.txt", UR_CODE_GUIDE_AGENT_TYPE = "ur-guide", UR_CODE_GUIDE_AGENT;
|
|
144659
144776
|
var init_urCodeGuideAgent = __esm(() => {
|
|
144777
|
+
init_prompt3();
|
|
144660
144778
|
init_prompt2();
|
|
144661
|
-
|
|
144662
|
-
init_prompt5();
|
|
144779
|
+
init_prompt6();
|
|
144663
144780
|
init_auth();
|
|
144664
144781
|
init_embeddedTools();
|
|
144665
144782
|
init_settings2();
|
|
@@ -144745,9 +144862,6 @@ When answering questions, consider these configured features and proactively sug
|
|
|
144745
144862
|
};
|
|
144746
144863
|
});
|
|
144747
144864
|
|
|
144748
|
-
// src/tools/ExitPlanModeTool/constants.ts
|
|
144749
|
-
var EXIT_PLAN_MODE_TOOL_NAME = "ExitPlanMode", EXIT_PLAN_MODE_V2_TOOL_NAME = "ExitPlanMode";
|
|
144750
|
-
|
|
144751
144865
|
// src/tools/AgentTool/built-in/exploreAgent.ts
|
|
144752
144866
|
function getExploreSystemPrompt() {
|
|
144753
144867
|
const embedded = hasEmbeddedSearchTools();
|
|
@@ -144790,9 +144904,9 @@ Complete the user's search request efficiently and report your findings clearly.
|
|
|
144790
144904
|
}
|
|
144791
144905
|
var EXPLORE_AGENT_MIN_QUERIES = 3, EXPLORE_WHEN_TO_USE = 'Fast agent specialized for exploring codebases. Use this when you need to quickly find files by patterns (eg. "src/components/**/*.tsx"), search code for keywords (eg. "API endpoints"), or answer questions about the codebase (eg. "how do API endpoints work?"). When calling this agent, specify the desired thoroughness level: "quick" for basic searches, "medium" for moderate exploration, or "very thorough" for comprehensive analysis across multiple locations and naming conventions.', EXPLORE_AGENT;
|
|
144792
144906
|
var init_exploreAgent = __esm(() => {
|
|
144793
|
-
init_prompt2();
|
|
144794
144907
|
init_prompt3();
|
|
144795
|
-
|
|
144908
|
+
init_prompt4();
|
|
144909
|
+
init_prompt2();
|
|
144796
144910
|
init_embeddedTools();
|
|
144797
144911
|
init_constants2();
|
|
144798
144912
|
EXPLORE_AGENT = {
|
|
@@ -144957,9 +145071,9 @@ REMEMBER: You can ONLY explore and plan. You CANNOT and MUST NOT write, edit, or
|
|
|
144957
145071
|
var PLAN_AGENT;
|
|
144958
145072
|
var init_planAgent = __esm(() => {
|
|
144959
145073
|
init_planImplementationContract();
|
|
144960
|
-
init_prompt2();
|
|
144961
145074
|
init_prompt3();
|
|
144962
|
-
|
|
145075
|
+
init_prompt4();
|
|
145076
|
+
init_prompt2();
|
|
144963
145077
|
init_embeddedTools();
|
|
144964
145078
|
init_constants2();
|
|
144965
145079
|
init_exploreAgent();
|
|
@@ -145130,7 +145244,7 @@ var init_statuslineSetup = __esm(() => {
|
|
|
145130
145244
|
// src/tools/AgentTool/built-in/verificationAgent.ts
|
|
145131
145245
|
var VERIFICATION_SYSTEM_PROMPT, VERIFICATION_WHEN_TO_USE, VERIFICATION_AGENT;
|
|
145132
145246
|
var init_verificationAgent = __esm(() => {
|
|
145133
|
-
|
|
145247
|
+
init_prompt4();
|
|
145134
145248
|
init_constants2();
|
|
145135
145249
|
VERIFICATION_SYSTEM_PROMPT = `You are a verification specialist. Your job is not to confirm the implementation works \u2014 it's to try to break it.
|
|
145136
145250
|
|
|
@@ -145606,8 +145720,8 @@ var init_loadAgentsDir = __esm(() => {
|
|
|
145606
145720
|
init_loadPluginAgents();
|
|
145607
145721
|
init_types2();
|
|
145608
145722
|
init_slowOperations();
|
|
145609
|
-
init_prompt2();
|
|
145610
145723
|
init_prompt3();
|
|
145724
|
+
init_prompt4();
|
|
145611
145725
|
init_agentColorManager();
|
|
145612
145726
|
init_agentMemory();
|
|
145613
145727
|
init_agentMemorySnapshot();
|
|
@@ -145828,7 +145942,7 @@ async function getSkillInfo(cwd2) {
|
|
|
145828
145942
|
}
|
|
145829
145943
|
}
|
|
145830
145944
|
var SKILL_BUDGET_CONTEXT_PERCENT = 0.01, CHARS_PER_TOKEN = 4, DEFAULT_CHAR_BUDGET = 8000, MAX_LISTING_DESC_CHARS = 250, MIN_DESC_LENGTH = 20, getPrompt;
|
|
145831
|
-
var
|
|
145945
|
+
var init_prompt7 = __esm(() => {
|
|
145832
145946
|
init_lodash();
|
|
145833
145947
|
init_commands3();
|
|
145834
145948
|
init_xml();
|
|
@@ -145943,7 +146057,7 @@ Query forms:
|
|
|
145943
146057
|
- "select:Read,Edit,Grep" \u2014 fetch these exact tools by name
|
|
145944
146058
|
- "notebook jupyter" \u2014 keyword search, up to max_results best matches
|
|
145945
146059
|
- "+slack send" \u2014 require "slack" in the name, rank by remaining terms`;
|
|
145946
|
-
var
|
|
146060
|
+
var init_prompt8 = __esm(() => {
|
|
145947
146061
|
init_state();
|
|
145948
146062
|
init_growthbook();
|
|
145949
146063
|
init_constants2();
|
|
@@ -146978,10 +147092,10 @@ function maybeTimeBasedMicrocompact(messages, querySource) {
|
|
|
146978
147092
|
var TIME_BASED_MC_CLEARED_MESSAGE = "[Old tool result content cleared]", IMAGE_MAX_TOKEN_SIZE = 2000, COMPACTABLE_TOOLS, cachedMCState = null, pendingCacheEdits = null;
|
|
146979
147093
|
var init_microCompact = __esm(() => {
|
|
146980
147094
|
init_toolResultPruningConfig();
|
|
146981
|
-
init_prompt2();
|
|
146982
147095
|
init_prompt3();
|
|
146983
|
-
|
|
146984
|
-
|
|
147096
|
+
init_prompt4();
|
|
147097
|
+
init_prompt2();
|
|
147098
|
+
init_prompt6();
|
|
146985
147099
|
init_debug();
|
|
146986
147100
|
init_shellToolUtils();
|
|
146987
147101
|
init_slowOperations();
|
|
@@ -152202,7 +152316,7 @@ var init_ToolSearchTool = __esm(() => {
|
|
|
152202
152316
|
init_debug();
|
|
152203
152317
|
init_stringUtils();
|
|
152204
152318
|
init_toolSearch();
|
|
152205
|
-
|
|
152319
|
+
init_prompt8();
|
|
152206
152320
|
inputSchema = lazySchema(() => exports_external.object({
|
|
152207
152321
|
query: exports_external.string().describe('Query to find deferred tools. Use "select:<tool_name>" for direct selection, or keywords to search.'),
|
|
152208
152322
|
max_results: exports_external.number().optional().default(5).describe("Maximum number of results to return (default: 5)")
|
|
@@ -154468,7 +154582,7 @@ var init_headlessProfiler = __esm(() => {
|
|
|
154468
154582
|
|
|
154469
154583
|
// src/tools/SleepTool/prompt.ts
|
|
154470
154584
|
var SLEEP_TOOL_NAME = "Sleep", SLEEP_TOOL_PROMPT;
|
|
154471
|
-
var
|
|
154585
|
+
var init_prompt9 = __esm(() => {
|
|
154472
154586
|
init_xml();
|
|
154473
154587
|
SLEEP_TOOL_PROMPT = `Wait for a specified duration. The user can interrupt the sleep at any time.
|
|
154474
154588
|
|
|
@@ -155120,7 +155234,7 @@ var init_projectSafety = __esm(() => {
|
|
|
155120
155234
|
function getInstruments() {
|
|
155121
155235
|
if (instruments)
|
|
155122
155236
|
return instruments;
|
|
155123
|
-
const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.65.
|
|
155237
|
+
const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.65.13");
|
|
155124
155238
|
instruments = {
|
|
155125
155239
|
operationDuration: meter.createHistogram("gen_ai.client.operation.duration", {
|
|
155126
155240
|
description: "GenAI operation duration.",
|
|
@@ -155218,7 +155332,7 @@ function genAiAgentAttributes() {
|
|
|
155218
155332
|
"gen_ai.operation.name": GEN_AI_OPERATION_INVOKE_AGENT,
|
|
155219
155333
|
"gen_ai.provider.name": "ur",
|
|
155220
155334
|
"gen_ai.agent.name": "UR-Nexus",
|
|
155221
|
-
"gen_ai.agent.version": "1.65.
|
|
155335
|
+
"gen_ai.agent.version": "1.65.13"
|
|
155222
155336
|
};
|
|
155223
155337
|
}
|
|
155224
155338
|
function genAiWorkflowAttributes(workflowName) {
|
|
@@ -155234,7 +155348,7 @@ function genAiWorkflowAttributes(workflowName) {
|
|
|
155234
155348
|
function startGenAiWorkflowSpan(workflowName) {
|
|
155235
155349
|
const attributes = genAiWorkflowAttributes(workflowName);
|
|
155236
155350
|
const name = typeof attributes["gen_ai.workflow.name"] === "string" ? `invoke_workflow ${attributes["gen_ai.workflow.name"]}` : GEN_AI_OPERATION_INVOKE_WORKFLOW;
|
|
155237
|
-
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.65.
|
|
155351
|
+
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.65.13").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
|
|
155238
155352
|
}
|
|
155239
155353
|
function endGenAiWorkflowSpan(span, options2 = {}) {
|
|
155240
155354
|
try {
|
|
@@ -155272,7 +155386,7 @@ function startGenAiMemorySpan(operation, options2 = {}) {
|
|
|
155272
155386
|
if (options2.recordCount !== undefined && Number.isInteger(options2.recordCount) && options2.recordCount >= 0) {
|
|
155273
155387
|
attributes["gen_ai.memory.record.count"] = options2.recordCount;
|
|
155274
155388
|
}
|
|
155275
|
-
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.65.
|
|
155389
|
+
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.65.13").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
|
|
155276
155390
|
}
|
|
155277
155391
|
function endGenAiMemorySpan(span, options2 = {}) {
|
|
155278
155392
|
try {
|
|
@@ -248755,7 +248869,7 @@ function getTelemetryAttributes() {
|
|
|
248755
248869
|
attributes["session.id"] = sessionId;
|
|
248756
248870
|
}
|
|
248757
248871
|
if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
|
|
248758
|
-
attributes["app.version"] = "1.65.
|
|
248872
|
+
attributes["app.version"] = "1.65.13";
|
|
248759
248873
|
}
|
|
248760
248874
|
const oauthAccount = getOauthAccountInfo();
|
|
248761
248875
|
if (oauthAccount) {
|
|
@@ -257728,8 +257842,8 @@ var init_queryHelpers = __esm(() => {
|
|
|
257728
257842
|
init_state();
|
|
257729
257843
|
init_toolOrchestration();
|
|
257730
257844
|
init_Tool();
|
|
257731
|
-
init_prompt2();
|
|
257732
257845
|
init_prompt3();
|
|
257846
|
+
init_prompt4();
|
|
257733
257847
|
init_debug();
|
|
257734
257848
|
init_envUtils();
|
|
257735
257849
|
init_errors();
|
|
@@ -264949,75 +265063,6 @@ var init_promptCategory = __esm(() => {
|
|
|
264949
265063
|
// src/tools/EnterPlanModeTool/constants.ts
|
|
264950
265064
|
var ENTER_PLAN_MODE_TOOL_NAME = "EnterPlanMode";
|
|
264951
265065
|
|
|
264952
|
-
// src/tools/AskUserQuestionTool/prompt.ts
|
|
264953
|
-
var ASK_USER_QUESTION_TOOL_NAME = "AskUserQuestion", ASK_USER_QUESTION_TOOL_CHIP_WIDTH = 12, DESCRIPTION5 = "Asks the user multiple choice questions to gather information, clarify ambiguity, understand preferences, make decisions or offer them choices. This is the required way to present the user with a choice: whenever you would otherwise end a message by asking the user to pick between options or decide a direction, call this tool instead of asking in plain text, so the user gets a selectable menu rather than having to type a free-form answer.", PREVIEW_FEATURE_PROMPT, ASK_USER_QUESTION_TOOL_PROMPT;
|
|
264954
|
-
var init_prompt9 = __esm(() => {
|
|
264955
|
-
PREVIEW_FEATURE_PROMPT = {
|
|
264956
|
-
markdown: `
|
|
264957
|
-
Preview feature:
|
|
264958
|
-
Use the optional \`preview\` field on options when presenting concrete artifacts that users need to visually compare:
|
|
264959
|
-
- ASCII mockups of UI layouts or components
|
|
264960
|
-
- Code snippets showing different implementations
|
|
264961
|
-
- Diagram variations
|
|
264962
|
-
- Configuration examples
|
|
264963
|
-
|
|
264964
|
-
Preview content is rendered as markdown in a monospace box. Multi-line text with newlines is supported. When any option has a preview, the UI switches to a side-by-side layout with a vertical option list on the left and preview on the right. Do not use previews for simple preference questions where labels and descriptions suffice. Note: previews are only supported for single-select questions (not multiSelect).
|
|
264965
|
-
`,
|
|
264966
|
-
html: `
|
|
264967
|
-
Preview feature:
|
|
264968
|
-
Use the optional \`preview\` field on options when presenting concrete artifacts that users need to visually compare:
|
|
264969
|
-
- Plain-text or ASCII mockups of UI layouts or components
|
|
264970
|
-
- Inert code snippets showing different implementations
|
|
264971
|
-
- Textual visual comparisons or diagrams
|
|
264972
|
-
|
|
264973
|
-
Preview content is untrusted text: raw HTML is not accepted or executed. It is escaped and rendered as inert preformatted text. Do not include HTML tags, attributes, URLs, scripts, styles, event handlers, or other executable markup. Do not use previews for simple preference questions where labels and descriptions suffice. Note: previews are only supported for single-select questions (not multiSelect).
|
|
264974
|
-
`
|
|
264975
|
-
};
|
|
264976
|
-
ASK_USER_QUESTION_TOOL_PROMPT = `Use this tool when you need to ask the user questions during execution. This allows you to:
|
|
264977
|
-
1. Gather user preferences or requirements
|
|
264978
|
-
2. Clarify ambiguous instructions
|
|
264979
|
-
3. Get decisions on implementation choices as you work
|
|
264980
|
-
4. Offer choices to the user about what direction to take.
|
|
264981
|
-
|
|
264982
|
-
Strongly prefer this tool over asking a question in plain assistant text. Any time your reply would end with a question that offers the user options or asks them to choose a direction (e.g. "Would you like A or B?", "Which approach should I take?", "Want me to do X or Y?"), call this tool with those options instead so the user gets a selectable arrow-key menu. Only ask in plain text when the answer is genuinely open-ended and cannot be expressed as a small set of choices.
|
|
264983
|
-
|
|
264984
|
-
Strict input hierarchy:
|
|
264985
|
-
- Invoke the tool with exactly one top-level \`questions\` array containing 1-4 complete question objects.
|
|
264986
|
-
- Every question object contains \`question\`, a concise \`header\` (maximum 12 characters), and an \`options\` array with 2-8 option objects. Use \`multiSelect: true\` only when more than one choice may apply.
|
|
264987
|
-
- Every option object contains a \`label\`. Add \`description\` only when it contributes a real consequence, trade-off, or limitation; \`preview\` is optional.
|
|
264988
|
-
- Keep each question and its own options nested together. Never put option rows directly in the top-level \`questions\` array, and never send incomplete header/prompt-only entries.
|
|
264989
|
-
|
|
264990
|
-
Canonical valid tool arguments (invoke the structured tool; do not print this object as prose):
|
|
264991
|
-
{"questions":[{"question":"Which database should we use?","header":"Database","options":[{"label":"PostgreSQL (Recommended)","description":"Strong consistency and concurrency; requires a running server and migrations."},{"label":"SQLite","description":"Zero setup and a single file; unsuitable for multiple concurrent writers."}],"multiSelect":false}]}
|
|
264992
|
-
|
|
264993
|
-
Usage notes:
|
|
264994
|
-
- Users will always be able to select "Other" to provide custom text input, so it is safe to offer choices even when you are unsure you have listed every option
|
|
264995
|
-
- Use multiSelect: true to allow multiple answers to be selected for a question
|
|
264996
|
-
- If you recommend a specific option, make that the first option in the list and add "(Recommended)" at the end of the label
|
|
264997
|
-
- Do not over-question. Ask only decisions that materially affect the result and cannot be inferred safely. If more than four decisions are truly needed, ask the most blocking 1-4 first and ask the remainder in a later round.
|
|
264998
|
-
|
|
264999
|
-
Writing the three fields \u2014 they must each carry DIFFERENT information:
|
|
265000
|
-
- \`header\` names the dimension being decided ("Database", "Auth method"). It is not a shortened copy of the question.
|
|
265001
|
-
- \`label\` names the choice ("PostgreSQL"). It is not a restatement of the question.
|
|
265002
|
-
- \`description\` says what happens if this is picked and what it costs \u2014 the trade-off, limitation or consequence the label does not already convey. It is the only field with room to be genuinely informative, so it must not paraphrase the label back to the user.
|
|
265003
|
-
|
|
265004
|
-
A description that can be derived from reading the label is wasted space and makes the menu harder to use, not easier. Before writing one, ask: does this tell the user something they could not already see? If not, replace it with the thing that actually distinguishes this option from its neighbours.
|
|
265005
|
-
|
|
265006
|
-
Bad \u2014 description restates the label:
|
|
265007
|
-
question: "Which database should we use?"
|
|
265008
|
-
header: "Which DB" (repeats the question)
|
|
265009
|
-
label: "Use PostgreSQL" description: "Use PostgreSQL as the database."
|
|
265010
|
-
|
|
265011
|
-
Good \u2014 each field adds something:
|
|
265012
|
-
question: "Which database should we use?"
|
|
265013
|
-
header: "Database"
|
|
265014
|
-
label: "PostgreSQL" description: "Relational with strong consistency; needs a running server and a migration step."
|
|
265015
|
-
label: "SQLite" description: "Zero setup, single file; no concurrent writers, so it will not survive multiple workers."
|
|
265016
|
-
|
|
265017
|
-
Plan mode note: In plan mode, use this tool to clarify requirements or choose between approaches BEFORE finalizing your plan. Do NOT use this tool to ask "Is my plan ready?" or "Should I proceed?" - use ${EXIT_PLAN_MODE_TOOL_NAME} for plan approval. IMPORTANT: Do not reference "the plan" in your questions (e.g., "Do you have feedback about the plan?", "Does the plan look good?") because the user cannot see the plan in the UI until you call ${EXIT_PLAN_MODE_TOOL_NAME}. If you need plan approval, use ${EXIT_PLAN_MODE_TOOL_NAME} instead.
|
|
265018
|
-
`;
|
|
265019
|
-
});
|
|
265020
|
-
|
|
265021
265066
|
// src/tools/SkillTool/constants.ts
|
|
265022
265067
|
var SKILL_TOOL_NAME = "Skill";
|
|
265023
265068
|
|
|
@@ -265266,13 +265311,13 @@ var init_prompt10 = __esm(() => {
|
|
|
265266
265311
|
var ALL_AGENT_DISALLOWED_TOOLS, CUSTOM_AGENT_DISALLOWED_TOOLS, ASYNC_AGENT_ALLOWED_TOOLS, IN_PROCESS_TEAMMATE_ALLOWED_TOOLS, COORDINATOR_MODE_ALLOWED_TOOLS;
|
|
265267
265312
|
var init_tools = __esm(() => {
|
|
265268
265313
|
init_constants2();
|
|
265269
|
-
init_prompt9();
|
|
265270
|
-
init_prompt2();
|
|
265271
|
-
init_prompt5();
|
|
265272
265314
|
init_prompt();
|
|
265273
|
-
init_shellToolUtils();
|
|
265274
265315
|
init_prompt3();
|
|
265275
|
-
|
|
265316
|
+
init_prompt6();
|
|
265317
|
+
init_prompt2();
|
|
265318
|
+
init_shellToolUtils();
|
|
265319
|
+
init_prompt4();
|
|
265320
|
+
init_prompt8();
|
|
265276
265321
|
init_SyntheticOutputTool();
|
|
265277
265322
|
init_prompt10();
|
|
265278
265323
|
ALL_AGENT_DISALLOWED_TOOLS = new Set([
|
|
@@ -265337,7 +265382,7 @@ var init_coordinatorMode = __esm(() => {
|
|
|
265337
265382
|
init_growthbook();
|
|
265338
265383
|
init_analytics();
|
|
265339
265384
|
init_constants2();
|
|
265340
|
-
|
|
265385
|
+
init_prompt3();
|
|
265341
265386
|
init_SyntheticOutputTool();
|
|
265342
265387
|
init_envUtils();
|
|
265343
265388
|
INTERNAL_WORKER_TOOLS = new Set([
|
|
@@ -295299,7 +295344,7 @@ function getInstallationEnv() {
|
|
|
295299
295344
|
return;
|
|
295300
295345
|
}
|
|
295301
295346
|
function getURCodeVersion() {
|
|
295302
|
-
return "1.65.
|
|
295347
|
+
return "1.65.13";
|
|
295303
295348
|
}
|
|
295304
295349
|
async function getInstalledVSCodeExtensionVersion(command) {
|
|
295305
295350
|
const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
|
|
@@ -302630,7 +302675,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
|
|
|
302630
302675
|
const client2 = new Client({
|
|
302631
302676
|
name: "ur",
|
|
302632
302677
|
title: "UR",
|
|
302633
|
-
version: "1.65.
|
|
302678
|
+
version: "1.65.13",
|
|
302634
302679
|
description: "UR-Nexus autonomous engineering workflow engine",
|
|
302635
302680
|
websiteUrl: PRODUCT_URL
|
|
302636
302681
|
}, {
|
|
@@ -302990,7 +303035,7 @@ var init_client5 = __esm(() => {
|
|
|
302990
303035
|
const client2 = new Client({
|
|
302991
303036
|
name: "ur",
|
|
302992
303037
|
title: "UR",
|
|
302993
|
-
version: "1.65.
|
|
303038
|
+
version: "1.65.13",
|
|
302994
303039
|
description: "UR-Nexus autonomous engineering workflow engine",
|
|
302995
303040
|
websiteUrl: PRODUCT_URL
|
|
302996
303041
|
}, {
|
|
@@ -315529,7 +315574,7 @@ async function createRuntime() {
|
|
|
315529
315574
|
bootstrapTelemetry();
|
|
315530
315575
|
const resource = defaultResource().merge(detectResources({ detectors: [envDetector] })).merge(resourceFromAttributes({
|
|
315531
315576
|
[import_semantic_conventions7.ATTR_SERVICE_NAME]: "ur-agent",
|
|
315532
|
-
[import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.65.
|
|
315577
|
+
[import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.65.13"
|
|
315533
315578
|
}));
|
|
315534
315579
|
const tracerProvider = exporters.traces.length > 0 ? new BasicTracerProvider({
|
|
315535
315580
|
resource,
|
|
@@ -315562,11 +315607,11 @@ async function createRuntime() {
|
|
|
315562
315607
|
setMeterProvider(meterProvider);
|
|
315563
315608
|
setLoggerProvider(loggerProvider);
|
|
315564
315609
|
if (meterProvider) {
|
|
315565
|
-
const meter = meterProvider.getMeter("ur-agent", "1.65.
|
|
315610
|
+
const meter = meterProvider.getMeter("ur-agent", "1.65.13");
|
|
315566
315611
|
setMeter(meter, (name, options2) => meter.createCounter(name, options2));
|
|
315567
315612
|
}
|
|
315568
315613
|
if (loggerProvider) {
|
|
315569
|
-
setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.65.
|
|
315614
|
+
setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.65.13"));
|
|
315570
315615
|
}
|
|
315571
315616
|
if (!cleanupRegistered2) {
|
|
315572
315617
|
cleanupRegistered2 = true;
|
|
@@ -316228,9 +316273,9 @@ async function assertMinVersion() {
|
|
|
316228
316273
|
if (false) {}
|
|
316229
316274
|
try {
|
|
316230
316275
|
const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
|
|
316231
|
-
if (versionConfig.minVersion && lt("1.65.
|
|
316276
|
+
if (versionConfig.minVersion && lt("1.65.13", versionConfig.minVersion)) {
|
|
316232
316277
|
console.error(`
|
|
316233
|
-
It looks like your version of UR (${"1.65.
|
|
316278
|
+
It looks like your version of UR (${"1.65.13"}) needs an update.
|
|
316234
316279
|
A newer version (${versionConfig.minVersion} or higher) is required to continue.
|
|
316235
316280
|
|
|
316236
316281
|
To update, please run:
|
|
@@ -316446,7 +316491,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
316446
316491
|
logError2(new AutoUpdaterError("Another process is currently installing an update"));
|
|
316447
316492
|
logEvent("tengu_auto_updater_lock_contention", {
|
|
316448
316493
|
pid: process.pid,
|
|
316449
|
-
currentVersion: "1.65.
|
|
316494
|
+
currentVersion: "1.65.13"
|
|
316450
316495
|
});
|
|
316451
316496
|
return "in_progress";
|
|
316452
316497
|
}
|
|
@@ -316455,7 +316500,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
316455
316500
|
if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
|
|
316456
316501
|
logError2(new Error("Windows NPM detected in WSL environment"));
|
|
316457
316502
|
logEvent("tengu_auto_updater_windows_npm_in_wsl", {
|
|
316458
|
-
currentVersion: "1.65.
|
|
316503
|
+
currentVersion: "1.65.13"
|
|
316459
316504
|
});
|
|
316460
316505
|
console.error(`
|
|
316461
316506
|
Error: Windows NPM detected in WSL
|
|
@@ -316990,7 +317035,7 @@ function detectLinuxGlobPatternWarnings() {
|
|
|
316990
317035
|
}
|
|
316991
317036
|
async function getDoctorDiagnostic() {
|
|
316992
317037
|
const installationType = await getCurrentInstallationType();
|
|
316993
|
-
const version2 = typeof MACRO !== "undefined" ? "1.65.
|
|
317038
|
+
const version2 = typeof MACRO !== "undefined" ? "1.65.13" : "unknown";
|
|
316994
317039
|
const installationPath = await getInstallationPath();
|
|
316995
317040
|
const invokedBinary = getInvokedBinary();
|
|
316996
317041
|
const multipleInstallations = await detectMultipleInstallations();
|
|
@@ -317925,8 +317970,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
317925
317970
|
const maxVersion = await getMaxVersion();
|
|
317926
317971
|
if (maxVersion && gt(version2, maxVersion)) {
|
|
317927
317972
|
logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
|
|
317928
|
-
if (gte("1.65.
|
|
317929
|
-
logForDebugging(`Native installer: current version ${"1.65.
|
|
317973
|
+
if (gte("1.65.13", maxVersion)) {
|
|
317974
|
+
logForDebugging(`Native installer: current version ${"1.65.13"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
317930
317975
|
logEvent("tengu_native_update_skipped_max_version", {
|
|
317931
317976
|
latency_ms: Date.now() - startTime,
|
|
317932
317977
|
max_version: maxVersion,
|
|
@@ -317937,7 +317982,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
317937
317982
|
version2 = maxVersion;
|
|
317938
317983
|
}
|
|
317939
317984
|
}
|
|
317940
|
-
if (!forceReinstall && version2 === "1.65.
|
|
317985
|
+
if (!forceReinstall && version2 === "1.65.13" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
|
|
317941
317986
|
logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
|
|
317942
317987
|
logEvent("tengu_native_update_complete", {
|
|
317943
317988
|
latency_ms: Date.now() - startTime,
|
|
@@ -345308,7 +345353,7 @@ var init_SkillTool = __esm(() => {
|
|
|
345308
345353
|
init_skillUsageTracking();
|
|
345309
345354
|
init_uuid();
|
|
345310
345355
|
init_runAgent();
|
|
345311
|
-
|
|
345356
|
+
init_prompt7();
|
|
345312
345357
|
init_UI5();
|
|
345313
345358
|
inputSchema10 = lazySchema(() => exports_external.object({
|
|
345314
345359
|
skill: exports_external.string().describe('The skill name. E.g., "commit", "review-pr", or "pdf"'),
|
|
@@ -358371,9 +358416,9 @@ var init_prompt11 = __esm(() => {
|
|
|
358371
358416
|
init_envUtils();
|
|
358372
358417
|
init_outputLimits();
|
|
358373
358418
|
init_powershellDetection();
|
|
358374
|
-
init_prompt2();
|
|
358375
358419
|
init_prompt3();
|
|
358376
|
-
|
|
358420
|
+
init_prompt4();
|
|
358421
|
+
init_prompt2();
|
|
358377
358422
|
});
|
|
358378
358423
|
|
|
358379
358424
|
// src/tools/PowerShellTool/UI.tsx
|
|
@@ -361015,7 +361060,7 @@ Usage:${getPreReadInstruction2()}
|
|
|
361015
361060
|
}
|
|
361016
361061
|
var init_prompt12 = __esm(() => {
|
|
361017
361062
|
init_file();
|
|
361018
|
-
|
|
361063
|
+
init_prompt3();
|
|
361019
361064
|
});
|
|
361020
361065
|
|
|
361021
361066
|
// src/tools/FileEditTool/types.ts
|
|
@@ -365067,7 +365112,7 @@ var init_FileWriteTool = __esm(() => {
|
|
|
365067
365112
|
init_filesystem();
|
|
365068
365113
|
init_shellRuleMatching();
|
|
365069
365114
|
init_types11();
|
|
365070
|
-
|
|
365115
|
+
init_prompt4();
|
|
365071
365116
|
init_UI9();
|
|
365072
365117
|
inputSchema13 = lazySchema(() => exports_external.strictObject({
|
|
365073
365118
|
file_path: exports_external.string().describe("The absolute path to the file to write (must be absolute, not relative)"),
|
|
@@ -365729,7 +365774,7 @@ var init_GrepTool = __esm(() => {
|
|
|
365729
365774
|
init_semanticBoolean();
|
|
365730
365775
|
init_semanticNumber();
|
|
365731
365776
|
init_stringUtils();
|
|
365732
|
-
|
|
365777
|
+
init_prompt2();
|
|
365733
365778
|
init_UI10();
|
|
365734
365779
|
inputSchema14 = lazySchema(() => exports_external.strictObject({
|
|
365735
365780
|
pattern: exports_external.string().describe("The regular expression pattern to search for in file contents"),
|
|
@@ -366165,7 +366210,7 @@ var init_GlobTool = __esm(() => {
|
|
|
366165
366210
|
searchHint: "find files by name pattern or wildcard",
|
|
366166
366211
|
maxResultSizeChars: 1e5,
|
|
366167
366212
|
async description() {
|
|
366168
|
-
return
|
|
366213
|
+
return DESCRIPTION4;
|
|
366169
366214
|
},
|
|
366170
366215
|
userFacingName: userFacingName5,
|
|
366171
366216
|
getToolUseSummary: getToolUseSummary4,
|
|
@@ -366237,7 +366282,7 @@ var init_GlobTool = __esm(() => {
|
|
|
366237
366282
|
return checkReadPermissionForTool(GlobTool, input, appState.toolPermissionContext);
|
|
366238
366283
|
},
|
|
366239
366284
|
async prompt() {
|
|
366240
|
-
return
|
|
366285
|
+
return DESCRIPTION4;
|
|
366241
366286
|
},
|
|
366242
366287
|
renderToolUseMessage: renderToolUseMessage12,
|
|
366243
366288
|
renderToolUseErrorMessage: renderToolUseErrorMessage8,
|
|
@@ -368205,7 +368250,7 @@ var init_WebFetchTool = __esm(() => {
|
|
|
368205
368250
|
},
|
|
368206
368251
|
async prompt(_options) {
|
|
368207
368252
|
return `IMPORTANT: WebFetch WILL FAIL for authenticated or private URLs. Before using this tool, check if the URL points to an authenticated service (e.g. Google Docs, Confluence, Jira, GitHub). If so, look for a specialized MCP tool that provides authenticated access.
|
|
368208
|
-
${
|
|
368253
|
+
${DESCRIPTION5}`;
|
|
368209
368254
|
},
|
|
368210
368255
|
async validateInput(input) {
|
|
368211
368256
|
const { url: url3 } = input;
|
|
@@ -369740,7 +369785,7 @@ var init_TaskStopTool = __esm(() => {
|
|
|
369740
369785
|
return `Stop a running background task by ID`;
|
|
369741
369786
|
},
|
|
369742
369787
|
async prompt() {
|
|
369743
|
-
return
|
|
369788
|
+
return DESCRIPTION2;
|
|
369744
369789
|
},
|
|
369745
369790
|
mapToolResultToToolResultBlockParam(output, toolUseID) {
|
|
369746
369791
|
return {
|
|
@@ -371019,7 +371064,7 @@ var init_WebSearchTool = __esm(() => {
|
|
|
371019
371064
|
init_model();
|
|
371020
371065
|
init_permissions2();
|
|
371021
371066
|
init_slowOperations();
|
|
371022
|
-
|
|
371067
|
+
init_prompt6();
|
|
371023
371068
|
init_UI17();
|
|
371024
371069
|
inputSchema28 = lazySchema(() => exports_external.strictObject({
|
|
371025
371070
|
query: exports_external.string().min(2).describe("The search query to use"),
|
|
@@ -371482,7 +371527,7 @@ var init_UI18 = __esm(() => {
|
|
|
371482
371527
|
|
|
371483
371528
|
// src/tools/ExitPlanModeTool/ExitPlanModeV2Tool.ts
|
|
371484
371529
|
import { writeFile as writeFile21 } from "fs/promises";
|
|
371485
|
-
function
|
|
371530
|
+
function objectValue3(value) {
|
|
371486
371531
|
return value && typeof value === "object" && !Array.isArray(value) ? value : null;
|
|
371487
371532
|
}
|
|
371488
371533
|
function isBashToolName(value) {
|
|
@@ -371502,7 +371547,7 @@ function normalizeAllowedPromptItem(value) {
|
|
|
371502
371547
|
const prompt2 = value.trim();
|
|
371503
371548
|
return prompt2 ? [{ tool: "Bash", prompt: prompt2 }] : [];
|
|
371504
371549
|
}
|
|
371505
|
-
const item =
|
|
371550
|
+
const item = objectValue3(value);
|
|
371506
371551
|
if (!item || !isBashToolName(item.tool))
|
|
371507
371552
|
return [];
|
|
371508
371553
|
const prompt = promptTextFromObject(item);
|
|
@@ -371517,7 +371562,7 @@ function normalizeAllowedPromptsValue(value) {
|
|
|
371517
371562
|
return normalizeAllowedPromptItem(value);
|
|
371518
371563
|
if (Array.isArray(value))
|
|
371519
371564
|
return value.flatMap(normalizeAllowedPromptItem);
|
|
371520
|
-
const prompts =
|
|
371565
|
+
const prompts = objectValue3(value);
|
|
371521
371566
|
if (!prompts)
|
|
371522
371567
|
return [];
|
|
371523
371568
|
const prompt = promptTextFromObject(prompts);
|
|
@@ -371530,7 +371575,7 @@ function normalizeAllowedPromptsValue(value) {
|
|
|
371530
371575
|
});
|
|
371531
371576
|
}
|
|
371532
371577
|
function normalizeExitPlanModeInput(value) {
|
|
371533
|
-
const input =
|
|
371578
|
+
const input = objectValue3(value);
|
|
371534
371579
|
if (!input)
|
|
371535
371580
|
return value;
|
|
371536
371581
|
const rawAllowedPrompts = input.allowedPrompts ?? input.allowed_prompts ?? input.prompts ?? input.permissions;
|
|
@@ -373058,7 +373103,7 @@ Notes:
|
|
|
373058
373103
|
}
|
|
373059
373104
|
var CODE_SEARCH_TOOL_NAME = "CodeSearch";
|
|
373060
373105
|
var init_prompt15 = __esm(() => {
|
|
373061
|
-
|
|
373106
|
+
init_prompt2();
|
|
373062
373107
|
});
|
|
373063
373108
|
|
|
373064
373109
|
// src/tools/CodeSearchTool/CodeSearchTool.ts
|
|
@@ -373232,14 +373277,9 @@ var init_zodToJsonSchema2 = __esm(() => {
|
|
|
373232
373277
|
});
|
|
373233
373278
|
|
|
373234
373279
|
// src/tools/AskUserQuestionTool/AskUserQuestionTool.tsx
|
|
373235
|
-
function
|
|
373280
|
+
function objectValue4(value) {
|
|
373236
373281
|
return value && typeof value === "object" && !Array.isArray(value) ? value : null;
|
|
373237
373282
|
}
|
|
373238
|
-
function headerFromQuestion2(question, index2) {
|
|
373239
|
-
const stopWords = new Set(["a", "about", "also", "an", "are", "be", "do", "does", "for", "is", "or", "should", "support", "that", "the", "this", "to", "want", "what", "which", "with", "without", "you"]);
|
|
373240
|
-
const word = question.replace(/[^A-Za-z0-9]+/g, " ").split(/\s+/).find((part) => part && !stopWords.has(part.toLowerCase())) ?? `Question ${index2 + 1}`;
|
|
373241
|
-
return word.slice(0, ASK_USER_QUESTION_TOOL_CHIP_WIDTH);
|
|
373242
|
-
}
|
|
373243
373283
|
function stringField2(input, names) {
|
|
373244
373284
|
for (const name of names) {
|
|
373245
373285
|
const value = input[name];
|
|
@@ -373255,7 +373295,7 @@ function normalizeQuestionOptionInput(value) {
|
|
|
373255
373295
|
label
|
|
373256
373296
|
} : value;
|
|
373257
373297
|
}
|
|
373258
|
-
const option =
|
|
373298
|
+
const option = objectValue4(value);
|
|
373259
373299
|
if (!option)
|
|
373260
373300
|
return value;
|
|
373261
373301
|
const normalized = { ...option };
|
|
@@ -373277,7 +373317,7 @@ function normalizePreviewInput(preview) {
|
|
|
373277
373317
|
return `<pre data-ur-preview="text">${escaped}</pre>`;
|
|
373278
373318
|
}
|
|
373279
373319
|
function normalizeQuestionInput(value, index2) {
|
|
373280
|
-
const question =
|
|
373320
|
+
const question = objectValue4(value);
|
|
373281
373321
|
if (!question)
|
|
373282
373322
|
return value;
|
|
373283
373323
|
const normalized = { ...question };
|
|
@@ -373302,14 +373342,14 @@ function normalizeQuestionInput(value, index2) {
|
|
|
373302
373342
|
normalized.options = options2.map(normalizeQuestionOptionInput);
|
|
373303
373343
|
}
|
|
373304
373344
|
if (typeof question.header === "string" && question.header.trim()) {
|
|
373305
|
-
normalized.header = question.header
|
|
373345
|
+
normalized.header = normalizeQuestionHeader(question.header, questionText, index2);
|
|
373306
373346
|
} else if (questionText) {
|
|
373307
|
-
normalized.header =
|
|
373347
|
+
normalized.header = headerFromQuestion(questionText, index2);
|
|
373308
373348
|
}
|
|
373309
373349
|
return normalized;
|
|
373310
373350
|
}
|
|
373311
373351
|
function normalizeAskUserQuestionInput2(value) {
|
|
373312
|
-
const input =
|
|
373352
|
+
const input = objectValue4(value);
|
|
373313
373353
|
if (!input)
|
|
373314
373354
|
return value;
|
|
373315
373355
|
const normalized = { ...input };
|
|
@@ -373351,7 +373391,7 @@ function normalizeAskUserQuestionInput2(value) {
|
|
|
373351
373391
|
return normalized;
|
|
373352
373392
|
}
|
|
373353
373393
|
function boundedText(max2, field) {
|
|
373354
|
-
return exports_external.string().trim().min(1, `${field} cannot be empty`).max(max2, `${field} must be at most ${max2} characters`).refine((value) => !
|
|
373394
|
+
return exports_external.string().trim().min(1, `${field} cannot be empty`).max(max2, `${field} must be at most ${max2} characters`).refine((value) => !CONTROL_OR_ANSI_RE2.test(value), `${field} must not contain control or ANSI escape characters`);
|
|
373355
373395
|
}
|
|
373356
373396
|
function AskUserQuestionResultMessage(t0) {
|
|
373357
373397
|
const $2 = import_compiler_runtime114.c(3);
|
|
@@ -373424,7 +373464,7 @@ function validateHtmlPreview(preview) {
|
|
|
373424
373464
|
}
|
|
373425
373465
|
return null;
|
|
373426
373466
|
}
|
|
373427
|
-
var import_compiler_runtime114, jsx_dev_runtime145, MAX_QUESTIONS = 4, MAX_OPTIONS = 8, MAX_QUESTION_CHARS = 500, MAX_LABEL_CHARS = 80, MAX_DESCRIPTION_CHARS = 500, MAX_PREVIEW_CHARS, MAX_PREVIEW_LINES = 200, MAX_ANSWER_CHARS = 2000, MAX_TOTAL_INPUT_CHARS, RESERVED_RECORD_KEYS, QUESTION_TEXT_ALIASES,
|
|
373467
|
+
var import_compiler_runtime114, jsx_dev_runtime145, MAX_QUESTIONS = 4, MAX_OPTIONS = 8, MAX_QUESTION_CHARS = 500, MAX_LABEL_CHARS = 80, MAX_DESCRIPTION_CHARS = 500, MAX_PREVIEW_CHARS, MAX_PREVIEW_LINES = 200, MAX_ANSWER_CHARS = 2000, MAX_TOTAL_INPUT_CHARS, RESERVED_RECORD_KEYS, QUESTION_TEXT_ALIASES, CONTROL_OR_ANSI_RE2, UNIQUENESS_REFINE, questionOptionSchema, questionSchema, annotationsSchema, responseFields, metadataSchema, requestObjectSchema, inputSchema32, modelInputJSONSchema, outputSchema27, AskUserQuestionTool;
|
|
373428
373468
|
var init_AskUserQuestionTool = __esm(() => {
|
|
373429
373469
|
init_state();
|
|
373430
373470
|
init_MessageResponse();
|
|
@@ -373435,14 +373475,15 @@ var init_AskUserQuestionTool = __esm(() => {
|
|
|
373435
373475
|
init_ink2();
|
|
373436
373476
|
init_Tool();
|
|
373437
373477
|
init_zodToJsonSchema2();
|
|
373438
|
-
|
|
373478
|
+
init_normalization();
|
|
373479
|
+
init_prompt();
|
|
373439
373480
|
import_compiler_runtime114 = __toESM(require_compiler_runtime(), 1);
|
|
373440
373481
|
jsx_dev_runtime145 = __toESM(require_jsx_dev_runtime(), 1);
|
|
373441
373482
|
MAX_PREVIEW_CHARS = 16 * 1024;
|
|
373442
373483
|
MAX_TOTAL_INPUT_CHARS = 64 * 1024;
|
|
373443
373484
|
RESERVED_RECORD_KEYS = new Set(["__proto__", "constructor", "prototype", "toString", "valueOf"]);
|
|
373444
373485
|
QUESTION_TEXT_ALIASES = ["question", "questionText", "question_text", "prompt", "text"];
|
|
373445
|
-
|
|
373486
|
+
CONTROL_OR_ANSI_RE2 = /[\u0000-\u0008\u000B\u000C\u000E-\u001F\u007F]|\u001B\[/;
|
|
373446
373487
|
UNIQUENESS_REFINE = {
|
|
373447
373488
|
check: (data) => {
|
|
373448
373489
|
const questions = data.questions.map((q) => q.question.toLocaleLowerCase());
|
|
@@ -373518,7 +373559,7 @@ var init_AskUserQuestionTool = __esm(() => {
|
|
|
373518
373559
|
maxResultSizeChars: 1e5,
|
|
373519
373560
|
shouldDefer: false,
|
|
373520
373561
|
async description() {
|
|
373521
|
-
return
|
|
373562
|
+
return DESCRIPTION;
|
|
373522
373563
|
},
|
|
373523
373564
|
async prompt() {
|
|
373524
373565
|
const format5 = getQuestionPreviewFormat();
|
|
@@ -375192,7 +375233,7 @@ function getEnterPlanModeToolPrompt() {
|
|
|
375192
375233
|
var WHAT_HAPPENS_SECTION;
|
|
375193
375234
|
var init_prompt16 = __esm(() => {
|
|
375194
375235
|
init_planModeV2();
|
|
375195
|
-
|
|
375236
|
+
init_prompt();
|
|
375196
375237
|
WHAT_HAPPENS_SECTION = `## What Happens in Plan Mode
|
|
375197
375238
|
|
|
375198
375239
|
In plan mode, you'll:
|
|
@@ -381898,7 +381939,7 @@ var init_prompt20 = __esm(() => {
|
|
|
381898
381939
|
init_envUtils();
|
|
381899
381940
|
init_teammate();
|
|
381900
381941
|
init_teammateContext();
|
|
381901
|
-
|
|
381942
|
+
init_prompt3();
|
|
381902
381943
|
init_constants2();
|
|
381903
381944
|
init_forkSubagent();
|
|
381904
381945
|
});
|
|
@@ -381952,7 +381993,7 @@ var init_AgentTool = __esm(() => {
|
|
|
381952
381993
|
init_uuid();
|
|
381953
381994
|
init_worktree3();
|
|
381954
381995
|
init_UI6();
|
|
381955
|
-
|
|
381996
|
+
init_prompt3();
|
|
381956
381997
|
init_spawnMultiAgent();
|
|
381957
381998
|
init_agentColorManager();
|
|
381958
381999
|
init_agentToolUtils();
|
|
@@ -383537,11 +383578,11 @@ function summarizeRecentActivities(activities) {
|
|
|
383537
383578
|
var MAX_HINT_CHARS = 300;
|
|
383538
383579
|
var init_collapseReadSearch = __esm(() => {
|
|
383539
383580
|
init_Tool();
|
|
383540
|
-
|
|
383581
|
+
init_prompt4();
|
|
383541
383582
|
init_constants4();
|
|
383542
383583
|
init_primitiveTools();
|
|
383543
383584
|
init_gitOperationTracking();
|
|
383544
|
-
|
|
383585
|
+
init_prompt8();
|
|
383545
383586
|
init_file();
|
|
383546
383587
|
init_fullscreen();
|
|
383547
383588
|
init_memoryFileDetection();
|
|
@@ -384697,12 +384738,12 @@ var init_sessionFileAccessHooks = __esm(() => {
|
|
|
384697
384738
|
init_analytics();
|
|
384698
384739
|
init_types11();
|
|
384699
384740
|
init_FileReadTool();
|
|
384700
|
-
init_prompt2();
|
|
384701
|
-
init_FileWriteTool();
|
|
384702
384741
|
init_prompt3();
|
|
384742
|
+
init_FileWriteTool();
|
|
384743
|
+
init_prompt4();
|
|
384703
384744
|
init_GlobTool();
|
|
384704
384745
|
init_GrepTool();
|
|
384705
|
-
|
|
384746
|
+
init_prompt2();
|
|
384706
384747
|
init_memoryFileDetection();
|
|
384707
384748
|
init_agentContext();
|
|
384708
384749
|
});
|
|
@@ -384937,9 +384978,9 @@ var MEMORY_ACCESS_TOOL_NAMES;
|
|
|
384937
384978
|
var init_attribution = __esm(() => {
|
|
384938
384979
|
init_state();
|
|
384939
384980
|
init_xml();
|
|
384940
|
-
init_prompt2();
|
|
384941
384981
|
init_prompt3();
|
|
384942
|
-
|
|
384982
|
+
init_prompt4();
|
|
384983
|
+
init_prompt2();
|
|
384943
384984
|
init_commitAttribution();
|
|
384944
384985
|
init_debug();
|
|
384945
384986
|
init_json();
|
|
@@ -385254,9 +385295,9 @@ var init_prompt21 = __esm(() => {
|
|
|
385254
385295
|
init_slowOperations();
|
|
385255
385296
|
init_undercover();
|
|
385256
385297
|
init_constants2();
|
|
385257
|
-
init_prompt2();
|
|
385258
385298
|
init_prompt3();
|
|
385259
|
-
|
|
385299
|
+
init_prompt4();
|
|
385300
|
+
init_prompt2();
|
|
385260
385301
|
init_TodoWriteTool();
|
|
385261
385302
|
});
|
|
385262
385303
|
|
|
@@ -387985,7 +388026,7 @@ function isAnyTracingEnabled() {
|
|
|
387985
388026
|
return isTelemetryEnabled() || isEnhancedTelemetryEnabled() || isBetaTracingEnabled();
|
|
387986
388027
|
}
|
|
387987
388028
|
function getTracer() {
|
|
387988
|
-
return import_api39.trace.getTracer("ur-agent.gen_ai", "1.65.
|
|
388029
|
+
return import_api39.trace.getTracer("ur-agent.gen_ai", "1.65.13");
|
|
387989
388030
|
}
|
|
387990
388031
|
function createSpanAttributes(spanType, customAttributes = {}) {
|
|
387991
388032
|
const baseAttributes = getTelemetryAttributes();
|
|
@@ -388713,7 +388754,7 @@ function getAskUserQuestionCorrection(error40) {
|
|
|
388713
388754
|
return typeof index2 === "number" ? Math.max(count3, index2 + 1) : count3;
|
|
388714
388755
|
}, 0);
|
|
388715
388756
|
const countNotice = inferredCount > 4 ? ` This call contains at least ${inferredCount} incomplete question entries.` : "";
|
|
388716
|
-
return "AskUserQuestion requires 1-4 complete question objects. Each object must " + "contain `question`, `header`, and an `options` array with 2-8 " + "objects containing `label`; include `description` only when it adds a " + "useful consequence or trade-off." + countNotice + " Do not invent missing choices or truncate
|
|
388757
|
+
return "AskUserQuestion requires 1-4 complete question objects. Each object must " + "contain `question`, `header`, and an `options` array with 2-8 " + "objects containing `label`; include `description` only when it adds a " + "useful consequence or trade-off." + countNotice + " Do not invent missing choices or truncate question/option content. " + "Overlong UI headers are compacted automatically. Retry with at most four " + "complete questions, ask remaining decisions in later rounds, and do not " + "repeat the unchanged call.";
|
|
388717
388758
|
}
|
|
388718
388759
|
function getWriteCorrection(error40) {
|
|
388719
388760
|
const missingRequiredField = error40.issues.some((issue2) => issue2.code === "invalid_type" && issue2.message.includes("received undefined") && (issue2.path[0] === "file_path" || issue2.path[0] === "content"));
|
|
@@ -388872,10 +388913,47 @@ function isLocalPreviewOpenForTaskGate(input) {
|
|
|
388872
388913
|
return false;
|
|
388873
388914
|
}
|
|
388874
388915
|
}
|
|
388916
|
+
function safeInlineHtmlSyntaxCheck(script) {
|
|
388917
|
+
const match = script.match(/^const\s+(?<fs>[A-Za-z_$][\w$]*)\s*=\s*require\((?<fsq>['"])fs\k<fsq>\)\s*;\s*const\s+(?<source>[A-Za-z_$][\w$]*)\s*=\s*\k<fs>\.readFileSync\((?<pathq>['"])(?<path>[^'"\0\r\n]+)\k<pathq>\s*,\s*(?<utfq>['"])utf8\k<utfq>\)\s*;\s*try\s*\{\s*new\s+Function\(\k<source>\.split\((?<openq>['"])<script>\k<openq>\)\[1\]\.split\((?<closeq>['"])<\/script>\k<closeq>\)\[0\]\)\s*;\s*console\.log\((?<okq>['"])[^'"\0\r\n]*\k<okq>\)\s*;\s*\}\s*catch\s*\((?<error>[A-Za-z_$][\w$]*)\)\s*\{\s*console\.log\((?<errorq>['"])[^'"\0\r\n]*\k<errorq>\s*,\s*\k<error>\.message\)\s*;\s*\}\s*;?$/);
|
|
388918
|
+
const path14 = match?.groups?.path;
|
|
388919
|
+
return path14 ? { path: path14 } : null;
|
|
388920
|
+
}
|
|
388921
|
+
function isSyntaxVerificationForTaskGate(input) {
|
|
388922
|
+
if (input.toolName !== "Bash" || typeof input.toolInput !== "object" || input.toolInput === null) {
|
|
388923
|
+
return false;
|
|
388924
|
+
}
|
|
388925
|
+
const candidate = input.toolInput;
|
|
388926
|
+
if (typeof candidate.command !== "string" || candidate.command.trim() === "" || candidate.run_in_background === true || candidate.dangerouslyDisableSandbox === true || candidate._simulatedSedEdit !== undefined || candidate.command.includes("$") || candidate.command.includes("`") || candidate.command.includes("\\") || candidate.command.includes(`
|
|
388927
|
+
`) || candidate.command.includes("\r") || candidate.command.includes("\x00") || hasUnbalancedQuotes(candidate.command)) {
|
|
388928
|
+
return false;
|
|
388929
|
+
}
|
|
388930
|
+
const parsed = tryParseShellCommand(candidate.command);
|
|
388931
|
+
if (!parsed.success)
|
|
388932
|
+
return false;
|
|
388933
|
+
const tokens = parsed.tokens;
|
|
388934
|
+
const allStrings = (values2) => values2.every((value) => typeof value === "string");
|
|
388935
|
+
const safeNodeCheckCommand = /^node[ \t]+--check[ \t]+(?:"[^"$`\\\0\r\n]+"|'[^'\0\r\n]+'|[A-Za-z0-9_./:@%+,=\-]+)[ \t]*$/.test(candidate.command);
|
|
388936
|
+
if (safeNodeCheckCommand && tokens.length === 3 && allStrings(tokens) && tokens[0] === "node" && tokens[1] === "--check") {
|
|
388937
|
+
const path14 = tokens[2];
|
|
388938
|
+
return Boolean(path14 && !path14.startsWith("-") && !/[\0\r\n$`]/.test(path14));
|
|
388939
|
+
}
|
|
388940
|
+
const hasLeadingWc = tokens.length === 7 && tokens[0] === "wc" && tokens[1] === "-l" && typeof tokens[2] === "string" && isShellOperator(tokens[3], "&&");
|
|
388941
|
+
const nodeIndex = hasLeadingWc ? 4 : 0;
|
|
388942
|
+
if (tokens.length !== nodeIndex + 3 || tokens[nodeIndex] !== "node" || tokens[nodeIndex + 1] !== "-e" || typeof tokens[nodeIndex + 2] !== "string") {
|
|
388943
|
+
return false;
|
|
388944
|
+
}
|
|
388945
|
+
const check3 = safeInlineHtmlSyntaxCheck(tokens[nodeIndex + 2]);
|
|
388946
|
+
if (!check3)
|
|
388947
|
+
return false;
|
|
388948
|
+
return !hasLeadingWc || tokens[2] === check3.path;
|
|
388949
|
+
}
|
|
388875
388950
|
function isMutationRequiringTaskList(input) {
|
|
388876
388951
|
return input.isMutating && !isLocalPreviewOpenForTaskGate({
|
|
388877
388952
|
toolName: input.toolName,
|
|
388878
388953
|
toolInput: input.toolInput
|
|
388954
|
+
}) && !isSyntaxVerificationForTaskGate({
|
|
388955
|
+
toolName: input.toolName,
|
|
388956
|
+
toolInput: input.toolInput
|
|
388879
388957
|
});
|
|
388880
388958
|
}
|
|
388881
388959
|
function getTaskListGateConfig() {
|
|
@@ -391385,10 +391463,10 @@ var init_toolExecution = __esm(() => {
|
|
|
391385
391463
|
init_Tool();
|
|
391386
391464
|
init_constants2();
|
|
391387
391465
|
init_bashPermissions();
|
|
391388
|
-
init_prompt2();
|
|
391389
391466
|
init_prompt3();
|
|
391467
|
+
init_prompt4();
|
|
391390
391468
|
init_gitOperationTracking();
|
|
391391
|
-
|
|
391469
|
+
init_prompt8();
|
|
391392
391470
|
init_tools2();
|
|
391393
391471
|
init_attachments2();
|
|
391394
391472
|
init_debug();
|
|
@@ -391789,7 +391867,7 @@ var init_StreamingToolExecutor = __esm(() => {
|
|
|
391789
391867
|
});
|
|
391790
391868
|
|
|
391791
391869
|
// src/utils/explicitChoiceRecovery.ts
|
|
391792
|
-
function
|
|
391870
|
+
function objectValue5(value) {
|
|
391793
391871
|
return value && typeof value === "object" && !Array.isArray(value) ? value : null;
|
|
391794
391872
|
}
|
|
391795
391873
|
function hasOnlyKeys(value, required2, optional3 = []) {
|
|
@@ -391798,20 +391876,20 @@ function hasOnlyKeys(value, required2, optional3 = []) {
|
|
|
391798
391876
|
return required2.every((key) => Object.prototype.hasOwnProperty.call(value, key)) && keys2.every((key) => allowed.has(key));
|
|
391799
391877
|
}
|
|
391800
391878
|
function hasCanonicalAskShape(value) {
|
|
391801
|
-
const input =
|
|
391879
|
+
const input = objectValue5(value);
|
|
391802
391880
|
if (!input || !hasOnlyKeys(input, ["questions"], ["metadata"]) || !Array.isArray(input.questions) || input.questions.length < 1 || input.questions.length > MAX_QUESTIONS2) {
|
|
391803
391881
|
return false;
|
|
391804
391882
|
}
|
|
391805
|
-
if (input.metadata !== undefined && !
|
|
391883
|
+
if (input.metadata !== undefined && !objectValue5(input.metadata)) {
|
|
391806
391884
|
return false;
|
|
391807
391885
|
}
|
|
391808
391886
|
return input.questions.every((questionValue) => {
|
|
391809
|
-
const question =
|
|
391887
|
+
const question = objectValue5(questionValue);
|
|
391810
391888
|
if (!question || !hasOnlyKeys(question, ["question", "header", "options"], ["multiSelect"]) || typeof question.question !== "string" || typeof question.header !== "string" || !Array.isArray(question.options) || question.options.length < 2 || question.options.length > MAX_OPTIONS2 || question.multiSelect !== undefined && typeof question.multiSelect !== "boolean") {
|
|
391811
391889
|
return false;
|
|
391812
391890
|
}
|
|
391813
391891
|
return question.options.every((optionValue) => {
|
|
391814
|
-
const option =
|
|
391892
|
+
const option = objectValue5(optionValue);
|
|
391815
391893
|
return Boolean(option && hasOnlyKeys(option, ["label"], ["description", "preview"]) && typeof option.label === "string" && (option.description === undefined || typeof option.description === "string") && (option.preview === undefined || typeof option.preview === "string"));
|
|
391816
391894
|
});
|
|
391817
391895
|
});
|
|
@@ -391880,7 +391958,7 @@ function parseFinalReasoningAskJson(reasoning) {
|
|
|
391880
391958
|
return null;
|
|
391881
391959
|
return candidate.input;
|
|
391882
391960
|
}
|
|
391883
|
-
function
|
|
391961
|
+
function headerFromQuestion2(question) {
|
|
391884
391962
|
const stopWords = new Set([
|
|
391885
391963
|
"a",
|
|
391886
391964
|
"about",
|
|
@@ -391959,7 +392037,7 @@ function parseExplicitChoicePrompt(text) {
|
|
|
391959
392037
|
questions: [
|
|
391960
392038
|
{
|
|
391961
392039
|
question,
|
|
391962
|
-
header:
|
|
392040
|
+
header: headerFromQuestion2(question),
|
|
391963
392041
|
options: options2
|
|
391964
392042
|
}
|
|
391965
392043
|
]
|
|
@@ -392040,8 +392118,9 @@ function recoverExplicitChoiceToolUse({
|
|
|
392040
392118
|
thinkingBlocks,
|
|
392041
392119
|
textBlocks
|
|
392042
392120
|
})) {
|
|
392043
|
-
const
|
|
392044
|
-
|
|
392121
|
+
const headerNormalizedInput = normalizeAskQuestionHeaders(candidate.input);
|
|
392122
|
+
const parsed = askTool.inputSchema.safeParse(headerNormalizedInput);
|
|
392123
|
+
if (!parsed.success || !isDeepStrictEqual3(parsed.data, headerNormalizedInput)) {
|
|
392045
392124
|
continue;
|
|
392046
392125
|
}
|
|
392047
392126
|
const idSuffix = uuid3().replace(/[^A-Za-z0-9]/g, "");
|
|
@@ -392070,7 +392149,8 @@ function recoverExplicitChoiceToolUse({
|
|
|
392070
392149
|
}
|
|
392071
392150
|
var init_explicitChoiceRecovery2 = __esm(() => {
|
|
392072
392151
|
init_Tool();
|
|
392073
|
-
|
|
392152
|
+
init_normalization();
|
|
392153
|
+
init_prompt();
|
|
392074
392154
|
init_explicitChoiceRecovery();
|
|
392075
392155
|
});
|
|
392076
392156
|
|
|
@@ -392650,9 +392730,9 @@ var init_memoryScan = __esm(() => {
|
|
|
392650
392730
|
// src/services/extractMemories/prompts.ts
|
|
392651
392731
|
var init_prompts = __esm(() => {
|
|
392652
392732
|
init_memoryTypes();
|
|
392653
|
-
init_prompt2();
|
|
392654
392733
|
init_prompt3();
|
|
392655
|
-
|
|
392734
|
+
init_prompt4();
|
|
392735
|
+
init_prompt2();
|
|
392656
392736
|
});
|
|
392657
392737
|
|
|
392658
392738
|
// src/services/extractMemories/extractMemories.ts
|
|
@@ -392696,9 +392776,9 @@ var init_extractMemories = __esm(() => {
|
|
|
392696
392776
|
init_memdir();
|
|
392697
392777
|
init_memoryScan();
|
|
392698
392778
|
init_paths();
|
|
392699
|
-
init_prompt2();
|
|
392700
392779
|
init_prompt3();
|
|
392701
|
-
|
|
392780
|
+
init_prompt4();
|
|
392781
|
+
init_prompt2();
|
|
392702
392782
|
init_constants4();
|
|
392703
392783
|
init_abortController();
|
|
392704
392784
|
init_debug();
|
|
@@ -392942,7 +393022,7 @@ var init_autoDream = __esm(() => {
|
|
|
392942
393022
|
init_consolidationPrompt();
|
|
392943
393023
|
init_consolidationLock();
|
|
392944
393024
|
init_DreamTask();
|
|
392945
|
-
|
|
393025
|
+
init_prompt4();
|
|
392946
393026
|
SESSION_SCAN_INTERVAL_MS = 10 * 60 * 1000;
|
|
392947
393027
|
DEFAULTS2 = {
|
|
392948
393028
|
minHours: 24,
|
|
@@ -394745,7 +394825,7 @@ var init_query = __esm(() => {
|
|
|
394745
394825
|
init_tokens();
|
|
394746
394826
|
init_context();
|
|
394747
394827
|
init_growthbook();
|
|
394748
|
-
|
|
394828
|
+
init_prompt9();
|
|
394749
394829
|
init_postSamplingHooks();
|
|
394750
394830
|
init_hooks5();
|
|
394751
394831
|
init_projectContextManifest();
|
|
@@ -396770,7 +396850,7 @@ var init_compact = __esm(() => {
|
|
|
396770
396850
|
init_state();
|
|
396771
396851
|
init_state();
|
|
396772
396852
|
init_FileReadTool();
|
|
396773
|
-
|
|
396853
|
+
init_prompt3();
|
|
396774
396854
|
init_ToolSearchTool();
|
|
396775
396855
|
init_attachments2();
|
|
396776
396856
|
init_config();
|
|
@@ -397605,7 +397685,7 @@ async function countBuiltInToolTokens(tools, getToolPermissionContext, agentInfo
|
|
|
397605
397685
|
};
|
|
397606
397686
|
}
|
|
397607
397687
|
const { isToolSearchEnabled: isToolSearchEnabled2 } = await Promise.resolve().then(() => (init_toolSearch(), exports_toolSearch));
|
|
397608
|
-
const { isDeferredTool: isDeferredTool2 } = await Promise.resolve().then(() => (
|
|
397688
|
+
const { isDeferredTool: isDeferredTool2 } = await Promise.resolve().then(() => (init_prompt8(), exports_prompt2));
|
|
397609
397689
|
const isDeferred = await isToolSearchEnabled2(model ?? "", tools, getToolPermissionContext, agentInfo?.activeAgents ?? [], "analyzeBuiltIn");
|
|
397610
397690
|
const alwaysLoadedTools = builtInTools.filter((t) => !isDeferredTool2(t));
|
|
397611
397691
|
const deferredBuiltinTools = builtInTools.filter((t) => isDeferredTool2(t));
|
|
@@ -397740,7 +397820,7 @@ async function countMcpToolTokens(tools, getToolPermissionContext, agentInfo, mo
|
|
|
397740
397820
|
const estimateTotal = estimates.reduce((s, e) => s + e, 0) || 1;
|
|
397741
397821
|
const mcpToolTokensByTool = estimates.map((e) => Math.round(e / estimateTotal * totalTokens));
|
|
397742
397822
|
const { isToolSearchEnabled: isToolSearchEnabled2 } = await Promise.resolve().then(() => (init_toolSearch(), exports_toolSearch));
|
|
397743
|
-
const { isDeferredTool: isDeferredTool2 } = await Promise.resolve().then(() => (
|
|
397823
|
+
const { isDeferredTool: isDeferredTool2 } = await Promise.resolve().then(() => (init_prompt8(), exports_prompt2));
|
|
397744
397824
|
const isDeferred = await isToolSearchEnabled2(model, tools, getToolPermissionContext, agentInfo?.activeAgents ?? [], "analyzeMcp");
|
|
397745
397825
|
const loadedMcpToolNames = new Set;
|
|
397746
397826
|
if (isDeferred && messages) {
|
|
@@ -398162,7 +398242,7 @@ var init_analyzeContext = __esm(() => {
|
|
|
398162
398242
|
init_tokenEstimation();
|
|
398163
398243
|
init_loadSkillsDir();
|
|
398164
398244
|
init_Tool();
|
|
398165
|
-
|
|
398245
|
+
init_prompt7();
|
|
398166
398246
|
init_api3();
|
|
398167
398247
|
init_agentmd();
|
|
398168
398248
|
init_context();
|
|
@@ -398477,7 +398557,7 @@ var init_toolSearch = __esm(() => {
|
|
|
398477
398557
|
init_growthbook();
|
|
398478
398558
|
init_analytics();
|
|
398479
398559
|
init_Tool();
|
|
398480
|
-
|
|
398560
|
+
init_prompt8();
|
|
398481
398561
|
init_analyzeContext();
|
|
398482
398562
|
init_betas2();
|
|
398483
398563
|
init_context();
|
|
@@ -399803,7 +399883,7 @@ var init_FileReadTool = __esm(() => {
|
|
|
399803
399883
|
init_semanticNumber();
|
|
399804
399884
|
init_slowOperations();
|
|
399805
399885
|
init_limits();
|
|
399806
|
-
|
|
399886
|
+
init_prompt3();
|
|
399807
399887
|
init_UI26();
|
|
399808
399888
|
BLOCKED_DEVICE_PATHS = new Set([
|
|
399809
399889
|
"/dev/zero",
|
|
@@ -399908,7 +399988,7 @@ var init_FileReadTool = __esm(() => {
|
|
|
399908
399988
|
maxResultSizeChars: Infinity,
|
|
399909
399989
|
strict: true,
|
|
399910
399990
|
async description() {
|
|
399911
|
-
return
|
|
399991
|
+
return DESCRIPTION3;
|
|
399912
399992
|
},
|
|
399913
399993
|
async prompt() {
|
|
399914
399994
|
const limits = getDefaultFileReadingLimits();
|
|
@@ -402303,9 +402383,9 @@ var init_attachments2 = __esm(() => {
|
|
|
402303
402383
|
init_commands3();
|
|
402304
402384
|
init_uniqBy();
|
|
402305
402385
|
init_state();
|
|
402306
|
-
|
|
402386
|
+
init_prompt7();
|
|
402307
402387
|
init_context();
|
|
402308
|
-
|
|
402388
|
+
init_prompt3();
|
|
402309
402389
|
init_limits();
|
|
402310
402390
|
init_fileStateCache();
|
|
402311
402391
|
init_abortController();
|
|
@@ -402349,7 +402429,7 @@ var init_attachments2 = __esm(() => {
|
|
|
402349
402429
|
init_teammateContext();
|
|
402350
402430
|
init_teamHelpers();
|
|
402351
402431
|
init_tasks();
|
|
402352
|
-
|
|
402432
|
+
init_prompt5();
|
|
402353
402433
|
TODO_REMINDER_CONFIG = {
|
|
402354
402434
|
TURNS_SINCE_WRITE: 10,
|
|
402355
402435
|
TURNS_BETWEEN_REMINDERS: 10
|
|
@@ -403318,7 +403398,7 @@ var init_cacheUtils = __esm(() => {
|
|
|
403318
403398
|
init_commands3();
|
|
403319
403399
|
init_outputStyles();
|
|
403320
403400
|
init_loadAgentsDir();
|
|
403321
|
-
|
|
403401
|
+
init_prompt7();
|
|
403322
403402
|
init_attachments2();
|
|
403323
403403
|
init_debug();
|
|
403324
403404
|
init_errors();
|
|
@@ -410929,7 +411009,7 @@ var init_messages = __esm(() => {
|
|
|
410929
411009
|
init_last();
|
|
410930
411010
|
init_analytics();
|
|
410931
411011
|
init_metadata();
|
|
410932
|
-
|
|
411012
|
+
init_prompt5();
|
|
410933
411013
|
init_outputStyles();
|
|
410934
411014
|
init_paths();
|
|
410935
411015
|
init_growthbook();
|
|
@@ -410945,13 +411025,13 @@ var init_messages = __esm(() => {
|
|
|
410945
411025
|
init_planAgent();
|
|
410946
411026
|
init_builtInAgents();
|
|
410947
411027
|
init_constants2();
|
|
410948
|
-
|
|
411028
|
+
init_prompt();
|
|
410949
411029
|
init_BashTool();
|
|
410950
411030
|
init_ExitPlanModeV2Tool();
|
|
410951
411031
|
init_FileEditTool();
|
|
410952
|
-
|
|
411032
|
+
init_prompt3();
|
|
410953
411033
|
init_FileWriteTool();
|
|
410954
|
-
|
|
411034
|
+
init_prompt2();
|
|
410955
411035
|
init_state();
|
|
410956
411036
|
init_xml();
|
|
410957
411037
|
init_planImplementationContract();
|
|
@@ -419044,7 +419124,7 @@ function Feedback({
|
|
|
419044
419124
|
platform: env2.platform,
|
|
419045
419125
|
gitRepo: envInfo.isGit,
|
|
419046
419126
|
terminal: env2.terminal,
|
|
419047
|
-
version: "1.65.
|
|
419127
|
+
version: "1.65.13",
|
|
419048
419128
|
transcript: normalizeMessagesForAPI(messages),
|
|
419049
419129
|
errors: sanitizedErrors,
|
|
419050
419130
|
lastApiRequest: getLastAPIRequest(),
|
|
@@ -419236,7 +419316,7 @@ function Feedback({
|
|
|
419236
419316
|
", ",
|
|
419237
419317
|
env2.terminal,
|
|
419238
419318
|
", v",
|
|
419239
|
-
"1.65.
|
|
419319
|
+
"1.65.13"
|
|
419240
419320
|
]
|
|
419241
419321
|
}, undefined, true, undefined, this)
|
|
419242
419322
|
]
|
|
@@ -419342,7 +419422,7 @@ ${sanitizedDescription}
|
|
|
419342
419422
|
` + `**Environment Info**
|
|
419343
419423
|
` + `- Platform: ${env2.platform}
|
|
419344
419424
|
` + `- Terminal: ${env2.terminal}
|
|
419345
|
-
` + `- Version: ${"1.65.
|
|
419425
|
+
` + `- Version: ${"1.65.13"}
|
|
419346
419426
|
` + `- Feedback ID: ${feedbackId}
|
|
419347
419427
|
` + `
|
|
419348
419428
|
**Errors**
|
|
@@ -420511,7 +420591,7 @@ function clearSessionCaches(preservedAgentIds = new Set) {
|
|
|
420511
420591
|
Promise.resolve().then(() => (init_utils11(), exports_utils2)).then(({ clearWebFetchCache: clearWebFetchCache2 }) => clearWebFetchCache2());
|
|
420512
420592
|
Promise.resolve().then(() => (init_ToolSearchTool(), exports_ToolSearchTool)).then(({ clearToolSearchDescriptionCache: clearToolSearchDescriptionCache2 }) => clearToolSearchDescriptionCache2());
|
|
420513
420593
|
Promise.resolve().then(() => (init_loadAgentsDir(), exports_loadAgentsDir)).then(({ clearAgentDefinitionsCache: clearAgentDefinitionsCache2 }) => clearAgentDefinitionsCache2());
|
|
420514
|
-
Promise.resolve().then(() => (
|
|
420594
|
+
Promise.resolve().then(() => (init_prompt7(), exports_prompt)).then(({ clearPromptCache: clearPromptCache2 }) => clearPromptCache2());
|
|
420515
420595
|
}
|
|
420516
420596
|
var init_caches = __esm(() => {
|
|
420517
420597
|
init_state();
|
|
@@ -422452,7 +422532,7 @@ function buildPrimarySection() {
|
|
|
422452
422532
|
}, undefined, false, undefined, this);
|
|
422453
422533
|
return [{
|
|
422454
422534
|
label: "Version",
|
|
422455
|
-
value: "1.65.
|
|
422535
|
+
value: "1.65.13"
|
|
422456
422536
|
}, {
|
|
422457
422537
|
label: "Session name",
|
|
422458
422538
|
value: nameValue
|
|
@@ -425782,7 +425862,7 @@ function Config({
|
|
|
425782
425862
|
}
|
|
425783
425863
|
}, undefined, false, undefined, this)
|
|
425784
425864
|
}, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime179.jsxDEV(ChannelDowngradeDialog, {
|
|
425785
|
-
currentVersion: "1.65.
|
|
425865
|
+
currentVersion: "1.65.13",
|
|
425786
425866
|
onChoice: (choice) => {
|
|
425787
425867
|
setShowSubmenu(null);
|
|
425788
425868
|
setTabsHidden(false);
|
|
@@ -425794,7 +425874,7 @@ function Config({
|
|
|
425794
425874
|
autoUpdatesChannel: "stable"
|
|
425795
425875
|
};
|
|
425796
425876
|
if (choice === "stay") {
|
|
425797
|
-
newSettings.minimumVersion = "1.65.
|
|
425877
|
+
newSettings.minimumVersion = "1.65.13";
|
|
425798
425878
|
}
|
|
425799
425879
|
updateSettingsForSource("userSettings", newSettings);
|
|
425800
425880
|
setSettingsData((prev_27) => ({
|
|
@@ -427132,8 +427212,8 @@ function checkAutoCompactDisabled(data, suggestions) {
|
|
|
427132
427212
|
}
|
|
427133
427213
|
var LARGE_TOOL_RESULT_PERCENT = 15, LARGE_TOOL_RESULT_TOKENS = 1e4, READ_BLOAT_PERCENT = 5, NEAR_CAPACITY_PERCENT = 80, MEMORY_HIGH_PERCENT = 5, MEMORY_HIGH_TOKENS = 5000;
|
|
427134
427214
|
var init_contextSuggestions = __esm(() => {
|
|
427215
|
+
init_prompt3();
|
|
427135
427216
|
init_prompt2();
|
|
427136
|
-
init_prompt();
|
|
427137
427217
|
init_file();
|
|
427138
427218
|
init_format2();
|
|
427139
427219
|
});
|
|
@@ -433858,7 +433938,7 @@ function HelpV2(t0) {
|
|
|
433858
433938
|
let t6;
|
|
433859
433939
|
if ($2[31] !== tabs) {
|
|
433860
433940
|
t6 = /* @__PURE__ */ jsx_dev_runtime206.jsxDEV(Tabs, {
|
|
433861
|
-
title: `UR v${"1.65.
|
|
433941
|
+
title: `UR v${"1.65.13"}`,
|
|
433862
433942
|
color: "professionalBlue",
|
|
433863
433943
|
defaultTab: "general",
|
|
433864
433944
|
children: tabs
|
|
@@ -434791,7 +434871,7 @@ function buildToolUseContext(tools, readFileStateCache, toolPermissionContext, a
|
|
|
434791
434871
|
async function handleInitialize(options2) {
|
|
434792
434872
|
return {
|
|
434793
434873
|
name: "UR",
|
|
434794
|
-
version: "1.65.
|
|
434874
|
+
version: "1.65.13",
|
|
434795
434875
|
protocolVersion: "0.1.0",
|
|
434796
434876
|
workspaceRoot: options2.cwd,
|
|
434797
434877
|
capabilities: {
|
|
@@ -451899,7 +451979,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
|
|
|
451899
451979
|
return [];
|
|
451900
451980
|
}
|
|
451901
451981
|
}
|
|
451902
|
-
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.65.
|
|
451982
|
+
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.65.13") {
|
|
451903
451983
|
if (process.env.USER_TYPE === "ant") {
|
|
451904
451984
|
const changelog = "";
|
|
451905
451985
|
if (changelog) {
|
|
@@ -451926,7 +452006,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.65.12")
|
|
|
451926
452006
|
releaseNotes
|
|
451927
452007
|
};
|
|
451928
452008
|
}
|
|
451929
|
-
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.65.
|
|
452009
|
+
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.65.13") {
|
|
451930
452010
|
if (process.env.USER_TYPE === "ant") {
|
|
451931
452011
|
const changelog = "";
|
|
451932
452012
|
if (changelog) {
|
|
@@ -454792,7 +454872,7 @@ function getRecentActivitySync() {
|
|
|
454792
454872
|
return cachedActivity;
|
|
454793
454873
|
}
|
|
454794
454874
|
function getLogoDisplayData() {
|
|
454795
|
-
const version2 = process.env.DEMO_VERSION ?? "1.65.
|
|
454875
|
+
const version2 = process.env.DEMO_VERSION ?? "1.65.13";
|
|
454796
454876
|
const serverUrl = getDirectConnectServerUrl();
|
|
454797
454877
|
const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd());
|
|
454798
454878
|
const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
|
|
@@ -455659,7 +455739,7 @@ function LogoV2() {
|
|
|
455659
455739
|
if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
455660
455740
|
t2 = () => {
|
|
455661
455741
|
const currentConfig2 = getGlobalConfig();
|
|
455662
|
-
if (currentConfig2.lastReleaseNotesSeen === "1.65.
|
|
455742
|
+
if (currentConfig2.lastReleaseNotesSeen === "1.65.13") {
|
|
455663
455743
|
return;
|
|
455664
455744
|
}
|
|
455665
455745
|
saveGlobalConfig(_temp325);
|
|
@@ -456344,12 +456424,12 @@ function LogoV2() {
|
|
|
456344
456424
|
return t41;
|
|
456345
456425
|
}
|
|
456346
456426
|
function _temp325(current) {
|
|
456347
|
-
if (current.lastReleaseNotesSeen === "1.65.
|
|
456427
|
+
if (current.lastReleaseNotesSeen === "1.65.13") {
|
|
456348
456428
|
return current;
|
|
456349
456429
|
}
|
|
456350
456430
|
return {
|
|
456351
456431
|
...current,
|
|
456352
|
-
lastReleaseNotesSeen: "1.65.
|
|
456432
|
+
lastReleaseNotesSeen: "1.65.13"
|
|
456353
456433
|
};
|
|
456354
456434
|
}
|
|
456355
456435
|
function _temp241(s_0) {
|
|
@@ -468433,7 +468513,7 @@ var init_RemoteSessionDetailDialog = __esm(() => {
|
|
|
468433
468513
|
init_ink2();
|
|
468434
468514
|
init_RemoteAgentTask();
|
|
468435
468515
|
init_constants2();
|
|
468436
|
-
|
|
468516
|
+
init_prompt();
|
|
468437
468517
|
init_browser();
|
|
468438
468518
|
init_errors();
|
|
468439
468519
|
init_format2();
|
|
@@ -473289,7 +473369,7 @@ function compileAgenticCiWorkflow(specName = "default", options2 = {}) {
|
|
|
473289
473369
|
if (spec.name !== specName) {
|
|
473290
473370
|
throw new Error("Agentic CI workflow spec name does not match");
|
|
473291
473371
|
}
|
|
473292
|
-
const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.65.
|
|
473372
|
+
const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.65.13" : "1.65.13");
|
|
473293
473373
|
if (!/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(packageVersion)) {
|
|
473294
473374
|
throw new Error("invalid ur-agent package version");
|
|
473295
473375
|
}
|
|
@@ -474282,7 +474362,7 @@ runner; \`ur trigger\` is the inbound parser that decides what to run.
|
|
|
474282
474362
|
path: ".github/workflows/ur.yml",
|
|
474283
474363
|
root: "project",
|
|
474284
474364
|
content: compileAgenticCiWorkflow("default", {
|
|
474285
|
-
packageVersion: typeof MACRO !== "undefined" ? "1.65.
|
|
474365
|
+
packageVersion: typeof MACRO !== "undefined" ? "1.65.13" : "1.65.13"
|
|
474286
474366
|
})
|
|
474287
474367
|
},
|
|
474288
474368
|
{
|
|
@@ -474352,7 +474432,7 @@ function value(tokens, flag) {
|
|
|
474352
474432
|
return index2 >= 0 ? tokens[index2 + 1] : undefined;
|
|
474353
474433
|
}
|
|
474354
474434
|
function cliVersion() {
|
|
474355
|
-
return typeof MACRO !== "undefined" ? "1.65.
|
|
474435
|
+
return typeof MACRO !== "undefined" ? "1.65.13" : "1.65.13";
|
|
474356
474436
|
}
|
|
474357
474437
|
function workflowPath(cwd2) {
|
|
474358
474438
|
return join159(cwd2, ".github", "workflows", "ur-agentic-ci.yml");
|
|
@@ -480217,7 +480297,7 @@ function createAcpStdioApp(deps) {
|
|
|
480217
480297
|
}
|
|
480218
480298
|
},
|
|
480219
480299
|
authMethods: [],
|
|
480220
|
-
agentInfo: { name: "UR-Nexus", version: "1.65.
|
|
480300
|
+
agentInfo: { name: "UR-Nexus", version: "1.65.13" }
|
|
480221
480301
|
})).onRequest("authenticate", () => ({})).onRequest("session/new", async (context6) => {
|
|
480222
480302
|
const result = runtime2.newSession(context6.params.cwd, context6.params.mcpServers, context6.params.additionalDirectories);
|
|
480223
480303
|
await runtime2.announce({
|
|
@@ -480314,7 +480394,7 @@ function createAcpStdioAgent(deps) {
|
|
|
480314
480394
|
}
|
|
480315
480395
|
},
|
|
480316
480396
|
authMethods: [],
|
|
480317
|
-
agentInfo: { name: "UR-Nexus", version: "1.65.
|
|
480397
|
+
agentInfo: { name: "UR-Nexus", version: "1.65.13" }
|
|
480318
480398
|
});
|
|
480319
480399
|
return;
|
|
480320
480400
|
case "authenticate":
|
|
@@ -691474,7 +691554,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
|
|
|
691474
691554
|
smapsRollup,
|
|
691475
691555
|
platform: process.platform,
|
|
691476
691556
|
nodeVersion: process.version,
|
|
691477
|
-
ccVersion: "1.65.
|
|
691557
|
+
ccVersion: "1.65.13"
|
|
691478
691558
|
};
|
|
691479
691559
|
}
|
|
691480
691560
|
async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
|
|
@@ -692054,7 +692134,7 @@ var init_bridge_kick = __esm(() => {
|
|
|
692054
692134
|
var call153 = async () => {
|
|
692055
692135
|
return {
|
|
692056
692136
|
type: "text",
|
|
692057
|
-
value: "1.65.
|
|
692137
|
+
value: "1.65.13"
|
|
692058
692138
|
};
|
|
692059
692139
|
}, version2, version_default;
|
|
692060
692140
|
var init_version = __esm(() => {
|
|
@@ -703234,7 +703314,7 @@ function generateHtmlReport(data, insights) {
|
|
|
703234
703314
|
</html>`;
|
|
703235
703315
|
}
|
|
703236
703316
|
function buildExportData(data, insights, facets, remoteStats) {
|
|
703237
|
-
const version3 = typeof MACRO !== "undefined" ? "1.65.
|
|
703317
|
+
const version3 = typeof MACRO !== "undefined" ? "1.65.13" : "unknown";
|
|
703238
703318
|
const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
|
|
703239
703319
|
const facets_summary = {
|
|
703240
703320
|
total: facets.size,
|
|
@@ -707561,7 +707641,7 @@ var init_sessionStorage = __esm(() => {
|
|
|
707561
707641
|
init_settings2();
|
|
707562
707642
|
init_slowOperations();
|
|
707563
707643
|
init_uuid();
|
|
707564
|
-
VERSION7 = typeof MACRO !== "undefined" ? "1.65.
|
|
707644
|
+
VERSION7 = typeof MACRO !== "undefined" ? "1.65.13" : "unknown";
|
|
707565
707645
|
MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
|
|
707566
707646
|
SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
|
|
707567
707647
|
EPHEMERAL_PROGRESS_TYPES = new Set([
|
|
@@ -707799,7 +707879,7 @@ var init_memdir = __esm(() => {
|
|
|
707799
707879
|
init_state();
|
|
707800
707880
|
init_growthbook();
|
|
707801
707881
|
init_analytics();
|
|
707802
|
-
|
|
707882
|
+
init_prompt2();
|
|
707803
707883
|
init_constants4();
|
|
707804
707884
|
init_debug();
|
|
707805
707885
|
init_embeddedTools();
|
|
@@ -708729,7 +708809,7 @@ var init_filesystem = __esm(() => {
|
|
|
708729
708809
|
init_agentMemory();
|
|
708730
708810
|
init_state();
|
|
708731
708811
|
init_growthbook();
|
|
708732
|
-
|
|
708812
|
+
init_prompt3();
|
|
708733
708813
|
init_cwd2();
|
|
708734
708814
|
init_envUtils();
|
|
708735
708815
|
init_fsOperations();
|
|
@@ -708776,7 +708856,7 @@ var init_filesystem = __esm(() => {
|
|
|
708776
708856
|
});
|
|
708777
708857
|
getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
|
|
708778
708858
|
const nonce = randomBytes20(16).toString("hex");
|
|
708779
|
-
return join230(getURTempDir(), "bundled-skills", "1.65.
|
|
708859
|
+
return join230(getURTempDir(), "bundled-skills", "1.65.13", nonce);
|
|
708780
708860
|
});
|
|
708781
708861
|
getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
|
|
708782
708862
|
});
|
|
@@ -714629,17 +714709,17 @@ var init_prompts4 = __esm(() => {
|
|
|
714629
714709
|
init_common2();
|
|
714630
714710
|
init_settings2();
|
|
714631
714711
|
init_constants2();
|
|
714712
|
+
init_prompt4();
|
|
714632
714713
|
init_prompt3();
|
|
714633
|
-
init_prompt2();
|
|
714634
714714
|
init_model();
|
|
714635
714715
|
init_antModels();
|
|
714636
714716
|
init_providers();
|
|
714637
714717
|
init_providerRegistry();
|
|
714638
714718
|
init_commands3();
|
|
714639
714719
|
init_outputStyles();
|
|
714640
|
-
|
|
714720
|
+
init_prompt2();
|
|
714641
714721
|
init_embeddedTools();
|
|
714642
|
-
|
|
714722
|
+
init_prompt();
|
|
714643
714723
|
init_exploreAgent();
|
|
714644
714724
|
init_builtInAgents();
|
|
714645
714725
|
init_filesystem();
|
|
@@ -714649,7 +714729,7 @@ var init_prompts4 = __esm(() => {
|
|
|
714649
714729
|
init_betas2();
|
|
714650
714730
|
init_forkSubagent();
|
|
714651
714731
|
init_systemPromptSections();
|
|
714652
|
-
|
|
714732
|
+
init_prompt9();
|
|
714653
714733
|
init_xml();
|
|
714654
714734
|
init_debug();
|
|
714655
714735
|
init_memdir();
|
|
@@ -715104,7 +715184,7 @@ function computeFingerprint(messageText2, version3) {
|
|
|
715104
715184
|
}
|
|
715105
715185
|
function computeFingerprintFromMessages(messages) {
|
|
715106
715186
|
const firstMessageText = extractFirstMessageText(messages);
|
|
715107
|
-
return computeFingerprint(firstMessageText, "1.65.
|
|
715187
|
+
return computeFingerprint(firstMessageText, "1.65.13");
|
|
715108
715188
|
}
|
|
715109
715189
|
var FINGERPRINT_SALT = "59cf53e54c78";
|
|
715110
715190
|
var init_fingerprint = () => {};
|
|
@@ -715169,10 +715249,10 @@ function getAPIContextManagement(options4) {
|
|
|
715169
715249
|
}
|
|
715170
715250
|
var DEFAULT_MAX_INPUT_TOKENS = 180000, DEFAULT_TARGET_INPUT_TOKENS = 40000, TOOLS_CLEARABLE_RESULTS, TOOLS_CLEARABLE_USES;
|
|
715171
715251
|
var init_apiMicrocompact = __esm(() => {
|
|
715172
|
-
init_prompt2();
|
|
715173
715252
|
init_prompt3();
|
|
715174
|
-
|
|
715175
|
-
|
|
715253
|
+
init_prompt4();
|
|
715254
|
+
init_prompt2();
|
|
715255
|
+
init_prompt6();
|
|
715176
715256
|
init_shellToolUtils();
|
|
715177
715257
|
init_envUtils();
|
|
715178
715258
|
TOOLS_CLEARABLE_RESULTS = [
|
|
@@ -716944,7 +717024,7 @@ var init_ur2 = __esm(() => {
|
|
|
716944
717024
|
init_toolSearch();
|
|
716945
717025
|
init_apiLimits();
|
|
716946
717026
|
init_betas();
|
|
716947
|
-
|
|
717027
|
+
init_prompt8();
|
|
716948
717028
|
init_envValidation();
|
|
716949
717029
|
init_json();
|
|
716950
717030
|
init_bedrock();
|
|
@@ -717003,7 +717083,7 @@ async function sideQuery(opts) {
|
|
|
717003
717083
|
betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
|
|
717004
717084
|
}
|
|
717005
717085
|
const messageText2 = extractFirstUserMessageText(messages);
|
|
717006
|
-
const fingerprint2 = computeFingerprint(messageText2, "1.65.
|
|
717086
|
+
const fingerprint2 = computeFingerprint(messageText2, "1.65.13");
|
|
717007
717087
|
const attributionHeader = getAttributionHeader(fingerprint2);
|
|
717008
717088
|
const systemBlocks = [
|
|
717009
717089
|
attributionHeader ? { type: "text", text: attributionHeader } : null,
|
|
@@ -721790,7 +721870,7 @@ function buildSystemInitMessage(inputs) {
|
|
|
721790
721870
|
slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
|
|
721791
721871
|
apiKeySource: getURHQApiKeyWithSource().source,
|
|
721792
721872
|
betas: getSdkBetas(),
|
|
721793
|
-
ur_version: "1.65.
|
|
721873
|
+
ur_version: "1.65.13",
|
|
721794
721874
|
output_style: outputStyle2,
|
|
721795
721875
|
agents: inputs.agents.map((agent2) => agent2.agentType),
|
|
721796
721876
|
skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
|
|
@@ -735741,7 +735821,7 @@ var init_useVoiceEnabled = __esm(() => {
|
|
|
735741
735821
|
function getSemverPart(version3) {
|
|
735742
735822
|
return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
|
|
735743
735823
|
}
|
|
735744
|
-
function useUpdateNotification(updatedVersion, initialVersion = "1.65.
|
|
735824
|
+
function useUpdateNotification(updatedVersion, initialVersion = "1.65.13") {
|
|
735745
735825
|
const [lastNotifiedSemver, setLastNotifiedSemver] = import_react222.useState(() => getSemverPart(initialVersion));
|
|
735746
735826
|
if (!updatedVersion) {
|
|
735747
735827
|
return null;
|
|
@@ -735790,7 +735870,7 @@ function AutoUpdater({
|
|
|
735790
735870
|
return;
|
|
735791
735871
|
}
|
|
735792
735872
|
if (false) {}
|
|
735793
|
-
const currentVersion = "1.65.
|
|
735873
|
+
const currentVersion = "1.65.13";
|
|
735794
735874
|
const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
735795
735875
|
let latestVersion = await getLatestVersion(channel);
|
|
735796
735876
|
const isDisabled = isAutoUpdaterDisabled();
|
|
@@ -736019,12 +736099,12 @@ function NativeAutoUpdater({
|
|
|
736019
736099
|
logEvent("tengu_native_auto_updater_start", {});
|
|
736020
736100
|
try {
|
|
736021
736101
|
const maxVersion = await getMaxVersion();
|
|
736022
|
-
if (maxVersion && gt("1.65.
|
|
736102
|
+
if (maxVersion && gt("1.65.13", maxVersion)) {
|
|
736023
736103
|
const msg = await getMaxVersionMessage();
|
|
736024
736104
|
setMaxVersionIssue(msg ?? "affects your version");
|
|
736025
736105
|
}
|
|
736026
736106
|
const result = await installLatest(channel);
|
|
736027
|
-
const currentVersion = "1.65.
|
|
736107
|
+
const currentVersion = "1.65.13";
|
|
736028
736108
|
const latencyMs = Date.now() - startTime;
|
|
736029
736109
|
if (result.lockFailed) {
|
|
736030
736110
|
logEvent("tengu_native_auto_updater_lock_contention", {
|
|
@@ -736161,17 +736241,17 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
736161
736241
|
const maxVersion = await getMaxVersion();
|
|
736162
736242
|
if (maxVersion && latest && gt(latest, maxVersion)) {
|
|
736163
736243
|
logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
|
|
736164
|
-
if (gte("1.65.
|
|
736165
|
-
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.65.
|
|
736244
|
+
if (gte("1.65.13", maxVersion)) {
|
|
736245
|
+
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.65.13"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
736166
736246
|
setUpdateAvailable(false);
|
|
736167
736247
|
return;
|
|
736168
736248
|
}
|
|
736169
736249
|
latest = maxVersion;
|
|
736170
736250
|
}
|
|
736171
|
-
const hasUpdate = latest && !gte("1.65.
|
|
736251
|
+
const hasUpdate = latest && !gte("1.65.13", latest) && !shouldSkipVersion(latest);
|
|
736172
736252
|
setUpdateAvailable(!!hasUpdate);
|
|
736173
736253
|
if (hasUpdate) {
|
|
736174
|
-
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.65.
|
|
736254
|
+
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.65.13"} -> ${latest}`);
|
|
736175
736255
|
}
|
|
736176
736256
|
};
|
|
736177
736257
|
$2[0] = t1;
|
|
@@ -736205,7 +736285,7 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
736205
736285
|
wrap: "truncate",
|
|
736206
736286
|
children: [
|
|
736207
736287
|
"currentVersion: ",
|
|
736208
|
-
"1.65.
|
|
736288
|
+
"1.65.13"
|
|
736209
736289
|
]
|
|
736210
736290
|
}, undefined, true, undefined, this);
|
|
736211
736291
|
$2[3] = verbose;
|
|
@@ -746925,7 +747005,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
|
|
|
746925
747005
|
project_dir: getOriginalCwd(),
|
|
746926
747006
|
added_dirs: addedDirs
|
|
746927
747007
|
},
|
|
746928
|
-
version: "1.65.
|
|
747008
|
+
version: "1.65.13",
|
|
746929
747009
|
output_style: {
|
|
746930
747010
|
name: outputStyleName
|
|
746931
747011
|
},
|
|
@@ -747003,7 +747083,7 @@ function StatusLineInner({
|
|
|
747003
747083
|
const taskValues = Object.values(tasks2);
|
|
747004
747084
|
const taskRunningCount = countActiveBackgroundTasks(taskValues);
|
|
747005
747085
|
const defaultStatusLineText = buildDefaultStatusBar({
|
|
747006
|
-
version: "1.65.
|
|
747086
|
+
version: "1.65.13",
|
|
747007
747087
|
providerLabel: providerRuntime.providerLabel,
|
|
747008
747088
|
authMode: providerRuntime.authLabel,
|
|
747009
747089
|
model: renderModelName(mainLoopModel) || providerRuntime.model || "",
|
|
@@ -759183,7 +759263,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
|
|
|
759183
759263
|
} catch {}
|
|
759184
759264
|
const data = {
|
|
759185
759265
|
trigger: trigger2,
|
|
759186
|
-
version: "1.65.
|
|
759266
|
+
version: "1.65.13",
|
|
759187
759267
|
platform: process.platform,
|
|
759188
759268
|
transcript,
|
|
759189
759269
|
subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
|
|
@@ -759728,7 +759808,7 @@ var init_useMemorySurvey = __esm(() => {
|
|
|
759728
759808
|
init_analytics();
|
|
759729
759809
|
init_paths();
|
|
759730
759810
|
init_policyLimits();
|
|
759731
|
-
|
|
759811
|
+
init_prompt3();
|
|
759732
759812
|
init_config();
|
|
759733
759813
|
init_envUtils();
|
|
759734
759814
|
init_memoryFileDetection();
|
|
@@ -770345,7 +770425,7 @@ var init_REPL = __esm(() => {
|
|
|
770345
770425
|
init_ExitPlanModePermissionRequest();
|
|
770346
770426
|
init_permissionSetup();
|
|
770347
770427
|
init_filesystem();
|
|
770348
|
-
|
|
770428
|
+
init_prompt9();
|
|
770349
770429
|
init_bashPermissions();
|
|
770350
770430
|
init_config();
|
|
770351
770431
|
init_billing();
|
|
@@ -771548,7 +771628,7 @@ function WelcomeV2() {
|
|
|
771548
771628
|
dimColor: true,
|
|
771549
771629
|
children: [
|
|
771550
771630
|
"v",
|
|
771551
|
-
"1.65.
|
|
771631
|
+
"1.65.13"
|
|
771552
771632
|
]
|
|
771553
771633
|
}, undefined, true, undefined, this)
|
|
771554
771634
|
]
|
|
@@ -772808,7 +772888,7 @@ function completeOnboarding() {
|
|
|
772808
772888
|
saveGlobalConfig((current) => ({
|
|
772809
772889
|
...current,
|
|
772810
772890
|
hasCompletedOnboarding: true,
|
|
772811
|
-
lastOnboardingVersion: "1.65.
|
|
772891
|
+
lastOnboardingVersion: "1.65.13"
|
|
772812
772892
|
}));
|
|
772813
772893
|
}
|
|
772814
772894
|
function showDialog(root2, renderer) {
|
|
@@ -774649,7 +774729,7 @@ Examples:
|
|
|
774649
774729
|
/batch add type annotations to untyped functions`;
|
|
774650
774730
|
var init_batch = __esm(() => {
|
|
774651
774731
|
init_constants2();
|
|
774652
|
-
|
|
774732
|
+
init_prompt();
|
|
774653
774733
|
init_git();
|
|
774654
774734
|
init_bundledSkills();
|
|
774655
774735
|
WORKER_INSTRUCTIONS = `After implementing the assigned unit:
|
|
@@ -777194,7 +777274,7 @@ async function logSkillsLoaded(cwd2, contextWindowTokens) {
|
|
|
777194
777274
|
var init_skillLoadedEvent = __esm(() => {
|
|
777195
777275
|
init_commands3();
|
|
777196
777276
|
init_analytics();
|
|
777197
|
-
|
|
777277
|
+
init_prompt7();
|
|
777198
777278
|
});
|
|
777199
777279
|
|
|
777200
777280
|
// src/cli/exit.ts
|
|
@@ -777852,7 +777932,7 @@ function appendToLog(path24, message) {
|
|
|
777852
777932
|
cwd: getFsImplementation().cwd(),
|
|
777853
777933
|
userType: process.env.USER_TYPE,
|
|
777854
777934
|
sessionId: getSessionId(),
|
|
777855
|
-
version: "1.65.
|
|
777935
|
+
version: "1.65.13"
|
|
777856
777936
|
};
|
|
777857
777937
|
getLogWriter(path24).write(messageWithTimestamp);
|
|
777858
777938
|
}
|
|
@@ -780736,10 +780816,10 @@ var init_remoteIO = __esm(() => {
|
|
|
780736
780816
|
// src/utils/streamlinedTransform.ts
|
|
780737
780817
|
var COMMAND_TOOLS;
|
|
780738
780818
|
var init_streamlinedTransform = __esm(() => {
|
|
780739
|
-
init_prompt2();
|
|
780740
780819
|
init_prompt3();
|
|
780741
|
-
|
|
780742
|
-
|
|
780820
|
+
init_prompt4();
|
|
780821
|
+
init_prompt2();
|
|
780822
|
+
init_prompt6();
|
|
780743
780823
|
init_messages();
|
|
780744
780824
|
init_shellToolUtils();
|
|
780745
780825
|
init_stringUtils();
|
|
@@ -782016,8 +782096,8 @@ async function getEnvLessBridgeConfig() {
|
|
|
782016
782096
|
}
|
|
782017
782097
|
async function checkEnvLessBridgeMinVersion() {
|
|
782018
782098
|
const cfg = await getEnvLessBridgeConfig();
|
|
782019
|
-
if (cfg.min_version && lt("1.65.
|
|
782020
|
-
return `Your version of UR (${"1.65.
|
|
782099
|
+
if (cfg.min_version && lt("1.65.13", cfg.min_version)) {
|
|
782100
|
+
return `Your version of UR (${"1.65.13"}) is too old for Remote Control.
|
|
782021
782101
|
Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
|
|
782022
782102
|
}
|
|
782023
782103
|
return null;
|
|
@@ -782491,7 +782571,7 @@ async function initBridgeCore(params) {
|
|
|
782491
782571
|
const rawApi = createBridgeApiClient({
|
|
782492
782572
|
baseUrl,
|
|
782493
782573
|
getAccessToken,
|
|
782494
|
-
runnerVersion: "1.65.
|
|
782574
|
+
runnerVersion: "1.65.13",
|
|
782495
782575
|
onDebug: logForDebugging,
|
|
782496
782576
|
onAuth401,
|
|
782497
782577
|
getTrustedDeviceToken
|
|
@@ -791964,7 +792044,7 @@ function getAgUiCapabilities() {
|
|
|
791964
792044
|
name: "UR-Nexus",
|
|
791965
792045
|
type: "ur-nexus",
|
|
791966
792046
|
description: "Provider-flexible, local-first autonomous engineering workflow agent.",
|
|
791967
|
-
version: "1.65.
|
|
792047
|
+
version: "1.65.13",
|
|
791968
792048
|
provider: "UR",
|
|
791969
792049
|
documentationUrl: "https://github.com/Maitham16/UR/blob/master/docs/AG_UI.md"
|
|
791970
792050
|
},
|
|
@@ -793104,7 +793184,7 @@ function createMCPServer(cwd4, debug2, verbose) {
|
|
|
793104
793184
|
};
|
|
793105
793185
|
const server2 = new Server({
|
|
793106
793186
|
name: "ur-nexus",
|
|
793107
|
-
version: "1.65.
|
|
793187
|
+
version: "1.65.13"
|
|
793108
793188
|
}, {
|
|
793109
793189
|
capabilities: {
|
|
793110
793190
|
tools: {}
|
|
@@ -794262,7 +794342,7 @@ function thrownResponse(error40) {
|
|
|
794262
794342
|
}
|
|
794263
794343
|
async function createUrMcp2026Runtime(options4) {
|
|
794264
794344
|
const server2 = createMCPServer(options4.cwd, options4.debug === true, options4.verbose === true);
|
|
794265
|
-
const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.65.
|
|
794345
|
+
const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.65.13" }, { capabilities: {} });
|
|
794266
794346
|
const [clientTransport, serverTransport] = createLinkedTransportPair();
|
|
794267
794347
|
try {
|
|
794268
794348
|
await server2.connect(serverTransport);
|
|
@@ -794273,7 +794353,7 @@ async function createUrMcp2026Runtime(options4) {
|
|
|
794273
794353
|
}
|
|
794274
794354
|
const runtime2 = new Mcp2026Runtime({
|
|
794275
794355
|
cwd: options4.cwd,
|
|
794276
|
-
version: "1.65.
|
|
794356
|
+
version: "1.65.13",
|
|
794277
794357
|
backend: {
|
|
794278
794358
|
listTools: async () => {
|
|
794279
794359
|
const listed = await client2.listTools();
|
|
@@ -796406,7 +796486,7 @@ async function update() {
|
|
|
796406
796486
|
logEvent("tengu_update_check", {});
|
|
796407
796487
|
const diagnostic2 = await getDoctorDiagnostic();
|
|
796408
796488
|
const result = await checkUpgradeStatus({
|
|
796409
|
-
currentVersion: "1.65.
|
|
796489
|
+
currentVersion: "1.65.13",
|
|
796410
796490
|
packageName: UR_AGENT_PACKAGE_NAME,
|
|
796411
796491
|
installationType: diagnostic2.installationType,
|
|
796412
796492
|
latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
|
|
@@ -797722,7 +797802,7 @@ ${customInstructions}` : customInstructions;
|
|
|
797722
797802
|
}
|
|
797723
797803
|
}
|
|
797724
797804
|
logForDiagnosticsNoPII("info", "started", {
|
|
797725
|
-
version: "1.65.
|
|
797805
|
+
version: "1.65.13",
|
|
797726
797806
|
is_native_binary: isInBundledMode()
|
|
797727
797807
|
});
|
|
797728
797808
|
registerCleanup(async () => {
|
|
@@ -798508,7 +798588,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
798508
798588
|
pendingHookMessages
|
|
798509
798589
|
}, renderAndRun);
|
|
798510
798590
|
}
|
|
798511
|
-
}).version("1.65.
|
|
798591
|
+
}).version("1.65.13 (UR-Nexus)", "-v, --version", "Output the version number");
|
|
798512
798592
|
program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
|
|
798513
798593
|
program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
|
|
798514
798594
|
if (canUserConfigureAdvisor()) {
|
|
@@ -799567,7 +799647,7 @@ if (false) {}
|
|
|
799567
799647
|
async function main2() {
|
|
799568
799648
|
const args = process.argv.slice(2);
|
|
799569
799649
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
799570
|
-
console.log(`${"1.65.
|
|
799650
|
+
console.log(`${"1.65.13"} (UR-Nexus)`);
|
|
799571
799651
|
return;
|
|
799572
799652
|
}
|
|
799573
799653
|
if (args[0] === "a2a" && args[1] === "serve" && !args.includes("--help") && !args.includes("-h")) {
|