poly-weaver 0.12.2 → 0.12.4

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 (89) hide show
  1. package/dist/ansi.d.ts +12 -0
  2. package/dist/ansi.d.ts.map +1 -1
  3. package/dist/ansi.js +334 -9
  4. package/dist/ansi.js.map +1 -1
  5. package/dist/offscreen/artifact-pane.d.ts +5 -0
  6. package/dist/offscreen/artifact-pane.d.ts.map +1 -1
  7. package/dist/offscreen/artifact-pane.js +20 -1
  8. package/dist/offscreen/artifact-pane.js.map +1 -1
  9. package/dist/offscreen/controller.d.ts +1 -0
  10. package/dist/offscreen/controller.d.ts.map +1 -1
  11. package/dist/offscreen/controller.js +105 -0
  12. package/dist/offscreen/controller.js.map +1 -1
  13. package/dist/offscreen/inquiry-pane.d.ts +2 -0
  14. package/dist/offscreen/inquiry-pane.d.ts.map +1 -1
  15. package/dist/offscreen/inquiry-pane.js +19 -0
  16. package/dist/offscreen/inquiry-pane.js.map +1 -1
  17. package/dist/offscreen/inquiry-sender.js +1 -1
  18. package/dist/offscreen/inquiry-sender.js.map +1 -1
  19. package/dist/offscreen/panes.d.ts +2 -0
  20. package/dist/offscreen/panes.d.ts.map +1 -1
  21. package/dist/offscreen/split-inquiry.d.ts +17 -0
  22. package/dist/offscreen/split-inquiry.d.ts.map +1 -1
  23. package/dist/offscreen/split-inquiry.js +107 -1
  24. package/dist/offscreen/split-inquiry.js.map +1 -1
  25. package/dist/providers/codex/plan-mode-activator.js +0 -3
  26. package/dist/providers/codex/plan-mode-activator.js.map +1 -1
  27. package/dist/providers/option-catalog.d.ts.map +1 -1
  28. package/dist/providers/option-catalog.js +23 -0
  29. package/dist/providers/option-catalog.js.map +1 -1
  30. package/dist/session/locator.d.ts +2 -2
  31. package/dist/session/locator.d.ts.map +1 -1
  32. package/dist/session/locator.js +2 -2
  33. package/dist/session/locator.js.map +1 -1
  34. package/dist/status-bar.d.ts +5 -2
  35. package/dist/status-bar.d.ts.map +1 -1
  36. package/dist/status-bar.js +18 -20
  37. package/dist/status-bar.js.map +1 -1
  38. package/dist/terminal/clipboard-write.d.ts +17 -0
  39. package/dist/terminal/clipboard-write.d.ts.map +1 -0
  40. package/dist/terminal/clipboard-write.js +58 -0
  41. package/dist/terminal/clipboard-write.js.map +1 -0
  42. package/dist/terminal/host.d.ts +90 -0
  43. package/dist/terminal/host.d.ts.map +1 -1
  44. package/dist/terminal/host.js +858 -17
  45. package/dist/terminal/host.js.map +1 -1
  46. package/dist/terminal/input-router.d.ts +21 -6
  47. package/dist/terminal/input-router.d.ts.map +1 -1
  48. package/dist/terminal/input-router.js +30 -8
  49. package/dist/terminal/input-router.js.map +1 -1
  50. package/dist/terminal/mouse-mode-tracker.d.ts +1 -0
  51. package/dist/terminal/mouse-mode-tracker.d.ts.map +1 -1
  52. package/dist/terminal/mouse-mode-tracker.js +3 -0
  53. package/dist/terminal/mouse-mode-tracker.js.map +1 -1
  54. package/dist/terminal/osc52.d.ts +1 -0
  55. package/dist/terminal/osc52.d.ts.map +1 -1
  56. package/dist/terminal/osc52.js +3 -0
  57. package/dist/terminal/osc52.js.map +1 -1
  58. package/dist/terminal/paste-submit.d.ts +1 -1
  59. package/dist/terminal/paste-submit.d.ts.map +1 -1
  60. package/dist/terminal/paste-submit.js +2 -2
  61. package/dist/terminal/paste-submit.js.map +1 -1
  62. package/dist/terminal/render.d.ts +5 -0
  63. package/dist/terminal/render.d.ts.map +1 -1
  64. package/dist/terminal/render.js +14 -4
  65. package/dist/terminal/render.js.map +1 -1
  66. package/dist/terminal/selection.d.ts +101 -0
  67. package/dist/terminal/selection.d.ts.map +1 -0
  68. package/dist/terminal/selection.js +517 -0
  69. package/dist/terminal/selection.js.map +1 -0
  70. package/dist/terminal/virtual-terminal.d.ts +5 -1
  71. package/dist/terminal/virtual-terminal.d.ts.map +1 -1
  72. package/dist/terminal/virtual-terminal.js +10 -0
  73. package/dist/terminal/virtual-terminal.js.map +1 -1
  74. package/dist/user/host-curate-prompt.d.ts +2 -0
  75. package/dist/user/host-curate-prompt.d.ts.map +1 -1
  76. package/dist/user/host-curate-prompt.js +239 -43
  77. package/dist/user/host-curate-prompt.js.map +1 -1
  78. package/dist/user/host-prompt.d.ts.map +1 -1
  79. package/dist/user/host-prompt.js +257 -14
  80. package/dist/user/host-prompt.js.map +1 -1
  81. package/dist/user/selectable-doc-pane.d.ts +13 -0
  82. package/dist/user/selectable-doc-pane.d.ts.map +1 -0
  83. package/dist/user/selectable-doc-pane.js +34 -0
  84. package/dist/user/selectable-doc-pane.js.map +1 -0
  85. package/dist/user/split-surface.d.ts +2 -0
  86. package/dist/user/split-surface.d.ts.map +1 -1
  87. package/dist/user/split-surface.js +17 -0
  88. package/dist/user/split-surface.js.map +1 -1
  89. package/package.json +1 -1
