@ai-setting/roy-plugin-task-show 0.1.0 → 0.2.0
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 +35 -13
- package/dist/plugin.d.ts +26 -0
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +82 -18
- package/dist/plugin.js.map +1 -1
- package/package.json +5 -3
- package/plugin.json +8 -4
package/README.md
CHANGED
|
@@ -8,12 +8,10 @@
|
|
|
8
8
|
|
|
9
9
|
When loaded into a `roy-agent` host, this plugin:
|
|
10
10
|
|
|
11
|
-
1. Listens to the `tool:after.execute` and `task:after.update` hook points.
|
|
11
|
+
1. Listens to the `tool:after.execute`, `task:after.complete` (preferred) and `task:after.update` (legacy fallback) hook points.
|
|
12
12
|
2. Records every tool invocation (tool name, args, result preview, duration,
|
|
13
13
|
success flag, timestamp) into an in-memory collector keyed by task id.
|
|
14
|
-
3. When a task transitions to a terminal status (`completed` / `failed` /
|
|
15
|
-
`cancelled`), mutates the **last** tool result to append a markdown link to
|
|
16
|
-
the visualization page.
|
|
14
|
+
3. When a task transitions to a terminal status (`completed` / `failed` / `timeout` / `cancelled` / `timeout`), mutates the **last** tool result to append a markdown link to the visualization page. (Status filtering is done internally — no plugin-author filtering required.)
|
|
17
15
|
4. Serves the visualization on a local HTTP server (default
|
|
18
16
|
`http://127.0.0.1:7788/`).
|
|
19
17
|
|
|
@@ -122,9 +120,14 @@ await taskShow.dispose();
|
|
|
122
120
|
|
|
123
121
|
The plugin registers hooks for:
|
|
124
122
|
|
|
125
|
-
- `tool:after.execute`
|
|
126
|
-
- `task:after.
|
|
127
|
-
visualization URL
|
|
123
|
+
- `tool:after.execute` — collects every tool call (priority 50).
|
|
124
|
+
- `task:after.complete` — PREFERRED — freezes the session and injects
|
|
125
|
+
the visualization URL on terminal status transition. Available on
|
|
126
|
+
`roy-agent` versions >= 2026-07-10 (priority 60).
|
|
127
|
+
- `task:after.update` — LEGACY fallback for hosts predating the new
|
|
128
|
+
hook point. The handler also dedupes against any `task:after.complete`
|
|
129
|
+
that fires simultaneously, so on a modern host the URL is injected
|
|
130
|
+
exactly once (priority 60).
|
|
128
131
|
|
|
129
132
|
## Configuration
|
|
130
133
|
|
|
@@ -229,17 +232,36 @@ It also recognizes (in priority order):
|
|
|
229
232
|
If no task id can be recovered, the call lands in a synthetic session so
|
|
230
233
|
the visualization still works.
|
|
231
234
|
|
|
232
|
-
### `task:after.
|
|
235
|
+
### `task:after.complete` (preferred, consumed)
|
|
233
236
|
|
|
234
|
-
The plugin accepts the standard `
|
|
237
|
+
The plugin accepts the standard `TaskCompleteResultContext`:
|
|
235
238
|
|
|
236
239
|
```ts
|
|
237
|
-
{
|
|
240
|
+
{
|
|
241
|
+
task: { id: number, status: 'completed' | 'failed' | 'cancelled' | 'timeout', title?: string },
|
|
242
|
+
terminalStatus: 'completed' | 'failed' | 'cancelled' | 'timeout',
|
|
243
|
+
changes: Partial<UpdateTaskOptions>,
|
|
244
|
+
sessionId: string,
|
|
245
|
+
tagService: TagService,
|
|
246
|
+
}
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
Because the host pre-filters to terminal transitions, no plugin-side status
|
|
250
|
+
filtering is needed. The plugin dedupes by `taskId` against the legacy hook
|
|
251
|
+
below.
|
|
252
|
+
|
|
253
|
+
### `task:after.update` (legacy fallback, consumed)
|
|
254
|
+
|
|
255
|
+
On hosts predating the `AFTER_COMPLETE` hook point, the plugin also subscribes
|
|
256
|
+
to `TaskUpdateResultContext`:
|
|
257
|
+
|
|
258
|
+
```ts
|
|
259
|
+
{ data: { task: { id: number, status: string, title?: string }, changes, tagService } }
|
|
238
260
|
```
|
|
239
261
|
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
262
|
+
The handler filters for terminal status (`completed` / `failed` / `cancelled` /
|
|
263
|
+
`timeout`) and dedupes — if `AFTER_COMPLETE` also fires (it can, on a host
|
|
264
|
+
that supports both hooks), the URL is injected exactly once.
|
|
243
265
|
|
|
244
266
|
## Limitations & follow-ups
|
|
245
267
|
|
package/dist/plugin.d.ts
CHANGED
|
@@ -49,6 +49,13 @@ export declare class TaskShowPlugin implements TaskShowPluginInterface {
|
|
|
49
49
|
private disposed;
|
|
50
50
|
/** Last successful `tool:after.execute` result, used to inject the URL on task completion. */
|
|
51
51
|
private lastResultByTask;
|
|
52
|
+
/**
|
|
53
|
+
* Per-instance dedup set — guards against the same task reaching this
|
|
54
|
+
* handler from both `task:after.complete` AND `task:after.update`
|
|
55
|
+
* (which can happen on newer hosts where both hook points fire on
|
|
56
|
+
* completion). Cleared on dispose().
|
|
57
|
+
*/
|
|
58
|
+
private injectedTaskIds;
|
|
52
59
|
/** cached list of hook points we registered, so dispose() can be defensive even if the env lacks unregister. */
|
|
53
60
|
private registered;
|
|
54
61
|
constructor(config?: Partial<TaskShowConfig>);
|
|
@@ -75,6 +82,25 @@ export declare class TaskShowPlugin implements TaskShowPluginInterface {
|
|
|
75
82
|
* Public function exposed for tests; mirrors the `task:after.update`
|
|
76
83
|
* payload.
|
|
77
84
|
*/
|
|
85
|
+
/**
|
|
86
|
+
* Public function exposed for tests; mirrors BOTH the preferred
|
|
87
|
+
* `task:after.complete` payload (added in roy-agent 2026-07-10) AND
|
|
88
|
+
* the legacy `task:after.update` payload. Both hook points reach this
|
|
89
|
+
* handler; an internal dedup set guarantees at most one URL injection
|
|
90
|
+
* per task.
|
|
91
|
+
*
|
|
92
|
+
* - Preferred (roy-agent 2026-07-10+): `task:after.complete`
|
|
93
|
+
* - `data.terminalStatus` is explicit; no status filtering needed.
|
|
94
|
+
* - Legacy fallback (pre-2026-07-10 roy-agent): `task:after.update`
|
|
95
|
+
* - only `data.task` is provided; we filter for terminal statuses
|
|
96
|
+
* the same way the previous implementation did.
|
|
97
|
+
*/
|
|
98
|
+
onTaskAfterComplete(ctx: any): Promise<void>;
|
|
99
|
+
/**
|
|
100
|
+
* @deprecated Use {@link onTaskAfterComplete}. Kept as a thin alias for
|
|
101
|
+
* backward compatibility with the previous `task:after.update` API
|
|
102
|
+
* contract used in v0.1.0 unit tests. Will be removed in v2.0.
|
|
103
|
+
*/
|
|
78
104
|
onTaskAfterUpdate(ctx: any): Promise<void>;
|
|
79
105
|
/**
|
|
80
106
|
* Manual injection hook — useful when a custom caller has a known task
|
package/dist/plugin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EAEf,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAgCnD;;;;;;GAMG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,IAAI,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,OAAO,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,yCAAyC;IACzC,aAAa,IAAI,MAAM,GAAG,IAAI,CAAC;IAC/B,yCAAyC;IACzC,YAAY,IAAI,iBAAiB,CAAC;IAClC,uEAAuE;IACvE,SAAS,IAAI,cAAc,CAAC;CAC7B;AAED;;;GAGG;AACH,qBAAa,cAAe,YAAW,uBAAuB;IAC5D,QAAQ,CAAC,IAAI,0BAA0B;IACvC,QAAQ,CAAC,OAAO,WAAW;IAC3B,QAAQ,CAAC,WAAW,mHAC8F;IAElH,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAiB;IACrC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoB;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,GAAG,CAA8B;IACzC,OAAO,CAAC,QAAQ,CAAS;IACzB,8FAA8F;IAC9F,OAAO,CAAC,gBAAgB,CAA0B;
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EAEf,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAgCnD;;;;;;GAMG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,IAAI,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,OAAO,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,yCAAyC;IACzC,aAAa,IAAI,MAAM,GAAG,IAAI,CAAC;IAC/B,yCAAyC;IACzC,YAAY,IAAI,iBAAiB,CAAC;IAClC,uEAAuE;IACvE,SAAS,IAAI,cAAc,CAAC;CAC7B;AAED;;;GAGG;AACH,qBAAa,cAAe,YAAW,uBAAuB;IAC5D,QAAQ,CAAC,IAAI,0BAA0B;IACvC,QAAQ,CAAC,OAAO,WAAW;IAC3B,QAAQ,CAAC,WAAW,mHAC8F;IAElH,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAiB;IACrC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoB;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,GAAG,CAA8B;IACzC,OAAO,CAAC,QAAQ,CAAS;IACzB,8FAA8F;IAC9F,OAAO,CAAC,gBAAgB,CAA0B;IAElD;;;;;OAKG;IACH,OAAO,CAAC,eAAe,CAA0B;IACjD,gHAAgH;IAChH,OAAO,CAAC,UAAU,CAAyC;gBAE/C,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC;IAgB5C;;;;OAIG;IACG,IAAI,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB7C;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB9B,aAAa,IAAI,MAAM,GAAG,IAAI;IAK9B,YAAY,IAAI,iBAAiB;IAIjC,SAAS,IAAI,cAAc;IAQ3B;;;;OAIG;IACG,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAoCrF;;;OAGG;IACH;;;;;;;;;;;;OAYG;IACG,mBAAmB,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IA8DlD;;;;OAIG;IACG,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAGhD;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO;IAU/C;;;OAGG;IACH,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAQ3C;;;;OAIG;IACH,OAAO,CAAC,aAAa;YA0CP,wBAAwB;CAsCvC;AA+BD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc,CAErF;AAED;;;GAGG;AACH,eAAe,cAAc,CAAC"}
|
package/dist/plugin.js
CHANGED
|
@@ -49,6 +49,13 @@ export class TaskShowPlugin {
|
|
|
49
49
|
disposed = false;
|
|
50
50
|
/** Last successful `tool:after.execute` result, used to inject the URL on task completion. */
|
|
51
51
|
lastResultByTask = new Map();
|
|
52
|
+
/**
|
|
53
|
+
* Per-instance dedup set — guards against the same task reaching this
|
|
54
|
+
* handler from both `task:after.complete` AND `task:after.update`
|
|
55
|
+
* (which can happen on newer hosts where both hook points fire on
|
|
56
|
+
* completion). Cleared on dispose().
|
|
57
|
+
*/
|
|
58
|
+
injectedTaskIds = new Set();
|
|
52
59
|
/** cached list of hook points we registered, so dispose() can be defensive even if the env lacks unregister. */
|
|
53
60
|
registered = [];
|
|
54
61
|
constructor(config) {
|
|
@@ -107,6 +114,7 @@ export class TaskShowPlugin {
|
|
|
107
114
|
}
|
|
108
115
|
this.collector.clear();
|
|
109
116
|
this.lastResultByTask.clear();
|
|
117
|
+
this.injectedTaskIds.clear();
|
|
110
118
|
this.env = null;
|
|
111
119
|
this.registered = [];
|
|
112
120
|
}
|
|
@@ -165,33 +173,61 @@ export class TaskShowPlugin {
|
|
|
165
173
|
* Public function exposed for tests; mirrors the `task:after.update`
|
|
166
174
|
* payload.
|
|
167
175
|
*/
|
|
168
|
-
|
|
176
|
+
/**
|
|
177
|
+
* Public function exposed for tests; mirrors BOTH the preferred
|
|
178
|
+
* `task:after.complete` payload (added in roy-agent 2026-07-10) AND
|
|
179
|
+
* the legacy `task:after.update` payload. Both hook points reach this
|
|
180
|
+
* handler; an internal dedup set guarantees at most one URL injection
|
|
181
|
+
* per task.
|
|
182
|
+
*
|
|
183
|
+
* - Preferred (roy-agent 2026-07-10+): `task:after.complete`
|
|
184
|
+
* - `data.terminalStatus` is explicit; no status filtering needed.
|
|
185
|
+
* - Legacy fallback (pre-2026-07-10 roy-agent): `task:after.update`
|
|
186
|
+
* - only `data.task` is provided; we filter for terminal statuses
|
|
187
|
+
* the same way the previous implementation did.
|
|
188
|
+
*/
|
|
189
|
+
async onTaskAfterComplete(ctx) {
|
|
169
190
|
if (this.disposed)
|
|
170
191
|
return;
|
|
171
192
|
if (!ctx)
|
|
172
193
|
return;
|
|
173
|
-
// The hook payload may be either the host's
|
|
174
|
-
// duck-typed object. We try several shapes.
|
|
194
|
+
// The hook payload may be either the host's TaskCompleteResultContext /
|
|
195
|
+
// TaskUpdateResultContext OR a duck-typed object. We try several shapes.
|
|
175
196
|
const data = (ctx.data ?? ctx);
|
|
197
|
+
// taskId — same for either shape.
|
|
176
198
|
const taskId = data?.task?.id ?? data?.taskId ?? data?.id;
|
|
177
|
-
const status = data?.task?.status ??
|
|
178
|
-
data?.status ??
|
|
179
|
-
"completed";
|
|
180
|
-
const title = data?.task?.title ?? data?.title;
|
|
181
199
|
if (typeof taskId !== "number")
|
|
182
200
|
return;
|
|
183
|
-
//
|
|
184
|
-
|
|
201
|
+
// Resolve the terminal status:
|
|
202
|
+
// - AFTER_COMPLETE → context.data.terminalStatus (preferred)
|
|
203
|
+
// - AFTER_UPDATE → context.data.task.status (legacy fallback)
|
|
204
|
+
const terminalStatus = data?.terminalStatus ?? data?.task?.status ?? data?.status;
|
|
205
|
+
if (!terminalStatus)
|
|
206
|
+
return;
|
|
207
|
+
// Non-terminal update (e.g. status="active", progress=50): finalize the
|
|
208
|
+
// session under the new status, but skip URL injection.
|
|
209
|
+
if (!isTerminalStatus(terminalStatus)) {
|
|
210
|
+
this.collector.finalizeOnTaskUpdate({
|
|
211
|
+
taskId,
|
|
212
|
+
newStatus: terminalStatus,
|
|
213
|
+
title: data?.task?.title ?? data?.title,
|
|
214
|
+
timestamp: Date.now(),
|
|
215
|
+
});
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
218
|
+
// Dedup: the same task may reach this handler from BOTH
|
|
219
|
+
// task:after.complete AND task:after.update when running on a newer
|
|
220
|
+
// host (both hooks fire on completion). We inject exactly once.
|
|
221
|
+
if (this.injectedTaskIds.has(taskId))
|
|
222
|
+
return;
|
|
223
|
+
this.injectedTaskIds.add(taskId);
|
|
224
|
+
// Finalize the session under the terminal status.
|
|
225
|
+
this.collector.finalizeOnTaskUpdate({
|
|
185
226
|
taskId,
|
|
186
|
-
newStatus:
|
|
187
|
-
title,
|
|
227
|
+
newStatus: terminalStatus,
|
|
228
|
+
title: data?.task?.title ?? data?.title,
|
|
188
229
|
timestamp: Date.now(),
|
|
189
230
|
});
|
|
190
|
-
if (!finalized)
|
|
191
|
-
return;
|
|
192
|
-
// Inject the URL ONLY when the task is terminal (not "running").
|
|
193
|
-
if (!isTerminalStatus(status))
|
|
194
|
-
return;
|
|
195
231
|
const lastResult = this.lastResultByTask.get(taskId);
|
|
196
232
|
if (!lastResult) {
|
|
197
233
|
// Some tasks may complete without any tool call (e.g. pure response).
|
|
@@ -207,6 +243,14 @@ export class TaskShowPlugin {
|
|
|
207
243
|
info(`injected visualization URL ${outcome.url} into last tool result for task ${taskId}`);
|
|
208
244
|
}
|
|
209
245
|
}
|
|
246
|
+
/**
|
|
247
|
+
* @deprecated Use {@link onTaskAfterComplete}. Kept as a thin alias for
|
|
248
|
+
* backward compatibility with the previous `task:after.update` API
|
|
249
|
+
* contract used in v0.1.0 unit tests. Will be removed in v2.0.
|
|
250
|
+
*/
|
|
251
|
+
async onTaskAfterUpdate(ctx) {
|
|
252
|
+
return this.onTaskAfterComplete(ctx);
|
|
253
|
+
}
|
|
210
254
|
/**
|
|
211
255
|
* Manual injection hook — useful when a custom caller has a known task
|
|
212
256
|
* id + ToolResult at hand (e.g. tests).
|
|
@@ -245,11 +289,25 @@ export class TaskShowPlugin {
|
|
|
245
289
|
handler: async (ctx) => this.onToolAfterExecute(ctx),
|
|
246
290
|
});
|
|
247
291
|
this.registered.push({ point: "tool:after.execute", name: `${this.name}:tool-after` });
|
|
292
|
+
// Preferred hook point (added in roy-agent 2026-07-10).
|
|
293
|
+
// The handler dedupes internally, so even if the host also fires
|
|
294
|
+
// AFTER_UPDATE on completion (which it does on the new code path),
|
|
295
|
+
// the URL is injected exactly once.
|
|
296
|
+
env.registerHook({
|
|
297
|
+
point: "task:after.complete",
|
|
298
|
+
priority: 60,
|
|
299
|
+
name: `${this.name}:task-complete`,
|
|
300
|
+
handler: async (ctx) => this.onTaskAfterComplete(ctx),
|
|
301
|
+
});
|
|
302
|
+
this.registered.push({ point: "task:after.complete", name: `${this.name}:task-complete` });
|
|
303
|
+
// Legacy fallback for roy-agent hosts predating AFTER_COMPLETE.
|
|
304
|
+
// Old hosts only expose AFTER_UPDATE; the handler will filter
|
|
305
|
+
// for terminal status internally.
|
|
248
306
|
env.registerHook({
|
|
249
307
|
point: "task:after.update",
|
|
250
308
|
priority: 60,
|
|
251
309
|
name: `${this.name}:task-after`,
|
|
252
|
-
handler: async (ctx) => this.
|
|
310
|
+
handler: async (ctx) => this.onTaskAfterComplete(ctx),
|
|
253
311
|
});
|
|
254
312
|
this.registered.push({ point: "task:after.update", name: `${this.name}:task-after` });
|
|
255
313
|
return;
|
|
@@ -282,10 +340,16 @@ export class TaskShowPlugin {
|
|
|
282
340
|
execute: async (ctx) => this.onToolAfterExecute(ctx),
|
|
283
341
|
});
|
|
284
342
|
this.registered.push({ point: "tool:after.execute", name: `${this.name}:tool-after` });
|
|
343
|
+
globalHookManager.register("task:after.complete", {
|
|
344
|
+
name: `${this.name}:task-complete`,
|
|
345
|
+
priority: 60,
|
|
346
|
+
execute: async (ctx) => this.onTaskAfterComplete(ctx),
|
|
347
|
+
});
|
|
348
|
+
this.registered.push({ point: "task:after.complete", name: `${this.name}:task-complete` });
|
|
285
349
|
globalHookManager.register("task:after.update", {
|
|
286
350
|
name: `${this.name}:task-after`,
|
|
287
351
|
priority: 60,
|
|
288
|
-
execute: async (ctx) => this.
|
|
352
|
+
execute: async (ctx) => this.onTaskAfterComplete(ctx),
|
|
289
353
|
});
|
|
290
354
|
this.registered.push({ point: "task:after.update", name: `${this.name}:task-after` });
|
|
291
355
|
}
|
package/dist/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAOH,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAE3B,+EAA+E;AAC/E,SAAS;AACT,+EAA+E;AAE/E,MAAM,GAAG,GAAG,sBAAsB,CAAC;AAEnC,SAAS,IAAI,CAAC,GAAW;IACvB,IAAI,OAAO,CAAC,GAAG,EAAE,eAAe,EAAE,CAAC;QACjC,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AACD,SAAS,IAAI,CAAC,GAAW;IACvB,sCAAsC;IACtC,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC;AAClC,CAAC;AACD,SAAS,KAAK,CAAC,GAAW;IACxB,sCAAsC;IACtC,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC;AACnC,CAAC;AA2BD;;;GAGG;AACH,MAAM,OAAO,cAAc;IAChB,IAAI,GAAG,sBAAsB,CAAC;IAC9B,OAAO,GAAG,OAAO,CAAC;IAClB,WAAW,GAClB,+GAA+G,CAAC;IAEjG,GAAG,CAAiB;IACpB,SAAS,CAAoB;IAC7B,MAAM,CAAiB;IAChC,GAAG,GAAyB,IAAI,CAAC;IACjC,QAAQ,GAAG,KAAK,CAAC;IACzB,8FAA8F;IACtF,gBAAgB,GAAG,IAAI,GAAG,EAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ai-setting/roy-plugin-task-show",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "roy-agent plugin: visualize task solving process via tool call flow on a local web service",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -20,8 +20,10 @@
|
|
|
20
20
|
"verify": "bun run scripts/verify-service.ts",
|
|
21
21
|
"publish:local": "bun run scripts/publish.ts --dry-run --verify",
|
|
22
22
|
"publish:dry": "bun run scripts/publish.ts --dry-run",
|
|
23
|
-
"
|
|
24
|
-
"
|
|
23
|
+
"release": "bun run scripts/publish.ts --tag latest",
|
|
24
|
+
"release:verify": "bun run scripts/publish.ts --tag latest --verify",
|
|
25
|
+
"verify:installed": "bun run scripts/verify-installed.ts",
|
|
26
|
+
"verify:published": "bun run scripts/verify-installed.ts registry @ai-setting/roy-plugin-task-show@latest"
|
|
25
27
|
},
|
|
26
28
|
"keywords": [
|
|
27
29
|
"roy-agent",
|
package/plugin.json
CHANGED
|
@@ -1,17 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ai-setting/roy-plugin-task-show",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"type": "tool-plugin",
|
|
5
|
-
"description": "Visualize the tool call chain of a task on a local web service and inject the URL into tool results",
|
|
5
|
+
"description": "Visualize the tool call chain of a task on a local web service and inject the URL into tool results. Subscribes to both task:after.complete (preferred, 2026-07-10+) and task:after.update (legacy fallback).",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"hooks": [
|
|
8
8
|
{
|
|
9
9
|
"point": "tool:after.execute",
|
|
10
10
|
"purpose": "Collect every tool invocation: tool name, args, result, timing, success"
|
|
11
11
|
},
|
|
12
|
+
{
|
|
13
|
+
"point": "task:after.complete",
|
|
14
|
+
"purpose": "PREFERRED hook point (roy-agent 2026-07-10+). When a task transitions to a terminal status (completed/failed/cancelled/timeout), finalize the session and inject the visualization URL into the last tool result. terminalStatus field is explicit \u2014 no status filtering required."
|
|
15
|
+
},
|
|
12
16
|
{
|
|
13
17
|
"point": "task:after.update",
|
|
14
|
-
"purpose": "
|
|
18
|
+
"purpose": "LEGACY fallback. Hosts predating the AFTER_COMPLETE hook point only expose AFTER_UPDATE; the plugin filters for terminal status internally and dedupes against any AFTER_COMPLETE that might also fire on the new code path."
|
|
15
19
|
}
|
|
16
20
|
],
|
|
17
21
|
"commands": [
|
|
@@ -53,7 +57,7 @@
|
|
|
53
57
|
}
|
|
54
58
|
},
|
|
55
59
|
"roy-agent": {
|
|
56
|
-
"minVersion": "
|
|
60
|
+
"minVersion": "1.6.0",
|
|
57
61
|
"extends": "BasePlugin",
|
|
58
62
|
"registerAs": "task-show"
|
|
59
63
|
},
|