@tienne/gestalt 0.106.0 → 0.108.0

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 (271) hide show
  1. package/CLAUDE.md +1 -0
  2. package/README.ko.md +1 -0
  3. package/README.md +1 -0
  4. package/dist/package.json +1 -1
  5. package/dist/plugin/role-agents/lens-context/AGENT.md +94 -0
  6. package/dist/plugin/role-agents/lens-link/AGENT.md +83 -0
  7. package/dist/plugin/role-agents/lens-reader/AGENT.md +230 -0
  8. package/dist/plugin/skills/_shared/proactive-routing.md +1 -0
  9. package/dist/plugin/skills/interview/SKILL.md +47 -8
  10. package/dist/plugin/skills/lens/SKILL.md +375 -0
  11. package/dist/plugin/skills/solve/SKILL.md +3 -3
  12. package/dist/plugin/skills/spec/SKILL.md +4 -4
  13. package/dist/schemas/gestalt.schema.json +19 -0
  14. package/dist/src/agent/role-consensus-engine.d.ts.map +1 -1
  15. package/dist/src/agent/role-consensus-engine.js +1 -1
  16. package/dist/src/agent/role-consensus-engine.js.map +1 -1
  17. package/dist/src/agent/role-prompt-generator.d.ts.map +1 -1
  18. package/dist/src/agent/role-prompt-generator.js +1 -2
  19. package/dist/src/agent/role-prompt-generator.js.map +1 -1
  20. package/dist/src/cli/commands/digest.d.ts +2 -0
  21. package/dist/src/cli/commands/digest.d.ts.map +1 -1
  22. package/dist/src/cli/commands/digest.js +6 -0
  23. package/dist/src/cli/commands/digest.js.map +1 -1
  24. package/dist/src/cli/commands/interview.d.ts +1 -0
  25. package/dist/src/cli/commands/interview.d.ts.map +1 -1
  26. package/dist/src/cli/commands/interview.js +5 -3
  27. package/dist/src/cli/commands/interview.js.map +1 -1
  28. package/dist/src/cli/commands/lens.d.ts +27 -0
  29. package/dist/src/cli/commands/lens.d.ts.map +1 -0
  30. package/dist/src/cli/commands/lens.js +200 -0
  31. package/dist/src/cli/commands/lens.js.map +1 -0
  32. package/dist/src/cli/commands/spec.d.ts.map +1 -1
  33. package/dist/src/cli/commands/spec.js +2 -2
  34. package/dist/src/cli/commands/spec.js.map +1 -1
  35. package/dist/src/cli/index.d.ts.map +1 -1
  36. package/dist/src/cli/index.js +37 -0
  37. package/dist/src/cli/index.js.map +1 -1
  38. package/dist/src/core/config.d.ts +19 -0
  39. package/dist/src/core/config.d.ts.map +1 -1
  40. package/dist/src/core/config.js +23 -15
  41. package/dist/src/core/config.js.map +1 -1
  42. package/dist/src/core/constants.d.ts +5 -0
  43. package/dist/src/core/constants.d.ts.map +1 -1
  44. package/dist/src/core/constants.js +5 -0
  45. package/dist/src/core/constants.js.map +1 -1
  46. package/dist/src/core/errors.d.ts +3 -1
  47. package/dist/src/core/errors.d.ts.map +1 -1
  48. package/dist/src/core/errors.js +6 -2
  49. package/dist/src/core/errors.js.map +1 -1
  50. package/dist/src/core/types.d.ts +51 -2
  51. package/dist/src/core/types.d.ts.map +1 -1
  52. package/dist/src/digest/format.d.ts.map +1 -1
  53. package/dist/src/digest/format.js +1 -0
  54. package/dist/src/digest/format.js.map +1 -1
  55. package/dist/src/digest/frames.d.ts.map +1 -1
  56. package/dist/src/digest/frames.js +1 -1
  57. package/dist/src/digest/frames.js.map +1 -1
  58. package/dist/src/digest/ingest.d.ts +8 -1
  59. package/dist/src/digest/ingest.d.ts.map +1 -1
  60. package/dist/src/digest/ingest.js +2 -1
  61. package/dist/src/digest/ingest.js.map +1 -1
  62. package/dist/src/digest/lens-schema.d.ts +542 -0
  63. package/dist/src/digest/lens-schema.d.ts.map +1 -0
  64. package/dist/src/digest/lens-schema.js +108 -0
  65. package/dist/src/digest/lens-schema.js.map +1 -0
  66. package/dist/src/digest/lens-source.d.ts +260 -0
  67. package/dist/src/digest/lens-source.d.ts.map +1 -0
  68. package/dist/src/digest/lens-source.js +92 -0
  69. package/dist/src/digest/lens-source.js.map +1 -0
  70. package/dist/src/digest/lens-widget-schema.d.ts +1225 -0
  71. package/dist/src/digest/lens-widget-schema.d.ts.map +1 -0
  72. package/dist/src/digest/lens-widget-schema.js +80 -0
  73. package/dist/src/digest/lens-widget-schema.js.map +1 -0
  74. package/dist/src/digest/lens-widgets.d.ts +25 -0
  75. package/dist/src/digest/lens-widgets.d.ts.map +1 -0
  76. package/dist/src/digest/lens-widgets.js +225 -0
  77. package/dist/src/digest/lens-widgets.js.map +1 -0
  78. package/dist/src/digest/lint-lens-context.d.ts +102 -0
  79. package/dist/src/digest/lint-lens-context.d.ts.map +1 -0
  80. package/dist/src/digest/lint-lens-context.js +192 -0
  81. package/dist/src/digest/lint-lens-context.js.map +1 -0
  82. package/dist/src/digest/lint-lens.d.ts +17 -0
  83. package/dist/src/digest/lint-lens.d.ts.map +1 -0
  84. package/dist/src/digest/lint-lens.js +237 -0
  85. package/dist/src/digest/lint-lens.js.map +1 -0
  86. package/dist/src/digest/lint.d.ts +14 -0
  87. package/dist/src/digest/lint.d.ts.map +1 -1
  88. package/dist/src/digest/lint.js +156 -2
  89. package/dist/src/digest/lint.js.map +1 -1
  90. package/dist/src/digest/merge.d.ts.map +1 -1
  91. package/dist/src/digest/merge.js +11 -2
  92. package/dist/src/digest/merge.js.map +1 -1
  93. package/dist/src/digest/prose.d.ts.map +1 -1
  94. package/dist/src/digest/prose.js +8 -0
  95. package/dist/src/digest/prose.js.map +1 -1
  96. package/dist/src/digest/render-html.d.ts +5 -0
  97. package/dist/src/digest/render-html.d.ts.map +1 -1
  98. package/dist/src/digest/render-html.js +93 -18
  99. package/dist/src/digest/render-html.js.map +1 -1
  100. package/dist/src/digest/render-lens.d.ts +61 -0
  101. package/dist/src/digest/render-lens.d.ts.map +1 -0
  102. package/dist/src/digest/render-lens.js +273 -0
  103. package/dist/src/digest/render-lens.js.map +1 -0
  104. package/dist/src/digest/render-md.d.ts +5 -0
  105. package/dist/src/digest/render-md.d.ts.map +1 -1
  106. package/dist/src/digest/render-md.js +116 -7
  107. package/dist/src/digest/render-md.js.map +1 -1
  108. package/dist/src/digest/render-widgets.d.ts +13 -0
  109. package/dist/src/digest/render-widgets.d.ts.map +1 -0
  110. package/dist/src/digest/render-widgets.js +197 -0
  111. package/dist/src/digest/render-widgets.js.map +1 -0
  112. package/dist/src/digest/render.d.ts +2 -0
  113. package/dist/src/digest/render.d.ts.map +1 -1
  114. package/dist/src/digest/render.js +17 -3
  115. package/dist/src/digest/render.js.map +1 -1
  116. package/dist/src/digest/schema.d.ts +14683 -2022
  117. package/dist/src/digest/schema.d.ts.map +1 -1
  118. package/dist/src/digest/schema.js +67 -6
  119. package/dist/src/digest/schema.js.map +1 -1
  120. package/dist/src/digest/server.d.ts +2 -1
  121. package/dist/src/digest/server.d.ts.map +1 -1
  122. package/dist/src/digest/server.js +26 -11
  123. package/dist/src/digest/server.js.map +1 -1
  124. package/dist/src/digest/viewer-js.d.ts.map +1 -1
  125. package/dist/src/digest/viewer-js.js +120 -4
  126. package/dist/src/digest/viewer-js.js.map +1 -1
  127. package/dist/src/events/types.d.ts +2 -0
  128. package/dist/src/events/types.d.ts.map +1 -1
  129. package/dist/src/events/types.js +2 -0
  130. package/dist/src/events/types.js.map +1 -1
  131. package/dist/src/execute/orchestrators/evolution.d.ts.map +1 -1
  132. package/dist/src/execute/orchestrators/evolution.js +4 -0
  133. package/dist/src/execute/orchestrators/evolution.js.map +1 -1
  134. package/dist/src/execute/passthrough-engine.d.ts +6 -0
  135. package/dist/src/execute/passthrough-engine.d.ts.map +1 -1
  136. package/dist/src/execute/passthrough-engine.js +10 -0
  137. package/dist/src/execute/passthrough-engine.js.map +1 -1
  138. package/dist/src/execute/termination-detector.d.ts +3 -0
  139. package/dist/src/execute/termination-detector.d.ts.map +1 -1
  140. package/dist/src/execute/termination-detector.js +2 -3
  141. package/dist/src/execute/termination-detector.js.map +1 -1
  142. package/dist/src/gestalt/analyzer.d.ts +1 -1
  143. package/dist/src/gestalt/analyzer.d.ts.map +1 -1
  144. package/dist/src/gestalt/analyzer.js +3 -2
  145. package/dist/src/gestalt/analyzer.js.map +1 -1
  146. package/dist/src/gestalt/signals.d.ts +20 -0
  147. package/dist/src/gestalt/signals.d.ts.map +1 -0
  148. package/dist/src/gestalt/signals.js +112 -0
  149. package/dist/src/gestalt/signals.js.map +1 -0
  150. package/dist/src/interview/engine.d.ts +9 -1
  151. package/dist/src/interview/engine.d.ts.map +1 -1
  152. package/dist/src/interview/engine.js +40 -11
  153. package/dist/src/interview/engine.js.map +1 -1
  154. package/dist/src/interview/passthrough-engine.d.ts +31 -7
  155. package/dist/src/interview/passthrough-engine.d.ts.map +1 -1
  156. package/dist/src/interview/passthrough-engine.js +87 -28
  157. package/dist/src/interview/passthrough-engine.js.map +1 -1
  158. package/dist/src/interview/repository.d.ts +6 -1
  159. package/dist/src/interview/repository.d.ts.map +1 -1
  160. package/dist/src/interview/repository.js +20 -2
  161. package/dist/src/interview/repository.js.map +1 -1
  162. package/dist/src/interview/rescore.d.ts +35 -0
  163. package/dist/src/interview/rescore.d.ts.map +1 -0
  164. package/dist/src/interview/rescore.js +92 -0
  165. package/dist/src/interview/rescore.js.map +1 -0
  166. package/dist/src/interview/resolution.d.ts +5 -1
  167. package/dist/src/interview/resolution.d.ts.map +1 -1
  168. package/dist/src/interview/resolution.js +15 -4
  169. package/dist/src/interview/resolution.js.map +1 -1
  170. package/dist/src/interview/session.d.ts +12 -2
  171. package/dist/src/interview/session.d.ts.map +1 -1
  172. package/dist/src/interview/session.js +57 -5
  173. package/dist/src/interview/session.js.map +1 -1
  174. package/dist/src/lens/attach.d.ts +436 -0
  175. package/dist/src/lens/attach.d.ts.map +1 -0
  176. package/dist/src/lens/attach.js +46 -0
  177. package/dist/src/lens/attach.js.map +1 -0
  178. package/dist/src/lens/ingest.d.ts +75 -0
  179. package/dist/src/lens/ingest.d.ts.map +1 -0
  180. package/dist/src/lens/ingest.js +558 -0
  181. package/dist/src/lens/ingest.js.map +1 -0
  182. package/dist/src/lens/kind.d.ts +11 -0
  183. package/dist/src/lens/kind.d.ts.map +1 -0
  184. package/dist/src/lens/kind.js +59 -0
  185. package/dist/src/lens/kind.js.map +1 -0
  186. package/dist/src/lens/knowledge.d.ts +53 -0
  187. package/dist/src/lens/knowledge.d.ts.map +1 -0
  188. package/dist/src/lens/knowledge.js +202 -0
  189. package/dist/src/lens/knowledge.js.map +1 -0
  190. package/dist/src/lens/notes.d.ts +73 -0
  191. package/dist/src/lens/notes.d.ts.map +1 -0
  192. package/dist/src/lens/notes.js +276 -0
  193. package/dist/src/lens/notes.js.map +1 -0
  194. package/dist/src/lens/panels.d.ts +10 -0
  195. package/dist/src/lens/panels.d.ts.map +1 -0
  196. package/dist/src/lens/panels.js +25 -0
  197. package/dist/src/lens/panels.js.map +1 -0
  198. package/dist/src/lens/pdf-extract-py.d.ts +15 -0
  199. package/dist/src/lens/pdf-extract-py.d.ts.map +1 -0
  200. package/dist/src/lens/pdf-extract-py.js +414 -0
  201. package/dist/src/lens/pdf-extract-py.js.map +1 -0
  202. package/dist/src/lens/podcast.d.ts +36 -0
  203. package/dist/src/lens/podcast.d.ts.map +1 -0
  204. package/dist/src/lens/podcast.js +104 -0
  205. package/dist/src/lens/podcast.js.map +1 -0
  206. package/dist/src/lens/python.d.ts +33 -0
  207. package/dist/src/lens/python.d.ts.map +1 -0
  208. package/dist/src/lens/python.js +61 -0
  209. package/dist/src/lens/python.js.map +1 -0
  210. package/dist/src/lens/web-extract-py.d.ts +9 -0
  211. package/dist/src/lens/web-extract-py.d.ts.map +1 -0
  212. package/dist/src/lens/web-extract-py.js +114 -0
  213. package/dist/src/lens/web-extract-py.js.map +1 -0
  214. package/dist/src/llm/prompts.d.ts +8 -0
  215. package/dist/src/llm/prompts.d.ts.map +1 -1
  216. package/dist/src/llm/prompts.js +7 -0
  217. package/dist/src/llm/prompts.js.map +1 -1
  218. package/dist/src/mcp/schemas.d.ts +29 -20
  219. package/dist/src/mcp/schemas.d.ts.map +1 -1
  220. package/dist/src/mcp/schemas.js +15 -3
  221. package/dist/src/mcp/schemas.js.map +1 -1
  222. package/dist/src/mcp/server.d.ts.map +1 -1
  223. package/dist/src/mcp/server.js +11 -5
  224. package/dist/src/mcp/server.js.map +1 -1
  225. package/dist/src/mcp/tools/digest-passthrough.d.ts.map +1 -1
  226. package/dist/src/mcp/tools/digest-passthrough.js +5 -0
  227. package/dist/src/mcp/tools/digest-passthrough.js.map +1 -1
  228. package/dist/src/mcp/tools/execute/evaluate.d.ts.map +1 -1
  229. package/dist/src/mcp/tools/execute/evaluate.js +3 -3
  230. package/dist/src/mcp/tools/execute/evaluate.js.map +1 -1
  231. package/dist/src/mcp/tools/interview-passthrough.d.ts.map +1 -1
  232. package/dist/src/mcp/tools/interview-passthrough.js +40 -34
  233. package/dist/src/mcp/tools/interview-passthrough.js.map +1 -1
  234. package/dist/src/mcp/tools/spec-passthrough.d.ts.map +1 -1
  235. package/dist/src/mcp/tools/spec-passthrough.js +7 -0
  236. package/dist/src/mcp/tools/spec-passthrough.js.map +1 -1
  237. package/dist/src/mcp/tools/status.d.ts.map +1 -1
  238. package/dist/src/mcp/tools/status.js +6 -1
  239. package/dist/src/mcp/tools/status.js.map +1 -1
  240. package/dist/src/research/schema.d.ts +3 -3
  241. package/dist/src/research/source-create.d.ts +6 -1
  242. package/dist/src/research/source-create.d.ts.map +1 -1
  243. package/dist/src/research/source-create.js +41 -10
  244. package/dist/src/research/source-create.js.map +1 -1
  245. package/dist/src/spec/extractor.js +1 -1
  246. package/dist/src/spec/extractor.js.map +1 -1
  247. package/dist/src/spec/generator.d.ts +3 -1
  248. package/dist/src/spec/generator.d.ts.map +1 -1
  249. package/dist/src/spec/generator.js +6 -4
  250. package/dist/src/spec/generator.js.map +1 -1
  251. package/dist/src/spec/passthrough-generator.d.ts +3 -1
  252. package/dist/src/spec/passthrough-generator.d.ts.map +1 -1
  253. package/dist/src/spec/passthrough-generator.js +6 -4
  254. package/dist/src/spec/passthrough-generator.js.map +1 -1
  255. package/dist/src/spec/schema.d.ts +5 -5
  256. package/dist/src/spec/schema.js +1 -1
  257. package/dist/src/spec/schema.js.map +1 -1
  258. package/package.json +1 -1
  259. package/plugin/.codex-plugin/plugin.json +1 -1
  260. package/plugin/.mcp.json +1 -1
  261. package/plugin/commands/gestalt-interview.md +2 -1
  262. package/plugin/mcp.json +1 -1
  263. package/plugin/role-agents/lens-context/AGENT.md +94 -0
  264. package/plugin/role-agents/lens-link/AGENT.md +83 -0
  265. package/plugin/role-agents/lens-reader/AGENT.md +230 -0
  266. package/plugin/skills/_shared/proactive-routing.md +1 -0
  267. package/plugin/skills/interview/SKILL.md +47 -8
  268. package/plugin/skills/lens/SKILL.md +375 -0
  269. package/plugin/skills/solve/SKILL.md +3 -3
  270. package/plugin/skills/spec/SKILL.md +4 -4
  271. package/schemas/gestalt.schema.json +19 -0
