sentinel-agentos 0.3.6 → 0.3.8

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 (97) hide show
  1. package/dist/src/dashboard.html +175 -0
  2. package/package.json +3 -2
  3. package/LICENSE +0 -21
  4. package/README.md +0 -1797
  5. package/dist/adapters/evaluation-bridge.d.ts +0 -78
  6. package/dist/adapters/evaluation-bridge.d.ts.map +0 -1
  7. package/dist/adapters/evaluation-bridge.js +0 -273
  8. package/dist/adapters/evaluation-bridge.js.map +0 -1
  9. package/dist/adapters/memory-bridge.d.ts +0 -110
  10. package/dist/adapters/memory-bridge.d.ts.map +0 -1
  11. package/dist/adapters/memory-bridge.js +0 -316
  12. package/dist/adapters/memory-bridge.js.map +0 -1
  13. package/dist/adapters/migrate.d.ts +0 -2
  14. package/dist/adapters/migrate.d.ts.map +0 -1
  15. package/dist/adapters/migrate.js +0 -63
  16. package/dist/adapters/migrate.js.map +0 -1
  17. package/dist/api.d.ts +0 -151
  18. package/dist/api.d.ts.map +0 -1
  19. package/dist/api.js +0 -179
  20. package/dist/api.js.map +0 -1
  21. package/dist/cli.d.ts +0 -16
  22. package/dist/cli.d.ts.map +0 -1
  23. package/dist/cli.js +0 -350
  24. package/dist/cli.js.map +0 -1
  25. package/dist/core.d.ts +0 -151
  26. package/dist/core.d.ts.map +0 -1
  27. package/dist/core.js +0 -341
  28. package/dist/core.js.map +0 -1
  29. package/dist/evaluator/exec-evaluator.d.ts +0 -102
  30. package/dist/evaluator/exec-evaluator.d.ts.map +0 -1
  31. package/dist/evaluator/exec-evaluator.js +0 -266
  32. package/dist/evaluator/exec-evaluator.js.map +0 -1
  33. package/dist/evaluator/feedback.d.ts +0 -57
  34. package/dist/evaluator/feedback.d.ts.map +0 -1
  35. package/dist/evaluator/feedback.js +0 -225
  36. package/dist/evaluator/feedback.js.map +0 -1
  37. package/dist/evaluator/profiler.d.ts +0 -55
  38. package/dist/evaluator/profiler.d.ts.map +0 -1
  39. package/dist/evaluator/profiler.js +0 -117
  40. package/dist/evaluator/profiler.js.map +0 -1
  41. package/dist/guard/audit-log.d.ts +0 -47
  42. package/dist/guard/audit-log.d.ts.map +0 -1
  43. package/dist/guard/audit-log.js +0 -199
  44. package/dist/guard/audit-log.js.map +0 -1
  45. package/dist/guard/container-sandbox.d.ts +0 -25
  46. package/dist/guard/container-sandbox.d.ts.map +0 -1
  47. package/dist/guard/container-sandbox.js +0 -145
  48. package/dist/guard/container-sandbox.js.map +0 -1
  49. package/dist/guard/risk-gate.d.ts +0 -101
  50. package/dist/guard/risk-gate.d.ts.map +0 -1
  51. package/dist/guard/risk-gate.js +0 -200
  52. package/dist/guard/risk-gate.js.map +0 -1
  53. package/dist/guard/sandbox.d.ts +0 -112
  54. package/dist/guard/sandbox.d.ts.map +0 -1
  55. package/dist/guard/sandbox.js +0 -379
  56. package/dist/guard/sandbox.js.map +0 -1
  57. package/dist/guard/schema-gate.d.ts +0 -90
  58. package/dist/guard/schema-gate.d.ts.map +0 -1
  59. package/dist/guard/schema-gate.js +0 -452
  60. package/dist/guard/schema-gate.js.map +0 -1
  61. package/dist/guard/snapshot-verify.d.ts +0 -111
  62. package/dist/guard/snapshot-verify.d.ts.map +0 -1
  63. package/dist/guard/snapshot-verify.js +0 -571
  64. package/dist/guard/snapshot-verify.js.map +0 -1
  65. package/dist/index.d.ts +0 -28
  66. package/dist/index.d.ts.map +0 -1
  67. package/dist/index.js +0 -59
  68. package/dist/index.js.map +0 -1
  69. package/dist/memory/episodic.d.ts +0 -76
  70. package/dist/memory/episodic.d.ts.map +0 -1
  71. package/dist/memory/episodic.js +0 -289
  72. package/dist/memory/episodic.js.map +0 -1
  73. package/dist/memory/semantic.d.ts +0 -68
  74. package/dist/memory/semantic.d.ts.map +0 -1
  75. package/dist/memory/semantic.js +0 -299
  76. package/dist/memory/semantic.js.map +0 -1
  77. package/dist/memory/working.d.ts +0 -53
  78. package/dist/memory/working.d.ts.map +0 -1
  79. package/dist/memory/working.js +0 -166
  80. package/dist/memory/working.js.map +0 -1
  81. package/dist/middleware/openclaw.d.ts +0 -45
  82. package/dist/middleware/openclaw.d.ts.map +0 -1
  83. package/dist/middleware/openclaw.js +0 -95
  84. package/dist/middleware/openclaw.js.map +0 -1
  85. package/dist/middleware/wrapper.d.ts +0 -54
  86. package/dist/middleware/wrapper.d.ts.map +0 -1
  87. package/dist/middleware/wrapper.js +0 -155
  88. package/dist/middleware/wrapper.js.map +0 -1
  89. package/dist/server.d.ts +0 -45
  90. package/dist/server.d.ts.map +0 -1
  91. package/dist/server.js +0 -246
  92. package/dist/server.js.map +0 -1
  93. package/dist/types/index.d.ts +0 -228
  94. package/dist/types/index.d.ts.map +0 -1
  95. package/dist/types/index.js +0 -23
  96. package/dist/types/index.js.map +0 -1
  97. package/scripts/sentinel-light.js +0 -234
