@yattalo/task-system 0.3.6 → 0.4.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.
@@ -0,0 +1,2 @@
1
+ export declare function registerAgentCommand(program: import("commander").Command): void;
2
+ //# sourceMappingURL=agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"AAwCA,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,WAAW,EAAE,OAAO,GAAG,IAAI,CAwB/E"}
@@ -0,0 +1,97 @@
1
+ // ============================================================
2
+ // Command: agent — Manage agents (list, status, stats)
3
+ // ============================================================
4
+ import { resolve } from "node:path";
5
+ import chalk from "chalk";
6
+ import { convexRun } from "../utils/convex-run.js";
7
+ const agentStatusColors = {
8
+ active: chalk.green,
9
+ idle: chalk.yellow,
10
+ offline: chalk.dim,
11
+ };
12
+ export function registerAgentCommand(program) {
13
+ const agent = program
14
+ .command("agent")
15
+ .description("Manage agents");
16
+ agent
17
+ .command("list")
18
+ .description("List registered agents")
19
+ .option("--dir <dir>", "Project directory", process.cwd())
20
+ .option("--status <status>", "Filter by status (active|idle|offline)")
21
+ .action(agentList);
22
+ agent
23
+ .command("status <agentId>")
24
+ .description("Update agent status")
25
+ .option("--dir <dir>", "Project directory", process.cwd())
26
+ .requiredOption("--set <status>", "New status (active|idle|offline)")
27
+ .action(agentStatusSet);
28
+ agent
29
+ .command("stats")
30
+ .description("Show agent statistics")
31
+ .option("--dir <dir>", "Project directory", process.cwd())
32
+ .action(agentStats);
33
+ }
34
+ async function agentList(options) {
35
+ const cwd = resolve(options.dir ?? process.cwd());
36
+ console.log(chalk.bold("\n Agents\n"));
37
+ try {
38
+ const agents = convexRun("agents", "list", {}, cwd);
39
+ const filtered = options.status
40
+ ? agents.filter((a) => a.currentStatus === options.status)
41
+ : agents;
42
+ if (filtered.length === 0) {
43
+ console.log(chalk.dim(" No agents found."));
44
+ return;
45
+ }
46
+ for (const agent of filtered) {
47
+ const statusFn = agentStatusColors[agent.currentStatus] ?? chalk.white;
48
+ const icon = agent.icon ?? "?";
49
+ const tasks = agent.currentTaskIds?.length ?? 0;
50
+ const completed = agent.totalTasksCompleted ?? 0;
51
+ console.log(` ${icon} ${chalk.bold(agent.agentId.padEnd(10))} ${statusFn(agent.currentStatus.padEnd(8))} ${chalk.dim(agent.label)}`);
52
+ console.log(` ${chalk.cyan("Tasks:")} ${tasks} active, ${completed} completed ${chalk.dim(agent.type)}`);
53
+ if (agent.capabilities?.length) {
54
+ console.log(` ${chalk.dim(agent.capabilities.join(", "))}`);
55
+ }
56
+ console.log();
57
+ }
58
+ console.log(chalk.dim(` ${filtered.length} agents`));
59
+ console.log();
60
+ }
61
+ catch (err) {
62
+ const message = err instanceof Error ? err.message : String(err);
63
+ console.error(chalk.red("Failed to list agents: " + message));
64
+ process.exit(1);
65
+ }
66
+ }
67
+ async function agentStatusSet(agentId, options) {
68
+ const cwd = resolve(options.dir ?? process.cwd());
69
+ try {
70
+ convexRun("agents", "updateStatus", { agentId, currentStatus: options.set }, cwd);
71
+ const statusFn = agentStatusColors[options.set] ?? chalk.white;
72
+ console.log(`\n ${chalk.bold(agentId)} → ${statusFn(options.set)}\n`);
73
+ }
74
+ catch (err) {
75
+ const message = err instanceof Error ? err.message : String(err);
76
+ console.error(chalk.red("Failed to update status: " + message));
77
+ process.exit(1);
78
+ }
79
+ }
80
+ async function agentStats(options) {
81
+ const cwd = resolve(options.dir ?? process.cwd());
82
+ console.log(chalk.bold("\n Agent Stats\n"));
83
+ try {
84
+ const stats = convexRun("agents", "stats", {}, cwd);
85
+ console.log(` ${chalk.bold("Total")} ${stats.total}`);
86
+ if (stats.active !== undefined) {
87
+ console.log(` ${chalk.green("Active")} ${stats.active}`);
88
+ }
89
+ console.log();
90
+ }
91
+ catch (err) {
92
+ const message = err instanceof Error ? err.message : String(err);
93
+ console.error(chalk.red("Failed to fetch stats: " + message));
94
+ process.exit(1);
95
+ }
96
+ }
97
+ //# sourceMappingURL=agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function registerContextCommand(program: import("commander").Command): void;
2
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/commands/context.ts"],"names":[],"mappings":"AAuDA,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,WAAW,EAAE,OAAO,GAAG,IAAI,CAwCjF"}
@@ -0,0 +1,151 @@
1
+ // ============================================================
2
+ // Command: context — Manage context entries (list, add, promote, stats)
3
+ // ============================================================
4
+ import { resolve } from "node:path";
5
+ import chalk from "chalk";
6
+ import { convexRun } from "../utils/convex-run.js";
7
+ const tierColors = {
8
+ draft: chalk.dim,
9
+ reviewed: chalk.yellow,
10
+ curated: chalk.green,
11
+ };
12
+ export function registerContextCommand(program) {
13
+ const ctx = program
14
+ .command("context")
15
+ .description("Manage context entries");
16
+ ctx
17
+ .command("list")
18
+ .description("List context entries")
19
+ .option("--dir <dir>", "Project directory", process.cwd())
20
+ .option("--tier <tier>", "Filter by tier (draft|reviewed|curated)")
21
+ .option("--project <id>", "Project ID")
22
+ .action(contextList);
23
+ ctx
24
+ .command("add")
25
+ .description("Create a new context entry")
26
+ .option("--dir <dir>", "Project directory", process.cwd())
27
+ .requiredOption("--type <type>", "Entry type (decision, insight, pattern, convention, lesson)")
28
+ .requiredOption("--content <content>", "Entry content")
29
+ .requiredOption("--by <agent>", "Created by (agent name)")
30
+ .option("--tags <tags>", "Comma-separated tags")
31
+ .option("--task <taskId>", "Linked task ID")
32
+ .option("--project <id>", "Project ID", "uca")
33
+ .option("--summary <summary>", "Short summary")
34
+ .action(contextAdd);
35
+ ctx
36
+ .command("promote <entryId>")
37
+ .description("Promote a context entry to the next tier")
38
+ .option("--dir <dir>", "Project directory", process.cwd())
39
+ .requiredOption("--by <agent>", "Promoted by (agent name)")
40
+ .option("--reason <reason>", "Promotion reason")
41
+ .action(contextPromote);
42
+ ctx
43
+ .command("stats")
44
+ .description("Show context entry statistics")
45
+ .option("--dir <dir>", "Project directory", process.cwd())
46
+ .option("--project <id>", "Project ID")
47
+ .action(contextStats);
48
+ }
49
+ async function contextList(options) {
50
+ const cwd = resolve(options.dir ?? process.cwd());
51
+ console.log(chalk.bold("\n Context Entries\n"));
52
+ try {
53
+ const entries = convexRun("contextEntries", "list", {}, cwd);
54
+ const filtered = options.tier
55
+ ? entries.filter((e) => e.tier === options.tier)
56
+ : entries;
57
+ if (filtered.length === 0) {
58
+ console.log(chalk.dim(" No entries found."));
59
+ return;
60
+ }
61
+ for (const entry of filtered) {
62
+ const colorFn = tierColors[entry.tier] ?? chalk.white;
63
+ const tierBadge = colorFn(`[${entry.tier}]`.padEnd(11));
64
+ const typeBadge = chalk.cyan(entry.type.padEnd(12));
65
+ const tags = entry.tags?.length ? chalk.dim(` #${entry.tags.join(" #")}`) : "";
66
+ const taskLink = entry.taskId ? chalk.magenta(` [${entry.taskId}]`) : "";
67
+ console.log(` ${chalk.bold(entry.entryId.padEnd(8))} ${tierBadge} ${typeBadge} ${chalk.dim(entry.createdBy)}${taskLink}${tags}`);
68
+ console.log(` ${chalk.white(entry.content.length > 100 ? entry.content.slice(0, 97) + "..." : entry.content)}`);
69
+ console.log();
70
+ }
71
+ console.log(chalk.dim(` ${filtered.length} entries`));
72
+ console.log();
73
+ }
74
+ catch (err) {
75
+ const message = err instanceof Error ? err.message : String(err);
76
+ console.error(chalk.red("Failed to list context entries: " + message));
77
+ process.exit(1);
78
+ }
79
+ }
80
+ async function contextAdd(options) {
81
+ const cwd = resolve(options.dir ?? process.cwd());
82
+ const projectId = options.project ?? "uca";
83
+ const tags = options.tags ? options.tags.split(",").map((t) => t.trim()) : [];
84
+ const entryId = `CTX-${Date.now().toString(36).toUpperCase()}`;
85
+ console.log(chalk.bold("\n Creating context entry...\n"));
86
+ try {
87
+ const args = {
88
+ entryId,
89
+ projectId,
90
+ type: options.type,
91
+ content: options.content,
92
+ createdBy: options.by,
93
+ tags,
94
+ };
95
+ if (options.task)
96
+ args.taskId = options.task;
97
+ if (options.summary)
98
+ args.summary = options.summary;
99
+ convexRun("contextEntries", "create", args, cwd);
100
+ console.log(chalk.green(` Created ${chalk.bold(entryId)} [draft] by ${options.by}`));
101
+ console.log();
102
+ }
103
+ catch (err) {
104
+ const message = err instanceof Error ? err.message : String(err);
105
+ console.error(chalk.red("Failed to create context entry: " + message));
106
+ process.exit(1);
107
+ }
108
+ }
109
+ async function contextPromote(entryId, options) {
110
+ const cwd = resolve(options.dir ?? process.cwd());
111
+ console.log(chalk.bold(`\n Promoting ${entryId}...\n`));
112
+ try {
113
+ const args = {
114
+ entryId,
115
+ promotedBy: options.by,
116
+ };
117
+ if (options.reason)
118
+ args.reason = options.reason;
119
+ convexRun("contextEntries", "promote", args, cwd);
120
+ console.log(chalk.green(` Promoted ${chalk.bold(entryId)} by ${options.by}`));
121
+ console.log();
122
+ }
123
+ catch (err) {
124
+ const message = err instanceof Error ? err.message : String(err);
125
+ console.error(chalk.red("Failed to promote: " + message));
126
+ process.exit(1);
127
+ }
128
+ }
129
+ async function contextStats(options) {
130
+ const cwd = resolve(options.dir ?? process.cwd());
131
+ console.log(chalk.bold("\n Context Stats\n"));
132
+ try {
133
+ const stats = convexRun("contextEntries", "stats", {}, cwd);
134
+ console.log(` ${chalk.bold("Total")} ${stats.total}`);
135
+ console.log(chalk.dim(" " + "─".repeat(30)));
136
+ if (stats.byTier) {
137
+ for (const [tier, count] of Object.entries(stats.byTier)) {
138
+ const colorFn = tierColors[tier] ?? chalk.white;
139
+ const bar = "█".repeat(Math.min(count, 30));
140
+ console.log(` ${colorFn(tier.padEnd(10))} ${chalk.bold(String(count).padStart(3))} ${chalk.dim(bar)}`);
141
+ }
142
+ }
143
+ console.log();
144
+ }
145
+ catch (err) {
146
+ const message = err instanceof Error ? err.message : String(err);
147
+ console.error(chalk.red("Failed to fetch stats: " + message));
148
+ process.exit(1);
149
+ }
150
+ }
151
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/commands/context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ interface DayOptions {
2
+ dir?: string;
3
+ agent?: string;
4
+ date?: string;
5
+ project?: string;
6
+ }
7
+ export declare function dayCommand(options: DayOptions): Promise<void>;
8
+ export {};
9
+ //# sourceMappingURL=day.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"day.d.ts","sourceRoot":"","sources":["../../src/commands/day.ts"],"names":[],"mappings":"AAQA,UAAU,UAAU;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA8BD,wBAAsB,UAAU,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAwGnE"}
@@ -0,0 +1,98 @@
1
+ // ============================================================
2
+ // Command: day — Daily summary (tasks, context, drift)
3
+ // ============================================================
4
+ import { resolve } from "node:path";
5
+ import chalk from "chalk";
6
+ import { convexRun } from "../utils/convex-run.js";
7
+ export async function dayCommand(options) {
8
+ const cwd = resolve(options.dir ?? process.cwd());
9
+ // Parse target date — default today
10
+ const targetDate = options.date ?? new Date().toISOString().split("T")[0];
11
+ const dayStart = new Date(targetDate + "T00:00:00Z").getTime();
12
+ const dayEnd = new Date(targetDate + "T23:59:59.999Z").getTime();
13
+ console.log(chalk.bold(`\n Daily Summary — ${targetDate}`));
14
+ if (options.agent)
15
+ console.log(chalk.dim(` Agent: ${options.agent}`));
16
+ console.log(chalk.dim(" " + "═".repeat(40)));
17
+ try {
18
+ // Fetch all data in parallel via sequential calls (execSync limitation)
19
+ const tasks = convexRun("tasks", "list", {}, cwd);
20
+ const entries = convexRun("contextEntries", "list", {}, cwd);
21
+ const events = convexRun("driftEvents", "list", {}, cwd);
22
+ // Filter by creation time (today) and optionally by agent
23
+ const isInDay = (ts) => ts !== undefined && ts >= dayStart && ts <= dayEnd;
24
+ const matchAgent = (agent) => !options.agent || agent === options.agent;
25
+ // Tasks
26
+ const todayTasks = tasks.filter((t) => isInDay(t._creationTime) && matchAgent(t.agent));
27
+ const doneTasks = tasks.filter((t) => t.status === "done" && matchAgent(t.agent));
28
+ const inProgressTasks = tasks.filter((t) => t.status === "in_progress" && matchAgent(t.agent));
29
+ console.log(chalk.bold("\n Tasks"));
30
+ console.log(chalk.dim(" " + "─".repeat(30)));
31
+ console.log(` ${chalk.green("Done")} ${doneTasks.length}`);
32
+ console.log(` ${chalk.cyan("In progress")} ${inProgressTasks.length}`);
33
+ console.log(` ${chalk.dim("Created today")} ${todayTasks.length}`);
34
+ if (todayTasks.length > 0) {
35
+ console.log();
36
+ for (const t of todayTasks.slice(0, 10)) {
37
+ const statusIcon = t.status === "done" ? chalk.green("✓") : t.status === "in_progress" ? chalk.cyan("→") : chalk.dim("·");
38
+ console.log(` ${statusIcon} ${chalk.bold(t.taskId.padEnd(8))} ${t.title} ${chalk.dim(`[${t.agent}]`)}`);
39
+ }
40
+ if (todayTasks.length > 10) {
41
+ console.log(chalk.dim(` ... and ${todayTasks.length - 10} more`));
42
+ }
43
+ }
44
+ // Context entries
45
+ const todayEntries = entries.filter((e) => isInDay(e._creationTime) && matchAgent(e.createdBy));
46
+ console.log(chalk.bold("\n Context Entries"));
47
+ console.log(chalk.dim(" " + "─".repeat(30)));
48
+ console.log(` ${chalk.dim("Created today")} ${todayEntries.length}`);
49
+ if (todayEntries.length > 0) {
50
+ const byTier = {};
51
+ for (const e of todayEntries) {
52
+ byTier[e.tier] = (byTier[e.tier] ?? 0) + 1;
53
+ }
54
+ for (const [tier, count] of Object.entries(byTier)) {
55
+ const color = tier === "curated" ? chalk.green : tier === "reviewed" ? chalk.yellow : chalk.dim;
56
+ console.log(` ${color(tier.padEnd(10))} ${count}`);
57
+ }
58
+ }
59
+ // Drift events
60
+ const todayDrifts = events.filter((e) => isInDay(e._creationTime) && matchAgent(e.agent));
61
+ const openDrifts = events.filter((e) => e.status === "open" && matchAgent(e.agent));
62
+ console.log(chalk.bold("\n Drift Events"));
63
+ console.log(chalk.dim(" " + "─".repeat(30)));
64
+ console.log(` ${chalk.red("Open")} ${openDrifts.length}`);
65
+ console.log(` ${chalk.dim("Created today")} ${todayDrifts.length}`);
66
+ if (todayDrifts.length > 0) {
67
+ for (const d of todayDrifts.slice(0, 5)) {
68
+ const sevColor = d.severity === "high" ? chalk.red : d.severity === "medium" ? chalk.yellow : chalk.dim;
69
+ console.log(` ${sevColor("●")} ${chalk.bold(d.eventId.padEnd(8))} ${d.driftType} ${chalk.dim(`[${d.agent}]`)}`);
70
+ }
71
+ }
72
+ // Agent breakdown (if no agent filter)
73
+ if (!options.agent) {
74
+ const agents = new Set([
75
+ ...tasks.filter((t) => isInDay(t._creationTime)).map((t) => t.agent),
76
+ ...todayEntries.map((e) => e.createdBy),
77
+ ...todayDrifts.map((e) => e.agent),
78
+ ]);
79
+ if (agents.size > 0) {
80
+ console.log(chalk.bold("\n Activity by Agent"));
81
+ console.log(chalk.dim(" " + "─".repeat(30)));
82
+ for (const agentId of agents) {
83
+ const tCount = tasks.filter((t) => isInDay(t._creationTime) && t.agent === agentId).length;
84
+ const cCount = todayEntries.filter((e) => e.createdBy === agentId).length;
85
+ const dCount = todayDrifts.filter((e) => e.agent === agentId).length;
86
+ console.log(` ${chalk.cyan(agentId.padEnd(10))} ${tCount} tasks, ${cCount} context, ${dCount} drift`);
87
+ }
88
+ }
89
+ }
90
+ console.log();
91
+ }
92
+ catch (err) {
93
+ const message = err instanceof Error ? err.message : String(err);
94
+ console.error(chalk.red("Failed to generate daily summary: " + message));
95
+ process.exit(1);
96
+ }
97
+ }
98
+ //# sourceMappingURL=day.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"day.js","sourceRoot":"","sources":["../../src/commands/day.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function registerDriftCommand(program: import("commander").Command): void;
2
+ //# sourceMappingURL=drift.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drift.d.ts","sourceRoot":"","sources":["../../src/commands/drift.ts"],"names":[],"mappings":"AA4DA,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,WAAW,EAAE,OAAO,GAAG,IAAI,CAoD/E"}
@@ -0,0 +1,190 @@
1
+ // ============================================================
2
+ // Command: drift — Manage drift events (list, create, acknowledge, resolve, dismiss, stats)
3
+ // ============================================================
4
+ import { resolve } from "node:path";
5
+ import chalk from "chalk";
6
+ import { convexRun } from "../utils/convex-run.js";
7
+ const severityColors = {
8
+ high: chalk.red,
9
+ medium: chalk.yellow,
10
+ low: chalk.dim,
11
+ };
12
+ const statusColors = {
13
+ open: chalk.red,
14
+ acknowledged: chalk.yellow,
15
+ resolved: chalk.green,
16
+ dismissed: chalk.dim,
17
+ };
18
+ export function registerDriftCommand(program) {
19
+ const drift = program
20
+ .command("drift")
21
+ .description("Manage drift events");
22
+ drift
23
+ .command("list")
24
+ .description("List drift events")
25
+ .option("--dir <dir>", "Project directory", process.cwd())
26
+ .option("--status <status>", "Filter by status (open|acknowledged|resolved|dismissed)")
27
+ .option("--severity <severity>", "Filter by severity (high|medium|low)")
28
+ .action(driftList);
29
+ drift
30
+ .command("create")
31
+ .description("Create a new drift event")
32
+ .option("--dir <dir>", "Project directory", process.cwd())
33
+ .requiredOption("--agent <agent>", "Agent that drifted")
34
+ .requiredOption("--type <type>", "Drift type (scope_creep|time_overrun|quality_drop|off_topic|dependency_violation)")
35
+ .requiredOption("--severity <severity>", "Severity (high|medium|low)")
36
+ .requiredOption("--desc <description>", "Description of the drift")
37
+ .option("--task <taskId>", "Related task ID")
38
+ .option("--project <id>", "Project ID", "uca")
39
+ .action(driftCreate);
40
+ drift
41
+ .command("acknowledge <eventId>")
42
+ .description("Acknowledge a drift event")
43
+ .option("--dir <dir>", "Project directory", process.cwd())
44
+ .requiredOption("--by <agent>", "Acknowledged by")
45
+ .action(driftAcknowledge);
46
+ drift
47
+ .command("resolve <eventId>")
48
+ .description("Resolve a drift event")
49
+ .option("--dir <dir>", "Project directory", process.cwd())
50
+ .requiredOption("--by <agent>", "Resolved by")
51
+ .requiredOption("--resolution <text>", "Resolution description")
52
+ .action(driftResolve);
53
+ drift
54
+ .command("dismiss <eventId>")
55
+ .description("Dismiss a drift event")
56
+ .option("--dir <dir>", "Project directory", process.cwd())
57
+ .requiredOption("--by <agent>", "Dismissed by")
58
+ .action(driftDismiss);
59
+ drift
60
+ .command("stats")
61
+ .description("Show drift event statistics")
62
+ .option("--dir <dir>", "Project directory", process.cwd())
63
+ .action(driftStats);
64
+ }
65
+ async function driftList(options) {
66
+ const cwd = resolve(options.dir ?? process.cwd());
67
+ console.log(chalk.bold("\n Drift Events\n"));
68
+ try {
69
+ const events = convexRun("driftEvents", "list", {}, cwd);
70
+ let filtered = events;
71
+ if (options.status)
72
+ filtered = filtered.filter((e) => e.status === options.status);
73
+ if (options.severity)
74
+ filtered = filtered.filter((e) => e.severity === options.severity);
75
+ if (filtered.length === 0) {
76
+ console.log(chalk.dim(" No drift events found."));
77
+ return;
78
+ }
79
+ for (const event of filtered) {
80
+ const sevFn = severityColors[event.severity] ?? chalk.white;
81
+ const statFn = statusColors[event.status] ?? chalk.white;
82
+ const taskLink = event.taskId ? chalk.magenta(` [${event.taskId}]`) : "";
83
+ console.log(` ${chalk.bold(event.eventId.padEnd(8))} ${statFn(event.status.padEnd(13))} ${sevFn(event.severity.padEnd(8))} ${chalk.cyan(event.agent)}${taskLink}`);
84
+ console.log(` ${chalk.dim(event.driftType)} — ${event.description.length > 90 ? event.description.slice(0, 87) + "..." : event.description}`);
85
+ if (event.resolution)
86
+ console.log(` ${chalk.green("Resolution: " + event.resolution)}`);
87
+ console.log();
88
+ }
89
+ console.log(chalk.dim(` ${filtered.length} events`));
90
+ console.log();
91
+ }
92
+ catch (err) {
93
+ const message = err instanceof Error ? err.message : String(err);
94
+ console.error(chalk.red("Failed to list drift events: " + message));
95
+ process.exit(1);
96
+ }
97
+ }
98
+ async function driftCreate(options) {
99
+ const cwd = resolve(options.dir ?? process.cwd());
100
+ const projectId = options.project ?? "uca";
101
+ const eventId = `DRF-${Date.now().toString(36).toUpperCase()}`;
102
+ console.log(chalk.bold("\n Creating drift event...\n"));
103
+ try {
104
+ const args = {
105
+ eventId,
106
+ projectId,
107
+ agent: options.agent,
108
+ driftType: options.type,
109
+ description: options.desc,
110
+ severity: options.severity,
111
+ };
112
+ if (options.task)
113
+ args.taskId = options.task;
114
+ convexRun("driftEvents", "create", args, cwd);
115
+ const sevFn = severityColors[options.severity] ?? chalk.white;
116
+ console.log(chalk.green(` Created ${chalk.bold(eventId)} ${sevFn(options.severity)} by ${options.agent}`));
117
+ console.log();
118
+ }
119
+ catch (err) {
120
+ const message = err instanceof Error ? err.message : String(err);
121
+ console.error(chalk.red("Failed to create drift event: " + message));
122
+ process.exit(1);
123
+ }
124
+ }
125
+ async function driftAcknowledge(eventId, options) {
126
+ const cwd = resolve(options.dir ?? process.cwd());
127
+ try {
128
+ convexRun("driftEvents", "acknowledge", { eventId, acknowledgedBy: options.by }, cwd);
129
+ console.log(chalk.yellow(`\n Acknowledged ${chalk.bold(eventId)} by ${options.by}\n`));
130
+ }
131
+ catch (err) {
132
+ const message = err instanceof Error ? err.message : String(err);
133
+ console.error(chalk.red("Failed to acknowledge: " + message));
134
+ process.exit(1);
135
+ }
136
+ }
137
+ async function driftResolve(eventId, options) {
138
+ const cwd = resolve(options.dir ?? process.cwd());
139
+ try {
140
+ convexRun("driftEvents", "resolve", {
141
+ eventId,
142
+ resolvedBy: options.by,
143
+ resolution: options.resolution ?? "",
144
+ }, cwd);
145
+ console.log(chalk.green(`\n Resolved ${chalk.bold(eventId)} by ${options.by}\n`));
146
+ }
147
+ catch (err) {
148
+ const message = err instanceof Error ? err.message : String(err);
149
+ console.error(chalk.red("Failed to resolve: " + message));
150
+ process.exit(1);
151
+ }
152
+ }
153
+ async function driftDismiss(eventId, options) {
154
+ const cwd = resolve(options.dir ?? process.cwd());
155
+ try {
156
+ convexRun("driftEvents", "dismiss", { eventId, dismissedBy: options.by }, cwd);
157
+ console.log(chalk.dim(`\n Dismissed ${chalk.bold(eventId)} by ${options.by}\n`));
158
+ }
159
+ catch (err) {
160
+ const message = err instanceof Error ? err.message : String(err);
161
+ console.error(chalk.red("Failed to dismiss: " + message));
162
+ process.exit(1);
163
+ }
164
+ }
165
+ async function driftStats(options) {
166
+ const cwd = resolve(options.dir ?? process.cwd());
167
+ console.log(chalk.bold("\n Drift Stats\n"));
168
+ try {
169
+ const stats = convexRun("driftEvents", "stats", {}, cwd);
170
+ console.log(` ${chalk.bold("Total")} ${stats.total}`);
171
+ if (stats.open !== undefined) {
172
+ console.log(` ${chalk.red("Open")} ${stats.open}`);
173
+ }
174
+ console.log(chalk.dim(" " + "─".repeat(30)));
175
+ if (stats.bySeverity) {
176
+ for (const [sev, count] of Object.entries(stats.bySeverity)) {
177
+ const colorFn = severityColors[sev] ?? chalk.white;
178
+ const bar = "█".repeat(Math.min(count, 30));
179
+ console.log(` ${colorFn(sev.padEnd(10))} ${chalk.bold(String(count).padStart(3))} ${chalk.dim(bar)}`);
180
+ }
181
+ }
182
+ console.log();
183
+ }
184
+ catch (err) {
185
+ const message = err instanceof Error ? err.message : String(err);
186
+ console.error(chalk.red("Failed to fetch stats: " + message));
187
+ process.exit(1);
188
+ }
189
+ }
190
+ //# sourceMappingURL=drift.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drift.js","sourceRoot":"","sources":["../../src/commands/drift.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -12,6 +12,10 @@ import { statusCommand } from "./commands/status.js";
12
12
  import { kanbanCommand } from "./commands/kanban.js";
