cyrus-edge-worker 0.2.20 → 0.2.22
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/ActivityPoster.d.ts +15 -0
- package/dist/ActivityPoster.d.ts.map +1 -0
- package/dist/ActivityPoster.js +194 -0
- package/dist/ActivityPoster.js.map +1 -0
- package/dist/AgentSessionManager.d.ts +65 -21
- package/dist/AgentSessionManager.d.ts.map +1 -1
- package/dist/AgentSessionManager.js +543 -396
- package/dist/AgentSessionManager.js.map +1 -1
- package/dist/AskUserQuestionHandler.d.ts +3 -2
- package/dist/AskUserQuestionHandler.d.ts.map +1 -1
- package/dist/AskUserQuestionHandler.js +15 -12
- package/dist/AskUserQuestionHandler.js.map +1 -1
- package/dist/AttachmentService.d.ts +69 -0
- package/dist/AttachmentService.d.ts.map +1 -0
- package/dist/AttachmentService.js +369 -0
- package/dist/AttachmentService.js.map +1 -0
- package/dist/ChatSessionHandler.d.ts +87 -0
- package/dist/ChatSessionHandler.d.ts.map +1 -0
- package/dist/ChatSessionHandler.js +227 -0
- package/dist/ChatSessionHandler.js.map +1 -0
- package/dist/ConfigManager.d.ts +91 -0
- package/dist/ConfigManager.d.ts.map +1 -0
- package/dist/ConfigManager.js +227 -0
- package/dist/ConfigManager.js.map +1 -0
- package/dist/EdgeWorker.d.ts +152 -120
- package/dist/EdgeWorker.d.ts.map +1 -1
- package/dist/EdgeWorker.js +1340 -2127
- package/dist/EdgeWorker.js.map +1 -1
- package/dist/GitService.d.ts +14 -10
- package/dist/GitService.d.ts.map +1 -1
- package/dist/GitService.js +91 -12
- package/dist/GitService.js.map +1 -1
- package/dist/GlobalSessionRegistry.d.ts +142 -0
- package/dist/GlobalSessionRegistry.d.ts.map +1 -0
- package/dist/GlobalSessionRegistry.js +254 -0
- package/dist/GlobalSessionRegistry.js.map +1 -0
- package/dist/PromptBuilder.d.ts +175 -0
- package/dist/PromptBuilder.d.ts.map +1 -0
- package/dist/PromptBuilder.js +884 -0
- package/dist/PromptBuilder.js.map +1 -0
- package/dist/RepositoryRouter.d.ts +3 -2
- package/dist/RepositoryRouter.d.ts.map +1 -1
- package/dist/RepositoryRouter.js +39 -37
- package/dist/RepositoryRouter.js.map +1 -1
- package/dist/RunnerSelectionService.d.ts +71 -0
- package/dist/RunnerSelectionService.d.ts.map +1 -0
- package/dist/RunnerSelectionService.js +392 -0
- package/dist/RunnerSelectionService.js.map +1 -0
- package/dist/SharedApplicationServer.d.ts +3 -1
- package/dist/SharedApplicationServer.d.ts.map +1 -1
- package/dist/SharedApplicationServer.js +21 -17
- package/dist/SharedApplicationServer.js.map +1 -1
- package/dist/SharedWebhookServer.d.ts +3 -1
- package/dist/SharedWebhookServer.d.ts.map +1 -1
- package/dist/SharedWebhookServer.js +19 -16
- package/dist/SharedWebhookServer.js.map +1 -1
- package/dist/SlackChatAdapter.d.ts +25 -0
- package/dist/SlackChatAdapter.d.ts.map +1 -0
- package/dist/SlackChatAdapter.js +143 -0
- package/dist/SlackChatAdapter.js.map +1 -0
- package/dist/WorktreeIncludeService.d.ts +2 -9
- package/dist/WorktreeIncludeService.d.ts.map +1 -1
- package/dist/WorktreeIncludeService.js +3 -9
- package/dist/WorktreeIncludeService.js.map +1 -1
- package/dist/index.d.ts +7 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/procedures/ProcedureAnalyzer.d.ts +12 -5
- package/dist/procedures/ProcedureAnalyzer.d.ts.map +1 -1
- package/dist/procedures/ProcedureAnalyzer.js +49 -13
- package/dist/procedures/ProcedureAnalyzer.js.map +1 -1
- package/dist/procedures/types.d.ts +3 -0
- package/dist/procedures/types.d.ts.map +1 -1
- package/dist/prompts/graphite-orchestrator.md +4 -2
- package/dist/prompts/orchestrator.md +5 -3
- package/dist/sinks/IActivitySink.d.ts +60 -0
- package/dist/sinks/IActivitySink.d.ts.map +1 -0
- package/dist/sinks/IActivitySink.js +2 -0
- package/dist/sinks/IActivitySink.js.map +1 -0
- package/dist/sinks/LinearActivitySink.d.ts +69 -0
- package/dist/sinks/LinearActivitySink.d.ts.map +1 -0
- package/dist/sinks/LinearActivitySink.js +111 -0
- package/dist/sinks/LinearActivitySink.js.map +1 -0
- package/dist/sinks/NoopActivitySink.d.ts +13 -0
- package/dist/sinks/NoopActivitySink.d.ts.map +1 -0
- package/dist/sinks/NoopActivitySink.js +17 -0
- package/dist/sinks/NoopActivitySink.js.map +1 -0
- package/dist/sinks/index.d.ts +9 -0
- package/dist/sinks/index.d.ts.map +1 -0
- package/dist/sinks/index.js +8 -0
- package/dist/sinks/index.js.map +1 -0
- package/package.json +16 -10
- package/prompts/graphite-orchestrator.md +4 -2
- package/prompts/orchestrator.md +5 -3
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { AgentActivityCreateInput, IIssueTrackerService, ILogger, RepositoryConfig } from "cyrus-core";
|
|
2
|
+
export declare class ActivityPoster {
|
|
3
|
+
private issueTrackers;
|
|
4
|
+
private repositories;
|
|
5
|
+
private logger;
|
|
6
|
+
constructor(issueTrackers: Map<string, IIssueTrackerService>, repositories: Map<string, RepositoryConfig>, logger: ILogger);
|
|
7
|
+
postActivityDirect(issueTracker: IIssueTrackerService, input: AgentActivityCreateInput, label: string): Promise<string | null>;
|
|
8
|
+
postInstantAcknowledgment(sessionId: string, repositoryId: string): Promise<void>;
|
|
9
|
+
postParentResumeAcknowledgment(sessionId: string, repositoryId: string): Promise<void>;
|
|
10
|
+
postRepositorySelectionActivity(sessionId: string, repositoryId: string, repositoryName: string, selectionMethod: "description-tag" | "label-based" | "project-based" | "team-based" | "team-prefix" | "catch-all" | "workspace-fallback" | "user-selected"): Promise<void>;
|
|
11
|
+
postSystemPromptSelectionThought(sessionId: string, labels: string[], repositoryId: string): Promise<void>;
|
|
12
|
+
postInstantPromptedAcknowledgment(sessionId: string, repositoryId: string, isStreaming: boolean): Promise<void>;
|
|
13
|
+
postComment(issueId: string, body: string, repositoryId: string, parentId?: string): Promise<void>;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=ActivityPoster.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActivityPoster.d.ts","sourceRoot":"","sources":["../src/ActivityPoster.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,wBAAwB,EACxB,oBAAoB,EACpB,OAAO,EACP,gBAAgB,EAChB,MAAM,YAAY,CAAC;AAEpB,qBAAa,cAAc;IAC1B,OAAO,CAAC,aAAa,CAAoC;IACzD,OAAO,CAAC,YAAY,CAAgC;IACpD,OAAO,CAAC,MAAM,CAAU;gBAGvB,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,EAChD,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAC3C,MAAM,EAAE,OAAO;IAOV,kBAAkB,CACvB,YAAY,EAAE,oBAAoB,EAClC,KAAK,EAAE,wBAAwB,EAC/B,KAAK,EAAE,MAAM,GACX,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAoBnB,yBAAyB,CAC9B,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC;IAoBV,8BAA8B,CACnC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC;IAiBV,+BAA+B,CACpC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,EACtB,eAAe,EACZ,iBAAiB,GACjB,aAAa,GACb,eAAe,GACf,YAAY,GACZ,aAAa,GACb,WAAW,GACX,oBAAoB,GACpB,eAAe,GAChB,OAAO,CAAC,IAAI,CAAC;IAuCV,gCAAgC,CACrC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EAAE,EAChB,YAAY,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC;IAsFV,iCAAiC,CACtC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,OAAO,GAClB,OAAO,CAAC,IAAI,CAAC;IAqBV,WAAW,CAChB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,QAAQ,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC;CAehB"}
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
export class ActivityPoster {
|
|
2
|
+
issueTrackers;
|
|
3
|
+
repositories;
|
|
4
|
+
logger;
|
|
5
|
+
constructor(issueTrackers, repositories, logger) {
|
|
6
|
+
this.issueTrackers = issueTrackers;
|
|
7
|
+
this.repositories = repositories;
|
|
8
|
+
this.logger = logger;
|
|
9
|
+
}
|
|
10
|
+
async postActivityDirect(issueTracker, input, label) {
|
|
11
|
+
try {
|
|
12
|
+
const result = await issueTracker.createAgentActivity(input);
|
|
13
|
+
if (result.success) {
|
|
14
|
+
if (result.agentActivity) {
|
|
15
|
+
const activity = await result.agentActivity;
|
|
16
|
+
this.logger.debug(`Created ${label} activity ${activity.id}`);
|
|
17
|
+
return activity.id;
|
|
18
|
+
}
|
|
19
|
+
this.logger.debug(`Created ${label}`);
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
this.logger.error(`Failed to create ${label}:`, result);
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
this.logger.error(`Error creating ${label}:`, error);
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
async postInstantAcknowledgment(sessionId, repositoryId) {
|
|
31
|
+
const issueTracker = this.issueTrackers.get(repositoryId);
|
|
32
|
+
if (!issueTracker) {
|
|
33
|
+
this.logger.warn(`No issue tracker found for repository ${repositoryId}`);
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
await this.postActivityDirect(issueTracker, {
|
|
37
|
+
agentSessionId: sessionId,
|
|
38
|
+
content: {
|
|
39
|
+
type: "thought",
|
|
40
|
+
body: "I've received your request and I'm starting to work on it. Let me analyze the issue and prepare my approach.",
|
|
41
|
+
},
|
|
42
|
+
}, "instant acknowledgment");
|
|
43
|
+
}
|
|
44
|
+
async postParentResumeAcknowledgment(sessionId, repositoryId) {
|
|
45
|
+
const issueTracker = this.issueTrackers.get(repositoryId);
|
|
46
|
+
if (!issueTracker) {
|
|
47
|
+
this.logger.warn(`No issue tracker found for repository ${repositoryId}`);
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
await this.postActivityDirect(issueTracker, {
|
|
51
|
+
agentSessionId: sessionId,
|
|
52
|
+
content: { type: "thought", body: "Resuming from child session" },
|
|
53
|
+
}, "parent resume acknowledgment");
|
|
54
|
+
}
|
|
55
|
+
async postRepositorySelectionActivity(sessionId, repositoryId, repositoryName, selectionMethod) {
|
|
56
|
+
const issueTracker = this.issueTrackers.get(repositoryId);
|
|
57
|
+
if (!issueTracker) {
|
|
58
|
+
this.logger.warn(`No issue tracker found for repository ${repositoryId}`);
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
let methodDisplay;
|
|
62
|
+
if (selectionMethod === "user-selected") {
|
|
63
|
+
methodDisplay = "selected by user";
|
|
64
|
+
}
|
|
65
|
+
else if (selectionMethod === "description-tag") {
|
|
66
|
+
methodDisplay = "matched via [repo=...] tag in issue description";
|
|
67
|
+
}
|
|
68
|
+
else if (selectionMethod === "label-based") {
|
|
69
|
+
methodDisplay = "matched via label-based routing";
|
|
70
|
+
}
|
|
71
|
+
else if (selectionMethod === "project-based") {
|
|
72
|
+
methodDisplay = "matched via project-based routing";
|
|
73
|
+
}
|
|
74
|
+
else if (selectionMethod === "team-based") {
|
|
75
|
+
methodDisplay = "matched via team-based routing";
|
|
76
|
+
}
|
|
77
|
+
else if (selectionMethod === "team-prefix") {
|
|
78
|
+
methodDisplay = "matched via team prefix routing";
|
|
79
|
+
}
|
|
80
|
+
else if (selectionMethod === "catch-all") {
|
|
81
|
+
methodDisplay = "matched via catch-all routing";
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
methodDisplay = "matched via workspace fallback";
|
|
85
|
+
}
|
|
86
|
+
await this.postActivityDirect(issueTracker, {
|
|
87
|
+
agentSessionId: sessionId,
|
|
88
|
+
content: {
|
|
89
|
+
type: "thought",
|
|
90
|
+
body: `Repository "${repositoryName}" has been ${methodDisplay}.`,
|
|
91
|
+
},
|
|
92
|
+
}, "repository selection");
|
|
93
|
+
}
|
|
94
|
+
async postSystemPromptSelectionThought(sessionId, labels, repositoryId) {
|
|
95
|
+
const issueTracker = this.issueTrackers.get(repositoryId);
|
|
96
|
+
if (!issueTracker) {
|
|
97
|
+
this.logger.warn(`No issue tracker found for repository ${repositoryId}`);
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
// Determine which prompt type was selected and which label triggered it
|
|
101
|
+
let selectedPromptType = null;
|
|
102
|
+
let triggerLabel = null;
|
|
103
|
+
const repository = Array.from(this.repositories.values()).find((r) => r.id === repositoryId);
|
|
104
|
+
if (repository?.labelPrompts) {
|
|
105
|
+
// Check debugger labels
|
|
106
|
+
const debuggerConfig = repository.labelPrompts.debugger;
|
|
107
|
+
const debuggerLabels = Array.isArray(debuggerConfig)
|
|
108
|
+
? debuggerConfig
|
|
109
|
+
: debuggerConfig?.labels;
|
|
110
|
+
const debuggerLabel = debuggerLabels?.find((label) => labels.includes(label));
|
|
111
|
+
if (debuggerLabel) {
|
|
112
|
+
selectedPromptType = "debugger";
|
|
113
|
+
triggerLabel = debuggerLabel;
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
// Check builder labels
|
|
117
|
+
const builderConfig = repository.labelPrompts.builder;
|
|
118
|
+
const builderLabels = Array.isArray(builderConfig)
|
|
119
|
+
? builderConfig
|
|
120
|
+
: builderConfig?.labels;
|
|
121
|
+
const builderLabel = builderLabels?.find((label) => labels.includes(label));
|
|
122
|
+
if (builderLabel) {
|
|
123
|
+
selectedPromptType = "builder";
|
|
124
|
+
triggerLabel = builderLabel;
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
// Check scoper labels
|
|
128
|
+
const scoperConfig = repository.labelPrompts.scoper;
|
|
129
|
+
const scoperLabels = Array.isArray(scoperConfig)
|
|
130
|
+
? scoperConfig
|
|
131
|
+
: scoperConfig?.labels;
|
|
132
|
+
const scoperLabel = scoperLabels?.find((label) => labels.includes(label));
|
|
133
|
+
if (scoperLabel) {
|
|
134
|
+
selectedPromptType = "scoper";
|
|
135
|
+
triggerLabel = scoperLabel;
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
// Check orchestrator labels
|
|
139
|
+
const orchestratorConfig = repository.labelPrompts.orchestrator;
|
|
140
|
+
const orchestratorLabels = Array.isArray(orchestratorConfig)
|
|
141
|
+
? orchestratorConfig
|
|
142
|
+
: (orchestratorConfig?.labels ?? ["orchestrator"]);
|
|
143
|
+
const orchestratorLabel = orchestratorLabels?.find((label) => labels.includes(label));
|
|
144
|
+
if (orchestratorLabel) {
|
|
145
|
+
selectedPromptType = "orchestrator";
|
|
146
|
+
triggerLabel = orchestratorLabel;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
// Only post if a role was actually triggered
|
|
153
|
+
if (!selectedPromptType || !triggerLabel) {
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
await this.postActivityDirect(issueTracker, {
|
|
157
|
+
agentSessionId: sessionId,
|
|
158
|
+
content: {
|
|
159
|
+
type: "thought",
|
|
160
|
+
body: `Entering '${selectedPromptType}' mode because of the '${triggerLabel}' label. I'll follow the ${selectedPromptType} process...`,
|
|
161
|
+
},
|
|
162
|
+
}, "system prompt selection");
|
|
163
|
+
}
|
|
164
|
+
async postInstantPromptedAcknowledgment(sessionId, repositoryId, isStreaming) {
|
|
165
|
+
const issueTracker = this.issueTrackers.get(repositoryId);
|
|
166
|
+
if (!issueTracker) {
|
|
167
|
+
this.logger.warn(`No issue tracker found for repository ${repositoryId}`);
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
const message = isStreaming
|
|
171
|
+
? "I've queued up your message as guidance"
|
|
172
|
+
: "Getting started on that...";
|
|
173
|
+
await this.postActivityDirect(issueTracker, {
|
|
174
|
+
agentSessionId: sessionId,
|
|
175
|
+
content: { type: "thought", body: message },
|
|
176
|
+
}, "prompted acknowledgment");
|
|
177
|
+
}
|
|
178
|
+
async postComment(issueId, body, repositoryId, parentId) {
|
|
179
|
+
// Get the issue tracker for this repository
|
|
180
|
+
const issueTracker = this.issueTrackers.get(repositoryId);
|
|
181
|
+
if (!issueTracker) {
|
|
182
|
+
throw new Error(`No issue tracker found for repository ${repositoryId}`);
|
|
183
|
+
}
|
|
184
|
+
const commentInput = {
|
|
185
|
+
body,
|
|
186
|
+
};
|
|
187
|
+
// Add parent ID if provided (for reply)
|
|
188
|
+
if (parentId) {
|
|
189
|
+
commentInput.parentId = parentId;
|
|
190
|
+
}
|
|
191
|
+
await issueTracker.createComment(issueId, commentInput);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
//# sourceMappingURL=ActivityPoster.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActivityPoster.js","sourceRoot":"","sources":["../src/ActivityPoster.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { EventEmitter } from "node:events";
|
|
2
2
|
import type { SDKMessage, SDKResultMessage, SDKSystemMessage } from "cyrus-claude-runner";
|
|
3
|
-
import { type CyrusAgentSession, type CyrusAgentSessionEntry, type IAgentRunner, type
|
|
3
|
+
import { type CyrusAgentSession, type CyrusAgentSessionEntry, type IAgentRunner, type ILogger, type IssueMinimal, type SerializedCyrusAgentSession, type SerializedCyrusAgentSessionEntry, type Workspace } from "cyrus-core";
|
|
4
4
|
import type { ProcedureAnalyzer } from "./procedures/ProcedureAnalyzer.js";
|
|
5
5
|
import type { SharedApplicationServer } from "./SharedApplicationServer.js";
|
|
6
|
+
import type { IActivitySink } from "./sinks/index.js";
|
|
6
7
|
/**
|
|
7
8
|
* Events emitted by AgentSessionManager
|
|
8
9
|
*/
|
|
9
10
|
export interface AgentSessionManagerEvents {
|
|
10
11
|
subroutineComplete: (data: {
|
|
11
|
-
|
|
12
|
+
sessionId: string;
|
|
12
13
|
session: CyrusAgentSession;
|
|
13
14
|
}) => void;
|
|
14
15
|
/**
|
|
@@ -16,7 +17,7 @@ export interface AgentSessionManagerEvents {
|
|
|
16
17
|
* The EdgeWorker should respond by running the fixer prompt and then re-running verifications
|
|
17
18
|
*/
|
|
18
19
|
validationLoopIteration: (data: {
|
|
19
|
-
|
|
20
|
+
sessionId: string;
|
|
20
21
|
session: CyrusAgentSession;
|
|
21
22
|
/** The fixer prompt to run (already rendered with failure context) */
|
|
22
23
|
fixerPrompt: string;
|
|
@@ -29,7 +30,7 @@ export interface AgentSessionManagerEvents {
|
|
|
29
30
|
* Emitted when we need to re-run the verifications subroutine
|
|
30
31
|
*/
|
|
31
32
|
validationLoopRerun: (data: {
|
|
32
|
-
|
|
33
|
+
sessionId: string;
|
|
33
34
|
session: CyrusAgentSession;
|
|
34
35
|
/** Current iteration (1-based) */
|
|
35
36
|
iteration: number;
|
|
@@ -50,27 +51,51 @@ export declare interface AgentSessionManager {
|
|
|
50
51
|
* CURRENTLY BEING HANDLED 'per repository'
|
|
51
52
|
*/
|
|
52
53
|
export declare class AgentSessionManager extends EventEmitter {
|
|
53
|
-
private
|
|
54
|
+
private logger;
|
|
55
|
+
private activitySink;
|
|
54
56
|
private sessions;
|
|
55
57
|
private entries;
|
|
56
58
|
private activeTasksBySession;
|
|
57
59
|
private toolCallsByToolUseId;
|
|
60
|
+
private taskSubjectsByToolUseId;
|
|
61
|
+
private taskSubjectsById;
|
|
58
62
|
private activeStatusActivitiesBySession;
|
|
63
|
+
private stopRequestedSessions;
|
|
59
64
|
private procedureAnalyzer?;
|
|
60
65
|
private sharedApplicationServer?;
|
|
61
66
|
private getParentSessionId?;
|
|
62
67
|
private resumeParentSession?;
|
|
63
|
-
constructor(
|
|
68
|
+
constructor(activitySink: IActivitySink, getParentSessionId?: (childSessionId: string) => string | undefined, resumeParentSession?: (parentSessionId: string, prompt: string, childSessionId: string) => Promise<void>, procedureAnalyzer?: ProcedureAnalyzer, sharedApplicationServer?: SharedApplicationServer, logger?: ILogger);
|
|
64
69
|
/**
|
|
65
|
-
*
|
|
66
|
-
* The session is already created by Linear, we just need to track it
|
|
70
|
+
* Get a session-scoped logger with context (sessionId, platform, issueIdentifier).
|
|
67
71
|
*/
|
|
68
|
-
|
|
72
|
+
private sessionLog;
|
|
73
|
+
/**
|
|
74
|
+
* Initialize an agent session from webhook
|
|
75
|
+
* The session is already created by the platform, we just need to track it
|
|
76
|
+
*
|
|
77
|
+
* @param sessionId - Internal session ID
|
|
78
|
+
* @param issueId - Issue/PR identifier
|
|
79
|
+
* @param issueMinimal - Minimal issue data
|
|
80
|
+
* @param workspace - Workspace configuration
|
|
81
|
+
* @param platform - Source platform ("linear", "github", "slack"). Defaults to "linear".
|
|
82
|
+
* Only "linear" sessions will have activities streamed to Linear.
|
|
83
|
+
*/
|
|
84
|
+
createLinearAgentSession(sessionId: string, issueId: string, issueMinimal: IssueMinimal, workspace: Workspace, platform?: "linear" | "github" | "slack"): CyrusAgentSession;
|
|
85
|
+
/**
|
|
86
|
+
* Create an agent session for chat-style platforms (Slack, etc.) that are
|
|
87
|
+
* not tied to a specific issue or repository.
|
|
88
|
+
*
|
|
89
|
+
* Unlike {@link createLinearAgentSession}, this does NOT require issue
|
|
90
|
+
* context — the session lives in a standalone workspace with no issue
|
|
91
|
+
* tracker linkage.
|
|
92
|
+
*/
|
|
93
|
+
createChatSession(sessionId: string, workspace: Workspace, platform: string): CyrusAgentSession;
|
|
69
94
|
/**
|
|
70
95
|
* Update Agent Session with session ID from system initialization
|
|
71
96
|
* Automatically detects whether it's Claude or Gemini based on the runner
|
|
72
97
|
*/
|
|
73
|
-
updateAgentSessionWithClaudeSessionId(
|
|
98
|
+
updateAgentSessionWithClaudeSessionId(sessionId: string, claudeSystemMessage: SDKSystemMessage): void;
|
|
74
99
|
/**
|
|
75
100
|
* Create a session entry from user/assistant message (without syncing to Linear)
|
|
76
101
|
*/
|
|
@@ -78,7 +103,10 @@ export declare class AgentSessionManager extends EventEmitter {
|
|
|
78
103
|
/**
|
|
79
104
|
* Complete a session from Claude result message
|
|
80
105
|
*/
|
|
81
|
-
completeSession(
|
|
106
|
+
completeSession(sessionId: string, resultMessage: SDKResultMessage): Promise<void>;
|
|
107
|
+
private shouldRecoverFromPreviousSubroutine;
|
|
108
|
+
private consumeStopRequest;
|
|
109
|
+
requestSessionStop(linearAgentActivitySessionId: string): void;
|
|
82
110
|
/**
|
|
83
111
|
* Handle completion using procedure routing system
|
|
84
112
|
*/
|
|
@@ -104,7 +132,7 @@ export declare class AgentSessionManager extends EventEmitter {
|
|
|
104
132
|
/**
|
|
105
133
|
* Handle streaming Claude messages and route to appropriate methods
|
|
106
134
|
*/
|
|
107
|
-
handleClaudeMessage(
|
|
135
|
+
handleClaudeMessage(sessionId: string, message: SDKMessage): Promise<void>;
|
|
108
136
|
/**
|
|
109
137
|
* Update session status and metadata
|
|
110
138
|
*/
|
|
@@ -130,17 +158,17 @@ export declare class AgentSessionManager extends EventEmitter {
|
|
|
130
158
|
*/
|
|
131
159
|
private extractToolResult;
|
|
132
160
|
/**
|
|
133
|
-
* Sync
|
|
161
|
+
* Sync session entry to external tracker (create AgentActivity)
|
|
134
162
|
*/
|
|
135
|
-
private
|
|
163
|
+
private syncEntryToActivitySink;
|
|
136
164
|
/**
|
|
137
165
|
* Get session by ID
|
|
138
166
|
*/
|
|
139
|
-
getSession(
|
|
167
|
+
getSession(sessionId: string): CyrusAgentSession | undefined;
|
|
140
168
|
/**
|
|
141
169
|
* Get session entries by session ID
|
|
142
170
|
*/
|
|
143
|
-
getSessionEntries(
|
|
171
|
+
getSessionEntries(sessionId: string): CyrusAgentSessionEntry[];
|
|
144
172
|
/**
|
|
145
173
|
* Get all active sessions
|
|
146
174
|
*/
|
|
@@ -148,11 +176,15 @@ export declare class AgentSessionManager extends EventEmitter {
|
|
|
148
176
|
/**
|
|
149
177
|
* Add or update agent runner for a session
|
|
150
178
|
*/
|
|
151
|
-
addAgentRunner(
|
|
179
|
+
addAgentRunner(sessionId: string, agentRunner: IAgentRunner): void;
|
|
152
180
|
/**
|
|
153
181
|
* Get all agent runners
|
|
154
182
|
*/
|
|
155
183
|
getAllAgentRunners(): IAgentRunner[];
|
|
184
|
+
/**
|
|
185
|
+
* Resolve the issue ID from a session, checking issueContext first then deprecated issueId.
|
|
186
|
+
*/
|
|
187
|
+
private getSessionIssueId;
|
|
156
188
|
/**
|
|
157
189
|
* Get all agent runners for a specific issue
|
|
158
190
|
*/
|
|
@@ -165,6 +197,11 @@ export declare class AgentSessionManager extends EventEmitter {
|
|
|
165
197
|
* Get active sessions by issue ID
|
|
166
198
|
*/
|
|
167
199
|
getActiveSessionsByIssueId(issueId: string): CyrusAgentSession[];
|
|
200
|
+
/**
|
|
201
|
+
* Get active sessions where the issue's branch name matches the given branch.
|
|
202
|
+
* Useful for detecting when multiple sessions share the same worktree.
|
|
203
|
+
*/
|
|
204
|
+
getActiveSessionsByBranchName(branchName: string): CyrusAgentSession[];
|
|
168
205
|
/**
|
|
169
206
|
* Get all sessions
|
|
170
207
|
*/
|
|
@@ -172,11 +209,18 @@ export declare class AgentSessionManager extends EventEmitter {
|
|
|
172
209
|
/**
|
|
173
210
|
* Get agent runner for a specific session
|
|
174
211
|
*/
|
|
175
|
-
getAgentRunner(
|
|
212
|
+
getAgentRunner(sessionId: string): IAgentRunner | undefined;
|
|
176
213
|
/**
|
|
177
214
|
* Check if an agent runner exists for a session
|
|
178
215
|
*/
|
|
179
|
-
hasAgentRunner(
|
|
216
|
+
hasAgentRunner(sessionId: string): boolean;
|
|
217
|
+
/**
|
|
218
|
+
* Post an activity to the activity sink for a session.
|
|
219
|
+
* Consolidates session lookup, externalSessionId guard, try/catch, and logging.
|
|
220
|
+
*
|
|
221
|
+
* @returns The activity ID when resolved, `null` otherwise.
|
|
222
|
+
*/
|
|
223
|
+
private postActivity;
|
|
180
224
|
/**
|
|
181
225
|
* Create a thought activity
|
|
182
226
|
*/
|
|
@@ -223,11 +267,11 @@ export declare class AgentSessionManager extends EventEmitter {
|
|
|
223
267
|
/**
|
|
224
268
|
* Post an ephemeral "Analyzing your request..." thought and return the activity ID
|
|
225
269
|
*/
|
|
226
|
-
postAnalyzingThought(
|
|
270
|
+
postAnalyzingThought(sessionId: string): Promise<string | null>;
|
|
227
271
|
/**
|
|
228
272
|
* Post the procedure selection result as a non-ephemeral thought
|
|
229
273
|
*/
|
|
230
|
-
postProcedureSelectionThought(
|
|
274
|
+
postProcedureSelectionThought(sessionId: string, procedureName: string, classification: string): Promise<void>;
|
|
231
275
|
/**
|
|
232
276
|
* Handle status messages (compacting, etc.)
|
|
233
277
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentSessionManager.d.ts","sourceRoot":"","sources":["../src/AgentSessionManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAIX,UAAU,EACV,gBAAgB,EAEhB,gBAAgB,EAEhB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,
|
|
1
|
+
{"version":3,"file":"AgentSessionManager.d.ts","sourceRoot":"","sources":["../src/AgentSessionManager.ts"],"names":[],"mappings":"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"}
|