@linghun/tui 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (186) hide show
  1. package/dist/agent-completion-finalizer.js +3 -3
  2. package/dist/background-control-runtime.js +52 -52
  3. package/dist/cache-command-runtime.js +3 -3
  4. package/dist/capability-runtime.js +32 -32
  5. package/dist/{chunk-TJLC3QAS.js → chunk-36ZWUJQS.js} +1 -1
  6. package/dist/{chunk-624A7BBJ.js → chunk-3MRYQO7X.js} +4 -4
  7. package/dist/{chunk-QJTET7EZ.js → chunk-3PG7I3LA.js} +4 -4
  8. package/dist/{chunk-J7ZE2JKP.js → chunk-42ZZUF7P.js} +3 -3
  9. package/dist/{chunk-DTK5NBTV.js → chunk-4BFCUJX6.js} +95 -11
  10. package/dist/{chunk-YH6UIHNF.js → chunk-4QWCNMP6.js} +2 -2
  11. package/dist/{chunk-WKMBK5UP.js → chunk-4TO2LDMP.js} +1 -1
  12. package/dist/{chunk-5CXN4JLE.js → chunk-5IFNLTOF.js} +4 -4
  13. package/dist/{chunk-W3KHJNSH.js → chunk-6CHUZ2NF.js} +2 -2
  14. package/dist/{chunk-I3NTAIMF.js → chunk-6DBBXNEG.js} +3 -3
  15. package/dist/{chunk-GDQQNPBP.js → chunk-6GXIGN5W.js} +1 -1
  16. package/dist/{chunk-QLRTQHTR.js → chunk-6JGRNES6.js} +2 -2
  17. package/dist/{chunk-WOBNOBB5.js → chunk-7BHMBWG2.js} +3 -3
  18. package/dist/{chunk-KO64OFSG.js → chunk-7C6T7RKJ.js} +1 -1
  19. package/dist/{chunk-RFSSKGCE.js → chunk-7R4YXN7Z.js} +176 -37
  20. package/dist/{chunk-LDABZV5V.js → chunk-7RZE45OT.js} +1 -1
  21. package/dist/{chunk-MLUIOBKL.js → chunk-7ZMDQZ22.js} +4 -4
  22. package/dist/{chunk-X7A22JHP.js → chunk-A4H3UTJZ.js} +1 -1
  23. package/dist/{chunk-QG2FJ3NR.js → chunk-AGI6GFFL.js} +3 -3
  24. package/dist/{chunk-D3UTL2QX.js → chunk-ATY7WBIT.js} +1 -1
  25. package/dist/{chunk-ZOSK2UEU.js → chunk-BBK5BA5C.js} +99 -117
  26. package/dist/{chunk-SRZIA6B4.js → chunk-BNC4F63N.js} +1 -1
  27. package/dist/{chunk-4E56DWEZ.js → chunk-CJRJR7TP.js} +4 -4
  28. package/dist/{chunk-SILJJAK2.js → chunk-DIDRFIIW.js} +1 -1
  29. package/dist/{chunk-HIIYRATQ.js → chunk-EKYXI6C7.js} +11 -7
  30. package/dist/{chunk-Y5ZV47XC.js → chunk-FGGY5KNM.js} +7 -7
  31. package/dist/{chunk-APJIC2O5.js → chunk-GTIZNO5O.js} +84 -0
  32. package/dist/{chunk-UOHZQIVL.js → chunk-GXFYUZAM.js} +1 -1
  33. package/dist/{chunk-DDXS2RDZ.js → chunk-HGCTHBUY.js} +1 -1
  34. package/dist/{chunk-QTDGRZMZ.js → chunk-HJOC5WUV.js} +1 -1
  35. package/dist/{chunk-DYDTLRHB.js → chunk-HPIHFENG.js} +2 -2
  36. package/dist/{chunk-SYBNJZEL.js → chunk-HPMBSOQ4.js} +1 -1
  37. package/dist/{chunk-LIPZJNXS.js → chunk-HPQ2IHOW.js} +4 -4
  38. package/dist/{chunk-KOULRCYJ.js → chunk-HZ5XNKWS.js} +1 -1
  39. package/dist/{chunk-4K6UB524.js → chunk-IPZZGDUU.js} +1 -1
  40. package/dist/{chunk-6CI6TKLN.js → chunk-JAVRQ3LM.js} +1 -1
  41. package/dist/{chunk-VCSRBS47.js → chunk-JLAJZPOC.js} +1 -1
  42. package/dist/{chunk-UN53MBAR.js → chunk-JY3LI63F.js} +2 -2
  43. package/dist/{chunk-RMLTVKOY.js → chunk-L4YVE3RG.js} +2 -2
  44. package/dist/{chunk-P277M7Z5.js → chunk-LBC75QAB.js} +1 -1
  45. package/dist/{chunk-F6TVBCZV.js → chunk-LWW2IAFC.js} +1 -1
  46. package/dist/{chunk-L2GU3PWU.js → chunk-NK4NMYF5.js} +49 -7
  47. package/dist/{chunk-MXPBYB54.js → chunk-O2U4XQVM.js} +2 -2
  48. package/dist/{chunk-LQTVYUT3.js → chunk-OJTMM5CV.js} +2 -2
  49. package/dist/{chunk-HW2TBXVK.js → chunk-OPVRII63.js} +1 -1
  50. package/dist/{chunk-CDVYF7RU.js → chunk-OSFBVVEP.js} +4 -4
  51. package/dist/{chunk-F43AMWLZ.js → chunk-PDTJVJVD.js} +1 -1
  52. package/dist/{chunk-UDQT5CWK.js → chunk-PI6T2AGS.js} +1 -1
  53. package/dist/{chunk-AZU7HXIT.js → chunk-PPUOHBAK.js} +17 -17
  54. package/dist/{chunk-33E6RDCY.js → chunk-QD4SCW4A.js} +229 -192
  55. package/dist/{chunk-SOPYWTFV.js → chunk-RRUI3VWQ.js} +1 -1
  56. package/dist/{chunk-IN42UISW.js → chunk-SRJ4XWOR.js} +10 -5
  57. package/dist/{chunk-6RJVTUWI.js → chunk-T6UOCF5D.js} +5 -1
  58. package/dist/{chunk-VTQL23UM.js → chunk-TVNWAEJR.js} +1 -1
  59. package/dist/chunk-TY4KIVA6.js +50 -0
  60. package/dist/{chunk-UT2TYK2A.js → chunk-TYTVAFGB.js} +1 -1
  61. package/dist/{chunk-OMZYPQVA.js → chunk-UGYFQF6M.js} +1 -1
  62. package/dist/{chunk-VAGL7CNR.js → chunk-UIKN3CDF.js} +4 -4
  63. package/dist/{chunk-JGDIO2NF.js → chunk-UO3KYTBU.js} +1 -1
  64. package/dist/{chunk-KI7C6ZOD.js → chunk-VIJ7GDKI.js} +1 -1
  65. package/dist/{chunk-NKFKOEYX.js → chunk-WCMHJ6SS.js} +1 -1
  66. package/dist/{chunk-EORRZP3F.js → chunk-WX2OTJXL.js} +1 -1
  67. package/dist/{chunk-BOV4K7FP.js → chunk-WXTHKLNH.js} +9 -1
  68. package/dist/{chunk-CRQORMFF.js → chunk-X37FSYAX.js} +1 -1
  69. package/dist/{chunk-XWRHWM4H.js → chunk-X7E34LKV.js} +11 -11
  70. package/dist/chunk-X7HMDZZQ.js +85 -0
  71. package/dist/{chunk-CD54BQJ5.js → chunk-YDTJ7UBG.js} +4 -4
  72. package/dist/{chunk-K56D3X7S.js → chunk-YKOXJQGX.js} +34 -2
  73. package/dist/{chunk-7TYK55JT.js → chunk-YLOJWSHB.js} +5 -5
  74. package/dist/{chunk-O6MKVGVK.js → chunk-YMEMN5FG.js} +1 -1
  75. package/dist/chunk-YQNK7HK3.js +87 -0
  76. package/dist/{chunk-KJVHLTQR.js → chunk-Z265MCGC.js} +12 -8
  77. package/dist/{chunk-3BPKJMIV.js → chunk-ZF36LULR.js} +4 -4
  78. package/dist/{chunk-JJQETFCR.js → chunk-ZJDPYOTK.js} +4 -4
  79. package/dist/{chunk-RM5QMOFY.js → chunk-ZKPQ4KLK.js} +1 -1
  80. package/dist/command-panel-runtime.js +31 -31
  81. package/dist/compact-cache-command-runtime.js +52 -52
  82. package/dist/compact-preflight-runtime.js +20 -20
  83. package/dist/connector-runtime.js +33 -33
  84. package/dist/deep-compact-runtime.js +6 -6
  85. package/dist/deferred-tools-catalog.js +5 -5
  86. package/dist/details-status-runtime.js +31 -31
  87. package/dist/evidence-runtime.d.ts.map +1 -1
  88. package/dist/evidence-runtime.js +11 -11
  89. package/dist/extension-command-runtime.js +6 -6
  90. package/dist/extension-slash-runtime.js +32 -32
  91. package/dist/failure-learning-command-runtime.js +33 -33
  92. package/dist/failure-learning-presenter.js +4 -4
  93. package/dist/failure-learning-runtime.js +3 -3
  94. package/dist/final-answer-gate.js +2 -2
  95. package/dist/git-command-runtime.js +32 -32
  96. package/dist/handoff-session-runtime.js +8 -8
  97. package/dist/index-result-presenter.js +5 -5
  98. package/dist/index-runtime.js +5 -5
  99. package/dist/index.d.ts.map +1 -1
  100. package/dist/index.js +65 -59
  101. package/dist/job-agent-command-runtime.js +31 -31
  102. package/dist/job-runner-presenter.js +3 -3
  103. package/dist/job-runtime.js +8 -8
  104. package/dist/mcp-index-command-runtime.js +4 -4
  105. package/dist/mcp-index-runtime.js +36 -36
  106. package/dist/mcp-sse-runtime.js +3 -3
  107. package/dist/mcp-stdio-runtime.js +3 -3
  108. package/dist/memory-command-runtime.js +33 -33
  109. package/dist/memory-extraction-runtime.js +3 -3
  110. package/dist/memory-rules-runtime.js +3 -3
  111. package/dist/model-command-runtime.js +32 -32
  112. package/dist/model-loop-runtime.d.ts +1 -1
  113. package/dist/model-loop-runtime.d.ts.map +1 -1
  114. package/dist/model-loop-runtime.js +1 -1
  115. package/dist/model-prompt-runtime.js +10 -10
  116. package/dist/model-stream-runtime.js +52 -52
  117. package/dist/model-tool-runtime.d.ts +1 -0
  118. package/dist/model-tool-runtime.d.ts.map +1 -1
  119. package/dist/model-tool-runtime.js +54 -52
  120. package/dist/pending-details-presenter.js +3 -3
  121. package/dist/permission-approval-runtime.js +52 -52
  122. package/dist/permission-continuation-runtime.d.ts.map +1 -1
  123. package/dist/permission-continuation-runtime.js +4 -4
  124. package/dist/process-command-runtime.js +3 -3
  125. package/dist/provider-loop-runtime.js +3 -3
  126. package/dist/remote-command-runtime.js +32 -32
  127. package/dist/runner-runtime.js +7 -7
  128. package/dist/runtime-status-presenter.js +3 -3
  129. package/dist/runtime-status-snapshot.js +4 -4
  130. package/dist/shell/components/AgentProgressTree.js +2 -2
  131. package/dist/shell/components/BackgroundTaskOverlay.js +2 -2
  132. package/dist/shell/components/BtwPanel.js +2 -2
  133. package/dist/shell/components/CommandPanel.js +2 -2
  134. package/dist/shell/components/Composer.d.ts +16 -2
  135. package/dist/shell/components/Composer.d.ts.map +1 -1
  136. package/dist/shell/components/Composer.js +9 -7
  137. package/dist/shell/components/ConfigPanel.js +2 -2
  138. package/dist/shell/components/HelpPanel.js +2 -2
  139. package/dist/shell/components/HistorySearchPanel.js +2 -2
  140. package/dist/shell/components/MessageMarkdown.d.ts +23 -0
  141. package/dist/shell/components/MessageMarkdown.d.ts.map +1 -1
  142. package/dist/shell/components/MessageMarkdown.js +5 -3
  143. package/dist/shell/components/MouseInputRouter.js +5 -80
  144. package/dist/shell/components/OutputLine.d.ts.map +1 -1
  145. package/dist/shell/components/OutputLine.js +5 -3
  146. package/dist/shell/components/ProductBlock.d.ts.map +1 -1
  147. package/dist/shell/components/ProductBlock.js +4 -4
  148. package/dist/shell/components/ScrollViewport.js +3 -82
  149. package/dist/shell/components/SessionsPanel.js +2 -2
  150. package/dist/shell/components/ShellApp.d.ts.map +1 -1
  151. package/dist/shell/components/ShellApp.js +28 -23
  152. package/dist/shell/components/SlashSuggestions.js +2 -2
  153. package/dist/shell/components/StatusFooter.js +2 -2
  154. package/dist/shell/components/StatusTray.d.ts.map +1 -1
  155. package/dist/shell/components/StatusTray.js +2 -1
  156. package/dist/shell/components/StructuredDiff.js +2 -2
  157. package/dist/shell/components/TaskListView.js +2 -2
  158. package/dist/shell/components/TaskSuggestionBar.js +2 -2
  159. package/dist/shell/components/WorkflowProgressView.js +2 -2
  160. package/dist/shell/components/useAnchoredCursor.d.ts +6 -9
  161. package/dist/shell/components/useAnchoredCursor.d.ts.map +1 -1
  162. package/dist/shell/components/useAnchoredCursor.js +1 -1
  163. package/dist/shell/ink-renderer.d.ts.map +1 -1
  164. package/dist/shell/ink-renderer.js +28 -23
  165. package/dist/shell/models/transcript-selection-state.js +2 -2
  166. package/dist/shell/plain-renderer.d.ts.map +1 -1
  167. package/dist/shell/plain-renderer.js +2 -2
  168. package/dist/shell/text-utils.d.ts +16 -0
  169. package/dist/shell/text-utils.d.ts.map +1 -1
  170. package/dist/shell/text-utils.js +3 -1
  171. package/dist/shell/view-model.js +14 -14
  172. package/dist/slash-command-runtime.js +52 -52
  173. package/dist/slash-dispatch.js +4 -4
  174. package/dist/startup-runtime.js +2 -2
  175. package/dist/tool-output-presenter.d.ts.map +1 -1
  176. package/dist/tool-output-presenter.js +1 -1
  177. package/dist/tui-agent-job-runtime.js +10 -10
  178. package/dist/tui-details-runtime.js +9 -9
  179. package/dist/tui-memory-runtime.js +5 -5
  180. package/dist/tui-output-surface.js +15 -15
  181. package/dist/tui-permission-runtime.js +5 -5
  182. package/dist/tui-state-runtime.js +4 -4
  183. package/dist/verification-command-runtime.js +11 -11
  184. package/dist/workflow-command-runtime.js +31 -31
  185. package/package.json +4 -4
  186. package/dist/chunk-GW5YDCRZ.js +0 -42
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  createOutputBlock
3
- } from "./chunk-HIIYRATQ.js";
3
+ } from "./chunk-EKYXI6C7.js";
4
4
  import {
5
5
  writeLine
6
- } from "./chunk-OMZYPQVA.js";
6
+ } from "./chunk-UGYFQF6M.js";
7
7
 
