memoryblock 0.0.1 → 0.1.1-beta

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 (116) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +221 -0
  3. package/bin/mblk.js +6 -0
  4. package/dist/bin/mblk.d.ts +3 -0
  5. package/dist/bin/mblk.d.ts.map +1 -0
  6. package/dist/bin/mblk.js +339 -0
  7. package/dist/bin/mblk.js.map +1 -0
  8. package/dist/cli/commands/create.d.ts +2 -0
  9. package/dist/cli/commands/create.d.ts.map +1 -0
  10. package/dist/cli/commands/create.js +48 -0
  11. package/dist/cli/commands/create.js.map +1 -0
  12. package/dist/cli/commands/delete.d.ts +5 -0
  13. package/dist/cli/commands/delete.d.ts.map +1 -0
  14. package/dist/cli/commands/delete.js +147 -0
  15. package/dist/cli/commands/delete.js.map +1 -0
  16. package/dist/cli/commands/init.d.ts +9 -0
  17. package/dist/cli/commands/init.d.ts.map +1 -0
  18. package/dist/cli/commands/init.js +209 -0
  19. package/dist/cli/commands/init.js.map +1 -0
  20. package/dist/cli/commands/permissions.d.ts +13 -0
  21. package/dist/cli/commands/permissions.d.ts.map +1 -0
  22. package/dist/cli/commands/permissions.js +60 -0
  23. package/dist/cli/commands/permissions.js.map +1 -0
  24. package/dist/cli/commands/plugin-settings.d.ts +6 -0
  25. package/dist/cli/commands/plugin-settings.d.ts.map +1 -0
  26. package/dist/cli/commands/plugin-settings.js +118 -0
  27. package/dist/cli/commands/plugin-settings.js.map +1 -0
  28. package/dist/cli/commands/plugins.d.ts +3 -0
  29. package/dist/cli/commands/plugins.d.ts.map +1 -0
  30. package/dist/cli/commands/plugins.js +83 -0
  31. package/dist/cli/commands/plugins.js.map +1 -0
  32. package/dist/cli/commands/reset.d.ts +8 -0
  33. package/dist/cli/commands/reset.d.ts.map +1 -0
  34. package/dist/cli/commands/reset.js +96 -0
  35. package/dist/cli/commands/reset.js.map +1 -0
  36. package/dist/cli/commands/server.d.ts +25 -0
  37. package/dist/cli/commands/server.d.ts.map +1 -0
  38. package/dist/cli/commands/server.js +295 -0
  39. package/dist/cli/commands/server.js.map +1 -0
  40. package/dist/cli/commands/service.d.ts +18 -0
  41. package/dist/cli/commands/service.d.ts.map +1 -0
  42. package/dist/cli/commands/service.js +309 -0
  43. package/dist/cli/commands/service.js.map +1 -0
  44. package/dist/cli/commands/start.d.ts +11 -0
  45. package/dist/cli/commands/start.d.ts.map +1 -0
  46. package/dist/cli/commands/start.js +801 -0
  47. package/dist/cli/commands/start.js.map +1 -0
  48. package/dist/cli/commands/status.d.ts +2 -0
  49. package/dist/cli/commands/status.d.ts.map +1 -0
  50. package/dist/cli/commands/status.js +78 -0
  51. package/dist/cli/commands/status.js.map +1 -0
  52. package/dist/cli/commands/stop.d.ts +9 -0
  53. package/dist/cli/commands/stop.d.ts.map +1 -0
  54. package/dist/cli/commands/stop.js +83 -0
  55. package/dist/cli/commands/stop.js.map +1 -0
  56. package/dist/cli/commands/web.d.ts +5 -0
  57. package/dist/cli/commands/web.d.ts.map +1 -0
  58. package/dist/cli/commands/web.js +63 -0
  59. package/dist/cli/commands/web.js.map +1 -0
  60. package/dist/cli/constants.d.ts +38 -0
  61. package/dist/cli/constants.d.ts.map +1 -0
  62. package/dist/cli/constants.js +80 -0
  63. package/dist/cli/constants.js.map +1 -0
  64. package/dist/cli/logger.d.ts +12 -0
  65. package/dist/cli/logger.d.ts.map +1 -0
  66. package/dist/cli/logger.js +40 -0
  67. package/dist/cli/logger.js.map +1 -0
  68. package/dist/engine/agent.d.ts +15 -0
  69. package/dist/engine/agent.d.ts.map +1 -0
  70. package/dist/engine/agent.js +19 -0
  71. package/dist/engine/agent.js.map +1 -0
  72. package/dist/engine/conversation-log.d.ts +35 -0
  73. package/dist/engine/conversation-log.d.ts.map +1 -0
  74. package/dist/engine/conversation-log.js +83 -0
  75. package/dist/engine/conversation-log.js.map +1 -0
  76. package/dist/engine/cost-tracker.d.ts +52 -0
  77. package/dist/engine/cost-tracker.d.ts.map +1 -0
  78. package/dist/engine/cost-tracker.js +110 -0
  79. package/dist/engine/cost-tracker.js.map +1 -0
  80. package/dist/engine/gatekeeper.d.ts +20 -0
  81. package/dist/engine/gatekeeper.d.ts.map +1 -0
  82. package/dist/engine/gatekeeper.js +43 -0
  83. package/dist/engine/gatekeeper.js.map +1 -0
  84. package/dist/engine/memory.d.ts +28 -0
  85. package/dist/engine/memory.d.ts.map +1 -0
  86. package/dist/engine/memory.js +69 -0
  87. package/dist/engine/memory.js.map +1 -0
  88. package/dist/engine/monitor.d.ts +81 -0
  89. package/dist/engine/monitor.d.ts.map +1 -0
  90. package/dist/engine/monitor.js +610 -0
  91. package/dist/engine/monitor.js.map +1 -0
  92. package/dist/engine/prompts.d.ts +31 -0
  93. package/dist/engine/prompts.d.ts.map +1 -0
  94. package/dist/engine/prompts.js +93 -0
  95. package/dist/engine/prompts.js.map +1 -0
  96. package/dist/index.d.ts +12 -0
  97. package/dist/index.d.ts.map +1 -0
  98. package/dist/index.js +15 -0
  99. package/dist/index.js.map +1 -0
  100. package/dist/schemas.d.ts +544 -0
  101. package/dist/schemas.d.ts.map +1 -0
  102. package/dist/schemas.js +111 -0
  103. package/dist/schemas.js.map +1 -0
  104. package/dist/types.d.ts +188 -0
  105. package/dist/types.d.ts.map +1 -0
  106. package/dist/types.js +2 -0
  107. package/dist/types.js.map +1 -0
  108. package/dist/utils/config.d.ts +24 -0
  109. package/dist/utils/config.d.ts.map +1 -0
  110. package/dist/utils/config.js +86 -0
  111. package/dist/utils/config.js.map +1 -0
  112. package/dist/utils/fs.d.ts +18 -0
  113. package/dist/utils/fs.d.ts.map +1 -0
  114. package/dist/utils/fs.js +65 -0
  115. package/dist/utils/fs.js.map +1 -0
  116. package/package.json +78 -4