@@ -2,10 +2,12 @@ import { extensionKey } from './blocks.js';
2
2
  import { CAPTION_LABEL, formatTime, stripNumbering, watchUrlAt } from './format.js';
3
3
  import { frameFileName, shotFileName } from './frames.js';
4
4
  import { extensionHtml, extensionPanelId, sectionDiagramHtml, } from './render-blocks.js';
5
+ import { coverageHtml, docPaneHtml, docUnitsData, doubtHtml, glanceHtml, LENS_CSS, limitsHtml, sectionContextHtml, sourceFigureHtml, sourceTableHtml, unitLabel, } from './render-lens.js';
5
6
  import { renderDigestMarkdown, renderExtensionMarkdown } from './render-md.js';
7
+ import { WIDGET_CSS, widgetHtml } from './render-widgets.js';
6
8
  import { initialReportIndex, isPreset, pairIndex, reportKey, reportLabel } from './reports.js';
7
9
  import { VIEWER_JS } from './viewer-js.js';
8
- import { boldPattern, keywordPattern, youtubeWatchUrl, } from './schema.js';
10
+ import { boldPattern, isLensKind, isTextKind, keywordPattern, youtubeWatchUrl, } from './schema.js';
9
11
  const MAX_IMAGE_BYTES = 5 * 1024 * 1024;
