memoryblock 0.1.1-beta → 0.1.3

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 (100) hide show
  1. package/LICENSE +2 -2
  2. package/README.md +5 -4
  3. package/dist/engine/cost-tracker.d.ts +1 -1
  4. package/dist/engine/cost-tracker.d.ts.map +1 -1
  5. package/dist/engine/gatekeeper.d.ts +1 -1
  6. package/dist/engine/gatekeeper.d.ts.map +1 -1
  7. package/dist/engine/gatekeeper.js +1 -1
  8. package/dist/engine/gatekeeper.js.map +1 -1
  9. package/dist/engine/memory.d.ts +1 -1
  10. package/dist/engine/memory.d.ts.map +1 -1
  11. package/dist/engine/memory.js +1 -1
  12. package/dist/engine/memory.js.map +1 -1
  13. package/dist/engine/monitor.d.ts +1 -1
  14. package/dist/engine/monitor.d.ts.map +1 -1
  15. package/dist/engine/monitor.js +1 -1
  16. package/dist/engine/monitor.js.map +1 -1
  17. package/dist/index.d.ts +3 -5
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +3 -4
  20. package/dist/index.js.map +1 -1
  21. package/dist/utils/config.d.ts +1 -1
  22. package/dist/utils/config.d.ts.map +1 -1
  23. package/dist/utils/config.js +1 -1
  24. package/dist/utils/config.js.map +1 -1
  25. package/dist/utils/logger.d.ts.map +1 -0
  26. package/dist/utils/logger.js.map +1 -0
  27. package/package.json +5 -23
  28. package/bin/mblk.js +0 -6
  29. package/dist/bin/mblk.d.ts +0 -3
  30. package/dist/bin/mblk.d.ts.map +0 -1
  31. package/dist/bin/mblk.js +0 -339
  32. package/dist/bin/mblk.js.map +0 -1
  33. package/dist/cli/commands/create.d.ts +0 -2
  34. package/dist/cli/commands/create.d.ts.map +0 -1
  35. package/dist/cli/commands/create.js +0 -48
  36. package/dist/cli/commands/create.js.map +0 -1
  37. package/dist/cli/commands/delete.d.ts +0 -5
  38. package/dist/cli/commands/delete.d.ts.map +0 -1
  39. package/dist/cli/commands/delete.js +0 -147
  40. package/dist/cli/commands/delete.js.map +0 -1
  41. package/dist/cli/commands/init.d.ts +0 -9
  42. package/dist/cli/commands/init.d.ts.map +0 -1
  43. package/dist/cli/commands/init.js +0 -209
  44. package/dist/cli/commands/init.js.map +0 -1
  45. package/dist/cli/commands/permissions.d.ts +0 -13
  46. package/dist/cli/commands/permissions.d.ts.map +0 -1
  47. package/dist/cli/commands/permissions.js +0 -60
  48. package/dist/cli/commands/permissions.js.map +0 -1
  49. package/dist/cli/commands/plugin-settings.d.ts +0 -6
  50. package/dist/cli/commands/plugin-settings.d.ts.map +0 -1
  51. package/dist/cli/commands/plugin-settings.js +0 -118
  52. package/dist/cli/commands/plugin-settings.js.map +0 -1
  53. package/dist/cli/commands/plugins.d.ts +0 -3
  54. package/dist/cli/commands/plugins.d.ts.map +0 -1
  55. package/dist/cli/commands/plugins.js +0 -83
  56. package/dist/cli/commands/plugins.js.map +0 -1
  57. package/dist/cli/commands/reset.d.ts +0 -8
  58. package/dist/cli/commands/reset.d.ts.map +0 -1
  59. package/dist/cli/commands/reset.js +0 -96
  60. package/dist/cli/commands/reset.js.map +0 -1
  61. package/dist/cli/commands/server.d.ts +0 -25
  62. package/dist/cli/commands/server.d.ts.map +0 -1
  63. package/dist/cli/commands/server.js +0 -295
  64. package/dist/cli/commands/server.js.map +0 -1
  65. package/dist/cli/commands/service.d.ts +0 -18
  66. package/dist/cli/commands/service.d.ts.map +0 -1
  67. package/dist/cli/commands/service.js +0 -309
  68. package/dist/cli/commands/service.js.map +0 -1
  69. package/dist/cli/commands/start.d.ts +0 -11
  70. package/dist/cli/commands/start.d.ts.map +0 -1
  71. package/dist/cli/commands/start.js +0 -801
  72. package/dist/cli/commands/start.js.map +0 -1
  73. package/dist/cli/commands/status.d.ts +0 -2
  74. package/dist/cli/commands/status.d.ts.map +0 -1
  75. package/dist/cli/commands/status.js +0 -78
  76. package/dist/cli/commands/status.js.map +0 -1
  77. package/dist/cli/commands/stop.d.ts +0 -9
  78. package/dist/cli/commands/stop.d.ts.map +0 -1
  79. package/dist/cli/commands/stop.js +0 -83
  80. package/dist/cli/commands/stop.js.map +0 -1
  81. package/dist/cli/commands/web.d.ts +0 -5
  82. package/dist/cli/commands/web.d.ts.map +0 -1
  83. package/dist/cli/commands/web.js +0 -63
  84. package/dist/cli/commands/web.js.map +0 -1
  85. package/dist/cli/constants.d.ts +0 -38
  86. package/dist/cli/constants.d.ts.map +0 -1
  87. package/dist/cli/constants.js +0 -80
  88. package/dist/cli/constants.js.map +0 -1
  89. package/dist/cli/logger.d.ts.map +0 -1
  90. package/dist/cli/logger.js.map +0 -1
  91. package/dist/schemas.d.ts +0 -544
  92. package/dist/schemas.d.ts.map +0 -1
  93. package/dist/schemas.js +0 -111
  94. package/dist/schemas.js.map +0 -1
  95. package/dist/types.d.ts +0 -188
  96. package/dist/types.d.ts.map +0 -1
  97. package/dist/types.js +0 -2
  98. package/dist/types.js.map +0 -1
  99. /package/dist/{cli → utils}/logger.d.ts +0 -0
  100. /package/dist/{cli → utils}/logger.js +0 -0
