@olane/os 0.8.17 → 0.8.19
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/src/o-olane-os/o-os.d.ts +4 -0
- package/dist/src/o-olane-os/o-os.d.ts.map +1 -1
- package/dist/src/o-olane-os/o-os.js +27 -0
- package/dist/src/tools/filesystem.tool.d.ts +2 -2
- package/dist/src/tools/filesystem.tool.js +2 -2
- package/dist/src/worlds/world-instance.tool.d.ts +4 -4
- package/dist/src/worlds/world-instance.tool.d.ts.map +1 -1
- package/dist/src/worlds/world-instance.tool.js +56 -21
- package/package.json +17 -14
|
@@ -7,6 +7,8 @@ import { oLaneTool } from '@olane/o-lane';
|
|
|
7
7
|
import { WorldManagerTool } from '../worlds/world-manager.tool.js';
|
|
8
8
|
import { AddressBook } from '../address-book/address-book.js';
|
|
9
9
|
import { MemoryHarness } from '../memory/memory-harness.js';
|
|
10
|
+
import { FilesystemTool } from '../tools/filesystem.tool.js';
|
|
11
|
+
import { AgentRegistryNode } from '@olane/o-agent';
|
|
10
12
|
type OlaneOSNode = oLaneTool | oLeaderNode;
|
|
11
13
|
export declare class OlaneOS extends oObject {
|
|
12
14
|
private leaders;
|
|
@@ -18,6 +20,8 @@ export declare class OlaneOS extends oObject {
|
|
|
18
20
|
worldManager: WorldManagerTool | null;
|
|
19
21
|
addressBook: AddressBook | null;
|
|
20
22
|
memory: MemoryHarness | null;
|
|
23
|
+
filesystemTool: FilesystemTool | null;
|
|
24
|
+
agentRegistry: AgentRegistryNode | null;
|
|
21
25
|
constructor(config: OlaneOSConfig);
|
|
22
26
|
entryNode(): oLaneTool | oLeaderNode;
|
|
23
27
|
addLeader(leader: oLeaderNode): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"o-os.d.ts","sourceRoot":"","sources":["../../../src/o-olane-os/o-os.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAK5D,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAIzC,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAI1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"o-os.d.ts","sourceRoot":"","sources":["../../../src/o-olane-os/o-os.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAK5D,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAIzC,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAI1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,KAAK,WAAW,GAAG,SAAS,GAAG,WAAW,CAAC;AAC3C,qBAAa,OAAQ,SAAQ,OAAO;IAClC,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,KAAK,CAAqB;IAC3B,UAAU,EAAE,WAAW,GAAG,IAAI,CAAQ;IACtC,MAAM,EAAG,mBAAmB,CAAC;IACpC,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,eAAe,CAAa;IAC7B,YAAY,EAAE,gBAAgB,GAAG,IAAI,CAAQ;IAC7C,WAAW,EAAE,WAAW,GAAG,IAAI,CAAQ;IACvC,MAAM,EAAE,aAAa,GAAG,IAAI,CAAQ;IACpC,cAAc,EAAE,cAAc,GAAG,IAAI,CAAQ;IAC7C,aAAa,EAAE,iBAAiB,GAAG,IAAI,CAAQ;gBAE1C,MAAM,EAAE,aAAa;IAKjC,SAAS,IAAI,SAAS,GAAG,WAAW;IAMpC,SAAS,CAAC,MAAM,EAAE,WAAW;IAOvB,OAAO,CAAC,IAAI,EAAE,WAAW;YAiBjB,UAAU;IA4CxB;;;OAGG;YACW,qBAAqB;IA2E7B,iBAAiB;IASjB,UAAU,CAAC,IAAI,EAAE,QAAQ;IAsDzB,aAAa;IAwEnB;;;OAGG;YACW,cAAc;IAoE5B;;;OAGG;YACW,qBAAqB;IAwBnC;;;;OAIG;YACW,oBAAoB;IA4B5B,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG;IASnC,KAAK,IAAI,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC;IA0C9D,IAAI;IAwBJ,OAAO;CAKd"}
|
|
@@ -16,6 +16,8 @@ import { WorldManagerTool } from '../worlds/world-manager.tool.js';
|
|
|
16
16
|
import { AddressBook } from '../address-book/address-book.js';
|
|
17
17
|
import { MemoryHarness } from '../memory/memory-harness.js';
|
|
18
18
|
import { CopassVectorStoreTool } from '../vector-store/copass-vector-store.tool.js';
|
|
19
|
+
import { FilesystemTool } from '../tools/filesystem.tool.js';
|
|
20
|
+
import { AgentRegistryNode } from '@olane/o-agent';
|
|
19
21
|
export class OlaneOS extends oObject {
|
|
20
22
|
constructor(config) {
|
|
21
23
|
super();
|
|
@@ -26,6 +28,8 @@ export class OlaneOS extends oObject {
|
|
|
26
28
|
this.worldManager = null;
|
|
27
29
|
this.addressBook = null;
|
|
28
30
|
this.memory = null;
|
|
31
|
+
this.filesystemTool = null;
|
|
32
|
+
this.agentRegistry = null;
|
|
29
33
|
this.config = config;
|
|
30
34
|
}
|
|
31
35
|
entryNode() {
|
|
@@ -285,6 +289,16 @@ export class OlaneOS extends oObject {
|
|
|
285
289
|
this.rootLeader.addChildNode(vectorStore);
|
|
286
290
|
await vectorStore.start();
|
|
287
291
|
this.logger.debug('Copass vector store started');
|
|
292
|
+
// Filesystem tool — single instance for the entire OS
|
|
293
|
+
this.filesystemTool = new FilesystemTool({
|
|
294
|
+
address: new oAddress('o://fs'),
|
|
295
|
+
leader: this.rootLeader.address,
|
|
296
|
+
parent: this.rootLeader.address,
|
|
297
|
+
_allowNestedAddress: true,
|
|
298
|
+
});
|
|
299
|
+
this.rootLeader.addChildNode(this.filesystemTool);
|
|
300
|
+
await this.filesystemTool.start();
|
|
301
|
+
this.logger.debug('Filesystem tool started');
|
|
288
302
|
// World manager
|
|
289
303
|
this.worldManager = new WorldManagerTool({
|
|
290
304
|
leader: this.rootLeader.address,
|
|
@@ -295,6 +309,19 @@ export class OlaneOS extends oObject {
|
|
|
295
309
|
this.rootLeader.addChildNode(this.worldManager);
|
|
296
310
|
await this.worldManager.start();
|
|
297
311
|
this.logger.debug('World manager started');
|
|
312
|
+
// Agent registry — directory of live agent sessions on this OS.
|
|
313
|
+
// Sibling of the agents themselves; agents register at flat
|
|
314
|
+
// o://<user>/<kind>/<session-id> addresses and the registry tracks
|
|
315
|
+
// them with TTL + PID-liveness GC.
|
|
316
|
+
this.agentRegistry = new AgentRegistryNode({
|
|
317
|
+
address: new oAddress('o://agents'),
|
|
318
|
+
leader: this.rootLeader.address,
|
|
319
|
+
parent: this.rootLeader.address,
|
|
320
|
+
_allowNestedAddress: true,
|
|
321
|
+
});
|
|
322
|
+
this.rootLeader.addChildNode(this.agentRegistry);
|
|
323
|
+
await this.agentRegistry.start();
|
|
324
|
+
this.logger.debug('Agent registry started');
|
|
298
325
|
}
|
|
299
326
|
}
|
|
300
327
|
/**
|
|
@@ -3,8 +3,8 @@ import { oLaneTool } from '@olane/o-lane';
|
|
|
3
3
|
import { oRequest } from '@olane/o-core';
|
|
4
4
|
import type { ToolResult } from '@olane/o-tool';
|
|
5
5
|
/**
|
|
6
|
-
* FilesystemTool — an oLaneTool that provides scoped filesystem access
|
|
7
|
-
*
|
|
6
|
+
* FilesystemTool — an oLaneTool that provides scoped filesystem access.
|
|
7
|
+
* A single instance exists per OS at o://fs, shared across all worlds.
|
|
8
8
|
*
|
|
9
9
|
* The tool maintains a list of allowed directory paths (addresses).
|
|
10
10
|
* All file operations are restricted to these directories.
|
|
@@ -2,8 +2,8 @@ import { oLaneTool } from '@olane/o-lane';
|
|
|
2
2
|
import { readFile, readdir, stat, access } from 'fs/promises';
|
|
3
3
|
import * as path from 'path';
|
|
4
4
|
/**
|
|
5
|
-
* FilesystemTool — an oLaneTool that provides scoped filesystem access
|
|
6
|
-
*
|
|
5
|
+
* FilesystemTool — an oLaneTool that provides scoped filesystem access.
|
|
6
|
+
* A single instance exists per OS at o://fs, shared across all worlds.
|
|
7
7
|
*
|
|
8
8
|
* The tool maintains a list of allowed directory paths (addresses).
|
|
9
9
|
* All file operations are restricted to these directories.
|
|
@@ -2,20 +2,19 @@ import { oNodeConfig } from '@olane/o-node';
|
|
|
2
2
|
import { oLaneTool } from '@olane/o-lane';
|
|
3
3
|
import { oRequest } from '@olane/o-core';
|
|
4
4
|
import type { ToolResult } from '@olane/o-tool';
|
|
5
|
-
import { FilesystemTool } from '../tools/filesystem.tool.js';
|
|
6
5
|
import type { WorldConfig, WorldAddressEntry, WorldSupportedType } from './world.types.js';
|
|
7
6
|
/**
|
|
8
7
|
* A world instance node — hub for addresses of a given world.
|
|
9
8
|
* Registered as a child of the WorldManagerTool at o://world-manager/{world-name}.
|
|
10
9
|
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
10
|
+
* Uses the shared OS-level FilesystemTool for scoped filesystem access
|
|
11
|
+
* to the directories (addresses) registered with it.
|
|
13
12
|
*/
|
|
14
13
|
export declare class WorldInstanceTool extends oLaneTool {
|
|
15
14
|
private worldConfig;
|
|
16
15
|
private addresses;
|
|
17
16
|
private persistPath;
|
|
18
|
-
|
|
17
|
+
private fsAddress;
|
|
19
18
|
constructor(nodeConfig: oNodeConfig, worldConfig: WorldConfig, persistPath?: string);
|
|
20
19
|
get world(): WorldConfig;
|
|
21
20
|
start(): Promise<void>;
|
|
@@ -23,6 +22,7 @@ export declare class WorldInstanceTool extends oLaneTool {
|
|
|
23
22
|
_tool_remove_address(request: oRequest): Promise<ToolResult>;
|
|
24
23
|
_tool_list_addresses(request: oRequest): Promise<ToolResult>;
|
|
25
24
|
_tool_get_world_info(_request: oRequest): Promise<ToolResult>;
|
|
25
|
+
_tool_ping_address(request: oRequest): Promise<ToolResult>;
|
|
26
26
|
getAddresses(type?: WorldSupportedType): WorldAddressEntry[];
|
|
27
27
|
private loadAddresses;
|
|
28
28
|
persistAddresses(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"world-instance.tool.d.ts","sourceRoot":"","sources":["../../../src/worlds/world-instance.tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAY,QAAQ,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,
|
|
1
|
+
{"version":3,"file":"world-instance.tool.d.ts","sourceRoot":"","sources":["../../../src/worlds/world-instance.tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAY,QAAQ,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAEnB,MAAM,kBAAkB,CAAC;AAQ1B;;;;;;GAMG;AACH,qBAAa,iBAAkB,SAAQ,SAAS;IAC9C,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,SAAS,CAA2B;IAC5C,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,SAAS,CAA0B;gBAGzC,UAAU,EAAE,WAAW,EACvB,WAAW,EAAE,WAAW,EACxB,WAAW,CAAC,EAAE,MAAM;IAmDtB,IAAI,KAAK,IAAI,WAAW,CAEvB;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBtB,sBAAsB,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC;IAuC9D,oBAAoB,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC;IAkB5D,oBAAoB,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC;IAQ5D,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC;IAU7D,kBAAkB,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC;IAgChE,YAAY,CAAC,IAAI,CAAC,EAAE,kBAAkB,GAAG,iBAAiB,EAAE;YAO9C,aAAa;IAcrB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;CASxC"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { oLaneTool } from '@olane/o-lane';
|
|
2
2
|
import { oAddress } from '@olane/o-core';
|
|
3
|
-
import { FilesystemTool } from '../tools/filesystem.tool.js';
|
|
4
3
|
import { readFile, writeFile, mkdir, access } from 'fs/promises';
|
|
5
4
|
import * as path from 'path';
|
|
6
5
|
async function pathExists(p) {
|
|
@@ -16,8 +15,8 @@ async function pathExists(p) {
|
|
|
16
15
|
* A world instance node — hub for addresses of a given world.
|
|
17
16
|
* Registered as a child of the WorldManagerTool at o://world-manager/{world-name}.
|
|
18
17
|
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
18
|
+
* Uses the shared OS-level FilesystemTool for scoped filesystem access
|
|
19
|
+
* to the directories (addresses) registered with it.
|
|
21
20
|
*/
|
|
22
21
|
export class WorldInstanceTool extends oLaneTool {
|
|
23
22
|
constructor(nodeConfig, worldConfig, persistPath) {
|
|
@@ -56,10 +55,18 @@ export class WorldInstanceTool extends oLaneTool {
|
|
|
56
55
|
parameters: [],
|
|
57
56
|
dependencies: [],
|
|
58
57
|
},
|
|
58
|
+
ping_address: {
|
|
59
|
+
name: 'ping_address',
|
|
60
|
+
description: 'Ping a registered address to verify the underlying resource still exists',
|
|
61
|
+
parameters: [
|
|
62
|
+
{ name: 'address', type: 'string', required: true, description: 'The registered address to ping' },
|
|
63
|
+
],
|
|
64
|
+
dependencies: [],
|
|
65
|
+
},
|
|
59
66
|
},
|
|
60
67
|
});
|
|
61
68
|
this.addresses = [];
|
|
62
|
-
this.
|
|
69
|
+
this.fsAddress = new oAddress('o://fs');
|
|
63
70
|
this.worldConfig = worldConfig;
|
|
64
71
|
this.persistPath = persistPath;
|
|
65
72
|
}
|
|
@@ -69,19 +76,13 @@ export class WorldInstanceTool extends oLaneTool {
|
|
|
69
76
|
async start() {
|
|
70
77
|
await super.start();
|
|
71
78
|
await this.loadAddresses();
|
|
72
|
-
//
|
|
79
|
+
// Sync existing filepath addresses to the shared OS-level FilesystemTool
|
|
73
80
|
const filepathAddresses = this.addresses
|
|
74
81
|
.filter((a) => a.type === 'filepath')
|
|
75
82
|
.map((a) => a.address);
|
|
76
|
-
const
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
leader: this.leader,
|
|
80
|
-
parent: this.address,
|
|
81
|
-
_allowNestedAddress: true,
|
|
82
|
-
}, filepathAddresses);
|
|
83
|
-
this.addChildNode(this.filesystemTool);
|
|
84
|
-
await this.filesystemTool.start();
|
|
83
|
+
for (const addr of filepathAddresses) {
|
|
84
|
+
await this.use(this.fsAddress, { method: 'add_path', params: { path: addr } });
|
|
85
|
+
}
|
|
85
86
|
}
|
|
86
87
|
// ── Tool methods ───────────────────────────────────────────
|
|
87
88
|
async _tool_register_address(request) {
|
|
@@ -99,6 +100,16 @@ export class WorldInstanceTool extends oLaneTool {
|
|
|
99
100
|
error: `Address '${address}' is already registered in world '${this.worldConfig.name}'`,
|
|
100
101
|
};
|
|
101
102
|
}
|
|
103
|
+
// Validate and register with o://fs BEFORE storing
|
|
104
|
+
if (type === 'filepath') {
|
|
105
|
+
const fsResult = await this.use(this.fsAddress, { method: 'add_path', params: { path: address } });
|
|
106
|
+
if (!fsResult.result?.success) {
|
|
107
|
+
return {
|
|
108
|
+
success: false,
|
|
109
|
+
error: fsResult.result?.error || `Address '${address}' does not exist or is not a valid directory`,
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
}
|
|
102
113
|
const entry = {
|
|
103
114
|
address,
|
|
104
115
|
type,
|
|
@@ -106,10 +117,6 @@ export class WorldInstanceTool extends oLaneTool {
|
|
|
106
117
|
metadata,
|
|
107
118
|
};
|
|
108
119
|
this.addresses.push(entry);
|
|
109
|
-
// Sync filepath to the FilesystemTool
|
|
110
|
-
if (type === 'filepath' && this.filesystemTool) {
|
|
111
|
-
await this.filesystemTool._tool_add_path({ params: { path: address } });
|
|
112
|
-
}
|
|
113
120
|
await this.persistAddresses();
|
|
114
121
|
return { success: true };
|
|
115
122
|
}
|
|
@@ -121,8 +128,8 @@ export class WorldInstanceTool extends oLaneTool {
|
|
|
121
128
|
const removed = this.addresses.length < before;
|
|
122
129
|
if (removed) {
|
|
123
130
|
// Unsync from FilesystemTool
|
|
124
|
-
if (entry?.type === 'filepath'
|
|
125
|
-
await this.
|
|
131
|
+
if (entry?.type === 'filepath') {
|
|
132
|
+
await this.use(this.fsAddress, { method: 'remove_path', params: { path: address } });
|
|
126
133
|
}
|
|
127
134
|
await this.persistAddresses();
|
|
128
135
|
}
|
|
@@ -136,13 +143,41 @@ export class WorldInstanceTool extends oLaneTool {
|
|
|
136
143
|
return { success: true, addresses: filtered };
|
|
137
144
|
}
|
|
138
145
|
async _tool_get_world_info(_request) {
|
|
146
|
+
const fsResponse = await this.use(this.fsAddress, { method: 'list_paths' });
|
|
139
147
|
return {
|
|
140
148
|
success: true,
|
|
141
149
|
config: this.worldConfig,
|
|
142
150
|
addressCount: this.addresses.length,
|
|
143
|
-
filesystemPaths:
|
|
151
|
+
filesystemPaths: fsResponse.result?.paths || [],
|
|
144
152
|
};
|
|
145
153
|
}
|
|
154
|
+
async _tool_ping_address(request) {
|
|
155
|
+
const { address } = request.params;
|
|
156
|
+
const entry = this.addresses.find((a) => a.address === address);
|
|
157
|
+
if (!entry) {
|
|
158
|
+
return { success: false, error: `Address '${address}' is not registered in this world` };
|
|
159
|
+
}
|
|
160
|
+
if (entry.type === 'filepath') {
|
|
161
|
+
const fsResult = await this.use(this.fsAddress, { method: 'stat_path', params: { path: entry.address } });
|
|
162
|
+
if (!fsResult.result?.success) {
|
|
163
|
+
return {
|
|
164
|
+
success: false,
|
|
165
|
+
address: entry.address,
|
|
166
|
+
type: entry.type,
|
|
167
|
+
error: fsResult.result?.error || 'Resource not reachable',
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
return {
|
|
171
|
+
success: true,
|
|
172
|
+
address: entry.address,
|
|
173
|
+
type: entry.type,
|
|
174
|
+
isDirectory: fsResult.result.isDirectory,
|
|
175
|
+
size: fsResult.result.size,
|
|
176
|
+
modified: fsResult.result.modified,
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
return { success: false, error: `Ping not supported for type '${entry.type}'` };
|
|
180
|
+
}
|
|
146
181
|
// ── Convenience accessors ─────────────────────────────────
|
|
147
182
|
getAddresses(type) {
|
|
148
183
|
if (type)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@olane/os",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.19",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/src/index.js",
|
|
6
6
|
"types": "dist/src/index.d.ts",
|
|
@@ -45,6 +45,7 @@
|
|
|
45
45
|
"@typescript-eslint/eslint-plugin": "^8.56.1",
|
|
46
46
|
"@typescript-eslint/parser": "^8.56.1",
|
|
47
47
|
"aegir": "^47.0.26",
|
|
48
|
+
"chai": "^6.2.2",
|
|
48
49
|
"eslint": "^10.0.2",
|
|
49
50
|
"eslint-config-prettier": "^10.1.8",
|
|
50
51
|
"eslint-plugin-prettier": "^5.5.5",
|
|
@@ -59,23 +60,25 @@
|
|
|
59
60
|
},
|
|
60
61
|
"dependencies": {
|
|
61
62
|
"@libp2p/circuit-relay-v2": "^4.1.3",
|
|
62
|
-
"@olane/o-
|
|
63
|
-
"@olane/o-
|
|
64
|
-
"@olane/o-
|
|
65
|
-
"@olane/o-
|
|
66
|
-
"@olane/o-
|
|
67
|
-
"@olane/o-
|
|
68
|
-
"@olane/o-
|
|
69
|
-
"@olane/o-
|
|
70
|
-
"@olane/o-
|
|
71
|
-
"@olane/o-
|
|
72
|
-
"@olane/o-
|
|
73
|
-
"@olane/o-
|
|
63
|
+
"@olane/o-agent": "0.8.19",
|
|
64
|
+
"@olane/o-client-limited": "0.8.19",
|
|
65
|
+
"@olane/o-config": "0.8.19",
|
|
66
|
+
"@olane/o-core": "0.8.19",
|
|
67
|
+
"@olane/o-intelligence": "0.8.19",
|
|
68
|
+
"@olane/o-lane": "0.8.19",
|
|
69
|
+
"@olane/o-leader": "0.8.19",
|
|
70
|
+
"@olane/o-login": "0.8.19",
|
|
71
|
+
"@olane/o-node": "0.8.19",
|
|
72
|
+
"@olane/o-protocol": "0.8.19",
|
|
73
|
+
"@olane/o-storage": "0.8.19",
|
|
74
|
+
"@olane/o-tool": "0.8.19",
|
|
75
|
+
"@olane/o-tool-registry": "0.8.19",
|
|
76
|
+
"@olane/o-tools-common": "0.8.19",
|
|
74
77
|
"chalk": "^5.6.2",
|
|
75
78
|
"debug": "^4.4.3",
|
|
76
79
|
"dotenv": "^17.3.1",
|
|
77
80
|
"fs-extra": "^11.3.3",
|
|
78
81
|
"touch": "^3.1.1"
|
|
79
82
|
},
|
|
80
|
-
"gitHead": "
|
|
83
|
+
"gitHead": "73d7fad33b135e50de88a1b97180fa271a905eca"
|
|
81
84
|
}
|