@miller-tech/uap 1.5.5 → 1.5.6

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 (58) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/bin/cli.js +6 -0
  3. package/dist/bin/cli.js.map +1 -1
  4. package/dist/bin/llama-server-optimize.js +0 -0
  5. package/dist/bin/policy.js +0 -0
  6. package/dist/bin/tool-calls.js +0 -0
  7. package/dist/cli/dashboard.d.ts +1 -0
  8. package/dist/cli/dashboard.d.ts.map +1 -1
  9. package/dist/cli/dashboard.js.map +1 -1
  10. package/dist/memory/active-context.d.ts +65 -0
  11. package/dist/memory/active-context.d.ts.map +1 -0
  12. package/dist/memory/active-context.js +126 -0
  13. package/dist/memory/active-context.js.map +1 -0
  14. package/dist/memory/dedup-detector.d.ts +57 -0
  15. package/dist/memory/dedup-detector.d.ts.map +1 -0
  16. package/dist/memory/dedup-detector.js +107 -0
  17. package/dist/memory/dedup-detector.js.map +1 -0
  18. package/dist/memory/dedup-memory.d.ts +89 -0
  19. package/dist/memory/dedup-memory.d.ts.map +1 -0
  20. package/dist/memory/dedup-memory.js +173 -0
  21. package/dist/memory/dedup-memory.js.map +1 -0
  22. package/dist/memory/merge-claude-md.d.ts +45 -0
  23. package/dist/memory/merge-claude-md.d.ts.map +1 -0
  24. package/dist/memory/merge-claude-md.js +118 -0
  25. package/dist/memory/merge-claude-md.js.map +1 -0
  26. package/dist/memory/patterns.d.ts +37 -0
  27. package/dist/memory/patterns.d.ts.map +1 -0
  28. package/dist/memory/patterns.js +81 -0
  29. package/dist/memory/patterns.js.map +1 -0
  30. package/dist/memory/semantic-edge-graph.d.ts +86 -0
  31. package/dist/memory/semantic-edge-graph.d.ts.map +1 -0
  32. package/dist/memory/semantic-edge-graph.js +168 -0
  33. package/dist/memory/semantic-edge-graph.js.map +1 -0
  34. package/dist/memory/semantic-retrieval.d.ts +70 -0
  35. package/dist/memory/semantic-retrieval.d.ts.map +1 -0
  36. package/dist/memory/semantic-retrieval.js +112 -0
  37. package/dist/memory/semantic-retrieval.js.map +1 -0
  38. package/dist/memory/smart-consolidator.d.ts +53 -0
  39. package/dist/memory/smart-consolidator.d.ts.map +1 -0
  40. package/dist/memory/smart-consolidator.js +144 -0
  41. package/dist/memory/smart-consolidator.js.map +1 -0
  42. package/dist/memory/view-memory.d.ts +80 -0
  43. package/dist/memory/view-memory.d.ts.map +1 -0
  44. package/dist/memory/view-memory.js +130 -0
  45. package/dist/memory/view-memory.js.map +1 -0
  46. package/dist/memory/wrapped-memory.d.ts +77 -0
  47. package/dist/memory/wrapped-memory.d.ts.map +1 -0
  48. package/dist/memory/wrapped-memory.js +127 -0
  49. package/dist/memory/wrapped-memory.js.map +1 -0
  50. package/dist/utils/adaptive-cache.d.ts +67 -0
  51. package/dist/utils/adaptive-cache.d.ts.map +1 -0
  52. package/dist/utils/adaptive-cache.js +149 -0
  53. package/dist/utils/adaptive-cache.js.map +1 -0
  54. package/dist/utils/performance-monitor.d.ts +52 -0
  55. package/dist/utils/performance-monitor.d.ts.map +1 -0
  56. package/dist/utils/performance-monitor.js +103 -0
  57. package/dist/utils/performance-monitor.js.map +1 -0
  58. package/package.json +5 -3
