@jungjaehoon/mama-os 0.77.0 → 0.79.0
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/CHANGELOG.md +446 -0
- package/README.md +59 -30
- package/db/migrations/002-model-runs-parent-index.sql +11 -0
- package/db/migrations/003-upkeep-settled.sql +15 -0
- package/dist/api/google-read-actions.d.ts +30 -0
- package/dist/api/google-read-actions.d.ts.map +1 -0
- package/dist/api/google-read-actions.js +256 -0
- package/dist/api/google-read-actions.js.map +1 -0
- package/dist/api/record-actions.d.ts.map +1 -1
- package/dist/api/record-actions.js +23 -5
- package/dist/api/record-actions.js.map +1 -1
- package/dist/api/report-handler.d.ts +0 -6
- package/dist/api/report-handler.d.ts.map +1 -1
- package/dist/api/report-handler.js +0 -54
- package/dist/api/report-handler.js.map +1 -1
- package/dist/api/security-events.d.ts +1 -1
- package/dist/api/security-events.d.ts.map +1 -1
- package/dist/api/security-events.js +10 -1
- package/dist/api/security-events.js.map +1 -1
- package/dist/api/source-actions.d.ts +9 -0
- package/dist/api/source-actions.d.ts.map +1 -1
- package/dist/api/source-actions.js +49 -0
- package/dist/api/source-actions.js.map +1 -1
- package/dist/api/viewer-request-security.d.ts +14 -1
- package/dist/api/viewer-request-security.d.ts.map +1 -1
- package/dist/api/viewer-request-security.js +26 -3
- package/dist/api/viewer-request-security.js.map +1 -1
- package/dist/api/viewer-server.d.ts +8 -0
- package/dist/api/viewer-server.d.ts.map +1 -1
- package/dist/api/viewer-server.js +66 -0
- package/dist/api/viewer-server.js.map +1 -1
- package/dist/api/work-actions.d.ts +19 -2
- package/dist/api/work-actions.d.ts.map +1 -1
- package/dist/api/work-actions.js +42 -2
- package/dist/api/work-actions.js.map +1 -1
- package/dist/cli/commands/backfill.d.ts.map +1 -1
- package/dist/cli/commands/backfill.js +1 -0
- package/dist/cli/commands/backfill.js.map +1 -1
- package/dist/cli/commands/backup.d.ts +14 -0
- package/dist/cli/commands/backup.d.ts.map +1 -0
- package/dist/cli/commands/backup.js +174 -0
- package/dist/cli/commands/backup.js.map +1 -0
- package/dist/cli/commands/control.d.ts +44 -0
- package/dist/cli/commands/control.d.ts.map +1 -0
- package/dist/cli/commands/control.js +354 -0
- package/dist/cli/commands/control.js.map +1 -0
- package/dist/cli/commands/daemon.d.ts +60 -3
- package/dist/cli/commands/daemon.d.ts.map +1 -1
- package/dist/cli/commands/daemon.js +454 -78
- package/dist/cli/commands/daemon.js.map +1 -1
- package/dist/cli/commands/doctor.d.ts +13 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -0
- package/dist/cli/commands/doctor.js +216 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/init-questions.d.ts +98 -0
- package/dist/cli/commands/init-questions.d.ts.map +1 -0
- package/dist/cli/commands/init-questions.js +420 -0
- package/dist/cli/commands/init-questions.js.map +1 -0
- package/dist/cli/commands/init-section.d.ts +13 -0
- package/dist/cli/commands/init-section.d.ts.map +1 -0
- package/dist/cli/commands/init-section.js +375 -0
- package/dist/cli/commands/init-section.js.map +1 -0
- package/dist/cli/commands/init.d.ts +56 -2
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +562 -350
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/logs.d.ts +9 -0
- package/dist/cli/commands/logs.d.ts.map +1 -0
- package/dist/cli/commands/logs.js +109 -0
- package/dist/cli/commands/logs.js.map +1 -0
- package/dist/cli/commands/node-move.d.ts +20 -0
- package/dist/cli/commands/node-move.d.ts.map +1 -0
- package/dist/cli/commands/node-move.js +289 -0
- package/dist/cli/commands/node-move.js.map +1 -0
- package/dist/cli/commands/register-owner.d.ts +3 -0
- package/dist/cli/commands/register-owner.d.ts.map +1 -1
- package/dist/cli/commands/register-owner.js +14 -0
- package/dist/cli/commands/register-owner.js.map +1 -1
- package/dist/cli/commands/restore.d.ts +16 -0
- package/dist/cli/commands/restore.d.ts.map +1 -0
- package/dist/cli/commands/restore.js +137 -0
- package/dist/cli/commands/restore.js.map +1 -0
- package/dist/cli/commands/service.d.ts +44 -0
- package/dist/cli/commands/service.d.ts.map +1 -0
- package/dist/cli/commands/service.js +306 -0
- package/dist/cli/commands/service.js.map +1 -0
- package/dist/cli/commands/tools.d.ts +1 -1
- package/dist/cli/commands/tools.d.ts.map +1 -1
- package/dist/cli/commands/tools.js +8 -3
- package/dist/cli/commands/tools.js.map +1 -1
- package/dist/cli/commands/uninstall.d.ts +7 -0
- package/dist/cli/commands/uninstall.d.ts.map +1 -0
- package/dist/cli/commands/uninstall.js +335 -0
- package/dist/cli/commands/uninstall.js.map +1 -0
- package/dist/cli/commands/update.d.ts +59 -0
- package/dist/cli/commands/update.d.ts.map +1 -0
- package/dist/cli/commands/update.js +948 -0
- package/dist/cli/commands/update.js.map +1 -0
- package/dist/cli/index.js +74 -23
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/launch-files.d.ts +119 -0
- package/dist/cli/launch-files.d.ts.map +1 -1
- package/dist/cli/launch-files.js +324 -15
- package/dist/cli/launch-files.js.map +1 -1
- package/dist/cli/prompt.d.ts +2 -1
- package/dist/cli/prompt.d.ts.map +1 -1
- package/dist/cli/prompt.js +5 -2
- package/dist/cli/prompt.js.map +1 -1
- package/dist/cli/runtime/backend-probe.d.ts +34 -0
- package/dist/cli/runtime/backend-probe.d.ts.map +1 -0
- package/dist/cli/runtime/backend-probe.js +83 -0
- package/dist/cli/runtime/backend-probe.js.map +1 -0
- package/dist/cli/runtime/backup.d.ts +130 -0
- package/dist/cli/runtime/backup.d.ts.map +1 -0
- package/dist/cli/runtime/backup.js +592 -0
- package/dist/cli/runtime/backup.js.map +1 -0
- package/dist/cli/runtime/daemon-control.d.ts +169 -0
- package/dist/cli/runtime/daemon-control.d.ts.map +1 -0
- package/dist/cli/runtime/daemon-control.js +441 -0
- package/dist/cli/runtime/daemon-control.js.map +1 -0
- package/dist/cli/runtime/default-roots.d.ts +27 -0
- package/dist/cli/runtime/default-roots.d.ts.map +1 -0
- package/dist/cli/runtime/default-roots.js +61 -0
- package/dist/cli/runtime/default-roots.js.map +1 -0
- package/dist/cli/runtime/diagnostics.d.ts +68 -0
- package/dist/cli/runtime/diagnostics.d.ts.map +1 -0
- package/dist/cli/runtime/diagnostics.js +1139 -0
- package/dist/cli/runtime/diagnostics.js.map +1 -0
- package/dist/cli/runtime/init-state.d.ts +20 -0
- package/dist/cli/runtime/init-state.d.ts.map +1 -0
- package/dist/cli/runtime/init-state.js +51 -0
- package/dist/cli/runtime/init-state.js.map +1 -0
- package/dist/cli/runtime/install-kind.d.ts +54 -0
- package/dist/cli/runtime/install-kind.d.ts.map +1 -0
- package/dist/cli/runtime/install-kind.js +164 -0
- package/dist/cli/runtime/install-kind.js.map +1 -0
- package/dist/cli/runtime/node-move-journal.d.ts +44 -0
- package/dist/cli/runtime/node-move-journal.d.ts.map +1 -0
- package/dist/cli/runtime/node-move-journal.js +48 -0
- package/dist/cli/runtime/node-move-journal.js.map +1 -0
- package/dist/cli/runtime/release-check.d.ts +94 -0
- package/dist/cli/runtime/release-check.d.ts.map +1 -0
- package/dist/cli/runtime/release-check.js +316 -0
- package/dist/cli/runtime/release-check.js.map +1 -0
- package/dist/cli/runtime/restore.d.ts +98 -0
- package/dist/cli/runtime/restore.d.ts.map +1 -0
- package/dist/cli/runtime/restore.js +756 -0
- package/dist/cli/runtime/restore.js.map +1 -0
- package/dist/cli/runtime/setup-page.d.ts +57 -0
- package/dist/cli/runtime/setup-page.d.ts.map +1 -0
- package/dist/cli/runtime/setup-page.js +266 -0
- package/dist/cli/runtime/setup-page.js.map +1 -0
- package/dist/cli/runtime/source-tools.d.ts +60 -0
- package/dist/cli/runtime/source-tools.d.ts.map +1 -0
- package/dist/cli/runtime/source-tools.js +170 -0
- package/dist/cli/runtime/source-tools.js.map +1 -0
- package/dist/cli/runtime/systemd-service.d.ts +13 -0
- package/dist/cli/runtime/systemd-service.d.ts.map +1 -0
- package/dist/cli/runtime/systemd-service.js +32 -0
- package/dist/cli/runtime/systemd-service.js.map +1 -0
- package/dist/cli/runtime/telegram-pairing.d.ts +73 -0
- package/dist/cli/runtime/telegram-pairing.d.ts.map +1 -0
- package/dist/cli/runtime/telegram-pairing.js +184 -0
- package/dist/cli/runtime/telegram-pairing.js.map +1 -0
- package/dist/cli/runtime/update-journal.d.ts +135 -0
- package/dist/cli/runtime/update-journal.d.ts.map +1 -0
- package/dist/cli/runtime/update-journal.js +144 -0
- package/dist/cli/runtime/update-journal.js.map +1 -0
- package/dist/cli/runtime/update-progress.d.ts +95 -0
- package/dist/cli/runtime/update-progress.d.ts.map +1 -0
- package/dist/cli/runtime/update-progress.js +154 -0
- package/dist/cli/runtime/update-progress.js.map +1 -0
- package/dist/cli/runtime/update-request.d.ts +58 -0
- package/dist/cli/runtime/update-request.d.ts.map +1 -0
- package/dist/cli/runtime/update-request.js +172 -0
- package/dist/cli/runtime/update-request.js.map +1 -0
- package/dist/connectors/calendar/index.d.ts +5 -1
- package/dist/connectors/calendar/index.d.ts.map +1 -1
- package/dist/connectors/calendar/index.js +19 -28
- package/dist/connectors/calendar/index.js.map +1 -1
- package/dist/connectors/chatwork/index.d.ts.map +1 -1
- package/dist/connectors/chatwork/index.js +7 -3
- package/dist/connectors/chatwork/index.js.map +1 -1
- package/dist/connectors/config-loader.d.ts +7 -1
- package/dist/connectors/config-loader.d.ts.map +1 -1
- package/dist/connectors/config-loader.js +11 -2
- package/dist/connectors/config-loader.js.map +1 -1
- package/dist/connectors/discord/index.d.ts.map +1 -1
- package/dist/connectors/discord/index.js +4 -3
- package/dist/connectors/discord/index.js.map +1 -1
- package/dist/connectors/drive/index.d.ts.map +1 -1
- package/dist/connectors/drive/index.js +15 -13
- package/dist/connectors/drive/index.js.map +1 -1
- package/dist/connectors/framework/gws-utils.d.ts +62 -0
- package/dist/connectors/framework/gws-utils.d.ts.map +1 -1
- package/dist/connectors/framework/gws-utils.js +133 -3
- package/dist/connectors/framework/gws-utils.js.map +1 -1
- package/dist/connectors/framework/polling-scheduler.d.ts.map +1 -1
- package/dist/connectors/framework/polling-scheduler.js +12 -11
- package/dist/connectors/framework/polling-scheduler.js.map +1 -1
- package/dist/connectors/framework/types.d.ts +24 -0
- package/dist/connectors/framework/types.d.ts.map +1 -1
- package/dist/connectors/framework/types.js +9 -0
- package/dist/connectors/framework/types.js.map +1 -1
- package/dist/connectors/gmail/index.d.ts.map +1 -1
- package/dist/connectors/gmail/index.js +14 -13
- package/dist/connectors/gmail/index.js.map +1 -1
- package/dist/connectors/imessage/index.d.ts.map +1 -1
- package/dist/connectors/imessage/index.js +2 -1
- package/dist/connectors/imessage/index.js.map +1 -1
- package/dist/connectors/index.d.ts +4 -4
- package/dist/connectors/index.d.ts.map +1 -1
- package/dist/connectors/index.js +4 -10
- package/dist/connectors/index.js.map +1 -1
- package/dist/connectors/notion/index.d.ts.map +1 -1
- package/dist/connectors/notion/index.js +5 -3
- package/dist/connectors/notion/index.js.map +1 -1
- package/dist/connectors/sheets/index.d.ts.map +1 -1
- package/dist/connectors/sheets/index.js +17 -12
- package/dist/connectors/sheets/index.js.map +1 -1
- package/dist/connectors/slack/index.d.ts.map +1 -1
- package/dist/connectors/slack/index.js +9 -3
- package/dist/connectors/slack/index.js.map +1 -1
- package/dist/connectors/telegram/index.d.ts.map +1 -1
- package/dist/connectors/telegram/index.js +4 -3
- package/dist/connectors/telegram/index.js.map +1 -1
- package/dist/connectors/trello/index.d.ts +1 -1
- package/dist/connectors/trello/index.d.ts.map +1 -1
- package/dist/connectors/trello/index.js +10 -5
- package/dist/connectors/trello/index.js.map +1 -1
- package/dist/gateways/discord.d.ts +6 -0
- package/dist/gateways/discord.d.ts.map +1 -1
- package/dist/gateways/discord.js +38 -27
- package/dist/gateways/discord.js.map +1 -1
- package/dist/gateways/slack.d.ts +6 -0
- package/dist/gateways/slack.d.ts.map +1 -1
- package/dist/gateways/slack.js +38 -27
- package/dist/gateways/slack.js.map +1 -1
- package/dist/gateways/telegram-commands.d.ts +124 -0
- package/dist/gateways/telegram-commands.d.ts.map +1 -0
- package/dist/gateways/telegram-commands.js +131 -0
- package/dist/gateways/telegram-commands.js.map +1 -0
- package/dist/gateways/telegram.d.ts +20 -0
- package/dist/gateways/telegram.d.ts.map +1 -1
- package/dist/gateways/telegram.js +138 -34
- package/dist/gateways/telegram.js.map +1 -1
- package/dist/gateways/turn-contract.d.ts +11 -0
- package/dist/gateways/turn-contract.d.ts.map +1 -1
- package/dist/runtime/action-surface.d.ts +1 -1
- package/dist/runtime/action-surface.d.ts.map +1 -1
- package/dist/runtime/action-surface.js +10 -0
- package/dist/runtime/action-surface.js.map +1 -1
- package/dist/runtime/backend-security.d.ts +26 -2
- package/dist/runtime/backend-security.d.ts.map +1 -1
- package/dist/runtime/backend-security.js +63 -10
- package/dist/runtime/backend-security.js.map +1 -1
- package/dist/runtime/config.d.ts +3 -0
- package/dist/runtime/config.d.ts.map +1 -1
- package/dist/runtime/config.js +4 -4
- package/dist/runtime/config.js.map +1 -1
- package/dist/runtime/connectors.d.ts +21 -1
- package/dist/runtime/connectors.d.ts.map +1 -1
- package/dist/runtime/connectors.js +28 -17
- package/dist/runtime/connectors.js.map +1 -1
- package/dist/runtime/core-db.d.ts.map +1 -1
- package/dist/runtime/core-db.js +2 -0
- package/dist/runtime/core-db.js.map +1 -1
- package/dist/runtime/member-paths.d.ts +15 -7
- package/dist/runtime/member-paths.d.ts.map +1 -1
- package/dist/runtime/member-paths.js +64 -12
- package/dist/runtime/member-paths.js.map +1 -1
- package/dist/runtime/member-session.d.ts +4 -0
- package/dist/runtime/member-session.d.ts.map +1 -1
- package/dist/runtime/member-session.js +23 -2
- package/dist/runtime/member-session.js.map +1 -1
- package/dist/runtime/native-session.d.ts +2 -0
- package/dist/runtime/native-session.d.ts.map +1 -1
- package/dist/runtime/native-session.js +1 -0
- package/dist/runtime/native-session.js.map +1 -1
- package/dist/runtime/owner-runtime.d.ts +63 -1
- package/dist/runtime/owner-runtime.d.ts.map +1 -1
- package/dist/runtime/owner-runtime.js +180 -3
- package/dist/runtime/owner-runtime.js.map +1 -1
- package/dist/runtime/owner-system-prompt.d.ts.map +1 -1
- package/dist/runtime/owner-system-prompt.js +6 -5
- package/dist/runtime/owner-system-prompt.js.map +1 -1
- package/dist/runtime/principal-access.d.ts +2 -0
- package/dist/runtime/principal-access.d.ts.map +1 -1
- package/dist/runtime/principal-access.js +7 -0
- package/dist/runtime/principal-access.js.map +1 -1
- package/dist/runtime/principal-sessions.d.ts.map +1 -1
- package/dist/runtime/principal-sessions.js +8 -1
- package/dist/runtime/principal-sessions.js.map +1 -1
- package/dist/runtime/record-orders.d.ts.map +1 -1
- package/dist/runtime/record-orders.js +3 -29
- package/dist/runtime/record-orders.js.map +1 -1
- package/dist/runtime/report-scheduler.d.ts +9 -2
- package/dist/runtime/report-scheduler.d.ts.map +1 -1
- package/dist/runtime/report-scheduler.js +37 -10
- package/dist/runtime/report-scheduler.js.map +1 -1
- package/dist/runtime/rotating-log.d.ts +44 -0
- package/dist/runtime/rotating-log.d.ts.map +1 -0
- package/dist/runtime/rotating-log.js +124 -0
- package/dist/runtime/rotating-log.js.map +1 -0
- package/dist/runtime/stimulus-delivery.d.ts +3 -0
- package/dist/runtime/stimulus-delivery.d.ts.map +1 -1
- package/dist/runtime/stimulus-delivery.js +19 -3
- package/dist/runtime/stimulus-delivery.js.map +1 -1
- package/dist/runtime/tools-paths.d.ts +7 -0
- package/dist/runtime/tools-paths.d.ts.map +1 -1
- package/dist/runtime/tools-paths.js +11 -5
- package/dist/runtime/tools-paths.js.map +1 -1
- package/dist/runtime/upkeep-close.d.ts +17 -0
- package/dist/runtime/upkeep-close.d.ts.map +1 -0
- package/dist/runtime/upkeep-close.js +127 -0
- package/dist/runtime/upkeep-close.js.map +1 -0
- package/dist/runtime/upkeep-orders.d.ts +124 -0
- package/dist/runtime/upkeep-orders.d.ts.map +1 -0
- package/dist/runtime/upkeep-orders.js +310 -0
- package/dist/runtime/upkeep-orders.js.map +1 -0
- package/dist/runtime/upkeep-reconcile.d.ts +25 -0
- package/dist/runtime/upkeep-reconcile.d.ts.map +1 -0
- package/dist/runtime/upkeep-reconcile.js +231 -0
- package/dist/runtime/upkeep-reconcile.js.map +1 -0
- package/dist/runtime/upkeep-writeback.d.ts +22 -0
- package/dist/runtime/upkeep-writeback.d.ts.map +1 -0
- package/dist/runtime/upkeep-writeback.js +203 -0
- package/dist/runtime/upkeep-writeback.js.map +1 -0
- package/dist/tools/document-toolkit.d.ts +2 -0
- package/dist/tools/document-toolkit.d.ts.map +1 -1
- package/dist/tools/document-toolkit.js +2 -0
- package/dist/tools/document-toolkit.js.map +1 -1
- package/dist/utils/untrusted-content.d.ts.map +1 -1
- package/dist/utils/untrusted-content.js +8 -1
- package/dist/utils/untrusted-content.js.map +1 -1
- package/install/install.sh +457 -0
- package/install/node.json +9 -0
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/cli/commands/tools.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/cli/commands/tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type PromptAdapter } from '../prompt.js';
|
|
2
|
+
import { type ServiceOptions } from './service.js';
|
|
3
|
+
export interface UninstallOptions extends ServiceOptions {
|
|
4
|
+
prompt?: PromptAdapter;
|
|
5
|
+
}
|
|
6
|
+
export declare function runUninstall(args: readonly string[], options?: UninstallOptions): Promise<number>;
|
|
7
|
+
//# sourceMappingURL=uninstall.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/uninstall.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAmD,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAInG,OAAO,EAAiC,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAKlF,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACtD,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AA+ND,wBAAsB,YAAY,CAChC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,MAAM,CAAC,CAgGjB"}
|
|
@@ -0,0 +1,335 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.runUninstall = runUninstall;
|
|
7
|
+
/**
|
|
8
|
+
* `mama uninstall [--dry-run] [--data [--toolkit]]`: stop MAMA and remove its service. With
|
|
9
|
+
* --data, once the MAMA home's path has been typed back, also remove what MAMA created: the MAMA
|
|
10
|
+
* home, the folder of each person it registered under `member_root` (and the folders it retired),
|
|
11
|
+
* and the common skills under `tools_root` (with --toolkit, the toolkit's versions too). A folder
|
|
12
|
+
* MAMA did not create is never removed whole: `member_root` and `tools_root` go only once empty, so
|
|
13
|
+
* a misconfigured root (a volume, a shared folder) loses nothing but MAMA's own entries.
|
|
14
|
+
* `--dry-run` lists what would go and what stays, and changes nothing.
|
|
15
|
+
*
|
|
16
|
+
* The program: an `npm install -g` is npm's to remove. The install command keeps it in the MAMA
|
|
17
|
+
* home instead (Node, the npm prefix and the `mama` command, docs/development/work/install.md):
|
|
18
|
+
* --data removes it with the home, last, so a removal that fails part-way leaves a `mama` to run
|
|
19
|
+
* again; without --data it stays and is named. Either way the startup block the install command
|
|
20
|
+
* wrote is named for the owner to remove: it is the owner's file.
|
|
21
|
+
*/
|
|
22
|
+
const node_fs_1 = require("node:fs");
|
|
23
|
+
const node_os_1 = require("node:os");
|
|
24
|
+
const node_path_1 = require("node:path");
|
|
25
|
+
const better_sqlite3_1 = __importDefault(require("better-sqlite3"));
|
|
26
|
+
const config_js_1 = require("../../runtime/config.js");
|
|
27
|
+
const backend_security_js_1 = require("../../runtime/backend-security.js");
|
|
28
|
+
const member_paths_js_1 = require("../../runtime/member-paths.js");
|
|
29
|
+
const document_toolkit_js_1 = require("../../tools/document-toolkit.js");
|
|
30
|
+
const prompt_js_1 = require("../prompt.js");
|
|
31
|
+
const backup_js_1 = require("../runtime/backup.js");
|
|
32
|
+
const daemon_control_js_1 = require("../runtime/daemon-control.js");
|
|
33
|
+
const control_js_1 = require("./control.js");
|
|
34
|
+
const service_js_1 = require("./service.js");
|
|
35
|
+
const USAGE = 'Usage: mama uninstall [--dry-run] [--data [--toolkit]]';
|
|
36
|
+
const PRINCIPAL_ID = /^[A-Za-z0-9][A-Za-z0-9_-]*$/;
|
|
37
|
+
/**
|
|
38
|
+
* The program the install command keeps in the MAMA home, as far as it is there, in the order it
|
|
39
|
+
* is removed: Node last, and the prefix before the `mama` command, so a removal that fails part-way
|
|
40
|
+
* keeps what `mama uninstall --data` needs to run again for as long as it can.
|
|
41
|
+
*/
|
|
42
|
+
function managedProgram(root) {
|
|
43
|
+
const order = ['node.new', 'node.old', 'npm.new', 'npm.old', 'npm', 'bin', 'node'];
|
|
44
|
+
return (0, node_fs_1.existsSync)((0, node_path_1.join)(root, 'npm', 'lib', 'node_modules', '@jungjaehoon', 'mama-os'))
|
|
45
|
+
? order.map((name) => (0, node_path_1.join)(root, name)).filter((path) => (0, node_fs_1.existsSync)(path))
|
|
46
|
+
: [];
|
|
47
|
+
}
|
|
48
|
+
/** The startup files whose marked block the install command wrote (install.sh, "Startup block"). */
|
|
49
|
+
function startupBlocks(home) {
|
|
50
|
+
return [
|
|
51
|
+
(0, node_path_1.join)(process.env.ZDOTDIR ?? home, '.zshrc'),
|
|
52
|
+
(0, node_path_1.join)(home, '.bashrc'),
|
|
53
|
+
(0, node_path_1.join)(home, '.bash_profile'),
|
|
54
|
+
(0, node_path_1.join)(home, '.profile'),
|
|
55
|
+
].filter((path) => (0, node_fs_1.existsSync)(path) &&
|
|
56
|
+
(0, node_fs_1.readFileSync)(path, 'utf8')
|
|
57
|
+
.split('\n')
|
|
58
|
+
.some((line) => line.replace(/\r$/, '') === '# >>> mama >>>'));
|
|
59
|
+
}
|
|
60
|
+
function parseArgs(args) {
|
|
61
|
+
const flags = new Set(args);
|
|
62
|
+
for (const arg of flags) {
|
|
63
|
+
if (!['--dry-run', '--data', '--toolkit'].includes(arg))
|
|
64
|
+
throw new prompt_js_1.CliInputError(USAGE);
|
|
65
|
+
}
|
|
66
|
+
if (flags.has('--toolkit') && !flags.has('--data'))
|
|
67
|
+
throw new prompt_js_1.CliInputError(USAGE);
|
|
68
|
+
return {
|
|
69
|
+
dryRun: flags.has('--dry-run'),
|
|
70
|
+
data: flags.has('--data'),
|
|
71
|
+
toolkit: flags.has('--toolkit'),
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
/** Bytes under a path, links counted as themselves; null when part of it cannot be read. */
|
|
75
|
+
function sizeOf(path) {
|
|
76
|
+
try {
|
|
77
|
+
const stat = (0, node_fs_1.lstatSync)(path);
|
|
78
|
+
if (!stat.isDirectory())
|
|
79
|
+
return stat.size;
|
|
80
|
+
let sum = 0;
|
|
81
|
+
for (const name of (0, node_fs_1.readdirSync)(path)) {
|
|
82
|
+
const size = sizeOf((0, node_path_1.join)(path, name));
|
|
83
|
+
if (size === null)
|
|
84
|
+
return null;
|
|
85
|
+
sum += size;
|
|
86
|
+
}
|
|
87
|
+
return sum;
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
function sized(path) {
|
|
94
|
+
const bytes = sizeOf(path);
|
|
95
|
+
return bytes === null
|
|
96
|
+
? 'size unknown: part of it cannot be read'
|
|
97
|
+
: `${(bytes / 1024 / 1024).toFixed(1)} MB`;
|
|
98
|
+
}
|
|
99
|
+
/** Inside `parent`, or `parent` itself, by physical path (real case, links resolved). */
|
|
100
|
+
function within(parent, child) {
|
|
101
|
+
const path = (0, node_path_1.relative)((0, backend_security_js_1.physicalReadPath)(parent), (0, backend_security_js_1.physicalReadPath)(child));
|
|
102
|
+
return path === '' || (path !== '..' && !path.startsWith(`..${node_path_1.sep}`));
|
|
103
|
+
}
|
|
104
|
+
/** The ids of the people MAMA registered, from its own database. */
|
|
105
|
+
function registeredPeople(config) {
|
|
106
|
+
if (!(0, node_fs_1.existsSync)(config.database.path))
|
|
107
|
+
return [];
|
|
108
|
+
const db = new better_sqlite3_1.default(config.database.path, { readonly: true, fileMustExist: true });
|
|
109
|
+
try {
|
|
110
|
+
return db.prepare('SELECT principal_id FROM principals').all()
|
|
111
|
+
.map((row) => row.principal_id)
|
|
112
|
+
.filter((id) => PRINCIPAL_ID.test(id));
|
|
113
|
+
}
|
|
114
|
+
finally {
|
|
115
|
+
db.close();
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* What --data removes. The MAMA home goes whole, and is refused when it is a link or when it is the
|
|
120
|
+
* filesystem root, HOME or a folder holding HOME (compared by physical path, so a different letter
|
|
121
|
+
* case on a case-insensitive disk is the same folder). Under member_root and tools_root only the
|
|
122
|
+
* entries MAMA creates go.
|
|
123
|
+
*/
|
|
124
|
+
function dataPlan(home, configPath, toolkit) {
|
|
125
|
+
const root = (0, node_path_1.dirname)(configPath);
|
|
126
|
+
const plan = { root, remove: [], emptied: [], stays: [] };
|
|
127
|
+
if (!(0, node_fs_1.existsSync)(root))
|
|
128
|
+
return plan;
|
|
129
|
+
if ((0, node_fs_1.lstatSync)(root).isSymbolicLink()) {
|
|
130
|
+
throw new prompt_js_1.CliInputError(`${root} is a link; remove its target, or the link, yourself`);
|
|
131
|
+
}
|
|
132
|
+
if (within((0, backend_security_js_1.physicalReadPath)(root), home) || (0, backend_security_js_1.physicalReadPath)(root) === node_path_1.sep) {
|
|
133
|
+
throw new prompt_js_1.CliInputError(`refusing to remove ${root}: it is the filesystem root, your home or a folder that holds it`);
|
|
134
|
+
}
|
|
135
|
+
if ((0, node_fs_1.existsSync)(configPath)) {
|
|
136
|
+
const config = (0, config_js_1.loadConfig)({ home, path: configPath });
|
|
137
|
+
if (config.member_root !== undefined && (0, node_fs_1.existsSync)(config.member_root)) {
|
|
138
|
+
for (const id of registeredPeople(config)) {
|
|
139
|
+
const folder = (0, node_path_1.join)(config.member_root, id);
|
|
140
|
+
if ((0, node_fs_1.existsSync)(folder))
|
|
141
|
+
plan.remove.push({ path: folder, what: `${id}'s workspace and state` });
|
|
142
|
+
for (const temp of [(0, member_paths_js_1.memberClaudeTmpDir)(id), (0, member_paths_js_1.memberRoomTmpRoot)(id)]) {
|
|
143
|
+
if ((0, node_fs_1.existsSync)(temp))
|
|
144
|
+
plan.remove.push({ path: temp, what: `${id}'s temporary files` });
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
for (const entry of (0, node_fs_1.readdirSync)(config.member_root)) {
|
|
148
|
+
if (entry.startsWith('.retired-')) {
|
|
149
|
+
plan.remove.push({ path: (0, node_path_1.join)(config.member_root, entry), what: 'a retired folder' });
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
plan.emptied.push(config.member_root);
|
|
153
|
+
}
|
|
154
|
+
if (config.tools_root !== undefined && (0, node_fs_1.existsSync)(config.tools_root)) {
|
|
155
|
+
for (const entry of (0, node_fs_1.readdirSync)(config.tools_root)) {
|
|
156
|
+
const path = (0, node_path_1.join)(config.tools_root, entry);
|
|
157
|
+
if (entry === 'skills') {
|
|
158
|
+
plan.remove.push({ path, what: 'the common skills' });
|
|
159
|
+
}
|
|
160
|
+
else if (!toolkit) {
|
|
161
|
+
continue;
|
|
162
|
+
}
|
|
163
|
+
else if (entry.startsWith('v-')) {
|
|
164
|
+
plan.remove.push({ path, what: 'a document toolkit version', remove: document_toolkit_js_1.removeVersion });
|
|
165
|
+
}
|
|
166
|
+
else if (entry === 'current' ||
|
|
167
|
+
entry.startsWith('.current-') ||
|
|
168
|
+
entry === '.leases' ||
|
|
169
|
+
entry === '.mama-document-toolkit') {
|
|
170
|
+
plan.remove.push({ path, what: 'the document toolkit' });
|
|
171
|
+
}
|
|
172
|
+
else if (entry === 'apps' || entry === 'fonts') {
|
|
173
|
+
// Homebrew installed these casks into tools_root and keeps their records.
|
|
174
|
+
const casks = entry === 'apps' ? 'libreoffice' : 'font-noto-sans-cjk font-noto-serif-cjk';
|
|
175
|
+
plan.stays.push({ path, what: `installed by Homebrew: brew uninstall --cask ${casks}` });
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
if (toolkit)
|
|
179
|
+
plan.emptied.push(config.tools_root);
|
|
180
|
+
}
|
|
181
|
+
// Settings can point outside the MAMA home; such a path is not proven to be MAMA's alone.
|
|
182
|
+
const elsewhere = [
|
|
183
|
+
{ path: config.database.path, what: 'the database' },
|
|
184
|
+
{ path: config.logging.file, what: 'the daemon log' },
|
|
185
|
+
{ path: config.agent.codex_home ?? (0, node_path_1.join)(root, '.codex'), what: 'the Codex home' },
|
|
186
|
+
{ path: config.jev.keyFile, what: 'the Jev key' },
|
|
187
|
+
{ path: config.jev.vocabFile, what: "Jev's vocabulary" },
|
|
188
|
+
...(config.agent.codex_cwd
|
|
189
|
+
? [{ path: config.agent.codex_cwd, what: 'the Codex workspace' }]
|
|
190
|
+
: []),
|
|
191
|
+
...(config.agent.tools?.mcp_config
|
|
192
|
+
? [{ path: config.agent.tools.mcp_config, what: 'the MCP configuration' }]
|
|
193
|
+
: []),
|
|
194
|
+
];
|
|
195
|
+
for (const entry of elsewhere) {
|
|
196
|
+
if ((0, node_fs_1.existsSync)(entry.path) && !within(root, entry.path)) {
|
|
197
|
+
plan.stays.push({
|
|
198
|
+
path: entry.path,
|
|
199
|
+
what: `${entry.what}, set outside the MAMA home; remove it yourself if it is MAMA's alone`,
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
const program = managedProgram(root);
|
|
205
|
+
plan.remove.push({
|
|
206
|
+
path: root,
|
|
207
|
+
what: 'the MAMA home: config, credentials, workspace, logs, backups and, by default, the database',
|
|
208
|
+
// The program goes after the rest of the home, and the home with it (below).
|
|
209
|
+
...(program.length === 0
|
|
210
|
+
? {}
|
|
211
|
+
: {
|
|
212
|
+
remove: (path) => {
|
|
213
|
+
for (const name of (0, node_fs_1.readdirSync)(path)) {
|
|
214
|
+
if (!backup_js_1.MANAGED_PROGRAM.has(name))
|
|
215
|
+
(0, node_fs_1.rmSync)((0, node_path_1.join)(path, name), { recursive: true, force: true });
|
|
216
|
+
}
|
|
217
|
+
},
|
|
218
|
+
}),
|
|
219
|
+
});
|
|
220
|
+
program.forEach((path, index) => plan.remove.push({
|
|
221
|
+
path,
|
|
222
|
+
what: 'the managed program the install command put here (Node.js, MAMA OS and the mama command)',
|
|
223
|
+
program: true,
|
|
224
|
+
// The last one takes the emptied home with it.
|
|
225
|
+
...(index === program.length - 1
|
|
226
|
+
? {
|
|
227
|
+
remove: (folder) => {
|
|
228
|
+
(0, node_fs_1.rmSync)(folder, { recursive: true, force: true });
|
|
229
|
+
(0, node_fs_1.rmdirSync)(root);
|
|
230
|
+
},
|
|
231
|
+
}
|
|
232
|
+
: {}),
|
|
233
|
+
}));
|
|
234
|
+
return plan;
|
|
235
|
+
}
|
|
236
|
+
async function runUninstall(args, options = {}) {
|
|
237
|
+
const { dryRun, data, toolkit } = parseArgs(args);
|
|
238
|
+
const home = options.home ?? (0, node_os_1.homedir)();
|
|
239
|
+
const configPath = options.configPath ?? (0, config_js_1.defaultConfigPath)(home);
|
|
240
|
+
const write = options.write ?? ((line) => console.log(line));
|
|
241
|
+
const plan = data ? dataPlan(home, configPath, toolkit) : null;
|
|
242
|
+
const program = managedProgram((0, node_path_1.dirname)(configPath));
|
|
243
|
+
/** What stays of the program, and the startup block, after the rest. */
|
|
244
|
+
const programNotes = () => {
|
|
245
|
+
if (program.length === 0) {
|
|
246
|
+
if (plan)
|
|
247
|
+
write('npm uninstall -g @jungjaehoon/mama-os removes the program itself');
|
|
248
|
+
}
|
|
249
|
+
else if (!plan) {
|
|
250
|
+
write(`the managed program stays: ${program.join(', ')} (mama uninstall --data removes it with the data)`);
|
|
251
|
+
}
|
|
252
|
+
for (const file of startupBlocks(home)) {
|
|
253
|
+
write(`remove the lines from '# >>> mama >>>' to '# <<< mama <<<' in ${file}: the install command wrote them to put ${(0, node_path_1.join)((0, node_path_1.dirname)(configPath), 'bin')} on PATH`);
|
|
254
|
+
}
|
|
255
|
+
};
|
|
256
|
+
const notes = (prefix, say) => {
|
|
257
|
+
if (!plan)
|
|
258
|
+
return;
|
|
259
|
+
for (const entry of plan.remove)
|
|
260
|
+
say(`${prefix} ${entry.path} (${sized(entry.path)}): ${entry.what}`);
|
|
261
|
+
for (const folder of plan.emptied)
|
|
262
|
+
say(`${prefix} ${folder} too, if nothing else is left in it`);
|
|
263
|
+
for (const entry of plan.stays) {
|
|
264
|
+
say(`stays: ${entry.path} (${entry.what})`);
|
|
265
|
+
}
|
|
266
|
+
};
|
|
267
|
+
if (dryRun) {
|
|
268
|
+
write(`would stop MAMA and remove its service: ${(0, service_js_1.serviceFile)(options)}`);
|
|
269
|
+
notes('would remove', write);
|
|
270
|
+
if (!data)
|
|
271
|
+
write('the data stays; --data also removes it');
|
|
272
|
+
programNotes();
|
|
273
|
+
return 0;
|
|
274
|
+
}
|
|
275
|
+
if (plan && plan.remove.length > 0) {
|
|
276
|
+
const prompt = options.prompt ?? (0, prompt_js_1.createTerminalPrompt)();
|
|
277
|
+
(0, prompt_js_1.requireTTY)(prompt);
|
|
278
|
+
notes('removes', (line) => prompt.write(line));
|
|
279
|
+
const typed = (await prompt.text(`This cannot be undone. Type ${plan.root} to remove it`)).trim();
|
|
280
|
+
if (typed !== plan.root)
|
|
281
|
+
throw new prompt_js_1.CliInputError('Not confirmed; nothing was removed.');
|
|
282
|
+
}
|
|
283
|
+
// Whatever holds the install (the service's daemon, one started by hand) stops first; a command
|
|
284
|
+
// that cannot be stopped this way leaves everything as it was.
|
|
285
|
+
const control = (0, daemon_control_js_1.daemonControlPaths)((0, node_path_1.dirname)(configPath));
|
|
286
|
+
if ((0, daemon_control_js_1.lockHolder)(control) !== null) {
|
|
287
|
+
const stopped = await (0, control_js_1.runStop)([], options);
|
|
288
|
+
if (stopped !== 0)
|
|
289
|
+
return stopped;
|
|
290
|
+
}
|
|
291
|
+
const removed = await (0, service_js_1.uninstallService)(options);
|
|
292
|
+
if (removed !== 0 || !plan || !(0, node_fs_1.existsSync)(plan.root)) {
|
|
293
|
+
programNotes();
|
|
294
|
+
return removed;
|
|
295
|
+
}
|
|
296
|
+
// One entry that cannot be removed does not stop the rest half-way; each failure is reported.
|
|
297
|
+
const failed = [];
|
|
298
|
+
const lock = (0, daemon_control_js_1.acquireInstallLock)(control, 'uninstall');
|
|
299
|
+
try {
|
|
300
|
+
for (const entry of plan.remove) {
|
|
301
|
+
if (entry.program && failed.length > 0) {
|
|
302
|
+
write(`kept ${entry.path}: run mama uninstall --data again once the above is removed`);
|
|
303
|
+
continue;
|
|
304
|
+
}
|
|
305
|
+
try {
|
|
306
|
+
if (entry.remove)
|
|
307
|
+
entry.remove(entry.path);
|
|
308
|
+
else
|
|
309
|
+
(0, node_fs_1.rmSync)(entry.path, { recursive: true, force: true });
|
|
310
|
+
write(`removed ${entry.path}`);
|
|
311
|
+
}
|
|
312
|
+
catch (error) {
|
|
313
|
+
failed.push(`${entry.path}: ${error instanceof Error ? error.message : String(error)}`);
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
for (const folder of plan.emptied) {
|
|
317
|
+
if ((0, node_fs_1.existsSync)(folder) && (0, node_fs_1.readdirSync)(folder).length === 0) {
|
|
318
|
+
(0, node_fs_1.rmdirSync)(folder);
|
|
319
|
+
write(`removed ${folder}`);
|
|
320
|
+
}
|
|
321
|
+
else if ((0, node_fs_1.existsSync)(folder)) {
|
|
322
|
+
write(`kept ${folder}: it still holds what stays, or entries MAMA did not create`);
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
finally {
|
|
327
|
+
// The lock's file went with the MAMA home; closing it is all that is left.
|
|
328
|
+
lock.release();
|
|
329
|
+
}
|
|
330
|
+
for (const failure of failed)
|
|
331
|
+
write(`could not remove ${failure}`);
|
|
332
|
+
programNotes();
|
|
333
|
+
return failed.length > 0 ? 1 : 0;
|
|
334
|
+
}
|
|
335
|
+
//# sourceMappingURL=uninstall.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../../src/cli/commands/uninstall.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { type LockPaths, type DaemonControlReply, type InstallLock } from '../runtime/daemon-control.js';
|
|
2
|
+
import { type Check } from '../runtime/diagnostics.js';
|
|
3
|
+
import { type DoctorFailure } from '../runtime/update-journal.js';
|
|
4
|
+
import { type TelegramCall } from '../runtime/update-progress.js';
|
|
5
|
+
import { type ServiceOptions } from './service.js';
|
|
6
|
+
export interface CliResult {
|
|
7
|
+
readonly code: number | null;
|
|
8
|
+
readonly signal: NodeJS.Signals | null;
|
|
9
|
+
}
|
|
10
|
+
/** What `mama update` does to the world; tests replace it. */
|
|
11
|
+
export interface UpdateDeps {
|
|
12
|
+
/** One npm call with the npm beside start.sh's Node, in the scrubbed environment. */
|
|
13
|
+
npm(args: string[], nodePath: string, env: NodeJS.ProcessEnv): Promise<string>;
|
|
14
|
+
/** `mama stop` (it drains first) or `mama stop --now`. */
|
|
15
|
+
stop(now: boolean): Promise<number>;
|
|
16
|
+
start(): Promise<void>;
|
|
17
|
+
installService(nodePath: string, cliPath: string): Promise<void>;
|
|
18
|
+
/** `mama backup --include-secrets` under the given name, started at `now`; the archive's path. */
|
|
19
|
+
backup(prefix: string, now: Date): Promise<string>;
|
|
20
|
+
/** Whether the installed service runs the daemon now. */
|
|
21
|
+
serviceRuns(): boolean;
|
|
22
|
+
restore(archive: string): Promise<void>;
|
|
23
|
+
toolsInstall(): Promise<void>;
|
|
24
|
+
/** `mama doctor --offline`'s checks. */
|
|
25
|
+
diagnostics(): Promise<Check[]>;
|
|
26
|
+
control(op: 'status' | 'release'): Promise<DaemonControlReply>;
|
|
27
|
+
health(port: number): Promise<boolean>;
|
|
28
|
+
/** Run another MAMA CLI with the terminal; its exit code or signal. */
|
|
29
|
+
runCli(nodePath: string, cliPath: string, args: string[], env: NodeJS.ProcessEnv): Promise<CliResult>;
|
|
30
|
+
/** `update.lock`, or the continuation's lock; a test drops one to stand for a killed process. */
|
|
31
|
+
lock(paths: LockPaths, command: string): InstallLock;
|
|
32
|
+
/** A Node's version without the `v`, from `<node> --version`. */
|
|
33
|
+
nodeVersion(nodePath: string): Promise<string>;
|
|
34
|
+
/** Doctor's check of start.sh's Node and MAMA command (the Node move's step 4). */
|
|
35
|
+
nodeCheck(nodePath: string, cliPath: string): Promise<Check>;
|
|
36
|
+
/** This CLI's own version and package, read before anything is renamed. */
|
|
37
|
+
version(): string;
|
|
38
|
+
runningPackage(): string;
|
|
39
|
+
/** The Bot API call the /update progress sends through. */
|
|
40
|
+
telegramCall: TelegramCall;
|
|
41
|
+
bootWaitMs: number;
|
|
42
|
+
pollMs: number;
|
|
43
|
+
}
|
|
44
|
+
export interface UpdateOptions extends ServiceOptions {
|
|
45
|
+
/** The environment npm and the children get scrubbed; this process's by default. */
|
|
46
|
+
env?: NodeJS.ProcessEnv;
|
|
47
|
+
deps?: Partial<UpdateDeps>;
|
|
48
|
+
}
|
|
49
|
+
/** npm's environment: already scrubbed, with the pinned Node's folder first on PATH. */
|
|
50
|
+
export declare function npmEnvironment(env: NodeJS.ProcessEnv, nodePath: string): NodeJS.ProcessEnv;
|
|
51
|
+
export declare function runUpdate(args: readonly string[], options?: UpdateOptions): Promise<number>;
|
|
52
|
+
/**
|
|
53
|
+
* One updater per install: `update.lock` (which `/update`, PR 4, reads before it starts one), and
|
|
54
|
+
* the continuation's own lock for the child's life.
|
|
55
|
+
*/
|
|
56
|
+
export declare function takeLock(paths: LockPaths, command: string): InstallLock;
|
|
57
|
+
/** Failures as `mama update` compares them: name and code, or name and detail without one. */
|
|
58
|
+
export declare function doctorFailures(checks: readonly Check[]): DoctorFailure[];
|
|
59
|
+
//# sourceMappingURL=update.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/update.ts"],"names":[],"mappings":"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"}
|