@@ -0,0 +1,517 @@
1
+ import { extractVisibleRange, matchAnsiEscapeAt, selectionCellKey, visibleLength, } from "../ansi.js";
2
+ export class Selection {
3
+ state;
4
+ hasSelection() {
5
+ return this.state !== undefined && !this.isEmpty();
6
+ }
7
+ get mode() {
8
+ return this.state?.mode;
9
+ }
10
+ get region() {
11
+ return this.state?.region;
12
+ }
13
+ getState() {
14
+ return this.state;
15
+ }
16
+ beginDrag(region, point, snapshot) {
17
+ const normalized = normalizeRegion(region);
18
+ const clamped = clampPoint(normalized, point);
19
+ this.state = {
20
+ kind: "surface",
21
+ region: normalized,
22
+ snapshot: [...snapshot],
23
+ anchor: clamped,
24
+ focus: clamped,
25
+ mode: "char",
26
+ };
27
+ }
28
+ beginDocDrag(region, pane, docLine, col) {
29
+ const normalized = normalizeRegion(region);
30
+ const anchor = {
31
+ row: clampDocLine(pane, docLine),
32
+ col: clampLocalColumn(normalized, col),
33
+ };
34
+ this.state = {
35
+ kind: "doc-surface",
36
+ region: normalized,
37
+ pane,
38
+ anchor,
39
+ focus: anchor,
40
+ mode: "char",
41
+ };
42
+ }
43
+ extendTo(point, composeRow) {
44
+ if (!this.state)
45
+ return;
46
+ if (this.state.kind === "surface") {
47
+ this.state.focus = clampPoint(this.state.region, point);
48
+ this.state.mode = "char";
49
+ return;
50
+ }
51
+ if (isMarkerBufferState(this.state)) {
52
+ const state = this.state;
53
+ state.focusPaneIdx = clampInt(point.row - state.region.rowStart, 0, state.allPaneMarkers.length - 1);
54
+ state.focusCol = clampBufferColumn(state, point.col);
55
+ state.mode = "char";
56
+ if (composeRow)
57
+ this.syncSelectedMarkers(state, composeRow);
58
+ return;
59
+ }
60
+ const state = this.state;
61
+ const localRow = clampInt(point.row - state.region.rowStart + 1, 1, Math.max(1, state.region.rowEnd - state.region.rowStart + 1));
62
+ state.focus = {
63
+ row: clampDocLine(state.pane, state.pane.getScrollTop() + localRow - 1),
64
+ col: clampLocalColumn(state.region, point.col),
65
+ };
66
+ state.mode = "char";
67
+ }
68
+ selectWord(region, point, snapshot) {
69
+ const normalized = normalizeRegion(region);
70
+ const clamped = clampPoint(normalized, point);
71
+ const rowText = snapshot[clamped.row - normalized.rowStart] ?? "";
72
+ const bounds = wordBoundsAt(rowText, normalized.colStart, normalized.colEnd, clamped.col);
73
+ this.state = {
74
+ kind: "surface",
75
+ region: normalized,
76
+ snapshot: [...snapshot],
77
+ anchor: { row: clamped.row, col: bounds.startCol },
78
+ focus: { row: clamped.row, col: bounds.endCol },
79
+ mode: "word",
80
+ };
81
+ }
82
+ selectDocWord(region, pane, docLine, col) {
83
+ const normalized = normalizeRegion(region);
84
+ const line = clampDocLine(pane, docLine);
85
+ const localCol = clampLocalColumn(normalized, col);
86
+ const bounds = wordBoundsAt(pane.documentLine(line), 1, regionWidth(normalized), localCol);
87
+ this.state = {
88
+ kind: "doc-surface",
89
+ region: normalized,
90
+ pane,
91
+ anchor: { row: line, col: bounds.startCol },
92
+ focus: { row: line, col: bounds.endCol },
93
+ mode: "word",
94
+ };
95
+ }
96
+ selectLine(region, point, snapshot) {
97
+ const normalized = normalizeRegion(region);
98
+ const clamped = clampPoint(normalized, point);
99
+ this.state = {
100
+ kind: "surface",
101
+ region: normalized,
102
+ snapshot: [...snapshot],
103
+ anchor: { row: clamped.row, col: normalized.colStart },
104
+ focus: { row: clamped.row, col: normalized.colEnd },
105
+ mode: "line",
106
+ };
107
+ }
108
+ selectDocLine(region, pane, docLine) {
109
+ const normalized = normalizeRegion(region);
110
+ const line = clampDocLine(pane, docLine);
111
+ this.state = {
112
+ kind: "doc-surface",
113
+ region: normalized,
114
+ pane,
115
+ anchor: { row: line, col: 1 },
116
+ focus: { row: line, col: regionWidth(normalized) },
117
+ mode: "line",
118
+ };
119
+ }
120
+ growAgentBufferByMarker(marker, direction, focusCol, composeRow) {
121
+ if (this.state?.kind !== "agent-buffer") {
122
+ marker.dispose();
123
+ return;
124
+ }
125
+ this.growMarkerBufferByMarker(this.state, marker, direction, focusCol, composeRow);
126
+ }
127
+ growForkByMarker(marker, direction, focusCol, composeRow) {
128
+ if (this.state?.kind !== "fork-buffer") {
129
+ marker.dispose();
130
+ return;
131
+ }
132
+ this.growMarkerBufferByMarker(this.state, marker, direction, focusCol, composeRow);
133
+ }
134
+ growDocSurface(_direction, focusCol, edgeDocLine) {
135
+ if (this.state?.kind !== "doc-surface")
136
+ return;
137
+ this.state.focus = {
138
+ row: clampDocLine(this.state.pane, edgeDocLine),
139
+ col: clampLocalColumn(this.state.region, focusCol),
140
+ };
141
+ this.state.mode = "char";
142
+ }
143
+ refreshSurfaceSnapshot(snapshot) {
144
+ if (this.state?.kind !== "surface")
145
+ return;
146
+ this.state.snapshot = [...snapshot];
147
+ }
148
+ refreshAgentSnapshot(composeRow) {
149
+ if (this.state?.kind !== "agent-buffer")
150
+ return false;
151
+ return this.refreshMarkerSnapshot(this.state, composeRow);
152
+ }
153
+ refreshForkSnapshot(composeRow) {
154
+ if (this.state?.kind !== "fork-buffer")
155
+ return false;
156
+ return this.refreshMarkerSnapshot(this.state, composeRow);
157
+ }
158
+ clear() {
159
+ const hadState = this.state !== undefined;
160
+ if (this.state && isMarkerBufferState(this.state)) {
161
+ for (const marker of this.state.allPaneMarkers)
162
+ marker.dispose();
163
+ }
164
+ this.state = undefined;
165
+ return hadState;
166
+ }
167
+ isEmpty() {
168
+ if (!this.state)
169
+ return true;
170
+ if (this.state.mode !== "char")
171
+ return false;
172
+ if (this.state.kind === "surface" || this.state.kind === "doc-surface") {
173
+ return (this.state.anchor.row === this.state.focus.row
174
+ && this.state.anchor.col === this.state.focus.col);
175
+ }
176
+ return (this.state.anchorPaneIdx === this.state.focusPaneIdx
177
+ && this.state.anchorCol === this.state.focusCol);
178
+ }
179
+ orderedBounds() {
180
+ if (!this.state)
181
+ return undefined;
182
+ if (this.state.kind === "surface" || this.state.kind === "doc-surface") {
183
+ const { anchor, focus } = this.state;
184
+ if (anchor.row < focus.row
185
+ || (anchor.row === focus.row && anchor.col <= focus.col)) {
186
+ return { start: anchor, end: focus };
187
+ }
188
+ return { start: focus, end: anchor };
189
+ }
190
+ const state = this.state;
191
+ const anchor = state.allPaneMarkers[state.anchorPaneIdx];
192
+ const focus = state.allPaneMarkers[state.focusPaneIdx];
193
+ if (!anchor || !focus)
194
+ return undefined;
195
+ const anchorPoint = { row: anchor.line, col: state.anchorCol };
196
+ const focusPoint = { row: focus.line, col: state.focusCol };
197
+ if (anchorPoint.row < focusPoint.row
198
+ || (anchorPoint.row === focusPoint.row && anchorPoint.col <= focusPoint.col)) {
199
+ return { start: anchorPoint, end: focusPoint };
200
+ }
201
+ return { start: focusPoint, end: anchorPoint };
202
+ }
203
+ perRowSpans() {
204
+ if (!this.state || this.isEmpty())
205
+ return [];
206
+ if (isMarkerBufferState(this.state)) {
207
+ return this.markerSpansWithMarkers(this.state).map(({ span }) => span);
208
+ }
209
+ const bounds = this.orderedBounds();
210
+ if (!bounds)
211
+ return [];
212
+ const spans = [];
213
+ const colStart = this.state.kind === "doc-surface" ? 1 : this.state.region.colStart;
214
+ const colEnd = this.state.kind === "doc-surface"
215
+ ? regionWidth(this.state.region)
216
+ : this.state.region.colEnd;
217
+ for (let row = bounds.start.row; row <= bounds.end.row; row++) {
218
+ const startCol = row === bounds.start.row ? bounds.start.col : colStart;
219
+ const endCol = row === bounds.end.row ? bounds.end.col : colEnd;
220
+ spans.push({ row, startCol, endCol });
221
+ }
222
+ return spans;
223
+ }
224
+ extractText() {
225
+ if (!this.state)
226
+ return "";
227
+ if (isMarkerBufferState(this.state)) {
228
+ const state = this.state;
229
+ return this.markerSpansWithMarkers(state)
230
+ .map(({ marker, span }) => {
231
+ const row = state.snapshot.get(marker) ?? "";
232
+ return extractVisibleRange(row, span.startCol, span.endCol).trimEnd();
233
+ })
234
+ .join("\n");
235
+ }
236
+ if (this.state.kind === "doc-surface") {
237
+ const state = this.state;
238
+ return this.perRowSpans()
239
+ .map((span) => extractVisibleRange(state.pane.documentLine(span.row), span.startCol, span.endCol).trimEnd())
240
+ .join("\n");
241
+ }
242
+ const state = this.state;
243
+ return this.perRowSpans()
244
+ .map((span) => {
245
+ const row = state.snapshot[span.row - state.region.rowStart] ?? "";
246
+ return extractVisibleRange(row, span.startCol, span.endCol).trimEnd();
247
+ })
248
+ .join("\n");
249
+ }
250
+ snapshotMatches(snapshot) {
251
+ if (!this.state)
252
+ return false;
253
+ if (this.state.kind === "surface") {
254
+ if (!Array.isArray(snapshot) || snapshot.length !== this.state.snapshot.length) {
255
+ return false;
256
+ }
257
+ const { colStart, colEnd } = this.state.region;
258
+ for (let i = 0; i < snapshot.length; i++) {
259
+ if (selectionCellKey(snapshot[i], colStart, colEnd)
260
+ !== selectionCellKey(this.state.snapshot[i], colStart, colEnd))
261
+ return false;
262
+ }
263
+ return true;
264
+ }
265
+ if (this.state.kind === "doc-surface")
266
+ return true;
267
+ if (Array.isArray(snapshot))
268
+ return false;
269
+ const state = this.state;
270
+ for (const { marker, span } of this.markerSpansWithMarkers(state)) {
271
+ const current = snapshot.get(marker);
272
+ const baseline = state.snapshot.get(marker);
273
+ if (current === undefined || baseline === undefined)
274
+ return false;
275
+ if (selectionCellKey(current, span.startCol, span.endCol)
276
+ !== selectionCellKey(baseline, span.startCol, span.endCol))
277
+ return false;
278
+ }
279
+ return true;
280
+ }
281
+ beginMarkerBufferDrag(kind, region, composeCols, allPaneMarkers, anchorPaneIdx, anchorCol, composeRow) {
282
+ const markers = [...allPaneMarkers];
283
+ if (markers.length === 0) {
284
+ this.clear();
285
+ return;
286
+ }
287
+ const normalized = normalizeRegion(region);
288
+ const paneIdx = clampInt(anchorPaneIdx, 0, markers.length - 1);
289
+ const state = {
290
+ kind,
291
+ region: normalized,
292
+ composeCols,
293
+ allPaneMarkers: markers,
294
+ anchorPaneIdx: paneIdx,
295
+ anchorCol: clampMarkerBufferColumn(kind, normalized, anchorCol),
296
+ focusPaneIdx: paneIdx,
297
+ focusCol: clampMarkerBufferColumn(kind, normalized, anchorCol),
298
+ markers: [],
299
+ snapshot: new Map(),
300
+ mode: "char",
301
+ };
302
+ this.state = state;
303
+ this.syncSelectedMarkers(state, composeRow);
304
+ }
305
+ selectMarkerBufferWord(kind, region, composeCols, allPaneMarkers, anchorPaneIdx, anchorCol, composeRow) {
306
+ const markers = [...allPaneMarkers];
307
+ if (markers.length === 0) {
308
+ this.clear();
309
+ return;
310
+ }
311
+ const normalized = normalizeRegion(region);
312
+ const paneIdx = clampInt(anchorPaneIdx, 0, markers.length - 1);
313
+ const col = clampMarkerBufferColumn(kind, normalized, anchorCol);
314
+ const rowText = composeRow(markers[paneIdx].line);
315
+ const bounds = wordBoundsAt(rowText, markerBufferColStart(kind, normalized), markerBufferColEnd(kind, normalized), col);
316
+ const state = {
317
+ kind,
318
+ region: normalized,
319
+ composeCols,
320
+ allPaneMarkers: markers,
321
+ anchorPaneIdx: paneIdx,
322
+ anchorCol: bounds.startCol,
323
+ focusPaneIdx: paneIdx,
324
+ focusCol: bounds.endCol,
325
+ markers: [],
326
+ snapshot: new Map([[markers[paneIdx], rowText]]),
327
+ mode: "word",
328
+ };
329
+ this.state = state;
330
+ this.syncSelectedMarkers(state, composeRow);
331
+ }
332
+ selectMarkerBufferLine(kind, region, composeCols, allPaneMarkers, anchorPaneIdx, composeRow) {
333
+ const markers = [...allPaneMarkers];
334
+ if (markers.length === 0) {
335
+ this.clear();
336
+ return;
337
+ }
338
+ const normalized = normalizeRegion(region);
339
+ const paneIdx = clampInt(anchorPaneIdx, 0, markers.length - 1);
340
+ const state = {
341
+ kind,
342
+ region: normalized,
343
+ composeCols,
344
+ allPaneMarkers: markers,
345
+ anchorPaneIdx: paneIdx,
346
+ anchorCol: markerBufferColStart(kind, normalized),
347
+ focusPaneIdx: paneIdx,
348
+ focusCol: markerBufferColEnd(kind, normalized),
349
+ markers: [],
350
+ snapshot: new Map(),
351
+ mode: "line",
352
+ };
353
+ this.state = state;
354
+ this.syncSelectedMarkers(state, composeRow);
355
+ }
356
+ growMarkerBufferByMarker(state, marker, direction, focusCol, composeRow) {
357
+ const existing = state.allPaneMarkers.findIndex((candidate) => candidate.line === marker.line);
358
+ if (existing >= 0) {
359
+ marker.dispose();
360
+ state.focusPaneIdx = existing;
361
+ state.focusCol = clampBufferColumn(state, focusCol);
362
+ state.mode = "char";
363
+ this.syncSelectedMarkers(state, composeRow);
364
+ return;
365
+ }
366
+ if (direction === "back") {
367
+ state.allPaneMarkers.unshift(marker);
368
+ state.anchorPaneIdx += 1;
369
+ state.focusPaneIdx = 0;
370
+ }
371
+ else {
372
+ state.allPaneMarkers.push(marker);
373
+ state.focusPaneIdx = state.allPaneMarkers.length - 1;
374
+ }
375
+ state.focusCol = clampBufferColumn(state, focusCol);
376
+ state.mode = "char";
377
+ this.syncSelectedMarkers(state, composeRow);
378
+ }
379
+ syncSelectedMarkers(state, composeRow) {
380
+ const lo = Math.min(state.anchorPaneIdx, state.focusPaneIdx);
381
+ const hi = Math.max(state.anchorPaneIdx, state.focusPaneIdx);
382
+ const selected = state.allPaneMarkers.slice(lo, hi + 1);
383
+ state.markers = selected;
384
+ const keep = new Set(selected);
385
+ for (const marker of selected) {
386
+ if (!state.snapshot.has(marker)) {
387
+ state.snapshot.set(marker, composeRow(marker.line));
388
+ }
389
+ }
390
+ pruneSnapshot(state.snapshot, keep);
391
+ }
392
+ refreshMarkerSnapshot(state, composeRow) {
393
+ for (const marker of state.markers) {
394
+ if (marker.isDisposed || marker.line < 0)
395
+ return false;
396
+ }
397
+ const keep = new Set(state.markers);
398
+ for (const marker of state.markers) {
399
+ state.snapshot.set(marker, composeRow(marker.line));
400
+ }
401
+ pruneSnapshot(state.snapshot, keep);
402
+ return true;
403
+ }
404
+ markerSpansWithMarkers(state) {
405
+ const bounds = this.orderedBounds();
406
+ if (!bounds)
407
+ return [];
408
+ const spans = [];
409
+ const colStart = markerBufferColStart(state.kind, state.region);
410
+ const colEnd = markerBufferColEnd(state.kind, state.region);
411
+ for (const marker of state.markers) {
412
+ const row = marker.line;
413
+ const startCol = row === bounds.start.row ? bounds.start.col : colStart;
414
+ const endCol = row === bounds.end.row ? bounds.end.col : colEnd;
415
+ spans.push({ marker, span: { row, startCol, endCol } });
416
+ }
417
+ return spans;
418
+ }
419
+ }
420
+ function normalizeRegion(region) {
421
+ return {
422
+ rowStart: Math.min(region.rowStart, region.rowEnd),
423
+ rowEnd: Math.max(region.rowStart, region.rowEnd),
424
+ colStart: Math.min(region.colStart, region.colEnd),
425
+ colEnd: Math.max(region.colStart, region.colEnd),
426
+ };
427
+ }
428
+ function pruneSnapshot(snapshot, keep) {
429
+ for (const marker of Array.from(snapshot.keys())) {
430
+ if (!keep.has(marker))
431
+ snapshot.delete(marker);
432
+ }
433
+ }
434
+ function clampPoint(region, point) {
435
+ return {
436
+ row: Math.min(Math.max(point.row, region.rowStart), region.rowEnd),
437
+ col: clampColumn(region, point.col),
438
+ };
439
+ }
440
+ function clampColumn(region, col) {
441
+ return Math.min(Math.max(col, region.colStart), region.colEnd);
442
+ }
443
+ function clampLocalColumn(region, col) {
444
+ return Math.min(Math.max(col, 1), regionWidth(region));
445
+ }
446
+ function clampBufferColumn(state, col) {
447
+ return clampMarkerBufferColumn(state.kind, state.region, col);
448
+ }
449
+ function clampMarkerBufferColumn(kind, region, col) {
450
+ return Math.min(Math.max(col, markerBufferColStart(kind, region)), markerBufferColEnd(kind, region));
451
+ }
452
+ function markerBufferColStart(kind, region) {
453
+ return kind === "agent-buffer" ? region.colStart : 1;
454
+ }
455
+ function markerBufferColEnd(kind, region) {
456
+ return kind === "agent-buffer" ? region.colEnd : regionWidth(region);
457
+ }
458
+ function regionWidth(region) {
459
+ return Math.max(1, region.colEnd - region.colStart + 1);
460
+ }
461
+ function clampDocLine(pane, line) {
462
+ return clampInt(line, 0, Math.max(0, pane.lineCount() - 1));
463
+ }
464
+ function clampInt(value, min, max) {
465
+ return Math.min(Math.max(Math.trunc(value), min), max);
466
+ }
467
+ function isMarkerBufferState(state) {
468
+ return state.kind === "agent-buffer" || state.kind === "fork-buffer";
469
+ }
470
+ function wordBoundsAt(line, colStart, colEnd, targetCol) {
471
+ const glyphs = visibleGlyphs(line, colStart, colEnd);
472
+ const index = glyphs.findIndex((glyph) => glyph.startCol <= targetCol && targetCol <= glyph.endCol);
473
+ if (index < 0)
474
+ return { startCol: targetCol, endCol: targetCol };
475
+ if (/\s/u.test(glyphs[index].text)) {
476
+ return { startCol: glyphs[index].startCol, endCol: glyphs[index].endCol };
477
+ }
478
+ let start = index;
479
+ while (start > 0 && !/\s/u.test(glyphs[start - 1].text))
480
+ start--;
481
+ let end = index;
482
+ while (end + 1 < glyphs.length && !/\s/u.test(glyphs[end + 1].text))
483
+ end++;
484
+ return {
485
+ startCol: glyphs[start].startCol,
486
+ endCol: glyphs[end].endCol,
487
+ };
488
+ }
489
+ function visibleGlyphs(line, colStart, colEnd) {
490
+ const glyphs = [];
491
+ let col = 1;
492
+ let i = 0;
493
+ while (i < line.length) {
494
+ const escapeLength = matchAnsiEscapeAt(line, i);
495
+ if (escapeLength > 0) {
496
+ i += escapeLength;
497
+ continue;
498
+ }
499
+ const ch = String.fromCodePoint(line.codePointAt(i));
500
+ const width = visibleLength(ch);
501
+ if (width === 0) {
502
+ if (glyphs.length > 0)
503
+ glyphs[glyphs.length - 1].text += ch;
504
+ i += ch.length;
505
+ continue;
506
+ }
507
+ const start = col;
508
+ const end = col + width - 1;
509
+ if (end >= colStart && start <= colEnd) {
510
+ glyphs.push({ text: ch, startCol: start, endCol: end });
511
+ }
512
+ col += width;
513
+ i += ch.length;
514
+ }
515
+ return glyphs;
516
+ }
517
+ //# sourceMappingURL=selection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selection.js","sourceRoot":"","sources":["../../src/terminal/selection.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { IBuffer, IBufferCell } from "@xterm/headless";
1
+ import type { IBuffer, IBufferCell, IMarker } from "@xterm/headless";
2
2
  export interface VirtualTerminalOptions {
3
3
  onOscClipboard?: (data: string) => void;
4
4
  }
