@proletariat/cli 0.3.96 → 0.3.98
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/gc.d.ts +1 -0
- package/dist/commands/gc.js +31 -1
- package/dist/commands/gc.js.map +1 -1
- package/dist/commands/linear/connect.d.ts +5 -0
- package/dist/commands/linear/connect.js +84 -0
- package/dist/commands/linear/connect.js.map +1 -1
- package/dist/commands/orchestrate/index.js +18 -10
- package/dist/commands/orchestrate/index.js.map +1 -1
- package/dist/commands/qa/index.js +1 -1
- package/dist/commands/session/watch.d.ts +1 -0
- package/dist/commands/session/watch.js +46 -2
- package/dist/commands/session/watch.js.map +1 -1
- package/dist/commands/watch/index.d.ts +28 -0
- package/dist/commands/watch/index.js +172 -0
- package/dist/commands/watch/index.js.map +1 -0
- package/dist/commands/work/complete.d.ts +1 -0
- package/dist/commands/work/complete.js +38 -31
- package/dist/commands/work/complete.js.map +1 -1
- package/dist/commands/{ticket/index.d.ts → work/drop.d.ts} +5 -4
- package/dist/commands/work/drop.js +215 -0
- package/dist/commands/work/drop.js.map +1 -0
- package/dist/commands/work/linear.js +1 -1
- package/dist/commands/work/linear.js.map +1 -1
- package/dist/commands/work/ready.d.ts +1 -0
- package/dist/commands/work/ready.js +46 -30
- package/dist/commands/work/ready.js.map +1 -1
- package/dist/commands/work/ship.d.ts +1 -0
- package/dist/commands/work/ship.js +56 -40
- package/dist/commands/work/ship.js.map +1 -1
- package/dist/commands/work/start.d.ts +2 -0
- package/dist/commands/work/start.js +238 -83
- package/dist/commands/work/start.js.map +1 -1
- package/dist/commands/work/stop.d.ts +1 -0
- package/dist/commands/work/stop.js +40 -0
- package/dist/commands/work/stop.js.map +1 -1
- package/dist/lib/agents/commands.js +7 -5
- package/dist/lib/agents/commands.js.map +1 -1
- package/dist/lib/asana/client.d.ts +4 -1
- package/dist/lib/asana/client.js +15 -0
- package/dist/lib/asana/client.js.map +1 -1
- package/dist/lib/asana/index.d.ts +1 -1
- package/dist/lib/asana/types.d.ts +4 -0
- package/dist/lib/database/credential-store.js +1 -0
- package/dist/lib/database/credential-store.js.map +1 -1
- package/dist/lib/database/drizzle-schema.d.ts +17 -0
- package/dist/lib/database/drizzle-schema.js +1 -0
- package/dist/lib/database/drizzle-schema.js.map +1 -1
- package/dist/lib/database/migrations/0019_gc_artifact_cleanup.d.ts +9 -0
- package/dist/lib/database/migrations/0019_gc_artifact_cleanup.js +23 -0
- package/dist/lib/database/migrations/0019_gc_artifact_cleanup.js.map +1 -0
- package/dist/lib/database/migrations/0020_transition_map.d.ts +2 -0
- package/dist/lib/database/migrations/0020_transition_map.js +27 -0
- package/dist/lib/database/migrations/0020_transition_map.js.map +1 -0
- package/dist/lib/database/migrations/index.js +4 -0
- package/dist/lib/database/migrations/index.js.map +1 -1
- package/dist/lib/execution/config.d.ts +10 -0
- package/dist/lib/execution/config.js +24 -0
- package/dist/lib/execution/config.js.map +1 -1
- package/dist/lib/execution/preflight.d.ts +51 -0
- package/dist/lib/execution/preflight.js +278 -0
- package/dist/lib/execution/preflight.js.map +1 -0
- package/dist/lib/execution/runners/prompt-builder.d.ts +6 -0
- package/dist/lib/execution/runners/prompt-builder.js +38 -7
- package/dist/lib/execution/runners/prompt-builder.js.map +1 -1
- package/dist/lib/execution/session-utils.d.ts +23 -0
- package/dist/lib/execution/session-utils.js +69 -0
- package/dist/lib/execution/session-utils.js.map +1 -1
- package/dist/lib/execution/spawner.d.ts +11 -1
- package/dist/lib/execution/spawner.js +44 -16
- package/dist/lib/execution/spawner.js.map +1 -1
- package/dist/lib/execution/storage.d.ts +6 -0
- package/dist/lib/execution/storage.js +18 -0
- package/dist/lib/execution/storage.js.map +1 -1
- package/dist/lib/execution/ticket-refs.d.ts +71 -0
- package/dist/lib/execution/ticket-refs.js +125 -0
- package/dist/lib/execution/ticket-refs.js.map +1 -0
- package/dist/lib/execution/types.d.ts +7 -2
- package/dist/lib/execution/types.js +5 -3
- package/dist/lib/execution/types.js.map +1 -1
- package/dist/lib/external-issues/index.d.ts +1 -0
- package/dist/lib/external-issues/index.js +2 -0
- package/dist/lib/external-issues/index.js.map +1 -1
- package/dist/lib/external-issues/linear.js +1 -1
- package/dist/lib/external-issues/linear.js.map +1 -1
- package/dist/lib/external-issues/ticket-builder.d.ts +21 -0
- package/dist/lib/external-issues/ticket-builder.js +43 -0
- package/dist/lib/external-issues/ticket-builder.js.map +1 -0
- package/dist/lib/external-issues/work-start.js +1 -1
- package/dist/lib/external-issues/work-start.js.map +1 -1
- package/dist/lib/gc/index.d.ts +67 -6
- package/dist/lib/gc/index.js +293 -15
- package/dist/lib/gc/index.js.map +1 -1
- package/dist/lib/github/client.d.ts +84 -0
- package/dist/lib/github/client.js +123 -0
- package/dist/lib/github/client.js.map +1 -0
- package/dist/lib/github/config.d.ts +42 -0
- package/dist/lib/github/config.js +115 -0
- package/dist/lib/github/config.js.map +1 -0
- package/dist/lib/github/types.d.ts +71 -0
- package/dist/lib/github/types.js +50 -0
- package/dist/lib/github/types.js.map +1 -0
- package/dist/lib/jira/client.d.ts +113 -0
- package/dist/lib/jira/client.js +208 -0
- package/dist/lib/jira/client.js.map +1 -0
- package/dist/lib/jira/config.d.ts +9 -0
- package/dist/lib/jira/config.js +30 -0
- package/dist/lib/jira/config.js.map +1 -1
- package/dist/lib/jira/index.d.ts +6 -2
- package/dist/lib/jira/index.js +4 -2
- package/dist/lib/jira/index.js.map +1 -1
- package/dist/lib/jira/types.d.ts +118 -0
- package/dist/lib/jira/types.js +45 -0
- package/dist/lib/jira/types.js.map +1 -0
- package/dist/lib/linear/config.d.ts +10 -0
- package/dist/lib/linear/config.js +33 -0
- package/dist/lib/linear/config.js.map +1 -1
- package/dist/lib/mcp/tools/index.d.ts +0 -2
- package/dist/lib/mcp/tools/index.js +0 -2
- package/dist/lib/mcp/tools/index.js.map +1 -1
- package/dist/lib/orchestrate/index.d.ts +2 -0
- package/dist/lib/orchestrate/index.js +1 -0
- package/dist/lib/orchestrate/index.js.map +1 -1
- package/dist/lib/orchestrate/simple-poller.d.ts +57 -0
- package/dist/lib/orchestrate/simple-poller.js +324 -0
- package/dist/lib/orchestrate/simple-poller.js.map +1 -0
- package/dist/lib/pmo/storage/index.js +16 -5
- package/dist/lib/pmo/storage/index.js.map +1 -1
- package/dist/lib/prompt-json.d.ts +31 -0
- package/dist/lib/prompt-json.js.map +1 -1
- package/dist/lib/providers/asana-provider.d.ts +27 -0
- package/dist/lib/providers/asana-provider.js +426 -0
- package/dist/lib/providers/asana-provider.js.map +1 -0
- package/dist/lib/providers/auto-mapper.d.ts +45 -0
- package/dist/lib/providers/auto-mapper.js +138 -0
- package/dist/lib/providers/auto-mapper.js.map +1 -0
- package/dist/lib/providers/github-provider.d.ts +34 -0
- package/dist/lib/providers/github-provider.js +418 -0
- package/dist/lib/providers/github-provider.js.map +1 -0
- package/dist/lib/providers/index.d.ts +3 -0
- package/dist/lib/providers/index.js +3 -0
- package/dist/lib/providers/index.js.map +1 -1
- package/dist/lib/providers/jira-provider.d.ts +31 -0
- package/dist/lib/providers/jira-provider.js +383 -0
- package/dist/lib/providers/jira-provider.js.map +1 -0
- package/dist/lib/providers/linear-provider.js +6 -7
- package/dist/lib/providers/linear-provider.js.map +1 -1
- package/dist/lib/providers/resolver.js +54 -0
- package/dist/lib/providers/resolver.js.map +1 -1
- package/dist/lib/providers/state-intents.d.ts +20 -0
- package/dist/lib/providers/state-intents.js +61 -7
- package/dist/lib/providers/state-intents.js.map +1 -1
- package/dist/lib/providers/state-resolution.d.ts +15 -11
- package/dist/lib/providers/state-resolution.js +54 -48
- package/dist/lib/providers/state-resolution.js.map +1 -1
- package/dist/lib/providers/transition-map.d.ts +59 -0
- package/dist/lib/providers/transition-map.js +113 -0
- package/dist/lib/providers/transition-map.js.map +1 -0
- package/dist/lib/providers/types.d.ts +1 -1
- package/dist/lib/session/index.d.ts +3 -1
- package/dist/lib/session/index.js +3 -1
- package/dist/lib/session/index.js.map +1 -1
- package/dist/lib/session/tmux-watchdog.d.ts +157 -0
- package/dist/lib/session/tmux-watchdog.js +424 -0
- package/dist/lib/session/tmux-watchdog.js.map +1 -0
- package/dist/lib/session/watcher.d.ts +22 -4
- package/dist/lib/session/watcher.js +66 -8
- package/dist/lib/session/watcher.js.map +1 -1
- package/dist/lib/work-lifecycle/post-execution.js +26 -1
- package/dist/lib/work-lifecycle/post-execution.js.map +1 -1
- package/dist/lib/work-lifecycle/transition.d.ts +73 -0
- package/dist/lib/work-lifecycle/transition.js +138 -0
- package/dist/lib/work-lifecycle/transition.js.map +1 -0
- package/dist/lib/work-source/config.d.ts +1 -1
- package/dist/lib/work-source/config.js +11 -1
- package/dist/lib/work-source/config.js.map +1 -1
- package/oclif.manifest.json +936 -1628
- package/package.json +1 -1
- package/dist/commands/ticket/create.d.ts +0 -44
- package/dist/commands/ticket/create.js +0 -760
- package/dist/commands/ticket/create.js.map +0 -1
- package/dist/commands/ticket/delete.d.ts +0 -17
- package/dist/commands/ticket/delete.js +0 -204
- package/dist/commands/ticket/delete.js.map +0 -1
- package/dist/commands/ticket/edit.d.ts +0 -28
- package/dist/commands/ticket/edit.js +0 -402
- package/dist/commands/ticket/edit.js.map +0 -1
- package/dist/commands/ticket/index.js +0 -74
- package/dist/commands/ticket/index.js.map +0 -1
- package/dist/commands/ticket/list.d.ts +0 -33
- package/dist/commands/ticket/list.js +0 -519
- package/dist/commands/ticket/list.js.map +0 -1
- package/dist/commands/ticket/move.d.ts +0 -27
- package/dist/commands/ticket/move.js +0 -413
- package/dist/commands/ticket/move.js.map +0 -1
- package/dist/commands/ticket/show.d.ts +0 -14
- package/dist/commands/ticket/show.js +0 -110
- package/dist/commands/ticket/show.js.map +0 -1
- package/dist/commands/ticket/update.d.ts +0 -28
- package/dist/commands/ticket/update.js +0 -458
- package/dist/commands/ticket/update.js.map +0 -1
- package/dist/lib/mcp/tools/action.d.ts +0 -6
- package/dist/lib/mcp/tools/action.js +0 -123
- package/dist/lib/mcp/tools/action.js.map +0 -1
- package/dist/lib/mcp/tools/ticket.d.ts +0 -6
- package/dist/lib/mcp/tools/ticket.js +0 -464
- package/dist/lib/mcp/tools/ticket.js.map +0 -1
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TicketRefStore
|
|
3
|
+
*
|
|
4
|
+
* Lightweight runtime ticket cache backed by the ticket_refs table.
|
|
5
|
+
* Part of PMO removal: replaces the dependency on pmo_tickets for
|
|
6
|
+
* agent_work and other runtime operations, storing just enough
|
|
7
|
+
* ticket metadata for display and lookup.
|
|
8
|
+
*/
|
|
9
|
+
import type Database from 'better-sqlite3';
|
|
10
|
+
import { type DatabaseDriver } from '../database/driver.js';
|
|
11
|
+
export interface TicketRef {
|
|
12
|
+
id: string;
|
|
13
|
+
provider: string;
|
|
14
|
+
externalId: string | null;
|
|
15
|
+
externalKey: string | null;
|
|
16
|
+
externalUrl: string | null;
|
|
17
|
+
title: string;
|
|
18
|
+
description: string | null;
|
|
19
|
+
status: string | null;
|
|
20
|
+
priority: string | null;
|
|
21
|
+
category: string | null;
|
|
22
|
+
assignee: string | null;
|
|
23
|
+
projectId: string | null;
|
|
24
|
+
cachedAt: Date;
|
|
25
|
+
updatedAt: Date;
|
|
26
|
+
}
|
|
27
|
+
export interface UpsertTicketRefInput {
|
|
28
|
+
id: string;
|
|
29
|
+
provider?: string;
|
|
30
|
+
externalId?: string | null;
|
|
31
|
+
externalKey?: string | null;
|
|
32
|
+
externalUrl?: string | null;
|
|
33
|
+
title: string;
|
|
34
|
+
description?: string | null;
|
|
35
|
+
status?: string | null;
|
|
36
|
+
priority?: string | null;
|
|
37
|
+
category?: string | null;
|
|
38
|
+
assignee?: string | null;
|
|
39
|
+
projectId?: string | null;
|
|
40
|
+
}
|
|
41
|
+
export declare class TicketRefStore {
|
|
42
|
+
private driver;
|
|
43
|
+
constructor(dbOrDriver: DatabaseDriver | Database.Database);
|
|
44
|
+
/**
|
|
45
|
+
* Get a ticket ref by its primary ID (e.g. PRLT-1065, TKT-123).
|
|
46
|
+
*/
|
|
47
|
+
get(id: string): TicketRef | null;
|
|
48
|
+
/**
|
|
49
|
+
* Get a ticket ref by provider and external ID.
|
|
50
|
+
*/
|
|
51
|
+
getByExternalId(provider: string, externalId: string): TicketRef | null;
|
|
52
|
+
/**
|
|
53
|
+
* Get a ticket ref by provider and external key (e.g. PRLT-1065).
|
|
54
|
+
*/
|
|
55
|
+
getByExternalKey(provider: string, externalKey: string): TicketRef | null;
|
|
56
|
+
/**
|
|
57
|
+
* Upsert a ticket ref. Inserts or updates on conflict (by primary key).
|
|
58
|
+
*/
|
|
59
|
+
upsert(input: UpsertTicketRefInput): TicketRef;
|
|
60
|
+
/**
|
|
61
|
+
* List all ticket refs, optionally filtered by provider.
|
|
62
|
+
*/
|
|
63
|
+
list(filter?: {
|
|
64
|
+
provider?: string;
|
|
65
|
+
projectId?: string;
|
|
66
|
+
}): TicketRef[];
|
|
67
|
+
/**
|
|
68
|
+
* Delete a ticket ref by ID.
|
|
69
|
+
*/
|
|
70
|
+
delete(id: string): void;
|
|
71
|
+
}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TicketRefStore
|
|
3
|
+
*
|
|
4
|
+
* Lightweight runtime ticket cache backed by the ticket_refs table.
|
|
5
|
+
* Part of PMO removal: replaces the dependency on pmo_tickets for
|
|
6
|
+
* agent_work and other runtime operations, storing just enough
|
|
7
|
+
* ticket metadata for display and lookup.
|
|
8
|
+
*/
|
|
9
|
+
import { PMO_TABLES } from '../pmo/schema.js';
|
|
10
|
+
import { wrapDatabase } from '../database/driver.js';
|
|
11
|
+
const T = PMO_TABLES;
|
|
12
|
+
function rowToTicketRef(row) {
|
|
13
|
+
return {
|
|
14
|
+
id: row.id,
|
|
15
|
+
provider: row.provider,
|
|
16
|
+
externalId: row.external_id,
|
|
17
|
+
externalKey: row.external_key,
|
|
18
|
+
externalUrl: row.external_url,
|
|
19
|
+
title: row.title,
|
|
20
|
+
description: row.description,
|
|
21
|
+
status: row.status,
|
|
22
|
+
priority: row.priority,
|
|
23
|
+
category: row.category,
|
|
24
|
+
assignee: row.assignee,
|
|
25
|
+
projectId: row.project_id,
|
|
26
|
+
cachedAt: new Date(row.cached_at),
|
|
27
|
+
updatedAt: new Date(row.updated_at),
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
// =============================================================================
|
|
31
|
+
// Driver Conversion
|
|
32
|
+
// =============================================================================
|
|
33
|
+
function toDriver(dbOrDriver) {
|
|
34
|
+
if ('prepare' in dbOrDriver && 'pragma' in dbOrDriver && !('raw' in dbOrDriver)) {
|
|
35
|
+
return wrapDatabase(dbOrDriver);
|
|
36
|
+
}
|
|
37
|
+
return dbOrDriver;
|
|
38
|
+
}
|
|
39
|
+
// =============================================================================
|
|
40
|
+
// TicketRefStore
|
|
41
|
+
// =============================================================================
|
|
42
|
+
export class TicketRefStore {
|
|
43
|
+
driver;
|
|
44
|
+
constructor(dbOrDriver) {
|
|
45
|
+
this.driver = toDriver(dbOrDriver);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Get a ticket ref by its primary ID (e.g. PRLT-1065, TKT-123).
|
|
49
|
+
*/
|
|
50
|
+
get(id) {
|
|
51
|
+
const row = this.driver
|
|
52
|
+
.prepare(`SELECT * FROM ${T.ticket_refs} WHERE id = ?`)
|
|
53
|
+
.get(id);
|
|
54
|
+
return row ? rowToTicketRef(row) : null;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Get a ticket ref by provider and external ID.
|
|
58
|
+
*/
|
|
59
|
+
getByExternalId(provider, externalId) {
|
|
60
|
+
const row = this.driver
|
|
61
|
+
.prepare(`SELECT * FROM ${T.ticket_refs} WHERE provider = ? AND external_id = ?`)
|
|
62
|
+
.get(provider, externalId);
|
|
63
|
+
return row ? rowToTicketRef(row) : null;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Get a ticket ref by provider and external key (e.g. PRLT-1065).
|
|
67
|
+
*/
|
|
68
|
+
getByExternalKey(provider, externalKey) {
|
|
69
|
+
const row = this.driver
|
|
70
|
+
.prepare(`SELECT * FROM ${T.ticket_refs} WHERE provider = ? AND external_key = ?`)
|
|
71
|
+
.get(provider, externalKey);
|
|
72
|
+
return row ? rowToTicketRef(row) : null;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Upsert a ticket ref. Inserts or updates on conflict (by primary key).
|
|
76
|
+
*/
|
|
77
|
+
upsert(input) {
|
|
78
|
+
this.driver.prepare(`
|
|
79
|
+
INSERT INTO ${T.ticket_refs} (
|
|
80
|
+
id, provider, external_id, external_key, external_url,
|
|
81
|
+
title, description, status, priority, category, assignee, project_id,
|
|
82
|
+
cached_at, updated_at
|
|
83
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP)
|
|
84
|
+
ON CONFLICT(id) DO UPDATE SET
|
|
85
|
+
provider = COALESCE(excluded.provider, ${T.ticket_refs}.provider),
|
|
86
|
+
external_id = COALESCE(excluded.external_id, ${T.ticket_refs}.external_id),
|
|
87
|
+
external_key = COALESCE(excluded.external_key, ${T.ticket_refs}.external_key),
|
|
88
|
+
external_url = COALESCE(excluded.external_url, ${T.ticket_refs}.external_url),
|
|
89
|
+
title = excluded.title,
|
|
90
|
+
description = COALESCE(excluded.description, ${T.ticket_refs}.description),
|
|
91
|
+
status = COALESCE(excluded.status, ${T.ticket_refs}.status),
|
|
92
|
+
priority = COALESCE(excluded.priority, ${T.ticket_refs}.priority),
|
|
93
|
+
category = COALESCE(excluded.category, ${T.ticket_refs}.category),
|
|
94
|
+
assignee = COALESCE(excluded.assignee, ${T.ticket_refs}.assignee),
|
|
95
|
+
project_id = COALESCE(excluded.project_id, ${T.ticket_refs}.project_id),
|
|
96
|
+
updated_at = CURRENT_TIMESTAMP
|
|
97
|
+
`).run(input.id, input.provider ?? 'pmo', input.externalId ?? null, input.externalKey ?? null, input.externalUrl ?? null, input.title, input.description ?? null, input.status ?? null, input.priority ?? null, input.category ?? null, input.assignee ?? null, input.projectId ?? null);
|
|
98
|
+
return this.get(input.id);
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* List all ticket refs, optionally filtered by provider.
|
|
102
|
+
*/
|
|
103
|
+
list(filter) {
|
|
104
|
+
let query = `SELECT * FROM ${T.ticket_refs} WHERE 1=1`;
|
|
105
|
+
const params = [];
|
|
106
|
+
if (filter?.provider) {
|
|
107
|
+
query += ` AND provider = ?`;
|
|
108
|
+
params.push(filter.provider);
|
|
109
|
+
}
|
|
110
|
+
if (filter?.projectId) {
|
|
111
|
+
query += ` AND project_id = ?`;
|
|
112
|
+
params.push(filter.projectId);
|
|
113
|
+
}
|
|
114
|
+
query += ` ORDER BY updated_at DESC`;
|
|
115
|
+
const rows = this.driver.prepare(query).all(...params);
|
|
116
|
+
return rows.map(rowToTicketRef);
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Delete a ticket ref by ID.
|
|
120
|
+
*/
|
|
121
|
+
delete(id) {
|
|
122
|
+
this.driver.prepare(`DELETE FROM ${T.ticket_refs} WHERE id = ?`).run(id);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=ticket-refs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ticket-refs.js","sourceRoot":"","sources":["../../../src/lib/execution/ticket-refs.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAuB,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEzE,MAAM,CAAC,GAAG,UAAU,CAAA;AA2DpB,SAAS,cAAc,CAAC,GAAiB;IACvC,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,UAAU,EAAE,GAAG,CAAC,WAAW;QAC3B,WAAW,EAAE,GAAG,CAAC,YAAY;QAC7B,WAAW,EAAE,GAAG,CAAC,YAAY;QAC7B,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,QAAQ,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;QACjC,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;KACpC,CAAA;AACH,CAAC;AAED,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAEhF,SAAS,QAAQ,CAAC,UAA8C;IAC9D,IAAI,SAAS,IAAI,UAAU,IAAI,QAAQ,IAAI,UAAU,IAAI,CAAC,CAAC,KAAK,IAAI,UAAU,CAAC,EAAE,CAAC;QAChF,OAAO,YAAY,CAAC,UAA+B,CAAC,CAAA;IACtD,CAAC;IACD,OAAO,UAA4B,CAAA;AACrC,CAAC;AAED,gFAAgF;AAChF,iBAAiB;AACjB,gFAAgF;AAEhF,MAAM,OAAO,cAAc;IACjB,MAAM,CAAgB;IAE9B,YAAY,UAA8C;QACxD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAA;IACpC,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,EAAU;QACZ,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM;aACpB,OAAO,CAAe,iBAAiB,CAAC,CAAC,WAAW,eAAe,CAAC;aACpE,GAAG,CAAC,EAAE,CAAC,CAAA;QACV,OAAO,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACzC,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,QAAgB,EAAE,UAAkB;QAClD,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM;aACpB,OAAO,CAAe,iBAAiB,CAAC,CAAC,WAAW,yCAAyC,CAAC;aAC9F,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;QAC5B,OAAO,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACzC,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,QAAgB,EAAE,WAAmB;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM;aACpB,OAAO,CAAe,iBAAiB,CAAC,CAAC,WAAW,0CAA0C,CAAC;aAC/F,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;QAC7B,OAAO,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACzC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAA2B;QAChC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;oBACJ,CAAC,CAAC,WAAW;;;;;;iDAMgB,CAAC,CAAC,WAAW;uDACP,CAAC,CAAC,WAAW;yDACX,CAAC,CAAC,WAAW;yDACb,CAAC,CAAC,WAAW;;uDAEf,CAAC,CAAC,WAAW;6CACvB,CAAC,CAAC,WAAW;iDACT,CAAC,CAAC,WAAW;iDACb,CAAC,CAAC,WAAW;iDACb,CAAC,CAAC,WAAW;qDACT,CAAC,CAAC,WAAW;;KAE7D,CAAC,CAAC,GAAG,CACJ,KAAK,CAAC,EAAE,EACR,KAAK,CAAC,QAAQ,IAAI,KAAK,EACvB,KAAK,CAAC,UAAU,IAAI,IAAI,EACxB,KAAK,CAAC,WAAW,IAAI,IAAI,EACzB,KAAK,CAAC,WAAW,IAAI,IAAI,EACzB,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,WAAW,IAAI,IAAI,EACzB,KAAK,CAAC,MAAM,IAAI,IAAI,EACpB,KAAK,CAAC,QAAQ,IAAI,IAAI,EACtB,KAAK,CAAC,QAAQ,IAAI,IAAI,EACtB,KAAK,CAAC,QAAQ,IAAI,IAAI,EACtB,KAAK,CAAC,SAAS,IAAI,IAAI,CACxB,CAAA;QAED,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAE,CAAA;IAC5B,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,MAAkD;QACrD,IAAI,KAAK,GAAG,iBAAiB,CAAC,CAAC,WAAW,YAAY,CAAA;QACtD,MAAM,MAAM,GAAa,EAAE,CAAA;QAE3B,IAAI,MAAM,EAAE,QAAQ,EAAE,CAAC;YACrB,KAAK,IAAI,mBAAmB,CAAA;YAC5B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QAC9B,CAAC;QACD,IAAI,MAAM,EAAE,SAAS,EAAE,CAAC;YACtB,KAAK,IAAI,qBAAqB,CAAA;YAC9B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QAC/B,CAAC;QAED,KAAK,IAAI,2BAA2B,CAAA;QAEpC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAe,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAA;QACpE,OAAO,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;IACjC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,EAAU;QACf,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,WAAW,eAAe,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAC1E,CAAC;CACF"}
|
|
@@ -114,6 +114,7 @@ export interface WorkspaceManifest {
|
|
|
114
114
|
}
|
|
115
115
|
export interface ExecutionContext {
|
|
116
116
|
ticketId: string;
|
|
117
|
+
/** @deprecated PRLT-1166: ticketId now stores the external provider key (e.g. PRLT-1065) directly. This field is kept for backwards compatibility but should not be used for new code. */
|
|
117
118
|
externalTicketId?: string;
|
|
118
119
|
ticketTitle: string;
|
|
119
120
|
ticketDescription?: string;
|
|
@@ -133,6 +134,7 @@ export interface ExecutionContext {
|
|
|
133
134
|
repoWorktrees?: string[];
|
|
134
135
|
workspaceRepos?: WorkspaceRepo[];
|
|
135
136
|
createPR?: boolean;
|
|
137
|
+
verifyCi?: boolean;
|
|
136
138
|
reviewGate?: 'required' | 'auto' | 'post';
|
|
137
139
|
actionId?: string;
|
|
138
140
|
actionName?: string;
|
|
@@ -185,6 +187,7 @@ export interface ExecutionConfig {
|
|
|
185
187
|
permissionMode: PermissionMode;
|
|
186
188
|
authMethod?: AuthMethod;
|
|
187
189
|
createPrDefault?: boolean;
|
|
190
|
+
verifyCiDefault?: boolean;
|
|
188
191
|
tmux: {
|
|
189
192
|
session: string;
|
|
190
193
|
layout: 'split' | 'window';
|
|
@@ -232,8 +235,10 @@ export interface ExecutionConfig {
|
|
|
232
235
|
}
|
|
233
236
|
/**
|
|
234
237
|
* Extract ticket ID from a tmux session name.
|
|
235
|
-
* Session names like: prlt-TKT-347-implement
|
|
236
|
-
* Returns the ticket ID (e.g., "TKT-347") or undefined if not found.
|
|
238
|
+
* Session names like: prlt-TKT-347-implement, TKT-347-implement, or PRLT-1065-implement
|
|
239
|
+
* Returns the ticket ID (e.g., "TKT-347" or "PRLT-1065") or undefined if not found.
|
|
240
|
+
*
|
|
241
|
+
* Supports both internal PMO IDs (TKT-xxx) and external provider IDs (PRLT-xxx, PROJ-xxx, etc.).
|
|
237
242
|
*/
|
|
238
243
|
export declare function extractTicketFromSession(sessionName: string | null | undefined): string | undefined;
|
|
239
244
|
export declare const DEFAULT_EXECUTION_CONFIG: ExecutionConfig;
|
|
@@ -127,14 +127,16 @@ export function generateBranchName(ticketId, ticketTitle, category) {
|
|
|
127
127
|
}
|
|
128
128
|
/**
|
|
129
129
|
* Extract ticket ID from a tmux session name.
|
|
130
|
-
* Session names like: prlt-TKT-347-implement
|
|
131
|
-
* Returns the ticket ID (e.g., "TKT-347") or undefined if not found.
|
|
130
|
+
* Session names like: prlt-TKT-347-implement, TKT-347-implement, or PRLT-1065-implement
|
|
131
|
+
* Returns the ticket ID (e.g., "TKT-347" or "PRLT-1065") or undefined if not found.
|
|
132
|
+
*
|
|
133
|
+
* Supports both internal PMO IDs (TKT-xxx) and external provider IDs (PRLT-xxx, PROJ-xxx, etc.).
|
|
132
134
|
*/
|
|
133
135
|
export function extractTicketFromSession(sessionName) {
|
|
134
136
|
if (!sessionName)
|
|
135
137
|
return undefined;
|
|
136
138
|
const name = sessionName.replace(/^prlt-/, '');
|
|
137
|
-
const match = name.match(/^(
|
|
139
|
+
const match = name.match(/^([A-Z]+-\d+)/);
|
|
138
140
|
return match ? match[1] : undefined;
|
|
139
141
|
}
|
|
140
142
|
export const DEFAULT_EXECUTION_CONFIG = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lib/execution/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAoCH;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAyB;IAC5D,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,OAAO,CAAA;IAChC,OAAO,GAAG,CAAA;AACZ,CAAC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lib/execution/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,4 +14,5 @@ export { normalizeLinearIssue, normalizeLinearIssueToEnvelope, buildLinearTicket
|
|
|
14
14
|
export { normalizeAsanaTask, normalizeAsanaTaskToEnvelope, buildAsanaTicketDescription, buildAsanaMetadata, buildAsanaSpawnContextMessage, buildAsanaTaskChoiceCommand, getAsanaTaskByGid, listAsanaTasks, importAsanaTaskToPmo, type AsanaAdapterConfig, } from './asana.js';
|
|
15
15
|
export { normalizeShortcutStory, normalizeShortcutStoryToEnvelope, buildShortcutTicketDescription, buildShortcutMetadata, buildShortcutSpawnContextMessage, buildShortcutStoryChoiceCommand, getShortcutStoryByKey, listShortcutStories, importShortcutStoryToPmo, type ShortcutAdapterConfig, } from './shortcut.js';
|
|
16
16
|
export { resolveMirrorToPmo, type MirrorResolution, type MirrorResolutionInput, } from './work-start.js';
|
|
17
|
+
export { buildTicketFromEnvelope } from './ticket-builder.js';
|
|
17
18
|
export { OutboundSyncHandler, initOutboundSync, stopOutboundSync, type OutboundSyncResult, } from './outbound-sync.js';
|
|
@@ -23,6 +23,8 @@ export { normalizeAsanaTask, normalizeAsanaTaskToEnvelope, buildAsanaTicketDescr
|
|
|
23
23
|
// Shortcut helpers
|
|
24
24
|
export { normalizeShortcutStory, normalizeShortcutStoryToEnvelope, buildShortcutTicketDescription, buildShortcutMetadata, buildShortcutSpawnContextMessage, buildShortcutStoryChoiceCommand, getShortcutStoryByKey, listShortcutStories, importShortcutStoryToPmo, } from './shortcut.js';
|
|
25
25
|
export { resolveMirrorToPmo, } from './work-start.js';
|
|
26
|
+
// Ticket builder (PRLT-1167: skip PMO mirror)
|
|
27
|
+
export { buildTicketFromEnvelope } from './ticket-builder.js';
|
|
26
28
|
// Outbound sync
|
|
27
29
|
export { OutboundSyncHandler, initOutboundSync, stopOutboundSync, } from './outbound-sync.js';
|
|
28
30
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/external-issues/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,uBAAuB;AACvB,OAAO,EAeL,aAAa,EACb,kBAAkB,EAClB,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,YAAY,CAAA;AAEnB,aAAa;AACb,OAAO,EACL,qBAAqB,EACrB,eAAe,GAChB,MAAM,iBAAiB,CAAA;AAExB,SAAS;AACT,OAAO,EACL,iBAAiB,GAClB,MAAM,aAAa,CAAA;AAEpB,WAAW;AACX,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,eAAe,CAAA;AAEtB,gBAAgB;AAChB,OAAO,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAA;AAElE,iBAAiB;AACjB,OAAO,EACL,kBAAkB,EAClB,4BAA4B,EAC5B,0BAA0B,EAC1B,iBAAiB,EACjB,4BAA4B,EAC5B,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,WAAW,CAAA;AAElB,iBAAiB;AACjB,OAAO,EACL,oBAAoB,EACpB,8BAA8B,EAC9B,4BAA4B,EAC5B,mBAAmB,EACnB,8BAA8B,EAC9B,6BAA6B,EAC7B,0BAA0B,EAC1B,gBAAgB,GAEjB,MAAM,aAAa,CAAA;AAEpB,gBAAgB;AAChB,OAAO,EACL,kBAAkB,EAClB,4BAA4B,EAC5B,2BAA2B,EAC3B,kBAAkB,EAClB,6BAA6B,EAC7B,2BAA2B,EAC3B,iBAAiB,EACjB,cAAc,EACd,oBAAoB,GAErB,MAAM,YAAY,CAAA;AAEnB,mBAAmB;AACnB,OAAO,EACL,sBAAsB,EACtB,gCAAgC,EAChC,8BAA8B,EAC9B,qBAAqB,EACrB,gCAAgC,EAChC,+BAA+B,EAC/B,qBAAqB,EACrB,mBAAmB,EACnB,wBAAwB,GAEzB,MAAM,eAAe,CAAA;AAEtB,OAAO,EACL,kBAAkB,GAGnB,MAAM,iBAAiB,CAAA;AAExB,gBAAgB;AAChB,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,GAEjB,MAAM,oBAAoB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/external-issues/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,uBAAuB;AACvB,OAAO,EAeL,aAAa,EACb,kBAAkB,EAClB,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,YAAY,CAAA;AAEnB,aAAa;AACb,OAAO,EACL,qBAAqB,EACrB,eAAe,GAChB,MAAM,iBAAiB,CAAA;AAExB,SAAS;AACT,OAAO,EACL,iBAAiB,GAClB,MAAM,aAAa,CAAA;AAEpB,WAAW;AACX,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,eAAe,CAAA;AAEtB,gBAAgB;AAChB,OAAO,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAA;AAElE,iBAAiB;AACjB,OAAO,EACL,kBAAkB,EAClB,4BAA4B,EAC5B,0BAA0B,EAC1B,iBAAiB,EACjB,4BAA4B,EAC5B,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,WAAW,CAAA;AAElB,iBAAiB;AACjB,OAAO,EACL,oBAAoB,EACpB,8BAA8B,EAC9B,4BAA4B,EAC5B,mBAAmB,EACnB,8BAA8B,EAC9B,6BAA6B,EAC7B,0BAA0B,EAC1B,gBAAgB,GAEjB,MAAM,aAAa,CAAA;AAEpB,gBAAgB;AAChB,OAAO,EACL,kBAAkB,EAClB,4BAA4B,EAC5B,2BAA2B,EAC3B,kBAAkB,EAClB,6BAA6B,EAC7B,2BAA2B,EAC3B,iBAAiB,EACjB,cAAc,EACd,oBAAoB,GAErB,MAAM,YAAY,CAAA;AAEnB,mBAAmB;AACnB,OAAO,EACL,sBAAsB,EACtB,gCAAgC,EAChC,8BAA8B,EAC9B,qBAAqB,EACrB,gCAAgC,EAChC,+BAA+B,EAC/B,qBAAqB,EACrB,mBAAmB,EACnB,wBAAwB,GAEzB,MAAM,eAAe,CAAA;AAEtB,OAAO,EACL,kBAAkB,GAGnB,MAAM,iBAAiB,CAAA;AAExB,8CAA8C;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAE7D,gBAAgB;AAChB,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,GAEjB,MAAM,oBAAoB,CAAA"}
|
|
@@ -94,7 +94,7 @@ function ensureLinearConfig(config, options) {
|
|
|
94
94
|
}
|
|
95
95
|
const requireTeam = options?.requireTeam ?? true;
|
|
96
96
|
if (requireTeam && !team) {
|
|
97
|
-
throw new ExternalIssueAdapterError('MISSING_CONFIG', 'Missing Linear team key.
|
|
97
|
+
throw new ExternalIssueAdapterError('MISSING_CONFIG', 'Missing Linear team key. Run "prlt linear connect" to configure, pass --team, or set PRLT_LINEAR_TEAM.');
|
|
98
98
|
}
|
|
99
99
|
return { apiKey, team, apiUrl };
|
|
100
100
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linear.js","sourceRoot":"","sources":["../../../src/lib/external-issues/linear.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,oBAAoB,GAGrB,MAAM,YAAY,CAAA;AAEnB,MAAM,sBAAsB,GAAG,gCAAgC,CAAA;AAE/D,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuC3B,CAAA;AAED,MAAM,gCAAgC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BxC,CAAA;AA+CD,SAAS,kBAAkB,CAAC,KAAgC;IAC1D,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,CAAC;YACJ,OAAO,IAAI,CAAA;QACb,KAAK,CAAC;YACJ,OAAO,IAAI,CAAA;QACb,KAAK,CAAC;YACJ,OAAO,IAAI,CAAA;QACb,KAAK,CAAC;YACJ,OAAO,IAAI,CAAA;QACb;YACE,OAAO,IAAI,CAAA;IACf,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CACzB,MAA2B,EAC3B,OAAmC;IAEnC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAA;IAC7F,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,CAAA;IACvF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,sBAAsB,CAAA;IAEzF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,yBAAyB,CACjC,gBAAgB,EAChB,yFAAyF,CAC1F,CAAA;IACH,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,IAAI,IAAI,CAAA;IAChD,IAAI,WAAW,IAAI,CAAC,IAAI,EAAE,CAAC;QACzB,MAAM,IAAI,yBAAyB,CACjC,gBAAgB,EAChB
|
|
1
|
+
{"version":3,"file":"linear.js","sourceRoot":"","sources":["../../../src/lib/external-issues/linear.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ticket Builder
|
|
3
|
+
*
|
|
4
|
+
* Builds a Ticket object from a NormalizedIssueEnvelope, bypassing
|
|
5
|
+
* the PMO mirror. Part of PMO removal (PRLT-1167).
|
|
6
|
+
*
|
|
7
|
+
* When mirror-to-pmo is disabled (the new default), work start
|
|
8
|
+
* uses this to build an in-memory Ticket directly from the
|
|
9
|
+
* external issue envelope.
|
|
10
|
+
*/
|
|
11
|
+
import type { Ticket } from '../pmo/types.js';
|
|
12
|
+
import type { NormalizedIssueEnvelope } from './types.js';
|
|
13
|
+
/**
|
|
14
|
+
* Build a Ticket from a NormalizedIssueEnvelope without creating
|
|
15
|
+
* a PMO mirror ticket.
|
|
16
|
+
*
|
|
17
|
+
* Uses the external key (e.g. PRLT-1167) as the ticket ID.
|
|
18
|
+
* The resulting Ticket is used for execution context, branch naming,
|
|
19
|
+
* and ticket_refs storage — but is NOT persisted to pmo_tickets.
|
|
20
|
+
*/
|
|
21
|
+
export declare function buildTicketFromEnvelope(envelope: NormalizedIssueEnvelope, projectId: string): Ticket;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ticket Builder
|
|
3
|
+
*
|
|
4
|
+
* Builds a Ticket object from a NormalizedIssueEnvelope, bypassing
|
|
5
|
+
* the PMO mirror. Part of PMO removal (PRLT-1167).
|
|
6
|
+
*
|
|
7
|
+
* When mirror-to-pmo is disabled (the new default), work start
|
|
8
|
+
* uses this to build an in-memory Ticket directly from the
|
|
9
|
+
* external issue envelope.
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Build a Ticket from a NormalizedIssueEnvelope without creating
|
|
13
|
+
* a PMO mirror ticket.
|
|
14
|
+
*
|
|
15
|
+
* Uses the external key (e.g. PRLT-1167) as the ticket ID.
|
|
16
|
+
* The resulting Ticket is used for execution context, branch naming,
|
|
17
|
+
* and ticket_refs storage — but is NOT persisted to pmo_tickets.
|
|
18
|
+
*/
|
|
19
|
+
export function buildTicketFromEnvelope(envelope, projectId) {
|
|
20
|
+
const metadata = {
|
|
21
|
+
external_source: envelope.source.name,
|
|
22
|
+
external_id: envelope.source.externalId,
|
|
23
|
+
external_key: envelope.source.externalKey,
|
|
24
|
+
external_url: envelope.source.url,
|
|
25
|
+
};
|
|
26
|
+
return {
|
|
27
|
+
id: envelope.source.externalKey,
|
|
28
|
+
title: envelope.title,
|
|
29
|
+
description: envelope.description,
|
|
30
|
+
priority: envelope.priority ?? undefined,
|
|
31
|
+
category: envelope.category ?? undefined,
|
|
32
|
+
projectId,
|
|
33
|
+
statusId: 'external',
|
|
34
|
+
statusName: envelope.status,
|
|
35
|
+
statusCategory: undefined,
|
|
36
|
+
subtasks: [],
|
|
37
|
+
labels: envelope.labels,
|
|
38
|
+
metadata,
|
|
39
|
+
createdAt: new Date(),
|
|
40
|
+
updatedAt: new Date(),
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=ticket-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ticket-builder.js","sourceRoot":"","sources":["../../../src/lib/external-issues/ticket-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH;;;;;;;GAOG;AACH,MAAM,UAAU,uBAAuB,CACrC,QAAiC,EACjC,SAAiB;IAEjB,MAAM,QAAQ,GAA2B;QACvC,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI;QACrC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU;QACvC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW;QACzC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG;KAClC,CAAA;IAED,OAAO;QACL,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW;QAC/B,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,SAAS;QACxC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,SAAS;QACxC,SAAS;QACT,QAAQ,EAAE,UAAU;QACpB,UAAU,EAAE,QAAQ,CAAC,MAAM;QAC3B,cAAc,EAAE,SAAS;QACzB,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,QAAQ;QACR,SAAS,EAAE,IAAI,IAAI,EAAE;QACrB,SAAS,EAAE,IAAI,IAAI,EAAE;KACtB,CAAA;AACH,CAAC"}
|
|
@@ -8,6 +8,6 @@ export function resolveMirrorToPmo(input) {
|
|
|
8
8
|
if (input.configValue !== null && input.configValue !== undefined) {
|
|
9
9
|
return { enabled: input.configValue, source: 'config' };
|
|
10
10
|
}
|
|
11
|
-
return { enabled:
|
|
11
|
+
return { enabled: false, source: 'default' };
|
|
12
12
|
}
|
|
13
13
|
//# sourceMappingURL=work-start.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"work-start.js","sourceRoot":"","sources":["../../../src/lib/external-issues/work-start.ts"],"names":[],"mappings":"AAWA,MAAM,UAAU,kBAAkB,CAAC,KAA4B;IAC7D,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,CAAA;IACrD,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC5D,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;IACnD,CAAC;IACD,IAAI,KAAK,CAAC,WAAW,KAAK,IAAI,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QAClE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAA;IACzD,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"work-start.js","sourceRoot":"","sources":["../../../src/lib/external-issues/work-start.ts"],"names":[],"mappings":"AAWA,MAAM,UAAU,kBAAkB,CAAC,KAA4B;IAC7D,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,CAAA;IACrD,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC5D,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;IACnD,CAAC;IACD,IAAI,KAAK,CAAC,WAAW,KAAK,IAAI,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QAClE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAA;IACzD,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,CAAA;AAC9C,CAAC"}
|
package/dist/lib/gc/index.d.ts
CHANGED
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
* Garbage Collection Module
|
|
3
3
|
*
|
|
4
4
|
* Core logic for cleaning up agent artifacts after PR merge/close.
|
|
5
|
-
* Handles: worktree removal, container removal, branch pruning
|
|
5
|
+
* Handles: worktree removal, container removal, branch pruning (local + remote),
|
|
6
|
+
* tmux session cleanup, Claude session cleanup, DB record marking, agent name recycling,
|
|
7
|
+
* and stale PR closure.
|
|
6
8
|
*
|
|
7
9
|
* Used by both the `prlt gc` command and the daemon's post-merge phase.
|
|
8
10
|
*/
|
|
@@ -32,8 +34,20 @@ export interface GCResult {
|
|
|
32
34
|
worktreesRemoved: string[];
|
|
33
35
|
/** Containers removed */
|
|
34
36
|
containersRemoved: string[];
|
|
35
|
-
/**
|
|
37
|
+
/** Local branches pruned */
|
|
36
38
|
branchesPruned: string[];
|
|
39
|
+
/** Remote branches deleted */
|
|
40
|
+
remoteBranchesDeleted: string[];
|
|
41
|
+
/** tmux sessions killed */
|
|
42
|
+
tmuxSessionsCleaned: string[];
|
|
43
|
+
/** Claude sessions cleaned */
|
|
44
|
+
claudeSessionsCleaned: string[];
|
|
45
|
+
/** DB execution records marked as gc_cleaned */
|
|
46
|
+
dbRecordsMarked: number;
|
|
47
|
+
/** DB execution records purged (deleted) */
|
|
48
|
+
dbRecordsPurged: number;
|
|
49
|
+
/** Agent names marked as recyclable */
|
|
50
|
+
agentNamesRecycled: string[];
|
|
37
51
|
/** Stale PRs closed */
|
|
38
52
|
stalePRsClosed: number[];
|
|
39
53
|
/** Errors encountered */
|
|
@@ -50,6 +64,8 @@ export interface GCOptions {
|
|
|
50
64
|
filterStatus?: GCArtifactStatus[];
|
|
51
65
|
/** Actually execute cleanup (default: false = dry run) */
|
|
52
66
|
execute?: boolean;
|
|
67
|
+
/** Purge (DELETE) old DB execution records instead of just marking them */
|
|
68
|
+
purgeDb?: boolean;
|
|
53
69
|
/** Log callback */
|
|
54
70
|
log?: (msg: string) => void;
|
|
55
71
|
}
|
|
@@ -71,6 +87,14 @@ export declare function extractAgentName(worktreePath: string, hqPath: string):
|
|
|
71
87
|
* Determine the GC status for a worktree based on its PR state.
|
|
72
88
|
*/
|
|
73
89
|
export declare function classifyArtifact(pr: PRInfo | null, staleDays: number): GCArtifactStatus;
|
|
90
|
+
/**
|
|
91
|
+
* Check if an agent is still alive — either its container is running
|
|
92
|
+
* or its DB status is 'active'/'running'.
|
|
93
|
+
*
|
|
94
|
+
* This prevents GC from killing agents that just spawned but haven't
|
|
95
|
+
* pushed a branch or created a PR yet.
|
|
96
|
+
*/
|
|
97
|
+
export declare function isAgentAlive(agentName: string, hqPath: string, container: ContainerInfo | null): boolean;
|
|
74
98
|
/**
|
|
75
99
|
* Collect all GC candidates by scanning worktrees and checking PR status.
|
|
76
100
|
*
|
|
@@ -78,15 +102,52 @@ export declare function classifyArtifact(pr: PRInfo | null, staleDays: number):
|
|
|
78
102
|
* checks PR status for each branch, and classifies them.
|
|
79
103
|
*/
|
|
80
104
|
export declare function collectGCCandidates(options: GCOptions): GCCandidate[];
|
|
105
|
+
/**
|
|
106
|
+
* Delete a remote git branch. Non-fatal if branch doesn't exist on remote.
|
|
107
|
+
*/
|
|
108
|
+
export declare function deleteRemoteBranch(branch: string, cwd: string): boolean;
|
|
109
|
+
/**
|
|
110
|
+
* Kill tmux sessions inside a Docker container.
|
|
111
|
+
* Non-fatal if tmux is not running or container is not accessible.
|
|
112
|
+
*/
|
|
113
|
+
export declare function killTmuxInContainer(containerId: string): boolean;
|
|
114
|
+
/**
|
|
115
|
+
* Clean up Claude session data from a Docker container's claude-credentials volume.
|
|
116
|
+
* Only removes session-specific files, preserving auth credentials.
|
|
117
|
+
*
|
|
118
|
+
* Session files to clean: projects/, .claude-*, statsig/
|
|
119
|
+
* Files to preserve: .credentials.json, credentials.json, .oauthtoken, settings.json
|
|
120
|
+
*/
|
|
121
|
+
export declare function cleanClaudeSessionData(containerId: string): boolean;
|
|
122
|
+
/**
|
|
123
|
+
* Mark execution records as GC-cleaned for the given agent names.
|
|
124
|
+
* Sets gc_cleaned_at timestamp on agent_work rows that are completed/failed.
|
|
125
|
+
*/
|
|
126
|
+
export declare function markExecutionRecordsCleaned(hqPath: string, agentNames: string[]): number;
|
|
127
|
+
/**
|
|
128
|
+
* Purge (DELETE) execution records for the given agent names.
|
|
129
|
+
* Only deletes records that have already been marked as gc_cleaned.
|
|
130
|
+
*/
|
|
131
|
+
export declare function purgeExecutionRecords(hqPath: string, agentNames: string[]): number;
|
|
132
|
+
/**
|
|
133
|
+
* Mark agent names as recyclable (status='cleaned') in the database.
|
|
134
|
+
* Preserves the record for history but allows name reuse.
|
|
135
|
+
*/
|
|
136
|
+
export declare function recycleAgentNames(hqPath: string, agentNames: string[]): string[];
|
|
81
137
|
/**
|
|
82
138
|
* Execute garbage collection on the provided candidates.
|
|
83
139
|
*
|
|
84
140
|
* Processes candidates in order:
|
|
85
141
|
* 1. Close stale PRs
|
|
86
|
-
* 2.
|
|
87
|
-
* 3.
|
|
88
|
-
* 4.
|
|
89
|
-
* 5.
|
|
142
|
+
* 2. Kill tmux sessions in containers
|
|
143
|
+
* 3. Clean Claude session data in containers
|
|
144
|
+
* 4. Remove worktrees
|
|
145
|
+
* 5. Remove containers
|
|
146
|
+
* 6. Prune local branches
|
|
147
|
+
* 7. Delete remote branches
|
|
148
|
+
* 8. Clean up empty agent directories
|
|
149
|
+
* 9. Mark/purge DB execution records
|
|
150
|
+
* 10. Recycle agent names
|
|
90
151
|
*/
|
|
91
152
|
export declare function executeGC(candidates: GCCandidate[], options: GCOptions): GCResult;
|
|
92
153
|
interface ScheduledCleanup {
|