@@ -0,0 +1,149 @@
1
+ export class AdaptiveCache {
2
+ cache;
3
+ options;
4
+ evictionInterval = null;
5
+ constructor(options) {
6
+ const { maxEntries, defaultTTL = 300000, // 5 minutes
7
+ hotThreshold = 10, coldEvictionRatio = 0.5, } = options;
8
+ this.options = {
9
+ maxEntries,
10
+ defaultTTL,
11
+ hotThreshold,
12
+ coldEvictionRatio,
13
+ };
14
+ this.cache = new Map();
15
+ this.startEviction();
16
+ }
17
+ /**
18
+ * Get value from cache with adaptive TTL
19
+ */
20
+ get(key) {
21
+ const entry = this.cache.get(key);
22
+ if (!entry)
23
+ return null;
24
+ // Check if expired
25
+ const age = Date.now() - entry.lastModified.getTime();
26
+ const ttl = this.getAdaptiveTTL(entry);
27
+ if (age > ttl) {
28
+ this.cache.delete(key);
29
+ return null;
30
+ }
31
+ // Update access metadata
32
+ entry.lastAccessed = new Date();
33
+ entry.usageCount++;
34
+ return entry.value;
35
+ }
36
+ /**
37
+ * Set value in cache
38
+ */
39
+ set(key, value, priority = 1) {
40
+ // Evict if at capacity
41
+ if (this.cache.size >= this.options.maxEntries) {
42
+ this.evict();
43
+ }
44
+ this.cache.set(key, {
45
+ value,
46
+ lastAccessed: new Date(),
47
+ lastModified: new Date(),
48
+ usageCount: 0,
49
+ priority,
50
+ });
51
+ }
52
+ /**
53
+ * Delete value from cache
54
+ */
55
+ delete(key) {
56
+ return this.cache.delete(key);
57
+ }
58
+ /**
59
+ * Clear all entries
60
+ */
61
+ clear() {
62
+ this.cache.clear();
63
+ }
64
+ /**
65
+ * Get cache size
66
+ */
67
+ get size() {
68
+ return this.cache.size;
69
+ }
70
+ /**
71
+ * Calculate adaptive TTL based on usage patterns
72
+ */
73
+ getAdaptiveTTL(entry) {
74
+ if (entry.usageCount >= this.options.hotThreshold) {
75
+ return this.options.defaultTTL * 12; // 1 hour for hot entries
76
+ }
77
+ if (entry.usageCount >= this.options.hotThreshold / 2) {
78
+ return this.options.defaultTTL * 3; // 15 minutes for warm entries
79
+ }
80
+ return this.options.defaultTTL; // 5 minutes default
81
+ }
82
+ /**
83
+ * Evict entries based on priority and access patterns
84
+ */
85
+ evict() {
86
+ const entries = [...this.cache.entries()];
87
+ if (entries.length === 0)
88
+ return;
89
+ // Separate hot vs cold entries
90
+ const coldEntries = entries.filter(([_, entry]) => entry.usageCount < this.options.hotThreshold / 2);
91
+ // hotEntries unused - kept for future expansion
92
+ // Evict cold first
93
+ if (coldEntries.length > Math.floor(this.options.maxEntries * this.options.coldEvictionRatio)) {
94
+ // Sort by last access time
95
+ coldEntries.sort((a, b) => a[1].lastAccessed.getTime() - b[1].lastAccessed.getTime());
96
+ const toRemove = Math.floor(coldEntries.length / 2);
97
+ for (let i = 0; i < toRemove; i++) {
98
+ this.cache.delete(coldEntries[i][0]);
99
+ }
100
+ return;
101
+ }
102
+ // If not enough cold entries, evict LRU from all
103
+ entries.sort((a, b) => a[1].lastAccessed.getTime() - b[1].lastAccessed.getTime());
104
+ const toRemove = Math.ceil(entries.length * 0.3);
105
+ for (let i = 0; i < toRemove; i++) {
106
+ this.cache.delete(entries[i][0]);
107
+ }
108
+ }
109
+ /**
110
+ * Start periodic eviction
111
+ */
112
+ startEviction() {
113
+ this.evictionInterval = setInterval(() => {
114
+ this.evict();
115
+ }, 60000); // Run every minute
116
+ }
117
+ /**
118
+ * Stop eviction interval
119
+ */
120
+ stop() {
121
+ if (this.evictionInterval) {
122
+ clearInterval(this.evictionInterval);
123
+ this.evictionInterval = null;
124
+ }
125
+ }
126
+ }
127
+ /**
128
+ * Create a cache instance with common defaults for pattern matching
129
+ */
130
+ export function createPatternCache(maxEntries = 100) {
131
+ return new AdaptiveCache({
132
+ maxEntries,
133
+ defaultTTL: 300000, // 5 minutes
134
+ hotThreshold: 10,
135
+ coldEvictionRatio: 0.5,
136
+ });
137
+ }
138
+ /**
139
+ * Create a cache instance for short-term query results
140
+ */
141
+ export function createQueryCache(maxEntries = 50) {
142
+ return new AdaptiveCache({
143
+ maxEntries,
144
+ defaultTTL: 60000, // 1 minute
145
+ hotThreshold: 5,
146
+ coldEvictionRatio: 0.7,
147
+ });
148
+ }
149
+ //# sourceMappingURL=adaptive-cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adaptive-cache.js","sourceRoot":"","sources":["../../src/utils/adaptive-cache.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Performance monitoring utilities for measuring and analyzing operation metrics
3
+ */
4
+ export interface PerformanceMetrics {
5
+ avg: number;
6
+ p50: number;
7
+ p95: number;
8
+ p99: number;
9
+ min: number;
10
+ max: number;
11
+ count: number;
12
+ }
13
+ /**
14
+ * Monitor performance of operations with percentile tracking
15
+ */
16
+ export declare class PerformanceMonitor {
17
+ private metrics;
18
+ private readonly maxSamples;
19
+ constructor(options?: {
20
+ maxSamples?: number;
21
+ });
22
+ /**
23
+ * Measure and record duration of an async operation
24
+ */
25
+ measure<T>(name: string, fn: () => Promise<T>): Promise<T>;
26
+ /**
27
+ * Record a metric directly
28
+ */
29
+ record(metric: string, duration: number): void;
30
+ /**
31
+ * Get statistics for a metric
32
+ */
33
+ getStats(metric: string): PerformanceMetrics | null;
34
+ /**
35
+ * Get all metric names
36
+ */
37
+ getMetrics(): string[];
38
+ /**
39
+ * Clear all metrics
40
+ */
41
+ clear(): void;
42
+ /**
43
+ * Export metrics as JSON
44
+ */
45
+ exportMetrics(): Record<string, PerformanceMetrics>;
46
+ }
47
+ export declare function getPerformanceMonitor(): PerformanceMonitor;
48
+ /**
49
+ * Helper to wrap any function with performance monitoring
50
+ */
51
+ export declare function monitorFunction<T extends (...args: unknown[]) => Promise<unknown>>(fn: T, name?: string): T;
52
+ //# sourceMappingURL=performance-monitor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"performance-monitor.d.ts","sourceRoot":"","sources":["../../src/utils/performance-monitor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,OAAO,CAAoC;IACnD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAExB,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE;IAI7C;;OAEG;IACG,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAUhE;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAa9C;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI;IAkBnD;;OAEG;IACH,UAAU,IAAI,MAAM,EAAE;IAItB;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC;CAYpD;AAOD,wBAAgB,qBAAqB,IAAI,kBAAkB,CAK1D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,EAChF,EAAE,EAAE,CAAC,EACL,IAAI,CAAC,EAAE,MAAM,GACZ,CAAC,CAOH"}
@@ -0,0 +1,103 @@
1
+ /**
2
+ * Performance monitoring utilities for measuring and analyzing operation metrics
3
+ */
4
+ /**
5
+ * Monitor performance of operations with percentile tracking
6
+ */
7
+ export class PerformanceMonitor {
8
+ metrics = new Map();
9
+ maxSamples;
10
+ constructor(options) {
11
+ this.maxSamples = options?.maxSamples ?? 1000;
12
+ }
13
+ /**
14
+ * Measure and record duration of an async operation
15
+ */
16
+ async measure(name, fn) {
17
+ const start = performance.now();
18
+ try {
19
+ return await fn();
20
+ }
21
+ finally {
22
+ const duration = performance.now() - start;
23
+ this.record(name, duration);
24
+ }
25
+ }
26
+ /**
27
+ * Record a metric directly
28
+ */
29
+ record(metric, duration) {
30
+ const entries = this.metrics.get(metric) || [];
31
+ entries.push(duration);
32
+ // Keep last N samples
33
+ if (entries.length > this.maxSamples) {
34
+ entries.shift();
35
+ }
36
+ this.metrics.set(metric, entries);
37
+ }
38
+ /**
39
+ * Get statistics for a metric
40
+ */
41
+ getStats(metric) {
42
+ const entries = this.metrics.get(metric);
43
+ if (!entries || entries.length === 0)
44
+ return null;
45
+ const sorted = [...entries].sort((a, b) => a - b);
46
+ const count = sorted.length;
47
+ return {
48
+ avg: sorted.reduce((a, b) => a + b, 0) / count,
49
+ p50: sorted[Math.floor(count * 0.5)] ?? 0,
50
+ p95: sorted[Math.floor(count * 0.95)] ?? 0,
51
+ p99: sorted[Math.floor(count * 0.99)] ?? 0,
52
+ min: sorted[0] ?? 0,
53
+ max: sorted[count - 1] ?? 0,
54
+ count,
55
+ };
56
+ }
57
+ /**
58
+ * Get all metric names
59
+ */
60
+ getMetrics() {
61
+ return [...this.metrics.keys()];
62
+ }
63
+ /**
64
+ * Clear all metrics
65
+ */
66
+ clear() {
67
+ this.metrics.clear();
68
+ }
69
+ /**
70
+ * Export metrics as JSON
71
+ */
72
+ exportMetrics() {
73
+ const result = {};
74
+ for (const metric of this.metrics.keys()) {
75
+ const stats = this.getStats(metric);
76
+ if (stats) {
77
+ result[metric] = stats;
78
+ }
79
+ }
80
+ return result;
81
+ }
82
+ }
83
+ /**
84
+ * Global performance monitor instance
85
+ */
86
+ let globalMonitor = null;
87
+ export function getPerformanceMonitor() {
88
+ if (!globalMonitor) {
89
+ globalMonitor = new PerformanceMonitor();
90
+ }
91
+ return globalMonitor;
92
+ }
93
+ /**
94
+ * Helper to wrap any function with performance monitoring
95
+ */
96
+ export function monitorFunction(fn, name) {
97
+ const monitor = getPerformanceMonitor();
98
+ const metricName = (name ?? fn.name) || 'anonymous';
99
+ return (async (...args) => {
100
+ return monitor.measure(metricName, async () => await fn(...args));
101
+ });
102
+ }
103
+ //# sourceMappingURL=performance-monitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"performance-monitor.js","sourceRoot":"","sources":["../../src/utils/performance-monitor.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@miller-tech/uap",
3
- "version": "1.5.5",
3
+ "version": "1.5.6",
4
4
  "description": "Autonomous AI agent memory system with CLAUDE.md protocol enforcement",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -34,9 +34,11 @@
34
34
  "version:patch": "bash scripts/version-bump.sh patch",
35
35
  "version:minor": "bash scripts/version-bump.sh minor",
36
36
  "version:major": "bash scripts/version-bump.sh major",
37
+ "install:hooks": "bash scripts/hooks/install-hooks.sh",
38
+ "verify:tests": "bash scripts/verify-test-count.sh",
37
39
  "update-uap": "bash scripts/update-uap-compliance.sh",
38
- "verify-uap": "bash scripts/verify-compliance.sh",
39
- "check-claude": "bash scripts/verify-compliance.sh"
40
+ "verify-uap": "bash scripts/maintenance/verify-compliance.sh",
41
+ "check-claude": "bash scripts/maintenance/verify-compliance.sh"
40
42
  },
41
43
  "keywords": [
42
44
  "claude",