@hasna/todos 0.11.16 → 0.11.17

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.
@@ -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,CAiL/D"}
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: updateAgent3 } = await Promise.resolve().then(() => (init_agents(), exports_agents));
27496
- updateAgent3(agent.id, { reports_to: managerId });
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: updateAgent3 } = await Promise.resolve().then(() => (init_agents(), exports_agents));
30298
- const agent = updateAgent3(id, body);
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: updateAgentActivity3, getAgent: getAgent2 } = (init_agents(), __toCommonJS(exports_agents));
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
- updateAgentActivity3(a.id);
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 {
@@ -1,5 +1,5 @@
1
1
  import type { Database } from "bun:sqlite";
2
- import type { CreateDispatchInput, Dispatch, DispatchLog, DispatchStatus, ListDispatchesFilter } from "../types/index.ts";
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, approveTask, getBlockingDeps, } from "./tasks.js";
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,WAAW,EACX,eAAe,GAChB,MAAM,YAAY,CAAC"}
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) {
@@ -1,6 +1,6 @@
1
1
  import type { Database } from "bun:sqlite";
2
- import type { CreateDispatchInput, Dispatch } from "../types/index.ts";
3
- export type { FormatOpts } from "./dispatch-formatter.ts";
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,EAAc,MAAM,mBAAmB,CAAC;AAGnF,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"}
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: updateAgent3 } = await Promise.resolve().then(() => (init_agents(), exports_agents));
25254
- updateAgent3(agent.id, { reports_to: managerId });
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,CAuLtH"}
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.16",
3
+ "version": "0.11.17",
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": "^0.1.24",
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",