@markusylisiurunen/tau 0.3.60 → 0.3.62

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 (142) hide show
  1. package/dist/core/config/schema.js.map +1 -1
  2. package/dist/core/diff_review/bridge.js +1 -0
  3. package/dist/core/diff_review/bridge.js.map +1 -1
  4. package/dist/core/diff_review/protocol.js +4 -2
  5. package/dist/core/diff_review/protocol.js.map +1 -1
  6. package/dist/core/diff_review/review_instructions.js +2 -1
  7. package/dist/core/diff_review/review_instructions.js.map +1 -1
  8. package/dist/core/diff_review/tool.js +1 -1
  9. package/dist/core/diff_review/tool.js.map +1 -1
  10. package/dist/core/session/compaction.js +8 -7
  11. package/dist/core/session/compaction.js.map +1 -1
  12. package/dist/core/static/tau_docs/configuration.md +1 -1
  13. package/dist/core/static/tau_docs/index.md +1 -0
  14. package/dist/core/static/tau_docs/manifest.json +1 -0
  15. package/dist/core/static/tau_docs/node-sdk.md +8 -0
  16. package/dist/core/static/tau_docs/sdk-diff-review.md +79 -0
  17. package/dist/core/static/tau_docs/session-protocol-methods.md +4 -2
  18. package/dist/core/static/tau_docs/telegram.md +21 -22
  19. package/dist/core/static/tau_docs/troubleshooting.md +1 -1
  20. package/dist/core/static/tau_docs/tui.md +2 -0
  21. package/dist/core/telegram/config.js +20 -2
  22. package/dist/core/telegram/config.js.map +1 -1
  23. package/dist/core/telegram/workspace.js +3 -39
  24. package/dist/core/telegram/workspace.js.map +1 -1
  25. package/dist/core/version.js +1 -1
  26. package/dist/diff_tool/app/dist/assets/{angular-html-DoxI_och.js → angular-html-CNdMT1sj.js} +1 -1
  27. package/dist/diff_tool/app/dist/assets/{angular-ts-C7CUd-D2.js → angular-ts-ByZ1I9zp.js} +1 -1
  28. package/dist/diff_tool/app/dist/assets/{apl-7dieYM-l.js → apl-DTw4IZcL.js} +1 -1
  29. package/dist/diff_tool/app/dist/assets/{astro-Czj3O4jM.js → astro-Cuihy-h6.js} +1 -1
  30. package/dist/diff_tool/app/dist/assets/{blade-ClS0E2cC.js → blade-BRcWKIxm.js} +1 -1
  31. package/dist/diff_tool/app/dist/assets/{c-BKvTh-Jt.js → c-CZrnSPrO.js} +1 -1
  32. package/dist/diff_tool/app/dist/assets/{chapel-qvFrfwEr.js → chapel-BJWGSECM.js} +1 -1
  33. package/dist/diff_tool/app/dist/assets/{cobol-B0vsaB-J.js → cobol-BtqNzZtm.js} +1 -1
  34. package/dist/diff_tool/app/dist/assets/{coffee-BUlcrU75.js → coffee-DV53y0PJ.js} +1 -1
  35. package/dist/diff_tool/app/dist/assets/{cpp-CKqEgX1l.js → cpp-Bn3c6Y8W.js} +1 -1
  36. package/dist/diff_tool/app/dist/assets/{crystal-FCqSmIJ_.js → crystal-4DKOWvUP.js} +1 -1
  37. package/dist/diff_tool/app/dist/assets/{css-zZvYFJFc.js → css-DRAuUHHc.js} +1 -1
  38. package/dist/diff_tool/app/dist/assets/{edge-BKlbCo1f.js → edge-CvBIkt32.js} +1 -1
  39. package/dist/diff_tool/app/dist/assets/{elixir-B2gSxtgZ.js → elixir-WxLR57iz.js} +1 -1
  40. package/dist/diff_tool/app/dist/assets/{elm-DFEdzPJz.js → elm-C8UfKkLs.js} +1 -1
  41. package/dist/diff_tool/app/dist/assets/{erb-DSgn8fHS.js → erb-DDaRKv4Z.js} +1 -1
  42. package/dist/diff_tool/app/dist/assets/{git-rebase-CcgDECQr.js → git-rebase-BfBjC640.js} +1 -1
  43. package/dist/diff_tool/app/dist/assets/{glimmer-js-Dwxi4cX2.js → glimmer-js-5QdPyQJP.js} +1 -1
  44. package/dist/diff_tool/app/dist/assets/{glimmer-ts-BnJVER8W.js → glimmer-ts-Te0TMSCC.js} +1 -1
  45. package/dist/diff_tool/app/dist/assets/{glsl-z7_gU-HN.js → glsl-D4tyKssQ.js} +1 -1
  46. package/dist/diff_tool/app/dist/assets/{graphql-Dt7V-d3L.js → graphql-J0IcMfkN.js} +1 -1
  47. package/dist/diff_tool/app/dist/assets/{hack-jVkr6EC8.js → hack-BcEFuXu_.js} +1 -1
  48. package/dist/diff_tool/app/dist/assets/{haml-BF7cRiOF.js → haml-SbspNdjx.js} +1 -1
  49. package/dist/diff_tool/app/dist/assets/{handlebars-DAhNxR3E.js → handlebars-DH3a4U2h.js} +1 -1
  50. package/dist/diff_tool/app/dist/assets/{html-B7QW5YvU.js → html-CBno8dbY.js} +1 -1
  51. package/dist/diff_tool/app/dist/assets/{html-derivative-B-vyaE-N.js → html-derivative-COFLhWU9.js} +1 -1
  52. package/dist/diff_tool/app/dist/assets/{http-Drkl04RP.js → http-2GnhhV3-.js} +1 -1
  53. package/dist/diff_tool/app/dist/assets/{hurl-7gTFrvcN.js → hurl-BIPzVQmD.js} +1 -1
  54. package/dist/diff_tool/app/dist/assets/index-Cb0TCxCI.js +1550 -0
  55. package/dist/diff_tool/app/dist/assets/index-esno8y5b.css +1 -0
  56. package/dist/diff_tool/app/dist/assets/{java-ZmvXuvs3.js → java-bZo_LLEv.js} +1 -1
  57. package/dist/diff_tool/app/dist/assets/{javascript-C-OECu_Z.js → javascript-7XNFOfdJ.js} +1 -1
  58. package/dist/diff_tool/app/dist/assets/{jinja-hvkV87CG.js → jinja-Yuf1yufJ.js} +1 -1
  59. package/dist/diff_tool/app/dist/assets/{jison-eJBDxKI8.js → jison-DD2vLLcq.js} +1 -1
  60. package/dist/diff_tool/app/dist/assets/{json-BPQU2w0u.js → json-CVOsPviK.js} +1 -1
  61. package/dist/diff_tool/app/dist/assets/{jsx-C19s5MOj.js → jsx-BYrWYIX0.js} +1 -1
  62. package/dist/diff_tool/app/dist/assets/{julia-CYISvCwi.js → julia-BZ_A4I5C.js} +1 -1
  63. package/dist/diff_tool/app/dist/assets/{just-5omBg5pB.js → just-D8W5QT1p.js} +1 -1
  64. package/dist/diff_tool/app/dist/assets/{latex-B_L85F2z.js → latex-BSsqyYVM.js} +1 -1
  65. package/dist/diff_tool/app/dist/assets/{liquid-BxbaQPPS.js → liquid-CD5oivgr.js} +1 -1
  66. package/dist/diff_tool/app/dist/assets/{lua-DQA0z-44.js → lua-BnXOnOdP.js} +1 -1
  67. package/dist/diff_tool/app/dist/assets/{marko-Dj5RV8IH.js → marko-CjeqsSvM.js} +1 -1
  68. package/dist/diff_tool/app/dist/assets/{mdc-CoHI6VJN.js → mdc-Bk-o_FzD.js} +1 -1
  69. package/dist/diff_tool/app/dist/assets/{nginx-COnrY-gb.js → nginx-CU9exOaI.js} +1 -1
  70. package/dist/diff_tool/app/dist/assets/{nim-Ccfp0p1j.js → nim-C4eS-_Qo.js} +1 -1
  71. package/dist/diff_tool/app/dist/assets/{org-RForNsWm.js → org-gZKEwUlv.js} +1 -1
  72. package/dist/diff_tool/app/dist/assets/{perl-DhHRsiUu.js → perl-d_jthyH-.js} +1 -1
  73. package/dist/diff_tool/app/dist/assets/{php-BlxKhJek.js → php-Cldhvias.js} +1 -1
  74. package/dist/diff_tool/app/dist/assets/{pug-o9YxnGzH.js → pug-1Im3v9J7.js} +1 -1
  75. package/dist/diff_tool/app/dist/assets/{qml-Dzf494vL.js → qml-Bugdf4FS.js} +1 -1
  76. package/dist/diff_tool/app/dist/assets/{r-Dp0OUrF6.js → r-DNz8aXhA.js} +1 -1
  77. package/dist/diff_tool/app/dist/assets/{razor-gylahu-m.js → razor-CyO91A7-.js} +1 -1
  78. package/dist/diff_tool/app/dist/assets/{regexp-C0rsDjCm.js → regexp-7IVcp_0b.js} +1 -1
  79. package/dist/diff_tool/app/dist/assets/{rst-D-DRAFtq.js → rst-CPC6Rcsf.js} +1 -1
  80. package/dist/diff_tool/app/dist/assets/{ruby-BnY40vXq.js → ruby-CIw26EG-.js} +1 -1
  81. package/dist/diff_tool/app/dist/assets/{sas-BaSo_s7i.js → sas-CXXipNue.js} +1 -1
  82. package/dist/diff_tool/app/dist/assets/{scss-BX5R-Yyw.js → scss-Cb8mUz_m.js} +1 -1
  83. package/dist/diff_tool/app/dist/assets/{shellscript-CpRFVBRj.js → shellscript-8Dfk6ni5.js} +1 -1
  84. package/dist/diff_tool/app/dist/assets/{shellsession-BGRUDtms.js → shellsession-BBb6xY52.js} +1 -1
  85. package/dist/diff_tool/app/dist/assets/{soy-C2WL9FSb.js → soy-_rneSfGo.js} +1 -1
  86. package/dist/diff_tool/app/dist/assets/{sql-CGmNnOfz.js → sql-CmdLYztO.js} +1 -1
  87. package/dist/diff_tool/app/dist/assets/{stata-CDamV3Uz.js → stata-DmJpPQHj.js} +1 -1
  88. package/dist/diff_tool/app/dist/assets/{surrealql-BqI4o6tP.js → surrealql-D1R_-CBd.js} +1 -1
  89. package/dist/diff_tool/app/dist/assets/{svelte-DPaOUioa.js → svelte-CKPrzNdA.js} +1 -1
  90. package/dist/diff_tool/app/dist/assets/{templ-aqrZIEoc.js → templ-C0Eqag1M.js} +1 -1
  91. package/dist/diff_tool/app/dist/assets/{tex-Bjjtfacp.js → tex-IrZiFLxJ.js} +1 -1
  92. package/dist/diff_tool/app/dist/assets/{ts-tags-BGFnsvdQ.js → ts-tags-09-sH-my.js} +1 -1
  93. package/dist/diff_tool/app/dist/assets/{tsx-C_rOxPqZ.js → tsx-CSPybM8Z.js} +1 -1
  94. package/dist/diff_tool/app/dist/assets/{twig-DYqVwCOf.js → twig-C17vnjiX.js} +1 -1
  95. package/dist/diff_tool/app/dist/assets/{typescript-CppQYc7K.js → typescript-CvHNDrui.js} +1 -1
  96. package/dist/diff_tool/app/dist/assets/{typst-KIbA0FZG.js → typst-Ct_9rHAw.js} +1 -1
  97. package/dist/diff_tool/app/dist/assets/{vue-iOYoJEJi.js → vue-A0j7pYML.js} +1 -1
  98. package/dist/diff_tool/app/dist/assets/{vue-html-DcZpMui9.js → vue-html-DiVQf4vL.js} +1 -1
  99. package/dist/diff_tool/app/dist/assets/{vue-vine-C6v6c0Lr.js → vue-vine-CBf6VIg0.js} +1 -1
  100. package/dist/diff_tool/app/dist/assets/{xml-zR0RltJO.js → xml-BvQnnFTL.js} +1 -1
  101. package/dist/diff_tool/app/dist/assets/{xsl-B9pBLsIV.js → xsl-Dj-x_YCW.js} +1 -1
  102. package/dist/diff_tool/app/dist/assets/{yaml-sicIihvu.js → yaml-D6eQJHya.js} +1 -1
  103. package/dist/diff_tool/app/dist/index.html +2 -2
  104. package/dist/diff_tool/http_server.js +335 -56
  105. package/dist/diff_tool/http_server.js.map +1 -1
  106. package/dist/diff_tool/index.js.map +1 -1
  107. package/dist/diff_tool/review_prompts.js +168 -28
  108. package/dist/diff_tool/review_prompts.js.map +1 -1
  109. package/dist/diff_tool/review_state.js +213 -69
  110. package/dist/diff_tool/review_state.js.map +1 -1
  111. package/dist/diff_tool/review_state_persistence.js +282 -0
  112. package/dist/diff_tool/review_state_persistence.js.map +1 -0
  113. package/dist/diff_tool/shared_types.js +12 -0
  114. package/dist/diff_tool/shared_types.js.map +1 -1
  115. package/dist/host/hosted_ephemeral_agent_session.js +14 -2
  116. package/dist/host/hosted_ephemeral_agent_session.js.map +1 -1
  117. package/dist/host/local_session_host.js +67 -59
  118. package/dist/host/local_session_host.js.map +1 -1
  119. package/dist/host/session_protocol_handler.js +2 -0
  120. package/dist/host/session_protocol_handler.js.map +1 -1
  121. package/dist/protocol/session_protocol.d.ts +2 -0
  122. package/dist/protocol/session_protocol.js +9 -2
  123. package/dist/protocol/session_protocol.js.map +1 -1
  124. package/dist/sdk/diff_review.d.ts +40 -0
  125. package/dist/sdk/diff_review.js +112 -0
  126. package/dist/sdk/diff_review.js.map +1 -0
  127. package/dist/sdk/index.d.ts +2 -1
  128. package/dist/sdk/index.js +1 -0
  129. package/dist/sdk/index.js.map +1 -1
  130. package/dist/sdk/session.js +2 -0
  131. package/dist/sdk/session.js.map +1 -1
  132. package/dist/sdk/session_tool_execution_backend.d.ts +16 -0
  133. package/dist/sdk/session_tool_execution_backend.js +157 -0
  134. package/dist/sdk/session_tool_execution_backend.js.map +1 -0
  135. package/dist/sdk/types.d.ts +5 -2
  136. package/dist/tui/session_chat_controller.js +1 -0
  137. package/dist/tui/session_chat_controller.js.map +1 -1
  138. package/dist/tui/session_tool_execution_backend.js +1 -156
  139. package/dist/tui/session_tool_execution_backend.js.map +1 -1
  140. package/package.json +6 -6
  141. package/dist/diff_tool/app/dist/assets/index-Az_6lupE.css +0 -1
  142. package/dist/diff_tool/app/dist/assets/index-C9CiIimI.js +0 -1550
