@rallycry/conveyor-mcp 4.3.28 → 4.3.30

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/tunnel.d.ts CHANGED
@@ -1,805 +1,4 @@
1
- interface ConveyorMcpConfig {
2
- apiUrl: string;
3
- projectToken: string;
4
- projectId?: string;
5
- /**
6
- * Optional default board (sub-project) scope. When set, unqualified
7
- * task create/list/search default to this board instead of the whole
8
- * project — so a connection scoped to a board lands cards on that board.
9
- */
10
- subProjectId?: string;
11
- }
12
- /** Actions a connection is authorized for, mirrors ConveyorCapability in @project/shared. */
13
- type ConveyorCapability = "read" | "create" | "update" | "chat" | "files" | "build";
14
- /** Immutable id + human name/slug + web URL for one connection scope level. */
15
- interface ConnectionScopeRef {
16
- id: string;
17
- name: string;
18
- slug: string;
19
- url: string;
20
- }
21
- /** Result of `get_connection_context` — effective identity + scope + grants. */
22
- interface ConnectionContext {
23
- account: {
24
- userId: string;
25
- name: string | null;
26
- email: string;
27
- };
28
- project: ConnectionScopeRef & {
29
- githubRepoOwner: string | null;
30
- githubRepoName: string | null;
31
- };
32
- subProject: (ConnectionScopeRef & {
33
- rootPath: string | null;
34
- }) | null;
35
- role: string;
36
- capabilities: ConveyorCapability[];
37
- managementUrls: {
38
- board: string;
39
- projectSettings: string;
40
- memberSettings: string;
41
- };
42
- summary: string;
43
- }
44
- /** One layer of the verify_connection ladder. */
45
- interface VerifyConnectionLayer {
46
- key: string;
47
- label: string;
48
- ok: boolean;
49
- detail: string;
50
- }
51
- /** Result of `verify_connection` — a layered, verify-by-scope probe. */
52
- interface VerifyConnectionResult {
53
- ok: boolean;
54
- layers: VerifyConnectionLayer[];
55
- summary: string;
56
- nextAction: string | null;
57
- scope: {
58
- projectId: string;
59
- projectName: string;
60
- subProjectId: string | null;
61
- subProjectName: string | null;
62
- capabilities: ConveyorCapability[];
63
- };
64
- }
65
- /** The project + board a task mutation actually landed on. Returned so a caller
66
- * can confirm where the write went (name-vs-board-label ambiguity guard). */
67
- interface EffectiveScope {
68
- projectId: string;
69
- subProjectId: string | null;
70
- }
71
- /** One board under the connected project, for list_accessible_subprojects. */
72
- interface AccessibleSubproject {
73
- id: string;
74
- name: string;
75
- slug: string;
76
- url: string;
77
- rootPath: string | null;
78
- role: string;
79
- capabilities: ConveyorCapability[];
80
- }
81
- /**
82
- * Canonical risk levels — kept in lockstep with `RISK_LEVELS` in
83
- * `@project/shared` (conveyor-mcp is published standalone and does not depend on
84
- * the shared package, so the vocabulary is duplicated here).
85
- */
86
- type RiskLevel = "critical" | "high" | "medium" | "low";
87
- /** A single PTY output frame broadcast on the `pty:data` room event. */
88
- interface PtyDataChunk {
89
- sessionId: string;
90
- seq: number;
91
- data: string;
92
- cols?: number;
93
- rows?: number;
94
- }
95
- /** Ring-buffer snapshot returned by `ptyAttach` for catch-up replay. */
96
- interface PtyAttachSnapshot {
97
- sessionId: string;
98
- chunks: {
99
- seq: number;
100
- data: string;
101
- }[];
102
- cols: number;
103
- rows: number;
104
- totalBytes: number;
105
- }
106
- /**
107
- * Result of `getActivePtySession`. `sessionId` is null until the cloud agent
108
- * has booted a PTY and produced at least one ring frame (readiness signal).
109
- */
110
- interface ActivePtySession {
111
- sessionId: string | null;
112
- cols?: number;
113
- rows?: number;
114
- }
115
- interface WorkspaceAttachInfo {
116
- taskId: string;
117
- sessionId: string;
118
- workspaceRoot: string;
119
- /** "codespace" means preview-only — GitHub owns the VM's forwarded ports, so
120
- * `tunnelUrl`/`attachToken`/`ssh` are null/absent. Older servers omit it. */
121
- backend?: "gke" | "codespace";
122
- tunnelUrl: string | null;
123
- attachToken: string | null;
124
- expiresAt: string;
125
- previewPorts: Array<{
126
- port: number;
127
- label: string;
128
- }>;
129
- previewUrls: Record<string, string>;
130
- ssh?: {
131
- remotePort: number;
132
- preferredLocalPort: number;
133
- username: string;
134
- };
135
- }
136
- /** One Cloud Logging entry as returned by the API's queryProjectGcpLogs. */
137
- interface GcpLogEntry {
138
- timestamp: string;
139
- severity: string;
140
- message: string;
141
- resource: Record<string, string>;
142
- labels: Record<string, string>;
143
- resourceType?: string;
144
- insertId?: string;
145
- trace?: string;
146
- httpRequest?: {
147
- status?: number;
148
- method?: string;
149
- url?: string;
150
- latencyMs?: number;
151
- };
152
- payload?: string;
153
- payloadTruncated?: boolean;
154
- }
155
- interface GcpLogQueryResult {
156
- entries: GcpLogEntry[];
157
- hasMore: boolean;
158
- nextPageToken?: string;
159
- scopedServices?: string[];
160
- error?: string;
161
- }
162
- /** Loki entries normalize onto the same row shape as Cloud Logging entries. */
163
- interface GrafanaLogQueryResult {
164
- entries: GcpLogEntry[];
165
- hasMore: boolean;
166
- /** The LogQL the server composed or executed — agents can iterate on it. */
167
- logql?: string;
168
- error?: string;
169
- }
170
- /**
171
- * One row of the project onboarding checklist. Mirrors the API's
172
- * `ReadinessCheck` (conveyor-mcp is published standalone and does not depend on
173
- * `@project/shared`, so the shape is duplicated here).
174
- */
175
- interface OnboardingCheck {
176
- key: string;
177
- status: "ok" | "warn" | "fail";
178
- reason: string;
179
- fix?: {
180
- label: string;
181
- href?: string | null;
182
- action?: string;
183
- };
184
- }
185
- /** Result of `get_onboarding_status` — the project's setup readiness report. */
186
- interface OnboardingStatus {
187
- ok: boolean;
188
- checks: OnboardingCheck[];
189
- bypassedAt: string | null;
190
- }
191
- /** The single next onboarding step. Mirrors the API's `OnboardingStep`. */
192
- interface OnboardingStep {
193
- key: string;
194
- status: "warn" | "fail";
195
- title: string;
196
- reason: string;
197
- guidance: string;
198
- autoFixable: boolean;
199
- fix?: {
200
- label: string;
201
- href?: string | null;
202
- action?: string;
203
- };
204
- connectUrls?: Record<string, string>;
205
- }
206
- /** Result of `get_onboarding_step` — the choose-your-own-adventure step driver.
207
- * Mirrors the API's `OnboardingStepReport`. */
208
- interface OnboardingStepReport {
209
- done: boolean;
210
- ok: boolean;
211
- bypassedAt: string | null;
212
- step: OnboardingStep | null;
213
- remaining: Array<{
214
- key: string;
215
- status: "warn" | "fail";
216
- reason: string;
217
- }>;
218
- checks: OnboardingCheck[];
219
- }
220
- interface MoveCardResult {
221
- cardId: string;
222
- sourceProjectId: string;
223
- destinationProjectId: string;
224
- slug: string;
225
- clearedFields: string[];
226
- }
227
- interface ProjectConnectUrls {
228
- gcpConnect: string;
229
- gcpSettings: string;
230
- memberSettings: string;
231
- projectSettings: string;
232
- setupWizard: string;
233
- }
234
- interface TagSummary {
235
- id: string;
236
- name: string;
237
- color: string;
238
- description?: string | null;
239
- }
240
- /** A tag context-path link (rule/doc/file/folder) loaded into agent context.
241
- * A locator turns the link into a VERIFIED repo link — mirrors
242
- * TagContextLink in @project/shared types/tag-types.ts. */
243
- interface ContextPathInput {
244
- type: "rule" | "doc" | "file" | "folder";
245
- path: string;
246
- label?: string;
247
- locator?: string;
248
- locatorType?: "test" | "code";
249
- }
250
- interface PrioritySummary {
251
- id: string;
252
- value: number;
253
- name: string;
254
- color: string;
255
- description?: string | null;
256
- }
257
- declare class ConveyorConnection {
258
- private socket;
259
- private config;
260
- constructor(config: ConveyorMcpConfig);
261
- get projectId(): string;
262
- private resolveProjectId;
263
- /** The configured default board (CONVEYOR_SUBPROJECT_ID), if any. */
264
- get defaultSubProjectId(): string | undefined;
265
- /**
266
- * Resolve the board scope for a task create/list/search:
267
- * - `null` explicitly means "the whole project" (never fall back to the default).
268
- * - `undefined` (not passed) falls back to the connection's default board.
269
- * - a concrete id is used as-is.
270
- * Returning `undefined` leaves the request unscoped (whole project).
271
- */
272
- private resolveSubProjectId;
273
- private normalizeProjectList;
274
- connect(): Promise<void>;
275
- private call;
276
- /**
277
- * Fire-and-forget emit (no ack). The quickdraw-core server method handler
278
- * invokes the ack callback via optional chaining, so omitting it still runs
279
- * the full auth/schema/ACL pipeline — it just skips the response round-trip.
280
- * Used for high-frequency PTY input/resize so each keystroke does not arm a
281
- * 15s timeout timer.
282
- */
283
- private emit;
284
- private callService;
285
- queryGcpLogs(params: {
286
- projectId?: string;
287
- env?: "prod" | "dev" | "claudespace";
288
- severity?: string;
289
- services?: string[];
290
- sqlInstances?: string[];
291
- allServices?: boolean;
292
- search?: string;
293
- filter?: string;
294
- startTime?: string;
295
- endTime?: string;
296
- limit?: number;
297
- pageToken?: string;
298
- }): Promise<GcpLogQueryResult>;
299
- queryGrafanaLogs(params: {
300
- projectId?: string;
301
- env?: "prod" | "dev";
302
- services?: string[];
303
- level?: "debug" | "info" | "warn" | "error" | "fatal";
304
- search?: string;
305
- logql?: string;
306
- startTime?: string;
307
- endTime?: string;
308
- limit?: number;
309
- }): Promise<GrafanaLogQueryResult>;
310
- listTasks(params: {
311
- projectId?: string;
312
- status?: string;
313
- typeFilters?: string[];
314
- assigneeId?: string;
315
- unassigned?: boolean;
316
- subProjectId?: string | null;
317
- limit?: number;
318
- }): Promise<unknown[]>;
319
- getTask(taskId: string, projectId?: string): Promise<unknown>;
320
- getCardBySlug(slug: string, projectId?: string): Promise<unknown>;
321
- searchTasks(params: {
322
- projectId?: string;
323
- tagNames?: string[];
324
- tagMatch?: "any" | "all";
325
- includeChildTags?: boolean;
326
- searchQuery?: string;
327
- statusFilters?: string[];
328
- typeFilters?: string[];
329
- assigneeId?: string;
330
- unassigned?: boolean;
331
- subProjectId?: string | null;
332
- limit?: number;
333
- }): Promise<unknown[]>;
334
- createTask(params: {
335
- projectId?: string;
336
- title: string;
337
- description?: string;
338
- plan?: string;
339
- status?: string;
340
- subProjectId?: string | null;
341
- tags?: string[];
342
- }): Promise<{
343
- id: string;
344
- slug: string;
345
- effectiveScope: EffectiveScope;
346
- }>;
347
- updateTask(params: {
348
- projectId?: string;
349
- taskId: string;
350
- title?: string;
351
- description?: string;
352
- plan?: string;
353
- status?: string;
354
- risk?: RiskLevel | null;
355
- storyPointValue?: number | null;
356
- assignedUserId?: string | null;
357
- subProjectId?: string | null;
358
- addTags?: string[];
359
- removeTags?: string[];
360
- }): Promise<{
361
- id: string;
362
- status: string | null;
363
- risk: RiskLevel | null;
364
- storyPointValue: number | null;
365
- assignedUserId: string | null;
366
- addedTags: string[];
367
- removedTags: string[];
368
- }>;
369
- /** Resolve tag names to IDs within a project, throwing on any unknown name. */
370
- private resolveTagIds;
371
- private assignTagsToTask;
372
- private removeTagsFromTask;
373
- /** Guarded status transition used by the review tools (approve/request). */
374
- transitionTaskStatus(params: {
375
- projectId?: string;
376
- taskId: string;
377
- toStatus: string;
378
- expectedFromStatus?: string;
379
- risk?: RiskLevel;
380
- }): Promise<{
381
- id: string;
382
- status: string;
383
- risk: RiskLevel | null;
384
- }>;
385
- moveCard(params: {
386
- projectId?: string;
387
- taskId: string;
388
- destinationProjectId: string;
389
- }): Promise<MoveCardResult>;
390
- addReviewer(params: {
391
- projectId?: string;
392
- taskId: string;
393
- userId: string;
394
- }): Promise<{
395
- taskId: string;
396
- reviewers: Array<{
397
- userId: string;
398
- name: string | null;
399
- }>;
400
- }>;
401
- removeReviewer(params: {
402
- projectId?: string;
403
- taskId: string;
404
- userId: string;
405
- }): Promise<{
406
- taskId: string;
407
- reviewers: Array<{
408
- userId: string;
409
- name: string | null;
410
- }>;
411
- }>;
412
- listProjectMembers(projectId?: string): Promise<Array<{
413
- userId: string;
414
- name: string | null;
415
- email: string;
416
- level: string;
417
- }>>;
418
- listProjects(): Promise<unknown[]>;
419
- startBuild(taskId: string, projectId?: string): Promise<{
420
- taskId: string;
421
- status: string;
422
- }>;
423
- stopBuild(taskId: string, projectId?: string): Promise<{
424
- taskId: string;
425
- stopped: boolean;
426
- }>;
427
- sleepTask(taskId: string, projectId?: string): Promise<{
428
- taskId: string;
429
- codespaceStatus: string;
430
- }>;
431
- resumeTask(taskId: string, projectId?: string): Promise<{
432
- status: string;
433
- }>;
434
- deleteTaskEnvironment(taskId: string, projectId?: string): Promise<{
435
- taskId: string;
436
- status: string;
437
- }>;
438
- getBuildStatus(taskId: string, projectId?: string): Promise<{
439
- session: {
440
- status: string | null;
441
- agentRunnerStatus: string | null;
442
- } | null;
443
- }>;
444
- getWorkspaceAttachInfo(taskId: string, sshPublicKey?: string): Promise<WorkspaceAttachInfo>;
445
- getTaskChat(taskId: string, limit?: number, projectId?: string): Promise<unknown[]>;
446
- postToTaskChat(taskId: string, content: string, projectId?: string): Promise<{
447
- messageId: string;
448
- }>;
449
- getTaskCli(taskId: string, limit?: number, source?: string, projectId?: string): Promise<{
450
- type: string;
451
- data: Record<string, unknown>;
452
- timestamp: string;
453
- }[]>;
454
- getTaskSessions(taskId: string, projectId?: string): Promise<Array<{
455
- taskId: string;
456
- slug: string;
457
- title: string;
458
- type: string;
459
- status: string;
460
- codeReviewStatus: string | null;
461
- codeReviewAttempts: number;
462
- workspaces: Array<{
463
- id: string;
464
- purpose: string;
465
- desiredState: string;
466
- observedState: string;
467
- branch: string | null;
468
- checkoutRef: string | null;
469
- createdAt: string;
470
- updatedAt: string;
471
- pod: {
472
- name: string;
473
- namespace: string;
474
- phase: string;
475
- imageUri: string | null;
476
- } | null;
477
- sessions: Array<{
478
- id: string;
479
- role: string;
480
- mode: string;
481
- status: string;
482
- userId: string;
483
- leaseUntil: string | null;
484
- createdAt: string;
485
- }>;
486
- }>;
487
- sessions: Array<{
488
- id: string;
489
- provider: string;
490
- instanceName: string | null;
491
- status: string;
492
- agentRunnerStatus: string | null;
493
- lastHeartbeatAt: string | null;
494
- agentRunningAt: string | null;
495
- lastAgentEvent: string | null;
496
- deletionRequestedAt: string | null;
497
- deletionAttempts: number;
498
- createdAt: string;
499
- stoppedAt: string | null;
500
- }>;
501
- }>>;
502
- listTags(projectId?: string): Promise<{
503
- id: string;
504
- name: string;
505
- color: string;
506
- description: string | null;
507
- parentTagIds: string[];
508
- childTagIds: string[];
509
- hasOverview: boolean;
510
- /** Files labelled as examples of the tag — read the tiles with list_tag_attachments. */
511
- attachmentCount: number;
512
- /** Rule/doc/file/folder links the tag wires into agent context; `[]` when none. */
513
- contextPaths: ContextPathInput[];
514
- }[]>;
515
- getTag(params: {
516
- projectId?: string;
517
- tag: string;
518
- }): Promise<unknown>;
519
- /** One page of a tag's attachment gallery, newest label first. */
520
- listTagAttachments(params: {
521
- projectId?: string;
522
- tag: string;
523
- limit?: number;
524
- offset?: number;
525
- }): Promise<unknown>;
526
- /** Replace the glossary tags on a file that is already uploaded. */
527
- setFileTags(params: {
528
- projectId?: string;
529
- taskId: string;
530
- fileId: string;
531
- tags: string[];
532
- }): Promise<{
533
- fileId: string;
534
- fileName: string;
535
- appliedTags?: string[];
536
- unknownTags?: string[];
537
- }>;
538
- getProjectSummary(projectId?: string): Promise<unknown>;
539
- /** Effective account/project/board identity + capabilities for this token. */
540
- getConnectionContext(projectId?: string): Promise<ConnectionContext>;
541
- /** Layered verify-by-scope probe (auth → account → project → board →
542
- * capabilities → read). Proves create/update on the intended board. */
543
- verifyConnection(params?: {
544
- projectId?: string;
545
- intendedActions?: ConveyorCapability[];
546
- }): Promise<VerifyConnectionResult>;
547
- /** Boards under the connected project with id/name/slug/url/role/capabilities. */
548
- listAccessibleSubprojects(projectId?: string): Promise<AccessibleSubproject[]>;
549
- getOnboardingStatus(projectId?: string): Promise<OnboardingStatus>;
550
- getOnboardingStep(projectId?: string): Promise<OnboardingStepReport>;
551
- approveTask(taskId: string, projectId?: string, risk?: RiskLevel): Promise<{
552
- status: string;
553
- }>;
554
- requestChanges(taskId: string, feedback: string, projectId?: string, risk?: RiskLevel): Promise<void>;
555
- approveAndMergePR(childTaskId: string, projectId?: string): Promise<{
556
- merged: boolean;
557
- childTaskId: string;
558
- prNumber: number;
559
- }>;
560
- listTaskFiles(taskId: string, projectId?: string): Promise<unknown[]>;
561
- getAttachment(taskId: string, fileId: string, opts?: {
562
- offset?: number;
563
- maxBytes?: number;
564
- projectId?: string;
565
- }): Promise<unknown>;
566
- requestFileUpload(taskId: string, params: {
567
- fileName: string;
568
- mimeType: string;
569
- fileSize: number;
570
- projectId?: string;
571
- }): Promise<{
572
- fileId: string;
573
- uploadUrl: string;
574
- }>;
575
- confirmFileUpload(taskId: string, fileId: string, comment?: string, projectId?: string, tags?: string[]): Promise<{
576
- fileId: string;
577
- fileName: string;
578
- downloadUrl?: string;
579
- messageId?: string;
580
- appliedTags?: string[];
581
- unknownTags?: string[];
582
- }>;
583
- createRelease(taskIds?: string[], projectId?: string): Promise<{
584
- taskId: string;
585
- version: string;
586
- }>;
587
- addTasksToRelease(taskIds: string[], projectId?: string): Promise<{
588
- releaseTaskId: string;
589
- added: number;
590
- releaseBranchUpdated: boolean;
591
- }>;
592
- createPullRequest(params: {
593
- projectId?: string;
594
- taskId: string;
595
- title: string;
596
- body: string;
597
- head?: string;
598
- base?: string;
599
- }): Promise<{
600
- prNumber: number;
601
- prUrl: string;
602
- }>;
603
- createSubtask(params: {
604
- projectId?: string;
605
- parentTaskId: string;
606
- title: string;
607
- description?: string;
608
- plan?: string;
609
- ordinal?: number;
610
- storyPointValue?: number;
611
- followParentStatus?: boolean;
612
- dependsOn?: string[];
613
- tags?: string[];
614
- }): Promise<{
615
- id: string;
616
- slug: string;
617
- }>;
618
- updateSubtask(params: {
619
- projectId?: string;
620
- subtaskId: string;
621
- title?: string;
622
- description?: string;
623
- plan?: string;
624
- status?: string;
625
- ordinal?: number;
626
- storyPointValue?: number;
627
- followParentStatus?: boolean;
628
- dependsOn?: string[];
629
- }): Promise<{
630
- id: string;
631
- status: string;
632
- }>;
633
- listSubtasks(taskId: string, projectId?: string): Promise<unknown[]>;
634
- deleteSubtask(subtaskId: string, projectId?: string): Promise<{
635
- deleted: boolean;
636
- }>;
637
- getDependencies(taskId: string, projectId?: string): Promise<unknown[]>;
638
- addDependency(params: {
639
- projectId?: string;
640
- taskId: string;
641
- dependsOnSlugOrId: string;
642
- }): Promise<{
643
- success: boolean;
644
- }>;
645
- removeDependency(params: {
646
- projectId?: string;
647
- taskId: string;
648
- dependsOnSlugOrId: string;
649
- }): Promise<{
650
- success: boolean;
651
- }>;
652
- listManualTests(taskId: string, projectId?: string): Promise<Array<{
653
- id: string;
654
- type: string;
655
- title: string;
656
- ordinal: number;
657
- createdAt: string;
658
- checked: boolean;
659
- failures: Array<{
660
- userName: string | null;
661
- reason: string | null;
662
- createdAt: string;
663
- }>;
664
- }>>;
665
- setManualTests(taskId: string, items: Array<{
666
- title: string;
667
- }>, projectId?: string): Promise<{
668
- created: number;
669
- skipped: number;
670
- }>;
671
- editManualTest(taskId: string, title: string, newTitle: string, projectId?: string): Promise<{
672
- updated: boolean;
673
- }>;
674
- removeManualTest(taskId: string, title: string, projectId?: string): Promise<{
675
- removed: boolean;
676
- }>;
677
- approveManualTest(taskId: string, title: string, projectId?: string): Promise<{
678
- approved: boolean;
679
- }>;
680
- rejectManualTest(taskId: string, title: string, reason: string, projectId?: string): Promise<{
681
- rejected: boolean;
682
- }>;
683
- queryManualTests(params: {
684
- projectId?: string;
685
- cardStatuses?: string[];
686
- testStatuses?: Array<"open" | "approved" | "rejected">;
687
- }): Promise<Array<{
688
- taskId: string;
689
- slug: string;
690
- title: string;
691
- status: string;
692
- tests: Array<{
693
- id: string;
694
- title: string;
695
- status: "open" | "approved" | "rejected";
696
- failures: Array<{
697
- userName: string | null;
698
- reason: string | null;
699
- createdAt: string;
700
- }>;
701
- }>;
702
- }>>;
703
- getConnectUrls(projectId?: string): Promise<ProjectConnectUrls>;
704
- updateProjectConfig(params: {
705
- projectId?: string;
706
- name?: string;
707
- description?: string;
708
- settings?: Record<string, unknown>;
709
- }): Promise<unknown>;
710
- updateProjectAgentDefaults(params: {
711
- projectId?: string;
712
- defaultPmAgentId?: string | null;
713
- defaultTaskAgentId?: string | null;
714
- defaultReviewerAgentId?: string | null;
715
- helperAgentId?: string | null;
716
- }): Promise<unknown>;
717
- listTagsDetailed(projectId?: string): Promise<TagSummary[]>;
718
- createTag(params: {
719
- projectId?: string;
720
- name: string;
721
- color?: string;
722
- description?: string;
723
- overview?: string;
724
- /** Repo file to source the overview from (stored overview stays as the pending fallback). */
725
- overviewPath?: string;
726
- /** Parents to link at create time (multi-parent DAG). */
727
- parentTagIds?: string[];
728
- contextPaths?: ContextPathInput[];
729
- }): Promise<{
730
- id: string;
731
- }>;
732
- updateTag(params: {
733
- id: string;
734
- name?: string;
735
- color?: string;
736
- description?: string;
737
- overview?: string | null;
738
- /** Repo file to source the overview from; null clears back to the stored overview. */
739
- overviewPath?: string | null;
740
- parentTagIds?: string[];
741
- reason?: string;
742
- contextPaths?: ContextPathInput[];
743
- }): Promise<unknown>;
744
- deleteTag(id: string): Promise<unknown>;
745
- previewTagMerge(params: {
746
- sourceTagId: string;
747
- targetTagId: string;
748
- }): Promise<unknown>;
749
- mergeTag(params: {
750
- sourceTagId: string;
751
- targetTagId: string;
752
- reason?: string;
753
- }): Promise<unknown>;
754
- listPriorities(projectId?: string): Promise<PrioritySummary[]>;
755
- createPriority(params: {
756
- projectId?: string;
757
- value: number;
758
- name: string;
759
- color: string;
760
- description?: string;
761
- }): Promise<{
762
- id: string;
763
- }>;
764
- updatePriority(params: {
765
- id: string;
766
- value?: number;
767
- name?: string;
768
- color?: string;
769
- description?: string;
770
- }): Promise<unknown>;
771
- deletePriority(id: string): Promise<unknown>;
772
- createSuggestion(params: {
773
- projectId?: string;
774
- title: string;
775
- description?: string;
776
- tagNames?: string[];
777
- }): Promise<{
778
- id: string;
779
- merged: boolean;
780
- mergedIntoId?: string;
781
- }>;
782
- /**
783
- * Poll target: returns the active cloud PTY session for a task once its ring
784
- * buffer has frames. `sessionId` is resolved server-side from `taskId` (never
785
- * accepted from the wire), preserving the one-active-session-per-task invariant.
786
- */
787
- getActivePtySession(taskId: string): Promise<ActivePtySession>;
788
- /** Fetch the ring-buffer snapshot for catch-up replay on (re)attach. */
789
- ptyAttach(sessionId: string): Promise<PtyAttachSnapshot>;
790
- /**
791
- * Join the session room so `pty:data` frames are delivered. Uses the standard
792
- * quickdraw-core subscribe envelope; "Read" is sufficient for output streaming.
793
- */
794
- subscribeToSession(sessionId: string): void;
795
- /** Relay a stdin chunk to the cloud PTY (raw utf8, fire-and-forget). */
796
- ptyInput(sessionId: string, data: string): void;
797
- /** Relay a terminal resize to the cloud PTY (fire-and-forget). */
798
- ptyResize(sessionId: string, cols: number, rows: number): void;
799
- /** Subscribe to raw PTY output frames. Returns an unsubscribe function. */
800
- onPtyData(handler: (chunk: PtyDataChunk) => void): () => void;
801
- disconnect(): void;
802
- }
1
+ import { A as ActivePtySession, P as PtyAttachSnapshot, c as PtyDataChunk } from './connection-CRkBLz5w.js';
803
2
 
804
3
  /**
805
4
  * The slice of {@link ConveyorConnection} the tunnel needs. Defined as a
@@ -921,4 +120,4 @@ interface TunnelSession {
921
120
  */
922
121
  declare function runTunnel(conn: TunnelConnection, tty: TunnelTty, options?: RunTunnelOptions): Promise<TunnelSession>;
923
122
 
924
- export { type ActivePtySession as A, type AttachTunnelOptions, ConveyorConnection as C, type PtyAttachSnapshot as P, type ResolvedPtySession, type RunTunnelOptions, type TunnelConnection, type TunnelHandle, type TunnelSession, type TunnelTty, type WaitForPtySessionOptions, type ConveyorMcpConfig as a, attachTunnel, type PtyDataChunk as b, runTunnel, waitForPtySession };
123
+ export { type AttachTunnelOptions, type ResolvedPtySession, type RunTunnelOptions, type TunnelConnection, type TunnelHandle, type TunnelSession, type TunnelTty, type WaitForPtySessionOptions, attachTunnel, runTunnel, waitForPtySession };