13
13
  import { dashboardCommand } from "./commands/dashboard.js";
14
14
  import { reportCommand } from "./commands/report.js";
15
+ import { registerContextCommand } from "./commands/context.js";
16
+ import { registerDriftCommand } from "./commands/drift.js";
17
+ import { registerAgentCommand } from "./commands/agent.js";
18
+ import { dayCommand } from "./commands/day.js";
15
19
  const __dirname = dirname(fileURLToPath(import.meta.url));
16
20
  const pkg = JSON.parse(readFileSync(join(__dirname, "..", "package.json"), "utf-8"));
17
21
  const program = new Command();
@@ -55,5 +59,17 @@ program
55
59
  .option("--scope <agent>", "Filter by agent")
56
60
  .option("--output <file>", "Output file path")
57
61
  .action(reportCommand);
62
+ // Phase 3: Operational commands
63
+ registerContextCommand(program);
64
+ registerDriftCommand(program);
65
+ registerAgentCommand(program);
66
+ program
67
+ .command("day")
68
+ .description("Show daily summary (tasks, context, drift)")
69
+ .option("--dir <dir>", "Project directory", process.cwd())
70
+ .option("--agent <agent>", "Filter by agent")
71
+ .option("--date <date>", "Date (YYYY-MM-DD)", new Date().toISOString().split("T")[0])
72
+ .option("--project <id>", "Project ID")
73
+ .action(dayCommand);
58
74
  program.parse();
