@moxt-ai/mobius 0.0.344 → 0.0.345
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/handler/agents/index.js +4 -4
- package/dist/cli/handler/agents/index.js.map +1 -1
- package/dist/cli/handler/agents/logic/agent-diagnostics.js +1 -1
- package/dist/cli/handler/agents/logic/agent-diagnostics.js.map +1 -1
- package/dist/cli/handler/daemon/start.js +2 -2
- package/dist/cli/handler/daemon/start.js.map +1 -1
- package/dist/cli/handler/logs/logic/collect-local-logs.js +2 -2
- package/dist/cli/handler/logs/logic/collect-local-logs.js.map +1 -1
- package/dist/cli/handler/pair/logic/pair-list-output.js +1 -1
- package/dist/cli/handler/pair/logic/pair-list-output.js.map +1 -1
- package/dist/cli/handler/pair/pair.js +2 -2
- package/dist/cli/handler/pair/pair.js.map +1 -1
- package/dist/cli/index.js +1 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli.js +10089 -10034
- package/dist/cli.js.map +4 -4
- package/dist/daemon/config.d.ts +5 -0
- package/dist/daemon/config.d.ts.map +1 -0
- package/dist/daemon/config.js +40 -0
- package/dist/daemon/config.js.map +1 -0
- package/dist/daemon/control/local-client.d.ts.map +1 -1
- package/dist/daemon/control/local-client.js +1 -1
- package/dist/daemon/control/local-client.js.map +1 -1
- package/dist/daemon/control/local-server.d.ts.map +1 -1
- package/dist/daemon/control/local-server.js +1 -1
- package/dist/daemon/control/local-server.js.map +1 -1
- package/dist/daemon/lifecycle/manager-client.d.ts.map +1 -1
- package/dist/daemon/lifecycle/manager-client.js +3 -3
- package/dist/daemon/lifecycle/manager-client.js.map +1 -1
- package/dist/daemon/lifecycle/manager.d.ts.map +1 -1
- package/dist/daemon/lifecycle/manager.js +1 -1
- package/dist/daemon/lifecycle/manager.js.map +1 -1
- package/dist/daemon/lifecycle/worker.d.ts.map +1 -1
- package/dist/daemon/lifecycle/worker.js +6 -3
- package/dist/daemon/lifecycle/worker.js.map +1 -1
- package/dist/daemon/pairing/pair-local-machine.d.ts.map +1 -1
- package/dist/daemon/pairing/pair-local-machine.js +26 -21
- package/dist/daemon/pairing/pair-local-machine.js.map +1 -1
- package/dist/daemon/upgrades/data.d.ts.map +1 -1
- package/dist/daemon/upgrades/data.js +2 -2
- package/dist/daemon/upgrades/data.js.map +1 -1
- package/dist/daemon/upgrades/package.d.ts.map +1 -1
- package/dist/daemon/upgrades/package.js +1 -1
- package/dist/daemon/upgrades/package.js.map +1 -1
- package/dist/engine/index.d.ts +1 -1
- package/dist/engine/index.d.ts.map +1 -1
- package/dist/engine/index.js +1 -1
- package/dist/engine/index.js.map +1 -1
- package/dist/engine/runtime/catalog/refresh-agent-catalog.js +1 -1
- package/dist/engine/runtime/catalog/refresh-agent-catalog.js.map +1 -1
- package/dist/engine/runtime/catalog/resolve-catalog-agent.js +1 -1
- package/dist/engine/runtime/catalog/resolve-catalog-agent.js.map +1 -1
- package/dist/engine/runtime/command/registry/index.d.ts.map +1 -1
- package/dist/engine/runtime/command/registry/index.js +18 -1
- package/dist/engine/runtime/command/registry/index.js.map +1 -1
- package/dist/engine/runtime/config.d.ts +6 -8
- package/dist/engine/runtime/config.d.ts.map +1 -1
- package/dist/engine/runtime/config.js +9 -15
- package/dist/engine/runtime/config.js.map +1 -1
- package/dist/engine/runtime/connection/runtime-connection.d.ts +1 -2
- package/dist/engine/runtime/connection/runtime-connection.d.ts.map +1 -1
- package/dist/engine/runtime/connection/runtime-connection.js +1 -3
- package/dist/engine/runtime/connection/runtime-connection.js.map +1 -1
- package/dist/engine/runtime/connection/runtime-installation-store.d.ts +4 -7
- package/dist/engine/runtime/connection/runtime-installation-store.d.ts.map +1 -1
- package/dist/engine/runtime/connection/runtime-installation-store.js +56 -60
- package/dist/engine/runtime/connection/runtime-installation-store.js.map +1 -1
- package/dist/engine/runtime/engine.d.ts +10 -4
- package/dist/engine/runtime/engine.d.ts.map +1 -1
- package/dist/engine/runtime/engine.js +6 -25
- package/dist/engine/runtime/engine.js.map +1 -1
- package/dist/engine/runtime/relay/diagnostics.d.ts.map +1 -1
- package/dist/engine/runtime/relay/diagnostics.js +15 -0
- package/dist/engine/runtime/relay/diagnostics.js.map +1 -1
- package/dist/engine/runtime/relay/run-relay-connection.d.ts.map +1 -1
- package/dist/engine/runtime/relay/run-relay-connection.js +3 -0
- package/dist/engine/runtime/relay/run-relay-connection.js.map +1 -1
- package/dist/engine/runtime/run.js +2 -2
- package/dist/engine/runtime/run.js.map +1 -1
- package/dist/engine/session/process/agent-process-pool.d.ts +0 -1
- package/dist/engine/session/process/agent-process-pool.d.ts.map +1 -1
- package/dist/engine/session/process/agent-process-pool.js +0 -14
- package/dist/engine/session/process/agent-process-pool.js.map +1 -1
- package/dist/engine/session/prompt/execute-prompt.d.ts.map +1 -1
- package/dist/engine/session/prompt/execute-prompt.js +10 -1
- package/dist/engine/session/prompt/execute-prompt.js.map +1 -1
- package/dist/engine/session/prompt/prompt-artifacts.d.ts.map +1 -1
- package/dist/engine/session/prompt/prompt-artifacts.js +6 -7
- package/dist/engine/session/prompt/prompt-artifacts.js.map +1 -1
- package/dist/engine/storage/installation/installation-files.d.ts +3 -4
- package/dist/engine/storage/installation/installation-files.d.ts.map +1 -1
- package/dist/engine/storage/installation/installation-files.js +5 -9
- package/dist/engine/storage/installation/installation-files.js.map +1 -1
- package/dist/engine/storage/logs/log-files.d.ts +2 -26
- package/dist/engine/storage/logs/log-files.d.ts.map +1 -1
- package/dist/engine/storage/logs/log-files.js +5 -128
- package/dist/engine/storage/logs/log-files.js.map +1 -1
- package/dist/engine.js +479 -469
- package/dist/engine.js.map +4 -4
- package/dist/{engine/storage → storage}/daemon/control-token.d.ts +1 -1
- package/dist/storage/daemon/control-token.d.ts.map +1 -0
- package/dist/{engine/storage → storage}/daemon/control-token.js +1 -1
- package/dist/storage/daemon/control-token.js.map +1 -0
- package/dist/{engine/storage → storage}/daemon/manager-lock.d.ts +1 -1
- package/dist/storage/daemon/manager-lock.d.ts.map +1 -0
- package/dist/{engine/storage → storage}/daemon/manager-lock.js +1 -1
- package/dist/storage/daemon/manager-lock.js.map +1 -0
- package/dist/storage/daemon/release-files.d.ts.map +1 -0
- package/dist/storage/daemon/release-files.js.map +1 -0
- package/dist/{engine/storage → storage}/daemon/version-data.d.ts +2 -0
- package/dist/storage/daemon/version-data.d.ts.map +1 -0
- package/dist/{engine/storage → storage}/daemon/version-data.js +17 -2
- package/dist/storage/daemon/version-data.js.map +1 -0
- package/dist/storage/files/output-file.d.ts.map +1 -0
- package/dist/{engine/storage → storage}/files/output-file.js +1 -1
- package/dist/storage/files/output-file.js.map +1 -0
- package/dist/storage/logs/log-files.d.ts +24 -0
- package/dist/storage/logs/log-files.d.ts.map +1 -0
- package/dist/storage/logs/log-files.js +122 -0
- package/dist/storage/logs/log-files.js.map +1 -0
- package/dist/storage/state-directory.d.ts.map +1 -0
- package/dist/storage/state-directory.js.map +1 -0
- package/dist/storage/state-root-layout.d.ts.map +1 -0
- package/dist/storage/state-root-layout.js.map +1 -0
- package/dist/storage/state-root.d.ts.map +1 -0
- package/dist/{engine/storage → storage}/state-root.js +1 -1
- package/dist/storage/state-root.js.map +1 -0
- package/package.json +1 -1
- package/dist/engine/storage/daemon/control-token.d.ts.map +0 -1
- package/dist/engine/storage/daemon/control-token.js.map +0 -1
- package/dist/engine/storage/daemon/manager-lock.d.ts.map +0 -1
- package/dist/engine/storage/daemon/manager-lock.js.map +0 -1
- package/dist/engine/storage/daemon/release-files.d.ts.map +0 -1
- package/dist/engine/storage/daemon/release-files.js.map +0 -1
- package/dist/engine/storage/daemon/version-data.d.ts.map +0 -1
- package/dist/engine/storage/daemon/version-data.js.map +0 -1
- package/dist/engine/storage/files/output-file.d.ts.map +0 -1
- package/dist/engine/storage/files/output-file.js.map +0 -1
- package/dist/engine/storage/state-directory.d.ts.map +0 -1
- package/dist/engine/storage/state-directory.js.map +0 -1
- package/dist/engine/storage/state-root-layout.d.ts.map +0 -1
- package/dist/engine/storage/state-root-layout.js.map +0 -1
- package/dist/engine/storage/state-root.d.ts.map +0 -1
- package/dist/engine/storage/state-root.js.map +0 -1
- /package/dist/{engine/storage → storage}/daemon/release-files.d.ts +0 -0
- /package/dist/{engine/storage → storage}/daemon/release-files.js +0 -0
- /package/dist/{engine/storage → storage}/files/output-file.d.ts +0 -0
- /package/dist/{engine/storage → storage}/state-directory.d.ts +0 -0
- /package/dist/{engine/storage → storage}/state-directory.js +0 -0
- /package/dist/{engine/storage → storage}/state-root-layout.d.ts +0 -0
- /package/dist/{engine/storage → storage}/state-root-layout.js +0 -0
- /package/dist/{engine/storage → storage}/state-root.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/engine/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/engine/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,YAAY,EACR,sBAAsB,EACtB,oBAAoB,EACpB,2BAA2B,EAC3B,2BAA2B,GAC9B,MAAM,oCAAoC,CAAC;AAC5C,YAAY,EACR,eAAe,EACf,sBAAsB,EACtB,4BAA4B,EAC5B,sBAAsB,GACzB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,+CAA+C,CAAC;AACxF,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,YAAY,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAClF,OAAO,EACH,mBAAmB,EACnB,4BAA4B,EAC5B,mBAAmB,EACnB,sBAAsB,GACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,2BAA2B,EAAE,MAAM,oDAAoD,CAAC;AACjG,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,4BAA4B,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAClH,cAAc,mCAAmC,CAAC;AAClD,cAAc,8BAA8B,CAAC"}
|
package/dist/engine/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export { PairingClientError, pairMobiusRuntime, resumeMobiusRuntime, } from "../daemon/pairing/pair-local-machine.js";
|
|
2
1
|
export { AcpAgentDefinition } from "./acp/agent/agent-definition.js";
|
|
3
2
|
export { EndpointAgentConnection } from "./acp/connection/endpoint-agent-connection.js";
|
|
4
3
|
export { RuntimeAgentDependencies } from "./agent/runtime-agents.js";
|
|
5
4
|
export { createRuntimeConfig, OpaqueRuntimeReconnectTarget, RuntimeLocalContext, RuntimeReconnectTarget, } from "./runtime/config.js";
|
|
5
|
+
export { openEngineInstallationStore } from "./runtime/connection/runtime-installation-store.js";
|
|
6
6
|
export * from "./runtime/engine.js";
|
|
7
7
|
export { MobiusRuntimeEngine, openRuntimeInstallationStore, RuntimeRelayRevokedError } from "./runtime/engine.js";
|
|
8
8
|
export * from "./util/filesystem/private-path.js";
|
package/dist/engine/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/engine/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/engine/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAarE,OAAO,EAAE,uBAAuB,EAAE,MAAM,+CAA+C,CAAC;AACxF,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAErE,OAAO,EACH,mBAAmB,EACnB,4BAA4B,EAC5B,mBAAmB,EACnB,sBAAsB,GACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,2BAA2B,EAAE,MAAM,oDAAoD,CAAC;AACjG,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,4BAA4B,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAClH,cAAc,mCAAmC,CAAC;AAClD,cAAc,8BAA8B,CAAC"}
|
|
@@ -8,6 +8,6 @@ import { publishAgentCatalog } from "./publish-agent-catalog.js";
|
|
|
8
8
|
export async function refreshAgentCatalog(config, discover, signal) {
|
|
9
9
|
const readyAgents = await discover(signal);
|
|
10
10
|
signal.throwIfAborted();
|
|
11
|
-
return await config.catalog.replaceAndPublish(() => readyAgents.map((agent) => withRuntimeEnvironment(agent, config.localContext.
|
|
11
|
+
return await config.catalog.replaceAndPublish(() => readyAgents.map((agent) => withRuntimeEnvironment(agent, config.localContext.agentLaunchEnvironment)), (publishSignal) => publishAgentCatalog(config, publishSignal), signal);
|
|
12
12
|
}
|
|
13
13
|
//# sourceMappingURL=refresh-agent-catalog.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refresh-agent-catalog.js","sourceRoot":"","sources":["../../../../src/engine/runtime/catalog/refresh-agent-catalog.ts"],"names":[],"mappings":"AACA,OAAO,EAAsB,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACrC,MAAqB,EACrB,QAAmE,EACnE,MAAmB;IAEnB,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,CAAC,cAAc,EAAE,CAAC;IACxB,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC,iBAAiB,CACzC,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,sBAAsB,CAAC,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"refresh-agent-catalog.js","sourceRoot":"","sources":["../../../../src/engine/runtime/catalog/refresh-agent-catalog.ts"],"names":[],"mappings":"AACA,OAAO,EAAsB,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACrC,MAAqB,EACrB,QAAmE,EACnE,MAAmB;IAEnB,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,CAAC,cAAc,EAAE,CAAC;IACxB,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC,iBAAiB,CACzC,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,sBAAsB,CAAC,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,sBAAsB,CAAC,CAAC,EAC3G,CAAC,aAAa,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,EAAE,aAAa,CAAC,EAC7D,MAAM,CACT,CAAC;AACN,CAAC"}
|
|
@@ -38,7 +38,7 @@ export function createCatalogAgentResolver(discover, readConfig, publish) {
|
|
|
38
38
|
const rediscovered = inventory
|
|
39
39
|
.readyAgents()
|
|
40
40
|
.filter((ready) => ready.id === agent.id)
|
|
41
|
-
.map((ready) => withRuntimeEnvironment(ready, config.localContext.
|
|
41
|
+
.map((ready) => withRuntimeEnvironment(ready, config.localContext.agentLaunchEnvironment));
|
|
42
42
|
await config.catalog.replaceAndPublish((current) => {
|
|
43
43
|
if (!current.some((entry) => entry.id === agent.id)) {
|
|
44
44
|
throw new Error(`The local Agent ${agent.id} left the catalog before its refresh completed`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-catalog-agent.js","sourceRoot":"","sources":["../../../../src/engine/runtime/catalog/resolve-catalog-agent.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAsB,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAE1E,sGAAsG;AACtG,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACrC,MAAqB,EACrB,OAAe,EACf,MAAmB;IAEnB,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3C,OAAO,MAAM,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAChG,CAAC;AAKD;;;;;;;;GAQG;AACH,MAAM,UAAU,0BAA0B,CACtC,QAA2B,EAC3B,UAA+B,EAC/B,OAAuB;IAEvB,MAAM,KAAK,GAAG,IAAI,GAAG,EAAyB,CAAC;IAC/C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAC3B,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,OAAO,CAAC;YACd,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,OAAO,GAAG,GAAS,EAAE,CAAC,SAAS,CAAC;QACpC,MAAM,IAAI,GAAG,IAAI,OAAO,CAAO,CAAC,WAAW,EAAE,EAAE;YAC3C,OAAO,GAAG,WAAW,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC;YACD,IAAI,MAAM,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;gBACzC,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,MAAM,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;YACzC,MAAM,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,YAAY,GAAG,SAAS;iBACzB,WAAW,EAAE;iBACb,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC;iBACxC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,sBAAsB,CAAC,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"resolve-catalog-agent.js","sourceRoot":"","sources":["../../../../src/engine/runtime/catalog/resolve-catalog-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/engine/runtime/command/registry/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACpG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AA2BpD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,cAAc,GAAG;IAC5D,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,sBAAsB,KAAK,IAAI,CAAC;IAC7D,QAAQ,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACnD,QAAQ,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/engine/runtime/command/registry/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACpG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AA2BpD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,cAAc,GAAG;IAC5D,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,sBAAsB,KAAK,IAAI,CAAC;IAC7D,QAAQ,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACnD,QAAQ,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC,CA0DA"}
|
|
@@ -43,7 +43,24 @@ export function createCommandRegistry(context) {
|
|
|
43
43
|
}
|
|
44
44
|
command.handle(context, message);
|
|
45
45
|
},
|
|
46
|
-
dispatchChunk: (message) =>
|
|
46
|
+
dispatchChunk: (message) => {
|
|
47
|
+
// A future binary format must not disconnect unrelated Sessions.
|
|
48
|
+
// Validate the whole frame before passing any bytes to an upload.
|
|
49
|
+
const frame = (() => {
|
|
50
|
+
try {
|
|
51
|
+
return decodeContentChunkFrame(message);
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
context.diagnostics.daemonDiagnostic("content_frame_discarded", "unknown", {
|
|
55
|
+
reason: "unsupported_frame",
|
|
56
|
+
});
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
})();
|
|
60
|
+
if (frame !== null) {
|
|
61
|
+
contentWrites.receiveChunk(frame);
|
|
62
|
+
}
|
|
63
|
+
},
|
|
47
64
|
settle: async () => {
|
|
48
65
|
await Promise.all([
|
|
49
66
|
contentWrites.settle(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/engine/runtime/command/registry/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAA+B,MAAM,8BAA8B,CAAC;AAGpG,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC;AAC5F,OAAO,EACH,yBAAyB,EACzB,wBAAwB,EACxB,wBAAwB,EACxB,+BAA+B,EAC/B,oBAAoB,EACpB,mBAAmB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,EACH,wBAAwB,EACxB,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,GACvB,MAAM,cAAc,CAAC;AAEtB,MAAM,UAAU,qBAAqB,CAAC,OAAuB;IAKzD,MAAM,aAAa,GAAG,0BAA0B,CAAC,OAAO,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAA8B;QACxC,yBAAyB;QACzB,kBAAkB;QAClB,6BAA6B;QAC7B,6BAA6B;QAC7B,GAAG,2BAA2B,CAAC,OAAO,CAAC;QACvC,GAAG,0BAA0B,CAAC,OAAO,CAAC;QACtC,GAAG,2BAA2B,CAAC,OAAO,CAAC;QACvC,GAAG,aAAa,CAAC,QAAQ;QACzB,eAAe;QACf,+BAA+B;QAC/B,oBAAoB;QACpB,mBAAmB;QACnB,wBAAwB;QACxB,oBAAoB;QACpB,qBAAqB;QACrB,uBAAuB;QACvB,wBAAwB;QACxB,oBAAoB;QACpB,qBAAqB;QACrB,wBAAwB;QACxB,yBAAyB;QACzB,oBAAoB;KACvB,CAAC;IACF,OAAO;QACH,QAAQ,EAAE,CAAC,OAAO,EAAQ,EAAE;YACxB,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;YAC9E,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YACpD,CAAC;YACD,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACrC,CAAC;QACD,aAAa,EAAE,CAAC,OAAO,EAAQ,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/engine/runtime/command/registry/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
import type { CatalogAgent } from "../agent/catalog.ts";
|
|
2
2
|
import { LocalAgentCatalog } from "../agent/catalog.ts";
|
|
3
|
-
import { RuntimeAgentDependencies } from "../agent/runtime-agents.ts";
|
|
4
|
-
/** The workspace new conversations use: `MOBIUS_DEFAULT_WORKSPACE`, or `workspace` in the Runtime's data directory. */
|
|
5
|
-
export declare function loadDefaultWorkspace(dataDirectory: string, environment?: Readonly<NodeJS.ProcessEnv>): string;
|
|
3
|
+
import type { RuntimeAgentDependencies } from "../agent/runtime-agents.ts";
|
|
6
4
|
/**
|
|
7
5
|
* Where a Runtime keeps its local data, and the environment it runs and launches Agents with. The data directory is
|
|
8
|
-
* passed explicitly
|
|
9
|
-
* Mobius run from an Agent addresses the same root as Mobius outside it.
|
|
6
|
+
* passed explicitly and never selected from the Agent launch environment.
|
|
10
7
|
*/
|
|
11
8
|
export declare class RuntimeLocalContext {
|
|
12
|
-
readonly
|
|
9
|
+
readonly agentLaunchEnvironment: Readonly<NodeJS.ProcessEnv>;
|
|
13
10
|
readonly stateDirectory: string;
|
|
14
|
-
|
|
11
|
+
readonly maxAcpProcesses: number;
|
|
12
|
+
constructor(stateDirectory: string, agentLaunchEnvironment: Readonly<NodeJS.ProcessEnv>, maxAcpProcesses?: number);
|
|
15
13
|
}
|
|
16
14
|
export declare function withRuntimeEnvironment(agent: CatalogAgent, environment: Readonly<NodeJS.ProcessEnv>): CatalogAgent;
|
|
17
15
|
export declare abstract class RuntimeReconnectTarget {
|
|
@@ -54,5 +52,5 @@ export interface RuntimeConnectionConfig {
|
|
|
54
52
|
readonly channelId: string;
|
|
55
53
|
readonly relayUrl: URL;
|
|
56
54
|
}
|
|
57
|
-
export declare function createRuntimeConfig(connection: RuntimeConnectionConfig, dependencies
|
|
55
|
+
export declare function createRuntimeConfig(connection: RuntimeConnectionConfig, dependencies: RuntimeAgentDependencies, localContext: RuntimeLocalContext, reconnectTarget?: RuntimeReconnectTarget | null, resolveAgent?: RuntimeConfig["resolveAgent"], rediscoverAgents?: RuntimeConfig["rediscoverAgents"]): RuntimeConfig;
|
|
58
56
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/engine/runtime/config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/engine/runtime/config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAE3E;;;GAGG;AACH,qBAAa,mBAAmB;IAC5B,QAAQ,CAAC,sBAAsB,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC7D,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IAEjC,YAAY,cAAc,EAAE,MAAM,EAAE,sBAAsB,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,eAAe,SAAO,EAI9G;CACJ;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,YAAY,CAQlH;AAED,8BAAsB,sBAAsB;IACxC,QAAQ,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAC7C;AAED,qBAAa,4BAA6B,SAAQ,sBAAsB;IACpE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IAEjC,YAAY,YAAY,EAAE,MAAM,EAI/B;CACJ;AAED,MAAM,WAAW,aAAa;IAC1B,QAAQ,CAAC,QAAQ,EAAE,wBAAwB,CAAC,UAAU,CAAC,CAAC;IACxD,QAAQ,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,CAAC;IACzC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAAC;IAC3C,QAAQ,CAAC,eAAe,EAAE,sBAAsB,GAAG,IAAI,CAAC;IACxD,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC;IACvB,2GAA2G;IAC3G,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE;QACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;KAC5B,KAAK,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACvC;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;IAC5F;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,SAAS,YAAY,EAAE,CAAC,CAAC;CACzF;AAED,MAAM,WAAW,uBAAuB;IACpC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC;CAC1B;AAED,wBAAgB,mBAAmB,CAC/B,UAAU,EAAE,uBAAuB,EACnC,YAAY,EAAE,wBAAwB,EACtC,YAAY,EAAE,mBAAmB,EACjC,eAAe,GAAE,sBAAsB,GAAG,IAAW,EACrD,YAAY,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,EAC5C,gBAAgB,CAAC,EAAE,aAAa,CAAC,kBAAkB,CAAC,GACrD,aAAa,CAiBf"}
|
|
@@ -1,24 +1,18 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { resolve } from "node:path";
|
|
2
2
|
import { RUNTIME_WORKSPACE_BINDING_ID } from "@moxt-ai/mobius-sdk/protocol";
|
|
3
3
|
import { LocalAgentCatalog } from "../agent/catalog.js";
|
|
4
|
-
import { RuntimeAgentDependencies } from "../agent/runtime-agents.js";
|
|
5
|
-
import { readStateDirectory } from "../storage/state-directory.js";
|
|
6
|
-
/** The workspace new conversations use: `MOBIUS_DEFAULT_WORKSPACE`, or `workspace` in the Runtime's data directory. */
|
|
7
|
-
export function loadDefaultWorkspace(dataDirectory, environment = process.env) {
|
|
8
|
-
const { MOBIUS_DEFAULT_WORKSPACE: configuredWorkspace } = environment;
|
|
9
|
-
return configuredWorkspace ?? join(dataDirectory, "workspace");
|
|
10
|
-
}
|
|
11
4
|
/**
|
|
12
5
|
* Where a Runtime keeps its local data, and the environment it runs and launches Agents with. The data directory is
|
|
13
|
-
* passed explicitly
|
|
14
|
-
* Mobius run from an Agent addresses the same root as Mobius outside it.
|
|
6
|
+
* passed explicitly and never selected from the Agent launch environment.
|
|
15
7
|
*/
|
|
16
8
|
export class RuntimeLocalContext {
|
|
17
|
-
|
|
9
|
+
agentLaunchEnvironment;
|
|
18
10
|
stateDirectory;
|
|
19
|
-
|
|
11
|
+
maxAcpProcesses;
|
|
12
|
+
constructor(stateDirectory, agentLaunchEnvironment, maxAcpProcesses = 1000) {
|
|
20
13
|
this.stateDirectory = resolve(stateDirectory);
|
|
21
|
-
this.
|
|
14
|
+
this.agentLaunchEnvironment = Object.freeze({ ...agentLaunchEnvironment });
|
|
15
|
+
this.maxAcpProcesses = maxAcpProcesses;
|
|
22
16
|
}
|
|
23
17
|
}
|
|
24
18
|
export function withRuntimeEnvironment(agent, environment) {
|
|
@@ -41,8 +35,8 @@ export class OpaqueRuntimeReconnectTarget extends RuntimeReconnectTarget {
|
|
|
41
35
|
this.commandArgument = `--connection ${connectionId}`;
|
|
42
36
|
}
|
|
43
37
|
}
|
|
44
|
-
export function createRuntimeConfig(connection, dependencies
|
|
45
|
-
const runtimeAgents = dependencies.agents.map((agent) => withRuntimeEnvironment(agent, localContext.
|
|
38
|
+
export function createRuntimeConfig(connection, dependencies, localContext, reconnectTarget = null, resolveAgent, rediscoverAgents) {
|
|
39
|
+
const runtimeAgents = dependencies.agents.map((agent) => withRuntimeEnvironment(agent, localContext.agentLaunchEnvironment));
|
|
46
40
|
return {
|
|
47
41
|
adapters: dependencies.adapters,
|
|
48
42
|
agents: runtimeAgents,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/engine/runtime/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/engine/runtime/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAE5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD;;;GAGG;AACH,MAAM,OAAO,mBAAmB;IACnB,sBAAsB,CAA8B;IACpD,cAAc,CAAS;IACvB,eAAe,CAAS;IAEjC,YAAY,cAAsB,EAAE,sBAAmD,EAAE,eAAe,GAAG,IAAI;QAC3G,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;QAC9C,IAAI,CAAC,sBAAsB,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,sBAAsB,EAAE,CAAC,CAAC;QAC3E,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IAC3C,CAAC;CACJ;AAED,MAAM,UAAU,sBAAsB,CAAC,KAAmB,EAAE,WAAwC;IAChG,MAAM,iBAAiB,GAA2B,EAAE,CAAC;IACrD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACtD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC5B,iBAAiB,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QACpC,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC,eAAe,CAAC,EAAE,GAAG,iBAAiB,EAAE,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;AACjF,CAAC;AAED,MAAM,OAAgB,sBAAsB;CAE3C;AAED,MAAM,OAAO,4BAA6B,SAAQ,sBAAsB;IAC3D,YAAY,CAAS;IACrB,eAAe,CAAS;IAEjC,YAAY,YAAoB;QAC5B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,eAAe,GAAG,gBAAgB,YAAY,EAAE,CAAC;IAC1D,CAAC;CACJ;AAoCD,MAAM,UAAU,mBAAmB,CAC/B,UAAmC,EACnC,YAAsC,EACtC,YAAiC,EACjC,eAAe,GAAkC,IAAI,EACrD,YAA4C,EAC5C,gBAAoD;IAEpD,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACpD,sBAAsB,CAAC,KAAK,EAAE,YAAY,CAAC,sBAAsB,CAAC,CACrE,CAAC;IACF,OAAO;QACH,QAAQ,EAAE,YAAY,CAAC,QAAQ;QAC/B,MAAM,EAAE,aAAa;QACrB,gBAAgB,EAAE,UAAU,CAAC,gBAAgB;QAC7C,SAAS,EAAE,4BAA4B;QACvC,OAAO,EAAE,IAAI,iBAAiB,CAAC,aAAa,CAAC;QAC7C,SAAS,EAAE,UAAU,CAAC,SAAS;QAC/B,YAAY;QACZ,eAAe;QACf,QAAQ,EAAE,UAAU,CAAC,QAAQ;QAC7B,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC;QACvD,GAAG,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC;KAClE,CAAC;AACN,CAAC"}
|
|
@@ -13,7 +13,6 @@ export declare class VerifiedRuntimeConnection {
|
|
|
13
13
|
readonly kind = "verified";
|
|
14
14
|
readonly activation: RuntimeConnectionActivation;
|
|
15
15
|
readonly appId: string;
|
|
16
|
-
readonly applicationId: string;
|
|
17
16
|
readonly channelId: string;
|
|
18
17
|
readonly connectionId: string;
|
|
19
18
|
readonly defaultWorkspace: string;
|
|
@@ -22,6 +21,6 @@ export declare class VerifiedRuntimeConnection {
|
|
|
22
21
|
readonly relayOrigin: URL;
|
|
23
22
|
readonly runtimeCredential: string;
|
|
24
23
|
readonly runtimeId: string;
|
|
25
|
-
constructor(activation: RuntimeConnectionActivation,
|
|
24
|
+
constructor(activation: RuntimeConnectionActivation, appId: string, installationId: string, connectionId: string, channelId: string, defaultWorkspace: string, pairingId: string, relayOrigin: URL, runtimeCredential: string, runtimeId: string);
|
|
26
25
|
}
|
|
27
26
|
//# sourceMappingURL=runtime-connection.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-connection.d.ts","sourceRoot":"","sources":["../../../../src/engine/runtime/connection/runtime-connection.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,sBAAsB;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC;IAC1B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,MAAM,2BAA2B,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE/D,gGAAgG;AAChG,qBAAa,yBAAyB;IAClC,QAAQ,CAAC,IAAI,cAAc;IAC3B,QAAQ,CAAC,UAAU,EAAE,2BAA2B,CAAC;IACjD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"runtime-connection.d.ts","sourceRoot":"","sources":["../../../../src/engine/runtime/connection/runtime-connection.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,sBAAsB;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC;IAC1B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,MAAM,2BAA2B,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE/D,gGAAgG;AAChG,qBAAa,yBAAyB;IAClC,QAAQ,CAAC,IAAI,cAAc;IAC3B,QAAQ,CAAC,UAAU,EAAE,2BAA2B,CAAC;IACjD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC;IAC1B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IAEnC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,YACI,UAAU,EAAE,2BAA2B,EACvC,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,MAAM,EACxB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,GAAG,EAChB,iBAAiB,EAAE,MAAM,EACzB,SAAS,EAAE,MAAM,EAYpB;CACJ"}
|
|
@@ -3,7 +3,6 @@ export class VerifiedRuntimeConnection {
|
|
|
3
3
|
kind = "verified";
|
|
4
4
|
activation;
|
|
5
5
|
appId;
|
|
6
|
-
applicationId;
|
|
7
6
|
channelId;
|
|
8
7
|
connectionId;
|
|
9
8
|
defaultWorkspace;
|
|
@@ -12,9 +11,8 @@ export class VerifiedRuntimeConnection {
|
|
|
12
11
|
relayOrigin;
|
|
13
12
|
runtimeCredential;
|
|
14
13
|
runtimeId;
|
|
15
|
-
constructor(activation,
|
|
14
|
+
constructor(activation, appId, installationId, connectionId, channelId, defaultWorkspace, pairingId, relayOrigin, runtimeCredential, runtimeId) {
|
|
16
15
|
this.activation = activation;
|
|
17
|
-
this.applicationId = applicationId;
|
|
18
16
|
this.appId = appId;
|
|
19
17
|
this.channelId = channelId;
|
|
20
18
|
this.connectionId = connectionId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-connection.js","sourceRoot":"","sources":["../../../../src/engine/runtime/connection/runtime-connection.ts"],"names":[],"mappings":"AAYA,gGAAgG;AAChG,MAAM,OAAO,yBAAyB;IACzB,IAAI,GAAG,UAAU,CAAC;IAClB,UAAU,CAA8B;IACxC,KAAK,CAAS;IACd,
|
|
1
|
+
{"version":3,"file":"runtime-connection.js","sourceRoot":"","sources":["../../../../src/engine/runtime/connection/runtime-connection.ts"],"names":[],"mappings":"AAYA,gGAAgG;AAChG,MAAM,OAAO,yBAAyB;IACzB,IAAI,GAAG,UAAU,CAAC;IAClB,UAAU,CAA8B;IACxC,KAAK,CAAS;IACd,SAAS,CAAS;IAClB,YAAY,CAAS;IACrB,gBAAgB,CAAS;IACzB,cAAc,CAAS;IACvB,SAAS,CAAS;IAClB,WAAW,CAAM;IACjB,iBAAiB,CAAS;IAE1B,SAAS,CAAS;IAE3B,YACI,UAAuC,EACvC,KAAa,EACb,cAAsB,EACtB,YAAoB,EACpB,SAAiB,EACjB,gBAAwB,EACxB,SAAiB,EACjB,WAAgB,EAChB,iBAAyB,EACzB,SAAiB;QAEjB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;CACJ"}
|
|
@@ -1,23 +1,19 @@
|
|
|
1
1
|
import { type InstallationDirectory } from "../../storage/installation/installation-files.ts";
|
|
2
2
|
import { type RuntimeConnectionActivation, type RuntimeConnectionInput, VerifiedRuntimeConnection } from "./runtime-connection.ts";
|
|
3
|
-
export interface RuntimeInstallationStoreOptions {
|
|
4
|
-
readonly applicationId: string;
|
|
5
|
-
readonly stateDirectory: string;
|
|
6
|
-
}
|
|
7
3
|
export declare class RuntimeInstallationStoreError extends Error {
|
|
8
4
|
readonly code: string;
|
|
9
5
|
constructor(code: string, message: string, options?: ErrorOptions);
|
|
10
6
|
}
|
|
11
7
|
export declare class RuntimeInstallationStore {
|
|
12
8
|
#private;
|
|
13
|
-
readonly applicationId: string;
|
|
14
9
|
readonly installationId: string;
|
|
15
10
|
readonly stateDirectory: InstallationDirectory;
|
|
16
11
|
private constructor();
|
|
17
|
-
static readonly open: (
|
|
12
|
+
static readonly open: (engineDataDir: string, signal: AbortSignal) => Promise<RuntimeInstallationStore>;
|
|
18
13
|
readonly connectionPath: (connectionId: string) => string;
|
|
19
14
|
private readonly channelIndexPath;
|
|
20
15
|
readonly readConnection: (connectionId: string, signal: AbortSignal) => Promise<VerifiedRuntimeConnection>;
|
|
16
|
+
private readonly decodeOwnedConnection;
|
|
21
17
|
readonly saveConnection: (input: RuntimeConnectionInput, signal: AbortSignal) => Promise<VerifiedRuntimeConnection>;
|
|
22
18
|
private readonly writeConnection;
|
|
23
19
|
readonly listConnections: (signal: AbortSignal) => Promise<readonly VerifiedRuntimeConnection[]>;
|
|
@@ -26,5 +22,6 @@ export declare class RuntimeInstallationStore {
|
|
|
26
22
|
readonly removeConnection: (connectionId: string, signal: AbortSignal) => Promise<void>;
|
|
27
23
|
private readonly overwriteConnection;
|
|
28
24
|
}
|
|
29
|
-
export declare function openRuntimeInstallationStore(
|
|
25
|
+
export declare function openRuntimeInstallationStore(engineDataDir: string, signal: AbortSignal): Promise<RuntimeInstallationStore>;
|
|
26
|
+
export declare function openEngineInstallationStore(engineDataDir: string, signal: AbortSignal): Promise<RuntimeInstallationStore>;
|
|
30
27
|
//# sourceMappingURL=runtime-installation-store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-installation-store.d.ts","sourceRoot":"","sources":["../../../../src/engine/runtime/connection/runtime-installation-store.ts"],"names":[],"mappings":"AAIA,OAAO,
|
|
1
|
+
{"version":3,"file":"runtime-installation-store.d.ts","sourceRoot":"","sources":["../../../../src/engine/runtime/connection/runtime-installation-store.ts"],"names":[],"mappings":"AAIA,OAAO,EAKH,KAAK,qBAAqB,EAO7B,MAAM,kDAAkD,CAAC;AAG1D,OAAO,EACH,KAAK,2BAA2B,EAChC,KAAK,sBAAsB,EAC3B,yBAAyB,EAC5B,MAAM,yBAAyB,CAAC;AAsBjC,qBAAa,6BAA8B,SAAQ,KAAK;IACpD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,YAAY,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,EAIpE;CACJ;AAmOD,qBAAa,wBAAwB;;IACjC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,cAAc,EAAE,qBAAqB,CAAC;IAG/C,OAAO,eAIN;IAED,MAAM,CAAC,QAAQ,CAAC,IAAI,kBAAyB,MAAM,UAAU,WAAW,KAAG,OAAO,CAAC,wBAAwB,CAAC,CA8B1G;IAEF,QAAQ,CAAC,cAAc,iBAAkB,MAAM,KAAG,MAAM,CAC8B;IAEtF,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CACkE;IAEnG,QAAQ,CAAC,cAAc,iBAAwB,MAAM,UAAU,WAAW,KAAG,OAAO,CAAC,yBAAyB,CAAC,CAI7G;IAEF,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CASpC;IAmBF,QAAQ,CAAC,cAAc,UACZ,sBAAsB,UACrB,WAAW,KACpB,OAAO,CAAC,yBAAyB,CAAC,CAenC;IAEF,OAAO,CAAC,QAAQ,CAAC,eAAe,CA2B9B;IAEF,QAAQ,CAAC,eAAe,WAAkB,WAAW,KAAG,OAAO,CAAC,SAAS,yBAAyB,EAAE,CAAC,CA0BnG;IAEF,QAAQ,CAAC,wBAAwB,cAClB,MAAM,UACT,WAAW,KACpB,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAI1C;IAEF,QAAQ,CAAC,uBAAuB,iBACd,MAAM,cACR,2BAA2B,UAC/B,WAAW,KACpB,OAAO,CAAC,yBAAyB,CAAC,CAwBnC;IAEF,QAAQ,CAAC,gBAAgB,iBAAwB,MAAM,UAAU,WAAW,KAAG,OAAO,CAAC,IAAI,CAAC,CAkB1F;IAEF,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAuBlC;CACL;AAgCD,wBAAsB,4BAA4B,CAC9C,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,WAAW,GACpB,OAAO,CAAC,wBAAwB,CAAC,CAEnC;AAED,wBAAsB,2BAA2B,CAC7C,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,WAAW,GACpB,OAAO,CAAC,wBAAwB,CAAC,CAEnC"}
|
|
@@ -2,26 +2,18 @@ import { randomUUID } from "node:crypto";
|
|
|
2
2
|
import { resolve } from "node:path";
|
|
3
3
|
import { isIdentifier } from "@moxt-ai/mobius-sdk/protocol";
|
|
4
4
|
import { ensurePrivateDirectory } from "../../storage/files/local-files.js";
|
|
5
|
-
import {
|
|
5
|
+
import { channelIndexFilePath, connectionDirectory, connectionFilePath, createInstallationFile, installationDirectory, installationPointerPath, listInstallationFiles, readInstallationFile, removeInstallationFile, writeInstallationFile, } from "../../storage/installation/installation-files.js";
|
|
6
6
|
import { validateLocalPath } from "../../util/filesystem/private-path.js";
|
|
7
7
|
import { isNodeError } from "../../util/node-error.js";
|
|
8
8
|
import { VerifiedRuntimeConnection, } from "./runtime-connection.js";
|
|
9
|
-
const APPLICATION_ID_PATTERN = /^[a-z][a-z0-9]*(?:[.-][a-z0-9]+){1,31}$/;
|
|
10
9
|
const CONNECTION_ID_PATTERN = /^mcn_[a-f0-9]{32}$/;
|
|
11
10
|
const INSTALLATION_ID_PATTERN = /^min_[a-f0-9]{32}$/;
|
|
12
11
|
const RUNTIME_CREDENTIAL_PATTERN = /^[a-zA-Z0-9_-]{32,256}$/;
|
|
13
12
|
const INSTALLATION_POINTER_KEYS = ["installationId", "version"];
|
|
14
|
-
const CHANNEL_INDEX_KEYS = [
|
|
15
|
-
"applicationId",
|
|
16
|
-
"channelId",
|
|
17
|
-
"connectionId",
|
|
18
|
-
"installationId",
|
|
19
|
-
"version",
|
|
20
|
-
];
|
|
13
|
+
const CHANNEL_INDEX_KEYS = ["channelId", "connectionId", "installationId", "version"];
|
|
21
14
|
const VERIFIED_CONNECTION_KEYS = [
|
|
22
15
|
"activation",
|
|
23
16
|
"appId",
|
|
24
|
-
"applicationId",
|
|
25
17
|
"channelId",
|
|
26
18
|
"connectionId",
|
|
27
19
|
"defaultWorkspace",
|
|
@@ -48,12 +40,6 @@ function hasExactKeys(value, expectedKeys) {
|
|
|
48
40
|
const keys = Object.keys(value);
|
|
49
41
|
return keys.length === expectedKeys.length && expectedKeys.every((key) => Object.hasOwn(value, key));
|
|
50
42
|
}
|
|
51
|
-
function validateApplicationId(value) {
|
|
52
|
-
if (!APPLICATION_ID_PATTERN.test(value)) {
|
|
53
|
-
throw new RuntimeInstallationStoreError("invalid_application_id", "The application ID is invalid");
|
|
54
|
-
}
|
|
55
|
-
return value;
|
|
56
|
-
}
|
|
57
43
|
function validateRemoteAppId(value) {
|
|
58
44
|
if (!isIdentifier(value)) {
|
|
59
45
|
throw new RuntimeInstallationStoreError("invalid_app_id", "The remote App ID is invalid");
|
|
@@ -121,32 +107,37 @@ function decodeInstallationPointer(value) {
|
|
|
121
107
|
}
|
|
122
108
|
return { installationId: validateInstallationId(storedInstallationId) };
|
|
123
109
|
}
|
|
124
|
-
|
|
125
|
-
|
|
110
|
+
// Previous disk versions carried extra fields. Retain only fields this reader owns;
|
|
111
|
+
// current versions still require the exact schema below.
|
|
112
|
+
function retainedFields(value, keys) {
|
|
113
|
+
return Object.fromEntries(keys.filter((key) => Object.hasOwn(value, key)).map((key) => [key, value[key]]));
|
|
114
|
+
}
|
|
115
|
+
function decodeChannelIndex(input) {
|
|
116
|
+
if (!isRecord(input)) {
|
|
117
|
+
throw new RuntimeInstallationStoreError("invalid_connection", "The saved Runtime connection is invalid");
|
|
118
|
+
}
|
|
119
|
+
const value = input["version"] === 1 ? retainedFields(input, CHANNEL_INDEX_KEYS) : input;
|
|
120
|
+
if (!hasExactKeys(value, CHANNEL_INDEX_KEYS) || (value["version"] !== 1 && value["version"] !== 2)) {
|
|
126
121
|
throw new RuntimeInstallationStoreError("invalid_connection", "The saved Runtime connection is invalid");
|
|
127
122
|
}
|
|
128
|
-
const applicationId = value["applicationId"];
|
|
129
123
|
const channelId = value["channelId"];
|
|
130
124
|
const connectionId = value["connectionId"];
|
|
131
125
|
const storedInstallationId = value["installationId"];
|
|
132
|
-
if (typeof
|
|
133
|
-
typeof channelId !== "string" ||
|
|
134
|
-
typeof connectionId !== "string" ||
|
|
135
|
-
typeof storedInstallationId !== "string") {
|
|
126
|
+
if (typeof channelId !== "string" || typeof connectionId !== "string" || typeof storedInstallationId !== "string") {
|
|
136
127
|
throw new RuntimeInstallationStoreError("invalid_connection", "The saved Runtime connection is invalid");
|
|
137
128
|
}
|
|
138
129
|
return {
|
|
139
|
-
applicationId: validateApplicationId(applicationId),
|
|
140
130
|
channelId: validateIdentifier(channelId, "invalid_connection"),
|
|
141
131
|
connectionId: validateConnectionId(connectionId),
|
|
142
132
|
installationId: validateInstallationId(storedInstallationId),
|
|
143
133
|
};
|
|
144
134
|
}
|
|
145
135
|
function decodeVerifiedConnection(value) {
|
|
146
|
-
if (!hasExactKeys(value, VERIFIED_CONNECTION_KEYS) ||
|
|
136
|
+
if (!hasExactKeys(value, VERIFIED_CONNECTION_KEYS) ||
|
|
137
|
+
(value["version"] !== 5 && value["version"] !== 6) ||
|
|
138
|
+
value["kind"] !== "verified") {
|
|
147
139
|
throw new RuntimeInstallationStoreError("invalid_connection", "The saved Runtime connection is invalid");
|
|
148
140
|
}
|
|
149
|
-
const applicationId = value["applicationId"];
|
|
150
141
|
const activation = value["activation"];
|
|
151
142
|
const appId = value["appId"];
|
|
152
143
|
const channelId = value["channelId"];
|
|
@@ -157,8 +148,7 @@ function decodeVerifiedConnection(value) {
|
|
|
157
148
|
const relayOrigin = value["relayOrigin"];
|
|
158
149
|
const runtimeCredential = value["runtimeCredential"];
|
|
159
150
|
const runtimeId = value["runtimeId"];
|
|
160
|
-
if (
|
|
161
|
-
(activation !== "active" && activation !== "stopped") ||
|
|
151
|
+
if ((activation !== "active" && activation !== "stopped") ||
|
|
162
152
|
typeof appId !== "string" ||
|
|
163
153
|
typeof channelId !== "string" ||
|
|
164
154
|
typeof connectionId !== "string" ||
|
|
@@ -170,13 +160,13 @@ function decodeVerifiedConnection(value) {
|
|
|
170
160
|
typeof runtimeId !== "string") {
|
|
171
161
|
throw new RuntimeInstallationStoreError("invalid_connection", "The saved Runtime connection is invalid");
|
|
172
162
|
}
|
|
173
|
-
return new VerifiedRuntimeConnection(activation,
|
|
163
|
+
return new VerifiedRuntimeConnection(activation, validateRemoteAppId(appId), validateInstallationId(storedInstallationId), validateConnectionId(connectionId), validateIdentifier(channelId, "invalid_connection"), defaultWorkspace, pairingId.length === 0 ? "" : validateIdentifier(pairingId, "invalid_connection"), parseRelayOrigin(relayOrigin), validateRuntimeCredential(runtimeCredential), validateIdentifier(runtimeId, "invalid_connection"));
|
|
174
164
|
}
|
|
175
165
|
function decodeConnection(value) {
|
|
176
166
|
if (!isRecord(value)) {
|
|
177
167
|
throw new RuntimeInstallationStoreError("invalid_connection", "The saved Runtime connection is invalid");
|
|
178
168
|
}
|
|
179
|
-
return decodeVerifiedConnection(value);
|
|
169
|
+
return decodeVerifiedConnection(value["version"] === 5 ? retainedFields(value, VERIFIED_CONNECTION_KEYS) : value);
|
|
180
170
|
}
|
|
181
171
|
async function readJsonFile(path, signal, missingCode) {
|
|
182
172
|
signal.throwIfAborted();
|
|
@@ -217,33 +207,28 @@ async function writeJsonAtomically(path, value, signal) {
|
|
|
217
207
|
}
|
|
218
208
|
}
|
|
219
209
|
export class RuntimeInstallationStore {
|
|
220
|
-
applicationId;
|
|
221
210
|
installationId;
|
|
222
211
|
stateDirectory;
|
|
223
212
|
#connectionDirectory;
|
|
224
|
-
constructor(
|
|
225
|
-
this.applicationId = applicationId;
|
|
213
|
+
constructor(installationId, stateDirectory) {
|
|
226
214
|
this.installationId = installationId;
|
|
227
215
|
this.stateDirectory = stateDirectory;
|
|
228
216
|
this.#connectionDirectory = connectionDirectory(stateDirectory);
|
|
229
217
|
}
|
|
230
|
-
static open = async (
|
|
218
|
+
static open = async (engineDataDir, signal) => {
|
|
231
219
|
signal.throwIfAborted();
|
|
232
|
-
const
|
|
233
|
-
const rootDirectory = resolve(options.stateDirectory);
|
|
234
|
-
const applicationDirectory = applicationDirectoryPath(rootDirectory, applicationId);
|
|
220
|
+
const dataDirectory = resolve(engineDataDir);
|
|
235
221
|
try {
|
|
236
|
-
await ensurePrivateDirectory(
|
|
237
|
-
await validateLocalPath(
|
|
238
|
-
await ensurePrivateDirectory(applicationDirectory);
|
|
222
|
+
await ensurePrivateDirectory(dataDirectory);
|
|
223
|
+
await validateLocalPath(dataDirectory, true, true, signal);
|
|
239
224
|
}
|
|
240
225
|
catch (cause) {
|
|
241
226
|
throw new RuntimeInstallationStoreError("installation_unavailable", "The local installation cannot be initialized", {
|
|
242
227
|
cause,
|
|
243
228
|
});
|
|
244
229
|
}
|
|
245
|
-
const storedInstallationId = await readOrCreateInstallationId(
|
|
246
|
-
const stateDirectory = installationDirectory(
|
|
230
|
+
const storedInstallationId = await readOrCreateInstallationId(dataDirectory, signal);
|
|
231
|
+
const stateDirectory = installationDirectory(dataDirectory, storedInstallationId);
|
|
247
232
|
try {
|
|
248
233
|
await ensurePrivateDirectory(stateDirectory);
|
|
249
234
|
}
|
|
@@ -253,13 +238,16 @@ export class RuntimeInstallationStore {
|
|
|
253
238
|
});
|
|
254
239
|
}
|
|
255
240
|
signal.throwIfAborted();
|
|
256
|
-
return new RuntimeInstallationStore(
|
|
241
|
+
return new RuntimeInstallationStore(storedInstallationId, stateDirectory);
|
|
257
242
|
};
|
|
258
243
|
connectionPath = (connectionId) => connectionFilePath(this.#connectionDirectory, validateConnectionId(connectionId));
|
|
259
244
|
channelIndexPath = (channelId) => channelIndexFilePath(this.stateDirectory, validateIdentifier(channelId, "invalid_channel_id"));
|
|
260
245
|
readConnection = async (connectionId, signal) => {
|
|
261
|
-
|
|
262
|
-
|
|
246
|
+
return this.decodeOwnedConnection(await readJsonFile(this.connectionPath(connectionId), signal, "connection_not_found"));
|
|
247
|
+
};
|
|
248
|
+
decodeOwnedConnection = (record) => {
|
|
249
|
+
const stored = decodeConnection(record);
|
|
250
|
+
if (stored.installationId !== this.installationId) {
|
|
263
251
|
throw new RuntimeInstallationStoreError("connection_owner_mismatch", "The saved Runtime connection belongs to another installation");
|
|
264
252
|
}
|
|
265
253
|
return stored;
|
|
@@ -267,15 +255,13 @@ export class RuntimeInstallationStore {
|
|
|
267
255
|
#readConnectionForChannel = async (channelId, signal) => {
|
|
268
256
|
const normalizedChannelId = validateIdentifier(channelId, "invalid_channel_id");
|
|
269
257
|
const index = decodeChannelIndex(await readJsonFile(this.channelIndexPath(normalizedChannelId), signal, "connection_not_found"));
|
|
270
|
-
if (index.
|
|
271
|
-
index.installationId !== this.installationId ||
|
|
272
|
-
index.channelId !== normalizedChannelId) {
|
|
258
|
+
if (index.installationId !== this.installationId || index.channelId !== normalizedChannelId) {
|
|
273
259
|
throw new RuntimeInstallationStoreError("connection_owner_mismatch", "The saved Runtime connection belongs to another installation");
|
|
274
260
|
}
|
|
275
261
|
return await this.readConnection(index.connectionId, signal);
|
|
276
262
|
};
|
|
277
263
|
saveConnection = async (input, signal) => {
|
|
278
|
-
const stored = new VerifiedRuntimeConnection("active",
|
|
264
|
+
const stored = new VerifiedRuntimeConnection("active", validateRemoteAppId(input.appId), this.installationId, connectionId(), validateIdentifier(input.channelId, "invalid_connection"), input.defaultWorkspace, input.pairingId.length === 0 ? "" : validateIdentifier(input.pairingId, "invalid_pairing_id"), parseRelayOrigin(input.relayOrigin.toString()), validateRuntimeCredential(input.runtimeCredential), validateIdentifier(input.runtimeId, "invalid_connection"));
|
|
279
265
|
await this.writeConnection(stored, signal);
|
|
280
266
|
return stored;
|
|
281
267
|
};
|
|
@@ -292,11 +278,10 @@ export class RuntimeInstallationStore {
|
|
|
292
278
|
}
|
|
293
279
|
await this.overwriteConnection(stored, signal);
|
|
294
280
|
await writeJsonAtomically(this.channelIndexPath(stored.channelId), {
|
|
295
|
-
applicationId: this.applicationId,
|
|
296
281
|
channelId: stored.channelId,
|
|
297
282
|
connectionId: stored.connectionId,
|
|
298
283
|
installationId: this.installationId,
|
|
299
|
-
version:
|
|
284
|
+
version: 2,
|
|
300
285
|
}, signal);
|
|
301
286
|
};
|
|
302
287
|
listConnections = async (signal) => {
|
|
@@ -329,9 +314,18 @@ export class RuntimeInstallationStore {
|
|
|
329
314
|
return connections.find((connection) => connection.pairingId === normalizedPairingId) ?? null;
|
|
330
315
|
};
|
|
331
316
|
setConnectionActivation = async (connectionId, activation, signal) => {
|
|
332
|
-
const
|
|
333
|
-
const
|
|
334
|
-
|
|
317
|
+
const record = await readJsonFile(this.connectionPath(connectionId), signal, "connection_not_found");
|
|
318
|
+
const connection = this.decodeOwnedConnection(record);
|
|
319
|
+
const updated = new VerifiedRuntimeConnection(activation, connection.appId, connection.installationId, connection.connectionId, connection.channelId, connection.defaultWorkspace, connection.pairingId, connection.relayOrigin, connection.runtimeCredential, connection.runtimeId);
|
|
320
|
+
if (isRecord(record) && record["version"] === 5) {
|
|
321
|
+
// A newly installed CLI can still be controlling an older live Worker.
|
|
322
|
+
// Change only activation in its record, retaining opaque legacy metadata
|
|
323
|
+
// (including applicationId) without making it part of Engine identity.
|
|
324
|
+
await writeJsonAtomically(this.connectionPath(connectionId), { ...record, activation }, signal);
|
|
325
|
+
}
|
|
326
|
+
else {
|
|
327
|
+
await this.overwriteConnection(updated, signal);
|
|
328
|
+
}
|
|
335
329
|
return updated;
|
|
336
330
|
};
|
|
337
331
|
removeConnection = async (connectionId, signal) => {
|
|
@@ -354,7 +348,6 @@ export class RuntimeInstallationStore {
|
|
|
354
348
|
const connectionPath = this.connectionPath(connection.connectionId);
|
|
355
349
|
await writeJsonAtomically(connectionPath, {
|
|
356
350
|
activation: connection.activation,
|
|
357
|
-
applicationId: connection.applicationId,
|
|
358
351
|
appId: connection.appId,
|
|
359
352
|
channelId: connection.channelId,
|
|
360
353
|
connectionId: connection.connectionId,
|
|
@@ -365,12 +358,12 @@ export class RuntimeInstallationStore {
|
|
|
365
358
|
relayOrigin: connection.relayOrigin.toString(),
|
|
366
359
|
runtimeCredential: connection.runtimeCredential,
|
|
367
360
|
runtimeId: connection.runtimeId,
|
|
368
|
-
version:
|
|
361
|
+
version: 6,
|
|
369
362
|
}, signal);
|
|
370
363
|
};
|
|
371
364
|
}
|
|
372
|
-
async function readOrCreateInstallationId(
|
|
373
|
-
const pointerPath = installationPointerPath(
|
|
365
|
+
async function readOrCreateInstallationId(engineDataDir, signal) {
|
|
366
|
+
const pointerPath = installationPointerPath(engineDataDir);
|
|
374
367
|
try {
|
|
375
368
|
return decodeInstallationPointer(await readJsonFile(pointerPath, signal, "installation_not_found"))
|
|
376
369
|
.installationId;
|
|
@@ -395,7 +388,10 @@ async function readOrCreateInstallationId(applicationDirectory, signal) {
|
|
|
395
388
|
.installationId;
|
|
396
389
|
}
|
|
397
390
|
}
|
|
398
|
-
export async function openRuntimeInstallationStore(
|
|
399
|
-
return await RuntimeInstallationStore.open(
|
|
391
|
+
export async function openRuntimeInstallationStore(engineDataDir, signal) {
|
|
392
|
+
return await RuntimeInstallationStore.open(engineDataDir, signal);
|
|
393
|
+
}
|
|
394
|
+
export async function openEngineInstallationStore(engineDataDir, signal) {
|
|
395
|
+
return await RuntimeInstallationStore.open(engineDataDir, signal);
|
|
400
396
|
}
|
|
401
397
|
//# sourceMappingURL=runtime-installation-store.js.map
|