@@ -0,0 +1,188 @@
1
+ export type BlockStatus = 'SLEEPING' | 'ACTIVE' | 'BUSY' | 'ERROR';
2
+ export interface PulseState {
3
+ status: BlockStatus;
4
+ lastRun: string | null;
5
+ nextWakeUp: string | null;
6
+ currentTask: string | null;
7
+ error: string | null;
8
+ }
9
+ export interface AdapterConfig {
10
+ provider: string;
11
+ model: string;
12
+ region: string;
13
+ maxTokens: number;
14
+ cacheControl: boolean;
15
+ }
16
+ export interface ToolsConfig {
17
+ enabled: string[];
18
+ searchProvider: string;
19
+ sandbox: boolean;
20
+ workingDir?: string;
21
+ }
22
+ export interface ChannelConfig {
23
+ type: string;
24
+ telegram?: {
25
+ chatId: string;
26
+ };
27
+ }
28
+ export interface MemoryConfig {
29
+ maxContextTokens: number;
30
+ thresholdPercent: number;
31
+ }
32
+ export interface PulseConfig {
33
+ intervalSeconds: number;
34
+ }
35
+ export type PermissionScope = 'block' | 'workspace' | 'system';
36
+ export interface PermissionsConfig {
37
+ scope: PermissionScope;
38
+ allowShell: boolean;
39
+ allowNetwork: boolean;
40
+ maxTimeout: number;
41
+ }
42
+ export interface BlockConfig {
43
+ name: string;
44
+ description: string;
45
+ adapter: AdapterConfig;
46
+ goals: string[];
47
+ tools: ToolsConfig;
48
+ channel: ChannelConfig;
49
+ memory: MemoryConfig;
50
+ pulse: PulseConfig;
51
+ permissions: PermissionsConfig;
52
+ monitorName?: string;
53
+ monitorEmoji?: string;
54
+ /** Persistent flag — blocks with enabled:true auto-start on boot/restart */
55
+ enabled?: boolean;
56
+ }
57
+ export interface GlobalConfig {
58
+ language?: string;
59
+ blocksDir: string;
60
+ channelAlerts?: boolean;
61
+ defaults: {
62
+ adapter: AdapterConfig;
63
+ memory: MemoryConfig;
64
+ pulse: PulseConfig;
65
+ };
66
+ }
67
+ export interface AuthConfig {
68
+ aws?: {
69
+ accessKeyId: string;
70
+ secretAccessKey: string;
71
+ region: string;
72
+ };
73
+ openai?: {
74
+ apiKey: string;
75
+ };
76
+ gemini?: {
77
+ apiKey: string;
78
+ };
79
+ anthropic?: {
80
+ apiKey: string;
81
+ };
82
+ telegram?: {
83
+ botToken: string;
84
+ chatId?: string;
85
+ };
86
+ brave?: {
87
+ apiKey: string;
88
+ };
89
+ }
90
+ export type MessageRole = 'system' | 'user' | 'assistant' | 'tool';
91
+ export interface ToolCall {
92
+ id: string;
93
+ name: string;
94
+ input: Record<string, unknown>;
95
+ }
96
+ export interface ToolResultMessage {
97
+ toolCallId: string;
98
+ name: string;
99
+ content: string;
100
+ isError?: boolean;
101
+ }
102
+ export interface LLMMessage {
103
+ role: MessageRole;
104
+ content?: string;
105
+ toolCalls?: ToolCall[];
106
+ toolResults?: ToolResultMessage[];
107
+ }
108
+ export interface TokenUsage {
109
+ inputTokens: number;
110
+ outputTokens: number;
111
+ totalTokens: number;
112
+ }
113
+ export type StopReason = 'end_turn' | 'tool_use' | 'max_tokens' | 'stop_sequence';
114
+ export interface LLMResponse {
115
+ message: LLMMessage;
116
+ usage: TokenUsage;
117
+ stopReason: StopReason;
118
+ }
119
+ export interface ToolDefinition {
120
+ name: string;
121
+ description: string;
122
+ parameters: Record<string, unknown>;
123
+ requiresApproval: boolean;
124
+ }
125
+ export interface ToolContext {
126
+ blockPath: string;
127
+ blockName: string;
128
+ workingDir: string;
129
+ workspacePath?: string;
130
+ sandbox?: boolean;
131
+ permissions?: PermissionsConfig;
132
+ dispatchMessage?: (target: string, content: string) => Promise<void>;
133
+ }
134
+ export interface ToolExecutionResult {
135
+ content: string;
136
+ isError: boolean;
137
+ }
138
+ export interface ChannelMessage {
139
+ blockName: string;
140
+ monitorName: string;
141
+ content: string;
142
+ isSystem: boolean;
143
+ timestamp: string;
144
+ costReport?: string;
145
+ sessionReport?: string;
146
+ totalReport?: string;
147
+ /** Internal: the channel that originated this message (set by MultiChannelManager). */
148
+ _sourceChannel?: string;
149
+ /** Internal: the channel to route this message to (set by sendToChannel). */
150
+ _targetChannel?: string;
151
+ }
152
+ export interface ApprovalRequest {
153
+ toolName: string;
154
+ toolInput: Record<string, unknown>;
155
+ description: string;
156
+ blockName: string;
157
+ monitorName: string;
158
+ }
159
+ export interface LLMAdapter {
160
+ readonly provider: string;
161
+ readonly model: string;
162
+ converse(messages: LLMMessage[], tools?: ToolDefinition[]): Promise<LLMResponse>;
163
+ converseStream?(messages: LLMMessage[], tools?: ToolDefinition[], onChunk?: (text: string) => void): Promise<LLMResponse>;
164
+ }
165
+ export interface Channel {
166
+ readonly name: string;
167
+ send(message: ChannelMessage): Promise<void>;
168
+ streamChunk?(chunk: string): Promise<void>;
169
+ onMessage(handler: (message: ChannelMessage) => void): void;
170
+ requestApproval(request: ApprovalRequest): Promise<boolean>;
171
+ start(): Promise<void>;
172
+ stop(): Promise<void>;
173
+ getActiveChannels?(): string[];
174
+ }
175
+ export interface Tool {
176
+ readonly definition: ToolDefinition;
177
+ execute(params: Record<string, unknown>, context: ToolContext): Promise<ToolExecutionResult>;
178
+ }
179
+ /**
180
+ * Tool Registry interface — defined in core so the engine can use it
181
+ * without a circular dependency on the tools package.
182
+ */
183
+ export interface IToolRegistry {
184
+ listTools(): ToolDefinition[];
185
+ getDiscoveryTool(): ToolDefinition;
186
+ execute(name: string, params: Record<string, unknown>, context: ToolContext): Promise<ToolExecutionResult>;
187
+ }
188
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,24 @@
1
+ import type { GlobalConfig, BlockConfig, AuthConfig, PulseState } from '../types.js';
2
+ export declare function getHome(): string;
3
+ export declare function getWsRoot(): string;
4
+ export declare function getConfigPath(): string;
5
+ export declare function getAuthPath(): string;
6
+ /** Check if memoryblock has been initialized. */
7
+ export declare function isInitialized(): Promise<boolean>;
8
+ /**
9
+ * Load global config from ~/.memoryblock/ws/config.json
10
+ */
11
+ export declare function loadGlobalConfig(): Promise<GlobalConfig>;
12
+ export declare function saveGlobalConfig(config: GlobalConfig): Promise<void>;
13
+ /**
14
+ * Load auth credentials from ~/.memoryblock/ws/auth.json
15
+ */
16
+ export declare function loadAuth(): Promise<AuthConfig>;
17
+ export declare function saveAuth(auth: AuthConfig): Promise<void>;
18
+ export declare function loadBlockConfig(blockPath: string): Promise<BlockConfig>;
19
+ export declare function saveBlockConfig(blockPath: string, config: BlockConfig): Promise<void>;
20
+ export declare function loadPulseState(blockPath: string): Promise<PulseState>;
21
+ export declare function savePulseState(blockPath: string, state: PulseState): Promise<void>;
22
+ export declare function resolveBlocksDir(globalConfig: GlobalConfig): string;
23
+ export declare function resolveBlockPath(globalConfig: GlobalConfig, blockName: string): string;
24
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACR,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EACpD,MAAM,aAAa,CAAC;AAQrB,wBAAgB,OAAO,IAAI,MAAM,CAA6B;AAC9D,wBAAgB,SAAS,IAAI,MAAM,CAAoB;AACvD,wBAAgB,aAAa,IAAI,MAAM,CAAwB;AAC/D,wBAAgB,WAAW,IAAI,MAAM,CAAsB;AAE3D,iDAAiD;AACjD,wBAAsB,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC,CAEtD;AAoBD;;GAEG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,YAAY,CAAC,CAU9D;AAED,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1E;AAGD;;GAEG;AACH,wBAAsB,QAAQ,IAAI,OAAO,CAAC,UAAU,CAAC,CAGpD;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAE9D;AAGD,wBAAsB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAI7E;AAED,wBAAsB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAE3F;AAGD,wBAAsB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAI3E;AAED,wBAAsB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAExF;AAGD,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,YAAY,GAAG,MAAM,CAEnE;AAED,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEtF"}
@@ -0,0 +1,86 @@
1
+ import { homedir } from 'node:os';
2
+ import { join, resolve } from 'node:path';
3
+ import { readJson, readJsonSafe, writeJson, pathExists } from './fs.js';
4
+ import { GlobalConfigSchema, BlockConfigSchema, AuthConfigSchema, PulseStateSchema, } from '../schemas.js';
5
+ // ===== Paths =====
6
+ const MEMORYBLOCK_HOME = join(homedir(), '.memoryblock');
7
+ const WS_ROOT = join(MEMORYBLOCK_HOME, 'ws');
8
+ const CONFIG_PATH = join(WS_ROOT, 'config.json');
9
+ const AUTH_PATH = join(WS_ROOT, 'auth.json');
10
+ export function getHome() { return MEMORYBLOCK_HOME; }
11
+ export function getWsRoot() { return WS_ROOT; }
12
+ export function getConfigPath() { return CONFIG_PATH; }
13
+ export function getAuthPath() { return AUTH_PATH; }
14
+ /** Check if memoryblock has been initialized. */
15
+ export async function isInitialized() {
16
+ return pathExists(CONFIG_PATH);
17
+ }
18
+ import { setLocale } from '@memoryblock/locale';
19
+ /**
20
+ * Wraps Zod schema parsing to provide human-readable errors.
21
+ */
22
+ function parseConfig(schema, data, filePath) {
23
+ try {
24
+ return schema.parse(data);
25
+ }
26
+ catch (err) {
27
+ if (err && err.issues) {
28
+ const issues = err.issues.map((i) => ` - [${i.path.join('.') || 'root'}]: ${i.message}`).join('\n');
29
+ throw new Error(`Configuration error in ${filePath}:\n${issues}\n\nPlease fix the file to continue.`);
30
+ }
31
+ throw new Error(`Failed to parse ${filePath}: ${err.message}`);
32
+ }
33
+ }
34
+ // ===== Global Config =====
35
+ /**
36
+ * Load global config from ~/.memoryblock/ws/config.json
37
+ */
38
+ export async function loadGlobalConfig() {
39
+ const raw = await readJsonSafe(CONFIG_PATH, {});
40
+ const config = parseConfig(GlobalConfigSchema, raw, CONFIG_PATH);
41
+ // Auto-apply language preference globally
42
+ if (config.language) {
43
+ setLocale(config.language);
44
+ }
45
+ return config;
46
+ }
47
+ export async function saveGlobalConfig(config) {
48
+ await writeJson(CONFIG_PATH, config);
49
+ }
50
+ // ===== Auth =====
51
+ /**
52
+ * Load auth credentials from ~/.memoryblock/ws/auth.json
53
+ */
54
+ export async function loadAuth() {
55
+ const raw = await readJsonSafe(AUTH_PATH, {});
56
+ return parseConfig(AuthConfigSchema, raw, AUTH_PATH);
57
+ }
58
+ export async function saveAuth(auth) {
59
+ await writeJson(AUTH_PATH, auth);
60
+ }
61
+ // ===== Block Config =====
62
+ export async function loadBlockConfig(blockPath) {
63
+ const filePath = join(blockPath, 'config.json');
64
+ const raw = await readJson(filePath);
65
+ return parseConfig(BlockConfigSchema, raw, filePath);
66
+ }
67
+ export async function saveBlockConfig(blockPath, config) {
68
+ await writeJson(join(blockPath, 'config.json'), config);
69
+ }
70
+ // ===== Pulse State =====
71
+ export async function loadPulseState(blockPath) {
72
+ const filePath = join(blockPath, 'pulse.json');
73
+ const raw = await readJsonSafe(filePath, {});
74
+ return parseConfig(PulseStateSchema, raw, filePath);
75
+ }
76
+ export async function savePulseState(blockPath, state) {
77
+ await writeJson(join(blockPath, 'pulse.json'), state);
78
+ }
79
+ // ===== Path Resolution =====
80
+ export function resolveBlocksDir(globalConfig) {
81
+ return resolve(WS_ROOT, globalConfig.blocksDir);
82
+ }
83
+ export function resolveBlockPath(globalConfig, blockName) {
84
+ return join(resolveBlocksDir(globalConfig), blockName);
85
+ }
86
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Write content atomically: write to temp file, then rename.
3
+ * Prevents corruption if the process crashes mid-write.
4
+ */
5
+ export declare function atomicWrite(filePath: string, content: string): Promise<void>;
6
+ /** Atomically write JSON with pretty formatting. */
7
+ export declare function writeJson(filePath: string, data: unknown): Promise<void>;
8
+ /** Read and parse JSON. Throws on missing file or invalid JSON. */
9
+ export declare function readJson<T>(filePath: string): Promise<T>;
10
+ /** Read and parse JSON, returning fallback on any error. */
11
+ export declare function readJsonSafe<T>(filePath: string, fallback: T): Promise<T>;
12
+ /** Read text file, returning fallback on any error. */
13
+ export declare function readTextSafe(filePath: string, fallback?: string): Promise<string>;
14
+ /** Ensure directory exists (recursive). */
15
+ export declare function ensureDir(dirPath: string): Promise<void>;
16
+ /** Check if a path exists. */
17
+ export declare function pathExists(targetPath: string): Promise<boolean>;
18
+ //# sourceMappingURL=fs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAWlF;AAED,oDAAoD;AACpD,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAE9E;AAED,mEAAmE;AACnE,wBAAsB,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAG9D;AAED,4DAA4D;AAC5D,wBAAsB,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAM/E;AAED,uDAAuD;AACvD,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAM3F;AAED,2CAA2C;AAC3C,wBAAsB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE9D;AAED,8BAA8B;AAC9B,wBAAsB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOrE"}
@@ -0,0 +1,65 @@
1
+ import { promises as fsp } from 'node:fs';
2
+ import { dirname } from 'node:path';
3
+ import { randomUUID } from 'node:crypto';
4
+ /**
5
+ * Write content atomically: write to temp file, then rename.
6
+ * Prevents corruption if the process crashes mid-write.
7
+ */
8
+ export async function atomicWrite(filePath, content) {
9
+ const dir = dirname(filePath);
10
+ await fsp.mkdir(dir, { recursive: true });
11
+ const tmpPath = `${filePath}.${randomUUID().slice(0, 8)}.tmp`;
12
+ try {
13
+ await fsp.writeFile(tmpPath, content, 'utf-8');
14
+ await fsp.rename(tmpPath, filePath);
15
+ }
16
+ catch (err) {
17
+ try {
18
+ await fsp.unlink(tmpPath);
19
+ }
20
+ catch { /* ignore cleanup failure */ }
21
+ throw err;
22
+ }
23
+ }
24
+ /** Atomically write JSON with pretty formatting. */
25
+ export async function writeJson(filePath, data) {
26
+ await atomicWrite(filePath, JSON.stringify(data, null, 2) + '\n');
27
+ }
28
+ /** Read and parse JSON. Throws on missing file or invalid JSON. */
29
+ export async function readJson(filePath) {
30
+ const content = await fsp.readFile(filePath, 'utf-8');
31
+ return JSON.parse(content);
32
+ }
33
+ /** Read and parse JSON, returning fallback on any error. */
34
+ export async function readJsonSafe(filePath, fallback) {
35
+ try {
36
+ return await readJson(filePath);
37
+ }
38
+ catch {
39
+ return fallback;
40
+ }
41
+ }
42
+ /** Read text file, returning fallback on any error. */
43
+ export async function readTextSafe(filePath, fallback = '') {
44
+ try {
45
+ return await fsp.readFile(filePath, 'utf-8');
46
+ }
47
+ catch {
48
+ return fallback;
49
+ }
50
+ }
51
+ /** Ensure directory exists (recursive). */
52
+ export async function ensureDir(dirPath) {
53
+ await fsp.mkdir(dirPath, { recursive: true });
54
+ }
55
+ /** Check if a path exists. */
56
+ export async function pathExists(targetPath) {
57
+ try {
58
+ await fsp.access(targetPath);
59
+ return true;
60
+ }
61
+ catch {
62
+ return false;
63
+ }
64
+ }
65
+ //# sourceMappingURL=fs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,GAAG,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,QAAgB,EAAE,OAAe;IAC/D,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9B,MAAM,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,GAAG,QAAQ,IAAI,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC;IAC9D,IAAI,CAAC;QACD,MAAM,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC/C,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,IAAI,CAAC;YAAC,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,4BAA4B,CAAC,CAAC;QACzE,MAAM,GAAG,CAAC;IACd,CAAC;AACL,CAAC;AAED,oDAAoD;AACpD,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,QAAgB,EAAE,IAAa;IAC3D,MAAM,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AACtE,CAAC;AAED,mEAAmE;AACnE,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAI,QAAgB;IAC9C,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACtD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAM,CAAC;AACpC,CAAC;AAED,4DAA4D;AAC5D,MAAM,CAAC,KAAK,UAAU,YAAY,CAAI,QAAgB,EAAE,QAAW;IAC/D,IAAI,CAAC;QACD,OAAO,MAAM,QAAQ,CAAI,QAAQ,CAAC,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,QAAQ,CAAC;IACpB,CAAC;AACL,CAAC;AAED,uDAAuD;AACvD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,QAAgB,EAAE,WAAmB,EAAE;IACtE,IAAI,CAAC;QACD,OAAO,MAAM,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,QAAQ,CAAC;IACpB,CAAC;AACL,CAAC;AAED,2CAA2C;AAC3C,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAe;IAC3C,MAAM,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAClD,CAAC;AAED,8BAA8B;AAC9B,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,UAAkB;IAC/C,IAAI,CAAC;QACD,MAAM,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC"}
package/package.json CHANGED
@@ -1,11 +1,85 @@
1
1
  {
2
2
  "name": "memoryblock",
3
- "version": "0.0.1",
4
- "description": "placeholder package to reserve the name memoryblock",
3
+ "version": "0.1.1-beta",
4
+ "type": "module",
5
+ "description": "Deploy isolated, multi-agent AI assistants on your local machine with extreme resource efficiency.",
6
+ "files": [
7
+ "dist/",
8
+ "bin/"
9
+ ],
10
+ "exports": {
11
+ ".": {
12
+ "types": "./dist/index.d.ts",
13
+ "import": "./dist/index.js"
14
+ }
15
+ },
16
+ "bin": {
17
+ "mblk": "./bin/mblk.js",
18
+ "memoryblock": "./bin/mblk.js"
19
+ },
20
+ "scripts": {
21
+ "build": "tsc -p tsconfig.json",
22
+ "dev": "tsc -p tsconfig.json --watch"
23
+ },
24
+ "dependencies": {
25
+ "@memoryblock/daemon": "^0.1.1-beta",
26
+ "@memoryblock/adapters": "^0.1.1-beta",
27
+ "@memoryblock/channels": "^0.1.1-beta",
28
+ "@memoryblock/tools": "^0.1.1-beta",
29
+ "@memoryblock/api": "^0.1.1-beta",
30
+ "@memoryblock/web": "^0.1.1-beta",
31
+ "@memoryblock/locale": "^0.1.1-beta",
32
+ "@memoryblock/plugin-installer": "^0.1.1-beta",
33
+ "@memoryblock/plugin-agents": "^0.1.1-beta",
34
+ "@clack/prompts": "^1.1.0",
35
+ "commander": "^13.0.0",
36
+ "chalk": "^5.4.0",
37
+ "zod": "^3.24.0"
38
+ },
39
+ "optionalDependencies": {
40
+ "@memoryblock/plugin-web-search": "workspace:*"
41
+ },
42
+ "engines": {
43
+ "node": ">=18.0.0"
44
+ },
45
+ "keywords": [
46
+ "memoryblock",
47
+ "mblk",
48
+ "ai-agent",
49
+ "assistants",
50
+ "agents",
51
+ "automation",
52
+ "multi-agent",
53
+ "agentic-framework",
54
+ "core",
55
+ "framework",
56
+ "interface",
57
+ "channels",
58
+ "adapters",
59
+ "tools",
60
+ "skills",
61
+ "local-ai",
62
+ "local-llm",
63
+ "openai",
64
+ "anthropic",
65
+ "gemini",
66
+ "groq",
67
+ "chatgpt",
68
+ "deepseek",
69
+ "ollama"
70
+ ],
71
+ "author": {
72
+ "name": "Ghazi",
73
+ "url": "https://mgks.dev"
74
+ },
5
75
  "repository": {
6
76
  "type": "git",
7
- "url": "https://github.com/memoryblock/memoryblock"
77
+ "url": "git+https://github.com/memoryblock-io/memoryblock.git"
78
+ },
79
+ "bugs": {
80
+ "url": "https://github.com/memoryblock-io/memoryblock/issues"
8
81
  },
9
- "author": "Ghazi Khan <hello@mgks.dev>",
82
+ "homepage": "https://memoryblock.io",
83
+ "funding": "https://github.com/sponsors/mgks",
10
84
  "license": "MIT"
11
85
  }