@pi-orca/tasks 0.0.2-dev.20260422214056 → 0.0.2
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 +18 -13
- package/dist/commands.js +8 -8
- package/dist/commands.js.map +1 -1
- package/dist/engine/crud.d.ts.map +1 -1
- package/dist/engine/crud.js +11 -0
- package/dist/engine/crud.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +170 -59
- package/dist/index.js.map +1 -1
- package/dist/overlay.d.ts.map +1 -1
- package/dist/overlay.js +252 -55
- package/dist/overlay.js.map +1 -1
- package/dist/tool-render.d.ts +1 -1
- package/dist/tool-render.d.ts.map +1 -1
- package/dist/tool-render.js +50 -4
- package/dist/tool-render.js.map +1 -1
- package/dist/tool.d.ts.map +1 -1
- package/dist/tool.js +178 -62
- package/dist/tool.js.map +1 -1
- package/dist/widget.d.ts.map +1 -1
- package/dist/widget.js +183 -49
- package/dist/widget.js.map +1 -1
- package/package.json +2 -2
- package/dist/commands.d.ts +0 -29
- package/dist/engine/crud.d.ts +0 -81
- package/dist/engine/dag.d.ts +0 -30
- package/dist/engine/index.d.ts +0 -8
- package/dist/engine/index.js +0 -8
- package/dist/engine/index.js.map +0 -1
- package/dist/engine/notes.d.ts +0 -26
- package/dist/engine/notes.js +0 -45
- package/dist/engine/notes.js.map +0 -1
- package/dist/engine/state-machine.d.ts +0 -57
- package/dist/index.d.ts +0 -13
- package/dist/overlay.d.ts +0 -9
- package/dist/tool.d.ts +0 -19
- package/dist/widget.d.ts +0 -24
package/README.md
CHANGED
|
@@ -17,6 +17,7 @@ A complete task management extension for Pi, providing file-backed tasks with a
|
|
|
17
17
|
- **Notes with resumption** — append timestamped notes, resume context on re-claim
|
|
18
18
|
- **Label filtering** — key-value labels with special values (`_unset`, `_empty`, `_blank`)
|
|
19
19
|
- **Two-mode HUD widget** — compact (less) and expanded multi-column (more) views
|
|
20
|
+
- **Idle polling** — checks for external task changes every 30s and refreshes the widget automatically
|
|
20
21
|
- **Interactive overlay** — task browser with list, detail, and filter screens
|
|
21
22
|
- **Keyboard shortcut** — `Alt+T` toggles HUD visibility
|
|
22
23
|
|
|
@@ -41,40 +42,44 @@ A complete task management extension for Pi, providing file-backed tasks with a
|
|
|
41
42
|
|
|
42
43
|
| Command | Description |
|
|
43
44
|
|---------|-------------|
|
|
44
|
-
| `/
|
|
45
|
-
| `/
|
|
46
|
-
| `/
|
|
47
|
-
| `/
|
|
48
|
-
| `/
|
|
49
|
-
| `/
|
|
50
|
-
| `/
|
|
51
|
-
| `/
|
|
52
|
-
| `/
|
|
45
|
+
| `/tasks` | Open interactive task overlay |
|
|
46
|
+
| `/tasks more` | Show expanded multi-column HUD widget |
|
|
47
|
+
| `/tasks less` | Show compact 1-line HUD widget |
|
|
48
|
+
| `/tasks list [status]` | List tasks, optionally filtered by status |
|
|
49
|
+
| `/tasks create <title>` | Quick-create a task |
|
|
50
|
+
| `/tasks stuck` | Scan for stuck tasks (dead locks) |
|
|
51
|
+
| `/tasks unlock <id>` | Force-release a stuck task lock |
|
|
52
|
+
| `/tasks deps <id>` | Show dependency graph for a task |
|
|
53
|
+
| `/tasks validate [id]` | Validate task file integrity |
|
|
53
54
|
|
|
54
55
|
## Widget Modes
|
|
55
56
|
|
|
56
|
-
### Compact (`/
|
|
57
|
+
### Compact (`/tasks less`) — default
|
|
57
58
|
|
|
58
59
|
Single summary line with status counts for all states:
|
|
59
60
|
|
|
60
61
|
```
|
|
61
|
-
📋 Tasks 3/7 done | ◉2 in-progress ○1 pending ✗1 failed ⊘1 blocked —1 abandoned /
|
|
62
|
+
📋 Tasks 3/7 done | ◉2 in-progress ○1 pending ✗1 failed ⊘1 blocked —1 abandoned /tasks more
|
|
62
63
|
```
|
|
63
64
|
|
|
64
|
-
### Expanded (`/
|
|
65
|
+
### Expanded (`/tasks more`)
|
|
65
66
|
|
|
66
67
|
Multi-column task list with responsive layout. Adapts columns based on terminal width. Excludes abandoned tasks from the list (stats header still includes them).
|
|
67
68
|
|
|
68
69
|
```
|
|
69
70
|
📋 Tasks 3/7 done | ◉2 in-progress ○1 pending ✗1 failed
|
|
70
71
|
◉ task-001 Implement auth... ◉ task-003 Write API endp... ○ task-004 Add rate limiti...
|
|
71
|
-
✗ task-005 Deploy to stag... ⊘ task-006 Run integration... /
|
|
72
|
+
✗ task-005 Deploy to stag... ⊘ task-006 Run integration... /tasks less
|
|
72
73
|
```
|
|
73
74
|
|
|
74
75
|
### Toggle
|
|
75
76
|
|
|
76
77
|
`Alt+T` toggles the HUD on/off, preserving the current mode.
|
|
77
78
|
|
|
79
|
+
### Idle Polling
|
|
80
|
+
|
|
81
|
+
The extension polls the task file every 30 seconds (configurable via `DEFAULT_CONFIG.polling.idleIntervalSeconds`) to detect changes made by other sessions or external processes. When changes are detected, the widget is automatically refreshed — including showing the widget if it was hidden and tasks now exist, or hiding it if all tasks were cleared.
|
|
82
|
+
|
|
78
83
|
## Architecture
|
|
79
84
|
|
|
80
85
|
```
|
package/dist/commands.js
CHANGED
|
@@ -9,13 +9,13 @@ import { readdir } from "fs/promises";
|
|
|
9
9
|
import { existsSync } from "fs";
|
|
10
10
|
import { join } from "path";
|
|
11
11
|
/**
|
|
12
|
-
* /
|
|
12
|
+
* /tasks (no args) — return widget string for display
|
|
13
13
|
*/
|
|
14
14
|
export async function cmdTaskToggle(projectSlug) {
|
|
15
15
|
return renderTaskWidget(projectSlug);
|
|
16
16
|
}
|
|
17
17
|
/**
|
|
18
|
-
* /
|
|
18
|
+
* /tasks list [status] — list tasks
|
|
19
19
|
*/
|
|
20
20
|
export async function cmdTaskList(statusFilter, projectSlug) {
|
|
21
21
|
const tasks = await listTasks({
|
|
@@ -25,7 +25,7 @@ export async function cmdTaskList(statusFilter, projectSlug) {
|
|
|
25
25
|
if (tasks.length === 0) {
|
|
26
26
|
return statusFilter
|
|
27
27
|
? `No tasks with status '${statusFilter}'.`
|
|
28
|
-
: "No tasks found. Use /
|
|
28
|
+
: "No tasks found. Use /tasks create <title> to create one.";
|
|
29
29
|
}
|
|
30
30
|
const STATUS_ICONS = {
|
|
31
31
|
completed: "✓",
|
|
@@ -43,7 +43,7 @@ export async function cmdTaskList(statusFilter, projectSlug) {
|
|
|
43
43
|
return `Tasks (${tasks.length}):\n${lines.join("\n")}`;
|
|
44
44
|
}
|
|
45
45
|
/**
|
|
46
|
-
* /
|
|
46
|
+
* /tasks stuck — scan for stuck tasks
|
|
47
47
|
*/
|
|
48
48
|
export async function cmdTaskStuck(projectSlug) {
|
|
49
49
|
const tasksDir = getOrcaTasksDir(projectSlug);
|
|
@@ -83,7 +83,7 @@ export async function cmdTaskStuck(projectSlug) {
|
|
|
83
83
|
lines.push(`⚠ Stuck tasks (${stuck.length}):`);
|
|
84
84
|
stuck.forEach((s) => lines.push(` ${s}`));
|
|
85
85
|
lines.push("");
|
|
86
|
-
lines.push("Run /
|
|
86
|
+
lines.push("Run /tasks unlock <id> to release a stuck lock.");
|
|
87
87
|
}
|
|
88
88
|
if (alive.length > 0) {
|
|
89
89
|
lines.push(`Active locks (${alive.length}):`);
|
|
@@ -95,7 +95,7 @@ export async function cmdTaskStuck(projectSlug) {
|
|
|
95
95
|
return lines.join("\n");
|
|
96
96
|
}
|
|
97
97
|
/**
|
|
98
|
-
* /
|
|
98
|
+
* /tasks unlock <id> — force-release a stuck lock
|
|
99
99
|
*/
|
|
100
100
|
export async function cmdTaskUnlock(taskId, projectSlug) {
|
|
101
101
|
const { unlockTask } = await import("./engine/state-machine.js");
|
|
@@ -106,7 +106,7 @@ export async function cmdTaskUnlock(taskId, projectSlug) {
|
|
|
106
106
|
return `Error: ${result.error}`;
|
|
107
107
|
}
|
|
108
108
|
/**
|
|
109
|
-
* /
|
|
109
|
+
* /tasks deps <id> — show dependency graph for a task
|
|
110
110
|
*/
|
|
111
111
|
export async function cmdTaskDeps(taskId, projectSlug) {
|
|
112
112
|
const taskFile = await readTask(taskId, projectSlug);
|
|
@@ -157,7 +157,7 @@ export async function cmdTaskDeps(taskId, projectSlug) {
|
|
|
157
157
|
return lines.join("\n");
|
|
158
158
|
}
|
|
159
159
|
/**
|
|
160
|
-
* /
|
|
160
|
+
* /tasks validate [id] — validate task files
|
|
161
161
|
*/
|
|
162
162
|
export async function cmdTaskValidate(taskId, projectSlug) {
|
|
163
163
|
const tasks = taskId
|
package/dist/commands.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,WAAoB;IACtD,OAAO,gBAAgB,CAAC,WAAW,CAAC,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,YAAqB,EAAE,WAAoB;IAC3E,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC;QAC5B,MAAM,EAAE,YAAmB;QAC3B,WAAW;KACZ,CAAC,CAAC;IAEH,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,YAAY;YACjB,CAAC,CAAC,yBAAyB,YAAY,IAAI;YAC3C,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crud.d.ts","sourceRoot":"","sources":["../../src/engine/crud.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EACL,IAAI,EACJ,UAAU,EAQV,MAAM,EACP,MAAM,eAAe,CAAC;AAEvB,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAsBtE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAE5E;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAE5E;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAiC5E;AAED;;;GAGG;AACH,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAO1B;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAGjE;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,EACpB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAY1B;AAED;;;GAGG;AACH,wBAAsB,SAAS,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAoD7E;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC;IACT,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACpC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACnC,CAAC,CAmBD;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,EAAE,MAAM,EAAE,EACjB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAyBf"}
|
|
1
|
+
{"version":3,"file":"crud.d.ts","sourceRoot":"","sources":["../../src/engine/crud.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EACL,IAAI,EACJ,UAAU,EAQV,MAAM,EACP,MAAM,eAAe,CAAC;AAEvB,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAsBtE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAE5E;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAE5E;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAiC5E;AAED;;;GAGG;AACH,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAO1B;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAGjE;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,EACpB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAY1B;AAED;;;GAGG;AACH,wBAAsB,SAAS,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAoD7E;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC;IACT,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACpC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACnC,CAAC,CAmBD;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,OAAO,CAAC,CAUlB;AAED;;GAEG;AAEH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,EAAE,MAAM,EAAE,EACjB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAyBf"}
|
package/dist/engine/crud.js
CHANGED
|
@@ -184,6 +184,17 @@ export async function buildDependencyMaps(projectSlug) {
|
|
|
184
184
|
}
|
|
185
185
|
return { dependencies, dependents };
|
|
186
186
|
}
|
|
187
|
+
/**
|
|
188
|
+
* Delete a task file (and its lock file if present).
|
|
189
|
+
*/
|
|
190
|
+
export async function deleteTask(taskId, projectSlug) {
|
|
191
|
+
const { deleteFileIfExists } = await import("@pi-orca/core");
|
|
192
|
+
const filePath = getTaskFilePath(taskId, projectSlug);
|
|
193
|
+
await deleteFileIfExists(filePath);
|
|
194
|
+
const lockPath = getTaskLockPath(taskId, projectSlug);
|
|
195
|
+
await deleteFileIfExists(lockPath);
|
|
196
|
+
return true;
|
|
197
|
+
}
|
|
187
198
|
/**
|
|
188
199
|
* Update reverse dependency (dependents) links when a task's dependencies change.
|
|
189
200
|
*/
|
package/dist/engine/crud.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crud.js","sourceRoot":"","sources":["../../src/engine/crud.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"crud.js","sourceRoot":"","sources":["../../src/engine/crud.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAiBH,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AACrI,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,cAAc,eAAe,CAAC;AAuG9B,wBAAgB,QAAQ,CAAC,EAAE,EAAE,GAAG,QAkS/B;AAED,eAAe,QAAQ,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -4,15 +4,15 @@
|
|
|
4
4
|
* Spec: §3 — pi-orca-tasks Extension
|
|
5
5
|
*/
|
|
6
6
|
import { executeTaskTool } from "./tool.js";
|
|
7
|
-
import {
|
|
7
|
+
import { createTaskWidgetFactory, createTaskMoreWidgetFactory } from "./widget.js";
|
|
8
8
|
import { renderTaskCall, renderTaskResult } from "./tool-render.js";
|
|
9
9
|
import { openTasksUI } from "./overlay.js";
|
|
10
10
|
import { cmdTaskList, cmdTaskStuck, cmdTaskUnlock, cmdTaskDeps, cmdTaskValidate, } from "./commands.js";
|
|
11
11
|
import { listTasks } from "./engine/crud.js";
|
|
12
|
-
import { ensureDir, getOrcaTasksDir, wrapToolResult, registerCommandCompletions } from "@pi-orca/core";
|
|
12
|
+
import { bootstrapOrca, ensureDir, getOrcaTasksDir, wrapToolResult, registerCommandCompletions, logInfo, logDebug, bindSession, DEFAULT_CONFIG, createWidgetState } from "@pi-orca/core";
|
|
13
13
|
export { executeTaskTool } from "./tool.js";
|
|
14
14
|
export * from "./engine/index.js";
|
|
15
|
-
export { renderTaskWidget, renderTaskLess, renderTaskMore } from "./widget.js";
|
|
15
|
+
export { renderTaskWidget, renderTaskLess, renderTaskMore, createTaskWidgetFactory, createTaskMoreWidgetFactory } from "./widget.js";
|
|
16
16
|
export { openTasksUI } from "./overlay.js";
|
|
17
17
|
export * from "./commands.js";
|
|
18
18
|
// ─── completion cache (updated on session_start) ─────────────────────────────
|
|
@@ -29,6 +29,7 @@ function buildTaskTree() {
|
|
|
29
29
|
{ value: "unlock", label: "unlock", description: "Force-release a task lock" },
|
|
30
30
|
{ value: "deps", label: "deps", description: "Show task dependencies" },
|
|
31
31
|
{ value: "validate", label: "validate", description: "Validate task files" },
|
|
32
|
+
{ value: "clear", label: "clear", description: "Clear all non-active tasks" },
|
|
32
33
|
],
|
|
33
34
|
children: {
|
|
34
35
|
list: {
|
|
@@ -60,18 +61,68 @@ function buildTaskTree() {
|
|
|
60
61
|
};
|
|
61
62
|
}
|
|
62
63
|
// ─── widget state ───────────────────────────────────────────────────────────
|
|
63
|
-
|
|
64
|
+
const widgetState = createWidgetState({ name: "pi-orca-tasks" });
|
|
64
65
|
let widgetMode = "less";
|
|
65
|
-
|
|
66
|
-
|
|
66
|
+
// Captured at session_start; used by lifecycle handlers without fresh ctx.
|
|
67
|
+
let activeSession;
|
|
68
|
+
let pollingTimer = null;
|
|
69
|
+
let previousSnapshot = [];
|
|
70
|
+
// ─── polling ────────────────────────────────────────────────────────────────
|
|
71
|
+
function startTaskPolling(pi, ctx) {
|
|
72
|
+
const intervalMs = DEFAULT_CONFIG.polling.idleIntervalSeconds * 1000;
|
|
73
|
+
pollingTimer = setInterval(async () => {
|
|
74
|
+
try {
|
|
75
|
+
if (!activeSession)
|
|
76
|
+
return;
|
|
77
|
+
const tasks = await listTasks({ projectSlug: activeSession.projectSlug });
|
|
78
|
+
const currentSnapshot = tasks.map((t) => ({ id: t.task.id, status: t.task.status }));
|
|
79
|
+
// Detect changes: count mismatch, ID difference, or status change
|
|
80
|
+
const changed = currentSnapshot.length !== previousSnapshot.length ||
|
|
81
|
+
currentSnapshot.some((s, i) => s.id !== previousSnapshot[i]?.id || s.status !== previousSnapshot[i]?.status);
|
|
82
|
+
if (changed) {
|
|
83
|
+
previousSnapshot = currentSnapshot;
|
|
84
|
+
if (tasks.length === 0) {
|
|
85
|
+
widgetState.hide(ctx);
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
widgetState.show(ctx, currentWidgetFactory(tasks.map((t) => t.task)));
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
catch (err) {
|
|
93
|
+
logInfo("pi-orca-tasks", `task-poll error: ${err}`);
|
|
94
|
+
}
|
|
95
|
+
}, intervalMs);
|
|
96
|
+
}
|
|
97
|
+
function stopTaskPolling() {
|
|
98
|
+
if (pollingTimer) {
|
|
99
|
+
clearInterval(pollingTimer);
|
|
100
|
+
pollingTimer = null;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
function currentWidgetFactory(preloaded) {
|
|
104
|
+
return widgetMode === "more" ? createTaskMoreWidgetFactory(undefined, preloaded) : createTaskWidgetFactory(undefined, preloaded);
|
|
67
105
|
}
|
|
68
106
|
export function register(pi) {
|
|
69
|
-
|
|
107
|
+
bootstrapOrca();
|
|
108
|
+
logInfo("pi-orca-tasks", "Registering extension");
|
|
70
109
|
// Register task tool with full implementation
|
|
71
110
|
pi.registerTool?.({
|
|
72
111
|
name: "task",
|
|
73
112
|
label: "Task Management",
|
|
74
|
-
description:
|
|
113
|
+
description: `Manage file-backed tasks with a dependency DAG. Tasks follow a lifecycle:
|
|
114
|
+
1. CREATE tasks (or BATCH) to define work items.
|
|
115
|
+
2. LIST to see available tasks.
|
|
116
|
+
3. CLAIM a pending task to mark it in_progress and assign it to this session. You MUST claim a task before working on it.
|
|
117
|
+
4. After work is done, COMPLETE the task (must be assigned to this session). Alternatively FAIL it (with a note) or ABANDON it (with a note).
|
|
118
|
+
5. UNCLAIM returns an in_progress task to pending.
|
|
119
|
+
6. RETRY resets a failed task to pending. REOPEN resets an abandoned task to pending.
|
|
120
|
+
7. UNLOCK force-releases a stuck lock (dead PID).
|
|
121
|
+
8. UPDATE changes title, labels, or dependencies.
|
|
122
|
+
9. NOTE appends a note to any task.
|
|
123
|
+
10. CLEAR removes all non-in_progress tasks — confirm first.
|
|
124
|
+
|
|
125
|
+
IMPORTANT: complete, fail, abandon, and unclaim require the task to be assigned to the current session. If a task was claimed by another session (e.g. via the /tasks overlay), you must claim it first before completing it.`,
|
|
75
126
|
parameters: {
|
|
76
127
|
type: "object",
|
|
77
128
|
properties: {
|
|
@@ -90,85 +141,118 @@ export function register(pi) {
|
|
|
90
141
|
"note",
|
|
91
142
|
"unclaim",
|
|
92
143
|
"reopen",
|
|
144
|
+
"clear",
|
|
145
|
+
"batch",
|
|
93
146
|
],
|
|
94
147
|
description: "Action to perform",
|
|
95
148
|
},
|
|
96
|
-
taskId: { type: "string", description: "Task ID (required for
|
|
149
|
+
taskId: { type: "string", description: "Task ID (required for claim, complete, fail, abandon, unlock, update, retry, note, unclaim, reopen)" },
|
|
97
150
|
title: { type: "string", description: "Task title (required for create)" },
|
|
98
151
|
description: { type: "string", description: "Task description (for create)" },
|
|
99
152
|
dependencies: {
|
|
100
153
|
type: "array",
|
|
101
154
|
items: { type: "string" },
|
|
102
|
-
description: "Task IDs this task depends on",
|
|
155
|
+
description: "Task IDs this task depends on (for create and update). All dependencies must be completed before this task can be claimed.",
|
|
103
156
|
},
|
|
104
157
|
labels: {
|
|
105
158
|
type: "object",
|
|
106
|
-
description: "Key-value labels for filtering",
|
|
159
|
+
description: "Key-value labels for filtering and organizing tasks",
|
|
160
|
+
},
|
|
161
|
+
status: { type: "string", description: "Status filter for list action (pending, in_progress, completed, failed, blocked, abandoned)" },
|
|
162
|
+
note: { type: "string", description: "Note content (required for fail, abandon, and note actions)" },
|
|
163
|
+
tasks: {
|
|
164
|
+
type: "array",
|
|
165
|
+
items: {
|
|
166
|
+
type: "object",
|
|
167
|
+
properties: {
|
|
168
|
+
title: { type: "string", description: "Task title (required)" },
|
|
169
|
+
description: { type: "string", description: "Task description" },
|
|
170
|
+
dependencies: {
|
|
171
|
+
type: "array",
|
|
172
|
+
items: { type: "string" },
|
|
173
|
+
description: "Task IDs or titles (within the same batch) this task depends on",
|
|
174
|
+
},
|
|
175
|
+
labels: {
|
|
176
|
+
type: "object",
|
|
177
|
+
description: "Key-value labels for filtering",
|
|
178
|
+
},
|
|
179
|
+
},
|
|
180
|
+
required: ["title"],
|
|
181
|
+
},
|
|
182
|
+
description: "Array of task specs for batch creation",
|
|
107
183
|
},
|
|
108
|
-
status: { type: "string", description: "Status filter for list action" },
|
|
109
|
-
note: { type: "string", description: "Note content (required for fail, abandon, note actions)" },
|
|
110
184
|
},
|
|
111
185
|
required: ["action"],
|
|
112
186
|
},
|
|
113
187
|
renderCall: renderTaskCall,
|
|
114
188
|
renderResult: renderTaskResult,
|
|
115
189
|
async execute(_toolCallId, params, _signal, _onUpdate, ctx) {
|
|
116
|
-
const
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
190
|
+
const session = bindSession(ctx) ?? activeSession;
|
|
191
|
+
try {
|
|
192
|
+
const result = await executeTaskTool({
|
|
193
|
+
...params,
|
|
194
|
+
sessionId: session?.sessionId,
|
|
195
|
+
sessionPath: session?.sessionPath,
|
|
196
|
+
projectSlug: params.projectSlug ?? session?.projectSlug,
|
|
197
|
+
});
|
|
198
|
+
// Refresh widget after state changes, auto-hide if no tasks remain
|
|
199
|
+
if (["create", "claim", "complete", "fail", "abandon", "unclaim", "retry", "unlock", "update", "reopen", "clear", "batch"].includes(params.action)) {
|
|
200
|
+
const tasks = await listTasks({ projectSlug: params.projectSlug });
|
|
201
|
+
previousSnapshot = tasks.map((t) => ({ id: t.task.id, status: t.task.status }));
|
|
202
|
+
if (tasks.length === 0) {
|
|
203
|
+
widgetState.hide(ctx);
|
|
204
|
+
}
|
|
205
|
+
else if (!widgetState.isVisible() && (params.action === "create" || params.action === "batch")) {
|
|
206
|
+
widgetState.show(ctx, currentWidgetFactory(tasks.map((t) => t.task)));
|
|
207
|
+
}
|
|
208
|
+
else {
|
|
209
|
+
widgetState.refresh(ctx, currentWidgetFactory(tasks.map((t) => t.task)));
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
return wrapToolResult(result);
|
|
213
|
+
}
|
|
214
|
+
catch (err) {
|
|
215
|
+
return wrapToolResult({ success: false, error: err.message ?? String(err) });
|
|
129
216
|
}
|
|
130
|
-
return wrapToolResult(result);
|
|
131
217
|
},
|
|
132
218
|
});
|
|
133
219
|
// Register Alt+T shortcut to toggle HUD
|
|
134
220
|
pi.registerShortcut?.("alt+t", {
|
|
135
221
|
description: "Toggle task HUD widget",
|
|
136
222
|
handler: async (ctx) => {
|
|
137
|
-
|
|
138
|
-
if (widgetVisible) {
|
|
139
|
-
const content = await renderCurrentWidget();
|
|
140
|
-
ctx.ui.setWidget("pi-orca-tasks", content);
|
|
141
|
-
}
|
|
142
|
-
else {
|
|
143
|
-
ctx.ui.setWidget("pi-orca-tasks", undefined);
|
|
144
|
-
}
|
|
223
|
+
widgetState.toggle(ctx, currentWidgetFactory());
|
|
145
224
|
},
|
|
146
225
|
});
|
|
147
226
|
// Register slash commands
|
|
148
|
-
pi.registerCommand("
|
|
227
|
+
pi.registerCommand("tasks", {
|
|
149
228
|
description: "Manage tasks — no args opens interactive overlay",
|
|
150
229
|
handler: async (args, ctx) => {
|
|
151
230
|
const parts = args ? args.trim().split(/\s+/) : [];
|
|
152
231
|
const subcommand = parts[0];
|
|
153
232
|
if (!subcommand) {
|
|
154
233
|
// No args → open interactive overlay
|
|
155
|
-
|
|
234
|
+
const refreshWidget = async () => {
|
|
235
|
+
const tasks = await listTasks({});
|
|
236
|
+
if (tasks.length === 0) {
|
|
237
|
+
widgetState.hide(ctx);
|
|
238
|
+
}
|
|
239
|
+
else {
|
|
240
|
+
widgetState.refresh(ctx, currentWidgetFactory(tasks.map((t) => t.task)));
|
|
241
|
+
}
|
|
242
|
+
};
|
|
243
|
+
await openTasksUI(pi, ctx, refreshWidget);
|
|
156
244
|
return;
|
|
157
245
|
}
|
|
158
246
|
switch (subcommand.toLowerCase()) {
|
|
159
247
|
case "more": {
|
|
160
248
|
widgetMode = "more";
|
|
161
|
-
|
|
162
|
-
const content = await renderTaskMore();
|
|
163
|
-
ctx.ui.setWidget("pi-orca-tasks", content);
|
|
249
|
+
widgetState.show(ctx, createTaskMoreWidgetFactory());
|
|
164
250
|
ctx.ui.notify("Task widget: expanded view", "info");
|
|
165
251
|
break;
|
|
166
252
|
}
|
|
167
253
|
case "less": {
|
|
168
254
|
widgetMode = "less";
|
|
169
|
-
|
|
170
|
-
const content = await renderTaskLess();
|
|
171
|
-
ctx.ui.setWidget("pi-orca-tasks", content);
|
|
255
|
+
widgetState.show(ctx, createTaskWidgetFactory());
|
|
172
256
|
ctx.ui.notify("Task widget: compact view", "info");
|
|
173
257
|
break;
|
|
174
258
|
}
|
|
@@ -181,14 +265,16 @@ export function register(pi) {
|
|
|
181
265
|
case "create": {
|
|
182
266
|
const title = parts.slice(1).join(" ");
|
|
183
267
|
if (!title) {
|
|
184
|
-
ctx.ui.notify("Usage: /
|
|
268
|
+
ctx.ui.notify("Usage: /tasks create <title>", "error");
|
|
185
269
|
break;
|
|
186
270
|
}
|
|
271
|
+
const session = bindSession(ctx) ?? activeSession;
|
|
187
272
|
const result = await executeTaskTool({
|
|
188
273
|
action: "create",
|
|
189
274
|
title,
|
|
190
|
-
sessionId:
|
|
191
|
-
sessionPath:
|
|
275
|
+
sessionId: session?.sessionId,
|
|
276
|
+
sessionPath: session?.sessionPath,
|
|
277
|
+
projectSlug: session?.projectSlug,
|
|
192
278
|
});
|
|
193
279
|
if (result.success) {
|
|
194
280
|
ctx.ui.notify(`Created task: ${result.task?.id} — ${title}`, "info");
|
|
@@ -206,7 +292,7 @@ export function register(pi) {
|
|
|
206
292
|
case "unlock": {
|
|
207
293
|
const taskId = parts[1];
|
|
208
294
|
if (!taskId) {
|
|
209
|
-
ctx.ui.notify("Usage: /
|
|
295
|
+
ctx.ui.notify("Usage: /tasks unlock <id>", "error");
|
|
210
296
|
break;
|
|
211
297
|
}
|
|
212
298
|
const result = await cmdTaskUnlock(taskId);
|
|
@@ -216,7 +302,7 @@ export function register(pi) {
|
|
|
216
302
|
case "deps": {
|
|
217
303
|
const taskId = parts[1];
|
|
218
304
|
if (!taskId) {
|
|
219
|
-
ctx.ui.notify("Usage: /
|
|
305
|
+
ctx.ui.notify("Usage: /tasks deps <id>", "error");
|
|
220
306
|
break;
|
|
221
307
|
}
|
|
222
308
|
const result = await cmdTaskDeps(taskId);
|
|
@@ -229,42 +315,67 @@ export function register(pi) {
|
|
|
229
315
|
ctx.ui.notify(result, result.includes("Error") || result.includes("invalid") ? "warning" : "info");
|
|
230
316
|
break;
|
|
231
317
|
}
|
|
318
|
+
case "clear": {
|
|
319
|
+
const session = bindSession(ctx) ?? activeSession;
|
|
320
|
+
const result = await executeTaskTool({
|
|
321
|
+
action: "clear",
|
|
322
|
+
sessionId: session?.sessionId,
|
|
323
|
+
sessionPath: session?.sessionPath,
|
|
324
|
+
projectSlug: session?.projectSlug,
|
|
325
|
+
});
|
|
326
|
+
if (result.success) {
|
|
327
|
+
widgetState.hide(ctx);
|
|
328
|
+
ctx.ui.notify(result.message, "info");
|
|
329
|
+
}
|
|
330
|
+
else {
|
|
331
|
+
ctx.ui.notify(`Error: ${result.error}`, "error");
|
|
332
|
+
}
|
|
333
|
+
break;
|
|
334
|
+
}
|
|
232
335
|
default:
|
|
233
|
-
ctx.ui.notify(`Unknown subcommand '${subcommand}'. Available: list, create, more, less, stuck, unlock, deps, validate`, "error");
|
|
336
|
+
ctx.ui.notify(`Unknown subcommand '${subcommand}'. Available: list, create, more, less, stuck, unlock, deps, validate, clear`, "error");
|
|
234
337
|
}
|
|
235
338
|
},
|
|
236
339
|
});
|
|
237
340
|
// Populate caches, bootstrap dir, auto-show HUD on session_start
|
|
238
341
|
pi.on("session_start", async (_event, ctx) => {
|
|
239
342
|
try {
|
|
240
|
-
|
|
241
|
-
const
|
|
343
|
+
activeSession = bindSession(ctx);
|
|
344
|
+
const projectSlug = activeSession?.projectSlug;
|
|
345
|
+
await ensureDir(getOrcaTasksDir(projectSlug));
|
|
346
|
+
const tasks = await listTasks({ projectSlug });
|
|
242
347
|
_cachedTaskIds = tasks.map((t) => ({
|
|
243
348
|
id: t.task.id,
|
|
244
349
|
title: t.task.title,
|
|
245
350
|
status: t.task.status,
|
|
246
351
|
}));
|
|
352
|
+
previousSnapshot = tasks.map((t) => ({ id: t.task.id, status: t.task.status }));
|
|
247
353
|
registerCommandCompletions(ctx, [
|
|
248
|
-
{ command: "
|
|
354
|
+
{ command: "tasks", getTree: buildTaskTree },
|
|
249
355
|
]);
|
|
250
356
|
// Auto-show HUD if tasks exist
|
|
251
|
-
if (tasks.length > 0
|
|
252
|
-
|
|
253
|
-
const content = await renderCurrentWidget();
|
|
254
|
-
ctx.ui.setWidget("pi-orca-tasks", content);
|
|
357
|
+
if (tasks.length > 0) {
|
|
358
|
+
widgetState.show(ctx, currentWidgetFactory(tasks.map((t) => t.task)));
|
|
255
359
|
}
|
|
360
|
+
// Start idle polling for external task changes
|
|
361
|
+
startTaskPolling(pi, ctx);
|
|
256
362
|
}
|
|
257
363
|
catch {
|
|
258
364
|
// Task directory may not exist yet — leave cache empty
|
|
259
365
|
}
|
|
260
366
|
pi.events?.emit("orca:tasks:ready", {});
|
|
261
|
-
|
|
367
|
+
logInfo("pi-orca-tasks", "Ready");
|
|
368
|
+
});
|
|
369
|
+
pi.on("session_shutdown", async (_event, _ctx) => {
|
|
370
|
+
stopTaskPolling();
|
|
371
|
+
activeSession = undefined;
|
|
372
|
+
logInfo("pi-orca-tasks", "Shutdown");
|
|
262
373
|
});
|
|
263
374
|
// Check for other extensions
|
|
264
375
|
pi.events?.on("orca:models:ready", () => {
|
|
265
|
-
|
|
376
|
+
logDebug("pi-orca-tasks", "pi-orca-models detected");
|
|
266
377
|
});
|
|
267
|
-
|
|
378
|
+
logInfo("pi-orca-tasks", "Registered");
|
|
268
379
|
}
|
|
269
380
|
export default register;
|
|
270
381
|
//# sourceMappingURL=index.js.map
|