@proletariat/cli 0.3.86 → 0.3.88

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (170) hide show
  1. package/dist/commands/config/index.js +42 -0
  2. package/dist/commands/config/index.js.map +1 -1
  3. package/dist/commands/init.d.ts +6 -1
  4. package/dist/commands/init.js +44 -89
  5. package/dist/commands/init.js.map +1 -1
  6. package/dist/commands/new.d.ts +30 -2
  7. package/dist/commands/new.js +141 -9
  8. package/dist/commands/new.js.map +1 -1
  9. package/dist/commands/session/poke.d.ts +3 -7
  10. package/dist/commands/session/poke.js +5 -7
  11. package/dist/commands/session/poke.js.map +1 -1
  12. package/dist/commands/ticket/cancel.js +2 -0
  13. package/dist/commands/ticket/cancel.js.map +1 -1
  14. package/dist/commands/ticket/complete.js +2 -0
  15. package/dist/commands/ticket/complete.js.map +1 -1
  16. package/dist/commands/ticket/delete.js +2 -0
  17. package/dist/commands/ticket/delete.js.map +1 -1
  18. package/dist/commands/ticket/edit.js +5 -0
  19. package/dist/commands/ticket/edit.js.map +1 -1
  20. package/dist/commands/ticket/move.js +2 -0
  21. package/dist/commands/ticket/move.js.map +1 -1
  22. package/dist/commands/ticket/project.js +2 -0
  23. package/dist/commands/ticket/project.js.map +1 -1
  24. package/dist/commands/ticket/reassign.js +2 -0
  25. package/dist/commands/ticket/reassign.js.map +1 -1
  26. package/dist/commands/ticket/resolve.js +2 -0
  27. package/dist/commands/ticket/resolve.js.map +1 -1
  28. package/dist/commands/ticket/update.js +5 -0
  29. package/dist/commands/ticket/update.js.map +1 -1
  30. package/dist/commands/work/complete.js +2 -0
  31. package/dist/commands/work/complete.js.map +1 -1
  32. package/dist/commands/work/peek.js +4 -0
  33. package/dist/commands/work/peek.js.map +1 -1
  34. package/dist/commands/work/poke.d.ts +3 -4
  35. package/dist/commands/work/poke.js +9 -4
  36. package/dist/commands/work/poke.js.map +1 -1
  37. package/dist/commands/work/ready.js +2 -0
  38. package/dist/commands/work/ready.js.map +1 -1
  39. package/dist/commands/work/start.d.ts +1 -0
  40. package/dist/commands/work/start.js +46 -2
  41. package/dist/commands/work/start.js.map +1 -1
  42. package/dist/commands/work/stop.js +5 -0
  43. package/dist/commands/work/stop.js.map +1 -1
  44. package/dist/hooks/init.js +6 -6
  45. package/dist/hooks/init.js.map +1 -1
  46. package/dist/hooks/postrun.js +3 -0
  47. package/dist/hooks/postrun.js.map +1 -1
  48. package/dist/lib/asana/config.d.ts +1 -1
  49. package/dist/lib/asana/config.js +18 -30
  50. package/dist/lib/asana/config.js.map +1 -1
  51. package/dist/lib/asana/mapper.d.ts +4 -3
  52. package/dist/lib/asana/mapper.js +17 -10
  53. package/dist/lib/asana/mapper.js.map +1 -1
  54. package/dist/lib/database/agents.d.ts +73 -0
  55. package/dist/lib/database/agents.js +341 -0
  56. package/dist/lib/database/agents.js.map +1 -0
  57. package/dist/lib/database/driver.d.ts +115 -0
  58. package/dist/lib/database/driver.js +109 -0
  59. package/dist/lib/database/driver.js.map +1 -0
  60. package/dist/lib/database/drizzle-schema.d.ts +1 -1
  61. package/dist/lib/database/index.d.ts +25 -287
  62. package/dist/lib/database/index.js +35 -1067
  63. package/dist/lib/database/index.js.map +1 -1
  64. package/dist/lib/database/media.d.ts +53 -0
  65. package/dist/lib/database/media.js +118 -0
  66. package/dist/lib/database/media.js.map +1 -0
  67. package/dist/lib/database/migrations/0011_add_review_gate.d.ts +8 -0
  68. package/dist/lib/database/migrations/0011_add_review_gate.js +21 -0
  69. package/dist/lib/database/migrations/0011_add_review_gate.js.map +1 -0
  70. package/dist/lib/database/migrations/index.js +2 -0
  71. package/dist/lib/database/migrations/index.js.map +1 -1
  72. package/dist/lib/database/pmo-bootstrap.d.ts +30 -0
  73. package/dist/lib/database/pmo-bootstrap.js +105 -0
  74. package/dist/lib/database/pmo-bootstrap.js.map +1 -0
  75. package/dist/lib/database/repositories.d.ts +26 -0
  76. package/dist/lib/database/repositories.js +56 -0
  77. package/dist/lib/database/repositories.js.map +1 -0
  78. package/dist/lib/database/settings-store.d.ts +60 -0
  79. package/dist/lib/database/settings-store.js +87 -0
  80. package/dist/lib/database/settings-store.js.map +1 -0
  81. package/dist/lib/database/themes.d.ts +59 -0
  82. package/dist/lib/database/themes.js +212 -0
  83. package/dist/lib/database/themes.js.map +1 -0
  84. package/dist/lib/database/workspace.d.ts +46 -0
  85. package/dist/lib/database/workspace.js +158 -0
  86. package/dist/lib/database/workspace.js.map +1 -0
  87. package/dist/lib/database/worktrees.d.ts +33 -0
  88. package/dist/lib/database/worktrees.js +60 -0
  89. package/dist/lib/database/worktrees.js.map +1 -0
  90. package/dist/lib/execution/config.d.ts +1 -1
  91. package/dist/lib/execution/config.js +7 -17
  92. package/dist/lib/execution/config.js.map +1 -1
  93. package/dist/lib/execution/runners/prompt-builder.js +49 -15
  94. package/dist/lib/execution/runners/prompt-builder.js.map +1 -1
  95. package/dist/lib/execution/spawner.d.ts +1 -1
  96. package/dist/lib/execution/storage.d.ts +6 -4
  97. package/dist/lib/execution/storage.js +17 -9
  98. package/dist/lib/execution/storage.js.map +1 -1
  99. package/dist/lib/execution/types.d.ts +1 -0
  100. package/dist/lib/execution/types.js.map +1 -1
  101. package/dist/lib/external-issues/mapping-store.d.ts +4 -3
  102. package/dist/lib/external-issues/mapping-store.js +21 -13
  103. package/dist/lib/external-issues/mapping-store.js.map +1 -1
  104. package/dist/lib/external-issues/outbound-sync.d.ts +1 -1
  105. package/dist/lib/jira/config.d.ts +1 -6
  106. package/dist/lib/jira/config.js +16 -33
  107. package/dist/lib/jira/config.js.map +1 -1
  108. package/dist/lib/linear/config.d.ts +1 -1
  109. package/dist/lib/linear/config.js +16 -38
  110. package/dist/lib/linear/config.js.map +1 -1
  111. package/dist/lib/linear/mapper.d.ts +4 -3
  112. package/dist/lib/linear/mapper.js +20 -13
  113. package/dist/lib/linear/mapper.js.map +1 -1
  114. package/dist/lib/mcp/tools/action.js +34 -0
  115. package/dist/lib/mcp/tools/action.js.map +1 -1
  116. package/dist/lib/monday/config.d.ts +1 -1
  117. package/dist/lib/monday/config.js +16 -32
  118. package/dist/lib/monday/config.js.map +1 -1
  119. package/dist/lib/monday/mapper.d.ts +4 -3
  120. package/dist/lib/monday/mapper.js +19 -12
  121. package/dist/lib/monday/mapper.js.map +1 -1
  122. package/dist/lib/onboarding/wizard.d.ts +2 -2
  123. package/dist/lib/onboarding/wizard.js +32 -24
  124. package/dist/lib/onboarding/wizard.js.map +1 -1
  125. package/dist/lib/pmo/diet.d.ts +1 -1
  126. package/dist/lib/pmo/schema.d.ts +1 -1
  127. package/dist/lib/pmo/schema.js +1 -0
  128. package/dist/lib/pmo/schema.js.map +1 -1
  129. package/dist/lib/pmo/storage/actions.js +9 -3
  130. package/dist/lib/pmo/storage/actions.js.map +1 -1
  131. package/dist/lib/pmo/storage/index.d.ts +9 -0
  132. package/dist/lib/pmo/storage/index.js +16 -1
  133. package/dist/lib/pmo/storage/index.js.map +1 -1
  134. package/dist/lib/pmo/storage/tickets.d.ts +7 -0
  135. package/dist/lib/pmo/storage/tickets.js +33 -2
  136. package/dist/lib/pmo/storage/tickets.js.map +1 -1
  137. package/dist/lib/pmo/storage/types.d.ts +5 -1
  138. package/dist/lib/pmo/types.d.ts +10 -0
  139. package/dist/lib/pmo/types.js.map +1 -1
  140. package/dist/lib/pmo/utils.d.ts +38 -0
  141. package/dist/lib/pmo/utils.js +61 -0
  142. package/dist/lib/pmo/utils.js.map +1 -1
  143. package/dist/lib/providers/event-emitting-provider.js +13 -2
  144. package/dist/lib/providers/event-emitting-provider.js.map +1 -1
  145. package/dist/lib/shortcut/config.d.ts +1 -7
  146. package/dist/lib/shortcut/config.js +13 -32
  147. package/dist/lib/shortcut/config.js.map +1 -1
  148. package/dist/lib/telemetry/analytics.d.ts +47 -0
  149. package/dist/lib/telemetry/analytics.js +52 -0
  150. package/dist/lib/telemetry/analytics.js.map +1 -1
  151. package/dist/lib/telemetry/telemetry-bridge.d.ts +35 -0
  152. package/dist/lib/telemetry/telemetry-bridge.js +139 -0
  153. package/dist/lib/telemetry/telemetry-bridge.js.map +1 -0
  154. package/dist/lib/trello/config.d.ts +1 -26
  155. package/dist/lib/trello/config.js +23 -64
  156. package/dist/lib/trello/config.js.map +1 -1
  157. package/dist/lib/trello/mapper.d.ts +4 -3
  158. package/dist/lib/trello/mapper.js +17 -10
  159. package/dist/lib/trello/mapper.js.map +1 -1
  160. package/dist/lib/work-lifecycle/post-execution.d.ts +6 -2
  161. package/dist/lib/work-lifecycle/post-execution.js +30 -18
  162. package/dist/lib/work-lifecycle/post-execution.js.map +1 -1
  163. package/dist/lib/work-source/config.d.ts +1 -1
  164. package/dist/lib/work-source/config.js +14 -24
  165. package/dist/lib/work-source/config.js.map +1 -1
  166. package/dist/lib/work-source/provider-sources.d.ts +1 -1
  167. package/dist/lib/work-source/provider-sources.js +8 -20
  168. package/dist/lib/work-source/provider-sources.js.map +1 -1
  169. package/oclif.manifest.json +1035 -987
  170. package/package.json +9 -9