@@ -1,299 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.SemanticMemoryStore = void 0;
37
- const fs = __importStar(require("fs"));
38
- const path = __importStar(require("path"));
39
- /**
40
- * Semantic Memory — durable, distilled knowledge.
41
- *
42
- * Stores user preferences, project context, learned rules, and glossary
43
- * extracted from Episodic Memory over time. This is what persists
44
- * across all sessions and gets injected at startup.
45
- */
46
- class SemanticMemoryStore {
47
- memory;
48
- storagePath;
49
- _saveTimer = null;
50
- _dirty = false;
51
- constructor() {
52
- this.memory = {
53
- userPreferences: {},
54
- userFacts: [],
55
- projectContext: {},
56
- learnedRules: [],
57
- glossary: {},
58
- };
59
- }
60
- /** Enable disk persistence */
61
- enablePersistence(workspaceRoot) {
62
- this.storagePath = path.join(workspaceRoot, '.agentos', 'semantic.json');
63
- this.load();
64
- }
65
- /** Get the full semantic memory */
66
- getMemory() {
67
- return this.memory;
68
- }
69
- // === User Preferences ===
70
- /** Set a user preference */
71
- setPreference(key, value) {
72
- this.memory.userPreferences[key] = value;
73
- this.save();
74
- }
75
- /** Get a user preference */
76
- getPreference(key) {
77
- return this.memory.userPreferences[key];
78
- }
79
- /** Get all preferences */
80
- getAllPreferences() {
81
- return { ...this.memory.userPreferences };
82
- }
83
- /** Remove a preference */
84
- removePreference(key) {
85
- delete this.memory.userPreferences[key];
86
- this.save();
87
- }
88
- // === User Facts ===
89
- /** Add a fact about the user */
90
- addFact(fact) {
91
- const existing = this.memory.userFacts.find((f) => f.fact === fact);
92
- if (existing) {
93
- existing.lastReferenced = Date.now();
94
- }
95
- else {
96
- this.memory.userFacts.push({
97
- fact,
98
- timestamp: Date.now(),
99
- lastReferenced: Date.now(),
100
- });
101
- this.save();
102
- }
103
- }
104
- /** Get active (non-stale) user facts — updates lastReferenced on read */
105
- getFacts(maxStaleMs = 30 * 24 * 60 * 60 * 1000) {
106
- const now = Date.now();
107
- const staleThreshold = now - maxStaleMs;
108
- return this.memory.userFacts
109
- .filter((f) => { if (f.lastReferenced >= staleThreshold) {
110
- f.lastReferenced = now;
111
- return true;
112
- } return false; })
113
- .map((f) => f.fact);
114
- }
115
- /** Get all facts including stale ones */
116
- getAllFacts() {
117
- return [...this.memory.userFacts];
118
- }
119
- // === Project Context ===
120
- /** Set or update project context — merges with existing, preserves extra fields */
121
- setProjectContext(projectName, context) {
122
- const existing = this.memory.projectContext[projectName] ?? {};
123
- this.memory.projectContext[projectName] = Object.assign({}, existing, context);
124
- this.save();
125
- }
126
- /** Get project context */
127
- getProjectContext(projectName) {
128
- return this.memory.projectContext[projectName];
129
- }
130
- /** Get all project contexts */
131
- getAllProjects() {
132
- return Object.keys(this.memory.projectContext);
133
- }
134
- // === Learned Rules ===
135
- /** Learn a new rule or reinforce an existing one */
136
- learnRule(rule, source) {
137
- const existing = this.memory.learnedRules.find((r) => r.rule === rule);
138
- if (existing) {
139
- // Reinforce: asymptotically approach 0.85 (never hits 1.0)
140
- existing.confidence = 0.85 - (0.85 - existing.confidence) * 0.5;
141
- existing.lastReferenced = Date.now();
142
- if (!existing.source.includes(source)) {
143
- existing.source.push(source);
144
- }
145
- }
146
- else {
147
- this.memory.learnedRules.push({
148
- rule,
149
- confidence: 0.5,
150
- source: [source],
151
- lastReferenced: Date.now(),
152
- });
153
- }
154
- this.save();
155
- }
156
- /** Get rules above a confidence threshold — updates lastReferenced on read */
157
- getRules(minConfidence = 0.5) {
158
- const now = Date.now();
159
- return this.memory.learnedRules
160
- .filter((r) => r.confidence >= minConfidence)
161
- .map((r) => { r.lastReferenced = now; return r; })
162
- .sort((a, b) => b.confidence - a.confidence);
163
- }
164
- /** Decay confidence of rules not referenced in a given timespan */
165
- decayUnusedRules(maxStaleMs = 3 * 24 * 60 * 60 * 1000) {
166
- const staleThreshold = Date.now() - maxStaleMs;
167
- let decayed = 0;
168
- for (const rule of this.memory.learnedRules) {
169
- if (rule.lastReferenced < staleThreshold && rule.confidence > 0.1) {
170
- rule.confidence = Math.max(0.1, rule.confidence - 0.05);
171
- decayed++;
172
- }
173
- }
174
- if (decayed > 0)
175
- this.save();
176
- return decayed;
177
- }
178
- /** Get all rules regardless of confidence */
179
- getAllRules() {
180
- return [...this.memory.learnedRules];
181
- }
182
- // === Glossary ===
183
- /** Add or update a glossary term */
184
- defineTerm(term, meaning) {
185
- this.memory.glossary[term] = meaning;
186
- this.save();
187
- }
188
- /** Look up a glossary term */
189
- lookupTerm(term) {
190
- return this.memory.glossary[term];
191
- }
192
- /** Get the entire glossary */
193
- getGlossary() {
194
- return { ...this.memory.glossary };
195
- }
196
- /**
197
- * Generate a context summary for injection into the session prompt.
198
- * Concise but informative — designed to fit in a system prompt prefix.
199
- */
200
- generateContextSummary(maxChars = 3000) {
201
- const parts = ['[AgentOS Semantic Memory]', ''];
202
- // User facts (non-stale only)
203
- const activeFacts = this.getFacts();
204
- if (activeFacts.length > 0) {
205
- parts.push('## About the User');
206
- for (const fact of activeFacts.slice(0, 5)) {
207
- parts.push(`- ${fact}`);
208
- }
209
- parts.push('');
210
- }
211
- // Preferences
212
- const prefs = Object.entries(this.memory.userPreferences);
213
- if (prefs.length > 0) {
214
- parts.push('## Preferences');
215
- for (const [key, value] of prefs.slice(0, 10)) {
216
- parts.push(`- ${key}: ${JSON.stringify(value)}`);
217
- }
218
- parts.push('');
219
- }
220
- // Project context
221
- const projects = Object.keys(this.memory.projectContext);
222
- if (projects.length > 0) {
223
- parts.push('## Project Context');
224
- for (const proj of projects.slice(0, 3)) {
225
- const ctx = this.memory.projectContext[proj];
226
- parts.push(`### ${proj}`);
227
- if (ctx.description)
228
- parts.push(`- Description: ${ctx.description}`);
229
- if (ctx.techStack?.length)
230
- parts.push(`- Tech: ${ctx.techStack.join(', ')}`);
231
- if (ctx.conventions?.length)
232
- parts.push(`- Conventions: ${ctx.conventions.slice(0, 5).join(', ')}`);
233
- parts.push('');
234
- }
235
- }
236
- // Learned rules (high confidence only)
237
- const rules = this.getRules(0.7);
238
- if (rules.length > 0) {
239
- parts.push('## Learned Rules');
240
- for (const r of rules.slice(0, 5)) {
241
- parts.push(`- [${Math.round(r.confidence * 100)}%] ${r.rule}`);
242
- }
243
- parts.push('');
244
- }
245
- const summary = parts.join('\n');
246
- return summary.length > maxChars ? summary.slice(0, maxChars) + '\n...' : summary;
247
- }
248
- /** Persist to disk */
249
- markDirty() {
250
- this._dirty = true;
251
- if (!this._saveTimer) {
252
- this._saveTimer = setTimeout(() => {
253
- this._saveTimer = null;
254
- if (this._dirty) {
255
- this.persist();
256
- this._dirty = false;
257
- }
258
- }, 300);
259
- }
260
- }
261
- /** Persist to disk */
262
- persist() {
263
- if (!this.storagePath)
264
- return;
265
- const dir = path.dirname(this.storagePath);
266
- if (!fs.existsSync(dir)) {
267
- fs.mkdirSync(dir, { recursive: true });
268
- }
269
- fs.writeFileSync(this.storagePath, JSON.stringify(this.memory, null, 2), 'utf-8');
270
- }
271
- save() {
272
- this.markDirty();
273
- }
274
- /** Force immediate write to disk (for testing / shutdown) */
275
- flush() {
276
- if (this._saveTimer) {
277
- clearTimeout(this._saveTimer);
278
- this._saveTimer = null;
279
- }
280
- if (this._dirty) {
281
- this.persist();
282
- this._dirty = false;
283
- }
284
- }
285
- /** Load from disk */
286
- load() {
287
- try {
288
- if (fs.existsSync(this.storagePath)) {
289
- const data = fs.readFileSync(this.storagePath, 'utf-8');
290
- this.memory = JSON.parse(data);
291
- }
292
- }
293
- catch {
294
- // Keep defaults
295
- }
296
- }
297
- }
298
- exports.SemanticMemoryStore = SemanticMemoryStore;
299
- //# sourceMappingURL=semantic.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"semantic.js","sourceRoot":"","sources":["../../src/memory/semantic.ts"],"names":[],"mappings":"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"}
@@ -1,53 +0,0 @@
1
- import { Message, Task, ToolResult, TokenBudget } from '../types';
2
- /**
3
- * WorkingMemory state interface (matches types/index.ts WorkingMemory).
4
- */
5
- export interface WorkingMemoryState {
6
- sessionId: string;
7
- recentMessages: Message[];
8
- currentTask?: Task;
9
- recentToolResults: Map<string, ToolResult>;
10
- openFiles: string[];
11
- budget: TokenBudget;
12
- }
13
- /**
14
- * Working Memory — current session's live context.
15
- *
16
- * Holds recent messages, current task, tool results cache,
17
- * open files, and token budget for the active session.
18
- * On session end, important items are promoted to Episodic Memory.
19
- * When token budget is exceeded, old messages are compressed.
20
- */
21
- export declare class WorkingMemory {
22
- readonly sessionId: string;
23
- private _maxTokens;
24
- recentMessages: Message[];
25
- currentTask?: Task;
26
- recentToolResults: Map<string, ToolResult>;
27
- openFiles: string[];
28
- budget: TokenBudget;
29
- constructor(maxTokens?: number);
30
- /** Maximum configured tokens */
31
- get maxTokens(): number;
32
- /** Get the current state as a snapshot */
33
- getState(): WorkingMemoryState;
34
- /** Add a message to the working memory */
35
- addMessage(role: 'user' | 'agent' | 'tool', content: string): void;
36
- /** Set or update the current task */
37
- setTask(task: Task): void;
38
- /** Update a step's status */
39
- updateStepStatus(stepIndex: number, status: Task['steps'][number]['status']): void;
40
- /** Track an open file */
41
- addOpenFile(filePath: string): void;
42
- /** Remove a file from tracking */
43
- removeOpenFile(filePath: string): void;
44
- /** Cache a tool call result */
45
- cacheToolResult(toolName: string, result: unknown): void;
46
- /** Check if a tool result is cached and fresh */
47
- getCachedResult(toolName: string, maxAgeMs?: number): ToolResult | undefined;
48
- /** Clear working memory (called on session end) */
49
- clear(): void;
50
- /** Estimate token count (rough: 1 token ≈ 4 chars for English/Chinese) */
51
- private estimateTokens;
52
- }
53
- //# sourceMappingURL=working.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"working.d.ts","sourceRoot":"","sources":["../../src/memory/working.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,IAAI,EACJ,UAAU,EACV,WAAW,EACZ,MAAM,UAAU,CAAC;AAGlB;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,OAAO,EAAE,CAAC;IAC1B,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC3C,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;CACrB;AASD;;;;;;;GAOG;AACH,qBAAa,aAAa;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,UAAU,CAAS;IAC3B,cAAc,EAAE,OAAO,EAAE,CAAC;IAC1B,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC3C,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;gBAER,SAAS,SAAQ;IAS7B,gCAAgC;IAChC,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,0CAA0C;IAC1C,QAAQ,IAAI,kBAAkB;IAW9B,0CAA0C;IAC1C,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAmBlE,qCAAqC;IACrC,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAIzB,6BAA6B;IAC7B,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI;IAMlF,yBAAyB;IACzB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAMnC,kCAAkC;IAClC,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAItC,+BAA+B;IAC/B,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI;IAoBxD,iDAAiD;IACjD,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,SAAQ,GAAG,UAAU,GAAG,SAAS;IAU3E,mDAAmD;IACnD,KAAK,IAAI,IAAI;IAQb,0EAA0E;IAC1E,OAAO,CAAC,cAAc;CAGvB"}
@@ -1,166 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.WorkingMemory = void 0;
37
- const crypto = __importStar(require("crypto"));
38
- /**
39
- * Generate a unique session ID.
40
- */
41
- function generateSessionId() {
42
- return `wm_${Date.now()}_${crypto.randomBytes(4).toString('hex')}`;
43
- }
44
- /**
45
- * Working Memory — current session's live context.
46
- *
47
- * Holds recent messages, current task, tool results cache,
48
- * open files, and token budget for the active session.
49
- * On session end, important items are promoted to Episodic Memory.
50
- * When token budget is exceeded, old messages are compressed.
51
- */
52
- class WorkingMemory {
53
- sessionId;
54
- _maxTokens;
55
- recentMessages;
56
- currentTask;
57
- recentToolResults;
58
- openFiles;
59
- budget;
60
- constructor(maxTokens = 50000) {
61
- this.sessionId = generateSessionId();
62
- this._maxTokens = maxTokens;
63
- this.recentMessages = [];
64
- this.recentToolResults = new Map();
65
- this.openFiles = [];
66
- this.budget = { used: 0, limit: maxTokens };
67
- }
68
- /** Maximum configured tokens */
69
- get maxTokens() {
70
- return this._maxTokens;
71
- }
72
- /** Get the current state as a snapshot */
73
- getState() {
74
- return {
75
- sessionId: this.sessionId,
76
- recentMessages: [...this.recentMessages],
77
- currentTask: this.currentTask ? { ...this.currentTask } : undefined,
78
- recentToolResults: new Map(this.recentToolResults),
79
- openFiles: [...this.openFiles],
80
- budget: { ...this.budget },
81
- };
82
- }
83
- /** Add a message to the working memory */
84
- addMessage(role, content) {
85
- const msg = {
86
- role,
87
- content,
88
- timestamp: Date.now(),
89
- };
90
- this.recentMessages.push(msg);
91
- this.budget.used += this.estimateTokens(content);
92
- // Trim old messages if over budget
93
- while (this.budget.used > this.budget.limit && this.recentMessages.length > 2) {
94
- const toRemove = this.recentMessages.shift();
95
- if (toRemove) {
96
- this.budget.used -= this.estimateTokens(toRemove.content);
97
- }
98
- }
99
- }
100
- /** Set or update the current task */
101
- setTask(task) {
102
- this.currentTask = task;
103
- }
104
- /** Update a step's status */
105
- updateStepStatus(stepIndex, status) {
106
- if (this.currentTask && stepIndex < this.currentTask.steps.length) {
107
- this.currentTask.steps[stepIndex].status = status;
108
- }
109
- }
110
- /** Track an open file */
111
- addOpenFile(filePath) {
112
- if (!this.openFiles.includes(filePath)) {
113
- this.openFiles.push(filePath);
114
- }
115
- }
116
- /** Remove a file from tracking */
117
- removeOpenFile(filePath) {
118
- this.openFiles = this.openFiles.filter((f) => f !== filePath);
119
- }
120
- /** Cache a tool call result */
121
- cacheToolResult(toolName, result) {
122
- // Evict oldest entry if over capacity (LRU-style cap=100)
123
- if (this.recentToolResults.size >= 100) {
124
- let oldestKey = '';
125
- let oldestTime = Infinity;
126
- for (const [key, val] of this.recentToolResults) {
127
- if (val.timestamp < oldestTime) {
128
- oldestTime = val.timestamp;
129
- oldestKey = key;
130
- }
131
- }
132
- if (oldestKey)
133
- this.recentToolResults.delete(oldestKey);
134
- }
135
- this.recentToolResults.set(toolName, {
136
- toolName,
137
- result,
138
- timestamp: Date.now(),
139
- });
140
- }
141
- /** Check if a tool result is cached and fresh */
142
- getCachedResult(toolName, maxAgeMs = 30000) {
143
- const cached = this.recentToolResults.get(toolName);
144
- if (cached && Date.now() - cached.timestamp < maxAgeMs) {
145
- return cached;
146
- }
147
- // Clean up stale entry
148
- if (cached)
149
- this.recentToolResults.delete(toolName);
150
- return undefined;
151
- }
152
- /** Clear working memory (called on session end) */
153
- clear() {
154
- this.recentMessages = [];
155
- this.currentTask = undefined;
156
- this.recentToolResults.clear();
157
- this.openFiles = [];
158
- this.budget.used = 0;
159
- }
160
- /** Estimate token count (rough: 1 token ≈ 4 chars for English/Chinese) */
161
- estimateTokens(text) {
162
- return Math.ceil(text.length / 2); // Chinese chars ≈ 1 token each
163
- }
164
- }
165
- exports.WorkingMemory = WorkingMemory;
166
- //# sourceMappingURL=working.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"working.js","sourceRoot":"","sources":["../../src/memory/working.ts"],"names":[],"mappings":"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"}
@@ -1,45 +0,0 @@
1
- /**
2
- * Sentinel AgentOS Middleware — OpenClaw Plugin
3
- *
4
- * Seamless integration with OpenClaw agent runtime.
5
- * Hooks into OpenClaw's tool-call lifecycle to add Guard + Memory + Evaluator.
6
- *
7
- * Usage:
8
- * In your OpenClaw skill or agent config:
9
- *
10
- * import { sentinelPlugin } from 'sentinel-agentos';
11
- *
12
- * const plugin = sentinelPlugin({ workspaceRoot: '/workspace' });
13
- * plugin.onBeforeTool((toolName, params) => { ... }); // returns risk + schema
14
- * plugin.onAfterTool((toolName, params, result) => { ... }); // returns verify + audit
15
- */
16
- import { WrappedAgent } from './wrapper';
17
- import type { AgentOSConfig } from '../types';
18
- export interface OpenClawPlugin {
19
- readonly wrapped: WrappedAgent;
20
- /** Called before an OpenClaw tool call */
21
- onBeforeTool: (toolName: string, params: Record<string, unknown>) => {
22
- allowed: boolean;
23
- riskScore: number;
24
- riskAction: string;
25
- schemaErrors?: string[];
26
- };
27
- /** Called after an OpenClaw tool call */
28
- onAfterTool: (toolName: string, params: Record<string, unknown>, result: unknown, startTime: number) => {
29
- verifyPassed: boolean;
30
- verifyDetail: string;
31
- auditId: string;
32
- };
33
- /** Session management */
34
- sessionStart: (sessionId: string) => string;
35
- sessionEnd: (sessionId: string) => void;
36
- /** Feedback hooks — call these when user signals are detected */
37
- recordApproval: (sessionId: string) => void;
38
- recordCorrection: (sessionId: string) => void;
39
- recordDeletion: (sessionId: string) => void;
40
- }
41
- /**
42
- * Create an OpenClaw plugin that wraps Sentinel AgentOS.
43
- */
44
- export declare function sentinelPlugin(config?: Partial<AgentOSConfig>): OpenClawPlugin;
45
- //# sourceMappingURL=openclaw.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openclaw.d.ts","sourceRoot":"","sources":["../../src/middleware/openclaw.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAa,YAAY,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAE/B,0CAA0C;IAC1C,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK;QACnE,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;KACzB,CAAC;IAEF,yCAAyC;IACzC,WAAW,EAAE,CACX,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,MAAM,KACd;QACH,YAAY,EAAE,OAAO,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IAEF,yBAAyB;IACzB,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;IAC5C,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAExC,iEAAiE;IACjE,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,cAAc,CAmF9E"}