@herdctl/core 5.5.0 → 5.7.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/dist/config/__tests__/merge.test.js +1 -1
- package/dist/config/__tests__/merge.test.js.map +1 -1
- package/dist/config/index.d.ts +1 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +3 -1
- package/dist/config/index.js.map +1 -1
- package/dist/config/schema.d.ts +10 -2
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +6 -2
- package/dist/config/schema.js.map +1 -1
- package/dist/distribution/__tests__/agent-discovery.test.d.ts +7 -0
- package/dist/distribution/__tests__/agent-discovery.test.d.ts.map +1 -0
- package/dist/distribution/__tests__/agent-discovery.test.js +443 -0
- package/dist/distribution/__tests__/agent-discovery.test.js.map +1 -0
- package/dist/distribution/__tests__/agent-info.test.d.ts +7 -0
- package/dist/distribution/__tests__/agent-info.test.d.ts.map +1 -0
- package/dist/distribution/__tests__/agent-info.test.js +568 -0
- package/dist/distribution/__tests__/agent-info.test.js.map +1 -0
- package/dist/distribution/__tests__/agent-remover.test.d.ts +7 -0
- package/dist/distribution/__tests__/agent-remover.test.d.ts.map +1 -0
- package/dist/distribution/__tests__/agent-remover.test.js +498 -0
- package/dist/distribution/__tests__/agent-remover.test.js.map +1 -0
- package/dist/distribution/__tests__/agent-repo-metadata.test.d.ts +5 -0
- package/dist/distribution/__tests__/agent-repo-metadata.test.d.ts.map +1 -0
- package/dist/distribution/__tests__/agent-repo-metadata.test.js +500 -0
- package/dist/distribution/__tests__/agent-repo-metadata.test.js.map +1 -0
- package/dist/distribution/__tests__/env-scanner.test.d.ts +5 -0
- package/dist/distribution/__tests__/env-scanner.test.d.ts.map +1 -0
- package/dist/distribution/__tests__/env-scanner.test.js +576 -0
- package/dist/distribution/__tests__/env-scanner.test.js.map +1 -0
- package/dist/distribution/__tests__/file-installer.test.d.ts +7 -0
- package/dist/distribution/__tests__/file-installer.test.d.ts.map +1 -0
- package/dist/distribution/__tests__/file-installer.test.js +714 -0
- package/dist/distribution/__tests__/file-installer.test.js.map +1 -0
- package/dist/distribution/__tests__/fleet-config-updater.test.d.ts +7 -0
- package/dist/distribution/__tests__/fleet-config-updater.test.d.ts.map +1 -0
- package/dist/distribution/__tests__/fleet-config-updater.test.js +531 -0
- package/dist/distribution/__tests__/fleet-config-updater.test.js.map +1 -0
- package/dist/distribution/__tests__/installation-metadata.test.d.ts +2 -0
- package/dist/distribution/__tests__/installation-metadata.test.d.ts.map +1 -0
- package/dist/distribution/__tests__/installation-metadata.test.js +292 -0
- package/dist/distribution/__tests__/installation-metadata.test.js.map +1 -0
- package/dist/distribution/__tests__/integration.test.d.ts +10 -0
- package/dist/distribution/__tests__/integration.test.d.ts.map +1 -0
- package/dist/distribution/__tests__/integration.test.js +522 -0
- package/dist/distribution/__tests__/integration.test.js.map +1 -0
- package/dist/distribution/__tests__/repository-fetcher.test.d.ts +5 -0
- package/dist/distribution/__tests__/repository-fetcher.test.d.ts.map +1 -0
- package/dist/distribution/__tests__/repository-fetcher.test.js +386 -0
- package/dist/distribution/__tests__/repository-fetcher.test.js.map +1 -0
- package/dist/distribution/__tests__/repository-validator.test.d.ts +7 -0
- package/dist/distribution/__tests__/repository-validator.test.d.ts.map +1 -0
- package/dist/distribution/__tests__/repository-validator.test.js +447 -0
- package/dist/distribution/__tests__/repository-validator.test.js.map +1 -0
- package/dist/distribution/__tests__/source-specifier.test.d.ts +5 -0
- package/dist/distribution/__tests__/source-specifier.test.d.ts.map +1 -0
- package/dist/distribution/__tests__/source-specifier.test.js +533 -0
- package/dist/distribution/__tests__/source-specifier.test.js.map +1 -0
- package/dist/distribution/agent-discovery.d.ts +81 -0
- package/dist/distribution/agent-discovery.d.ts.map +1 -0
- package/dist/distribution/agent-discovery.js +264 -0
- package/dist/distribution/agent-discovery.js.map +1 -0
- package/dist/distribution/agent-info.d.ts +86 -0
- package/dist/distribution/agent-info.d.ts.map +1 -0
- package/dist/distribution/agent-info.js +225 -0
- package/dist/distribution/agent-info.js.map +1 -0
- package/dist/distribution/agent-remover.d.ts +83 -0
- package/dist/distribution/agent-remover.d.ts.map +1 -0
- package/dist/distribution/agent-remover.js +222 -0
- package/dist/distribution/agent-remover.js.map +1 -0
- package/dist/distribution/agent-repo-metadata.d.ts +181 -0
- package/dist/distribution/agent-repo-metadata.d.ts.map +1 -0
- package/dist/distribution/agent-repo-metadata.js +143 -0
- package/dist/distribution/agent-repo-metadata.js.map +1 -0
- package/dist/distribution/env-scanner.d.ts +78 -0
- package/dist/distribution/env-scanner.d.ts.map +1 -0
- package/dist/distribution/env-scanner.js +144 -0
- package/dist/distribution/env-scanner.js.map +1 -0
- package/dist/distribution/file-installer.d.ts +80 -0
- package/dist/distribution/file-installer.d.ts.map +1 -0
- package/dist/distribution/file-installer.js +268 -0
- package/dist/distribution/file-installer.js.map +1 -0
- package/dist/distribution/fleet-config-updater.d.ts +96 -0
- package/dist/distribution/fleet-config-updater.d.ts.map +1 -0
- package/dist/distribution/fleet-config-updater.js +266 -0
- package/dist/distribution/fleet-config-updater.js.map +1 -0
- package/dist/distribution/index.d.ts +23 -0
- package/dist/distribution/index.d.ts.map +1 -0
- package/dist/distribution/index.js +42 -0
- package/dist/distribution/index.js.map +1 -0
- package/dist/distribution/installation-metadata.d.ts +191 -0
- package/dist/distribution/installation-metadata.d.ts.map +1 -0
- package/dist/distribution/installation-metadata.js +100 -0
- package/dist/distribution/installation-metadata.js.map +1 -0
- package/dist/distribution/repository-fetcher.d.ts +104 -0
- package/dist/distribution/repository-fetcher.d.ts.map +1 -0
- package/dist/distribution/repository-fetcher.js +246 -0
- package/dist/distribution/repository-fetcher.js.map +1 -0
- package/dist/distribution/repository-validator.d.ts +86 -0
- package/dist/distribution/repository-validator.d.ts.map +1 -0
- package/dist/distribution/repository-validator.js +296 -0
- package/dist/distribution/repository-validator.js.map +1 -0
- package/dist/distribution/source-specifier.d.ts +106 -0
- package/dist/distribution/source-specifier.d.ts.map +1 -0
- package/dist/distribution/source-specifier.js +247 -0
- package/dist/distribution/source-specifier.js.map +1 -0
- package/dist/fleet-manager/errors.d.ts +15 -0
- package/dist/fleet-manager/errors.d.ts.map +1 -1
- package/dist/fleet-manager/errors.js +16 -0
- package/dist/fleet-manager/errors.js.map +1 -1
- package/dist/fleet-manager/fleet-manager.d.ts.map +1 -1
- package/dist/fleet-manager/fleet-manager.js +31 -9
- package/dist/fleet-manager/fleet-manager.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/runner/message-processor.d.ts.map +1 -1
- package/dist/runner/message-processor.js +7 -2
- package/dist/runner/message-processor.js.map +1 -1
- package/dist/runner/runtime/container-manager.js +1 -1
- package/dist/runner/runtime/container-manager.js.map +1 -1
- package/dist/scheduler/errors.d.ts +15 -0
- package/dist/scheduler/errors.d.ts.map +1 -1
- package/dist/scheduler/schedule-runner.d.ts.map +1 -1
- package/dist/scheduler/schedule-runner.js +6 -5
- package/dist/scheduler/schedule-runner.js.map +1 -1
- package/dist/state/__tests__/jsonl-parser.test.d.ts +5 -0
- package/dist/state/__tests__/jsonl-parser.test.d.ts.map +1 -0
- package/dist/state/__tests__/jsonl-parser.test.js +307 -0
- package/dist/state/__tests__/jsonl-parser.test.js.map +1 -0
- package/dist/state/__tests__/session-attribution.test.d.ts +2 -0
- package/dist/state/__tests__/session-attribution.test.d.ts.map +1 -0
- package/dist/state/__tests__/session-attribution.test.js +567 -0
- package/dist/state/__tests__/session-attribution.test.js.map +1 -0
- package/dist/state/__tests__/session-discovery.test.d.ts +2 -0
- package/dist/state/__tests__/session-discovery.test.d.ts.map +1 -0
- package/dist/state/__tests__/session-discovery.test.js +941 -0
- package/dist/state/__tests__/session-discovery.test.js.map +1 -0
- package/dist/state/__tests__/session-metadata.test.d.ts +2 -0
- package/dist/state/__tests__/session-metadata.test.d.ts.map +1 -0
- package/dist/state/__tests__/session-metadata.test.js +422 -0
- package/dist/state/__tests__/session-metadata.test.js.map +1 -0
- package/dist/state/__tests__/tool-parsing.test.d.ts +5 -0
- package/dist/state/__tests__/tool-parsing.test.d.ts.map +1 -0
- package/dist/state/__tests__/tool-parsing.test.js +315 -0
- package/dist/state/__tests__/tool-parsing.test.js.map +1 -0
- package/dist/state/index.d.ts +5 -0
- package/dist/state/index.d.ts.map +1 -1
- package/dist/state/index.js +10 -0
- package/dist/state/index.js.map +1 -1
- package/dist/state/jsonl-parser.d.ts +115 -0
- package/dist/state/jsonl-parser.d.ts.map +1 -0
- package/dist/state/jsonl-parser.js +437 -0
- package/dist/state/jsonl-parser.js.map +1 -0
- package/dist/state/session-attribution.d.ts +35 -0
- package/dist/state/session-attribution.d.ts.map +1 -0
- package/dist/state/session-attribution.js +179 -0
- package/dist/state/session-attribution.js.map +1 -0
- package/dist/state/session-discovery.d.ts +188 -0
- package/dist/state/session-discovery.d.ts.map +1 -0
- package/dist/state/session-discovery.js +513 -0
- package/dist/state/session-discovery.js.map +1 -0
- package/dist/state/session-metadata.d.ts +186 -0
- package/dist/state/session-metadata.d.ts.map +1 -0
- package/dist/state/session-metadata.js +297 -0
- package/dist/state/session-metadata.js.map +1 -0
- package/dist/state/tool-parsing.d.ts +88 -0
- package/dist/state/tool-parsing.d.ts.map +1 -0
- package/dist/state/tool-parsing.js +199 -0
- package/dist/state/tool-parsing.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-attribution.js","sourceRoot":"","sources":["../../src/state/session-attribution.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session Discovery Service
|
|
3
|
+
*
|
|
4
|
+
* Orchestrates session enumeration by tying together JSONL parsing,
|
|
5
|
+
* session attribution, and CLI session path utilities. Provides cached
|
|
6
|
+
* discovery of Claude Code sessions from the filesystem.
|
|
7
|
+
*/
|
|
8
|
+
import { type ChatMessage, type SessionMetadata, type SessionUsage } from "./jsonl-parser.js";
|
|
9
|
+
import { type SessionOrigin } from "./session-attribution.js";
|
|
10
|
+
/**
|
|
11
|
+
* A discovered session with attribution and metadata
|
|
12
|
+
*/
|
|
13
|
+
export interface DiscoveredSession {
|
|
14
|
+
sessionId: string;
|
|
15
|
+
workingDirectory: string;
|
|
16
|
+
mtime: string;
|
|
17
|
+
origin: SessionOrigin;
|
|
18
|
+
agentName: string | undefined;
|
|
19
|
+
resumable: boolean;
|
|
20
|
+
customName: string | undefined;
|
|
21
|
+
/** Auto-generated session name (extracted from JSONL summary field) */
|
|
22
|
+
autoName: string | undefined;
|
|
23
|
+
preview: string | undefined;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* A group of sessions by working directory
|
|
27
|
+
*/
|
|
28
|
+
export interface DirectoryGroup {
|
|
29
|
+
workingDirectory: string;
|
|
30
|
+
encodedPath: string;
|
|
31
|
+
agentName: string | undefined;
|
|
32
|
+
sessionCount: number;
|
|
33
|
+
sessions: DiscoveredSession[];
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Options for creating a SessionDiscoveryService
|
|
37
|
+
*/
|
|
38
|
+
export interface SessionDiscoveryOptions {
|
|
39
|
+
/** Path to ~/.claude directory. Default: path.join(os.homedir(), ".claude") */
|
|
40
|
+
claudeHomePath?: string;
|
|
41
|
+
/** Path to the .herdctl/ state directory */
|
|
42
|
+
stateDir: string;
|
|
43
|
+
/** Cache TTL in milliseconds. Default: 30_000 (30 seconds) */
|
|
44
|
+
cacheTtlMs?: number;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Service for discovering and enumerating Claude Code sessions.
|
|
48
|
+
*
|
|
49
|
+
* Provides cached access to session files, with attribution from job metadata
|
|
50
|
+
* and platform session files, plus custom names from the session metadata store.
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```typescript
|
|
54
|
+
* const discovery = new SessionDiscoveryService({
|
|
55
|
+
* stateDir: '/path/to/.herdctl',
|
|
56
|
+
* });
|
|
57
|
+
*
|
|
58
|
+
* // Get sessions for a specific agent
|
|
59
|
+
* const sessions = await discovery.getAgentSessions('my-agent', '/path/to/workspace', false);
|
|
60
|
+
*
|
|
61
|
+
* // Get all sessions grouped by directory
|
|
62
|
+
* const groups = await discovery.getAllSessions([
|
|
63
|
+
* { name: 'agent-1', workingDirectory: '/path/to/project', dockerEnabled: false }
|
|
64
|
+
* ]);
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
67
|
+
export declare class SessionDiscoveryService {
|
|
68
|
+
private readonly claudeHomePath;
|
|
69
|
+
private readonly stateDir;
|
|
70
|
+
private readonly cacheTtlMs;
|
|
71
|
+
private attributionIndex;
|
|
72
|
+
private attributionFetchedAt;
|
|
73
|
+
private directoryCache;
|
|
74
|
+
private metadataCache;
|
|
75
|
+
private readonly sessionMetadataStore;
|
|
76
|
+
/**
|
|
77
|
+
* Create a new SessionDiscoveryService
|
|
78
|
+
*
|
|
79
|
+
* @param options - Configuration options
|
|
80
|
+
*/
|
|
81
|
+
constructor(options: SessionDiscoveryOptions);
|
|
82
|
+
/**
|
|
83
|
+
* Check if the attribution index cache is valid
|
|
84
|
+
*/
|
|
85
|
+
private isAttributionCacheValid;
|
|
86
|
+
/**
|
|
87
|
+
* Check if a directory cache entry is valid
|
|
88
|
+
*/
|
|
89
|
+
private isDirectoryCacheValid;
|
|
90
|
+
/**
|
|
91
|
+
* Get or refresh the attribution index
|
|
92
|
+
*/
|
|
93
|
+
private getAttributionIndex;
|
|
94
|
+
/**
|
|
95
|
+
* List session files in a directory with their modification times
|
|
96
|
+
*/
|
|
97
|
+
private listSessionFiles;
|
|
98
|
+
/**
|
|
99
|
+
* Resolve the auto-generated name for a session.
|
|
100
|
+
*
|
|
101
|
+
* Checks if the cached autoName is still valid (based on file mtime).
|
|
102
|
+
* If not, extracts a new name from the JSONL summary field.
|
|
103
|
+
*
|
|
104
|
+
* @param agentName - The agent's qualified name (use "adhoc" for unattributed sessions)
|
|
105
|
+
* @param sessionId - The session ID
|
|
106
|
+
* @param fileMtime - ISO 8601 timestamp of the session file's modification time
|
|
107
|
+
* @param workingDirectory - The session's working directory
|
|
108
|
+
* @returns Object with autoName and whether an update is needed
|
|
109
|
+
*/
|
|
110
|
+
private resolveAutoName;
|
|
111
|
+
/**
|
|
112
|
+
* Get sessions for a specific agent.
|
|
113
|
+
*
|
|
114
|
+
* Returns sessions from the agent's working directory, attributed and
|
|
115
|
+
* enriched with custom names from the metadata store.
|
|
116
|
+
*
|
|
117
|
+
* @param agentName - The agent's qualified name
|
|
118
|
+
* @param workingDirectory - The agent's working directory
|
|
119
|
+
* @param dockerEnabled - Whether Docker is enabled for the agent (affects resumability)
|
|
120
|
+
* @param options - Optional settings (limit for top-N optimization)
|
|
121
|
+
* @returns Array of discovered sessions sorted by mtime descending
|
|
122
|
+
*/
|
|
123
|
+
getAgentSessions(agentName: string, workingDirectory: string, dockerEnabled: boolean, options?: {
|
|
124
|
+
limit?: number;
|
|
125
|
+
}): Promise<DiscoveredSession[]>;
|
|
126
|
+
/**
|
|
127
|
+
* Get all sessions grouped by working directory.
|
|
128
|
+
*
|
|
129
|
+
* Scans the Claude projects directory and groups sessions by their
|
|
130
|
+
* working directories. Filters out temp directories and enriches
|
|
131
|
+
* sessions with attribution and custom names.
|
|
132
|
+
*
|
|
133
|
+
* When a limit is provided, only the most recent `limit` sessions
|
|
134
|
+
* (by mtime) are enriched with names, avoiding expensive JSONL parsing
|
|
135
|
+
* for sessions that won't be returned.
|
|
136
|
+
*
|
|
137
|
+
* @param agents - Array of known agents for matching sessions
|
|
138
|
+
* @param options - Optional settings (limit for top-N optimization)
|
|
139
|
+
* @returns Array of directory groups sorted by most recent session
|
|
140
|
+
*/
|
|
141
|
+
getAllSessions(agents: Array<{
|
|
142
|
+
name: string;
|
|
143
|
+
workingDirectory: string;
|
|
144
|
+
dockerEnabled: boolean;
|
|
145
|
+
}>, options?: {
|
|
146
|
+
limit?: number;
|
|
147
|
+
}): Promise<DirectoryGroup[]>;
|
|
148
|
+
/**
|
|
149
|
+
* Get parsed chat messages from a session.
|
|
150
|
+
*
|
|
151
|
+
* Delegates to the JSONL parser.
|
|
152
|
+
*
|
|
153
|
+
* @param workingDirectory - The session's working directory
|
|
154
|
+
* @param sessionId - The session ID
|
|
155
|
+
* @returns Array of chat messages
|
|
156
|
+
*/
|
|
157
|
+
getSessionMessages(workingDirectory: string, sessionId: string): Promise<ChatMessage[]>;
|
|
158
|
+
/**
|
|
159
|
+
* Get metadata for a session.
|
|
160
|
+
*
|
|
161
|
+
* Caches the result for efficiency when called repeatedly.
|
|
162
|
+
*
|
|
163
|
+
* @param workingDirectory - The session's working directory
|
|
164
|
+
* @param sessionId - The session ID
|
|
165
|
+
* @returns Session metadata
|
|
166
|
+
*/
|
|
167
|
+
getSessionMetadata(workingDirectory: string, sessionId: string): Promise<SessionMetadata>;
|
|
168
|
+
/**
|
|
169
|
+
* Get usage data for a session.
|
|
170
|
+
*
|
|
171
|
+
* Delegates to the JSONL parser.
|
|
172
|
+
*
|
|
173
|
+
* @param workingDirectory - The session's working directory
|
|
174
|
+
* @param sessionId - The session ID
|
|
175
|
+
* @returns Session usage data
|
|
176
|
+
*/
|
|
177
|
+
getSessionUsage(workingDirectory: string, sessionId: string): Promise<SessionUsage>;
|
|
178
|
+
/**
|
|
179
|
+
* Invalidate cached data.
|
|
180
|
+
*
|
|
181
|
+
* If a working directory is provided, only that directory's cache entry
|
|
182
|
+
* is cleared. Otherwise, all caches are cleared.
|
|
183
|
+
*
|
|
184
|
+
* @param workingDirectory - Optional working directory to clear cache for
|
|
185
|
+
*/
|
|
186
|
+
invalidateCache(workingDirectory?: string): void;
|
|
187
|
+
}
|
|
188
|
+
//# sourceMappingURL=session-discovery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-discovery.d.ts","sourceRoot":"","sources":["../../src/state/session-discovery.ts"],"names":[],"mappings":"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"}
|