@osmosis-ai/cli 0.4.0 ā 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +189 -21
- package/dist/cli.js.map +1 -1
- package/package.json +1 -1
- package/src/cli.ts +199 -22
package/dist/cli.js
CHANGED
|
@@ -3,10 +3,10 @@ import { AtomStore, searchAtoms, getTopAtoms, seedAtoms } from '@osmosis-ai/core
|
|
|
3
3
|
import { createSyncServer, syncWithMesh, contributeTo, learnFrom, startAutoSync, resolveSyncConfig } from '@osmosis-ai/sync';
|
|
4
4
|
import { homedir } from 'node:os';
|
|
5
5
|
import { join } from 'node:path';
|
|
6
|
-
import { mkdirSync } from 'node:fs';
|
|
6
|
+
import { mkdirSync, writeFileSync, readFileSync, existsSync } from 'node:fs';
|
|
7
7
|
const DEFAULT_DB_PATH = join(homedir(), '.osmosis', 'atoms.db');
|
|
8
8
|
const DEFAULT_PORT = 7432;
|
|
9
|
-
const DEFAULT_MESH_URL = 'https://mesh.
|
|
9
|
+
const DEFAULT_MESH_URL = 'https://osmosis-mesh-dev.fly.dev';
|
|
10
10
|
const args = process.argv.slice(2);
|
|
11
11
|
const command = args[0];
|
|
12
12
|
function getDbPath() {
|
|
@@ -37,8 +37,171 @@ function openStore() {
|
|
|
37
37
|
ensureDir(dbPath);
|
|
38
38
|
return new AtomStore(dbPath);
|
|
39
39
|
}
|
|
40
|
+
function getConfigPath() {
|
|
41
|
+
return join(homedir(), '.osmosis', 'config.json');
|
|
42
|
+
}
|
|
43
|
+
function loadConfig() {
|
|
44
|
+
const configPath = getConfigPath();
|
|
45
|
+
if (existsSync(configPath)) {
|
|
46
|
+
try {
|
|
47
|
+
return JSON.parse(readFileSync(configPath, 'utf-8'));
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
return {};
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return {};
|
|
54
|
+
}
|
|
55
|
+
function saveConfig(config) {
|
|
56
|
+
const configPath = getConfigPath();
|
|
57
|
+
ensureDir(configPath);
|
|
58
|
+
writeFileSync(configPath, JSON.stringify(config, null, 2) + '\n', 'utf-8');
|
|
59
|
+
}
|
|
60
|
+
function getMeshKey() {
|
|
61
|
+
const idx = args.indexOf('--key');
|
|
62
|
+
if (idx !== -1 && args[idx + 1])
|
|
63
|
+
return args[idx + 1];
|
|
64
|
+
const config = loadConfig();
|
|
65
|
+
return process.env.MESH_WRITE_KEY ?? config.meshApiKey ?? '';
|
|
66
|
+
}
|
|
40
67
|
async function main() {
|
|
41
68
|
switch (command) {
|
|
69
|
+
case 'init': {
|
|
70
|
+
const configPath = getConfigPath();
|
|
71
|
+
const osmosisDir = join(homedir(), '.osmosis');
|
|
72
|
+
mkdirSync(osmosisDir, { recursive: true });
|
|
73
|
+
const meshUrl = getMeshUrl();
|
|
74
|
+
console.log('š§ Initializing Osmosis...\n');
|
|
75
|
+
// Register with mesh and get an API key
|
|
76
|
+
console.log(` Mesh: ${meshUrl}`);
|
|
77
|
+
let apiKey = '';
|
|
78
|
+
try {
|
|
79
|
+
const res = await fetch(`${meshUrl}/mesh/register`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ agent: 'cli-init' }) });
|
|
80
|
+
if (res.ok) {
|
|
81
|
+
const body = await res.json();
|
|
82
|
+
apiKey = body.key ?? '';
|
|
83
|
+
console.log(` API key: provisioned ā
`);
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
console.log(` API key: mesh doesn't support auto-registration yet`);
|
|
87
|
+
console.log(` ā Ask the mesh admin for a key, then: osmosis config --key <YOUR_KEY>`);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
console.log(` API key: could not reach mesh (offline mode is fine)`);
|
|
92
|
+
}
|
|
93
|
+
// Save config
|
|
94
|
+
const config = {
|
|
95
|
+
meshUrl,
|
|
96
|
+
meshApiKey: apiKey,
|
|
97
|
+
dbPath: join(osmosisDir, 'atoms.db'),
|
|
98
|
+
openclawDir: join(homedir(), '.openclaw'),
|
|
99
|
+
apiPort: DEFAULT_PORT,
|
|
100
|
+
};
|
|
101
|
+
saveConfig(config);
|
|
102
|
+
console.log(` Config: ${configPath}`);
|
|
103
|
+
console.log(` DB: ${config.dbPath}`);
|
|
104
|
+
// Seed
|
|
105
|
+
const store = new AtomStore(config.dbPath);
|
|
106
|
+
seedAtoms(store);
|
|
107
|
+
const count = store.getAll().length;
|
|
108
|
+
store.close();
|
|
109
|
+
console.log(` Seeded: ${count} starter atoms`);
|
|
110
|
+
console.log(`\nā
Osmosis initialized! Next steps:`);
|
|
111
|
+
console.log(` osmosis start ā start the daemon (watches OpenClaw sessions)`);
|
|
112
|
+
console.log(` osmosis status ā check your knowledge base`);
|
|
113
|
+
console.log(` osmosis search ā search for tips`);
|
|
114
|
+
break;
|
|
115
|
+
}
|
|
116
|
+
case 'config': {
|
|
117
|
+
const config = loadConfig();
|
|
118
|
+
const keyIdx = args.indexOf('--key');
|
|
119
|
+
const meshIdx = args.indexOf('--mesh');
|
|
120
|
+
if (keyIdx !== -1 && args[keyIdx + 1]) {
|
|
121
|
+
config.meshApiKey = args[keyIdx + 1];
|
|
122
|
+
saveConfig(config);
|
|
123
|
+
console.log('ā
Mesh API key saved');
|
|
124
|
+
}
|
|
125
|
+
else if (meshIdx !== -1 && args[meshIdx + 1]) {
|
|
126
|
+
config.meshUrl = args[meshIdx + 1];
|
|
127
|
+
saveConfig(config);
|
|
128
|
+
console.log(`ā
Mesh URL set to ${config.meshUrl}`);
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
console.log('š§ Osmosis Config:');
|
|
132
|
+
for (const [k, v] of Object.entries(config)) {
|
|
133
|
+
const display = k === 'meshApiKey' && v ? `${String(v).slice(0, 8)}...` : v;
|
|
134
|
+
console.log(` ${k}: ${display}`);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
break;
|
|
138
|
+
}
|
|
139
|
+
case 'start': {
|
|
140
|
+
const config = loadConfig();
|
|
141
|
+
const dbPath = config.dbPath ?? getDbPath();
|
|
142
|
+
const meshUrl = config.meshUrl ?? getMeshUrl();
|
|
143
|
+
const meshApiKey = config.meshApiKey ?? getMeshKey();
|
|
144
|
+
const openclawDir = config.openclawDir ?? join(homedir(), '.openclaw');
|
|
145
|
+
const port = config.apiPort ?? getPort();
|
|
146
|
+
ensureDir(dbPath);
|
|
147
|
+
const store = new AtomStore(dbPath);
|
|
148
|
+
// Import openclaw modules dynamically
|
|
149
|
+
let watcher, injector;
|
|
150
|
+
try {
|
|
151
|
+
const oc = await import('@osmosis-ai/openclaw');
|
|
152
|
+
watcher = new oc.TranscriptWatcher(store, {
|
|
153
|
+
openclawDir,
|
|
154
|
+
scanIntervalMs: 10_000,
|
|
155
|
+
maxAgeMs: 365 * 24 * 60 * 60 * 1000,
|
|
156
|
+
});
|
|
157
|
+
watcher.start();
|
|
158
|
+
injector = new oc.ContextInjector(store, {
|
|
159
|
+
workspaceDir: join(openclawDir, 'workspace'),
|
|
160
|
+
updateIntervalMs: 15 * 60 * 1000,
|
|
161
|
+
maxTips: 10,
|
|
162
|
+
});
|
|
163
|
+
injector.start();
|
|
164
|
+
}
|
|
165
|
+
catch {
|
|
166
|
+
console.log(' @osmosis-ai/openclaw not found ā running without OpenClaw integration');
|
|
167
|
+
}
|
|
168
|
+
// Start local API
|
|
169
|
+
const { createSyncServer, startAutoSync, resolveSyncConfig } = await import('@osmosis-ai/sync');
|
|
170
|
+
const syncConfig = resolveSyncConfig({
|
|
171
|
+
meshUrl,
|
|
172
|
+
meshApiKey,
|
|
173
|
+
autoSync: !!meshUrl,
|
|
174
|
+
syncIntervalMs: 5 * 60 * 1000,
|
|
175
|
+
});
|
|
176
|
+
const server = createSyncServer(store, port, syncConfig);
|
|
177
|
+
const autoSync = startAutoSync(store, syncConfig);
|
|
178
|
+
console.log('š§ Osmosis daemon running');
|
|
179
|
+
console.log(` API: http://localhost:${port}`);
|
|
180
|
+
console.log(` Mesh: ${meshUrl}`);
|
|
181
|
+
console.log(` Auth: ${meshApiKey ? 'key configured' : 'no key'}`);
|
|
182
|
+
console.log(` OpenClaw: ${openclawDir}`);
|
|
183
|
+
console.log(` DB: ${dbPath}`);
|
|
184
|
+
console.log(` Press Ctrl+C to stop\n`);
|
|
185
|
+
// Periodic status
|
|
186
|
+
const statusTimer = setInterval(() => {
|
|
187
|
+
const all = store.getAll();
|
|
188
|
+
const watcherStats = watcher?.stats ?? { capturedCount: 0, filesWatched: 0 };
|
|
189
|
+
console.log(`š ${all.length} atoms | Captured: ${watcherStats.capturedCount} | Files: ${watcherStats.filesWatched}`);
|
|
190
|
+
}, 60_000);
|
|
191
|
+
const shutdown = () => {
|
|
192
|
+
console.log('\nš§ Shutting down...');
|
|
193
|
+
clearInterval(statusTimer);
|
|
194
|
+
watcher?.stop();
|
|
195
|
+
injector?.stop();
|
|
196
|
+
autoSync.stop();
|
|
197
|
+
server.close();
|
|
198
|
+
store.close();
|
|
199
|
+
process.exit(0);
|
|
200
|
+
};
|
|
201
|
+
process.on('SIGINT', shutdown);
|
|
202
|
+
process.on('SIGTERM', shutdown);
|
|
203
|
+
break;
|
|
204
|
+
}
|
|
42
205
|
case 'serve': {
|
|
43
206
|
const store = openStore();
|
|
44
207
|
const port = getPort();
|
|
@@ -134,8 +297,9 @@ async function main() {
|
|
|
134
297
|
case 'sync': {
|
|
135
298
|
const store = openStore();
|
|
136
299
|
const meshUrl = getMeshUrl();
|
|
300
|
+
const meshKey = getMeshKey();
|
|
137
301
|
console.log(`š Syncing with mesh at ${meshUrl}...`);
|
|
138
|
-
const result = await syncWithMesh(store, meshUrl);
|
|
302
|
+
const result = await syncWithMesh(store, meshUrl, meshKey);
|
|
139
303
|
console.log(` Pushed: ${result.pushed}`);
|
|
140
304
|
console.log(` Pulled: ${result.pulled}`);
|
|
141
305
|
console.log(` Deduped: ${result.deduped}`);
|
|
@@ -150,8 +314,9 @@ async function main() {
|
|
|
150
314
|
case 'contribute': {
|
|
151
315
|
const store = openStore();
|
|
152
316
|
const meshUrl = getMeshUrl();
|
|
317
|
+
const meshKey = getMeshKey();
|
|
153
318
|
console.log(`š¤ Contributing to mesh at ${meshUrl}...`);
|
|
154
|
-
const result = await contributeTo(store, meshUrl);
|
|
319
|
+
const result = await contributeTo(store, meshUrl, meshKey);
|
|
155
320
|
console.log(` Pushed: ${result.pushed}`);
|
|
156
321
|
console.log(` Deduped: ${result.deduped}`);
|
|
157
322
|
if (result.errors.length > 0) {
|
|
@@ -165,8 +330,9 @@ async function main() {
|
|
|
165
330
|
case 'learn': {
|
|
166
331
|
const store = openStore();
|
|
167
332
|
const meshUrl = getMeshUrl();
|
|
333
|
+
const meshKey = getMeshKey();
|
|
168
334
|
console.log(`š„ Learning from mesh at ${meshUrl}...`);
|
|
169
|
-
const result = await learnFrom(store, meshUrl);
|
|
335
|
+
const result = await learnFrom(store, meshUrl, meshKey);
|
|
170
336
|
console.log(` Pulled: ${result.pulled}`);
|
|
171
337
|
console.log(` Deduped: ${result.deduped}`);
|
|
172
338
|
if (result.errors.length > 0) {
|
|
@@ -190,28 +356,30 @@ async function main() {
|
|
|
190
356
|
break;
|
|
191
357
|
}
|
|
192
358
|
default:
|
|
193
|
-
console.log(`š§ Osmosis CLI v0.
|
|
359
|
+
console.log(`š§ Osmosis CLI v0.5.0 ā Collective intelligence for AI agents
|
|
360
|
+
|
|
361
|
+
Quick Start:
|
|
362
|
+
osmosis init Set up Osmosis (first time)
|
|
363
|
+
osmosis start Start daemon (watches agents, syncs to mesh)
|
|
364
|
+
osmosis status Check your knowledge base
|
|
194
365
|
|
|
195
|
-
|
|
196
|
-
osmosis
|
|
197
|
-
osmosis
|
|
198
|
-
osmosis
|
|
199
|
-
osmosis contribute [--mesh URL] [--db PATH] Push local atoms to mesh
|
|
200
|
-
osmosis learn [--mesh URL] [--db PATH] Pull atoms from mesh
|
|
366
|
+
Commands:
|
|
367
|
+
osmosis init [--mesh URL] Initialize config + seed knowledge
|
|
368
|
+
osmosis start [--port N] Start daemon (watcher + sync + API)
|
|
369
|
+
osmosis config [--key KEY] [--mesh URL] View/update config
|
|
201
370
|
osmosis status [--db PATH] Show atom count and top atoms
|
|
202
371
|
osmosis search <query> [--db PATH] Search atoms
|
|
203
|
-
osmosis
|
|
372
|
+
osmosis sync [--mesh URL] [--key KEY] Sync with mesh (push + pull)
|
|
373
|
+
osmosis contribute [--mesh URL] [--key KEY] Push local atoms to mesh
|
|
374
|
+
osmosis learn [--mesh URL] [--key KEY] Pull atoms from mesh
|
|
375
|
+
osmosis seed [--db PATH] Seed with starter knowledge
|
|
376
|
+
osmosis serve [--port N] [--db PATH] [--mesh URL] Start local API only
|
|
204
377
|
osmosis reset [--db PATH] Wipe all atoms
|
|
205
378
|
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
--port N API port (default: 7432)
|
|
209
|
-
--mesh URL Mesh server URL (default: https://mesh.osmosis.dev)
|
|
379
|
+
Config: ~/.osmosis/config.json
|
|
380
|
+
Database: ~/.osmosis/atoms.db
|
|
210
381
|
|
|
211
|
-
|
|
212
|
-
OSMOSIS_DB_PATH Database path override
|
|
213
|
-
OSMOSIS_PORT API port override
|
|
214
|
-
OSMOSIS_MESH_URL Mesh server URL override`);
|
|
382
|
+
https://github.com/turleydesigns/osmosis`);
|
|
215
383
|
if (command)
|
|
216
384
|
process.exit(1);
|
|
217
385
|
}
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/cli.ts
CHANGED
|
@@ -4,11 +4,11 @@ import { AtomStore, createServer, searchAtoms, getTopAtoms, seedAtoms } from '@o
|
|
|
4
4
|
import { createSyncServer, syncWithMesh, contributeTo, learnFrom, getAllPeers, startAutoSync, resolveSyncConfig } from '@osmosis-ai/sync';
|
|
5
5
|
import { homedir } from 'node:os';
|
|
6
6
|
import { join } from 'node:path';
|
|
7
|
-
import { mkdirSync } from 'node:fs';
|
|
7
|
+
import { mkdirSync, writeFileSync, readFileSync, existsSync } from 'node:fs';
|
|
8
8
|
|
|
9
9
|
const DEFAULT_DB_PATH = join(homedir(), '.osmosis', 'atoms.db');
|
|
10
10
|
const DEFAULT_PORT = 7432;
|
|
11
|
-
const DEFAULT_MESH_URL = 'https://mesh.
|
|
11
|
+
const DEFAULT_MESH_URL = 'https://osmosis-mesh-dev.fly.dev';
|
|
12
12
|
|
|
13
13
|
const args = process.argv.slice(2);
|
|
14
14
|
const command = args[0];
|
|
@@ -42,8 +42,180 @@ function openStore(): AtomStore {
|
|
|
42
42
|
return new AtomStore(dbPath);
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
+
function getConfigPath(): string {
|
|
46
|
+
return join(homedir(), '.osmosis', 'config.json');
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
function loadConfig(): Record<string, any> {
|
|
50
|
+
const configPath = getConfigPath();
|
|
51
|
+
if (existsSync(configPath)) {
|
|
52
|
+
try { return JSON.parse(readFileSync(configPath, 'utf-8')); } catch { return {}; }
|
|
53
|
+
}
|
|
54
|
+
return {};
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
function saveConfig(config: Record<string, any>): void {
|
|
58
|
+
const configPath = getConfigPath();
|
|
59
|
+
ensureDir(configPath);
|
|
60
|
+
writeFileSync(configPath, JSON.stringify(config, null, 2) + '\n', 'utf-8');
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
function getMeshKey(): string {
|
|
64
|
+
const idx = args.indexOf('--key');
|
|
65
|
+
if (idx !== -1 && args[idx + 1]) return args[idx + 1]!;
|
|
66
|
+
const config = loadConfig();
|
|
67
|
+
return process.env.MESH_WRITE_KEY ?? config.meshApiKey ?? '';
|
|
68
|
+
}
|
|
69
|
+
|
|
45
70
|
async function main(): Promise<void> {
|
|
46
71
|
switch (command) {
|
|
72
|
+
case 'init': {
|
|
73
|
+
const configPath = getConfigPath();
|
|
74
|
+
const osmosisDir = join(homedir(), '.osmosis');
|
|
75
|
+
mkdirSync(osmosisDir, { recursive: true });
|
|
76
|
+
|
|
77
|
+
const meshUrl = getMeshUrl();
|
|
78
|
+
console.log('š§ Initializing Osmosis...\n');
|
|
79
|
+
|
|
80
|
+
// Register with mesh and get an API key
|
|
81
|
+
console.log(` Mesh: ${meshUrl}`);
|
|
82
|
+
let apiKey = '';
|
|
83
|
+
try {
|
|
84
|
+
const res = await fetch(`${meshUrl}/mesh/register`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ agent: 'cli-init' }) });
|
|
85
|
+
if (res.ok) {
|
|
86
|
+
const body = await res.json() as any;
|
|
87
|
+
apiKey = body.key ?? '';
|
|
88
|
+
console.log(` API key: provisioned ā
`);
|
|
89
|
+
} else {
|
|
90
|
+
console.log(` API key: mesh doesn't support auto-registration yet`);
|
|
91
|
+
console.log(` ā Ask the mesh admin for a key, then: osmosis config --key <YOUR_KEY>`);
|
|
92
|
+
}
|
|
93
|
+
} catch {
|
|
94
|
+
console.log(` API key: could not reach mesh (offline mode is fine)`);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
// Save config
|
|
98
|
+
const config = {
|
|
99
|
+
meshUrl,
|
|
100
|
+
meshApiKey: apiKey,
|
|
101
|
+
dbPath: join(osmosisDir, 'atoms.db'),
|
|
102
|
+
openclawDir: join(homedir(), '.openclaw'),
|
|
103
|
+
apiPort: DEFAULT_PORT,
|
|
104
|
+
};
|
|
105
|
+
saveConfig(config);
|
|
106
|
+
console.log(` Config: ${configPath}`);
|
|
107
|
+
console.log(` DB: ${config.dbPath}`);
|
|
108
|
+
|
|
109
|
+
// Seed
|
|
110
|
+
const store = new AtomStore(config.dbPath);
|
|
111
|
+
seedAtoms(store);
|
|
112
|
+
const count = store.getAll().length;
|
|
113
|
+
store.close();
|
|
114
|
+
console.log(` Seeded: ${count} starter atoms`);
|
|
115
|
+
|
|
116
|
+
console.log(`\nā
Osmosis initialized! Next steps:`);
|
|
117
|
+
console.log(` osmosis start ā start the daemon (watches OpenClaw sessions)`);
|
|
118
|
+
console.log(` osmosis status ā check your knowledge base`);
|
|
119
|
+
console.log(` osmosis search ā search for tips`);
|
|
120
|
+
break;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
case 'config': {
|
|
124
|
+
const config = loadConfig();
|
|
125
|
+
const keyIdx = args.indexOf('--key');
|
|
126
|
+
const meshIdx = args.indexOf('--mesh');
|
|
127
|
+
|
|
128
|
+
if (keyIdx !== -1 && args[keyIdx + 1]) {
|
|
129
|
+
config.meshApiKey = args[keyIdx + 1];
|
|
130
|
+
saveConfig(config);
|
|
131
|
+
console.log('ā
Mesh API key saved');
|
|
132
|
+
} else if (meshIdx !== -1 && args[meshIdx + 1]) {
|
|
133
|
+
config.meshUrl = args[meshIdx + 1];
|
|
134
|
+
saveConfig(config);
|
|
135
|
+
console.log(`ā
Mesh URL set to ${config.meshUrl}`);
|
|
136
|
+
} else {
|
|
137
|
+
console.log('š§ Osmosis Config:');
|
|
138
|
+
for (const [k, v] of Object.entries(config)) {
|
|
139
|
+
const display = k === 'meshApiKey' && v ? `${String(v).slice(0, 8)}...` : v;
|
|
140
|
+
console.log(` ${k}: ${display}`);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
break;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
case 'start': {
|
|
147
|
+
const config = loadConfig();
|
|
148
|
+
const dbPath = config.dbPath ?? getDbPath();
|
|
149
|
+
const meshUrl = config.meshUrl ?? getMeshUrl();
|
|
150
|
+
const meshApiKey = config.meshApiKey ?? getMeshKey();
|
|
151
|
+
const openclawDir = config.openclawDir ?? join(homedir(), '.openclaw');
|
|
152
|
+
const port = config.apiPort ?? getPort();
|
|
153
|
+
|
|
154
|
+
ensureDir(dbPath);
|
|
155
|
+
const store = new AtomStore(dbPath);
|
|
156
|
+
|
|
157
|
+
// Import openclaw modules dynamically
|
|
158
|
+
let watcher: any, injector: any;
|
|
159
|
+
try {
|
|
160
|
+
const oc = await import('@osmosis-ai/openclaw');
|
|
161
|
+
watcher = new oc.TranscriptWatcher(store, {
|
|
162
|
+
openclawDir,
|
|
163
|
+
scanIntervalMs: 10_000,
|
|
164
|
+
maxAgeMs: 365 * 24 * 60 * 60 * 1000,
|
|
165
|
+
});
|
|
166
|
+
watcher.start();
|
|
167
|
+
|
|
168
|
+
injector = new oc.ContextInjector(store, {
|
|
169
|
+
workspaceDir: join(openclawDir, 'workspace'),
|
|
170
|
+
updateIntervalMs: 15 * 60 * 1000,
|
|
171
|
+
maxTips: 10,
|
|
172
|
+
});
|
|
173
|
+
injector.start();
|
|
174
|
+
} catch {
|
|
175
|
+
console.log(' @osmosis-ai/openclaw not found ā running without OpenClaw integration');
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
// Start local API
|
|
179
|
+
const { createSyncServer, startAutoSync, resolveSyncConfig } = await import('@osmosis-ai/sync');
|
|
180
|
+
const syncConfig = resolveSyncConfig({
|
|
181
|
+
meshUrl,
|
|
182
|
+
meshApiKey,
|
|
183
|
+
autoSync: !!meshUrl,
|
|
184
|
+
syncIntervalMs: 5 * 60 * 1000,
|
|
185
|
+
});
|
|
186
|
+
const server = createSyncServer(store, port, syncConfig);
|
|
187
|
+
const autoSync = startAutoSync(store, syncConfig);
|
|
188
|
+
|
|
189
|
+
console.log('š§ Osmosis daemon running');
|
|
190
|
+
console.log(` API: http://localhost:${port}`);
|
|
191
|
+
console.log(` Mesh: ${meshUrl}`);
|
|
192
|
+
console.log(` Auth: ${meshApiKey ? 'key configured' : 'no key'}`);
|
|
193
|
+
console.log(` OpenClaw: ${openclawDir}`);
|
|
194
|
+
console.log(` DB: ${dbPath}`);
|
|
195
|
+
console.log(` Press Ctrl+C to stop\n`);
|
|
196
|
+
|
|
197
|
+
// Periodic status
|
|
198
|
+
const statusTimer = setInterval(() => {
|
|
199
|
+
const all = store.getAll();
|
|
200
|
+
const watcherStats = watcher?.stats ?? { capturedCount: 0, filesWatched: 0 };
|
|
201
|
+
console.log(`š ${all.length} atoms | Captured: ${watcherStats.capturedCount} | Files: ${watcherStats.filesWatched}`);
|
|
202
|
+
}, 60_000);
|
|
203
|
+
|
|
204
|
+
const shutdown = () => {
|
|
205
|
+
console.log('\nš§ Shutting down...');
|
|
206
|
+
clearInterval(statusTimer);
|
|
207
|
+
watcher?.stop();
|
|
208
|
+
injector?.stop();
|
|
209
|
+
autoSync.stop();
|
|
210
|
+
server.close();
|
|
211
|
+
store.close();
|
|
212
|
+
process.exit(0);
|
|
213
|
+
};
|
|
214
|
+
process.on('SIGINT', shutdown);
|
|
215
|
+
process.on('SIGTERM', shutdown);
|
|
216
|
+
break;
|
|
217
|
+
}
|
|
218
|
+
|
|
47
219
|
case 'serve': {
|
|
48
220
|
const store = openStore();
|
|
49
221
|
const port = getPort();
|
|
@@ -147,8 +319,9 @@ async function main(): Promise<void> {
|
|
|
147
319
|
case 'sync': {
|
|
148
320
|
const store = openStore();
|
|
149
321
|
const meshUrl = getMeshUrl();
|
|
322
|
+
const meshKey = getMeshKey();
|
|
150
323
|
console.log(`š Syncing with mesh at ${meshUrl}...`);
|
|
151
|
-
const result = await syncWithMesh(store, meshUrl);
|
|
324
|
+
const result = await syncWithMesh(store, meshUrl, meshKey);
|
|
152
325
|
console.log(` Pushed: ${result.pushed}`);
|
|
153
326
|
console.log(` Pulled: ${result.pulled}`);
|
|
154
327
|
console.log(` Deduped: ${result.deduped}`);
|
|
@@ -163,8 +336,9 @@ async function main(): Promise<void> {
|
|
|
163
336
|
case 'contribute': {
|
|
164
337
|
const store = openStore();
|
|
165
338
|
const meshUrl = getMeshUrl();
|
|
339
|
+
const meshKey = getMeshKey();
|
|
166
340
|
console.log(`š¤ Contributing to mesh at ${meshUrl}...`);
|
|
167
|
-
const result = await contributeTo(store, meshUrl);
|
|
341
|
+
const result = await contributeTo(store, meshUrl, meshKey);
|
|
168
342
|
console.log(` Pushed: ${result.pushed}`);
|
|
169
343
|
console.log(` Deduped: ${result.deduped}`);
|
|
170
344
|
if (result.errors.length > 0) {
|
|
@@ -178,8 +352,9 @@ async function main(): Promise<void> {
|
|
|
178
352
|
case 'learn': {
|
|
179
353
|
const store = openStore();
|
|
180
354
|
const meshUrl = getMeshUrl();
|
|
355
|
+
const meshKey = getMeshKey();
|
|
181
356
|
console.log(`š„ Learning from mesh at ${meshUrl}...`);
|
|
182
|
-
const result = await learnFrom(store, meshUrl);
|
|
357
|
+
const result = await learnFrom(store, meshUrl, meshKey);
|
|
183
358
|
console.log(` Pulled: ${result.pulled}`);
|
|
184
359
|
console.log(` Deduped: ${result.deduped}`);
|
|
185
360
|
if (result.errors.length > 0) {
|
|
@@ -203,28 +378,30 @@ async function main(): Promise<void> {
|
|
|
203
378
|
}
|
|
204
379
|
|
|
205
380
|
default:
|
|
206
|
-
console.log(`š§ Osmosis CLI v0.
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
osmosis
|
|
210
|
-
osmosis
|
|
211
|
-
osmosis
|
|
212
|
-
|
|
213
|
-
|
|
381
|
+
console.log(`š§ Osmosis CLI v0.5.0 ā Collective intelligence for AI agents
|
|
382
|
+
|
|
383
|
+
Quick Start:
|
|
384
|
+
osmosis init Set up Osmosis (first time)
|
|
385
|
+
osmosis start Start daemon (watches agents, syncs to mesh)
|
|
386
|
+
osmosis status Check your knowledge base
|
|
387
|
+
|
|
388
|
+
Commands:
|
|
389
|
+
osmosis init [--mesh URL] Initialize config + seed knowledge
|
|
390
|
+
osmosis start [--port N] Start daemon (watcher + sync + API)
|
|
391
|
+
osmosis config [--key KEY] [--mesh URL] View/update config
|
|
214
392
|
osmosis status [--db PATH] Show atom count and top atoms
|
|
215
393
|
osmosis search <query> [--db PATH] Search atoms
|
|
216
|
-
osmosis
|
|
394
|
+
osmosis sync [--mesh URL] [--key KEY] Sync with mesh (push + pull)
|
|
395
|
+
osmosis contribute [--mesh URL] [--key KEY] Push local atoms to mesh
|
|
396
|
+
osmosis learn [--mesh URL] [--key KEY] Pull atoms from mesh
|
|
397
|
+
osmosis seed [--db PATH] Seed with starter knowledge
|
|
398
|
+
osmosis serve [--port N] [--db PATH] [--mesh URL] Start local API only
|
|
217
399
|
osmosis reset [--db PATH] Wipe all atoms
|
|
218
400
|
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
--port N API port (default: 7432)
|
|
222
|
-
--mesh URL Mesh server URL (default: https://mesh.osmosis.dev)
|
|
401
|
+
Config: ~/.osmosis/config.json
|
|
402
|
+
Database: ~/.osmosis/atoms.db
|
|
223
403
|
|
|
224
|
-
|
|
225
|
-
OSMOSIS_DB_PATH Database path override
|
|
226
|
-
OSMOSIS_PORT API port override
|
|
227
|
-
OSMOSIS_MESH_URL Mesh server URL override`);
|
|
404
|
+
https://github.com/turleydesigns/osmosis`);
|
|
228
405
|
if (command) process.exit(1);
|
|
229
406
|
}
|
|
230
407
|
}
|