@@ -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
- db;
22
- constructor(db) {
23
- this.db = db;
29
+ driver;
30
+ constructor(dbOrDriver) {
31
+ this.driver = toDriver(dbOrDriver);
24
32
  this.ensureTables();
25
33
  }
26
34
  ensureTables() {
27
- this.db.exec(`
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.db.transaction(() => {
78
- this.db.prepare(`
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.db.prepare(`
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.db.prepare(`
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.db.prepare(`
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.db.prepare(`
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.db.prepare(`
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.db.prepare(`
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.db.prepare(`
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":"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"}
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
  /**
@@ -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
- const SETTINGS_TABLE = 'workspace_settings';
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 hasDbConfig = getSetting(db, JIRA_CONFIG_KEYS.baseUrl) !== null
53
- && getSetting(db, JIRA_CONFIG_KEYS.apiToken) !== null;
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 baseUrl = getSetting(db, JIRA_CONFIG_KEYS.baseUrl)
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 = getSetting(db, JIRA_CONFIG_KEYS.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: getSetting(db, JIRA_CONFIG_KEYS.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: getSetting(db, JIRA_CONFIG_KEYS.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
- setSetting(db, JIRA_CONFIG_KEYS.baseUrl, config.baseUrl);
96
- setSetting(db, JIRA_CONFIG_KEYS.apiToken, config.apiToken);
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
- setSetting(db, JIRA_CONFIG_KEYS.email, config.email);
80
+ settings.set(JIRA_CONFIG_KEYS.email, config.email);
99
81
  }
100
82
  if (config.projectKey) {
101
- setSetting(db, JIRA_CONFIG_KEYS.projectKey, config.projectKey);
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
- deleteSetting(db, key);
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":"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"}
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
- const SETTINGS_TABLE = 'workspace_settings';
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
- return getSetting(db, LINEAR_CONFIG_KEYS.apiKey) !== null;
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 apiKey = getSetting(db, LINEAR_CONFIG_KEYS.apiKey);
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: getSetting(db, LINEAR_CONFIG_KEYS.defaultTeamId) ?? undefined,
60
- defaultTeamKey: getSetting(db, LINEAR_CONFIG_KEYS.defaultTeamKey) ?? undefined,
61
- organizationName: getSetting(db, LINEAR_CONFIG_KEYS.organizationName) ?? undefined,
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
- setSetting(db, LINEAR_CONFIG_KEYS.apiKey, apiKey);
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
- setSetting(db, LINEAR_CONFIG_KEYS.defaultTeamId, teamId);
75
- setSetting(db, LINEAR_CONFIG_KEYS.defaultTeamKey, teamKey);
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
- setSetting(db, LINEAR_CONFIG_KEYS.organizationName, name);
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
- deleteSetting(db, key);
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 getSetting(db, LINEAR_CONFIG_KEYS.apiKey);
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":"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"}
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 db;
12
+ private driver;
12
13
  private externalMappingStore;
13
- constructor(db: Database.Database);
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
- db;
18
+ driver;
12
19
  externalMappingStore;
13
- constructor(db) {
14
- this.db = db;
15
- this.externalMappingStore = new ExternalExecutionMappingStore(db);
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.db.exec(`
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.db.exec(`
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.db.exec(`
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.db.prepare(`
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.db.prepare(`
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.db.prepare(`
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.db.prepare(`
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.db.prepare(`
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.db.prepare(`
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":"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"}
1
+ {"version":3,"file":"mapper.js","sourceRoot":"","sources":["../../../src/lib/linear/mapper.ts"],"names":[],"mappings":"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"}