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 +10 -0
- package/dist/copilot-instructions.md +5 -0
- package/dist/extension.mjs +1179 -21
- package/dist/version.json +1 -1
- package/package.json +2 -2
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
|
|