@proletariat/cli 0.3.91 → 0.3.92
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/bin/validate-better-sqlite3.cjs +129 -0
- package/dist/commands/agent/auth.js +2 -2
- package/dist/commands/agent/auth.js.map +1 -1
- package/dist/commands/agent/shell.js +3 -3
- package/dist/commands/agent/shell.js.map +1 -1
- package/dist/commands/branch/create.js +2 -2
- package/dist/commands/branch/create.js.map +1 -1
- package/dist/commands/claude/index.js +3 -3
- package/dist/commands/claude/index.js.map +1 -1
- package/dist/commands/claude/open.js +2 -2
- package/dist/commands/claude/open.js.map +1 -1
- package/dist/commands/config/index.js +2 -2
- package/dist/commands/config/index.js.map +1 -1
- package/dist/commands/db/repair.js +4 -4
- package/dist/commands/db/repair.js.map +1 -1
- package/dist/commands/docker/clean.js +2 -2
- package/dist/commands/docker/clean.js.map +1 -1
- package/dist/commands/docker/index.js +2 -2
- package/dist/commands/docker/index.js.map +1 -1
- package/dist/commands/docker/list.js +2 -2
- package/dist/commands/docker/list.js.map +1 -1
- package/dist/commands/docker/logs.js +2 -2
- package/dist/commands/docker/logs.js.map +1 -1
- package/dist/commands/docker/restart.js +2 -2
- package/dist/commands/docker/restart.js.map +1 -1
- package/dist/commands/docker/shell.js +2 -2
- package/dist/commands/docker/shell.js.map +1 -1
- package/dist/commands/docker/start.js +2 -2
- package/dist/commands/docker/start.js.map +1 -1
- package/dist/commands/docker/stop.js +2 -2
- package/dist/commands/docker/stop.js.map +1 -1
- package/dist/commands/docker/sync.js +2 -2
- package/dist/commands/docker/sync.js.map +1 -1
- package/dist/commands/execution/config.js.map +1 -1
- package/dist/commands/execution/list.js +2 -2
- package/dist/commands/execution/list.js.map +1 -1
- package/dist/commands/execution/logs.js +2 -2
- package/dist/commands/execution/logs.js.map +1 -1
- package/dist/commands/execution/stop.js +2 -2
- package/dist/commands/execution/stop.js.map +1 -1
- package/dist/commands/execution/view.js +2 -2
- package/dist/commands/execution/view.js.map +1 -1
- package/dist/commands/linear/connect.js.map +1 -1
- package/dist/commands/mcp-server.js +2 -2
- package/dist/commands/mcp-server.js.map +1 -1
- package/dist/commands/orchestrator/attach.js +2 -2
- package/dist/commands/orchestrator/attach.js.map +1 -1
- package/dist/commands/orchestrator/start.js +3 -3
- package/dist/commands/orchestrator/start.js.map +1 -1
- package/dist/commands/orchestrator/stop.js +2 -2
- package/dist/commands/orchestrator/stop.js.map +1 -1
- package/dist/commands/qa/index.js +3 -3
- package/dist/commands/qa/index.js.map +1 -1
- package/dist/commands/session/attach.js +3 -3
- package/dist/commands/session/attach.js.map +1 -1
- package/dist/commands/session/cleanup.js +2 -2
- package/dist/commands/session/cleanup.js.map +1 -1
- package/dist/commands/session/exec.js +2 -2
- package/dist/commands/session/exec.js.map +1 -1
- package/dist/commands/session/health.js +2 -2
- package/dist/commands/session/health.js.map +1 -1
- package/dist/commands/session/inspect.js +2 -2
- package/dist/commands/session/inspect.js.map +1 -1
- package/dist/commands/session/list.js +2 -2
- package/dist/commands/session/list.js.map +1 -1
- package/dist/commands/session/peek.js +3 -3
- package/dist/commands/session/peek.js.map +1 -1
- package/dist/commands/session/poke.js +2 -2
- package/dist/commands/session/poke.js.map +1 -1
- package/dist/commands/session/prune.js +2 -2
- package/dist/commands/session/prune.js.map +1 -1
- package/dist/commands/session/report.js +2 -2
- package/dist/commands/session/report.js.map +1 -1
- package/dist/commands/session/restart.js +2 -2
- package/dist/commands/session/restart.js.map +1 -1
- package/dist/commands/shortcut/connect.js.map +1 -1
- package/dist/commands/trello/configure.js.map +1 -1
- package/dist/commands/work/complete.js +2 -2
- package/dist/commands/work/complete.js.map +1 -1
- package/dist/commands/work/hooks/add.js +2 -2
- package/dist/commands/work/hooks/add.js.map +1 -1
- package/dist/commands/work/hooks/list.js +2 -2
- package/dist/commands/work/hooks/list.js.map +1 -1
- package/dist/commands/work/hooks/remove.js +2 -2
- package/dist/commands/work/hooks/remove.js.map +1 -1
- package/dist/commands/work/hooks/toggle.js +2 -2
- package/dist/commands/work/hooks/toggle.js.map +1 -1
- package/dist/commands/work/ready.js +2 -2
- package/dist/commands/work/ready.js.map +1 -1
- package/dist/commands/work/ship.js +2 -2
- package/dist/commands/work/ship.js.map +1 -1
- package/dist/commands/work/spawn.js +2 -2
- package/dist/commands/work/spawn.js.map +1 -1
- package/dist/commands/work/start.js +2 -2
- package/dist/commands/work/start.js.map +1 -1
- package/dist/commands/work/stop.js +2 -2
- package/dist/commands/work/stop.js.map +1 -1
- package/dist/commands/work/watch.js +2 -2
- package/dist/commands/work/watch.js.map +1 -1
- package/dist/hooks/init.js +15 -6
- package/dist/hooks/init.js.map +1 -1
- package/dist/lib/asana/config.d.ts +8 -8
- package/dist/lib/asana/config.js.map +1 -1
- package/dist/lib/asana/mapper.d.ts +2 -2
- package/dist/lib/asana/mapper.js.map +1 -1
- package/dist/lib/database/agents.js +2 -4
- package/dist/lib/database/agents.js.map +1 -1
- package/dist/lib/database/db-safety.d.ts +4 -4
- package/dist/lib/database/db-safety.js +6 -6
- package/dist/lib/database/db-safety.js.map +1 -1
- package/dist/lib/database/driver.d.ts +21 -19
- package/dist/lib/database/driver.js +21 -20
- package/dist/lib/database/driver.js.map +1 -1
- package/dist/lib/database/drizzle.d.ts +9 -9
- package/dist/lib/database/drizzle.js +17 -9
- package/dist/lib/database/drizzle.js.map +1 -1
- package/dist/lib/database/migrations/0001_baseline.js.map +1 -1
- package/dist/lib/database/migrations/0002_work_hooks.js.map +1 -1
- package/dist/lib/database/migrations/0003_actions_redesign.js.map +1 -1
- package/dist/lib/database/migrations/0004_workflow_rules.js.map +1 -1
- package/dist/lib/database/migrations/0005_provider_status_mapping.js.map +1 -1
- package/dist/lib/database/migrations/0006_drop_theme_names_used.js.map +1 -1
- package/dist/lib/database/migrations/0007_add_worktree_columns.js.map +1 -1
- package/dist/lib/database/migrations/0008_add_agent_mount_mode.js.map +1 -1
- package/dist/lib/database/migrations/0009_create_media_items.js.map +1 -1
- package/dist/lib/database/migrations/0010_add_ticket_position.js.map +1 -1
- package/dist/lib/database/migrations/0011_add_review_gate.js.map +1 -1
- package/dist/lib/database/migrations/0012_add_action_network_allowlist.js.map +1 -1
- package/dist/lib/database/migrator.d.ts +3 -3
- package/dist/lib/database/migrator.js.map +1 -1
- package/dist/lib/database/native-validation.d.ts +40 -0
- package/dist/lib/database/native-validation.js +123 -0
- package/dist/lib/database/native-validation.js.map +1 -0
- package/dist/lib/database/pmo-bootstrap.d.ts +2 -2
- package/dist/lib/database/pmo-bootstrap.js +26 -4
- package/dist/lib/database/pmo-bootstrap.js.map +1 -1
- package/dist/lib/database/repositories.js +1 -1
- package/dist/lib/database/repositories.js.map +1 -1
- package/dist/lib/database/settings-store.d.ts +3 -3
- package/dist/lib/database/settings-store.js +2 -2
- package/dist/lib/database/settings-store.js.map +1 -1
- package/dist/lib/database/themes.js +3 -3
- package/dist/lib/database/themes.js.map +1 -1
- package/dist/lib/database/workspace.d.ts +4 -4
- package/dist/lib/database/workspace.js +25 -4
- package/dist/lib/database/workspace.js.map +1 -1
- package/dist/lib/execution/config.d.ts +33 -33
- package/dist/lib/execution/config.js.map +1 -1
- package/dist/lib/execution/devcontainer.d.ts +1 -1
- package/dist/lib/execution/devcontainer.js +37 -4
- package/dist/lib/execution/devcontainer.js.map +1 -1
- package/dist/lib/execution/spawner.d.ts +3 -3
- package/dist/lib/execution/spawner.js.map +1 -1
- package/dist/lib/execution/storage.d.ts +3 -3
- package/dist/lib/execution/storage.js.map +1 -1
- package/dist/lib/external-issues/mapping-store.d.ts +2 -2
- package/dist/lib/external-issues/mapping-store.js.map +1 -1
- package/dist/lib/external-issues/outbound-sync.d.ts +3 -3
- package/dist/lib/external-issues/outbound-sync.js.map +1 -1
- package/dist/lib/jira/config.d.ts +5 -5
- package/dist/lib/jira/config.js.map +1 -1
- package/dist/lib/linear/config.d.ts +8 -8
- package/dist/lib/linear/config.js.map +1 -1
- package/dist/lib/linear/mapper.d.ts +2 -2
- package/dist/lib/linear/mapper.js.map +1 -1
- package/dist/lib/mcp/types.d.ts +2 -2
- package/dist/lib/monday/config.d.ts +9 -9
- package/dist/lib/monday/config.js.map +1 -1
- package/dist/lib/monday/mapper.d.ts +2 -2
- package/dist/lib/monday/mapper.js.map +1 -1
- package/dist/lib/pmo/diet.d.ts +3 -3
- package/dist/lib/pmo/diet.js.map +1 -1
- package/dist/lib/pmo/find-pmo.js +5 -1
- package/dist/lib/pmo/find-pmo.js.map +1 -1
- package/dist/lib/pmo/index.js +7 -6
- package/dist/lib/pmo/index.js.map +1 -1
- package/dist/lib/pmo/storage/base.d.ts +15 -15
- package/dist/lib/pmo/storage/base.js.map +1 -1
- package/dist/lib/pmo/storage/dependencies.js.map +1 -1
- package/dist/lib/pmo/storage/helpers.js.map +1 -1
- package/dist/lib/pmo/storage/index.d.ts +2 -8
- package/dist/lib/pmo/storage/index.js +2 -10
- package/dist/lib/pmo/storage/index.js.map +1 -1
- package/dist/lib/pmo/storage/projects.js.map +1 -1
- package/dist/lib/pmo/storage/roadmaps.js +4 -4
- package/dist/lib/pmo/storage/roadmaps.js.map +1 -1
- package/dist/lib/pmo/storage/specs.js.map +1 -1
- package/dist/lib/pmo/storage/statuses.js +1 -1
- package/dist/lib/pmo/storage/statuses.js.map +1 -1
- package/dist/lib/pmo/storage/tickets.js +1 -1
- package/dist/lib/pmo/storage/tickets.js.map +1 -1
- package/dist/lib/pmo/storage/types.d.ts +2 -2
- package/dist/lib/pmo/storage/views.js.map +1 -1
- package/dist/lib/providers/linear-provider.d.ts +2 -2
- package/dist/lib/providers/linear-provider.js.map +1 -1
- package/dist/lib/providers/resolver.d.ts +3 -3
- package/dist/lib/providers/resolver.js.map +1 -1
- package/dist/lib/providers/state-resolution.d.ts +8 -8
- package/dist/lib/providers/state-resolution.js.map +1 -1
- package/dist/lib/providers/status-mapping.d.ts +2 -2
- package/dist/lib/providers/status-mapping.js.map +1 -1
- package/dist/lib/providers/trigger-config.d.ts +4 -4
- package/dist/lib/providers/trigger-config.js.map +1 -1
- package/dist/lib/providers/types.d.ts +1 -2
- package/dist/lib/registry/index.js +11 -4
- package/dist/lib/registry/index.js.map +1 -1
- package/dist/lib/shortcut/config.d.ts +8 -8
- package/dist/lib/shortcut/config.js.map +1 -1
- package/dist/lib/trello/config.d.ts +10 -10
- package/dist/lib/trello/config.js.map +1 -1
- package/dist/lib/trello/mapper.d.ts +2 -2
- package/dist/lib/trello/mapper.js.map +1 -1
- package/dist/lib/work-lifecycle/action-chaining.d.ts +3 -3
- package/dist/lib/work-lifecycle/action-chaining.js.map +1 -1
- package/dist/lib/work-lifecycle/hooks/manager.d.ts +3 -3
- package/dist/lib/work-lifecycle/hooks/manager.js.map +1 -1
- package/dist/lib/work-lifecycle/hooks/storage.d.ts +3 -3
- package/dist/lib/work-lifecycle/hooks/storage.js.map +1 -1
- package/dist/lib/work-lifecycle/post-execution.d.ts +2 -2
- package/dist/lib/work-lifecycle/post-execution.js.map +1 -1
- package/dist/lib/work-lifecycle/rule-evaluator.d.ts +3 -3
- package/dist/lib/work-lifecycle/rule-evaluator.js.map +1 -1
- package/dist/lib/work-source/config.d.ts +6 -6
- package/dist/lib/work-source/config.js.map +1 -1
- package/dist/lib/work-source/provider-sources.d.ts +12 -12
- package/dist/lib/work-source/provider-sources.js.map +1 -1
- package/oclif.manifest.json +1562 -1562
- package/package.json +4 -3
- package/dist/lib/database/sqlite.d.ts +0 -155
- package/dist/lib/database/sqlite.js +0 -358
- package/dist/lib/database/sqlite.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"0001_baseline.js","sourceRoot":"","sources":["../../../../src/lib/database/migrations/0001_baseline.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEpD,MAAM,CAAC,MAAM,QAAQ,GAAc;IACjC,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,UAAU;IAChB,EAAE,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"0001_baseline.js","sourceRoot":"","sources":["../../../../src/lib/database/migrations/0001_baseline.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEpD,MAAM,CAAC,MAAM,QAAQ,GAAc;IACjC,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,UAAU;IAChB,EAAE,EAAE,CAAC,EAAqB,EAAE,EAAE;QAC5B,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;QAC1B,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IACzB,CAAC;CACF,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"0002_work_hooks.js","sourceRoot":"","sources":["../../../../src/lib/database/migrations/0002_work_hooks.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAA;AAE7F,MAAM,CAAC,MAAM,SAAS,GAAc;IAClC,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,YAAY;IAClB,EAAE,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"0002_work_hooks.js","sourceRoot":"","sources":["../../../../src/lib/database/migrations/0002_work_hooks.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAA;AAE7F,MAAM,CAAC,MAAM,SAAS,GAAc;IAClC,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,YAAY;IAClB,EAAE,EAAE,CAAC,EAAqB,EAAE,EAAE;QAC5B,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;QAC3B,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;IAC5B,CAAC;CACF,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"0003_actions_redesign.js","sourceRoot":"","sources":["../../../../src/lib/database/migrations/0003_actions_redesign.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH;;;GAGG;AACH,SAAS,mBAAmB,CAAC,QAAgB;IAC3C,MAAM,GAAG,GAA2B;QAClC,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,SAAS;QAClB,SAAS,EAAE,MAAM;QACjB,OAAO,EAAE,aAAa;QACtB,SAAS,EAAE,MAAM;QACjB,QAAQ,EAAE,UAAU;KACrB,CAAA;IACD,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAA;AAClC,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAc;IACxC,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,kBAAkB;IACxB,EAAE,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"0003_actions_redesign.js","sourceRoot":"","sources":["../../../../src/lib/database/migrations/0003_actions_redesign.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH;;;GAGG;AACH,SAAS,mBAAmB,CAAC,QAAgB;IAC3C,MAAM,GAAG,GAA2B;QAClC,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,SAAS;QAClB,SAAS,EAAE,MAAM;QACjB,OAAO,EAAE,aAAa;QACtB,SAAS,EAAE,MAAM;QACjB,QAAQ,EAAE,UAAU;KACrB,CAAA;IACD,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAA;AAClC,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAc;IACxC,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,kBAAkB;IACxB,EAAE,EAAE,CAAC,EAAqB,EAAE,EAAE;QAC5B,oCAAoC;QACpC,MAAM,WAAW,GAAG,EAAE,CAAC,OAAO,CAC5B,0EAA0E,CAC3E,CAAC,GAAG,EAAE,CAAA;QACP,IAAI,CAAC,WAAW;YAAE,OAAM;QAExB,gEAAgE;QAChE,MAAM,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,yBAAyB,CAA4B,CAAA;QAC/E,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;QAErD,IAAI,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;YAClC,sDAAsD;YACtD,OAAM;QACR,CAAC;QAED,sCAAsC;QACtC,MAAM,eAAe,GAAG,EAAE,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC,GAAG,EAYjE,CAAA;QAEF,uCAAuC;QACvC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;KAqBP,CAAC,CAAA;QAEF,iEAAiE;QACjE,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC;;;;KAIzB,CAAC,CAAA;QAEF,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;YACrC,8EAA8E;YAC9E,IAAI,SAAS,GAAkB,IAAI,CAAA;YACnC,IAAI,MAAM,CAAC,wBAAwB,EAAE,CAAC;gBACpC,IAAI,CAAC;oBACH,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,wBAAwB,CAAa,CAAA;oBAC1E,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC1B,SAAS,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;oBAChD,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,sBAAsB;gBACxB,CAAC;YACH,CAAC;YAED,wCAAwC;YACxC,MAAM,OAAO,GAAG,MAAM,CAAC,wBAAwB;gBAC7C,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,wBAAwB,CAAC;gBACtD,CAAC,CAAC,IAAI,CAAA;YAER,MAAM,CAAC,GAAG,CACR,MAAM,CAAC,EAAE,EACT,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,UAAU,EACjB,SAAS,EACT,OAAO,EACP,QAAQ,EAAQ,mBAAmB;YACnC,MAAM,EAAU,sBAAsB;YACtC,MAAM,EAAU,0BAA0B;YAC1C,MAAM,CAAC,aAAa,EACpB,CAAC,EAAe,aAAa;YAC7B,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,UAAU,CAAE,+CAA+C;aACnE,CAAA;QACH,CAAC;QAED,cAAc;QACd,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAA;QACjC,EAAE,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAA;IAC9D,CAAC;CACF,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"0004_workflow_rules.js","sourceRoot":"","sources":["../../../../src/lib/database/migrations/0004_workflow_rules.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,aAAa,GAAc;IACtC,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,gBAAgB;IACtB,EAAE,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"0004_workflow_rules.js","sourceRoot":"","sources":["../../../../src/lib/database/migrations/0004_workflow_rules.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,aAAa,GAAc;IACtC,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,gBAAgB;IACtB,EAAE,EAAE,CAAC,EAAqB,EAAE,EAAE;QAC5B,gCAAgC;QAChC,MAAM,WAAW,GAAG,EAAE,CAAC,OAAO,CAC5B,iFAAiF,CAClF,CAAC,GAAG,EAAE,CAAA;QACP,IAAI,WAAW;YAAE,OAAM;QAEvB,kCAAkC;QAClC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;KAYP,CAAC,CAAA;IACJ,CAAC;CACF,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"0005_provider_status_mapping.js","sourceRoot":"","sources":["../../../../src/lib/database/migrations/0005_provider_status_mapping.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,qBAAqB,GAAc;IAC9C,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,yBAAyB;IAC/B,EAAE,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"0005_provider_status_mapping.js","sourceRoot":"","sources":["../../../../src/lib/database/migrations/0005_provider_status_mapping.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,qBAAqB,GAAc;IAC9C,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,yBAAyB;IAC/B,EAAE,EAAE,CAAC,EAAqB,EAAE,EAAE;QAC5B,+DAA+D;QAC/D,0DAA0D;QAC1D,oDAAoD;QACpD,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;KAUP,CAAC,CAAA;QAEF,2DAA2D;QAC3D,uEAAuE;QACvE,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;KAWP,CAAC,CAAA;IACJ,CAAC;CACF,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"0006_drop_theme_names_used.js","sourceRoot":"","sources":["../../../../src/lib/database/migrations/0006_drop_theme_names_used.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,MAAM,CAAC,MAAM,kBAAkB,GAAc;IAC3C,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,uBAAuB;IAC7B,EAAE,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"0006_drop_theme_names_used.js","sourceRoot":"","sources":["../../../../src/lib/database/migrations/0006_drop_theme_names_used.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,MAAM,CAAC,MAAM,kBAAkB,GAAc;IAC3C,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,uBAAuB;IAC7B,EAAE,EAAE,CAAC,EAAqB,EAAE,EAAE;QAC5B,MAAM,SAAS,GAAG,EAAE,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC,GAAG,EAAwB,CAAA;QAChG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,CAAC;YAChD,OAAM,CAAC,sCAAsC;QAC/C,CAAC;QAED,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;KAYP,CAAC,CAAA;IACJ,CAAC;CACF,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"0007_add_worktree_columns.js","sourceRoot":"","sources":["../../../../src/lib/database/migrations/0007_add_worktree_columns.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,MAAM,CAAC,MAAM,kBAAkB,GAAc;IAC3C,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,sBAAsB;IAC5B,EAAE,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"0007_add_worktree_columns.js","sourceRoot":"","sources":["../../../../src/lib/database/migrations/0007_add_worktree_columns.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,MAAM,CAAC,MAAM,kBAAkB,GAAc;IAC3C,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,sBAAsB;IAC5B,EAAE,EAAE,CAAC,EAAqB,EAAE,EAAE;QAC5B,MAAM,WAAW,GAAG,EAAE,CAAC,OAAO,CAC5B,8EAA8E,CAC/E,CAAC,GAAG,EAAE,CAAA;QACP,IAAI,CAAC,WAAW;YAAE,OAAM;QAExB,MAAM,SAAS,GAAG,EAAE,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC,GAAG,EAAwB,CAAA;QAC9F,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,eAAe,CAAC,EAAE,CAAC;YACxD,OAAM,CAAC,wBAAwB;QACjC,CAAC;QAED,EAAE,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAA;QACvE,EAAE,CAAC,IAAI,CAAC,iFAAiF,CAAC,CAAA;QAC1F,EAAE,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAA;QACrF,EAAE,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAA;IACrE,CAAC;CACF,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"0008_add_agent_mount_mode.js","sourceRoot":"","sources":["../../../../src/lib/database/migrations/0008_add_agent_mount_mode.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,MAAM,CAAC,MAAM,iBAAiB,GAAc;IAC1C,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,sBAAsB;IAC5B,EAAE,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"0008_add_agent_mount_mode.js","sourceRoot":"","sources":["../../../../src/lib/database/migrations/0008_add_agent_mount_mode.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,MAAM,CAAC,MAAM,iBAAiB,GAAc;IAC1C,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,sBAAsB;IAC5B,EAAE,EAAE,CAAC,EAAqB,EAAE,EAAE;QAC5B,MAAM,SAAS,GAAG,EAAE,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC,GAAG,EAAwB,CAAA;QACrF,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,YAAY,CAAC,EAAE,CAAC;YACrD,OAAM,CAAC,wBAAwB;QACjC,CAAC;QAED,EAAE,CAAC,IAAI,CACL,uHAAuH,CACxH,CAAA;IACH,CAAC;CACF,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"0009_create_media_items.js","sourceRoot":"","sources":["../../../../src/lib/database/migrations/0009_create_media_items.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,MAAM,CAAC,MAAM,gBAAgB,GAAc;IACzC,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,oBAAoB;IAC1B,EAAE,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"0009_create_media_items.js","sourceRoot":"","sources":["../../../../src/lib/database/migrations/0009_create_media_items.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,MAAM,CAAC,MAAM,gBAAgB,GAAc;IACzC,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,oBAAoB;IAC1B,EAAE,EAAE,CAAC,EAAqB,EAAE,EAAE;QAC5B,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;KAgBP,CAAC,CAAA;IACJ,CAAC;CACF,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"0010_add_ticket_position.js","sourceRoot":"","sources":["../../../../src/lib/database/migrations/0010_add_ticket_position.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,MAAM,CAAC,MAAM,iBAAiB,GAAc;IAC1C,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,qBAAqB;IAC3B,EAAE,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"0010_add_ticket_position.js","sourceRoot":"","sources":["../../../../src/lib/database/migrations/0010_add_ticket_position.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,MAAM,CAAC,MAAM,iBAAiB,GAAc;IAC1C,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,qBAAqB;IAC3B,EAAE,EAAE,CAAC,EAAqB,EAAE,EAAE;QAC5B,MAAM,WAAW,GAAG,EAAE,CAAC,OAAO,CAC5B,0EAA0E,CAC3E,CAAC,GAAG,EAAE,CAAA;QACP,IAAI,CAAC,WAAW;YAAE,OAAM;QAExB,MAAM,SAAS,GAAG,EAAE,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC,GAAG,EAAwB,CAAA;QAC1F,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,EAAE,CAAC;YACnD,OAAM,CAAC,wBAAwB;QACjC,CAAC;QAED,EAAE,CAAC,IAAI,CAAC,wEAAwE,CAAC,CAAA;QACjF,EAAE,CAAC,IAAI,CAAC,gGAAgG,CAAC,CAAA;QAEzG,6DAA6D;QAC7D,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CACzB,wEAAwE,CACzE,CAAC,GAAG,EAA6B,CAAA;QAElC,MAAM,mBAAmB,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;;;;;;;KAWtC,CAAC,CAAA;QACF,MAAM,cAAc,GAAG,EAAE,CAAC,OAAO,CAAC,kDAAkD,CAAC,CAAA;QAErF,KAAK,MAAM,EAAE,SAAS,EAAE,IAAI,QAAQ,EAAE,CAAC;YACrC,MAAM,OAAO,GAAG,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAqB,CAAA;YACtE,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;gBAC9B,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,CAAA;YACjD,CAAC,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;CACF,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"0011_add_review_gate.js","sourceRoot":"","sources":["../../../../src/lib/database/migrations/0011_add_review_gate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,MAAM,CAAC,MAAM,aAAa,GAAc;IACtC,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,iBAAiB;IACvB,EAAE,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"0011_add_review_gate.js","sourceRoot":"","sources":["../../../../src/lib/database/migrations/0011_add_review_gate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,MAAM,CAAC,MAAM,aAAa,GAAc;IACtC,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,iBAAiB;IACvB,EAAE,EAAE,CAAC,EAAqB,EAAE,EAAE;QAC5B,MAAM,WAAW,GAAG,EAAE,CAAC,OAAO,CAC5B,0EAA0E,CAC3E,CAAC,GAAG,EAAE,CAAA;QACP,IAAI,CAAC,WAAW;YAAE,OAAM;QAExB,MAAM,SAAS,GAAG,EAAE,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC,GAAG,EAAwB,CAAA;QAC1F,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,aAAa,CAAC,EAAE,CAAC;YACtD,OAAM,CAAC,wBAAwB;QACjC,CAAC;QAED,EAAE,CAAC,IAAI,CACL,yGAAyG,CAC1G,CAAA;IACH,CAAC;CACF,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"0012_add_action_network_allowlist.js","sourceRoot":"","sources":["../../../../src/lib/database/migrations/0012_add_action_network_allowlist.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,MAAM,CAAC,MAAM,yBAAyB,GAAc;IAClD,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,8BAA8B;IACpC,EAAE,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"0012_add_action_network_allowlist.js","sourceRoot":"","sources":["../../../../src/lib/database/migrations/0012_add_action_network_allowlist.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,MAAM,CAAC,MAAM,yBAAyB,GAAc;IAClD,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,8BAA8B;IACpC,EAAE,EAAE,CAAC,EAAqB,EAAE,EAAE;QAC5B,MAAM,WAAW,GAAG,EAAE,CAAC,OAAO,CAC5B,0EAA0E,CAC3E,CAAC,GAAG,EAAE,CAAA;QACP,IAAI,CAAC,WAAW;YAAE,OAAM;QAExB,MAAM,SAAS,GAAG,EAAE,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC,GAAG,EAAwB,CAAA;QAC1F,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,mBAAmB,CAAC,EAAE,CAAC;YAC5D,OAAM,CAAC,wBAAwB;QACjC,CAAC;QAED,EAAE,CAAC,IAAI,CACL,2DAA2D,CAC5D,CAAA;IACH,CAAC;CACF,CAAA"}
|
|
@@ -5,14 +5,14 @@
|
|
|
5
5
|
* pending migrations on startup. Handles the initial state where
|
|
6
6
|
* existing databases have no migrations table yet.
|
|
7
7
|
*/
|
|
8
|
-
import
|
|
8
|
+
import Database from 'better-sqlite3';
|
|
9
9
|
export interface Migration {
|
|
10
10
|
/** Unique, sortable migration ID (e.g. "0001") */
|
|
11
11
|
id: string;
|
|
12
12
|
/** Human-readable name (e.g. "baseline") */
|
|
13
13
|
name: string;
|
|
14
14
|
/** Apply the migration to the database */
|
|
15
|
-
up: (db:
|
|
15
|
+
up: (db: Database.Database) => void;
|
|
16
16
|
}
|
|
17
17
|
/**
|
|
18
18
|
* Run all pending migrations against the database.
|
|
@@ -24,4 +24,4 @@ export interface Migration {
|
|
|
24
24
|
*
|
|
25
25
|
* Safe to call on both brand-new and existing databases.
|
|
26
26
|
*/
|
|
27
|
-
export declare function runDrizzleMigrations(db:
|
|
27
|
+
export declare function runDrizzleMigrations(db: Database.Database, migrations: Migration[]): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrator.js","sourceRoot":"","sources":["../../../src/lib/database/migrator.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAaH;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB,CAAC,
|
|
1
|
+
{"version":3,"file":"migrator.js","sourceRoot":"","sources":["../../../src/lib/database/migrator.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAaH;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB,CAAC,EAAqB,EAAE,UAAuB;IACjF,mCAAmC;IACnC,EAAE,CAAC,IAAI,CAAC;;;;;;GAMP,CAAC,CAAA;IAEF,8BAA8B;IAC9B,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC,GAAG,EAAsB,CAAA;IACtF,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAElD,oCAAoC;IACpC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;YACjC,SAAQ;QACV,CAAC;QAED,MAAM,cAAc,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;YACzC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;YAChB,EAAE,CAAC,OAAO,CACR,qEAAqE,CACtE,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAA;QAC/D,CAAC,CAAC,CAAA;QAEF,cAAc,EAAE,CAAA;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export interface BetterSqlite3RuntimeInfo {
|
|
2
|
+
nodeVersion: string;
|
|
3
|
+
nodeMajor: number | null;
|
|
4
|
+
abi: string;
|
|
5
|
+
platform: NodeJS.Platform;
|
|
6
|
+
arch: string;
|
|
7
|
+
isBun: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface BetterSqlite3ValidationOptions {
|
|
10
|
+
context: string;
|
|
11
|
+
loadModule?: () => Promise<{
|
|
12
|
+
default: new (path: string) => BetterSqlite3DatabaseLike;
|
|
13
|
+
}>;
|
|
14
|
+
}
|
|
15
|
+
interface BetterSqlite3DatabaseLike {
|
|
16
|
+
pragma(sql: string): unknown;
|
|
17
|
+
close(): void;
|
|
18
|
+
}
|
|
19
|
+
export declare function getBetterSqlite3RuntimeInfo(): BetterSqlite3RuntimeInfo;
|
|
20
|
+
export declare function buildBetterSqlite3ValidationMessage(cause: unknown, info: BetterSqlite3RuntimeInfo, context: string): string;
|
|
21
|
+
/**
|
|
22
|
+
* Detect whether an error is caused by a missing or incompatible better-sqlite3
|
|
23
|
+
* native binding (.node file) rather than a normal SQLite operational error.
|
|
24
|
+
*
|
|
25
|
+
* Common patterns:
|
|
26
|
+
* - "Could not locate the bindings file" (node-gyp / node-bindings)
|
|
27
|
+
* - "better_sqlite3.node" in the message (missing prebuilt)
|
|
28
|
+
* - "MODULE_NOT_FOUND" code (Node can't resolve the addon)
|
|
29
|
+
* - "was compiled against a different Node.js version" (ABI mismatch)
|
|
30
|
+
* - "A dynamic link library (DLL) initialization routine failed" (Windows ABI issue)
|
|
31
|
+
* - "isexe" / "which.js" (bun node-gyp compatibility issues)
|
|
32
|
+
*/
|
|
33
|
+
export declare function isBetterSqlite3NativeError(error: unknown): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* If the given error is a native binding error, throw a user-friendly error
|
|
36
|
+
* with actionable fix steps. Otherwise re-throw the original error.
|
|
37
|
+
*/
|
|
38
|
+
export declare function throwIfNativeBindingError(error: unknown, context: string): void;
|
|
39
|
+
export declare function validateBetterSqlite3NativeBinding(options: BetterSqlite3ValidationOptions): Promise<void>;
|
|
40
|
+
export {};
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
const SUPPORTED_NODE_MAJORS = [20, 22, 23, 24, 25];
|
|
2
|
+
function parseNodeMajor(version) {
|
|
3
|
+
const match = /^v?(\d+)/.exec(version);
|
|
4
|
+
return match ? Number.parseInt(match[1], 10) : null;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Detect whether the current runtime is Bun rather than Node.js.
|
|
8
|
+
* Bun sets `process.versions.bun` and the `Bun` global.
|
|
9
|
+
*/
|
|
10
|
+
function detectBunRuntime() {
|
|
11
|
+
return typeof process.versions.bun === 'string'
|
|
12
|
+
|| typeof globalThis.Bun !== 'undefined';
|
|
13
|
+
}
|
|
14
|
+
export function getBetterSqlite3RuntimeInfo() {
|
|
15
|
+
return {
|
|
16
|
+
nodeVersion: process.version,
|
|
17
|
+
nodeMajor: parseNodeMajor(process.version),
|
|
18
|
+
abi: process.versions.modules,
|
|
19
|
+
platform: process.platform,
|
|
20
|
+
arch: process.arch,
|
|
21
|
+
isBun: detectBunRuntime(),
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
export function buildBetterSqlite3ValidationMessage(cause, info, context) {
|
|
25
|
+
const reason = cause instanceof Error ? cause.message : String(cause);
|
|
26
|
+
const runtimeLabel = info.isBun ? 'bun' : 'node';
|
|
27
|
+
const nodeMajorHint = info.nodeMajor === null || SUPPORTED_NODE_MAJORS.includes(info.nodeMajor)
|
|
28
|
+
? null
|
|
29
|
+
: `- Unsupported Node major for this CLI: ${info.nodeMajor} (supported: ${SUPPORTED_NODE_MAJORS.join(', ')})`;
|
|
30
|
+
const lines = [
|
|
31
|
+
`better-sqlite3 native module failed to load (${context}).`,
|
|
32
|
+
`Runtime: ${runtimeLabel} ${info.nodeVersion} (ABI ${info.abi}) on ${info.platform}-${info.arch}.`,
|
|
33
|
+
`Error: ${reason}`,
|
|
34
|
+
'',
|
|
35
|
+
'Fix steps:',
|
|
36
|
+
'1. Rebuild native bindings: npm rebuild better-sqlite3',
|
|
37
|
+
'2. If globally installed, reinstall: pnpm install -g @proletariat/cli --force',
|
|
38
|
+
' (or: npm install -g @proletariat/cli --force)',
|
|
39
|
+
'3. If running from source, reinstall workspace deps: pnpm install',
|
|
40
|
+
];
|
|
41
|
+
if (nodeMajorHint) {
|
|
42
|
+
lines.splice(2, 0, nodeMajorHint);
|
|
43
|
+
}
|
|
44
|
+
if (info.isBun || isBunNodeGypError(cause)) {
|
|
45
|
+
lines.push('', 'Bun users:', ' Bun\'s node-gyp compatibility is limited and may fail to compile', ' better-sqlite3. Recommended alternatives:', ' - Install with npm instead: npm install -g @proletariat/cli', ' - Install with Homebrew (macOS): brew install chrismcdermut/proletariat/prlt', ' - Use Node.js 22 (LTS) for best compatibility');
|
|
46
|
+
}
|
|
47
|
+
return lines.join('\n');
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Detect whether an error looks like a bun-specific node-gyp failure.
|
|
51
|
+
* Bun's node-gyp integration has known issues with the `isexe` module
|
|
52
|
+
* (used by `which`) and other native compilation steps.
|
|
53
|
+
*/
|
|
54
|
+
function isBunNodeGypError(error) {
|
|
55
|
+
if (!(error instanceof Error))
|
|
56
|
+
return false;
|
|
57
|
+
const msg = error.message.toLowerCase();
|
|
58
|
+
return msg.includes('isexe') || msg.includes('which.js') || msg.includes('node-gyp');
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Detect whether an error is caused by a missing or incompatible better-sqlite3
|
|
62
|
+
* native binding (.node file) rather than a normal SQLite operational error.
|
|
63
|
+
*
|
|
64
|
+
* Common patterns:
|
|
65
|
+
* - "Could not locate the bindings file" (node-gyp / node-bindings)
|
|
66
|
+
* - "better_sqlite3.node" in the message (missing prebuilt)
|
|
67
|
+
* - "MODULE_NOT_FOUND" code (Node can't resolve the addon)
|
|
68
|
+
* - "was compiled against a different Node.js version" (ABI mismatch)
|
|
69
|
+
* - "A dynamic link library (DLL) initialization routine failed" (Windows ABI issue)
|
|
70
|
+
* - "isexe" / "which.js" (bun node-gyp compatibility issues)
|
|
71
|
+
*/
|
|
72
|
+
export function isBetterSqlite3NativeError(error) {
|
|
73
|
+
if (!(error instanceof Error))
|
|
74
|
+
return false;
|
|
75
|
+
const msg = error.message.toLowerCase();
|
|
76
|
+
const code = error.code;
|
|
77
|
+
if (code === 'MODULE_NOT_FOUND')
|
|
78
|
+
return true;
|
|
79
|
+
if (msg.includes('could not locate the bindings file'))
|
|
80
|
+
return true;
|
|
81
|
+
if (msg.includes('better_sqlite3.node'))
|
|
82
|
+
return true;
|
|
83
|
+
if (msg.includes('was compiled against a different node.js version'))
|
|
84
|
+
return true;
|
|
85
|
+
if (msg.includes('dll initialization routine failed'))
|
|
86
|
+
return true;
|
|
87
|
+
if (msg.includes('cannot open shared object file'))
|
|
88
|
+
return true;
|
|
89
|
+
if (msg.includes('is not a valid win32 application'))
|
|
90
|
+
return true;
|
|
91
|
+
if (msg.includes('node_module_version'))
|
|
92
|
+
return true;
|
|
93
|
+
// Bun-specific: node-gyp fails because bun's `which` shim uses an
|
|
94
|
+
// incompatible `isexe` version that throws at runtime.
|
|
95
|
+
if (msg.includes('isexe') && msg.includes('not a function'))
|
|
96
|
+
return true;
|
|
97
|
+
return false;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* If the given error is a native binding error, throw a user-friendly error
|
|
101
|
+
* with actionable fix steps. Otherwise re-throw the original error.
|
|
102
|
+
*/
|
|
103
|
+
export function throwIfNativeBindingError(error, context) {
|
|
104
|
+
if (isBetterSqlite3NativeError(error)) {
|
|
105
|
+
const info = getBetterSqlite3RuntimeInfo();
|
|
106
|
+
throw new Error(buildBetterSqlite3ValidationMessage(error, info, context));
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
export async function validateBetterSqlite3NativeBinding(options) {
|
|
110
|
+
const loadModule = options.loadModule ?? (async () => import('better-sqlite3'));
|
|
111
|
+
const runtime = getBetterSqlite3RuntimeInfo();
|
|
112
|
+
try {
|
|
113
|
+
const mod = await loadModule();
|
|
114
|
+
const Database = mod.default;
|
|
115
|
+
const db = new Database(':memory:');
|
|
116
|
+
db.pragma('foreign_keys = ON');
|
|
117
|
+
db.close();
|
|
118
|
+
}
|
|
119
|
+
catch (error) {
|
|
120
|
+
throw new Error(buildBetterSqlite3ValidationMessage(error, runtime, options.context));
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=native-validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native-validation.js","sourceRoot":"","sources":["../../../src/lib/database/native-validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Raw SQL operations required for PMO initialization and teardown.
|
|
5
5
|
* These run before the storage layer is available.
|
|
6
6
|
*/
|
|
7
|
-
import
|
|
7
|
+
import Database from 'better-sqlite3';
|
|
8
8
|
/**
|
|
9
9
|
* Check if PMO tables exist and get basic stats.
|
|
10
10
|
* Raw SQL: uses sqlite_master introspection (pre-migration bootstrap).
|
|
@@ -27,4 +27,4 @@ export declare function dropPMOTables(dbPath: string, tables: string[]): void;
|
|
|
27
27
|
/**
|
|
28
28
|
* Upsert a workspace setting (key-value pair).
|
|
29
29
|
*/
|
|
30
|
-
export declare function upsertWorkspaceSetting(db:
|
|
30
|
+
export declare function upsertWorkspaceSetting(db: Database.Database, key: string, value: string): void;
|
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
* Raw SQL operations required for PMO initialization and teardown.
|
|
5
5
|
* These run before the storage layer is available.
|
|
6
6
|
*/
|
|
7
|
-
import
|
|
7
|
+
import Database from 'better-sqlite3';
|
|
8
|
+
import { throwIfNativeBindingError } from './native-validation.js';
|
|
8
9
|
import { createDrizzleConnection } from './drizzle.js';
|
|
9
10
|
import { workspaceSettings as workspaceSettingsTable, } from './drizzle-schema.js';
|
|
10
11
|
/**
|
|
@@ -12,7 +13,14 @@ import { workspaceSettings as workspaceSettingsTable, } from './drizzle-schema.j
|
|
|
12
13
|
* Raw SQL: uses sqlite_master introspection (pre-migration bootstrap).
|
|
13
14
|
*/
|
|
14
15
|
export function checkPMOExists(dbPath) {
|
|
15
|
-
|
|
16
|
+
let db;
|
|
17
|
+
try {
|
|
18
|
+
db = new Database(dbPath);
|
|
19
|
+
}
|
|
20
|
+
catch (error) {
|
|
21
|
+
throwIfNativeBindingError(error, 'checkPMOExists');
|
|
22
|
+
throw error;
|
|
23
|
+
}
|
|
16
24
|
try {
|
|
17
25
|
const result = db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='pmo_projects'").get();
|
|
18
26
|
if (result === undefined) {
|
|
@@ -35,7 +43,14 @@ export function checkPMOExists(dbPath) {
|
|
|
35
43
|
* Raw SQL: pre-migration bootstrap query.
|
|
36
44
|
*/
|
|
37
45
|
export function getPMOSetting(dbPath, key) {
|
|
38
|
-
|
|
46
|
+
let db;
|
|
47
|
+
try {
|
|
48
|
+
db = new Database(dbPath);
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
throwIfNativeBindingError(error, 'getPMOSetting');
|
|
52
|
+
throw error;
|
|
53
|
+
}
|
|
39
54
|
try {
|
|
40
55
|
const result = db.prepare('SELECT value FROM pmo_settings WHERE key = ?').get(key);
|
|
41
56
|
return result?.value ?? null;
|
|
@@ -52,7 +67,14 @@ export function getPMOSetting(dbPath, key) {
|
|
|
52
67
|
* Raw SQL: DDL operations (DROP TABLE) are not supported by Drizzle.
|
|
53
68
|
*/
|
|
54
69
|
export function dropPMOTables(dbPath, tables) {
|
|
55
|
-
|
|
70
|
+
let db;
|
|
71
|
+
try {
|
|
72
|
+
db = new Database(dbPath);
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
throwIfNativeBindingError(error, 'dropPMOTables');
|
|
76
|
+
throw error;
|
|
77
|
+
}
|
|
56
78
|
try {
|
|
57
79
|
for (const table of tables) {
|
|
58
80
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pmo-bootstrap.js","sourceRoot":"","sources":["../../../src/lib/database/pmo-bootstrap.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"pmo-bootstrap.js","sourceRoot":"","sources":["../../../src/lib/database/pmo-bootstrap.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,7 +43,7 @@ export function getWorkspaceRepositories(workspacePath) {
|
|
|
43
43
|
const rows = ddb.select().from(repositoriesTable)
|
|
44
44
|
.orderBy(asc(repositoriesTable.addedAt))
|
|
45
45
|
.all();
|
|
46
|
-
return rows.map(
|
|
46
|
+
return rows.map(row => ({
|
|
47
47
|
name: row.name,
|
|
48
48
|
path: row.path,
|
|
49
49
|
type: (row.type || 'main'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repositories.js","sourceRoot":"","sources":["../../../src/lib/database/repositories.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AACjC,OAAO,EACL,YAAY,IAAI,iBAAiB,GAClC,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAW5C;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,aAAqB,EAAE,KAAgG;IAC/J,WAAW,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE;QACjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC;iBAC1B,MAAM,CAAC;gBACN,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,MAAM;gBACZ,SAAS,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI;gBAClC,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI;gBAC3B,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aAClC,CAAC;iBACD,kBAAkB,CAAC;gBAClB,MAAM,EAAE,iBAAiB,CAAC,IAAI;gBAC9B,GAAG,EAAE;oBACH,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,IAAI,EAAE,MAAM;oBACZ,SAAS,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI;oBAClC,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI;oBAC3B,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBAClC;aACF,CAAC;iBACD,GAAG,EAAE,CAAA;QACV,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,aAAqB;IAC5D,OAAO,WAAW,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE;QACxC,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC;aAC9C,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;aACvC,GAAG,EAAE,CAAA;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"repositories.js","sourceRoot":"","sources":["../../../src/lib/database/repositories.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AACjC,OAAO,EACL,YAAY,IAAI,iBAAiB,GAClC,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAW5C;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,aAAqB,EAAE,KAAgG;IAC/J,WAAW,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE;QACjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC;iBAC1B,MAAM,CAAC;gBACN,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,MAAM;gBACZ,SAAS,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI;gBAClC,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI;gBAC3B,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aAClC,CAAC;iBACD,kBAAkB,CAAC;gBAClB,MAAM,EAAE,iBAAiB,CAAC,IAAI;gBAC9B,GAAG,EAAE;oBACH,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,IAAI,EAAE,MAAM;oBACZ,SAAS,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI;oBAClC,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI;oBAC3B,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBAClC;aACF,CAAC;iBACD,GAAG,EAAE,CAAA;QACV,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,aAAqB;IAC5D,OAAO,WAAW,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE;QACxC,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC;aAC9C,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;aACvC,GAAG,EAAE,CAAA;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACtB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,IAAI,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,MAAM,CAA0B;YACnD,UAAU,EAAE,GAAG,CAAC,SAAS,IAAI,SAAS;YACtC,MAAM,EAAE,CAAC,GAAG,CAAC,MAAM,IAAI,SAAS,CAA0C;YAC1E,QAAQ,EAAE,GAAG,CAAC,OAAO;SACtB,CAAC,CAAC,CAAA;IACL,CAAC,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* All workspace settings access should go through this store.
|
|
9
9
|
*/
|
|
10
10
|
import type { DatabaseDriver } from './driver.js';
|
|
11
|
-
import
|
|
11
|
+
import Database from 'better-sqlite3';
|
|
12
12
|
/**
|
|
13
13
|
* Provides CRUD access to the workspace_settings key-value table.
|
|
14
14
|
*
|
|
@@ -27,7 +27,7 @@ export declare class SettingsStore {
|
|
|
27
27
|
* Accepts either a DatabaseDriver or a raw better-sqlite3 Database
|
|
28
28
|
* (for backward compatibility during migration).
|
|
29
29
|
*/
|
|
30
|
-
constructor(driverOrDb: DatabaseDriver |
|
|
30
|
+
constructor(driverOrDb: DatabaseDriver | Database.Database);
|
|
31
31
|
/**
|
|
32
32
|
* Get a setting value by key. Returns null if not found.
|
|
33
33
|
*/
|
|
@@ -57,4 +57,4 @@ export declare class SettingsStore {
|
|
|
57
57
|
* Create a SettingsStore from a raw better-sqlite3 Database.
|
|
58
58
|
* Convenience function for backward compatibility.
|
|
59
59
|
*/
|
|
60
|
-
export declare function createSettingsStore(db:
|
|
60
|
+
export declare function createSettingsStore(db: Database.Database): SettingsStore;
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*
|
|
8
8
|
* All workspace settings access should go through this store.
|
|
9
9
|
*/
|
|
10
|
-
import
|
|
10
|
+
import Database from 'better-sqlite3';
|
|
11
11
|
import { wrapDatabase } from './driver.js';
|
|
12
12
|
const SETTINGS_TABLE = 'workspace_settings';
|
|
13
13
|
/**
|
|
@@ -29,7 +29,7 @@ export class SettingsStore {
|
|
|
29
29
|
* (for backward compatibility during migration).
|
|
30
30
|
*/
|
|
31
31
|
constructor(driverOrDb) {
|
|
32
|
-
if (driverOrDb instanceof
|
|
32
|
+
if (driverOrDb instanceof Database) {
|
|
33
33
|
this.driver = wrapDatabase(driverOrDb);
|
|
34
34
|
}
|
|
35
35
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-store.js","sourceRoot":"","sources":["../../../src/lib/database/settings-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,
|
|
1
|
+
{"version":3,"file":"settings-store.js","sourceRoot":"","sources":["../../../src/lib/database/settings-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,QAAQ,MAAM,gBAAgB,CAAA;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C,MAAM,cAAc,GAAG,oBAAoB,CAAA;AAE3C;;;;;;;;;;GAUG;AACH,MAAM,OAAO,aAAa;IAChB,MAAM,CAAgB;IAE9B;;;;OAIG;IACH,YAAY,UAA8C;QACxD,IAAI,UAAU,YAAY,QAAQ,EAAE,CAAC;YACnC,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,CAAA;QACxC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,GAAG,UAAU,CAAA;QAC1B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,GAAW;QACb,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM;aACpB,OAAO,CAAoB,qBAAqB,cAAc,gBAAgB,CAAC;aAC/E,GAAG,CAAC,GAAG,CAAC,CAAA;QACX,OAAO,GAAG,EAAE,KAAK,IAAI,IAAI,CAAA;IAC3B,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,GAAW,EAAE,KAAa;QAC5B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;oBACJ,cAAc;;;KAG7B,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IACpB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,GAAW;QAChB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,cAAc,gBAAgB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC7E,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,GAAW;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,CAAA;IAC/B,CAAC;IAED;;;OAGG;IACH,WAAW,CAAC,MAAc;QACxB,OAAO,IAAI,CAAC,MAAM;aACf,OAAO,CAAiC,0BAA0B,cAAc,mBAAmB,CAAC;aACpG,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,CAAA;IACtB,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,EAAqB;IACvD,OAAO,IAAI,aAAa,CAAC,EAAE,CAAC,CAAA;AAC9B,CAAC"}
|
|
@@ -146,7 +146,7 @@ export function getThemeNames(workspacePath, themeId) {
|
|
|
146
146
|
.where(eq(agentThemeNamesTable.themeId, themeId))
|
|
147
147
|
.orderBy(asc(agentThemeNamesTable.name))
|
|
148
148
|
.all();
|
|
149
|
-
return rows.map(
|
|
149
|
+
return rows.map(row => ({
|
|
150
150
|
theme_id: row.themeId,
|
|
151
151
|
name: row.name,
|
|
152
152
|
}));
|
|
@@ -182,8 +182,8 @@ export function getAvailableThemeNames(workspacePath, themeId) {
|
|
|
182
182
|
}
|
|
183
183
|
}
|
|
184
184
|
return names
|
|
185
|
-
.map(
|
|
186
|
-
.filter(
|
|
185
|
+
.map(n => n.name)
|
|
186
|
+
.filter(name => !inUseNames.has(name.toLowerCase()));
|
|
187
187
|
});
|
|
188
188
|
}
|
|
189
189
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"themes.js","sourceRoot":"","sources":["../../../src/lib/database/themes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAA;AAC7B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AACjE,OAAO,EACL,SAAS,IAAI,cAAc,EAC3B,MAAM,IAAI,WAAW,EACrB,WAAW,IAAI,gBAAgB,EAC/B,eAAe,IAAI,oBAAoB,GACxC,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAgBhD;;GAEG;AACH,SAAS,YAAY,CAAC,GAOrB;IACC,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,YAAY,EAAE,GAAG,CAAC,WAAW;QAC7B,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;QAC7B,UAAU,EAAE,GAAG,CAAC,SAAS;KAC1B,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,aAAqB;IAClD,MAAM,MAAM,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAA;IAEhD,IAAI,MAAM,EAAE,eAAe,EAAE,CAAC;QAC5B,OAAO,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,eAAe,CAAC,CAAA;IACxD,CAAC;IAED,MAAM,SAAS,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAA;IACnD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;IACnD,IAAI,WAAW,EAAE,QAAQ,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAA;QAC3D,IAAI,KAAK,EAAE,CAAC;YACV,cAAc,CAAC,aAAa,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAA;YACnD,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,CAAC,aAAa,CAAC,CAAA;IACvC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,UAAU,GAAG,aAAa,CAAC,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,CAAA;QACzD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;QAEvE,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;QACjF,IAAI,aAAa,EAAE,CAAC;YAClB,cAAc,CAAC,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,CAAA;YACvC,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,aAAqB,EAAE,OAAsB;IAC1E,WAAW,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE;QACjC,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,gBAAgB,CAAC,EAAE,EAAE,CAAC;iBAClD,IAAI,CAAC,gBAAgB,CAAC;iBACtB,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;iBACvC,GAAG,EAAE,CAAA;YACR,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CAAC,UAAU,OAAO,aAAa,CAAC,CAAA;YACjD,CAAC;QACH,CAAC;QAED,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC;aACvB,GAAG,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC;aAC/B,KAAK,CAAC,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;aAC/B,GAAG,EAAE,CAAA;IACV,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,aAAqB;IAC7C,OAAO,WAAW,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE;QACxC,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC;aAC7C,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;aACnE,GAAG,EAAE,CAAA;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;IAC/B,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,aAAqB,EAAE,OAAe;IAC7D,OAAO,WAAW,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE;QACxC,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC;aAC5C,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;aACvC,GAAG,EAAE,CAAA;QACR,OAAO,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACvC,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CACzB,aAAqB,EACrB,KAAiG;IAEjG,OAAO,WAAW,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE;QACxC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;QAEpC,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC;YAClC,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,IAAI;YACtC,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,KAAK;YAC/B,SAAS,EAAE,GAAG;SACf,CAAC,CAAC,GAAG,EAAE,CAAA;QAER,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC;aAChD,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;aACxC,GAAG,EAAE,CAAA;QACR,OAAO,YAAY,CAAC,OAAQ,CAAC,CAAA;IAC/B,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,aAAqB,EAAE,OAAe;IAChE,OAAO,WAAW,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE;QACxC,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,gBAAgB,CAAC,OAAO,EAAE,CAAC;aAC5D,IAAI,CAAC,gBAAgB,CAAC;aACtB,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;aACvC,GAAG,EAAE,CAAA;QAER,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,KAAK,CAAA;QACd,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;QAClD,CAAC;QAED,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC;aACzB,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;aACvC,GAAG,EAAE,CAAA;QACR,OAAO,IAAI,CAAA;IACb,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,aAAqB,EAAE,OAAe;IAClE,OAAO,WAAW,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE;QACxC,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC;aACjD,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;aAChD,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;aACvC,GAAG,EAAE,CAAA;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"themes.js","sourceRoot":"","sources":["../../../src/lib/database/themes.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Core database lifecycle: open, create, get config, path resolution.
|
|
5
5
|
*/
|
|
6
|
-
import
|
|
6
|
+
import Database from 'better-sqlite3';
|
|
7
7
|
import { type DrizzleDB } from './drizzle.js';
|
|
8
8
|
import type { DatabaseDriver } from './driver.js';
|
|
9
9
|
export interface WorkspaceConfig {
|
|
@@ -18,7 +18,7 @@ export interface WorkspaceConfig {
|
|
|
18
18
|
* Open the workspace database, wrap it with Drizzle, run a function,
|
|
19
19
|
* and close the connection. Handles the open/close lifecycle.
|
|
20
20
|
*/
|
|
21
|
-
export declare function withDrizzle<T>(workspacePath: string, fn: (ddb: DrizzleDB, sqliteDb:
|
|
21
|
+
export declare function withDrizzle<T>(workspacePath: string, fn: (ddb: DrizzleDB, sqliteDb: Database.Database) => T): T;
|
|
22
22
|
/**
|
|
23
23
|
* Get the database path for a workspace
|
|
24
24
|
*/
|
|
@@ -37,7 +37,7 @@ export declare function getConfigPath(workspacePath: string): string;
|
|
|
37
37
|
*/
|
|
38
38
|
export declare function openWorkspaceDatabase(workspacePath: string, options?: {
|
|
39
39
|
readonly?: boolean;
|
|
40
|
-
}):
|
|
40
|
+
}): Database.Database;
|
|
41
41
|
/**
|
|
42
42
|
* Open workspace database and return a DatabaseDriver.
|
|
43
43
|
* Preferred over openWorkspaceDatabase for new code.
|
|
@@ -46,7 +46,7 @@ export declare function openWorkspaceDriver(workspacePath: string): DatabaseDriv
|
|
|
46
46
|
/**
|
|
47
47
|
* Create and initialize workspace database
|
|
48
48
|
*/
|
|
49
|
-
export declare function createWorkspaceDatabase(workspacePath: string, type: 'hq' | 'workspace', workspaceName: string, hasPMO?: boolean):
|
|
49
|
+
export declare function createWorkspaceDatabase(workspacePath: string, type: 'hq' | 'workspace', workspaceName: string, hasPMO?: boolean): Database.Database;
|
|
50
50
|
/**
|
|
51
51
|
* Get workspace configuration
|
|
52
52
|
*/
|
|
@@ -3,11 +3,12 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Core database lifecycle: open, create, get config, path resolution.
|
|
5
5
|
*/
|
|
6
|
-
import
|
|
6
|
+
import Database from 'better-sqlite3';
|
|
7
7
|
import * as fs from 'node:fs';
|
|
8
8
|
import * as path from 'node:path';
|
|
9
9
|
import { isEphemeralAgentName } from '../themes.js';
|
|
10
10
|
import { isReadOnlyHQMount } from '../container.js';
|
|
11
|
+
import { throwIfNativeBindingError } from './native-validation.js';
|
|
11
12
|
import { runDrizzleMigrations } from './migrator.js';
|
|
12
13
|
import { ALL_MIGRATIONS } from './migrations/index.js';
|
|
13
14
|
import { createDrizzleConnection } from './drizzle.js';
|
|
@@ -91,7 +92,14 @@ export function openWorkspaceDatabase(workspacePath, options) {
|
|
|
91
92
|
// Auto-backup before opening (cheap insurance against corruption)
|
|
92
93
|
createRotatingBackup(dbPath);
|
|
93
94
|
}
|
|
94
|
-
let db
|
|
95
|
+
let db;
|
|
96
|
+
try {
|
|
97
|
+
db = new Database(dbPath, readOnly ? { readonly: true } : undefined);
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
100
|
+
throwIfNativeBindingError(error, 'openWorkspaceDatabase');
|
|
101
|
+
throw error;
|
|
102
|
+
}
|
|
95
103
|
if (!readOnly) {
|
|
96
104
|
// Enable WAL mode — allows concurrent readers with one writer,
|
|
97
105
|
// significantly more resistant to corruption than journal_mode=delete
|
|
@@ -113,7 +121,13 @@ export function openWorkspaceDatabase(workspacePath, options) {
|
|
|
113
121
|
`Run 'prlt db repair' for manual recovery options.`);
|
|
114
122
|
}
|
|
115
123
|
// Re-open the repaired database
|
|
116
|
-
|
|
124
|
+
try {
|
|
125
|
+
db = new Database(dbPath);
|
|
126
|
+
}
|
|
127
|
+
catch (error) {
|
|
128
|
+
throwIfNativeBindingError(error, 'openWorkspaceDatabase (post-repair)');
|
|
129
|
+
throw error;
|
|
130
|
+
}
|
|
117
131
|
enableWALMode(db);
|
|
118
132
|
db.pragma('foreign_keys = ON');
|
|
119
133
|
db.pragma('busy_timeout = 5000');
|
|
@@ -146,7 +160,14 @@ export function createWorkspaceDatabase(workspacePath, type, workspaceName, hasP
|
|
|
146
160
|
schemaVersion: 1
|
|
147
161
|
};
|
|
148
162
|
fs.writeFileSync(configPath, JSON.stringify(bootstrapConfig, null, 2));
|
|
149
|
-
|
|
163
|
+
let db;
|
|
164
|
+
try {
|
|
165
|
+
db = new Database(dbPath);
|
|
166
|
+
}
|
|
167
|
+
catch (error) {
|
|
168
|
+
throwIfNativeBindingError(error, 'createWorkspaceDatabase');
|
|
169
|
+
throw error;
|
|
170
|
+
}
|
|
150
171
|
enableWALMode(db);
|
|
151
172
|
db.pragma('foreign_keys = ON');
|
|
152
173
|
runDrizzleMigrations(db, ALL_MIGRATIONS);
|