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.
Files changed (111) hide show
  1. package/README.md +73 -115
  2. package/bin/mblk.js +68 -71
  3. package/dist/commands/create.d.ts +2 -0
  4. package/dist/commands/create.d.ts.map +1 -0
  5. package/dist/commands/create.js +48 -0
  6. package/dist/commands/create.js.map +1 -0
  7. package/dist/commands/delete.d.ts +5 -0
  8. package/dist/commands/delete.d.ts.map +1 -0
  9. package/dist/commands/delete.js +147 -0
  10. package/dist/commands/delete.js.map +1 -0
  11. package/dist/commands/init.d.ts +9 -0
  12. package/dist/commands/init.d.ts.map +1 -0
  13. package/dist/commands/init.js +209 -0
  14. package/dist/commands/init.js.map +1 -0
  15. package/dist/commands/permissions.d.ts +13 -0
  16. package/dist/commands/permissions.d.ts.map +1 -0
  17. package/dist/commands/permissions.js +60 -0
  18. package/dist/commands/permissions.js.map +1 -0
  19. package/dist/commands/plugin-settings.d.ts +6 -0
  20. package/dist/commands/plugin-settings.d.ts.map +1 -0
  21. package/dist/commands/plugin-settings.js +118 -0
  22. package/dist/commands/plugin-settings.js.map +1 -0
  23. package/dist/commands/plugins.d.ts +3 -0
  24. package/dist/commands/plugins.d.ts.map +1 -0
  25. package/dist/commands/plugins.js +83 -0
  26. package/dist/commands/plugins.js.map +1 -0
  27. package/dist/commands/reset.d.ts +8 -0
  28. package/dist/commands/reset.d.ts.map +1 -0
  29. package/dist/commands/reset.js +96 -0
  30. package/dist/commands/reset.js.map +1 -0
  31. package/dist/commands/server.d.ts +25 -0
  32. package/dist/commands/server.d.ts.map +1 -0
  33. package/dist/commands/server.js +295 -0
  34. package/dist/commands/server.js.map +1 -0
  35. package/dist/commands/service.d.ts +18 -0
  36. package/dist/commands/service.d.ts.map +1 -0
  37. package/dist/commands/service.js +309 -0
  38. package/dist/commands/service.js.map +1 -0
  39. package/dist/commands/start.d.ts +11 -0
  40. package/dist/commands/start.d.ts.map +1 -0
  41. package/dist/commands/start.js +794 -0
  42. package/dist/commands/start.js.map +1 -0
  43. package/dist/commands/status.d.ts +2 -0
  44. package/dist/commands/status.d.ts.map +1 -0
  45. package/dist/commands/status.js +78 -0
  46. package/dist/commands/status.js.map +1 -0
  47. package/dist/commands/stop.d.ts +9 -0
  48. package/dist/commands/stop.d.ts.map +1 -0
  49. package/dist/commands/stop.js +83 -0
  50. package/dist/commands/stop.js.map +1 -0
  51. package/dist/commands/web.d.ts +5 -0
  52. package/dist/commands/web.d.ts.map +1 -0
  53. package/dist/commands/web.js +63 -0
  54. package/dist/commands/web.js.map +1 -0
  55. package/dist/commands.d.ts +7 -0
  56. package/dist/commands.d.ts.map +1 -0
  57. package/dist/commands.js +7 -0
  58. package/dist/commands.js.map +1 -0
  59. package/dist/constants.d.ts +41 -0
  60. package/dist/constants.d.ts.map +1 -0
  61. package/dist/constants.js +81 -0
  62. package/dist/constants.js.map +1 -0
  63. package/dist/entry.d.ts +9 -0
  64. package/dist/entry.d.ts.map +1 -0
  65. package/dist/entry.js +345 -0
  66. package/dist/entry.js.map +1 -0
  67. package/package.json +32 -11
  68. package/dist/engine/agent.d.ts +0 -15
  69. package/dist/engine/agent.d.ts.map +0 -1
  70. package/dist/engine/agent.js +0 -19
  71. package/dist/engine/agent.js.map +0 -1
  72. package/dist/engine/conversation-log.d.ts +0 -35
  73. package/dist/engine/conversation-log.d.ts.map +0 -1
  74. package/dist/engine/conversation-log.js +0 -83
  75. package/dist/engine/conversation-log.js.map +0 -1
  76. package/dist/engine/cost-tracker.d.ts +0 -52
  77. package/dist/engine/cost-tracker.d.ts.map +0 -1
  78. package/dist/engine/cost-tracker.js +0 -110
  79. package/dist/engine/cost-tracker.js.map +0 -1
  80. package/dist/engine/gatekeeper.d.ts +0 -20
  81. package/dist/engine/gatekeeper.d.ts.map +0 -1
  82. package/dist/engine/gatekeeper.js +0 -43
  83. package/dist/engine/gatekeeper.js.map +0 -1
  84. package/dist/engine/memory.d.ts +0 -28
  85. package/dist/engine/memory.d.ts.map +0 -1
  86. package/dist/engine/memory.js +0 -69
  87. package/dist/engine/memory.js.map +0 -1
  88. package/dist/engine/monitor.d.ts +0 -81
  89. package/dist/engine/monitor.d.ts.map +0 -1
  90. package/dist/engine/monitor.js +0 -610
  91. package/dist/engine/monitor.js.map +0 -1
  92. package/dist/engine/prompts.d.ts +0 -31
  93. package/dist/engine/prompts.d.ts.map +0 -1
  94. package/dist/engine/prompts.js +0 -93
  95. package/dist/engine/prompts.js.map +0 -1
  96. package/dist/index.d.ts +0 -10
  97. package/dist/index.d.ts.map +0 -1
  98. package/dist/index.js +0 -14
  99. package/dist/index.js.map +0 -1
  100. package/dist/utils/config.d.ts +0 -24
  101. package/dist/utils/config.d.ts.map +0 -1
  102. package/dist/utils/config.js +0 -86
  103. package/dist/utils/config.js.map +0 -1
  104. package/dist/utils/fs.d.ts +0 -18
  105. package/dist/utils/fs.d.ts.map +0 -1
  106. package/dist/utils/fs.js +0 -65
  107. package/dist/utils/fs.js.map +0 -1
  108. package/dist/utils/logger.d.ts +0 -12
  109. package/dist/utils/logger.d.ts.map +0 -1
  110. package/dist/utils/logger.js +0 -40
  111. 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.4",
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/index.d.ts",
16
- "import": "./dist/index.js"
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
- "dev": "tsc -p tsconfig.json --watch"
27
+ "prepublishOnly": "tsc -p tsconfig.json"
22
28
  },
23
29
  "dependencies": {
24
- "@memoryblock/locale": "^0.1.4",
25
- "@memoryblock/types": "^0.1.4",
26
- "chalk": "^5.4.0"
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
  }
@@ -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"}
@@ -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
@@ -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"}