memoryblock 0.1.4 → 0.1.5
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/README.md +73 -115
- package/bin/mblk.js +68 -71
- package/dist/commands/create.d.ts +2 -0
- package/dist/commands/create.d.ts.map +1 -0
- package/dist/commands/create.js +48 -0
- package/dist/commands/create.js.map +1 -0
- package/dist/commands/delete.d.ts +5 -0
- package/dist/commands/delete.d.ts.map +1 -0
- package/dist/commands/delete.js +147 -0
- package/dist/commands/delete.js.map +1 -0
- package/dist/commands/init.d.ts +9 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +209 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/permissions.d.ts +13 -0
- package/dist/commands/permissions.d.ts.map +1 -0
- package/dist/commands/permissions.js +60 -0
- package/dist/commands/permissions.js.map +1 -0
- package/dist/commands/plugin-settings.d.ts +6 -0
- package/dist/commands/plugin-settings.d.ts.map +1 -0
- package/dist/commands/plugin-settings.js +118 -0
- package/dist/commands/plugin-settings.js.map +1 -0
- package/dist/commands/plugins.d.ts +3 -0
- package/dist/commands/plugins.d.ts.map +1 -0
- package/dist/commands/plugins.js +83 -0
- package/dist/commands/plugins.js.map +1 -0
- package/dist/commands/reset.d.ts +8 -0
- package/dist/commands/reset.d.ts.map +1 -0
- package/dist/commands/reset.js +96 -0
- package/dist/commands/reset.js.map +1 -0
- package/dist/commands/server.d.ts +25 -0
- package/dist/commands/server.d.ts.map +1 -0
- package/dist/commands/server.js +295 -0
- package/dist/commands/server.js.map +1 -0
- package/dist/commands/service.d.ts +18 -0
- package/dist/commands/service.d.ts.map +1 -0
- package/dist/commands/service.js +309 -0
- package/dist/commands/service.js.map +1 -0
- package/dist/commands/start.d.ts +11 -0
- package/dist/commands/start.d.ts.map +1 -0
- package/dist/commands/start.js +794 -0
- package/dist/commands/start.js.map +1 -0
- package/dist/commands/status.d.ts +2 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +78 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/stop.d.ts +9 -0
- package/dist/commands/stop.d.ts.map +1 -0
- package/dist/commands/stop.js +83 -0
- package/dist/commands/stop.js.map +1 -0
- package/dist/commands/web.d.ts +5 -0
- package/dist/commands/web.d.ts.map +1 -0
- package/dist/commands/web.js +63 -0
- package/dist/commands/web.js.map +1 -0
- package/dist/commands.d.ts +7 -0
- package/dist/commands.d.ts.map +1 -0
- package/dist/commands.js +7 -0
- package/dist/commands.js.map +1 -0
- package/dist/constants.d.ts +41 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +81 -0
- package/dist/constants.js.map +1 -0
- package/dist/entry.d.ts +9 -0
- package/dist/entry.d.ts.map +1 -0
- package/dist/entry.js +345 -0
- package/dist/entry.js.map +1 -0
- package/package.json +32 -11
- package/dist/engine/agent.d.ts +0 -15
- package/dist/engine/agent.d.ts.map +0 -1
- package/dist/engine/agent.js +0 -19
- package/dist/engine/agent.js.map +0 -1
- package/dist/engine/conversation-log.d.ts +0 -35
- package/dist/engine/conversation-log.d.ts.map +0 -1
- package/dist/engine/conversation-log.js +0 -83
- package/dist/engine/conversation-log.js.map +0 -1
- package/dist/engine/cost-tracker.d.ts +0 -52
- package/dist/engine/cost-tracker.d.ts.map +0 -1
- package/dist/engine/cost-tracker.js +0 -110
- package/dist/engine/cost-tracker.js.map +0 -1
- package/dist/engine/gatekeeper.d.ts +0 -20
- package/dist/engine/gatekeeper.d.ts.map +0 -1
- package/dist/engine/gatekeeper.js +0 -43
- package/dist/engine/gatekeeper.js.map +0 -1
- package/dist/engine/memory.d.ts +0 -28
- package/dist/engine/memory.d.ts.map +0 -1
- package/dist/engine/memory.js +0 -69
- package/dist/engine/memory.js.map +0 -1
- package/dist/engine/monitor.d.ts +0 -81
- package/dist/engine/monitor.d.ts.map +0 -1
- package/dist/engine/monitor.js +0 -610
- package/dist/engine/monitor.js.map +0 -1
- package/dist/engine/prompts.d.ts +0 -31
- package/dist/engine/prompts.d.ts.map +0 -1
- package/dist/engine/prompts.js +0 -93
- package/dist/engine/prompts.js.map +0 -1
- package/dist/index.d.ts +0 -10
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -14
- package/dist/index.js.map +0 -1
- package/dist/utils/config.d.ts +0 -24
- package/dist/utils/config.d.ts.map +0 -1
- package/dist/utils/config.js +0 -86
- package/dist/utils/config.js.map +0 -1
- package/dist/utils/fs.d.ts +0 -18
- package/dist/utils/fs.d.ts.map +0 -1
- package/dist/utils/fs.js +0 -65
- package/dist/utils/fs.js.map +0 -1
- package/dist/utils/logger.d.ts +0 -12
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/logger.js +0 -40
- package/dist/utils/logger.js.map +0 -1
package/dist/entry.js
ADDED
|
@@ -0,0 +1,345 @@
|
|
|
1
|
+
#!/usr/bin/env bun
|
|
2
|
+
/**
|
|
3
|
+
* memoryblock CLI — Main Entry Point
|
|
4
|
+
*
|
|
5
|
+
* This is the CLI implementation that runs under Bun.
|
|
6
|
+
* Loaded by bin/mblk.js after Bun bootstrapping.
|
|
7
|
+
*/
|
|
8
|
+
import { Command } from 'commander';
|
|
9
|
+
import { log } from '@memoryblock/core';
|
|
10
|
+
import { getVersion, DEFAULT_PORT } from './constants.js';
|
|
11
|
+
import { initCommand } from './commands/init.js';
|
|
12
|
+
import { createCommand } from './commands/create.js';
|
|
13
|
+
import { startCommand } from './commands/start.js';
|
|
14
|
+
import { stopCommand } from './commands/stop.js';
|
|
15
|
+
import { statusCommand } from './commands/status.js';
|
|
16
|
+
import { resetCommand } from './commands/reset.js';
|
|
17
|
+
import { serverStartCommand, serverStopCommand, serverStatusCommand, serverTokenCommand, shutdownCommand, restartCommand, } from './commands/server.js';
|
|
18
|
+
import { addCommand, removeCommand } from './commands/plugins.js';
|
|
19
|
+
import { deleteCommand, restoreCommand } from './commands/delete.js';
|
|
20
|
+
import { permissionsCommand } from './commands/permissions.js';
|
|
21
|
+
import { pluginSettingsCommand } from './commands/plugin-settings.js';
|
|
22
|
+
import { serviceInstallCommand, serviceUninstallCommand, serviceStatusCommand } from './commands/service.js';
|
|
23
|
+
(async () => {
|
|
24
|
+
const version = await getVersion();
|
|
25
|
+
const program = new Command();
|
|
26
|
+
program
|
|
27
|
+
.name('mblk')
|
|
28
|
+
.description('Deploy isolated, multi-agent AI assistants with extreme resource efficiency.')
|
|
29
|
+
.version(version)
|
|
30
|
+
.exitOverride(() => process.exit(0))
|
|
31
|
+
.configureOutput({
|
|
32
|
+
writeOut: (str) => process.stdout.write(str),
|
|
33
|
+
writeErr: (str) => process.stdout.write(str),
|
|
34
|
+
});
|
|
35
|
+
program
|
|
36
|
+
.command('init')
|
|
37
|
+
.description('Interactive setup — configure credentials, verify connections, create your first block.')
|
|
38
|
+
.option('-y, --yes', 'Non-interactive mode: create defaults without prompts')
|
|
39
|
+
.action(async (opts) => {
|
|
40
|
+
try {
|
|
41
|
+
await initCommand({ nonInteractive: opts.yes });
|
|
42
|
+
}
|
|
43
|
+
catch (err) {
|
|
44
|
+
log.error(err.message);
|
|
45
|
+
process.exit(0);
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
program
|
|
49
|
+
.command('create <name>')
|
|
50
|
+
.description('Create a new block (isolated AI workspace).')
|
|
51
|
+
.action(async (name) => {
|
|
52
|
+
try {
|
|
53
|
+
await createCommand(name);
|
|
54
|
+
}
|
|
55
|
+
catch (err) {
|
|
56
|
+
log.error(err.message);
|
|
57
|
+
process.exit(0);
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
program
|
|
61
|
+
.command('start [block]')
|
|
62
|
+
.description('Start the monitor loop for a block (or all blocks).')
|
|
63
|
+
.option('-d, --daemon', 'Run the monitor in the background')
|
|
64
|
+
.option('-c, --channel <channel>', 'Specify override channel (e.g. web, cli)')
|
|
65
|
+
.action(async (block, opts) => {
|
|
66
|
+
try {
|
|
67
|
+
await startCommand(block, opts);
|
|
68
|
+
}
|
|
69
|
+
catch (err) {
|
|
70
|
+
const msg = err.message;
|
|
71
|
+
// If not initialized, auto-route to init and then retry
|
|
72
|
+
if (msg.includes('not initialized') || msg.includes('mblk init')) {
|
|
73
|
+
log.warn('Workspace not initialized. Running setup first...\n');
|
|
74
|
+
try {
|
|
75
|
+
await initCommand();
|
|
76
|
+
// Retry start after init completes
|
|
77
|
+
await startCommand(block, opts);
|
|
78
|
+
}
|
|
79
|
+
catch (initErr) {
|
|
80
|
+
log.error(initErr.message);
|
|
81
|
+
process.exit(0);
|
|
82
|
+
}
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
log.error(msg);
|
|
86
|
+
process.exit(0);
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
program
|
|
90
|
+
.command('stop [block]')
|
|
91
|
+
.description('Stop a running block monitor (or all blocks).')
|
|
92
|
+
.action(async (block) => {
|
|
93
|
+
try {
|
|
94
|
+
await stopCommand(block);
|
|
95
|
+
}
|
|
96
|
+
catch (err) {
|
|
97
|
+
log.error(err.message);
|
|
98
|
+
process.exit(0);
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
program
|
|
102
|
+
.command('status')
|
|
103
|
+
.description('Show the status of all blocks.')
|
|
104
|
+
.action(async () => {
|
|
105
|
+
try {
|
|
106
|
+
await statusCommand();
|
|
107
|
+
}
|
|
108
|
+
catch (err) {
|
|
109
|
+
log.error(err.message);
|
|
110
|
+
process.exit(0);
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
program
|
|
114
|
+
.command('reset <block>')
|
|
115
|
+
.description('Reset a block state (memory, pulse, costs). Use --hard to wipe logs.')
|
|
116
|
+
.option('--hard', 'Wipe logs directory as well')
|
|
117
|
+
.action(async (block, opts) => {
|
|
118
|
+
try {
|
|
119
|
+
await resetCommand(block, opts);
|
|
120
|
+
}
|
|
121
|
+
catch (err) {
|
|
122
|
+
log.error(err.message);
|
|
123
|
+
process.exit(0);
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
program
|
|
127
|
+
.command('delete <block>')
|
|
128
|
+
.description('Archive a block to prevent data loss. Use --hard to permanently delete.')
|
|
129
|
+
.option('--hard', 'Permanently wipe the block from disk')
|
|
130
|
+
.action(async (block, opts) => {
|
|
131
|
+
try {
|
|
132
|
+
await deleteCommand(block, opts);
|
|
133
|
+
}
|
|
134
|
+
catch (err) {
|
|
135
|
+
log.error(err.message);
|
|
136
|
+
process.exit(0);
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
program
|
|
140
|
+
.command('restore <name>')
|
|
141
|
+
.description('Restore an archived block by name.')
|
|
142
|
+
.action(async (archive) => {
|
|
143
|
+
try {
|
|
144
|
+
await restoreCommand(archive);
|
|
145
|
+
}
|
|
146
|
+
catch (err) {
|
|
147
|
+
log.error(err.message);
|
|
148
|
+
process.exit(0);
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
program
|
|
152
|
+
.command('permissions <block>')
|
|
153
|
+
.description('View or update block permissions (CLI-only).')
|
|
154
|
+
.option('-s, --scope <level>', 'Set scope: block, workspace, or system')
|
|
155
|
+
.option('--allow-shell', 'Allow shell command execution')
|
|
156
|
+
.option('--deny-shell', 'Deny shell command execution')
|
|
157
|
+
.option('--allow-network', 'Allow network/fetch access')
|
|
158
|
+
.option('--deny-network', 'Deny network/fetch access')
|
|
159
|
+
.option('--max-timeout <seconds>', 'Max command timeout in seconds')
|
|
160
|
+
.action(async (block, opts) => {
|
|
161
|
+
try {
|
|
162
|
+
await permissionsCommand(block, opts);
|
|
163
|
+
}
|
|
164
|
+
catch (err) {
|
|
165
|
+
log.error(err.message);
|
|
166
|
+
process.exit(0);
|
|
167
|
+
}
|
|
168
|
+
});
|
|
169
|
+
program
|
|
170
|
+
.command('settings [plugin]')
|
|
171
|
+
.description('View or edit plugin settings.')
|
|
172
|
+
.action(async (pluginId) => {
|
|
173
|
+
try {
|
|
174
|
+
await pluginSettingsCommand(pluginId);
|
|
175
|
+
}
|
|
176
|
+
catch (err) {
|
|
177
|
+
log.error(err.message);
|
|
178
|
+
process.exit(0);
|
|
179
|
+
}
|
|
180
|
+
});
|
|
181
|
+
// ===== Server Subcommand Group =====
|
|
182
|
+
const server = program
|
|
183
|
+
.command('server')
|
|
184
|
+
.description('Manage the web/API server.');
|
|
185
|
+
server
|
|
186
|
+
.command('start')
|
|
187
|
+
.description('Start the web UI and API server.')
|
|
188
|
+
.option('-p, --port <port>', 'Port to listen on', DEFAULT_PORT)
|
|
189
|
+
.option('--new-token', 'Generate a new auth token')
|
|
190
|
+
.option('-d, --daemon', 'Run the server in the background')
|
|
191
|
+
.action(async (opts) => {
|
|
192
|
+
try {
|
|
193
|
+
await serverStartCommand(opts);
|
|
194
|
+
}
|
|
195
|
+
catch (err) {
|
|
196
|
+
log.error(err.message);
|
|
197
|
+
process.exit(0);
|
|
198
|
+
}
|
|
199
|
+
});
|
|
200
|
+
server
|
|
201
|
+
.command('stop')
|
|
202
|
+
.description('Stop the running server.')
|
|
203
|
+
.action(async () => {
|
|
204
|
+
try {
|
|
205
|
+
await serverStopCommand();
|
|
206
|
+
}
|
|
207
|
+
catch (err) {
|
|
208
|
+
log.error(err.message);
|
|
209
|
+
process.exit(0);
|
|
210
|
+
}
|
|
211
|
+
});
|
|
212
|
+
server
|
|
213
|
+
.command('status')
|
|
214
|
+
.description('Show server status (PID, port, running state).')
|
|
215
|
+
.action(async () => {
|
|
216
|
+
try {
|
|
217
|
+
await serverStatusCommand();
|
|
218
|
+
}
|
|
219
|
+
catch (err) {
|
|
220
|
+
log.error(err.message);
|
|
221
|
+
process.exit(0);
|
|
222
|
+
}
|
|
223
|
+
});
|
|
224
|
+
server
|
|
225
|
+
.command('token')
|
|
226
|
+
.description('View the current API token, or generate a new one.')
|
|
227
|
+
.option('--new-token', 'Generate and set a new API token')
|
|
228
|
+
.action(async (opts) => {
|
|
229
|
+
try {
|
|
230
|
+
await serverTokenCommand(opts);
|
|
231
|
+
}
|
|
232
|
+
catch (err) {
|
|
233
|
+
log.error(err.message);
|
|
234
|
+
process.exit(0);
|
|
235
|
+
}
|
|
236
|
+
});
|
|
237
|
+
// ===== Service Subcommand Group =====
|
|
238
|
+
const service = program
|
|
239
|
+
.command('service')
|
|
240
|
+
.description('Manage OS-level auto-start (launchd/systemd).');
|
|
241
|
+
service
|
|
242
|
+
.command('install')
|
|
243
|
+
.description('Register memoryblock to start on boot/login.')
|
|
244
|
+
.action(async () => {
|
|
245
|
+
try {
|
|
246
|
+
await serviceInstallCommand();
|
|
247
|
+
}
|
|
248
|
+
catch (err) {
|
|
249
|
+
log.error(err.message);
|
|
250
|
+
process.exit(0);
|
|
251
|
+
}
|
|
252
|
+
});
|
|
253
|
+
service
|
|
254
|
+
.command('uninstall')
|
|
255
|
+
.description('Remove memoryblock from system auto-start.')
|
|
256
|
+
.action(async () => {
|
|
257
|
+
try {
|
|
258
|
+
await serviceUninstallCommand();
|
|
259
|
+
}
|
|
260
|
+
catch (err) {
|
|
261
|
+
log.error(err.message);
|
|
262
|
+
process.exit(0);
|
|
263
|
+
}
|
|
264
|
+
});
|
|
265
|
+
service
|
|
266
|
+
.command('status')
|
|
267
|
+
.description('Check if the auto-start service is installed.')
|
|
268
|
+
.action(async () => {
|
|
269
|
+
try {
|
|
270
|
+
await serviceStatusCommand();
|
|
271
|
+
}
|
|
272
|
+
catch (err) {
|
|
273
|
+
log.error(err.message);
|
|
274
|
+
process.exit(0);
|
|
275
|
+
}
|
|
276
|
+
});
|
|
277
|
+
// ===== Lifecycle Commands =====
|
|
278
|
+
program
|
|
279
|
+
.command('shutdown')
|
|
280
|
+
.description('Stop all blocks and the server.')
|
|
281
|
+
.action(async () => {
|
|
282
|
+
try {
|
|
283
|
+
await shutdownCommand();
|
|
284
|
+
}
|
|
285
|
+
catch (err) {
|
|
286
|
+
log.error(err.message);
|
|
287
|
+
process.exit(0);
|
|
288
|
+
}
|
|
289
|
+
});
|
|
290
|
+
program
|
|
291
|
+
.command('restart')
|
|
292
|
+
.description('Restart: stop everything, then start server as daemon.')
|
|
293
|
+
.option('-p, --port <port>', 'Port to listen on', DEFAULT_PORT)
|
|
294
|
+
.action(async (opts) => {
|
|
295
|
+
try {
|
|
296
|
+
await restartCommand(opts);
|
|
297
|
+
}
|
|
298
|
+
catch (err) {
|
|
299
|
+
log.error(err.message);
|
|
300
|
+
process.exit(0);
|
|
301
|
+
}
|
|
302
|
+
});
|
|
303
|
+
// Backward-compatible alias: `mblk web` = `mblk server start`
|
|
304
|
+
program
|
|
305
|
+
.command('web')
|
|
306
|
+
.description('Alias for `mblk server start`.')
|
|
307
|
+
.option('-p, --port <port>', 'Port to listen on', DEFAULT_PORT)
|
|
308
|
+
.option('--new-token', 'Generate a new auth token')
|
|
309
|
+
.option('-d, --daemon', 'Run the server in the background')
|
|
310
|
+
.action(async (opts) => {
|
|
311
|
+
try {
|
|
312
|
+
await serverStartCommand(opts);
|
|
313
|
+
}
|
|
314
|
+
catch (err) {
|
|
315
|
+
log.error(err.message);
|
|
316
|
+
process.exit(0);
|
|
317
|
+
}
|
|
318
|
+
});
|
|
319
|
+
program
|
|
320
|
+
.command('add [plugin]')
|
|
321
|
+
.description('Install a plugin (run without args to list available plugins).')
|
|
322
|
+
.action(async (plugin) => {
|
|
323
|
+
try {
|
|
324
|
+
await addCommand(plugin);
|
|
325
|
+
}
|
|
326
|
+
catch (err) {
|
|
327
|
+
log.error(err.message);
|
|
328
|
+
process.exit(0);
|
|
329
|
+
}
|
|
330
|
+
});
|
|
331
|
+
program
|
|
332
|
+
.command('remove <plugin>')
|
|
333
|
+
.description('Remove an installed plugin.')
|
|
334
|
+
.action(async (plugin) => {
|
|
335
|
+
try {
|
|
336
|
+
await removeCommand(plugin);
|
|
337
|
+
}
|
|
338
|
+
catch (err) {
|
|
339
|
+
log.error(err.message);
|
|
340
|
+
process.exit(0);
|
|
341
|
+
}
|
|
342
|
+
});
|
|
343
|
+
program.parse();
|
|
344
|
+
})();
|
|
345
|
+
//# sourceMappingURL=entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entry.js","sourceRoot":"","sources":["../src/entry.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "memoryblock",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.5",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Deploy isolated, multi-agent AI assistants on your local machine with extreme resource efficiency.",
|
|
6
|
+
"main": "./dist/entry.js",
|
|
7
|
+
"types": "./dist/entry.d.ts",
|
|
6
8
|
"files": [
|
|
7
9
|
"dist/",
|
|
8
10
|
"bin/"
|
|
@@ -12,18 +14,40 @@
|
|
|
12
14
|
},
|
|
13
15
|
"exports": {
|
|
14
16
|
".": {
|
|
15
|
-
"types": "./dist/
|
|
16
|
-
"import": "./dist/
|
|
17
|
+
"types": "./dist/entry.d.ts",
|
|
18
|
+
"import": "./dist/entry.js"
|
|
19
|
+
},
|
|
20
|
+
"./commands": {
|
|
21
|
+
"types": "./dist/commands.d.ts",
|
|
22
|
+
"import": "./dist/commands.js"
|
|
17
23
|
}
|
|
18
24
|
},
|
|
19
25
|
"scripts": {
|
|
20
26
|
"build": "tsc -p tsconfig.json",
|
|
21
|
-
"
|
|
27
|
+
"prepublishOnly": "tsc -p tsconfig.json"
|
|
22
28
|
},
|
|
23
29
|
"dependencies": {
|
|
24
|
-
"@memoryblock/
|
|
25
|
-
"@memoryblock/types": "^0.1.
|
|
26
|
-
"
|
|
30
|
+
"@memoryblock/core": "^0.1.5",
|
|
31
|
+
"@memoryblock/types": "^0.1.5",
|
|
32
|
+
"@memoryblock/locale": "^0.1.5",
|
|
33
|
+
"@clack/prompts": "^1.1.0",
|
|
34
|
+
"chalk": "^5.4.0",
|
|
35
|
+
"commander": "^13.0.0"
|
|
36
|
+
},
|
|
37
|
+
"optionalDependencies": {
|
|
38
|
+
"@memoryblock/adapters": "^0.1.5",
|
|
39
|
+
"@memoryblock/api": "^0.1.5",
|
|
40
|
+
"@memoryblock/channels": "^0.1.5",
|
|
41
|
+
"@memoryblock/daemon": "^0.1.5",
|
|
42
|
+
"@memoryblock/tools": "^0.1.5",
|
|
43
|
+
"@memoryblock/web": "^0.1.5",
|
|
44
|
+
"@memoryblock/plugin-agents": "^0.1.5",
|
|
45
|
+
"@memoryblock/plugin-installer": "^0.1.5",
|
|
46
|
+
"@memoryblock/plugin-web-search": "^0.1.5",
|
|
47
|
+
"@memoryblock/plugin-fetch-webpage": "^0.1.5"
|
|
48
|
+
},
|
|
49
|
+
"devDependencies": {
|
|
50
|
+
"@types/bun": "^1.3.11"
|
|
27
51
|
},
|
|
28
52
|
"engines": {
|
|
29
53
|
"node": ">=18.0.0"
|
|
@@ -38,6 +62,7 @@
|
|
|
38
62
|
"multi-agent",
|
|
39
63
|
"agentic-framework",
|
|
40
64
|
"core",
|
|
65
|
+
"cli",
|
|
41
66
|
"framework",
|
|
42
67
|
"interface",
|
|
43
68
|
"channels",
|
|
@@ -62,10 +87,6 @@
|
|
|
62
87
|
"type": "git",
|
|
63
88
|
"url": "git+https://github.com/memoryblock-io/memoryblock.git"
|
|
64
89
|
},
|
|
65
|
-
"bugs": {
|
|
66
|
-
"url": "https://github.com/memoryblock-io/memoryblock/issues"
|
|
67
|
-
},
|
|
68
|
-
"homepage": "https://memoryblock.io",
|
|
69
90
|
"funding": "https://github.com/sponsors/mgks",
|
|
70
91
|
"license": "MIT"
|
|
71
92
|
}
|
package/dist/engine/agent.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Agent: Ephemeral worker spawned by the Monitor.
|
|
3
|
-
* Lives in blocks/<name>/agents/<agent-id>/
|
|
4
|
-
* Has its own memory and tool scope.
|
|
5
|
-
*
|
|
6
|
-
* MVP: Placeholder — Monitor can function without agents.
|
|
7
|
-
* Full agent spawning will be implemented post-MVP.
|
|
8
|
-
*/
|
|
9
|
-
export declare class Agent {
|
|
10
|
-
readonly id: string;
|
|
11
|
-
readonly role: string;
|
|
12
|
-
readonly agentPath: string;
|
|
13
|
-
constructor(id: string, role: string, agentPath: string);
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=agent.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/engine/agent.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,qBAAa,KAAK;IACd,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;gBAEf,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAK1D"}
|
package/dist/engine/agent.js
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Agent: Ephemeral worker spawned by the Monitor.
|
|
3
|
-
* Lives in blocks/<name>/agents/<agent-id>/
|
|
4
|
-
* Has its own memory and tool scope.
|
|
5
|
-
*
|
|
6
|
-
* MVP: Placeholder — Monitor can function without agents.
|
|
7
|
-
* Full agent spawning will be implemented post-MVP.
|
|
8
|
-
*/
|
|
9
|
-
export class Agent {
|
|
10
|
-
id;
|
|
11
|
-
role;
|
|
12
|
-
agentPath;
|
|
13
|
-
constructor(id, role, agentPath) {
|
|
14
|
-
this.id = id;
|
|
15
|
-
this.role = role;
|
|
16
|
-
this.agentPath = agentPath;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=agent.js.map
|
package/dist/engine/agent.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/engine/agent.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,OAAO,KAAK;IACL,EAAE,CAAS;IACX,IAAI,CAAS;IACb,SAAS,CAAS;IAE3B,YAAY,EAAU,EAAE,IAAY,EAAE,SAAiB;QACnD,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;CACJ"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Conversation logger — writes all interactions to timestamped .txt files
|
|
3
|
-
* in the block's logs/ directory.
|
|
4
|
-
*
|
|
5
|
-
* Log format:
|
|
6
|
-
* ---
|
|
7
|
-
* [2025-03-12 00:09:51] [CHANNEL:telegram] [FROM:user] [CHAT:5315436002]
|
|
8
|
-
* Hello, how are you?
|
|
9
|
-
*
|
|
10
|
-
* [2025-03-12 00:09:54] [CHANNEL:telegram] [FROM:monitor:Sam] [EMOJI:🌟]
|
|
11
|
-
* I'm doing well! How can I help you today?
|
|
12
|
-
* ---
|
|
13
|
-
*/
|
|
14
|
-
export declare class ConversationLogger {
|
|
15
|
-
private logDir;
|
|
16
|
-
private logFile;
|
|
17
|
-
private buffer;
|
|
18
|
-
private flushTimer;
|
|
19
|
-
constructor(blockPath: string);
|
|
20
|
-
init(blockName: string, monitorName: string, channelType: string): Promise<void>;
|
|
21
|
-
logUser(content: string, meta: {
|
|
22
|
-
channel: string;
|
|
23
|
-
chatId?: string;
|
|
24
|
-
}): void;
|
|
25
|
-
logMonitor(content: string, meta: {
|
|
26
|
-
channel: string;
|
|
27
|
-
monitorName: string;
|
|
28
|
-
emoji?: string;
|
|
29
|
-
}): void;
|
|
30
|
-
logSystem(message: string): void;
|
|
31
|
-
close(): Promise<void>;
|
|
32
|
-
private scheduleFlush;
|
|
33
|
-
private flush;
|
|
34
|
-
}
|
|
35
|
-
//# sourceMappingURL=conversation-log.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-log.d.ts","sourceRoot":"","sources":["../../src/engine/conversation-log.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;GAYG;AACH,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,UAAU,CAA8C;gBAEpD,SAAS,EAAE,MAAM;IAMvB,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBtF,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAQ1E,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAQjG,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAO1B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAO5B,OAAO,CAAC,aAAa;YAKP,KAAK;CAMtB"}
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { promises as fsp } from 'node:fs';
|
|
2
|
-
import { join } from 'node:path';
|
|
3
|
-
/**
|
|
4
|
-
* Conversation logger — writes all interactions to timestamped .txt files
|
|
5
|
-
* in the block's logs/ directory.
|
|
6
|
-
*
|
|
7
|
-
* Log format:
|
|
8
|
-
* ---
|
|
9
|
-
* [2025-03-12 00:09:51] [CHANNEL:telegram] [FROM:user] [CHAT:5315436002]
|
|
10
|
-
* Hello, how are you?
|
|
11
|
-
*
|
|
12
|
-
* [2025-03-12 00:09:54] [CHANNEL:telegram] [FROM:monitor:Sam] [EMOJI:🌟]
|
|
13
|
-
* I'm doing well! How can I help you today?
|
|
14
|
-
* ---
|
|
15
|
-
*/
|
|
16
|
-
export class ConversationLogger {
|
|
17
|
-
logDir;
|
|
18
|
-
logFile;
|
|
19
|
-
buffer = [];
|
|
20
|
-
flushTimer = null;
|
|
21
|
-
constructor(blockPath) {
|
|
22
|
-
this.logDir = join(blockPath, 'logs');
|
|
23
|
-
// Temporary filename until init() provides block name and channel
|
|
24
|
-
this.logFile = join(this.logDir, `session-${Date.now()}.txt`);
|
|
25
|
-
}
|
|
26
|
-
async init(blockName, monitorName, channelType) {
|
|
27
|
-
await fsp.mkdir(this.logDir, { recursive: true });
|
|
28
|
-
// Build filename: {blockName}-{channelType}-{timestamp}.txt
|
|
29
|
-
const now = new Date();
|
|
30
|
-
const stamp = now.toISOString().replace('T', '_').replace(/:/g, '-').slice(0, 16);
|
|
31
|
-
this.logFile = join(this.logDir, `${blockName}-${channelType}-${stamp}.txt`);
|
|
32
|
-
const header = [
|
|
33
|
-
'═'.repeat(60),
|
|
34
|
-
`SESSION START: ${new Date().toISOString()}`,
|
|
35
|
-
`Block: ${blockName}`,
|
|
36
|
-
`Monitor: ${monitorName}`,
|
|
37
|
-
`Channel: ${channelType}`,
|
|
38
|
-
'═'.repeat(60),
|
|
39
|
-
'',
|
|
40
|
-
].join('\n');
|
|
41
|
-
await fsp.writeFile(this.logFile, header, 'utf-8');
|
|
42
|
-
}
|
|
43
|
-
logUser(content, meta) {
|
|
44
|
-
const ts = new Date().toISOString().replace('T', ' ').slice(0, 19);
|
|
45
|
-
const chatPart = meta.chatId ? ` [CHAT:${meta.chatId}]` : '';
|
|
46
|
-
const entry = `[${ts}] [CHANNEL:${meta.channel}] [FROM:user]${chatPart}\n${content}\n\n`;
|
|
47
|
-
this.buffer.push(entry);
|
|
48
|
-
this.scheduleFlush();
|
|
49
|
-
}
|
|
50
|
-
logMonitor(content, meta) {
|
|
51
|
-
const ts = new Date().toISOString().replace('T', ' ').slice(0, 19);
|
|
52
|
-
const emojiPart = meta.emoji ? ` [EMOJI:${meta.emoji}]` : '';
|
|
53
|
-
const entry = `[${ts}] [CHANNEL:${meta.channel}] [FROM:monitor:${meta.monitorName}]${emojiPart}\n${content}\n\n`;
|
|
54
|
-
this.buffer.push(entry);
|
|
55
|
-
this.scheduleFlush();
|
|
56
|
-
}
|
|
57
|
-
logSystem(message) {
|
|
58
|
-
const ts = new Date().toISOString().replace('T', ' ').slice(0, 19);
|
|
59
|
-
const entry = `[${ts}] [SYSTEM]\n${message}\n\n`;
|
|
60
|
-
this.buffer.push(entry);
|
|
61
|
-
this.scheduleFlush();
|
|
62
|
-
}
|
|
63
|
-
async close() {
|
|
64
|
-
if (this.flushTimer)
|
|
65
|
-
clearTimeout(this.flushTimer);
|
|
66
|
-
await this.flush();
|
|
67
|
-
const footer = `\n${'═'.repeat(60)}\nSESSION END: ${new Date().toISOString()}\n${'═'.repeat(60)}\n`;
|
|
68
|
-
await fsp.appendFile(this.logFile, footer, 'utf-8');
|
|
69
|
-
}
|
|
70
|
-
scheduleFlush() {
|
|
71
|
-
if (this.flushTimer)
|
|
72
|
-
clearTimeout(this.flushTimer);
|
|
73
|
-
this.flushTimer = setTimeout(() => this.flush(), 500);
|
|
74
|
-
}
|
|
75
|
-
async flush() {
|
|
76
|
-
if (!this.buffer.length)
|
|
77
|
-
return;
|
|
78
|
-
const content = this.buffer.join('');
|
|
79
|
-
this.buffer = [];
|
|
80
|
-
await fsp.appendFile(this.logFile, content, 'utf-8');
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
//# sourceMappingURL=conversation-log.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-log.js","sourceRoot":"","sources":["../../src/engine/conversation-log.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import type { TokenUsage } from '@memoryblock/types';
|
|
2
|
-
interface CostSnapshot {
|
|
3
|
-
sessionInput: number;
|
|
4
|
-
sessionOutput: number;
|
|
5
|
-
totalInput: number;
|
|
6
|
-
totalOutput: number;
|
|
7
|
-
sessionCost: number;
|
|
8
|
-
totalCost: number;
|
|
9
|
-
lastUpdated: string;
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* System-level cost tracker — tracks tokens and calculates USD cost.
|
|
13
|
-
* Persists to costs.json in the block directory.
|
|
14
|
-
* No model tokens wasted — this is pure system bookkeeping.
|
|
15
|
-
*/
|
|
16
|
-
export declare class CostTracker {
|
|
17
|
-
private model;
|
|
18
|
-
private pricing;
|
|
19
|
-
private sessionInput;
|
|
20
|
-
private sessionOutput;
|
|
21
|
-
private totalInput;
|
|
22
|
-
private totalOutput;
|
|
23
|
-
private turnCount;
|
|
24
|
-
private lastTurnInput;
|
|
25
|
-
private lastTurnOutput;
|
|
26
|
-
private costFile;
|
|
27
|
-
constructor(blockPath: string, model: string);
|
|
28
|
-
/** Load previous totals from costs.json. */
|
|
29
|
-
load(): Promise<void>;
|
|
30
|
-
/** Track a single API call's usage. */
|
|
31
|
-
track(usage: TokenUsage): void;
|
|
32
|
-
/** Get session cost in USD. */
|
|
33
|
-
getSessionCost(): number;
|
|
34
|
-
/** Get total cost in USD (all sessions). */
|
|
35
|
-
getTotalCost(): number;
|
|
36
|
-
/** Format cost for display. */
|
|
37
|
-
formatCost(cost: number): string;
|
|
38
|
-
/** Get formatted session report. */
|
|
39
|
-
getSessionReport(): string;
|
|
40
|
-
/** Get per-turn report for the last API call. */
|
|
41
|
-
getPerTurnReport(): string;
|
|
42
|
-
/** Get all-time total report. */
|
|
43
|
-
getTotalReport(): string;
|
|
44
|
-
/** Get turn count. */
|
|
45
|
-
getTurnCount(): number;
|
|
46
|
-
/** Get snapshot for display / persistence. */
|
|
47
|
-
getSnapshot(): CostSnapshot;
|
|
48
|
-
/** Persist to costs.json. */
|
|
49
|
-
save(): Promise<void>;
|
|
50
|
-
}
|
|
51
|
-
export {};
|
|
52
|
-
//# sourceMappingURL=cost-tracker.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cost-tracker.d.ts","sourceRoot":"","sources":["../../src/engine/cost-tracker.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAmBrD,UAAU,YAAY;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACvB;AAED;;;;GAIG;AACH,qBAAa,WAAW;IACpB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,OAAO,CAAoC;IACnD,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,QAAQ,CAAS;gBAEb,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAO5C,4CAA4C;IACtC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAW3B,uCAAuC;IACvC,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAU9B,+BAA+B;IAC/B,cAAc,IAAI,MAAM;IAKxB,4CAA4C;IAC5C,YAAY,IAAI,MAAM;IAKtB,+BAA+B;IAC/B,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAIhC,oCAAoC;IACpC,gBAAgB,IAAI,MAAM;IAI1B,iDAAiD;IACjD,gBAAgB,IAAI,MAAM;IAI1B,iCAAiC;IACjC,cAAc,IAAI,MAAM;IAIxB,sBAAsB;IACtB,YAAY,IAAI,MAAM;IAItB,8CAA8C;IAC9C,WAAW,IAAI,YAAY;IAY3B,6BAA6B;IACvB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAI9B"}
|