@hasna/todos 0.13.12 → 0.14.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.
package/dist/contracts.js CHANGED
@@ -3430,6 +3430,9 @@ var init_machines = __esm(() => {
3430
3430
  function isBlockingDependencyStatus(status) {
3431
3431
  return status !== "completed" && status !== "cancelled";
3432
3432
  }
3433
+ function isTerminalStatus(status) {
3434
+ return status === "completed" || status === "failed" || status === "cancelled";
3435
+ }
3433
3436
  var TASK_STATUSES, TASK_PRIORITIES, PLAN_STATUSES, VersionConflictError, TaskNotFoundError, TaskNotStartableError, TaskReferenceAmbiguousError, ProjectNotFoundError, ResourceConflictError, PlanNotFoundError, LockError, AgentNotFoundError, IdentityAliasAmbiguousError, IdentityIdImmutableError, TaskListNotFoundError, DependencyCycleError, CompletionGuardError, DISPATCH_STATUSES, DispatchNotFoundError;
3434
3437
  var init_types = __esm(() => {
3435
3438
  TASK_STATUSES = [
@@ -9286,11 +9289,13 @@ function updateTask(id, input, db) {
9286
9289
  }
9287
9290
  sets.push("status = ?");
9288
9291
  params.push(input.status);
9292
+ if (isTerminalStatus(input.status)) {
9293
+ sets.push("locked_by = NULL");
9294
+ sets.push("locked_at = NULL");
9295
+ }
9289
9296
  if (input.status === "completed") {
9290
9297
  sets.push("completed_at = ?");
9291
9298
  params.push(completionTimestamp);
9292
- sets.push("locked_by = NULL");
9293
- sets.push("locked_at = NULL");
9294
9299
  } else if (task.status === "completed" && input.completed_at === undefined) {
9295
9300
  sets.push("completed_at = NULL");
9296
9301
  }
@@ -9414,6 +9419,7 @@ function updateTask(id, input, db) {
9414
9419
  logTaskChange(id, "approve", "approved_by", null, input.approved_by, agentId, d);
9415
9420
  const reopened = input.status !== undefined && input.status !== "completed" && task.status === "completed" && input.completed_at === undefined;
9416
9421
  const completedNow = input.status === "completed";
9422
+ const terminalNow = input.status !== undefined && isTerminalStatus(input.status);
9417
9423
  const updatedTask = {
9418
9424
  ...task,
9419
9425
  ...Object.fromEntries(Object.entries(input).filter(([, v]) => v !== undefined)),
@@ -9421,8 +9427,8 @@ function updateTask(id, input, db) {
9421
9427
  metadata: input.metadata ?? task.metadata,
9422
9428
  version: task.version + 1,
9423
9429
  updated_at: timestamp2,
9424
- locked_by: completedNow ? null : task.locked_by,
9425
- locked_at: completedNow ? null : task.locked_at,
9430
+ locked_by: terminalNow ? null : task.locked_by,
9431
+ locked_at: terminalNow ? null : task.locked_at,
9426
9432
  completed_at: completedNow ? completionTimestamp : reopened ? null : input.completed_at !== undefined ? input.completed_at : task.completed_at,
9427
9433
  sla_minutes: input.sla_minutes !== undefined ? input.sla_minutes : task.sla_minutes,
9428
9434
  actual_minutes: input.actual_minutes ?? task.actual_minutes,
@@ -12025,7 +12031,7 @@ var init_tasks = __esm(() => {
12025
12031
  // package.json
12026
12032
  var package_default = {
12027
12033
  name: "@hasna/todos",
12028
- version: "0.13.12",
12034
+ version: "0.14.0",
12029
12035
  description: "Universal task management for AI coding agents - CLI + MCP server + interactive TUI",
12030
12036
  type: "module",
12031
12037
  main: "dist/index.js",
@@ -1 +1 @@
1
- {"version":3,"file":"task-crud.d.ts","sourceRoot":"","sources":["../../src/db/task-crud.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAoB,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,EACV,eAAe,EACf,IAAI,EACJ,UAAU,EACV,OAAO,EACP,iBAAiB,EACjB,eAAe,EACf,4BAA4B,EAC5B,6BAA6B,EAC9B,MAAM,mBAAmB,CAAC;AAO3B,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAY5F,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAS5C;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,QAAQ,GAAG,IAAI,CAMjF;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,QAAQ,GAAG,IAAI,CAGlF;AAwCD,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,IAAI,CAwFtE;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI,CAK9D;AAED,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,MAAM,EACV,EAAE,CAAC,EAAE,QAAQ,GACZ,iBAAiB,GAAG,IAAI,CA4D1B;AAQD,wBAAgB,SAAS,CAAC,MAAM,GAAE,UAAe,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,IAAI,EAAE,CA0JxE;AAED,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,EAAE,CAAC,EAAE,QAAQ,GACZ,IAAI,GAAG,IAAI,CAKb;AAcD,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,4BAA4B,EACnC,EAAE,CAAC,EAAE,QAAQ,GACZ,6BAA6B,CAmD/B;AAED,wBAAgB,UAAU,CAAC,MAAM,GAAE,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,QAAQ,CAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,CA0HnG;AAED,wBAAgB,UAAU,CACxB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,eAAe,EACtB,EAAE,CAAC,EAAE,QAAQ,GACZ,IAAI,CAkPN;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAY7D"}
1
+ {"version":3,"file":"task-crud.d.ts","sourceRoot":"","sources":["../../src/db/task-crud.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAoB,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,EACV,eAAe,EACf,IAAI,EACJ,UAAU,EACV,OAAO,EACP,iBAAiB,EACjB,eAAe,EACf,4BAA4B,EAC5B,6BAA6B,EAC9B,MAAM,mBAAmB,CAAC;AAQ3B,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAY5F,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAS5C;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,QAAQ,GAAG,IAAI,CAMjF;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,QAAQ,GAAG,IAAI,CAGlF;AAwCD,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,IAAI,CAwFtE;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI,CAK9D;AAED,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,MAAM,EACV,EAAE,CAAC,EAAE,QAAQ,GACZ,iBAAiB,GAAG,IAAI,CA4D1B;AAQD,wBAAgB,SAAS,CAAC,MAAM,GAAE,UAAe,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,IAAI,EAAE,CA0JxE;AAED,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,EAAE,CAAC,EAAE,QAAQ,GACZ,IAAI,GAAG,IAAI,CAKb;AAcD,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,4BAA4B,EACnC,EAAE,CAAC,EAAE,QAAQ,GACZ,6BAA6B,CAmD/B;AAED,wBAAgB,UAAU,CAAC,MAAM,GAAE,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,QAAQ,CAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,CA0HnG;AAED,wBAAgB,UAAU,CACxB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,eAAe,EACtB,EAAE,CAAC,EAAE,QAAQ,GACZ,IAAI,CA8PN;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAY7D"}
package/dist/index.js CHANGED
@@ -3430,6 +3430,9 @@ var init_machines = __esm(() => {
3430
3430
  function isBlockingDependencyStatus(status) {
3431
3431
  return status !== "completed" && status !== "cancelled";
3432
3432
  }
3433
+ function isTerminalStatus(status) {
3434
+ return status === "completed" || status === "failed" || status === "cancelled";
3435
+ }
3433
3436
  var TASK_STATUSES, TASK_PRIORITIES, PLAN_STATUSES, VersionConflictError, TaskNotFoundError, TaskNotStartableError, TaskReferenceAmbiguousError, ProjectNotFoundError, ResourceConflictError, PlanNotFoundError, LockError, AgentNotFoundError, IdentityAliasAmbiguousError, IdentityIdImmutableError, TaskListNotFoundError, DependencyCycleError, CompletionGuardError, DISPATCH_STATUSES, DispatchNotFoundError;
3434
3437
  var init_types = __esm(() => {
3435
3438
  TASK_STATUSES = [
@@ -9286,11 +9289,13 @@ function updateTask(id, input, db) {
9286
9289
  }
9287
9290
  sets.push("status = ?");
9288
9291
  params.push(input.status);
9292
+ if (isTerminalStatus(input.status)) {
9293
+ sets.push("locked_by = NULL");
9294
+ sets.push("locked_at = NULL");
9295
+ }
9289
9296
  if (input.status === "completed") {
9290
9297
  sets.push("completed_at = ?");
9291
9298
  params.push(completionTimestamp);
9292
- sets.push("locked_by = NULL");
9293
- sets.push("locked_at = NULL");
9294
9299
  } else if (task.status === "completed" && input.completed_at === undefined) {
9295
9300
  sets.push("completed_at = NULL");
9296
9301
  }
@@ -9414,6 +9419,7 @@ function updateTask(id, input, db) {
9414
9419
  logTaskChange(id, "approve", "approved_by", null, input.approved_by, agentId, d);
9415
9420
  const reopened = input.status !== undefined && input.status !== "completed" && task.status === "completed" && input.completed_at === undefined;
9416
9421
  const completedNow = input.status === "completed";
9422
+ const terminalNow = input.status !== undefined && isTerminalStatus(input.status);
9417
9423
  const updatedTask = {
9418
9424
  ...task,
9419
9425
  ...Object.fromEntries(Object.entries(input).filter(([, v]) => v !== undefined)),
@@ -9421,8 +9427,8 @@ function updateTask(id, input, db) {
9421
9427
  metadata: input.metadata ?? task.metadata,
9422
9428
  version: task.version + 1,
9423
9429
  updated_at: timestamp2,
9424
- locked_by: completedNow ? null : task.locked_by,
9425
- locked_at: completedNow ? null : task.locked_at,
9430
+ locked_by: terminalNow ? null : task.locked_by,
9431
+ locked_at: terminalNow ? null : task.locked_at,
9426
9432
  completed_at: completedNow ? completionTimestamp : reopened ? null : input.completed_at !== undefined ? input.completed_at : task.completed_at,
9427
9433
  sla_minutes: input.sla_minutes !== undefined ? input.sla_minutes : task.sla_minutes,
9428
9434
  actual_minutes: input.actual_minutes ?? task.actual_minutes,
@@ -12138,7 +12144,7 @@ var init_dispatches = __esm(() => {
12138
12144
  // package.json
12139
12145
  var package_default = {
12140
12146
  name: "@hasna/todos",
12141
- version: "0.13.12",
12147
+ version: "0.14.0",
12142
12148
  description: "Universal task management for AI coding agents - CLI + MCP server + interactive TUI",
12143
12149
  type: "module",
12144
12150
  main: "dist/index.js",
@@ -26735,9 +26741,11 @@ async function updateTask2(id, input, store) {
26735
26741
  throw new Error(`Task ${id} version conflict: expected ${existing.version}, got ${input.version}`);
26736
26742
  }
26737
26743
  const reopened = existing.status === "completed" && input.status !== undefined && input.status !== "completed" && input.completed_at === undefined;
26744
+ const terminalNow = input.status !== undefined && isTerminalStatus(input.status);
26738
26745
  const task2 = {
26739
26746
  ...existing,
26740
26747
  ...definedPatch(input),
26748
+ ...terminalNow ? { locked_by: null, locked_at: null } : {},
26741
26749
  version: existing.version + 1,
26742
26750
  updated_at: new Date().toISOString(),
26743
26751
  tags: input.tags ?? existing.tags,
@@ -48156,6 +48164,7 @@ function queryTasksByLocalFields(query, db) {
48156
48164
  }
48157
48165
 
48158
48166
  // src/lib/saved-search-views.ts
48167
+ var SAVED_SEARCH_SCOPES = ["all", "tasks", "projects", "plans", "runs", "comments"];
48159
48168
  function parseFilters(value) {
48160
48169
  if (!value)
48161
48170
  return {};
@@ -48174,10 +48183,8 @@ function rowToSavedSearchView(row) {
48174
48183
  };
48175
48184
  }
48176
48185
  function normalizeScope(scope) {
48177
- if (scope === "all" || scope === "tasks" || scope === "projects" || scope === "plans" || scope === "runs" || scope === "comments") {
48178
- return scope;
48179
- }
48180
- return "tasks";
48186
+ const candidate = (scope ?? "").trim().toLowerCase();
48187
+ return SAVED_SEARCH_SCOPES.includes(candidate) ? candidate : "tasks";
48181
48188
  }
48182
48189
  function normalizeName3(name) {
48183
48190
  const normalized = name.trim();
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Closed-vocabulary (enum) value validation for CLI flags and API query params.
3
+ *
4
+ * Why this module exists
5
+ * ----------------------
6
+ * An unrecognised enum value used to flow straight into the storage filter, where
7
+ * it matched no rows. The command then printed "No tasks found." and exited 0 — a
8
+ * silent empty result set that reads as "there is no work here". `todos list
9
+ * --status open` (`open` is not in the vocabulary) reported zero tasks on a project
10
+ * that had 27, and that empty set was relayed to a human as fact.
11
+ *
12
+ * The rule this module enforces: an out-of-vocabulary value is an ERROR, never an
13
+ * empty result. Callers surface it non-zero (CLI) or as HTTP 400 (API).
14
+ *
15
+ * The vocabulary is ALWAYS supplied by the caller from the single exported source
16
+ * of truth (`TASK_STATUSES`, `TASK_PRIORITIES`, `PLAN_STATUSES`, `DISPATCH_STATUSES`
17
+ * in src/types/index.ts, or a subsystem's own exported constant). Nothing in this
18
+ * file re-types a vocabulary, so a value added to a constant is accepted here with
19
+ * no further edit.
20
+ */
21
+ /**
22
+ * Vocabulary members plausibly meant by `value`, nearest first.
23
+ *
24
+ * Deliberately conservative: a substring/prefix relation, or an edit distance
25
+ * within a third of the word's length. A wrong suggestion is worse than none,
26
+ * because the error already lists every valid value.
27
+ */
28
+ export declare function suggestVocabularyMatches(value: string, vocabulary: readonly string[], limit?: number): string[];
29
+ export interface EnumVocabularySpec<T extends string> {
30
+ /** Flag or query-param name as the user typed it, e.g. "--status" or "status". */
31
+ readonly name: string;
32
+ /** The single source of truth for this vocabulary. Never re-typed locally. */
33
+ readonly vocabulary: readonly T[];
34
+ /**
35
+ * Canonicalizer applied per element before the membership check — this is where
36
+ * documented aliases (`done` -> `completed`) and case folding live. Must be a
37
+ * pure string mapping; a value it does not recognise is returned unchanged so it
38
+ * still fails the membership check rather than being silently rewritten.
39
+ */
40
+ readonly normalize?: (value: string) => string;
41
+ /**
42
+ * Remediation text for inputs that are NOT vocabulary members but that operators
43
+ * plausibly type, keyed by the normalized input. These are not accepted values —
44
+ * they only make the rejection actionable (e.g. `all` -> point at `--all`).
45
+ */
46
+ readonly hints?: Readonly<Record<string, string>>;
47
+ /** Whether a comma-separated list is accepted. Defaults to true. */
48
+ readonly allowList?: boolean;
49
+ }
50
+ export type EnumVocabularyResult<T extends string> = {
51
+ readonly ok: true;
52
+ readonly values: T[];
53
+ } | {
54
+ readonly ok: false;
55
+ readonly message: string;
56
+ readonly invalid: string[];
57
+ };
58
+ /**
59
+ * Split, canonicalize and validate a raw flag/query value against its vocabulary.
60
+ *
61
+ * Every element of a comma-separated list is validated: a single bad element fails
62
+ * the whole value rather than being dropped, because dropping it produced a result
63
+ * set that looked authoritative but silently ignored part of what was asked for.
64
+ */
65
+ export declare function resolveEnumVocabulary<T extends string>(raw: string, spec: EnumVocabularySpec<T>): EnumVocabularyResult<T>;
66
+ /**
67
+ * Collapse a validated list back to the shape the storage filter expects: a bare
68
+ * string for a single value, an array for a real list. Keeps the emitted SQL/query
69
+ * identical to what single-value callers produced before validation was added.
70
+ */
71
+ export declare function collapseEnumValues<T extends string>(values: T[]): T | T[];
72
+ //# sourceMappingURL=enum-vocabulary.d.ts.map
@@ -0,0 +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"}
@@ -2,7 +2,12 @@ import type { Database } from "bun:sqlite";
2
2
  import type { Plan, Project, Task, TaskComment, TaskPriority } from "../types/index.js";
3
3
  import type { TaskRun } from "../db/task-runs.js";
4
4
  import { type LocalTaskFieldQuery } from "./local-fields.js";
5
- export type SavedSearchScope = "all" | "tasks" | "projects" | "plans" | "runs" | "comments";
5
+ /**
6
+ * The single source of truth for search scopes. Both the type and `normalizeScope`
7
+ * derive from it, so `--scope` validation cannot drift from what the union allows.
8
+ */
9
+ export declare const SAVED_SEARCH_SCOPES: readonly ["all", "tasks", "projects", "plans", "runs", "comments"];
10
+ export type SavedSearchScope = (typeof SAVED_SEARCH_SCOPES)[number];
6
11
  export interface SavedSearchFilters {
7
12
  query?: string;
8
13
  project_id?: string;
@@ -50,6 +55,12 @@ export interface SaveSearchViewInput {
50
55
  scope?: SavedSearchScope;
51
56
  filters?: SavedSearchFilters;
52
57
  }
58
+ /**
59
+ * Coerce a stored/incoming scope to a member of `SAVED_SEARCH_SCOPES`, defaulting
60
+ * to "tasks". The default keeps persisted views readable if a scope is ever
61
+ * retired; it is NOT a substitute for validating user input, which the CLI does
62
+ * up front so a mistyped `--scope` fails loudly instead of silently searching tasks.
63
+ */
53
64
  export declare function normalizeScope(scope: string | undefined | null): SavedSearchScope;
54
65
  export declare function runSavedSearch(filters?: SavedSearchFilters, scope?: SavedSearchScope, db?: Database): SavedSearchRunResult;
55
66
  export declare function saveSearchView(input: SaveSearchViewInput, db?: Database): SavedSearchView;
@@ -1 +1 @@
1
- {"version":3,"file":"saved-search-views.d.ts","sourceRoot":"","sources":["../../src/lib/saved-search-views.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"saved-search-views.d.ts","sourceRoot":"","sources":["../../src/lib/saved-search-views.ts"],"names":[],"mappings":"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"}