@proletariat/cli 0.3.87 → 0.3.89
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/db/repair.d.ts +14 -0
- package/dist/commands/db/repair.js +186 -0
- package/dist/commands/db/repair.js.map +1 -0
- package/dist/commands/init.d.ts +6 -1
- package/dist/commands/init.js +44 -89
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/new.d.ts +30 -2
- package/dist/commands/new.js +141 -9
- package/dist/commands/new.js.map +1 -1
- package/dist/commands/session/list.js +42 -0
- package/dist/commands/session/list.js.map +1 -1
- package/dist/commands/session/poke.d.ts +6 -0
- package/dist/commands/session/poke.js +40 -0
- package/dist/commands/session/poke.js.map +1 -1
- package/dist/commands/work/start.d.ts +1 -0
- package/dist/commands/work/start.js +20 -1
- package/dist/commands/work/start.js.map +1 -1
- package/dist/hooks/init.js +3 -6
- package/dist/hooks/init.js.map +1 -1
- package/dist/lib/asana/config.d.ts +1 -1
- package/dist/lib/asana/config.js +18 -30
- package/dist/lib/asana/config.js.map +1 -1
- package/dist/lib/asana/mapper.d.ts +4 -3
- package/dist/lib/asana/mapper.js +17 -10
- package/dist/lib/asana/mapper.js.map +1 -1
- package/dist/lib/dashboard/data.js +2 -2
- package/dist/lib/dashboard/data.js.map +1 -1
- package/dist/lib/database/agents.d.ts +73 -0
- package/dist/lib/database/agents.js +341 -0
- package/dist/lib/database/agents.js.map +1 -0
- package/dist/lib/database/db-safety.d.ts +59 -0
- package/dist/lib/database/db-safety.js +295 -0
- package/dist/lib/database/db-safety.js.map +1 -0
- package/dist/lib/database/driver.d.ts +115 -0
- package/dist/lib/database/driver.js +110 -0
- package/dist/lib/database/driver.js.map +1 -0
- package/dist/lib/database/index.d.ts +26 -287
- package/dist/lib/database/index.js +37 -1067
- package/dist/lib/database/index.js.map +1 -1
- package/dist/lib/database/media.d.ts +53 -0
- package/dist/lib/database/media.js +118 -0
- package/dist/lib/database/media.js.map +1 -0
- package/dist/lib/database/migrations/0012_add_action_network_allowlist.d.ts +9 -0
- package/dist/lib/database/migrations/0012_add_action_network_allowlist.js +22 -0
- package/dist/lib/database/migrations/0012_add_action_network_allowlist.js.map +1 -0
- package/dist/lib/database/migrations/index.js +2 -0
- package/dist/lib/database/migrations/index.js.map +1 -1
- package/dist/lib/database/pmo-bootstrap.d.ts +30 -0
- package/dist/lib/database/pmo-bootstrap.js +105 -0
- package/dist/lib/database/pmo-bootstrap.js.map +1 -0
- package/dist/lib/database/repositories.d.ts +26 -0
- package/dist/lib/database/repositories.js +56 -0
- package/dist/lib/database/repositories.js.map +1 -0
- package/dist/lib/database/settings-store.d.ts +60 -0
- package/dist/lib/database/settings-store.js +87 -0
- package/dist/lib/database/settings-store.js.map +1 -0
- package/dist/lib/database/themes.d.ts +59 -0
- package/dist/lib/database/themes.js +212 -0
- package/dist/lib/database/themes.js.map +1 -0
- package/dist/lib/database/workspace.d.ts +51 -0
- package/dist/lib/database/workspace.js +194 -0
- package/dist/lib/database/workspace.js.map +1 -0
- package/dist/lib/database/worktrees.d.ts +33 -0
- package/dist/lib/database/worktrees.js +60 -0
- package/dist/lib/database/worktrees.js.map +1 -0
- package/dist/lib/execution/config.d.ts +14 -1
- package/dist/lib/execution/config.js +67 -17
- package/dist/lib/execution/config.js.map +1 -1
- package/dist/lib/execution/devcontainer.d.ts +2 -0
- package/dist/lib/execution/devcontainer.js +6 -1
- package/dist/lib/execution/devcontainer.js.map +1 -1
- package/dist/lib/execution/runners/docker-management.d.ts +6 -0
- package/dist/lib/execution/runners/docker-management.js +28 -12
- package/dist/lib/execution/runners/docker-management.js.map +1 -1
- package/dist/lib/execution/runners/sandbox.js +2 -1
- package/dist/lib/execution/runners/sandbox.js.map +1 -1
- package/dist/lib/execution/spawner.d.ts +3 -1
- package/dist/lib/execution/spawner.js +1 -0
- package/dist/lib/execution/spawner.js.map +1 -1
- package/dist/lib/execution/storage.d.ts +47 -12
- package/dist/lib/execution/storage.js +69 -47
- package/dist/lib/execution/storage.js.map +1 -1
- package/dist/lib/execution/types.d.ts +1 -0
- package/dist/lib/execution/types.js.map +1 -1
- package/dist/lib/external-issues/mapping-store.d.ts +4 -3
- package/dist/lib/external-issues/mapping-store.js +21 -13
- package/dist/lib/external-issues/mapping-store.js.map +1 -1
- package/dist/lib/external-issues/outbound-sync.d.ts +1 -1
- package/dist/lib/jira/config.d.ts +1 -6
- package/dist/lib/jira/config.js +16 -33
- package/dist/lib/jira/config.js.map +1 -1
- package/dist/lib/linear/config.d.ts +1 -1
- package/dist/lib/linear/config.js +16 -38
- package/dist/lib/linear/config.js.map +1 -1
- package/dist/lib/linear/mapper.d.ts +4 -3
- package/dist/lib/linear/mapper.js +20 -13
- package/dist/lib/linear/mapper.js.map +1 -1
- package/dist/lib/monday/config.d.ts +1 -1
- package/dist/lib/monday/config.js +16 -32
- package/dist/lib/monday/config.js.map +1 -1
- package/dist/lib/monday/mapper.d.ts +4 -3
- package/dist/lib/monday/mapper.js +19 -12
- package/dist/lib/monday/mapper.js.map +1 -1
- package/dist/lib/onboarding/wizard.d.ts +2 -2
- package/dist/lib/onboarding/wizard.js +32 -24
- package/dist/lib/onboarding/wizard.js.map +1 -1
- package/dist/lib/pmo/diet.d.ts +1 -1
- package/dist/lib/pmo/find-pmo.js +10 -10
- package/dist/lib/pmo/find-pmo.js.map +1 -1
- package/dist/lib/pmo/schema.d.ts +1 -1
- package/dist/lib/pmo/schema.js +1 -0
- package/dist/lib/pmo/schema.js.map +1 -1
- package/dist/lib/pmo/storage/actions.js +9 -3
- package/dist/lib/pmo/storage/actions.js.map +1 -1
- package/dist/lib/pmo/storage/index.d.ts +8 -0
- package/dist/lib/pmo/storage/index.js +13 -1
- package/dist/lib/pmo/storage/index.js.map +1 -1
- package/dist/lib/pmo/storage/types.d.ts +5 -1
- package/dist/lib/pmo/types.d.ts +1 -0
- package/dist/lib/pmo/types.js.map +1 -1
- package/dist/lib/registry/index.d.ts +2 -2
- package/dist/lib/registry/index.js +5 -6
- package/dist/lib/registry/index.js.map +1 -1
- package/dist/lib/session-store.js +2 -2
- package/dist/lib/session-store.js.map +1 -1
- package/dist/lib/shortcut/config.d.ts +1 -7
- package/dist/lib/shortcut/config.js +13 -32
- package/dist/lib/shortcut/config.js.map +1 -1
- package/dist/lib/trello/config.d.ts +1 -26
- package/dist/lib/trello/config.js +23 -64
- package/dist/lib/trello/config.js.map +1 -1
- package/dist/lib/trello/mapper.d.ts +4 -3
- package/dist/lib/trello/mapper.js +17 -10
- package/dist/lib/trello/mapper.js.map +1 -1
- package/dist/lib/work-lifecycle/action-chaining.js +4 -0
- package/dist/lib/work-lifecycle/action-chaining.js.map +1 -1
- package/dist/lib/work-lifecycle/post-execution.d.ts +1 -1
- package/dist/lib/work-source/config.d.ts +1 -1
- package/dist/lib/work-source/config.js +14 -24
- package/dist/lib/work-source/config.js.map +1 -1
- package/dist/lib/work-source/provider-sources.d.ts +1 -1
- package/dist/lib/work-source/provider-sources.js +8 -20
- package/dist/lib/work-source/provider-sources.js.map +1 -1
- package/oclif.manifest.json +1111 -1001
- package/package.json +1 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { PMO_TABLES } from '../pmo/schema.js';
|
|
2
|
+
import { wrapDatabase } from '../database/driver.js';
|
|
2
3
|
const T = PMO_TABLES;
|
|
3
4
|
function parseDate(value) {
|
|
4
5
|
return value ? new Date(value) : null;
|
|
@@ -17,14 +18,21 @@ function parseSnapshot(value) {
|
|
|
17
18
|
}
|
|
18
19
|
return null;
|
|
19
20
|
}
|
|
21
|
+
function toDriver(dbOrDriver) {
|
|
22
|
+
if ('prepare' in dbOrDriver && 'pragma' in dbOrDriver && !('raw' in dbOrDriver)) {
|
|
23
|
+
// Looks like a raw better-sqlite3 Database
|
|
24
|
+
return wrapDatabase(dbOrDriver);
|
|
25
|
+
}
|
|
26
|
+
return dbOrDriver;
|
|
27
|
+
}
|
|
20
28
|
export class ExternalExecutionMappingStore {
|
|
21
|
-
|
|
22
|
-
constructor(
|
|
23
|
-
this.
|
|
29
|
+
driver;
|
|
30
|
+
constructor(dbOrDriver) {
|
|
31
|
+
this.driver = toDriver(dbOrDriver);
|
|
24
32
|
this.ensureTables();
|
|
25
33
|
}
|
|
26
34
|
ensureTables() {
|
|
27
|
-
this.
|
|
35
|
+
this.driver.exec(`
|
|
28
36
|
CREATE TABLE IF NOT EXISTS ${T.external_execution_map} (
|
|
29
37
|
provider TEXT NOT NULL CHECK (provider IN ('linear', 'jira', 'shortcut', 'asana', 'trello', 'monday', 'pmo')),
|
|
30
38
|
external_id TEXT NOT NULL,
|
|
@@ -74,8 +82,8 @@ export class ExternalExecutionMappingStore {
|
|
|
74
82
|
: JSON.stringify(input.latestStateSnapshot);
|
|
75
83
|
const lastSyncedAt = input.lastSyncedAt?.toISOString() ?? null;
|
|
76
84
|
const lastSpawnedAt = input.lastSpawnedAt?.toISOString() ?? null;
|
|
77
|
-
this.
|
|
78
|
-
this.
|
|
85
|
+
this.driver.transaction(() => {
|
|
86
|
+
this.driver.prepare(`
|
|
79
87
|
INSERT INTO ${T.external_execution_map}
|
|
80
88
|
(provider, external_id, external_key, canonical_url, latest_state_snapshot, last_synced_at, last_spawned_at, created_at, updated_at)
|
|
81
89
|
VALUES (?, ?, ?, ?, ?, ?, ?, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP)
|
|
@@ -88,14 +96,14 @@ export class ExternalExecutionMappingStore {
|
|
|
88
96
|
updated_at = CURRENT_TIMESTAMP
|
|
89
97
|
`).run(input.provider, input.externalId, input.externalKey ?? null, input.canonicalUrl ?? null, snapshot, lastSyncedAt, lastSpawnedAt);
|
|
90
98
|
if (input.executionId) {
|
|
91
|
-
this.
|
|
99
|
+
this.driver.prepare(`
|
|
92
100
|
INSERT OR IGNORE INTO ${T.external_execution_links}
|
|
93
101
|
(provider, external_id, execution_id, linked_at)
|
|
94
102
|
VALUES (?, ?, ?, CURRENT_TIMESTAMP)
|
|
95
103
|
`).run(input.provider, input.externalId, input.executionId);
|
|
96
104
|
}
|
|
97
105
|
if (input.prUrl) {
|
|
98
|
-
this.
|
|
106
|
+
this.driver.prepare(`
|
|
99
107
|
INSERT OR IGNORE INTO ${T.external_execution_prs}
|
|
100
108
|
(provider, external_id, pr_url, linked_at)
|
|
101
109
|
VALUES (?, ?, ?, CURRENT_TIMESTAMP)
|
|
@@ -105,7 +113,7 @@ export class ExternalExecutionMappingStore {
|
|
|
105
113
|
return this.getByExternalId(input.provider, input.externalId);
|
|
106
114
|
}
|
|
107
115
|
getByExternalId(provider, externalId) {
|
|
108
|
-
const row = this.
|
|
116
|
+
const row = this.driver.prepare(`
|
|
109
117
|
SELECT * FROM ${T.external_execution_map}
|
|
110
118
|
WHERE provider = ? AND external_id = ?
|
|
111
119
|
`).get(provider, externalId);
|
|
@@ -114,7 +122,7 @@ export class ExternalExecutionMappingStore {
|
|
|
114
122
|
return this.rowToMapping(row);
|
|
115
123
|
}
|
|
116
124
|
getByExternalKey(provider, externalKey) {
|
|
117
|
-
const row = this.
|
|
125
|
+
const row = this.driver.prepare(`
|
|
118
126
|
SELECT * FROM ${T.external_execution_map}
|
|
119
127
|
WHERE provider = ? AND external_key = ?
|
|
120
128
|
`).get(provider, externalKey);
|
|
@@ -123,7 +131,7 @@ export class ExternalExecutionMappingStore {
|
|
|
123
131
|
return this.rowToMapping(row);
|
|
124
132
|
}
|
|
125
133
|
findByExecutionId(executionId) {
|
|
126
|
-
const rows = this.
|
|
134
|
+
const rows = this.driver.prepare(`
|
|
127
135
|
SELECT m.*
|
|
128
136
|
FROM ${T.external_execution_map} m
|
|
129
137
|
INNER JOIN ${T.external_execution_links} l
|
|
@@ -135,13 +143,13 @@ export class ExternalExecutionMappingStore {
|
|
|
135
143
|
return rows.map((row) => this.rowToMapping(row));
|
|
136
144
|
}
|
|
137
145
|
rowToMapping(row) {
|
|
138
|
-
const executionIds = this.
|
|
146
|
+
const executionIds = this.driver.prepare(`
|
|
139
147
|
SELECT execution_id AS value
|
|
140
148
|
FROM ${T.external_execution_links}
|
|
141
149
|
WHERE provider = ? AND external_id = ?
|
|
142
150
|
ORDER BY linked_at DESC
|
|
143
151
|
`).all(row.provider, row.external_id);
|
|
144
|
-
const prUrls = this.
|
|
152
|
+
const prUrls = this.driver.prepare(`
|
|
145
153
|
SELECT pr_url AS value
|
|
146
154
|
FROM ${T.external_execution_prs}
|
|
147
155
|
WHERE provider = ? AND external_id = ?
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapping-store.js","sourceRoot":"","sources":["../../../src/lib/external-issues/mapping-store.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"mapping-store.js","sourceRoot":"","sources":["../../../src/lib/external-issues/mapping-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* The work-lifecycle adapter layer translates provider-specific events
|
|
10
10
|
* into these domain events, keeping PMO as just another provider.
|
|
11
11
|
*/
|
|
12
|
-
import Database from 'better-sqlite3';
|
|
12
|
+
import type Database from 'better-sqlite3';
|
|
13
13
|
import type { ExternalMappingProvider } from './types.js';
|
|
14
14
|
/**
|
|
15
15
|
* Result of an outbound sync attempt for a single event.
|
|
@@ -2,9 +2,8 @@
|
|
|
2
2
|
* Jira Configuration Storage
|
|
3
3
|
*
|
|
4
4
|
* Stores Jira credentials and preferences in the workspace_settings table.
|
|
5
|
-
* Mirrors the Linear config module pattern.
|
|
6
5
|
*/
|
|
7
|
-
import Database from 'better-sqlite3';
|
|
6
|
+
import type Database from 'better-sqlite3';
|
|
8
7
|
export interface JiraConfig {
|
|
9
8
|
baseUrl: string;
|
|
10
9
|
email?: string;
|
|
@@ -13,14 +12,10 @@ export interface JiraConfig {
|
|
|
13
12
|
}
|
|
14
13
|
/**
|
|
15
14
|
* Check if Jira is configured.
|
|
16
|
-
* Returns true if either:
|
|
17
|
-
* - Database has jira.base_url AND jira.api_token stored, OR
|
|
18
|
-
* - Environment variables PRLT_JIRA_BASE_URL/JIRA_BASE_URL and PRLT_JIRA_API_TOKEN/JIRA_API_TOKEN are set
|
|
19
15
|
*/
|
|
20
16
|
export declare function isJiraConfigured(db: Database.Database): boolean;
|
|
21
17
|
/**
|
|
22
18
|
* Load Jira configuration from the database + environment.
|
|
23
|
-
* Returns null if not configured.
|
|
24
19
|
*/
|
|
25
20
|
export declare function loadJiraConfig(db: Database.Database): JiraConfig | null;
|
|
26
21
|
/**
|
package/dist/lib/jira/config.js
CHANGED
|
@@ -2,37 +2,17 @@
|
|
|
2
2
|
* Jira Configuration Storage
|
|
3
3
|
*
|
|
4
4
|
* Stores Jira credentials and preferences in the workspace_settings table.
|
|
5
|
-
* Mirrors the Linear config module pattern.
|
|
6
5
|
*/
|
|
7
6
|
import { loadProviderSources, resolveApiKey } from '../work-source/provider-sources.js';
|
|
8
|
-
|
|
7
|
+
import { SettingsStore } from '../database/settings-store.js';
|
|
9
8
|
const JIRA_CONFIG_KEYS = {
|
|
10
9
|
baseUrl: 'jira.base_url',
|
|
11
10
|
email: 'jira.email',
|
|
12
11
|
apiToken: 'jira.api_token',
|
|
13
12
|
projectKey: 'jira.project_key',
|
|
14
13
|
};
|
|
15
|
-
function getSetting(db, key) {
|
|
16
|
-
const row = db
|
|
17
|
-
.prepare(`SELECT value FROM ${SETTINGS_TABLE} WHERE key = ?`)
|
|
18
|
-
.get(key);
|
|
19
|
-
return row?.value ?? null;
|
|
20
|
-
}
|
|
21
|
-
function setSetting(db, key, value) {
|
|
22
|
-
db.prepare(`
|
|
23
|
-
INSERT INTO ${SETTINGS_TABLE} (key, value)
|
|
24
|
-
VALUES (?, ?)
|
|
25
|
-
ON CONFLICT(key) DO UPDATE SET value = excluded.value
|
|
26
|
-
`).run(key, value);
|
|
27
|
-
}
|
|
28
|
-
function deleteSetting(db, key) {
|
|
29
|
-
db.prepare(`DELETE FROM ${SETTINGS_TABLE} WHERE key = ?`).run(key);
|
|
30
|
-
}
|
|
31
14
|
/**
|
|
32
15
|
* Check if Jira is configured.
|
|
33
|
-
* Returns true if either:
|
|
34
|
-
* - Database has jira.base_url AND jira.api_token stored, OR
|
|
35
|
-
* - Environment variables PRLT_JIRA_BASE_URL/JIRA_BASE_URL and PRLT_JIRA_API_TOKEN/JIRA_API_TOKEN are set
|
|
36
16
|
*/
|
|
37
17
|
export function isJiraConfigured(db) {
|
|
38
18
|
// Check provider sources first
|
|
@@ -49,8 +29,9 @@ export function isJiraConfigured(db) {
|
|
|
49
29
|
catch {
|
|
50
30
|
// Provider sources may not exist in older databases
|
|
51
31
|
}
|
|
52
|
-
const
|
|
53
|
-
|
|
32
|
+
const settings = new SettingsStore(db);
|
|
33
|
+
const hasDbConfig = settings.has(JIRA_CONFIG_KEYS.baseUrl)
|
|
34
|
+
&& settings.has(JIRA_CONFIG_KEYS.apiToken);
|
|
54
35
|
if (hasDbConfig)
|
|
55
36
|
return true;
|
|
56
37
|
const hasEnvUrl = !!(process.env.PRLT_JIRA_BASE_URL
|
|
@@ -62,27 +43,27 @@ export function isJiraConfigured(db) {
|
|
|
62
43
|
}
|
|
63
44
|
/**
|
|
64
45
|
* Load Jira configuration from the database + environment.
|
|
65
|
-
* Returns null if not configured.
|
|
66
46
|
*/
|
|
67
47
|
export function loadJiraConfig(db) {
|
|
68
|
-
const
|
|
48
|
+
const settings = new SettingsStore(db);
|
|
49
|
+
const baseUrl = settings.get(JIRA_CONFIG_KEYS.baseUrl)
|
|
69
50
|
|| process.env.PRLT_JIRA_BASE_URL
|
|
70
51
|
|| process.env.JIRA_BASE_URL
|
|
71
52
|
|| process.env.PRLT_JIRA_HOST
|
|
72
53
|
|| process.env.JIRA_HOST;
|
|
73
|
-
const apiToken =
|
|
54
|
+
const apiToken = settings.get(JIRA_CONFIG_KEYS.apiToken)
|
|
74
55
|
|| process.env.PRLT_JIRA_API_TOKEN
|
|
75
56
|
|| process.env.JIRA_API_TOKEN;
|
|
76
57
|
if (!baseUrl || !apiToken)
|
|
77
58
|
return null;
|
|
78
59
|
return {
|
|
79
60
|
baseUrl,
|
|
80
|
-
email:
|
|
61
|
+
email: settings.get(JIRA_CONFIG_KEYS.email)
|
|
81
62
|
|| process.env.PRLT_JIRA_EMAIL
|
|
82
63
|
|| process.env.JIRA_EMAIL
|
|
83
64
|
|| undefined,
|
|
84
65
|
apiToken,
|
|
85
|
-
projectKey:
|
|
66
|
+
projectKey: settings.get(JIRA_CONFIG_KEYS.projectKey)
|
|
86
67
|
|| process.env.PRLT_JIRA_PROJECT
|
|
87
68
|
|| process.env.JIRA_PROJECT_KEY
|
|
88
69
|
|| undefined,
|
|
@@ -92,21 +73,23 @@ export function loadJiraConfig(db) {
|
|
|
92
73
|
* Save Jira configuration to the database.
|
|
93
74
|
*/
|
|
94
75
|
export function saveJiraConfig(db, config) {
|
|
95
|
-
|
|
96
|
-
|
|
76
|
+
const settings = new SettingsStore(db);
|
|
77
|
+
settings.set(JIRA_CONFIG_KEYS.baseUrl, config.baseUrl);
|
|
78
|
+
settings.set(JIRA_CONFIG_KEYS.apiToken, config.apiToken);
|
|
97
79
|
if (config.email) {
|
|
98
|
-
|
|
80
|
+
settings.set(JIRA_CONFIG_KEYS.email, config.email);
|
|
99
81
|
}
|
|
100
82
|
if (config.projectKey) {
|
|
101
|
-
|
|
83
|
+
settings.set(JIRA_CONFIG_KEYS.projectKey, config.projectKey);
|
|
102
84
|
}
|
|
103
85
|
}
|
|
104
86
|
/**
|
|
105
87
|
* Clear all Jira configuration from the database.
|
|
106
88
|
*/
|
|
107
89
|
export function clearJiraConfig(db) {
|
|
90
|
+
const settings = new SettingsStore(db);
|
|
108
91
|
for (const key of Object.values(JIRA_CONFIG_KEYS)) {
|
|
109
|
-
|
|
92
|
+
settings.delete(key);
|
|
110
93
|
}
|
|
111
94
|
}
|
|
112
95
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/lib/jira/config.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/lib/jira/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Stores Linear credentials and preferences in the workspace_settings table.
|
|
5
5
|
*/
|
|
6
|
-
import Database from 'better-sqlite3';
|
|
6
|
+
import type Database from 'better-sqlite3';
|
|
7
7
|
import type { LinearConfig } from './types.js';
|
|
8
8
|
/**
|
|
9
9
|
* Check if Linear is configured (API key is stored).
|
|
@@ -4,39 +4,13 @@
|
|
|
4
4
|
* Stores Linear credentials and preferences in the workspace_settings table.
|
|
5
5
|
*/
|
|
6
6
|
import { loadProviderSources, resolveApiKey } from '../work-source/provider-sources.js';
|
|
7
|
-
|
|
8
|
-
// Config keys stored in workspace_settings table
|
|
7
|
+
import { SettingsStore } from '../database/settings-store.js';
|
|
9
8
|
const LINEAR_CONFIG_KEYS = {
|
|
10
9
|
apiKey: 'linear.api_key',
|
|
11
10
|
defaultTeamId: 'linear.default_team_id',
|
|
12
11
|
defaultTeamKey: 'linear.default_team_key',
|
|
13
12
|
organizationName: 'linear.organization_name',
|
|
14
13
|
};
|
|
15
|
-
/**
|
|
16
|
-
* Get a setting value from the database.
|
|
17
|
-
*/
|
|
18
|
-
function getSetting(db, key) {
|
|
19
|
-
const row = db
|
|
20
|
-
.prepare(`SELECT value FROM ${SETTINGS_TABLE} WHERE key = ?`)
|
|
21
|
-
.get(key);
|
|
22
|
-
return row?.value ?? null;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Set a setting value in the database.
|
|
26
|
-
*/
|
|
27
|
-
function setSetting(db, key, value) {
|
|
28
|
-
db.prepare(`
|
|
29
|
-
INSERT INTO ${SETTINGS_TABLE} (key, value)
|
|
30
|
-
VALUES (?, ?)
|
|
31
|
-
ON CONFLICT(key) DO UPDATE SET value = excluded.value
|
|
32
|
-
`).run(key, value);
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Delete a setting from the database.
|
|
36
|
-
*/
|
|
37
|
-
function deleteSetting(db, key) {
|
|
38
|
-
db.prepare(`DELETE FROM ${SETTINGS_TABLE} WHERE key = ?`).run(key);
|
|
39
|
-
}
|
|
40
14
|
// =============================================================================
|
|
41
15
|
// Public API
|
|
42
16
|
// =============================================================================
|
|
@@ -44,48 +18,52 @@ function deleteSetting(db, key) {
|
|
|
44
18
|
* Check if Linear is configured (API key is stored).
|
|
45
19
|
*/
|
|
46
20
|
export function isLinearConfigured(db) {
|
|
47
|
-
|
|
21
|
+
const settings = new SettingsStore(db);
|
|
22
|
+
return settings.has(LINEAR_CONFIG_KEYS.apiKey);
|
|
48
23
|
}
|
|
49
24
|
/**
|
|
50
25
|
* Load Linear configuration from the database.
|
|
51
26
|
* Returns null if not configured.
|
|
52
27
|
*/
|
|
53
28
|
export function loadLinearConfig(db) {
|
|
54
|
-
const
|
|
29
|
+
const settings = new SettingsStore(db);
|
|
30
|
+
const apiKey = settings.get(LINEAR_CONFIG_KEYS.apiKey);
|
|
55
31
|
if (!apiKey)
|
|
56
32
|
return null;
|
|
57
33
|
return {
|
|
58
34
|
apiKey,
|
|
59
|
-
defaultTeamId:
|
|
60
|
-
defaultTeamKey:
|
|
61
|
-
organizationName:
|
|
35
|
+
defaultTeamId: settings.get(LINEAR_CONFIG_KEYS.defaultTeamId) ?? undefined,
|
|
36
|
+
defaultTeamKey: settings.get(LINEAR_CONFIG_KEYS.defaultTeamKey) ?? undefined,
|
|
37
|
+
organizationName: settings.get(LINEAR_CONFIG_KEYS.organizationName) ?? undefined,
|
|
62
38
|
};
|
|
63
39
|
}
|
|
64
40
|
/**
|
|
65
41
|
* Save Linear API key to the database.
|
|
66
42
|
*/
|
|
67
43
|
export function saveLinearApiKey(db, apiKey) {
|
|
68
|
-
|
|
44
|
+
new SettingsStore(db).set(LINEAR_CONFIG_KEYS.apiKey, apiKey);
|
|
69
45
|
}
|
|
70
46
|
/**
|
|
71
47
|
* Save the default team for Linear operations.
|
|
72
48
|
*/
|
|
73
49
|
export function saveLinearDefaultTeam(db, teamId, teamKey) {
|
|
74
|
-
|
|
75
|
-
|
|
50
|
+
const settings = new SettingsStore(db);
|
|
51
|
+
settings.set(LINEAR_CONFIG_KEYS.defaultTeamId, teamId);
|
|
52
|
+
settings.set(LINEAR_CONFIG_KEYS.defaultTeamKey, teamKey);
|
|
76
53
|
}
|
|
77
54
|
/**
|
|
78
55
|
* Save the organization name.
|
|
79
56
|
*/
|
|
80
57
|
export function saveLinearOrganization(db, name) {
|
|
81
|
-
|
|
58
|
+
new SettingsStore(db).set(LINEAR_CONFIG_KEYS.organizationName, name);
|
|
82
59
|
}
|
|
83
60
|
/**
|
|
84
61
|
* Clear all Linear configuration from the database.
|
|
85
62
|
*/
|
|
86
63
|
export function clearLinearConfig(db) {
|
|
64
|
+
const settings = new SettingsStore(db);
|
|
87
65
|
for (const key of Object.values(LINEAR_CONFIG_KEYS)) {
|
|
88
|
-
|
|
66
|
+
settings.delete(key);
|
|
89
67
|
}
|
|
90
68
|
}
|
|
91
69
|
/**
|
|
@@ -117,6 +95,6 @@ export function getLinearApiKey(db) {
|
|
|
117
95
|
if (envKey)
|
|
118
96
|
return envKey;
|
|
119
97
|
// 3. Legacy: stored workspace setting
|
|
120
|
-
return
|
|
98
|
+
return new SettingsStore(db).get(LINEAR_CONFIG_KEYS.apiKey);
|
|
121
99
|
}
|
|
122
100
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/lib/linear/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAA;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/lib/linear/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,13 +4,14 @@
|
|
|
4
4
|
* Converts Linear issues to PMO tickets and manages the mapping table.
|
|
5
5
|
* Handles import (Linear → PMO) and reverse lookup for sync operations.
|
|
6
6
|
*/
|
|
7
|
-
import Database from 'better-sqlite3';
|
|
7
|
+
import type Database from 'better-sqlite3';
|
|
8
8
|
import type { CreateTicketInput, PMOStorage, WorkflowStatus } from '../pmo/types.js';
|
|
9
9
|
import type { LinearIssue, LinearIssueMap, LinearSyncResult } from './types.js';
|
|
10
|
+
import { type DatabaseDriver } from '../database/driver.js';
|
|
10
11
|
export declare class LinearMapper {
|
|
11
|
-
private
|
|
12
|
+
private driver;
|
|
12
13
|
private externalMappingStore;
|
|
13
|
-
constructor(
|
|
14
|
+
constructor(dbOrDriver: DatabaseDriver | Database.Database);
|
|
14
15
|
/**
|
|
15
16
|
* Ensure the external_issue_map table exists.
|
|
16
17
|
* Uses CREATE TABLE IF NOT EXISTS to match the schema defined in schema.ts.
|
|
@@ -7,12 +7,19 @@
|
|
|
7
7
|
import { PMO_TABLES } from '../pmo/schema.js';
|
|
8
8
|
import { ExternalExecutionMappingStore } from '../external-issues/mapping-store.js';
|
|
9
9
|
import { LINEAR_STATE_TO_PMO_CATEGORY, LINEAR_PRIORITY_TO_PMO, } from './types.js';
|
|
10
|
+
import { wrapDatabase } from '../database/driver.js';
|
|
11
|
+
function toDriver(dbOrDriver) {
|
|
12
|
+
if ('prepare' in dbOrDriver && 'pragma' in dbOrDriver && !('raw' in dbOrDriver)) {
|
|
13
|
+
return wrapDatabase(dbOrDriver);
|
|
14
|
+
}
|
|
15
|
+
return dbOrDriver;
|
|
16
|
+
}
|
|
10
17
|
export class LinearMapper {
|
|
11
|
-
|
|
18
|
+
driver;
|
|
12
19
|
externalMappingStore;
|
|
13
|
-
constructor(
|
|
14
|
-
this.
|
|
15
|
-
this.externalMappingStore = new ExternalExecutionMappingStore(
|
|
20
|
+
constructor(dbOrDriver) {
|
|
21
|
+
this.driver = toDriver(dbOrDriver);
|
|
22
|
+
this.externalMappingStore = new ExternalExecutionMappingStore(this.driver);
|
|
16
23
|
this.ensureTable();
|
|
17
24
|
}
|
|
18
25
|
/**
|
|
@@ -20,7 +27,7 @@ export class LinearMapper {
|
|
|
20
27
|
* Uses CREATE TABLE IF NOT EXISTS to match the schema defined in schema.ts.
|
|
21
28
|
*/
|
|
22
29
|
ensureTable() {
|
|
23
|
-
this.
|
|
30
|
+
this.driver.exec(`
|
|
24
31
|
CREATE TABLE IF NOT EXISTS ${PMO_TABLES.external_issue_map} (
|
|
25
32
|
pmo_ticket_id TEXT NOT NULL REFERENCES ${PMO_TABLES.tickets}(id) ON DELETE CASCADE,
|
|
26
33
|
provider TEXT NOT NULL CHECK (provider IN ('linear', 'jira', 'shortcut', 'trello', 'github')),
|
|
@@ -34,11 +41,11 @@ export class LinearMapper {
|
|
|
34
41
|
UNIQUE (provider, external_id)
|
|
35
42
|
)
|
|
36
43
|
`);
|
|
37
|
-
this.
|
|
44
|
+
this.driver.exec(`
|
|
38
45
|
CREATE INDEX IF NOT EXISTS idx_pmo_external_issue_map_external_id
|
|
39
46
|
ON ${PMO_TABLES.external_issue_map}(provider, external_id)
|
|
40
47
|
`);
|
|
41
|
-
this.
|
|
48
|
+
this.driver.exec(`
|
|
42
49
|
CREATE INDEX IF NOT EXISTS idx_pmo_external_issue_map_external_key_eim
|
|
43
50
|
ON ${PMO_TABLES.external_issue_map}(provider, external_key)
|
|
44
51
|
`);
|
|
@@ -174,7 +181,7 @@ export class LinearMapper {
|
|
|
174
181
|
* Create a mapping record.
|
|
175
182
|
*/
|
|
176
183
|
createMapping(map) {
|
|
177
|
-
this.
|
|
184
|
+
this.driver.prepare(`
|
|
178
185
|
INSERT INTO ${PMO_TABLES.external_issue_map}
|
|
179
186
|
(pmo_ticket_id, provider, external_id, external_key, external_url, team_key, sync_direction, created_at)
|
|
180
187
|
VALUES (?, 'linear', ?, ?, ?, ?, ?, CURRENT_TIMESTAMP)
|
|
@@ -196,7 +203,7 @@ export class LinearMapper {
|
|
|
196
203
|
* Get a mapping by PMO ticket ID.
|
|
197
204
|
*/
|
|
198
205
|
getByTicketId(ticketId) {
|
|
199
|
-
const row = this.
|
|
206
|
+
const row = this.driver.prepare(`
|
|
200
207
|
SELECT * FROM ${PMO_TABLES.external_issue_map} WHERE pmo_ticket_id = ? AND provider = 'linear'
|
|
201
208
|
`).get(ticketId);
|
|
202
209
|
return row ? this.rowToMap(row) : null;
|
|
@@ -205,7 +212,7 @@ export class LinearMapper {
|
|
|
205
212
|
* Get a mapping by Linear issue ID.
|
|
206
213
|
*/
|
|
207
214
|
getByLinearId(linearIssueId) {
|
|
208
|
-
const row = this.
|
|
215
|
+
const row = this.driver.prepare(`
|
|
209
216
|
SELECT * FROM ${PMO_TABLES.external_issue_map} WHERE provider = 'linear' AND external_id = ?
|
|
210
217
|
`).get(linearIssueId);
|
|
211
218
|
if (row) {
|
|
@@ -218,7 +225,7 @@ export class LinearMapper {
|
|
|
218
225
|
* Get a mapping by Linear identifier (e.g., "ENG-123").
|
|
219
226
|
*/
|
|
220
227
|
getByIdentifier(identifier) {
|
|
221
|
-
const row = this.
|
|
228
|
+
const row = this.driver.prepare(`
|
|
222
229
|
SELECT * FROM ${PMO_TABLES.external_issue_map} WHERE provider = 'linear' AND external_key = ?
|
|
223
230
|
`).get(identifier);
|
|
224
231
|
if (row) {
|
|
@@ -231,7 +238,7 @@ export class LinearMapper {
|
|
|
231
238
|
* List all mappings.
|
|
232
239
|
*/
|
|
233
240
|
listMappings() {
|
|
234
|
-
const rows = this.
|
|
241
|
+
const rows = this.driver.prepare(`
|
|
235
242
|
SELECT * FROM ${PMO_TABLES.external_issue_map} WHERE provider = 'linear' ORDER BY created_at DESC
|
|
236
243
|
`).all();
|
|
237
244
|
return rows.map((row) => this.rowToMap(row));
|
|
@@ -260,7 +267,7 @@ export class LinearMapper {
|
|
|
260
267
|
* Delete a mapping by PMO ticket ID.
|
|
261
268
|
*/
|
|
262
269
|
deleteMapping(pmoTicketId) {
|
|
263
|
-
this.
|
|
270
|
+
this.driver.prepare(`
|
|
264
271
|
DELETE FROM ${PMO_TABLES.external_issue_map} WHERE pmo_ticket_id = ? AND provider = 'linear'
|
|
265
272
|
`).run(pmoTicketId);
|
|
266
273
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapper.js","sourceRoot":"","sources":["../../../src/lib/linear/mapper.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,6BAA6B,EAAE,MAAM,qCAAqC,CAAA;AAQnF,OAAO,EACL,4BAA4B,EAC5B,sBAAsB,GACvB,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"mapper.js","sourceRoot":"","sources":["../../../src/lib/linear/mapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import Database from 'better-sqlite3';
|
|
1
|
+
import type Database from 'better-sqlite3';
|
|
2
2
|
import type { MondayConfig } from './types.js';
|
|
3
3
|
export declare function isMondayConfigured(db: Database.Database): boolean;
|
|
4
4
|
export declare function loadMondayConfig(db: Database.Database): MondayConfig | null;
|