@agnishc/edb-todo 0.10.3 → 0.10.5

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/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.10.5] - 2026-05-15
4
+
5
+ ### Changed
6
+ - Added `promptSnippet` to all six tools (`TaskCreate`, `TaskList`, `TaskGet`, `TaskUpdate`, `TaskOutput`, `TaskStop`) so they appear in the system prompt's Available tools section
7
+
8
+ ## [0.10.4] - 2026-05-15
9
+
3
10
  ## [0.10.3] - 2026-05-15
4
11
 
5
12
  ## [0.9.0] - 2026-05-15
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agnishc/edb-todo",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "Pi extension: structured task list with live widget and system-prompt injection to prevent goal drift",
5
5
  "keywords": [
6
6
  "pi-package",
package/src/index.ts CHANGED
@@ -275,6 +275,7 @@ Returns a summary of each task:
275
275
  - **blockedBy**: Open task IDs that must be resolved first
276
276
 
277
277
  Use TaskGet with a specific task ID to view full details including description.`,
278
+ promptSnippet: "List all tasks in the task list with status, priority, and dependency info",
278
279
  parameters: Type.Object({}),
279
280
 
280
281
  async execute() {
@@ -343,6 +344,7 @@ Returns full task details:
343
344
 
344
345
  - After fetching a task, verify its blockedBy list is empty before beginning work.
345
346
  - Use TaskList to see all tasks in summary form.`,
347
+ promptSnippet: "Retrieve full details of a task by ID, including description and dependencies",
346
348
  parameters: TodoGetParams,
347
349
 
348
350
  async execute(_id, params) {
@@ -451,6 +453,7 @@ Delete a task:
451
453
 
452
454
  Set dependencies:
453
455
  \`{ "id": "t2", "addBlockedBy": ["t1"] }\``,
456
+ promptSnippet: "Update a task's status, content, priority, or dependency links",
454
457
  promptGuidelines: [
455
458
  "Mark tasks in_progress BEFORE starting work, completed immediately after finishing. Never batch completions.",
456
459
  "ONLY mark completed when fully done — not when tests are failing or implementation is partial.",
@@ -521,6 +524,7 @@ Set dependencies:
521
524
  "- Use block=true (default) to wait for task completion\n" +
522
525
  "- Use block=false for a non-blocking check of current status\n" +
523
526
  "- Task IDs can be found using TaskList",
527
+ promptSnippet: "Retrieve output from a running or completed background task process",
524
528
  parameters: Type.Object({
525
529
  task_id: Type.String({ description: "The task ID to get output from" }),
526
530
  block: Type.Optional(Type.Boolean({ description: "Whether to wait for completion (default: true)" })),
@@ -595,6 +599,7 @@ Set dependencies:
595
599
  "- Sends SIGTERM, waits 5 seconds, then SIGKILL if still running\n" +
596
600
  "- Marks the task as completed after stopping\n" +
597
601
  "- Use this tool when you need to terminate a long-running task",
602
+ promptSnippet: "Stop a running background task process",
598
603
  parameters: Type.Object({
599
604
  task_id: Type.String({ description: "The task ID of the background process to stop" }),
600
605
  }),
package/src/state.ts CHANGED
@@ -140,7 +140,6 @@ export class TodoWidget {
140
140
  if (tasks.length === 0) {
141
141
  if (this.widgetRegistered) {
142
142
  this.uiCtx.setWidget("pi-todo", undefined);
143
- this.uiCtx.setStatus("pi-todo", undefined);
144
143
  this.widgetRegistered = false;
145
144
  }
146
145
  if (this.widgetInterval) {
@@ -182,16 +181,6 @@ export class TodoWidget {
182
181
  { placement: "aboveEditor" },
183
182
  );
184
183
  this.widgetRegistered = true;
185
-
186
- // Also set status bar
187
- const active = tasks.filter((t) => t.status !== "completed");
188
- const inProg = active.filter((t) => t.status === "in_progress");
189
- const doneCount = tasks.filter((t) => t.status === "completed").length;
190
- const th = this.uiCtx.theme;
191
- const parts: string[] = [];
192
- if (inProg.length > 0) parts.push(th.fg("accent", `● ${inProg.length} active`));
193
- if (doneCount > 0) parts.push(th.fg("success", `✓ ${doneCount} done`));
194
- this.uiCtx.setStatus("pi-todo", parts.join(" "));
195
184
  } else if (this.tui) {
196
185
  this.tui.requestRender();
197
186
  }
@@ -204,7 +193,6 @@ export class TodoWidget {
204
193
  }
205
194
  if (this.uiCtx) {
206
195
  this.uiCtx.setWidget("pi-todo", undefined);
207
- this.uiCtx.setStatus("pi-todo", undefined);
208
196
  }
209
197
  this.widgetRegistered = false;
210
198
  this.tui = undefined;