8
8
  // src/tui-output-surface.ts
9
9
  import { createHash, randomUUID } from "crypto";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  truncateDisplay
3
- } from "./chunk-OMZYPQVA.js";
3
+ } from "./chunk-UGYFQF6M.js";
4
4
 
5
5
  // src/agent-completion-finalizer.ts
6
6
  import { randomUUID } from "crypto";
@@ -1,21 +1,21 @@
1
1
  import {
2
2
  ensureSession,
3
3
  showCommandPanel
4
- } from "./chunk-AZU7HXIT.js";
4
+ } from "./chunk-PPUOHBAK.js";
5
5
  import {
6
6
  decidePermission
7
- } from "./chunk-DDXS2RDZ.js";
7
+ } from "./chunk-HGCTHBUY.js";
8
8
  import {
9
9
  appendSystemEvent,
10
10
  budgetToolResultTranscriptContent,
11
11
  createEvidenceRecord,
12
12
  rememberEvidence
13
- } from "./chunk-L2GU3PWU.js";
13
+ } from "./chunk-NK4NMYF5.js";
14
14
  import {
15
15
  sanitizeDiagnosticText,
16
16
  truncateDisplay,
17
17
  writeLine
18
- } from "./chunk-OMZYPQVA.js";
18
+ } from "./chunk-UGYFQF6M.js";
19
19
 