10
12
  const MAX_TOTAL_IMAGE_BYTES = 15 * 1024 * 1024;
11
13
  const e = (s) => s
@@ -58,6 +60,10 @@ export function renderDigestHtml(digest, transcript, opts = {}) {
58
60
  const { meta, segments } = transcript;
59
61
  const long = meta.durationSec >= 3600;
60
62
  const isYoutube = meta.source === 'youtube' && Boolean(meta.videoId);
63
+ const kind = meta.source;
64
+ // 시각이 없는 글 자료는 플레이어와 스크립트 대신 원문 창을 둔다
65
+ const textKind = isTextKind(kind);
66
+ const source = opts.source ?? null;
61
67
  const at = (i) => segments[i]?.startSec ?? 0;
62
68
  const loadFrame = opts.inlineFrames ? opts.loadFrame : undefined;
63
69
  const budget = loadFrame ? new FrameBudget(warnings) : null;
@@ -81,7 +87,16 @@ export function renderDigestHtml(digest, transcript, opts = {}) {
81
87
  };
82
88
  const cite = (c) => `<sup><button type="button" class="cite" data-key="${c.key}" data-from="${c.from}" data-to="${c.to}" aria-label="출처 ${c.key + 1}">[${c.key + 1}]</button></sup>`;
83
89
  const sec = (c) => segments[c.key]?.startSec ?? 0;
84
- const blockCtx = { escape: e, cite, time: (c) => timeLink(sec(c)), sec };
90
+ // 글 자료는 시각 대신 문단 칩을 단다. 누르면 원문 창이 그 쪽과 문단을 연다
91
+ const loc = (i) => textKind
92
+ ? `<button type="button" class="loc" data-unit="${i}">${e(unitLabel(transcript, i))}</button>`
93
+ : timeLink(at(i));
94
+ const blockCtx = {
95
+ escape: e,
96
+ cite,
97
+ time: (c) => (textKind ? loc(c.key) : timeLink(sec(c))),
98
+ sec,
99
+ };
85
100
  const missingFrame = (subId, file) => warnings.push(`프레임이 없어 자리를 비웠다: ${subId} (${file})`);
86
101
  // 확인 수단이 없는 렌더에서는 프레임이 없다고 경고하지 않는다. 예산 초과는 FrameBudget이 따로 경고한다
87
102
  // 리포트 여럿이 같은 프레임을 쓰면 파일은 한 번만 읽는다. 같은 data URI가 HTML에 한 번 더 실리므로 예산은 다시 센다
@@ -141,22 +156,47 @@ export function renderDigestHtml(digest, transcript, opts = {}) {
141
156
  const kwIds = new Set(keywords.map((k) => k.id));
142
157
  const pfx = ri === 0 ? '' : `r${ri}~`;
143
158
  const hidden = ri === initial ? '' : ' hidden';
159
+ const lens = {
160
+ escape: e,
161
+ inline: (s) => inline(s, kwIds),
162
+ cite,
163
+ loc,
164
+ source,
165
+ transcript,
166
+ pfx,
167
+ omitCrops: opts.omitCrops,
168
+ };
144
169
  const bullets = (list) => `<ul>${list
145
- .map((b) => `<li>${inline(b.text, kwIds)}${cite(b.cite)}${b.children?.length ? bullets(b.children) : ''}</li>`)
170
+ .map((b) => `<li${b.doubt ? ' class="has-doubt"' : ''}>${inline(b.text, kwIds)}${cite(b.cite)}${b.doubt ? doubtHtml(b.doubt, lens) : ''}${b.children?.length ? bullets(b.children) : ''}</li>`)
146
171
  .join('')}</ul>`;
172
+ // 원문 표와 그림은 source.json에서 옮긴다. lint가 id를 확인했지만 렌더도 없는 id는 건너뛴다
173
+ const sourceBlocks = (sub) => [
174
+ ...(sub.tables ?? []).map((t) => {
175
+ const table = source?.tables.find((x) => x.id === t.ref);
176
+ return table ? sourceTableHtml(table, t.note, lens) : '';
177
+ }),
178
+ ...(sub.figures ?? []).map((f) => {
179
+ const fig = source?.figures.find((x) => x.id === f.ref);
180
+ return fig ? sourceFigureHtml(fig, f.note, lens) : '';
181
+ }),
182
+ ...(sub.widgets ?? []).map((w) => widgetHtml(w, lens)),
183
+ ].join('');
147
184
  // 장면이 있으면 첫 문장 프레임 대신 장면을 본문 옆에 둔다. 장면이 같은 구간을 더 잘 보여 줘서 둘 다 싣지 않는다
148
185
  const subBody = (sub) => {
149
186
  const shots = sub.shots?.length ? shotsHtml(sub.shots, sub.id) : '';
150
- if (!shots)
151
- return `${frame(sub.frameSec, sub.id)}${bullets(sub.bullets)}`;
187
+ if (!shots) {
188
+ const still = sub.frameSec === undefined ? '' : frame(sub.frameSec, sub.id);
189
+ return `${still}${bullets(sub.bullets)}${sourceBlocks(sub)}`;
190
+ }
152
191
  return `<div class="sub-body has-shots"><div class="sub-text">${bullets(sub.bullets)}</div><div class="shots">${shots}</div></div>`;
153
192
  };
154
193
  const sectionsHtml = sections
155
194
  .map((s, si) => {
156
195
  const subs = s.subsections
157
- .map((sub, ui) => `<div class="sub" id="sub-${pfx}${e(sub.id)}" data-from="${sub.cite.from}" data-to="${sub.cite.to}"><h3><span class="num">${si + 1}.${ui + 1}.</span> ${e(stripNumbering(sub.title))} ${timeLink(at(sub.cite.key))}</h3>${subBody(sub)}</div>`)
196
+ .map((sub, ui) => `<div class="sub" id="sub-${pfx}${e(sub.id)}" data-from="${sub.cite.from}" data-to="${sub.cite.to}"><h3><span class="num">${si + 1}.${ui + 1}.</span> ${e(stripNumbering(sub.title))} ${loc(sub.cite.key)}</h3>${subBody(sub)}</div>`)
158
197
  .join('');
159
- return `<section class="sec" id="sec-${pfx}${e(s.id)}"><h2><span class="num">${si + 1}.</span> ${e(stripNumbering(s.title))} ${timeLink(at(s.cite.key))}</h2><p class="conclusion">${inline(s.conclusion, kwIds)}${cite(s.cite)}</p>${s.diagram ? sectionDiagramHtml(s.diagram, stripNumbering(s.title), blockCtx) : ''}${subs}</section>`;
198
+ const intro = s.intro ? `<p class="sec-intro">${inline(s.intro, kwIds)}</p>` : '';
199
+ return `<section class="sec" id="sec-${pfx}${e(s.id)}"><h2><span class="num">${si + 1}.</span> ${e(stripNumbering(s.title))} ${loc(s.cite.key)}</h2>${intro}<p class="conclusion">${inline(s.conclusion, kwIds)}${cite(s.cite)}</p>${s.diagram ? sectionDiagramHtml(s.diagram, stripNumbering(s.title), blockCtx) : ''}${subs}${sectionContextHtml(s.id, report.cards, report.links, lens)}</section>`;
160
200
  })
161
201
  .join('');
162
202
  const toc = `<nav class="toc" aria-label="목차"><h2>목차</h2><ol>${sections
@@ -169,23 +209,30 @@ export function renderDigestHtml(digest, transcript, opts = {}) {
169
209
  .join('')}</nav>`;
170
210
  const keywordsHtml = keywords.length
171
211
  ? `<section class="extra" id="${pfx}keywords"><h2>키워드</h2><dl>${keywords
172
- .map((k) => `<dt>${e(k.term)} ${timeLink(at(k.firstCite.key))}</dt><dd>${inline(k.explanation, kwIds)}</dd>`)
212
+ .map((k) => `<dt>${e(k.term)} ${loc(k.firstCite.key)}</dt><dd>${inline(k.explanation, kwIds)}</dd>`)
173
213
  .join('')}</dl></section>`
174
214
  : '';
215
+ const unitWord = textKind ? '문단' : '문장';
175
216
  const skippedHtml = skipped.length
176
217
  ? `<section class="extra" id="${pfx}skipped"><h2>요약에서 뺀 구간</h2><ul>${skipped
177
- .map((s) => `<li>${timeLink(at(s.from))} 문장 ${s.from + 1}-${s.to + 1}: ${inline(s.reason, kwIds)}</li>`)
218
+ .map((s) => `<li>${loc(s.from)} ${unitWord} ${s.from + 1}-${s.to + 1}: ${inline(s.reason, kwIds)}</li>`)
178
219
  .join('')}</ul></section>`
179
220
  : '';
221
+ const lensKind = isLensKind(kind) ? kind : null;
222
+ const glance = lensKind && lead.glance?.length ? glanceHtml(lead.glance, lensKind, lens) : '';
223
+ const coverage = lensKind ? coverageHtml(report, transcript, `${pfx}skipped`) : '';
224
+ const limits = report.limits?.length ? limitsHtml(report.limits, `${pfx}limits`, lens) : '';
180
225
  const scope = [
181
226
  report.options.range
182
227
  ? `<p class="report-scope">${formatTime(report.options.range[0], long)}~${formatTime(report.options.range[1], long)} 구간만 요약했어요.</p>`
183
228
  : '',
184
229
  report.options.prompt ? `<p class="report-scope">요청: ${e(report.options.prompt)}</p>` : '',
185
230
  ].join('');
186
- const body = `<div class="report" data-ri="${ri}" data-report="${e(key)}" lang="${e(report.options.lang)}"${hidden}>${scope}<section class="lead"><p class="q">${inline(lead.question, kwIds)}</p><p>${inline(lead.answer, kwIds)}</p><p class="takeaway">${inline(lead.takeaway, kwIds)}</p></section>
231
+ const body = `<div class="report" data-ri="${ri}" data-report="${e(key)}" lang="${e(report.options.lang)}"${hidden}>${scope}<section class="lead"><p class="q">${inline(lead.question, kwIds)}</p><p>${inline(lead.answer, kwIds)}</p><p class="takeaway">${inline(lead.takeaway, kwIds)}</p>${coverage}</section>
232
+ ${glance}
187
233
  ${toc}
188
234
  ${sectionsHtml}
235
+ ${limits}
189
236
  ${keywordsHtml}
190
237
  ${skippedHtml}</div>`;
191
238
  return { body, minimap };
@@ -200,9 +247,13 @@ ${skippedHtml}</div>`;
200
247
  .join('')}</select></label>`
201
248
  : ''}</div><p id="report-status" class="sr-only" role="status" aria-live="polite"></p><div id="report-missing" class="report-missing" hidden><p id="report-missing-msg"></p><span id="report-cmd-wrap"><code id="report-cmd"></code> <button type="button" id="copy-cmd">명령 복사</button></span></div>`;
202
249
  const watchBase = isYoutube ? youtubeWatchUrl(meta.videoId) : null;
203
- const player = isYoutube
204
- ? `<div id="player-slot" class="player-slot"><div id="player" class="player"><div id="player-frame"></div><a class="player-fallback" href="${e(watchBase)}" target="_blank" rel="noopener"><img src="https://i.ytimg.com/vi/${meta.videoId}/hqdefault.jpg" alt=""><span>유튜브에서 열기</span></a><button type="button" id="player-dock" class="player-dock" aria-label="미니 플레이어 닫기">×</button></div></div>`
205
- : `<div id="player-slot" class="player-slot"><div id="player" class="player player-local"><video id="player-video" controls playsinline preload="metadata" aria-label="영상 재생"></video><p class="player-note">로컬 영상은 <code>gestalt digest serve ${e(digest.slug)}</code>로 열어야 재생돼요. 원본 파일을 옮겼으면 ingest를 다시 돌려 주세요.</p><button type="button" id="player-dock" class="player-dock" aria-label="미니 플레이어 닫기">×</button></div></div>`;
250
+ // 팟캐스트는 로컬 영상과 같은 길로 serve가 내려받은 오디오를 내준다
251
+ const audio = `<div id="player-slot" class="player-slot player-audio"><div id="player" class="player player-local"><audio id="player-video" controls preload="metadata" aria-label="오디오 재생"></audio><p class="player-note">오디오는 <code>gestalt digest serve ${e(digest.slug)}</code>로 열어야 재생돼요.</p><button type="button" id="player-dock" class="player-dock" aria-label="미니 플레이어 닫기">×</button></div></div>`;
252
+ const player = kind === 'podcast'
253
+ ? audio
254
+ : isYoutube
255
+ ? `<div id="player-slot" class="player-slot"><div id="player" class="player"><div id="player-frame"></div><a class="player-fallback" href="${e(watchBase)}" target="_blank" rel="noopener"><img src="https://i.ytimg.com/vi/${meta.videoId}/hqdefault.jpg" alt=""><span>유튜브에서 열기</span></a><button type="button" id="player-dock" class="player-dock" aria-label="미니 플레이어 닫기">×</button></div></div>`
256
+ : `<div id="player-slot" class="player-slot"><div id="player" class="player player-local"><video id="player-video" controls playsinline preload="metadata" aria-label="영상 재생"></video><p class="player-note">로컬 영상은 <code>gestalt digest serve ${e(digest.slug)}</code>로 열어야 재생돼요. 원본 파일을 옮겼으면 ingest를 다시 돌려 주세요.</p><button type="button" id="player-dock" class="player-dock" aria-label="미니 플레이어 닫기">×</button></div></div>`;
206
257
  const trLang = meta.translationLang;
207
258
  const hasTr = trLang !== undefined && segments.some((s) => s.translation);
208
259
  const trToggle = hasTr
@@ -212,15 +263,36 @@ ${skippedHtml}</div>`;
212
263
  ? `<span class="tr" lang="${e(trLang ?? '')}">${e(s.translation)}</span>`
213
264
  : '';
214
265
  const script = `<div class="script"><h2>스크립트 <small>${e(CAPTION_LABEL[meta.captionSource])}</small>${trToggle}</h2><div id="script-body" class="script-body" tabindex="0" role="region" aria-label="영상 스크립트"><ol id="script-list">${segments
215
- .map((s) => `<li data-i="${s.i}">${timeLink(s.startSec, false)}<span class="txt"><span class="src">${e(s.text)}</span>${tr(s)}</span></li>`)
266
+ .map((s) => `<li data-i="${s.i}">${timeLink(s.startSec, false)}<span class="txt">${s.speaker ? `<span class="spk">${e(s.speaker)}</span>` : ''}<span class="src">${e(s.text)}</span>${tr(s)}</span></li>`)
216
267
  .join('')}</ol></div></div>`;
217
- const facts = [meta.channel, meta.publishedAt, formatTime(meta.durationSec, long)]
268
+ const side = textKind
269
+ ? docPaneHtml(transcript, {
270
+ escape: e,
271
+ inline: e,
272
+ cite,
273
+ loc,
274
+ source,
275
+ transcript,
276
+ omitCrops: opts.omitCrops,
277
+ })
278
+ : `${player}${script}`;
279
+ const facts = [
280
+ meta.channel,
281
+ meta.publishedAt,
282
+ textKind ? null : formatTime(meta.durationSec, long),
283
+ ]
218
284
  .filter(Boolean)
219
285
  .map((f) => `<span>${e(f)}</span>`)
220
286
  .join('');
221
287
  const data = {
222
288
  videoId: isYoutube ? meta.videoId : null,
223
- localVideo: meta.source === 'file',
289
+ localVideo: meta.source === 'file' || meta.source === 'podcast',
290
+ kind,
291
+ doc: textKind,
292
+ units: kind === 'pdf' && !opts.omitCrops ? docUnitsData(transcript) : null,
293
+ pages: kind === 'pdf' && !opts.omitCrops
294
+ ? (source?.pages ?? []).map((p) => ({ n: p.n, w: p.width, h: p.height }))
295
+ : null,
224
296
  watchBase,
225
297
  long,
226
298
  starts: segments.map((s) => s.startSec),
@@ -244,6 +316,8 @@ ${skippedHtml}</div>`;
244
316
  },
