@standardbeagle/dart-query 0.8.2 → 0.12.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.
Files changed (66) hide show
  1. package/README.md +8 -3
  2. package/TOOLS.md +144 -17
  3. package/dist/api/dartClient.d.ts +3 -10
  4. package/dist/api/dartClient.d.ts.map +1 -1
  5. package/dist/api/dartClient.js +62 -15
  6. package/dist/api/dartClient.js.map +1 -1
  7. package/dist/api/relationshipNormalizer.d.ts +4 -0
  8. package/dist/api/relationshipNormalizer.d.ts.map +1 -0
  9. package/dist/api/relationshipNormalizer.js +86 -0
  10. package/dist/api/relationshipNormalizer.js.map +1 -0
  11. package/dist/index.js +184 -26
  12. package/dist/index.js.map +1 -1
  13. package/dist/parsers/dartql.d.ts.map +1 -1
  14. package/dist/parsers/dartql.js +60 -2
  15. package/dist/parsers/dartql.js.map +1 -1
  16. package/dist/tools/add_task_comment.d.ts.map +1 -1
  17. package/dist/tools/add_task_comment.js +2 -6
  18. package/dist/tools/add_task_comment.js.map +1 -1
  19. package/dist/tools/add_time_tracking.d.ts.map +1 -1
  20. package/dist/tools/add_time_tracking.js +2 -4
  21. package/dist/tools/add_time_tracking.js.map +1 -1
  22. package/dist/tools/attach_url.d.ts.map +1 -1
  23. package/dist/tools/attach_url.js +2 -4
  24. package/dist/tools/attach_url.js.map +1 -1
  25. package/dist/tools/create_task.d.ts.map +1 -1
  26. package/dist/tools/create_task.js +28 -4
  27. package/dist/tools/create_task.js.map +1 -1
  28. package/dist/tools/dartai_loop_snapshot.d.ts +3 -0
  29. package/dist/tools/dartai_loop_snapshot.d.ts.map +1 -0
  30. package/dist/tools/dartai_loop_snapshot.js +84 -0
  31. package/dist/tools/dartai_loop_snapshot.js.map +1 -0
  32. package/dist/tools/delete_task.d.ts.map +1 -1
  33. package/dist/tools/delete_task.js +2 -4
  34. package/dist/tools/delete_task.js.map +1 -1
  35. package/dist/tools/get_task.d.ts.map +1 -1
  36. package/dist/tools/get_task.js +2 -4
  37. package/dist/tools/get_task.js.map +1 -1
  38. package/dist/tools/import_tasks_csv.js +4 -4
  39. package/dist/tools/import_tasks_csv.js.map +1 -1
  40. package/dist/tools/info.d.ts.map +1 -1
  41. package/dist/tools/info.js +6 -2
  42. package/dist/tools/info.js.map +1 -1
  43. package/dist/tools/link_tasks.d.ts +5 -0
  44. package/dist/tools/link_tasks.d.ts.map +1 -0
  45. package/dist/tools/link_tasks.js +83 -0
  46. package/dist/tools/link_tasks.js.map +1 -0
  47. package/dist/tools/list_tasks.js +5 -0
  48. package/dist/tools/list_tasks.js.map +1 -1
  49. package/dist/tools/move_task.d.ts.map +1 -1
  50. package/dist/tools/move_task.js +2 -4
  51. package/dist/tools/move_task.js.map +1 -1
  52. package/dist/tools/relationshipMirror.d.ts +24 -0
  53. package/dist/tools/relationshipMirror.d.ts.map +1 -0
  54. package/dist/tools/relationshipMirror.js +163 -0
  55. package/dist/tools/relationshipMirror.js.map +1 -0
  56. package/dist/tools/search_tasks.d.ts.map +1 -1
  57. package/dist/tools/search_tasks.js +32 -13
  58. package/dist/tools/search_tasks.js.map +1 -1
  59. package/dist/tools/update_task.d.ts.map +1 -1
  60. package/dist/tools/update_task.js +135 -47
  61. package/dist/tools/update_task.js.map +1 -1
  62. package/dist/types/index.d.ts +72 -18
  63. package/dist/types/index.d.ts.map +1 -1
  64. package/dist/types/index.js +20 -2
  65. package/dist/types/index.js.map +1 -1
  66. package/package.json +6 -3