20
20
  // src/capability-runtime.ts
21
21
  import { randomUUID } from "crypto";
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  sanitizeDiagnosticText,
6
6
  truncateDisplay
7
- } from "./chunk-OMZYPQVA.js";
7
+ } from "./chunk-UGYFQF6M.js";
8
8
 
9
9
  // src/process-command-runtime.ts
10
10
  import { spawn } from "child_process";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  formatPermissionModeLabel
3
- } from "./chunk-KI7C6ZOD.js";
3
+ } from "./chunk-VIJ7GDKI.js";
4
4
  import {
5
5
  getUserVisibleCommandCapabilities
6
6
  } from "./chunk-PGNALDEH.js";
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  fitText,
6
6
  wrapText
7
- } from "./chunk-APJIC2O5.js";
7
+ } from "./chunk-GTIZNO5O.js";
8
8
 
9
9
  // src/shell/components/BackgroundTaskOverlay.tsx
10
10
  import { Box, Text } from "@linghun/ink-runtime";
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  fitText,
6
6
  wrapText
7
- } from "./chunk-APJIC2O5.js";
7
+ } from "./chunk-GTIZNO5O.js";
8
8
 
9
9
  // src/shell/components/ConfigPanel.tsx
10
10
  import { Box, Text, useInput } from "@linghun/ink-runtime";
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  deriveAgentDisplayName
3
- } from "./chunk-VAGL7CNR.js";
3
+ } from "./chunk-UIKN3CDF.js";
4
4
  import {
5
5
  formatDisplayPath,
6
6
  sanitizeDisplayPaths,
7
7
  truncateDisplay
8
- } from "./chunk-OMZYPQVA.js";
8
+ } from "./chunk-UGYFQF6M.js";
9
9
 
