d0f31023bd16aa680fbb90e332225f9719fb46b5
OpenCode's tool content schema (Tool.Content = TextContent | FileContent) gives a server plugin no metadata channel — the TUI's only view of tool output is the content string. So: format the result as a Markdown table, which the TUI's built-in markdown renderer already displays as a real table. - sqlite_query gains format = 'table' (default) | 'json' | 'both'. 'table' is the new default and renders a header line, a separator row, and one row per record with pipes/newlines/backslashes escaped. 'json' keeps the old behaviour for callers that need raw rows. - Every tool that runs SQL echoes 'SQL: <stmt> params: [...]' as the first line of its output, so the user sees what was executed including the bound values. - Every tool that runs a statement pushes context.progress() at start and end, which surfaces in the TUI status bar. - cellToMarkdown caps each cell at 80 chars to keep wide BLOBs from blowing up the TUI column width. End-to-end verified via Code Mode (no model in the loop): - format=table renders correctly with edge cases (| in text, \n in text, \ in text) - format=both appends the JSON view below the table - exec echoes the bound params as a JSON array - write+read round-trip persists (UPDATE → SELECT sees the new value)
Description
No description provided
Languages
TypeScript
100%