245
317
  ])),
246
318
  markdown: renderDigestMarkdown(digest, transcript, {
319
+ source,
320
+ omitCrops: opts.omitCrops,
247
321
  frameExists: opts.frameExists,
248
322
  report,
249
323
  }),
@@ -281,12 +355,12 @@ ${skippedHtml}</div>`;
281
355
  <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
282
356
  <meta name="referrer" content="strict-origin-when-cross-origin">
283
357
  <title>${e(meta.title)}</title>
284
- <style>${CSS}</style>
358
+ <style>${CSS}${LENS_CSS}${WIDGET_CSS}</style>
285
359
  ${hasTabs ? '<noscript><style>.ext{display:block!important}.tabs,.more-btn,.quiz-check,.zoom-btn{display:none}.quiz-exp{display:block!important}</style></noscript>' : ''}
286
360
  </head>
287
361
  <body>
288
362
  <div class="layout">
289
- <aside class="side">${player}${script}</aside>
363
+ <aside class="side">${side}</aside>
290
364
  <main class="main">
291
365
  <header class="head"><h1>${e(meta.title)}</h1><p class="facts">${facts}</p><div class="tools"><button type="button" id="copy-md">마크다운 복사</button><label>글자 크기 <input id="font-range" type="range" min="85" max="145" step="5" value="100"> <output id="font-value">100%</output></label><p id="copy-status" class="sr-only" role="status" aria-live="polite"></p></div>
292
366
  ${hasTabs ? '' : reportBar}
@@ -339,6 +413,7 @@ button{font:inherit;color:inherit}
339
413
  #script-list li{display:flex;gap:10px;padding:4px 12px;font-size:.9em;line-height:1.55}
340
414
  #script-list li.is-playing{background:var(--hl)}
341
415
  .tr{display:block;color:var(--muted);font-size:.95em}
416
+ .spk{display:inline-block;margin-right:6px;font-size:.78em;font-weight:600;color:var(--accent)}
342
417
  .script.hide-tr .tr{display:none}
343
418
  .tr-toggle{float:right;border:1px solid var(--line);background:var(--card);border-radius:6px;padding:0 8px;font-size:.85em;font-weight:400;cursor:pointer}
344
419
  .tr-toggle[aria-pressed="true"]{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
@@ -1 +1 @@
1
- {"version":3,"file":"render-html.js","sourceRoot":"","sources":["../../../src/digest/render-html.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render-html.js","sourceRoot":"","sources":["../../../src/digest/render-html.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ import { type ContextCard, type KnowledgeLink, type Doubt, type Evidence, type Glance, type Limit } from './lens-schema.js';
2
+ import type { LensSource, SourceFigure, SourceTable } from './lens-source.js';
3
+ import type { Cite, LensKind, Report, Transcript } from './schema.js';
4
+ /**
5
+ * 읽기 렌즈가 video-digest 뷰어에 더하는 조각. 뷰어를 두 벌 두지 않으려고 render-html이 이 조각을 끼워 넣는다.
6
+ * 모델이 쓴 HTML은 받지 않는다. 글자는 전부 escape하고 굵게와 키워드 마커만 inline이 태그로 바꾼다
7
+ */
8
+ export interface LensHtmlContext {
9
+ escape: (s: string) => string;
10
+ /** 본문 마커(굵게, 키워드)를 해석한 HTML */
11
+ inline: (s: string) => string;
12
+ cite: (c: Cite) => string;
13
+ /** 문단 번호 하나를 원문 창에서 여는 칩 */
14
+ loc: (i: number) => string;
15
+ source: LensSource | null;
16
+ transcript: Transcript;
17
+ /** 리포트가 여럿일 때 카드 id가 겹치지 않게 붙이는 접두 */
18
+ pfx?: string;
19
+ /** 공유용. 원문 쪽 그림과 표, 그림 크롭을 싣지 않는다. 노트 경로와 인용이 남에게 가지 않게 노트 연결 카드도 뺀다 */
20
+ omitCrops?: boolean;
21
+ }
22
+ /** 크롭을 뺐을 때 그 자리에 두는 한 줄 */
23
+ export declare const CROP_OMITTED = "\uACF5\uC720\uC6A9\uC73C\uB85C \uC6D0\uBB38\uC5D0\uC11C \uC798\uB77C\uB0B8 \uADF8\uB9BC\uC744 \uBE90\uC5B4\uC694. \uCABD \uBC88\uD638\uB97C \uB204\uB974\uAC70\uB098 \uC6D0\uBB38\uC5D0\uC11C \uBCF4\uC138\uC694.";
24
+ export declare const GLANCE_LABEL: Record<Glance['kind'], string>;
25
+ /** 문단 칩 글자. PDF는 쪽, 웹 글은 문단 번호, 팟캐스트는 render-html이 시각 링크를 쓴다 */
26
+ export declare function unitLabel(transcript: Transcript, i: number): string;
27
+ export declare function glanceHtml(glance: Glance[], kind: LensKind, ctx: LensHtmlContext): string;
28
+ /**
29
+ * 원문 커버 배지. 대섹션이 덮은 문단 수와 출처 칩 수를 lint가 확인한 구조에서 센다.
30
+ * 뺀 구간이 있으면 그 목록으로 가는 링크를 단다
31
+ */
32
+ export declare function coverageHtml(report: Report, transcript: Transcript, skippedId: string): string;
33
+ /** 근거 칩. 표 칸이면 그 칸 글자를 함께 보여 주고 누르면 원문 창이 표가 있는 쪽을 연다 */
34
+ export declare function evidenceHtml(ev: Evidence, ctx: LensHtmlContext): string;
35
+ /** 의심 표시는 접지 않고 그 불릿 바로 아래에 둔다. 카드에 넣으면 본문만 읽는 사람이 못 본다 */
36
+ export declare function doubtHtml(doubt: Doubt, ctx: LensHtmlContext): string;
37
+ export declare function limitsHtml(limits: Limit[], id: string, ctx: LensHtmlContext): string;
38
+ /**
39
+ * 원문 표 블록. 칸 글자는 source.json에서 그대로 옮긴다. 모델은 표 id만 고른다.
40
+ * 칸 경계를 잘못 읽었을 수 있는 표(loose)는 원문 크롭을 먼저 보이고 옮긴 칸은 접어 둔다
41
+ */
42
+ export declare function sourceTableHtml(table: SourceTable, note: string | undefined, ctx: LensHtmlContext): string;
43
+ /**
44
+ * 원문 그림 크롭과 원래 쪽 썸네일을 나란히 둔다. 썸네일에 그림 자리를 칠해 캡션이 맞는 그림인지 바로 견주게 한다
45
+ */
46
+ export declare function sourceFigureHtml(fig: SourceFigure, note: string | undefined, ctx: LensHtmlContext): string;
47
+ /** 원문 창. PDF는 쪽 그림과 추출 텍스트를 오가고 웹 글은 추출한 문단 목록 하나다 */
48
+ export declare function docPaneHtml(transcript: Transcript, ctx: LensHtmlContext): string;
49
+ /** 원문 창이 칠할 자리. PDF 문단의 사각형을 [쪽, x0, top, x1, bottom]으로 줄여 싣는다 */
50
+ export declare function docUnitsData(transcript: Transcript): Array<Array<[number, number, number, number, number]>>;
51
+ export declare const CARD_KIND_LABEL: Record<ContextCard['kind'], string>;
52
+ /**
53
+ * 바깥 맥락 카드. 대섹션 끝에 접어 둔다. 줄마다 바깥 출처 번호를 달고 출처는 새 탭 링크다.
54
+ * 원문 안의 어긋남은 의심 표시가 본문에 펼쳐 보이니 카드는 바깥 자료만 담는다
55
+ */
56
+ export declare function contextCardHtml(card: ContextCard, ctx: LensHtmlContext): string;
57
+ export declare function knowledgeLinkHtml(link: KnowledgeLink, ctx: LensHtmlContext): string;
58
+ /** 대섹션 끝에 붙는 카드 묶음. 카드가 없으면 빈 문자열이다. 공유용(omitCrops)이면 노트 연결 카드는 싣지 않는다 */
59
+ export declare function sectionContextHtml(sectionId: string, cards: ContextCard[] | undefined, links: KnowledgeLink[] | undefined, ctx: LensHtmlContext): string;
60
+ export declare const LENS_CSS = "\n.doc-pane{display:flex;flex-direction:column;min-height:0;flex:1;border:1px solid var(--line);border-radius:8px;background:var(--card)}\n.doc-bar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:6px 10px;border-bottom:1px solid var(--line);font-size:.85em;color:var(--muted)}\n.doc-bar button{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:2px 10px;cursor:pointer}\n.doc-bar button[aria-pressed=\"true\"]{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}\n.doc-link{margin-left:auto}\n.doc-pages{position:relative;overflow:auto;flex:1;padding:8px;display:flex;flex-direction:column;gap:10px;background:var(--chip)}\n.doc-page{position:relative;width:100%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.2)}\n.doc-page img{display:block;width:100%;height:100%}\n.page-no{position:absolute;right:6px;bottom:4px;font-size:11px;color:#57534e;background:rgba(255,255,255,.8);padding:0 4px;border-radius:3px}\n.doc-hl{position:absolute;background:rgba(250,204,21,.28);outline:2px solid rgba(217,119,6,.85);border-radius:2px;pointer-events:none}\n.doc-hl.is-key{background:rgba(250,204,21,.45)}\n#script-list li.is-cited{background:var(--hl)}\n#script-list li.u-heading .src{font-weight:700}\n#script-list li.u-caption .src{font-style:italic;color:var(--muted)}\n.loc{border:0;background:var(--chip);color:var(--accent);border-radius:4px;padding:0 5px;font-size:.78em;cursor:pointer;white-space:nowrap;font-variant-numeric:tabular-nums}\n.loc:hover{text-decoration:underline}\n.glance{border:1px solid var(--line);border-radius:10px;background:var(--card);padding:6px 16px;margin:16px 0}\n.glance h2{font-size:1em;margin:8px 0}\n.glance dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin:0 0 8px}\n.glance dl>div{border-top:2px solid var(--accent);padding-top:4px}\n.glance .glance-limit{border-top-color:var(--warn)}\n.glance dt{font-weight:700;font-size:.9em;color:var(--muted)}\n.glance dd{margin:2px 0 0}\n.coverage{display:inline-block;margin:8px 0 0;padding:3px 12px;border-radius:999px;background:var(--chip);font-size:.85em;color:var(--muted)}\n.sec-intro{color:var(--muted);margin:4px 0 8px;font-size:.95em}\n.doubt{margin:6px 0 8px;padding:6px 10px;border-left:3px solid var(--warn);background:var(--hl);border-radius:0 6px 6px 0;font-size:.93em}\n.doubt-badge{display:inline-block;font-size:.78em;font-weight:700;color:var(--warn);border:1px solid var(--warn);border-radius:999px;padding:0 8px;margin-right:4px}\n.ev-list{display:inline-flex;flex-wrap:wrap;gap:4px;margin-left:6px;vertical-align:baseline}\n.ev{font-size:.85em}\n.cell-ref b{color:var(--fg)}\n.limits{border:1px solid var(--warn);border-radius:10px;padding:4px 16px 8px;margin:24px 0;background:var(--card)}\n.limits h2{font-size:1.1em;color:var(--warn)}\n.limits li{margin:4px 0}\n.src-table,.src-figure{margin:12px 0;border:1px solid var(--line);border-radius:10px;background:var(--card);padding:10px 12px}\n.src-table figcaption,.src-figure figcaption{font-size:.9em;margin-bottom:6px}\n.src-grid{overflow-x:auto}\n.src-grid table{border-collapse:collapse;font-size:.86em;font-variant-numeric:tabular-nums}\n.src-grid th,.src-grid td{border-bottom:1px solid var(--line);padding:3px 10px;text-align:left;white-space:nowrap}\n.src-grid td.is-ref{background:var(--hl);outline:2px solid var(--warn)}\n.src-crop{display:block;max-width:100%;height:auto;border:1px solid var(--line);border-radius:6px;background:#fff}\n.src-original summary,.src-table details summary{cursor:pointer;color:var(--muted);font-size:.88em;margin-top:6px}\n.src-note{color:var(--muted);font-size:.9em;margin:6px 0 0}\n.fig-pair{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,1fr);gap:10px;align-items:start}\n.page-thumb{position:relative;padding:0;border:1px solid var(--line);border-radius:4px;background:#fff;cursor:pointer;display:block}\n.page-thumb img{display:block;width:100%;height:auto}\n.thumb-hl{position:absolute;outline:2px solid var(--warn);background:rgba(250,204,21,.25)}\n.player-audio .player{background:var(--card)}\n.ctx{display:flex;flex-direction:column;gap:8px;margin:16px 0}\n.ctx-card{border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:8px;background:var(--card);padding:6px 12px}\n.ctx-card summary{cursor:pointer;font-weight:600}\n.ctx-kind{display:inline-block;font-size:.75em;font-weight:700;border-radius:999px;padding:0 8px;background:var(--chip);color:var(--muted);margin-right:4px}\n.ctx-counter{border-left-color:var(--warn)}\n.ctx-anchor{font-size:.88em;color:var(--muted)}\n.ctx-lineage{border-collapse:collapse;font-size:.86em;margin:6px 0;width:100%}\n.ctx-lineage th,.ctx-lineage td{border-bottom:1px solid var(--line);padding:3px 6px;text-align:left;vertical-align:top}\n.ctx-ref{color:var(--muted);font-size:.75em}\n.ctx-sources{font-size:.85em;color:var(--muted)}\n.kn-card{border:1px dashed var(--accent);border-radius:8px;background:var(--card);padding:6px 12px}\n.kn-card blockquote{margin:6px 0;padding-left:10px;border-left:3px solid var(--line);color:var(--muted)}\n.kn-path{font-size:.8em;margin:0}\n.player-audio .player-local video,.player-audio audio{display:none;width:100%}\n.player-audio .player-local.is-live audio{display:block}\n.player-audio .player.is-floating{width:min(360px,80vw)}\n";
61
+ //# sourceMappingURL=render-lens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render-lens.d.ts","sourceRoot":"","sources":["../../../src/digest/render-lens.ts"],"names":[],"mappings":"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"}