10
10
  // src/tui-details-runtime.ts
11
11
  import { join } from "path";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  formatIndexRuntimeRef
3
- } from "./chunk-UT2TYK2A.js";
3
+ } from "./chunk-TYTVAFGB.js";
4
4
  import {
5
5
  withProviderRetry
6
6
  } from "./chunk-EBACIBJP.js";
@@ -14,7 +14,7 @@ import {
14
14
  sanitizeDiagnosticText,
15
15
  sanitizeDisplayPaths,
16
16
  truncateDisplay
17
- } from "./chunk-OMZYPQVA.js";
17
+ } from "./chunk-UGYFQF6M.js";
18
18
 
19
19
  // src/deep-compact-runtime.ts
20
20
  import { randomUUID } from "crypto";
@@ -4,7 +4,7 @@ import {
4
4
  extractStructuredFinalAnswerClaims,
5
5
  finalAnswerHasCompletenessClassification,
6
6
  hasArchitectureEvidenceForClaims
7
- } from "./chunk-K56D3X7S.js";
7
+ } from "./chunk-YKOXJQGX.js";
8
8
  import {
9
9
  detectArchitectureDrift
10
10
  } from "./chunk-MVONSJEN.js";
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  fitText,
6
6
  wrapText
7
- } from "./chunk-APJIC2O5.js";
7
+ } from "./chunk-GTIZNO5O.js";
8
8
 
