Support progressive inline completions in the shared CM6 extension
Allow a provider to update one request-scoped ghost-text suggestion as text chunks arrive.
Start here: packages/grafana-ui/src/components/CodeMirror/inlineCompletion.ts, inlineCompletion.test.ts, types.ts, and packages/grafana-ui/src/unstable.ts.
Constraints: Keep @grafana/ui AI- and SQL-agnostic; expose a request-scoped update/stream contract; reject every stale update by request, document, cursor, selection, and focus; preserve one-shot providers if practical; obtain Frontend Platform review before changing the unstable public API.
Done when: A provider can render progressive accumulated ghost text, finalize it, and cancel it without reconfiguring the editor or accepting stale chunks. Tab, Escape, document edits, cursor movement, selection, blur, read-only mode, and destroy preserve their existing behavior.
Verify: yarn jest packages/grafana-ui/src/components/CodeMirror/inlineCompletion.test.ts --no-watch; focused CodeEditor tests; manual Storybook check in light/dark themes with a delayed multi-chunk provider.
Implementing team: DataPro.
Consulted team: Frontend Platform.
Dependencies: None; can proceed in parallel with the endpoint.
Roadmap: Monaco to CodeMirror 6 migration roadmap and grafana/grafana#129192.
Source: grafana/grafana