sentinel-agentos 0.1.0

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 (79) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +636 -0
  3. package/dist/api.d.ts +151 -0
  4. package/dist/api.d.ts.map +1 -0
  5. package/dist/api.js +179 -0
  6. package/dist/api.js.map +1 -0
  7. package/dist/cli.d.ts +14 -0
  8. package/dist/cli.d.ts.map +1 -0
  9. package/dist/cli.js +182 -0
  10. package/dist/cli.js.map +1 -0
  11. package/dist/core.d.ts +139 -0
  12. package/dist/core.d.ts.map +1 -0
  13. package/dist/core.js +247 -0
  14. package/dist/core.js.map +1 -0
  15. package/dist/evaluator/exec-evaluator.d.ts +102 -0
  16. package/dist/evaluator/exec-evaluator.d.ts.map +1 -0
  17. package/dist/evaluator/exec-evaluator.js +266 -0
  18. package/dist/evaluator/exec-evaluator.js.map +1 -0
  19. package/dist/evaluator/feedback.d.ts +66 -0
  20. package/dist/evaluator/feedback.d.ts.map +1 -0
  21. package/dist/evaluator/feedback.js +195 -0
  22. package/dist/evaluator/feedback.js.map +1 -0
  23. package/dist/evaluator/profiler.d.ts +53 -0
  24. package/dist/evaluator/profiler.d.ts.map +1 -0
  25. package/dist/evaluator/profiler.js +108 -0
  26. package/dist/evaluator/profiler.js.map +1 -0
  27. package/dist/guard/audit-log.d.ts +75 -0
  28. package/dist/guard/audit-log.d.ts.map +1 -0
  29. package/dist/guard/audit-log.js +207 -0
  30. package/dist/guard/audit-log.js.map +1 -0
  31. package/dist/guard/risk-gate.d.ts +97 -0
  32. package/dist/guard/risk-gate.d.ts.map +1 -0
  33. package/dist/guard/risk-gate.js +160 -0
  34. package/dist/guard/risk-gate.js.map +1 -0
  35. package/dist/guard/sandbox.d.ts +112 -0
  36. package/dist/guard/sandbox.d.ts.map +1 -0
  37. package/dist/guard/sandbox.js +379 -0
  38. package/dist/guard/sandbox.js.map +1 -0
  39. package/dist/guard/schema-gate.d.ts +90 -0
  40. package/dist/guard/schema-gate.d.ts.map +1 -0
  41. package/dist/guard/schema-gate.js +452 -0
  42. package/dist/guard/schema-gate.js.map +1 -0
  43. package/dist/guard/snapshot-verify.d.ts +111 -0
  44. package/dist/guard/snapshot-verify.d.ts.map +1 -0
  45. package/dist/guard/snapshot-verify.js +578 -0
  46. package/dist/guard/snapshot-verify.js.map +1 -0
  47. package/dist/index.d.ts +28 -0
  48. package/dist/index.d.ts.map +1 -0
  49. package/dist/index.js +59 -0
  50. package/dist/index.js.map +1 -0
  51. package/dist/memory/episodic.d.ts +76 -0
  52. package/dist/memory/episodic.d.ts.map +1 -0
  53. package/dist/memory/episodic.js +289 -0
  54. package/dist/memory/episodic.js.map +1 -0
  55. package/dist/memory/semantic.d.ts +69 -0
  56. package/dist/memory/semantic.d.ts.map +1 -0
  57. package/dist/memory/semantic.js +243 -0
  58. package/dist/memory/semantic.js.map +1 -0
  59. package/dist/memory/working.d.ts +53 -0
  60. package/dist/memory/working.d.ts.map +1 -0
  61. package/dist/memory/working.js +150 -0
  62. package/dist/memory/working.js.map +1 -0
  63. package/dist/middleware/openclaw.d.ts +45 -0
  64. package/dist/middleware/openclaw.d.ts.map +1 -0
  65. package/dist/middleware/openclaw.js +95 -0
  66. package/dist/middleware/openclaw.js.map +1 -0
  67. package/dist/middleware/wrapper.d.ts +54 -0
  68. package/dist/middleware/wrapper.d.ts.map +1 -0
  69. package/dist/middleware/wrapper.js +155 -0
  70. package/dist/middleware/wrapper.js.map +1 -0
  71. package/dist/server.d.ts +45 -0
  72. package/dist/server.d.ts.map +1 -0
  73. package/dist/server.js +229 -0
  74. package/dist/server.js.map +1 -0
  75. package/dist/types/index.d.ts +201 -0
  76. package/dist/types/index.d.ts.map +1 -0
  77. package/dist/types/index.js +4 -0
  78. package/dist/types/index.js.map +1 -0
  79. package/package.json +64 -0