@@ -1,96 +0,0 @@
1
- import { log } from '../logger.js';
2
- import { loadGlobalConfig, resolveBlockPath } from '../../utils/config.js';
3
- import { promises as fsp } from 'node:fs';
4
- import { join } from 'node:path';
5
- import { createInterface } from 'node:readline';
6
- import chalk from 'chalk';
7
- import { FILE_TEMPLATES } from '../../engine/prompts.js';
8
- /**
9
- * mblk reset <block> — Light cleanup: reset memory, pulse, costs, session
10
- * mblk reset <block> --hard — Full wipe: also deletes logs/ (with confirmation)
11
- */
12
- export async function resetCommand(blockName, options) {
13
- const globalConfig = await loadGlobalConfig();
14
- const blockPath = resolveBlockPath(globalConfig, blockName);
15
- // Verify block exists
16
- try {
17
- await fsp.access(blockPath);
18
- }
19
- catch {
20
- throw new Error(`Block "${blockName}" not found at ${blockPath}`);
21
- }
22
- // --hard requires confirmation
23
- if (options.hard) {
24
- const rl = createInterface({ input: process.stdin, output: process.stdout });
25
- const answer = await new Promise((resolve) => {
26
- rl.question(chalk.yellow(`\n⚠ --hard will wipe ALL data for "${blockName}" (logs, memory, session). Continue? (y/n): `), resolve);
27
- });
28
- rl.close();
29
- if (answer.trim().toLowerCase() !== 'y') {
30
- log.dim(' cancelled.');
31
- return;
32
- }
33
- }
34
- log.dim(` resetting ${blockName}${options.hard ? ' (hard)' : ''}...`);
35
- // Light reset: memory, pulse, costs, session, chat.json, and logs directory
36
- const filesToReset = ['memory.md', 'pulse.json', 'costs.json', 'session.json', 'chat.json'];
37
- for (const file of filesToReset) {
38
- const filePath = join(blockPath, file);
39
- try {
40
- await fsp.access(filePath);
41
- if (file === 'memory.md') {
42
- await fsp.writeFile(filePath, FILE_TEMPLATES.MEMORY_MD, 'utf-8');
43
- }
44
- else if (file === 'pulse.json') {
45
- await fsp.writeFile(filePath, JSON.stringify(FILE_TEMPLATES.PULSE_JSON, null, 4), 'utf-8');
46
- }
47
- else if (file === 'costs.json') {
48
- await fsp.writeFile(filePath, JSON.stringify(FILE_TEMPLATES.COSTS_JSON, null, 4), 'utf-8');
49
- }
50
- else if (file === 'session.json' || file === 'chat.json') {
51
- await fsp.unlink(filePath);
52
- }
53
- log.dim(` ✓ ${file}`);
54
- }
55
- catch {
56
- // Skip if file doesn't exist
57
- }
58
- }
59
- // Wipe logs continuously for both soft and hard resets
60
- const logsDir = join(blockPath, 'logs');
61
- try {
62
- const files = await fsp.readdir(logsDir);
63
- for (const file of files) {
64
- await fsp.unlink(join(logsDir, file));
65
- }
66
- log.dim(` ✓ logs/ wiped (${files.length} files)`);
67
- }
68
- catch {
69
- // Logs dir might not exist or be empty
70
- }
71
- // Hard reset: wipe monitor.md and monitor identity from config
72
- if (options.hard) {
73
- const monitorPath = join(blockPath, 'monitor.md');
74
- try {
75
- await fsp.writeFile(monitorPath, FILE_TEMPLATES.MONITOR_MD(blockName), 'utf-8');
76
- log.dim(' ✓ monitor.md reset');
77
- }
78
- catch { /* ignore */ }
79
- // Clear monitor identity from config
80
- const configPath = join(blockPath, 'config.json');
81
- try {
82
- const raw = await fsp.readFile(configPath, 'utf-8');
83
- const config = JSON.parse(raw);
84
- delete config.monitorName;
85
- delete config.monitorEmoji;
86
- await fsp.writeFile(configPath, JSON.stringify(config, null, 4), 'utf-8');
87
- log.dim(' ✓ monitor identity cleared');
88
- }
89
- catch { /* ignore */ }
90
- }
91
- else {
92
- log.dim(' ℹ monitor.md and identity preserved (use --hard to wipe)');
93
- }
94
- console.log(`\n${chalk.green(`✓ ${blockName} reset.`)}`);
95
- }
96
- //# sourceMappingURL=reset.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reset.js","sourceRoot":"","sources":["../../../src/cli/commands/reset.ts"],"names":[],"mappings":"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"}
@@ -1,25 +0,0 @@
1
- /**
2
- * Server lifecycle management.
3
- * Manages the web/API server as a foreground or daemon process.
4
- */
5
- export declare function serverStartCommand(options?: {
6
- port?: string;
7
- newToken?: boolean;
8
- daemon?: boolean;
9
- }): Promise<void>;
10
- export declare function serverStopCommand(): Promise<void>;
11
- export declare function serverStatusCommand(): Promise<void>;
12
- export declare function serverTokenCommand(options?: {
13
- newToken?: boolean;
14
- }): Promise<void>;
15
- /**
16
- * mblk shutdown — stop all blocks AND the server in one shot.
17
- */
18
- export declare function shutdownCommand(): Promise<void>;
19
- /**
20
- * mblk restart — shutdown then start server as daemon.
21
- */
22
- export declare function restartCommand(options?: {
23
- port?: string;
24
- }): Promise<void>;
25
- //# sourceMappingURL=server.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/server.ts"],"names":[],"mappings":"AAUA;;;GAGG;AAEH,wBAAsB,kBAAkB,CAAC,OAAO,CAAC,EAAE;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsHhB;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CA6CvD;AAED,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAoBzD;AAED,wBAAsB,kBAAkB,CAAC,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBxF;AA4DD;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAerD;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAiB/E"}
@@ -1,295 +0,0 @@
1
- import { isInitialized, getHome, } from '../../utils/config.js';
2
- import { log } from '../logger.js';
3
- import { join } from 'node:path';
4
- import { promises as fsp } from 'node:fs';
5
- import { DEFAULT_PORT } from '../constants.js';
6
- const API_PKG = '@memoryblock/api';
7
- /**
8
- * Server lifecycle management.
9
- * Manages the web/API server as a foreground or daemon process.
10
- */
11
- export async function serverStartCommand(options) {
12
- if (!(await isInitialized())) {
13
- log.error('Not initialized. Run `mblk init` first.');
14
- process.exit(1);
15
- }
16
- const port = parseInt(options?.port || DEFAULT_PORT, 10);
17
- // Check if server is already running (skip if stored PID is our own — we ARE the daemon child)
18
- const existingPid = await readServerPid();
19
- if (existingPid && existingPid !== process.pid && isProcessAlive(existingPid)) {
20
- const existingPort = await readServerPort();
21
- log.warn(`Server already running (PID ${existingPid}${existingPort ? `, port ${existingPort}` : ''}).`);
22
- log.dim(' Use `mblk server stop` to stop it first.');
23
- return;
24
- }
25
- // Daemon mode — spawn detached and exit
26
- if (options?.daemon) {
27
- const { spawn } = await import('node:child_process');
28
- const fs = await import('node:fs');
29
- const scriptPath = process.argv[1];
30
- // Redirect daemon output to a log file for debugging crashes
31
- const logPath = join(getHome(), 'server.log');
32
- const logFd = fs.openSync(logPath, 'a');
33
- const child = spawn(process.execPath, [
34
- scriptPath, 'server', 'start', '--port', port.toString(),
35
- ...(options?.newToken ? ['--new-token'] : []),
36
- ], {
37
- detached: true,
38
- stdio: ['ignore', logFd, logFd],
39
- env: process.env,
40
- cwd: process.cwd(),
41
- });
42
- child.unref();
43
- fs.closeSync(logFd);
44
- if (child.pid) {
45
- await writeServerPid(child.pid);
46
- await writeServerPort(port);
47
- log.brand('server\n');
48
- log.success(` Server started as daemon (PID ${child.pid}).`);
49
- log.dim(` http://localhost:${port}`);
50
- log.dim(' `mblk server stop` to shut down.\n');
51
- }
52
- else {
53
- log.error('Failed to spawn daemon process.');
54
- process.exit(1);
55
- }
56
- return;
57
- }
58
- // Foreground mode
59
- let api;
60
- try {
61
- api = await import(API_PKG);
62
- }
63
- catch (err) {
64
- log.error(`Failed to load API package: ${err.message}`);
65
- process.exit(1);
66
- }
67
- const workspacePath = process.cwd();
68
- const authToken = await api.generateAuthToken(workspacePath, options?.newToken);
69
- // Write PID + port for status/stop
70
- await writeServerPid(process.pid);
71
- await writeServerPort(port);
72
- log.brand('server\n');
73
- log.dim(` http://localhost:${port}`);
74
- log.dim(` token: ${authToken}`);
75
- console.log('');
76
- // Auto-install OS service hook quietly
77
- import('./service.js').then(s => s.silentServiceInstall()).catch(() => { });
78
- // Resolve web UI static files
79
- let webRoot;
80
- try {
81
- const { createRequire } = await import('node:module');
82
- const require = createRequire(import.meta.url);
83
- const webPkg = require.resolve('@memoryblock/web/package.json');
84
- const { dirname, join: pJoin } = await import('node:path');
85
- webRoot = pJoin(dirname(webPkg), 'public');
86
- }
87
- catch {
88
- log.warn('Web UI package not found. API-only mode.');
89
- }
90
- const server = new api.ApiServer({
91
- port,
92
- authToken,
93
- workspacePath,
94
- webRoot,
95
- });
96
- const shutdown = async () => {
97
- log.system('server', 'shutting down...');
98
- await server.stop();
99
- await cleanupServerFiles();
100
- process.exit(0);
101
- };
102
- process.on('SIGINT', shutdown);
103
- process.on('SIGTERM', shutdown);
104
- try {
105
- await server.start();
106
- log.dim(' server running. ctrl+c to stop.\n');
107
- }
108
- catch (err) {
109
- log.error(`Server failed: ${err.message}`);
110
- await cleanupServerFiles();
111
- process.exit(1);
112
- }
113
- // Keep alive
114
- await new Promise(() => { });
115
- }
116
- export async function serverStopCommand() {
117
- const pid = await readServerPid();
118
- const port = await readServerPort();
119
- if (!pid) {
120
- // No PID file — try killing by port as a fallback
121
- if (port) {
122
- const killed = await killByPort(port);
123
- if (killed) {
124
- log.success(` Server on port ${port} stopped (via port lookup).`);
125
- }
126
- else {
127
- log.dim(' No server PID found. Server may not be running.');
128
- }
129
- }
130
- else {
131
- // Last resort: try the default port
132
- const defaultPort = parseInt(DEFAULT_PORT, 10);
133
- const killed = await killByPort(defaultPort);
134
- if (killed) {
135
- log.success(` Server on port ${DEFAULT_PORT} stopped (via port lookup).`);
136
- }
137
- else {
138
- log.dim(' No server PID found. Server may not be running.');
139
- }
140
- }
141
- await cleanupServerFiles();
142
- return;
143
- }
144
- if (!isProcessAlive(pid)) {
145
- log.dim(' Server process not found (stale PID). Cleaning up.');
146
- await cleanupServerFiles();
147
- return;
148
- }
149
- try {
150
- process.kill(pid, 'SIGTERM');
151
- log.success(` Server stopped (PID ${pid}).`);
152
- }
153
- catch (err) {
154
- if (err.code === 'ESRCH') {
155
- log.dim(' Server process already gone. Cleaning up.');
156
- }
157
- else {
158
- log.error(`Failed to stop server: ${err.message}`);
159
- }
160
- }
161
- await cleanupServerFiles();
162
- }
163
- export async function serverStatusCommand() {
164
- const pid = await readServerPid();
165
- const port = await readServerPort();
166
- log.brand('server status\n');
167
- if (!pid) {
168
- log.dim(' Status: not running');
169
- return;
170
- }
171
- if (isProcessAlive(pid)) {
172
- log.success(` Status: running`);
173
- log.dim(` PID: ${pid}`);
174
- if (port)
175
- log.dim(` URL: http://localhost:${port}`);
176
- }
177
- else {
178
- log.dim(' Status: not running (stale PID file)');
179
- await cleanupServerFiles();
180
- }
181
- console.log('');
182
- }
183
- export async function serverTokenCommand(options) {
184
- log.brand(options?.newToken ? 'server token (new)\n' : 'server token\n');
185
- let api;
186
- try {
187
- api = await import(API_PKG);
188
- }
189
- catch (err) {
190
- log.error(`Failed to load API package: ${err.message}`);
191
- process.exit(1);
192
- }
193
- const workspacePath = process.cwd();
194
- const token = await api.generateAuthToken(workspacePath, options?.newToken);
195
- if (options?.newToken) {
196
- log.success(` New token generated successfully.`);
197
- }
198
- log.dim(` token: ${token}\n`);
199
- }
200
- // ===== PID / Port Helpers =====
201
- function pidPath() { return join(getHome(), 'server.pid'); }
202
- function portPath() { return join(getHome(), 'server.port'); }
203
- async function writeServerPid(pid) {
204
- await fsp.mkdir(getHome(), { recursive: true });
205
- await fsp.writeFile(pidPath(), pid.toString());
206
- }
207
- async function writeServerPort(port) {
208
- await fsp.writeFile(portPath(), port.toString());
209
- }
210
- async function readServerPid() {
211
- try {
212
- const s = await fsp.readFile(pidPath(), 'utf-8');
213
- const n = parseInt(s.trim(), 10);
214
- return isNaN(n) ? null : n;
215
- }
216
- catch {
217
- return null;
218
- }
219
- }
220
- async function readServerPort() {
221
- try {
222
- const s = await fsp.readFile(portPath(), 'utf-8');
223
- const n = parseInt(s.trim(), 10);
224
- return isNaN(n) ? null : n;
225
- }
226
- catch {
227
- return null;
228
- }
229
- }
230
- function isProcessAlive(pid) {
231
- try {
232
- process.kill(pid, 0); // Signal 0 checks existence
233
- return true;
234
- }
235
- catch {
236
- return false;
237
- }
238
- }
239
- async function cleanupServerFiles() {
240
- await fsp.unlink(pidPath()).catch(() => { });
241
- await fsp.unlink(portPath()).catch(() => { });
242
- }
243
- /** Kill process by port using lsof — fallback when PID file is missing. */
244
- async function killByPort(port) {
245
- try {
246
- const { execSync } = await import('node:child_process');
247
- const pids = execSync(`lsof -ti:${port}`, { stdio: 'pipe' })
248
- .toString().trim().split('\n').filter(Boolean);
249
- for (const p of pids) {
250
- try {
251
- process.kill(parseInt(p, 10), 'SIGTERM');
252
- }
253
- catch { /* already gone */ }
254
- }
255
- return pids.length > 0;
256
- }
257
- catch {
258
- return false;
259
- }
260
- }
261
- /**
262
- * mblk shutdown — stop all blocks AND the server in one shot.
263
- */
264
- export async function shutdownCommand() {
265
- log.brand('shutdown\n');
266
- // 1. Stop all blocks
267
- log.dim(' Stopping all blocks...');
268
- try {
269
- const { stopCommand } = await import('./stop.js');
270
- await stopCommand(undefined, { preserveEnabled: true });
271
- }
272
- catch { /* ignore */ }
273
- // 2. Stop the server
274
- log.dim(' Stopping server...');
275
- await serverStopCommand();
276
- log.success('\n Everything shut down.');
277
- }
278
- /**
279
- * mblk restart — shutdown then start server as daemon.
280
- */
281
- export async function restartCommand(options) {
282
- log.brand('restart\n');
283
- // Shutdown first
284
- await shutdownCommand();
285
- // Small delay to let PID files clean up
286
- await new Promise(resolve => setTimeout(resolve, 500));
287
- // Start server as daemon
288
- log.dim('\n Starting server...');
289
- await serverStartCommand({ port: options?.port, daemon: true });
290
- // Start all enabled blocks
291
- log.dim('\n Starting enabled blocks...');
292
- const { startAllEnabledBlocks } = await import('./start.js');
293
- await startAllEnabledBlocks();
294
- }
295
- //# sourceMappingURL=server.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/cli/commands/server.ts"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
1
- /**
2
- * Install memoryblock as a system service (runs on login/boot).
3
- */
4
- export declare function serviceInstallCommand(): Promise<void>;
5
- /**
6
- * Silently install the service in the background (used by start/server commands).
7
- * Catches all errors so it never interrupts the user.
8
- */
9
- export declare function silentServiceInstall(): Promise<void>;
10
- /**
11
- * Uninstall the system service.
12
- */
13
- export declare function serviceUninstallCommand(): Promise<void>;
14
- /**
15
- * Show service status.
16
- */
17
- export declare function serviceStatusCommand(): Promise<void>;
18
- //# sourceMappingURL=service.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/service.ts"],"names":[],"mappings":"AAgHA;;GAEG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAqD3D;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAiD1D;AAED;;GAEG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CA0B7D;AAED;;GAEG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAwC1D"}