@mclean-capital/neura 3.5.2 → 3.5.3

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/core/version.txt CHANGED
@@ -1 +1 @@
1
- 3.5.2
1
+ 3.5.3
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mclean-capital/neura",
3
- "version": "3.5.2",
3
+ "version": "3.5.3",
4
4
  "description": "Neura — CLI for installing and managing the Neura AI assistant core service. Includes text chat and voice listen clients.",
5
5
  "keywords": [
6
6
  "neura",
@@ -34,6 +34,7 @@
34
34
  "core",
35
35
  "stores",
36
36
  "ui",
37
+ "skills",
37
38
  "models",
38
39
  "README.md",
39
40
  "LICENSE"
@@ -0,0 +1,134 @@
1
+ ---
2
+ name: orchestrator-worker-control
3
+ description: Orchestrator-level directives for the Phase 6b task-driven execution model. PM discipline around task creation and dispatch, pause/resume/cancel routing, attention-ticket handling, and clarification relay. Injected into the Grok voice session system prompt; not auto-invoked as a worker skill.
4
+ version: 0.3.0
5
+ allowed-tools: create_task dispatch_worker get_system_state list_tasks get_task update_task pause_worker resume_worker cancel_worker list_active_workers
6
+ metadata:
7
+ neura_level: orchestrator
8
+ neura_source: manual
9
+ neura_created_at: 2026-04-11T00:00:00Z
10
+ neura_updated_at: 2026-04-20T00:00:00Z
11
+ ---
12
+
13
+ # Orchestrator — PM role for tasks + worker control
14
+
15
+ You are the Product Manager for work Neura does. When a user asks for something actionable, you don't execute directly — you brief a task, confirm intent, then dispatch a worker. Workers own tactical execution; you own goal clarity and user-facing communication.
16
+
17
+ ## Voice UX — never vocalize IDs
18
+
19
+ This is a voice-first surface. UUIDs, worker IDs, and task IDs are for internal tool calls only. Never read them aloud — the TTS engine reads them letter-by-letter ("e three zero three f f b two dash…") which is grating and useless to the user.
20
+
21
+ Refer to workers and tasks by what they're doing, not by ID:
22
+
23
+ - ❌ "Worker e303fbb2-ab9c-46f9-a16a-491f47b2c5e6 finished."
24
+ - ✅ "The Hello World file task finished."
25
+ - ❌ "Task id 23792d1e dash 59b0 dash… failed."
26
+ - ✅ "That task failed — want me to retry it?"
27
+
28
+ When you need to disambiguate between multiple tasks, use the title or the most recent action. IDs stay in the tool-call JSON where they belong.
29
+
30
+ ## Task lifecycle — the two-step pattern
31
+
32
+ 1. **`create_task(goal, context, ...)`** — brief the task. The row lands in `awaiting_dispatch` status. Do NOT dispatch yet.
33
+ 2. **Confirm with the user** — especially for anything destructive, external-facing, or expensive. Skip confirmation for trivial / reversible actions.
34
+ 3. **`dispatch_worker(task_id)`** — kick off the worker. You'll receive a worker_id. Progress flows back as comments on the task.
35
+
36
+ Why two steps? The pause between `create_task` and `dispatch_worker` is where the user hears "I'll create a file called hello.txt on your desktop — sound good?" and says yes. Don't collapse it.
37
+
38
+ ### When to create a task
39
+
40
+ - "Create hello.txt on my desktop" → yes
41
+ - "Draft an email to my accountant" → yes (external-facing; confirm before dispatch)
42
+ - "Research X and summarize it" → yes (multi-step, independent work)
43
+ - "What time is it?" → no (just answer directly)
44
+ - "Do you remember X?" → no (call recall_memory instead)
45
+
46
+ ### Filling out the task
47
+
48
+ When you call `create_task`, include:
49
+
50
+ - **`title`** — short, user-facing
51
+ - **`goal`** — success condition in one sentence ("hello.txt exists on the desktop with the content 'hello world'")
52
+ - **`context.acceptanceCriteria`** — bullet list of what "done" looks like
53
+ - **`context.constraints`** — any "don't touch this" rules
54
+ - **`context.references`** — file paths, URLs, ticket IDs the worker will need
55
+ - **`related_skills`** — skill names to load as reference docs (optional; workers run fine without skills)
56
+ - **`repo_path`** + **`base_branch`** — set for code tasks that should run in a git worktree scoped to a user repo
57
+
58
+ If you can't write a clear `goal`, you aren't ready to create the task. Ask the user another clarifying question first.
59
+
60
+ ### Confirmation policy
61
+
62
+ | Action type | Confirm? |
63
+ | --------------------------------------------- | ----------- |
64
+ | Trivial read ("fetch recent emails") | No |
65
+ | Create a new file in user-visible spot | Yes |
66
+ | Modify existing user files | Yes |
67
+ | Delete anything | Yes, always |
68
+ | Send email / SMS / post to external service | Yes, always |
69
+ | Spend money (API with per-token costs, cloud) | Yes, always |
70
+ | Push to a remote branch the user owns | Yes |
71
+ | Read-only operations inside the user's repo | No |
72
+
73
+ "Should I go ahead?" / "Sound good?" / "OK to proceed?" — short, natural, not bureaucratic.
74
+
75
+ ## Attention tickets — what needs the user
76
+
77
+ Every outstanding escalation is a task. No separate queue. To find what's pending:
78
+
79
+ ```
80
+ get_system_state() → { attentionRequired, upcomingDeadlines, pendingProactive, ... }
81
+ ```
82
+
83
+ Call this at conversation start and after long pauses. Walk through items one at a time. Complete the current topic before raising the next, **unless** the new one has `urgency: 'critical'` — then interrupt.
84
+
85
+ ### Urgency policy
86
+
87
+ - **`critical`** — interrupt the current topic. Destructive-action approvals only.
88
+ - **`high`** — jump the queue but wait for the current topic to finish naturally.
89
+ - **`normal`** / **`low`** — natural FIFO; raise on the next conversational breath.
90
+
91
+ ## Relaying user answers to workers
92
+
93
+ When a worker is in `awaiting_clarification` or `awaiting_approval`, the user's next utterance is the answer. The `ClarificationBridge` transports it to the waiting worker automatically — you do NOT need to call `resume_worker` or `update_task` to relay a clarification answer; that path is handled.
94
+
95
+ What you DO need to do: paraphrase the worker's question naturally ("The worker wants to know which branch to deploy from — which one?") and then pass the user's verbatim response through. Don't editorialize the user's answer.
96
+
97
+ For `approval_request` specifically: listen for yes / no / conditional ("yes but only if X"). If the user says no or sets a condition, that gets posted back as the `approval_response` the same way.
98
+
99
+ ## Worker control (pause / resume / cancel)
100
+
101
+ Neura can run workers in the background. User intent maps to tool calls:
102
+
103
+ | User says something like… | You call |
104
+ | --------------------------------------------------------------------------- | --------------------- |
105
+ | "pause", "hold on", "wait", "stop for a moment", "one sec", "stand by" | `pause_worker` |
106
+ | "resume", "continue", "go ahead", "keep going", "I'm back", "where were we" | `resume_worker` |
107
+ | "cancel", "abort", "never mind", "forget it", "stop for good", "kill it" | `cancel_worker` |
108
+ | "what's running", "what are you working on", "what's happening" | `list_active_workers` |
109
+
110
+ Read the whole phrase, infer the intent. The model is the intent classifier.
111
+
112
+ ### Rules
113
+
114
+ 1. **Only call these when a worker is actually running.** If unsure, call `list_active_workers` first.
115
+ 2. **"Stop" is ambiguous — clarify when unclear.** "Pause it for now, or cancel it for good?"
116
+ 3. **Pause is reversible, cancel is terminal.** A cancelled worker's state is discarded.
117
+ 4. **Omit `worker_id` when you can.** The tools default to the most recent worker.
118
+ 5. **Confirm briefly.** "Paused." / "Resuming now." / "Cancelled — state is gone."
119
+ 6. **Do not pause proactively.** Only in response to a clear user intent.
120
+
121
+ ### Resume with context
122
+
123
+ `resume_worker` accepts an optional `message`. Use it when the user provides new info along with the resume:
124
+
125
+ - User: "OK I'm back, the file you needed is at src/auth.ts"
126
+ - You: `resume_worker(message: "the file you needed is at src/auth.ts")`
127
+
128
+ Don't pass empty `message` — just omit it for plain resumes.
129
+
130
+ ### Clarification vs resume — distinct flows
131
+
132
+ If a worker is in `awaiting_clarification`, the user's next utterance **automatically** flows to the worker via the bridge. Do NOT call `resume_worker` in that case. `resume_worker` is for workers in `idle_partial` state (user-initiated pause), not blocked-on-question workers.
133
+
134
+ When in doubt, `list_active_workers` includes the status.
@@ -0,0 +1,80 @@
1
+ ---
2
+ name: red-test-triage
3
+ description: When the user says "help me fix this" or "what broke" while looking at failing test output, create a triage task capturing the failing test name, error message, suspected file, and repro command. The orchestrator captures the on-screen test output via its own describe_screen call and passes the extracted details into this worker's task description — this worker does not access the screen itself. Use this for any test-failure triage flow initiated via voice.
4
+ version: 0.1.0
5
+ disable-model-invocation: false
6
+ allowed-tools: create_task recall_memory read
7
+ metadata:
8
+ neura_source: manual
9
+ neura_created_by: phase6-kickoff
10
+ neura_created_at: 2026-04-11T00:00:00Z
11
+ ---
12
+
13
+ # Red Test Triage
14
+
15
+ ## When to use
16
+
17
+ The orchestrator (Grok) dispatches you with a task description containing
18
+ details about a failing test that the user is looking at. Your job is to
19
+ create a tracked task for fixing it so the user can come back to it later,
20
+ optionally enriching the task with any prior context from memory about the
21
+ same file or test.
22
+
23
+ You do NOT have screen access. The orchestrator already captured what's
24
+ on screen via its own `describe_screen` tool call before dispatching you,
25
+ and passed the relevant details into your task description. If the task
26
+ description is empty or doesn't mention a failing test, treat that as a
27
+ dispatch error — the orchestrator should have populated it. In that case,
28
+ create a generic "investigate failing test" task and flag the missing
29
+ context in the task description.
30
+
31
+ ## Expected task description shape
32
+
33
+ The orchestrator will pass in something like:
34
+
35
+ > "Failing test: `billing.test.ts` > `calculates tax on line items`. Error:
36
+ > `AssertionError: expected 220 to equal 200`. Suspected file:
37
+ > `src/billing/tax.ts`. Runner: vitest. User wants this triaged."
38
+
39
+ Parse out:
40
+
41
+ - Test name (required)
42
+ - Error message (required if present)
43
+ - Suspected file path (optional but preferred)
44
+ - Test runner (to derive the repro command — vitest, jest, bun test, etc.)
45
+
46
+ ## Steps
47
+
48
+ 1. Read the task description carefully and extract the failing test
49
+ name, the error message, the suspected root-cause file, and the
50
+ test runner.
51
+
52
+ 2. Optionally call `recall_memory` with the suspected file path or
53
+ test name to surface any prior context Neura has about the same
54
+ file (recent edits, known flaky tests, related bugs). Skip this
55
+ step if the test name makes it obvious there's no prior history —
56
+ don't pad with a memory query just because the tool is available.
57
+
58
+ 3. Call `create_task` with:
59
+ - `title`: "Fix failing test: <test name>"
60
+ - `description`: the error message verbatim plus the suspected
61
+ root-cause file path, and a repro command derived from the test
62
+ runner (e.g. `npm run test -- --filter "<test name>"`, or
63
+ `bun test <file> -t "<test name>"` for bun test, or whatever
64
+ matches the runner named in the task description)
65
+ - `priority`: "high" if the error mentions a regression, prod
66
+ break, or deployment blocker. "medium" otherwise.
67
+
68
+ 4. Done. Respond with a one-sentence confirmation telling the user
69
+ what the task title is and what you think the likely cause is
70
+ (if the error message makes it clear). Keep it short.
71
+
72
+ ## Notes for the worker
73
+
74
+ - This skill must not edit source code and must not run any shell
75
+ commands. The `allowed-tools` field enforces that at the runtime
76
+ level (only `create_task` and `recall_memory` are in the allowlist).
77
+
78
+ - If the task description contains NO test information at all, call
79
+ `create_task` with a generic investigation prompt and note in the
80
+ description that the orchestrator did not pass test context.
@@ -0,0 +1,79 @@
1
+ ---
2
+ name: wiki-upload
3
+ description: When the user says "upload this to the wiki" or "put these notes in the team wiki", upload content to the internal team wiki at wiki.example.com via its /api/pages endpoint. The orchestrator captures whatever the user is looking at via its own describe_screen call and passes the extracted content into this worker's task description — this worker does not access the screen itself. Use when the user wants published, durable notes that live outside Neura's memory.
4
+ version: 0.1.0
5
+ disable-model-invocation: false
6
+ allowed-tools: recall_memory get_current_time
7
+ metadata:
8
+ neura_source: manual
9
+ neura_created_by: phase6-kickoff
10
+ neura_created_at: 2026-04-11T00:00:00Z
11
+ neura_status: placeholder
12
+ ---
13
+
14
+ # Wiki Upload
15
+
16
+ > **Phase 6 status**: this skill is a placeholder demonstrating the three
17
+ > canonical skill locations loading correctly. The real upload path needs
18
+ > an HTTP tool that doesn't exist in Neura's registry yet. Until that lands,
19
+ > the worker will acknowledge the request and describe what it would upload,
20
+ > but not actually POST anything. The `allowed-tools` list reflects that
21
+ > reduced scope.
22
+
23
+ ## When to use
24
+
25
+ The orchestrator (Grok) dispatches you with a task description containing
26
+ the content the user wants published to the team wiki — typically captured
27
+ from their screen or from earlier conversation context. Your job is to
28
+ format that content as a wiki page payload and (once the HTTP tool lands)
29
+ POST it to `https://wiki.example.com/api/pages`.
30
+
31
+ You do NOT have screen access. The orchestrator already captured what the
32
+ user was looking at via its own `describe_screen` tool call and passed the
33
+ relevant content into your task description. If the description is empty
34
+ or doesn't contain publishable content, treat that as a dispatch error —
35
+ tell the user you didn't receive any content to publish.
36
+
37
+ ## Expected task description shape
38
+
39
+ The orchestrator will pass in something like:
40
+
41
+ > "Upload to wiki: Notes on the Q4 billing migration. Body: ..."
42
+
43
+ Parse out:
44
+
45
+ - Page title (required — infer from the content or the user's request)
46
+ - Page body in Markdown (required)
47
+ - Tags (optional — extract from context or recent memory)
48
+
49
+ ## Steps (placeholder flow — upgrade when HTTP tool lands)
50
+
51
+ 1. Read the task description and extract the title + body.
52
+ 2. Call `get_current_time` to timestamp the upload. Wiki pages are
53
+ timestamped by default.
54
+ 3. Optionally call `recall_memory` with the title or body to check
55
+ whether the user has uploaded similar content before (look for a
56
+ `wiki_upload` tag). If yes, surface that in your response so the
57
+ user can decide whether to update the existing page.
58
+ 4. Build the wiki page payload in your head (title, body, timestamp,
59
+ tags).
60
+ 5. Because the HTTP tool is not yet available, respond to the user
61
+ with a one-sentence confirmation of what you WOULD upload and
62
+ pause. Do not claim the upload succeeded.
63
+
64
+ ## Steps (future flow, once HTTP tool lands)
65
+
66
+ 1. Read the task description and extract the content.
67
+ 2. POST to `https://wiki.example.com/api/pages` with:
68
+ - `title`: inferred from the task description's primary heading
69
+ or the user's prompt
70
+ - `body`: the content formatted as Markdown
71
+ - `tags`: extracted from recent memory context
72
+ 3. Confirm success with the wiki's returned URL.
73
+
74
+ ## Notes for the worker
75
+
76
+ - This skill is deliberately conservative about side effects. The wiki
77
+ is shared, so a mistaken upload is user-visible. If the task
78
+ description is ambiguous about what to publish, call
79
+ `request_clarification` before proceeding.
@@ -34,8 +34,21 @@ export declare function insertComment(db: PGlite, opts: InsertCommentOptions): P
34
34
  export interface ListCommentsOptions {
35
35
  taskId: string;
36
36
  type?: TaskCommentType | TaskCommentType[];
37
+ /**
38
+ * Exclude these comment types from the result. Complements `type` — when
39
+ * both are set, `type` wins and `excludeTypes` is ignored. Primary use
40
+ * case: `get_task` wants recent comments without the heartbeat noise.
41
+ */
42
+ excludeTypes?: TaskCommentType[];
37
43
  since?: string;
38
44
  limit?: number;
45
+ /**
46
+ * Sort order by `created_at`. Default 'asc' (chronological) for history
47
+ * displays. Use 'desc' when you want the most recent rows and plan to
48
+ * apply `limit` — ASC + limit returns the *oldest* rows, which is
49
+ * rarely what the caller wants for long-running tasks.
50
+ */
51
+ order?: 'asc' | 'desc';
39
52
  }
40
53
  export declare function listComments(db: PGlite, opts: ListCommentsOptions): Promise<TaskCommentEntry[]>;
41
54
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"task-comment-queries.d.ts","sourceRoot":"","sources":["../../src/stores/task-comment-queries.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EACnB,MAAM,cAAc,CAAC;AAGtB;;mDAEmD;AACnD,eAAO,MAAM,8BAA8B,QAAY,CAAC;AAExD,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,OAAO,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC3C;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,oBAAoB,GACzB,OAAO,CAAC,gBAAgB,CAAC,CA2B3B;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,eAAe,GAAG,eAAe,EAAE,CAAC;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,YAAY,CAChC,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAyB7B;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,MAAM,CAAC,CAQjB;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAenF"}
1
+ {"version":3,"file":"task-comment-queries.d.ts","sourceRoot":"","sources":["../../src/stores/task-comment-queries.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EACnB,MAAM,cAAc,CAAC;AAGtB;;mDAEmD;AACnD,eAAO,MAAM,8BAA8B,QAAY,CAAC;AAExD,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,OAAO,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC3C;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,oBAAoB,GACzB,OAAO,CAAC,gBAAgB,CAAC,CA2B3B;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,eAAe,GAAG,eAAe,EAAE,CAAC;IAC3C;;;;OAIG;IACH,YAAY,CAAC,EAAE,eAAe,EAAE,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CACxB;AAED,wBAAsB,YAAY,CAChC,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,gBAAgB,EAAE,CAAC,CA8B7B;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,MAAM,CAAC,CAQjB;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAenF"}
@@ -45,6 +45,7 @@ export async function insertComment(db, opts) {
45
45
  }
46
46
  export async function listComments(db, opts) {
47
47
  const limit = opts.limit ?? 500;
48
+ const order = opts.order ?? 'asc';
48
49
  const filters = ['task_id = $1'];
49
50
  const values = [opts.taskId];
50
51
  let idx = 2;
@@ -54,13 +55,18 @@ export async function listComments(db, opts) {
54
55
  filters.push(`type IN (${placeholders})`);
55
56
  values.push(...types);
56
57
  }
58
+ else if (opts.excludeTypes && opts.excludeTypes.length > 0) {
59
+ const placeholders = opts.excludeTypes.map(() => `$${idx++}`).join(', ');
60
+ filters.push(`type NOT IN (${placeholders})`);
61
+ values.push(...opts.excludeTypes);
62
+ }
57
63
  if (opts.since) {
58
64
  filters.push(`created_at > $${idx++}`);
59
65
  values.push(opts.since);
60
66
  }
61
67
  const result = await db.query(`SELECT * FROM task_comments
62
68
  WHERE ${filters.join(' AND ')}
63
- ORDER BY created_at ASC
69
+ ORDER BY created_at ${order === 'desc' ? 'DESC' : 'ASC'}
64
70
  LIMIT $${idx}`, [...values, limit]);
65
71
  return result.rows.map((r) => mapTaskComment(r));
66
72
  }
@@ -1 +1 @@
1
- {"version":3,"file":"task-comment-queries.js","sourceRoot":"","sources":["../../src/stores/task-comment-queries.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task-comment-queries.js","sourceRoot":"","sources":["../../src/stores/task-comment-queries.ts"],"names":[],"mappings":"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"}
@@ -179,6 +179,56 @@ describe('task-comment-queries', () => {
179
179
  const limited = await listComments(db, { taskId, limit: 3 });
180
180
  expect(limited).toHaveLength(3);
181
181
  });
182
+ it('order: desc returns newest first (needed so limit keeps the latest comments)', async () => {
183
+ for (let i = 0; i < 5; i++) {
184
+ await insertComment(db, {
185
+ taskId,
186
+ type: 'progress',
187
+ author: 'worker:1',
188
+ content: `msg ${i}`,
189
+ });
190
+ // Space out insert times so created_at differs deterministically.
191
+ await new Promise((r) => setTimeout(r, 5));
192
+ }
193
+ const desc = await listComments(db, { taskId, order: 'desc', limit: 3 });
194
+ expect(desc.map((c) => c.content)).toEqual(['msg 4', 'msg 3', 'msg 2']);
195
+ });
196
+ it('excludeTypes drops matching rows', async () => {
197
+ await insertComment(db, {
198
+ taskId,
199
+ type: 'progress',
200
+ author: 'worker:1',
201
+ content: 'real work',
202
+ });
203
+ await insertComment(db, {
204
+ taskId,
205
+ type: 'heartbeat',
206
+ author: 'worker:1',
207
+ content: 'still alive',
208
+ });
209
+ await insertComment(db, {
210
+ taskId,
211
+ type: 'result',
212
+ author: 'worker:1',
213
+ content: 'done',
214
+ });
215
+ const filtered = await listComments(db, { taskId, excludeTypes: ['heartbeat'] });
216
+ expect(filtered.map((c) => c.type).sort()).toEqual(['progress', 'result']);
217
+ });
218
+ it('type filter wins over excludeTypes when both are set', async () => {
219
+ await insertComment(db, {
220
+ taskId,
221
+ type: 'heartbeat',
222
+ author: 'worker:1',
223
+ content: 'alive',
224
+ });
225
+ const filtered = await listComments(db, {
226
+ taskId,
227
+ type: 'heartbeat',
228
+ excludeTypes: ['heartbeat'],
229
+ });
230
+ expect(filtered).toHaveLength(1);
231
+ });
182
232
  it('cascades delete when parent task is deleted', async () => {
183
233
  await insertComment(db, {
184
234
  taskId,
@@ -1 +1 @@
1
- {"version":3,"file":"task-comment-queries.test.js","sourceRoot":"","sources":["../../src/stores/task-comment-queries.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AACrD,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EACL,aAAa,EACb,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,8BAA8B,GAC/B,MAAM,2BAA2B,CAAC;AAEnC,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,IAAI,EAAU,CAAC;IACf,IAAI,MAAc,CAAC;IAEnB,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACrD,MAAM,aAAa,CAAC,EAAE,CAAC,CAAC;QAExB,0CAA0C;QAC1C,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAC7B,MAAM,EAAE,CAAC,KAAK,CAAC,kEAAkE,EAAE;YACjF,MAAM;YACN,WAAW;YACX,QAAQ;SACT,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC7B,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;YAChE,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,EAAE,EAAE;gBACtC,MAAM;gBACN,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,gBAAgB;gBACxB,OAAO,EAAE,cAAc;aACxB,CAAC,CAAC;YAEH,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACtC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC9C,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC7C,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;YACnC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;YACpC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC1C,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;YACvE,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,EAAE,EAAE;gBACtC,MAAM;gBACN,IAAI,EAAE,uBAAuB;gBAC7B,MAAM,EAAE,gBAAgB;gBACxB,OAAO,EAAE,gCAAgC;gBACzC,OAAO,EAAE,MAAM;gBACf,QAAQ,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE;aAC5C,CAAC,CAAC;YAEH,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACnD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;YAC7D,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,EAAE,EAAE;gBACtC,MAAM;gBACN,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,gBAAgB;gBACxB,OAAO,EAAE,qCAAqC;gBAC9C,cAAc,EAAE,kDAAkD;aACnE,CAAC,CAAC;YAEH,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;QAC1F,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;YACvD,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,8BAA8B,GAAG,CAAC,CAAC,CAAC;YAC3D,MAAM,MAAM,CACV,aAAa,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAClF,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;YACxD,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC;YACzD,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,EAAE,EAAE;gBACtC,MAAM;gBACN,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QAClF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;YACtE,MAAM,MAAM,CACV,aAAa,CAAC,EAAE,EAAE;gBAChB,MAAM,EAAE,gBAAgB;gBACxB,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,QAAQ;aAClB,CAAC,CACH,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC5B,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;YACvD,MAAM,aAAa,CAAC,EAAE,EAAE;gBACtB,MAAM;gBACN,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,OAAO;aACjB,CAAC,CAAC;YACH,uDAAuD;YACvD,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC3C,MAAM,aAAa,CAAC,EAAE,EAAE;gBACtB,MAAM;gBACN,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,QAAQ;aAClB,CAAC,CAAC;YACH,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC3C,MAAM,aAAa,CAAC,EAAE,EAAE;gBACtB,MAAM;gBACN,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,OAAO;aACjB,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YACpD,MAAM,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1C,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3C,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;YAC9C,MAAM,aAAa,CAAC,EAAE,EAAE;gBACtB,MAAM;gBACN,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,GAAG;aACb,CAAC,CAAC;YACH,MAAM,aAAa,CAAC,EAAE,EAAE;gBACtB,MAAM;gBACN,IAAI,EAAE,uBAAuB;gBAC7B,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,GAAG;aACb,CAAC,CAAC;YACH,MAAM,aAAa,CAAC,EAAE,EAAE;gBACtB,MAAM;gBACN,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,MAAM;aAChB,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC;YACnF,MAAM,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;YACjD,MAAM,aAAa,CAAC,EAAE,EAAE;gBACtB,MAAM;gBACN,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,GAAG;aACb,CAAC,CAAC;YACH,MAAM,aAAa,CAAC,EAAE,EAAE;gBACtB,MAAM;gBACN,IAAI,EAAE,uBAAuB;gBAC7B,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,GAAG;aACb,CAAC,CAAC;YACH,MAAM,aAAa,CAAC,EAAE,EAAE;gBACtB,MAAM;gBACN,IAAI,EAAE,kBAAkB;gBACxB,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,GAAG;aACb,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,EAAE,EAAE;gBACtC,MAAM;gBACN,IAAI,EAAE,CAAC,uBAAuB,EAAE,kBAAkB,CAAC;aACpD,CAAC,CAAC;YACH,MAAM,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;YAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,MAAM,aAAa,CAAC,EAAE,EAAE;oBACtB,MAAM;oBACN,IAAI,EAAE,UAAU;oBAChB,MAAM,EAAE,UAAU;oBAClB,OAAO,EAAE,OAAO,CAAC,EAAE;iBACpB,CAAC,CAAC;YACL,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YAC7D,MAAM,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YAC3D,MAAM,aAAa,CAAC,EAAE,EAAE;gBACtB,MAAM;gBACN,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,cAAc;aACxB,CAAC,CAAC;YAEH,MAAM,EAAE,CAAC,KAAK,CAAC,sCAAsC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;YAEjE,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YACpD,MAAM,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;YACrE,MAAM,aAAa,CAAC,EAAE,EAAE;gBACtB,MAAM;gBACN,IAAI,EAAE,WAAW;gBACjB,MAAM,EAAE,cAAc;gBACtB,OAAO,EAAE,OAAO;aACjB,CAAC,CAAC;YACH,MAAM,aAAa,CAAC,EAAE,EAAE;gBACtB,MAAM;gBACN,IAAI,EAAE,WAAW;gBACjB,MAAM,EAAE,cAAc;gBACtB,OAAO,EAAE,aAAa;aACvB,CAAC,CAAC;YACH,MAAM,aAAa,CAAC,EAAE,EAAE;gBACtB,MAAM;gBACN,IAAI,EAAE,WAAW;gBACjB,MAAM,EAAE,aAAa;gBACrB,OAAO,EAAE,WAAW;aACrB,CAAC,CAAC;YACH,MAAM,aAAa,CAAC,EAAE,EAAE;gBACtB,MAAM;gBACN,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,cAAc;gBACtB,OAAO,EAAE,SAAS;aACnB,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;YACjE,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAEvB,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YACrD,MAAM,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAClC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,aAAa,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CACtF,IAAI,CACL,CAAC;YACF,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,cAAc,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CACtF,IAAI,CACL,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;YACnF,MAAM,aAAa,CAAC,EAAE,EAAE;gBACtB,MAAM;gBACN,IAAI,EAAE,uBAAuB;gBAC7B,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;YACH,MAAM,aAAa,CAAC,EAAE,EAAE;gBACtB,MAAM;gBACN,IAAI,EAAE,kBAAkB;gBACxB,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,UAAU;aACpB,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,iBAAiB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;YAClE,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,EAAE,EAAE;gBACzC,MAAM;gBACN,IAAI,EAAE,uBAAuB;gBAC7B,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;YACH,MAAM,aAAa,CAAC,EAAE,EAAE;gBACtB,MAAM;gBACN,IAAI,EAAE,wBAAwB;gBAC9B,MAAM,EAAE,cAAc;gBACtB,OAAO,EAAE,UAAU;gBACnB,QAAQ,EAAE,EAAE,mBAAmB,EAAE,UAAU,CAAC,EAAE,EAAE;aACjD,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,iBAAiB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YAC3D,MAAM,CAAC,MAAM,iBAAiB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;YACrF,MAAM,aAAa,CAAC,EAAE,EAAE;gBACtB,MAAM;gBACN,IAAI,EAAE,uBAAuB;gBAC7B,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,eAAe;aACzB,CAAC,CAAC;YACH,kEAAkE;YAClE,2DAA2D;YAC3D,qDAAqD;YACrD,MAAM,aAAa,CAAC,EAAE,EAAE;gBACtB,MAAM;gBACN,IAAI,EAAE,wBAAwB;gBAC9B,MAAM,EAAE,cAAc;gBACtB,OAAO,EAAE,iBAAiB;gBAC1B,QAAQ,EAAE,EAAE,mBAAmB,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE;aACvD,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,iBAAiB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uFAAuF,EAAE,KAAK,IAAI,EAAE;YACrG,wDAAwD;YACxD,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;YACxC,MAAM,EAAE,CAAC,KAAK,CAAC,kEAAkE,EAAE;gBACjF,WAAW;gBACX,YAAY;gBACZ,QAAQ;aACT,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,EAAE,EAAE;gBACvC,MAAM,EAAE,WAAW;gBACnB,IAAI,EAAE,uBAAuB;gBAC7B,MAAM,EAAE,cAAc;gBACtB,OAAO,EAAE,gBAAgB;aAC1B,CAAC,CAAC;YAEH,qEAAqE;YACrE,+CAA+C;YAC/C,MAAM,aAAa,CAAC,EAAE,EAAE;gBACtB,MAAM;gBACN,IAAI,EAAE,uBAAuB;gBAC7B,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;YACH,MAAM,aAAa,CAAC,EAAE,EAAE;gBACtB,MAAM;gBACN,IAAI,EAAE,wBAAwB;gBAC9B,MAAM,EAAE,cAAc;gBACtB,OAAO,EAAE,yBAAyB;gBAClC,QAAQ,EAAE,EAAE,mBAAmB,EAAE,QAAQ,CAAC,EAAE,EAAE;aAC/C,CAAC,CAAC;YAEH,0DAA0D;YAC1D,+DAA+D;YAC/D,qCAAqC;YACrC,MAAM,CAAC,MAAM,iBAAiB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAEpD,gEAAgE;YAChE,4DAA4D;YAC5D,MAAM,CAAC,MAAM,iBAAiB,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"task-comment-queries.test.js","sourceRoot":"","sources":["../../src/stores/task-comment-queries.test.ts"],"names":[],"mappings":"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"}