@proletariat/cli 0.3.57 → 0.3.59

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 (219) hide show
  1. package/dist/commands/{spec/view.d.ts → dashboard/index.d.ts} +4 -6
  2. package/dist/commands/dashboard/index.js +117 -0
  3. package/dist/commands/dashboard/index.js.map +1 -0
  4. package/dist/commands/execution/config.js +5 -4
  5. package/dist/commands/execution/config.js.map +1 -1
  6. package/dist/commands/execution/stop.js +4 -2
  7. package/dist/commands/execution/stop.js.map +1 -1
  8. package/dist/commands/execution/view.js +3 -0
  9. package/dist/commands/execution/view.js.map +1 -1
  10. package/dist/commands/init.d.ts +1 -0
  11. package/dist/commands/init.js +40 -3
  12. package/dist/commands/init.js.map +1 -1
  13. package/dist/commands/mcp-server.js +1 -2
  14. package/dist/commands/mcp-server.js.map +1 -1
  15. package/dist/commands/media/add.d.ts +19 -0
  16. package/dist/commands/media/add.js +94 -0
  17. package/dist/commands/media/add.js.map +1 -0
  18. package/dist/commands/{spec → media}/index.d.ts +1 -1
  19. package/dist/commands/media/index.js +85 -0
  20. package/dist/commands/media/index.js.map +1 -0
  21. package/dist/commands/{spec/link/remove.d.ts → media/list.d.ts} +3 -6
  22. package/dist/commands/media/list.js +89 -0
  23. package/dist/commands/media/list.js.map +1 -0
  24. package/dist/commands/media/preprocess.d.ts +19 -0
  25. package/dist/commands/media/preprocess.js +91 -0
  26. package/dist/commands/media/preprocess.js.map +1 -0
  27. package/dist/commands/{spec/delete.d.ts → media/remove.d.ts} +2 -2
  28. package/dist/commands/media/remove.js +101 -0
  29. package/dist/commands/media/remove.js.map +1 -0
  30. package/dist/commands/{spec/link/index.d.ts → media/show.d.ts} +3 -3
  31. package/dist/commands/media/show.js +122 -0
  32. package/dist/commands/media/show.js.map +1 -0
  33. package/dist/commands/orchestrator/start.js +5 -0
  34. package/dist/commands/orchestrator/start.js.map +1 -1
  35. package/dist/commands/session/exec.d.ts +19 -0
  36. package/dist/commands/session/exec.js +205 -0
  37. package/dist/commands/session/exec.js.map +1 -0
  38. package/dist/commands/session/index.js +12 -0
  39. package/dist/commands/session/index.js.map +1 -1
  40. package/dist/commands/{spec/link/depends.d.ts → session/inspect.d.ts} +4 -4
  41. package/dist/commands/session/inspect.js +316 -0
  42. package/dist/commands/session/inspect.js.map +1 -0
  43. package/dist/commands/session/peek.d.ts +15 -0
  44. package/dist/commands/session/peek.js +141 -8
  45. package/dist/commands/session/peek.js.map +1 -1
  46. package/dist/commands/session/poke.d.ts +4 -1
  47. package/dist/commands/session/poke.js +175 -20
  48. package/dist/commands/session/poke.js.map +1 -1
  49. package/dist/commands/session/restart.d.ts +20 -0
  50. package/dist/commands/session/restart.js +320 -0
  51. package/dist/commands/session/restart.js.map +1 -0
  52. package/dist/commands/tools/add.d.ts +20 -0
  53. package/dist/commands/tools/add.js +129 -0
  54. package/dist/commands/tools/add.js.map +1 -0
  55. package/dist/commands/tools/check.d.ts +10 -0
  56. package/dist/commands/tools/check.js +75 -0
  57. package/dist/commands/tools/check.js.map +1 -0
  58. package/dist/commands/tools/detect.d.ts +11 -0
  59. package/dist/commands/tools/detect.js +107 -0
  60. package/dist/commands/tools/detect.js.map +1 -0
  61. package/dist/commands/tools/index.d.ts +11 -0
  62. package/dist/commands/tools/index.js +87 -0
  63. package/dist/commands/tools/index.js.map +1 -0
  64. package/dist/commands/tools/remove.d.ts +13 -0
  65. package/dist/commands/tools/remove.js +55 -0
  66. package/dist/commands/tools/remove.js.map +1 -0
  67. package/dist/commands/trello/configure.d.ts +16 -0
  68. package/dist/commands/trello/configure.js +259 -0
  69. package/dist/commands/trello/configure.js.map +1 -0
  70. package/dist/commands/{spec/plan.d.ts → trello/import.d.ts} +3 -5
  71. package/dist/commands/trello/import.js +241 -0
  72. package/dist/commands/trello/import.js.map +1 -0
  73. package/dist/commands/{spec/ticket.d.ts → trello/sync.d.ts} +5 -6
  74. package/dist/commands/trello/sync.js +190 -0
  75. package/dist/commands/trello/sync.js.map +1 -0
  76. package/dist/commands/work/start.d.ts +2 -0
  77. package/dist/commands/work/start.js +27 -41
  78. package/dist/commands/work/start.js.map +1 -1
  79. package/dist/lib/dashboard/data.d.ts +64 -0
  80. package/dist/lib/dashboard/data.js +259 -0
  81. package/dist/lib/dashboard/data.js.map +1 -0
  82. package/dist/lib/dashboard/html.d.ts +7 -0
  83. package/dist/lib/dashboard/html.js +682 -0
  84. package/dist/lib/dashboard/html.js.map +1 -0
  85. package/dist/lib/dashboard/server.d.ts +20 -0
  86. package/dist/lib/dashboard/server.js +114 -0
  87. package/dist/lib/dashboard/server.js.map +1 -0
  88. package/dist/lib/database/index.d.ts +49 -1
  89. package/dist/lib/database/index.js +127 -0
  90. package/dist/lib/database/index.js.map +1 -1
  91. package/dist/lib/execution/config.d.ts +8 -0
  92. package/dist/lib/execution/config.js +83 -4
  93. package/dist/lib/execution/config.js.map +1 -1
  94. package/dist/lib/execution/runners.d.ts +60 -4
  95. package/dist/lib/execution/runners.js +398 -79
  96. package/dist/lib/execution/runners.js.map +1 -1
  97. package/dist/lib/execution/spawner.d.ts +4 -2
  98. package/dist/lib/execution/spawner.js +54 -47
  99. package/dist/lib/execution/spawner.js.map +1 -1
  100. package/dist/lib/execution/types.d.ts +27 -5
  101. package/dist/lib/execution/types.js +24 -0
  102. package/dist/lib/execution/types.js.map +1 -1
  103. package/dist/lib/external-issues/adapters.d.ts +17 -0
  104. package/dist/lib/external-issues/adapters.js +88 -0
  105. package/dist/lib/external-issues/adapters.js.map +1 -1
  106. package/dist/lib/external-issues/mapping-store.js +1 -1
  107. package/dist/lib/external-issues/shortcut.js +2 -1
  108. package/dist/lib/external-issues/shortcut.js.map +1 -1
  109. package/dist/lib/external-issues/trello.d.ts +80 -0
  110. package/dist/lib/external-issues/trello.js +266 -0
  111. package/dist/lib/external-issues/trello.js.map +1 -0
  112. package/dist/lib/external-issues/types.d.ts +3 -3
  113. package/dist/lib/external-issues/types.js +1 -1
  114. package/dist/lib/external-issues/types.js.map +1 -1
  115. package/dist/lib/linear/client.d.ts +4 -3
  116. package/dist/lib/linear/client.js +185 -122
  117. package/dist/lib/linear/client.js.map +1 -1
  118. package/dist/lib/mcp/tools/cli-passthrough.js +77 -0
  119. package/dist/lib/mcp/tools/cli-passthrough.js.map +1 -1
  120. package/dist/lib/mcp/tools/index.d.ts +0 -1
  121. package/dist/lib/mcp/tools/index.js +0 -1
  122. package/dist/lib/mcp/tools/index.js.map +1 -1
  123. package/dist/lib/media/index.d.ts +91 -0
  124. package/dist/lib/media/index.js +475 -0
  125. package/dist/lib/media/index.js.map +1 -0
  126. package/dist/lib/onboarding/detect-tools.d.ts +15 -0
  127. package/dist/lib/onboarding/detect-tools.js +44 -0
  128. package/dist/lib/onboarding/detect-tools.js.map +1 -0
  129. package/dist/lib/onboarding/index.d.ts +2 -0
  130. package/dist/lib/onboarding/index.js +3 -0
  131. package/dist/lib/onboarding/index.js.map +1 -0
  132. package/dist/lib/onboarding/wizard.d.ts +25 -0
  133. package/dist/lib/onboarding/wizard.js +156 -0
  134. package/dist/lib/onboarding/wizard.js.map +1 -0
  135. package/dist/lib/pmo/schema.d.ts +2 -1
  136. package/dist/lib/pmo/schema.js +3 -1
  137. package/dist/lib/pmo/schema.js.map +1 -1
  138. package/dist/lib/runners/claude-code-runner.js +6 -0
  139. package/dist/lib/runners/claude-code-runner.js.map +1 -1
  140. package/dist/lib/tool-registry/detect.d.ts +20 -0
  141. package/dist/lib/tool-registry/detect.js +95 -0
  142. package/dist/lib/tool-registry/detect.js.map +1 -0
  143. package/dist/lib/tool-registry/index.d.ts +10 -0
  144. package/dist/lib/tool-registry/index.js +13 -0
  145. package/dist/lib/tool-registry/index.js.map +1 -0
  146. package/dist/lib/tool-registry/policy.d.ts +32 -0
  147. package/dist/lib/tool-registry/policy.js +97 -0
  148. package/dist/lib/tool-registry/policy.js.map +1 -0
  149. package/dist/lib/tool-registry/registry.d.ts +42 -0
  150. package/dist/lib/tool-registry/registry.js +120 -0
  151. package/dist/lib/tool-registry/registry.js.map +1 -0
  152. package/dist/lib/tool-registry/spawn.d.ts +50 -0
  153. package/dist/lib/tool-registry/spawn.js +103 -0
  154. package/dist/lib/tool-registry/spawn.js.map +1 -0
  155. package/dist/lib/tool-registry/types.d.ts +56 -0
  156. package/dist/lib/tool-registry/types.js +109 -0
  157. package/dist/lib/tool-registry/types.js.map +1 -0
  158. package/dist/lib/trello/client.d.ts +23 -0
  159. package/dist/lib/trello/client.js +114 -0
  160. package/dist/lib/trello/client.js.map +1 -0
  161. package/dist/lib/trello/config.d.ts +55 -0
  162. package/dist/lib/trello/config.js +127 -0
  163. package/dist/lib/trello/config.js.map +1 -0
  164. package/dist/lib/trello/index.d.ts +5 -0
  165. package/dist/lib/trello/index.js +5 -0
  166. package/dist/lib/trello/index.js.map +1 -0
  167. package/dist/lib/trello/mapper.d.ts +13 -0
  168. package/dist/lib/trello/mapper.js +71 -0
  169. package/dist/lib/trello/mapper.js.map +1 -0
  170. package/dist/lib/trello/sync.d.ts +13 -0
  171. package/dist/lib/trello/sync.js +38 -0
  172. package/dist/lib/trello/sync.js.map +1 -0
  173. package/dist/lib/trello/types.d.ts +53 -0
  174. package/dist/lib/trello/types.js +2 -0
  175. package/dist/lib/trello/types.js.map +1 -0
  176. package/dist/lib/work-source/client.js +17 -0
  177. package/dist/lib/work-source/client.js.map +1 -1
  178. package/dist/lib/work-source/config.d.ts +6 -1
  179. package/dist/lib/work-source/config.js +30 -1
  180. package/dist/lib/work-source/config.js.map +1 -1
  181. package/dist/lib/work-source/index.d.ts +1 -1
  182. package/dist/lib/work-source/index.js +1 -1
  183. package/dist/lib/work-source/index.js.map +1 -1
  184. package/oclif.manifest.json +6524 -6171
  185. package/package.json +6 -2
  186. package/dist/commands/spec/create.d.ts +0 -20
  187. package/dist/commands/spec/create.js +0 -171
  188. package/dist/commands/spec/create.js.map +0 -1
  189. package/dist/commands/spec/delete.js +0 -112
  190. package/dist/commands/spec/delete.js.map +0 -1
  191. package/dist/commands/spec/edit.d.ts +0 -23
  192. package/dist/commands/spec/edit.js +0 -262
  193. package/dist/commands/spec/edit.js.map +0 -1
  194. package/dist/commands/spec/index.js +0 -88
  195. package/dist/commands/spec/index.js.map +0 -1
  196. package/dist/commands/spec/link/depends.js +0 -87
  197. package/dist/commands/spec/link/depends.js.map +0 -1
  198. package/dist/commands/spec/link/index.js +0 -93
  199. package/dist/commands/spec/link/index.js.map +0 -1
  200. package/dist/commands/spec/link/remove.js +0 -91
  201. package/dist/commands/spec/link/remove.js.map +0 -1
  202. package/dist/commands/spec/list.d.ts +0 -14
  203. package/dist/commands/spec/list.js +0 -101
  204. package/dist/commands/spec/list.js.map +0 -1
  205. package/dist/commands/spec/plan.js +0 -102
  206. package/dist/commands/spec/plan.js.map +0 -1
  207. package/dist/commands/spec/ticket.js +0 -144
  208. package/dist/commands/spec/ticket.js.map +0 -1
  209. package/dist/commands/spec/view.js +0 -202
  210. package/dist/commands/spec/view.js.map +0 -1
  211. package/dist/lib/mcp/tools/spec.d.ts +0 -6
  212. package/dist/lib/mcp/tools/spec.js +0 -197
  213. package/dist/lib/mcp/tools/spec.js.map +0 -1
  214. package/dist/lib/pmo/spec-parser.d.ts +0 -25
  215. package/dist/lib/pmo/spec-parser.js +0 -206
  216. package/dist/lib/pmo/spec-parser.js.map +0 -1
  217. package/dist/lib/pmo/spec-types.d.ts +0 -43
  218. package/dist/lib/pmo/spec-types.js +0 -8
  219. package/dist/lib/pmo/spec-types.js.map +0 -1
