copilot-tap-extension 2.0.5 → 2.0.6

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.
package/README.md CHANGED
@@ -30,6 +30,7 @@ Background commands and agent prompts produce output line by line. An EventFilte
30
30
  - You poll an API or dashboard and want the agent to react when something changes.
31
31
  - You re-ask the same prompt periodically and want it on a timer or running whenever idle.
32
32
  - You build external tools in any language and want them available inside Copilot without touching the SDK.
33
+ - You want a live visual flight recorder for tap streams, emitters, provider state, logs, and session events.
33
34
 
34
35
  ## Get started
35
36
 
@@ -115,6 +116,8 @@ Once inside the session, describe what you want in natural language. You can als
115
116
 
116
117
  > _"Tail the API logs, inject errors, drop health checks"_
117
118
 
119
+ > _"Open the tap diagnostics canvas"_
120
+
118
121
  The agent translates these into emitter and filter configurations behind the scenes.
119
122
 
120
123
  ## How it works
@@ -239,6 +242,12 @@ The recommended approach is a **keep-all bootstrap**: start with no EventFilter
239
242
 
240
243
  Rules can be added or changed while the emitter is running. You never need to restart it to adjust filtering.
241
244
 
245
+ **Inspect tap with a live diagnostics canvas**
246
+
247
+ Use the `tap_open_diagnostics_canvas` tool to open a local canvas that shows tap's retained EventStreams, emitter state, provider gateway state, injection queue, runtime logs, and recent session events in one place.
248
+
249
+ The canvas is bounded and redacted: it keeps recent diagnostic evidence without exposing provider auth tokens or unbounded transcript payloads.
250
+
242
251
  ## Repo layout
243
252
 
244
253
  ```text
@@ -276,6 +285,7 @@ PLAN.md # ubiquitous language and design decisions
276
285
  | [Reference](./docs/reference.md) | Look up tool parameters, config fields, or the event pipeline |
277
286
  | [Provider guide](./docs/providers.md) | Add external tools to Copilot via the WebSocket provider interface |
278
287
  | [Use cases and patterns](./docs/use-cases.md) | Recipes for deploy watchers, PR monitors, log tailers, and more |
288
+ | [Copilot SDK canvas surfaces](./docs/recipes/copilot-sdk-canvas.md) | Local SDK findings for extension-owned canvas UI surfaces |
279
289
  | [Evals](./docs/evals.md) | Run or extend the automated test suite |
280
290
  | [Copilot instructions](./src/copilot-instructions.md) | Understand or customize how the agent uses this extension |
281
291
  | [Implementation plan](./PLAN.md) | Ubiquitous language and naming conventions for contributors |
@@ -170,6 +170,10 @@ When working on the extension itself, not just using its emitter tools, prefer t
170
170
  - use `session.send()` for asynchronous follow-up prompts and `session.sendAndWait()` only when the extension must wait for an answer
171
171
  - use `onPermissionRequest` and `onUserInputRequest` for guarded flows instead of custom ad hoc prompting
172
172
  - use `fs.watch` or `watchFile` when the extension should react to manual file edits or workspace artifacts such as `plan.md`
173
+ - use `createCanvas` with `joinSession({ canvases: [...] })` for extension-owned UI panels when text-only EventStreams are not enough; `open()` returns `title`, `status`, and a renderer `url`, actions power `invoke_canvas_action`, and per-instance state should be keyed by `instanceId`
174
+ - treat canvas support as experimental: action names must not start with `canvas.`, guard optional host canvas capabilities, prefer loopback HTTP renderers on ephemeral ports, and clean them up in `onClose`
175
+ - remember that external tap providers cannot declare Copilot SDK canvases over the current WebSocket protocol; implement canvases in the extension layer or explicitly extend the gateway protocol first
176
+ - open the built-in `tap-diagnostics` canvas with `tap_open_diagnostics_canvas` when users ask to inspect tap internals, diagnostics, logs, stream history, provider state, or "everything tap is doing"
173
177
 
174
178
  Good non-emitter examples to adapt into this repo:
175
179
 
@@ -177,6 +181,7 @@ Good non-emitter examples to adapt into this repo:
177
181
  - watch a config file and refresh the corresponding emitter when the user edits it
178
182
  - add a helper tool that fetches one-shot data from an API while emitters continue to watch background streams
179
183
  - log EventFilter updates and emitter lifecycle events to the timeline for observability
184
+ - add a canvas dashboard for stream/emitter inspection when a workflow benefits from a persistent visual surface
180
185
 
181
186
  ## What not to do
182
187