@hasna/todos 0.11.16 → 0.11.18
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/commands/dispatch.d.ts.map +1 -1
- package/dist/cli/index.js +19 -13
- package/dist/db/dispatches.d.ts +1 -1
- package/dist/db/task-workflow.d.ts +1 -1
- package/dist/db/task-workflow.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/lib/dispatch.d.ts +2 -2
- package/dist/lib/dispatch.d.ts.map +1 -1
- package/dist/mcp/index.js +13 -9
- package/dist/mcp/tools/dispatch.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/dispatch.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWzC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/dispatch.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWzC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkL/D"}
|
package/dist/cli/index.js
CHANGED
|
@@ -7018,7 +7018,7 @@ function listDispatches(filter = {}, db) {
|
|
|
7018
7018
|
const where = conditions.length > 0 ? `WHERE ${conditions.join(" AND ")}` : "";
|
|
7019
7019
|
const limit = filter.limit ?? 50;
|
|
7020
7020
|
const offset = filter.offset ?? 0;
|
|
7021
|
-
const rows = _db2.query(`SELECT * FROM dispatches ${where} ORDER BY created_at DESC LIMIT ? OFFSET ?`).all(...params, limit, offset);
|
|
7021
|
+
const rows = _db2.query(`SELECT * FROM dispatches ${where} ORDER BY created_at DESC LIMIT ? OFFSET ?`).all(...[...params, limit, offset]);
|
|
7022
7022
|
return rows.map(rowToDispatch);
|
|
7023
7023
|
}
|
|
7024
7024
|
function cancelDispatch(id, db) {
|
|
@@ -13132,9 +13132,9 @@ async function syncTransfer(source, target, options, _direction) {
|
|
|
13132
13132
|
const batch = rows.slice(offset, offset + batchSize);
|
|
13133
13133
|
try {
|
|
13134
13134
|
if (isAsyncAdapter(target)) {
|
|
13135
|
-
await batchUpsertPg(target, table, columns, updateCols, pkColumns, batch);
|
|
13135
|
+
await batchUpsertPg(target, table, columns, updateCols, pkColumns, batch, columns.includes(conflictColumn) ? conflictColumn : undefined);
|
|
13136
13136
|
} else {
|
|
13137
|
-
batchUpsertSqlite(target, table, columns, updateCols, pkColumns, batch);
|
|
13137
|
+
batchUpsertSqlite(target, table, columns, updateCols, pkColumns, batch, columns.includes(conflictColumn) ? conflictColumn : undefined);
|
|
13138
13138
|
}
|
|
13139
13139
|
result.rowsWritten += batch.length;
|
|
13140
13140
|
} catch (err) {
|
|
@@ -13181,7 +13181,7 @@ async function syncTransfer(source, target, options, _direction) {
|
|
|
13181
13181
|
}
|
|
13182
13182
|
return results;
|
|
13183
13183
|
}
|
|
13184
|
-
async function batchUpsertPg(target, table, columns, updateCols, primaryKeys, batch) {
|
|
13184
|
+
async function batchUpsertPg(target, table, columns, updateCols, primaryKeys, batch, conflictColumn) {
|
|
13185
13185
|
if (batch.length === 0)
|
|
13186
13186
|
return;
|
|
13187
13187
|
const colList = columns.map((c) => `"${c}"`).join(", ");
|
|
@@ -13191,20 +13191,22 @@ async function batchUpsertPg(target, table, columns, updateCols, primaryKeys, ba
|
|
|
13191
13191
|
}).join(", ");
|
|
13192
13192
|
const pkList = primaryKeys.map((c) => `"${c}"`).join(", ");
|
|
13193
13193
|
const setClause = updateCols.length > 0 ? updateCols.map((c) => `"${c}" = EXCLUDED."${c}"`).join(", ") : `"${primaryKeys[0]}" = EXCLUDED."${primaryKeys[0]}"`;
|
|
13194
|
+
const whereClause = conflictColumn && updateCols.includes(conflictColumn) ? ` WHERE "${table}"."${conflictColumn}" IS NULL OR EXCLUDED."${conflictColumn}" >= "${table}"."${conflictColumn}"` : "";
|
|
13194
13195
|
const sql = `INSERT INTO "${table}" (${colList}) VALUES ${valuePlaceholders}
|
|
13195
|
-
ON CONFLICT (${pkList}) DO UPDATE SET ${setClause}`;
|
|
13196
|
+
ON CONFLICT (${pkList}) DO UPDATE SET ${setClause}${whereClause}`;
|
|
13196
13197
|
const params = batch.flatMap((row) => columns.map((c) => row[c] ?? null));
|
|
13197
13198
|
await target.run(sql, ...params);
|
|
13198
13199
|
}
|
|
13199
|
-
function batchUpsertSqlite(target, table, columns, updateCols, primaryKeys, batch) {
|
|
13200
|
+
function batchUpsertSqlite(target, table, columns, updateCols, primaryKeys, batch, conflictColumn) {
|
|
13200
13201
|
if (batch.length === 0)
|
|
13201
13202
|
return;
|
|
13202
13203
|
const colList = columns.map((c) => `"${c}"`).join(", ");
|
|
13203
13204
|
const valuePlaceholders = batch.map(() => `(${columns.map(() => "?").join(", ")})`).join(", ");
|
|
13204
13205
|
const pkList = primaryKeys.map((c) => `"${c}"`).join(", ");
|
|
13205
13206
|
const setClause = updateCols.length > 0 ? updateCols.map((c) => `"${c}" = EXCLUDED."${c}"`).join(", ") : `"${primaryKeys[0]}" = EXCLUDED."${primaryKeys[0]}"`;
|
|
13207
|
+
const whereClause = conflictColumn && updateCols.includes(conflictColumn) ? ` WHERE "${table}"."${conflictColumn}" IS NULL OR EXCLUDED."${conflictColumn}" >= "${table}"."${conflictColumn}"` : "";
|
|
13206
13208
|
const sql = `INSERT INTO "${table}" (${colList}) VALUES ${valuePlaceholders}
|
|
13207
|
-
ON CONFLICT (${pkList}) DO UPDATE SET ${setClause}`;
|
|
13209
|
+
ON CONFLICT (${pkList}) DO UPDATE SET ${setClause}${whereClause}`;
|
|
13208
13210
|
const params = batch.flatMap((row) => columns.map((c) => coerceForSqlite(row[c])));
|
|
13209
13211
|
target.run(sql, ...params);
|
|
13210
13212
|
}
|
|
@@ -23184,6 +23186,8 @@ ${message}`
|
|
|
23184
23186
|
const db = getDatabase();
|
|
23185
23187
|
const resolvedListId = resolveId(task_list_id, "task_lists");
|
|
23186
23188
|
const taskList = getTaskList(resolvedListId, db);
|
|
23189
|
+
if (!taskList)
|
|
23190
|
+
throw new Error(`Task list not found: ${task_list_id}`);
|
|
23187
23191
|
const statuses = filter_status ?? ["pending"];
|
|
23188
23192
|
const tasks = listTasks({ task_list_id: resolvedListId, status: statuses }, db);
|
|
23189
23193
|
const message = formatDispatchMessage(tasks, { listName: taskList.name });
|
|
@@ -27492,8 +27496,8 @@ In Progress:`);
|
|
|
27492
27496
|
return { content: [{ type: "text", text: `Manager not found: ${manager_name}` }], isError: true };
|
|
27493
27497
|
managerId = manager.id;
|
|
27494
27498
|
}
|
|
27495
|
-
const { updateAgent:
|
|
27496
|
-
|
|
27499
|
+
const { updateAgent: updateAgent2 } = await Promise.resolve().then(() => (init_agents(), exports_agents));
|
|
27500
|
+
updateAgent2(agent.id, { reports_to: managerId });
|
|
27497
27501
|
const result = managerId ? `${agent_name} now reports to ${manager_name}` : `${agent_name} reports to no one (top-level)`;
|
|
27498
27502
|
return { content: [{ type: "text", text: result }] };
|
|
27499
27503
|
} catch (e) {
|
|
@@ -30294,8 +30298,8 @@ data: ${JSON.stringify({ type: "connected", agent_id: agentId, timestamp: new Da
|
|
|
30294
30298
|
const id = agentMatch[1];
|
|
30295
30299
|
try {
|
|
30296
30300
|
const body = await req.json();
|
|
30297
|
-
const { updateAgent:
|
|
30298
|
-
const agent =
|
|
30301
|
+
const { updateAgent: updateAgent2 } = await Promise.resolve().then(() => (init_agents(), exports_agents));
|
|
30302
|
+
const agent = updateAgent2(id, body);
|
|
30299
30303
|
return json(agent, 200, port);
|
|
30300
30304
|
} catch (e) {
|
|
30301
30305
|
return json({ error: e instanceof Error ? e.message : "Failed to update agent" }, 500, port);
|
|
@@ -31957,6 +31961,8 @@ function registerDispatchCommands(program2) {
|
|
|
31957
31961
|
if (!resolvedListId)
|
|
31958
31962
|
throw new Error(`Task list not found: ${opts.list}`);
|
|
31959
31963
|
const taskList = getTaskList(resolvedListId, db);
|
|
31964
|
+
if (!taskList)
|
|
31965
|
+
throw new Error(`Task list not found: ${opts.list}`);
|
|
31960
31966
|
listName = taskList.name;
|
|
31961
31967
|
const statuses = opts.filterStatus.split(",").map((s) => s.trim());
|
|
31962
31968
|
tasks = listTasks({ task_list_id: resolvedListId, status: statuses }, db);
|
|
@@ -34028,13 +34034,13 @@ program2.command("heartbeat [agent]").description("Update last_seen_at to signal
|
|
|
34028
34034
|
console.error(chalk3.red("Agent ID required. Use --agent or pass as argument."));
|
|
34029
34035
|
process.exit(1);
|
|
34030
34036
|
}
|
|
34031
|
-
const { updateAgentActivity:
|
|
34037
|
+
const { updateAgentActivity: updateAgentActivity2, getAgent: getAgent2 } = (init_agents(), __toCommonJS(exports_agents));
|
|
34032
34038
|
const a = getAgent2(agentId) || (init_agents(), __toCommonJS(exports_agents)).getAgentByName(agentId);
|
|
34033
34039
|
if (!a) {
|
|
34034
34040
|
console.error(chalk3.red(`Agent not found: ${agentId}`));
|
|
34035
34041
|
process.exit(1);
|
|
34036
34042
|
}
|
|
34037
|
-
|
|
34043
|
+
updateAgentActivity2(a.id);
|
|
34038
34044
|
if (globalOpts.json) {
|
|
34039
34045
|
console.log(JSON.stringify({ agent_id: a.id, name: a.name, last_seen_at: new Date().toISOString() }));
|
|
34040
34046
|
} else {
|
package/dist/db/dispatches.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Database } from "bun:sqlite";
|
|
2
|
-
import type { CreateDispatchInput, Dispatch, DispatchLog, DispatchStatus, ListDispatchesFilter } from "../types/index.
|
|
2
|
+
import type { CreateDispatchInput, Dispatch, DispatchLog, DispatchStatus, ListDispatchesFilter } from "../types/index.js";
|
|
3
3
|
export declare function createDispatch(input: CreateDispatchInput, db?: Database): Dispatch;
|
|
4
4
|
export declare function getDispatch(id: string, db?: Database): Dispatch;
|
|
5
5
|
export declare function listDispatches(filter?: ListDispatchesFilter, db?: Database): Dispatch[];
|
|
@@ -3,5 +3,5 @@
|
|
|
3
3
|
* Re-exported from tasks.ts for backward compatibility.
|
|
4
4
|
* Full extraction pending resolution of circular dependency (completeTask → createTask).
|
|
5
5
|
*/
|
|
6
|
-
export { startTask, completeTask, failTask, lockTask, unlockTask,
|
|
6
|
+
export { startTask, completeTask, failTask, lockTask, unlockTask, getBlockingDeps, } from "./tasks.js";
|
|
7
7
|
//# sourceMappingURL=task-workflow.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-workflow.d.ts","sourceRoot":"","sources":["../../src/db/task-workflow.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EACL,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,
|
|
1
|
+
{"version":3,"file":"task-workflow.d.ts","sourceRoot":"","sources":["../../src/db/task-workflow.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EACL,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,eAAe,GAChB,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1483,7 +1483,7 @@ function listDispatches(filter = {}, db) {
|
|
|
1483
1483
|
const where = conditions.length > 0 ? `WHERE ${conditions.join(" AND ")}` : "";
|
|
1484
1484
|
const limit = filter.limit ?? 50;
|
|
1485
1485
|
const offset = filter.offset ?? 0;
|
|
1486
|
-
const rows = _db2.query(`SELECT * FROM dispatches ${where} ORDER BY created_at DESC LIMIT ? OFFSET ?`).all(...params, limit, offset);
|
|
1486
|
+
const rows = _db2.query(`SELECT * FROM dispatches ${where} ORDER BY created_at DESC LIMIT ? OFFSET ?`).all(...[...params, limit, offset]);
|
|
1487
1487
|
return rows.map(rowToDispatch);
|
|
1488
1488
|
}
|
|
1489
1489
|
function cancelDispatch(id, db) {
|
package/dist/lib/dispatch.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Database } from "bun:sqlite";
|
|
2
|
-
import type { CreateDispatchInput, Dispatch } from "../types/index.
|
|
3
|
-
export type { FormatOpts } from "./dispatch-formatter.
|
|
2
|
+
import type { CreateDispatchInput, Dispatch } from "../types/index.js";
|
|
3
|
+
export type { FormatOpts } from "./dispatch-formatter.js";
|
|
4
4
|
/**
|
|
5
5
|
* Execute a single dispatch: resolve tasks, format, send to tmux, update status.
|
|
6
6
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../src/lib/dispatch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAW3C,OAAO,KAAK,EAAE,mBAAmB,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../src/lib/dispatch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAW3C,OAAO,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAGvE,YAAY,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D;;GAEG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,QAAQ,EAClB,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,yBAAyB,EAAE,UAAU,CAAA;CAAO,EAC1F,EAAE,CAAC,EAAE,QAAQ,GACZ,OAAO,CAAC,IAAI,CAAC,CAuDf;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,EAC/B,EAAE,CAAC,EAAE,QAAQ,GACZ,OAAO,CAAC,MAAM,CAAC,CAejB;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE,eAAe,CAAC,GAAG;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,EAC9F,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,EAC/B,EAAE,CAAC,EAAE,QAAQ,GACZ,OAAO,CAAC,QAAQ,EAAE,CAAC,CAmBrB"}
|
package/dist/mcp/index.js
CHANGED
|
@@ -2715,9 +2715,9 @@ async function syncTransfer(source, target, options, _direction) {
|
|
|
2715
2715
|
const batch = rows.slice(offset, offset + batchSize);
|
|
2716
2716
|
try {
|
|
2717
2717
|
if (isAsyncAdapter(target)) {
|
|
2718
|
-
await batchUpsertPg(target, table, columns, updateCols, pkColumns, batch);
|
|
2718
|
+
await batchUpsertPg(target, table, columns, updateCols, pkColumns, batch, columns.includes(conflictColumn) ? conflictColumn : undefined);
|
|
2719
2719
|
} else {
|
|
2720
|
-
batchUpsertSqlite(target, table, columns, updateCols, pkColumns, batch);
|
|
2720
|
+
batchUpsertSqlite(target, table, columns, updateCols, pkColumns, batch, columns.includes(conflictColumn) ? conflictColumn : undefined);
|
|
2721
2721
|
}
|
|
2722
2722
|
result.rowsWritten += batch.length;
|
|
2723
2723
|
} catch (err) {
|
|
@@ -2764,7 +2764,7 @@ async function syncTransfer(source, target, options, _direction) {
|
|
|
2764
2764
|
}
|
|
2765
2765
|
return results;
|
|
2766
2766
|
}
|
|
2767
|
-
async function batchUpsertPg(target, table, columns, updateCols, primaryKeys, batch) {
|
|
2767
|
+
async function batchUpsertPg(target, table, columns, updateCols, primaryKeys, batch, conflictColumn) {
|
|
2768
2768
|
if (batch.length === 0)
|
|
2769
2769
|
return;
|
|
2770
2770
|
const colList = columns.map((c) => `"${c}"`).join(", ");
|
|
@@ -2774,20 +2774,22 @@ async function batchUpsertPg(target, table, columns, updateCols, primaryKeys, ba
|
|
|
2774
2774
|
}).join(", ");
|
|
2775
2775
|
const pkList = primaryKeys.map((c) => `"${c}"`).join(", ");
|
|
2776
2776
|
const setClause = updateCols.length > 0 ? updateCols.map((c) => `"${c}" = EXCLUDED."${c}"`).join(", ") : `"${primaryKeys[0]}" = EXCLUDED."${primaryKeys[0]}"`;
|
|
2777
|
+
const whereClause = conflictColumn && updateCols.includes(conflictColumn) ? ` WHERE "${table}"."${conflictColumn}" IS NULL OR EXCLUDED."${conflictColumn}" >= "${table}"."${conflictColumn}"` : "";
|
|
2777
2778
|
const sql = `INSERT INTO "${table}" (${colList}) VALUES ${valuePlaceholders}
|
|
2778
|
-
ON CONFLICT (${pkList}) DO UPDATE SET ${setClause}`;
|
|
2779
|
+
ON CONFLICT (${pkList}) DO UPDATE SET ${setClause}${whereClause}`;
|
|
2779
2780
|
const params = batch.flatMap((row) => columns.map((c) => row[c] ?? null));
|
|
2780
2781
|
await target.run(sql, ...params);
|
|
2781
2782
|
}
|
|
2782
|
-
function batchUpsertSqlite(target, table, columns, updateCols, primaryKeys, batch) {
|
|
2783
|
+
function batchUpsertSqlite(target, table, columns, updateCols, primaryKeys, batch, conflictColumn) {
|
|
2783
2784
|
if (batch.length === 0)
|
|
2784
2785
|
return;
|
|
2785
2786
|
const colList = columns.map((c) => `"${c}"`).join(", ");
|
|
2786
2787
|
const valuePlaceholders = batch.map(() => `(${columns.map(() => "?").join(", ")})`).join(", ");
|
|
2787
2788
|
const pkList = primaryKeys.map((c) => `"${c}"`).join(", ");
|
|
2788
2789
|
const setClause = updateCols.length > 0 ? updateCols.map((c) => `"${c}" = EXCLUDED."${c}"`).join(", ") : `"${primaryKeys[0]}" = EXCLUDED."${primaryKeys[0]}"`;
|
|
2790
|
+
const whereClause = conflictColumn && updateCols.includes(conflictColumn) ? ` WHERE "${table}"."${conflictColumn}" IS NULL OR EXCLUDED."${conflictColumn}" >= "${table}"."${conflictColumn}"` : "";
|
|
2789
2791
|
const sql = `INSERT INTO "${table}" (${colList}) VALUES ${valuePlaceholders}
|
|
2790
|
-
ON CONFLICT (${pkList}) DO UPDATE SET ${setClause}`;
|
|
2792
|
+
ON CONFLICT (${pkList}) DO UPDATE SET ${setClause}${whereClause}`;
|
|
2791
2793
|
const params = batch.flatMap((row) => columns.map((c) => coerceForSqlite(row[c])));
|
|
2792
2794
|
target.run(sql, ...params);
|
|
2793
2795
|
}
|
|
@@ -15075,7 +15077,7 @@ function listDispatches(filter = {}, db) {
|
|
|
15075
15077
|
const where = conditions.length > 0 ? `WHERE ${conditions.join(" AND ")}` : "";
|
|
15076
15078
|
const limit = filter.limit ?? 50;
|
|
15077
15079
|
const offset = filter.offset ?? 0;
|
|
15078
|
-
const rows = _db2.query(`SELECT * FROM dispatches ${where} ORDER BY created_at DESC LIMIT ? OFFSET ?`).all(...params, limit, offset);
|
|
15080
|
+
const rows = _db2.query(`SELECT * FROM dispatches ${where} ORDER BY created_at DESC LIMIT ? OFFSET ?`).all(...[...params, limit, offset]);
|
|
15079
15081
|
return rows.map(rowToDispatch);
|
|
15080
15082
|
}
|
|
15081
15083
|
function cancelDispatch(id, db) {
|
|
@@ -22922,6 +22924,8 @@ ${message}`
|
|
|
22922
22924
|
const db = getDatabase();
|
|
22923
22925
|
const resolvedListId = resolveId(task_list_id, "task_lists");
|
|
22924
22926
|
const taskList = getTaskList(resolvedListId, db);
|
|
22927
|
+
if (!taskList)
|
|
22928
|
+
throw new Error(`Task list not found: ${task_list_id}`);
|
|
22925
22929
|
const statuses = filter_status ?? ["pending"];
|
|
22926
22930
|
const tasks = listTasks({ task_list_id: resolvedListId, status: statuses }, db);
|
|
22927
22931
|
const message = formatDispatchMessage(tasks, { listName: taskList.name });
|
|
@@ -25250,8 +25254,8 @@ if (shouldRegisterTool("set_reports_to")) {
|
|
|
25250
25254
|
return { content: [{ type: "text", text: `Manager not found: ${manager_name}` }], isError: true };
|
|
25251
25255
|
managerId = manager.id;
|
|
25252
25256
|
}
|
|
25253
|
-
const { updateAgent:
|
|
25254
|
-
|
|
25257
|
+
const { updateAgent: updateAgent2 } = await Promise.resolve().then(() => (init_agents(), exports_agents));
|
|
25258
|
+
updateAgent2(agent.id, { reports_to: managerId });
|
|
25255
25259
|
const result = managerId ? `${agent_name} now reports to ${manager_name}` : `${agent_name} reports to no one (top-level)`;
|
|
25256
25260
|
return { content: [{ type: "text", text: result }] };
|
|
25257
25261
|
} catch (e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/dispatch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAUzE,KAAK,OAAO,GAAG;IACb,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC9C,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAClD,WAAW,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,MAAM,CAAC;CACrC,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,kBAAkB,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/dispatch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAUzE,KAAK,OAAO,GAAG;IACb,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC9C,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAClD,WAAW,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,MAAM,CAAC;CACrC,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,kBAAkB,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,OAAO,GAAG,IAAI,CAwLtH"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hasna/todos",
|
|
3
|
-
"version": "0.11.
|
|
3
|
+
"version": "0.11.18",
|
|
4
4
|
"description": "Universal task management for AI coding agents - CLI + MCP server + interactive TUI",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
"author": "Andrei Hasna <andrei@hasna.com>",
|
|
65
65
|
"license": "Apache-2.0",
|
|
66
66
|
"dependencies": {
|
|
67
|
-
"@hasna/cloud": "
|
|
67
|
+
"@hasna/cloud": "0.1.28",
|
|
68
68
|
"@modelcontextprotocol/sdk": "^1.12.1",
|
|
69
69
|
"chalk": "^5.4.1",
|
|
70
70
|
"commander": "^13.1.0",
|