9
9
  // src/shell/components/BtwPanel.tsx
10
10
  import { Box, Text, useInput } from "@linghun/ink-runtime";
@@ -12,20 +12,20 @@ import {
12
12
  } from "./chunk-IWUIOLMF.js";
13
13
  import {
14
14
  writeHandoffPacket
15
- } from "./chunk-MLUIOBKL.js";
15
+ } from "./chunk-7ZMDQZ22.js";
16
16
  import {
17
17
  deriveToolSupportsClaims
18
- } from "./chunk-K56D3X7S.js";
18
+ } from "./chunk-YKOXJQGX.js";
19
19
  import {
20
20
  mergeFailureRecord,
21
21
  writeFailureRecord
22
- } from "./chunk-GDQQNPBP.js";
22
+ } from "./chunk-6GXIGN5W.js";
23
23
  import {
24
24
  classifyProviderFailure
25
25
  } from "./chunk-OZMX3E35.js";
26
26
  import {
27
27
  truncateDisplay
28
- } from "./chunk-OMZYPQVA.js";
28
+ } from "./chunk-UGYFQF6M.js";
29
29
  import {
30
30
  summarizeArchitectureCard
31
31
  } from "./chunk-MVONSJEN.js";
@@ -215,11 +215,11 @@ async function recordArchitectureRuntimeCard(context, sessionId, card) {
215
215
  return evidence;
216
216
  }