@@ -29,6 +29,8 @@ export declare class VirtualTerminal {
29
29
  get rows(): number;
30
30
  /** Active buffer (normal or alternate, transparently). */
31
31
  get buffer(): IBuffer;
32
+ /** Normal buffer, used for marker-backed selection even when the viewport moves. */
33
+ get normalBuffer(): IBuffer;
32
34
  /** Cursor X within the viewport (0-based). */
33
35
  get cursorX(): number;
34
36
  /** Cursor Y within the viewport (0-based). */
@@ -55,6 +57,8 @@ export declare class VirtualTerminal {
55
57
  scrollToTop(): void;
56
58
  /** Jump the viewport to the live tail (bottom). */
57
59
  scrollToBottom(): void;
60
+ /** Register a marker for an absolute normal-buffer row. */
61
+ registerMarker(absIdx: number): IMarker | undefined;
58
62
  /** Reusable cell scratch object — avoids per-cell allocation in render hot path. */
59
63
  newCell(): IBufferCell;
60
64
  dispose(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"virtual-terminal.d.ts","sourceRoot":"","sources":["../../src/terminal/virtual-terminal.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAA6B,MAAM,iBAAiB,CAAC;AAKvF,MAAM,WAAW,sBAAsB;IACrC,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAgB;IACrC,OAAO,CAAC,kBAAkB,CAAQ;gBAEtB,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,sBAA2B;IAkCzE,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,EAAE,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI;IAQ7D,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAIxC,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,0DAA0D;IAC1D,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,8CAA8C;IAC9C,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,8CAA8C;IAC9C,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,gDAAgD;IAChD,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,yEAAyE;IACzE,IAAI,cAAc,IAAI,OAAO,CAE5B;IAED,oFAAoF;IACpF,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED,wDAAwD;IACxD,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,0DAA0D;IAC1D,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,gFAAgF;IAChF,IAAI,cAAc,IAAI,OAAO,CAE5B;IAED,2DAA2D;IAC3D,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK/B,8DAA8D;IAC9D,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKlC,8EAA8E;IAC9E,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAKpC,uDAAuD;IACvD,WAAW,IAAI,IAAI;IAInB,mDAAmD;IACnD,cAAc,IAAI,IAAI;IAItB,oFAAoF;IACpF,OAAO,IAAI,WAAW;IAItB,OAAO,IAAI,IAAI;CAGhB"}
1
+ {"version":3,"file":"virtual-terminal.d.ts","sourceRoot":"","sources":["../../src/terminal/virtual-terminal.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,OAAO,EACP,WAAW,EACX,OAAO,EAER,MAAM,iBAAiB,CAAC;AAKzB,MAAM,WAAW,sBAAsB;IACrC,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAgB;IACrC,OAAO,CAAC,kBAAkB,CAAQ;gBAEtB,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,sBAA2B;IAkCzE,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,EAAE,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI;IAQ7D,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAIxC,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,0DAA0D;IAC1D,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,oFAAoF;IACpF,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED,8CAA8C;IAC9C,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,8CAA8C;IAC9C,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,gDAAgD;IAChD,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,yEAAyE;IACzE,IAAI,cAAc,IAAI,OAAO,CAE5B;IAED,oFAAoF;IACpF,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED,wDAAwD;IACxD,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,0DAA0D;IAC1D,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,gFAAgF;IAChF,IAAI,cAAc,IAAI,OAAO,CAE5B;IAED,2DAA2D;IAC3D,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK/B,8DAA8D;IAC9D,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKlC,8EAA8E;IAC9E,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAKpC,uDAAuD;IACvD,WAAW,IAAI,IAAI;IAInB,mDAAmD;IACnD,cAAc,IAAI,IAAI;IAItB,2DAA2D;IAC3D,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAKnD,oFAAoF;IACpF,OAAO,IAAI,WAAW;IAItB,OAAO,IAAI,IAAI;CAGhB"}
@@ -73,6 +73,10 @@ export class VirtualTerminal {
73
73
  get buffer() {
74
74
  return this.term.buffer.active;
75
75
  }
76
+ /** Normal buffer, used for marker-backed selection even when the viewport moves. */
77
+ get normalBuffer() {
78
+ return this.term.buffer.normal;
79
+ }
76
80
  /** Cursor X within the viewport (0-based). */
77
81
  get cursorX() {
78
82
  return this.buffer.cursorX;
@@ -131,6 +135,12 @@ export class VirtualTerminal {
131
135
  scrollToBottom() {
132
136
  this.term.scrollToBottom();
133
137
  }
138
+ /** Register a marker for an absolute normal-buffer row. */
139
+ registerMarker(absIdx) {
140
+ if (this.isAlternate)
141
+ return undefined;
142
+ return this.term.registerMarker(absIdx - (this.buffer.baseY + this.buffer.cursorY));
143
+ }
134
144
  /** Reusable cell scratch object — avoids per-cell allocation in render hot path. */
135
145
  newCell() {
136
146
  return this.buffer.getNullCell();
@@ -1 +1 @@
1
- {"version":3,"file":"virtual-terminal.js","sourceRoot":"","sources":["../../src/terminal/virtual-terminal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"virtual-terminal.js","sourceRoot":"","sources":["../../src/terminal/virtual-terminal.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAO5C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,EAAE,QAAQ,EAAE,GAAG,aAAiD,CAAC;AAMvE;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,eAAe;IACT,IAAI,CAAgB;IAC7B,kBAAkB,GAAG,IAAI,CAAC;IAElC,YAAY,IAAY,EAAE,IAAY,EAAE,OAA+B,EAAE;QACvE,IAAI,CAAC,IAAI,GAAG,IAAI,QAAQ,CAAC;YACvB,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC;YACvB,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC;YACvB,gBAAgB,EAAE,IAAI;YACtB,sDAAsD;YACtD,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE;YAC1E,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC;gBACtE,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;YACjC,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE;YAC1E,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC;gBACtE,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;YAClC,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAC3C,IAAI,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC/C,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;gBAChC,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBACrD,cAAc,CAAC,IAAI,CAAC,CAAC;gBACvB,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAyB,EAAE,QAAqB;QACpD,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,MAAM,CAAC,IAAY,EAAE,IAAY;QAC/B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACxB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACxB,CAAC;IAED,0DAA0D;IAC1D,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IACjC,CAAC;IAED,oFAAoF;IACpF,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IACjC,CAAC;IAED,8CAA8C;IAC9C,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;IAC7B,CAAC;IAED,8CAA8C;IAC9C,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;IAC7B,CAAC;IAED,gDAAgD;IAChD,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC;IACtD,CAAC;IAED,yEAAyE;IACzE,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC;IAC5C,CAAC;IAED,oFAAoF;IACpF,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAED,wDAAwD;IACxD,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;IAC/B,CAAC;IAED,0DAA0D;IAC1D,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IAC3B,CAAC;IAED,gFAAgF;IAChF,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IACnD,CAAC;IAED,2DAA2D;IAC3D,UAAU,CAAC,KAAa;QACtB,IAAI,KAAK,IAAI,CAAC;YAAE,OAAO;QACvB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,8DAA8D;IAC9D,aAAa,CAAC,KAAa;QACzB,IAAI,KAAK,IAAI,CAAC;YAAE,OAAO;QACvB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED,8EAA8E;IAC9E,WAAW,CAAC,SAAiB;QAC3B,IAAI,SAAS,KAAK,CAAC;YAAE,OAAO;QAC5B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,uDAAuD;IACvD,WAAW;QACT,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IAC1B,CAAC;IAED,mDAAmD;IACnD,cAAc;QACZ,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;IAC7B,CAAC;IAED,2DAA2D;IAC3D,cAAc,CAAC,MAAc;QAC3B,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO,SAAS,CAAC;QACvC,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACtF,CAAC;IAED,oFAAoF;IACpF,OAAO;QACL,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;IACnC,CAAC;IAED,OAAO;QACL,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;IACtB,CAAC;CACF"}
@@ -49,6 +49,8 @@ interface CurateState {
49
49
  transientHint: string | null;
50
50
  } | undefined;
51
51
  planScrollTop: number;
52
+ issueScrollTop: number;
53
+ issueScrollPinnedToCursor: boolean;
52
54
  nextCycle: number[];
53
55
  }
54
56
  export declare function curateHelpTokens(state: Pick<CurateState, "editing" | "cursor" | "decisions" | "userAdded">, issueCount: number, citationLive: boolean, issueInquiry?: {
@@ -1 +1 @@
1
- {"version":3,"file":"host-curate-prompt.d.ts","sourceRoot":"","sources":["../../src/user/host-curate-prompt.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAKL,KAAK,cAAc,EAEnB,KAAK,mBAAmB,EACxB,KAAK,YAAY,EAClB,MAAM,oBAAoB,CAAC;AAS5B,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAmC,MAAM,qBAAqB,CAAC;AACzF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAQzE,OAAO,EAOL,KAAK,kBAAkB,EACxB,MAAM,uBAAuB,CAAC;AAM/B,eAAO,MAAM,QAAQ,iFAC+C,CAAC;AAErE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,sBAAuB,YAAW,mBAAmB;IACpD,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,YAAY;IAEzC,MAAM,CACV,OAAO,EAAE,aAAa,EACtB,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,YAAY,CAAC;CAmazB;AAED,UAAU,WAAW;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,QAAQ,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;IACjC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE;QACP,MAAM,EAAE,UAAU,CAAC;QACnB,MAAM,EAAE,UAAU,CAAC;QACnB,WAAW,EAAE,iBAAiB,CAAC;QAC/B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;KAC9B,GAAG,SAAS,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,GAAG,QAAQ,GAAG,WAAW,GAAG,WAAW,CAAC,EAC1E,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,OAAO,EACrB,YAAY,GAAE;IAAE,OAAO,EAAE,gBAAgB,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,EAAO,GACjE,MAAM,EAAE,CAsBV;AAWD,KAAK,UAAU,GACX;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC1C,kBAAkB,CAAC;AAkWvB,wBAAgB,UAAU,CAAC,OAAO,EAAE,mBAAmB,EAAE,YAAY,UAAO,GAAG,MAAM,CAWpF"}
1
+ {"version":3,"file":"host-curate-prompt.d.ts","sourceRoot":"","sources":["../../src/user/host-curate-prompt.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAKL,KAAK,cAAc,EAEnB,KAAK,mBAAmB,EACxB,KAAK,YAAY,EAClB,MAAM,oBAAoB,CAAC;AAU5B,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAmC,MAAM,qBAAqB,CAAC;AACzF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAO9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAQzE,OAAO,EAOL,KAAK,kBAAkB,EACxB,MAAM,uBAAuB,CAAC;AAM/B,eAAO,MAAM,QAAQ,iFAC+C,CAAC;AAErE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,sBAAuB,YAAW,mBAAmB;IACpD,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,YAAY;IAEzC,MAAM,CACV,OAAO,EAAE,aAAa,EACtB,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,YAAY,CAAC;CAyczB;AAED,UAAU,WAAW;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,QAAQ,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;IACjC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE;QACP,MAAM,EAAE,UAAU,CAAC;QACnB,MAAM,EAAE,UAAU,CAAC;QACnB,WAAW,EAAE,iBAAiB,CAAC;QAC/B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;KAC9B,GAAG,SAAS,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,yBAAyB,EAAE,OAAO,CAAC;IACnC,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,GAAG,QAAQ,GAAG,WAAW,GAAG,WAAW,CAAC,EAC1E,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,OAAO,EACrB,YAAY,GAAE;IAAE,OAAO,EAAE,gBAAgB,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,EAAO,GACjE,MAAM,EAAE,CAsBV;AAWD,KAAK,UAAU,GACX;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC1C,kBAAkB,CAAC;AA0lBvB,wBAAgB,UAAU,CAAC,OAAO,EAAE,mBAAmB,EAAE,YAAY,UAAO,GAAG,MAAM,CAWpF"}