@moxt-ai/mobius 0.0.316 → 0.0.318
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/agent/discovery/agent-discovery-context.d.ts +2 -0
- package/dist/agent/discovery/agent-discovery-context.d.ts.map +1 -1
- package/dist/agent/specification/vendors/pi-agent.d.ts.map +1 -1
- package/dist/agent/specification/vendors/pi-agent.js +1 -2
- package/dist/agent/specification/vendors/pi-agent.js.map +1 -1
- package/dist/cli/handler/agents/index.d.ts.map +1 -1
- package/dist/cli/handler/agents/index.js +2 -1
- package/dist/cli/handler/agents/index.js.map +1 -1
- package/dist/cli.js +82 -40
- package/dist/cli.js.map +4 -4
- package/dist/daemon/pairing/pair-local-machine.d.ts.map +1 -1
- package/dist/daemon/pairing/pair-local-machine.js +5 -1
- 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 +4 -1
- package/dist/daemon/upgrades/data.js.map +1 -1
- package/dist/runtime/config.d.ts +7 -1
- package/dist/runtime/config.d.ts.map +1 -1
- package/dist/runtime/config.js +9 -3
- package/dist/runtime/config.js.map +1 -1
- package/dist/runtime/engine.d.ts.map +1 -1
- package/dist/runtime/engine.js +2 -1
- package/dist/runtime/engine.js.map +1 -1
- package/dist/runtime.js +42 -27
- package/dist/runtime.js.map +4 -4
- package/dist/session/turn/session-turns.d.ts +7 -0
- package/dist/session/turn/session-turns.d.ts.map +1 -1
- package/dist/session/turn/session-turns.js +1 -0
- package/dist/session/turn/session-turns.js.map +1 -1
- package/dist/storage/daemon/release-files.d.ts.map +1 -1
- package/dist/storage/daemon/release-files.js +2 -1
- package/dist/storage/daemon/release-files.js.map +1 -1
- package/dist/storage/daemon/version-data.d.ts +5 -2
- package/dist/storage/daemon/version-data.d.ts.map +1 -1
- package/dist/storage/daemon/version-data.js +30 -7
- package/dist/storage/daemon/version-data.js.map +1 -1
- package/dist/storage/installation/installation-files.d.ts.map +1 -1
- package/dist/storage/installation/installation-files.js +2 -1
- package/dist/storage/installation/installation-files.js.map +1 -1
- package/dist/storage/state-root-layout.d.ts +16 -0
- package/dist/storage/state-root-layout.d.ts.map +1 -0
- package/dist/storage/state-root-layout.js +16 -0
- package/dist/storage/state-root-layout.js.map +1 -0
- package/dist/storage/state-root.d.ts.map +1 -1
- package/dist/storage/state-root.js +5 -3
- package/dist/storage/state-root.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export interface LocalAgentDiscoveryContext {
|
|
2
2
|
readonly architecture?: NodeJS.Architecture;
|
|
3
|
+
/** The Runtime's local data directory, where Agents that Mobius configures keep their Mobius-owned state. */
|
|
4
|
+
readonly dataDirectory: string;
|
|
3
5
|
readonly defaultWorkspace: string;
|
|
4
6
|
readonly environment: Readonly<NodeJS.ProcessEnv>;
|
|
5
7
|
readonly platform?: NodeJS.Platform;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-discovery-context.d.ts","sourceRoot":"","sources":["../../../src/agent/discovery/agent-discovery-context.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,0BAA0B;IACvC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC;IAC5C,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAClD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;CAChC"}
|
|
1
|
+
{"version":3,"file":"agent-discovery-context.d.ts","sourceRoot":"","sources":["../../../src/agent/discovery/agent-discovery-context.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,0BAA0B;IACvC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC;IAC5C,6GAA6G;IAC7G,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAClD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;CAChC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pi-agent.d.ts","sourceRoot":"","sources":["../../../../src/agent/specification/vendors/pi-agent.ts"],"names":[],"mappings":"AAEA,OAAO,EAEH,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EAE1B,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;
|
|
1
|
+
{"version":3,"file":"pi-agent.d.ts","sourceRoot":"","sources":["../../../../src/agent/specification/vendors/pi-agent.ts"],"names":[],"mappings":"AAEA,OAAO,EAEH,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EAE1B,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AAE7F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,4CAA4C,CAAC;AAE7F,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAI3E,qBAAa,oBAAqB,SAAQ,8BAA8B;IACpE,SAAkB,2BAA2B,SAAkC;IAC/E,QAAQ,CAAC,eAAe,QAAQ;IAChC,QAAQ,CAAC,cAAc,EAAE,2BAA2B,CAA2C;IAG/F,SAAkB,uBAAuB,WAC7B,kBAAkB,WACjB,0BAA0B,KACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAU1C;IACF,QAAQ,CAAC,EAAE,QAAQ;IACnB,QAAQ,CAAC,KAAK,QAAQ;IACtB,SAAkB,4BAA4B,YAAY;IAC1D,SAAkB,yBAAyB,WAAW;IACtD,SAAkB,qBAAqB,QAAO,MAAM,CAAS;IAC7D,cAEC;IAED,SAAkB,SAAS,eACX,gBAAgB,eACf,kBAAkB,oBACb,MAAM,UAChB,WAAW,KACpB,OAAO,CAAC,IAAI,CAAC,CA4Bd;CACL"}
|
|
@@ -2,7 +2,6 @@ import { createHash } from "node:crypto";
|
|
|
2
2
|
import { join } from "node:path";
|
|
3
3
|
import { methods, } from "@agentclientprotocol/sdk";
|
|
4
4
|
import { PiAcpEndpoint } from "../../../acp/harness/pi/endpoint.js";
|
|
5
|
-
import { readStateDirectory } from "../../../storage/state-directory.js";
|
|
6
5
|
import { AgentProbeError } from "../../discovery/agent-probe-error.js";
|
|
7
6
|
import { InProcessAcpAgentSpecification } from "../agent-specification.js";
|
|
8
7
|
const ACP_PROBE_TIMEOUT_MILLISECONDS = 30_000;
|
|
@@ -17,7 +16,7 @@ export class PiAgentSpecification extends InProcessAcpAgentSpecification {
|
|
|
17
16
|
// workspaces therefore exceed filesystem name limits before Mobius can run a readiness turn.
|
|
18
17
|
// Keep persistence, but derive a bounded, stable directory from the resolved workspace.
|
|
19
18
|
const workspaceHash = createHash("sha256").update(context.defaultWorkspace).digest("hex").slice(0, 24);
|
|
20
|
-
const sessionDirectory = join(
|
|
19
|
+
const sessionDirectory = join(context.dataDirectory, "agents", "pi", "sessions", workspaceHash);
|
|
21
20
|
return Object.freeze({
|
|
22
21
|
PI_ACP_ENABLE_EMBEDDED_CONTEXT: "true",
|
|
23
22
|
MOBIUS_PI_SESSION_DIR: sessionDirectory,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pi-agent.js","sourceRoot":"","sources":["../../../../src/agent/specification/vendors/pi-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAIH,OAAO,GACV,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"pi-agent.js","sourceRoot":"","sources":["../../../../src/agent/specification/vendors/pi-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cli/handler/agents/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAUnD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cli/handler/agents/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAUnD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI,CA6BjF"}
|
|
@@ -15,10 +15,11 @@ export function registerAgentsHandler(program, context) {
|
|
|
15
15
|
.action(async (options) => {
|
|
16
16
|
const installation = await openMobiusCliInstallation(context.shutdownSignal, process.env);
|
|
17
17
|
const localContext = new RuntimeLocalContext(installation.stateDirectory, process.env);
|
|
18
|
-
const defaultWorkspace = loadDefaultWorkspace(localContext.environment);
|
|
18
|
+
const defaultWorkspace = loadDefaultWorkspace(localContext.stateDirectory, localContext.environment);
|
|
19
19
|
await ensurePrivateDirectory(defaultWorkspace);
|
|
20
20
|
const inventory = await discoverLocalAgentInventory({
|
|
21
21
|
defaultWorkspace,
|
|
22
|
+
dataDirectory: localContext.stateDirectory,
|
|
22
23
|
environment: localContext.environment,
|
|
23
24
|
signal: context.shutdownSignal,
|
|
24
25
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/handler/agents/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,2BAA2B,EAAE,MAAM,mDAAmD,CAAC;AAChG,OAAO,EAAE,yBAAyB,EAAE,MAAM,+CAA+C,CAAC;AAC1F,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACvF,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAE/E,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,yBAAyB,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QAC1F,MAAM,YAAY,GAAG,IAAI,mBAAmB,CAAC,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QACvF,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/handler/agents/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,2BAA2B,EAAE,MAAM,mDAAmD,CAAC;AAChG,OAAO,EAAE,yBAAyB,EAAE,MAAM,+CAA+C,CAAC;AAC1F,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACvF,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAE/E,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,yBAAyB,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QAC1F,MAAM,YAAY,GAAG,IAAI,mBAAmB,CAAC,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QACvF,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,YAAY,CAAC,cAAc,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;QACrG,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,WAAW;YACrC,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"}
|
package/dist/cli.js
CHANGED
|
@@ -2086,7 +2086,7 @@ var init_package = __esm({
|
|
|
2086
2086
|
"package.json"() {
|
|
2087
2087
|
package_default = {
|
|
2088
2088
|
name: "@moxt-ai/mobius",
|
|
2089
|
-
version: "0.0.
|
|
2089
|
+
version: "0.0.318",
|
|
2090
2090
|
description: "Mobius CLI for pairing and running local AI agent services.",
|
|
2091
2091
|
type: "module",
|
|
2092
2092
|
bin: {
|
|
@@ -5615,12 +5615,31 @@ var init_node_error = __esm({
|
|
|
5615
5615
|
}
|
|
5616
5616
|
});
|
|
5617
5617
|
|
|
5618
|
+
// src/storage/state-root-layout.ts
|
|
5619
|
+
var STATE_ROOT_LAYOUT, STATE_ROOT_ENTRY_NAMES;
|
|
5620
|
+
var init_state_root_layout = __esm({
|
|
5621
|
+
"src/storage/state-root-layout.ts"() {
|
|
5622
|
+
"use strict";
|
|
5623
|
+
STATE_ROOT_LAYOUT = Object.freeze({
|
|
5624
|
+
/** Names the version whose data is current. */
|
|
5625
|
+
currentData: "current-data.txt",
|
|
5626
|
+
/** Applications' installations: `installations/<application>/<installation>`. */
|
|
5627
|
+
installations: "installations",
|
|
5628
|
+
/** Managed CLI releases: `npm/<version>`. */
|
|
5629
|
+
releases: "npm",
|
|
5630
|
+
/** Each CLI version's data: `versions/<version>`. */
|
|
5631
|
+
versions: "versions"
|
|
5632
|
+
});
|
|
5633
|
+
STATE_ROOT_ENTRY_NAMES = new Set(Object.values(STATE_ROOT_LAYOUT));
|
|
5634
|
+
}
|
|
5635
|
+
});
|
|
5636
|
+
|
|
5618
5637
|
// src/storage/installation/installation-files.ts
|
|
5619
5638
|
import { createHash, randomUUID } from "node:crypto";
|
|
5620
5639
|
import { mkdir, open, readdir, rename, unlink, writeFile } from "node:fs/promises";
|
|
5621
5640
|
import { dirname, join } from "node:path";
|
|
5622
5641
|
function applicationDirectory(root, applicationId) {
|
|
5623
|
-
return join(root,
|
|
5642
|
+
return join(root, STATE_ROOT_LAYOUT.installations, applicationId);
|
|
5624
5643
|
}
|
|
5625
5644
|
function installationPointerPath(applicationDirectory2) {
|
|
5626
5645
|
return join(applicationDirectory2, "current.json");
|
|
@@ -5683,6 +5702,7 @@ var init_installation_files = __esm({
|
|
|
5683
5702
|
"src/storage/installation/installation-files.ts"() {
|
|
5684
5703
|
"use strict";
|
|
5685
5704
|
init_node_error();
|
|
5705
|
+
init_state_root_layout();
|
|
5686
5706
|
MAXIMUM_FILE_BYTES = 16 * 1024;
|
|
5687
5707
|
}
|
|
5688
5708
|
});
|
|
@@ -5715,7 +5735,7 @@ async function exists(path8) {
|
|
|
5715
5735
|
async function owningRoot(directory) {
|
|
5716
5736
|
const application = dirname2(directory);
|
|
5717
5737
|
const installations = dirname2(application);
|
|
5718
|
-
if (basename(installations) !==
|
|
5738
|
+
if (basename(installations) !== STATE_ROOT_LAYOUT.installations) {
|
|
5719
5739
|
return null;
|
|
5720
5740
|
}
|
|
5721
5741
|
let pointer;
|
|
@@ -5728,11 +5748,11 @@ async function owningRoot(directory) {
|
|
|
5728
5748
|
return null;
|
|
5729
5749
|
}
|
|
5730
5750
|
const container = dirname2(installations);
|
|
5731
|
-
return basename(dirname2(container)) ===
|
|
5751
|
+
return basename(dirname2(container)) === STATE_ROOT_LAYOUT.versions ? dirname2(dirname2(container)) : container;
|
|
5732
5752
|
}
|
|
5733
5753
|
async function validateStateRoot(environment) {
|
|
5734
5754
|
const directory = readStateDirectory(environment);
|
|
5735
|
-
if (await exists(join3(directory,
|
|
5755
|
+
if (await exists(join3(directory, STATE_ROOT_LAYOUT.currentData)) || await exists(join3(directory, STATE_ROOT_LAYOUT.versions))) {
|
|
5736
5756
|
return;
|
|
5737
5757
|
}
|
|
5738
5758
|
const root = await owningRoot(directory);
|
|
@@ -5746,6 +5766,7 @@ var init_state_root = __esm({
|
|
|
5746
5766
|
"use strict";
|
|
5747
5767
|
init_installation_files();
|
|
5748
5768
|
init_state_directory();
|
|
5769
|
+
init_state_root_layout();
|
|
5749
5770
|
StateRootError = class extends Error {
|
|
5750
5771
|
code = "state_root_is_installation_data";
|
|
5751
5772
|
owningRoot;
|
|
@@ -42773,8 +42794,8 @@ function inputPath(context, key) {
|
|
|
42773
42794
|
return plainString(context.input[key]);
|
|
42774
42795
|
}
|
|
42775
42796
|
function isInside(directory, candidate) {
|
|
42776
|
-
const
|
|
42777
|
-
return
|
|
42797
|
+
const relative7 = path2.relative(path2.resolve(directory), path2.resolve(candidate));
|
|
42798
|
+
return relative7 === "" || !relative7.startsWith(`..${path2.sep}`) && relative7 !== "..";
|
|
42778
42799
|
}
|
|
42779
42800
|
function hasSessionAllowRuleFor(changeSet, toolName) {
|
|
42780
42801
|
return !!changeSet?.updates.some((update) => update.type === "addRules" && update.destination === "session" && update.behavior === "allow" && update.rules.some((rule) => rule.toolName === toolName));
|
|
@@ -74694,7 +74715,9 @@ var init_native = __esm({
|
|
|
74694
74715
|
external_exports.object({
|
|
74695
74716
|
commandId: identifierStringSchema,
|
|
74696
74717
|
prompt: external_exports.string().max(1e5),
|
|
74697
|
-
images: external_exports.array(promptImageSchema).max(8).readonly()
|
|
74718
|
+
images: external_exports.array(promptImageSchema).max(8).readonly(),
|
|
74719
|
+
// Absent from daemons that predate it; a client then cannot restore the prompt's files.
|
|
74720
|
+
resources: external_exports.array(promptResourceSchema).max(16).readonly().optional()
|
|
74698
74721
|
}).readonly()
|
|
74699
74722
|
).readonly(),
|
|
74700
74723
|
turn: activeTurnSnapshotSchema.nullable()
|
|
@@ -80707,7 +80730,6 @@ var init_pi_agent = __esm({
|
|
|
80707
80730
|
"src/agent/specification/vendors/pi-agent.ts"() {
|
|
80708
80731
|
"use strict";
|
|
80709
80732
|
init_endpoint2();
|
|
80710
|
-
init_state_directory();
|
|
80711
80733
|
init_agent_probe_error();
|
|
80712
80734
|
init_agent_specification();
|
|
80713
80735
|
ACP_PROBE_TIMEOUT_MILLISECONDS2 = 3e4;
|
|
@@ -80719,13 +80741,7 @@ var init_pi_agent = __esm({
|
|
|
80719
80741
|
// keeps the adapter's opt-in capability flag enabled for every launch it owns.
|
|
80720
80742
|
createLaunchEnvironment = async (_agent, context) => {
|
|
80721
80743
|
const workspaceHash = createHash3("sha256").update(context.defaultWorkspace).digest("hex").slice(0, 24);
|
|
80722
|
-
const sessionDirectory = join21(
|
|
80723
|
-
readStateDirectory(context.environment),
|
|
80724
|
-
"agents",
|
|
80725
|
-
"pi",
|
|
80726
|
-
"sessions",
|
|
80727
|
-
workspaceHash
|
|
80728
|
-
);
|
|
80744
|
+
const sessionDirectory = join21(context.dataDirectory, "agents", "pi", "sessions", workspaceHash);
|
|
80729
80745
|
return Object.freeze({
|
|
80730
80746
|
PI_ACP_ENABLE_EMBEDDED_CONTEXT: "true",
|
|
80731
80747
|
MOBIUS_PI_SESSION_DIR: sessionDirectory
|
|
@@ -90686,9 +90702,9 @@ var init_catalog2 = __esm({
|
|
|
90686
90702
|
|
|
90687
90703
|
// src/runtime/config.ts
|
|
90688
90704
|
import { join as join24, resolve as resolve14 } from "node:path";
|
|
90689
|
-
function loadDefaultWorkspace(environment = process.env) {
|
|
90705
|
+
function loadDefaultWorkspace(dataDirectory, environment = process.env) {
|
|
90690
90706
|
const { MOBIUS_DEFAULT_WORKSPACE: configuredWorkspace } = environment;
|
|
90691
|
-
return configuredWorkspace ?? join24(
|
|
90707
|
+
return configuredWorkspace ?? join24(dataDirectory, "workspace");
|
|
90692
90708
|
}
|
|
90693
90709
|
function withRuntimeEnvironment(agent, environment) {
|
|
90694
90710
|
const launchEnvironment = {};
|
|
@@ -90728,7 +90744,7 @@ var init_config = __esm({
|
|
|
90728
90744
|
stateDirectory;
|
|
90729
90745
|
constructor(stateDirectory, environment = process.env) {
|
|
90730
90746
|
this.stateDirectory = resolve14(stateDirectory);
|
|
90731
|
-
this.environment = Object.freeze({ ...environment
|
|
90747
|
+
this.environment = Object.freeze({ ...environment });
|
|
90732
90748
|
}
|
|
90733
90749
|
};
|
|
90734
90750
|
RuntimeReconnectTarget = class {
|
|
@@ -91322,9 +91338,9 @@ var init_runtime_installation_store = __esm({
|
|
|
91322
91338
|
// src/storage/daemon/version-data.ts
|
|
91323
91339
|
import { randomUUID as randomUUID11 } from "node:crypto";
|
|
91324
91340
|
import { cp as cp2, lstat as lstat4, mkdtemp, readFile as readFile7, rename as rename4, rm as rm3, writeFile as writeFile2 } from "node:fs/promises";
|
|
91325
|
-
import { join as join25 } from "node:path";
|
|
91341
|
+
import { join as join25, relative as relative2, sep as sep5 } from "node:path";
|
|
91326
91342
|
async function readCurrentDataVersion(root, signal) {
|
|
91327
|
-
const pointer = join25(root,
|
|
91343
|
+
const pointer = join25(root, STATE_ROOT_LAYOUT.currentData);
|
|
91328
91344
|
try {
|
|
91329
91345
|
await validateLocalPath(pointer, false, true, signal);
|
|
91330
91346
|
const value = (await readFile7(pointer, { encoding: "utf8", signal })).trim();
|
|
@@ -91341,7 +91357,7 @@ async function readCurrentDataVersion(root, signal) {
|
|
|
91341
91357
|
}
|
|
91342
91358
|
async function versionDataExists(root, version2, signal) {
|
|
91343
91359
|
try {
|
|
91344
|
-
await validateLocalPath(join25(root,
|
|
91360
|
+
await validateLocalPath(join25(root, STATE_ROOT_LAYOUT.versions, version2), true, true, signal);
|
|
91345
91361
|
return true;
|
|
91346
91362
|
} catch (cause) {
|
|
91347
91363
|
if (!isNodeError(cause, "ENOENT")) {
|
|
@@ -91350,8 +91366,12 @@ async function versionDataExists(root, version2, signal) {
|
|
|
91350
91366
|
return false;
|
|
91351
91367
|
}
|
|
91352
91368
|
}
|
|
91369
|
+
function nestedRootEntry(segments) {
|
|
91370
|
+
return segments.length >= 4 && segments[0] === STATE_ROOT_LAYOUT.installations && STATE_ROOT_ENTRY_NAMES.has(segments[3] ?? "");
|
|
91371
|
+
}
|
|
91353
91372
|
async function copyVersionData(root, sourceVersion, targetVersion, signal) {
|
|
91354
|
-
const
|
|
91373
|
+
const leftBehind = [];
|
|
91374
|
+
const versions = join25(root, STATE_ROOT_LAYOUT.versions);
|
|
91355
91375
|
const source = join25(versions, sourceVersion);
|
|
91356
91376
|
const target = join25(versions, targetVersion);
|
|
91357
91377
|
await validateLocalPath(root, true, true, signal);
|
|
@@ -91363,6 +91383,13 @@ async function copyVersionData(root, sourceVersion, targetVersion, signal) {
|
|
|
91363
91383
|
recursive: true,
|
|
91364
91384
|
filter: async (path8) => {
|
|
91365
91385
|
signal.throwIfAborted();
|
|
91386
|
+
const segments = relative2(source, path8).split(sep5);
|
|
91387
|
+
if (nestedRootEntry(segments)) {
|
|
91388
|
+
if (segments.length === 4) {
|
|
91389
|
+
leftBehind.push(segments.join("/"));
|
|
91390
|
+
}
|
|
91391
|
+
return false;
|
|
91392
|
+
}
|
|
91366
91393
|
if ((await lstat4(path8)).isSymbolicLink()) {
|
|
91367
91394
|
throw new DataInheritanceError("The inherited data contains a symbolic link");
|
|
91368
91395
|
}
|
|
@@ -91378,19 +91405,20 @@ async function copyVersionData(root, sourceVersion, targetVersion, signal) {
|
|
|
91378
91405
|
}
|
|
91379
91406
|
await validateLocalPath(target, true, true, signal);
|
|
91380
91407
|
}
|
|
91408
|
+
return leftBehind;
|
|
91381
91409
|
} finally {
|
|
91382
91410
|
await rm3(staging, { recursive: true, force: true });
|
|
91383
91411
|
}
|
|
91384
91412
|
}
|
|
91385
91413
|
async function writeCurrentDataVersion(root, version2, signal) {
|
|
91386
91414
|
await validateLocalPath(root, true, true, signal);
|
|
91387
|
-
await validateLocalPath(join25(root,
|
|
91415
|
+
await validateLocalPath(join25(root, STATE_ROOT_LAYOUT.versions, version2), true, true, signal);
|
|
91388
91416
|
const temporary = join25(root, `.current-data-${randomUUID11()}.txt`);
|
|
91389
91417
|
try {
|
|
91390
91418
|
await writeFile2(temporary, `versions/${version2}
|
|
91391
91419
|
`, { mode: 384, flag: "wx", signal });
|
|
91392
91420
|
signal.throwIfAborted();
|
|
91393
|
-
await rename4(temporary, join25(root,
|
|
91421
|
+
await rename4(temporary, join25(root, STATE_ROOT_LAYOUT.currentData));
|
|
91394
91422
|
} finally {
|
|
91395
91423
|
await rm3(temporary, { force: true });
|
|
91396
91424
|
}
|
|
@@ -91402,6 +91430,7 @@ var init_version_data = __esm({
|
|
|
91402
91430
|
init_protocol();
|
|
91403
91431
|
init_private_path();
|
|
91404
91432
|
init_node_error();
|
|
91433
|
+
init_state_root_layout();
|
|
91405
91434
|
DataInheritanceError = class extends Error {
|
|
91406
91435
|
code = "data_inheritance_failed";
|
|
91407
91436
|
};
|
|
@@ -91613,7 +91642,13 @@ async function prepareVersionData(version2, signal, environment = process.env, f
|
|
|
91613
91642
|
if (previous === null) {
|
|
91614
91643
|
return;
|
|
91615
91644
|
}
|
|
91616
|
-
await copyVersionData(root, runtimeUpgradeVersionSchema.parse(previous), targetVersion, signal);
|
|
91645
|
+
const leftBehind = await copyVersionData(root, runtimeUpgradeVersionSchema.parse(previous), targetVersion, signal);
|
|
91646
|
+
for (const entry of leftBehind) {
|
|
91647
|
+
process.stderr.write(
|
|
91648
|
+
`Mobius did not carry ${entry} into version ${targetVersion}: an earlier Mobius ran with that installation as its state root.
|
|
91649
|
+
`
|
|
91650
|
+
);
|
|
91651
|
+
}
|
|
91617
91652
|
}
|
|
91618
91653
|
async function recordCurrentData(version2, signal) {
|
|
91619
91654
|
await writeCurrentDataVersion(readStateDirectory(), runtimeUpgradeVersionSchema.parse(version2), signal);
|
|
@@ -91818,6 +91853,7 @@ function buildPairedRuntime(installation, connection, defaultWorkspace, inventor
|
|
|
91818
91853
|
createCatalogAgentResolver(
|
|
91819
91854
|
(refreshSignal) => discoverLocalAgentInventory({
|
|
91820
91855
|
defaultWorkspace,
|
|
91856
|
+
dataDirectory: localContext.stateDirectory,
|
|
91821
91857
|
environment: localContext.environment,
|
|
91822
91858
|
signal: refreshSignal
|
|
91823
91859
|
}),
|
|
@@ -91826,6 +91862,7 @@ function buildPairedRuntime(installation, connection, defaultWorkspace, inventor
|
|
|
91826
91862
|
),
|
|
91827
91863
|
(refreshSignal) => discoverLocalAgentInventory({
|
|
91828
91864
|
defaultWorkspace,
|
|
91865
|
+
dataDirectory: localContext.stateDirectory,
|
|
91829
91866
|
environment: localContext.environment,
|
|
91830
91867
|
signal: refreshSignal
|
|
91831
91868
|
}).then((inventory2) => inventory2.readyAgents())
|
|
@@ -91842,6 +91879,7 @@ async function pairRuntime(installation, options, signal, environment) {
|
|
|
91842
91879
|
const defaultWorkspace = await resolveDefaultWorkspace(options.workspace);
|
|
91843
91880
|
const inventory = await discoverLocalAgentInventory({
|
|
91844
91881
|
defaultWorkspace,
|
|
91882
|
+
dataDirectory: localContext.stateDirectory,
|
|
91845
91883
|
environment: localContext.environment,
|
|
91846
91884
|
signal
|
|
91847
91885
|
});
|
|
@@ -91865,6 +91903,7 @@ async function resumeRuntimeConnection(installation, connection, signal, environ
|
|
|
91865
91903
|
const defaultWorkspace = await resolveDefaultWorkspace(connection.defaultWorkspace);
|
|
91866
91904
|
const inventory = await discoverLocalAgentInventory({
|
|
91867
91905
|
defaultWorkspace,
|
|
91906
|
+
dataDirectory: localContext.stateDirectory,
|
|
91868
91907
|
environment: localContext.environment,
|
|
91869
91908
|
signal
|
|
91870
91909
|
});
|
|
@@ -91909,7 +91948,7 @@ async function pairLocalMachine(arguments_, signal = new AbortController().signa
|
|
|
91909
91948
|
code: requested.code,
|
|
91910
91949
|
pairingId: requested.pairingId,
|
|
91911
91950
|
relayOrigin: requested.relayOrigin,
|
|
91912
|
-
workspace: arguments_.includes("--workspace") ? requested.workspace : loadDefaultWorkspace(localContext.environment)
|
|
91951
|
+
workspace: arguments_.includes("--workspace") ? requested.workspace : loadDefaultWorkspace(localContext.stateDirectory, localContext.environment)
|
|
91913
91952
|
},
|
|
91914
91953
|
signal,
|
|
91915
91954
|
process.env
|
|
@@ -92127,10 +92166,11 @@ function registerAgentsHandler(program2, context) {
|
|
|
92127
92166
|
program2.command("agents").description("show detected, missing, and integration-ready Agents").option("--json", "write the Agent inventory as JSON").addOption(valueOption("--output-json <existing-file.json>", "write the JSON inventory to an existing file")).option("--verbose", "include per-Agent detection timing").action(async (options) => {
|
|
92128
92167
|
const installation = await openMobiusCliInstallation(context.shutdownSignal, process.env);
|
|
92129
92168
|
const localContext = new RuntimeLocalContext(installation.stateDirectory, process.env);
|
|
92130
|
-
const defaultWorkspace = loadDefaultWorkspace(localContext.environment);
|
|
92169
|
+
const defaultWorkspace = loadDefaultWorkspace(localContext.stateDirectory, localContext.environment);
|
|
92131
92170
|
await ensurePrivateDirectory(defaultWorkspace);
|
|
92132
92171
|
const inventory = await discoverLocalAgentInventory({
|
|
92133
92172
|
defaultWorkspace,
|
|
92173
|
+
dataDirectory: localContext.stateDirectory,
|
|
92134
92174
|
environment: localContext.environment,
|
|
92135
92175
|
signal: context.shutdownSignal
|
|
92136
92176
|
});
|
|
@@ -92346,7 +92386,7 @@ var init_bounded_log = __esm({
|
|
|
92346
92386
|
// src/storage/logs/log-files.ts
|
|
92347
92387
|
import { readFileSync as readFileSync10 } from "node:fs";
|
|
92348
92388
|
import { lstat as lstat5, readdir as readdir6, readFile as readFile10 } from "node:fs/promises";
|
|
92349
|
-
import { join as join30, relative as
|
|
92389
|
+
import { join as join30, relative as relative3 } from "node:path";
|
|
92350
92390
|
function unhandledRejectionLogFilename(role) {
|
|
92351
92391
|
return `unhandled-rejections-${role}.log`;
|
|
92352
92392
|
}
|
|
@@ -92386,7 +92426,7 @@ async function findLogDirectories(root, unreadable, signal) {
|
|
|
92386
92426
|
if (status === "listed") {
|
|
92387
92427
|
found.push(logs);
|
|
92388
92428
|
} else if (status === "unreadable") {
|
|
92389
|
-
unreadable.push(
|
|
92429
|
+
unreadable.push(relative3(root, logs));
|
|
92390
92430
|
}
|
|
92391
92431
|
}
|
|
92392
92432
|
}
|
|
@@ -92400,7 +92440,7 @@ async function listDirectories(path8, root, unreadable, signal) {
|
|
|
92400
92440
|
return entries.filter((entry) => entry.isDirectory() && !entry.isSymbolicLink()).map((entry) => entry.name);
|
|
92401
92441
|
} catch (cause) {
|
|
92402
92442
|
if (!isAbsent(cause)) {
|
|
92403
|
-
unreadable.push(
|
|
92443
|
+
unreadable.push(relative3(root, path8));
|
|
92404
92444
|
}
|
|
92405
92445
|
return [];
|
|
92406
92446
|
}
|
|
@@ -92411,7 +92451,7 @@ async function listLogFiles(directory, root, unreadable) {
|
|
|
92411
92451
|
return entries.filter((entry) => entry.isFile() && !entry.isSymbolicLink() && LOG_FILE_NAME_PATTERN.test(entry.name)).map((entry) => entry.name).sort();
|
|
92412
92452
|
} catch (cause) {
|
|
92413
92453
|
if (!isAbsent(cause)) {
|
|
92414
|
-
unreadable.push(
|
|
92454
|
+
unreadable.push(relative3(root, directory));
|
|
92415
92455
|
}
|
|
92416
92456
|
return [];
|
|
92417
92457
|
}
|
|
@@ -92994,7 +93034,7 @@ var init_manager2 = __esm({
|
|
|
92994
93034
|
import { readFile as readFile11, realpath as realpath8 } from "node:fs/promises";
|
|
92995
93035
|
import { join as join31 } from "node:path";
|
|
92996
93036
|
function releasePrefix(version2) {
|
|
92997
|
-
return join31(readStateDirectory(),
|
|
93037
|
+
return join31(readStateDirectory(), STATE_ROOT_LAYOUT.releases, version2);
|
|
92998
93038
|
}
|
|
92999
93039
|
async function readInstalledRelease(prefix) {
|
|
93000
93040
|
const packageRoot = await realpath8(join31(prefix, "node_modules", "@moxt-ai", "mobius"));
|
|
@@ -93004,11 +93044,12 @@ var init_release_files = __esm({
|
|
|
93004
93044
|
"src/storage/daemon/release-files.ts"() {
|
|
93005
93045
|
"use strict";
|
|
93006
93046
|
init_state_directory();
|
|
93047
|
+
init_state_root_layout();
|
|
93007
93048
|
}
|
|
93008
93049
|
});
|
|
93009
93050
|
|
|
93010
93051
|
// src/daemon/upgrades/package.ts
|
|
93011
|
-
import { isAbsolute as isAbsolute16, join as join32, relative as
|
|
93052
|
+
import { isAbsolute as isAbsolute16, join as join32, relative as relative4 } from "node:path";
|
|
93012
93053
|
async function prepareDaemonReleaseVersion(version2, signal) {
|
|
93013
93054
|
runtimeUpgradeVersionSchema.parse(version2);
|
|
93014
93055
|
signal.throwIfAborted();
|
|
@@ -93090,7 +93131,7 @@ async function verifyInstalledDaemonRelease(installed, prefix, version2, signal)
|
|
|
93090
93131
|
engines: external_exports.object({ node: external_exports.string().refine((value) => (0, import_semver.validRange)(value) !== null) })
|
|
93091
93132
|
}).parse(JSON.parse(installed.manifest));
|
|
93092
93133
|
const entry = await canonicalPath(join32(installed.packageRoot, metadata.bin.mobius));
|
|
93093
|
-
const resolved =
|
|
93134
|
+
const resolved = relative4(await canonicalPath(prefix), entry);
|
|
93094
93135
|
if (resolved.startsWith("..") || isAbsolute16(resolved)) {
|
|
93095
93136
|
throw new Error("Installed entry escaped npm prefix");
|
|
93096
93137
|
}
|
|
@@ -97406,7 +97447,8 @@ var init_session_turns = __esm({
|
|
|
97406
97447
|
queued.push({
|
|
97407
97448
|
commandId: candidate.command.commandId,
|
|
97408
97449
|
prompt: candidate.command.prompt,
|
|
97409
|
-
images: candidate.command.images
|
|
97450
|
+
images: candidate.command.images,
|
|
97451
|
+
resources: candidate.command.resources
|
|
97410
97452
|
});
|
|
97411
97453
|
}
|
|
97412
97454
|
return { turn: turnSnapshot ?? null, queued };
|
|
@@ -97431,7 +97473,7 @@ var init_session_turns = __esm({
|
|
|
97431
97473
|
|
|
97432
97474
|
// src/session/workspace/workspace-directory.ts
|
|
97433
97475
|
import { homedir as homedir4 } from "node:os";
|
|
97434
|
-
import { basename as basename8, dirname as dirname11, isAbsolute as isAbsolute17, join as join33, normalize as normalize2, relative as
|
|
97476
|
+
import { basename as basename8, dirname as dirname11, isAbsolute as isAbsolute17, join as join33, normalize as normalize2, relative as relative5 } from "node:path";
|
|
97435
97477
|
function encodePath(path8) {
|
|
97436
97478
|
const encoded = Buffer.from(path8, "utf8").toString("base64url");
|
|
97437
97479
|
if (path8.length === 0 || path8.length > MAX_WORKSPACE_PATH_LENGTH || encoded.length + "path-".length > MAX_DIRECTORY_IDENTIFIER_LENGTH) {
|
|
@@ -97525,7 +97567,7 @@ var init_workspace_directory = __esm({
|
|
|
97525
97567
|
}
|
|
97526
97568
|
};
|
|
97527
97569
|
label = (path8) => {
|
|
97528
|
-
const suffix =
|
|
97570
|
+
const suffix = relative5(homedir4(), path8);
|
|
97529
97571
|
return suffix === "" ? "~" : !isAbsolute17(suffix) && suffix !== ".." && !suffix.startsWith(`..${process.platform === "win32" ? "\\" : "/"}`) ? `~/${suffix.replaceAll("\\", "/")}` : path8;
|
|
97530
97572
|
};
|
|
97531
97573
|
identify = async (bindingId, requestedPath2, signal) => {
|
|
@@ -102392,7 +102434,7 @@ var init_daemon = __esm({
|
|
|
102392
102434
|
});
|
|
102393
102435
|
|
|
102394
102436
|
// src/cli/handler/logs/logic/collect-local-logs.ts
|
|
102395
|
-
import { join as join38, relative as
|
|
102437
|
+
import { join as join38, relative as relative6, resolve as resolve19 } from "node:path";
|
|
102396
102438
|
async function collectLocalDaemonLogs(stateDirectory, tailLines, signal) {
|
|
102397
102439
|
signal.throwIfAborted();
|
|
102398
102440
|
const root = resolve19(stateDirectory);
|
|
@@ -102403,7 +102445,7 @@ async function collectLocalDaemonLogs(stateDirectory, tailLines, signal) {
|
|
|
102403
102445
|
const names = await listLogFiles(directory, root, unreadable);
|
|
102404
102446
|
for (const name2 of names) {
|
|
102405
102447
|
const path8 = join38(directory, name2);
|
|
102406
|
-
const reported =
|
|
102448
|
+
const reported = relative6(root, path8);
|
|
102407
102449
|
const read = await readOwnedLogFile(path8, signal);
|
|
102408
102450
|
if (read.kind === "unreadable") {
|
|
102409
102451
|
unreadable.push(reported);
|