package/README.md CHANGED
@@ -77,14 +77,19 @@ See **[TOOLS.md](./TOOLS.md)** for full parameter references, DartQL syntax, and
77
77
 
78
78
  ## DartQL Selectors
79
79
 
80
- SQL-like WHERE clauses for targeting tasks in batch operations:
80
+ SQL-92 WHERE clause syntax for targeting tasks in batch operations:
81
81
 
82
82
  ```sql
83
83
  dartboard = 'Engineering' AND priority = 'high' AND tags CONTAINS 'bug'
84
- due_at < '2026-01-18' AND status != 'Done'
85
- title LIKE '%auth%'
84
+ due_at < '2026-01-18' AND status <> 'Done'
85
+ title LIKE 'Task%' -- starts with
86
+ title LIKE '%auth%' -- contains substring
86
87
  ```
87
88
 
89
+ **Operators:** `=`, `!=`, `<>`, `>`, `>=`, `<`, `<=`, `LIKE`, `IN`, `NOT IN`, `BETWEEN`, `IS NULL`, `IS NOT NULL`, `CONTAINS`
90
+ **Aliases:** `INCLUDES`/`HAS` → `CONTAINS` · `<>` → `!=`
91
+ **LIKE wildcards:** `%` = any characters, `_` = single character (case-insensitive)
92
+
88
93
  ## Safety
89
94
 
90
95
  All Dart AI operations are production (no sandbox). dart-query provides:
package/TOOLS.md CHANGED
@@ -12,6 +12,7 @@
12
12
  - [Batch Operations](#batch-operations)
13
13
  - [CSV Import](#csv-import)
14
14
  - [Document Management](#document-management)
15
+ - [DartAI Loop Tools](#dartai-loop-tools)
15
16
  - [DartQL Reference](#dartql-reference)
16
17
  - [Error Handling](#error-handling)
17
18
  - [Performance Optimization](#performance-optimization)
@@ -21,7 +22,7 @@
21
22
 
22
23
  ## Tool Groups Overview
23
24
 
24
- dart-query organizes 18 tools into 7 functional groups:
25
+ dart-query organizes 19 tools into 8 functional groups:
25
26
 
26
27
  | Group | Tools | Purpose |
27
28
  |-------|-------|---------|
@@ -32,6 +33,7 @@ dart-query organizes 18 tools into 7 functional groups:
32
33
  | **task-batch** | 3 tools | Bulk operations (batch update, batch delete, status) |
33
34
  | **import** | 1 tool | CSV bulk import |
34
35
  | **doc-crud** | 5 tools | Document management (create, get, update, delete, list) |
36
+ | **dartai-loop** | `dartai_loop_snapshot` | Single-call loop startup aggregation |
35
37
 
36
38
  **Token Budget Summary:**
37
39
  - Discovery: ~150 tokens (overview)
@@ -159,6 +161,12 @@ get_config({ cache_bust: true })
159
161
 
160
162
  ## Task CRUD Operations
161
163
 
164
+ > **Relationship field naming (0.12.0+):** `create_task`, `update_task`, and `link_tasks` accept industry-standard Jira/Linear-style names — `parent`, `subtasks`, `blocked_by`, `blocks`, `duplicates`, `related` — alongside the legacy `_ids`-suffixed names. Responses dual-emit both shapes. **The legacy names are deprecated and will be removed in 0.13.0.** Prefer the canonical names in new code.
165
+ >
166
+ > **Auto-mirror (0.12.0+):** Setting a relationship on one side automatically patches the inverse side. Setting `parent: P` on a child also updates `P.subtasks`. Setting `blocked_by: [B]` also updates `B.blocks`. Best-effort — failures surface in `mirror_warnings` on the response, never fail the primary write.
167
+ >
168
+ > **Pseudo-edge tags rejected:** Tags like `"needs:T-42"`, `"blocks:T-99"`, `"blocked-by:..."` are rejected with a corrective error pointing at the right relationship field. Use relationship arrays, not tag prefixes.
169
+
162
170
  ### `create_task` - Create Single Task
163
171
 
164
172
  **Purpose:** Create a new task with all metadata.
@@ -173,17 +181,25 @@ get_config({ cache_bust: true })
173
181
  priority?: string // "critical", "high", "medium", "low"
174
182
  size?: string // "xs", "small", "medium", "large", "xl"
175
183
  assignees?: string[] // email addresses or names
176
- tags?: string[] // tag names
184
+ tags?: string[] // tag names (no "needs:X"/"blocks:Y" — use relationship fields)
177
185
  due_at?: string // ISO8601 date (e.g., "2026-02-01T00:00:00Z")
178
186
  start_at?: string // ISO8601 date
179
- parent_task?: string // parent task dart_id
180
187
 
181
- // Relationship fields (arrays of dart_id strings)
182
- subtask_ids?: string[] // IDs of subtask (child) tasks
183
- blocker_ids?: string[] // IDs of tasks that block this task
184
- blocking_ids?: string[] // IDs of tasks blocked by this task
185
- duplicate_ids?: string[] // IDs of duplicate tasks
186
- related_ids?: string[] // IDs of related tasks
188
+ // Relationship fields canonical names (preferred)
189
+ parent?: string // parent task dart_id
190
+ subtasks?: string[] // child task dart_ids
191
+ blocked_by?: string[] // dart_ids of tasks blocking this one
192
+ blocks?: string[] // dart_ids of tasks this one blocks
193
+ duplicates?: string[] // dart_ids of duplicate tasks
194
+ related?: string[] // dart_ids of related tasks
195
+
196
+ // Legacy names (deprecated, removed in 0.13.0) — all accepted interchangeably
197
+ parent_task?: string
198
+ subtask_ids?: string[]
199
+ blocker_ids?: string[]
200
+ blocking_ids?: string[]
201
+ duplicate_ids?: string[]
202
+ related_ids?: string[]
187
203
  }
188
204
  ```
189
205
 
@@ -465,6 +481,57 @@ update_task({
465
481
 
466
482
  ---
467
483
 
484
+ ### `link_tasks` - Atomic Bidirectional Relationship Linker
485
+
486
+ **Purpose:** Add a typed relationship between tasks, writing both sides of the link in one call. Prevents the common one-sided-graph failure mode where a planner sets `parent_task` on a child without updating the parent's `subtasks`.
487
+
488
+ Maps onto Linear's `issueRelationCreate` semantics. Internally delegates to `update_task`, so synonym normalization, pseudo-edge tag rejection, and auto-mirror diff logic apply transparently.
489
+
490
+ **Input Schema:**
491
+ ```typescript
492
+ {
493
+ type: 'parent' | 'subtasks' | 'blocks' | 'blocked_by' | 'duplicates' | 'related'
494
+ from: string // anchor task dart_id
495
+ to: string[] // target task dart_ids — length must be 1 for type='parent'
496
+ }
497
+ ```
498
+
499
+ **Semantics:**
500
+ - `parent`: anchor gets `parent = to[0]`; `to[0].subtasks += anchor` (auto-mirror)
501
+ - `subtasks`: anchor's subtasks += `to[]`; each `to[i].parent = anchor` (auto-mirror)
502
+ - `blocks`: anchor's blocks += `to[]`; each `to[i].blocked_by += anchor` (auto-mirror)
503
+ - `blocked_by`: anchor's blocked_by += `to[]`; each `to[i].blocks += anchor` (auto-mirror)
504
+ - `duplicates` / `related`: bidirectional symmetric mirror
505
+
506
+ **Output Schema:**
507
+ ```typescript
508
+ {
509
+ from: string
510
+ type: string
511
+ to: string[]
512
+ url: string
513
+ mirror_applied: string[] // inverse-side tasks successfully patched
514
+ mirror_warnings: string[] // inverse-side patches that failed (best-effort)
515
+ }
516
+ ```
517
+
518
+ **Examples:**
519
+
520
+ ```typescript
521
+ // Attach two subtasks to a parent — both sides linked in one call
522
+ link_tasks({ type: 'subtasks', from: 'duid_parent', to: ['duid_a', 'duid_b'] })
523
+
524
+ // Express a dependency
525
+ link_tasks({ type: 'blocks', from: 'duid_setup', to: ['duid_feat1', 'duid_feat2'] })
526
+
527
+ // Set parent on an existing task
528
+ link_tasks({ type: 'parent', from: 'duid_child', to: ['duid_epic'] })
529
+ ```
530
+
531
+ **Why this exists:** Dart's API does not auto-mirror parent↔subtask or blocker↔blocking. Most PM tools (Jira, Linear, Asana, ClickUp, GitHub sub-issues) do. `link_tasks` restores that intuition with a single verb. Use this over hand-rolling bidirectional updates.
532
+
533
+ ---
534
+
468
535
  ### `delete_task` - Move Task to Trash
469
536
 
470
537
  **Purpose:** Move a task to trash (recoverable from Dart web UI).
@@ -1202,9 +1269,66 @@ dart-query includes full document (notes/docs) management. Documents are separat
1202
1269
 
1203
1270
  ---
1204
1271
 
1272
+ ## DartAI Loop Tools
1273
+
1274
+ ### `dartai_loop_snapshot` - Loop Startup Aggregation
1275
+
1276
+ **Purpose:** Single-call snapshot for dartai loop startup. Returns dartboard config, claimable queue, runner-claimed tasks, and blocked tasks in one response. Replaces the 3-call sequence (`get_config` + `list_tasks` + client filter) with one aggregated call, saving 2 round-trips per loop iteration start.
1277
+
1278
+ **Input Schema:**
1279
+ ```typescript
1280
+ {
1281
+ dartboard: string // REQUIRED — dartboard name or dart_id (e.g., "Personal/agnt")
1282
+ runner_dart_id?: string // optional runner dart_id; populates runner_claimed when set
1283
+ queue_limit?: number // max queue tasks returned (default: 20)
1284
+ }
1285
+ ```
1286
+
1287
+ **Output Schema:**
1288
+ ```typescript
1289
+ {
1290
+ dartboard_id: string
1291
+ config: {
1292
+ statuses: string[] // dartboard's status names
1293
+ assignees: { dart_id: string; email: string }[] // available assignees
1294
+ }
1295
+ queue: TaskSummary[] // Todo status, no `claimed:*` tag, not `loop-blocked` tagged
1296
+ runner_claimed: TaskSummary[] // In Progress + assigned to runner_dart_id (empty when runner not provided)
1297
+ blocked: TaskSummary[] // tasks tagged `loop-blocked` regardless of status
1298
+ fetched_at: string // ISO-8601 timestamp of when the snapshot was assembled
1299
+ }
1300
+
1301
+ // where:
1302
+ type TaskSummary = {
1303
+ dart_id: string
1304
+ title: string
1305
+ status: string
1306
+ tags: string[]
1307
+ assignees: string[]
1308
+ }
1309
+ ```
1310
+
1311
+ **Examples:**
1312
+
1313
+ ```typescript
1314
+ // Minimal — just claimable queue + config
1315
+ dartai_loop_snapshot({ dartboard: "Personal/agnt" })
1316
+
1317
+ // With runner partition — includes tasks already claimed by this runner
1318
+ dartai_loop_snapshot({
1319
+ dartboard: "Personal/agnt",
1320
+ runner_dart_id: "ru_abc123",
1321
+ queue_limit: 50
1322
+ })
1323
+ ```
1324
+
1325
+ **Performance:** Exactly one outbound `listTasks` call plus one cached `get_config` read. Designed to be the first call in `dartai:start` / `workflow:start-loop` skill flows.
1326
+
1327
+ ---
1328
+
1205
1329
  ## DartQL Reference
1206
1330
 
1207
- **DartQL** is a SQL-like WHERE clause syntax for batch operations.
1331
+ **DartQL** uses SQL-92 WHERE clause syntax for batch operations.
1208
1332
 
1209
1333
  ### Syntax Overview
1210
1334
 
@@ -1217,15 +1341,15 @@ field operator value [AND|OR field operator value ...]
1217
1341
  | Operator | Description | Example |
1218
1342
  |----------|-------------|---------|
1219
1343
  | `=` | Equals | `status = 'To Do'` |
1220
- | `!=` | Not equals | `priority != 'low'` |
1344
+ | `!=` / `<>` | Not equals | `priority != 'low'` |
1221
1345
  | `>` | Greater than | `due_at > '2026-02-01'` |
1222
1346
  | `>=` | Greater or equal | `priority >= 'high'` |
1223
1347
  | `<` | Less than | `due_at < '2026-01-18'` |
1224
1348
  | `<=` | Less or equal | `priority <= 'medium'` |
1225
1349
  | `IN` | In list | `status IN ('To Do', 'Doing')` |
1226
1350
  | `NOT IN` | Not in list | `priority NOT IN ('low')` |
1227
- | `LIKE` | Pattern match | `title LIKE '%authentication%'` |
1228
- | `CONTAINS` | Array contains | `tags CONTAINS 'urgent'` |
1351
+ | `LIKE` | Pattern match (`%` = any chars, `_` = single char, case-insensitive) | `title LIKE 'Task%'` |
1352
+ | `CONTAINS` | Array contains (aliases: `INCLUDES`, `HAS`) | `tags CONTAINS 'urgent'` |
1229
1353
  | `IS NULL` | Is null/undefined | `due_at IS NULL` |
1230
1354
  | `IS NOT NULL` | Is not null | `assignees IS NOT NULL` |
1231
1355
  | `BETWEEN` | Range | `created_at BETWEEN '2026-01-01' AND '2026-01-31'` |
@@ -1304,10 +1428,12 @@ tags CONTAINS 'urgent'
1304
1428
  tags CONTAINS 'bug' AND tags CONTAINS 'security'
1305
1429
  ```
1306
1430
 
1307
- **Pattern matching:**
1431
+ **Pattern matching (LIKE with SQL-92 wildcards):**
1308
1432
  ```sql
1309
- title LIKE '%authentication%'
1310
- description LIKE '%API%'
1433
+ title LIKE 'Task%' -- starts with "Task"
1434
+ title LIKE '%authentication%' -- contains "authentication"
1435
+ title LIKE '%fix' -- ends with "fix"
1436
+ description LIKE 'API_%' -- starts with "API_" (underscore = single char)
1311
1437
  ```
1312
1438
 
1313
1439
  **NULL checks:**
@@ -2041,7 +2167,8 @@ Unknown field: priorty. Did you mean: priority?
2041
2167
  1. Check field name spelling (fuzzy match suggestions provided)
2042
2168
  2. Valid fields: status, priority, size, title, description, assignee, dartboard, tags, dates, dart_id
2043
2169
  3. Use quotes for string values: `status = 'To Do'` not `status = To Do`
2044
- 4. Check operator syntax: `=`, `!=`, `>`, `>=`, `<`, `<=`, `IN`, `NOT IN`, `LIKE`, `CONTAINS`
2170
+ 4. Check operator syntax (SQL-92): `=`, `!=`/`<>`, `>`, `>=`, `<`, `<=`, `IN`, `NOT IN`, `LIKE`, `CONTAINS`/`INCLUDES`/`HAS`, `IS NULL`, `BETWEEN`
2171
+ 5. For pattern matching use `LIKE` with `%` and `_` wildcards (not `starts_with`, `matches`, etc.)
2045
2172
 
2046
2173
  ### Problem: Batch Operations Matching Wrong Tasks
2047
2174
 
@@ -54,11 +54,7 @@ export declare class DartClient {
54
54
  comment_id: string;
55
55
  dart_id: string;
56
56
  text: string;
57
- author: {
58
- dart_id: string;
59
- name: string;
60
- };
61
- created_at: string;
57
+ author: string;
62
58
  }>;
63
59
  listComments(input: {
64
60
  task_id: string;
@@ -68,11 +64,8 @@ export declare class DartClient {
68
64
  comments: Array<{
69
65
  comment_id: string;
70
66
  text: string;
71
- author: {
72
- dart_id: string;
73
- name: string;
74
- };
75
- created_at: string;
67
+ author: string;
68
+ created_at?: string;
76
69
  parent_id?: string;
77
70
  }>;
78
71
  total: number;
@@ -1 +1 @@
1
- {"version":3,"file":"dartClient.d.ts","sourceRoot":"","sources":["../../src/api/dartClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dartClient.d.ts","sourceRoot":"","sources":["../../src/api/dartClient.ts"],"names":[],"mappings":"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"}
@@ -109,6 +109,12 @@ export class DartClient {
109
109
  }
110
110
  }
111
111
  }
112
+ else if (text.trimStart().startsWith('<')) {
113
+ const titleMatch = text.match(/<title[^>]*>([^<]+)<\/title>/i);
114
+ errorDetail = titleMatch
115
+ ? `Server returned HTML error page: ${titleMatch[1].trim()}`
116
+ : 'Server returned HTML instead of JSON (likely a server error or redirect)';
117
+ }
112
118
  else {
113
119
  errorDetail = text.slice(0, 500);
114
120
  }
@@ -204,6 +210,12 @@ export class DartClient {
204
210
  }
205
211
  mapTaskResponse(task) {
206
212
  const relationships = task.taskRelationships || {};
213
+ const parent = task.parentId ?? task.parent ?? task.parent_task ?? null;
214
+ const subtasks = relationships.subtaskIds ?? task.subtaskIds ?? task.subtasks ?? task.subtask_ids ?? [];
215
+ const blockedBy = relationships.blockerIds ?? task.blockerIds ?? task.blocked_by ?? task.blocker_ids ?? [];
216
+ const blocks = relationships.blockingIds ?? task.blockingIds ?? task.blocks ?? task.blocking_ids ?? [];
217
+ const duplicates = relationships.duplicateIds ?? task.duplicateIds ?? task.duplicates ?? task.duplicate_ids ?? [];
218
+ const related = relationships.relatedIds ?? task.relatedIds ?? task.related ?? task.related_ids ?? [];
207
219
  return {
208
220
  ...task,
209
221
  dart_id: task.id || task.dart_id,
@@ -212,12 +224,18 @@ export class DartClient {
212
224
  due_at: task.dueAt ?? task.due_at,
213
225
  start_at: task.startAt ?? task.start_at,
214
226
  completed_at: task.completedAt ?? task.completed_at,
215
- parent_task: task.parentId ?? task.parent_task,
216
- subtask_ids: relationships.subtaskIds ?? task.subtaskIds ?? task.subtask_ids ?? [],
217
- blocker_ids: relationships.blockerIds ?? task.blockerIds ?? task.blocker_ids ?? [],
218
- blocking_ids: relationships.blockingIds ?? task.blockingIds ?? task.blocking_ids ?? [],
219
- duplicate_ids: relationships.duplicateIds ?? task.duplicateIds ?? task.duplicate_ids ?? [],
220
- related_ids: relationships.relatedIds ?? task.relatedIds ?? task.related_ids ?? [],
227
+ parent,
228
+ subtasks,
229
+ blocked_by: blockedBy,
230
+ blocks,
231
+ duplicates,
232
+ related,
233
+ parent_task: parent ?? undefined,
234
+ subtask_ids: subtasks,
235
+ blocker_ids: blockedBy,
236
+ blocking_ids: blocks,
237
+ duplicate_ids: duplicates,
238
+ related_ids: related,
221
239
  };
222
240
  }
223
241
  async getTask(dartId) {
@@ -315,7 +333,17 @@ export class DartClient {
315
333
  if (!input.text || typeof input.text !== 'string') {
316
334
  throw new DartAPIError('text is required and must be a string', 400);
317
335
  }
318
- return this.request('POST', '/docs', input);
336
+ const response = await this.request('POST', '/docs', { item: input });
337
+ return {
338
+ doc_id: response.item?.id || '',
339
+ title: response.item?.title || input.title,
340
+ text: response.item?.text || input.text,
341
+ folder: response.item?.folder,
342
+ folder_id: response.item?.folder_id,
343
+ created_at: response.item?.created_at || '',
344
+ updated_at: response.item?.updated_at || '',
345
+ url: response.item?.url,
346
+ };
319
347
  }
320
348
  async getDoc(docId) {
321
349
  if (!docId || typeof docId !== 'string' || docId.trim() === '') {
@@ -346,7 +374,14 @@ export class DartClient {
346
374
  if (!text || typeof text !== 'string' || text.trim() === '') {
347
375
  throw new DartAPIError('text is required and must be a non-empty string', 400);
348
376
  }
349
- return this.request('POST', `/tasks/${encodeURIComponent(dartId.trim())}/comments`, { text });
377
+ const trimmedId = dartId.trim();
378
+ const response = await this.request('POST', '/comments', { item: { taskId: trimmedId, text } });
379
+ return {
380
+ comment_id: response.item.id,
381
+ dart_id: response.item.taskId,
382
+ text: response.item.text,
383
+ author: response.item.author,
384
+ };
350
385
  }
351
386
  async listComments(input) {
352
387
  if (!input.task_id || typeof input.task_id !== 'string' || input.task_id.trim() === '') {
@@ -363,7 +398,7 @@ export class DartClient {
363
398
  comments: (response.results || []).map((c) => ({
364
399
  comment_id: c.id || c.comment_id,
365
400
  text: c.text,
366
- author: c.author || { dart_id: '', name: 'Unknown' },
401
+ author: c.author || 'Unknown',
367
402
  created_at: c.publishedAt || c.created_at,
368
403
  parent_id: c.parentId || c.parent_id,
369
404
  })),
@@ -383,7 +418,7 @@ export class DartClient {
383
418
  apiInput.afterId = input.after_id;
384
419
  if (input.before_id !== undefined)
385
420
  apiInput.beforeId = input.before_id;
386
- const response = await this.request('POST', `/tasks/${encodeURIComponent(input.dart_id.trim())}/move`, apiInput);
421
+ const response = await this.request('POST', `/tasks/${encodeURIComponent(input.dart_id.trim())}/move`, { item: apiInput });
387
422
  return this.mapTaskResponse(response.item);
388
423
  }
389
424
  async addTimeTracking(input) {
@@ -393,13 +428,25 @@ export class DartClient {
393
428
  if (!input.started_at || typeof input.started_at !== 'string') {
394
429
  throw new DartAPIError('started_at is required and must be an ISO8601 string', 400);
395
430
  }
431
+ let finishedAt = input.finished_at;
432
+ if (!finishedAt && input.duration_minutes) {
433
+ const start = new Date(input.started_at);
434
+ finishedAt = new Date(start.getTime() + input.duration_minutes * 60000).toISOString();
435
+ }
436
+ if (!finishedAt) {
437
+ throw new DartAPIError('Either finished_at or duration_minutes is required', 400);
438
+ }
439
+ const config = await this.getConfig();
440
+ const currentUser = config.user || config.assignees?.find(a => a.email);
441
+ const userId = currentUser?.dart_id || currentUser?.email || currentUser?.name;
442
+ if (!userId) {
443
+ throw new DartAPIError('Cannot determine current user for time tracking. Check workspace config.', 400);
444
+ }
396
445
  const apiInput = {
446
+ user: userId,
397
447
  startedAt: input.started_at,
448
+ finishedAt: finishedAt,
398
449
  };
399
- if (input.finished_at !== undefined)
400
- apiInput.finishedAt = input.finished_at;
401
- if (input.duration_minutes !== undefined)
402
- apiInput.durationMinutes = input.duration_minutes;
403
450
  if (input.note !== undefined)
404
451
  apiInput.note = input.note;
405
452
  const response = await this.request('POST', `/tasks/${encodeURIComponent(input.dart_id.trim())}/time-tracking`, apiInput);
@@ -424,7 +471,7 @@ export class DartClient {
424
471
  };
425
472
  if (input.filename !== undefined)
426
473
  apiInput.filename = input.filename;
427
- const response = await this.request('POST', `/tasks/${encodeURIComponent(input.dart_id.trim())}/attachments/from-url`, apiInput);
474
+ const response = await this.request('POST', `/tasks/${encodeURIComponent(input.dart_id.trim())}/attachments/from-url`, { item: apiInput });
428
475
  return {
429
476
  attachment_id: response.item?.id || '',
430
477
  dart_id: input.dart_id,
@@ -1 +1 @@
1
- {"version":3,"file":"dartClient.js","sourceRoot":"","sources":["../../src/api/dartClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dartClient.js","sourceRoot":"","sources":["../../src/api/dartClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare const RELATIONSHIP_INPUT_SYNONYMS: Readonly<Record<string, string>>;
2
+ export declare function normalizeRelationshipInput<T extends Record<string, unknown>>(input: T): T;
3
+ export declare function assertNoPseudoEdgeTags(tags: unknown, ValidationErrorCtor: new (msg: string, field: string) => Error): void;
4
+ //# sourceMappingURL=relationshipNormalizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relationshipNormalizer.d.ts","sourceRoot":"","sources":["../../src/api/relationshipNormalizer.ts"],"names":[],"mappings":"AAwBA,eAAO,MAAM,2BAA2B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA0CvE,CAAC;AAWH,wBAAgB,0BAA0B,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAgBzF;AA2CD,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,OAAO,EACb,mBAAmB,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,KAAK,GAC7D,IAAI,CAmBN"}
@@ -0,0 +1,86 @@
1
+ export const RELATIONSHIP_INPUT_SYNONYMS = Object.freeze({
2
+ parent: 'parent_task',
3
+ parentId: 'parent_task',
4
+ parent_id: 'parent_task',
5
+ parent_task: 'parent_task',
6
+ subtasks: 'subtask_ids',
7
+ children: 'subtask_ids',
8
+ child_ids: 'subtask_ids',
9
+ childIds: 'subtask_ids',
10
+ subtaskIds: 'subtask_ids',
11
+ subtask_ids: 'subtask_ids',
12
+ blocked_by: 'blocker_ids',
13
+ blockedBy: 'blocker_ids',
14
+ blockers: 'blocker_ids',
15
+ depends_on: 'blocker_ids',
16
+ dependsOn: 'blocker_ids',
17
+ blockerIds: 'blocker_ids',
18
+ blocker_ids: 'blocker_ids',
19
+ blocks: 'blocking_ids',
20
+ blocking: 'blocking_ids',
21
+ blockingIds: 'blocking_ids',
22
+ blocking_ids: 'blocking_ids',
23
+ duplicates: 'duplicate_ids',
24
+ duplicate_of: 'duplicate_ids',
25
+ duplicateOf: 'duplicate_ids',
26
+ duplicateIds: 'duplicate_ids',
27
+ duplicate_ids: 'duplicate_ids',
28
+ related: 'related_ids',
29
+ relations: 'related_ids',
30
+ relatedIds: 'related_ids',
31
+ related_ids: 'related_ids',
32
+ });
33
+ export function normalizeRelationshipInput(input) {
34
+ if (!input || typeof input !== 'object')
35
+ return input;
36
+ const out = { ...input };
37
+ for (const key of Object.keys(input)) {
38
+ const target = RELATIONSHIP_INPUT_SYNONYMS[key];
39
+ if (!target || target === key)
40
+ continue;
41
+ if (target in out) {
42
+ delete out[key];
43
+ continue;
44
+ }
45
+ out[target] = out[key];
46
+ delete out[key];
47
+ }
48
+ return out;
49
+ }
50
+ const PSEUDO_EDGE_TAG_HINTS = Object.freeze({
51
+ needs: 'blocked_by',
52
+ 'depends-on': 'blocked_by',
53
+ depends_on: 'blocked_by',
54
+ blockedby: 'blocked_by',
55
+ 'blocked-by': 'blocked_by',
56
+ blocks: 'blocks',
57
+ blocking: 'blocks',
58
+ parent: 'parent',
59
+ 'parent-of': 'subtasks',
60
+ child: 'parent',
61
+ 'child-of': 'parent',
62
+ subtask: 'subtasks',
63
+ duplicate: 'duplicates',
64
+ 'duplicate-of': 'duplicates',
65
+ related: 'related',
66
+ });
67
+ const PSEUDO_EDGE_TAG_REGEX = /^(needs|depends[-_]?on|blocked[-_]?by|blocks|blocking|parent(?:-of)?|child(?:-of)?|subtask|duplicate(?:-of)?|related)\s*:\s*(.+)$/i;
68
+ export function assertNoPseudoEdgeTags(tags, ValidationErrorCtor) {
69
+ if (!Array.isArray(tags))
70
+ return;
71
+ for (const tag of tags) {
72
+ if (typeof tag !== 'string')
73
+ continue;
74
+ const match = tag.match(PSEUDO_EDGE_TAG_REGEX);
75
+ if (!match)
76
+ continue;
77
+ const prefix = match[1].toLowerCase().replace(/_/g, '-');
78
+ const target = match[2].trim();
79
+ const suggestedField = PSEUDO_EDGE_TAG_HINTS[prefix] ?? 'blocked_by';
80
+ throw new ValidationErrorCtor(`Tag "${tag}" looks like a dependency edge encoded as a label. ` +
81
+ `Dart's task graph reads relationship fields, not tags — ` +
82
+ `use ${suggestedField}: ["${target}"] instead. ` +
83
+ `Tags are free-text labels (e.g. "backend", "v2") and do not link tasks.`, 'tags');
84
+ }
85
+ }
86
+ //# sourceMappingURL=relationshipNormalizer.js.map