@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.
- package/dist/commands/config/index.js +42 -0
- package/dist/commands/config/index.js.map +1 -1
- 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/poke.d.ts +3 -7
- package/dist/commands/session/poke.js +5 -7
- package/dist/commands/session/poke.js.map +1 -1
- package/dist/commands/ticket/cancel.js +2 -0
- package/dist/commands/ticket/cancel.js.map +1 -1
- package/dist/commands/ticket/complete.js +2 -0
- package/dist/commands/ticket/complete.js.map +1 -1
- package/dist/commands/ticket/delete.js +2 -0
- package/dist/commands/ticket/delete.js.map +1 -1
- package/dist/commands/ticket/edit.js +5 -0
- package/dist/commands/ticket/edit.js.map +1 -1
- package/dist/commands/ticket/move.js +2 -0
- package/dist/commands/ticket/move.js.map +1 -1
- package/dist/commands/ticket/project.js +2 -0
- package/dist/commands/ticket/project.js.map +1 -1
- package/dist/commands/ticket/reassign.js +2 -0
- package/dist/commands/ticket/reassign.js.map +1 -1
- package/dist/commands/ticket/resolve.js +2 -0
- package/dist/commands/ticket/resolve.js.map +1 -1
- package/dist/commands/ticket/update.js +5 -0
- package/dist/commands/ticket/update.js.map +1 -1
- package/dist/commands/work/complete.js +2 -0
- package/dist/commands/work/complete.js.map +1 -1
- package/dist/commands/work/peek.js +4 -0
- package/dist/commands/work/peek.js.map +1 -1
- package/dist/commands/work/poke.d.ts +3 -4
- package/dist/commands/work/poke.js +9 -4
- package/dist/commands/work/poke.js.map +1 -1
- package/dist/commands/work/ready.js +2 -0
- package/dist/commands/work/ready.js.map +1 -1
- package/dist/commands/work/start.d.ts +1 -0
- package/dist/commands/work/start.js +46 -2
- package/dist/commands/work/start.js.map +1 -1
- package/dist/commands/work/stop.js +5 -0
- package/dist/commands/work/stop.js.map +1 -1
- package/dist/hooks/init.js +6 -6
- package/dist/hooks/init.js.map +1 -1
- package/dist/hooks/postrun.js +3 -0
- package/dist/hooks/postrun.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/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/driver.d.ts +115 -0
- package/dist/lib/database/driver.js +109 -0
- package/dist/lib/database/driver.js.map +1 -0
- package/dist/lib/database/drizzle-schema.d.ts +1 -1
- package/dist/lib/database/index.d.ts +25 -287
- package/dist/lib/database/index.js +35 -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/0011_add_review_gate.d.ts +8 -0
- package/dist/lib/database/migrations/0011_add_review_gate.js +21 -0
- package/dist/lib/database/migrations/0011_add_review_gate.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 +46 -0
- package/dist/lib/database/workspace.js +158 -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 +1 -1
- package/dist/lib/execution/config.js +7 -17
- package/dist/lib/execution/config.js.map +1 -1
- package/dist/lib/execution/runners/prompt-builder.js +49 -15
- package/dist/lib/execution/runners/prompt-builder.js.map +1 -1
- package/dist/lib/execution/spawner.d.ts +1 -1
- package/dist/lib/execution/storage.d.ts +6 -4
- package/dist/lib/execution/storage.js +17 -9
- 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/mcp/tools/action.js +34 -0
- package/dist/lib/mcp/tools/action.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/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 +9 -0
- package/dist/lib/pmo/storage/index.js +16 -1
- package/dist/lib/pmo/storage/index.js.map +1 -1
- package/dist/lib/pmo/storage/tickets.d.ts +7 -0
- package/dist/lib/pmo/storage/tickets.js +33 -2
- package/dist/lib/pmo/storage/tickets.js.map +1 -1
- package/dist/lib/pmo/storage/types.d.ts +5 -1
- package/dist/lib/pmo/types.d.ts +10 -0
- package/dist/lib/pmo/types.js.map +1 -1
- package/dist/lib/pmo/utils.d.ts +38 -0
- package/dist/lib/pmo/utils.js +61 -0
- package/dist/lib/pmo/utils.js.map +1 -1
- package/dist/lib/providers/event-emitting-provider.js +13 -2
- package/dist/lib/providers/event-emitting-provider.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/telemetry/analytics.d.ts +47 -0
- package/dist/lib/telemetry/analytics.js +52 -0
- package/dist/lib/telemetry/analytics.js.map +1 -1
- package/dist/lib/telemetry/telemetry-bridge.d.ts +35 -0
- package/dist/lib/telemetry/telemetry-bridge.js +139 -0
- package/dist/lib/telemetry/telemetry-bridge.js.map +1 -0
- 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/post-execution.d.ts +6 -2
- package/dist/lib/work-lifecycle/post-execution.js +30 -18
- package/dist/lib/work-lifecycle/post-execution.js.map +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 +1035 -987
- package/package.json +9 -9
|
@@ -5,26 +5,13 @@ import { loadShortcutConfig } from '../shortcut/config.js';
|
|
|
5
5
|
import { loadTrelloConfig } from '../trello/config.js';
|
|
6
6
|
import { loadMondayConfig } from '../monday/config.js';
|
|
7
7
|
import { loadProviderSources } from './provider-sources.js';
|
|
8
|
-
|
|
8
|
+
import { SettingsStore } from '../database/settings-store.js';
|
|
9
9
|
const DEFAULT_SOURCE_KEY = 'work.default_source';
|
|
10
10
|
/** @deprecated Old key kept for migration — use DEFAULT_SOURCE_KEY */
|
|
11
11
|
const LEGACY_ACTIVE_SOURCE_KEY = 'work.active_source';
|
|
12
12
|
export const WORK_SOURCE_PROVIDERS = ['pmo', 'linear', 'jira', 'shortcut', 'asana', 'trello', 'monday'];
|
|
13
|
-
function
|
|
14
|
-
|
|
15
|
-
.prepare(`SELECT value FROM ${SETTINGS_TABLE} WHERE key = ?`)
|
|
16
|
-
.get(key);
|
|
17
|
-
return row?.value ?? null;
|
|
18
|
-
}
|
|
19
|
-
function setSetting(db, key, value) {
|
|
20
|
-
db.prepare(`
|
|
21
|
-
INSERT INTO ${SETTINGS_TABLE} (key, value)
|
|
22
|
-
VALUES (?, ?)
|
|
23
|
-
ON CONFLICT(key) DO UPDATE SET value = excluded.value
|
|
24
|
-
`).run(key, value);
|
|
25
|
-
}
|
|
26
|
-
function deleteSetting(db, key) {
|
|
27
|
-
db.prepare(`DELETE FROM ${SETTINGS_TABLE} WHERE key = ?`).run(key);
|
|
13
|
+
function settingsFor(db) {
|
|
14
|
+
return new SettingsStore(db);
|
|
28
15
|
}
|
|
29
16
|
export function isWorkSourceProvider(value) {
|
|
30
17
|
return WORK_SOURCE_PROVIDERS.includes(value);
|
|
@@ -55,24 +42,27 @@ export function formatWorkSourceRef(source) {
|
|
|
55
42
|
return source.context ? `${source.provider}:${source.context}` : source.provider;
|
|
56
43
|
}
|
|
57
44
|
export function saveDefaultWorkSource(db, source) {
|
|
58
|
-
|
|
45
|
+
const settings = settingsFor(db);
|
|
46
|
+
settings.set(DEFAULT_SOURCE_KEY, formatWorkSourceRef(source));
|
|
59
47
|
// Clean up legacy key if it exists
|
|
60
|
-
|
|
48
|
+
settings.delete(LEGACY_ACTIVE_SOURCE_KEY);
|
|
61
49
|
}
|
|
62
50
|
export function clearDefaultWorkSource(db) {
|
|
63
|
-
|
|
64
|
-
|
|
51
|
+
const settings = settingsFor(db);
|
|
52
|
+
settings.delete(DEFAULT_SOURCE_KEY);
|
|
53
|
+
settings.delete(LEGACY_ACTIVE_SOURCE_KEY);
|
|
65
54
|
}
|
|
66
55
|
export function loadDefaultWorkSource(db) {
|
|
56
|
+
const settings = settingsFor(db);
|
|
67
57
|
// Check new key first
|
|
68
|
-
let raw =
|
|
58
|
+
let raw = settings.get(DEFAULT_SOURCE_KEY);
|
|
69
59
|
// Fall back to legacy key and migrate
|
|
70
60
|
if (!raw) {
|
|
71
|
-
raw =
|
|
61
|
+
raw = settings.get(LEGACY_ACTIVE_SOURCE_KEY);
|
|
72
62
|
if (raw) {
|
|
73
63
|
// Migrate to new key
|
|
74
|
-
|
|
75
|
-
|
|
64
|
+
settings.set(DEFAULT_SOURCE_KEY, raw);
|
|
65
|
+
settings.delete(LEGACY_ACTIVE_SOURCE_KEY);
|
|
76
66
|
}
|
|
77
67
|
}
|
|
78
68
|
if (!raw)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/lib/work-source/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/lib/work-source/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* Stored as a JSON array in workspace_settings under the key
|
|
11
11
|
* `work.provider_sources`.
|
|
12
12
|
*/
|
|
13
|
-
import Database from 'better-sqlite3';
|
|
13
|
+
import type Database from 'better-sqlite3';
|
|
14
14
|
import type { WorkSourceProvider } from './config.js';
|
|
15
15
|
/**
|
|
16
16
|
* A single provider source entry in the multi-source configuration.
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* `work.provider_sources`.
|
|
12
12
|
*/
|
|
13
13
|
import { WORK_SOURCE_PROVIDERS, isWorkSourceProvider } from './config.js';
|
|
14
|
-
|
|
14
|
+
import { SettingsStore } from '../database/settings-store.js';
|
|
15
15
|
const PROVIDER_SOURCES_KEY = 'work.provider_sources';
|
|
16
16
|
export function validateProviderSourceEntry(entry) {
|
|
17
17
|
const errors = [];
|
|
@@ -47,28 +47,15 @@ export function validateProviderSourceEntry(entry) {
|
|
|
47
47
|
// =============================================================================
|
|
48
48
|
// Persistence
|
|
49
49
|
// =============================================================================
|
|
50
|
-
function
|
|
51
|
-
|
|
52
|
-
.prepare(`SELECT value FROM ${SETTINGS_TABLE} WHERE key = ?`)
|
|
53
|
-
.get(key);
|
|
54
|
-
return row?.value ?? null;
|
|
55
|
-
}
|
|
56
|
-
function setRawSetting(db, key, value) {
|
|
57
|
-
db.prepare(`
|
|
58
|
-
INSERT INTO ${SETTINGS_TABLE} (key, value)
|
|
59
|
-
VALUES (?, ?)
|
|
60
|
-
ON CONFLICT(key) DO UPDATE SET value = excluded.value
|
|
61
|
-
`).run(key, value);
|
|
62
|
-
}
|
|
63
|
-
function deleteRawSetting(db, key) {
|
|
64
|
-
db.prepare(`DELETE FROM ${SETTINGS_TABLE} WHERE key = ?`).run(key);
|
|
50
|
+
function settingsFor(db) {
|
|
51
|
+
return new SettingsStore(db);
|
|
65
52
|
}
|
|
66
53
|
/**
|
|
67
54
|
* Load all provider source entries from the database.
|
|
68
55
|
* Returns an empty array if none are configured.
|
|
69
56
|
*/
|
|
70
57
|
export function loadProviderSources(db) {
|
|
71
|
-
const raw =
|
|
58
|
+
const raw = settingsFor(db).get(PROVIDER_SOURCES_KEY);
|
|
72
59
|
if (!raw)
|
|
73
60
|
return [];
|
|
74
61
|
try {
|
|
@@ -88,11 +75,12 @@ export function loadProviderSources(db) {
|
|
|
88
75
|
* Save the full list of provider source entries to the database.
|
|
89
76
|
*/
|
|
90
77
|
export function saveProviderSources(db, sources) {
|
|
78
|
+
const settings = settingsFor(db);
|
|
91
79
|
if (sources.length === 0) {
|
|
92
|
-
|
|
80
|
+
settings.delete(PROVIDER_SOURCES_KEY);
|
|
93
81
|
return;
|
|
94
82
|
}
|
|
95
|
-
|
|
83
|
+
settings.set(PROVIDER_SOURCES_KEY, JSON.stringify(sources));
|
|
96
84
|
}
|
|
97
85
|
/**
|
|
98
86
|
* Add a new provider source entry. Returns validation errors if invalid,
|
|
@@ -257,7 +245,7 @@ export function resolveApiKey(db, entry) {
|
|
|
257
245
|
if (envValue)
|
|
258
246
|
return envValue;
|
|
259
247
|
// Try workspace_settings key
|
|
260
|
-
const dbValue =
|
|
248
|
+
const dbValue = settingsFor(db).get(entry.apiKeyRef);
|
|
261
249
|
if (dbValue)
|
|
262
250
|
return dbValue;
|
|
263
251
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-sources.js","sourceRoot":"","sources":["../../../src/lib/work-source/provider-sources.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"provider-sources.js","sourceRoot":"","sources":["../../../src/lib/work-source/provider-sources.ts"],"names":[],"mappings":"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"}
|