@hasna/todos 0.14.0 → 0.15.1

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/index.js CHANGED
@@ -3790,6 +3790,103 @@ var init_identity_mapping = __esm(() => {
3790
3790
  });
3791
3791
  });
3792
3792
 
3793
+ // src/lib/sync-utils.ts
3794
+ import { existsSync as existsSync2, mkdirSync, readFileSync, readdirSync, statSync, writeFileSync } from "fs";
3795
+ import { createHash } from "crypto";
3796
+ import { homedir } from "os";
3797
+ import { join } from "path";
3798
+ function getHomeDir() {
3799
+ return process.env["HOME"] || process.env["USERPROFILE"] || homedir();
3800
+ }
3801
+ function getTodosGlobalDir() {
3802
+ return join(getHomeDir(), ".hasna", "todos");
3803
+ }
3804
+ function ensureDir(dir) {
3805
+ if (!existsSync2(dir))
3806
+ mkdirSync(dir, { recursive: true });
3807
+ }
3808
+ function listJsonFiles(dir) {
3809
+ if (!existsSync2(dir))
3810
+ return [];
3811
+ return readdirSync(dir).filter((f) => f.endsWith(".json"));
3812
+ }
3813
+ function readJsonFile(path) {
3814
+ try {
3815
+ return JSON.parse(readFileSync(path, "utf-8"));
3816
+ } catch {
3817
+ return null;
3818
+ }
3819
+ }
3820
+ function writeJsonFile(path, data) {
3821
+ writeFileSync(path, JSON.stringify(data, null, 2) + `
3822
+ `);
3823
+ }
3824
+ function readHighWaterMark(dir) {
3825
+ const path = join(dir, ".highwatermark");
3826
+ if (!existsSync2(path))
3827
+ return 1;
3828
+ const val = parseInt(readFileSync(path, "utf-8").trim(), 10);
3829
+ return isNaN(val) ? 1 : val;
3830
+ }
3831
+ function writeHighWaterMark(dir, value) {
3832
+ writeFileSync(join(dir, ".highwatermark"), String(value));
3833
+ }
3834
+ function getFileMtimeMs(path) {
3835
+ try {
3836
+ return statSync(path).mtimeMs;
3837
+ } catch {
3838
+ return null;
3839
+ }
3840
+ }
3841
+ function parseTimestamp(value) {
3842
+ if (typeof value !== "string")
3843
+ return null;
3844
+ const parsed = Date.parse(value);
3845
+ return Number.isNaN(parsed) ? null : parsed;
3846
+ }
3847
+ function appendSyncConflict(metadata, conflict, limit = 5) {
3848
+ const current = Array.isArray(metadata["sync_conflicts"]) ? metadata["sync_conflicts"] : [];
3849
+ const next = [conflict, ...current].slice(0, limit);
3850
+ return { ...metadata, sync_conflicts: next };
3851
+ }
3852
+ function canonicalize(value) {
3853
+ if (Array.isArray(value))
3854
+ return value.map(canonicalize);
3855
+ if (!value || typeof value !== "object")
3856
+ return value;
3857
+ const entries = Object.entries(value).filter(([, entryValue]) => entryValue !== undefined).sort(([a], [b]) => a.localeCompare(b));
3858
+ return Object.fromEntries(entries.map(([key, entryValue]) => [key, canonicalize(entryValue)]));
3859
+ }
3860
+ function withoutSyncFingerprintMetadata(metadata) {
3861
+ const { [TODO_SYNC_FINGERPRINT_KEY]: _fingerprint, ...rest } = metadata;
3862
+ return rest;
3863
+ }
3864
+ function syncFingerprint(record) {
3865
+ const metadata = withoutSyncFingerprintMetadata(record.metadata || {});
3866
+ const canonical = canonicalize({ ...record, metadata });
3867
+ return `sha256:${createHash("sha256").update(JSON.stringify(canonical)).digest("hex")}`;
3868
+ }
3869
+ function withSyncFingerprint(record) {
3870
+ const metadata = withoutSyncFingerprintMetadata(record.metadata);
3871
+ return {
3872
+ ...record,
3873
+ metadata: {
3874
+ ...metadata,
3875
+ [TODO_SYNC_FINGERPRINT_KEY]: syncFingerprint({ ...record, metadata })
3876
+ }
3877
+ };
3878
+ }
3879
+ function hasSyncFingerprintChanged(record) {
3880
+ const stored = record.metadata?.[TODO_SYNC_FINGERPRINT_KEY];
3881
+ if (typeof stored !== "string" || stored.length === 0)
3882
+ return null;
3883
+ return stored !== syncFingerprint(record);
3884
+ }
3885
+ var TODO_SYNC_FINGERPRINT_KEY = "todos_sync_fingerprint", HOME;
3886
+ var init_sync_utils = __esm(() => {
3887
+ HOME = getHomeDir();
3888
+ });
3889
+
3793
3890
  // src/storage/config.ts
