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.
Files changed (40) hide show
  1. package/dist/CyrusAgentSession.d.ts +14 -0
  2. package/dist/CyrusAgentSession.d.ts.map +1 -1
  3. package/dist/agent-runner-types.d.ts +97 -0
  4. package/dist/agent-runner-types.d.ts.map +1 -1
  5. package/dist/config-types.d.ts +22 -4
  6. package/dist/config-types.d.ts.map +1 -1
  7. package/dist/index.d.ts +3 -3
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +1 -1
  10. package/dist/index.js.map +1 -1
  11. package/dist/issue-tracker/IIssueTrackerService.d.ts +18 -5
  12. package/dist/issue-tracker/IIssueTrackerService.d.ts.map +1 -1
  13. package/dist/issue-tracker/adapters/CLIEventTransport.d.ts +91 -0
  14. package/dist/issue-tracker/adapters/CLIEventTransport.d.ts.map +1 -0
  15. package/dist/issue-tracker/adapters/CLIEventTransport.js +104 -0
  16. package/dist/issue-tracker/adapters/CLIEventTransport.js.map +1 -0
  17. package/dist/issue-tracker/adapters/CLIIssueTrackerService.d.ts +239 -0
  18. package/dist/issue-tracker/adapters/CLIIssueTrackerService.d.ts.map +1 -0
  19. package/dist/issue-tracker/adapters/CLIIssueTrackerService.js +1112 -0
  20. package/dist/issue-tracker/adapters/CLIIssueTrackerService.js.map +1 -0
  21. package/dist/issue-tracker/adapters/CLIRPCServer.d.ts +318 -0
  22. package/dist/issue-tracker/adapters/CLIRPCServer.d.ts.map +1 -0
  23. package/dist/issue-tracker/adapters/CLIRPCServer.js +536 -0
  24. package/dist/issue-tracker/adapters/CLIRPCServer.js.map +1 -0
  25. package/dist/issue-tracker/adapters/CLITypes.d.ts +243 -0
  26. package/dist/issue-tracker/adapters/CLITypes.d.ts.map +1 -0
  27. package/dist/issue-tracker/adapters/CLITypes.js +378 -0
  28. package/dist/issue-tracker/adapters/CLITypes.js.map +1 -0
  29. package/dist/issue-tracker/adapters/index.d.ts +14 -0
  30. package/dist/issue-tracker/adapters/index.d.ts.map +1 -0
  31. package/dist/issue-tracker/adapters/index.js +11 -0
  32. package/dist/issue-tracker/adapters/index.js.map +1 -0
  33. package/dist/issue-tracker/index.d.ts +2 -1
  34. package/dist/issue-tracker/index.d.ts.map +1 -1
  35. package/dist/issue-tracker/index.js +3 -2
  36. package/dist/issue-tracker/index.js.map +1 -1
  37. package/dist/issue-tracker/types.d.ts +141 -29
  38. package/dist/issue-tracker/types.d.ts.map +1 -1
  39. package/dist/issue-tracker/types.js.map +1 -1
  40. package/package.json +2 -2
