@memoryblock/core 0.1.4
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/LICENSE +21 -0
- package/README.md +37 -0
- package/dist/engine/agent.d.ts +15 -0
- package/dist/engine/agent.d.ts.map +1 -0
- package/dist/engine/agent.js +19 -0
- package/dist/engine/agent.js.map +1 -0
- package/dist/engine/conversation-log.d.ts +35 -0
- package/dist/engine/conversation-log.d.ts.map +1 -0
- package/dist/engine/conversation-log.js +83 -0
- package/dist/engine/conversation-log.js.map +1 -0
- package/dist/engine/cost-tracker.d.ts +52 -0
- package/dist/engine/cost-tracker.d.ts.map +1 -0
- package/dist/engine/cost-tracker.js +110 -0
- package/dist/engine/cost-tracker.js.map +1 -0
- package/dist/engine/gatekeeper.d.ts +20 -0
- package/dist/engine/gatekeeper.d.ts.map +1 -0
- package/dist/engine/gatekeeper.js +43 -0
- package/dist/engine/gatekeeper.js.map +1 -0
- package/dist/engine/memory.d.ts +28 -0
- package/dist/engine/memory.d.ts.map +1 -0
- package/dist/engine/memory.js +69 -0
- package/dist/engine/memory.js.map +1 -0
- package/dist/engine/monitor.d.ts +81 -0
- package/dist/engine/monitor.d.ts.map +1 -0
- package/dist/engine/monitor.js +610 -0
- package/dist/engine/monitor.js.map +1 -0
- package/dist/engine/prompts.d.ts +31 -0
- package/dist/engine/prompts.d.ts.map +1 -0
- package/dist/engine/prompts.js +93 -0
- package/dist/engine/prompts.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -0
- package/dist/utils/config.d.ts +24 -0
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/config.js +86 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/fs.d.ts +18 -0
- package/dist/utils/fs.d.ts.map +1 -0
- package/dist/utils/fs.js +65 -0
- package/dist/utils/fs.js.map +1 -0
- package/dist/utils/logger.d.ts +12 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +40 -0
- package/dist/utils/logger.js.map +1 -0
- package/package.json +73 -0
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import type { LLMAdapter, Channel, BlockConfig, IToolRegistry } from '@memoryblock/types';
|
|
2
|
+
export interface MonitorConfig {
|
|
3
|
+
blockPath: string;
|
|
4
|
+
blockConfig: BlockConfig;
|
|
5
|
+
adapter: LLMAdapter;
|
|
6
|
+
registry: IToolRegistry;
|
|
7
|
+
channel: Channel;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* The Monitor — a block's resident intelligence.
|
|
11
|
+
*
|
|
12
|
+
* Features:
|
|
13
|
+
* - Identity (name, emoji, personality) persisted to monitor.md
|
|
14
|
+
* - Conversation logging to logs/
|
|
15
|
+
* - System-level cost tracking (no model tokens wasted)
|
|
16
|
+
* - Smart memory: saves only key context at threshold/stop
|
|
17
|
+
* - Safe-command auto-execution (lint, build, test, grep — no approval needed)
|
|
18
|
+
* - Sandbox toggle: sandbox=false gives full filesystem access
|
|
19
|
+
*/
|
|
20
|
+
export declare class Monitor {
|
|
21
|
+
private memory;
|
|
22
|
+
private gatekeeper;
|
|
23
|
+
private logger;
|
|
24
|
+
private channel;
|
|
25
|
+
private blockPath;
|
|
26
|
+
private costTracker;
|
|
27
|
+
private messages;
|
|
28
|
+
private running;
|
|
29
|
+
private toolsDiscovered;
|
|
30
|
+
private toolsUsedThisCycle;
|
|
31
|
+
private monitorName;
|
|
32
|
+
private monitorEmoji;
|
|
33
|
+
private blockConfig;
|
|
34
|
+
private adapter;
|
|
35
|
+
private registry;
|
|
36
|
+
constructor(options: {
|
|
37
|
+
blockPath: string;
|
|
38
|
+
blockConfig: BlockConfig;
|
|
39
|
+
adapter: LLMAdapter;
|
|
40
|
+
registry: IToolRegistry;
|
|
41
|
+
channel: Channel;
|
|
42
|
+
});
|
|
43
|
+
start(): Promise<void>;
|
|
44
|
+
stop(): Promise<void>;
|
|
45
|
+
private handleUserMessage;
|
|
46
|
+
private runConversationLoop;
|
|
47
|
+
/** Save smart memory — only key context, not full conversation. For session resumption. */
|
|
48
|
+
private saveSmartMemory;
|
|
49
|
+
private getSystemStatus;
|
|
50
|
+
private createBlockNatively;
|
|
51
|
+
/**
|
|
52
|
+
* Trim tool results in message history to save tokens.
|
|
53
|
+
*
|
|
54
|
+
* This is SYSTEM-LEVEL compaction — no model calls, zero extra cost.
|
|
55
|
+
* Only the internal `this.messages` array is trimmed. Full content is
|
|
56
|
+
* preserved in ConversationLogger and CLIChannel output.
|
|
57
|
+
*
|
|
58
|
+
* Rules:
|
|
59
|
+
* - list_tools_available results → "(N tools discovered)"
|
|
60
|
+
* - read_file results > 500 chars → truncated with note
|
|
61
|
+
* - search_files results > 500 chars → truncated with note
|
|
62
|
+
* - write_file / replace_in_file → kept as-is (already compact)
|
|
63
|
+
* - execute_command output > 1000 chars → truncated
|
|
64
|
+
*/
|
|
65
|
+
private trimHistory;
|
|
66
|
+
/**
|
|
67
|
+
* Save trimmed session state for resumption.
|
|
68
|
+
* If the terminal crashes or the user restarts, we can pick up
|
|
69
|
+
* from the trimmed messages rather than starting from scratch.
|
|
70
|
+
* This is separate from memory.md (which is for cross-session context).
|
|
71
|
+
*/
|
|
72
|
+
private saveSessionState;
|
|
73
|
+
/** Sync monitor identity after tool calls (since background daemons never restart natively). */
|
|
74
|
+
private syncIdentityFromFiles;
|
|
75
|
+
private dispatchToolCalls;
|
|
76
|
+
private getToolDefinitions;
|
|
77
|
+
private sendToChannel;
|
|
78
|
+
private readFile;
|
|
79
|
+
private buildSystemPrompt;
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=monitor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monitor.d.ts","sourceRoot":"","sources":["../../src/engine/monitor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,UAAU,EAA8B,OAAO,EAAE,WAAW,EAC5D,aAAa,EAChB,MAAM,oBAAoB,CAAC;AAuB5B,MAAM,WAAW,aAAa;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,WAAW,CAAC;IACzB,OAAO,EAAE,UAAU,CAAC;IACpB,QAAQ,EAAE,aAAa,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;;GAUG;AACH,qBAAa,OAAO;IAChB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,QAAQ,CAAgB;gBAEpB,OAAO,EAAE;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,WAAW,CAAC;QACzB,OAAO,EAAE,UAAU,CAAC;QACpB,QAAQ,EAAE,aAAa,CAAC;QACxB,OAAO,EAAE,OAAO,CAAC;KACpB;IAsBK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA4CtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAoCb,iBAAiB;YA0EjB,mBAAmB;IA2EjC,2FAA2F;YAC7E,eAAe;YAuCf,eAAe;YA8Bf,mBAAmB;IA0CjC;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,WAAW;IA6BnB;;;;;OAKG;YACW,gBAAgB;IA0B9B,gGAAgG;YAClF,qBAAqB;YAgDrB,iBAAiB;IAoE/B,OAAO,CAAC,kBAAkB;YAmBZ,aAAa;YAoBb,QAAQ;IAQtB,OAAO,CAAC,iBAAiB;CAgD5B"}
|