cyrus-core 0.2.2 → 0.2.3
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 +4 -4
- package/dist/CyrusAgentSession.d.ts.map +1 -1
- package/dist/config-types.d.ts +3 -0
- package/dist/config-types.d.ts.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/issue-tracker/AgentEvent.d.ts +134 -0
- package/dist/issue-tracker/AgentEvent.d.ts.map +1 -0
- package/dist/issue-tracker/AgentEvent.js +109 -0
- package/dist/issue-tracker/AgentEvent.js.map +1 -0
- package/dist/issue-tracker/IAgentEventTransport.d.ts +146 -0
- package/dist/issue-tracker/IAgentEventTransport.d.ts.map +1 -0
- package/dist/issue-tracker/IAgentEventTransport.js +12 -0
- package/dist/issue-tracker/IAgentEventTransport.js.map +1 -0
- package/dist/issue-tracker/IIssueTrackerService.d.ts +692 -0
- package/dist/issue-tracker/IIssueTrackerService.d.ts.map +1 -0
- package/dist/issue-tracker/IIssueTrackerService.js +11 -0
- package/dist/issue-tracker/IIssueTrackerService.js.map +1 -0
- package/dist/issue-tracker/index.d.ts +59 -0
- package/dist/issue-tracker/index.d.ts.map +1 -0
- package/dist/issue-tracker/index.js +61 -0
- package/dist/issue-tracker/index.js.map +1 -0
- package/dist/issue-tracker/types.d.ts +499 -0
- package/dist/issue-tracker/types.d.ts.map +1 -0
- package/dist/issue-tracker/types.js +123 -0
- package/dist/issue-tracker/types.js.map +1 -0
- package/package.json +4 -3
- package/dist/webhook-types.d.ts +0 -259
- package/dist/webhook-types.d.ts.map +0 -1
- package/dist/webhook-types.js +0 -26
- package/dist/webhook-types.js.map +0 -1
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Agent Session types for Linear Agent Sessions integration
|
|
3
3
|
* These types represent the core data structures for tracking Claude Code sessions in Linear
|
|
4
4
|
*/
|
|
5
|
-
import type { LinearDocument } from "@linear/sdk";
|
|
6
5
|
import type { ClaudeRunner } from "cyrus-claude-runner";
|
|
6
|
+
import type { AgentSessionStatus, AgentSessionType } from "./issue-tracker/types.js";
|
|
7
7
|
export interface IssueMinimal {
|
|
8
8
|
id: string;
|
|
9
9
|
identifier: string;
|
|
@@ -18,9 +18,9 @@ export interface Workspace {
|
|
|
18
18
|
}
|
|
19
19
|
export interface CyrusAgentSession {
|
|
20
20
|
linearAgentActivitySessionId: string;
|
|
21
|
-
type:
|
|
22
|
-
status:
|
|
23
|
-
context:
|
|
21
|
+
type: AgentSessionType.CommentThread;
|
|
22
|
+
status: AgentSessionStatus;
|
|
23
|
+
context: AgentSessionType.CommentThread;
|
|
24
24
|
createdAt: number;
|
|
25
25
|
updatedAt: number;
|
|
26
26
|
issueId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CyrusAgentSession.d.ts","sourceRoot":"","sources":["../src/CyrusAgentSession.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"CyrusAgentSession.d.ts","sourceRoot":"","sources":["../src/CyrusAgentSession.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,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;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,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;aAC/B,CAAC,CAAC;SACH,CAAC;KACF,CAAC;CACF;AAED,MAAM,WAAW,sBAAsB;IACtC,eAAe,EAAE,MAAM,CAAC;IACxB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACjD,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE;QACV,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,GAAG,CAAC;QAChB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,OAAO,CAAC;KAClB,CAAC;CACF"}
|
package/dist/config-types.d.ts
CHANGED
|
@@ -78,6 +78,7 @@ export interface EdgeWorkerConfig {
|
|
|
78
78
|
serverPort?: number;
|
|
79
79
|
serverHost?: string;
|
|
80
80
|
ngrokAuthToken?: string;
|
|
81
|
+
platform?: "linear";
|
|
81
82
|
linearWorkspaceSlug?: string;
|
|
82
83
|
defaultAllowedTools?: string[];
|
|
83
84
|
defaultDisallowedTools?: string[];
|
|
@@ -103,6 +104,8 @@ export interface EdgeWorkerConfig {
|
|
|
103
104
|
};
|
|
104
105
|
repositories: RepositoryConfig[];
|
|
105
106
|
cyrusHome: string;
|
|
107
|
+
agentHandle?: string;
|
|
108
|
+
agentUserId?: string;
|
|
106
109
|
handlers?: {
|
|
107
110
|
createWorkspace?: (issue: LinearIssue, repository: RepositoryConfig) => Promise<Workspace>;
|
|
108
111
|
onClaudeMessage?: (issueId: string, message: SDKMessage, repositoryId: string) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-types.d.ts","sourceRoot":"","sources":["../src/config-types.ts"],"names":[],"mappings":"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"}
|
|
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
|
@@ -2,8 +2,8 @@ export type { CyrusAgentSession, CyrusAgentSessionEntry, IssueMinimal, Workspace
|
|
|
2
2
|
export type { EdgeConfig, EdgeWorkerConfig, OAuthCallbackHandler, RepositoryConfig, } from "./config-types.js";
|
|
3
3
|
export { resolvePath } from "./config-types.js";
|
|
4
4
|
export { DEFAULT_PROXY_URL } from "./constants.js";
|
|
5
|
+
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";
|
|
6
|
+
export { AgentActivityContentType, AgentActivitySignal, AgentSessionStatus, AgentSessionType, isAgentSessionCreatedEvent, isAgentSessionCreatedWebhook, isAgentSessionPromptedEvent, isAgentSessionPromptedWebhook, isCommentMentionEvent, isIssueAssignedEvent, isIssueAssignedWebhook, isIssueCommentMentionWebhook, isIssueNewCommentWebhook, isIssueUnassignedEvent, isIssueUnassignedWebhook, isNewCommentEvent, } from "./issue-tracker/index.js";
|
|
5
7
|
export type { SerializableEdgeWorkerState, SerializedCyrusAgentSession, SerializedCyrusAgentSessionEntry, } from "./PersistenceManager.js";
|
|
6
8
|
export { PersistenceManager } from "./PersistenceManager.js";
|
|
7
|
-
export type { LinearAgentSessionCreatedWebhook, LinearAgentSessionPromptedWebhook, LinearIssueAssignedNotification, LinearIssueAssignedWebhook, LinearIssueCommentMentionNotification, LinearIssueCommentMentionWebhook, LinearIssueNewCommentNotification, LinearIssueNewCommentWebhook, LinearIssueUnassignedNotification, LinearIssueUnassignedWebhook, LinearWebhook, LinearWebhookActor, LinearWebhookAgentActivity, LinearWebhookAgentActivityContent, LinearWebhookAgentSession, LinearWebhookComment, LinearWebhookCreator, LinearWebhookGuidanceRule, LinearWebhookIssue, LinearWebhookNotification, LinearWebhookOrganizationOrigin, LinearWebhookTeam, LinearWebhookTeamOrigin, LinearWebhookTeamWithParent, } from "./webhook-types.js";
|
|
8
|
-
export { isAgentSessionCreatedWebhook, isAgentSessionPromptedWebhook, isIssueAssignedWebhook, isIssueCommentMentionWebhook, isIssueNewCommentWebhook, isIssueUnassignedWebhook, } from "./webhook-types.js";
|
|
9
9
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,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;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,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"}
|
package/dist/index.js
CHANGED
|
@@ -4,6 +4,9 @@
|
|
|
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
8
|
export { PersistenceManager } from "./PersistenceManager.js";
|
|
8
|
-
|
|
9
|
+
// Platform-agnostic webhook type aliases - exported from issue-tracker
|
|
10
|
+
// These are now defined in issue-tracker/types.ts as aliases to Linear SDK webhook types
|
|
11
|
+
// EdgeWorker and other high-level code should use these generic names via issue-tracker exports
|
|
9
12
|
//# sourceMappingURL=index.js.map
|
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;AAgBrF,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,YAAY;AACZ,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,sEAAsE;AACtE,qFAAqF;AAgBrF,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,YAAY;AACZ,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AA0CnD,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;AASlC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,uEAAuE;AACvE,yFAAyF;AACzF,gGAAgG"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AgentEvent type alias for webhook event payloads.
|
|
3
|
+
*
|
|
4
|
+
* This module provides a platform-agnostic type alias for webhook events.
|
|
5
|
+
* The implementation uses Linear's webhook payload types, but this is hidden
|
|
6
|
+
* from consuming code through the type alias.
|
|
7
|
+
*
|
|
8
|
+
* @module issue-tracker/AgentEvent
|
|
9
|
+
*/
|
|
10
|
+
import type { LinearWebhookPayload } from "@linear/sdk/webhooks";
|
|
11
|
+
/**
|
|
12
|
+
* Platform-agnostic webhook event type.
|
|
13
|
+
*
|
|
14
|
+
* This type represents webhook events from the issue tracking platform.
|
|
15
|
+
* Currently backed by Linear's webhook payload type, but abstracted for
|
|
16
|
+
* future multi-platform support.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```typescript
|
|
20
|
+
* import { AgentEvent } from '@cyrus/core/issue-tracker';
|
|
21
|
+
*
|
|
22
|
+
* function handleWebhook(event: AgentEvent) {
|
|
23
|
+
* // Process the webhook event
|
|
24
|
+
* console.log('Received event:', event.action);
|
|
25
|
+
* }
|
|
26
|
+
* ```
|
|
27
|
+
*
|
|
28
|
+
* @remarks
|
|
29
|
+
* This type alias hides the Linear-specific implementation detail while
|
|
30
|
+
* maintaining full type safety. When adding support for other platforms,
|
|
31
|
+
* this can be converted to a union type or more sophisticated abstraction.
|
|
32
|
+
*
|
|
33
|
+
* @see {@link LinearWebhookPayload} for the underlying Linear type structure
|
|
34
|
+
*/
|
|
35
|
+
export type AgentEvent = LinearWebhookPayload;
|
|
36
|
+
/**
|
|
37
|
+
* Type guard to check if an event is an issue assignment event.
|
|
38
|
+
*
|
|
39
|
+
* @param event - The webhook event to check
|
|
40
|
+
* @returns True if the event is an issue assignment
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```typescript
|
|
44
|
+
* if (isIssueAssignedEvent(event)) {
|
|
45
|
+
* console.log('Issue assigned:', event.notification.issue.identifier);
|
|
46
|
+
* }
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
export declare function isIssueAssignedEvent(event: AgentEvent): event is Extract<AgentEvent, {
|
|
50
|
+
action: "issueAssignedToYou";
|
|
51
|
+
}>;
|
|
52
|
+
/**
|
|
53
|
+
* Type guard to check if an event is an issue unassignment event.
|
|
54
|
+
*
|
|
55
|
+
* @param event - The webhook event to check
|
|
56
|
+
* @returns True if the event is an issue unassignment
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* ```typescript
|
|
60
|
+
* if (isIssueUnassignedEvent(event)) {
|
|
61
|
+
* console.log('Issue unassigned:', event.notification.issue.identifier);
|
|
62
|
+
* }
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
export declare function isIssueUnassignedEvent(event: AgentEvent): event is Extract<AgentEvent, {
|
|
66
|
+
action: "issueUnassignedFromYou";
|
|
67
|
+
}>;
|
|
68
|
+
/**
|
|
69
|
+
* Type guard to check if an event is a comment mention event.
|
|
70
|
+
*
|
|
71
|
+
* @param event - The webhook event to check
|
|
72
|
+
* @returns True if the event is a comment mention
|
|
73
|
+
*
|
|
74
|
+
* @example
|
|
75
|
+
* ```typescript
|
|
76
|
+
* if (isCommentMentionEvent(event)) {
|
|
77
|
+
* console.log('Mentioned in comment:', event.notification.comment.body);
|
|
78
|
+
* }
|
|
79
|
+
* ```
|
|
80
|
+
*/
|
|
81
|
+
export declare function isCommentMentionEvent(event: AgentEvent): event is Extract<AgentEvent, {
|
|
82
|
+
action: "issueCommentMention";
|
|
83
|
+
}>;
|
|
84
|
+
/**
|
|
85
|
+
* Type guard to check if an event is a new comment event.
|
|
86
|
+
*
|
|
87
|
+
* @param event - The webhook event to check
|
|
88
|
+
* @returns True if the event is a new comment
|
|
89
|
+
*
|
|
90
|
+
* @example
|
|
91
|
+
* ```typescript
|
|
92
|
+
* if (isNewCommentEvent(event)) {
|
|
93
|
+
* console.log('New comment:', event.notification.comment.body);
|
|
94
|
+
* }
|
|
95
|
+
* ```
|
|
96
|
+
*/
|
|
97
|
+
export declare function isNewCommentEvent(event: AgentEvent): event is Extract<AgentEvent, {
|
|
98
|
+
action: "issueNewComment";
|
|
99
|
+
}>;
|
|
100
|
+
/**
|
|
101
|
+
* Type guard to check if an event is an agent session created event.
|
|
102
|
+
*
|
|
103
|
+
* @param event - The webhook event to check
|
|
104
|
+
* @returns True if the event is an agent session creation
|
|
105
|
+
*
|
|
106
|
+
* @example
|
|
107
|
+
* ```typescript
|
|
108
|
+
* if (isAgentSessionCreatedEvent(event)) {
|
|
109
|
+
* console.log('Agent session created:', event.agentSession.id);
|
|
110
|
+
* }
|
|
111
|
+
* ```
|
|
112
|
+
*/
|
|
113
|
+
export declare function isAgentSessionCreatedEvent(event: AgentEvent): event is Extract<AgentEvent, {
|
|
114
|
+
type: "AgentSessionEvent";
|
|
115
|
+
action: "created";
|
|
116
|
+
}>;
|
|
117
|
+
/**
|
|
118
|
+
* Type guard to check if an event is an agent session prompted event.
|
|
119
|
+
*
|
|
120
|
+
* @param event - The webhook event to check
|
|
121
|
+
* @returns True if the event is an agent session prompt
|
|
122
|
+
*
|
|
123
|
+
* @example
|
|
124
|
+
* ```typescript
|
|
125
|
+
* if (isAgentSessionPromptedEvent(event)) {
|
|
126
|
+
* console.log('Agent session prompted:', event.agentActivity.content.body);
|
|
127
|
+
* }
|
|
128
|
+
* ```
|
|
129
|
+
*/
|
|
130
|
+
export declare function isAgentSessionPromptedEvent(event: AgentEvent): event is Extract<AgentEvent, {
|
|
131
|
+
type: "AgentSessionEvent";
|
|
132
|
+
action: "prompted";
|
|
133
|
+
}>;
|
|
134
|
+
//# sourceMappingURL=AgentEvent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentEvent.d.ts","sourceRoot":"","sources":["../../src/issue-tracker/AgentEvent.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEjE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,MAAM,UAAU,GAAG,oBAAoB,CAAC;AAE9C;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CACnC,KAAK,EAAE,UAAU,GACf,KAAK,IAAI,OAAO,CAAC,UAAU,EAAE;IAAE,MAAM,EAAE,oBAAoB,CAAA;CAAE,CAAC,CAKhE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CACrC,KAAK,EAAE,UAAU,GACf,KAAK,IAAI,OAAO,CAAC,UAAU,EAAE;IAAE,MAAM,EAAE,wBAAwB,CAAA;CAAE,CAAC,CAKpE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CACpC,KAAK,EAAE,UAAU,GACf,KAAK,IAAI,OAAO,CAAC,UAAU,EAAE;IAAE,MAAM,EAAE,qBAAqB,CAAA;CAAE,CAAC,CAKjE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAChC,KAAK,EAAE,UAAU,GACf,KAAK,IAAI,OAAO,CAAC,UAAU,EAAE;IAAE,MAAM,EAAE,iBAAiB,CAAA;CAAE,CAAC,CAI7D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,0BAA0B,CACzC,KAAK,EAAE,UAAU,GACf,KAAK,IAAI,OAAO,CAClB,UAAU,EACV;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAE,CAChD,CAEA;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,2BAA2B,CAC1C,KAAK,EAAE,UAAU,GACf,KAAK,IAAI,OAAO,CAClB,UAAU,EACV;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,CACjD,CAEA"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AgentEvent type alias for webhook event payloads.
|
|
3
|
+
*
|
|
4
|
+
* This module provides a platform-agnostic type alias for webhook events.
|
|
5
|
+
* The implementation uses Linear's webhook payload types, but this is hidden
|
|
6
|
+
* from consuming code through the type alias.
|
|
7
|
+
*
|
|
8
|
+
* @module issue-tracker/AgentEvent
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Type guard to check if an event is an issue assignment event.
|
|
12
|
+
*
|
|
13
|
+
* @param event - The webhook event to check
|
|
14
|
+
* @returns True if the event is an issue assignment
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* if (isIssueAssignedEvent(event)) {
|
|
19
|
+
* console.log('Issue assigned:', event.notification.issue.identifier);
|
|
20
|
+
* }
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export function isIssueAssignedEvent(event) {
|
|
24
|
+
return (event.type === "AppUserNotification" &&
|
|
25
|
+
event.action === "issueAssignedToYou");
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Type guard to check if an event is an issue unassignment event.
|
|
29
|
+
*
|
|
30
|
+
* @param event - The webhook event to check
|
|
31
|
+
* @returns True if the event is an issue unassignment
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```typescript
|
|
35
|
+
* if (isIssueUnassignedEvent(event)) {
|
|
36
|
+
* console.log('Issue unassigned:', event.notification.issue.identifier);
|
|
37
|
+
* }
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
export function isIssueUnassignedEvent(event) {
|
|
41
|
+
return (event.type === "AppUserNotification" &&
|
|
42
|
+
event.action === "issueUnassignedFromYou");
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Type guard to check if an event is a comment mention event.
|
|
46
|
+
*
|
|
47
|
+
* @param event - The webhook event to check
|
|
48
|
+
* @returns True if the event is a comment mention
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* ```typescript
|
|
52
|
+
* if (isCommentMentionEvent(event)) {
|
|
53
|
+
* console.log('Mentioned in comment:', event.notification.comment.body);
|
|
54
|
+
* }
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
export function isCommentMentionEvent(event) {
|
|
58
|
+
return (event.type === "AppUserNotification" &&
|
|
59
|
+
event.action === "issueCommentMention");
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Type guard to check if an event is a new comment event.
|
|
63
|
+
*
|
|
64
|
+
* @param event - The webhook event to check
|
|
65
|
+
* @returns True if the event is a new comment
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* ```typescript
|
|
69
|
+
* if (isNewCommentEvent(event)) {
|
|
70
|
+
* console.log('New comment:', event.notification.comment.body);
|
|
71
|
+
* }
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
export function isNewCommentEvent(event) {
|
|
75
|
+
return (event.type === "AppUserNotification" && event.action === "issueNewComment");
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Type guard to check if an event is an agent session created event.
|
|
79
|
+
*
|
|
80
|
+
* @param event - The webhook event to check
|
|
81
|
+
* @returns True if the event is an agent session creation
|
|
82
|
+
*
|
|
83
|
+
* @example
|
|
84
|
+
* ```typescript
|
|
85
|
+
* if (isAgentSessionCreatedEvent(event)) {
|
|
86
|
+
* console.log('Agent session created:', event.agentSession.id);
|
|
87
|
+
* }
|
|
88
|
+
* ```
|
|
89
|
+
*/
|
|
90
|
+
export function isAgentSessionCreatedEvent(event) {
|
|
91
|
+
return event.type === "AgentSessionEvent" && event.action === "created";
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Type guard to check if an event is an agent session prompted event.
|
|
95
|
+
*
|
|
96
|
+
* @param event - The webhook event to check
|
|
97
|
+
* @returns True if the event is an agent session prompt
|
|
98
|
+
*
|
|
99
|
+
* @example
|
|
100
|
+
* ```typescript
|
|
101
|
+
* if (isAgentSessionPromptedEvent(event)) {
|
|
102
|
+
* console.log('Agent session prompted:', event.agentActivity.content.body);
|
|
103
|
+
* }
|
|
104
|
+
* ```
|
|
105
|
+
*/
|
|
106
|
+
export function isAgentSessionPromptedEvent(event) {
|
|
107
|
+
return event.type === "AgentSessionEvent" && event.action === "prompted";
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=AgentEvent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentEvent.js","sourceRoot":"","sources":["../../src/issue-tracker/AgentEvent.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA8BH;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,oBAAoB,CACnC,KAAiB;IAEjB,OAAO,CACN,KAAK,CAAC,IAAI,KAAK,qBAAqB;QACpC,KAAK,CAAC,MAAM,KAAK,oBAAoB,CACrC,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,sBAAsB,CACrC,KAAiB;IAEjB,OAAO,CACN,KAAK,CAAC,IAAI,KAAK,qBAAqB;QACpC,KAAK,CAAC,MAAM,KAAK,wBAAwB,CACzC,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,qBAAqB,CACpC,KAAiB;IAEjB,OAAO,CACN,KAAK,CAAC,IAAI,KAAK,qBAAqB;QACpC,KAAK,CAAC,MAAM,KAAK,qBAAqB,CACtC,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,iBAAiB,CAChC,KAAiB;IAEjB,OAAO,CACN,KAAK,CAAC,IAAI,KAAK,qBAAqB,IAAI,KAAK,CAAC,MAAM,KAAK,iBAAiB,CAC1E,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,0BAA0B,CACzC,KAAiB;IAKjB,OAAO,KAAK,CAAC,IAAI,KAAK,mBAAmB,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC;AACzE,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,2BAA2B,CAC1C,KAAiB;IAKjB,OAAO,KAAK,CAAC,IAAI,KAAK,mBAAmB,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU,CAAC;AAC1E,CAAC"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Platform-agnostic interface for agent event transport.
|
|
3
|
+
*
|
|
4
|
+
* This interface defines how webhook events from issue tracking platforms
|
|
5
|
+
* are received, verified, and delivered to the application. It abstracts
|
|
6
|
+
* away platform-specific details like HTTP endpoints, signature verification,
|
|
7
|
+
* and payload structures.
|
|
8
|
+
*
|
|
9
|
+
* @module issue-tracker/IAgentEventTransport
|
|
10
|
+
*/
|
|
11
|
+
import type { FastifyInstance } from "fastify";
|
|
12
|
+
import type { AgentEvent } from "./AgentEvent.js";
|
|
13
|
+
/**
|
|
14
|
+
* Base configuration shared by all event transports.
|
|
15
|
+
*/
|
|
16
|
+
interface AgentEventTransportConfigBase {
|
|
17
|
+
/**
|
|
18
|
+
* Fastify server instance to register webhook endpoints with.
|
|
19
|
+
*/
|
|
20
|
+
fastifyServer: FastifyInstance;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Configuration for Linear event transport in direct mode.
|
|
24
|
+
* Uses Linear's webhook signature verification.
|
|
25
|
+
*/
|
|
26
|
+
export interface LinearDirectEventTransportConfig extends AgentEventTransportConfigBase {
|
|
27
|
+
platform: "linear";
|
|
28
|
+
verificationMode: "direct";
|
|
29
|
+
/**
|
|
30
|
+
* Linear webhook secret (LINEAR_WEBHOOK_SECRET) for signature verification.
|
|
31
|
+
*/
|
|
32
|
+
secret: string;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Configuration for Linear event transport in proxy mode.
|
|
36
|
+
* Uses Bearer token authentication.
|
|
37
|
+
*/
|
|
38
|
+
export interface LinearProxyEventTransportConfig extends AgentEventTransportConfigBase {
|
|
39
|
+
platform: "linear";
|
|
40
|
+
verificationMode: "proxy";
|
|
41
|
+
/**
|
|
42
|
+
* API key (CYRUS_API_KEY) for Bearer token authentication.
|
|
43
|
+
*/
|
|
44
|
+
secret: string;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Configuration for CLI event transport (in-memory mode).
|
|
48
|
+
*/
|
|
49
|
+
export interface CLIEventTransportConfig extends AgentEventTransportConfigBase {
|
|
50
|
+
platform: "cli";
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Discriminated union of all event transport configurations.
|
|
54
|
+
* Platform-specific config values are only required when using that platform.
|
|
55
|
+
*/
|
|
56
|
+
export type AgentEventTransportConfig = LinearDirectEventTransportConfig | LinearProxyEventTransportConfig | CLIEventTransportConfig;
|
|
57
|
+
/**
|
|
58
|
+
* Event handlers for agent event transport.
|
|
59
|
+
*/
|
|
60
|
+
export interface AgentEventTransportEvents {
|
|
61
|
+
/**
|
|
62
|
+
* Emitted when a valid agent event is received.
|
|
63
|
+
* @param event - The verified agent event
|
|
64
|
+
*/
|
|
65
|
+
event: (event: AgentEvent) => void;
|
|
66
|
+
/**
|
|
67
|
+
* Emitted when an error occurs during event processing.
|
|
68
|
+
* @param error - The error that occurred
|
|
69
|
+
*/
|
|
70
|
+
error: (error: Error) => void;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Platform-agnostic transport for receiving and delivering agent events.
|
|
74
|
+
*
|
|
75
|
+
* This interface defines the contract for event transport implementations.
|
|
76
|
+
* Each platform (Linear, GitHub, Jira) provides its own implementation that
|
|
77
|
+
* handles platform-specific details like HTTP endpoints, authentication, and
|
|
78
|
+
* payload structures.
|
|
79
|
+
*
|
|
80
|
+
* @example
|
|
81
|
+
* ```typescript
|
|
82
|
+
* // Create transport from issue tracker service
|
|
83
|
+
* const transport = issueTracker.createEventTransport({
|
|
84
|
+
* fastifyServer: server.getFastifyInstance(),
|
|
85
|
+
* verificationMode: 'proxy',
|
|
86
|
+
* secret: process.env.CYRUS_API_KEY
|
|
87
|
+
* });
|
|
88
|
+
*
|
|
89
|
+
* // Register HTTP endpoints
|
|
90
|
+
* transport.register();
|
|
91
|
+
*
|
|
92
|
+
* // Listen for events
|
|
93
|
+
* transport.on('event', (event: AgentEvent) => {
|
|
94
|
+
* console.log('Received event:', event.action);
|
|
95
|
+
* });
|
|
96
|
+
*
|
|
97
|
+
* // Handle errors
|
|
98
|
+
* transport.on('error', (error: Error) => {
|
|
99
|
+
* console.error('Transport error:', error);
|
|
100
|
+
* });
|
|
101
|
+
* ```
|
|
102
|
+
*/
|
|
103
|
+
export interface IAgentEventTransport {
|
|
104
|
+
/**
|
|
105
|
+
* Register HTTP endpoints with the Fastify server.
|
|
106
|
+
*
|
|
107
|
+
* This method mounts the necessary routes to receive webhook events
|
|
108
|
+
* from the issue tracking platform.
|
|
109
|
+
*
|
|
110
|
+
* @example
|
|
111
|
+
* ```typescript
|
|
112
|
+
* transport.register();
|
|
113
|
+
* console.log('Webhook endpoints registered');
|
|
114
|
+
* ```
|
|
115
|
+
*/
|
|
116
|
+
register(): void;
|
|
117
|
+
/**
|
|
118
|
+
* Register an event listener.
|
|
119
|
+
*
|
|
120
|
+
* @param event - Event name to listen for
|
|
121
|
+
* @param listener - Callback function to handle the event
|
|
122
|
+
*
|
|
123
|
+
* @example
|
|
124
|
+
* ```typescript
|
|
125
|
+
* transport.on('event', (event: AgentEvent) => {
|
|
126
|
+
* if (isAgentSessionCreatedEvent(event)) {
|
|
127
|
+
* console.log('Session created:', event.agentSession.id);
|
|
128
|
+
* }
|
|
129
|
+
* });
|
|
130
|
+
* ```
|
|
131
|
+
*/
|
|
132
|
+
on<K extends keyof AgentEventTransportEvents>(event: K, listener: AgentEventTransportEvents[K]): void;
|
|
133
|
+
/**
|
|
134
|
+
* Remove all event listeners.
|
|
135
|
+
*
|
|
136
|
+
* This is typically called during cleanup when shutting down the transport.
|
|
137
|
+
*
|
|
138
|
+
* @example
|
|
139
|
+
* ```typescript
|
|
140
|
+
* transport.removeAllListeners();
|
|
141
|
+
* ```
|
|
142
|
+
*/
|
|
143
|
+
removeAllListeners(): void;
|
|
144
|
+
}
|
|
145
|
+
export {};
|
|
146
|
+
//# sourceMappingURL=IAgentEventTransport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IAgentEventTransport.d.ts","sourceRoot":"","sources":["../../src/issue-tracker/IAgentEventTransport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD;;GAEG;AACH,UAAU,6BAA6B;IACtC;;OAEG;IACH,aAAa,EAAE,eAAe,CAAC;CAC/B;AAED;;;GAGG;AACH,MAAM,WAAW,gCAChB,SAAQ,6BAA6B;IACrC,QAAQ,EAAE,QAAQ,CAAC;IACnB,gBAAgB,EAAE,QAAQ,CAAC;IAC3B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,+BAChB,SAAQ,6BAA6B;IACrC,QAAQ,EAAE,QAAQ,CAAC;IACnB,gBAAgB,EAAE,OAAO,CAAC;IAC1B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,6BAA6B;IAC7E,QAAQ,EAAE,KAAK,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,MAAM,yBAAyB,GAClC,gCAAgC,GAChC,+BAA+B,GAC/B,uBAAuB,CAAC;AAE3B;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACzC;;;OAGG;IACH,KAAK,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IAEnC;;;OAGG;IACH,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,WAAW,oBAAoB;IACpC;;;;;;;;;;;OAWG;IACH,QAAQ,IAAI,IAAI,CAAC;IAEjB;;;;;;;;;;;;;;OAcG;IACH,EAAE,CAAC,CAAC,SAAS,MAAM,yBAAyB,EAC3C,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,yBAAyB,CAAC,CAAC,CAAC,GACpC,IAAI,CAAC;IAER;;;;;;;;;OASG;IACH,kBAAkB,IAAI,IAAI,CAAC;CAC3B"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Platform-agnostic interface for agent event transport.
|
|
3
|
+
*
|
|
4
|
+
* This interface defines how webhook events from issue tracking platforms
|
|
5
|
+
* are received, verified, and delivered to the application. It abstracts
|
|
6
|
+
* away platform-specific details like HTTP endpoints, signature verification,
|
|
7
|
+
* and payload structures.
|
|
8
|
+
*
|
|
9
|
+
* @module issue-tracker/IAgentEventTransport
|
|
10
|
+
*/
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=IAgentEventTransport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IAgentEventTransport.js","sourceRoot":"","sources":["../../src/issue-tracker/IAgentEventTransport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
|