@morty-build/cli 0.1.1 → 0.3.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/NOTICE +1 -1
- package/dist/{chunk-6KNXEAOQ.js → chunk-HIGGFLQ3.js} +159 -186
- package/dist/{chunk-6KNXEAOQ.js.map → chunk-HIGGFLQ3.js.map} +4 -4
- package/dist/{chunk-B4H65VAU.js → chunk-SYR2NZQ5.js} +2 -2
- package/dist/{chunk-B4H65VAU.js.map → chunk-SYR2NZQ5.js.map} +1 -1
- package/dist/cli/handler/agents/index.js +2 -2
- package/dist/cli/handler/agents/index.js.map +1 -1
- package/dist/cli/handler/daemon/install.js +3 -3
- package/dist/cli/handler/daemon/install.js.map +1 -1
- package/dist/cli/handler/daemon/quit.js +2 -2
- package/dist/cli/handler/daemon/quit.js.map +1 -1
- package/dist/cli/handler/daemon/release.js +2 -2
- package/dist/cli/handler/daemon/release.js.map +1 -1
- package/dist/cli/handler/daemon/start.d.ts.map +1 -1
- package/dist/cli/handler/daemon/start.js +3 -3
- package/dist/cli/handler/daemon/start.js.map +1 -1
- package/dist/cli/handler/daemon/upgrade.js +2 -2
- package/dist/cli/handler/daemon/upgrade.js.map +1 -1
- package/dist/cli/handler/diagnose/worker.js +2 -2
- package/dist/cli/handler/diagnose/worker.js.map +1 -1
- package/dist/cli/handler/logs/index.js +1 -1
- package/dist/cli/handler/logs/index.js.map +1 -1
- package/dist/cli/handler/pair/list.js +2 -2
- package/dist/cli/handler/pair/list.js.map +1 -1
- package/dist/cli/handler/pair/pair.js +3 -3
- package/dist/cli/handler/pair/pair.js.map +1 -1
- package/dist/cli/handler/pair/remove.d.ts.map +1 -1
- package/dist/cli/handler/pair/remove.js +3 -3
- package/dist/cli/handler/pair/remove.js.map +1 -1
- package/dist/cli/handler/pair/stop.d.ts.map +1 -1
- package/dist/cli/handler/pair/stop.js +3 -3
- package/dist/cli/handler/pair/stop.js.map +1 -1
- package/dist/cli/handler/version/index.js +2 -2
- package/dist/cli/handler/version/index.js.map +1 -1
- package/dist/{cli-6OIRF2M7.js → cli-QFRCPBAC.js} +36 -36
- package/dist/{cli-6OIRF2M7.js.map → cli-QFRCPBAC.js.map} +2 -2
- package/dist/cli.js +2 -2
- package/dist/daemon/config.d.ts +1 -1
- package/dist/daemon/config.d.ts.map +1 -1
- package/dist/daemon/config.js +1 -1
- package/dist/daemon/config.js.map +1 -1
- package/dist/daemon/lifecycle/daemon.js +5 -5
- package/dist/daemon/lifecycle/daemon.js.map +1 -1
- package/dist/daemon/pairing/pair-local-machine.d.ts +2 -2
- package/dist/daemon/pairing/pair-local-machine.d.ts.map +1 -1
- package/dist/daemon/pairing/pair-local-machine.js +7 -7
- package/dist/daemon/pairing/pair-local-machine.js.map +1 -1
- package/dist/engine/acp/adapter/agent-initialization.js +2 -2
- package/dist/engine/acp/adapter/agent-initialization.js.map +1 -1
- package/dist/engine/acp/adapter/codex/adapter.js +3 -3
- package/dist/engine/acp/adapter/codex/adapter.js.map +1 -1
- package/dist/engine/acp/adapter/session-events.d.ts +2 -2
- package/dist/engine/acp/adapter/session-events.d.ts.map +1 -1
- package/dist/engine/acp/adapter/session-events.js +5 -5
- package/dist/engine/acp/adapter/session-events.js.map +1 -1
- package/dist/engine/acp/agent/in-process-endpoint.d.ts +2 -2
- package/dist/engine/acp/agent/in-process-endpoint.d.ts.map +1 -1
- package/dist/engine/acp/client/prompt-content.js +1 -1
- package/dist/engine/acp/client/prompt-content.js.map +1 -1
- package/dist/engine/acp/connection/create-client.js +1 -1
- package/dist/engine/acp/connection/create-client.js.map +1 -1
- package/dist/engine/acp/content/content-externalizer.js +1 -1
- package/dist/engine/acp/content/content-externalizer.js.map +1 -1
- package/dist/engine/acp/harness/codex/agent.d.ts +2 -2
- package/dist/engine/acp/harness/codex/agent.d.ts.map +1 -1
- package/dist/engine/acp/harness/codex/agent.js +8 -8
- package/dist/engine/acp/harness/codex/agent.js.map +1 -1
- package/dist/engine/acp/harness/codex/app-server-client.d.ts +1 -1
- package/dist/engine/acp/harness/codex/app-server-client.d.ts.map +1 -1
- package/dist/engine/acp/harness/codex/app-server-client.js +2 -2
- package/dist/engine/acp/harness/codex/app-server-client.js.map +1 -1
- package/dist/engine/acp/harness/codex/app-server-protocol.js +6 -6
- package/dist/engine/acp/harness/codex/app-server-protocol.js.map +1 -1
- package/dist/engine/acp/harness/codex/items.d.ts +1 -1
- package/dist/engine/acp/harness/codex/items.d.ts.map +1 -1
- package/dist/engine/acp/harness/codex/items.js +3 -3
- package/dist/engine/acp/harness/codex/items.js.map +1 -1
- package/dist/engine/acp/harness/codex/owned-agent.js +8 -8
- package/dist/engine/acp/harness/codex/owned-agent.js.map +1 -1
- package/dist/engine/acp/harness/codex/settings.d.ts +1 -1
- package/dist/engine/acp/harness/codex/settings.d.ts.map +1 -1
- package/dist/engine/acp/harness/codex/settings.js +1 -1
- package/dist/engine/acp/harness/codex/settings.js.map +1 -1
- package/dist/engine/acp/harness/pi/endpoint.js +1 -1
- package/dist/engine/acp/harness/pi/endpoint.js.map +1 -1
- package/dist/engine/acp/protocol/elicitation.js +1 -1
- package/dist/engine/acp/protocol/elicitation.js.map +1 -1
- package/dist/engine/acp/protocol/session-config-protocol.js +1 -1
- package/dist/engine/acp/protocol/session-config-protocol.js.map +1 -1
- package/dist/engine/agent/discovery/acp-readiness-probe.js +1 -1
- package/dist/engine/agent/discovery/acp-readiness-probe.js.map +1 -1
- package/dist/engine/agent/discovery/agent-discovery-context.d.ts +1 -1
- package/dist/engine/agent/discovery/agent-discovery-context.d.ts.map +1 -1
- package/dist/engine/agent/specification/agent-specification.d.ts +2 -2
- package/dist/engine/agent/specification/agent-specification.js +2 -2
- package/dist/engine/agent/specification/vendors/codex-agent.js +1 -1
- package/dist/engine/agent/specification/vendors/codex-agent.js.map +1 -1
- package/dist/engine/agent/specification/vendors/pi-agent.js +2 -2
- package/dist/engine/agent/specification/vendors/pi-agent.js.map +1 -1
- package/dist/engine/runtime/catalog/discover-agent-catalog.js +1 -1
- package/dist/engine/runtime/catalog/discover-agent-catalog.js.map +1 -1
- package/dist/engine/runtime/command/native-session-requests.d.ts.map +1 -1
- package/dist/engine/runtime/command/native-session-requests.js +2 -4
- package/dist/engine/runtime/command/native-session-requests.js.map +1 -1
- package/dist/engine/runtime/command/registry/history.d.ts.map +1 -1
- package/dist/engine/runtime/command/registry/history.js +1 -0
- package/dist/engine/runtime/command/registry/history.js.map +1 -1
- package/dist/engine/runtime/command/registry/interactions.js +3 -3
- package/dist/engine/runtime/command/registry/interactions.js.map +1 -1
- package/dist/engine/runtime/command/registry/prompt.js +1 -1
- package/dist/engine/runtime/command/registry/prompt.js.map +1 -1
- package/dist/engine/runtime/connection/runtime-installation-store.d.ts.map +1 -1
- package/dist/engine/runtime/connection/runtime-installation-store.js +5 -13
- package/dist/engine/runtime/connection/runtime-installation-store.js.map +1 -1
- package/dist/engine/runtime/engine.d.ts +9 -9
- package/dist/engine/runtime/engine.d.ts.map +1 -1
- package/dist/engine/runtime/engine.js +1 -1
- package/dist/engine/runtime/engine.js.map +1 -1
- package/dist/engine/runtime/pairing.d.ts +2 -2
- package/dist/engine/runtime/pairing.d.ts.map +1 -1
- package/dist/engine/runtime/pairing.js +8 -13
- package/dist/engine/runtime/pairing.js.map +1 -1
- package/dist/engine/runtime/runtime-loop.d.ts +2 -2
- package/dist/engine/runtime/runtime-loop.d.ts.map +1 -1
- package/dist/engine/runtime/runtime-loop.js.map +1 -1
- package/dist/engine/session/api/session-layer.js +1 -1
- package/dist/engine/session/api/session-layer.js.map +1 -1
- package/dist/engine/session/content/external-content-store.js +3 -3
- package/dist/engine/session/content/external-content-store.js.map +1 -1
- package/dist/engine/session/interaction/session-interactions.js +1 -1
- package/dist/engine/session/interaction/session-interactions.js.map +1 -1
- package/dist/engine/session/live/agent-session.js +22 -22
- package/dist/engine/session/live/agent-session.js.map +1 -1
- package/dist/engine/session/manager/session-manager.d.ts +1 -1
- package/dist/engine/session/manager/session-manager.js +1 -1
- package/dist/engine/session/native/native-session-browser.js +1 -1
- package/dist/engine/session/native/native-session-browser.js.map +1 -1
- package/dist/engine/session/prompt/prompt-lifecycle.d.ts +1 -1
- package/dist/engine/session/prompt/prompt-lifecycle.d.ts.map +1 -1
- package/dist/engine/session/prompt/prompt-lifecycle.js +6 -3
- package/dist/engine/session/prompt/prompt-lifecycle.js.map +1 -1
- package/dist/engine/session/turn/active-turn.d.ts.map +1 -1
- package/dist/engine/session/turn/active-turn.js +4 -3
- package/dist/engine/session/turn/active-turn.js.map +1 -1
- package/dist/engine/session/turn/execution-receipts.d.ts +3 -1
- package/dist/engine/session/turn/execution-receipts.d.ts.map +1 -1
- package/dist/engine/session/turn/execution-receipts.js +2 -12
- package/dist/engine/session/turn/execution-receipts.js.map +1 -1
- package/dist/engine/session/turn/session-turns.d.ts +3 -3
- package/dist/engine/storage/session/command-cancellation-table.d.ts +1 -1
- package/dist/engine/storage/session/command-cancellation-table.d.ts.map +1 -1
- package/dist/engine/storage/session/command-cancellation-table.js +1 -1
- package/dist/engine/storage/session/command-cancellation-table.js.map +1 -1
- package/dist/engine/storage/session/session-event-cache-table.js +3 -3
- package/dist/engine/storage/session/session-event-cache-table.js.map +1 -1
- package/dist/engine/storage/session/temporary-session-event-cache.js +1 -1
- package/dist/engine/storage/session/temporary-session-event-cache.js.map +1 -1
- package/dist/engine/storage/sqlite/local-databases.d.ts +1 -1
- package/dist/engine/storage/sqlite/local-databases.d.ts.map +1 -1
- package/dist/engine/storage/sqlite/local-databases.js +1 -26
- package/dist/engine/storage/sqlite/local-databases.js.map +1 -1
- package/dist/engine/storage/sqlite/local-sqlite-database.js +1 -1
- package/dist/engine/storage/sqlite/local-sqlite-database.js.map +1 -1
- package/dist/engine/util/platform/posix.d.ts.map +1 -1
- package/dist/engine/util/platform/posix.js +8 -1
- package/dist/engine/util/platform/posix.js.map +1 -1
- package/dist/engine.js +4 -4
- package/dist/exports/engine.d.ts +2 -2
- package/dist/exports/engine.d.ts.map +1 -1
- package/dist/exports/engine.js +1 -1
- package/dist/exports/engine.js.map +1 -1
- package/dist/storage/state-directory.d.ts +1 -1
- package/dist/storage/state-root-layout.d.ts +1 -1
- package/dist/storage/state-root-layout.d.ts.map +1 -1
- package/dist/storage/state-root-layout.js +1 -1
- package/dist/storage/state-root-layout.js.map +1 -1
- package/dist/storage/state-root.d.ts +1 -1
- package/dist/storage/state-root.d.ts.map +1 -1
- package/dist/storage/state-root.js +1 -1
- package/dist/storage/state-root.js.map +1 -1
- package/package.json +1 -1
|
@@ -80,7 +80,7 @@ var __callDispose = (stack, error, hasError) => {
|
|
|
80
80
|
// package.json
|
|
81
81
|
var package_default = {
|
|
82
82
|
name: "@morty-build/cli",
|
|
83
|
-
version: "0.
|
|
83
|
+
version: "0.3.0",
|
|
84
84
|
description: "Morty CLI for installing, pairing, and operating the Morty background service.",
|
|
85
85
|
type: "module",
|
|
86
86
|
bin: {
|
|
@@ -175,4 +175,4 @@ export {
|
|
|
175
175
|
__callDispose,
|
|
176
176
|
package_default
|
|
177
177
|
};
|
|
178
|
-
//# sourceMappingURL=chunk-
|
|
178
|
+
//# sourceMappingURL=chunk-SYR2NZQ5.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../package.json"],
|
|
4
|
-
"sourcesContent": ["{\n \"name\": \"@morty-build/cli\",\n \"version\": \"0.
|
|
4
|
+
"sourcesContent": ["{\n \"name\": \"@morty-build/cli\",\n \"version\": \"0.3.0\",\n \"description\": \"Morty CLI for installing, pairing, and operating the Morty background service.\",\n \"type\": \"module\",\n \"bin\": {\n \"morty\": \"dist/cli.js\"\n },\n \"exports\": {\n \"./engine\": {\n \"morty-source\": \"./src/exports/engine.ts\",\n \"types\": \"./dist/exports/engine.d.ts\",\n \"default\": \"./dist/engine.js\"\n }\n },\n \"files\": [\n \"dist\",\n \"NOTICE\",\n \"THIRD-PARTY-NOTICES.txt\"\n ],\n \"engines\": {\n \"node\": \"^22.19.0 || ^24.20.0\"\n },\n \"publishConfig\": {\n \"access\": \"public\",\n \"exports\": {\n \"./engine\": {\n \"types\": \"./dist/exports/engine.d.ts\",\n \"import\": \"./dist/engine.js\",\n \"default\": \"./dist/engine.js\"\n }\n }\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/moxt-ai/mobius-morty.git\",\n \"directory\": \"packages/cli\"\n },\n \"scripts\": {\n \"prebuild\": \"tsc --project src/engine/acp/harness/claude/upstream/tsconfig.json && tsc --project src/engine/acp/harness/pi/upstream/tsconfig.json\",\n \"build\": \"node scripts/build.ts && tsc --project tsconfig.build.json\",\n \"dev\": \"node --watch src/cli/entrypoint.ts\",\n \"pretypecheck\": \"tsc --project src/engine/acp/harness/claude/upstream/tsconfig.json && tsc --project src/engine/acp/harness/pi/upstream/tsconfig.json\",\n \"prepack\": \"pnpm build\",\n \"start\": \"node dist/cli.js\",\n \"typecheck\": \"tsc --project tsconfig.json && tsc --project tests/tsconfig.json\",\n \"pretest:controlled\": \"pnpm build && pnpm pack:test\",\n \"test:controlled\": \"vitest run tests/sessions tests/runtime\",\n \"pretest:manual\": \"pnpm pretest:controlled\",\n \"test:manual\": \"vitest run tests/manual\",\n \"pretest:agents\": \"pnpm build && pnpm pack:test\",\n \"test:agents\": \"vitest run tests/agents --maxWorkers=2\",\n \"pretest:pressure\": \"tsc --project src/engine/acp/harness/claude/upstream/tsconfig.json && tsc --project src/engine/acp/harness/pi/upstream/tsconfig.json\",\n \"test:pressure\": \"node tests/pressure/concurrent-sessions.mjs\",\n \"pack:test\": \"node scripts/pack-test-release.ts\"\n },\n \"dependencies\": {\n \"undici\": \"8.12.2\"\n },\n \"devDependencies\": {\n \"@agentclientprotocol/sdk\": \"^1.4.0\",\n \"@anthropic-ai/claude-agent-sdk\": \"0.3.257\",\n \"@anthropic-ai/sdk\": \"0.122.0\",\n \"@morty-build/client\": \"workspace:*\",\n \"@morty-build/platform-test-support\": \"workspace:*\",\n \"@types/node\": \"^24.13.5\",\n \"@types/semver\": \"^7.8.0\",\n \"@types/ws\": \"^8.18.1\",\n \"commander\": \"15.0.0\",\n \"drizzle-kit\": \"1.0.0-rc.4\",\n \"drizzle-orm\": \"1.0.0-rc.4\",\n \"esbuild\": \"0.28.2\",\n \"semver\": \"^7.8.5\",\n \"valibot\": \"1.5.0\",\n \"ws\": \"^8.21.3\",\n \"zod\": \"^4.6.7\",\n \"@morty-build/local-state\": \"workspace:*\",\n \"miniflare\": \"catalog:\"\n },\n \"keywords\": [],\n \"author\": \"Moxt\",\n \"license\": \"Apache-2.0\",\n \"bugs\": {\n \"url\": \"https://github.com/moxt-ai/mobius-morty/issues\"\n },\n \"homepage\": \"https://morty.build\",\n \"private\": false\n}\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA,EACI,MAAQ;AAAA,EACR,SAAW;AAAA,EACX,aAAe;AAAA,EACf,MAAQ;AAAA,EACR,KAAO;AAAA,IACH,OAAS;AAAA,EACb;AAAA,EACA,SAAW;AAAA,IACP,YAAY;AAAA,MACR,gBAAgB;AAAA,MAChB,OAAS;AAAA,MACT,SAAW;AAAA,IACf;AAAA,EACJ;AAAA,EACA,OAAS;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,SAAW;AAAA,IACP,MAAQ;AAAA,EACZ;AAAA,EACA,eAAiB;AAAA,IACb,QAAU;AAAA,IACV,SAAW;AAAA,MACP,YAAY;AAAA,QACR,OAAS;AAAA,QACT,QAAU;AAAA,QACV,SAAW;AAAA,MACf;AAAA,IACJ;AAAA,EACJ;AAAA,EACA,YAAc;AAAA,IACV,MAAQ;AAAA,IACR,KAAO;AAAA,IACP,WAAa;AAAA,EACjB;AAAA,EACA,SAAW;AAAA,IACP,UAAY;AAAA,IACZ,OAAS;AAAA,IACT,KAAO;AAAA,IACP,cAAgB;AAAA,IAChB,SAAW;AAAA,IACX,OAAS;AAAA,IACT,WAAa;AAAA,IACb,sBAAsB;AAAA,IACtB,mBAAmB;AAAA,IACnB,kBAAkB;AAAA,IAClB,eAAe;AAAA,IACf,kBAAkB;AAAA,IAClB,eAAe;AAAA,IACf,oBAAoB;AAAA,IACpB,iBAAiB;AAAA,IACjB,aAAa;AAAA,EACjB;AAAA,EACA,cAAgB;AAAA,IACZ,QAAU;AAAA,EACd;AAAA,EACA,iBAAmB;AAAA,IACf,4BAA4B;AAAA,IAC5B,kCAAkC;AAAA,IAClC,qBAAqB;AAAA,IACrB,uBAAuB;AAAA,IACvB,sCAAsC;AAAA,IACtC,eAAe;AAAA,IACf,iBAAiB;AAAA,IACjB,aAAa;AAAA,IACb,WAAa;AAAA,IACb,eAAe;AAAA,IACf,eAAe;AAAA,IACf,SAAW;AAAA,IACX,QAAU;AAAA,IACV,SAAW;AAAA,IACX,IAAM;AAAA,IACN,KAAO;AAAA,IACP,4BAA4B;AAAA,IAC5B,WAAa;AAAA,EACjB;AAAA,EACA,UAAY,CAAC;AAAA,EACb,QAAU;AAAA,EACV,SAAW;AAAA,EACX,MAAQ;AAAA,IACJ,KAAO;AAAA,EACX;AAAA,EACA,UAAY;AAAA,EACZ,SAAW;AACf;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { join, resolve } from "node:path";
|
|
2
|
-
import {
|
|
2
|
+
import { openMortyCliInstallation } from "../../../daemon/pairing/pair-local-machine.js";
|
|
3
3
|
import { discoverLocalAgentInventory } from "../../../engine/agent/discovery/discover-local-agents.js";
|
|
4
4
|
import { RuntimeLocalContext } from "../../../engine/runtime/config.js";
|
|
5
5
|
import { ensurePrivateDirectory } from "../../../engine/storage/files/local-files.js";
|
|
@@ -14,7 +14,7 @@ export function registerAgentsHandler(program, context) {
|
|
|
14
14
|
.addOption(valueOption("--output-json <existing-file.json>", "write the JSON inventory to an existing file"))
|
|
15
15
|
.option("--verbose", "include per-Agent detection timing")
|
|
16
16
|
.action(async (options) => {
|
|
17
|
-
const installation = await
|
|
17
|
+
const installation = await openMortyCliInstallation(context.shutdownSignal, process.env);
|
|
18
18
|
const localContext = new RuntimeLocalContext(installation.stateDirectory, process.env);
|
|
19
19
|
const defaultWorkspace = join(readStateDirectory(), "workspace");
|
|
20
20
|
await ensurePrivateDirectory(defaultWorkspace);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/handler/agents/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/handler/agents/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,wBAAwB,EAAE,MAAM,+CAA+C,CAAC;AACzF,OAAO,EAAE,2BAA2B,EAAE,MAAM,0DAA0D,CAAC;AACvG,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAEzE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAQ7F,MAAM,UAAU,qBAAqB,CAAC,OAAgB,EAAE,OAAmB;IACvE,OAAO;SACF,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,sDAAsD,CAAC;SACnE,MAAM,CAAC,QAAQ,EAAE,mCAAmC,CAAC;SACrD,SAAS,CAAC,WAAW,CAAC,oCAAoC,EAAE,8CAA8C,CAAC,CAAC;SAC5G,MAAM,CAAC,WAAW,EAAE,oCAAoC,CAAC;SACzD,MAAM,CAAC,KAAK,EAAE,OAAqB,EAAE,EAAE;QACpC,MAAM,YAAY,GAAG,MAAM,wBAAwB,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QACzF,MAAM,YAAY,GAAG,IAAI,mBAAmB,CAAC,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QACvF,MAAM,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,EAAE,EAAE,WAAW,CAAC,CAAC;QACjE,MAAM,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;QAC/C,MAAM,SAAS,GAAG,MAAM,2BAA2B,CAAC;YAChD,gBAAgB;YAChB,aAAa,EAAE,YAAY,CAAC,cAAc;YAC1C,WAAW,EAAE,YAAY,CAAC,sBAAsB;YAChD,MAAM,EAAE,OAAO,CAAC,cAAc;SACjC,CAAC,CAAC;QACH,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YACnC,MAAM,qBAAqB,CACvB,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,EAC3B,SAAS,EACT,OAAO,CAAC,OAAO,KAAK,IAAI,EACxB,OAAO,CAAC,cAAc,CACzB,CAAC;YACF,OAAO;QACX,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,KAAK,IAAI,EAAE,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC;IAC7G,CAAC,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { readFile, rm } from "node:fs/promises";
|
|
2
2
|
import { join } from "node:path";
|
|
3
3
|
import { ensureDaemon, readDaemonVersion, stopDaemon } from "../../../daemon/lifecycle/daemon-client.js";
|
|
4
|
-
import {
|
|
4
|
+
import { openMortyControlInstallation } from "../../../daemon/pairing/pair-local-machine.js";
|
|
5
5
|
import { executableDirectory, prepareRelease, readInstalledRelease, recordInstallationState, removeInstalledReleases, selectRelease, } from "../../../installation/releases.js";
|
|
6
6
|
import { acquireDaemonLock } from "../../../storage/daemon/daemon-lock.js";
|
|
7
7
|
async function install(options, context) {
|
|
8
8
|
const signal = AbortSignal.any([context.shutdownSignal, AbortSignal.timeout(180_000)]);
|
|
9
|
-
const control = await
|
|
9
|
+
const control = await openMortyControlInstallation(signal, process.env);
|
|
10
10
|
const releaseLock = await acquireDaemonLock(control.stateDirectory, "installation.lock");
|
|
11
11
|
if (releaseLock === null) {
|
|
12
12
|
throw new Error("Another Morty installation operation is running; retry after it finishes");
|
|
@@ -84,7 +84,7 @@ export function registerInstallCommands(program, context) {
|
|
|
84
84
|
.description("stop Morty and remove its managed executables, retaining pairings and user data")
|
|
85
85
|
.action(async () => {
|
|
86
86
|
const signal = AbortSignal.any([context.shutdownSignal, AbortSignal.timeout(60_000)]);
|
|
87
|
-
const control = await
|
|
87
|
+
const control = await openMortyControlInstallation(signal, process.env);
|
|
88
88
|
const releaseLock = await acquireDaemonLock(control.stateDirectory, "installation.lock");
|
|
89
89
|
if (releaseLock === null) {
|
|
90
90
|
throw new Error("Another Morty installation operation is running");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../../src/cli/handler/daemon/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AACzG,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../../src/cli/handler/daemon/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { stopDaemon } from "../../../daemon/lifecycle/daemon-client.js";
|
|
2
|
-
import {
|
|
2
|
+
import { openMortyControlInstallation } from "../../../daemon/pairing/pair-local-machine.js";
|
|
3
3
|
export function registerQuitCommand(program, context) {
|
|
4
4
|
program
|
|
5
5
|
.command("stop")
|
|
6
6
|
.alias("quit")
|
|
7
7
|
.description("stop the daemon and every active Runtime")
|
|
8
8
|
.action(async () => {
|
|
9
|
-
const installation = await
|
|
9
|
+
const installation = await openMortyControlInstallation(context.shutdownSignal, process.env);
|
|
10
10
|
await stopDaemon(installation.stateDirectory, context.shutdownSignal);
|
|
11
11
|
process.stdout.write("Morty daemon stopped.\n");
|
|
12
12
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quit.js","sourceRoot":"","sources":["../../../../src/cli/handler/daemon/quit.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AACxE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"quit.js","sourceRoot":"","sources":["../../../../src/cli/handler/daemon/quit.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AACxE,OAAO,EAAE,4BAA4B,EAAE,MAAM,+CAA+C,CAAC;AAG7F,MAAM,UAAU,mBAAmB,CAAC,OAAgB,EAAE,OAAmB;IACrE,OAAO;SACF,OAAO,CAAC,MAAM,CAAC;SACf,KAAK,CAAC,MAAM,CAAC;SACb,WAAW,CAAC,0CAA0C,CAAC;SACvD,MAAM,CAAC,KAAK,IAAI,EAAE;QACf,MAAM,YAAY,GAAG,MAAM,4BAA4B,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7F,MAAM,UAAU,CAAC,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;QACtE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { releaseIdleAgentProcesses } from "../../../daemon/lifecycle/daemon.js";
|
|
2
|
-
import {
|
|
2
|
+
import { openMortyControlInstallation } from "../../../daemon/pairing/pair-local-machine.js";
|
|
3
3
|
export function registerReleaseCommand(program, context) {
|
|
4
4
|
program
|
|
5
5
|
.command("release")
|
|
6
6
|
.description("release idle Agent sessions so the Agent's own app can continue them")
|
|
7
7
|
.action(async () => {
|
|
8
|
-
const control = await
|
|
8
|
+
const control = await openMortyControlInstallation(context.shutdownSignal, process.env);
|
|
9
9
|
await releaseIdleAgentProcesses(control.stateDirectory, context.shutdownSignal);
|
|
10
10
|
process.stdout.write("Idle Agent sessions were released. Continuing them in Morty reopens them.\n");
|
|
11
11
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"release.js","sourceRoot":"","sources":["../../../../src/cli/handler/daemon/release.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"release.js","sourceRoot":"","sources":["../../../../src/cli/handler/daemon/release.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,EAAE,4BAA4B,EAAE,MAAM,+CAA+C,CAAC;AAG7F,MAAM,UAAU,sBAAsB,CAAC,OAAgB,EAAE,OAAmB;IACxE,OAAO;SACF,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,sEAAsE,CAAC;SACnF,MAAM,CAAC,KAAK,IAAI,EAAE;QACf,MAAM,OAAO,GAAG,MAAM,4BAA4B,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QACxF,MAAM,yBAAyB,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;QAChF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,6EAA6E,CAAC,CAAC;IACxG,CAAC,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../../src/cli/handler/daemon/start.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../../src/cli/handler/daemon/start.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAOnD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI,CAehF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { reloadDaemon } from "../../../daemon/lifecycle/daemon.js";
|
|
2
2
|
import { ensureDaemon } from "../../../daemon/lifecycle/daemon-client.js";
|
|
3
|
-
import {
|
|
3
|
+
import { openMortyCliInstallation, openMortyControlInstallation } from "../../../daemon/pairing/pair-local-machine.js";
|
|
4
4
|
import { valueOption } from "../../util/options.js";
|
|
5
5
|
export function registerStartCommand(program, context) {
|
|
6
6
|
program
|
|
@@ -8,9 +8,9 @@ export function registerStartCommand(program, context) {
|
|
|
8
8
|
.description("ensure the daemon is running and optionally activate a saved connection")
|
|
9
9
|
.addOption(valueOption("--connection <connection-id>", "saved Runtime connection identifier"))
|
|
10
10
|
.action(async (options) => {
|
|
11
|
-
const control = await
|
|
11
|
+
const control = await openMortyControlInstallation(context.shutdownSignal, process.env);
|
|
12
12
|
await ensureDaemon(control.stateDirectory, context.version, context.shutdownSignal);
|
|
13
|
-
const installation = await
|
|
13
|
+
const installation = await openMortyCliInstallation(context.shutdownSignal, process.env);
|
|
14
14
|
if (options.connection !== undefined) {
|
|
15
15
|
await installation.setConnectionActivation(options.connection, "active", context.shutdownSignal);
|
|
16
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../../../src/cli/handler/daemon/start.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAC1E,OAAO,
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../../../src/cli/handler/daemon/start.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,MAAM,+CAA+C,CAAC;AAEvH,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAMpD,MAAM,UAAU,oBAAoB,CAAC,OAAgB,EAAE,OAAmB;IACtE,OAAO;SACF,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,yEAAyE,CAAC;SACtF,SAAS,CAAC,WAAW,CAAC,8BAA8B,EAAE,qCAAqC,CAAC,CAAC;SAC7F,MAAM,CAAC,KAAK,EAAE,OAAqB,EAAE,EAAE;QACpC,MAAM,OAAO,GAAG,MAAM,4BAA4B,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QACxF,MAAM,YAAY,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;QACpF,MAAM,YAAY,GAAG,MAAM,wBAAwB,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QACzF,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YACnC,MAAM,YAAY,CAAC,uBAAuB,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;QACrG,CAAC;QACD,MAAM,YAAY,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;QACnE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { ensureDaemon, stopDaemon } from "../../../daemon/lifecycle/daemon-client.js";
|
|
2
|
-
import {
|
|
2
|
+
import { openMortyControlInstallation } from "../../../daemon/pairing/pair-local-machine.js";
|
|
3
3
|
export function registerUpgradeCommand(program, context) {
|
|
4
4
|
program
|
|
5
5
|
.command("restart")
|
|
6
6
|
.description("restart the daemon using the installed Morty release")
|
|
7
7
|
.action(async () => {
|
|
8
|
-
const control = await
|
|
8
|
+
const control = await openMortyControlInstallation(context.shutdownSignal, process.env);
|
|
9
9
|
await stopDaemon(control.stateDirectory, context.shutdownSignal);
|
|
10
10
|
const version = await ensureDaemon(control.stateDirectory, context.version, context.shutdownSignal);
|
|
11
11
|
process.stdout.write(`Morty daemon ${version} restarted.\n`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../../../src/cli/handler/daemon/upgrade.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AACtF,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../../../src/cli/handler/daemon/upgrade.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AACtF,OAAO,EAAE,4BAA4B,EAAE,MAAM,+CAA+C,CAAC;AAG7F,MAAM,UAAU,sBAAsB,CAAC,OAAgB,EAAE,OAAmB;IACxE,OAAO;SACF,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,sDAAsD,CAAC;SACnE,MAAM,CAAC,KAAK,IAAI,EAAE;QACf,MAAM,OAAO,GAAG,MAAM,4BAA4B,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QACxF,MAAM,UAAU,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;QACjE,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;QACpG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,OAAO,eAAe,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { join } from "node:path";
|
|
2
2
|
import { z } from "zod";
|
|
3
|
-
import {
|
|
3
|
+
import { MortyRuntimeEngine } from "../../../engine/runtime/engine.js";
|
|
4
4
|
import { describeRelayFailure } from "../../../engine/runtime/relay/diagnostics.js";
|
|
5
5
|
import { ensureProbeDirectory } from "../../../storage/diagnostics/relay-probe-files.js";
|
|
6
6
|
import { configuredProbeProxy, failureCode, readProbeConfiguration } from "./config.js";
|
|
@@ -51,7 +51,7 @@ export async function runRelayProbeWorker(configPath, role, directory, signal) {
|
|
|
51
51
|
]);
|
|
52
52
|
const workspace = join(directory, "workspace");
|
|
53
53
|
await ensureProbeDirectory(workspace);
|
|
54
|
-
const engine = new
|
|
54
|
+
const engine = new MortyRuntimeEngine({
|
|
55
55
|
engineDataDir: join(directory, "state"),
|
|
56
56
|
agentLaunchEnvironment: { HOME: join(directory, "home"), PATH: "" },
|
|
57
57
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../../src/cli/handler/diagnose/worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../../src/cli/handler/diagnose/worker.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ export function registerLogsCommand(program, context) {
|
|
|
7
7
|
.command("logs")
|
|
8
8
|
.description("print the local daemon diagnostic logs for a bug report")
|
|
9
9
|
.option("--json", "write the collected logs as JSON")
|
|
10
|
-
.option("--state-directory <path>", "read logs from a specific
|
|
10
|
+
.option("--state-directory <path>", "read logs from a specific Morty state directory")
|
|
11
11
|
.option("--tail <lines>", `keep at most this many lines per log file (default ${DEFAULT_TAIL_LINES.toString()})`)
|
|
12
12
|
.action(async (options) => {
|
|
13
13
|
const tailLines = parseTailLines(options.tail);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/handler/logs/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAsB,MAAM,+BAA+B,CAAC;AAQlH,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAC/B,MAAM,kBAAkB,GAAG,KAAK,CAAC;AAEjC,MAAM,cAAc,GAAG,oFAAoF,CAAC;AAE5G,MAAM,UAAU,mBAAmB,CAAC,OAAgB,EAAE,OAAmB;IACrE,OAAO;SACF,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,yDAAyD,CAAC;SACtE,MAAM,CAAC,QAAQ,EAAE,kCAAkC,CAAC;SACpD,MAAM,CAAC,0BAA0B,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/handler/logs/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { resolve } from "node:path";
|
|
2
|
-
import {
|
|
2
|
+
import { openMortyCliInstallation } from "../../../daemon/pairing/pair-local-machine.js";
|
|
3
3
|
import { valueOption } from "../../util/options.js";
|
|
4
4
|
import { formatPairTable, savedPairSummary, writePairList } from "./logic/pair-list-output.js";
|
|
5
5
|
export function registerPairListCommand(command, context) {
|
|
@@ -8,7 +8,7 @@ export function registerPairListCommand(command, context) {
|
|
|
8
8
|
.description("list saved pairings")
|
|
9
9
|
.addOption(valueOption("--output-json <existing-file.json>", "write JSON to an existing file"))
|
|
10
10
|
.action(async (options) => {
|
|
11
|
-
const installation = await
|
|
11
|
+
const installation = await openMortyCliInstallation(context.shutdownSignal, process.env);
|
|
12
12
|
const outputPath = options.outputJson === undefined ? null : resolve(options.outputJson);
|
|
13
13
|
const pairs = (await installation.listConnections(context.shutdownSignal))
|
|
14
14
|
.map(savedPairSummary)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/cli/handler/pair/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/cli/handler/pair/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAAE,wBAAwB,EAAE,MAAM,+CAA+C,CAAC;AAEzF,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE/F,MAAM,UAAU,uBAAuB,CAAC,OAAgB,EAAE,OAAmB;IACzE,OAAO;SACF,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,qBAAqB,CAAC;SAClC,SAAS,CAAC,WAAW,CAAC,oCAAoC,EAAE,gCAAgC,CAAC,CAAC;SAC9F,MAAM,CAAC,KAAK,EAAE,OAAwB,EAAE,EAAE;QACvC,MAAM,YAAY,GAAG,MAAM,wBAAwB,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QACzF,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACzF,MAAM,KAAK,GAAG,CAAC,MAAM,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;aACrE,GAAG,CAAC,gBAAgB,CAAC;aACrB,IAAI,CACD,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACZ,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,CACnG,CAAC;QACN,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACJ,MAAM,aAAa,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;QACnE,CAAC;IACL,CAAC,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Option } from "commander";
|
|
2
2
|
import { reloadDaemon } from "../../../daemon/lifecycle/daemon.js";
|
|
3
3
|
import { ensureDaemon } from "../../../daemon/lifecycle/daemon-client.js";
|
|
4
|
-
import {
|
|
4
|
+
import { openMortyCliInstallation, openMortyControlInstallation, pairLocalMachine, } from "../../../daemon/pairing/pair-local-machine.js";
|
|
5
5
|
import { valueOption } from "../../util/options.js";
|
|
6
6
|
import { pairArguments, requirePairOptions } from "./logic/options.js";
|
|
7
7
|
export function registerPairAction(command, context) {
|
|
@@ -13,9 +13,9 @@ export function registerPairAction(command, context) {
|
|
|
13
13
|
.addOption(valueOption("--workspace <directory>", "default workspace directory"))
|
|
14
14
|
.action(async (options) => {
|
|
15
15
|
const requested = await requirePairOptions(options, command, process.stdin, context.shutdownSignal);
|
|
16
|
-
const control = await
|
|
16
|
+
const control = await openMortyControlInstallation(context.shutdownSignal, process.env);
|
|
17
17
|
await ensureDaemon(control.stateDirectory, context.version, context.shutdownSignal);
|
|
18
|
-
const installation = await
|
|
18
|
+
const installation = await openMortyCliInstallation(context.shutdownSignal, process.env);
|
|
19
19
|
process.stdout.write(`morty version: ${context.version}\n`);
|
|
20
20
|
const paired = await pairLocalMachine(pairArguments(requested), context.shutdownSignal);
|
|
21
21
|
const connection = await installation.setConnectionActivation(paired.connectionId, "active", context.shutdownSignal);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pair.js","sourceRoot":"","sources":["../../../../src/cli/handler/pair/pair.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,MAAM,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAC1E,OAAO,EACH,
|
|
1
|
+
{"version":3,"file":"pair.js","sourceRoot":"","sources":["../../../../src/cli/handler/pair/pair.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,MAAM,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAC1E,OAAO,EACH,wBAAwB,EACxB,4BAA4B,EAC5B,gBAAgB,GACnB,MAAM,+CAA+C,CAAC;AAEvD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAA0B,aAAa,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE/F,MAAM,UAAU,kBAAkB,CAAC,OAAgB,EAAE,OAAmB;IACpE,OAAO;SACF,SAAS,CAAC,WAAW,CAAC,mBAAmB,EAAE,yBAAyB,CAAC,CAAC;SACtE,SAAS,CAAC,WAAW,CAAC,uBAAuB,EAAE,mCAAmC,CAAC,CAAC;SACpF,SAAS,CACN,IAAI,MAAM,CAAC,cAAc,EAAE,6DAA6D,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAC9G;SACA,SAAS,CAAC,WAAW,CAAC,gCAAgC,EAAE,4BAA4B,CAAC,CAAC;SACtF,SAAS,CAAC,WAAW,CAAC,yBAAyB,EAAE,6BAA6B,CAAC,CAAC;SAChF,MAAM,CAAC,KAAK,EAAE,OAA0B,EAAE,EAAE;QACzC,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;QACpG,MAAM,OAAO,GAAG,MAAM,4BAA4B,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QACxF,MAAM,YAAY,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;QACpF,MAAM,YAAY,GAAG,MAAM,wBAAwB,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QACzF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;QACxF,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,uBAAuB,CACzD,MAAM,CAAC,YAAY,EACnB,QAAQ,EACR,OAAO,CAAC,cAAc,CACzB,CAAC;QACF,MAAM,YAAY,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;QACnE,OAAO,CAAC,MAAM,CAAC,KAAK,CAChB,oCAAoC,UAAU,CAAC,KAAK,oBAAoB,UAAU,CAAC,YAAY,IAAI,CACtG,CAAC;QACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qEAAqE,CAAC,CAAC;IAChG,CAAC,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remove.d.ts","sourceRoot":"","sources":["../../../../src/cli/handler/pair/remove.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"remove.d.ts","sourceRoot":"","sources":["../../../../src/cli/handler/pair/remove.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAInD,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI,CAuBrF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { reloadDaemon } from "../../../daemon/lifecycle/daemon.js";
|
|
2
|
-
import {
|
|
2
|
+
import { openMortyCliInstallation, openMortyControlInstallation } from "../../../daemon/pairing/pair-local-machine.js";
|
|
3
3
|
import { removeHistoricalPairingFiles } from "../../../storage/daemon/pairing-copies.js";
|
|
4
4
|
import { readStateDirectory } from "../../../storage/state-directory.js";
|
|
5
5
|
import { valueOption } from "../../util/options.js";
|
|
@@ -9,13 +9,13 @@ export function registerPairRemoveCommand(command, context) {
|
|
|
9
9
|
.description("remove a saved pairing")
|
|
10
10
|
.addOption(valueOption("--connection <connection-id>", "saved Runtime connection identifier", true))
|
|
11
11
|
.action(async (options) => {
|
|
12
|
-
const installation = await
|
|
12
|
+
const installation = await openMortyCliInstallation(context.shutdownSignal, process.env);
|
|
13
13
|
const connection = await installation.readConnection(options.connection, context.shutdownSignal);
|
|
14
14
|
// Keep the authoritative record until cleanup succeeds, so a failed
|
|
15
15
|
// cleanup can be retried without losing the pairing's identity.
|
|
16
16
|
await removeHistoricalPairingFiles(readStateDirectory(), installation.stateDirectory, installation.installationId, connection.connectionId, connection.channelId, context.shutdownSignal);
|
|
17
17
|
await installation.removeConnection(options.connection, context.shutdownSignal);
|
|
18
|
-
const control = await
|
|
18
|
+
const control = await openMortyControlInstallation(context.shutdownSignal, process.env);
|
|
19
19
|
await reloadDaemon(control.stateDirectory, context.shutdownSignal);
|
|
20
20
|
process.stdout.write(`Pairing removed: ${options.connection}\n`);
|
|
21
21
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../../src/cli/handler/pair/remove.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACnE,OAAO,
|
|
1
|
+
{"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../../src/cli/handler/pair/remove.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACnE,OAAO,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,MAAM,+CAA+C,CAAC;AACvH,OAAO,EAAE,4BAA4B,EAAE,MAAM,2CAA2C,CAAC;AACzF,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAEzE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpD,MAAM,UAAU,yBAAyB,CAAC,OAAgB,EAAE,OAAmB;IAC3E,OAAO;SACF,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,wBAAwB,CAAC;SACrC,SAAS,CAAC,WAAW,CAAC,8BAA8B,EAAE,qCAAqC,EAAE,IAAI,CAAC,CAAC;SACnG,MAAM,CAAC,KAAK,EAAE,OAA0B,EAAE,EAAE;QACzC,MAAM,YAAY,GAAG,MAAM,wBAAwB,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QACzF,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;QACjG,oEAAoE;QACpE,gEAAgE;QAChE,MAAM,4BAA4B,CAC9B,kBAAkB,EAAE,EACpB,YAAY,CAAC,cAAc,EAC3B,YAAY,CAAC,cAAc,EAC3B,UAAU,CAAC,YAAY,EACvB,UAAU,CAAC,SAAS,EACpB,OAAO,CAAC,cAAc,CACzB,CAAC;QACF,MAAM,YAAY,CAAC,gBAAgB,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;QAChF,MAAM,OAAO,GAAG,MAAM,4BAA4B,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QACxF,MAAM,YAAY,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;QACnE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stop.d.ts","sourceRoot":"","sources":["../../../../src/cli/handler/pair/stop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"stop.d.ts","sourceRoot":"","sources":["../../../../src/cli/handler/pair/stop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAInD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI,CAYnF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { reloadDaemon } from "../../../daemon/lifecycle/daemon.js";
|
|
2
|
-
import {
|
|
2
|
+
import { openMortyCliInstallation, openMortyControlInstallation } from "../../../daemon/pairing/pair-local-machine.js";
|
|
3
3
|
import { valueOption } from "../../util/options.js";
|
|
4
4
|
export function registerPairStopCommand(command, context) {
|
|
5
5
|
command
|
|
@@ -7,9 +7,9 @@ export function registerPairStopCommand(command, context) {
|
|
|
7
7
|
.description("stop a saved pairing")
|
|
8
8
|
.addOption(valueOption("--connection <connection-id>", "saved Runtime connection identifier", true))
|
|
9
9
|
.action(async (options) => {
|
|
10
|
-
const installation = await
|
|
10
|
+
const installation = await openMortyCliInstallation(context.shutdownSignal, process.env);
|
|
11
11
|
await installation.setConnectionActivation(options.connection, "stopped", context.shutdownSignal);
|
|
12
|
-
const control = await
|
|
12
|
+
const control = await openMortyControlInstallation(context.shutdownSignal, process.env);
|
|
13
13
|
await reloadDaemon(control.stateDirectory, context.shutdownSignal);
|
|
14
14
|
process.stdout.write(`Pairing stopped: ${options.connection}\n`);
|
|
15
15
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stop.js","sourceRoot":"","sources":["../../../../src/cli/handler/pair/stop.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACnE,OAAO,
|
|
1
|
+
{"version":3,"file":"stop.js","sourceRoot":"","sources":["../../../../src/cli/handler/pair/stop.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACnE,OAAO,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,MAAM,+CAA+C,CAAC;AAEvH,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpD,MAAM,UAAU,uBAAuB,CAAC,OAAgB,EAAE,OAAmB;IACzE,OAAO;SACF,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,sBAAsB,CAAC;SACnC,SAAS,CAAC,WAAW,CAAC,8BAA8B,EAAE,qCAAqC,EAAE,IAAI,CAAC,CAAC;SACnG,MAAM,CAAC,KAAK,EAAE,OAA0B,EAAE,EAAE;QACzC,MAAM,YAAY,GAAG,MAAM,wBAAwB,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QACzF,MAAM,YAAY,CAAC,uBAAuB,CAAC,OAAO,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;QAClG,MAAM,OAAO,GAAG,MAAM,4BAA4B,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QACxF,MAAM,YAAY,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;QACnE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { readDaemonVersion } from "../../../daemon/lifecycle/daemon-client.js";
|
|
2
|
-
import {
|
|
2
|
+
import { openMortyControlInstallation } from "../../../daemon/pairing/pair-local-machine.js";
|
|
3
3
|
import { readInstalledRelease } from "../../../installation/releases.js";
|
|
4
4
|
async function reportInstallationVersion(context) {
|
|
5
|
-
const control = await
|
|
5
|
+
const control = await openMortyControlInstallation(context.shutdownSignal, process.env);
|
|
6
6
|
const daemonVersion = await readDaemonVersion(control.stateDirectory, context.shutdownSignal);
|
|
7
7
|
const installed = await readInstalledRelease(context.shutdownSignal);
|
|
8
8
|
process.stdout.write(`Installed: ${installed?.version ?? "not installed"}\n`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/handler/version/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAC;AAC/E,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/handler/version/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAC;AAC/E,OAAO,EAAE,4BAA4B,EAAE,MAAM,+CAA+C,CAAC;AAC7F,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAGzE,KAAK,UAAU,yBAAyB,CAAC,OAAmB;IACxD,MAAM,OAAO,GAAG,MAAM,4BAA4B,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACxF,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IAC9F,MAAM,SAAS,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACrE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,SAAS,EAAE,OAAO,IAAI,eAAe,IAAI,CAAC,CAAC;IAC9E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC;IAClD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,aAAa,IAAI,aAAa,IAAI,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAgB,EAAE,OAAmB;IACxE,OAAO;SACF,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,8BAA8B,CAAC;SAC3C,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,MAAM,yBAAyB,CAAC,OAAO,CAAC,CAAC,CAAC;IAClE,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,2CAA2C,CAAC,CAAC;IAC7E,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;QACtB,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5B,MAAM,yBAAyB,CAAC,OAAO,CAAC,CAAC;YACzC,OAAO;QACX,CAAC;QACD,OAAO,CAAC,UAAU,EAAE,CAAC;IACzB,CAAC,CAAC,CAAC;AACP,CAAC"}
|