@ai-setting/roy-plugin-task-show 2.5.11 → 2.5.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/dist/chat-markdown-renderer.d.ts +63 -0
- package/dist/chat-markdown-renderer.d.ts.map +1 -0
- package/dist/chat-markdown-renderer.js +123 -0
- package/dist/chat-markdown-renderer.js.map +1 -0
- package/dist/collector.d.ts +11 -0
- package/dist/collector.d.ts.map +1 -1
- package/dist/collector.js +37 -12
- package/dist/collector.js.map +1 -1
- package/dist/file-tree.d.ts +57 -1
- package/dist/file-tree.d.ts.map +1 -1
- package/dist/file-tree.js +22 -2
- package/dist/file-tree.js.map +1 -1
- package/dist/file-viewer-utils.d.ts +76 -0
- package/dist/file-viewer-utils.d.ts.map +1 -0
- package/dist/file-viewer-utils.js +215 -0
- package/dist/file-viewer-utils.js.map +1 -0
- package/dist/logger.d.ts +59 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +181 -0
- package/dist/logger.js.map +1 -0
- package/dist/mermaid-zoom-guardian.d.ts +77 -0
- package/dist/mermaid-zoom-guardian.d.ts.map +1 -0
- package/dist/mermaid-zoom-guardian.js +176 -0
- package/dist/mermaid-zoom-guardian.js.map +1 -0
- package/dist/plugin.d.ts +24 -10
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +79 -33
- package/dist/plugin.js.map +1 -1
- package/dist/server.d.ts +25 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +134 -8
- package/dist/server.js.map +1 -1
- package/dist/task-session-store.js +7 -0
- package/dist/task-session-store.js.map +1 -1
- package/dist/tool-call-detail.d.ts +18 -0
- package/dist/tool-call-detail.d.ts.map +1 -1
- package/dist/tool-call-detail.js +115 -7
- package/dist/tool-call-detail.js.map +1 -1
- package/package.json +2 -2
- package/plugin.json +2 -2
- package/public/app.js +18 -0
- package/public/index.html +7 -0
- package/public/markdown-preprocessor.js +89 -0
- package/public/markdown-renderer.js +29 -1
- package/public/mermaid-zoom-guardian.js +137 -0
- package/public/style.css +109 -0
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Chat panel markdown renderer for Assistant bubbles.
|
|
3
|
+
*
|
|
4
|
+
* Task #2975 (parent: Task #2953) — user feedback 2026-08-13:
|
|
5
|
+
* The terminal `roy-agent act` renders long Assistant output with line
|
|
6
|
+
* breaks / table cells / bullet lists, but the task-show web chat
|
|
7
|
+
* panel collapses everything into one text blob. The user wants the
|
|
8
|
+
* same markdown rendering the terminal uses.
|
|
9
|
+
*
|
|
10
|
+
* Strategy (v2.5.x REQ-4 + Task #2975):
|
|
11
|
+
* - Reuse `marked` (already a devDependency) and let it do the heavy
|
|
12
|
+
* lifting (`gfm: true` for tables, `breaks: true` for `\n` → `<br>`).
|
|
13
|
+
* - Pre-process the input to normalize our terminal-friendly
|
|
14
|
+
* separators (em-dash, four-dash rule, bullet-plus-dash rule)
|
|
15
|
+
* into markers marked can render.
|
|
16
|
+
* - Pre-process `•` bullets to `-` bullets so marked sees a valid
|
|
17
|
+
* list.
|
|
18
|
+
* - Sanitize the final HTML via DOMPurify (jsdom in tests, real
|
|
19
|
+
* DOMPurify in the browser via the existing vendored copy).
|
|
20
|
+
*
|
|
21
|
+
* Why a separate module instead of patching `public/markdown-renderer.js`:
|
|
22
|
+
* `public/markdown-renderer.js` is loaded as an ES module in the
|
|
23
|
+
* browser *and* required from bun tests with a happy-dom window.
|
|
24
|
+
* Adding the jsdom-aware DOMPurify factory there doubled its size
|
|
25
|
+
* and made the SANITIZE path differ between environments. We isolate
|
|
26
|
+
* the pre-process + sanitize here so the existing
|
|
27
|
+
* `public/markdown-renderer.js` is unchanged (no regression risk for
|
|
28
|
+
* the v2.5.x chat panel that already works for plain markdown).
|
|
29
|
+
*
|
|
30
|
+
* Public API:
|
|
31
|
+
* - renderAssistantMarkdown(text) → sanitized HTML string
|
|
32
|
+
* - normalizeAssistantText(text) → pre-processed string (helper,
|
|
33
|
+
* primarily for tests; renderAssistantMarkdown applies it internally)
|
|
34
|
+
*/
|
|
35
|
+
/**
|
|
36
|
+
* Pre-process Assistant text into a form that `marked` can render
|
|
37
|
+
* properly. Runs three transformations:
|
|
38
|
+
*
|
|
39
|
+
* 1. Inline `——` (em-dash repetition) on the SAME line becomes
|
|
40
|
+
* `<br><hr class="chat-md-em-dash"><br>` so paragraphs are split
|
|
41
|
+
* and a visible horizontal rule appears between them.
|
|
42
|
+
* 2. Standalone `────` (4+ dash chars on their own line) becomes an
|
|
43
|
+
* explicit HR marker.
|
|
44
|
+
* 3. Standalone `• ---` (bullet + 3 dashes on their own line)
|
|
45
|
+
* becomes an explicit HR marker.
|
|
46
|
+
* 4. Leading `•` bullets (rendered as `• item\n• item`) are
|
|
47
|
+
* converted to `- item\n- item` so marked produces a real
|
|
48
|
+
* `<ul><li>…</li></ul>`.
|
|
49
|
+
*
|
|
50
|
+
* The pre-process is intentionally line-based so streaming chunks
|
|
51
|
+
* don't double-process content (each chunk is re-normalized as a
|
|
52
|
+
* whole — the function is idempotent enough for the test fixtures).
|
|
53
|
+
*/
|
|
54
|
+
export declare function normalizeAssistantText(text: string): string;
|
|
55
|
+
/**
|
|
56
|
+
* Render Assistant text to sanitized HTML, normalizing the
|
|
57
|
+
* terminal-style separators into real markdown elements.
|
|
58
|
+
*
|
|
59
|
+
* @param text - raw Assistant text (may include \n, ——, ────, • etc.)
|
|
60
|
+
* @returns sanitized HTML string safe for `innerHTML`
|
|
61
|
+
*/
|
|
62
|
+
export declare function renderAssistantMarkdown(text: string): string;
|
|
63
|
+
//# sourceMappingURL=chat-markdown-renderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-markdown-renderer.d.ts","sourceRoot":"","sources":["../src/chat-markdown-renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AA6BH;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAkD3D;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK5D"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Chat panel markdown renderer for Assistant bubbles.
|
|
3
|
+
*
|
|
4
|
+
* Task #2975 (parent: Task #2953) — user feedback 2026-08-13:
|
|
5
|
+
* The terminal `roy-agent act` renders long Assistant output with line
|
|
6
|
+
* breaks / table cells / bullet lists, but the task-show web chat
|
|
7
|
+
* panel collapses everything into one text blob. The user wants the
|
|
8
|
+
* same markdown rendering the terminal uses.
|
|
9
|
+
*
|
|
10
|
+
* Strategy (v2.5.x REQ-4 + Task #2975):
|
|
11
|
+
* - Reuse `marked` (already a devDependency) and let it do the heavy
|
|
12
|
+
* lifting (`gfm: true` for tables, `breaks: true` for `\n` → `<br>`).
|
|
13
|
+
* - Pre-process the input to normalize our terminal-friendly
|
|
14
|
+
* separators (em-dash, four-dash rule, bullet-plus-dash rule)
|
|
15
|
+
* into markers marked can render.
|
|
16
|
+
* - Pre-process `•` bullets to `-` bullets so marked sees a valid
|
|
17
|
+
* list.
|
|
18
|
+
* - Sanitize the final HTML via DOMPurify (jsdom in tests, real
|
|
19
|
+
* DOMPurify in the browser via the existing vendored copy).
|
|
20
|
+
*
|
|
21
|
+
* Why a separate module instead of patching `public/markdown-renderer.js`:
|
|
22
|
+
* `public/markdown-renderer.js` is loaded as an ES module in the
|
|
23
|
+
* browser *and* required from bun tests with a happy-dom window.
|
|
24
|
+
* Adding the jsdom-aware DOMPurify factory there doubled its size
|
|
25
|
+
* and made the SANITIZE path differ between environments. We isolate
|
|
26
|
+
* the pre-process + sanitize here so the existing
|
|
27
|
+
* `public/markdown-renderer.js` is unchanged (no regression risk for
|
|
28
|
+
* the v2.5.x chat panel that already works for plain markdown).
|
|
29
|
+
*
|
|
30
|
+
* Public API:
|
|
31
|
+
* - renderAssistantMarkdown(text) → sanitized HTML string
|
|
32
|
+
* - normalizeAssistantText(text) → pre-processed string (helper,
|
|
33
|
+
* primarily for tests; renderAssistantMarkdown applies it internally)
|
|
34
|
+
*/
|
|
35
|
+
import { marked } from "marked";
|
|
36
|
+
import { JSDOM } from "jsdom";
|
|
37
|
+
import dompurifyFactory from "dompurify";
|
|
38
|
+
// DOMPurify needs a real window — jsdom gives us the same sanitize
|
|
39
|
+
// output as the browser. (happy-dom + DOMPurify does NOT fully scrub
|
|
40
|
+
// `<script>` / `javascript:` URLs — verified empirically.)
|
|
41
|
+
//
|
|
42
|
+
// `dompurify`'s type signature expects a specific subset of the DOM
|
|
43
|
+
// API; jsdom's Window satisfies the runtime contract but doesn't
|
|
44
|
+
// exactly match the structural type. We cast through `unknown` to
|
|
45
|
+
// keep TypeScript happy without disabling strict mode everywhere.
|
|
46
|
+
const jsdomWindow = new JSDOM("").window;
|
|
47
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
48
|
+
const DOMPurify = dompurifyFactory(jsdomWindow);
|
|
49
|
+
const SANITIZE_CONFIG = Object.freeze({
|
|
50
|
+
ADD_ATTR: ["target", "rel"],
|
|
51
|
+
ALLOWED_URI_REGEXP: /^(?:(?:https?|mailto):|[^a-z]|[a-z+.-]+(?:[^a-z+.\-:]|$))/i,
|
|
52
|
+
});
|
|
53
|
+
marked.setOptions({
|
|
54
|
+
gfm: true,
|
|
55
|
+
breaks: true,
|
|
56
|
+
pedantic: false,
|
|
57
|
+
});
|
|
58
|
+
/**
|
|
59
|
+
* Pre-process Assistant text into a form that `marked` can render
|
|
60
|
+
* properly. Runs three transformations:
|
|
61
|
+
*
|
|
62
|
+
* 1. Inline `——` (em-dash repetition) on the SAME line becomes
|
|
63
|
+
* `<br><hr class="chat-md-em-dash"><br>` so paragraphs are split
|
|
64
|
+
* and a visible horizontal rule appears between them.
|
|
65
|
+
* 2. Standalone `────` (4+ dash chars on their own line) becomes an
|
|
66
|
+
* explicit HR marker.
|
|
67
|
+
* 3. Standalone `• ---` (bullet + 3 dashes on their own line)
|
|
68
|
+
* becomes an explicit HR marker.
|
|
69
|
+
* 4. Leading `•` bullets (rendered as `• item\n• item`) are
|
|
70
|
+
* converted to `- item\n- item` so marked produces a real
|
|
71
|
+
* `<ul><li>…</li></ul>`.
|
|
72
|
+
*
|
|
73
|
+
* The pre-process is intentionally line-based so streaming chunks
|
|
74
|
+
* don't double-process content (each chunk is re-normalized as a
|
|
75
|
+
* whole — the function is idempotent enough for the test fixtures).
|
|
76
|
+
*/
|
|
77
|
+
export function normalizeAssistantText(text) {
|
|
78
|
+
if (!text)
|
|
79
|
+
return "";
|
|
80
|
+
// Step 1 — convert standalone dash-rule lines to an HR placeholder.
|
|
81
|
+
// We replace the literal text BEFORE handing off to marked so the
|
|
82
|
+
// user sees a real <hr> instead of four cosmetic dashes inside a
|
|
83
|
+
// <p>.
|
|
84
|
+
let out = text;
|
|
85
|
+
// (a) 4+ horizontal-dash / ASCII-dash on its own line → HR
|
|
86
|
+
out = out.replace(/(^|\n)[ \t]*[─-]{4,}[ \t]*\n?/g, (_m, lead) => `${lead}\n<hr class="chat-md-hr"/>\n`);
|
|
87
|
+
// (b) `• ---` (bullet + 3+ dashes) on its own line → HR
|
|
88
|
+
out = out.replace(/(^|\n)[ \t]*•[ \t]*-{3,}[ \t]*\n?/g, (_m, lead) => `${lead}\n<hr class="chat-md-hr"/>\n`);
|
|
89
|
+
// Step 2 — split paragraphs at inline `——`. We replace every `——`
|
|
90
|
+
// with a marker that breaks the current paragraph and inserts an
|
|
91
|
+
// HR between the two halves.
|
|
92
|
+
out = out.replace(/——+/g, '<hr class="chat-md-em-dash"/>');
|
|
93
|
+
// Step 3 — convert `• foo` lines into `- foo` lines for marked.
|
|
94
|
+
// We only do this at line-start so prose like "we use • for bullets"
|
|
95
|
+
// is left alone.
|
|
96
|
+
out = out.replace(/(?:^|\n)[ \t]*•[ \t]+/g, (m) => (m.startsWith("\n") ? "\n- " : "- "));
|
|
97
|
+
// Step 4 — strip the `[TaskEventHandler]` sentinel pair if it
|
|
98
|
+
// somehow made it into the chat buffer (defence in depth — the
|
|
99
|
+
// ChatProcessManager already filters these out).
|
|
100
|
+
out = out
|
|
101
|
+
.replace(/^\[TaskEventHandler\] Started\s*$/gm, "")
|
|
102
|
+
.replace(/^\[TaskEventHandler\] Stopped\s*$/gm, "");
|
|
103
|
+
// Step 5 — collapse 3+ blank lines down to a single blank line so
|
|
104
|
+
// streaming chunks that arrive with \n\n\n\n don't render as 4
|
|
105
|
+
// giant paragraphs.
|
|
106
|
+
out = out.replace(/\n{3,}/g, "\n\n");
|
|
107
|
+
return out;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Render Assistant text to sanitized HTML, normalizing the
|
|
111
|
+
* terminal-style separators into real markdown elements.
|
|
112
|
+
*
|
|
113
|
+
* @param text - raw Assistant text (may include \n, ——, ────, • etc.)
|
|
114
|
+
* @returns sanitized HTML string safe for `innerHTML`
|
|
115
|
+
*/
|
|
116
|
+
export function renderAssistantMarkdown(text) {
|
|
117
|
+
if (text == null || text === "")
|
|
118
|
+
return "";
|
|
119
|
+
const normalized = normalizeAssistantText(String(text));
|
|
120
|
+
const raw = marked.parse(normalized);
|
|
121
|
+
return DOMPurify.sanitize(raw, SANITIZE_CONFIG);
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=chat-markdown-renderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-markdown-renderer.js","sourceRoot":"","sources":["../src/chat-markdown-renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,gBAAgB,MAAM,WAAW,CAAC;AAEzC,mEAAmE;AACnE,qEAAqE;AACrE,2DAA2D;AAC3D,EAAE;AACF,oEAAoE;AACpE,iEAAiE;AACjE,kEAAkE;AAClE,kEAAkE;AAClE,MAAM,WAAW,GAAG,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC;AACzC,8DAA8D;AAC9D,MAAM,SAAS,GAAG,gBAAgB,CAAC,WAA6B,CAAC,CAAC;AAElE,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC;IACpC,QAAQ,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC;IAC3B,kBAAkB,EAAE,4DAA4D;CACjF,CAAC,CAAC;AAEH,MAAM,CAAC,UAAU,CAAC;IAChB,GAAG,EAAE,IAAI;IACT,MAAM,EAAE,IAAI;IACZ,QAAQ,EAAE,KAAK;CAChB,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAY;IACjD,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IAErB,oEAAoE;IACpE,kEAAkE;IAClE,iEAAiE;IACjE,OAAO;IACP,IAAI,GAAG,GAAG,IAAI,CAAC;IAEf,2DAA2D;IAC3D,GAAG,GAAG,GAAG,CAAC,OAAO,CACf,gCAAgC,EAChC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,8BAA8B,CACpD,CAAC;IAEF,wDAAwD;IACxD,GAAG,GAAG,GAAG,CAAC,OAAO,CACf,oCAAoC,EACpC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,8BAA8B,CACpD,CAAC;IAEF,kEAAkE;IAClE,iEAAiE;IACjE,6BAA6B;IAC7B,GAAG,GAAG,GAAG,CAAC,OAAO,CACf,MAAM,EACN,+BAA+B,CAChC,CAAC;IAEF,gEAAgE;IAChE,qEAAqE;IACrE,iBAAiB;IACjB,GAAG,GAAG,GAAG,CAAC,OAAO,CACf,wBAAwB,EACxB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAC5C,CAAC;IAEF,8DAA8D;IAC9D,+DAA+D;IAC/D,iDAAiD;IACjD,GAAG,GAAG,GAAG;SACN,OAAO,CAAC,qCAAqC,EAAE,EAAE,CAAC;SAClD,OAAO,CAAC,qCAAqC,EAAE,EAAE,CAAC,CAAC;IAEtD,kEAAkE;IAClE,+DAA+D;IAC/D,oBAAoB;IACpB,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAErC,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAAY;IAClD,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,EAAE,CAAC;IAC3C,MAAM,UAAU,GAAG,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACxD,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAW,CAAC;IAC/C,OAAO,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;AAClD,CAAC"}
|
package/dist/collector.d.ts
CHANGED
|
@@ -112,6 +112,17 @@ export declare class ToolCallCollector {
|
|
|
112
112
|
* context that happens to know the title, e.g. task:before.create).
|
|
113
113
|
*/
|
|
114
114
|
setTaskTitle(taskId: number, title: string): void;
|
|
115
|
+
/**
|
|
116
|
+
* v2.5.12 (Task #2951): patch a session's `context` field in place.
|
|
117
|
+
* Used by the file-tree handler when an async operations-cache
|
|
118
|
+
* lookup yields a `projectPath` that the live session never
|
|
119
|
+
* received via the `tool:after.execute` payload.
|
|
120
|
+
*
|
|
121
|
+
* Merges into the existing context (other host-supplied keys are
|
|
122
|
+
* preserved). Returns `true` when the patch landed on an existing
|
|
123
|
+
* session, `false` when there is no session to patch.
|
|
124
|
+
*/
|
|
125
|
+
patchSessionContext(taskId: number, patch: Record<string, unknown>): boolean;
|
|
115
126
|
/**
|
|
116
127
|
* Insert or replace a session. Used by `task:before.create` /
|
|
117
128
|
* `task:after.create` to mint a fresh TaskSession before any tool call
|
package/dist/collector.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collector.d.ts","sourceRoot":"","sources":["../src/collector.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,WAAW,EAEX,cAAc,EACf,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"collector.d.ts","sourceRoot":"","sources":["../src/collector.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,WAAW,EAEX,cAAc,EACf,MAAM,YAAY,CAAC;AAiHpB;;;;;;;;;;;;GAYG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkC;IAC3D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAiB;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,kFAAkF;IAClF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAa;gBAGrC,GAAG,EAAE,cAAc,EACnB,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE;IAOzD;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAMnD;;OAEG;IACH,YAAY,IAAI,WAAW,EAAE;IAM7B;;OAEG;IACH,IAAI,IAAI,MAAM;IAId;;;;;;;OAOG;IACH;;;;;;OAMG;IACH,cAAc,CAAC,IAAI,EAAE;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9B,OAAO,EAAE,OAAO,CAAC;QACjB,aAAa,EAAE,MAAM,CAAC;QACtB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,GAAG,CAAC,EAAE,GAAG,CAAC;QACV,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,GAAG,MAAM,GAAG,IAAI;IAkDjB;;;;;;;;;;;;OAYG;IACH,oBAAoB,CAAC,IAAI,EAAE;QACzB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;QACjC,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GAAG,WAAW,GAAG,SAAS;IAiC3B;;;;;;;;;;;;;;OAcG;IACH,uBAAuB,CAAC,IAAI,CAAC,EAAE;QAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GAAG,WAAW,EAAE;IAcjB;;;OAGG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAOjD;;;;;;;;;OASG;IACH,mBAAmB,CACjB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,OAAO;IAWV;;;;;;;;;OASG;IACH,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAMzC;;OAEG;IACH,KAAK,IAAI,IAAI;IASb;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;IAoBrB;;;;;OAKG;IACH,OAAO,CAAC,YAAY;CAGrB"}
|
package/dist/collector.js
CHANGED
|
@@ -5,28 +5,32 @@
|
|
|
5
5
|
* exposes simple getters used by the HTTP layer; eviction keeps the memory
|
|
6
6
|
* footprint bounded (oldest tasks are dropped past `maxStoredTasks`).
|
|
7
7
|
*/
|
|
8
|
+
import { createPluginLogger } from "./logger.js";
|
|
8
9
|
/**
|
|
9
|
-
*
|
|
10
|
-
* the
|
|
10
|
+
* Per-instance logger adapter. Wraps the plugin unified logger (Task #2961)
|
|
11
|
+
* with the `[prefix] WARN/ERROR` formatting the collector used before.
|
|
12
|
+
*
|
|
13
|
+
* v2.5.12 (Task #2961): `info` used to be gated behind `TASK_SHOW_DEBUG=1`,
|
|
14
|
+
* and `warn` / `error` always hit `console.warn` / `console.error` (stderr
|
|
15
|
+
* pollution). Both now route through the plugin logger — quiet by default,
|
|
16
|
+
* writes to a per-category log file, and only surfaces on console when
|
|
17
|
+
* `setQuietMode(false)` is called explicitly. Operators who want to see
|
|
18
|
+
* collector chatter live should set `PLUGIN_LOG_CONSOLE=1` or wire a
|
|
19
|
+
* --verbose flag in the host CLI.
|
|
11
20
|
*/
|
|
12
21
|
class TinyLogger {
|
|
13
|
-
|
|
22
|
+
log;
|
|
14
23
|
constructor(prefix) {
|
|
15
|
-
this.
|
|
24
|
+
this.log = createPluginLogger(prefix);
|
|
16
25
|
}
|
|
17
26
|
info(msg) {
|
|
18
|
-
|
|
19
|
-
// eslint-disable-next-line no-console
|
|
20
|
-
console.log(`[${this.prefix}] ${msg}`);
|
|
21
|
-
}
|
|
27
|
+
this.log.info(msg);
|
|
22
28
|
}
|
|
23
29
|
warn(msg) {
|
|
24
|
-
|
|
25
|
-
console.warn(`[${this.prefix}] WARN ${msg}`);
|
|
30
|
+
this.log.warn(`WARN ${msg}`);
|
|
26
31
|
}
|
|
27
32
|
error(msg) {
|
|
28
|
-
|
|
29
|
-
console.error(`[${this.prefix}] ERROR ${msg}`);
|
|
33
|
+
this.log.error(`ERROR ${msg}`);
|
|
30
34
|
}
|
|
31
35
|
}
|
|
32
36
|
/**
|
|
@@ -287,6 +291,27 @@ export class ToolCallCollector {
|
|
|
287
291
|
session.title = title;
|
|
288
292
|
this.onChange?.();
|
|
289
293
|
}
|
|
294
|
+
/**
|
|
295
|
+
* v2.5.12 (Task #2951): patch a session's `context` field in place.
|
|
296
|
+
* Used by the file-tree handler when an async operations-cache
|
|
297
|
+
* lookup yields a `projectPath` that the live session never
|
|
298
|
+
* received via the `tool:after.execute` payload.
|
|
299
|
+
*
|
|
300
|
+
* Merges into the existing context (other host-supplied keys are
|
|
301
|
+
* preserved). Returns `true` when the patch landed on an existing
|
|
302
|
+
* session, `false` when there is no session to patch.
|
|
303
|
+
*/
|
|
304
|
+
patchSessionContext(taskId, patch) {
|
|
305
|
+
const session = this.sessions.get(taskId);
|
|
306
|
+
if (!session)
|
|
307
|
+
return false;
|
|
308
|
+
session.context = {
|
|
309
|
+
...(session.context ?? {}),
|
|
310
|
+
...patch,
|
|
311
|
+
};
|
|
312
|
+
this.onChange?.();
|
|
313
|
+
return true;
|
|
314
|
+
}
|
|
290
315
|
/**
|
|
291
316
|
* Insert or replace a session. Used by `task:before.create` /
|
|
292
317
|
* `task:after.create` to mint a fresh TaskSession before any tool call
|
package/dist/collector.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collector.js","sourceRoot":"","sources":["../src/collector.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"collector.js","sourceRoot":"","sources":["../src/collector.ts"],"names":[],"mappings":"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"}
|
package/dist/file-tree.d.ts
CHANGED
|
@@ -219,6 +219,47 @@ export interface WorktreeContextSource {
|
|
|
219
219
|
* uses the default of `process.cwd()`.
|
|
220
220
|
*/
|
|
221
221
|
export declare function resolveWorktreePath(session: WorktreeContextSource | null | undefined, cwd?: string): string;
|
|
222
|
+
/**
|
|
223
|
+
* v2.5.12 (Task #2951): comprehensive project-files root resolver.
|
|
224
|
+
*
|
|
225
|
+
* `resolveWorktreePath()` only looks at `session.context.worktree`
|
|
226
|
+
* and `process.cwd()`. That misses a common case: the live session
|
|
227
|
+
* collector often has no `context.worktree` because the host's
|
|
228
|
+
* `tool:after.execute` payload doesn't carry it, but the operations
|
|
229
|
+
* cache has `task.projectPath` (set by the host when the task was
|
|
230
|
+
* created via `task_create`). Falling back to that field lets the
|
|
231
|
+
* sidebar track the right repo even when the collector's session is
|
|
232
|
+
* light on context.
|
|
233
|
+
*
|
|
234
|
+
* Resolution order (most preferred → least preferred):
|
|
235
|
+
* 1. `cfg.projectFilesRoot` — explicit plugin config override
|
|
236
|
+
* (escape hatch when neither the session nor the cache has the
|
|
237
|
+
* right path).
|
|
238
|
+
* 2. `session.context.worktree` — host-supplied per-session worktree
|
|
239
|
+
* (the v2.3.0 contract).
|
|
240
|
+
* 3. `cachedTask.projectPath` — host-supplied per-task project path
|
|
241
|
+
* (from the operations cache; survives when the live session has
|
|
242
|
+
* been evicted or never had a worktree field).
|
|
243
|
+
* 4. `process.cwd()` — last-resort fallback (legacy behaviour).
|
|
244
|
+
*
|
|
245
|
+
* All string inputs are trimmed and treated as "missing" when empty /
|
|
246
|
+
* whitespace-only, matching `resolveWorktreePath`'s defensive parse.
|
|
247
|
+
*/
|
|
248
|
+
export interface ProjectFilesRootOptions {
|
|
249
|
+
/** Optional session (live collector record). */
|
|
250
|
+
session?: WorktreeContextSource | null;
|
|
251
|
+
/** Optional cached task envelope (from operationsCache). */
|
|
252
|
+
cachedTask?: {
|
|
253
|
+
projectPath?: unknown;
|
|
254
|
+
} | null;
|
|
255
|
+
/** Optional plugin config (carries `projectFilesRoot` override). */
|
|
256
|
+
cfg?: {
|
|
257
|
+
projectFilesRoot?: unknown;
|
|
258
|
+
} | null;
|
|
259
|
+
/** Override for tests; defaults to `process.cwd()`. */
|
|
260
|
+
cwd?: string;
|
|
261
|
+
}
|
|
262
|
+
export declare function resolveProjectFilesRoot(opts?: ProjectFilesRootOptions): string;
|
|
222
263
|
/**
|
|
223
264
|
* v2.3.0: aggregate everything the file-tree sidebar needs in one
|
|
224
265
|
* place. Both `renderTaskPage` (SSR) and `handleFileTree` (HTTP
|
|
@@ -238,7 +279,22 @@ export declare function buildSessionFileTree(session: (WorktreeContextSource & {
|
|
|
238
279
|
toolCalls?: ReadonlyArray<{
|
|
239
280
|
args?: Record<string, unknown>;
|
|
240
281
|
}>;
|
|
241
|
-
}) | null | undefined, runner?: GitRunner
|
|
282
|
+
}) | null | undefined, runner?: GitRunner, opts?: {
|
|
283
|
+
/**
|
|
284
|
+
* v2.5.12 (Task #2951): the operations cache's view of the task.
|
|
285
|
+
* When the live session has no `context.worktree` (e.g. the host's
|
|
286
|
+
* `tool:after.execute` payload didn't carry one), the cache's
|
|
287
|
+
* `task.projectPath` is a more accurate fallback than the plugin
|
|
288
|
+
* host's `process.cwd()`.
|
|
289
|
+
*/
|
|
290
|
+
cachedTask?: {
|
|
291
|
+
projectPath?: unknown;
|
|
292
|
+
} | null;
|
|
293
|
+
/** v2.5.12 (Task #2951): explicit override (plugin config). */
|
|
294
|
+
cfg?: {
|
|
295
|
+
projectFilesRoot?: unknown;
|
|
296
|
+
} | null;
|
|
297
|
+
}): {
|
|
242
298
|
cwd: string;
|
|
243
299
|
files: string[];
|
|
244
300
|
tree: TreeNode[];
|
package/dist/file-tree.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-tree.d.ts","sourceRoot":"","sources":["../src/file-tree.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"file-tree.d.ts","sourceRoot":"","sources":["../src/file-tree.ts"],"names":[],"mappings":"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"}
|
package/dist/file-tree.js
CHANGED
|
@@ -409,6 +409,22 @@ export function resolveWorktreePath(session, cwd = (typeof process !== "undefine
|
|
|
409
409
|
}
|
|
410
410
|
return cwd;
|
|
411
411
|
}
|
|
412
|
+
export function resolveProjectFilesRoot(opts = {}) {
|
|
413
|
+
const fallbackCwd = opts.cwd ?? (typeof process !== "undefined" ? process.cwd() : "");
|
|
414
|
+
const candidates = [
|
|
415
|
+
opts.cfg?.projectFilesRoot,
|
|
416
|
+
opts.session?.context?.worktree,
|
|
417
|
+
opts.cachedTask?.projectPath,
|
|
418
|
+
];
|
|
419
|
+
for (const raw of candidates) {
|
|
420
|
+
if (typeof raw === "string") {
|
|
421
|
+
const trimmed = raw.trim();
|
|
422
|
+
if (trimmed.length > 0)
|
|
423
|
+
return trimmed;
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
return fallbackCwd;
|
|
427
|
+
}
|
|
412
428
|
/**
|
|
413
429
|
* v2.3.0: aggregate everything the file-tree sidebar needs in one
|
|
414
430
|
* place. Both `renderTaskPage` (SSR) and `handleFileTree` (HTTP
|
|
@@ -424,8 +440,12 @@ export function resolveWorktreePath(session, cwd = (typeof process !== "undefine
|
|
|
424
440
|
* @param runner optional injected git runner (default =
|
|
425
441
|
* `defaultGitLsFilesRunner`); tests pass fakes
|
|
426
442
|
*/
|
|
427
|
-
export function buildSessionFileTree(session, runner = defaultGitLsFilesRunner) {
|
|
428
|
-
const cwd =
|
|
443
|
+
export function buildSessionFileTree(session, runner = defaultGitLsFilesRunner, opts = {}) {
|
|
444
|
+
const cwd = resolveProjectFilesRoot({
|
|
445
|
+
session,
|
|
446
|
+
cachedTask: opts.cachedTask,
|
|
447
|
+
cfg: opts.cfg,
|
|
448
|
+
});
|
|
429
449
|
const files = gitLsFiles(runner, { cwd });
|
|
430
450
|
const tree = buildFileTree(files);
|
|
431
451
|
const affectedPaths = extractAffectedPaths(session?.toolCalls ?? []);
|
package/dist/file-tree.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-tree.js","sourceRoot":"","sources":["../src/file-tree.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"file-tree.js","sourceRoot":"","sources":["../src/file-tree.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview File viewer rendering utilities (Task #2952).
|
|
3
|
+
*
|
|
4
|
+
* The right-hand tool-call detail panel on the task page renders
|
|
5
|
+
* differently depending on the tool name:
|
|
6
|
+
*
|
|
7
|
+
* - **write_file / write / create_file** → render the FULL content
|
|
8
|
+
* of the file as the user just wrote it (line-numbered, no
|
|
9
|
+
* truncation). Previously the panel mounted a Monaco placeholder
|
|
10
|
+
* that fetched the file from disk via /api/file-content — which
|
|
11
|
+
* could be truncated for large files and never reflected the
|
|
12
|
+
* content the tool call actually wrote.
|
|
13
|
+
*
|
|
14
|
+
* - **edit_file / edit / edit_file_v2 / multi_edit_file / multi_edit
|
|
15
|
+
* / apply_patch** → render a git-style diff between
|
|
16
|
+
* `old_string` and `new_string` (LCS-based +/- lines). For these
|
|
17
|
+
* tools we want to highlight what changed, not show the entire
|
|
18
|
+
* resulting file again.
|
|
19
|
+
*
|
|
20
|
+
* Both renderers produce XSS-safe HTML — every user-controlled string
|
|
21
|
+
* passes through {@link escapeHtml} before being injected.
|
|
22
|
+
*/
|
|
23
|
+
export type DiffOpType = "context" | "add" | "remove";
|
|
24
|
+
export interface DiffOp {
|
|
25
|
+
type: DiffOpType;
|
|
26
|
+
line: string;
|
|
27
|
+
/** 1-indexed line number for display in the gutter. */
|
|
28
|
+
lineNum: number;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Render a write_file tool call's full content as line-numbered HTML.
|
|
32
|
+
*
|
|
33
|
+
* Returns a `<div class="file-viewer write-file">` containing:
|
|
34
|
+
* - a header with the file path + line/byte counts
|
|
35
|
+
* - a `<pre class="code-block">` with every line (no truncation)
|
|
36
|
+
*
|
|
37
|
+
* The renderer escapes HTML; long lines are preserved verbatim.
|
|
38
|
+
*/
|
|
39
|
+
export declare function renderWriteFileFull(opts: {
|
|
40
|
+
path: string;
|
|
41
|
+
content: string;
|
|
42
|
+
}): string;
|
|
43
|
+
/**
|
|
44
|
+
* Render an edit_file tool call as a git-style unified diff.
|
|
45
|
+
*
|
|
46
|
+
* Returns a `<div class="file-viewer edit-file">` containing:
|
|
47
|
+
* - a header with the file path + line counts
|
|
48
|
+
* - a `<ol class="diff-body">` with LCS-derived +/- / context lines
|
|
49
|
+
* (legacy contract — pre-v2.5.12 callers look for `class="diff-body"`
|
|
50
|
+
* and `diff-line-(added|removed|context)` markers).
|
|
51
|
+
*
|
|
52
|
+
* If `old_string` and `new_string` are identical the result is just
|
|
53
|
+
* the context lines (no +/- markers).
|
|
54
|
+
*
|
|
55
|
+
* The wrapper also carries `data-diff="<json>"` so the client
|
|
56
|
+
* hydrator can rebuild the diff on click without re-parsing the DOM.
|
|
57
|
+
*/
|
|
58
|
+
export declare function renderEditFileDiff(opts: {
|
|
59
|
+
path: string;
|
|
60
|
+
old_string: string;
|
|
61
|
+
new_string: string;
|
|
62
|
+
}): string;
|
|
63
|
+
/**
|
|
64
|
+
* Compute a line-level diff using LCS (Longest Common Subsequence).
|
|
65
|
+
*
|
|
66
|
+
* Algorithm: classic O(N*M) DP table, then a single backtrack to
|
|
67
|
+
* emit the ops in order. For inputs up to a few thousand lines this
|
|
68
|
+
* is well within budget; for pathological inputs we accept the cost
|
|
69
|
+
* (Task #2952 callers are user-authored file edits, not bulk
|
|
70
|
+
* transforms).
|
|
71
|
+
*
|
|
72
|
+
* Output: ordered array of `{type, line, lineNum}` matching how an
|
|
73
|
+
* editor would display them.
|
|
74
|
+
*/
|
|
75
|
+
export declare function computeLineDiff(oldLines: string[], newLines: string[]): DiffOp[];
|
|
76
|
+
//# sourceMappingURL=file-viewer-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-viewer-utils.d.ts","sourceRoot":"","sources":["../src/file-viewer-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEtD,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAC;CACjB;AAMD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,MAAM,CAqBT;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,MAAM,CA8CT;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAAE,EAClB,QAAQ,EAAE,MAAM,EAAE,GACjB,MAAM,EAAE,CAkDV"}
|