@@ -0,0 +1,127 @@
1
+ /**
2
+ * Trello Configuration Storage
3
+ *
4
+ * Stores Trello credentials and preferences in the workspace_settings table.
5
+ * Mirrors the Shortcut/Asana config module pattern.
6
+ */
7
+ const SETTINGS_TABLE = 'workspace_settings';
8
+ const TRELLO_CONFIG_KEYS = {
9
+ apiKey: 'trello.api_key',
10
+ apiToken: 'trello.api_token',
11
+ boardId: 'trello.board_id',
12
+ boardName: 'trello.board_name',
13
+ };
14
+ function getSetting(db, key) {
15
+ const row = db
16
+ .prepare(`SELECT value FROM ${SETTINGS_TABLE} WHERE key = ?`)
17
+ .get(key);
18
+ return row?.value ?? null;
19
+ }
20
+ function setSetting(db, key, value) {
21
+ db.prepare(`
22
+ INSERT INTO ${SETTINGS_TABLE} (key, value)
23
+ VALUES (?, ?)
24
+ ON CONFLICT(key) DO UPDATE SET value = excluded.value
25
+ `).run(key, value);
26
+ }
27
+ function deleteSetting(db, key) {
28
+ db.prepare(`DELETE FROM ${SETTINGS_TABLE} WHERE key = ?`).run(key);
29
+ }
30
+ /**
31
+ * Check if Trello is configured.
32
+ * Returns true if either:
33
+ * - Database has trello.api_key and trello.api_token stored, OR
34
+ * - Environment variables PRLT_TRELLO_API_KEY/TRELLO_API_KEY and PRLT_TRELLO_API_TOKEN/TRELLO_API_TOKEN are set
35
+ */
36
+ export function isTrelloConfigured(db) {
37
+ const hasDbConfig = getSetting(db, TRELLO_CONFIG_KEYS.apiKey) !== null
38
+ && getSetting(db, TRELLO_CONFIG_KEYS.apiToken) !== null;
39
+ if (hasDbConfig)
40
+ return true;
41
+ const hasEnvKey = !!(process.env.PRLT_TRELLO_API_KEY || process.env.TRELLO_API_KEY);
42
+ const hasEnvToken = !!(process.env.PRLT_TRELLO_API_TOKEN || process.env.TRELLO_API_TOKEN);
43
+ return hasEnvKey && hasEnvToken;
44
+ }
45
+ /**
46
+ * Load Trello configuration from the database + environment.
47
+ * Returns null if not configured.
48
+ */
49
+ export function loadTrelloConfig(db) {
50
+ const apiKey = getSetting(db, TRELLO_CONFIG_KEYS.apiKey)
51
+ || process.env.PRLT_TRELLO_API_KEY
52
+ || process.env.TRELLO_API_KEY;
53
+ const apiToken = getSetting(db, TRELLO_CONFIG_KEYS.apiToken)
54
+ || process.env.PRLT_TRELLO_API_TOKEN
55
+ || process.env.TRELLO_API_TOKEN;
56
+ if (!apiKey || !apiToken)
57
+ return null;
58
+ return {
59
+ apiKey,
60
+ apiToken,
61
+ boardId: getSetting(db, TRELLO_CONFIG_KEYS.boardId)
62
+ || process.env.PRLT_TRELLO_BOARD_ID
63
+ || undefined,
64
+ boardName: getSetting(db, TRELLO_CONFIG_KEYS.boardName) || undefined,
65
+ };
66
+ }
67
+ /**
68
+ * Save Trello configuration to the database.
69
+ */
70
+ export function saveTrelloConfig(db, config) {
71
+ setSetting(db, TRELLO_CONFIG_KEYS.apiKey, config.apiKey);
72
+ setSetting(db, TRELLO_CONFIG_KEYS.apiToken, config.apiToken);
73
+ if (config.boardId) {
74
+ setSetting(db, TRELLO_CONFIG_KEYS.boardId, config.boardId);
75
+ }
76
+ if (config.boardName) {
77
+ setSetting(db, TRELLO_CONFIG_KEYS.boardName, config.boardName);
78
+ }
79
+ }
80
+ /**
81
+ * Save the Trello API key.
82
+ */
83
+ export function saveTrelloApiKey(db, apiKey) {
84
+ setSetting(db, TRELLO_CONFIG_KEYS.apiKey, apiKey);
85
+ }
86
+ /**
87
+ * Save the Trello API token.
88
+ */
89
+ export function saveTrelloApiToken(db, apiToken) {
90
+ setSetting(db, TRELLO_CONFIG_KEYS.apiToken, apiToken);
91
+ }
92
+ /**
93
+ * Save the Trello board.
94
+ */
95
+ export function saveTrelloBoard(db, boardId, boardName) {
96
+ setSetting(db, TRELLO_CONFIG_KEYS.boardId, boardId);
97
+ setSetting(db, TRELLO_CONFIG_KEYS.boardName, boardName);
98
+ }
99
+ /**
100
+ * Clear all Trello configuration from the database.
101
+ */
102
+ export function clearTrelloConfig(db) {
103
+ for (const key of Object.values(TRELLO_CONFIG_KEYS)) {
104
+ deleteSetting(db, key);
105
+ }
106
+ }
107
+ /**
108
+ * Get the stored Trello API key.
109
+ * Also checks PRLT_TRELLO_API_KEY and TRELLO_API_KEY environment variables.
110
+ */
111
+ export function getTrelloApiKey(db) {
112
+ const envKey = process.env.PRLT_TRELLO_API_KEY || process.env.TRELLO_API_KEY;
113
+ if (envKey)
114
+ return envKey;
115
+ return getSetting(db, TRELLO_CONFIG_KEYS.apiKey);
116
+ }
117
+ /**
118
+ * Get the stored Trello API token.
119
+ * Also checks PRLT_TRELLO_API_TOKEN and TRELLO_API_TOKEN environment variables.
120
+ */
121
+ export function getTrelloApiToken(db) {
122
+ const envToken = process.env.PRLT_TRELLO_API_TOKEN || process.env.TRELLO_API_TOKEN;
123
+ if (envToken)
124
+ return envToken;
125
+ return getSetting(db, TRELLO_CONFIG_KEYS.apiToken);
126
+ }
127
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/lib/trello/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export { TrelloClient } from './client.js';
2
+ export { isTrelloConfigured, loadTrelloConfig, saveTrelloConfig, saveTrelloApiKey, saveTrelloApiToken, saveTrelloBoard, clearTrelloConfig, getTrelloApiKey, getTrelloApiToken, } from './config.js';
3
+ export { TrelloMapper } from './mapper.js';
4
+ export { TrelloSync } from './sync.js';
5
+ export type { TrelloConfig, TrelloBoard, TrelloList, TrelloLabel, TrelloMember, TrelloCard, TrelloCardMap, TrelloCardUpsertInput, } from './types.js';
@@ -0,0 +1,5 @@
1
+ export { TrelloClient } from './client.js';
2
+ export { isTrelloConfigured, loadTrelloConfig, saveTrelloConfig, saveTrelloApiKey, saveTrelloApiToken, saveTrelloBoard, clearTrelloConfig, getTrelloApiKey, getTrelloApiToken, } from './config.js';
3
+ export { TrelloMapper } from './mapper.js';
4
+ export { TrelloSync } from './sync.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/trello/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,iBAAiB,GAClB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA"}
@@ -0,0 +1,13 @@
1
+ import Database from 'better-sqlite3';
2
+ import type { TrelloCardMap } from './types.js';
3
+ export declare class TrelloMapper {
4
+ private db;
5
+ constructor(db: Database.Database);
6
+ private ensureTable;
7
+ createOrUpdateMapping(pmoTicketId: string, trelloCardId: string, trelloBoardId?: string): void;
8
+ getByTicketId(ticketId: string): TrelloCardMap | null;
9
+ getByCardId(trelloCardId: string): TrelloCardMap | null;
10
+ listMappings(): TrelloCardMap[];
11
+ updateSyncTimestamp(ticketId: string): void;
12
+ private rowToMap;
13
+ }
@@ -0,0 +1,71 @@
1
+ import { PMO_TABLES } from '../pmo/schema.js';
2
+ export class TrelloMapper {
3
+ db;
4
+ constructor(db) {
5
+ this.db = db;
6
+ this.ensureTable();
7
+ }
8
+ ensureTable() {
9
+ this.db.exec(`
10
+ CREATE TABLE IF NOT EXISTS ${PMO_TABLES.trello_card_map} (
11
+ pmo_ticket_id TEXT NOT NULL REFERENCES ${PMO_TABLES.tickets}(id) ON DELETE CASCADE,
12
+ trello_card_id TEXT NOT NULL,
13
+ trello_board_id TEXT,
14
+ last_synced_at TIMESTAMP,
15
+ created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
16
+ PRIMARY KEY (pmo_ticket_id),
17
+ UNIQUE (trello_card_id)
18
+ )
19
+ `);
20
+ this.db.exec(`
21
+ CREATE INDEX IF NOT EXISTS idx_pmo_trello_card_map_card_id
22
+ ON ${PMO_TABLES.trello_card_map}(trello_card_id)
23
+ `);
24
+ }
25
+ createOrUpdateMapping(pmoTicketId, trelloCardId, trelloBoardId) {
26
+ this.db.prepare(`
27
+ INSERT INTO ${PMO_TABLES.trello_card_map}
28
+ (pmo_ticket_id, trello_card_id, trello_board_id, last_synced_at, created_at)
29
+ VALUES (?, ?, ?, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP)
30
+ ON CONFLICT(pmo_ticket_id) DO UPDATE SET
31
+ trello_card_id = excluded.trello_card_id,
32
+ trello_board_id = excluded.trello_board_id,
33
+ last_synced_at = CURRENT_TIMESTAMP
34
+ `).run(pmoTicketId, trelloCardId, trelloBoardId ?? null);
35
+ }
36
+ getByTicketId(ticketId) {
37
+ const row = this.db.prepare(`
38
+ SELECT * FROM ${PMO_TABLES.trello_card_map} WHERE pmo_ticket_id = ?
39
+ `).get(ticketId);
40
+ return row ? this.rowToMap(row) : null;
41
+ }
42
+ getByCardId(trelloCardId) {
43
+ const row = this.db.prepare(`
44
+ SELECT * FROM ${PMO_TABLES.trello_card_map} WHERE trello_card_id = ?
45
+ `).get(trelloCardId);
46
+ return row ? this.rowToMap(row) : null;
47
+ }
48
+ listMappings() {
49
+ const rows = this.db.prepare(`
50
+ SELECT * FROM ${PMO_TABLES.trello_card_map} ORDER BY created_at DESC
51
+ `).all();
52
+ return rows.map((row) => this.rowToMap(row));
53
+ }
54
+ updateSyncTimestamp(ticketId) {
55
+ this.db.prepare(`
56
+ UPDATE ${PMO_TABLES.trello_card_map}
57
+ SET last_synced_at = CURRENT_TIMESTAMP
58
+ WHERE pmo_ticket_id = ?
59
+ `).run(ticketId);
60
+ }
61
+ rowToMap(row) {
62
+ return {
63
+ pmoTicketId: row.pmo_ticket_id,
64
+ trelloCardId: row.trello_card_id,
65
+ trelloBoardId: row.trello_board_id ?? undefined,
66
+ lastSyncedAt: row.last_synced_at ? new Date(row.last_synced_at) : undefined,
67
+ createdAt: new Date(row.created_at),
68
+ };
69
+ }
70
+ }
71
+ //# sourceMappingURL=mapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapper.js","sourceRoot":"","sources":["../../../src/lib/trello/mapper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAG7C,MAAM,OAAO,YAAY;IACH;IAApB,YAAoB,EAAqB;QAArB,OAAE,GAAF,EAAE,CAAmB;QACvC,IAAI,CAAC,WAAW,EAAE,CAAA;IACpB,CAAC;IAEO,WAAW;QACjB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;mCACkB,UAAU,CAAC,eAAe;iDACZ,UAAU,CAAC,OAAO;;;;;;;;KAQ9D,CAAC,CAAA;QAEF,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;aAEJ,UAAU,CAAC,eAAe;KAClC,CAAC,CAAA;IACJ,CAAC;IAED,qBAAqB,CAAC,WAAmB,EAAE,YAAoB,EAAE,aAAsB;QACrF,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;oBACA,UAAU,CAAC,eAAe;;;;;;;KAOzC,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,YAAY,EAAE,aAAa,IAAI,IAAI,CAAC,CAAA;IAC1D,CAAC;IAED,aAAa,CAAC,QAAgB;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;sBACV,UAAU,CAAC,eAAe;KAC3C,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAwC,CAAA;QAEvD,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACxC,CAAC;IAED,WAAW,CAAC,YAAoB;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;sBACV,UAAU,CAAC,eAAe;KAC3C,CAAC,CAAC,GAAG,CAAC,YAAY,CAAwC,CAAA;QAE3D,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACxC,CAAC;IAED,YAAY;QACV,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;sBACX,UAAU,CAAC,eAAe;KAC3C,CAAC,CAAC,GAAG,EAA+B,CAAA;QAErC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;IAC9C,CAAC;IAED,mBAAmB,CAAC,QAAgB;QAClC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;eACL,UAAU,CAAC,eAAe;;;KAGpC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAClB,CAAC;IAEO,QAAQ,CAAC,GAA4B;QAC3C,OAAO;YACL,WAAW,EAAE,GAAG,CAAC,aAAuB;YACxC,YAAY,EAAE,GAAG,CAAC,cAAwB;YAC1C,aAAa,EAAG,GAAG,CAAC,eAAiC,IAAI,SAAS;YAClE,YAAY,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,cAAwB,CAAC,CAAC,CAAC,CAAC,SAAS;YACrF,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,UAAoB,CAAC;SAC9C,CAAA;IACH,CAAC;CACF"}
@@ -0,0 +1,13 @@
1
+ import type { Ticket } from '../pmo/types.js';
2
+ import { TrelloClient } from './client.js';
3
+ import { TrelloMapper } from './mapper.js';
4
+ export declare class TrelloSync {
5
+ private client;
6
+ private mapper;
7
+ constructor(client: TrelloClient, mapper: TrelloMapper);
8
+ private buildCardName;
9
+ private buildCardDesc;
10
+ private isCompletedStatus;
11
+ createCardForTicket(ticket: Ticket, listId: string, boardId?: string): Promise<string>;
12
+ syncTicket(ticket: Ticket, cardId: string): Promise<void>;
13
+ }
@@ -0,0 +1,38 @@
1
+ export class TrelloSync {
2
+ client;
3
+ mapper;
4
+ constructor(client, mapper) {
5
+ this.client = client;
6
+ this.mapper = mapper;
7
+ }
8
+ buildCardName(ticket) {
9
+ return `${ticket.id}: ${ticket.title}`;
10
+ }
11
+ buildCardDesc(ticket) {
12
+ const parts = [ticket.description?.trim() || '', '', '---', `Synced from PMO ticket ${ticket.id}`];
13
+ return parts.join('\n').trim();
14
+ }
15
+ isCompletedStatus(ticket) {
16
+ return ticket.statusCategory === 'completed' || ticket.statusCategory === 'canceled';
17
+ }
18
+ async createCardForTicket(ticket, listId, boardId) {
19
+ const card = await this.client.createCard({
20
+ name: this.buildCardName(ticket),
21
+ desc: this.buildCardDesc(ticket),
22
+ closed: this.isCompletedStatus(ticket),
23
+ idList: listId,
24
+ ...(boardId ? { idBoard: boardId } : {}),
25
+ });
26
+ this.mapper.createOrUpdateMapping(ticket.id, card.id, boardId);
27
+ return card.id;
28
+ }
29
+ async syncTicket(ticket, cardId) {
30
+ await this.client.updateCard(cardId, {
31
+ name: this.buildCardName(ticket),
32
+ desc: this.buildCardDesc(ticket),
33
+ closed: this.isCompletedStatus(ticket),
34
+ });
35
+ this.mapper.updateSyncTimestamp(ticket.id);
36
+ }
37
+ }
38
+ //# sourceMappingURL=sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../src/lib/trello/sync.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,UAAU;IAEX;IACA;IAFV,YACU,MAAoB,EACpB,MAAoB;QADpB,WAAM,GAAN,MAAM,CAAc;QACpB,WAAM,GAAN,MAAM,CAAc;IAC3B,CAAC;IAEI,aAAa,CAAC,MAAc;QAClC,OAAO,GAAG,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC,KAAK,EAAE,CAAA;IACxC,CAAC;IAEO,aAAa,CAAC,MAAc;QAClC,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,0BAA0B,MAAM,CAAC,EAAE,EAAE,CAAC,CAAA;QAClG,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;IAChC,CAAC;IAEO,iBAAiB,CAAC,MAAc;QACtC,OAAO,MAAM,CAAC,cAAc,KAAK,WAAW,IAAI,MAAM,CAAC,cAAc,KAAK,UAAU,CAAA;IACtF,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,MAAc,EAAE,MAAc,EAAE,OAAgB;QACxE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;YACxC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;YAChC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;YAChC,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;YACtC,MAAM,EAAE,MAAM;YACd,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzC,CAAC,CAAA;QAEF,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;QAC9D,OAAO,IAAI,CAAC,EAAE,CAAA;IAChB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAc,EAAE,MAAc;QAC7C,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE;YACnC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;YAChC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;YAChC,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;SACvC,CAAC,CAAA;QACF,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IAC5C,CAAC;CACF"}
@@ -0,0 +1,53 @@
1
+ export interface TrelloConfig {
2
+ apiKey: string;
3
+ apiToken: string;
4
+ boardId?: string;
5
+ boardName?: string;
6
+ }
7
+ export interface TrelloBoard {
8
+ id: string;
9
+ name: string;
10
+ url: string;
11
+ }
12
+ export interface TrelloList {
13
+ id: string;
14
+ name: string;
15
+ }
16
+ export interface TrelloLabel {
17
+ id: string;
18
+ name: string;
19
+ color?: string;
20
+ }
21
+ export interface TrelloMember {
22
+ id: string;
23
+ fullName: string;
24
+ username: string;
25
+ }
26
+ export interface TrelloCard {
27
+ id: string;
28
+ name: string;
29
+ desc: string;
30
+ url: string;
31
+ shortUrl: string;
32
+ idBoard: string;
33
+ idList: string;
34
+ idMembers: string[];
35
+ labels: TrelloLabel[];
36
+ closed: boolean;
37
+ due?: string | null;
38
+ dueComplete?: boolean;
39
+ }
40
+ export interface TrelloCardMap {
41
+ pmoTicketId: string;
42
+ trelloCardId: string;
43
+ trelloBoardId?: string;
44
+ lastSyncedAt?: Date;
45
+ createdAt: Date;
46
+ }
47
+ export interface TrelloCardUpsertInput {
48
+ name: string;
49
+ desc?: string;
50
+ closed?: boolean;
51
+ idList?: string;
52
+ idBoard?: string;
53
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lib/trello/types.ts"],"names":[],"mappings":""}
@@ -2,6 +2,7 @@ import { buildAsanaMetadata, buildAsanaSpawnContextMessage, buildAsanaTicketDesc
2
2
  import { buildJiraMetadata, buildJiraSpawnContextMessage, buildJiraTicketDescription, getJiraIssueByKey, } from '../external-issues/jira.js';
3
3
  import { buildLinearMetadata, buildLinearSpawnContextMessage, buildLinearTicketDescription, getLinearIssueByIdentifier, } from '../external-issues/linear.js';
4
4
  import { buildShortcutMetadata, buildShortcutSpawnContextMessage, buildShortcutTicketDescription, getShortcutStoryByKey, } from '../external-issues/shortcut.js';
5
+ import { buildTrelloMetadata, buildTrelloSpawnContextMessage, buildTrelloTicketDescription, getTrelloCardById, } from '../external-issues/trello.js';
5
6
  class LinearWorkSourceClient {
6
7
  provider = 'linear';
7
8
  async fetchByKey(key) {
@@ -62,11 +63,27 @@ class ShortcutWorkSourceClient {
62
63
  return buildShortcutSpawnContextMessage(envelope, additionalMessage);
63
64
  }
64
65
  }
66
+ class TrelloWorkSourceClient {
67
+ provider = 'trello';
68
+ async fetchByKey(key) {
69
+ return getTrelloCardById({}, key);
70
+ }
71
+ buildTicketDescription(envelope) {
72
+ return buildTrelloTicketDescription(envelope);
73
+ }
74
+ buildMetadata(envelope) {
75
+ return buildTrelloMetadata(envelope);
76
+ }
77
+ buildSpawnContextMessage(envelope, additionalMessage) {
78
+ return buildTrelloSpawnContextMessage(envelope, additionalMessage);
79
+ }
80
+ }
65
81
  const SOURCE_CLIENTS = {
66
82
  linear: new LinearWorkSourceClient(),
67
83
  jira: new JiraWorkSourceClient(),
68
84
  asana: new AsanaWorkSourceClient(),
69
85
  shortcut: new ShortcutWorkSourceClient(),
86
+ trello: new TrelloWorkSourceClient(),
70
87
  };
71
88
  export function getWorkSourceClient(provider) {
72
89
  return SOURCE_CLIENTS[provider] ?? null;
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/lib/work-source/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,6BAA6B,EAC7B,2BAA2B,EAC3B,iBAAiB,GAClB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EACL,iBAAiB,EACjB,4BAA4B,EAC5B,0BAA0B,EAC1B,iBAAiB,GAClB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACL,mBAAmB,EACnB,8BAA8B,EAC9B,4BAA4B,EAC5B,0BAA0B,GAC3B,MAAM,8BAA8B,CAAA;AACrC,OAAO,EACL,qBAAqB,EACrB,gCAAgC,EAChC,8BAA8B,EAC9B,qBAAqB,GACtB,MAAM,gCAAgC,CAAA;AAYvC,MAAM,sBAAsB;IACjB,QAAQ,GAAuB,QAAQ,CAAA;IAEhD,KAAK,CAAC,UAAU,CAAC,GAAW;QAC1B,OAAO,0BAA0B,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;IAC5C,CAAC;IAED,sBAAsB,CAAC,QAAiC;QACtD,OAAO,4BAA4B,CAAC,QAAQ,CAAC,CAAA;IAC/C,CAAC;IAED,aAAa,CAAC,QAAiC;QAC7C,OAAO,mBAAmB,CAAC,QAAQ,CAAC,CAAA;IACtC,CAAC;IAED,wBAAwB,CAAC,QAAiC,EAAE,iBAA0B;QACpF,OAAO,8BAA8B,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAA;IACpE,CAAC;CACF;AAED,MAAM,oBAAoB;IACf,QAAQ,GAAuB,MAAM,CAAA;IAE9C,KAAK,CAAC,UAAU,CAAC,GAAW;QAC1B,OAAO,iBAAiB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;IACnC,CAAC;IAED,sBAAsB,CAAC,QAAiC;QACtD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAA;IAC7C,CAAC;IAED,aAAa,CAAC,QAAiC;QAC7C,OAAO,iBAAiB,CAAC,QAAQ,CAAC,CAAA;IACpC,CAAC;IAED,wBAAwB,CAAC,QAAiC,EAAE,iBAA0B;QACpF,OAAO,4BAA4B,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAA;IAClE,CAAC;CACF;AAED,MAAM,qBAAqB;IAChB,QAAQ,GAAuB,OAAO,CAAA;IAE/C,KAAK,CAAC,UAAU,CAAC,GAAW;QAC1B,OAAO,iBAAiB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;IACnC,CAAC;IAED,sBAAsB,CAAC,QAAiC;QACtD,OAAO,2BAA2B,CAAC,QAAQ,CAAC,CAAA;IAC9C,CAAC;IAED,aAAa,CAAC,QAAiC;QAC7C,OAAO,kBAAkB,CAAC,QAAQ,CAAC,CAAA;IACrC,CAAC;IAED,wBAAwB,CAAC,QAAiC,EAAE,iBAA0B;QACpF,OAAO,6BAA6B,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAA;IACnE,CAAC;CACF;AAED,MAAM,wBAAwB;IACnB,QAAQ,GAAuB,UAAU,CAAA;IAElD,KAAK,CAAC,UAAU,CAAC,GAAW;QAC1B,OAAO,qBAAqB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;IACvC,CAAC;IAED,sBAAsB,CAAC,QAAiC;QACtD,OAAO,8BAA8B,CAAC,QAAQ,CAAC,CAAA;IACjD,CAAC;IAED,aAAa,CAAC,QAAiC;QAC7C,OAAO,qBAAqB,CAAC,QAAQ,CAAC,CAAA;IACxC,CAAC;IAED,wBAAwB,CAAC,QAAiC,EAAE,iBAA0B;QACpF,OAAO,gCAAgC,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAA;IACtE,CAAC;CACF;AAED,MAAM,cAAc,GAA0D;IAC5E,MAAM,EAAE,IAAI,sBAAsB,EAAE;IACpC,IAAI,EAAE,IAAI,oBAAoB,EAAE;IAChC,KAAK,EAAE,IAAI,qBAAqB,EAAE;IAClC,QAAQ,EAAE,IAAI,wBAAwB,EAAE;CACzC,CAAA;AAED,MAAM,UAAU,mBAAmB,CAAC,QAA4B;IAC9D,OAAO,cAAc,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAA;AACzC,CAAC"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/lib/work-source/client.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import Database from 'better-sqlite3';
2
- export declare const WORK_SOURCE_PROVIDERS: readonly ["pmo", "linear", "jira", "shortcut", "asana", "monday"];
2
+ export declare const WORK_SOURCE_PROVIDERS: readonly ["pmo", "linear", "jira", "shortcut", "asana", "trello", "monday"];
3
3
  export type WorkSourceProvider = typeof WORK_SOURCE_PROVIDERS[number];
4
4
  export interface WorkSourceRef {
5
5
  provider: WorkSourceProvider;
@@ -12,3 +12,8 @@ export declare function saveActiveWorkSource(db: Database.Database, source: Work
12
12
  export declare function clearActiveWorkSource(db: Database.Database): void;
13
13
  export declare function loadActiveWorkSource(db: Database.Database): WorkSourceRef | null;
14
14
  export declare function getRegisteredWorkSources(db: Database.Database): WorkSourceRef[];
15
+ /**
16
+ * Get a list of connected integration provider names (excluding 'pmo').
17
+ * Used to dynamically inject integration commands into agent prompts.
18
+ */
19
+ export declare function getConnectedIntegrations(db: Database.Database): string[];
@@ -2,9 +2,11 @@ import { loadAsanaConfig } from '../asana/config.js';
2
2
  import { loadLinearConfig } from '../linear/config.js';
3
3
  import { loadJiraConfig } from '../jira/config.js';
4
4
  import { loadShortcutConfig } from '../shortcut/config.js';
5
+ import { loadTrelloConfig } from '../trello/config.js';
6
+ import { loadMondayConfig } from '../monday/config.js';
5
7
  const SETTINGS_TABLE = 'workspace_settings';
6
8
  const ACTIVE_SOURCE_KEY = 'work.active_source';
7
- export const WORK_SOURCE_PROVIDERS = ['pmo', 'linear', 'jira', 'shortcut', 'asana', 'monday'];
9
+ export const WORK_SOURCE_PROVIDERS = ['pmo', 'linear', 'jira', 'shortcut', 'asana', 'trello', 'monday'];
8
10
  function getSetting(db, key) {
9
11
  const row = db
10
12
  .prepare(`SELECT value FROM ${SETTINGS_TABLE} WHERE key = ?`)
@@ -90,6 +92,33 @@ export function getRegisteredWorkSources(db) {
90
92
  context: shortcutConfig.workspaceSlug ?? undefined,
91
93
  });
92
94
  }
95
+ const trelloConfig = loadTrelloConfig(db);
96
+ if (trelloConfig) {
97
+ providers.set('trello', {
98
+ provider: 'trello',
99
+ context: trelloConfig.boardName ?? trelloConfig.boardId ?? undefined,
100
+ });
101
+ }
93
102
  return Array.from(providers.values());
94
103
  }
104
+ /**
105
+ * Get a list of connected integration provider names (excluding 'pmo').
106
+ * Used to dynamically inject integration commands into agent prompts.
107
+ */
108
+ export function getConnectedIntegrations(db) {
109
+ const integrations = [];
110
+ if (loadAsanaConfig(db))
111
+ integrations.push('asana');
112
+ if (loadLinearConfig(db))
113
+ integrations.push('linear');
114
+ if (loadJiraConfig(db))
115
+ integrations.push('jira');
116
+ if (loadShortcutConfig(db))
117
+ integrations.push('shortcut');
118
+ if (loadTrelloConfig(db))
119
+ integrations.push('trello');
120
+ if (loadMondayConfig(db))
121
+ integrations.push('monday');
122
+ return integrations;
123
+ }
95
124
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/lib/work-source/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/lib/work-source/config.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export { WORK_SOURCE_PROVIDERS, type WorkSourceProvider, type WorkSourceRef, isWorkSourceProvider, parseWorkSourceRef, formatWorkSourceRef, saveActiveWorkSource, clearActiveWorkSource, loadActiveWorkSource, getRegisteredWorkSources, } from './config.js';
1
+ export { WORK_SOURCE_PROVIDERS, type WorkSourceProvider, type WorkSourceRef, isWorkSourceProvider, parseWorkSourceRef, formatWorkSourceRef, saveActiveWorkSource, clearActiveWorkSource, loadActiveWorkSource, getRegisteredWorkSources, getConnectedIntegrations, } from './config.js';
2
2
  export { type WorkSourceClient, getWorkSourceClient, } from './client.js';
@@ -1,3 +1,3 @@
1
- export { WORK_SOURCE_PROVIDERS, isWorkSourceProvider, parseWorkSourceRef, formatWorkSourceRef, saveActiveWorkSource, clearActiveWorkSource, loadActiveWorkSource, getRegisteredWorkSources, } from './config.js';
1
+ export { WORK_SOURCE_PROVIDERS, isWorkSourceProvider, parseWorkSourceRef, formatWorkSourceRef, saveActiveWorkSource, clearActiveWorkSource, loadActiveWorkSource, getRegisteredWorkSources, getConnectedIntegrations, } from './config.js';
2
2
  export { getWorkSourceClient, } from './client.js';
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/work-source/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EAGrB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,aAAa,CAAA;AACpB,OAAO,EAEL,mBAAmB,GACpB,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/work-source/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EAGrB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,aAAa,CAAA;AACpB,OAAO,EAEL,mBAAmB,GACpB,MAAM,aAAa,CAAA"}