217
217
  async function recordToolEvidence(context, sessionId, name, output, input) {
218
- const kind = name === "Read" ? "file_read" : name === "Grep" || name === "Glob" ? "grep_result" : name === "Bash" || name === "Write" || name === "Edit" || name === "MultiEdit" ? "command_output" : null;
218
+ const kind = name === "Read" || name === "ReadSnippets" || name === "SourcePack" ? "file_read" : name === "Grep" || name === "Glob" ? "grep_result" : name === "Bash" || name === "Write" || name === "Edit" || name === "MultiEdit" ? "command_output" : null;
219
219
  if (!kind) {
220
220
  return null;
221
221
  }
222
- const readOnlyEvidence = name === "Read" || name === "Grep" || name === "Glob";
222
+ const readOnlyEvidence = name === "Read" || name === "ReadSnippets" || name === "SourcePack" || name === "Grep" || name === "Glob";
223
223
  const evidence = createEvidenceRecord(
224
224
  kind,
225
225
  readOnlyEvidence ? formatReadOnlyToolEvidenceSummary(name, output, input) : `${name}: ${truncateDisplay(output.text.replace(/\s+/g, " "), 120)}`,
@@ -237,11 +237,44 @@ async function recordToolEvidence(context, sessionId, name, output, input) {
237
237
  return evidence;
238
238
  }
239
239
  function formatReadOnlyToolEvidenceSummary(name, output, input) {
240
- const target = readToolEvidenceTarget(input);
240
+ const target = name === "SourcePack" ? sourcePackEvidenceTarget(input, output) : name === "ReadSnippets" ? readSnippetsEvidenceTarget(input) : readToolEvidenceTarget(input);
241
241
  const artifact = output.fullOutputPath ? "artifact=yes" : "artifact=no";
242
242
  const bytes = output.text.length;
243
243
  return `${name}: ${target}; output_chars=${bytes}; ${artifact}`;
244
244
  }
245
+ function sourcePackEvidenceTarget(input, output) {
246
+ const query = readStringField(input, "query");
247
+ const paths = extractOutputCandidatePaths(output.data);
248
+ const pathText = paths.length > 0 ? `; paths=${truncateDisplay(paths.slice(0, 4).join(","), 120)}` : "";
249
+ return `query=${truncateDisplay((query ?? "unspecified").replace(/\s+/g, " "), 90)}${pathText}`;
250
+ }
251
+ function readSnippetsEvidenceTarget(input) {
252
+ if (!input || typeof input !== "object" || Array.isArray(input)) return "ranges=unspecified";
253
+ const ranges = input.ranges;
254
+ if (!Array.isArray(ranges)) return "ranges=unspecified";
255
+ const paths = ranges.map(
256
+ (item) => item && typeof item === "object" && typeof item.path === "string" ? item.path : void 0
257
+ ).filter((item) => Boolean(item));
258
+ return paths.length > 0 ? `ranges=${truncateDisplay(paths.slice(0, 4).join(","), 120)}` : "ranges=unspecified";
259
+ }
260
+ function readStringField(input, key) {
261
+ if (!input || typeof input !== "object" || Array.isArray(input)) return void 0;
262
+ const value = input[key];
263
+ return typeof value === "string" && value.trim() ? value : void 0;
264
+ }
265
+ function extractOutputCandidatePaths(data) {
266
+ if (!data || typeof data !== "object" || Array.isArray(data)) return [];
267
+ const record = data;
268
+ const candidatePaths = record.candidatePaths;
269
+ if (Array.isArray(candidatePaths)) {
270
+ return candidatePaths.filter((item) => typeof item === "string");
271
+ }
272
+ const snippets = record.snippets;
273
+ if (!Array.isArray(snippets)) return [];
274
+ return snippets.map(
275
+ (item) => item && typeof item === "object" && typeof item.path === "string" ? item.path : void 0
276
+ ).filter((item) => Boolean(item));
277
+ }
245
278
  function readToolEvidenceTarget(input) {
246
279
  if (!input || typeof input !== "object" || Array.isArray(input)) return "target=unspecified";
247
280
  const record = input;
@@ -258,6 +291,15 @@ function readToolEvidenceTarget(input) {
258
291
  return `paths=${truncateDisplay(values.slice(0, 3).join(","), 90)}`;
259
292
  }
260
293
  }
294
+ const ranges = record.ranges;
295
+ if (Array.isArray(ranges)) {
296
+ const values = ranges.map(
297
+ (item) => item && typeof item === "object" && typeof item.path === "string" ? item.path : void 0
298
+ ).filter((item) => Boolean(item));
299
+ if (values.length > 0) {
300
+ return `ranges=${truncateDisplay(values.slice(0, 3).join(","), 90)}`;
301
+ }
302
+ }
261
303
  return "target=unspecified";
262
304
  }
263
305
  async function recordVerificationEvidence(context, sessionId, report) {
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  redactedPath
3
- } from "./chunk-KOULRCYJ.js";
3
+ } from "./chunk-HZ5XNKWS.js";
4
4
  import {
5
5
  truncateDisplay
6
- } from "./chunk-OMZYPQVA.js";
6
+ } from "./chunk-UGYFQF6M.js";
7
7
 
8
8
  // src/mcp-index-command-runtime.ts
