@eddacraft/anvil-runtime 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.
- package/LICENSE +14 -0
- package/dist/cache/cache-key.d.ts +45 -0
- package/dist/cache/cache-key.d.ts.map +1 -0
- package/dist/cache/cache-key.js +135 -0
- package/dist/cache/index.d.ts +27 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +38 -0
- package/dist/cache/providers/file-cache.d.ts +63 -0
- package/dist/cache/providers/file-cache.d.ts.map +1 -0
- package/dist/cache/providers/file-cache.js +369 -0
- package/dist/cache/providers/memory-cache.d.ts +52 -0
- package/dist/cache/providers/memory-cache.d.ts.map +1 -0
- package/dist/cache/providers/memory-cache.js +197 -0
- package/dist/cache/providers/null-cache.d.ts +26 -0
- package/dist/cache/providers/null-cache.d.ts.map +1 -0
- package/dist/cache/providers/null-cache.js +50 -0
- package/dist/cache/types.d.ts +114 -0
- package/dist/cache/types.d.ts.map +1 -0
- package/dist/cache/types.js +4 -0
- package/dist/concurrency/agent.d.ts +137 -0
- package/dist/concurrency/agent.d.ts.map +1 -0
- package/dist/concurrency/agent.js +440 -0
- package/dist/concurrency/atomic.d.ts +93 -0
- package/dist/concurrency/atomic.d.ts.map +1 -0
- package/dist/concurrency/atomic.js +281 -0
- package/dist/concurrency/git-agent.d.ts +114 -0
- package/dist/concurrency/git-agent.d.ts.map +1 -0
- package/dist/concurrency/git-agent.js +313 -0
- package/dist/concurrency/index.d.ts +95 -0
- package/dist/concurrency/index.d.ts.map +1 -0
- package/dist/concurrency/index.js +127 -0
- package/dist/concurrency/lock-manager.d.ts +170 -0
- package/dist/concurrency/lock-manager.d.ts.map +1 -0
- package/dist/concurrency/lock-manager.js +525 -0
- package/dist/concurrency/queue-manager.d.ts +166 -0
- package/dist/concurrency/queue-manager.d.ts.map +1 -0
- package/dist/concurrency/queue-manager.js +442 -0
- package/dist/concurrency/types.d.ts +382 -0
- package/dist/concurrency/types.d.ts.map +1 -0
- package/dist/concurrency/types.js +204 -0
- package/dist/export/constraint-collector.d.ts +175 -0
- package/dist/export/constraint-collector.d.ts.map +1 -0
- package/dist/export/constraint-collector.js +203 -0
- package/dist/export/formatters/llms-txt-formatter.d.ts +89 -0
- package/dist/export/formatters/llms-txt-formatter.d.ts.map +1 -0
- package/dist/export/formatters/llms-txt-formatter.js +249 -0
- package/dist/export/formatters/mcp-resource-formatter.d.ts +186 -0
- package/dist/export/formatters/mcp-resource-formatter.d.ts.map +1 -0
- package/dist/export/formatters/mcp-resource-formatter.js +139 -0
- package/dist/export/formatters/prompt-formatter.d.ts +83 -0
- package/dist/export/formatters/prompt-formatter.d.ts.map +1 -0
- package/dist/export/formatters/prompt-formatter.js +256 -0
- package/dist/export/index.d.ts +10 -0
- package/dist/export/index.d.ts.map +1 -0
- package/dist/export/index.js +9 -0
- package/dist/gate/check.interface.d.ts +15 -0
- package/dist/gate/check.interface.d.ts.map +1 -0
- package/dist/gate/check.interface.js +18 -0
- package/dist/gate/checks/antipattern.check.d.ts +27 -0
- package/dist/gate/checks/antipattern.check.d.ts.map +1 -0
- package/dist/gate/checks/antipattern.check.js +140 -0
- package/dist/gate/checks/architecture/circular-detector.d.ts +33 -0
- package/dist/gate/checks/architecture/circular-detector.d.ts.map +1 -0
- package/dist/gate/checks/architecture/circular-detector.js +71 -0
- package/dist/gate/checks/architecture/dependency-analyzer.d.ts +81 -0
- package/dist/gate/checks/architecture/dependency-analyzer.d.ts.map +1 -0
- package/dist/gate/checks/architecture/dependency-analyzer.js +136 -0
- package/dist/gate/checks/architecture/layer-validator.d.ts +75 -0
- package/dist/gate/checks/architecture/layer-validator.d.ts.map +1 -0
- package/dist/gate/checks/architecture/layer-validator.js +193 -0
- package/dist/gate/checks/architecture.check.d.ts +56 -0
- package/dist/gate/checks/architecture.check.d.ts.map +1 -0
- package/dist/gate/checks/architecture.check.js +394 -0
- package/dist/gate/checks/command-safety.check.d.ts +12 -0
- package/dist/gate/checks/command-safety.check.d.ts.map +1 -0
- package/dist/gate/checks/command-safety.check.js +230 -0
- package/dist/gate/checks/coverage.check.d.ts +9 -0
- package/dist/gate/checks/coverage.check.d.ts.map +1 -0
- package/dist/gate/checks/coverage.check.js +81 -0
- package/dist/gate/checks/dependency.check.d.ts +17 -0
- package/dist/gate/checks/dependency.check.d.ts.map +1 -0
- package/dist/gate/checks/dependency.check.js +342 -0
- package/dist/gate/checks/eslint.check.d.ts +14 -0
- package/dist/gate/checks/eslint.check.d.ts.map +1 -0
- package/dist/gate/checks/eslint.check.js +79 -0
- package/dist/gate/checks/policy.check.d.ts +78 -0
- package/dist/gate/checks/policy.check.d.ts.map +1 -0
- package/dist/gate/checks/policy.check.js +457 -0
- package/dist/gate/checks/secret/entropy-detector.d.ts +44 -0
- package/dist/gate/checks/secret/entropy-detector.d.ts.map +1 -0
- package/dist/gate/checks/secret/entropy-detector.js +76 -0
- package/dist/gate/checks/secret/git-scanner.d.ts +36 -0
- package/dist/gate/checks/secret/git-scanner.d.ts.map +1 -0
- package/dist/gate/checks/secret/git-scanner.js +90 -0
- package/dist/gate/checks/secret/secret-patterns.d.ts +42 -0
- package/dist/gate/checks/secret/secret-patterns.d.ts.map +1 -0
- package/dist/gate/checks/secret/secret-patterns.js +137 -0
- package/dist/gate/checks/secret.check.d.ts +56 -0
- package/dist/gate/checks/secret.check.d.ts.map +1 -0
- package/dist/gate/checks/secret.check.js +245 -0
- package/dist/gate/config/command-safety-config.d.ts +5 -0
- package/dist/gate/config/command-safety-config.d.ts.map +1 -0
- package/dist/gate/config/command-safety-config.js +69 -0
- package/dist/gate/config/index.d.ts +2 -0
- package/dist/gate/config/index.d.ts.map +1 -0
- package/dist/gate/config/index.js +1 -0
- package/dist/gate/formatters/command-safety-formatter.d.ts +10 -0
- package/dist/gate/formatters/command-safety-formatter.d.ts.map +1 -0
- package/dist/gate/formatters/command-safety-formatter.js +64 -0
- package/dist/gate/formatters/index.d.ts +2 -0
- package/dist/gate/formatters/index.d.ts.map +1 -0
- package/dist/gate/formatters/index.js +1 -0
- package/dist/gate/gate-config.d.ts +44 -0
- package/dist/gate/gate-config.d.ts.map +1 -0
- package/dist/gate/gate-config.js +334 -0
- package/dist/gate/gate-runner.d.ts +160 -0
- package/dist/gate/gate-runner.d.ts.map +1 -0
- package/dist/gate/gate-runner.js +531 -0
- package/dist/gate/index.d.ts +20 -0
- package/dist/gate/index.d.ts.map +1 -0
- package/dist/gate/index.js +14 -0
- package/dist/gate/parsers/command-parser.d.ts +18 -0
- package/dist/gate/parsers/command-parser.d.ts.map +1 -0
- package/dist/gate/parsers/command-parser.js +363 -0
- package/dist/gate/parsers/index.d.ts +2 -0
- package/dist/gate/parsers/index.d.ts.map +1 -0
- package/dist/gate/parsers/index.js +1 -0
- package/dist/gate/policy/index.d.ts +12 -0
- package/dist/gate/policy/index.d.ts.map +1 -0
- package/dist/gate/policy/index.js +10 -0
- package/dist/gate/rules/default-filesystem-rules.d.ts +3 -0
- package/dist/gate/rules/default-filesystem-rules.d.ts.map +1 -0
- package/dist/gate/rules/default-filesystem-rules.js +201 -0
- package/dist/gate/rules/default-git-rules.d.ts +3 -0
- package/dist/gate/rules/default-git-rules.d.ts.map +1 -0
- package/dist/gate/rules/default-git-rules.js +192 -0
- package/dist/gate/rules/index.d.ts +5 -0
- package/dist/gate/rules/index.d.ts.map +1 -0
- package/dist/gate/rules/index.js +3 -0
- package/dist/gate/rules/rule-matcher.d.ts +27 -0
- package/dist/gate/rules/rule-matcher.d.ts.map +1 -0
- package/dist/gate/rules/rule-matcher.js +228 -0
- package/dist/gate/rules/types.d.ts +250 -0
- package/dist/gate/rules/types.d.ts.map +1 -0
- package/dist/gate/rules/types.js +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +35 -0
- package/dist/types/gate.types.d.ts +42 -0
- package/dist/types/gate.types.d.ts.map +1 -0
- package/dist/types/gate.types.js +94 -0
- package/dist/watch/debouncer.d.ts +90 -0
- package/dist/watch/debouncer.d.ts.map +1 -0
- package/dist/watch/debouncer.js +135 -0
- package/dist/watch/file-watcher.d.ts +73 -0
- package/dist/watch/file-watcher.d.ts.map +1 -0
- package/dist/watch/file-watcher.js +121 -0
- package/dist/watch/git-status.d.ts +98 -0
- package/dist/watch/git-status.d.ts.map +1 -0
- package/dist/watch/git-status.js +266 -0
- package/dist/watch/index.d.ts +16 -0
- package/dist/watch/index.d.ts.map +1 -0
- package/dist/watch/index.js +15 -0
- package/dist/watch/orchestrator.d.ts +113 -0
- package/dist/watch/orchestrator.d.ts.map +1 -0
- package/dist/watch/orchestrator.js +409 -0
- package/dist/watch/types.d.ts +190 -0
- package/dist/watch/types.d.ts.map +1 -0
- package/dist/watch/types.js +76 -0
- package/package.json +60 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Null cache provider (no-op)
|
|
3
|
+
* Used when caching is disabled via --no-cache flag
|
|
4
|
+
*/
|
|
5
|
+
import { createDebugger } from '@eddacraft/anvil-core';
|
|
6
|
+
const debug = createDebugger('cache');
|
|
7
|
+
/**
|
|
8
|
+
* Null cache provider - disables caching
|
|
9
|
+
*
|
|
10
|
+
* All operations are no-ops that return appropriate null/empty values.
|
|
11
|
+
* Used when:
|
|
12
|
+
* - --no-cache flag is passed
|
|
13
|
+
* - Caching is disabled in configuration
|
|
14
|
+
* - Testing scenarios where caching should be bypassed
|
|
15
|
+
*/
|
|
16
|
+
export class NullCacheProvider {
|
|
17
|
+
name = 'null';
|
|
18
|
+
stats = {
|
|
19
|
+
misses: 0,
|
|
20
|
+
};
|
|
21
|
+
async get(_key) {
|
|
22
|
+
debug(`null-cache get: key=${_key} (always miss)`);
|
|
23
|
+
this.stats.misses++;
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
async set(_key, _value, _options) {
|
|
27
|
+
debug(`null-cache set: key=${_key} (no-op)`);
|
|
28
|
+
}
|
|
29
|
+
async invalidate(_key) {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
async invalidatePattern(_pattern) {
|
|
33
|
+
return 0;
|
|
34
|
+
}
|
|
35
|
+
async getStats() {
|
|
36
|
+
return {
|
|
37
|
+
hits: 0,
|
|
38
|
+
misses: this.stats.misses,
|
|
39
|
+
entries: 0,
|
|
40
|
+
size_bytes: 0,
|
|
41
|
+
hit_rate: 0,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
async clear() {
|
|
45
|
+
this.stats.misses = 0;
|
|
46
|
+
}
|
|
47
|
+
async isAvailable() {
|
|
48
|
+
return true; // Null cache is always "available"
|
|
49
|
+
}
|
|
50
|
+
}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cache types and interfaces for Anvil gate caching
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Cache entry with metadata
|
|
6
|
+
*/
|
|
7
|
+
export interface CacheEntry<T> {
|
|
8
|
+
/** The cached value */
|
|
9
|
+
value: T;
|
|
10
|
+
/** Timestamp when the entry was created */
|
|
11
|
+
created_at: number;
|
|
12
|
+
/** Timestamp when the entry expires (optional) */
|
|
13
|
+
expires_at?: number;
|
|
14
|
+
/** Cache key used to store this entry */
|
|
15
|
+
key: string;
|
|
16
|
+
/** Hash of the inputs that generated this cache entry */
|
|
17
|
+
input_hash: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Options for setting cache entries
|
|
21
|
+
*/
|
|
22
|
+
export interface CacheSetOptions {
|
|
23
|
+
/** Time-to-live in milliseconds (optional) */
|
|
24
|
+
ttl?: number;
|
|
25
|
+
/** Hash of the inputs that generated this value */
|
|
26
|
+
input_hash: string;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Cache statistics
|
|
30
|
+
*/
|
|
31
|
+
export interface CacheStats {
|
|
32
|
+
/** Total number of cache hits */
|
|
33
|
+
hits: number;
|
|
34
|
+
/** Total number of cache misses */
|
|
35
|
+
misses: number;
|
|
36
|
+
/** Total number of entries in cache */
|
|
37
|
+
entries: number;
|
|
38
|
+
/** Total size of cache in bytes (approximate) */
|
|
39
|
+
size_bytes: number;
|
|
40
|
+
/** Hit rate as a percentage (0-100) */
|
|
41
|
+
hit_rate: number;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Cache provider interface
|
|
45
|
+
* All cache implementations must implement this interface
|
|
46
|
+
*/
|
|
47
|
+
export interface CacheProvider {
|
|
48
|
+
/** Provider name for debugging */
|
|
49
|
+
readonly name: string;
|
|
50
|
+
/**
|
|
51
|
+
* Get a cached value by key
|
|
52
|
+
* @returns The cached entry or null if not found/expired
|
|
53
|
+
*/
|
|
54
|
+
get<T>(key: string): Promise<CacheEntry<T> | null>;
|
|
55
|
+
/**
|
|
56
|
+
* Set a cached value
|
|
57
|
+
* @param key The cache key
|
|
58
|
+
* @param value The value to cache
|
|
59
|
+
* @param options Cache options including TTL and input hash
|
|
60
|
+
*/
|
|
61
|
+
set<T>(key: string, value: T, options: CacheSetOptions): Promise<void>;
|
|
62
|
+
/**
|
|
63
|
+
* Invalidate a single cache entry
|
|
64
|
+
* @returns true if entry was found and removed
|
|
65
|
+
*/
|
|
66
|
+
invalidate(key: string): Promise<boolean>;
|
|
67
|
+
/**
|
|
68
|
+
* Invalidate cache entries matching a pattern
|
|
69
|
+
* @param pattern Glob-like pattern (e.g., "gate:*", "check:eslint:*")
|
|
70
|
+
* @returns Number of entries invalidated
|
|
71
|
+
*/
|
|
72
|
+
invalidatePattern(pattern: string): Promise<number>;
|
|
73
|
+
/**
|
|
74
|
+
* Get cache statistics
|
|
75
|
+
*/
|
|
76
|
+
getStats(): Promise<CacheStats>;
|
|
77
|
+
/**
|
|
78
|
+
* Clear all cache entries
|
|
79
|
+
*/
|
|
80
|
+
clear(): Promise<void>;
|
|
81
|
+
/**
|
|
82
|
+
* Check if provider is available (e.g., directory exists for file cache)
|
|
83
|
+
*/
|
|
84
|
+
isAvailable(): Promise<boolean>;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Cache key components for gate check results
|
|
88
|
+
*/
|
|
89
|
+
export interface GateCacheKeyInput {
|
|
90
|
+
/** Check name (e.g., "eslint", "coverage") */
|
|
91
|
+
check_name: string;
|
|
92
|
+
/** Plan hash */
|
|
93
|
+
plan_hash: string;
|
|
94
|
+
/** Check configuration hash */
|
|
95
|
+
config_hash: string;
|
|
96
|
+
/** Workspace root (normalised) */
|
|
97
|
+
workspace_root: string;
|
|
98
|
+
/** Optional extra discriminators */
|
|
99
|
+
extra?: Record<string, string>;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Result of a cached gate check lookup
|
|
103
|
+
*/
|
|
104
|
+
export interface CachedGateResult {
|
|
105
|
+
/** Whether the result was found in cache */
|
|
106
|
+
cached: boolean;
|
|
107
|
+
/** The gate result if cached */
|
|
108
|
+
result?: import('../types/gate.types.js').GateResult;
|
|
109
|
+
/** Cache entry metadata */
|
|
110
|
+
entry?: CacheEntry<import('../types/gate.types.js').GateResult>;
|
|
111
|
+
/** Time saved by cache hit (in ms) */
|
|
112
|
+
time_saved_ms?: number;
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/cache/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,uBAAuB;IACvB,KAAK,EAAE,CAAC,CAAC;IACT,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yCAAyC;IACzC,GAAG,EAAE,MAAM,CAAC;IACZ,yDAAyD;IACzD,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,8CAA8C;IAC9C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,UAAU,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,kCAAkC;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAEnD;;;;;OAKG;IACH,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvE;;;OAGG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE1C;;;;OAIG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEpD;;OAEG;IACH,QAAQ,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IAEhC;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;OAEG;IACH,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,8CAA8C;IAC9C,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,+BAA+B;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,kCAAkC;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,4CAA4C;IAC5C,MAAM,EAAE,OAAO,CAAC;IAChB,gCAAgC;IAChC,MAAM,CAAC,EAAE,OAAO,wBAAwB,EAAE,UAAU,CAAC;IACrD,2BAA2B;IAC3B,KAAK,CAAC,EAAE,UAAU,CAAC,OAAO,wBAAwB,EAAE,UAAU,CAAC,CAAC;IAChE,sCAAsC;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Manager
|
|
3
|
+
*
|
|
4
|
+
* Handles agent identification, registration, and heartbeat management
|
|
5
|
+
* for multi-agent coordination in Anvil.
|
|
6
|
+
*/
|
|
7
|
+
import { type AgentInfo, type AgentRegistration, type AgentType, type ConcurrencyConfig } from './types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Detect agent type from environment
|
|
10
|
+
*/
|
|
11
|
+
export declare function detectAgentType(): AgentType;
|
|
12
|
+
/**
|
|
13
|
+
* Get or generate agent ID
|
|
14
|
+
*/
|
|
15
|
+
export declare function getAgentId(): string;
|
|
16
|
+
/**
|
|
17
|
+
* Get session ID if available
|
|
18
|
+
*/
|
|
19
|
+
export declare function getSessionId(): string | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* Get agent name from environment or generate one
|
|
22
|
+
*/
|
|
23
|
+
export declare function getAgentName(): string;
|
|
24
|
+
/**
|
|
25
|
+
* Create agent info from environment
|
|
26
|
+
*/
|
|
27
|
+
export declare function createAgentInfo(overrides?: Partial<AgentInfo>): AgentInfo;
|
|
28
|
+
/**
|
|
29
|
+
* Options for AgentManager
|
|
30
|
+
*/
|
|
31
|
+
export interface AgentManagerOptions {
|
|
32
|
+
/** Workspace root directory */
|
|
33
|
+
workspaceRoot: string;
|
|
34
|
+
/** Concurrency configuration */
|
|
35
|
+
config?: Partial<ConcurrencyConfig>;
|
|
36
|
+
/** Agent info (auto-detected if not provided) */
|
|
37
|
+
agentInfo?: AgentInfo;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Agent Manager
|
|
41
|
+
*
|
|
42
|
+
* Manages agent registration, heartbeat, and lifecycle in a multi-agent environment.
|
|
43
|
+
*/
|
|
44
|
+
export declare class AgentManager {
|
|
45
|
+
private readonly workspaceRoot;
|
|
46
|
+
private readonly config;
|
|
47
|
+
private readonly agent;
|
|
48
|
+
private readonly registryPath;
|
|
49
|
+
private heartbeatTimer;
|
|
50
|
+
private isRegistered;
|
|
51
|
+
constructor(options: AgentManagerOptions);
|
|
52
|
+
/**
|
|
53
|
+
* Check if agent is registered
|
|
54
|
+
*/
|
|
55
|
+
get registered(): boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Get the current agent info
|
|
58
|
+
*/
|
|
59
|
+
getAgent(): AgentInfo;
|
|
60
|
+
/**
|
|
61
|
+
* Get the agent ID
|
|
62
|
+
*/
|
|
63
|
+
getAgentId(): string;
|
|
64
|
+
/**
|
|
65
|
+
* Register this agent
|
|
66
|
+
*/
|
|
67
|
+
register(operation?: string): Promise<void>;
|
|
68
|
+
/**
|
|
69
|
+
* Start heartbeat timer
|
|
70
|
+
*/
|
|
71
|
+
startHeartbeat(): void;
|
|
72
|
+
/**
|
|
73
|
+
* Stop heartbeat timer
|
|
74
|
+
*/
|
|
75
|
+
stopHeartbeat(): void;
|
|
76
|
+
/**
|
|
77
|
+
* Send a heartbeat
|
|
78
|
+
*/
|
|
79
|
+
heartbeat(operation?: string): Promise<void>;
|
|
80
|
+
/**
|
|
81
|
+
* Update current operation
|
|
82
|
+
*/
|
|
83
|
+
setOperation(operation: string | undefined): Promise<void>;
|
|
84
|
+
/**
|
|
85
|
+
* Unregister this agent
|
|
86
|
+
*/
|
|
87
|
+
unregister(): Promise<void>;
|
|
88
|
+
/**
|
|
89
|
+
* Get all registered agents
|
|
90
|
+
*/
|
|
91
|
+
getAllAgents(): Promise<AgentRegistration[]>;
|
|
92
|
+
/**
|
|
93
|
+
* Get active agents
|
|
94
|
+
*/
|
|
95
|
+
getActiveAgents(): Promise<AgentRegistration[]>;
|
|
96
|
+
/**
|
|
97
|
+
* Cleanup stale agents
|
|
98
|
+
*/
|
|
99
|
+
cleanupStaleAgents(): Promise<string[]>;
|
|
100
|
+
/**
|
|
101
|
+
* Check if an agent is stale
|
|
102
|
+
*/
|
|
103
|
+
isAgentStale(agentId: string): Promise<boolean>;
|
|
104
|
+
/**
|
|
105
|
+
* Check if a process is still running
|
|
106
|
+
*/
|
|
107
|
+
isProcessRunning(pid: number): boolean;
|
|
108
|
+
/**
|
|
109
|
+
* Get git user for commit trailers
|
|
110
|
+
*/
|
|
111
|
+
getGitAgentTrailer(): string;
|
|
112
|
+
/**
|
|
113
|
+
* Load registry from file
|
|
114
|
+
*/
|
|
115
|
+
private loadRegistry;
|
|
116
|
+
/**
|
|
117
|
+
* Save registry to file
|
|
118
|
+
*/
|
|
119
|
+
private saveRegistry;
|
|
120
|
+
/**
|
|
121
|
+
* Ensure registry directory exists
|
|
122
|
+
*/
|
|
123
|
+
private ensureDir;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Create an agent manager
|
|
127
|
+
*/
|
|
128
|
+
export declare function createAgentManager(options: AgentManagerOptions): AgentManager;
|
|
129
|
+
/**
|
|
130
|
+
* Initialize global agent manager
|
|
131
|
+
*/
|
|
132
|
+
export declare function initializeGlobalAgent(options: AgentManagerOptions): AgentManager;
|
|
133
|
+
/**
|
|
134
|
+
* Get global agent manager
|
|
135
|
+
*/
|
|
136
|
+
export declare function getGlobalAgent(): AgentManager | null;
|
|
137
|
+
//# sourceMappingURL=agent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/concurrency/agent.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAGL,KAAK,SAAS,EAEd,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACd,KAAK,iBAAiB,EAEvB,MAAM,YAAY,CAAC;AAuCpB;;GAEG;AACH,wBAAgB,eAAe,IAAI,SAAS,CAkD3C;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,CA4BnC;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,GAAG,SAAS,CAOjD;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CA6BrC;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,SAAS,CASzE;AAMD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,+BAA+B;IAC/B,aAAa,EAAE,MAAM,CAAC;IAEtB,gCAAgC;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAEpC,iDAAiD;IACjD,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED;;;;GAIG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAY;IAClC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IAEtC,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,YAAY,CAAS;gBAEjB,OAAO,EAAE,mBAAmB;IAUxC;;OAEG;IACH,IAAI,UAAU,IAAI,OAAO,CAExB;IAED;;OAEG;IACH,QAAQ,IAAI,SAAS;IAIrB;;OAEG;IACH,UAAU,IAAI,MAAM;IAIpB;;OAEG;IACG,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBjD;;OAEG;IACH,cAAc,IAAI,IAAI;IAmBtB;;OAEG;IACH,aAAa,IAAI,IAAI;IAQrB;;OAEG;IACG,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBlD;;OAEG;IACG,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAYhE;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAejC;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAKlD;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAYrD;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAyB7C;;OAEG;IACG,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAiBrD;;OAEG;IACH,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAUtC;;OAEG;IACH,kBAAkB,IAAI,MAAM;IAI5B;;OAEG;YACW,YAAY;IAkB1B;;OAEG;YACW,YAAY;IAI1B;;OAEG;YACW,SAAS;CAIxB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,mBAAmB,GAAG,YAAY,CAE7E;AAOD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,mBAAmB,GAAG,YAAY,CAGhF;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,YAAY,GAAG,IAAI,CAEpD"}
|