@@ -1,20 +1,21 @@
1
1
  import { randomUUID } from "node:crypto";
2
- import { DEFAULT_DIFF_TOOL_CODE_THEME, DIFF_TOOL_CODE_THEMES } from "./shared_types.js";
3
- const emptyBrief = {
4
- content: "",
2
+ import { DEFAULT_DIFF_TOOL_CODE_THEME, DIFF_TOOL_GUIDE_QUESTION_LIMIT, DIFF_TOOL_GUIDE_TOPIC_LIMIT, guideCommentTargetKey, } from "./shared_types.js";
3
+ const emptyGuide = {
4
+ orientation: "",
5
+ topics: [],
6
+ questions: [],
7
+ comments: [],
5
8
  loading: false,
6
9
  };
7
- const codeThemes = new Set(DIFF_TOOL_CODE_THEMES);
8
10
  function createInitialState(options) {
9
11
  return {
10
- diffStyle: "split",
12
+ diffStyle: "stacked",
11
13
  overflowMode: "wrap",
12
14
  codeTheme: options.codeTheme ?? DEFAULT_DIFF_TOOL_CODE_THEME,
13
- sidebarOpen: false,
14
15
  collapsedFileIds: [],
15
16
  viewedFileIds: [],
16
17
  threads: [],
17
- brief: { ...emptyBrief },
18
+ guide: cloneGuide(emptyGuide),
18
19
  };
19
20
  }
20
21
  export class DiffToolReviewStateStore {
@@ -27,31 +28,55 @@ export class DiffToolReviewStateStore {
27
28
  diffStyle: this.state.diffStyle,
28
29
  overflowMode: this.state.overflowMode,
29
30
  codeTheme: this.state.codeTheme,
30
- sidebarOpen: this.state.sidebarOpen,
31
31
  collapsedFileIds: [...this.state.collapsedFileIds],
32
32
  viewedFileIds: [...this.state.viewedFileIds],
33
33
  threads: this.state.threads.map(cloneThread),
34
- brief: cloneBrief(this.state.brief),
34
+ guide: cloneGuide(this.state.guide),
35
35
  };
36
36
  }
37
+ clone() {
38
+ const clone = new DiffToolReviewStateStore();
39
+ clone.replaceState(this.state);
40
+ return clone;
41
+ }
42
+ replaceState(state) {
43
+ this.state.diffStyle = state.diffStyle;
44
+ this.state.overflowMode = state.overflowMode;
45
+ this.state.codeTheme = state.codeTheme;
46
+ this.state.collapsedFileIds = [...state.collapsedFileIds];
47
+ this.state.viewedFileIds = [...state.viewedFileIds];
48
+ this.state.threads = state.threads.map(cloneThread);
49
+ this.state.guide = cloneGuide(state.guide);
50
+ }
51
+ replaceStatePreservingConcurrentLoading(state, previousState) {
52
+ const currentThreadLoading = new Map(this.state.threads.map((thread) => [thread.id, thread.loading]));
53
+ const previousThreadLoading = new Map(previousState.threads.map((thread) => [thread.id, thread.loading]));
54
+ const currentGuideLoading = this.state.guide.loading;
55
+ this.replaceState(state);
56
+ for (const thread of this.state.threads) {
57
+ if (thread.loading === previousThreadLoading.get(thread.id)) {
58
+ thread.loading = currentThreadLoading.get(thread.id) ?? thread.loading;
59
+ }
60
+ }
61
+ if (this.state.guide.loading === previousState.guide.loading) {
62
+ this.state.guide.loading = currentGuideLoading;
63
+ }
64
+ }
37
65
  updateState(patch) {
38
- if (patch.diffStyle === "split" || patch.diffStyle === "stacked") {
66
+ if (patch.diffStyle) {
39
67
  this.state.diffStyle = patch.diffStyle;
40
68
  }
41
- if (patch.overflowMode === "wrap" || patch.overflowMode === "scroll") {
69
+ if (patch.overflowMode) {
42
70
  this.state.overflowMode = patch.overflowMode;
43
71
  }
44
- if (patch.codeTheme && codeThemes.has(patch.codeTheme)) {
72
+ if (patch.codeTheme) {
45
73
  this.state.codeTheme = patch.codeTheme;
46
74
  }
47
- if (typeof patch.sidebarOpen === "boolean") {
48
- this.state.sidebarOpen = patch.sidebarOpen;
49
- }
50
- if (Array.isArray(patch.collapsedFileIds)) {
51
- this.state.collapsedFileIds = patch.collapsedFileIds.filter((value) => typeof value === "string" && value.trim().length > 0);
75
+ if (patch.collapsedFileIds) {
76
+ this.state.collapsedFileIds = [...patch.collapsedFileIds];
52
77
  }
53
- if (Array.isArray(patch.viewedFileIds)) {
54
- this.state.viewedFileIds = patch.viewedFileIds.filter((value) => typeof value === "string" && value.trim().length > 0);
78
+ if (patch.viewedFileIds) {
79
+ this.state.viewedFileIds = [...patch.viewedFileIds];
55
80
  }
56
81
  }
57
82
  findThread(id) {
@@ -129,25 +154,86 @@ export class DiffToolReviewStateStore {
129
154
  thread.collapsed = collapsed;
130
155
  return true;
131
156
  }
132
- startBriefGeneration() {
133
- this.state.brief = {
134
- content: this.state.brief.content,
135
- loading: true,
136
- };
157
+ setGuideLoading(loading) {
158
+ this.state.guide.loading = loading;
137
159
  }
138
- applyBriefResult(result) {
139
- this.state.brief = {
160
+ applyGuideResult(result, content) {
161
+ this.state.guide = {
140
162
  threadId: result.threadId,
141
- content: result.response,
163
+ orientation: content.orientation,
164
+ topics: content.topics.map((topic) => ({ id: randomUUID(), ...topic })),
165
+ questions: content.questions.map((question) => ({
166
+ id: randomUUID(),
167
+ ...question,
168
+ source: "generated",
169
+ })),
170
+ comments: this.state.guide.comments,
142
171
  loading: false,
143
172
  };
144
173
  }
145
- setBriefLoading(loading) {
146
- this.state.brief = {
147
- ...(this.state.brief.threadId ? { threadId: this.state.brief.threadId } : {}),
148
- content: this.state.brief.content,
149
- loading,
150
- };
174
+ applyGuideOperationResults(result, operations, contents) {
175
+ if (operations.length !== contents.length) {
176
+ return false;
177
+ }
178
+ const topicCount = this.state.guide.topics.length +
179
+ operations.filter((operation) => operation.kind === "topic.add").length;
180
+ const questionCount = this.state.guide.questions.length +
181
+ operations.filter((operation) => operation.kind === "question.ask").length;
182
+ if (topicCount > DIFF_TOOL_GUIDE_TOPIC_LIMIT ||
183
+ questionCount > DIFF_TOOL_GUIDE_QUESTION_LIMIT) {
184
+ return false;
185
+ }
186
+ for (const [index, operation] of operations.entries()) {
187
+ const content = contents[index];
188
+ if (!content || operation.kind !== content.kind) {
189
+ return false;
190
+ }
191
+ if (operation.kind === "topic.revise" &&
192
+ !this.state.guide.topics.some((topic) => topic.id === operation.topicId)) {
193
+ return false;
194
+ }
195
+ }
196
+ for (const [index, operation] of operations.entries()) {
197
+ const content = contents[index];
198
+ if (!content) {
199
+ return false;
200
+ }
201
+ switch (content.kind) {
202
+ case "topic.add":
203
+ this.state.guide.topics.push({ id: randomUUID(), ...content.topic });
204
+ break;
205
+ case "topic.revise": {
206
+ const topic = this.state.guide.topics.find((entry) => operation.kind === "topic.revise" && entry.id === operation.topicId);
207
+ if (!topic) {
208
+ return false;
209
+ }
210
+ Object.assign(topic, content.topic);
211
+ break;
212
+ }
213
+ case "question.ask":
214
+ this.state.guide.questions.push({
215
+ id: randomUUID(),
216
+ ...content.question,
217
+ source: "user",
218
+ });
219
+ break;
220
+ }
221
+ }
222
+ this.state.guide.threadId = result.threadId;
223
+ this.state.guide.loading = false;
224
+ return true;
225
+ }
226
+ saveGuideComment(target, body) {
227
+ const targetKey = guideCommentTargetKey(target);
228
+ const existing = this.state.guide.comments.find((comment) => guideCommentTargetKey(comment.target) === targetKey);
229
+ if (existing) {
230
+ existing.body = body;
231
+ return;
232
+ }
233
+ this.state.guide.comments.push({
234
+ target: { ...target },
235
+ body,
236
+ });
151
237
  }
152
238
  applyThreadResponse(id, result) {
153
239
  const thread = this.findThreadInternal(id);
@@ -168,50 +254,108 @@ export class DiffToolReviewStateStore {
168
254
  if (!userText) {
169
255
  return "";
170
256
  }
171
- const locationPrefix = thread.threadId || thread.anchor.kind !== "line"
172
- ? ""
173
- : `[${thread.anchor.filePath}:${thread.anchor.lineNumber} (${thread.anchor.side === "additions" ? "new" : "old"})]\n\n`;
174
- return `${locationPrefix}${userText}`;
257
+ if (thread.threadId) {
258
+ return userText;
259
+ }
260
+ const locationPrefix = thread.anchor.kind === "line"
261
+ ? `[${thread.anchor.filePath}:${thread.anchor.lineNumber} (${thread.anchor.side === "additions" ? "new" : "old"})]\n\n`
262
+ : "";
263
+ const hasAssistantMessage = thread.messages.some((message) => message.role === "assistant");
264
+ if (!hasAssistantMessage) {
265
+ return `${locationPrefix}${userText}`;
266
+ }
267
+ const transcript = thread.messages
268
+ .map((message) => `**${message.role === "assistant" ? "agent" : "user"}**\n\n${message.text}`)
269
+ .join("\n\n");
270
+ return `${locationPrefix}Continue this restored review conversation. Its previous transcript is included below.\n\n${transcript}`;
175
271
  }
176
- buildReviewText(submissionMessage) {
177
- const trimmedSubmissionMessage = submissionMessage?.trim();
272
+ buildReviewText() {
178
273
  const unresolvedThreads = this.state.threads.filter((thread) => !thread.resolved);
179
- if (unresolvedThreads.length === 0) {
180
- return trimmedSubmissionMessage || "(no comments)";
181
- }
182
- const guidance = [
183
- "The notes below include thread transcripts from the review. In those transcripts:",
184
- "",
185
- "- **user** is a comment written by the reviewer",
186
- "- **agent** is a generated reply within that review thread",
187
- "",
188
- "Treat thread dialogue as supporting review context, not automatically as a final conclusion.",
189
- ].join("\n");
190
- const threads = unresolvedThreads
191
- .map((thread, index) => {
192
- const location = thread.anchor.kind === "line"
193
- ? `${thread.anchor.filePath}:${thread.anchor.lineNumber} (${thread.anchor.side === "additions" ? "new" : "old"})`
194
- : "general discussion";
195
- const body = thread.messages
196
- .map((message) => `**${message.role === "assistant" ? "agent" : "user"}**\n\n${message.text}`)
197
- .join("\n\n");
198
- return `## thread ${index + 1}\n\n\`${location}\`\n\n${body}`;
199
- })
200
- .join("\n\n---\n\n");
201
- const message = trimmedSubmissionMessage
202
- ? `## submission message\n\n${trimmedSubmissionMessage}\n\n---\n\n`
203
- : "";
204
- return `${guidance}\n\n---\n\n${message}${threads}`;
274
+ const guideComments = this.state.guide.comments;
275
+ if (unresolvedThreads.length === 0 && guideComments.length === 0) {
276
+ return "(no comments)";
277
+ }
278
+ const sections = [];
279
+ if (guideComments.length > 0) {
280
+ sections.push(guideComments
281
+ .map((comment, index) => {
282
+ const context = formatGuideCommentContext(this.state.guide, comment.target);
283
+ return [
284
+ `## guide comment ${index + 1}`,
285
+ `\`${context.location}\``,
286
+ `### ${context.heading}`,
287
+ context.content,
288
+ "**review comment**",
289
+ comment.body,
290
+ ].join("\n\n");
291
+ })
292
+ .join("\n\n---\n\n"));
293
+ }
294
+ if (unresolvedThreads.length > 0) {
295
+ const guidance = [
296
+ "The notes below include thread transcripts from the review. In those transcripts:",
297
+ "",
298
+ "- **user** is a comment written by the reviewer",
299
+ "- **agent** is a generated reply within that review thread",
300
+ "",
301
+ "Treat thread dialogue as supporting review context, not automatically as a final conclusion.",
302
+ ].join("\n");
303
+ const threads = unresolvedThreads
304
+ .map((thread, index) => {
305
+ const location = thread.anchor.kind === "line"
306
+ ? `${thread.anchor.filePath}:${thread.anchor.lineNumber} (${thread.anchor.side === "additions" ? "new" : "old"})`
307
+ : "general discussion";
308
+ const body = thread.messages
309
+ .map((message) => `**${message.role === "assistant" ? "agent" : "user"}**\n\n${message.text}`)
310
+ .join("\n\n");
311
+ return `## thread ${index + 1}\n\n\`${location}\`\n\n${body}`;
312
+ })
313
+ .join("\n\n---\n\n");
314
+ sections.push(`${guidance}\n\n---\n\n${threads}`);
315
+ }
316
+ return sections.join("\n\n---\n\n");
205
317
  }
206
318
  findThreadInternal(id) {
207
319
  return this.state.threads.find((thread) => thread.id === id);
208
320
  }
209
321
  }
210
- function cloneBrief(brief) {
322
+ function formatGuideCommentContext(guide, target) {
323
+ switch (target.kind) {
324
+ case "orientation":
325
+ return {
326
+ location: "guide · orientation",
327
+ heading: "Orientation",
328
+ content: guide.orientation,
329
+ };
330
+ case "topic": {
331
+ const topic = guide.topics.find((entry) => entry.id === target.topicId);
332
+ return {
333
+ location: `guide topic · ${topic.heading}`,
334
+ heading: topic.heading,
335
+ content: topic.body,
336
+ };
337
+ }
338
+ case "question": {
339
+ const question = guide.questions.find((entry) => entry.id === target.questionId);
340
+ return {
341
+ location: `guide question · ${question.question}`,
342
+ heading: question.question,
343
+ content: question.answer,
344
+ };
345
+ }
346
+ }
347
+ }
348
+ function cloneGuide(guide) {
211
349
  return {
212
- ...(brief.threadId ? { threadId: brief.threadId } : {}),
213
- content: brief.content,
214
- loading: brief.loading,
350
+ ...(guide.threadId ? { threadId: guide.threadId } : {}),
351
+ orientation: guide.orientation,
352
+ topics: guide.topics.map((topic) => ({ ...topic })),
353
+ questions: guide.questions.map((question) => ({ ...question })),
354
+ comments: guide.comments.map((comment) => ({
355
+ ...comment,
356
+ target: { ...comment.target },
357
+ })),
358
+ loading: guide.loading,
215
359
  };
216
360
  }
217
361
  function cloneThread(thread) {
@@ -1 +1 @@
1
- {"version":3,"file":"review_state.js","sourceRoot":"","sources":["../../src/diff_tool/review_state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"review_state.js","sourceRoot":"","sources":["../../src/diff_tool/review_state.ts"],"names":[],"mappings":"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"}