59
75
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Run a Convex function and return parsed JSON result.
3
+ *
4
+ * @param module - Module name (e.g. "contextEntries", "driftEvents", "agents")
5
+ * @param fn - Function name (e.g. "list", "create", "stats")
6
+ * @param args - Arguments object (will be JSON-serialized)
7
+ * @param cwd - Working directory (project root with convex/)
8
+ */
9
+ export declare function convexRun<T = unknown>(module: string, fn: string, args: Record<string, unknown>, cwd: string): T;
10
+ //# sourceMappingURL=convex-run.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convex-run.d.ts","sourceRoot":"","sources":["../../src/utils/convex-run.ts"],"names":[],"mappings":"AAiBA;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,CAAC,GAAG,OAAO,EACnC,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,GAAG,EAAE,MAAM,GACV,CAAC,CAYH"}
@@ -0,0 +1,34 @@
1
+ // ============================================================
2
+ // Utility: convex-run — Execute Convex functions from CLI
3
+ // ============================================================
4
+ import { execSync } from "node:child_process";
5
+ import { existsSync } from "node:fs";
6
+ import { join } from "node:path";
7
+ /**
8
+ * Detect function prefix: if convex/taskSystem/ exists, use "taskSystem/" prefix.
9
+ * Otherwise call functions at root level (runtime component pattern).
10
+ */
11
+ function detectPrefix(cwd) {
12
+ const taskSystemDir = join(cwd, "convex", "taskSystem");
13
+ return existsSync(taskSystemDir) ? "taskSystem/" : "";
14
+ }
15
+ /**
16
+ * Run a Convex function and return parsed JSON result.
17
+ *
18
+ * @param module - Module name (e.g. "contextEntries", "driftEvents", "agents")
19
+ * @param fn - Function name (e.g. "list", "create", "stats")
20
+ * @param args - Arguments object (will be JSON-serialized)
21
+ * @param cwd - Working directory (project root with convex/)
22
+ */
23
+ export function convexRun(module, fn, args, cwd) {
24
+ const prefix = detectPrefix(cwd);
25
+ const fnPath = `${prefix}${module}:${fn}`;
26
+ const argsJson = JSON.stringify(args);
27
+ const raw = execSync(`npx convex run ${fnPath} '${argsJson}'`, {
28
+ cwd,
29
+ encoding: "utf-8",
30
+ stdio: ["pipe", "pipe", "pipe"],
31
+ });
32
+ return JSON.parse(raw.trim());
33
+ }
34
+ //# sourceMappingURL=convex-run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convex-run.js","sourceRoot":"","sources":["../../src/utils/convex-run.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,0DAA0D;AAC1D,+DAA+D;AAE/D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC;;;GAGG;AACH,SAAS,YAAY,CAAC,GAAW;IAC/B,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;IACxD,OAAO,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;AACxD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,SAAS,CACvB,MAAc,EACd,EAAU,EACV,IAA6B,EAC7B,GAAW;IAEX,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,GAAG,MAAM,GAAG,MAAM,IAAI,EAAE,EAAE,CAAC;IAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAEtC,MAAM,GAAG,GAAG,QAAQ,CAAC,kBAAkB,MAAM,KAAK,QAAQ,GAAG,EAAE;QAC7D,GAAG;QACH,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;KAChC,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAM,CAAC;AACrC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yattalo/task-system",
3
- "version": "0.3.6",
3
+ "version": "0.4.0",
4
4
  "description": "Portable multi-agent task orchestration scaffold for Convex projects",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -15,7 +15,7 @@
15
15
  "prepack": "chmod +x dist/index.js"
16
16
  },
17
17
  "dependencies": {
18
- "@yattalo/task-system-core": "^0.3.6",
18
+ "@yattalo/task-system-core": "^0.4.0",
19
19
  "commander": "^12.1.0",
20
20
  "ts-morph": "^24.0.0",
21
21
  "prompts": "^2.4.2",