9
9
  import { basename } from "path";
@@ -2,14 +2,14 @@ import {
2
2
  normalizeMemoryStatus,
3
3
  pathExists,
4
4
  summarizeProjectRules
5
- } from "./chunk-QLRTQHTR.js";
5
+ } from "./chunk-6JGRNES6.js";
6
6
  import {
7
7
  MEMORY_LEARNING_STATE_FILE
8
8
  } from "./chunk-5H7RRF7C.js";
9
9
  import {
10
10
  formatDisplayPath,
11
11
  truncateDisplay
12
- } from "./chunk-OMZYPQVA.js";
12
+ } from "./chunk-UGYFQF6M.js";
13
13
 
14
14
  // src/tui-memory-runtime.ts
15
15
  import { randomUUID } from "crypto";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  fitText
3
- } from "./chunk-APJIC2O5.js";
3
+ } from "./chunk-GTIZNO5O.js";
4
4
 
5
5
  // src/shell/components/SlashSuggestions.tsx
6
6
  import { Box, Text } from "@linghun/ink-runtime";
@@ -9,21 +9,21 @@ import {
9
9
  getDurableJobPaths,
10
10
  getDurableJobsRoot,
11
11
  listDurableJobs
12
- } from "./chunk-VAGL7CNR.js";
12
+ } from "./chunk-UIKN3CDF.js";
13
13
  import {
14
14
  formatJobNextAction,
15
15
  mapDurableJobToBackgroundResult,
16
16
  mapDurableJobToBackgroundStatus
17
- } from "./chunk-UDQT5CWK.js";
17
+ } from "./chunk-PI6T2AGS.js";
18
18
  import {
19
19
  MAX_BACKGROUND_TASKS
20
20
  } from "./chunk-RDGM4RUE.js";
21
21
  import {
22
22
  formatIndexRuntimeRef
23
- } from "./chunk-UT2TYK2A.js";
23
+ } from "./chunk-TYTVAFGB.js";
24
24
  import {
25
25
  truncateDisplay
26
- } from "./chunk-OMZYPQVA.js";
26
+ } from "./chunk-UGYFQF6M.js";
27
27
 
28
28
  // src/tui-agent-job-runtime.ts
29
29
  function isAgentType(value) {
@@ -2,7 +2,7 @@ import {
2
2
  displayWidth,
3
3
  fitText,
4
4
  wrapText
5
- } from "./chunk-APJIC2O5.js";
5
+ } from "./chunk-GTIZNO5O.js";
6
6
 
7
7
  // src/shell/components/StructuredDiff.tsx
8
8
  import { Box, Text } from "@linghun/ink-runtime";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  formatDisplayPath,
3
3
  sanitizeDisplayPaths
4
- } from "./chunk-OMZYPQVA.js";
4
+ } from "./chunk-UGYFQF6M.js";
5
5
 
6
6
  // src/job-runner-presenter.ts
7
7
  function formatRunnerDoctor(resolution, expectedProtocol, sanitizeDiagnosticText) {
@@ -4,12 +4,12 @@ import {
4
4
  } from "./chunk-V7GDHHBL.js";
5
5
  import {
6
6
  decidePermission
7
- } from "./chunk-DDXS2RDZ.js";
7
+ } from "./chunk-HGCTHBUY.js";
8
8
  import {
9
9
  createVerificationPlan,
10
10
  createVerificationUnavailableReport,
11
11
  runVerificationPlan
12
- } from "./chunk-4E56DWEZ.js";
12
+ } from "./chunk-CJRJR7TP.js";
13
13
  import {
14
14
  createAgentBackgroundTask,
15
15
  createAgentContextSummary,
@@ -35,21 +35,21 @@ import {
35
35
  registerBackgroundAbortController,
36
36
  rememberBackgroundTask,
37
37
  upsertJobBackgroundTask
38
- } from "./chunk-CDVYF7RU.js";
38
+ } from "./chunk-OSFBVVEP.js";
39
39
  import {
40
40
  createLogArtifactRegistry,
41
41
  findEvidence,
42
42
  formatAgentDetails,
43
43
  formatEvidenceDetails,
44
44
  parseLogArtifactRequest
45
- } from "./chunk-UN53MBAR.js";
45
+ } from "./chunk-JY3LI63F.js";
46
46
  import {
47
47
  createShellBlockOutputForTest,
48
48
  writeErrorLine
49
- } from "./chunk-DYDTLRHB.js";
49
+ } from "./chunk-HPIHFENG.js";
50
50
  import {
51
51
  formatModeBehavior
52
- } from "./chunk-4K6UB524.js";
52
+ } from "./chunk-IPZZGDUU.js";
53
53
  import {
54
54
  createVerificationLevelForReadiness
55
55
  } from "./chunk-PBIPV4LD.js";