3794
3891
  var exports_config = {};
3795
3892
  __export(exports_config, {
@@ -4120,8 +4217,8 @@ __export(exports_database, {
4120
4217
  LOCK_EXPIRY_MINUTES: () => LOCK_EXPIRY_MINUTES
4121
4218
  });
4122
4219
  import { Database } from "bun:sqlite";
4123
- import { existsSync as existsSync2, mkdirSync } from "fs";
4124
- import { dirname, join, resolve as resolve2 } from "path";
4220
+ import { existsSync as existsSync3, mkdirSync as mkdirSync2 } from "fs";
4221
+ import { dirname, join as join2, resolve as resolve2 } from "path";
4125
4222
  function isInMemoryDb(path) {
4126
4223
  return path === ":memory:" || path.startsWith("file::memory:");
4127
4224
  }
@@ -4130,8 +4227,8 @@ function findNearestProjectDb(startDir) {
4130
4227
  const stopAt = gitRoot ? resolve2(gitRoot) : resolve2(startDir);
4131
4228
  let dir = resolve2(startDir);
4132
4229
  while (true) {
4133
- const candidate = join(dir, ".hasna", "todos", "todos.db");
4134
- if (existsSync2(candidate))
4230
+ const candidate = join2(dir, ".hasna", "todos", "todos.db");
4231
+ if (existsSync3(candidate))
4135
4232
  return candidate;
4136
4233
  if (dir === stopAt)
4137
4234
  break;
@@ -4145,7 +4242,7 @@ function findNearestProjectDb(startDir) {
4145
4242
  function findGitRoot(startDir) {
4146
4243
  let dir = resolve2(startDir);
4147
4244
  while (true) {
4148
- if (existsSync2(join(dir, ".git")))
4245
+ if (existsSync3(join2(dir, ".git")))
4149
4246
  return dir;
4150
4247
  const parent = dirname(dir);
4151
4248
  if (parent === dir)
@@ -4155,8 +4252,7 @@ function findGitRoot(startDir) {
4155
4252
  return null;
4156
4253
  }
4157
4254
  function getGlobalDbPath() {
4158
- const home = process.env["HOME"] || process.env["USERPROFILE"] || "~";
4159
- return join(home, ".hasna", "todos", "todos.db");
4255
+ return join2(getHomeDir(), ".hasna", "todos", "todos.db");
4160
4256
  }
4161
4257
  function hasExplicitProjectArg(args = process.argv.slice(2)) {
4162
4258
  return args.some((arg) => arg === "--project" || arg.startsWith("--project="));
@@ -4194,7 +4290,7 @@ function getDbPath() {
4194
4290
  if (process.env["TODOS_DB_SCOPE"] === "project") {
4195
4291
  const gitRoot = findGitRoot(cwd);
4196
4292
  if (gitRoot && canCreateScopedProjectDb()) {
4197
- return join(gitRoot, ".hasna", "todos", "todos.db");
4293
+ return join2(gitRoot, ".hasna", "todos", "todos.db");
4198
4294
  }
4199
4295
  }
4200
4296
  return getGlobalDbPath();
@@ -4202,16 +4298,16 @@ function getDbPath() {
4202
4298
  function getDatabasePath() {
4203
4299
  return getDbPath();
4204
4300
  }
4205
- function ensureDir(filePath) {
4301
+ function ensureDir2(filePath) {
4206
4302
  if (isInMemoryDb(filePath))
4207
4303
  return;
4208
4304
  const dir = dirname(resolve2(filePath));
4209
- if (!existsSync2(dir)) {
4210
- mkdirSync(dir, { recursive: true });
4305
+ if (!existsSync3(dir)) {
4306
+ mkdirSync2(dir, { recursive: true });
4211
4307
  }
4212
4308
  }
4213
4309
  function openDatabase(path) {
4214
- ensureDir(path);
4310
+ ensureDir2(path);
4215
4311
  const db = new Database(path);
4216
4312
  db.run("PRAGMA busy_timeout = 5000");
4217
4313
  db.run("PRAGMA journal_mode = WAL");
@@ -4378,105 +4474,10 @@ var init_database = __esm(() => {
4378
4474
  init_machines();
4379
4475
  init_identity_mapping();
4380
4476
  init_types();
4477
+ init_sync_utils();
4381
4478
  ALLOWED_TABLES = new Set(["tasks", "projects", "agents", "plans", "task_lists", "task_templates", "project_knowledge_records", "project_risks", "local_retrospectives"]);
4382
4479
  });
4383
4480
 
4384
- // src/lib/sync-utils.ts
4385
- import { existsSync as existsSync3, mkdirSync as mkdirSync2, readFileSync, readdirSync, statSync, writeFileSync } from "fs";
4386
- import { createHash } from "crypto";
4387
- import { join as join2 } from "path";
4388
- function getHomeDir() {
4389
- return process.env["HOME"] || process.env["USERPROFILE"] || "~";
4390
- }
4391
- function getTodosGlobalDir() {
4392
- return join2(getHomeDir(), ".hasna", "todos");
4393
- }
4394
- function ensureDir2(dir) {
4395
- if (!existsSync3(dir))
4396
- mkdirSync2(dir, { recursive: true });
4397
- }
4398
- function listJsonFiles(dir) {
4399
- if (!existsSync3(dir))
4400
- return [];
4401
- return readdirSync(dir).filter((f) => f.endsWith(".json"));
4402
- }
4403
- function readJsonFile(path) {
4404
- try {
4405
- return JSON.parse(readFileSync(path, "utf-8"));
4406
- } catch {
4407
- return null;
4408
- }
4409
- }
4410
- function writeJsonFile(path, data) {
4411
- writeFileSync(path, JSON.stringify(data, null, 2) + `
4412
- `);
4413
- }
4414
- function readHighWaterMark(dir) {
4415
- const path = join2(dir, ".highwatermark");
4416
- if (!existsSync3(path))
4417
- return 1;
4418
- const val = parseInt(readFileSync(path, "utf-8").trim(), 10);
4419
- return isNaN(val) ? 1 : val;
4420
- }
4421
- function writeHighWaterMark(dir, value) {
4422
- writeFileSync(join2(dir, ".highwatermark"), String(value));
4423
- }
4424
- function getFileMtimeMs(path) {
4425
- try {
4426
- return statSync(path).mtimeMs;
4427
- } catch {
4428
- return null;
4429
- }
4430
- }
4431
- function parseTimestamp(value) {
4432
- if (typeof value !== "string")
4433
- return null;
4434
- const parsed = Date.parse(value);
4435
- return Number.isNaN(parsed) ? null : parsed;
4436
- }
4437
- function appendSyncConflict(metadata, conflict, limit = 5) {
4438
- const current = Array.isArray(metadata["sync_conflicts"]) ? metadata["sync_conflicts"] : [];
4439
- const next = [conflict, ...current].slice(0, limit);
4440
- return { ...metadata, sync_conflicts: next };
4441
- }
4442
- function canonicalize(value) {
4443
- if (Array.isArray(value))
4444
- return value.map(canonicalize);
4445
- if (!value || typeof value !== "object")
4446
- return value;
4447
- const entries = Object.entries(value).filter(([, entryValue]) => entryValue !== undefined).sort(([a], [b]) => a.localeCompare(b));
4448
- return Object.fromEntries(entries.map(([key, entryValue]) => [key, canonicalize(entryValue)]));
4449
- }
4450
- function withoutSyncFingerprintMetadata(metadata) {
4451
- const { [TODO_SYNC_FINGERPRINT_KEY]: _fingerprint, ...rest } = metadata;
4452
- return rest;
4453
- }
4454
- function syncFingerprint(record) {
4455
- const metadata = withoutSyncFingerprintMetadata(record.metadata || {});
4456
- const canonical = canonicalize({ ...record, metadata });
4457
- return `sha256:${createHash("sha256").update(JSON.stringify(canonical)).digest("hex")}`;
4458
- }
4459
- function withSyncFingerprint(record) {
4460
- const metadata = withoutSyncFingerprintMetadata(record.metadata);
4461
- return {
4462
- ...record,
4463
- metadata: {
4464
- ...metadata,
4465
- [TODO_SYNC_FINGERPRINT_KEY]: syncFingerprint({ ...record, metadata })
4466
- }
4467
- };
4468
- }
4469
- function hasSyncFingerprintChanged(record) {
4470
- const stored = record.metadata?.[TODO_SYNC_FINGERPRINT_KEY];
4471
- if (typeof stored !== "string" || stored.length === 0)
4472
- return null;
4473
- return stored !== syncFingerprint(record);
4474
- }
4475
- var TODO_SYNC_FINGERPRINT_KEY = "todos_sync_fingerprint", HOME;
4476
- var init_sync_utils = __esm(() => {
4477
- HOME = process.env["HOME"] || process.env["USERPROFILE"] || "~";
4478
- });
4479
-
4480
4481
  // src/lib/config.ts
4481
4482
  import { existsSync as existsSync4 } from "fs";
4482
4483
  import { dirname as dirname2, join as join3 } from "path";
@@ -4502,7 +4503,7 @@ function loadConfig() {
4502
4503
  }
4503
4504
  function saveConfig(config) {
4504
4505
  const configPath = getConfigPath();
4505
- ensureDir2(dirname2(configPath));
4506
+ ensureDir(dirname2(configPath));
4506
4507
  writeJsonFile(configPath, config);
4507
4508
  cached = config;
4508
4509
  return config;
@@ -5847,7 +5848,7 @@ var init_event_hooks = __esm(() => {
5847
5848
  // node_modules/.bun/@hasna+events@0.1.11/node_modules/@hasna/events/dist/index.js
5848
5849
  import { chmod, mkdir, readFile, rename, writeFile } from "fs/promises";
5849
5850
  import { existsSync as existsSync5 } from "fs";
5850
- import { homedir } from "os";
5851
+ import { homedir as homedir2 } from "os";
5851
5852
  import { join as join4 } from "path";
5852
5853
  import { createHmac, timingSafeEqual } from "crypto";
5853
5854
  import { randomUUID as randomUUID2 } from "crypto";
@@ -5949,7 +5950,7 @@ function channelMatchesEvent(channel, event) {
5949
5950
  return channel.filters.some((filter) => eventMatchesFilter(event, filter));
5950
5951
  }
5951
5952
  function getEventsDataDir(override) {
5952
- return override || process.env[HASNA_EVENTS_DIR_ENV] || process.env[HASNA_EVENTS_HOME_ENV] || join4(homedir(), ".hasna", "events");
5953
+ return override || process.env[HASNA_EVENTS_DIR_ENV] || process.env[HASNA_EVENTS_HOME_ENV] || join4(homedir2(), ".hasna", "events");
5953
5954
  }
5954
5955
 
5955
5956
  class JsonEventsStore {
@@ -12144,7 +12145,7 @@ var init_dispatches = __esm(() => {
12144
12145
  // package.json
12145
12146
  var package_default = {
12146
12147
  name: "@hasna/todos",
12147
- version: "0.14.0",
12148
+ version: "0.15.1",
12148
12149
  description: "Universal task management for AI coding agents - CLI + MCP server + interactive TUI",
12149
12150
  type: "module",
12150
12151
  main: "dist/index.js",
@@ -36067,6 +36068,7 @@ function resourceDiagnostics() {
36067
36068
  };
36068
36069
  }
36069
36070
  // src/lib/sandbox-profiles.ts
36071
+ init_sync_utils();
36070
36072
  import { existsSync as existsSync14, readFileSync as readFileSync10, writeFileSync as writeFileSync9, mkdirSync as mkdirSync11 } from "fs";
36071
36073
  import { join as join12, dirname as dirname9 } from "path";
36072
36074
  var SANDBOX_PROFILE_VERSION = "todos.sandbox-profile.v1";
@@ -36080,8 +36082,7 @@ function getProfilesPath() {
36080
36082
  return local;
36081
36083
  if (existsSync14(local))
36082
36084
  return local;
36083
- const home = process.env["HOME"] || "~";
36084
- return join12(home, ".hasna", "todos", "sandbox-profiles.json");
36085
+ return join12(getHomeDir(), ".hasna", "todos", "sandbox-profiles.json");
36085
36086
  }
36086
36087
  var cached2 = null;
36087
36088
  function resetSandboxProfileCache() {
@@ -39766,6 +39767,7 @@ todos import issues ./linear.json --source linear --dry-run
39766
39767
  `;
39767
39768
  }
39768
39769
  // src/lib/run-records.ts
39770
+ init_sync_utils();
39769
39771
  init_database();
39770
39772
  init_secret_redaction();
39771
39773
  import { existsSync as existsSync19, mkdirSync as mkdirSync12, writeFileSync as writeFileSync10 } from "fs";
@@ -40005,8 +40007,7 @@ function getDefaultReplayDir() {
40005
40007
  const local = join14(process.cwd(), ".todos", "replays");
40006
40008
  if (existsSync19(join14(process.cwd(), ".todos")))
40007
40009
  return local;
40008
- const home = process.env["HOME"] || "~";
40009
- return join14(home, ".hasna", "todos", "replays");
40010
+ return join14(getHomeDir(), ".hasna", "todos", "replays");
40010
40011
  }
40011
40012
  // src/lib/release-checks.ts
40012
40013
  init_secret_redaction();
@@ -44379,7 +44380,7 @@ function captureEnvironmentSnapshot(input = {}) {
44379
44380
  }
44380
44381
  function writeEnvironmentSnapshot(snapshot, outputPath) {
44381
44382
  const path = outputPath ? resolve17(outputPath) : join18(defaultSnapshotDir(), `${snapshot.id}.json`);
44382
- ensureDir2(dirname15(path));
44383
+ ensureDir(dirname15(path));
44383
44384
  writeJsonFile(path, snapshot);
44384
44385
  return path;
44385
44386
  }
@@ -48547,7 +48548,7 @@ function taskToClaudeTask(task2, claudeTaskId, existingMeta) {
48547
48548
  function pushToClaudeTaskList(taskListId, projectId, options = {}) {
48548
48549
  const dir = getTaskListDir(taskListId);
48549
48550
  if (!existsSync25(dir))
48550
- ensureDir2(dir);
48551
+ ensureDir(dir);
48551
48552
  const filter = {};
48552
48553
  if (projectId)
48553
48554
  filter["project_id"] = projectId;
@@ -48774,7 +48775,7 @@ function metadataKey(agent) {
48774
48775
  function pushToAgentTaskList(agent, taskListId, projectId, options = {}) {
48775
48776
  const dir = getTaskListDir2(agent, taskListId);
48776
48777
  if (!existsSync26(dir))
48777
- ensureDir2(dir);
48778
+ ensureDir(dir);
48778
48779
  const filter = {};
48779
48780
  if (projectId)
48780
48781
  filter["project_id"] = projectId;
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Tag resolution for `todos bulk tag|untag`.
3
+ *
4
+ * Kept as pure functions with no database or transport dependency so both the
5
+ * remote (/v1) and local (SQLite) bulk paths resolve tags identically. A tag
6
+ * that merges on one transport and replaces on the other would corrupt rows
7
+ * depending on which machine ran the backfill.
8
+ */
9
+ export type BulkTagAction = "tag" | "untag";
10
+ export interface BulkTagResolution {
11
+ /** The full tag list to persist. */
12
+ tags: string[];
13
+ /**
14
+ * False when the row already satisfies the request. Callers skip the write
15
+ * entirely, so a re-run after a partial failure does not bump row versions
16
+ * or emit audit noise for rows that were already correct.
17
+ */
18
+ changed: boolean;
19
+ }
20
+ /**
21
+ * Parse a comma-separated `--tag` argument.
22
+ *
23
+ * Splits ONLY on commas: `:` and `/` are legal inside a tag and are load
24
+ * bearing for the namespaced tags this fleet already stores (`repo:secrets`,
25
+ * `gh:hasna/todos`, `directive:k_msd4cz8t_ste6f4`).
26
+ */
27
+ export declare function parseTagList(raw: string | undefined | null): string[];
28
+ export type TagArgumentResolution = {
29
+ ok: true;
30
+ raw: string | undefined;
31
+ } | {
32
+ ok: false;
33
+ conflict: {
34
+ tag: string;
35
+ tags: string;
36
+ };
37
+ };
38
+ /**
39
+ * Reconcile the `--tag` / `--tags` spellings.
40
+ *
41
+ * Both are accepted because the rest of the CLI accepts both, but when they are
42
+ * both present and name DIFFERENT sets the run is refused rather than picking a
43
+ * winner. Silently dropping one of two explicitly-passed tag arguments is the
44
+ * wrong failure mode for a command whose purpose is stamping thousands of rows:
45
+ * the operator sees rc=0 and a success count while the tags they asked for are
46
+ * simply absent.
47
+ */
48
+ export declare function resolveTagArgument(tag: string | undefined, tags: string | undefined): TagArgumentResolution;
49
+ /**
50
+ * Apply `action` to `current`, returning the tag list to persist.
51
+ *
52
+ * `tag` MERGES — it never replaces. `todos update --tags` replaces the list,
53
+ * and reusing that semantic for a bulk provenance backfill would strip every
54
+ * unrelated tag from every row it touched.
55
+ */
56
+ export declare function resolveBulkTags(current: readonly string[] | undefined | null, action: BulkTagAction, tags: readonly string[]): BulkTagResolution;
57
+ //# sourceMappingURL=bulk-tags.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bulk-tags.d.ts","sourceRoot":"","sources":["../../src/lib/bulk-tags.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,OAAO,CAAC;AAE5C,MAAM,WAAW,iBAAiB;IAChC,oCAAoC;IACpC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf;;;;OAIG;IACH,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,EAAE,CAWrE;AAED,MAAM,MAAM,qBAAqB,GAC7B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GACrC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAE3D;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,IAAI,EAAE,MAAM,GAAG,SAAS,GACvB,qBAAqB,CAUvB;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,GAAG,IAAI,EAC7C,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,SAAS,MAAM,EAAE,GACtB,iBAAiB,CAiBnB"}
@@ -1 +1 @@
1
- {"version":3,"file":"enum-vocabulary.d.ts","sourceRoot":"","sources":["../../src/lib/enum-vocabulary.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAsBH;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,KAAK,SAAI,GACR,MAAM,EAAE,CAuBV;AAED,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,MAAM;IAClD,kFAAkF;IAClF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,8EAA8E;IAC9E,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,CAAC;IAClC;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC/C;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAClD,oEAAoE;IACpE,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,MAAM,IAC7C;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,CAAA;CAAE,GAC3C;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAEjF;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,MAAM,EACpD,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC1B,oBAAoB,CAAC,CAAC,CAAC,CAiDzB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAEzE"}
1
+ {"version":3,"file":"enum-vocabulary.d.ts","sourceRoot":"","sources":["../../src/lib/enum-vocabulary.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAsBH;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,KAAK,SAAI,GACR,MAAM,EAAE,CAuBV;AAED,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,MAAM;IAClD,kFAAkF;IAClF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,8EAA8E;IAC9E,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,CAAC;IAClC;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC/C;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAClD,oEAAoE;IACpE,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,MAAM,IAC7C;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,CAAA;CAAE,GAC3C;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAEjF;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,MAAM,EACpD,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC1B,oBAAoB,CAAC,CAAC,CAAC,CAqEzB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAEzE"}
@@ -1 +1 @@
1
- {"version":3,"file":"run-records.d.ts","sourceRoot":"","sources":["../../src/lib/run-records.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-records.d.ts","sourceRoot":"","sources":["../../src/lib/run-records.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sandbox-profiles.d.ts","sourceRoot":"","sources":["../../src/lib/sandbox-profiles.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,eAAO,MAAM,uBAAuB,6BAA6B,CAAC;AAElE,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC;AAgBD,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C;AAED,wBAAgB,yBAAyB,IAAI,cAAc,EAAE,CAqB5D;AAED,wBAAgB,mBAAmB,IAAI,cAAc,EAAE,CAUtD;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAErE;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,IAAI,CAKpE;AAcD,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,iBAAiB,EACxB,WAAW,SAAY,EACvB,MAAM,UAAQ,GACb,kBAAkB,CA0CpB"}
1
+ {"version":3,"file":"sandbox-profiles.d.ts","sourceRoot":"","sources":["../../src/lib/sandbox-profiles.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,eAAO,MAAM,uBAAuB,6BAA6B,CAAC;AAElE,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC;AAeD,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C;AAED,wBAAgB,yBAAyB,IAAI,cAAc,EAAE,CAqB5D;AAED,wBAAgB,mBAAmB,IAAI,cAAc,EAAE,CAUtD;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAErE;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,IAAI,CAKpE;AAcD,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,iBAAiB,EACxB,WAAW,SAAY,EACvB,MAAM,UAAQ,GACb,kBAAkB,CA0CpB"}
@@ -1,7 +1,7 @@
1
1
  import type { SyncConflict } from "./sync-types.js";
2
2
  export declare const TODO_SYNC_FINGERPRINT_KEY = "todos_sync_fingerprint";
3
- export declare const HOME: string;
4
3
  export declare function getHomeDir(): string;
4
+ export declare const HOME: string;
5
5
  export declare function getTodosGlobalDir(): string;
6
6
  export declare function ensureDir(dir: string): void;
7
7
  export declare function listJsonFiles(dir: string): string[];
@@ -1 +1 @@
1
- {"version":3,"file":"sync-utils.d.ts","sourceRoot":"","sources":["../../src/lib/sync-utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,eAAO,MAAM,yBAAyB,2BAA2B,CAAC;AAElE,eAAO,MAAM,IAAI,QAA2D,CAAC;AAE7E,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAE3C;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAGnD;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,CAMtD;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAE/D;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKrD;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAEnE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAM1D;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAI5D;AAED,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,QAAQ,EAAE,YAAY,EACtB,KAAK,SAAI,GACR,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAIzB;AAsBD,wBAAgB,mBAAmB,CAAC,CAAC,SAAS;IAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CASjG;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAAG,OAAO,GAAG,IAAI,CAIxG"}
1
+ {"version":3,"file":"sync-utils.d.ts","sourceRoot":"","sources":["../../src/lib/sync-utils.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,eAAO,MAAM,yBAAyB,2BAA2B,CAAC;AAelE,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED,eAAO,MAAM,IAAI,QAAe,CAAC;AAEjC,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAE3C;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAGnD;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,CAMtD;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAE/D;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKrD;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAEnE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAM1D;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAI5D;AAED,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,QAAQ,EAAE,YAAY,EACtB,KAAK,SAAI,GACR,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAIzB;AAsBD,wBAAgB,mBAAmB,CAAC,CAAC,SAAS;IAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CASjG;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAAG,OAAO,GAAG,IAAI,CAIxG"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAmBpE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AA2F9C,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAO9E;AA0FD,8FAA8F;AAC9F,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAO7C;AAED,0DAA0D;AAC1D,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,mBAAmB,CAAC,EAAE,MAAM,GAAG,MAAM,CA6BjF;AAID,wBAAgB,WAAW,cAsD1B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAmBpE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AA2F9C,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAO9E;AA0FD,8FAA8F;AAC9F,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAO7C;AAED,0DAA0D;AAC1D,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,mBAAmB,CAAC,EAAE,MAAM,GAAG,MAAM,CA6BjF;AAID,wBAAgB,WAAW,cAuD1B"}