@@ -0,0 +1,578 @@
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.VerifyGate = exports.SnapshotGate = void 0;
37
+ const crypto = __importStar(require("crypto"));
38
+ const fs = __importStar(require("fs"));
39
+ const path = __importStar(require("path"));
40
+ /**
41
+ * Hash a file's content with SHA-256.
42
+ * Returns undefined if the file doesn't exist.
43
+ */
44
+ function hashFile(filePath) {
45
+ try {
46
+ const content = fs.readFileSync(filePath);
47
+ return `sha256:${crypto.createHash('sha256').update(content).digest('hex')}`;
48
+ }
49
+ catch {
50
+ return undefined;
51
+ }
52
+ }
53
+ /**
54
+ * Collect file hashes for files matched by glob patterns.
55
+ */
56
+ function collectHashes(rootDir, patterns) {
57
+ const hashes = {};
58
+ for (const pattern of patterns) {
59
+ // Simple glob: support * and **
60
+ const baseDir = pattern.replace(/\*\*\/\*$/, '').replace(/\/\*$/, '');
61
+ const fullBase = path.resolve(rootDir, baseDir);
62
+ if (fs.existsSync(fullBase) && fs.statSync(fullBase).isDirectory()) {
63
+ walkDir(fullBase, fullBase, hashes);
64
+ }
65
+ else if (fs.existsSync(fullBase)) {
66
+ const h = hashFile(fullBase);
67
+ if (h)
68
+ hashes[pattern] = h;
69
+ }
70
+ }
71
+ return hashes;
72
+ }
73
+ function walkDir(dir, baseDir, hashes) {
74
+ const entries = fs.readdirSync(dir, { withFileTypes: true });
75
+ for (const entry of entries) {
76
+ const full = path.join(dir, entry.name);
77
+ if (entry.isDirectory()) {
78
+ // Skip node_modules, .git, dist
79
+ if (['node_modules', '.git', 'dist', '.agentos'].includes(entry.name))
80
+ continue;
81
+ walkDir(full, baseDir, hashes);
82
+ }
83
+ else if (entry.isFile()) {
84
+ const rel = path.relative(baseDir, full).replace(/\\/g, '/');
85
+ const h = hashFile(full);
86
+ if (h)
87
+ hashes[rel] = h;
88
+ }
89
+ }
90
+ }
91
+ /**
92
+ * Generate a unique snapshot ID.
93
+ */
94
+ function generateId() {
95
+ return `snap_${Date.now()}_${crypto.randomBytes(4).toString('hex')}`;
96
+ }
97
+ /**
98
+ * Snapshot Gate — captures pre-execution state for later diff/rollback.
99
+ *
100
+ * Takes a lightweight snapshot (file hashes, git status, env vars)
101
+ * before a tool call executes so that Verify Gate and Rollback
102
+ * can compare before/after state.
103
+ */
104
+ class SnapshotGate {
105
+ workspaceRoot;
106
+ constructor(workspaceRoot) {
107
+ this.workspaceRoot = workspaceRoot;
108
+ }
109
+ /**
110
+ * Create a snapshot before a tool call.
111
+ *
112
+ * @param toolCallId - Unique ID for this tool call
113
+ * @param toolName - Name of the tool being called
114
+ * @param affectedFiles - Files expected to be affected (for scoped snapshots)
115
+ * @param scope - Snapshot scope (file/workspace/full)
116
+ */
117
+ takeSnapshot(toolCallId, _toolName, affectedFiles = [], scope = 'file') {
118
+ let fileHashes = {};
119
+ if (scope === 'file' && affectedFiles.length > 0) {
120
+ // Hash only affected files
121
+ for (const file of affectedFiles) {
122
+ const h = hashFile(file);
123
+ if (h)
124
+ fileHashes[file] = h;
125
+ }
126
+ }
127
+ else if (scope === 'workspace') {
128
+ // Hash entire workspace (excl node_modules, .git, dist)
129
+ fileHashes = collectHashes(this.workspaceRoot, ['**/*']);
130
+ }
131
+ // scope === 'full' would capture more (env, etc.) — reserved for v2
132
+ const { gitHead, gitDirty } = this.getGitStatus();
133
+ return {
134
+ id: generateId(),
135
+ toolCallId,
136
+ timestamp: Date.now(),
137
+ scope,
138
+ fileHashes,
139
+ envVars: {}, // scoped env capture — TBD in future iterations
140
+ gitHead,
141
+ gitDirty,
142
+ };
143
+ }
144
+ /**
145
+ * Compute the diff between a snapshot and the current filesystem state.
146
+ */
147
+ computeDiff(snapshot) {
148
+ const filesChanged = [];
149
+ let linesAdded = 0;
150
+ let linesRemoved = 0;
151
+ const hashBefore = {};
152
+ const hashAfter = {};
153
+ for (const [file, oldHash] of Object.entries(snapshot.fileHashes)) {
154
+ const fullPath = path.isAbsolute(file)
155
+ ? file
156
+ : path.resolve(this.workspaceRoot, file);
157
+ const newHash = hashFile(fullPath);
158
+ hashBefore[file] = oldHash;
159
+ hashAfter[file] = newHash ?? 'MISSING';
160
+ if (newHash !== oldHash) {
161
+ filesChanged.push(file);
162
+ // Estimate line changes if file exists
163
+ if (newHash) {
164
+ try {
165
+ const content = fs.readFileSync(fullPath, 'utf-8');
166
+ const newLines = content.split('\n').length;
167
+ // Try to read old content from git
168
+ try {
169
+ const { execSync } = require('child_process');
170
+ const oldContent = execSync(`git show ${snapshot.gitHead}:${file}`, { cwd: this.workspaceRoot, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'ignore'] });
171
+ const oldLines = oldContent.split('\n').length;
172
+ linesAdded += Math.max(0, newLines - oldLines);
173
+ linesRemoved += Math.max(0, oldLines - newLines);
174
+ }
175
+ catch {
176
+ // File didn't exist in git — treat as entirely new
177
+ linesAdded += newLines;
178
+ }
179
+ }
180
+ catch {
181
+ // Can't read — skip line counting
182
+ }
183
+ }
184
+ else {
185
+ // File was deleted
186
+ try {
187
+ const { execSync } = require('child_process');
188
+ const oldContent = execSync(`git show ${snapshot.gitHead}:${file}`, { cwd: this.workspaceRoot, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'ignore'] });
189
+ linesRemoved += oldContent.split('\n').length;
190
+ }
191
+ catch {
192
+ // Can't determine old line count
193
+ }
194
+ }
195
+ }
196
+ }
197
+ if (filesChanged.length === 0)
198
+ return null;
199
+ return {
200
+ filesChanged,
201
+ linesAdded,
202
+ linesRemoved,
203
+ hashBefore,
204
+ hashAfter,
205
+ };
206
+ }
207
+ /**
208
+ * Get current git HEAD and dirty status.
209
+ */
210
+ getGitStatus() {
211
+ try {
212
+ const { execSync } = require('child_process');
213
+ const head = execSync('git rev-parse HEAD', {
214
+ cwd: this.workspaceRoot,
215
+ encoding: 'utf-8',
216
+ stdio: ['pipe', 'pipe', 'ignore'],
217
+ }).trim();
218
+ const status = execSync('git status --porcelain', {
219
+ cwd: this.workspaceRoot,
220
+ encoding: 'utf-8',
221
+ stdio: ['pipe', 'pipe', 'ignore'],
222
+ });
223
+ return { gitHead: head, gitDirty: status.length > 0 };
224
+ }
225
+ catch {
226
+ return { gitHead: 'unknown', gitDirty: false };
227
+ }
228
+ }
229
+ /**
230
+ * Roll back a file to the snapshot state using git.
231
+ */
232
+ rollbackFile(snapshot, file) {
233
+ try {
234
+ const { execSync } = require('child_process');
235
+ execSync(`git checkout ${snapshot.gitHead} -- "${file}"`, {
236
+ cwd: this.workspaceRoot,
237
+ stdio: ['pipe', 'pipe', 'ignore'],
238
+ });
239
+ return true;
240
+ }
241
+ catch {
242
+ return false;
243
+ }
244
+ }
245
+ /**
246
+ * Roll back all changed files to their snapshot state.
247
+ */
248
+ rollback(snapshot) {
249
+ const filesRolledBack = [];
250
+ const errors = [];
251
+ for (const file of Object.keys(snapshot.fileHashes)) {
252
+ const success = this.rollbackFile(snapshot, file);
253
+ if (success) {
254
+ filesRolledBack.push(file);
255
+ }
256
+ else {
257
+ errors.push(file);
258
+ }
259
+ }
260
+ return {
261
+ success: errors.length === 0,
262
+ filesRolledBack,
263
+ errors,
264
+ };
265
+ }
266
+ }
267
+ exports.SnapshotGate = SnapshotGate;
268
+ /**
269
+ * Verify Gate — post-execution state verification.
270
+ *
271
+ * Checks that what the agent claimed actually happened.
272
+ * Zero LLM dependency: file existence, hash changes, lint, typecheck, etc.
273
+ */
274
+ class VerifyGate {
275
+ workspaceRoot;
276
+ constructor(workspaceRoot) {
277
+ this.workspaceRoot = workspaceRoot;
278
+ }
279
+ /**
280
+ * Run verification checks after a tool call.
281
+ *
282
+ * @param toolName - The tool that was called
283
+ * @param snapshot - Pre-execution snapshot
284
+ * @param claimedResult - What the agent claims the result was
285
+ */
286
+ verify(toolName, snapshot, claimedResult) {
287
+ const checks = [];
288
+ // Depending on the tool, run relevant checks
289
+ switch (true) {
290
+ // File creation/modification tools
291
+ case this.isFileTool(toolName):
292
+ checks.push(...this.verifyFiles(snapshot, claimedResult?.files));
293
+ break;
294
+ // npm publish
295
+ case toolName === 'npm_publish' || toolName.includes('npm'):
296
+ checks.push(this.verifyNpmPublish(claimedResult?.published));
297
+ break;
298
+ // git push
299
+ case toolName === 'git_push' || toolName.includes('git_push'):
300
+ checks.push(this.verifyGitPush());
301
+ break;
302
+ default:
303
+ // No specific checks for this tool type
304
+ }
305
+ // Run common checks that always apply
306
+ if (snapshot.scope === 'file' || snapshot.scope === 'workspace') {
307
+ checks.push(...this.verifyFileChanges(snapshot));
308
+ }
309
+ // Always run result format checks
310
+ checks.push(this.verifyResultFormat(claimedResult));
311
+ checks.push(this.verifyNonEmptyResult(claimedResult));
312
+ return this.evaluateChecks(checks);
313
+ }
314
+ /**
315
+ * Verify that claimed files actually exist.
316
+ */
317
+ verifyFiles(_snapshot, claimedFiles) {
318
+ const checks = [];
319
+ // Check if files that were supposed to be created actually exist
320
+ if (claimedFiles) {
321
+ for (const file of claimedFiles) {
322
+ const fullPath = path.isAbsolute(file)
323
+ ? file
324
+ : path.resolve(this.workspaceRoot, file);
325
+ if (fs.existsSync(fullPath)) {
326
+ checks.push({ name: `File exists: ${file}`, status: 'PASS' });
327
+ }
328
+ else {
329
+ checks.push({
330
+ name: `File exists: ${file}`,
331
+ status: 'FAIL',
332
+ detail: 'Agent claimed file was created but it does not exist',
333
+ });
334
+ }
335
+ }
336
+ }
337
+ return checks;
338
+ }
339
+ /**
340
+ * Verify that files actually changed compared to snapshot.
341
+ */
342
+ verifyFileChanges(snapshot) {
343
+ const checks = [];
344
+ for (const [file, oldHash] of Object.entries(snapshot.fileHashes)) {
345
+ const fullPath = path.isAbsolute(file)
346
+ ? file
347
+ : path.resolve(this.workspaceRoot, file);
348
+ const newHash = hashFile(fullPath);
349
+ if (!newHash) {
350
+ checks.push({
351
+ name: `File unchanged check: ${file}`,
352
+ status: 'WARN',
353
+ detail: 'File no longer exists',
354
+ });
355
+ }
356
+ else if (newHash === oldHash) {
357
+ checks.push({
358
+ name: `File unchanged check: ${file}`,
359
+ status: 'WARN',
360
+ detail: 'File hash unchanged — no modifications detected',
361
+ });
362
+ }
363
+ else {
364
+ checks.push({ name: `File unchanged check: ${file}`, status: 'PASS' });
365
+ }
366
+ }
367
+ // Lint check for TypeScript/JavaScript files
368
+ const codeFiles = Object.keys(snapshot.fileHashes).filter((f) => f.endsWith('.ts') || f.endsWith('.tsx') || f.endsWith('.js'));
369
+ if (codeFiles.length > 0) {
370
+ checks.push(this.verifyLint());
371
+ checks.push(this.verifyTypeCheck());
372
+ }
373
+ return checks;
374
+ }
375
+ /**
376
+ * Verify npm publish actually happened.
377
+ */
378
+ verifyNpmPublish(agentClaimedPublished) {
379
+ if (agentClaimedPublished === false) {
380
+ return { name: 'npm publish', status: 'PASS', detail: 'Agent acknowledged no publish' };
381
+ }
382
+ // Use npm view to verify latest version
383
+ try {
384
+ const pkgPath = path.join(this.workspaceRoot, 'package.json');
385
+ if (fs.existsSync(pkgPath)) {
386
+ const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'));
387
+ const { execSync } = require('child_process');
388
+ const result = execSync(`npm view ${pkg.name} version 2>&1`, {
389
+ cwd: this.workspaceRoot,
390
+ encoding: 'utf-8',
391
+ stdio: ['pipe', 'pipe', 'ignore'],
392
+ timeout: 5000,
393
+ }).trim();
394
+ if (result === pkg.version) {
395
+ return {
396
+ name: 'npm publish',
397
+ status: 'PASS',
398
+ detail: `npm registry confirms ${pkg.name}@${pkg.version}`,
399
+ };
400
+ }
401
+ return {
402
+ name: 'npm publish',
403
+ status: 'WARN',
404
+ detail: `npm shows ${result}, local is ${pkg.version}`,
405
+ };
406
+ }
407
+ }
408
+ catch {
409
+ return {
410
+ name: 'npm publish',
411
+ status: 'WARN',
412
+ detail: 'Could not verify npm publish status (network or npm not available)',
413
+ };
414
+ }
415
+ return { name: 'npm publish', status: 'PASS', detail: 'No package.json found' };
416
+ }
417
+ /**
418
+ * Verify git push actually happened.
419
+ */
420
+ verifyGitPush() {
421
+ try {
422
+ const { execSync } = require('child_process');
423
+ // Use git ls-remote to verify remote HEAD matches local
424
+ const localHead = execSync('git rev-parse HEAD 2>&1', {
425
+ cwd: this.workspaceRoot,
426
+ encoding: 'utf-8',
427
+ stdio: ['pipe', 'pipe', 'ignore'],
428
+ }).trim();
429
+ const remoteHead = execSync('git ls-remote origin HEAD 2>&1', {
430
+ cwd: this.workspaceRoot,
431
+ encoding: 'utf-8',
432
+ stdio: ['pipe', 'pipe', 'ignore'],
433
+ timeout: 5000,
434
+ }).split('\t')[0]?.trim();
435
+ if (remoteHead && remoteHead === localHead) {
436
+ return {
437
+ name: 'git push',
438
+ status: 'PASS',
439
+ detail: 'Remote HEAD matches local',
440
+ };
441
+ }
442
+ return {
443
+ name: 'git push',
444
+ status: 'WARN',
445
+ detail: remoteHead
446
+ ? `Remote HEAD differs from local`
447
+ : 'Could not resolve remote HEAD',
448
+ };
449
+ }
450
+ catch {
451
+ return {
452
+ name: 'git push',
453
+ status: 'WARN',
454
+ detail: 'Could not verify push status',
455
+ };
456
+ }
457
+ }
458
+ /**
459
+ * Verify that claimed result is valid JSON (if applicable).
460
+ */
461
+ verifyResultFormat(claimedResult) {
462
+ if (!claimedResult?.result) {
463
+ return { name: 'Result format', status: 'PASS', detail: 'No result to check' };
464
+ }
465
+ const result = claimedResult.result;
466
+ if (typeof result === 'string') {
467
+ // Check if it looks like JSON
468
+ const trimmed = result.trim();
469
+ if (trimmed.startsWith('{') || trimmed.startsWith('[')) {
470
+ try {
471
+ JSON.parse(trimmed);
472
+ return { name: 'Result format', status: 'PASS' };
473
+ }
474
+ catch {
475
+ return {
476
+ name: 'Result format',
477
+ status: 'FAIL',
478
+ detail: 'Result looks like JSON but is not valid JSON',
479
+ };
480
+ }
481
+ }
482
+ }
483
+ return { name: 'Result format', status: 'PASS' };
484
+ }
485
+ /**
486
+ * Verify that the result is not empty when it shouldn't be.
487
+ */
488
+ verifyNonEmptyResult(claimedResult) {
489
+ if (!claimedResult?.result) {
490
+ return { name: 'Result non-empty', status: 'PASS', detail: 'No result to check' };
491
+ }
492
+ const result = claimedResult.result;
493
+ if (typeof result === 'string' && result.trim().length === 0) {
494
+ return {
495
+ name: 'Result non-empty',
496
+ status: 'WARN',
497
+ detail: 'Result is empty — possible hallucination',
498
+ };
499
+ }
500
+ if (Array.isArray(result) && result.length === 0) {
501
+ return {
502
+ name: 'Result non-empty',
503
+ status: 'WARN',
504
+ detail: 'Result is empty array',
505
+ };
506
+ }
507
+ return { name: 'Result non-empty', status: 'PASS' };
508
+ }
509
+ /**
510
+ * Run ESLint on src/ directory.
511
+ */
512
+ verifyLint() {
513
+ try {
514
+ const { execSync } = require('child_process');
515
+ execSync('npx eslint src/ --ext .ts --quiet 2>&1', {
516
+ cwd: this.workspaceRoot,
517
+ stdio: ['pipe', 'pipe', 'ignore'],
518
+ });
519
+ return { name: 'Lint check', status: 'PASS' };
520
+ }
521
+ catch {
522
+ return {
523
+ name: 'Lint check',
524
+ status: 'WARN',
525
+ detail: 'Lint issues found — review recommended',
526
+ };
527
+ }
528
+ }
529
+ /**
530
+ * Run TypeScript type checking.
531
+ */
532
+ verifyTypeCheck() {
533
+ try {
534
+ const { execSync } = require('child_process');
535
+ execSync('npx tsc --noEmit 2>&1', {
536
+ cwd: this.workspaceRoot,
537
+ stdio: ['pipe', 'pipe', 'ignore'],
538
+ });
539
+ return { name: 'Type check', status: 'PASS' };
540
+ }
541
+ catch {
542
+ return {
543
+ name: 'Type check',
544
+ status: 'FAIL',
545
+ detail: 'TypeScript compilation failed',
546
+ };
547
+ }
548
+ }
549
+ /**
550
+ * Check if tool name indicates a file-modifying tool.
551
+ */
552
+ isFileTool(toolName) {
553
+ const fileTools = [
554
+ 'write_file', 'write_file_sync',
555
+ 'edit', 'edit_file',
556
+ 'create_file', 'create_directory',
557
+ 'mkdir', 'rm', 'unlink', 'delete_file',
558
+ 'exec', 'shell',
559
+ ];
560
+ return fileTools.some((t) => toolName.includes(t));
561
+ }
562
+ /**
563
+ * Evaluate all checks and determine overall status.
564
+ */
565
+ evaluateChecks(checks) {
566
+ if (checks.length === 0)
567
+ return { status: 'PASS', checks };
568
+ const hasFail = checks.some((c) => c.status === 'FAIL');
569
+ const hasWarn = checks.some((c) => c.status === 'WARN');
570
+ if (hasFail)
571
+ return { status: 'FAIL', checks };
572
+ if (hasWarn)
573
+ return { status: 'WARN', checks };
574
+ return { status: 'PASS', checks };
575
+ }
576
+ }
577
+ exports.VerifyGate = VerifyGate;
578
+ //# sourceMappingURL=snapshot-verify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot-verify.js","sourceRoot":"","sources":["../../src/guard/snapshot-verify.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ export { AgentOS } from './core';
2
+ export * from './types';
3
+ export { SchemaGate } from './guard/schema-gate';
4
+ export type { SchemaRule } from './guard/schema-gate';
5
+ export { RiskGate } from './guard/risk-gate';
6
+ export type { RiskThresholds, ToolRiskProfile, ImpactLevel, SensitivityLevel } from './guard/risk-gate';
7
+ export { DEFAULT_RISK_THRESHOLDS } from './guard/risk-gate';
8
+ export { SnapshotGate, VerifyGate } from './guard/snapshot-verify';
9
+ export type { SnapshotScope } from './guard/snapshot-verify';
10
+ export { AuditLog } from './guard/audit-log';
11
+ export { SandboxExecutor } from './guard/sandbox';
12
+ export type { ExecutionContext, SandboxResult, ExecutionMode, NetworkPolicy } from './guard/sandbox';
13
+ export { SandboxViolation } from './guard/sandbox';
14
+ export { WorkingMemory } from './memory/working';
15
+ export type { WorkingMemoryState } from './memory/working';
16
+ export { EpisodicMemory } from './memory/episodic';
17
+ export { SemanticMemoryStore } from './memory/semantic';
18
+ export { PreExecEvaluator, RuntimeEvaluator, PostExecEvaluator } from './evaluator/exec-evaluator';
19
+ export { ImplicitFeedbackEngine } from './evaluator/feedback';
20
+ export { AgentProfiler } from './evaluator/profiler';
21
+ export type { AgentProfile } from './evaluator/profiler';
22
+ export { AgentOSAPI } from './api';
23
+ export { createServer } from './server';
24
+ export { wrapAgent } from './middleware/wrapper';
25
+ export type { WrappedAgent } from './middleware/wrapper';
26
+ export { sentinelPlugin } from './middleware/openclaw';
27
+ export type { OpenClawPlugin } from './middleware/openclaw';
28
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACjC,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACxG,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACnE,YAAY,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrG,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,YAAY,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACnG,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAGnC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,YAAY,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC"}