cyrus-core 0.2.5 → 0.2.7
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/CyrusAgentSession.d.ts +14 -0
- package/dist/CyrusAgentSession.d.ts.map +1 -1
- package/dist/agent-runner-types.d.ts +97 -0
- package/dist/agent-runner-types.d.ts.map +1 -1
- package/dist/config-types.d.ts +22 -4
- package/dist/config-types.d.ts.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/issue-tracker/IIssueTrackerService.d.ts +18 -5
- package/dist/issue-tracker/IIssueTrackerService.d.ts.map +1 -1
- package/dist/issue-tracker/adapters/CLIEventTransport.d.ts +91 -0
- package/dist/issue-tracker/adapters/CLIEventTransport.d.ts.map +1 -0
- package/dist/issue-tracker/adapters/CLIEventTransport.js +104 -0
- package/dist/issue-tracker/adapters/CLIEventTransport.js.map +1 -0
- package/dist/issue-tracker/adapters/CLIIssueTrackerService.d.ts +239 -0
- package/dist/issue-tracker/adapters/CLIIssueTrackerService.d.ts.map +1 -0
- package/dist/issue-tracker/adapters/CLIIssueTrackerService.js +1112 -0
- package/dist/issue-tracker/adapters/CLIIssueTrackerService.js.map +1 -0
- package/dist/issue-tracker/adapters/CLIRPCServer.d.ts +318 -0
- package/dist/issue-tracker/adapters/CLIRPCServer.d.ts.map +1 -0
- package/dist/issue-tracker/adapters/CLIRPCServer.js +536 -0
- package/dist/issue-tracker/adapters/CLIRPCServer.js.map +1 -0
- package/dist/issue-tracker/adapters/CLITypes.d.ts +243 -0
- package/dist/issue-tracker/adapters/CLITypes.d.ts.map +1 -0
- package/dist/issue-tracker/adapters/CLITypes.js +378 -0
- package/dist/issue-tracker/adapters/CLITypes.js.map +1 -0
- package/dist/issue-tracker/adapters/index.d.ts +14 -0
- package/dist/issue-tracker/adapters/index.d.ts.map +1 -0
- package/dist/issue-tracker/adapters/index.js +11 -0
- package/dist/issue-tracker/adapters/index.js.map +1 -0
- package/dist/issue-tracker/index.d.ts +2 -1
- package/dist/issue-tracker/index.d.ts.map +1 -1
- package/dist/issue-tracker/index.js +3 -2
- package/dist/issue-tracker/index.js.map +1 -1
- package/dist/issue-tracker/types.d.ts +141 -29
- package/dist/issue-tracker/types.d.ts.map +1 -1
- package/dist/issue-tracker/types.js.map +1 -1
- package/package.json +2 -2
|
@@ -46,6 +46,20 @@ export interface CyrusAgentSession {
|
|
|
46
46
|
claudeSessionId: string | null;
|
|
47
47
|
geminiSessionId: string | null;
|
|
48
48
|
}>;
|
|
49
|
+
/** State for validation loop (when current subroutine uses usesValidationLoop) */
|
|
50
|
+
validationLoop?: {
|
|
51
|
+
/** Current iteration (1-based) */
|
|
52
|
+
iteration: number;
|
|
53
|
+
/** Whether the loop is in fixer mode (running validation-fixer) */
|
|
54
|
+
inFixerMode: boolean;
|
|
55
|
+
/** Results from each validation attempt */
|
|
56
|
+
attempts: Array<{
|
|
57
|
+
iteration: number;
|
|
58
|
+
pass: boolean;
|
|
59
|
+
reason: string;
|
|
60
|
+
timestamp: number;
|
|
61
|
+
}>;
|
|
62
|
+
};
|
|
49
63
|
};
|
|
50
64
|
};
|
|
51
65
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CyrusAgentSession.d.ts","sourceRoot":"","sources":["../src/CyrusAgentSession.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EACX,kBAAkB,EAClB,gBAAgB,EAChB,MAAM,0BAA0B,CAAC;AAElC,MAAM,WAAW,YAAY;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IACjC,4BAA4B,EAAE,MAAM,CAAC;IACrC,IAAI,EAAE,gBAAgB,CAAC,aAAa,CAAC;IACrC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,OAAO,EAAE,gBAAgB,CAAC,aAAa,CAAC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,YAAY,CAAC;IACpB,SAAS,EAAE,SAAS,CAAC;IAErB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B,QAAQ,CAAC,EAAE;QACV,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,KAAK,CAAC,EAAE,GAAG,CAAC;QACZ,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE;YACX,aAAa,EAAE,MAAM,CAAC;YACtB,sBAAsB,EAAE,MAAM,CAAC;YAC/B,iBAAiB,EAAE,KAAK,CAAC;gBACxB,UAAU,EAAE,MAAM,CAAC;gBACnB,WAAW,EAAE,MAAM,CAAC;gBACpB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;gBAC/B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;aAC/B,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"CyrusAgentSession.d.ts","sourceRoot":"","sources":["../src/CyrusAgentSession.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,92 @@
|
|
|
1
1
|
import type { HookCallbackMatcher, HookEvent, McpServerConfig, SDKMessage, SDKUserMessage } from "@anthropic-ai/claude-agent-sdk";
|
|
2
|
+
import type { AskUserQuestionInput as SDKAskUserQuestionInput } from "@anthropic-ai/claude-agent-sdk/sdk-tools.d.ts";
|
|
3
|
+
/**
|
|
4
|
+
* The canonical AskUserQuestionInput type from the Claude SDK.
|
|
5
|
+
*
|
|
6
|
+
* @see {@link https://platform.claude.com/docs/en/agent-sdk/typescript#ask-user-question}
|
|
7
|
+
*/
|
|
8
|
+
export type AskUserQuestionInput = SDKAskUserQuestionInput;
|
|
9
|
+
/**
|
|
10
|
+
* Simplified option type for easier API consumption.
|
|
11
|
+
* Matches the structure within AskUserQuestionInput but without tuple constraints.
|
|
12
|
+
*/
|
|
13
|
+
export interface AskUserQuestionOption {
|
|
14
|
+
/** The display text for this option */
|
|
15
|
+
label: string;
|
|
16
|
+
/** Explanation of what this option means */
|
|
17
|
+
description: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Simplified question type for easier API consumption.
|
|
21
|
+
* Matches the structure within AskUserQuestionInput but without tuple constraints.
|
|
22
|
+
*/
|
|
23
|
+
export interface AskUserQuestion {
|
|
24
|
+
/** The complete question to ask the user */
|
|
25
|
+
question: string;
|
|
26
|
+
/** Short label for the question (max 12 chars) */
|
|
27
|
+
header: string;
|
|
28
|
+
/** The available choices (2-4 options) */
|
|
29
|
+
options: AskUserQuestionOption[];
|
|
30
|
+
/** Whether multiple options can be selected */
|
|
31
|
+
multiSelect: boolean;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Result of user responding to questions.
|
|
35
|
+
* Maps question text to selected option label(s).
|
|
36
|
+
*
|
|
37
|
+
* For single-select: the value is the selected option's label
|
|
38
|
+
* For multi-select: the value is a comma-separated string of selected labels
|
|
39
|
+
*
|
|
40
|
+
* @see {@link https://platform.claude.com/docs/en/agent-sdk/permissions#returning-answers}
|
|
41
|
+
*/
|
|
42
|
+
export type AskUserQuestionAnswers = Record<string, string>;
|
|
43
|
+
/**
|
|
44
|
+
* Result of presenting questions to the user.
|
|
45
|
+
*/
|
|
46
|
+
export interface AskUserQuestionResult {
|
|
47
|
+
/** Whether the user provided answers (true) or the request was cancelled/denied (false) */
|
|
48
|
+
answered: boolean;
|
|
49
|
+
/** The user's answers, if answered is true */
|
|
50
|
+
answers?: AskUserQuestionAnswers;
|
|
51
|
+
/** Message explaining why the request was denied, if answered is false */
|
|
52
|
+
message?: string;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Callback for handling AskUserQuestion tool invocations.
|
|
56
|
+
*
|
|
57
|
+
* This callback is invoked when Claude uses the AskUserQuestion tool to ask
|
|
58
|
+
* the user clarifying questions. Implementations should present the questions
|
|
59
|
+
* to the user (e.g., via Linear's select signal) and return their answers.
|
|
60
|
+
*
|
|
61
|
+
* @param input - The questions to present to the user
|
|
62
|
+
* @param sessionId - The agent session ID (used for tracking pending responses)
|
|
63
|
+
* @param signal - AbortSignal to cancel the operation if needed
|
|
64
|
+
* @returns Promise resolving to the user's answers or a denial
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* ```typescript
|
|
68
|
+
* const onAskUserQuestion: OnAskUserQuestion = async (input, sessionId, signal) => {
|
|
69
|
+
* // Present questions to user via Linear select signal
|
|
70
|
+
* const answers = await presentToLinear(input.questions, sessionId);
|
|
71
|
+
*
|
|
72
|
+
* if (answers) {
|
|
73
|
+
* return {
|
|
74
|
+
* answered: true,
|
|
75
|
+
* answers: {
|
|
76
|
+
* "Which database should we use?": "PostgreSQL",
|
|
77
|
+
* "Which features should we enable?": "Authentication, Caching"
|
|
78
|
+
* }
|
|
79
|
+
* };
|
|
80
|
+
* } else {
|
|
81
|
+
* return {
|
|
82
|
+
* answered: false,
|
|
83
|
+
* message: "User did not respond"
|
|
84
|
+
* };
|
|
85
|
+
* }
|
|
86
|
+
* };
|
|
87
|
+
* ```
|
|
88
|
+
*/
|
|
89
|
+
export type OnAskUserQuestion = (input: AskUserQuestionInput, sessionId: string, signal: AbortSignal) => Promise<AskUserQuestionResult>;
|
|
2
90
|
/**
|
|
3
91
|
* Message Formatter Interface
|
|
4
92
|
*
|
|
@@ -263,6 +351,15 @@ export interface AgentRunnerConfig {
|
|
|
263
351
|
};
|
|
264
352
|
/** Event hooks for customizing agent behavior */
|
|
265
353
|
hooks?: Partial<Record<HookEvent, HookCallbackMatcher[]>>;
|
|
354
|
+
/**
|
|
355
|
+
* Callback for handling AskUserQuestion tool invocations.
|
|
356
|
+
* When provided, intercepts the AskUserQuestion tool to allow presenting
|
|
357
|
+
* questions to users via external interfaces (e.g., Linear's select signal).
|
|
358
|
+
*
|
|
359
|
+
* Note: Only one question at a time is supported. Multiple questions in
|
|
360
|
+
* a single tool call will be rejected.
|
|
361
|
+
*/
|
|
362
|
+
onAskUserQuestion?: OnAskUserQuestion;
|
|
266
363
|
/** Callback for each message received */
|
|
267
364
|
onMessage?: (message: AgentMessage) => void | Promise<void>;
|
|
268
365
|
/** Callback for errors */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-runner-types.d.ts","sourceRoot":"","sources":["../src/agent-runner-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,mBAAmB,EACnB,SAAS,EACT,eAAe,EACf,UAAU,EACV,cAAc,EACd,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-runner-types.d.ts","sourceRoot":"","sources":["../src/agent-runner-types.ts"],"names":[],"mappings":"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"}
|
package/dist/config-types.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { SDKMessage } from "@anthropic-ai/claude-agent-sdk";
|
|
2
|
-
import type { Issue as LinearIssue } from "@linear/sdk";
|
|
3
2
|
import type { Workspace } from "./CyrusAgentSession.js";
|
|
3
|
+
import type { Issue } from "./issue-tracker/types.js";
|
|
4
4
|
/**
|
|
5
5
|
* Resolve path with tilde (~) expansion
|
|
6
6
|
* Expands ~ to the user's home directory and resolves to absolute path
|
|
@@ -65,6 +65,15 @@ export interface RepositoryConfig {
|
|
|
65
65
|
allowedTools?: string[] | "readOnly" | "safe" | "all" | "coordinator";
|
|
66
66
|
disallowedTools?: string[];
|
|
67
67
|
};
|
|
68
|
+
"graphite-orchestrator"?: {
|
|
69
|
+
labels: string[];
|
|
70
|
+
allowedTools?: string[] | "readOnly" | "safe" | "all" | "coordinator";
|
|
71
|
+
disallowedTools?: string[];
|
|
72
|
+
};
|
|
73
|
+
/** Label that indicates an issue should use the 'blocked by' issue as the 'base branch' for this issue worktree*/
|
|
74
|
+
graphite?: {
|
|
75
|
+
labels: string[];
|
|
76
|
+
};
|
|
68
77
|
};
|
|
69
78
|
}
|
|
70
79
|
/**
|
|
@@ -78,7 +87,12 @@ export interface EdgeWorkerConfig {
|
|
|
78
87
|
serverPort?: number;
|
|
79
88
|
serverHost?: string;
|
|
80
89
|
ngrokAuthToken?: string;
|
|
81
|
-
|
|
90
|
+
/**
|
|
91
|
+
* Issue tracker platform type (default: "linear")
|
|
92
|
+
* - "linear": Uses Linear as the issue tracker (default production mode)
|
|
93
|
+
* - "cli": Uses an in-memory issue tracker for CLI-based testing and development
|
|
94
|
+
*/
|
|
95
|
+
platform?: "linear" | "cli";
|
|
82
96
|
linearWorkspaceSlug?: string;
|
|
83
97
|
defaultAllowedTools?: string[];
|
|
84
98
|
defaultDisallowedTools?: string[];
|
|
@@ -101,15 +115,19 @@ export interface EdgeWorkerConfig {
|
|
|
101
115
|
allowedTools?: string[] | "readOnly" | "safe" | "all" | "coordinator";
|
|
102
116
|
disallowedTools?: string[];
|
|
103
117
|
};
|
|
118
|
+
"graphite-orchestrator"?: {
|
|
119
|
+
allowedTools?: string[] | "readOnly" | "safe" | "all" | "coordinator";
|
|
120
|
+
disallowedTools?: string[];
|
|
121
|
+
};
|
|
104
122
|
};
|
|
105
123
|
repositories: RepositoryConfig[];
|
|
106
124
|
cyrusHome: string;
|
|
107
125
|
agentHandle?: string;
|
|
108
126
|
agentUserId?: string;
|
|
109
127
|
handlers?: {
|
|
110
|
-
createWorkspace?: (issue:
|
|
128
|
+
createWorkspace?: (issue: Issue, repository: RepositoryConfig) => Promise<Workspace>;
|
|
111
129
|
onClaudeMessage?: (issueId: string, message: SDKMessage, repositoryId: string) => void;
|
|
112
|
-
onSessionStart?: (issueId: string, issue:
|
|
130
|
+
onSessionStart?: (issueId: string, issue: Issue, repositoryId: string) => void;
|
|
113
131
|
onSessionEnd?: (issueId: string, exitCode: number | null, repositoryId: string) => void;
|
|
114
132
|
onError?: (error: Error, context?: any) => void;
|
|
115
133
|
onOAuthCallback?: OAuthCallbackHandler;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-types.d.ts","sourceRoot":"","sources":["../src/config-types.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"config-types.d.ts","sourceRoot":"","sources":["../src/config-types.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
export type { AgentMessage, AgentRunnerConfig, AgentSessionInfo, AgentUserMessage, HookCallbackMatcher, HookEvent, IAgentRunner, IMessageFormatter, McpServerConfig, SDKAssistantMessage, SDKMessage, SDKResultMessage, SDKUserMessage, } from "./agent-runner-types.js";
|
|
1
|
+
export type { AgentMessage, AgentRunnerConfig, AgentSessionInfo, AgentUserMessage, AskUserQuestion, AskUserQuestionAnswers, AskUserQuestionInput, AskUserQuestionOption, AskUserQuestionResult, HookCallbackMatcher, HookEvent, IAgentRunner, IMessageFormatter, McpServerConfig, OnAskUserQuestion, SDKAssistantMessage, SDKMessage, SDKResultMessage, SDKUserMessage, } from "./agent-runner-types.js";
|
|
2
2
|
export type { CyrusAgentSession, CyrusAgentSessionEntry, IssueMinimal, Workspace, } from "./CyrusAgentSession.js";
|
|
3
3
|
export type { EdgeConfig, EdgeWorkerConfig, OAuthCallbackHandler, RepositoryConfig, } from "./config-types.js";
|
|
4
4
|
export { resolvePath } from "./config-types.js";
|
|
5
5
|
export { DEFAULT_PROXY_URL } from "./constants.js";
|
|
6
|
-
export type { AgentActivity, AgentActivityContent, AgentActivityCreateInput, AgentActivityPayload, AgentActivitySDK, AgentEvent, AgentEventTransportConfig, AgentEventTransportEvents, AgentSession, AgentSessionCreatedWebhook, AgentSessionCreateOnCommentInput, AgentSessionCreateOnIssueInput, AgentSessionCreateResponse, AgentSessionPromptedWebhook, AgentSessionSDK, Comment, CommentCreateInput, CommentWithAttachments, Connection, FetchChildrenOptions, FileUploadRequest, FileUploadResponse, GuidanceRule, IAgentEventTransport, IIssueTrackerService, Issue, IssueUnassignedWebhook, IssueUpdateInput, IssueWithChildren, Label, PaginationOptions, Team, User, Webhook, WebhookAgentSession, WebhookComment, WebhookIssue, WorkflowState, } from "./issue-tracker/index.js";
|
|
7
|
-
export { AgentActivityContentType, AgentActivitySignal, AgentSessionStatus, AgentSessionType, isAgentSessionCreatedEvent, isAgentSessionCreatedWebhook, isAgentSessionPromptedEvent, isAgentSessionPromptedWebhook, isCommentMentionEvent, isIssueAssignedEvent, isIssueAssignedWebhook, isIssueCommentMentionWebhook, isIssueNewCommentWebhook, isIssueUnassignedEvent, isIssueUnassignedWebhook, isNewCommentEvent, } from "./issue-tracker/index.js";
|
|
6
|
+
export type { AgentActivity, AgentActivityContent, AgentActivityCreateInput, AgentActivityPayload, AgentActivitySDK, AgentEvent, AgentEventTransportConfig, AgentEventTransportEvents, AgentSession, AgentSessionCreatedWebhook, AgentSessionCreateOnCommentInput, AgentSessionCreateOnIssueInput, AgentSessionCreateResponse, AgentSessionPromptedWebhook, AgentSessionSDK, Comment, CommentCreateInput, CommentWithAttachments, Connection, FetchChildrenOptions, FileUploadRequest, FileUploadResponse, GuidanceRule, IAgentEventTransport, IIssueTrackerService, Issue, IssueRelation, IssueUnassignedWebhook, IssueUpdateInput, IssueWithChildren, Label, PaginationOptions, Team, User, Webhook, WebhookAgentSession, WebhookComment, WebhookIssue, WorkflowState, } from "./issue-tracker/index.js";
|
|
7
|
+
export { AgentActivityContentType, AgentActivitySignal, AgentSessionStatus, AgentSessionType, CLIEventTransport, CLIIssueTrackerService, CLIRPCServer, isAgentSessionCreatedEvent, isAgentSessionCreatedWebhook, isAgentSessionPromptedEvent, isAgentSessionPromptedWebhook, isCommentMentionEvent, isIssueAssignedEvent, isIssueAssignedWebhook, isIssueCommentMentionWebhook, isIssueNewCommentWebhook, isIssueUnassignedEvent, isIssueUnassignedWebhook, isNewCommentEvent, } from "./issue-tracker/index.js";
|
|
8
8
|
export type { SerializableEdgeWorkerState, SerializedCyrusAgentSession, SerializedCyrusAgentSessionEntry, } from "./PersistenceManager.js";
|
|
9
9
|
export { PersistenceManager } from "./PersistenceManager.js";
|
|
10
10
|
export { StreamingPrompt } from "./StreamingPrompt.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,YAAY,EACX,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,SAAS,EACT,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,UAAU,EACV,gBAAgB,EAChB,cAAc,GACd,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACX,iBAAiB,EACjB,sBAAsB,EACtB,YAAY,EACZ,SAAS,GACT,MAAM,wBAAwB,CAAC;AAGhC,YAAY,EACX,UAAU,EACV,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,YAAY,EACX,aAAa,EACb,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,EACpB,gBAAgB,EAChB,UAAU,EACV,yBAAyB,EACzB,yBAAyB,EACzB,YAAY,EACZ,0BAA0B,EAC1B,gCAAgC,EAChC,8BAA8B,EAC9B,0BAA0B,EAC1B,2BAA2B,EAC3B,eAAe,EACf,OAAO,EACP,kBAAkB,EAClB,sBAAsB,EACtB,UAAU,EACV,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,oBAAoB,EACpB,oBAAoB,EACpB,KAAK,EACL,sBAAsB,EACtB,gBAAgB,EAChB,iBAAiB,EACjB,KAAK,EACL,iBAAiB,EACjB,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,mBAAmB,EACnB,cAAc,EACd,YAAY,EACZ,aAAa,GACb,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACN,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,0BAA0B,EAC1B,4BAA4B,EAC5B,2BAA2B,EAC3B,6BAA6B,EAC7B,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,4BAA4B,EAC5B,wBAAwB,EACxB,sBAAsB,EACtB,wBAAwB,EACxB,iBAAiB,GACjB,MAAM,0BAA0B,CAAC;AAIlC,YAAY,EACX,2BAA2B,EAC3B,2BAA2B,EAC3B,gCAAgC,GAChC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,YAAY,EACX,mBAAmB,EACnB,wBAAwB,EACxB,kBAAkB,EAClB,kBAAkB,EAClB,wBAAwB,GACxB,MAAM,gCAAgC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,YAAY,EACX,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,SAAS,EACT,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,UAAU,EACV,gBAAgB,EAChB,cAAc,GACd,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACX,iBAAiB,EACjB,sBAAsB,EACtB,YAAY,EACZ,SAAS,GACT,MAAM,wBAAwB,CAAC;AAGhC,YAAY,EACX,UAAU,EACV,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,YAAY,EACX,aAAa,EACb,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,EACpB,gBAAgB,EAChB,UAAU,EACV,yBAAyB,EACzB,yBAAyB,EACzB,YAAY,EACZ,0BAA0B,EAC1B,gCAAgC,EAChC,8BAA8B,EAC9B,0BAA0B,EAC1B,2BAA2B,EAC3B,eAAe,EACf,OAAO,EACP,kBAAkB,EAClB,sBAAsB,EACtB,UAAU,EACV,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,oBAAoB,EACpB,oBAAoB,EACpB,KAAK,EACL,aAAa,EACb,sBAAsB,EACtB,gBAAgB,EAChB,iBAAiB,EACjB,KAAK,EACL,iBAAiB,EACjB,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,mBAAmB,EACnB,cAAc,EACd,YAAY,EACZ,aAAa,GACb,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACN,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,YAAY,EACZ,0BAA0B,EAC1B,4BAA4B,EAC5B,2BAA2B,EAC3B,6BAA6B,EAC7B,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,4BAA4B,EAC5B,wBAAwB,EACxB,sBAAsB,EACtB,wBAAwB,EACxB,iBAAiB,GACjB,MAAM,0BAA0B,CAAC;AAIlC,YAAY,EACX,2BAA2B,EAC3B,2BAA2B,EAC3B,gCAAgC,GAChC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,YAAY,EACX,mBAAmB,EACnB,wBAAwB,EACxB,kBAAkB,EAClB,kBAAkB,EAClB,wBAAwB,GACxB,MAAM,gCAAgC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
export { resolvePath } from "./config-types.js";
|
|
5
5
|
// Constants
|
|
6
6
|
export { DEFAULT_PROXY_URL } from "./constants.js";
|
|
7
|
-
export { AgentActivityContentType, AgentActivitySignal, AgentSessionStatus, AgentSessionType, isAgentSessionCreatedEvent, isAgentSessionCreatedWebhook, isAgentSessionPromptedEvent, isAgentSessionPromptedWebhook, isCommentMentionEvent, isIssueAssignedEvent, isIssueAssignedWebhook, isIssueCommentMentionWebhook, isIssueNewCommentWebhook, isIssueUnassignedEvent, isIssueUnassignedWebhook, isNewCommentEvent, } from "./issue-tracker/index.js";
|
|
7
|
+
export { AgentActivityContentType, AgentActivitySignal, AgentSessionStatus, AgentSessionType, CLIEventTransport, CLIIssueTrackerService, CLIRPCServer, isAgentSessionCreatedEvent, isAgentSessionCreatedWebhook, isAgentSessionPromptedEvent, isAgentSessionPromptedWebhook, isCommentMentionEvent, isIssueAssignedEvent, isIssueAssignedWebhook, isIssueCommentMentionWebhook, isIssueNewCommentWebhook, isIssueUnassignedEvent, isIssueUnassignedWebhook, isNewCommentEvent, } from "./issue-tracker/index.js";
|
|
8
8
|
export { PersistenceManager } from "./PersistenceManager.js";
|
|
9
9
|
export { StreamingPrompt } from "./StreamingPrompt.js";
|
|
10
10
|
// Platform-agnostic webhook type aliases - exported from issue-tracker
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,sEAAsE;AACtE,qFAAqF;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,sEAAsE;AACtE,qFAAqF;AAsCrF,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,YAAY;AACZ,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AA2CnD,OAAO,EACN,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,YAAY,EACZ,0BAA0B,EAC1B,4BAA4B,EAC5B,2BAA2B,EAC3B,6BAA6B,EAC7B,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,4BAA4B,EAC5B,wBAAwB,EACxB,sBAAsB,EACtB,wBAAwB,EACxB,iBAAiB,GACjB,MAAM,0BAA0B,CAAC;AASlC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AASvD,uEAAuE;AACvE,yFAAyF;AACzF,gGAAgG"}
|
|
@@ -7,9 +7,8 @@
|
|
|
7
7
|
*
|
|
8
8
|
* @module issue-tracker/IIssueTrackerService
|
|
9
9
|
*/
|
|
10
|
-
import type { AgentSession, AgentSessionPayload, LinearFetch } from "@linear/sdk";
|
|
11
10
|
import type { AgentEventTransportConfig, IAgentEventTransport } from "./IAgentEventTransport.js";
|
|
12
|
-
import type { AgentActivityCreateInput, AgentActivityPayload, AgentSessionCreateOnCommentInput, AgentSessionCreateOnIssueInput, Comment, CommentCreateInput, CommentWithAttachments, Connection, FetchChildrenOptions, FileUploadRequest, FileUploadResponse, Issue, IssueUpdateInput, IssueWithChildren, Label, PaginationOptions, Team, User, WorkflowState } from "./types.js";
|
|
11
|
+
import type { AgentActivityCreateInput, AgentActivityPayload, AgentSessionCreateOnCommentInput, AgentSessionCreateOnIssueInput, Comment, CommentCreateInput, CommentWithAttachments, Connection, FetchChildrenOptions, FileUploadRequest, FileUploadResponse, Issue, IssueTrackerAgentSession, IssueTrackerAgentSessionPayload, IssueUpdateInput, IssueWithChildren, Label, PaginationOptions, Team, User, WorkflowState } from "./types.js";
|
|
13
12
|
/**
|
|
14
13
|
* Main interface for issue tracking platform operations.
|
|
15
14
|
*
|
|
@@ -511,7 +510,7 @@ export interface IIssueTrackerService {
|
|
|
511
510
|
* This creates a tracking session for AI/bot activity on an issue.
|
|
512
511
|
* The session can receive agent activities and user prompts.
|
|
513
512
|
*/
|
|
514
|
-
createAgentSessionOnIssue(input: AgentSessionCreateOnIssueInput):
|
|
513
|
+
createAgentSessionOnIssue(input: AgentSessionCreateOnIssueInput): Promise<IssueTrackerAgentSessionPayload>;
|
|
515
514
|
/**
|
|
516
515
|
* Create an agent session on a comment thread.
|
|
517
516
|
*
|
|
@@ -532,7 +531,7 @@ export interface IIssueTrackerService {
|
|
|
532
531
|
* The comment must be a root comment (not a reply).
|
|
533
532
|
* This creates a tracking session for AI/bot activity on a comment thread.
|
|
534
533
|
*/
|
|
535
|
-
createAgentSessionOnComment(input: AgentSessionCreateOnCommentInput):
|
|
534
|
+
createAgentSessionOnComment(input: AgentSessionCreateOnCommentInput): Promise<IssueTrackerAgentSessionPayload>;
|
|
536
535
|
/**
|
|
537
536
|
* Fetch an agent session by ID.
|
|
538
537
|
*
|
|
@@ -546,7 +545,21 @@ export interface IIssueTrackerService {
|
|
|
546
545
|
* console.log('Session status:', session.status);
|
|
547
546
|
* ```
|
|
548
547
|
*/
|
|
549
|
-
fetchAgentSession(sessionId: string):
|
|
548
|
+
fetchAgentSession(sessionId: string): Promise<IssueTrackerAgentSession>;
|
|
549
|
+
/**
|
|
550
|
+
* Emit a stop signal webhook event for the EdgeWorker to handle.
|
|
551
|
+
* Should be called after stopping a session to trigger EdgeWorker stop handling.
|
|
552
|
+
*
|
|
553
|
+
* @param sessionId - The session ID to emit stop signal for
|
|
554
|
+
*
|
|
555
|
+
* @example
|
|
556
|
+
* ```typescript
|
|
557
|
+
* // Stop the session and emit the stop signal
|
|
558
|
+
* await service.updateAgentSessionStatus(sessionId, AgentSessionStatus.Complete);
|
|
559
|
+
* await service.emitStopSignalEvent(sessionId);
|
|
560
|
+
* ```
|
|
561
|
+
*/
|
|
562
|
+
emitStopSignalEvent(sessionId: string): Promise<void>;
|
|
550
563
|
/**
|
|
551
564
|
* Post an agent activity to an agent session.
|
|
552
565
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IIssueTrackerService.d.ts","sourceRoot":"","sources":["../../src/issue-tracker/IIssueTrackerService.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACX,
|
|
1
|
+
{"version":3,"file":"IIssueTrackerService.d.ts","sourceRoot":"","sources":["../../src/issue-tracker/IIssueTrackerService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI/in-memory implementation of IAgentEventTransport.
|
|
3
|
+
*
|
|
4
|
+
* This transport provides an in-memory event emitter for testing purposes.
|
|
5
|
+
* Unlike Linear's webhook-based transport, this doesn't register HTTP endpoints
|
|
6
|
+
* and instead provides methods to manually trigger events for testing.
|
|
7
|
+
*
|
|
8
|
+
* @module issue-tracker/adapters/CLIEventTransport
|
|
9
|
+
*/
|
|
10
|
+
import { EventEmitter } from "node:events";
|
|
11
|
+
import type { AgentEvent } from "../AgentEvent.js";
|
|
12
|
+
import type { AgentEventTransportEvents, CLIEventTransportConfig, IAgentEventTransport } from "../IAgentEventTransport.js";
|
|
13
|
+
/**
|
|
14
|
+
* CLI implementation of IAgentEventTransport.
|
|
15
|
+
*
|
|
16
|
+
* This class provides an in-memory event emitter for testing agent events
|
|
17
|
+
* without requiring HTTP webhooks. Events can be manually triggered using
|
|
18
|
+
* the `emitEvent` method.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```typescript
|
|
22
|
+
* const transport = new CLIEventTransport({
|
|
23
|
+
* platform: 'cli',
|
|
24
|
+
* fastifyServer: server
|
|
25
|
+
* });
|
|
26
|
+
*
|
|
27
|
+
* // Register (no-op for CLI)
|
|
28
|
+
* transport.register();
|
|
29
|
+
*
|
|
30
|
+
* // Listen for events
|
|
31
|
+
* transport.on('event', (event) => {
|
|
32
|
+
* console.log('Received event:', event.action);
|
|
33
|
+
* });
|
|
34
|
+
*
|
|
35
|
+
* // Manually trigger an event
|
|
36
|
+
* transport.emitEvent({
|
|
37
|
+
* action: 'AgentSessionEvent.created',
|
|
38
|
+
* agentSession: { id: 'session-1' }
|
|
39
|
+
* });
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
export declare class CLIEventTransport extends EventEmitter implements IAgentEventTransport {
|
|
43
|
+
/**
|
|
44
|
+
* Create a new CLIEventTransport.
|
|
45
|
+
*
|
|
46
|
+
* @param config - CLI transport configuration
|
|
47
|
+
*/
|
|
48
|
+
constructor(config: CLIEventTransportConfig);
|
|
49
|
+
/**
|
|
50
|
+
* Register HTTP endpoints (no-op for CLI transport).
|
|
51
|
+
*
|
|
52
|
+
* The CLI transport doesn't use HTTP webhooks, so this method
|
|
53
|
+
* does nothing. Events are triggered manually via `emitEvent`.
|
|
54
|
+
*/
|
|
55
|
+
register(): void;
|
|
56
|
+
/**
|
|
57
|
+
* Register an event listener.
|
|
58
|
+
*
|
|
59
|
+
* @param event - Event name to listen for
|
|
60
|
+
* @param listener - Callback function to handle the event
|
|
61
|
+
*/
|
|
62
|
+
on<K extends keyof AgentEventTransportEvents>(event: K, listener: AgentEventTransportEvents[K]): this;
|
|
63
|
+
/**
|
|
64
|
+
* Remove all event listeners.
|
|
65
|
+
*/
|
|
66
|
+
removeAllListeners(): this;
|
|
67
|
+
/**
|
|
68
|
+
* Manually emit an agent event (for testing).
|
|
69
|
+
*
|
|
70
|
+
* This method allows tests to manually trigger agent events
|
|
71
|
+
* without requiring HTTP webhooks.
|
|
72
|
+
*
|
|
73
|
+
* @param event - The agent event to emit
|
|
74
|
+
*
|
|
75
|
+
* @example
|
|
76
|
+
* ```typescript
|
|
77
|
+
* transport.emitEvent({
|
|
78
|
+
* action: 'AgentSessionEvent.created',
|
|
79
|
+
* agentSession: { id: 'session-1', status: 'active' }
|
|
80
|
+
* });
|
|
81
|
+
* ```
|
|
82
|
+
*/
|
|
83
|
+
emitEvent(event: AgentEvent): void;
|
|
84
|
+
/**
|
|
85
|
+
* Manually emit an error (for testing).
|
|
86
|
+
*
|
|
87
|
+
* @param error - The error to emit
|
|
88
|
+
*/
|
|
89
|
+
emitError(error: Error): void;
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=CLIEventTransport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CLIEventTransport.d.ts","sourceRoot":"","sources":["../../../src/issue-tracker/adapters/CLIEventTransport.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EACX,yBAAyB,EACzB,uBAAuB,EACvB,oBAAoB,EACpB,MAAM,4BAA4B,CAAC;AAEpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBAAa,iBACZ,SAAQ,YACR,YAAW,oBAAoB;IAE/B;;;;OAIG;gBACS,MAAM,EAAE,uBAAuB;IAM3C;;;;;OAKG;IACH,QAAQ,IAAI,IAAI;IAKhB;;;;;OAKG;IACH,EAAE,CAAC,CAAC,SAAS,MAAM,yBAAyB,EAC3C,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,yBAAyB,CAAC,CAAC,CAAC,GACpC,IAAI;IAIP;;OAEG;IACH,kBAAkB,IAAI,IAAI;IAI1B;;;;;;;;;;;;;;;OAeG;IACH,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAIlC;;;;OAIG;IACH,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;CAG7B"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI/in-memory implementation of IAgentEventTransport.
|
|
3
|
+
*
|
|
4
|
+
* This transport provides an in-memory event emitter for testing purposes.
|
|
5
|
+
* Unlike Linear's webhook-based transport, this doesn't register HTTP endpoints
|
|
6
|
+
* and instead provides methods to manually trigger events for testing.
|
|
7
|
+
*
|
|
8
|
+
* @module issue-tracker/adapters/CLIEventTransport
|
|
9
|
+
*/
|
|
10
|
+
import { EventEmitter } from "node:events";
|
|
11
|
+
/**
|
|
12
|
+
* CLI implementation of IAgentEventTransport.
|
|
13
|
+
*
|
|
14
|
+
* This class provides an in-memory event emitter for testing agent events
|
|
15
|
+
* without requiring HTTP webhooks. Events can be manually triggered using
|
|
16
|
+
* the `emitEvent` method.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```typescript
|
|
20
|
+
* const transport = new CLIEventTransport({
|
|
21
|
+
* platform: 'cli',
|
|
22
|
+
* fastifyServer: server
|
|
23
|
+
* });
|
|
24
|
+
*
|
|
25
|
+
* // Register (no-op for CLI)
|
|
26
|
+
* transport.register();
|
|
27
|
+
*
|
|
28
|
+
* // Listen for events
|
|
29
|
+
* transport.on('event', (event) => {
|
|
30
|
+
* console.log('Received event:', event.action);
|
|
31
|
+
* });
|
|
32
|
+
*
|
|
33
|
+
* // Manually trigger an event
|
|
34
|
+
* transport.emitEvent({
|
|
35
|
+
* action: 'AgentSessionEvent.created',
|
|
36
|
+
* agentSession: { id: 'session-1' }
|
|
37
|
+
* });
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
export class CLIEventTransport extends EventEmitter {
|
|
41
|
+
/**
|
|
42
|
+
* Create a new CLIEventTransport.
|
|
43
|
+
*
|
|
44
|
+
* @param config - CLI transport configuration
|
|
45
|
+
*/
|
|
46
|
+
constructor(config) {
|
|
47
|
+
super();
|
|
48
|
+
// Config stored implicitly via closure (not used in current implementation)
|
|
49
|
+
void config;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Register HTTP endpoints (no-op for CLI transport).
|
|
53
|
+
*
|
|
54
|
+
* The CLI transport doesn't use HTTP webhooks, so this method
|
|
55
|
+
* does nothing. Events are triggered manually via `emitEvent`.
|
|
56
|
+
*/
|
|
57
|
+
register() {
|
|
58
|
+
// No-op for CLI transport
|
|
59
|
+
// Events are triggered manually via emitEvent()
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Register an event listener.
|
|
63
|
+
*
|
|
64
|
+
* @param event - Event name to listen for
|
|
65
|
+
* @param listener - Callback function to handle the event
|
|
66
|
+
*/
|
|
67
|
+
on(event, listener) {
|
|
68
|
+
return super.on(event, listener);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Remove all event listeners.
|
|
72
|
+
*/
|
|
73
|
+
removeAllListeners() {
|
|
74
|
+
return super.removeAllListeners();
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Manually emit an agent event (for testing).
|
|
78
|
+
*
|
|
79
|
+
* This method allows tests to manually trigger agent events
|
|
80
|
+
* without requiring HTTP webhooks.
|
|
81
|
+
*
|
|
82
|
+
* @param event - The agent event to emit
|
|
83
|
+
*
|
|
84
|
+
* @example
|
|
85
|
+
* ```typescript
|
|
86
|
+
* transport.emitEvent({
|
|
87
|
+
* action: 'AgentSessionEvent.created',
|
|
88
|
+
* agentSession: { id: 'session-1', status: 'active' }
|
|
89
|
+
* });
|
|
90
|
+
* ```
|
|
91
|
+
*/
|
|
92
|
+
emitEvent(event) {
|
|
93
|
+
this.emit("event", event);
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Manually emit an error (for testing).
|
|
97
|
+
*
|
|
98
|
+
* @param error - The error to emit
|
|
99
|
+
*/
|
|
100
|
+
emitError(error) {
|
|
101
|
+
this.emit("error", error);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=CLIEventTransport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CLIEventTransport.js","sourceRoot":"","sources":["../../../src/issue-tracker/adapters/CLIEventTransport.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAQ3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,OAAO,iBACZ,SAAQ,YAAY;IAGpB;;;;OAIG;IACH,YAAY,MAA+B;QAC1C,KAAK,EAAE,CAAC;QACR,4EAA4E;QAC5E,KAAK,MAAM,CAAC;IACb,CAAC;IAED;;;;;OAKG;IACH,QAAQ;QACP,0BAA0B;QAC1B,gDAAgD;IACjD,CAAC;IAED;;;;;OAKG;IACH,EAAE,CACD,KAAQ,EACR,QAAsC;QAEtC,OAAO,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,QAAwC,CAAC,CAAC;IAClE,CAAC;IAED;;OAEG;IACH,kBAAkB;QACjB,OAAO,KAAK,CAAC,kBAAkB,EAAE,CAAC;IACnC,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,SAAS,CAAC,KAAiB;QAC1B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED;;;;OAIG;IACH,SAAS,CAAC,KAAY;QACrB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC3B,CAAC;CACD"}
|