@@ -68,13 +68,13 @@ import {
68
68
  rescheduleDurableJobAgents,
69
69
  updateDurableJobEffectiveAgentCap,
70
70
  writeDurableJobReport
71
- } from "./chunk-VAGL7CNR.js";
71
+ } from "./chunk-UIKN3CDF.js";
72
72
  import {
73
73
  markJobRunnerTerminal,
74
74
  refreshRunnerStatusForJob,
75
75
  startRunnerForDurableJob,
76
76
  stopRunnerForDurableJob
77
- } from "./chunk-CD54BQJ5.js";
77
+ } from "./chunk-YDTJ7UBG.js";
78
78
  import {
79
79
  formatLogArtifactSlice,
80
80
  readLogArtifactSlice
@@ -84,14 +84,14 @@ import {
84
84
  } from "./chunk-4UER2AKI.js";
85
85
  import {
86
86
  formatWorkflows
87
- } from "./chunk-QG2FJ3NR.js";
87
+ } from "./chunk-AGI6GFFL.js";
88
88
  import {
89
89
  messages
90
90
  } from "./chunk-RBOQJFIZ.js";
91
91
  import {
92
92
  formatPermissionModeLabel,
93
93
  formatRuntimeStatusLine
94
- } from "./chunk-KI7C6ZOD.js";
94
+ } from "./chunk-VIJ7GDKI.js";
95
95
  import {
96
96
  formatBackgroundDetails,
97
97
  formatBackgroundOutputDetails,
@@ -99,13 +99,13 @@ import {
99
99
  formatBackgroundTaskPanelDetails,
100
100
  formatBackgroundTaskPanelRow,
101
101
  formatJobRunnerInline
102
- } from "./chunk-UDQT5CWK.js";
102
+ } from "./chunk-PI6T2AGS.js";
103
103
  import {
104
104
  appendSystemEvent,
105
105
  appendToolResultEvent,
106
106
  createEvidenceRecord,
107
107
  createToolEndEvent
108
- } from "./chunk-L2GU3PWU.js";
108
+ } from "./chunk-NK4NMYF5.js";
109
109
  import {
110
110
  WORKFLOW_ARCHITECTURE_REVIEW_FILE_LIMIT
111
111
  } from "./chunk-RDGM4RUE.js";
@@ -115,14 +115,14 @@ import {
115
115
  import {
116
116
  loadOrCreateHandoffPacket,
117
117
  validateHandoffPacket
118
- } from "./chunk-MLUIOBKL.js";
118
+ } from "./chunk-7ZMDQZ22.js";
119
119
  import {
120
120
  AGENT_CONTROL_DESCRIPTION,
121
121
  AGENT_CONTROL_TOOL_NAME,
122
122
  createAgentControlInputSchema,
123
123
  createModelToolDefinitionsForTools,
124
124
  evaluateStructuredFinalAnswerClaims
125
- } from "./chunk-K56D3X7S.js";
125
+ } from "./chunk-YKOXJQGX.js";
126
126
  import {
127
127
  summarizeWorktreeCreateOutcome
128
128
  } from "./chunk-6USL33ZO.js";
@@ -132,7 +132,7 @@ import {
132
132
  import {
133
133
  createIndexStatusSnapshot,
134
134
  formatIndexRuntimeRef
135
- } from "./chunk-UT2TYK2A.js";
135
+ } from "./chunk-TYTVAFGB.js";
136
136
  import {
137
137
  isFallbackWorkspaceReferenceSnapshot
138
138
  } from "./chunk-ZJK25VFP.js";
@@ -171,14 +171,14 @@ import {
171
171
  enqueueAgentCompletionNotice,
172
172
  formatAgentCompletionDigest,
173
173
  markAgentCompletionNoticeReported
174
- } from "./chunk-SYBNJZEL.js";
174
+ } from "./chunk-HPMBSOQ4.js";
175
175
  import {
176
176
  formatError,
177
177
  sanitizeDiagnosticText,
178
178
  sanitizeDisplayPaths,
179
179
  truncateDisplay,
180
180
  writeLine
181
- } from "./chunk-OMZYPQVA.js";
181
+ } from "./chunk-UGYFQF6M.js";
182
182
  import {
183
183
  checkBoundaries,
184
184
  estimateFileMetrics