@@ -0,0 +1,239 @@
1
+ /**
2
+ * CLI/in-memory implementation of IIssueTrackerService.
3
+ *
4
+ * This adapter provides an in-memory mock of Linear's issue tracking platform
5
+ * for testing purposes. It implements all methods from IIssueTrackerService
6
+ * while storing data in memory using Maps for O(1) lookups.
7
+ *
8
+ * Unlike Linear's async properties, this implementation uses synchronous properties
9
+ * for immediate access to related entities.
10
+ *
11
+ * @module issue-tracker/adapters/CLIIssueTrackerService
12
+ */
13
+ import { EventEmitter } from "node:events";
14
+ import type { AgentEventTransportConfig, IAgentEventTransport } from "../IAgentEventTransport.js";
15
+ import type { IIssueTrackerService } from "../IIssueTrackerService.js";
16
+ import { type AgentActivityCreateInput, type AgentActivityPayload, type AgentSessionCreateOnCommentInput, type AgentSessionCreateOnIssueInput, AgentSessionStatus, type Comment, type CommentCreateInput, type CommentWithAttachments, type Connection, type FetchChildrenOptions, type FileUploadRequest, type FileUploadResponse, type Issue, type IssueCreateInput, type IssueTrackerAgentSession, type IssueTrackerAgentSessionPayload, type IssueUpdateInput, type IssueWithChildren, type Label, type PaginationOptions, type Team, type User, type WorkflowState } from "../types.js";
17
+ import { type CLIAgentActivityData, type CLIAgentSessionData, type CLICommentData, type CLIIssueData, type CLILabelData, type CLITeamData, type CLIUserData, type CLIWorkflowStateData } from "./CLITypes.js";
18
+ /**
19
+ * In-memory state for the CLI issue tracker.
20
+ */
21
+ export interface CLIIssueTrackerState {
22
+ issues: Map<string, CLIIssueData>;
23
+ comments: Map<string, CLICommentData>;
24
+ teams: Map<string, CLITeamData>;
25
+ labels: Map<string, CLILabelData>;
26
+ workflowStates: Map<string, CLIWorkflowStateData>;
27
+ users: Map<string, CLIUserData>;
28
+ agentSessions: Map<string, CLIAgentSessionData>;
29
+ agentActivities: Map<string, CLIAgentActivityData>;
30
+ currentUserId: string;
31
+ issueCounter: number;
32
+ commentCounter: number;
33
+ sessionCounter: number;
34
+ activityCounter: number;
35
+ }
36
+ /**
37
+ * CLI implementation of IIssueTrackerService.
38
+ *
39
+ * This class provides an in-memory implementation of the issue tracker service
40
+ * for testing purposes. All data is stored in Maps with synchronous property access.
41
+ *
42
+ * @example
43
+ * ```typescript
44
+ * const service = new CLIIssueTrackerService();
45
+ *
46
+ * // Fetch an issue
47
+ * const issue = await service.fetchIssue('issue-1');
48
+ *
49
+ * // Create a comment
50
+ * const comment = await service.createComment(issue.id, {
51
+ * body: 'This is a comment'
52
+ * });
53
+ * ```
54
+ */
55
+ export declare class CLIIssueTrackerService extends EventEmitter implements IIssueTrackerService {
56
+ private state;
57
+ private eventTransport;
58
+ /**
59
+ * Create a new CLIIssueTrackerService.
60
+ *
61
+ * @param initialState - Optional initial state (useful for testing)
62
+ */
63
+ constructor(initialState?: Partial<CLIIssueTrackerState>);
64
+ /**
65
+ * Fetch a single issue by ID or identifier.
66
+ */
67
+ fetchIssue(idOrIdentifier: string): Promise<Issue>;
68
+ /**
69
+ * Create a new issue in a team.
70
+ *
71
+ * @param input - Issue creation parameters
72
+ * @returns Promise resolving to the created issue
73
+ */
74
+ createIssue(input: IssueCreateInput): Promise<Issue>;
75
+ /**
76
+ * Get priority label from priority number.
77
+ */
78
+ private getPriorityLabel;
79
+ /**
80
+ * Fetch child issues (sub-issues) for a parent issue.
81
+ */
82
+ fetchIssueChildren(issueId: string, options?: FetchChildrenOptions): Promise<IssueWithChildren>;
83
+ /**
84
+ * Update an issue's properties.
85
+ */
86
+ updateIssue(issueId: string, updates: IssueUpdateInput): Promise<Issue>;
87
+ /**
88
+ * Fetch attachments for an issue.
89
+ */
90
+ fetchIssueAttachments(issueId: string): Promise<Array<{
91
+ title: string;
92
+ url: string;
93
+ }>>;
94
+ /**
95
+ * Fetch comments for an issue with optional pagination.
96
+ */
97
+ fetchComments(issueId: string, options?: PaginationOptions): Promise<Connection<Comment>>;
98
+ /**
99
+ * Fetch a single comment by ID.
100
+ */
101
+ fetchComment(commentId: string): Promise<Comment>;
102
+ /**
103
+ * Fetch a comment with attachments.
104
+ */
105
+ fetchCommentWithAttachments(commentId: string): Promise<CommentWithAttachments>;
106
+ /**
107
+ * Create a comment on an issue.
108
+ */
109
+ createComment(issueId: string, input: CommentCreateInput): Promise<Comment>;
110
+ /**
111
+ * Fetch all teams in the workspace/organization.
112
+ */
113
+ fetchTeams(options?: PaginationOptions): Promise<Connection<Team>>;
114
+ /**
115
+ * Fetch a single team by ID or key.
116
+ */
117
+ fetchTeam(idOrKey: string): Promise<Team>;
118
+ /**
119
+ * Fetch all issue labels in the workspace/organization.
120
+ */
121
+ fetchLabels(options?: PaginationOptions): Promise<Connection<Label>>;
122
+ /**
123
+ * Fetch a single label by ID or name.
124
+ */
125
+ fetchLabel(idOrName: string): Promise<Label>;
126
+ /**
127
+ * Fetch label names for a specific issue.
128
+ */
129
+ getIssueLabels(issueId: string): Promise<string[]>;
130
+ /**
131
+ * Fetch workflow states for a team.
132
+ */
133
+ fetchWorkflowStates(teamId: string, options?: PaginationOptions): Promise<Connection<WorkflowState>>;
134
+ /**
135
+ * Fetch a single workflow state by ID.
136
+ */
137
+ fetchWorkflowState(stateId: string): Promise<WorkflowState>;
138
+ /**
139
+ * Fetch a user by ID.
140
+ */
141
+ fetchUser(userId: string): Promise<User>;
142
+ /**
143
+ * Fetch the current authenticated user.
144
+ */
145
+ fetchCurrentUser(): Promise<User>;
146
+ /**
147
+ * Create an agent session on an issue.
148
+ */
149
+ createAgentSessionOnIssue(input: AgentSessionCreateOnIssueInput): Promise<IssueTrackerAgentSessionPayload>;
150
+ /**
151
+ * Create an agent session on a comment thread.
152
+ */
153
+ createAgentSessionOnComment(input: AgentSessionCreateOnCommentInput): Promise<IssueTrackerAgentSessionPayload>;
154
+ /**
155
+ * Internal helper to create agent sessions.
156
+ */
157
+ private createAgentSessionInternal;
158
+ /**
159
+ * Fetch an agent session by ID.
160
+ */
161
+ fetchAgentSession(sessionId: string): Promise<IssueTrackerAgentSession>;
162
+ /**
163
+ * List agent sessions with optional filtering.
164
+ *
165
+ * @param options - Filtering options (issueId, limit, offset)
166
+ * @returns Array of agent session data
167
+ */
168
+ listAgentSessions(options?: {
169
+ issueId?: string;
170
+ limit?: number;
171
+ offset?: number;
172
+ }): CLIAgentSessionData[];
173
+ /**
174
+ * Update an agent session's status.
175
+ *
176
+ * @param sessionId - The session ID to update
177
+ * @param status - The new status
178
+ * @returns The updated session
179
+ */
180
+ updateAgentSessionStatus(sessionId: string, status: AgentSessionStatus): Promise<IssueTrackerAgentSession>;
181
+ /**
182
+ * Emit a stop signal webhook event for the EdgeWorker to handle.
183
+ * Should be called by the caller after stopping a session (e.g., CLIRPCServer.handleStopSession).
184
+ */
185
+ emitStopSignalEvent(sessionId: string): Promise<void>;
186
+ /**
187
+ * Prompt an agent session with a user message.
188
+ * This creates a comment on the associated issue and emits a prompted event.
189
+ *
190
+ * @param sessionId - The session ID to prompt
191
+ * @param message - The user's prompt message
192
+ * @returns The created comment
193
+ */
194
+ promptAgentSession(sessionId: string, message: string): Promise<Comment>;
195
+ /**
196
+ * Post an agent activity to an agent session.
197
+ */
198
+ createAgentActivity(input: AgentActivityCreateInput): Promise<AgentActivityPayload>;
199
+ /**
200
+ * List agent activities for a session.
201
+ *
202
+ * @param sessionId - The session ID to get activities for
203
+ * @param options - Pagination options
204
+ * @returns Array of agent activity data
205
+ */
206
+ listAgentActivities(sessionId: string, options?: {
207
+ limit?: number;
208
+ offset?: number;
209
+ }): CLIAgentActivityData[];
210
+ /**
211
+ * Request a file upload URL from the platform.
212
+ */
213
+ requestFileUpload(request: FileUploadRequest): Promise<FileUploadResponse>;
214
+ /**
215
+ * Get the platform type identifier.
216
+ */
217
+ getPlatformType(): string;
218
+ /**
219
+ * Get the platform's API version or other metadata.
220
+ */
221
+ getPlatformMetadata(): Record<string, unknown>;
222
+ /**
223
+ * Create an event transport for receiving webhook events.
224
+ *
225
+ * @param config - Transport configuration
226
+ * @returns CLI event transport implementation
227
+ */
228
+ createEventTransport(config: AgentEventTransportConfig): IAgentEventTransport;
229
+ /**
230
+ * Seed default teams and workflow states for testing.
231
+ * Creates a "default" team with standard workflow states.
232
+ */
233
+ seedDefaultData(): void;
234
+ /**
235
+ * Get the current in-memory state (for testing/debugging).
236
+ */
237
+ getState(): CLIIssueTrackerState;
238
+ }
239
+ //# sourceMappingURL=CLIIssueTrackerService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CLIIssueTrackerService.d.ts","sourceRoot":"","sources":["../../../src/issue-tracker/adapters/CLIIssueTrackerService.ts"],"names":[],"mappings":"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"}