@hasna/todos 0.11.83 → 0.11.84
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/dist/cli/cloud-router.d.ts +126 -1
- package/dist/cli/cloud-router.d.ts.map +1 -1
- package/dist/cli/commands/agent-commands.d.ts.map +1 -1
- package/dist/cli/commands/query-commands.d.ts.map +1 -1
- package/dist/cli/index.js +402 -60
- package/dist/index.js +2 -1
- package/dist/mcp/index.js +38 -1
- package/dist/release-provenance.json +3 -3
- package/dist/server/index.js +38 -1
- package/dist/server/v1.d.ts.map +1 -1
- package/dist/storage/interfaces.d.ts +6 -0
- package/dist/storage/interfaces.d.ts.map +1 -1
- package/dist/storage/postgres-adapter.d.ts.map +1 -1
- package/dist/storage.js +2 -1
- package/package.json +1 -1
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
* subnet routing — pure API-client path per the locked architecture.
|
|
22
22
|
*/
|
|
23
23
|
import { type HasnaStorageClient } from "@hasna/contracts/client/storage";
|
|
24
|
-
import type { Agent, Plan, Project, RegisterAgentInput, Task, TaskComment, TaskDependency, TaskFilter } from "../types/index.js";
|
|
24
|
+
import type { Agent, Plan, Project, RegisterAgentInput, Task, TaskComment, TaskDependency, TaskFilter, TaskHistory, TaskList } from "../types/index.js";
|
|
25
25
|
type Env = Record<string, string | undefined>;
|
|
26
26
|
/**
|
|
27
27
|
* Resolve the todos cloud storage client from the environment. Returns a ready
|
|
@@ -150,5 +150,130 @@ export declare function cloudRecordVerification(client: HasnaStorageClient, id:
|
|
|
150
150
|
artifact_path?: string;
|
|
151
151
|
agent_id?: string;
|
|
152
152
|
}): Promise<CloudTaskVerification>;
|
|
153
|
+
/** All non-terminal tasks (pending + in_progress) — the "active" working set. */
|
|
154
|
+
export declare function cloudActiveTasks(client: HasnaStorageClient, filter?: TaskFilter): Promise<Task[]>;
|
|
155
|
+
/** In-progress tasks, priority- then recency-sorted (parity with `getActiveWork`). */
|
|
156
|
+
export declare function cloudActiveWork(client: HasnaStorageClient, filter?: TaskFilter): Promise<Task[]>;
|
|
157
|
+
/** In-progress tasks whose last update (or lock) is older than `minutes` (parity with `getStaleTasks`). */
|
|
158
|
+
export declare function cloudStaleTasks(client: HasnaStorageClient, minutes: number, filter?: TaskFilter): Promise<Task[]>;
|
|
159
|
+
/** Non-terminal tasks past their due date (parity with `getOverdueTasks`). */
|
|
160
|
+
export declare function cloudOverdueTasks(client: HasnaStorageClient, projectId?: string, at?: Date): Promise<Task[]>;
|
|
161
|
+
export interface CloudEscalatedTask {
|
|
162
|
+
task: Task;
|
|
163
|
+
reasons: Array<"overdue" | "sla_breached">;
|
|
164
|
+
breached_at: string;
|
|
165
|
+
}
|
|
166
|
+
/** Overdue or SLA-breached non-terminal tasks (parity with `getEscalatedTasks`). */
|
|
167
|
+
export declare function cloudEscalatedTasks(client: HasnaStorageClient, opts?: {
|
|
168
|
+
project_id?: string;
|
|
169
|
+
agent_id?: string;
|
|
170
|
+
}, at?: Date): Promise<CloudEscalatedTask[]>;
|
|
171
|
+
/** Tasks updated since `since` (parity with `getTasksChangedSince`). */
|
|
172
|
+
export declare function cloudChangedSince(client: HasnaStorageClient, since: string, filter?: TaskFilter): Promise<Task[]>;
|
|
173
|
+
export interface CloudTaskStats {
|
|
174
|
+
total: number;
|
|
175
|
+
by_status: Record<string, number>;
|
|
176
|
+
by_priority: Record<string, number>;
|
|
177
|
+
completion_rate: number;
|
|
178
|
+
by_agent: Record<string, number>;
|
|
179
|
+
}
|
|
180
|
+
/** Task counts grouped by status/priority/agent (parity with `getTaskStats`). */
|
|
181
|
+
export declare function cloudTaskStats(client: HasnaStorageClient, filter?: TaskFilter): Promise<CloudTaskStats>;
|
|
182
|
+
/**
|
|
183
|
+
* Recent task-history entries (`GET /v1/activity`). Powers `log` and `burndown`.
|
|
184
|
+
* Requires the `/v1/activity` server route (ECS redeploy).
|
|
185
|
+
*/
|
|
186
|
+
export declare function cloudRecentActivity(client: HasnaStorageClient, limit?: number): Promise<TaskHistory[]>;
|
|
187
|
+
/**
|
|
188
|
+
* Task lists (`GET /v1/task-lists`). Powers `lists`. Requires the
|
|
189
|
+
* `/v1/task-lists` server route (ECS redeploy).
|
|
190
|
+
*/
|
|
191
|
+
export declare function cloudListTaskLists(client: HasnaStorageClient, projectId?: string): Promise<TaskList[]>;
|
|
192
|
+
/**
|
|
193
|
+
* The single best pending task to work on next (`GET /v1/next`) — the server
|
|
194
|
+
* applies the same agent-affinity + priority ranking + blocked-exclusion as the
|
|
195
|
+
* local `getNextTask`. Powers `next`. Requires the `/v1/next` route (ECS redeploy).
|
|
196
|
+
*/
|
|
197
|
+
export declare function cloudNextTask(client: HasnaStorageClient, agent?: string, filters?: {
|
|
198
|
+
project_id?: string;
|
|
199
|
+
task_list_id?: string;
|
|
200
|
+
plan_id?: string;
|
|
201
|
+
}): Promise<Task | null>;
|
|
202
|
+
/**
|
|
203
|
+
* Every dependency edge in the shared dataset (`GET /v1/dependencies`). Edges are
|
|
204
|
+
* far fewer than tasks, so this stays cheap even on the full cloud set. Powers the
|
|
205
|
+
* blocked/ready/sprint/recap dependency analytics. Requires the `/v1/dependencies`
|
|
206
|
+
* route (ECS redeploy).
|
|
207
|
+
*/
|
|
208
|
+
export declare function cloudAllDependencies(client: HasnaStorageClient): Promise<TaskDependency[]>;
|
|
209
|
+
/** Fetch a set of tasks by id via bounded parallel `GET /v1/tasks/:id`. */
|
|
210
|
+
export declare function cloudGetTasksByIds(client: HasnaStorageClient, ids: readonly string[]): Promise<Map<string, Task>>;
|
|
211
|
+
/**
|
|
212
|
+
* For each candidate task, its incomplete blocking dependencies (parity with
|
|
213
|
+
* `getBlockingDeps`): the tasks it depends on whose status is not `completed`.
|
|
214
|
+
*/
|
|
215
|
+
export declare function cloudBlockingDepsMap(client: HasnaStorageClient, candidates: readonly Task[]): Promise<Map<string, Task[]>>;
|
|
216
|
+
export interface CloudRecapSummary {
|
|
217
|
+
hours: number;
|
|
218
|
+
since: string;
|
|
219
|
+
completed: Array<Task & {
|
|
220
|
+
duration_minutes: number | null;
|
|
221
|
+
}>;
|
|
222
|
+
created: Task[];
|
|
223
|
+
in_progress: Task[];
|
|
224
|
+
blocked: Task[];
|
|
225
|
+
stale: Task[];
|
|
226
|
+
agents: {
|
|
227
|
+
name: string;
|
|
228
|
+
completed_count: number;
|
|
229
|
+
in_progress_count: number;
|
|
230
|
+
last_seen_at: string;
|
|
231
|
+
}[];
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* The `recap`/`standup` summary computed over the shared cloud dataset (parity
|
|
235
|
+
* with `getRecap`): completed/created in the window, current in-progress, blocked
|
|
236
|
+
* (incomplete deps), stale, and per-agent activity. Uses `/v1/dependencies` for
|
|
237
|
+
* the blocked set and `/v1/agents` for the roster.
|
|
238
|
+
*/
|
|
239
|
+
export declare function cloudRecap(client: HasnaStorageClient, hours: number, projectId?: string): Promise<CloudRecapSummary>;
|
|
240
|
+
export interface CloudTimelineEntry {
|
|
241
|
+
id: string;
|
|
242
|
+
source: string;
|
|
243
|
+
event_type: string;
|
|
244
|
+
entity_type: "task";
|
|
245
|
+
entity_id: string;
|
|
246
|
+
task_id: string;
|
|
247
|
+
project_id: string | null;
|
|
248
|
+
plan_id: string | null;
|
|
249
|
+
run_id: string | null;
|
|
250
|
+
agent_id: string | null;
|
|
251
|
+
created_at: string;
|
|
252
|
+
title: string;
|
|
253
|
+
message: string | null;
|
|
254
|
+
metadata: Record<string, unknown>;
|
|
255
|
+
}
|
|
256
|
+
export interface CloudTimelinePage {
|
|
257
|
+
entries: CloudTimelineEntry[];
|
|
258
|
+
total: number;
|
|
259
|
+
limit: number;
|
|
260
|
+
offset: number;
|
|
261
|
+
}
|
|
262
|
+
export interface CloudTimelineOptions {
|
|
263
|
+
entity_type?: "task" | "run" | "project" | "plan";
|
|
264
|
+
entity_id?: string;
|
|
265
|
+
since?: string;
|
|
266
|
+
until?: string;
|
|
267
|
+
limit?: number;
|
|
268
|
+
offset?: number;
|
|
269
|
+
order?: "asc" | "desc";
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* A cloud activity timeline built from the shared task-history ledger
|
|
273
|
+
* (`GET /v1/activity`). The shared cloud dataset only carries task history (not the
|
|
274
|
+
* local run-ledger / project / plan sources), so `entity_type` filters other than
|
|
275
|
+
* `task` return no rows — a documented degradation from the richer local timeline.
|
|
276
|
+
*/
|
|
277
|
+
export declare function cloudTimeline(client: HasnaStorageClient, options?: CloudTimelineOptions): Promise<CloudTimelinePage>;
|
|
153
278
|
export {};
|
|
154
279
|
//# sourceMappingURL=cloud-router.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloud-router.d.ts","sourceRoot":"","sources":["../../src/cli/cloud-router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,EAAwB,KAAK,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAChG,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"cloud-router.d.ts","sourceRoot":"","sources":["../../src/cli/cloud-router.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-commands.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/agent-commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"agent-commands.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/agent-commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,QAiarD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-commands.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/query-commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"query-commands.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/query-commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8OzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,QA++FrD"}
|
package/dist/cli/index.js
CHANGED
|
@@ -8627,9 +8627,230 @@ async function cloudRecordVerification(client, id, input) {
|
|
|
8627
8627
|
}
|
|
8628
8628
|
return raw;
|
|
8629
8629
|
}
|
|
8630
|
-
|
|
8630
|
+
function priorityRank(priority) {
|
|
8631
|
+
return PRIORITY_RANK[priority ?? ""] ?? 4;
|
|
8632
|
+
}
|
|
8633
|
+
async function cloudActiveTasks(client, filter = {}) {
|
|
8634
|
+
const [pending, inProgress] = await Promise.all([
|
|
8635
|
+
cloudListTasks(client, { ...filter, status: "pending" }),
|
|
8636
|
+
cloudListTasks(client, { ...filter, status: "in_progress" })
|
|
8637
|
+
]);
|
|
8638
|
+
return [...pending, ...inProgress];
|
|
8639
|
+
}
|
|
8640
|
+
async function cloudActiveWork(client, filter = {}) {
|
|
8641
|
+
const tasks = await cloudListTasks(client, { ...filter, status: "in_progress" });
|
|
8642
|
+
return tasks.sort((a, b) => priorityRank(a.priority) - priorityRank(b.priority) || (b.updated_at ?? "").localeCompare(a.updated_at ?? ""));
|
|
8643
|
+
}
|
|
8644
|
+
async function cloudStaleTasks(client, minutes, filter = {}) {
|
|
8645
|
+
const cutoff = new Date(Date.now() - minutes * 60 * 1000).toISOString();
|
|
8646
|
+
const tasks = await cloudListTasks(client, { ...filter, status: "in_progress" });
|
|
8647
|
+
return tasks.filter((t) => (t.updated_at ?? "") < cutoff || t.locked_at != null && t.locked_at < cutoff).sort((a, b) => (a.updated_at ?? "").localeCompare(b.updated_at ?? ""));
|
|
8648
|
+
}
|
|
8649
|
+
async function cloudOverdueTasks(client, projectId, at = new Date) {
|
|
8650
|
+
const nowStr = at.toISOString();
|
|
8651
|
+
const filter = projectId ? { project_id: projectId } : {};
|
|
8652
|
+
const active = await cloudActiveTasks(client, filter);
|
|
8653
|
+
return active.filter((t) => !t.archived_at && t.due_at != null && t.due_at < nowStr).sort((a, b) => (a.due_at ?? "").localeCompare(b.due_at ?? ""));
|
|
8654
|
+
}
|
|
8655
|
+
async function cloudEscalatedTasks(client, opts = {}, at = new Date) {
|
|
8656
|
+
const nowMs = at.getTime();
|
|
8657
|
+
const filter = {};
|
|
8658
|
+
if (opts.project_id)
|
|
8659
|
+
filter.project_id = opts.project_id;
|
|
8660
|
+
const active = await cloudActiveTasks(client, filter);
|
|
8661
|
+
return active.filter((t) => !t.archived_at && (opts.agent_id ? t.assigned_to === opts.agent_id : true)).map((task) => {
|
|
8662
|
+
const reasons = [];
|
|
8663
|
+
const breachedTimes = [];
|
|
8664
|
+
if (task.due_at) {
|
|
8665
|
+
const dueMs = new Date(task.due_at).getTime();
|
|
8666
|
+
if (Number.isFinite(dueMs) && dueMs < nowMs) {
|
|
8667
|
+
reasons.push("overdue");
|
|
8668
|
+
breachedTimes.push(dueMs);
|
|
8669
|
+
}
|
|
8670
|
+
}
|
|
8671
|
+
if (task.sla_minutes != null) {
|
|
8672
|
+
const startMs = new Date(task.started_at ?? task.created_at).getTime();
|
|
8673
|
+
const breachedMs = startMs + task.sla_minutes * 60000;
|
|
8674
|
+
if (Number.isFinite(breachedMs) && breachedMs < nowMs) {
|
|
8675
|
+
reasons.push("sla_breached");
|
|
8676
|
+
breachedTimes.push(breachedMs);
|
|
8677
|
+
}
|
|
8678
|
+
}
|
|
8679
|
+
if (reasons.length === 0)
|
|
8680
|
+
return null;
|
|
8681
|
+
return { task, reasons, breached_at: new Date(Math.min(...breachedTimes)).toISOString() };
|
|
8682
|
+
}).filter((item) => item !== null).sort((a, b) => (a.task.due_at ?? "").localeCompare(b.task.due_at ?? "") || a.task.created_at.localeCompare(b.task.created_at));
|
|
8683
|
+
}
|
|
8684
|
+
async function cloudChangedSince(client, since, filter = {}) {
|
|
8685
|
+
const tasks = await cloudListTasks(client, filter);
|
|
8686
|
+
return tasks.filter((t) => (t.updated_at ?? "") > since).sort((a, b) => (b.updated_at ?? "").localeCompare(a.updated_at ?? ""));
|
|
8687
|
+
}
|
|
8688
|
+
async function cloudTaskStats(client, filter = {}) {
|
|
8689
|
+
const tasks = await cloudListTasks(client, filter);
|
|
8690
|
+
const by_status = {};
|
|
8691
|
+
const by_priority = {};
|
|
8692
|
+
const by_agent = {};
|
|
8693
|
+
for (const t of tasks) {
|
|
8694
|
+
by_status[t.status] = (by_status[t.status] ?? 0) + 1;
|
|
8695
|
+
by_priority[t.priority] = (by_priority[t.priority] ?? 0) + 1;
|
|
8696
|
+
const agent = t.assigned_to ?? t.agent_id ?? "unassigned";
|
|
8697
|
+
by_agent[agent] = (by_agent[agent] ?? 0) + 1;
|
|
8698
|
+
}
|
|
8699
|
+
const completed = by_status["completed"] ?? 0;
|
|
8700
|
+
return {
|
|
8701
|
+
total: tasks.length,
|
|
8702
|
+
by_status,
|
|
8703
|
+
by_priority,
|
|
8704
|
+
by_agent,
|
|
8705
|
+
completion_rate: tasks.length > 0 ? Math.round(completed / tasks.length * 100) : 0
|
|
8706
|
+
};
|
|
8707
|
+
}
|
|
8708
|
+
async function cloudRecentActivity(client, limit = 50) {
|
|
8709
|
+
const raw = await client.transport.get("/activity", { query: { limit } });
|
|
8710
|
+
const envelope = raw ?? {};
|
|
8711
|
+
if (Array.isArray(envelope.activity))
|
|
8712
|
+
return envelope.activity;
|
|
8713
|
+
if (Array.isArray(envelope.entries))
|
|
8714
|
+
return envelope.entries;
|
|
8715
|
+
return Array.isArray(raw) ? raw : [];
|
|
8716
|
+
}
|
|
8717
|
+
async function cloudListTaskLists(client, projectId) {
|
|
8718
|
+
const query = projectId ? { project_id: projectId } : {};
|
|
8719
|
+
const raw = await client.transport.get("/task-lists", { query });
|
|
8720
|
+
const envelope = raw ?? {};
|
|
8721
|
+
if (Array.isArray(envelope.task_lists))
|
|
8722
|
+
return envelope.task_lists;
|
|
8723
|
+
if (Array.isArray(envelope.taskLists))
|
|
8724
|
+
return envelope.taskLists;
|
|
8725
|
+
return Array.isArray(raw) ? raw : [];
|
|
8726
|
+
}
|
|
8727
|
+
async function cloudNextTask(client, agent, filters) {
|
|
8728
|
+
const query = {};
|
|
8729
|
+
if (agent)
|
|
8730
|
+
query["agent"] = agent;
|
|
8731
|
+
if (filters?.project_id)
|
|
8732
|
+
query["project_id"] = filters.project_id;
|
|
8733
|
+
if (filters?.task_list_id)
|
|
8734
|
+
query["task_list_id"] = filters.task_list_id;
|
|
8735
|
+
if (filters?.plan_id)
|
|
8736
|
+
query["plan_id"] = filters.plan_id;
|
|
8737
|
+
const raw = await client.transport.get("/next", { query });
|
|
8738
|
+
if (raw == null)
|
|
8739
|
+
return null;
|
|
8740
|
+
const task = unwrapTask(raw);
|
|
8741
|
+
return task && task.id ? task : null;
|
|
8742
|
+
}
|
|
8743
|
+
async function cloudAllDependencies(client) {
|
|
8744
|
+
const raw = await client.transport.get("/dependencies");
|
|
8745
|
+
const envelope = raw ?? {};
|
|
8746
|
+
if (Array.isArray(envelope.dependencies))
|
|
8747
|
+
return envelope.dependencies;
|
|
8748
|
+
return Array.isArray(raw) ? raw : [];
|
|
8749
|
+
}
|
|
8750
|
+
async function cloudGetTasksByIds(client, ids) {
|
|
8751
|
+
const unique = Array.from(new Set(ids));
|
|
8752
|
+
const map = new Map;
|
|
8753
|
+
const CONCURRENCY = 8;
|
|
8754
|
+
for (let i = 0;i < unique.length; i += CONCURRENCY) {
|
|
8755
|
+
const batch = unique.slice(i, i + CONCURRENCY);
|
|
8756
|
+
const tasks = await Promise.all(batch.map((id) => cloudGetTask(client, id)));
|
|
8757
|
+
for (const task of tasks)
|
|
8758
|
+
if (task && task.id)
|
|
8759
|
+
map.set(task.id, task);
|
|
8760
|
+
}
|
|
8761
|
+
return map;
|
|
8762
|
+
}
|
|
8763
|
+
async function cloudBlockingDepsMap(client, candidates) {
|
|
8764
|
+
const result = new Map;
|
|
8765
|
+
if (candidates.length === 0)
|
|
8766
|
+
return result;
|
|
8767
|
+
const edges = await cloudAllDependencies(client);
|
|
8768
|
+
const dependsByTask = new Map;
|
|
8769
|
+
for (const edge of edges) {
|
|
8770
|
+
if (!edge.task_id || !edge.depends_on)
|
|
8771
|
+
continue;
|
|
8772
|
+
const arr = dependsByTask.get(edge.task_id) ?? [];
|
|
8773
|
+
arr.push(edge.depends_on);
|
|
8774
|
+
dependsByTask.set(edge.task_id, arr);
|
|
8775
|
+
}
|
|
8776
|
+
const candidateIds = new Set(candidates.map((t) => t.id));
|
|
8777
|
+
const blockerIds = new Set;
|
|
8778
|
+
for (const id of candidateIds)
|
|
8779
|
+
for (const dep of dependsByTask.get(id) ?? [])
|
|
8780
|
+
blockerIds.add(dep);
|
|
8781
|
+
const blockers = await cloudGetTasksByIds(client, Array.from(blockerIds));
|
|
8782
|
+
for (const task of candidates) {
|
|
8783
|
+
const deps = dependsByTask.get(task.id) ?? [];
|
|
8784
|
+
const incomplete = deps.map((depId) => blockers.get(depId)).filter((b) => b != null && b.status !== "completed");
|
|
8785
|
+
if (incomplete.length > 0)
|
|
8786
|
+
result.set(task.id, incomplete);
|
|
8787
|
+
}
|
|
8788
|
+
return result;
|
|
8789
|
+
}
|
|
8790
|
+
async function cloudRecap(client, hours, projectId) {
|
|
8791
|
+
const since = new Date(Date.now() - hours * 60 * 60 * 1000).toISOString();
|
|
8792
|
+
const staleWindow = new Date(Date.now() - 30 * 60 * 1000).toISOString();
|
|
8793
|
+
const filter = projectId ? { project_id: projectId } : {};
|
|
8794
|
+
const [all, agents] = await Promise.all([cloudListTasks(client, filter), cloudListAgents(client)]);
|
|
8795
|
+
const completed = all.filter((t) => t.status === "completed" && t.completed_at != null && t.completed_at > since).sort((a, b) => (b.completed_at ?? "").localeCompare(a.completed_at ?? "")).map((t) => ({
|
|
8796
|
+
...t,
|
|
8797
|
+
duration_minutes: t.started_at && t.completed_at ? Math.round((new Date(t.completed_at).getTime() - new Date(t.started_at).getTime()) / 60000) : null
|
|
8798
|
+
}));
|
|
8799
|
+
const created = all.filter((t) => t.created_at > since).sort((a, b) => b.created_at.localeCompare(a.created_at));
|
|
8800
|
+
const in_progress = all.filter((t) => t.status === "in_progress").sort((a, b) => (b.updated_at ?? "").localeCompare(a.updated_at ?? ""));
|
|
8801
|
+
const stale = in_progress.filter((t) => (t.updated_at ?? "") < staleWindow).sort((a, b) => (a.updated_at ?? "").localeCompare(b.updated_at ?? ""));
|
|
8802
|
+
const pending = all.filter((t) => t.status === "pending");
|
|
8803
|
+
const blockedMap = await cloudBlockingDepsMap(client, pending);
|
|
8804
|
+
const blocked = pending.filter((t) => blockedMap.has(t.id));
|
|
8805
|
+
const sinceMs = new Date(since).getTime();
|
|
8806
|
+
const agentSummaries = agents.map((agent) => {
|
|
8807
|
+
const owned = all.filter((t) => t.assigned_to === agent.id || t.agent_id === agent.id);
|
|
8808
|
+
return {
|
|
8809
|
+
name: agent.name,
|
|
8810
|
+
completed_count: owned.filter((t) => t.status === "completed" && t.completed_at != null && t.completed_at > since).length,
|
|
8811
|
+
in_progress_count: owned.filter((t) => t.status === "in_progress").length,
|
|
8812
|
+
last_seen_at: agent.last_seen_at
|
|
8813
|
+
};
|
|
8814
|
+
}).filter((a) => a.last_seen_at != null && new Date(a.last_seen_at).getTime() > sinceMs).sort((a, b) => b.completed_count - a.completed_count);
|
|
8815
|
+
return { hours, since, completed, created, in_progress, blocked, stale, agents: agentSummaries };
|
|
8816
|
+
}
|
|
8817
|
+
async function cloudTimeline(client, options = {}) {
|
|
8818
|
+
const activity = await cloudRecentActivity(client, 5000);
|
|
8819
|
+
let entries = activity.map((h) => ({
|
|
8820
|
+
id: h.id,
|
|
8821
|
+
source: "task_history",
|
|
8822
|
+
event_type: h.action,
|
|
8823
|
+
entity_type: "task",
|
|
8824
|
+
entity_id: h.task_id,
|
|
8825
|
+
task_id: h.task_id,
|
|
8826
|
+
project_id: null,
|
|
8827
|
+
plan_id: null,
|
|
8828
|
+
run_id: null,
|
|
8829
|
+
agent_id: h.agent_id ?? null,
|
|
8830
|
+
created_at: h.created_at,
|
|
8831
|
+
title: "",
|
|
8832
|
+
message: h.field ? `${h.field}: ${h.old_value ?? ""}${h.new_value != null ? ` -> ${h.new_value}` : ""}`.trim() : null,
|
|
8833
|
+
metadata: {}
|
|
8834
|
+
}));
|
|
8835
|
+
if (options.entity_type && options.entity_type !== "task") {
|
|
8836
|
+
entries = [];
|
|
8837
|
+
} else if (options.entity_type === "task" && options.entity_id) {
|
|
8838
|
+
entries = entries.filter((e) => e.task_id === options.entity_id);
|
|
8839
|
+
}
|
|
8840
|
+
if (options.since)
|
|
8841
|
+
entries = entries.filter((e) => e.created_at >= options.since);
|
|
8842
|
+
if (options.until)
|
|
8843
|
+
entries = entries.filter((e) => e.created_at <= options.until);
|
|
8844
|
+
entries.sort((a, b) => options.order === "asc" ? a.created_at.localeCompare(b.created_at) : b.created_at.localeCompare(a.created_at));
|
|
8845
|
+
const total = entries.length;
|
|
8846
|
+
const offset = options.offset ?? 0;
|
|
8847
|
+
const limit = options.limit ?? 50;
|
|
8848
|
+
return { entries: entries.slice(offset, offset + limit), total, limit, offset };
|
|
8849
|
+
}
|
|
8850
|
+
var _cache, PRIORITY_RANK;
|
|
8631
8851
|
var init_cloud_router = __esm(() => {
|
|
8632
8852
|
init_storage();
|
|
8853
|
+
PRIORITY_RANK = { critical: 0, high: 1, medium: 2, low: 3 };
|
|
8633
8854
|
});
|
|
8634
8855
|
|
|
8635
8856
|
// src/db/migrations.ts
|
|
@@ -16438,11 +16659,11 @@ function listTasks(filter = {}, db) {
|
|
|
16438
16659
|
}
|
|
16439
16660
|
}
|
|
16440
16661
|
addMetadataConditions(filter.metadata, conditions, params);
|
|
16441
|
-
const
|
|
16662
|
+
const PRIORITY_RANK2 = `CASE priority WHEN 'critical' THEN 0 WHEN 'high' THEN 1 WHEN 'medium' THEN 2 WHEN 'low' THEN 3 END`;
|
|
16442
16663
|
if (filter.cursor) {
|
|
16443
16664
|
try {
|
|
16444
16665
|
const decoded = JSON.parse(Buffer.from(filter.cursor, "base64").toString("utf8"));
|
|
16445
|
-
conditions.push(`(${
|
|
16666
|
+
conditions.push(`(${PRIORITY_RANK2} > ? OR (${PRIORITY_RANK2} = ? AND created_at < ?) OR (${PRIORITY_RANK2} = ? AND created_at = ? AND id > ?))`);
|
|
16446
16667
|
params.push(decoded.p, decoded.p, decoded.c, decoded.p, decoded.c, decoded.i);
|
|
16447
16668
|
} catch {}
|
|
16448
16669
|
}
|
|
@@ -16459,7 +16680,7 @@ function listTasks(filter = {}, db) {
|
|
|
16459
16680
|
params.push(filter.offset);
|
|
16460
16681
|
}
|
|
16461
16682
|
}
|
|
16462
|
-
const rows = d.query(`SELECT * FROM tasks ${where} ORDER BY ${
|
|
16683
|
+
const rows = d.query(`SELECT * FROM tasks ${where} ORDER BY ${PRIORITY_RANK2}, created_at DESC, id ASC${limitClause}`).all(...params);
|
|
16463
16684
|
return rows.map(rowToTask);
|
|
16464
16685
|
}
|
|
16465
16686
|
function getTaskByFingerprint(fingerprint, db) {
|
|
@@ -29707,11 +29928,11 @@ function taskSummary(task, blockers) {
|
|
|
29707
29928
|
const firstLine = task.description?.split(/\r?\n/).map((line) => line.trim()).find(Boolean);
|
|
29708
29929
|
return firstLine || undefined;
|
|
29709
29930
|
}
|
|
29710
|
-
function
|
|
29931
|
+
function priorityRank2(priority) {
|
|
29711
29932
|
return { critical: 0, high: 1, medium: 2, low: 3 }[priority];
|
|
29712
29933
|
}
|
|
29713
29934
|
function sortActionableTasks(a, b) {
|
|
29714
|
-
const priority =
|
|
29935
|
+
const priority = priorityRank2(a.priority) - priorityRank2(b.priority);
|
|
29715
29936
|
if (priority !== 0)
|
|
29716
29937
|
return priority;
|
|
29717
29938
|
return b.updated_at.localeCompare(a.updated_at);
|
|
@@ -33043,14 +33264,15 @@ Use ${chalk5.cyan(`--agent ${result.id}`)} on future commands.`);
|
|
|
33043
33264
|
});
|
|
33044
33265
|
program2.command("agent <name>").description("Show all info about an agent: tasks, status, last seen, stats").option("-j, --json", "Output as JSON").action(async (name, opts) => {
|
|
33045
33266
|
const globalOpts = program2.opts();
|
|
33267
|
+
const cloud = getTodosCloudClient();
|
|
33046
33268
|
const { getAgentByName: findByName } = await Promise.resolve().then(() => (init_agents(), exports_agents));
|
|
33047
|
-
const agent = findByName(name);
|
|
33269
|
+
const agent = cloud ? (await cloudListAgents(cloud)).find((a) => a.name === name || a.id === name) ?? null : findByName(name);
|
|
33048
33270
|
if (!agent) {
|
|
33049
33271
|
console.error(chalk5.red(`Agent not found: ${name}`));
|
|
33050
33272
|
process.exit(1);
|
|
33051
33273
|
}
|
|
33052
|
-
const byAssigned = listTasks({ assigned_to: agent.name });
|
|
33053
|
-
const byId = listTasks({ agent_id: agent.id });
|
|
33274
|
+
const byAssigned = cloud ? await cloudListTasks(cloud, { assigned_to: agent.name }) : listTasks({ assigned_to: agent.name });
|
|
33275
|
+
const byId = cloud ? await cloudListTasks(cloud, { agent_id: agent.id }) : listTasks({ agent_id: agent.id });
|
|
33054
33276
|
const seen = new Set;
|
|
33055
33277
|
const allTasks = [...byAssigned, ...byId].filter((t) => {
|
|
33056
33278
|
if (seen.has(t.id))
|
|
@@ -33188,7 +33410,8 @@ ${isOnline ? chalk5.green("\u25CF") : chalk5.dim("\u25CB")} ${chalk5.bold(agent.
|
|
|
33188
33410
|
console.log(chalk5.green("Task list deleted."));
|
|
33189
33411
|
return;
|
|
33190
33412
|
}
|
|
33191
|
-
const
|
|
33413
|
+
const cloud = getTodosCloudClient();
|
|
33414
|
+
const lists = cloud ? await cloudListTaskLists(cloud, projectId ?? undefined) : listTaskLists(projectId);
|
|
33192
33415
|
if (globalOpts.json) {
|
|
33193
33416
|
output(lists, true);
|
|
33194
33417
|
return;
|
|
@@ -38467,7 +38690,8 @@ function createPostgresTodosStorageAdapter(options) {
|
|
|
38467
38690
|
dependencies: {
|
|
38468
38691
|
add: (taskId, dependsOn, context) => addDependency2(taskId, dependsOn, store, context),
|
|
38469
38692
|
remove: (taskId, dependsOn) => removeDependency2(taskId, dependsOn, store),
|
|
38470
|
-
list: (taskId) => listDependencies(taskId, store)
|
|
38693
|
+
list: (taskId) => listDependencies(taskId, store),
|
|
38694
|
+
listAll: () => store.list("dependencies")
|
|
38471
38695
|
},
|
|
38472
38696
|
verifications: {
|
|
38473
38697
|
add: (input, context) => addVerification(input, store, context),
|
|
@@ -40170,6 +40394,42 @@ async function handleV1Request(req, url) {
|
|
|
40170
40394
|
return agent ? json2({ agent }) : error(404, "agent not found");
|
|
40171
40395
|
}
|
|
40172
40396
|
}
|
|
40397
|
+
if (resource === "activity" && !id) {
|
|
40398
|
+
if (method !== "GET")
|
|
40399
|
+
return error(405, `method ${method} not allowed on /v1/activity`);
|
|
40400
|
+
const limitParam = url.searchParams.get("limit");
|
|
40401
|
+
const limit = limitParam ? Math.max(1, Math.min(1e4, Number(limitParam) || 50)) : 50;
|
|
40402
|
+
const activity = await store.audit.getRecentActivity(limit);
|
|
40403
|
+
return json2({ activity, count: activity.length });
|
|
40404
|
+
}
|
|
40405
|
+
if (resource === "task-lists" && !id) {
|
|
40406
|
+
if (method !== "GET")
|
|
40407
|
+
return error(405, `method ${method} not allowed on /v1/task-lists`);
|
|
40408
|
+
const projectId = url.searchParams.get("project_id") ?? undefined;
|
|
40409
|
+
const taskLists = await store.taskLists.list(projectId);
|
|
40410
|
+
return json2({ task_lists: taskLists, count: taskLists.length });
|
|
40411
|
+
}
|
|
40412
|
+
if (resource === "dependencies" && !id) {
|
|
40413
|
+
if (method !== "GET")
|
|
40414
|
+
return error(405, `method ${method} not allowed on /v1/dependencies`);
|
|
40415
|
+
if (typeof store.dependencies?.listAll !== "function") {
|
|
40416
|
+
return error(501, "dependency edge listing is not supported by this storage backend");
|
|
40417
|
+
}
|
|
40418
|
+
const dependencies = await store.dependencies.listAll();
|
|
40419
|
+
return json2({ dependencies, count: dependencies.length });
|
|
40420
|
+
}
|
|
40421
|
+
if (resource === "next" && !id) {
|
|
40422
|
+
if (method !== "GET")
|
|
40423
|
+
return error(405, `method ${method} not allowed on /v1/next`);
|
|
40424
|
+
const agent = url.searchParams.get("agent") ?? undefined;
|
|
40425
|
+
const filters = {
|
|
40426
|
+
...url.searchParams.get("project_id") ? { project_id: url.searchParams.get("project_id") } : {},
|
|
40427
|
+
...url.searchParams.get("task_list_id") ? { task_list_id: url.searchParams.get("task_list_id") } : {},
|
|
40428
|
+
...url.searchParams.get("plan_id") ? { plan_id: url.searchParams.get("plan_id") } : {}
|
|
40429
|
+
};
|
|
40430
|
+
const task = await store.tasks.getNext(agent, filters);
|
|
40431
|
+
return json2({ task: task ?? null });
|
|
40432
|
+
}
|
|
40173
40433
|
if (resource === "stats" && method === "GET") {
|
|
40174
40434
|
const [tasks, tasksAll, projects] = await Promise.all([
|
|
40175
40435
|
store.tasks.count(),
|
|
@@ -68640,7 +68900,8 @@ function registerQueryCommands(program2) {
|
|
|
68640
68900
|
if (pid)
|
|
68641
68901
|
filters.project_id = pid;
|
|
68642
68902
|
}
|
|
68643
|
-
const
|
|
68903
|
+
const cloud = getTodosCloudClient();
|
|
68904
|
+
const task2 = cloud ? await cloudNextTask(cloud, opts.agent, Object.keys(filters).length ? filters : undefined) : getNextTask(opts.agent, Object.keys(filters).length ? filters : undefined, db);
|
|
68644
68905
|
if (!task2) {
|
|
68645
68906
|
if (json3) {
|
|
68646
68907
|
console.log(JSON.stringify(null));
|
|
@@ -68761,9 +69022,10 @@ Next up:`));
|
|
|
68761
69022
|
console.log(` ${chalk7.cyan(t.short_id || t.id.slice(0, 8))} ${chalk7.yellow(t.priority)} ${t.title}`);
|
|
68762
69023
|
}
|
|
68763
69024
|
});
|
|
68764
|
-
program2.command("recap").description("Show what happened in the last N hours \u2014 completed tasks, new tasks, agent activity, blockers").option("--hours <n>", "Look back N hours (default: 8)", "8").option("--project <id>", "Filter to project").action((opts) => {
|
|
69025
|
+
program2.command("recap").description("Show what happened in the last N hours \u2014 completed tasks, new tasks, agent activity, blockers").option("--hours <n>", "Look back N hours (default: 8)", "8").option("--project <id>", "Filter to project").action(async (opts) => {
|
|
68765
69026
|
const globalOpts = program2.opts();
|
|
68766
|
-
const
|
|
69027
|
+
const cloud = getTodosCloudClient();
|
|
69028
|
+
const recap = cloud ? await cloudRecap(cloud, parseInt(opts.hours, 10), opts.project) : getRecap(parseInt(opts.hours, 10), opts.project);
|
|
68767
69029
|
if (globalOpts.json) {
|
|
68768
69030
|
output(recap, true);
|
|
68769
69031
|
return;
|
|
@@ -68826,11 +69088,12 @@ Agents:`));
|
|
|
68826
69088
|
}
|
|
68827
69089
|
console.log();
|
|
68828
69090
|
});
|
|
68829
|
-
program2.command("standup").description("Generate standup notes \u2014 completed since yesterday, in progress, blocked. Grouped by agent.").option("--since <date>", "ISO date or 'yesterday' (default: yesterday)").option("--project <id>", "Filter to project").action((opts) => {
|
|
69091
|
+
program2.command("standup").description("Generate standup notes \u2014 completed since yesterday, in progress, blocked. Grouped by agent.").option("--since <date>", "ISO date or 'yesterday' (default: yesterday)").option("--project <id>", "Filter to project").action(async (opts) => {
|
|
68830
69092
|
const globalOpts = program2.opts();
|
|
68831
69093
|
const sinceDate = opts.since === "yesterday" || !opts.since ? new Date(Date.now() - 24 * 60 * 60 * 1000) : new Date(opts.since);
|
|
68832
69094
|
const hours = Math.max(1, Math.round((Date.now() - sinceDate.getTime()) / (60 * 60 * 1000)));
|
|
68833
|
-
const
|
|
69095
|
+
const cloud = getTodosCloudClient();
|
|
69096
|
+
const recap = cloud ? await cloudRecap(cloud, hours, opts.project) : getRecap(hours, opts.project);
|
|
68834
69097
|
if (globalOpts.json) {
|
|
68835
69098
|
output(recap, true);
|
|
68836
69099
|
return;
|
|
@@ -68900,7 +69163,8 @@ Blocked:`));
|
|
|
68900
69163
|
const filters = {};
|
|
68901
69164
|
if (opts.project)
|
|
68902
69165
|
filters.project_id = opts.project;
|
|
68903
|
-
const
|
|
69166
|
+
const cloud = getTodosCloudClient();
|
|
69167
|
+
const work = cloud ? await cloudActiveWork(cloud, Object.keys(filters).length ? filters : {}) : getActiveWork(Object.keys(filters).length ? filters : undefined, db);
|
|
68904
69168
|
if (json3) {
|
|
68905
69169
|
console.log(JSON.stringify(work, null, 2));
|
|
68906
69170
|
return;
|
|
@@ -68923,7 +69187,8 @@ Blocked:`));
|
|
|
68923
69187
|
const filters = {};
|
|
68924
69188
|
if (opts.project)
|
|
68925
69189
|
filters.project_id = opts.project;
|
|
68926
|
-
const
|
|
69190
|
+
const cloud = getTodosCloudClient();
|
|
69191
|
+
const tasks = cloud ? await cloudStaleTasks(cloud, parseInt(opts.minutes, 10), Object.keys(filters).length ? filters : {}) : getStaleTasks(parseInt(opts.minutes, 10), Object.keys(filters).length ? filters : undefined, db);
|
|
68927
69192
|
if (json3) {
|
|
68928
69193
|
console.log(JSON.stringify(tasks, null, 2));
|
|
68929
69194
|
return;
|
|
@@ -69075,12 +69340,13 @@ No task claimed (nothing available).`));
|
|
|
69075
69340
|
filter.project_id = projectId;
|
|
69076
69341
|
if (opts.agent)
|
|
69077
69342
|
filter.assigned_to = opts.agent;
|
|
69343
|
+
const cloud = getTodosCloudClient();
|
|
69078
69344
|
const { getTasksChangedSince: getTasksChangedSince2 } = await Promise.resolve().then(() => (init_tasks(), exports_tasks));
|
|
69079
|
-
const changed = getTasksChangedSince2(since, Object.keys(filter).length ? filter : undefined, db);
|
|
69345
|
+
const changed = cloud ? await cloudChangedSince(cloud, since, filter) : getTasksChangedSince2(since, Object.keys(filter).length ? filter : undefined, db);
|
|
69080
69346
|
const completed = changed.filter((t) => t.status === "completed");
|
|
69081
69347
|
const inProgress = changed.filter((t) => t.status === "in_progress");
|
|
69082
69348
|
const failed = changed.filter((t) => t.status === "failed");
|
|
69083
|
-
const allTasks = listTasks({ ...filter, status: "pending" });
|
|
69349
|
+
const allTasks = cloud ? await cloudListTasks(cloud, { ...filter, status: "pending" }) : listTasks({ ...filter, status: "pending" });
|
|
69084
69350
|
if (opts.json || globalOpts.json) {
|
|
69085
69351
|
console.log(JSON.stringify({ completed, in_progress: inProgress, failed, pending: allTasks.length, period_days: days }, null, 2));
|
|
69086
69352
|
return;
|
|
@@ -69347,12 +69613,13 @@ Findings`));
|
|
|
69347
69613
|
const filter = {};
|
|
69348
69614
|
if (projectId)
|
|
69349
69615
|
filter.project_id = projectId;
|
|
69616
|
+
const cloud = getTodosCloudClient();
|
|
69350
69617
|
const { getTasksChangedSince: getTasksChangedSince2, getTaskStats: getTaskStats2 } = await Promise.resolve().then(() => (init_tasks(), exports_tasks));
|
|
69351
|
-
const changed = getTasksChangedSince2(since, Object.keys(filter).length ? filter : undefined, db);
|
|
69618
|
+
const changed = cloud ? await cloudChangedSince(cloud, since, filter) : getTasksChangedSince2(since, Object.keys(filter).length ? filter : undefined, db);
|
|
69352
69619
|
const completed = changed.filter((t) => t.status === "completed");
|
|
69353
69620
|
const failed = changed.filter((t) => t.status === "failed");
|
|
69354
|
-
const all = listTasks(filter);
|
|
69355
|
-
const stats2 = getTaskStats2(Object.keys(filter).length ? filter : undefined, db);
|
|
69621
|
+
const all = cloud ? await cloudListTasks(cloud, filter) : listTasks(filter);
|
|
69622
|
+
const stats2 = cloud ? await cloudTaskStats(cloud, filter) : getTaskStats2(Object.keys(filter).length ? filter : undefined, db);
|
|
69356
69623
|
const byDay = {};
|
|
69357
69624
|
for (const t of changed) {
|
|
69358
69625
|
const day = t.updated_at.slice(0, 10);
|
|
@@ -69406,10 +69673,11 @@ Findings`));
|
|
|
69406
69673
|
program2.command("today").description("Show task activity from today").option("-j, --json", "Output as JSON").action(async (opts) => {
|
|
69407
69674
|
const globalOpts = program2.opts();
|
|
69408
69675
|
const db = getDatabase();
|
|
69676
|
+
const cloud = getTodosCloudClient();
|
|
69409
69677
|
const { getTasksChangedSince: getTasksChangedSince2 } = await Promise.resolve().then(() => (init_tasks(), exports_tasks));
|
|
69410
69678
|
const start = new Date;
|
|
69411
69679
|
start.setHours(0, 0, 0, 0);
|
|
69412
|
-
const tasks = getTasksChangedSince2(start.toISOString(), undefined, db);
|
|
69680
|
+
const tasks = cloud ? await cloudChangedSince(cloud, start.toISOString()) : getTasksChangedSince2(start.toISOString(), undefined, db);
|
|
69413
69681
|
const completed = tasks.filter((t) => t.status === "completed");
|
|
69414
69682
|
const started = tasks.filter((t) => t.status === "in_progress");
|
|
69415
69683
|
const other = tasks.filter((t) => t.status !== "completed" && t.status !== "in_progress");
|
|
@@ -69436,13 +69704,14 @@ Findings`));
|
|
|
69436
69704
|
program2.command("yesterday").description("Show task activity from yesterday").option("-j, --json", "Output as JSON").action(async (opts) => {
|
|
69437
69705
|
const globalOpts = program2.opts();
|
|
69438
69706
|
const db = getDatabase();
|
|
69707
|
+
const cloud = getTodosCloudClient();
|
|
69439
69708
|
const { getTasksChangedSince: getTasksChangedSince2 } = await Promise.resolve().then(() => (init_tasks(), exports_tasks));
|
|
69440
69709
|
const start = new Date;
|
|
69441
69710
|
start.setDate(start.getDate() - 1);
|
|
69442
69711
|
start.setHours(0, 0, 0, 0);
|
|
69443
69712
|
const end = new Date(start);
|
|
69444
69713
|
end.setHours(23, 59, 59, 999);
|
|
69445
|
-
const allChanged = getTasksChangedSince2(start.toISOString(), undefined, db);
|
|
69714
|
+
const allChanged = cloud ? await cloudChangedSince(cloud, start.toISOString()) : getTasksChangedSince2(start.toISOString(), undefined, db);
|
|
69446
69715
|
const tasks = allChanged.filter((t) => t.updated_at <= end.toISOString());
|
|
69447
69716
|
const completed = tasks.filter((t) => t.status === "completed");
|
|
69448
69717
|
const started = tasks.filter((t) => t.status === "in_progress");
|
|
@@ -69470,14 +69739,15 @@ Findings`));
|
|
|
69470
69739
|
const globalOpts = program2.opts();
|
|
69471
69740
|
const db = getDatabase();
|
|
69472
69741
|
const projectId = globalOpts.project ? autoProject(globalOpts) || undefined : undefined;
|
|
69742
|
+
const cloud = getTodosCloudClient();
|
|
69473
69743
|
const filter = { assigned_to: agent };
|
|
69474
69744
|
if (projectId)
|
|
69475
69745
|
filter.project_id = projectId;
|
|
69476
|
-
const tasks = listTasks(filter, db);
|
|
69746
|
+
const tasks = cloud ? await cloudListTasks(cloud, filter) : listTasks(filter, db);
|
|
69477
69747
|
const filterByAgent = { agent_id: agent };
|
|
69478
69748
|
if (projectId)
|
|
69479
69749
|
filterByAgent.project_id = projectId;
|
|
69480
|
-
const agentTasks = listTasks(filterByAgent, db);
|
|
69750
|
+
const agentTasks = cloud ? await cloudListTasks(cloud, filterByAgent) : listTasks(filterByAgent, db);
|
|
69481
69751
|
const seen = new Set(tasks.map((t) => t.id));
|
|
69482
69752
|
for (const t of agentTasks) {
|
|
69483
69753
|
if (!seen.has(t.id)) {
|
|
@@ -69519,17 +69789,27 @@ Findings`));
|
|
|
69519
69789
|
program2.command("blocked").description("Show tasks blocked by incomplete dependencies").option("-j, --json", "Output as JSON").option("--project <id>", "Filter to project").action(async (opts) => {
|
|
69520
69790
|
const globalOpts = program2.opts();
|
|
69521
69791
|
const db = getDatabase();
|
|
69522
|
-
const
|
|
69792
|
+
const cloud = getTodosCloudClient();
|
|
69523
69793
|
const projectId = autoProject(globalOpts) || opts.project || undefined;
|
|
69524
69794
|
const filter = { status: "pending" };
|
|
69525
69795
|
if (projectId)
|
|
69526
69796
|
filter.project_id = projectId;
|
|
69527
|
-
const allPending = listTasks(filter, db);
|
|
69797
|
+
const allPending = cloud ? await cloudListTasks(cloud, filter) : listTasks(filter, db);
|
|
69528
69798
|
const blockedTasks = [];
|
|
69529
|
-
|
|
69530
|
-
const
|
|
69531
|
-
|
|
69532
|
-
|
|
69799
|
+
if (cloud) {
|
|
69800
|
+
const map = await cloudBlockingDepsMap(cloud, allPending);
|
|
69801
|
+
for (const t of allPending) {
|
|
69802
|
+
const blockers = map.get(t.id);
|
|
69803
|
+
if (blockers && blockers.length > 0)
|
|
69804
|
+
blockedTasks.push({ task: t, blockers });
|
|
69805
|
+
}
|
|
69806
|
+
} else {
|
|
69807
|
+
const { getBlockingDeps: getBlockingDeps2 } = await Promise.resolve().then(() => (init_tasks(), exports_tasks));
|
|
69808
|
+
for (const t of allPending) {
|
|
69809
|
+
const blockers = getBlockingDeps2(t.id, db);
|
|
69810
|
+
if (blockers.length > 0)
|
|
69811
|
+
blockedTasks.push({ task: t, blockers });
|
|
69812
|
+
}
|
|
69533
69813
|
}
|
|
69534
69814
|
if (opts.json || globalOpts.json) {
|
|
69535
69815
|
console.log(JSON.stringify(blockedTasks.map((b) => ({ ...b.task, blocked_by: b.blockers.map((bl) => ({ id: bl.id, short_id: bl.short_id, title: bl.title, status: bl.status })) }))));
|
|
@@ -69551,8 +69831,9 @@ Findings`));
|
|
|
69551
69831
|
program2.command("overdue").description("Show tasks past their due date").option("-j, --json", "Output as JSON").option("--project <id>", "Filter to project").action(async (opts) => {
|
|
69552
69832
|
const globalOpts = program2.opts();
|
|
69553
69833
|
const projectId = autoProject(globalOpts) || opts.project || undefined;
|
|
69834
|
+
const cloud = getTodosCloudClient();
|
|
69554
69835
|
const { getOverdueTasks: getOverdueTasks2 } = await Promise.resolve().then(() => (init_tasks(), exports_tasks));
|
|
69555
|
-
const tasks = getOverdueTasks2(projectId);
|
|
69836
|
+
const tasks = cloud ? await cloudOverdueTasks(cloud, projectId) : getOverdueTasks2(projectId);
|
|
69556
69837
|
if (opts.json || globalOpts.json) {
|
|
69557
69838
|
console.log(JSON.stringify(tasks));
|
|
69558
69839
|
return;
|
|
@@ -69573,10 +69854,8 @@ Findings`));
|
|
|
69573
69854
|
program2.command("sla").description("Show overdue or SLA-breached tasks that need escalation").option("-j, --json", "Output as JSON").option("--project <id>", "Filter to project").option("--agent <id>", "Filter to assigned agent").option("--limit <n>", "Max tasks to show", "50").action(async (opts) => {
|
|
69574
69855
|
const globalOpts = program2.opts();
|
|
69575
69856
|
const projectId = autoProject(globalOpts) || opts.project || undefined;
|
|
69576
|
-
const
|
|
69577
|
-
|
|
69578
|
-
agent_id: opts.agent
|
|
69579
|
-
}).slice(0, parseInt(opts.limit, 10));
|
|
69857
|
+
const cloud = getTodosCloudClient();
|
|
69858
|
+
const escalations = (cloud ? await cloudEscalatedTasks(cloud, { project_id: projectId, agent_id: opts.agent }) : getEscalatedTasks({ project_id: projectId, agent_id: opts.agent })).slice(0, parseInt(opts.limit, 10));
|
|
69580
69859
|
if (opts.json || globalOpts.json) {
|
|
69581
69860
|
console.log(JSON.stringify(escalations));
|
|
69582
69861
|
return;
|
|
@@ -69596,12 +69875,13 @@ Findings`));
|
|
|
69596
69875
|
program2.command("week").description("Show task activity from the past 7 days").option("-j, --json", "Output as JSON").action(async (opts) => {
|
|
69597
69876
|
const globalOpts = program2.opts();
|
|
69598
69877
|
const db = getDatabase();
|
|
69878
|
+
const cloud = getTodosCloudClient();
|
|
69599
69879
|
const { getTasksChangedSince: getTasksChangedSince2 } = await Promise.resolve().then(() => (init_tasks(), exports_tasks));
|
|
69600
69880
|
const now4 = new Date;
|
|
69601
69881
|
const start = new Date(now4);
|
|
69602
69882
|
start.setDate(start.getDate() - 7);
|
|
69603
69883
|
start.setHours(0, 0, 0, 0);
|
|
69604
|
-
const tasks = getTasksChangedSince2(start.toISOString(), undefined, db);
|
|
69884
|
+
const tasks = cloud ? await cloudChangedSince(cloud, start.toISOString()) : getTasksChangedSince2(start.toISOString(), undefined, db);
|
|
69605
69885
|
const days = {};
|
|
69606
69886
|
for (let i = 0;i < 7; i++) {
|
|
69607
69887
|
const d = new Date(now4);
|
|
@@ -69649,9 +69929,10 @@ Findings`));
|
|
|
69649
69929
|
program2.command("burndown").description("Show task completion velocity over the past 7 days").option("--days <n>", "Number of days", "7").option("-j, --json", "Output as JSON").action(async (opts) => {
|
|
69650
69930
|
const globalOpts = program2.opts();
|
|
69651
69931
|
const db = getDatabase();
|
|
69932
|
+
const cloud = getTodosCloudClient();
|
|
69652
69933
|
const { getRecentActivity: getRecentActivity2 } = await Promise.resolve().then(() => (init_audit(), exports_audit));
|
|
69653
69934
|
const numDays = parseInt(opts.days, 10);
|
|
69654
|
-
const entries = getRecentActivity2(5000, db);
|
|
69935
|
+
const entries = cloud ? await cloudRecentActivity(cloud, 5000) : getRecentActivity2(5000, db);
|
|
69655
69936
|
const now4 = new Date;
|
|
69656
69937
|
const dayStats = [];
|
|
69657
69938
|
for (let i = numDays - 1;i >= 0; i--) {
|
|
@@ -69691,8 +69972,9 @@ Findings`));
|
|
|
69691
69972
|
program2.command("log").description("Show recent task activity log (git-log style)").option("--limit <n>", "Number of entries", "30").option("-j, --json", "Output as JSON").action(async (opts) => {
|
|
69692
69973
|
const globalOpts = program2.opts();
|
|
69693
69974
|
const db = getDatabase();
|
|
69975
|
+
const cloud = getTodosCloudClient();
|
|
69694
69976
|
const { getRecentActivity: getRecentActivity2 } = await Promise.resolve().then(() => (init_audit(), exports_audit));
|
|
69695
|
-
const entries = getRecentActivity2(parseInt(opts.limit, 10), db);
|
|
69977
|
+
const entries = cloud ? await cloudRecentActivity(cloud, parseInt(opts.limit, 10)) : getRecentActivity2(parseInt(opts.limit, 10), db);
|
|
69696
69978
|
if (opts.json || globalOpts.json) {
|
|
69697
69979
|
console.log(JSON.stringify(entries));
|
|
69698
69980
|
return;
|
|
@@ -69735,6 +70017,39 @@ Findings`));
|
|
|
69735
70017
|
program2.command("timeline").description("Show a unified local activity timeline for tasks, projects, plans, or runs").option("--task <id>", "Filter to a task").option("--project <id>", "Filter to a project").option("--plan <id>", "Filter to a plan").option("--run <id>", "Filter to a run ledger").option("--since <iso>", "Only include entries at or after this ISO timestamp").option("--until <iso>", "Only include entries at or before this ISO timestamp").option("--limit <n>", "Number of entries", "50").option("--offset <n>", "Entries to skip", "0").option("--order <order>", "Sort order: asc or desc", "desc").option("-j, --json", "Output as JSON").action(async (opts) => {
|
|
69736
70018
|
const globalOpts = program2.opts();
|
|
69737
70019
|
const db = getDatabase();
|
|
70020
|
+
const cloud = getTodosCloudClient();
|
|
70021
|
+
if (cloud) {
|
|
70022
|
+
const cloudOptions = {
|
|
70023
|
+
since: opts.since,
|
|
70024
|
+
until: opts.until,
|
|
70025
|
+
limit: parseInt(opts.limit, 10),
|
|
70026
|
+
offset: parseInt(opts.offset, 10),
|
|
70027
|
+
order: opts.order === "asc" ? "asc" : "desc",
|
|
70028
|
+
...opts.task ? { entity_type: "task", entity_id: opts.task } : {},
|
|
70029
|
+
...opts.project ? { entity_type: "project", entity_id: opts.project } : {},
|
|
70030
|
+
...opts.plan ? { entity_type: "plan", entity_id: opts.plan } : {},
|
|
70031
|
+
...opts.run ? { entity_type: "run", entity_id: opts.run } : {}
|
|
70032
|
+
};
|
|
70033
|
+
const timeline2 = await cloudTimeline(cloud, cloudOptions);
|
|
70034
|
+
if (opts.json || globalOpts.json) {
|
|
70035
|
+
console.log(JSON.stringify(timeline2, null, 2));
|
|
70036
|
+
return;
|
|
70037
|
+
}
|
|
70038
|
+
if (timeline2.entries.length === 0) {
|
|
70039
|
+
console.log(chalk7.dim(" No activity yet."));
|
|
70040
|
+
return;
|
|
70041
|
+
}
|
|
70042
|
+
console.log(chalk7.bold(`Activity timeline (${timeline2.total}${timeline2.total > timeline2.entries.length ? `, showing ${timeline2.entries.length}` : ""}):
|
|
70043
|
+
`));
|
|
70044
|
+
for (const entry2 of timeline2.entries) {
|
|
70045
|
+
const time2 = entry2.created_at.replace("T", " ").slice(0, 16);
|
|
70046
|
+
const ref = entry2.run_id ? `run ${entry2.run_id.slice(0, 8)}` : `task ${entry2.task_id.slice(0, 8)}`;
|
|
70047
|
+
const agent = entry2.agent_id ? chalk7.dim(` (${entry2.agent_id})`) : "";
|
|
70048
|
+
const message = entry2.message ? ` ${entry2.message}` : "";
|
|
70049
|
+
console.log(` ${chalk7.dim(time2)} ${chalk7.cyan(entry2.source)} ${chalk7.dim(ref)} ${entry2.event_type}${message}${agent}`);
|
|
70050
|
+
}
|
|
70051
|
+
return;
|
|
70052
|
+
}
|
|
69738
70053
|
const { getLocalActivityTimeline: getLocalActivityTimeline2 } = await Promise.resolve().then(() => (init_activity_timeline(), exports_activity_timeline));
|
|
69739
70054
|
const { resolveTaskRunId: resolveTaskRunId2 } = await Promise.resolve().then(() => (init_task_runs(), exports_task_runs));
|
|
69740
70055
|
const options = {
|
|
@@ -69819,21 +70134,35 @@ Findings`));
|
|
|
69819
70134
|
return;
|
|
69820
70135
|
}
|
|
69821
70136
|
const db = getDatabase();
|
|
69822
|
-
const
|
|
70137
|
+
const cloud = getTodosCloudClient();
|
|
69823
70138
|
const { isLockExpired: isLockExpired2 } = await Promise.resolve().then(() => (init_database(), exports_database));
|
|
69824
70139
|
const projectId = autoProject(globalOpts) || opts.project || undefined;
|
|
69825
70140
|
const filter = { status: "pending" };
|
|
69826
70141
|
if (projectId)
|
|
69827
70142
|
filter.project_id = projectId;
|
|
69828
|
-
const pending = listTasks(filter, db);
|
|
69829
|
-
|
|
69830
|
-
|
|
69831
|
-
|
|
69832
|
-
|
|
69833
|
-
|
|
69834
|
-
|
|
70143
|
+
const pending = cloud ? await cloudListTasks(cloud, filter) : listTasks(filter, db);
|
|
70144
|
+
let ready;
|
|
70145
|
+
if (cloud) {
|
|
70146
|
+
const map = await cloudBlockingDepsMap(cloud, pending);
|
|
70147
|
+
ready = pending.filter((t) => {
|
|
70148
|
+
if (t.locked_by && !isLockExpired2(t.locked_at))
|
|
70149
|
+
return false;
|
|
70150
|
+
return !map.has(t.id);
|
|
70151
|
+
});
|
|
70152
|
+
} else {
|
|
70153
|
+
const { getBlockingDeps: getBlockingDeps2 } = await Promise.resolve().then(() => (init_tasks(), exports_tasks));
|
|
70154
|
+
ready = pending.filter((t) => {
|
|
70155
|
+
if (t.locked_by && !isLockExpired2(t.locked_at))
|
|
70156
|
+
return false;
|
|
70157
|
+
return getBlockingDeps2(t.id, db).length === 0;
|
|
70158
|
+
});
|
|
70159
|
+
}
|
|
69835
70160
|
const limited2 = ready.slice(0, parseInt(opts.limit, 10));
|
|
69836
70161
|
if (opts.json || globalOpts.json) {
|
|
70162
|
+
if (cloud) {
|
|
70163
|
+
console.log(JSON.stringify(limited2));
|
|
70164
|
+
return;
|
|
70165
|
+
}
|
|
69837
70166
|
const { getTaskRouteState: getTaskRouteState2 } = await Promise.resolve().then(() => (init_task_routing(), exports_task_routing));
|
|
69838
70167
|
console.log(JSON.stringify(limited2.map((task2) => ({ ...task2, route_state: getTaskRouteState2(task2, db) }))));
|
|
69839
70168
|
return;
|
|
@@ -69853,19 +70182,29 @@ Findings`));
|
|
|
69853
70182
|
program2.command("sprint").description("Sprint dashboard: in-progress, next up, blockers, and overdue").option("-j, --json", "Output as JSON").option("--project <id>", "Filter to project").action(async (opts) => {
|
|
69854
70183
|
const globalOpts = program2.opts();
|
|
69855
70184
|
const db = getDatabase();
|
|
69856
|
-
const
|
|
70185
|
+
const cloud = getTodosCloudClient();
|
|
69857
70186
|
const projectId = autoProject(globalOpts) || opts.project || undefined;
|
|
69858
70187
|
const baseFilter = {};
|
|
69859
70188
|
if (projectId)
|
|
69860
70189
|
baseFilter.project_id = projectId;
|
|
69861
|
-
const inProgress = listTasks({ ...baseFilter, status: "in_progress" }, db);
|
|
69862
|
-
const pending = listTasks({ ...baseFilter, status: "pending" }, db);
|
|
70190
|
+
const inProgress = cloud ? await cloudListTasks(cloud, { ...baseFilter, status: "in_progress" }) : listTasks({ ...baseFilter, status: "in_progress" }, db);
|
|
70191
|
+
const pending = cloud ? await cloudListTasks(cloud, { ...baseFilter, status: "pending" }) : listTasks({ ...baseFilter, status: "pending" }, db);
|
|
69863
70192
|
const nowStr = new Date().toISOString();
|
|
69864
70193
|
const blocked = [];
|
|
69865
|
-
|
|
69866
|
-
const
|
|
69867
|
-
|
|
69868
|
-
|
|
70194
|
+
if (cloud) {
|
|
70195
|
+
const map = await cloudBlockingDepsMap(cloud, pending);
|
|
70196
|
+
for (const t of pending) {
|
|
70197
|
+
const blockers = map.get(t.id);
|
|
70198
|
+
if (blockers && blockers.length > 0)
|
|
70199
|
+
blocked.push({ task: t, blockers });
|
|
70200
|
+
}
|
|
70201
|
+
} else {
|
|
70202
|
+
const { getBlockingDeps: getBlockingDeps2 } = await Promise.resolve().then(() => (init_tasks(), exports_tasks));
|
|
70203
|
+
for (const t of pending) {
|
|
70204
|
+
const blockers = getBlockingDeps2(t.id, db);
|
|
70205
|
+
if (blockers.length > 0)
|
|
70206
|
+
blocked.push({ task: t, blockers });
|
|
70207
|
+
}
|
|
69869
70208
|
}
|
|
69870
70209
|
const overdue = [...inProgress, ...pending].filter((t) => t.due_at && t.due_at < nowStr);
|
|
69871
70210
|
const blockedIds = new Set(blocked.map((b) => b.task.id));
|
|
@@ -70096,17 +70435,20 @@ Findings`));
|
|
|
70096
70435
|
program2.command("priorities").description("Show task counts grouped by priority").option("-j, --json", "Output as JSON").option("--project <id>", "Filter to project").action(async (opts) => {
|
|
70097
70436
|
const globalOpts = program2.opts();
|
|
70098
70437
|
const db = getDatabase();
|
|
70438
|
+
const cloud = getTodosCloudClient();
|
|
70099
70439
|
const { countTasks: countTasks2 } = await Promise.resolve().then(() => (init_tasks(), exports_tasks));
|
|
70440
|
+
const countFn = cloud ? (f) => cloudCountTasks(cloud, f) : (f) => Promise.resolve(countTasks2(f, db));
|
|
70100
70441
|
const projectId = autoProject(globalOpts) || opts.project || undefined;
|
|
70101
70442
|
const base = projectId ? { project_id: projectId } : {};
|
|
70102
70443
|
const priorities = ["critical", "high", "medium", "low", "none"];
|
|
70103
70444
|
const counts = {};
|
|
70104
70445
|
for (const p of priorities) {
|
|
70446
|
+
const base2 = { ...base, priority: p === "none" ? undefined : p };
|
|
70105
70447
|
counts[p] = {
|
|
70106
|
-
total:
|
|
70107
|
-
pending:
|
|
70108
|
-
in_progress:
|
|
70109
|
-
completed:
|
|
70448
|
+
total: await countFn(base2),
|
|
70449
|
+
pending: await countFn({ ...base2, status: "pending" }),
|
|
70450
|
+
in_progress: await countFn({ ...base2, status: "in_progress" }),
|
|
70451
|
+
completed: await countFn({ ...base2, status: "completed" })
|
|
70110
70452
|
};
|
|
70111
70453
|
}
|
|
70112
70454
|
if (opts.json || globalOpts.json) {
|
package/dist/index.js
CHANGED
|
@@ -23532,7 +23532,8 @@ function createPostgresTodosStorageAdapter(options) {
|
|
|
23532
23532
|
dependencies: {
|
|
23533
23533
|
add: (taskId, dependsOn, context) => addDependency2(taskId, dependsOn, store, context),
|
|
23534
23534
|
remove: (taskId, dependsOn) => removeDependency2(taskId, dependsOn, store),
|
|
23535
|
-
list: (taskId) => listDependencies(taskId, store)
|
|
23535
|
+
list: (taskId) => listDependencies(taskId, store),
|
|
23536
|
+
listAll: () => store.list("dependencies")
|
|
23536
23537
|
},
|
|
23537
23538
|
verifications: {
|
|
23538
23539
|
add: (input, context) => addVerification(input, store, context),
|
package/dist/mcp/index.js
CHANGED
|
@@ -48135,7 +48135,8 @@ function createPostgresTodosStorageAdapter(options) {
|
|
|
48135
48135
|
dependencies: {
|
|
48136
48136
|
add: (taskId, dependsOn, context) => addDependency2(taskId, dependsOn, store, context),
|
|
48137
48137
|
remove: (taskId, dependsOn) => removeDependency2(taskId, dependsOn, store),
|
|
48138
|
-
list: (taskId) => listDependencies(taskId, store)
|
|
48138
|
+
list: (taskId) => listDependencies(taskId, store),
|
|
48139
|
+
listAll: () => store.list("dependencies")
|
|
48139
48140
|
},
|
|
48140
48141
|
verifications: {
|
|
48141
48142
|
add: (input, context) => addVerification(input, store, context),
|
|
@@ -49838,6 +49839,42 @@ async function handleV1Request(req, url) {
|
|
|
49838
49839
|
return agent ? json2({ agent }) : error(404, "agent not found");
|
|
49839
49840
|
}
|
|
49840
49841
|
}
|
|
49842
|
+
if (resource === "activity" && !id) {
|
|
49843
|
+
if (method !== "GET")
|
|
49844
|
+
return error(405, `method ${method} not allowed on /v1/activity`);
|
|
49845
|
+
const limitParam = url.searchParams.get("limit");
|
|
49846
|
+
const limit = limitParam ? Math.max(1, Math.min(1e4, Number(limitParam) || 50)) : 50;
|
|
49847
|
+
const activity = await store.audit.getRecentActivity(limit);
|
|
49848
|
+
return json2({ activity, count: activity.length });
|
|
49849
|
+
}
|
|
49850
|
+
if (resource === "task-lists" && !id) {
|
|
49851
|
+
if (method !== "GET")
|
|
49852
|
+
return error(405, `method ${method} not allowed on /v1/task-lists`);
|
|
49853
|
+
const projectId = url.searchParams.get("project_id") ?? undefined;
|
|
49854
|
+
const taskLists = await store.taskLists.list(projectId);
|
|
49855
|
+
return json2({ task_lists: taskLists, count: taskLists.length });
|
|
49856
|
+
}
|
|
49857
|
+
if (resource === "dependencies" && !id) {
|
|
49858
|
+
if (method !== "GET")
|
|
49859
|
+
return error(405, `method ${method} not allowed on /v1/dependencies`);
|
|
49860
|
+
if (typeof store.dependencies?.listAll !== "function") {
|
|
49861
|
+
return error(501, "dependency edge listing is not supported by this storage backend");
|
|
49862
|
+
}
|
|
49863
|
+
const dependencies = await store.dependencies.listAll();
|
|
49864
|
+
return json2({ dependencies, count: dependencies.length });
|
|
49865
|
+
}
|
|
49866
|
+
if (resource === "next" && !id) {
|
|
49867
|
+
if (method !== "GET")
|
|
49868
|
+
return error(405, `method ${method} not allowed on /v1/next`);
|
|
49869
|
+
const agent = url.searchParams.get("agent") ?? undefined;
|
|
49870
|
+
const filters = {
|
|
49871
|
+
...url.searchParams.get("project_id") ? { project_id: url.searchParams.get("project_id") } : {},
|
|
49872
|
+
...url.searchParams.get("task_list_id") ? { task_list_id: url.searchParams.get("task_list_id") } : {},
|
|
49873
|
+
...url.searchParams.get("plan_id") ? { plan_id: url.searchParams.get("plan_id") } : {}
|
|
49874
|
+
};
|
|
49875
|
+
const task2 = await store.tasks.getNext(agent, filters);
|
|
49876
|
+
return json2({ task: task2 ?? null });
|
|
49877
|
+
}
|
|
49841
49878
|
if (resource === "stats" && method === "GET") {
|
|
49842
49879
|
const [tasks, tasksAll, projects] = await Promise.all([
|
|
49843
49880
|
store.tasks.count(),
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"packageName": "@hasna/todos",
|
|
3
|
-
"packageVersion": "0.11.
|
|
3
|
+
"packageVersion": "0.11.84",
|
|
4
4
|
"repository": "https://github.com/hasna/todos.git",
|
|
5
|
-
"gitCommit": "
|
|
6
|
-
"generatedAt": "2026-07-
|
|
5
|
+
"gitCommit": "f7fcea3d57bf87853fcc48b009019733b2206ca7",
|
|
6
|
+
"generatedAt": "2026-07-08T15:23:54.541Z"
|
|
7
7
|
}
|
package/dist/server/index.js
CHANGED
|
@@ -950,7 +950,8 @@ function createPostgresTodosStorageAdapter(options) {
|
|
|
950
950
|
dependencies: {
|
|
951
951
|
add: (taskId, dependsOn, context) => addDependency(taskId, dependsOn, store, context),
|
|
952
952
|
remove: (taskId, dependsOn) => removeDependency(taskId, dependsOn, store),
|
|
953
|
-
list: (taskId) => listDependencies(taskId, store)
|
|
953
|
+
list: (taskId) => listDependencies(taskId, store),
|
|
954
|
+
listAll: () => store.list("dependencies")
|
|
954
955
|
},
|
|
955
956
|
verifications: {
|
|
956
957
|
add: (input, context) => addVerification(input, store, context),
|
|
@@ -15952,6 +15953,42 @@ async function handleV1Request(req, url) {
|
|
|
15952
15953
|
return agent ? json2({ agent }) : error(404, "agent not found");
|
|
15953
15954
|
}
|
|
15954
15955
|
}
|
|
15956
|
+
if (resource === "activity" && !id) {
|
|
15957
|
+
if (method !== "GET")
|
|
15958
|
+
return error(405, `method ${method} not allowed on /v1/activity`);
|
|
15959
|
+
const limitParam = url.searchParams.get("limit");
|
|
15960
|
+
const limit = limitParam ? Math.max(1, Math.min(1e4, Number(limitParam) || 50)) : 50;
|
|
15961
|
+
const activity = await store.audit.getRecentActivity(limit);
|
|
15962
|
+
return json2({ activity, count: activity.length });
|
|
15963
|
+
}
|
|
15964
|
+
if (resource === "task-lists" && !id) {
|
|
15965
|
+
if (method !== "GET")
|
|
15966
|
+
return error(405, `method ${method} not allowed on /v1/task-lists`);
|
|
15967
|
+
const projectId = url.searchParams.get("project_id") ?? undefined;
|
|
15968
|
+
const taskLists = await store.taskLists.list(projectId);
|
|
15969
|
+
return json2({ task_lists: taskLists, count: taskLists.length });
|
|
15970
|
+
}
|
|
15971
|
+
if (resource === "dependencies" && !id) {
|
|
15972
|
+
if (method !== "GET")
|
|
15973
|
+
return error(405, `method ${method} not allowed on /v1/dependencies`);
|
|
15974
|
+
if (typeof store.dependencies?.listAll !== "function") {
|
|
15975
|
+
return error(501, "dependency edge listing is not supported by this storage backend");
|
|
15976
|
+
}
|
|
15977
|
+
const dependencies = await store.dependencies.listAll();
|
|
15978
|
+
return json2({ dependencies, count: dependencies.length });
|
|
15979
|
+
}
|
|
15980
|
+
if (resource === "next" && !id) {
|
|
15981
|
+
if (method !== "GET")
|
|
15982
|
+
return error(405, `method ${method} not allowed on /v1/next`);
|
|
15983
|
+
const agent = url.searchParams.get("agent") ?? undefined;
|
|
15984
|
+
const filters = {
|
|
15985
|
+
...url.searchParams.get("project_id") ? { project_id: url.searchParams.get("project_id") } : {},
|
|
15986
|
+
...url.searchParams.get("task_list_id") ? { task_list_id: url.searchParams.get("task_list_id") } : {},
|
|
15987
|
+
...url.searchParams.get("plan_id") ? { plan_id: url.searchParams.get("plan_id") } : {}
|
|
15988
|
+
};
|
|
15989
|
+
const task = await store.tasks.getNext(agent, filters);
|
|
15990
|
+
return json2({ task: task ?? null });
|
|
15991
|
+
}
|
|
15955
15992
|
if (resource === "stats" && method === "GET") {
|
|
15956
15993
|
const [tasks, tasksAll, projects] = await Promise.all([
|
|
15957
15994
|
store.tasks.count(),
|
package/dist/server/v1.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"v1.d.ts","sourceRoot":"","sources":["../../src/server/v1.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAuB,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AA4B1F;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,oBAAoB,CAgB1E;AAED,gFAAgF;AAChF,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,oBAAoB,GAAG,MAAM,CAYpE;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"v1.d.ts","sourceRoot":"","sources":["../../src/server/v1.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAuB,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AA4B1F;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,oBAAoB,CAgB1E;AAED,gFAAgF;AAChF,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,oBAAoB,GAAG,MAAM,CAYpE;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CA6atF"}
|
|
@@ -52,6 +52,12 @@ export interface TodosDependencyStore {
|
|
|
52
52
|
add(taskId: string, dependsOn: string, context?: TodosStorageContext): MaybePromise<TaskDependency>;
|
|
53
53
|
remove(taskId: string, dependsOn: string, context?: TodosStorageContext): MaybePromise<boolean>;
|
|
54
54
|
list(taskId: string, context?: TodosStorageContext): MaybePromise<TodosTaskDependencies>;
|
|
55
|
+
/**
|
|
56
|
+
* Every dependency edge in the dataset. Optional — present on the Postgres
|
|
57
|
+
* (self_hosted) adapter so the CLI can derive blocked/ready/sprint/recap
|
|
58
|
+
* dependency analytics over the shared cloud set in one round trip.
|
|
59
|
+
*/
|
|
60
|
+
listAll?(context?: TodosStorageContext): MaybePromise<TaskDependency[]>;
|
|
55
61
|
}
|
|
56
62
|
export interface TodosTaskVerification {
|
|
57
63
|
id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/storage/interfaces.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/storage/interfaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgres-adapter.d.ts","sourceRoot":"","sources":["../../src/storage/postgres-adapter.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAMV,mBAAmB,EAYpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAIL,KAAK,wBAAwB,EAE9B,MAAM,oBAAoB,CAAC;AAI5B,MAAM,WAAW,wCAAwC;IACvD,MAAM,EAAE,wBAAwB,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAuBD,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,wCAAwC,GAChD,mBAAmB,
|
|
1
|
+
{"version":3,"file":"postgres-adapter.d.ts","sourceRoot":"","sources":["../../src/storage/postgres-adapter.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAMV,mBAAmB,EAYpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAIL,KAAK,wBAAwB,EAE9B,MAAM,oBAAoB,CAAC;AAI5B,MAAM,WAAW,wCAAwC;IACvD,MAAM,EAAE,wBAAwB,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAuBD,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,wCAAwC,GAChD,mBAAmB,CA4GrB"}
|
package/dist/storage.js
CHANGED
|
@@ -11914,7 +11914,8 @@ function createPostgresTodosStorageAdapter(options) {
|
|
|
11914
11914
|
dependencies: {
|
|
11915
11915
|
add: (taskId, dependsOn, context) => addDependency2(taskId, dependsOn, store, context),
|
|
11916
11916
|
remove: (taskId, dependsOn) => removeDependency2(taskId, dependsOn, store),
|
|
11917
|
-
list: (taskId) => listDependencies(taskId, store)
|
|
11917
|
+
list: (taskId) => listDependencies(taskId, store),
|
|
11918
|
+
listAll: () => store.list("dependencies")
|
|
11918
11919
|
},
|
|
11919
11920
|
verifications: {
|
|
11920
11921
|
add: (input, context) => addVerification(input, store, context),
|