MCPcopy Index your code
hub / github.com/deepnote/deepnote / summarizeBlockOutputs

Function summarizeBlockOutputs

packages/mcp/src/tools/execution.ts:24–46  ·  view source on GitHub ↗

* Extract a text summary from block outputs for inline display.

(
  blockOutputs: Array<{ id: string; outputs: unknown[] }>,
  maxBlocks = MAX_BLOCKS_IN_SUMMARY,
  maxChars = MAX_OUTPUT_CHARS_PER_BLOCK
)

Source from the content-addressed store, hash-verified

22 * Extract a text summary from block outputs for inline display.
23 */
24function summarizeBlockOutputs(
25 blockOutputs: Array<{ id: string; outputs: unknown[] }>,
26 maxBlocks = MAX_BLOCKS_IN_SUMMARY,
27 maxChars = MAX_OUTPUT_CHARS_PER_BLOCK
28): Array<{ blockId: string; outputSummary: string; truncated: boolean }> {
29 const summaries: Array<{ blockId: string; outputSummary: string; truncated: boolean }> = []
30
31 for (const block of blockOutputs.slice(0, maxBlocks)) {
32 if (!block.outputs || block.outputs.length === 0) continue
33
34 const outputText = extractOutputsText(block.outputs)
35 if (!outputText) continue
36
37 const truncated = outputText.length > maxChars
38 summaries.push({
39 blockId: block.id.slice(0, 8),
40 outputSummary: truncated ? `${outputText.slice(0, maxChars)}...` : outputText,
41 truncated,
42 })
43 }
44
45 return summaries
46}
47
48const nonEmptyStringSchema = z.string().refine(value => value.trim().length > 0, {
49 message: 'expected a non-empty string',

Callers 1

handleRunFunction · 0.85

Calls 1

extractOutputsTextFunction · 0.90

Tested by

no test coverage detected