@proletariat/cli 0.3.102 → 0.3.104
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/commands/project/configure.d.ts +13 -0
- package/dist/commands/project/configure.js +149 -0
- package/dist/commands/project/configure.js.map +1 -0
- package/dist/commands/session/attach.d.ts +6 -1
- package/dist/commands/session/attach.js +82 -28
- package/dist/commands/session/attach.js.map +1 -1
- package/dist/commands/session/report.d.ts +5 -0
- package/dist/commands/session/report.js +53 -0
- package/dist/commands/session/report.js.map +1 -1
- package/dist/commands/ticket/delete.js +15 -7
- package/dist/commands/ticket/delete.js.map +1 -1
- package/dist/commands/ticket/move.js +21 -10
- package/dist/commands/ticket/move.js.map +1 -1
- package/dist/commands/ticket/update.js +18 -9
- package/dist/commands/ticket/update.js.map +1 -1
- package/dist/commands/update.js +12 -6
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/work/ship.js +39 -57
- package/dist/commands/work/ship.js.map +1 -1
- package/dist/commands/work/start.js +62 -77
- package/dist/commands/work/start.js.map +1 -1
- package/dist/lib/events/events.d.ts +2 -0
- package/dist/lib/execution/devcontainer.d.ts +1 -0
- package/dist/lib/execution/devcontainer.js +1 -0
- package/dist/lib/execution/devcontainer.js.map +1 -1
- package/dist/lib/execution/runners/docker-management.d.ts +22 -3
- package/dist/lib/execution/runners/docker-management.js +102 -14
- package/dist/lib/execution/runners/docker-management.js.map +1 -1
- package/dist/lib/execution/runners/prompt-builder.d.ts +12 -0
- package/dist/lib/execution/runners/prompt-builder.js +44 -0
- package/dist/lib/execution/runners/prompt-builder.js.map +1 -1
- package/dist/lib/orchestrate/actions.js +68 -1
- package/dist/lib/orchestrate/actions.js.map +1 -1
- package/dist/lib/orchestrate/engine.d.ts +19 -39
- package/dist/lib/orchestrate/engine.js +51 -215
- package/dist/lib/orchestrate/engine.js.map +1 -1
- package/dist/lib/orchestrate/poller.d.ts +4 -1
- package/dist/lib/orchestrate/poller.js +63 -13
- package/dist/lib/orchestrate/poller.js.map +1 -1
- package/dist/lib/orchestrate/presets.js +18 -3
- package/dist/lib/orchestrate/presets.js.map +1 -1
- package/dist/lib/orchestrate/simple-poller.js +33 -11
- package/dist/lib/orchestrate/simple-poller.js.map +1 -1
- package/dist/lib/orchestrate/types.d.ts +5 -13
- package/dist/lib/orchestrate/types.js +4 -2
- package/dist/lib/orchestrate/types.js.map +1 -1
- package/dist/lib/pmo/base-command.js +12 -2
- package/dist/lib/pmo/base-command.js.map +1 -1
- package/dist/lib/pmo/templates-builtin.d.ts +2 -0
- package/dist/lib/pmo/templates-builtin.js +13 -0
- package/dist/lib/pmo/templates-builtin.js.map +1 -1
- package/dist/lib/pr/index.d.ts +9 -0
- package/dist/lib/pr/index.js +22 -0
- package/dist/lib/pr/index.js.map +1 -1
- package/dist/lib/providers/linear-provider.d.ts +11 -12
- package/dist/lib/providers/linear-provider.js +150 -177
- package/dist/lib/providers/linear-provider.js.map +1 -1
- package/dist/lib/providers/resolver.d.ts +5 -5
- package/dist/lib/providers/resolver.js +25 -31
- package/dist/lib/providers/resolver.js.map +1 -1
- package/dist/lib/sync/engine.js +15 -6
- package/dist/lib/sync/engine.js.map +1 -1
- package/dist/lib/sync/reconciler.d.ts +11 -2
- package/dist/lib/sync/reconciler.js +30 -12
- package/dist/lib/sync/reconciler.js.map +1 -1
- package/dist/lib/update-check.d.ts +24 -0
- package/dist/lib/update-check.js +85 -0
- package/dist/lib/update-check.js.map +1 -1
- package/dist/lib/update-prompt.js +10 -5
- package/dist/lib/update-prompt.js.map +1 -1
- package/dist/lib/work-lifecycle/hooks/executor.js +2 -0
- package/dist/lib/work-lifecycle/hooks/executor.js.map +1 -1
- package/dist/lib/work-lifecycle/hooks/index.d.ts +5 -3
- package/dist/lib/work-lifecycle/hooks/index.js +3 -2
- package/dist/lib/work-lifecycle/hooks/index.js.map +1 -1
- package/dist/lib/work-lifecycle/hooks/manager.d.ts +93 -8
- package/dist/lib/work-lifecycle/hooks/manager.js +248 -20
- package/dist/lib/work-lifecycle/hooks/manager.js.map +1 -1
- package/dist/lib/work-lifecycle/hooks/storage.d.ts +1 -0
- package/dist/lib/work-lifecycle/hooks/storage.js +28 -6
- package/dist/lib/work-lifecycle/hooks/storage.js.map +1 -1
- package/dist/lib/work-lifecycle/hooks/types.d.ts +38 -1
- package/dist/lib/work-lifecycle/hooks/types.js +4 -0
- package/dist/lib/work-lifecycle/hooks/types.js.map +1 -1
- package/dist/lib/work-lifecycle/index.d.ts +2 -1
- package/dist/lib/work-lifecycle/index.js +1 -1
- package/dist/lib/work-lifecycle/index.js.map +1 -1
- package/dist/lib/work-lifecycle/settings.d.ts +42 -0
- package/dist/lib/work-lifecycle/settings.js +65 -0
- package/dist/lib/work-lifecycle/settings.js.map +1 -1
- package/dist/lib/work-lifecycle/transition.js +45 -31
- package/dist/lib/work-lifecycle/transition.js.map +1 -1
- package/oclif.manifest.json +818 -754
- package/package.json +1 -1
|
@@ -1,29 +1,61 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Linear Ticket Provider
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* Emits work:status_changed with source='linear' so the outbound sync
|
|
8
|
-
* handler skips Linear (avoiding double-write).
|
|
4
|
+
* All ticket operations go directly to Linear API.
|
|
5
|
+
* No local PMO mirroring — Linear is the source of truth.
|
|
9
6
|
*/
|
|
10
7
|
import { LinearClient } from '../linear/client.js';
|
|
11
|
-
import { LinearMapper } from '../linear/mapper.js';
|
|
12
8
|
import { getLinearApiKey, resolveLinearTeamKey } from '../linear/config.js';
|
|
13
9
|
import { findMatchingLinearState } from '../external-issues/outbound-sync.js';
|
|
14
|
-
import { listLinearIssues } from '../external-issues/linear.js';
|
|
15
10
|
import { PMO_PRIORITY_TO_LINEAR, LINEAR_PRIORITY_TO_PMO } from '../linear/types.js';
|
|
11
|
+
import { listLinearIssues } from '../external-issues/linear.js';
|
|
12
|
+
/**
|
|
13
|
+
* Convert a LinearIssue (from the client) to a PMO Ticket shape.
|
|
14
|
+
*/
|
|
15
|
+
function linearIssueToTicket(issue) {
|
|
16
|
+
return {
|
|
17
|
+
id: issue.identifier,
|
|
18
|
+
title: issue.title,
|
|
19
|
+
description: issue.description,
|
|
20
|
+
priority: LINEAR_PRIORITY_TO_PMO[issue.priority] || undefined,
|
|
21
|
+
category: undefined,
|
|
22
|
+
projectId: issue.team.key,
|
|
23
|
+
projectName: issue.project?.name ?? issue.team.name,
|
|
24
|
+
statusId: issue.state.name,
|
|
25
|
+
statusName: issue.state.name,
|
|
26
|
+
statusCategory: mapLinearStateType(issue.state.type),
|
|
27
|
+
owner: issue.assignee?.name,
|
|
28
|
+
assignee: issue.assignee?.name,
|
|
29
|
+
subtasks: [],
|
|
30
|
+
labels: issue.labels.map(l => l.name),
|
|
31
|
+
metadata: {
|
|
32
|
+
external_source: 'linear',
|
|
33
|
+
external_key: issue.identifier,
|
|
34
|
+
external_id: issue.id,
|
|
35
|
+
external_url: issue.url,
|
|
36
|
+
},
|
|
37
|
+
createdAt: new Date(issue.createdAt),
|
|
38
|
+
updatedAt: new Date(issue.updatedAt),
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Map Linear state type string to PMO state category.
|
|
43
|
+
*/
|
|
44
|
+
function mapLinearStateType(type) {
|
|
45
|
+
switch (type) {
|
|
46
|
+
case 'backlog': return 'backlog';
|
|
47
|
+
case 'unstarted': return 'unstarted';
|
|
48
|
+
case 'started': return 'started';
|
|
49
|
+
case 'completed': return 'completed';
|
|
50
|
+
case 'canceled': return 'canceled';
|
|
51
|
+
default: return undefined;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
16
54
|
export class LinearTicketProvider {
|
|
17
55
|
db;
|
|
18
|
-
storage;
|
|
19
|
-
projectId;
|
|
20
|
-
ticketStatusCategory;
|
|
21
56
|
name = 'linear';
|
|
22
|
-
constructor(db
|
|
57
|
+
constructor(db) {
|
|
23
58
|
this.db = db;
|
|
24
|
-
this.storage = storage;
|
|
25
|
-
this.projectId = projectId;
|
|
26
|
-
this.ticketStatusCategory = ticketStatusCategory;
|
|
27
59
|
}
|
|
28
60
|
getApiKeyOrFail() {
|
|
29
61
|
const apiKey = getLinearApiKey(this.db);
|
|
@@ -31,23 +63,42 @@ export class LinearTicketProvider {
|
|
|
31
63
|
throw new Error('Linear API key not configured');
|
|
32
64
|
return apiKey;
|
|
33
65
|
}
|
|
66
|
+
/**
|
|
67
|
+
* Resolve a ticket identifier (e.g. "PRLT-1231") to the Linear issue UUID.
|
|
68
|
+
* Also accepts a raw Linear UUID and returns it directly.
|
|
69
|
+
*/
|
|
70
|
+
async resolveIssueId(ticketId) {
|
|
71
|
+
const apiKey = this.getApiKeyOrFail();
|
|
72
|
+
const client = new LinearClient(apiKey);
|
|
73
|
+
// If it looks like a Linear identifier (e.g., PRLT-1231, ENG-123), look up by identifier
|
|
74
|
+
if (/^[A-Z]+-\d+$/i.test(ticketId)) {
|
|
75
|
+
const issue = await client.getIssueByIdentifier(ticketId);
|
|
76
|
+
if (issue)
|
|
77
|
+
return { issueId: issue.id, issue };
|
|
78
|
+
}
|
|
79
|
+
// It might be a raw UUID — try listIssues with limit 1 filtered by id
|
|
80
|
+
// For now, return null if not found by identifier
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
34
83
|
async moveTicket(ticketId, newState) {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
84
|
+
let apiKey;
|
|
85
|
+
try {
|
|
86
|
+
apiKey = this.getApiKeyOrFail();
|
|
87
|
+
}
|
|
88
|
+
catch {
|
|
38
89
|
return { success: false, provider: 'linear', error: 'Linear API key not configured' };
|
|
39
90
|
}
|
|
40
|
-
//
|
|
41
|
-
const
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
return { success: false, provider: 'linear', error: `No Linear mapping for ticket ${ticketId}` };
|
|
91
|
+
// Resolve the Linear issue
|
|
92
|
+
const resolved = await this.resolveIssueId(ticketId);
|
|
93
|
+
if (!resolved) {
|
|
94
|
+
return { success: false, provider: 'linear', error: `Linear issue not found for "${ticketId}"` };
|
|
45
95
|
}
|
|
46
|
-
// 3. Get Linear team's workflow states
|
|
47
96
|
const client = new LinearClient(apiKey);
|
|
97
|
+
const teamKey = resolved.issue.team.key;
|
|
98
|
+
// Get team and workflow states
|
|
48
99
|
let team;
|
|
49
100
|
try {
|
|
50
|
-
team = await client.getTeamByKey(
|
|
101
|
+
team = await client.getTeamByKey(teamKey);
|
|
51
102
|
}
|
|
52
103
|
catch (error) {
|
|
53
104
|
return {
|
|
@@ -57,7 +108,7 @@ export class LinearTicketProvider {
|
|
|
57
108
|
};
|
|
58
109
|
}
|
|
59
110
|
if (!team) {
|
|
60
|
-
return { success: false, provider: 'linear', error: `Linear team not found: ${
|
|
111
|
+
return { success: false, provider: 'linear', error: `Linear team not found: ${teamKey}` };
|
|
61
112
|
}
|
|
62
113
|
let states;
|
|
63
114
|
try {
|
|
@@ -70,8 +121,7 @@ export class LinearTicketProvider {
|
|
|
70
121
|
error: `Failed to list Linear states: ${error instanceof Error ? error.message : String(error)}`,
|
|
71
122
|
};
|
|
72
123
|
}
|
|
73
|
-
//
|
|
74
|
-
// Map PMO status category to Linear state type for category matching
|
|
124
|
+
// Find the matching Linear state for the target state name
|
|
75
125
|
const categoryType = mapPMOStateToLinearType(newState);
|
|
76
126
|
const matchingState = findMatchingLinearState(states, newState, categoryType);
|
|
77
127
|
if (!matchingState) {
|
|
@@ -81,9 +131,9 @@ export class LinearTicketProvider {
|
|
|
81
131
|
error: `No matching Linear state for "${newState}" (category: ${categoryType})`,
|
|
82
132
|
};
|
|
83
133
|
}
|
|
84
|
-
//
|
|
134
|
+
// Update the issue state on Linear
|
|
85
135
|
try {
|
|
86
|
-
await client.updateIssueState(
|
|
136
|
+
await client.updateIssueState(resolved.issueId, matchingState.id);
|
|
87
137
|
}
|
|
88
138
|
catch (error) {
|
|
89
139
|
return {
|
|
@@ -92,27 +142,13 @@ export class LinearTicketProvider {
|
|
|
92
142
|
error: `Failed to update Linear issue: ${error instanceof Error ? error.message : String(error)}`,
|
|
93
143
|
};
|
|
94
144
|
}
|
|
95
|
-
//
|
|
96
|
-
try {
|
|
97
|
-
await this.storage.moveTicket(this.projectId, ticketId, newState);
|
|
98
|
-
}
|
|
99
|
-
catch {
|
|
100
|
-
// Non-fatal: Linear is the source of truth, local PMO is best-effort
|
|
101
|
-
}
|
|
102
|
-
// 7. Post a comment about the status change
|
|
145
|
+
// Post a comment about the status change (non-fatal)
|
|
103
146
|
try {
|
|
104
|
-
await client.addComment(
|
|
147
|
+
await client.addComment(resolved.issueId, `Status updated to **${newState}** (via prlt)`);
|
|
105
148
|
}
|
|
106
149
|
catch {
|
|
107
150
|
// Non-fatal: comment is informational
|
|
108
151
|
}
|
|
109
|
-
// 8. Update sync timestamp
|
|
110
|
-
try {
|
|
111
|
-
mapper.updateSyncTimestamp(ticketId);
|
|
112
|
-
}
|
|
113
|
-
catch {
|
|
114
|
-
// Non-fatal
|
|
115
|
-
}
|
|
116
152
|
return { success: true, provider: 'linear' };
|
|
117
153
|
}
|
|
118
154
|
async deleteTicket(ticketId) {
|
|
@@ -123,40 +159,24 @@ export class LinearTicketProvider {
|
|
|
123
159
|
catch {
|
|
124
160
|
return { success: false, provider: 'linear', error: 'Linear API key not configured' };
|
|
125
161
|
}
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
if (mapping) {
|
|
130
|
-
// Archive the issue in Linear
|
|
131
|
-
const client = new LinearClient(apiKey);
|
|
132
|
-
try {
|
|
133
|
-
await client.archiveIssue(mapping.linearIssueId);
|
|
134
|
-
}
|
|
135
|
-
catch (error) {
|
|
136
|
-
return {
|
|
137
|
-
success: false,
|
|
138
|
-
provider: 'linear',
|
|
139
|
-
error: `Failed to archive Linear issue: ${error instanceof Error ? error.message : String(error)}`,
|
|
140
|
-
};
|
|
141
|
-
}
|
|
142
|
-
// Remove the mapping
|
|
143
|
-
try {
|
|
144
|
-
mapper.deleteMapping(ticketId);
|
|
145
|
-
}
|
|
146
|
-
catch {
|
|
147
|
-
// Non-fatal
|
|
148
|
-
}
|
|
162
|
+
const resolved = await this.resolveIssueId(ticketId);
|
|
163
|
+
if (!resolved) {
|
|
164
|
+
return { success: false, provider: 'linear', error: `Linear issue not found for "${ticketId}"` };
|
|
149
165
|
}
|
|
150
|
-
|
|
166
|
+
const client = new LinearClient(apiKey);
|
|
151
167
|
try {
|
|
152
|
-
await
|
|
168
|
+
await client.archiveIssue(resolved.issueId);
|
|
153
169
|
}
|
|
154
|
-
catch {
|
|
155
|
-
|
|
170
|
+
catch (error) {
|
|
171
|
+
return {
|
|
172
|
+
success: false,
|
|
173
|
+
provider: 'linear',
|
|
174
|
+
error: `Failed to archive Linear issue: ${error instanceof Error ? error.message : String(error)}`,
|
|
175
|
+
};
|
|
156
176
|
}
|
|
157
177
|
return { success: true, provider: 'linear' };
|
|
158
178
|
}
|
|
159
|
-
async listTickets(
|
|
179
|
+
async listTickets(_projectId, filter) {
|
|
160
180
|
let apiKey;
|
|
161
181
|
try {
|
|
162
182
|
apiKey = this.getApiKeyOrFail();
|
|
@@ -220,7 +240,7 @@ export class LinearTicketProvider {
|
|
|
220
240
|
};
|
|
221
241
|
}
|
|
222
242
|
}
|
|
223
|
-
async createTicket(
|
|
243
|
+
async createTicket(_projectId, input) {
|
|
224
244
|
let apiKey;
|
|
225
245
|
try {
|
|
226
246
|
apiKey = this.getApiKeyOrFail();
|
|
@@ -264,44 +284,9 @@ export class LinearTicketProvider {
|
|
|
264
284
|
priority: linearPriority,
|
|
265
285
|
labelIds,
|
|
266
286
|
});
|
|
267
|
-
//
|
|
268
|
-
const
|
|
269
|
-
|
|
270
|
-
'',
|
|
271
|
-
'---',
|
|
272
|
-
`_Created in Linear: [${issue.identifier}](${issue.url})_`,
|
|
273
|
-
].join('\n').trim();
|
|
274
|
-
const mirrorPriority = input.priority || LINEAR_PRIORITY_TO_PMO[issue.priority] || undefined;
|
|
275
|
-
const pmoTicket = await this.storage.createTicket(projectId, {
|
|
276
|
-
...input,
|
|
277
|
-
title: issue.title,
|
|
278
|
-
description: mirrorDescription,
|
|
279
|
-
priority: mirrorPriority,
|
|
280
|
-
metadata: {
|
|
281
|
-
...input.metadata,
|
|
282
|
-
'external_source': 'linear',
|
|
283
|
-
'external_id': issue.id,
|
|
284
|
-
'external_key': issue.identifier,
|
|
285
|
-
'external_url': issue.url,
|
|
286
|
-
'linear.issue_id': issue.id,
|
|
287
|
-
'linear.identifier': issue.identifier,
|
|
288
|
-
'linear.url': issue.url,
|
|
289
|
-
'linear.team': issue.team.key,
|
|
290
|
-
'linear.state': issue.state.name,
|
|
291
|
-
},
|
|
292
|
-
});
|
|
293
|
-
// Create mapping record for sync operations
|
|
294
|
-
const mapper = new LinearMapper(this.db);
|
|
295
|
-
mapper.createMapping({
|
|
296
|
-
pmoTicketId: pmoTicket.id,
|
|
297
|
-
linearIssueId: issue.id,
|
|
298
|
-
linearIdentifier: issue.identifier,
|
|
299
|
-
linearTeamKey: issue.team.key,
|
|
300
|
-
linearUrl: issue.url,
|
|
301
|
-
syncDirection: 'outbound',
|
|
302
|
-
createdAt: new Date(),
|
|
303
|
-
});
|
|
304
|
-
return { success: true, provider: 'linear', ticket: pmoTicket };
|
|
287
|
+
// Return ticket directly from Linear response — no local PMO mirror
|
|
288
|
+
const ticket = linearIssueToTicket(issue);
|
|
289
|
+
return { success: true, provider: 'linear', ticket };
|
|
305
290
|
}
|
|
306
291
|
catch (error) {
|
|
307
292
|
return {
|
|
@@ -312,10 +297,13 @@ export class LinearTicketProvider {
|
|
|
312
297
|
}
|
|
313
298
|
}
|
|
314
299
|
async getTicket(ticketId) {
|
|
315
|
-
//
|
|
316
|
-
// This avoids unnecessary API calls for reads
|
|
300
|
+
// Fetch directly from Linear API — no local PMO fallback
|
|
317
301
|
try {
|
|
318
|
-
const
|
|
302
|
+
const resolved = await this.resolveIssueId(ticketId);
|
|
303
|
+
if (!resolved) {
|
|
304
|
+
return { success: true, provider: 'linear', ticket: null };
|
|
305
|
+
}
|
|
306
|
+
const ticket = linearIssueToTicket(resolved.issue);
|
|
319
307
|
return { success: true, provider: 'linear', ticket };
|
|
320
308
|
}
|
|
321
309
|
catch (error) {
|
|
@@ -334,53 +322,51 @@ export class LinearTicketProvider {
|
|
|
334
322
|
catch {
|
|
335
323
|
return { success: false, provider: 'linear', error: 'Linear API key not configured' };
|
|
336
324
|
}
|
|
337
|
-
//
|
|
338
|
-
const
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
await client.updateIssue(mapping.linearIssueId, linearInput);
|
|
355
|
-
}
|
|
356
|
-
catch (error) {
|
|
357
|
-
return {
|
|
358
|
-
success: false,
|
|
359
|
-
provider: 'linear',
|
|
360
|
-
error: `Failed to update Linear issue: ${error instanceof Error ? error.message : String(error)}`,
|
|
361
|
-
};
|
|
362
|
-
}
|
|
363
|
-
}
|
|
364
|
-
// Update sync timestamp
|
|
325
|
+
// Resolve the Linear issue
|
|
326
|
+
const resolved = await this.resolveIssueId(ticketId);
|
|
327
|
+
if (!resolved) {
|
|
328
|
+
return { success: false, provider: 'linear', error: `Linear issue not found for "${ticketId}"` };
|
|
329
|
+
}
|
|
330
|
+
// Build Linear update payload from input fields
|
|
331
|
+
const linearInput = {};
|
|
332
|
+
if (input.title !== undefined)
|
|
333
|
+
linearInput.title = input.title;
|
|
334
|
+
if (input.description !== undefined)
|
|
335
|
+
linearInput.description = input.description ?? undefined;
|
|
336
|
+
if (input.priority !== undefined) {
|
|
337
|
+
linearInput.priority = input.priority ? PMO_PRIORITY_TO_LINEAR[input.priority] : undefined;
|
|
338
|
+
}
|
|
339
|
+
// Only call Linear API if there are Linear-relevant fields
|
|
340
|
+
if (Object.keys(linearInput).length > 0) {
|
|
341
|
+
const client = new LinearClient(apiKey);
|
|
365
342
|
try {
|
|
366
|
-
|
|
343
|
+
await client.updateIssue(resolved.issueId, linearInput);
|
|
367
344
|
}
|
|
368
|
-
catch {
|
|
369
|
-
|
|
345
|
+
catch (error) {
|
|
346
|
+
return {
|
|
347
|
+
success: false,
|
|
348
|
+
provider: 'linear',
|
|
349
|
+
error: `Failed to update Linear issue: ${error instanceof Error ? error.message : String(error)}`,
|
|
350
|
+
};
|
|
370
351
|
}
|
|
371
352
|
}
|
|
372
|
-
//
|
|
353
|
+
// Re-fetch the issue to return updated state
|
|
373
354
|
try {
|
|
374
|
-
const
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
return {
|
|
379
|
-
success: false,
|
|
380
|
-
provider: 'linear',
|
|
381
|
-
error: error instanceof Error ? error.message : String(error),
|
|
382
|
-
};
|
|
355
|
+
const refreshed = await this.resolveIssueId(ticketId);
|
|
356
|
+
if (refreshed) {
|
|
357
|
+
return { success: true, provider: 'linear', ticket: linearIssueToTicket(refreshed.issue) };
|
|
358
|
+
}
|
|
383
359
|
}
|
|
360
|
+
catch {
|
|
361
|
+
// Non-fatal: return success even if re-fetch fails
|
|
362
|
+
}
|
|
363
|
+
// Construct ticket from what we know
|
|
364
|
+
const ticket = linearIssueToTicket(resolved.issue);
|
|
365
|
+
if (input.title !== undefined)
|
|
366
|
+
ticket.title = input.title;
|
|
367
|
+
if (input.description !== undefined)
|
|
368
|
+
ticket.description = input.description ?? undefined;
|
|
369
|
+
return { success: true, provider: 'linear', ticket };
|
|
384
370
|
}
|
|
385
371
|
async assignTicket(ticketId, assignee) {
|
|
386
372
|
let apiKey;
|
|
@@ -390,31 +376,18 @@ export class LinearTicketProvider {
|
|
|
390
376
|
catch {
|
|
391
377
|
return { success: false, provider: 'linear', error: 'Linear API key not configured' };
|
|
392
378
|
}
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
if (mapping) {
|
|
397
|
-
const client = new LinearClient(apiKey);
|
|
398
|
-
try {
|
|
399
|
-
// Try to assign by email in Linear (best-effort — assignee may be a local name)
|
|
400
|
-
await client.assignIssue(mapping.linearIssueId, assignee);
|
|
401
|
-
}
|
|
402
|
-
catch {
|
|
403
|
-
// Non-fatal: assignee may not be a valid Linear email
|
|
404
|
-
}
|
|
379
|
+
const resolved = await this.resolveIssueId(ticketId);
|
|
380
|
+
if (!resolved) {
|
|
381
|
+
return { success: false, provider: 'linear', error: `Linear issue not found for "${ticketId}"` };
|
|
405
382
|
}
|
|
406
|
-
|
|
383
|
+
const client = new LinearClient(apiKey);
|
|
407
384
|
try {
|
|
408
|
-
await
|
|
409
|
-
return { success: true, provider: 'linear' };
|
|
385
|
+
await client.assignIssue(resolved.issueId, assignee);
|
|
410
386
|
}
|
|
411
|
-
catch
|
|
412
|
-
|
|
413
|
-
success: false,
|
|
414
|
-
provider: 'linear',
|
|
415
|
-
error: error instanceof Error ? error.message : String(error),
|
|
416
|
-
};
|
|
387
|
+
catch {
|
|
388
|
+
// Non-fatal: assignee may not be a valid Linear email
|
|
417
389
|
}
|
|
390
|
+
return { success: true, provider: 'linear' };
|
|
418
391
|
}
|
|
419
392
|
}
|
|
420
393
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linear-provider.js","sourceRoot":"","sources":["../../../src/lib/providers/linear-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC3E,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAA;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAC/D,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAcnF,MAAM,OAAO,oBAAoB;IAIrB;IACA;IACA;IACA;IAND,IAAI,GAAG,QAAiB,CAAA;IAEjC,YACU,EAAqB,EACrB,OAAwB,EACxB,SAAiB,EACjB,oBAAmC;QAHnC,OAAE,GAAF,EAAE,CAAmB;QACrB,YAAO,GAAP,OAAO,CAAiB;QACxB,cAAS,GAAT,SAAS,CAAQ;QACjB,yBAAoB,GAApB,oBAAoB,CAAe;IAC1C,CAAC;IAEI,eAAe;QACrB,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACvC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;QAC7D,OAAO,MAAM,CAAA;IACf,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,QAAgB,EAAE,QAAgB;QACjD,wBAAwB;QACxB,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACvC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAA;QACvF,CAAC;QAED,gDAAgD;QAChD,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACxC,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;QAC9C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,gCAAgC,QAAQ,EAAE,EAAE,CAAA;QAClG,CAAC;QAED,uCAAuC;QACvC,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAA;QAEvC,IAAI,IAAsD,CAAA;QAC1D,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;QACzD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,QAAQ;gBAClB,KAAK,EAAE,8BAA8B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;aAC9F,CAAA;QACH,CAAC;QAED,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,0BAA0B,OAAO,CAAC,aAAa,EAAE,EAAE,CAAA;QACzG,CAAC;QAED,IAAI,MAAyD,CAAA;QAC7D,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC3C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,QAAQ;gBAClB,KAAK,EAAE,iCAAiC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;aACjG,CAAA;QACH,CAAC;QAED,6DAA6D;QAC7D,qEAAqE;QACrE,MAAM,YAAY,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAA;QACtD,MAAM,aAAa,GAAG,uBAAuB,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAA;QAE7E,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,QAAQ;gBAClB,KAAK,EAAE,iCAAiC,QAAQ,gBAAgB,YAAY,GAAG;aAChF,CAAA;QACH,CAAC;QAED,sCAAsC;QACtC,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,aAAa,EAAE,aAAa,CAAC,EAAE,CAAC,CAAA;QACxE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,QAAQ;gBAClB,KAAK,EAAE,kCAAkC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;aAClG,CAAA;QACH,CAAC;QAED,8CAA8C;QAC9C,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;QACnE,CAAC;QAAC,MAAM,CAAC;YACP,qEAAqE;QACvE,CAAC;QAED,4CAA4C;QAC5C,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,UAAU,CACrB,OAAO,CAAC,aAAa,EACrB,uBAAuB,QAAQ,yCAAyC,CACzE,CAAA;QACH,CAAC;QAAC,MAAM,CAAC;YACP,sCAAsC;QACxC,CAAC;QAED,2BAA2B;QAC3B,IAAI,CAAC;YACH,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAA;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,YAAY;QACd,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAA;IAC9C,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,QAAgB;QACjC,IAAI,MAAc,CAAA;QAClB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAA;QACvF,CAAC;QAED,yBAAyB;QACzB,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACxC,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;QAE9C,IAAI,OAAO,EAAE,CAAC;YACZ,8BAA8B;YAC9B,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAA;YACvC,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;YAClD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,QAAQ,EAAE,QAAQ;oBAClB,KAAK,EAAE,mCAAmC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;iBACnG,CAAA;YACH,CAAC;YAED,qBAAqB;YACrB,IAAI,CAAC;gBACH,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;YAChC,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY;YACd,CAAC;QACH,CAAC;QAED,mCAAmC;QACnC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;QAC3C,CAAC;QAAC,MAAM,CAAC;YACP,wCAAwC;QAC1C,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAA;IAC9C,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,SAAkB,EAAE,MAAqB;QACzD,IAAI,MAAc,CAAA;QAClB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAA;QACpG,CAAC;QAED,MAAM,IAAI,GAAG,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAE1C,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,IAAI,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAA;YAE5F,IAAI,OAAO,GAAa,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBACjD,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW;gBAC/B,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,WAAW,EAAE,QAAQ,CAAC,WAAW,IAAI,SAAS;gBAC9C,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,SAAS;gBACxC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,SAAS;gBACxC,SAAS,EAAE,QAAQ,CAAC,UAAU;gBAC9B,WAAW,EAAE,QAAQ,CAAC,UAAU;gBAChC,QAAQ,EAAE,QAAQ,CAAC,MAAM;gBACzB,UAAU,EAAE,QAAQ,CAAC,MAAM;gBAC3B,KAAK,EAAE,QAAQ,CAAC,QAAQ,IAAI,SAAS;gBACrC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,SAAS;gBACxC,QAAQ,EAAE,EAAE;gBACZ,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,QAAQ,EAAE;oBACR,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI;oBACrC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW;oBACzC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU;oBACvC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG;iBAClC;gBACD,SAAS,EAAE,IAAI,IAAI,EAAE;gBACrB,SAAS,EAAE,IAAI,IAAI,EAAE;aACtB,CAAC,CAAC,CAAA;YAEH,4BAA4B;YAC5B,IAAI,MAAM,EAAE,QAAQ,EAAE,CAAC;gBACrB,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAA;YAC/D,CAAC;YACD,IAAI,MAAM,EAAE,MAAM,EAAE,CAAC;gBACnB,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,MAAM,CAAC,MAAM,CAAC,CAAA;YAC/D,CAAC;YACD,IAAI,MAAM,EAAE,QAAQ,EAAE,CAAC;gBACrB,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAA;YAC/D,CAAC;YACD,IAAI,MAAM,EAAE,MAAM,EAAE,CAAC;gBACnB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAA;gBACxC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAC3B,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;oBACpC,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CACnD,CAAA;YACH,CAAC;YACD,IAAI,MAAM,EAAE,KAAK,EAAE,CAAC;gBAClB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAA;gBACxC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,CAAC,CAAA;YAC9E,CAAC;YAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAA;QACvD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,QAAQ;gBAClB,OAAO,EAAE,EAAE;gBACX,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAA;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,SAAiB,EAAE,KAAwB;QAC5D,IAAI,MAAc,CAAA;QAClB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAA;QACvF,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAA;QACvC,MAAM,eAAe,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC,CAAA;QACvD,MAAM,OAAO,GAAG,oBAAoB,CAAC,IAAI,CAAC,EAAE,EAAE,eAAe,CAAC,CAAA;QAE9D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,sFAAsF,EAAE,CAAA;QAC9I,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;QAC/C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,gBAAgB,OAAO,cAAc,EAAE,CAAA;QAC7F,CAAC;QAED,IAAI,CAAC;YACH,6CAA6C;YAC7C,MAAM,cAAc,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,sBAAsB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;YAE1F,0CAA0C;YAC1C,IAAI,QAA8B,CAAA;YAClC,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5C,IAAI,CAAC;oBACH,MAAM,eAAe,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;oBACxD,QAAQ,GAAG,KAAK,CAAC,MAAM;yBACpB,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;yBACvF,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;oBACrC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;wBAAE,QAAQ,GAAG,SAAS,CAAA;gBACjD,CAAC;gBAAC,MAAM,CAAC;oBACP,6CAA6C;gBAC/C,CAAC;YACH,CAAC;YAED,6BAA6B;YAC7B,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC;gBACrC,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,QAAQ,EAAE,cAAc;gBACxB,QAAQ;aACT,CAAC,CAAA;YAEF,iCAAiC;YACjC,MAAM,iBAAiB,GAAG;gBACxB,KAAK,CAAC,WAAW,IAAI,EAAE;gBACvB,EAAE;gBACF,KAAK;gBACL,wBAAwB,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,GAAG,IAAI;aAC3D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;YAEnB,MAAM,cAAc,GAAG,KAAK,CAAC,QAAQ,IAAI,sBAAsB,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAA;YAE5F,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE;gBAC3D,GAAG,KAAK;gBACR,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,WAAW,EAAE,iBAAiB;gBAC9B,QAAQ,EAAE,cAAc;gBACxB,QAAQ,EAAE;oBACR,GAAG,KAAK,CAAC,QAAQ;oBACjB,iBAAiB,EAAE,QAAQ;oBAC3B,aAAa,EAAE,KAAK,CAAC,EAAE;oBACvB,cAAc,EAAE,KAAK,CAAC,UAAU;oBAChC,cAAc,EAAE,KAAK,CAAC,GAAG;oBACzB,iBAAiB,EAAE,KAAK,CAAC,EAAE;oBAC3B,mBAAmB,EAAE,KAAK,CAAC,UAAU;oBACrC,YAAY,EAAE,KAAK,CAAC,GAAG;oBACvB,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG;oBAC7B,cAAc,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI;iBACjC;aACF,CAAC,CAAA;YAEF,4CAA4C;YAC5C,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YACxC,MAAM,CAAC,aAAa,CAAC;gBACnB,WAAW,EAAE,SAAS,CAAC,EAAE;gBACzB,aAAa,EAAE,KAAK,CAAC,EAAE;gBACvB,gBAAgB,EAAE,KAAK,CAAC,UAAU;gBAClC,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG;gBAC7B,SAAS,EAAE,KAAK,CAAC,GAAG;gBACpB,aAAa,EAAE,UAAU;gBACzB,SAAS,EAAE,IAAI,IAAI,EAAE;aACtB,CAAC,CAAA;YAEF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,CAAA;QACjE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,QAAQ;gBAClB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAA;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,QAAgB;QAC9B,yDAAyD;QACzD,8CAA8C;QAC9C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;YACrD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,QAAQ;gBAClB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAA;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,QAAgB,EAAE,KAAwB;QAC3D,IAAI,MAAc,CAAA;QAClB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAA;QACvF,CAAC;QAED,6CAA6C;QAC7C,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACxC,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;QAE9C,IAAI,OAAO,EAAE,CAAC;YACZ,gDAAgD;YAChD,MAAM,WAAW,GAAgE,EAAE,CAAA;YACnF,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;gBAAE,WAAW,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;YAC9D,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS;gBAAE,WAAW,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,SAAS,CAAA;YAC7F,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACjC,WAAW,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,sBAAsB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;YAC5F,CAAC;YAED,2DAA2D;YAC3D,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxC,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAA;gBACvC,IAAI,CAAC;oBACH,MAAM,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,aAAa,EAAE,WAAW,CAAC,CAAA;gBAC9D,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,QAAQ,EAAE,QAAQ;wBAClB,KAAK,EAAE,kCAAkC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;qBAClG,CAAA;gBACH,CAAC;YACH,CAAC;YAED,wBAAwB;YACxB,IAAI,CAAC;gBACH,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAA;YACtC,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY;YACd,CAAC;QACH,CAAC;QAED,+BAA+B;QAC/B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAwB,CAAC,CAAA;YAClF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,QAAQ;gBAClB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAA;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,QAAgB,EAAE,QAAgB;QACnD,IAAI,MAAc,CAAA;QAClB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAA;QACvF,CAAC;QAED,yBAAyB;QACzB,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACxC,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;QAE9C,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAA;YACvC,IAAI,CAAC;gBACH,gFAAgF;gBAChF,MAAM,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAA;YAC3D,CAAC;YAAC,MAAM,CAAC;gBACP,sDAAsD;YACxD,CAAC;QACH,CAAC;QAED,0BAA0B;QAC1B,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAqB,CAAC,CAAA;YAC1E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAA;QAC9C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,QAAQ;gBAClB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAA;QACH,CAAC;IACH,CAAC;CACF;AAED;;;GAGG;AACH,SAAS,uBAAuB,CAAC,SAAiB;IAChD,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,EAAE,CAAA;IACrC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3F,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrF,OAAO,WAAW,CAAA;IACpB,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,OAAO,UAAU,CAAA;IACnB,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,OAAO,QAAQ,CAAA;IACjB,CAAC;IACD,qFAAqF;IACrF,OAAO,SAAS,CAAA;AAClB,CAAC"}
|
|
1
|
+
{"version":3,"file":"linear-provider.js","sourceRoot":"","sources":["../../../src/lib/providers/linear-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,16 +23,16 @@ import type { TicketProvider, ProviderStorage } from './types.js';
|
|
|
23
23
|
* Resolve the correct provider for a given ticket.
|
|
24
24
|
*
|
|
25
25
|
* Uses the ticket's metadata to determine the source of truth:
|
|
26
|
-
* - external_source = 'linear' + configured
|
|
26
|
+
* - external_source = 'linear' + configured → Linear
|
|
27
27
|
* - Otherwise → PMO
|
|
28
28
|
*
|
|
29
29
|
* The resolved provider is wrapped with EventEmittingProvider so that
|
|
30
30
|
* events are emitted at the adapter layer, not the storage layer.
|
|
31
31
|
*
|
|
32
|
-
* @param ticketId - The PMO
|
|
33
|
-
* @param projectId - The
|
|
34
|
-
* @param db - Database handle for config
|
|
35
|
-
* @param storage - Storage for fallback
|
|
32
|
+
* @param ticketId - The ticket ID (PMO TKT-xxx or external PRLT-xxx)
|
|
33
|
+
* @param projectId - The project ID
|
|
34
|
+
* @param db - Database handle for config lookups
|
|
35
|
+
* @param storage - Storage for PMO fallback
|
|
36
36
|
* @param metadata - Ticket metadata (contains external_source, etc.)
|
|
37
37
|
* @returns The appropriate TicketProvider for this ticket
|
|
38
38
|
*/
|
|
@@ -21,7 +21,6 @@ import { isLinearConfigured } from '../linear/config.js';
|
|
|
21
21
|
import { isClickUpConfigured } from '../clickup/config.js';
|
|
22
22
|
import { isGitHubConfigured } from '../github/config.js';
|
|
23
23
|
import { isJiraConfigured } from '../jira/config.js';
|
|
24
|
-
import { LinearMapper } from '../linear/mapper.js';
|
|
25
24
|
import { isTrelloConfigured } from '../trello/config.js';
|
|
26
25
|
import { TrelloMapper } from '../trello/mapper.js';
|
|
27
26
|
import { isAsanaConfigured } from '../asana/config.js';
|
|
@@ -95,46 +94,42 @@ function wrapWithEvents(provider, db, storage, projectId) {
|
|
|
95
94
|
const resolver = createDbStatusResolver(db, storage);
|
|
96
95
|
return new EventEmittingProvider(provider, resolver, projectId);
|
|
97
96
|
}
|
|
97
|
+
/**
|
|
98
|
+
* Wrap a provider with EventEmittingProvider using null status resolver.
|
|
99
|
+
* Used for external providers (Linear, etc.) where tickets don't exist
|
|
100
|
+
* in local PMO and status resolution would fail.
|
|
101
|
+
*/
|
|
102
|
+
function wrapWithEventsNoResolver(provider, projectId) {
|
|
103
|
+
return new EventEmittingProvider(provider, null, projectId);
|
|
104
|
+
}
|
|
98
105
|
/**
|
|
99
106
|
* Resolve the correct provider for a given ticket.
|
|
100
107
|
*
|
|
101
108
|
* Uses the ticket's metadata to determine the source of truth:
|
|
102
|
-
* - external_source = 'linear' + configured
|
|
109
|
+
* - external_source = 'linear' + configured → Linear
|
|
103
110
|
* - Otherwise → PMO
|
|
104
111
|
*
|
|
105
112
|
* The resolved provider is wrapped with EventEmittingProvider so that
|
|
106
113
|
* events are emitted at the adapter layer, not the storage layer.
|
|
107
114
|
*
|
|
108
|
-
* @param ticketId - The PMO
|
|
109
|
-
* @param projectId - The
|
|
110
|
-
* @param db - Database handle for config
|
|
111
|
-
* @param storage - Storage for fallback
|
|
115
|
+
* @param ticketId - The ticket ID (PMO TKT-xxx or external PRLT-xxx)
|
|
116
|
+
* @param projectId - The project ID
|
|
117
|
+
* @param db - Database handle for config lookups
|
|
118
|
+
* @param storage - Storage for PMO fallback
|
|
112
119
|
* @param metadata - Ticket metadata (contains external_source, etc.)
|
|
113
120
|
* @returns The appropriate TicketProvider for this ticket
|
|
114
121
|
*/
|
|
115
122
|
export function resolveTicketProvider(ticketId, projectId, db, storage, metadata) {
|
|
116
123
|
const externalSource = metadata?.external_source;
|
|
117
|
-
// Check Linear
|
|
124
|
+
// Check Linear — when configured, use Linear provider directly (no mapping lookup needed)
|
|
118
125
|
if (externalSource === 'linear' && isLinearConfigured(db)) {
|
|
119
|
-
const
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
if (mapping.syncDirection === 'outbound' || mapping.syncDirection === 'bidirectional') {
|
|
127
|
-
const inner = new LinearTicketProvider(db, storage, projectId, null);
|
|
128
|
-
return wrapWithEvents(inner, db, storage, projectId);
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
else if (metadata?.external_key || metadata?.external_id) {
|
|
132
|
-
// PRLT-1167: External-only ticket (no PMO mirror, no LinearMapper mapping).
|
|
133
|
-
// When metadata contains external_key/external_id, resolve to Linear provider
|
|
134
|
-
// so post-execution transitions write back to Linear directly.
|
|
135
|
-
const inner = new LinearTicketProvider(db, storage, projectId, null);
|
|
136
|
-
return wrapWithEvents(inner, db, storage, projectId);
|
|
137
|
-
}
|
|
126
|
+
const inner = new LinearTicketProvider(db);
|
|
127
|
+
return wrapWithEventsNoResolver(inner, projectId);
|
|
128
|
+
}
|
|
129
|
+
// Also resolve to Linear for tickets with external_key/external_id even without metadata.external_source
|
|
130
|
+
if (!externalSource && isLinearConfigured(db) && (metadata?.external_key || metadata?.external_id)) {
|
|
131
|
+
const inner = new LinearTicketProvider(db);
|
|
132
|
+
return wrapWithEventsNoResolver(inner, projectId);
|
|
138
133
|
}
|
|
139
134
|
// Check ClickUp
|
|
140
135
|
if (externalSource === 'clickup' && isClickUpConfigured(db)) {
|
|
@@ -155,7 +150,6 @@ export function resolveTicketProvider(ticketId, projectId, db, storage, metadata
|
|
|
155
150
|
return wrapWithEvents(inner, db, storage, projectId);
|
|
156
151
|
}
|
|
157
152
|
else if (metadata?.external_key || metadata?.external_id) {
|
|
158
|
-
// PRLT-1167: External-only ticket — resolve to Trello provider directly
|
|
159
153
|
const inner = new TrelloTicketProvider(db, storage, projectId, null);
|
|
160
154
|
return wrapWithEvents(inner, db, storage, projectId);
|
|
161
155
|
}
|
|
@@ -203,8 +197,8 @@ export function resolveProjectProvider(db, storage, projectId, source) {
|
|
|
203
197
|
return wrapWithEvents(inner, db, storage, projectId);
|
|
204
198
|
}
|
|
205
199
|
if (source === 'linear') {
|
|
206
|
-
const inner = new LinearTicketProvider(db
|
|
207
|
-
return
|
|
200
|
+
const inner = new LinearTicketProvider(db);
|
|
201
|
+
return wrapWithEventsNoResolver(inner, projectId);
|
|
208
202
|
}
|
|
209
203
|
if (source === 'clickup') {
|
|
210
204
|
const inner = new ClickUpTicketProvider(db, storage, projectId);
|
|
@@ -229,8 +223,8 @@ export function resolveProjectProvider(db, storage, projectId, source) {
|
|
|
229
223
|
// auto: use Linear when it's configured in the workspace
|
|
230
224
|
try {
|
|
231
225
|
if (isLinearConfigured(db)) {
|
|
232
|
-
const inner = new LinearTicketProvider(db
|
|
233
|
-
return
|
|
226
|
+
const inner = new LinearTicketProvider(db);
|
|
227
|
+
return wrapWithEventsNoResolver(inner, projectId);
|
|
234
228
|
}
|
|
235
229
|
}
|
|
236
230
|
catch {
|