@dmmulroy/overseer 0.2.2 → 0.3.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.
@@ -4,16 +4,9 @@ import type { Learning } from "../types.js";
4
4
  */
5
5
  export declare const learnings: {
6
6
  /**
7
- * Add learning to a task
8
- */
9
- add(taskId: string, content: string, sourceTaskId?: string): Promise<Learning>;
10
- /**
11
- * List all learnings for a task
7
+ * List all learnings for a task.
8
+ * Includes learnings bubbled from completed child tasks.
12
9
  */
13
10
  list(taskId: string): Promise<Learning[]>;
14
- /**
15
- * Delete a learning
16
- */
17
- delete(id: string): Promise<void>;
18
11
  };
19
12
  //# sourceMappingURL=learnings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"learnings.d.ts","sourceRoot":"","sources":["../../src/api/learnings.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C;;GAEG;AACH,eAAO,MAAM,SAAS;IACpB;;OAEG;gBAEO,MAAM,WACL,MAAM,iBACA,MAAM,GACpB,OAAO,CAAC,QAAQ,CAAC;IAMpB;;OAEG;iBACgB,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAI/C;;OAEG;eACc,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGxC,CAAC"}
1
+ {"version":3,"file":"learnings.d.ts","sourceRoot":"","sources":["../../src/api/learnings.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C;;GAEG;AACH,eAAO,MAAM,SAAS;IACpB;;;OAGG;iBACgB,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;CAGhD,CAAC"}
@@ -1,5 +1,9 @@
1
1
  /**
2
2
  * Learnings API - typed wrapper around os learning commands
3
+ *
4
+ * Note: Learnings are now added via tasks.complete() with the learnings option.
5
+ * They bubble to immediate parent on completion, aligning with VCS state.
6
+ * This API only provides read access for viewing learnings.
3
7
  */
4
8
  import { callCli } from "../cli.js";
5
9
  /**
@@ -7,25 +11,11 @@ import { callCli } from "../cli.js";
7
11
  */
8
12
  export const learnings = {
9
13
  /**
10
- * Add learning to a task
11
- */
12
- async add(taskId, content, sourceTaskId) {
13
- const args = ["learning", "add", taskId, content];
14
- if (sourceTaskId)
15
- args.push("--source", sourceTaskId);
16
- return (await callCli(args));
17
- },
18
- /**
19
- * List all learnings for a task
14
+ * List all learnings for a task.
15
+ * Includes learnings bubbled from completed child tasks.
20
16
  */
21
17
  async list(taskId) {
22
18
  return (await callCli(["learning", "list", taskId]));
23
19
  },
24
- /**
25
- * Delete a learning
26
- */
27
- async delete(id) {
28
- await callCli(["learning", "delete", id]);
29
- },
30
20
  };
31
21
  //# sourceMappingURL=learnings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"learnings.js","sourceRoot":"","sources":["../../src/api/learnings.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB;;OAEG;IACH,KAAK,CAAC,GAAG,CACP,MAAc,EACd,OAAe,EACf,YAAqB;QAErB,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAClD,IAAI,YAAY;YAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QACtD,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAa,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,MAAc;QACvB,OAAO,CAAC,MAAM,OAAO,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAe,CAAC;IACrE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,MAAM,OAAO,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;IAC5C,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"learnings.js","sourceRoot":"","sources":["../../src/api/learnings.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB;;;OAGG;IACH,KAAK,CAAC,IAAI,CAAC,MAAc;QACvB,OAAO,CAAC,MAAM,OAAO,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAe,CAAC;IACrE,CAAC;CACF,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { Task } from "../types.js";
1
+ import type { Task, TaskWithContext } from "../types.js";
2
2
  export interface TaskFilter {
3
3
  parentId?: string;
4
4
  ready?: boolean;
@@ -22,48 +22,62 @@ export interface UpdateTaskInput {
22
22
  */
23
23
  export declare const tasks: {
24
24
  /**
25
- * List tasks with optional filters
25
+ * List tasks with optional filters.
26
+ * Returns tasks without context chain or inherited learnings.
26
27
  */
27
28
  list(filter?: TaskFilter): Promise<Task[]>;
28
29
  /**
29
- * Get single task with full context and learnings
30
+ * Get single task with full context chain and inherited learnings.
30
31
  */
31
- get(id: string): Promise<Task>;
32
+ get(id: string): Promise<TaskWithContext>;
32
33
  /**
33
- * Create new task
34
+ * Create new task.
35
+ * Returns task without context chain or inherited learnings.
34
36
  */
35
37
  create(input: CreateTaskInput): Promise<Task>;
36
38
  /**
37
- * Update existing task
39
+ * Update existing task.
40
+ * Returns task without context chain or inherited learnings.
38
41
  */
39
42
  update(id: string, input: UpdateTaskInput): Promise<Task>;
40
43
  /**
41
- * Mark task as started
44
+ * Mark task as started.
45
+ * Follows blockers to find startable work, cascades to deepest leaf.
46
+ * Creates VCS bookmark for started task (if VCS available).
47
+ * Returns the task that was actually started.
42
48
  */
43
49
  start(id: string): Promise<Task>;
44
50
  /**
45
- * Complete task with optional result
51
+ * Complete task with optional result and learnings.
52
+ * Learnings are attached to the task and bubbled to immediate parent.
53
+ * Auto-bubbles up if all siblings done and parent unblocked.
54
+ * Squashes commits and captures commit SHA (if VCS available).
46
55
  */
47
- complete(id: string, result?: string): Promise<Task>;
56
+ complete(id: string, options?: {
57
+ result?: string;
58
+ learnings?: string[];
59
+ }): Promise<Task>;
48
60
  /**
49
- * Reopen completed task
61
+ * Reopen completed task.
50
62
  */
51
63
  reopen(id: string): Promise<Task>;
52
64
  /**
53
- * Delete task (cascades to children)
65
+ * Delete task (cascades to children and learnings).
54
66
  */
55
67
  delete(id: string): Promise<void>;
56
68
  /**
57
- * Add blocker relationship
69
+ * Add blocker relationship.
70
+ * Validates: no self-blocks, no ancestor/descendant blocks, no cycles.
58
71
  */
59
72
  block(taskId: string, blockerId: string): Promise<void>;
60
73
  /**
61
- * Remove blocker relationship
74
+ * Remove blocker relationship.
62
75
  */
63
76
  unblock(taskId: string, blockerId: string): Promise<void>;
64
77
  /**
65
- * Get next ready task
78
+ * Get next ready task (DFS to find deepest unblocked incomplete leaf).
79
+ * Returns task with full context chain and inherited learnings, or null if no ready tasks.
66
80
  */
67
- nextReady(milestoneId?: string): Promise<Task | null>;
81
+ nextReady(milestoneId?: string): Promise<TaskWithContext | null>;
68
82
  };
69
83
  //# sourceMappingURL=tasks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/api/tasks.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,eAAO,MAAM,KAAK;IAChB;;OAEG;kBACiB,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAQhD;;OAEG;YACW,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpC;;OAEG;kBACiB,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAWnD;;OAEG;eACc,MAAM,SAAS,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAS/D;;OAEG;cACa,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAItC;;OAEG;iBACgB,MAAM,WAAW,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM1D;;OAEG;eACc,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvC;;OAEG;eACc,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvC;;OAEG;kBACiB,MAAM,aAAa,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7D;;OAEG;oBACmB,MAAM,aAAa,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/D;;OAEG;4BAC2B,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;CAK5D,CAAC"}
1
+ {"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/api/tasks.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEzD,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,eAAO,MAAM,KAAK;IAChB;;;OAGG;kBACiB,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAQhD;;OAEG;YACW,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAI/C;;;OAGG;kBACiB,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAWnD;;;OAGG;eACc,MAAM,SAAS,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAS/D;;;;;OAKG;cACa,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAItC;;;;;OAKG;iBAEG,MAAM,YACA;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAClD,OAAO,CAAC,IAAI,CAAC;IAWhB;;OAEG;eACc,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvC;;OAEG;eACc,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvC;;;OAGG;kBACiB,MAAM,aAAa,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7D;;OAEG;oBACmB,MAAM,aAAa,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/D;;;OAGG;4BAC2B,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;CAKvE,CAAC"}
package/dist/api/tasks.js CHANGED
@@ -7,7 +7,8 @@ import { callCli } from "../cli.js";
7
7
  */
8
8
  export const tasks = {
9
9
  /**
10
- * List tasks with optional filters
10
+ * List tasks with optional filters.
11
+ * Returns tasks without context chain or inherited learnings.
11
12
  */
12
13
  async list(filter) {
13
14
  const args = ["task", "list"];
@@ -20,13 +21,14 @@ export const tasks = {
20
21
  return (await callCli(args));
21
22
  },
22
23
  /**
23
- * Get single task with full context and learnings
24
+ * Get single task with full context chain and inherited learnings.
24
25
  */
25
26
  async get(id) {
26
27
  return (await callCli(["task", "get", id]));
27
28
  },
28
29
  /**
29
- * Create new task
30
+ * Create new task.
31
+ * Returns task without context chain or inherited learnings.
30
32
  */
31
33
  async create(input) {
32
34
  const args = ["task", "create", "-d", input.description];
@@ -42,7 +44,8 @@ export const tasks = {
42
44
  return (await callCli(args));
43
45
  },
44
46
  /**
45
- * Update existing task
47
+ * Update existing task.
48
+ * Returns task without context chain or inherited learnings.
46
49
  */
47
50
  async update(id, input) {
48
51
  const args = ["task", "update", id];
@@ -57,46 +60,59 @@ export const tasks = {
57
60
  return (await callCli(args));
58
61
  },
59
62
  /**
60
- * Mark task as started
63
+ * Mark task as started.
64
+ * Follows blockers to find startable work, cascades to deepest leaf.
65
+ * Creates VCS bookmark for started task (if VCS available).
66
+ * Returns the task that was actually started.
61
67
  */
62
68
  async start(id) {
63
69
  return (await callCli(["task", "start", id]));
64
70
  },
65
71
  /**
66
- * Complete task with optional result
72
+ * Complete task with optional result and learnings.
73
+ * Learnings are attached to the task and bubbled to immediate parent.
74
+ * Auto-bubbles up if all siblings done and parent unblocked.
75
+ * Squashes commits and captures commit SHA (if VCS available).
67
76
  */
68
- async complete(id, result) {
77
+ async complete(id, options) {
69
78
  const args = ["task", "complete", id];
70
- if (result)
71
- args.push("--result", result);
79
+ if (options?.result)
80
+ args.push("--result", options.result);
81
+ if (options?.learnings) {
82
+ for (const learning of options.learnings) {
83
+ args.push("--learning", learning);
84
+ }
85
+ }
72
86
  return (await callCli(args));
73
87
  },
74
88
  /**
75
- * Reopen completed task
89
+ * Reopen completed task.
76
90
  */
77
91
  async reopen(id) {
78
92
  return (await callCli(["task", "reopen", id]));
79
93
  },
80
94
  /**
81
- * Delete task (cascades to children)
95
+ * Delete task (cascades to children and learnings).
82
96
  */
83
97
  async delete(id) {
84
98
  await callCli(["task", "delete", id]);
85
99
  },
86
100
  /**
87
- * Add blocker relationship
101
+ * Add blocker relationship.
102
+ * Validates: no self-blocks, no ancestor/descendant blocks, no cycles.
88
103
  */
89
104
  async block(taskId, blockerId) {
90
105
  await callCli(["task", "block", taskId, "--by", blockerId]);
91
106
  },
92
107
  /**
93
- * Remove blocker relationship
108
+ * Remove blocker relationship.
94
109
  */
95
110
  async unblock(taskId, blockerId) {
96
111
  await callCli(["task", "unblock", taskId, "--by", blockerId]);
97
112
  },
98
113
  /**
99
- * Get next ready task
114
+ * Get next ready task (DFS to find deepest unblocked incomplete leaf).
115
+ * Returns task with full context chain and inherited learnings, or null if no ready tasks.
100
116
  */
101
117
  async nextReady(milestoneId) {
102
118
  const args = ["task", "next-ready"];
@@ -1 +1 @@
1
- {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/api/tasks.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwBpC;;GAEG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,MAAmB;QAC5B,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9B,IAAI,MAAM,EAAE,QAAQ;YAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC7D,IAAI,MAAM,EAAE,KAAK;YAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxC,IAAI,MAAM,EAAE,SAAS;YAAE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAChD,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAW,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,EAAU;QAClB,OAAO,CAAC,MAAM,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAS,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,KAAsB;QACjC,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;QACzD,IAAI,KAAK,CAAC,OAAO;YAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACzD,IAAI,KAAK,CAAC,QAAQ;YAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC1D,IAAI,KAAK,CAAC,QAAQ;YAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpE,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAS,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,KAAsB;QAC7C,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QACpC,IAAI,KAAK,CAAC,WAAW;YAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;QAC1D,IAAI,KAAK,CAAC,OAAO;YAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACzD,IAAI,KAAK,CAAC,QAAQ;YAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpE,IAAI,KAAK,CAAC,QAAQ;YAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC1D,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAS,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,EAAU;QACpB,OAAO,CAAC,MAAM,OAAO,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAS,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,EAAU,EAAE,MAAe;QACxC,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;QACtC,IAAI,MAAM;YAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC1C,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAS,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,OAAO,CAAC,MAAM,OAAO,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAS,CAAC;IACzD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,MAAM,OAAO,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,MAAc,EAAE,SAAiB;QAC3C,MAAM,OAAO,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,SAAiB;QAC7C,MAAM,OAAO,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IAChE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,WAAoB;QAClC,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QACpC,IAAI,WAAW;YAAE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QACvD,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAgB,CAAC;IAC9C,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/api/tasks.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../src/executor.ts"],"names":[],"mappings":"AASA;;GAEG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA6E5D;AAmBD;;GAEG;AACH,qBAAa,cAAe,SAAQ,KAAK;aAGrB,UAAU,CAAC,EAAE,MAAM;gBADnC,OAAO,EAAE,MAAM,EACC,UAAU,CAAC,EAAE,MAAM,YAAA;CAKtC"}
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../src/executor.ts"],"names":[],"mappings":"AASA;;GAEG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA6E5D;AAwBD;;GAEG;AACH,qBAAa,cAAe,SAAQ,KAAK;aAGrB,UAAU,CAAC,EAAE,MAAM;gBADnC,OAAO,EAAE,MAAM,EACC,UAAU,CAAC,EAAE,MAAM,YAAA;CAKtC"}
package/dist/executor.js CHANGED
@@ -87,6 +87,10 @@ export async function execute(code) {
87
87
  * Truncate large outputs to prevent response overflow
88
88
  */
89
89
  function truncateOutput(result) {
90
+ // Handle undefined explicitly (JSON.stringify returns undefined for undefined)
91
+ if (result === undefined) {
92
+ return undefined;
93
+ }
90
94
  const json = JSON.stringify(result, null, 2);
91
95
  if (json.length <= MAX_OUTPUT_SIZE) {
92
96
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"executor.js","sourceRoot":"","sources":["../src/executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../src/executor.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,MAAM,eAAe,GAAG,MAAM,CAAC,CAAC,QAAQ;AAExC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAY;IACxC,yCAAyC;IACzC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,MAAM,UAAU,GAAG,GAAG,CAAC;IAEvB,2CAA2C;IAC3C,yFAAyF;IACzF,MAAM,OAAO,GAAG;QACd,KAAK;QACL,SAAS;QACT,OAAO,EAAE;YACP,GAAG,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC;YAC9D,KAAK,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC;SACnE;QACD,4CAA4C;QAC5C,UAAU,EAAE,CAAC,OAAmB,EAAE,OAAgB,EAAE,EAAE;YACpD,IAAI,MAAM,CAAC,IAAI,IAAI,UAAU,EAAE,CAAC;gBAC9B,MAAM,IAAI,KAAK,CAAC,6BAA6B,UAAU,GAAG,CAAC,CAAC;YAC9D,CAAC;YACD,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE;gBACzB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAClB,OAAO,EAAE,CAAC;YACZ,CAAC,EAAE,OAAO,CAAC,CAAC;YACZ,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACf,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,6CAA6C;QAC7C,WAAW,EAAE,CAAC,OAAmB,EAAE,OAAgB,EAAE,EAAE;YACrD,IAAI,MAAM,CAAC,IAAI,IAAI,UAAU,EAAE,CAAC;gBAC9B,MAAM,IAAI,KAAK,CAAC,6BAA6B,UAAU,GAAG,CAAC,CAAC;YAC9D,CAAC;YACD,MAAM,EAAE,GAAG,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACzC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACf,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,YAAY,EAAE,CAAC,EAAkB,EAAE,EAAE;YACnC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAClB,YAAY,CAAC,EAAE,CAAC,CAAC;QACnB,CAAC;QACD,aAAa,EAAE,CAAC,EAAkB,EAAE,EAAE;YACpC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAClB,aAAa,CAAC,EAAE,CAAC,CAAC;QACpB,CAAC;QACD,OAAO;KACR,CAAC;IAEF,0CAA0C;IAC1C,MAAM,WAAW,GAAG;;QAEd,IAAI;;GAET,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE;YACxC,QAAQ,EAAE,eAAe;SAC1B,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE;YAChD,OAAO,EAAE,MAAM,EAAE,oBAAoB;SACtC,CAAC,CAAC;QAEH,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;YACzB,MAAM,IAAI,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QACnD,CAAC;QACD,MAAM,IAAI,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACxC,CAAC;YAAS,CAAC;QACT,0DAA0D;QAC1D,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;YACpB,YAAY,CAAC,EAAE,CAAC,CAAC;YACjB,aAAa,CAAC,EAAE,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,MAAe;IACrC,+EAA+E;IAC/E,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7C,IAAI,IAAI,CAAC,MAAM,IAAI,eAAe,EAAE,CAAC;QACnC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO;QACL,UAAU,EAAE,IAAI;QAChB,IAAI,EAAE,IAAI,CAAC,MAAM;QACjB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC;QACvC,OAAO,EAAE,qBAAqB,IAAI,CAAC,MAAM,yBAAyB,eAAe,GAAG;KACrF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,cAAe,SAAQ,KAAK;IAGrB;IAFlB,YACE,OAAe,EACC,UAAmB;QAEnC,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,eAAU,GAAV,UAAU,CAAS;QAGnC,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF"}
@@ -29,8 +29,13 @@ before(async () => {
29
29
  // Run CLI from test directory (where jj repo is)
30
30
  process.env.OVERSEER_CLI_CWD = testDir;
31
31
  // Initialize jj repo for VCS tests
32
+ // Create with initial commit history to avoid jj-lib panics when squashing
33
+ // (root commit has no parents, causing assertion failure)
32
34
  await runCommand("jj", ["git", "init", "--colocate", testDir]);
35
+ // Create a file and commit to establish parent for working copy
36
+ await runCommand("sh", ["-c", `echo "init" > "${testDir}/.overseer-init"`]);
33
37
  await runCommand("jj", ["describe", "-m", "initial"], testDir);
38
+ await runCommand("jj", ["new"], testDir);
34
39
  });
35
40
  after(async () => {
36
41
  // Restore original env vars
@@ -180,8 +185,8 @@ describe("Integration Tests", () => {
180
185
  });
181
186
  it("should add and remove blockers", async () => {
182
187
  const result = await executeCode(`
183
- const task1 = await tasks.create({ description: "Task 1" });
184
- const task2 = await tasks.create({ description: "Task 2" });
188
+ const task1 = await tasks.create({ description: "Blocker test task 1" });
189
+ const task2 = await tasks.create({ description: "Blocker test task 2" });
185
190
 
186
191
  await tasks.block(task1.id, task2.id);
187
192
  const blocked = await tasks.get(task1.id);
@@ -190,12 +195,13 @@ describe("Integration Tests", () => {
190
195
  const unblocked = await tasks.get(task1.id);
191
196
 
192
197
  return {
193
- blockedCount: blocked.blockedBy.length,
194
- unblockedCount: unblocked.blockedBy.length
198
+ blockedCount: (blocked.blockedBy || []).length,
199
+ unblockedCount: (unblocked.blockedBy || []).length,
200
+ blockedBy: blocked.blockedBy
195
201
  };
196
202
  `);
197
203
  const counts = result;
198
- assert.equal(counts.blockedCount, 1);
204
+ assert.equal(counts.blockedCount, 1, `Expected 1 blocker, got ${counts.blockedCount}. blockedBy: ${JSON.stringify(counts.blockedBy)}`);
199
205
  assert.equal(counts.unblockedCount, 0);
200
206
  });
201
207
  it("should filter tasks by ready status", async () => {
@@ -224,51 +230,206 @@ describe("Integration Tests", () => {
224
230
  assert.equal(flags.hasReady, true, "Unblocked task should be ready");
225
231
  });
226
232
  });
233
+ describe("NextReady API", () => {
234
+ it("should return null when no tasks are ready", async () => {
235
+ const result = await executeCode(`
236
+ // Create a blocked milestone (blocked by another task)
237
+ const blocker = await tasks.create({ description: "Blocker task", priority: 1 });
238
+ const blockedMilestone = await tasks.create({
239
+ description: "Blocked milestone",
240
+ priority: 5,
241
+ blockedBy: [blocker.id]
242
+ });
243
+
244
+ // nextReady with milestoneId should return null since milestone is blocked
245
+ const next = await tasks.nextReady(blockedMilestone.id);
246
+ return next;
247
+ `);
248
+ assert.equal(result, null, "nextReady should return null for blocked milestone");
249
+ });
250
+ it("should return task with context when ready", async () => {
251
+ const result = await executeCode(`
252
+ // Create unblocked milestone
253
+ const milestone = await tasks.create({
254
+ description: "Ready milestone",
255
+ context: "Milestone context",
256
+ priority: 5
257
+ });
258
+
259
+ const next = await tasks.nextReady(milestone.id);
260
+ return next;
261
+ `);
262
+ assert.ok(result, "nextReady should return a task");
263
+ const task = result;
264
+ assert.ok(task.id, "Task should have id");
265
+ assert.ok(task.context, "Task should have context chain");
266
+ const context = task.context;
267
+ assert.equal(context.own, "Milestone context", "Context should include own");
268
+ });
269
+ it("should return deepest ready leaf in hierarchy", async () => {
270
+ const result = await executeCode(`
271
+ // Create hierarchy: milestone -> task -> subtask
272
+ const milestone = await tasks.create({
273
+ description: "M",
274
+ context: "MC",
275
+ priority: 5
276
+ });
277
+
278
+ const task = await tasks.create({
279
+ description: "T",
280
+ context: "TC",
281
+ parentId: milestone.id,
282
+ priority: 5
283
+ });
284
+
285
+ const subtask = await tasks.create({
286
+ description: "S",
287
+ context: "SC",
288
+ parentId: task.id,
289
+ priority: 5
290
+ });
291
+
292
+ const next = await tasks.nextReady(milestone.id);
293
+ return {
294
+ nextId: next?.id,
295
+ subtaskId: subtask.id,
296
+ depth: next?.depth
297
+ };
298
+ `);
299
+ const res = result;
300
+ assert.equal(res.nextId, res.subtaskId, "Should return deepest leaf (subtask)");
301
+ assert.equal(res.depth, 2, "Subtask should have depth 2");
302
+ });
303
+ it("should return task with inherited learnings", async () => {
304
+ const result = await executeCode(`
305
+ const milestone = await tasks.create({
306
+ description: "M",
307
+ priority: 5
308
+ });
309
+
310
+ // Create task under milestone, add sibling to prevent auto-complete
311
+ const task1 = await tasks.create({
312
+ description: "T1",
313
+ parentId: milestone.id,
314
+ priority: 5
315
+ });
316
+ const task2 = await tasks.create({
317
+ description: "T2",
318
+ parentId: milestone.id,
319
+ priority: 5
320
+ });
321
+
322
+ // Complete task1 with learning - bubbles to milestone
323
+ await tasks.complete(task1.id, { learnings: ["Milestone learning"] });
324
+
325
+ // task2 should see learning via milestone
326
+ const next = await tasks.nextReady(milestone.id);
327
+ return next?.learnings;
328
+ `);
329
+ assert.ok(result, "Should have learnings");
330
+ const inherited = result;
331
+ assert.ok(inherited.milestone, "Should have milestone learnings");
332
+ assert.equal(inherited.milestone.length, 1, "Should have 1 milestone learning");
333
+ });
334
+ it("should skip blocked subtrees", async () => {
335
+ const result = await executeCode(`
336
+ // Create blocker (separate milestone)
337
+ const blocker = await tasks.create({ description: "Blocker for skip test", priority: 1 });
338
+
339
+ // Create blocked milestone (high priority)
340
+ const blockedM = await tasks.create({
341
+ description: "Blocked M for skip test",
342
+ priority: 5,
343
+ blockedBy: [blocker.id]
344
+ });
345
+ const blockedTask = await tasks.create({
346
+ description: "Blocked T for skip test",
347
+ parentId: blockedM.id,
348
+ priority: 5
349
+ });
350
+
351
+ // nextReady within the blocked milestone should return null
352
+ const nextInBlocked = await tasks.nextReady(blockedM.id);
353
+
354
+ return {
355
+ blockedMilestoneNext: nextInBlocked,
356
+ blockedTaskId: blockedTask.id
357
+ };
358
+ `);
359
+ const res = result;
360
+ // nextReady within blocked milestone should return null
361
+ assert.equal(res.blockedMilestoneNext, null, "nextReady in blocked milestone should return null");
362
+ });
363
+ });
227
364
  describe("Learnings API", () => {
228
- it("should add and list learnings", async () => {
365
+ it("should add learnings via complete and list them", async () => {
229
366
  const result = await executeCode(`
230
- const task = await tasks.create({ description: "Task with learning" });
367
+ const parent = await tasks.create({ description: "Parent" });
368
+ const task = await tasks.create({
369
+ description: "Task with learning",
370
+ parentId: parent.id
371
+ });
231
372
 
232
- const learning = await learnings.add(
233
- task.id,
234
- "Use TypeScript for type safety"
235
- );
373
+ // Add learnings via complete
374
+ await tasks.complete(task.id, {
375
+ learnings: ["Use TypeScript for type safety"]
376
+ });
236
377
 
378
+ // Learnings should be on task
237
379
  const list = await learnings.list(task.id);
238
380
 
239
- return { learning, list };
381
+ return { list, content: list[0]?.content };
240
382
  `);
241
383
  assert.ok(result);
242
- const { learning, list } = result;
243
- assert.ok(learning.id);
384
+ const { list, content } = result;
244
385
  assert.ok(Array.isArray(list));
245
386
  assert.equal(list.length, 1);
387
+ assert.equal(content, "Use TypeScript for type safety");
246
388
  });
247
- it("should delete learning", async () => {
389
+ it("should bubble learnings to parent on complete", async () => {
248
390
  const result = await executeCode(`
249
- const task = await tasks.create({ description: "Task" });
250
- const learning = await learnings.add(task.id, "Test learning");
391
+ const parent = await tasks.create({ description: "Parent" });
392
+ const task = await tasks.create({
393
+ description: "Task",
394
+ parentId: parent.id
395
+ });
251
396
 
252
- await learnings.delete(learning.id);
253
- const list = await learnings.list(task.id);
397
+ // Complete with learning - should bubble to parent
398
+ await tasks.complete(task.id, { learnings: ["Test learning"] });
399
+
400
+ // Parent should have the learning
401
+ const parentLearnings = await learnings.list(parent.id);
254
402
 
255
- return list.length;
403
+ return {
404
+ parentCount: parentLearnings.length,
405
+ content: parentLearnings[0]?.content
406
+ };
256
407
  `);
257
- assert.equal(result, 0);
408
+ const res = result;
409
+ assert.equal(res.parentCount, 1);
410
+ assert.equal(res.content, "Test learning");
258
411
  });
259
412
  it("should include learnings in task get", async () => {
260
413
  const result = await executeCode(`
261
414
  const milestone = await tasks.create({
262
415
  description: "Milestone"
263
416
  });
264
- await learnings.add(milestone.id, "Milestone learning");
265
417
 
266
- const task = await tasks.create({
267
- description: "Task",
418
+ // Create task and sibling to prevent milestone auto-complete
419
+ const task1 = await tasks.create({
420
+ description: "Task 1",
421
+ parentId: milestone.id
422
+ });
423
+ const task2 = await tasks.create({
424
+ description: "Task 2",
268
425
  parentId: milestone.id
269
426
  });
270
427
 
271
- const fetched = await tasks.get(task.id);
428
+ // Complete task1 with learning - bubbles to milestone
429
+ await tasks.complete(task1.id, { learnings: ["Milestone learning"] });
430
+
431
+ // task2 should inherit milestone learnings
432
+ const fetched = await tasks.get(task2.id);
272
433
  return fetched.learnings;
273
434
  `);
274
435
  assert.ok(result);
@@ -337,41 +498,45 @@ describe("Integration Tests", () => {
337
498
  priority: 1
338
499
  });
339
500
 
340
- // Add milestone learning
341
- await learnings.add(milestone.id, "Follow existing patterns");
342
-
343
- // Create subtask
344
- const task = await tasks.create({
501
+ // Create tasks (sibling to prevent auto-complete of milestone)
502
+ const task1 = await tasks.create({
345
503
  description: "Implement core logic",
346
504
  context: "Handle edge cases",
347
505
  parentId: milestone.id,
348
506
  priority: 2
349
507
  });
508
+ const task2 = await tasks.create({
509
+ description: "Write tests",
510
+ parentId: milestone.id,
511
+ priority: 3
512
+ });
350
513
 
351
514
  // Get task with inherited context
352
- const fetched = await tasks.get(task.id);
515
+ const fetched = await tasks.get(task1.id);
353
516
 
354
- // Start and complete task
355
- await tasks.start(task.id);
356
- await tasks.complete(task.id, "Implemented successfully");
357
-
358
- // Add learning
359
- await learnings.add(task.id, "Consider performance", task.id);
517
+ // Start and complete task1 with learning - bubbles to milestone
518
+ await tasks.start(task1.id);
519
+ await tasks.complete(task1.id, {
520
+ result: "Implemented successfully",
521
+ learnings: ["Follow existing patterns", "Consider performance"]
522
+ });
360
523
 
361
- // Get final state
362
- const final = await tasks.get(task.id);
524
+ // task2 should see learnings via milestone
525
+ const task2WithContext = await tasks.get(task2.id);
363
526
 
364
527
  return {
365
- hasContext: !!final.context.milestone,
366
- hasLearnings: final.learnings.milestone.length > 0,
367
- isCompleted: final.completed
528
+ hasContext: !!task2WithContext.context.milestone,
529
+ hasLearnings: task2WithContext.learnings.milestone.length > 0,
530
+ learningCount: task2WithContext.learnings.milestone.length,
531
+ isTask1Completed: (await tasks.get(task1.id)).completed
368
532
  };
369
533
  `);
370
534
  assert.ok(result);
371
535
  const workflow = result;
372
536
  assert.equal(workflow.hasContext, true);
373
537
  assert.equal(workflow.hasLearnings, true);
374
- assert.equal(workflow.isCompleted, true);
538
+ assert.equal(workflow.learningCount, 2);
539
+ assert.equal(workflow.isTask1Completed, true);
375
540
  });
376
541
  });
377
542
  });
@@ -1 +1 @@
1
- {"version":3,"file":"integration.test.js","sourceRoot":"","sources":["../../src/tests/integration.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"integration.test.js","sourceRoot":"","sources":["../../src/tests/integration.test.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -13,20 +13,38 @@ export declare function isTaskId(s: string): s is TaskId;
13
13
  export declare function isLearningId(s: string): s is LearningId;
14
14
  export declare function parseTaskId(s: string): TaskId;
15
15
  export declare function parseLearningId(s: string): LearningId;
16
+ /**
17
+ * Task context chain (inherited from hierarchy)
18
+ */
19
+ export interface TaskContext {
20
+ own: string;
21
+ parent?: string;
22
+ milestone?: string;
23
+ }
24
+ /**
25
+ * Inherited learnings from parent/milestone
26
+ */
27
+ export interface InheritedLearnings {
28
+ milestone: Learning[];
29
+ parent: Learning[];
30
+ }
31
+ /**
32
+ * Priority levels (enforced by Rust, 1-5)
33
+ */
34
+ export type Priority = 1 | 2 | 3 | 4 | 5;
35
+ /**
36
+ * Task depth (0=milestone, 1=task, 2=subtask)
37
+ */
38
+ export type Depth = 0 | 1 | 2;
39
+ /**
40
+ * Task returned from list/create/update/start/complete/reopen
41
+ * Does NOT include context chain or inherited learnings
42
+ */
16
43
  export interface Task {
17
44
  id: TaskId;
18
45
  parentId: TaskId | null;
19
46
  description: string;
20
- context: {
21
- own: string;
22
- parent?: string;
23
- milestone?: string;
24
- };
25
- learnings: {
26
- milestone: Learning[];
27
- parent: Learning[];
28
- };
29
- priority: 1 | 2 | 3 | 4 | 5;
47
+ priority: Priority;
30
48
  completed: boolean;
31
49
  completedAt: string | null;
32
50
  startedAt: string | null;
@@ -34,9 +52,18 @@ export interface Task {
34
52
  updatedAt: string;
35
53
  result: string | null;
36
54
  commitSha: string | null;
37
- depth: 0 | 1 | 2;
38
- blockedBy: TaskId[];
39
- blocks: TaskId[];
55
+ depth: Depth;
56
+ blockedBy?: TaskId[];
57
+ blocks?: TaskId[];
58
+ bookmark?: string;
59
+ startCommit?: string;
60
+ }
61
+ /**
62
+ * Task returned from get/nextReady - includes context chain and inherited learnings
63
+ */
64
+ export interface TaskWithContext extends Task {
65
+ context: TaskContext;
66
+ learnings: InheritedLearnings;
40
67
  }
41
68
  export interface Learning {
42
69
  id: LearningId;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,CAAC,MAAM,WAAW,EAAE,OAAO,MAAM,CAAC;AACzC,OAAO,CAAC,MAAM,eAAe,EAAE,OAAO,MAAM,CAAC;AAE7C,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,CAAC,WAAW,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AAChE,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,CAAC,eAAe,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AAGxE,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,IAAI,MAAM,CAE/C;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,IAAI,UAAU,CAEvD;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAK7C;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG,UAAU,CAKrD;AAED,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE;QACP,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,SAAS,EAAE;QACT,SAAS,EAAE,QAAQ,EAAE,CAAC;QACtB,MAAM,EAAE,QAAQ,EAAE,CAAC;KACpB,CAAC;IACF,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACjB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,UAAU,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,qBAAa,QAAS,SAAQ,KAAK;IAGxB,QAAQ,EAAE,MAAM;IAChB,MAAM,EAAE,MAAM;gBAFrB,OAAO,EAAE,MAAM,EACR,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM;CAKxB;AAED,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,OAAO,SAA8B;CAIlD"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,CAAC,MAAM,WAAW,EAAE,OAAO,MAAM,CAAC;AACzC,OAAO,CAAC,MAAM,eAAe,EAAE,OAAO,MAAM,CAAC;AAE7C,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,CAAC,WAAW,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AAChE,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,CAAC,eAAe,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AAGxE,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,IAAI,MAAM,CAE/C;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,IAAI,UAAU,CAEvD;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAK7C;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG,UAAU,CAKrD;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,MAAM,EAAE,QAAQ,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAEzC;;GAEG;AACH,MAAM,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE9B;;;GAGG;AACH,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,KAAK,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,IAAI;IAC3C,OAAO,EAAE,WAAW,CAAC;IACrB,SAAS,EAAE,kBAAkB,CAAC;CAC/B;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,UAAU,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,qBAAa,QAAS,SAAQ,KAAK;IAGxB,QAAQ,EAAE,MAAM;IAChB,MAAM,EAAE,MAAM;gBAFrB,OAAO,EAAE,MAAM,EACR,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM;CAKxB;AAED,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,OAAO,SAA8B;CAIlD"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,qBAAqB;AACrB,MAAM,UAAU,QAAQ,CAAC,CAAS;IAChC,OAAO,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,0BAA0B;AAC7E,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,CAAS;IACpC,OAAO,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,yBAAyB;AAC3E,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,CAAS;IACnC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,CAAS;IACvC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAoCD;;GAEG;AACH,MAAM,OAAO,QAAS,SAAQ,KAAK;IAGxB;IACA;IAHT,YACE,OAAe,EACR,QAAgB,EAChB,MAAc;QAErB,KAAK,CAAC,OAAO,CAAC,CAAC;QAHR,aAAQ,GAAR,QAAQ,CAAQ;QAChB,WAAM,GAAN,MAAM,CAAQ;QAGrB,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACxC,YAAY,OAAO,GAAG,2BAA2B;QAC/C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,qBAAqB;AACrB,MAAM,UAAU,QAAQ,CAAC,CAAS;IAChC,OAAO,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,0BAA0B;AAC7E,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,CAAS;IACpC,OAAO,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,yBAAyB;AAC3E,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,CAAS;IACnC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,CAAS;IACvC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAoED;;GAEG;AACH,MAAM,OAAO,QAAS,SAAQ,KAAK;IAGxB;IACA;IAHT,YACE,OAAe,EACR,QAAgB,EAChB,MAAc;QAErB,KAAK,CAAC,OAAO,CAAC,CAAC;QAHR,aAAQ,GAAR,QAAQ,CAAQ;QAChB,WAAM,GAAN,MAAM,CAAQ;QAGrB,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACxC,YAAY,OAAO,GAAG,2BAA2B;QAC/C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dmmulroy/overseer",
3
- "version": "0.2.2",
3
+ "version": "0.3.0",
4
4
  "description": "Codemode MCP server for agent task management",
5
5
  "type": "module",
6
6
  "bin": {
@@ -15,12 +15,12 @@
15
15
  "postinstall": "node ./bin/postinstall.mjs"
16
16
  },
17
17
  "optionalDependencies": {
18
- "@dmmulroy/overseer-darwin-arm64": "0.2.2",
19
- "@dmmulroy/overseer-darwin-x64": "0.2.2",
20
- "@dmmulroy/overseer-linux-arm64": "0.2.2",
21
- "@dmmulroy/overseer-linux-x64": "0.2.2",
22
- "@dmmulroy/overseer-linux-arm64-musl": "0.2.2",
23
- "@dmmulroy/overseer-linux-x64-musl": "0.2.2"
18
+ "@dmmulroy/overseer-darwin-arm64": "0.3.0",
19
+ "@dmmulroy/overseer-darwin-x64": "0.3.0",
20
+ "@dmmulroy/overseer-linux-arm64": "0.3.0",
21
+ "@dmmulroy/overseer-linux-x64": "0.3.0",
22
+ "@dmmulroy/overseer-linux-arm64-musl": "0.3.0",
23
+ "@dmmulroy/overseer-linux-x64-musl": "0.3.0"
24
24
  },
25
25
  "dependencies": {
26
26
  "@modelcontextprotocol/sdk": "^1.0.4"