cyrus-core 0.2.33 → 0.2.34

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.
@@ -28,6 +28,19 @@ export interface Workspace {
28
28
  isGitWorktree: boolean;
29
29
  historyPath?: string;
30
30
  }
31
+ /**
32
+ * Lightweight repository context carried by each session.
33
+ * Identifies which repository (and branches) the session operates on.
34
+ * 0 entries = chatbot/no-repo session, 1 = single-repo, N = multi-repo.
35
+ */
36
+ export interface RepositoryContext {
37
+ /** The repository config ID (matches RepositoryConfig.id) */
38
+ repositoryId: string;
39
+ /** The git branch the session works on (e.g., derived from issue identifier) */
40
+ branchName?: string;
41
+ /** The base branch for PRs (e.g., "main" or a Graphite parent branch) */
42
+ baseBranchName?: string;
43
+ }
31
44
  export interface CyrusAgentSession {
32
45
  /** Unique session identifier (was linearAgentActivitySessionId in v2.0) */
33
46
  id: string;
@@ -47,6 +60,8 @@ export interface CyrusAgentSession {
47
60
  issueId?: string;
48
61
  /** Minimal issue data - optional for standalone sessions */
49
62
  issue?: IssueMinimal;
63
+ /** Repository contexts for this session (always array, never undefined) */
64
+ repositories: RepositoryContext[];
50
65
  workspace: Workspace;
51
66
  claudeSessionId?: string;
52
67
  geminiSessionId?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"CyrusAgentSession.d.ts","sourceRoot":"","sources":["../src/CyrusAgentSession.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACX,YAAY,EACZ,wBAAwB,EACxB,MAAM,yBAAyB,CAAC;AACjC,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;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC5B,8DAA8D;IAC9D,SAAS,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,eAAe,EAAE,MAAM,CAAC;CACxB;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,2EAA2E;IAC3E,EAAE,EAAE,MAAM,CAAC;IACX,kFAAkF;IAClF,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,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,uDAAuD;IACvD,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,SAAS,EAAE,SAAS,CAAC;IAErB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,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;gBAC/B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;gBAC/B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;aAChC,CAAC,CAAC;YACH,kFAAkF;YAClF,cAAc,CAAC,EAAE;gBAChB,kCAAkC;gBAClC,SAAS,EAAE,MAAM,CAAC;gBAClB,mEAAmE;gBACnE,WAAW,EAAE,OAAO,CAAC;gBACrB,2CAA2C;gBAC3C,QAAQ,EAAE,KAAK,CAAC;oBACf,SAAS,EAAE,MAAM,CAAC;oBAClB,IAAI,EAAE,OAAO,CAAC;oBACd,MAAM,EAAE,MAAM,CAAC;oBACf,SAAS,EAAE,MAAM,CAAC;iBAClB,CAAC,CAAC;aACH,CAAC;SACF,CAAC;KACF,CAAC;CACF;AAED,MAAM,WAAW,sBAAsB;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,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;QAClB,QAAQ,CAAC,EAAE,wBAAwB,CAAC;KACpC,CAAC;CACF"}
1
+ {"version":3,"file":"CyrusAgentSession.d.ts","sourceRoot":"","sources":["../src/CyrusAgentSession.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,25 @@
1
1
  import type { CyrusAgentSession, CyrusAgentSessionEntry } from "./CyrusAgentSession.js";
2
2
  import { type ILogger } from "./logging/index.js";
3
3
  /** Current persistence format version */
4
- export declare const PERSISTENCE_VERSION = "3.0";
4
+ export declare const PERSISTENCE_VERSION = "4.0";
5
5
  export type SerializedCyrusAgentSession = CyrusAgentSession;
6
6
  export type SerializedCyrusAgentSessionEntry = CyrusAgentSessionEntry;
7
7
  /**
8
8
  * Serializable EdgeWorker state for persistence
9
+ *
10
+ * v4.0: Flat session format - sessions keyed directly by sessionId (no repo nesting)
11
+ * v3.0: Nested format - sessions keyed by [repoId][sessionId]
9
12
  */
10
13
  export interface SerializableEdgeWorkerState {
14
+ agentSessions?: Record<string, SerializedCyrusAgentSession>;
15
+ agentSessionEntries?: Record<string, SerializedCyrusAgentSessionEntry[]>;
16
+ childToParentAgentSession?: Record<string, string>;
17
+ issueRepositoryCache?: Record<string, string[]>;
18
+ }
19
+ /**
20
+ * v3.0 nested state format (for migration purposes)
21
+ */
22
+ export interface V3SerializableEdgeWorkerState {
11
23
  agentSessions?: Record<string, Record<string, SerializedCyrusAgentSession>>;
12
24
  agentSessionEntries?: Record<string, Record<string, SerializedCyrusAgentSessionEntry[]>>;
13
25
  childToParentAgentSession?: Record<string, string>;
@@ -48,6 +60,14 @@ export declare class PersistenceManager {
48
60
  * - issue becomes optional
49
61
  */
50
62
  private migrateV2ToV3;
63
+ /**
64
+ * Migrate v3.0 state format to v4.0 format
65
+ *
66
+ * Changes:
67
+ * - Flatten nested {[repoId]: {[sessionId]: session}} to flat {[sessionId]: session}
68
+ * - Flatten nested entries similarly
69
+ */
70
+ private migrateV3ToV4;
51
71
  /**
52
72
  * Migrate a single session from v2.0 to v3.0 format
53
73
  */
@@ -1 +1 @@
1
- {"version":3,"file":"PersistenceManager.d.ts","sourceRoot":"","sources":["../src/PersistenceManager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACX,iBAAiB,EACjB,sBAAsB,EAGtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAgB,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAEhE,yCAAyC;AACzC,eAAO,MAAM,mBAAmB,QAAQ,CAAC;AAGzC,MAAM,MAAM,2BAA2B,GAAG,iBAAiB,CAAC;AAM5D,MAAM,MAAM,gCAAgC,GAAG,sBAAsB,CAAC;AA6BtE;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAE3C,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC,CAAC;IAC5E,mBAAmB,CAAC,EAAE,MAAM,CAC3B,MAAM,EACN,MAAM,CAAC,MAAM,EAAE,gCAAgC,EAAE,CAAC,CAClD,CAAC;IAEF,yBAAyB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEnD,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9C;AAED;;GAEG;AACH,qBAAa,kBAAkB;IAC9B,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,MAAM,CAAU;gBAEZ,eAAe,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO;IAMtD;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAIlC;;OAEG;YACW,0BAA0B;IAIxC;;OAEG;IACG,mBAAmB,CAAC,KAAK,EAAE,2BAA2B,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB5E;;;OAGG;IACG,mBAAmB,IAAI,OAAO,CAAC,2BAA2B,GAAG,IAAI,CAAC;IAyCxE;;;;;;;;;OASG;IACH,OAAO,CAAC,aAAa;IA+BrB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAkC5B;;OAEG;IACH,YAAY,IAAI,OAAO;IAIvB;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAWtC;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAI7D;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAIhE;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;IAItC;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;CAGxC"}
1
+ {"version":3,"file":"PersistenceManager.d.ts","sourceRoot":"","sources":["../src/PersistenceManager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACX,iBAAiB,EACjB,sBAAsB,EAGtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAgB,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAEhE,yCAAyC;AACzC,eAAO,MAAM,mBAAmB,QAAQ,CAAC;AAGzC,MAAM,MAAM,2BAA2B,GAAG,iBAAiB,CAAC;AAM5D,MAAM,MAAM,gCAAgC,GAAG,sBAAsB,CAAC;AA6BtE;;;;;GAKG;AACH,MAAM,WAAW,2BAA2B;IAE3C,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;IAC5D,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gCAAgC,EAAE,CAAC,CAAC;IAEzE,yBAAyB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAGnD,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CAChD;AAED;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC7C,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC,CAAC;IAC5E,mBAAmB,CAAC,EAAE,MAAM,CAC3B,MAAM,EACN,MAAM,CAAC,MAAM,EAAE,gCAAgC,EAAE,CAAC,CAClD,CAAC;IACF,yBAAyB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnD,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9C;AAED;;GAEG;AACH,qBAAa,kBAAkB;IAC9B,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,MAAM,CAAU;gBAEZ,eAAe,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO;IAMtD;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAIlC;;OAEG;YACW,0BAA0B;IAIxC;;OAEG;IACG,mBAAmB,CAAC,KAAK,EAAE,2BAA2B,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB5E;;;OAGG;IACG,mBAAmB,IAAI,OAAO,CAAC,2BAA2B,GAAG,IAAI,CAAC;IAqDxE;;;;;;;;;OASG;IACH,OAAO,CAAC,aAAa;IA+BrB;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;IAsDrB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAoC5B;;OAEG;IACH,YAAY,IAAI,OAAO;IAIvB;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAWtC;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAI7D;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAIhE;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;IAItC;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;CAGxC"}
@@ -4,7 +4,7 @@ import { homedir } from "node:os";
4
4
  import { join } from "node:path";
5
5
  import { createLogger } from "./logging/index.js";
6
6
  /** Current persistence format version */
7
- export const PERSISTENCE_VERSION = "3.0";
7
+ export const PERSISTENCE_VERSION = "4.0";
8
8
  /**
9
9
  * Manages persistence of critical mappings to survive restarts
10
10
  */
@@ -65,9 +65,16 @@ export class PersistenceManager {
65
65
  }
66
66
  // Handle version migration
67
67
  if (stateData.version === "2.0") {
68
- this.logger.info("Migrating state from v2.0 to v3.0");
69
- const migratedState = this.migrateV2ToV3(stateData.state);
70
- // Save the migrated state
68
+ this.logger.info("Migrating state from v2.0 to v3.0 to v4.0");
69
+ const v3State = this.migrateV2ToV3(stateData.state);
70
+ const migratedState = this.migrateV3ToV4(v3State);
71
+ await this.saveEdgeWorkerState(migratedState);
72
+ this.logger.info(`Migration complete, saved as v${PERSISTENCE_VERSION}`);
73
+ return migratedState;
74
+ }
75
+ if (stateData.version === "3.0") {
76
+ this.logger.info("Migrating state from v3.0 to v4.0");
77
+ const migratedState = this.migrateV3ToV4(stateData.state);
71
78
  await this.saveEdgeWorkerState(migratedState);
72
79
  this.logger.info(`Migration complete, saved as v${PERSISTENCE_VERSION}`);
73
80
  return migratedState;
@@ -116,6 +123,56 @@ export class PersistenceManager {
116
123
  // The entries themselves don't need modification
117
124
  return migratedState;
118
125
  }
126
+ /**
127
+ * Migrate v3.0 state format to v4.0 format
128
+ *
129
+ * Changes:
130
+ * - Flatten nested {[repoId]: {[sessionId]: session}} to flat {[sessionId]: session}
131
+ * - Flatten nested entries similarly
132
+ */
133
+ migrateV3ToV4(v3State) {
134
+ const flatSessions = {};
135
+ const flatEntries = {};
136
+ // Flatten sessions: merge all repo-keyed sessions into a single flat map
137
+ // Preserve the repoId key as a RepositoryContext so migrated sessions
138
+ // know which repository they belong to (instead of defaulting to [])
139
+ if (v3State.agentSessions) {
140
+ for (const [repoId, repoSessions] of Object.entries(v3State.agentSessions)) {
141
+ for (const [sessionId, session] of Object.entries(repoSessions)) {
142
+ if (!session.repositories?.length) {
143
+ session.repositories = [
144
+ {
145
+ repositoryId: repoId,
146
+ },
147
+ ];
148
+ }
149
+ flatSessions[sessionId] = session;
150
+ }
151
+ }
152
+ }
153
+ // Flatten entries similarly
154
+ if (v3State.agentSessionEntries) {
155
+ for (const repoEntries of Object.values(v3State.agentSessionEntries)) {
156
+ for (const [sessionId, entries] of Object.entries(repoEntries)) {
157
+ flatEntries[sessionId] = entries;
158
+ }
159
+ }
160
+ }
161
+ // Migrate issueRepositoryCache from old Record<string, string> to Record<string, string[]>
162
+ let migratedCache;
163
+ if (v3State.issueRepositoryCache) {
164
+ migratedCache = {};
165
+ for (const [issueId, repoId] of Object.entries(v3State.issueRepositoryCache)) {
166
+ migratedCache[issueId] = [repoId];
167
+ }
168
+ }
169
+ return {
170
+ agentSessions: flatSessions,
171
+ agentSessionEntries: flatEntries,
172
+ childToParentAgentSession: v3State.childToParentAgentSession,
173
+ issueRepositoryCache: migratedCache,
174
+ };
175
+ }
119
176
  /**
120
177
  * Migrate a single session from v2.0 to v3.0 format
121
178
  */
@@ -147,6 +204,8 @@ export class PersistenceManager {
147
204
  issueId: v2Session.issueId,
148
205
  // Now optional
149
206
  issue: v2Session.issue,
207
+ // New field: empty repositories for migrated sessions
208
+ repositories: [],
150
209
  };
151
210
  }
152
211
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"PersistenceManager.js","sourceRoot":"","sources":["../src/PersistenceManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PersistenceManager.js","sourceRoot":"","sources":["../src/PersistenceManager.ts"],"names":[],"mappings":"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"}
@@ -41,6 +41,16 @@ export declare const UserAccessControlConfigSchema: z.ZodObject<{
41
41
  }>>;
42
42
  blockMessage: z.ZodOptional<z.ZodString>;
43
43
  }, z.core.$strip>;
44
+ /**
45
+ * Configuration for a Linear workspace's credentials.
46
+ * Keyed by workspace ID in EdgeConfig.linearWorkspaces.
47
+ */
48
+ export declare const LinearWorkspaceConfigSchema: z.ZodObject<{
49
+ linearToken: z.ZodString;
50
+ linearRefreshToken: z.ZodOptional<z.ZodString>;
51
+ linearWorkspaceSlug: z.ZodOptional<z.ZodString>;
52
+ linearWorkspaceName: z.ZodOptional<z.ZodString>;
53
+ }, z.core.$strip>;
44
54
  /**
45
55
  * Configuration for a single repository/workspace pair
46
56
  */
@@ -50,13 +60,13 @@ export declare const RepositoryConfigSchema: z.ZodObject<{
50
60
  repositoryPath: z.ZodString;
51
61
  baseBranch: z.ZodString;
52
62
  githubUrl: z.ZodOptional<z.ZodString>;
53
- linearWorkspaceId: z.ZodString;
54
- linearWorkspaceName: z.ZodOptional<z.ZodString>;
55
- linearToken: z.ZodString;
56
- linearRefreshToken: z.ZodOptional<z.ZodString>;
63
+ linearWorkspaceId: z.ZodOptional<z.ZodString>;
57
64
  teamKeys: z.ZodOptional<z.ZodArray<z.ZodString>>;
58
65
  routingLabels: z.ZodOptional<z.ZodArray<z.ZodString>>;
59
66
  projectKeys: z.ZodOptional<z.ZodArray<z.ZodString>>;
67
+ linearToken: z.ZodOptional<z.ZodString>;
68
+ linearRefreshToken: z.ZodOptional<z.ZodString>;
69
+ linearWorkspaceName: z.ZodOptional<z.ZodString>;
60
70
  workspaceBaseDir: z.ZodString;
61
71
  isActive: z.ZodOptional<z.ZodBoolean>;
62
72
  promptTemplatePath: z.ZodOptional<z.ZodString>;
@@ -128,13 +138,13 @@ export declare const EdgeConfigSchema: z.ZodObject<{
128
138
  repositoryPath: z.ZodString;
129
139
  baseBranch: z.ZodString;
130
140
  githubUrl: z.ZodOptional<z.ZodString>;
131
- linearWorkspaceId: z.ZodString;
132
- linearWorkspaceName: z.ZodOptional<z.ZodString>;
133
- linearToken: z.ZodString;
134
- linearRefreshToken: z.ZodOptional<z.ZodString>;
141
+ linearWorkspaceId: z.ZodOptional<z.ZodString>;
135
142
  teamKeys: z.ZodOptional<z.ZodArray<z.ZodString>>;
136
143
  routingLabels: z.ZodOptional<z.ZodArray<z.ZodString>>;
137
144
  projectKeys: z.ZodOptional<z.ZodArray<z.ZodString>>;
145
+ linearToken: z.ZodOptional<z.ZodString>;
146
+ linearRefreshToken: z.ZodOptional<z.ZodString>;
147
+ linearWorkspaceName: z.ZodOptional<z.ZodString>;
138
148
  workspaceBaseDir: z.ZodString;
139
149
  isActive: z.ZodOptional<z.ZodBoolean>;
140
150
  promptTemplatePath: z.ZodOptional<z.ZodString>;
@@ -192,9 +202,15 @@ export declare const EdgeConfigSchema: z.ZodObject<{
192
202
  blockMessage: z.ZodOptional<z.ZodString>;
193
203
  }, z.core.$strip>>;
194
204
  }, z.core.$strip>>;
205
+ linearWorkspaces: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
206
+ linearToken: z.ZodString;
207
+ linearRefreshToken: z.ZodOptional<z.ZodString>;
208
+ linearWorkspaceSlug: z.ZodOptional<z.ZodString>;
209
+ linearWorkspaceName: z.ZodOptional<z.ZodString>;
210
+ }, z.core.$strip>>>;
211
+ linearWorkspaceSlug: z.ZodOptional<z.ZodString>;
195
212
  ngrokAuthToken: z.ZodOptional<z.ZodString>;
196
213
  stripeCustomerId: z.ZodOptional<z.ZodString>;
197
- linearWorkspaceSlug: z.ZodOptional<z.ZodString>;
198
214
  claudeDefaultModel: z.ZodOptional<z.ZodString>;
199
215
  claudeDefaultFallbackModel: z.ZodOptional<z.ZodString>;
200
216
  geminiDefaultModel: z.ZodOptional<z.ZodString>;
@@ -261,13 +277,13 @@ export declare const RepositoryConfigPayloadSchema: z.ZodObject<{
261
277
  repositoryPath: z.ZodString;
262
278
  baseBranch: z.ZodString;
263
279
  githubUrl: z.ZodOptional<z.ZodString>;
264
- linearWorkspaceId: z.ZodString;
265
- linearWorkspaceName: z.ZodOptional<z.ZodString>;
266
- linearToken: z.ZodString;
267
- linearRefreshToken: z.ZodOptional<z.ZodString>;
280
+ linearWorkspaceId: z.ZodOptional<z.ZodString>;
268
281
  teamKeys: z.ZodOptional<z.ZodArray<z.ZodString>>;
269
282
  routingLabels: z.ZodOptional<z.ZodArray<z.ZodString>>;
270
283
  projectKeys: z.ZodOptional<z.ZodArray<z.ZodString>>;
284
+ linearToken: z.ZodOptional<z.ZodString>;
285
+ linearRefreshToken: z.ZodOptional<z.ZodString>;
286
+ linearWorkspaceName: z.ZodOptional<z.ZodString>;
271
287
  isActive: z.ZodOptional<z.ZodBoolean>;
272
288
  promptTemplatePath: z.ZodOptional<z.ZodString>;
273
289
  allowedTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
@@ -330,9 +346,15 @@ export declare const RepositoryConfigPayloadSchema: z.ZodObject<{
330
346
  * Uses RepositoryConfigPayloadSchema which has optional workspaceBaseDir.
331
347
  */
332
348
  export declare const EdgeConfigPayloadSchema: z.ZodObject<{
349
+ linearWorkspaces: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
350
+ linearToken: z.ZodString;
351
+ linearRefreshToken: z.ZodOptional<z.ZodString>;
352
+ linearWorkspaceSlug: z.ZodOptional<z.ZodString>;
353
+ linearWorkspaceName: z.ZodOptional<z.ZodString>;
354
+ }, z.core.$strip>>>;
355
+ linearWorkspaceSlug: z.ZodOptional<z.ZodString>;
333
356
  ngrokAuthToken: z.ZodOptional<z.ZodString>;
334
357
  stripeCustomerId: z.ZodOptional<z.ZodString>;
335
- linearWorkspaceSlug: z.ZodOptional<z.ZodString>;
336
358
  claudeDefaultModel: z.ZodOptional<z.ZodString>;
337
359
  claudeDefaultFallbackModel: z.ZodOptional<z.ZodString>;
338
360
  geminiDefaultModel: z.ZodOptional<z.ZodString>;
@@ -394,13 +416,13 @@ export declare const EdgeConfigPayloadSchema: z.ZodObject<{
394
416
  repositoryPath: z.ZodString;
395
417
  baseBranch: z.ZodString;
396
418
  githubUrl: z.ZodOptional<z.ZodString>;
397
- linearWorkspaceId: z.ZodString;
398
- linearWorkspaceName: z.ZodOptional<z.ZodString>;
399
- linearToken: z.ZodString;
400
- linearRefreshToken: z.ZodOptional<z.ZodString>;
419
+ linearWorkspaceId: z.ZodOptional<z.ZodString>;
401
420
  teamKeys: z.ZodOptional<z.ZodArray<z.ZodString>>;
402
421
  routingLabels: z.ZodOptional<z.ZodArray<z.ZodString>>;
403
422
  projectKeys: z.ZodOptional<z.ZodArray<z.ZodString>>;
423
+ linearToken: z.ZodOptional<z.ZodString>;
424
+ linearRefreshToken: z.ZodOptional<z.ZodString>;
425
+ linearWorkspaceName: z.ZodOptional<z.ZodString>;
404
426
  isActive: z.ZodOptional<z.ZodBoolean>;
405
427
  promptTemplatePath: z.ZodOptional<z.ZodString>;
406
428
  allowedTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
@@ -459,10 +481,29 @@ export declare const EdgeConfigPayloadSchema: z.ZodObject<{
459
481
  workspaceBaseDir: z.ZodOptional<z.ZodString>;
460
482
  }, z.core.$strip>>;
461
483
  }, z.core.$strip>;
484
+ /**
485
+ * Migrate an EdgeConfig from the legacy per-repo token format to the
486
+ * workspace-keyed format.
487
+ *
488
+ * Old format: each repository has linearToken and linearRefreshToken.
489
+ * New format: linearWorkspaces at EdgeConfig level keyed by workspace ID,
490
+ * repositories no longer carry tokens.
491
+ *
492
+ * This function is idempotent — if linearWorkspaces already exists, it
493
+ * returns the config unchanged.
494
+ */
495
+ export declare function migrateEdgeConfig(raw: Record<string, unknown>): Record<string, unknown>;
462
496
  export type UserIdentifier = z.infer<typeof UserIdentifierSchema>;
463
497
  export type UserAccessControlConfig = z.infer<typeof UserAccessControlConfigSchema>;
498
+ export type LinearWorkspaceConfig = z.infer<typeof LinearWorkspaceConfigSchema>;
464
499
  export type RepositoryConfig = z.infer<typeof RepositoryConfigSchema>;
465
500
  export type EdgeConfig = z.infer<typeof EdgeConfigSchema>;
466
501
  export type RepositoryConfigPayload = z.infer<typeof RepositoryConfigPayloadSchema>;
467
502
  export type EdgeConfigPayload = z.infer<typeof EdgeConfigPayloadSchema>;
503
+ /**
504
+ * Assert that a repository has a Linear workspace ID and return it.
505
+ * Use this in code paths that are only reached for Linear-linked repositories
506
+ * (e.g. webhook handlers routed via workspace ID).
507
+ */
508
+ export declare function requireLinearWorkspaceId(repo: RepositoryConfig): string;
468
509
  //# sourceMappingURL=config-schemas.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-schemas.d.ts","sourceRoot":"","sources":["../src/config-schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;EAAkD,CAAC;AAChF,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB;;;;mBAI/B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;iBA4BxC,CAAC;AA0EH;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAqCjC,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAoE3B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAExC,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAElC,CAAC;AAGH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAC5C,OAAO,6BAA6B,CACpC,CAAC;AACF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAC5C,OAAO,6BAA6B,CACpC,CAAC;AACF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
1
+ {"version":3,"file":"config-schemas.d.ts","sourceRoot":"","sources":["../src/config-schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;EAAkD,CAAC;AAChF,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB;;;;mBAI/B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;iBA4BxC,CAAC;AA0EH;;;GAGG;AACH,eAAO,MAAM,2BAA2B;;;;;iBAOtC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAyCjC,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA4E3B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAExC,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAElC,CAAC;AAEH;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAChC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC1B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAiEzB;AAGD,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAC5C,OAAO,6BAA6B,CACpC,CAAC;AACF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAChF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAC5C,OAAO,6BAA6B,CACpC,CAAC;AACF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAOvE"}
@@ -110,6 +110,18 @@ const PromptDefaultsSchema = z.object({
110
110
  orchestrator: PromptTypeDefaultsSchema.optional(),
111
111
  "graphite-orchestrator": PromptTypeDefaultsSchema.optional(),
112
112
  });
113
+ /**
114
+ * Configuration for a Linear workspace's credentials.
115
+ * Keyed by workspace ID in EdgeConfig.linearWorkspaces.
116
+ */
117
+ export const LinearWorkspaceConfigSchema = z.object({
118
+ linearToken: z.string(),
119
+ linearRefreshToken: z.string().optional(),
120
+ /** Linear workspace URL slug (e.g., "ceedar" from "https://linear.app/ceedar/...") */
121
+ linearWorkspaceSlug: z.string().optional(),
122
+ /** Human-readable workspace name (e.g., "Ceedar") */
123
+ linearWorkspaceName: z.string().optional(),
124
+ });
113
125
  /**
114
126
  * Configuration for a single repository/workspace pair
115
127
  */
@@ -121,14 +133,17 @@ export const RepositoryConfigSchema = z.object({
121
133
  repositoryPath: z.string(),
122
134
  baseBranch: z.string(),
123
135
  githubUrl: z.string().optional(),
124
- // Linear configuration
125
- linearWorkspaceId: z.string(),
126
- linearWorkspaceName: z.string().optional(),
127
- linearToken: z.string(),
128
- linearRefreshToken: z.string().optional(),
136
+ // Linear configuration (optional — repos may operate without Linear, e.g. via Slack or GitHub)
137
+ linearWorkspaceId: z.string().optional(),
129
138
  teamKeys: z.array(z.string()).optional(),
130
139
  routingLabels: z.array(z.string()).optional(),
131
140
  projectKeys: z.array(z.string()).optional(),
141
+ /** @deprecated Use EdgeConfig.linearWorkspaces[workspaceId].linearToken */
142
+ linearToken: z.string().optional(),
143
+ /** @deprecated Use EdgeConfig.linearWorkspaces[workspaceId].linearRefreshToken */
144
+ linearRefreshToken: z.string().optional(),
145
+ /** @deprecated Use EdgeConfig.linearWorkspaces[workspaceId].linearWorkspaceName */
146
+ linearWorkspaceName: z.string().optional(),
132
147
  // Workspace configuration
133
148
  workspaceBaseDir: z.string(),
134
149
  // Optional settings
@@ -155,12 +170,19 @@ export const RepositoryConfigSchema = z.object({
155
170
  export const EdgeConfigSchema = z.object({
156
171
  /** Array of repository configurations */
157
172
  repositories: z.array(RepositoryConfigSchema),
173
+ /**
174
+ * Linear workspace credentials keyed by workspace ID.
175
+ * Centralizes tokens that were previously duplicated per-repository.
176
+ */
177
+ linearWorkspaces: z
178
+ .record(z.string(), LinearWorkspaceConfigSchema)
179
+ .optional(),
180
+ /** @deprecated Migrated into linearWorkspaces entries. */
181
+ linearWorkspaceSlug: z.string().optional(),
158
182
  /** Ngrok auth token for tunnel creation */
159
183
  ngrokAuthToken: z.string().optional(),
160
184
  /** Stripe customer ID for billing */
161
185
  stripeCustomerId: z.string().optional(),
162
- /** Linear workspace URL slug (e.g., "ceedar" from "https://linear.app/ceedar/...") */
163
- linearWorkspaceSlug: z.string().optional(),
164
186
  /** Default Claude model to use across all repositories (e.g., "opus", "sonnet", "haiku") */
165
187
  claudeDefaultModel: z.string().optional(),
166
188
  /** Default Claude fallback model if primary Claude model is unavailable */
@@ -219,4 +241,71 @@ export const RepositoryConfigPayloadSchema = RepositoryConfigSchema.extend({
219
241
  export const EdgeConfigPayloadSchema = EdgeConfigSchema.extend({
220
242
  repositories: z.array(RepositoryConfigPayloadSchema),
221
243
  });
244
+ /**
245
+ * Migrate an EdgeConfig from the legacy per-repo token format to the
246
+ * workspace-keyed format.
247
+ *
248
+ * Old format: each repository has linearToken and linearRefreshToken.
249
+ * New format: linearWorkspaces at EdgeConfig level keyed by workspace ID,
250
+ * repositories no longer carry tokens.
251
+ *
252
+ * This function is idempotent — if linearWorkspaces already exists, it
253
+ * returns the config unchanged.
254
+ */
255
+ export function migrateEdgeConfig(raw) {
256
+ // Already migrated or no repositories — nothing to do
257
+ if (raw.linearWorkspaces || !Array.isArray(raw.repositories)) {
258
+ return raw;
259
+ }
260
+ const repos = raw.repositories;
261
+ const hasLegacyTokens = repos.some((r) => typeof r.linearToken === "string");
262
+ if (!hasLegacyTokens) {
263
+ return raw;
264
+ }
265
+ // Build workspace map from per-repo tokens
266
+ const linearWorkspaces = {};
267
+ // Grab the top-level slug (if present) so it can be folded into each workspace
268
+ const globalSlug = raw.linearWorkspaceSlug;
269
+ for (const repo of repos) {
270
+ const workspaceId = repo.linearWorkspaceId;
271
+ const token = repo.linearToken;
272
+ if (workspaceId && token) {
273
+ // First repo with this workspace wins (they should all have the same token)
274
+ if (!linearWorkspaces[workspaceId]) {
275
+ linearWorkspaces[workspaceId] = {
276
+ linearToken: token,
277
+ ...(typeof repo.linearRefreshToken === "string"
278
+ ? { linearRefreshToken: repo.linearRefreshToken }
279
+ : {}),
280
+ ...(globalSlug ? { linearWorkspaceSlug: globalSlug } : {}),
281
+ ...(typeof repo.linearWorkspaceName === "string"
282
+ ? { linearWorkspaceName: repo.linearWorkspaceName }
283
+ : {}),
284
+ };
285
+ }
286
+ }
287
+ }
288
+ // Strip legacy token fields and workspace name from repositories
289
+ const migratedRepos = repos.map((repo) => {
290
+ const { linearToken: _linearToken, linearRefreshToken: _linearRefreshToken, linearWorkspaceName: _linearWorkspaceName, ...rest } = repo;
291
+ return rest;
292
+ });
293
+ const { linearWorkspaceSlug: _slug, ...rest } = raw;
294
+ return {
295
+ ...rest,
296
+ repositories: migratedRepos,
297
+ linearWorkspaces,
298
+ };
299
+ }
300
+ /**
301
+ * Assert that a repository has a Linear workspace ID and return it.
302
+ * Use this in code paths that are only reached for Linear-linked repositories
303
+ * (e.g. webhook handlers routed via workspace ID).
304
+ */
305
+ export function requireLinearWorkspaceId(repo) {
306
+ if (!repo.linearWorkspaceId) {
307
+ throw new Error(`Repository "${repo.name}" is not linked to a Linear workspace`);
308
+ }
309
+ return repo.linearWorkspaceId;
310
+ }
222
311
  //# sourceMappingURL=config-schemas.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-schemas.js","sourceRoot":"","sources":["../src/config-schemas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config-schemas.js","sourceRoot":"","sources":["../src/config-schemas.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import type { SDKMessage } from "@anthropic-ai/claude-agent-sdk";
2
2
  import type { Workspace } from "./CyrusAgentSession.js";
3
3
  import type { EdgeConfig, RepositoryConfig } from "./config-schemas.js";
4
4
  import type { Issue } from "./issue-tracker/types.js";
5
- export { type EdgeConfig, type EdgeConfigPayload, EdgeConfigPayloadSchema, EdgeConfigSchema, type RepositoryConfig, type RepositoryConfigPayload, RepositoryConfigPayloadSchema, RepositoryConfigSchema, type RunnerType, RunnerTypeSchema, type UserAccessControlConfig, UserAccessControlConfigSchema, type UserIdentifier, UserIdentifierSchema, } from "./config-schemas.js";
5
+ export { type EdgeConfig, type EdgeConfigPayload, EdgeConfigPayloadSchema, EdgeConfigSchema, type LinearWorkspaceConfig, LinearWorkspaceConfigSchema, migrateEdgeConfig, type RepositoryConfig, type RepositoryConfigPayload, RepositoryConfigPayloadSchema, RepositoryConfigSchema, type RunnerType, RunnerTypeSchema, requireLinearWorkspaceId, type UserAccessControlConfig, UserAccessControlConfigSchema, type UserIdentifier, UserIdentifierSchema, } from "./config-schemas.js";
6
6
  /**
7
7
  * Resolve path with tilde (~) expansion
8
8
  * Expands ~ to the user's home directory and resolves to absolute path
@@ -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,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAGtD,OAAO,EACN,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,uBAAuB,EACvB,gBAAgB,EAChB,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,6BAA6B,EAC7B,sBAAsB,EACtB,KAAK,UAAU,EACf,gBAAgB,EAChB,KAAK,uBAAuB,EAC5B,6BAA6B,EAC7B,KAAK,cAAc,EACnB,oBAAoB,GACpB,MAAM,qBAAqB,CAAC;AAE7B;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKhD;AAED;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAClC,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,KACjB,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB;;;;;;GAMG;AACH,MAAM,WAAW,uBAAuB;IACvC,mEAAmE;IACnE,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,iDAAiD;IACjD,SAAS,EAAE,MAAM,CAAC;IAIlB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,8BAA8B;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,sCAAsC;IACtC,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,yCAAyC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,gFAAgF;IAChF,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,2EAA2E;IAC3E,UAAU,CAAC,EAAE,MAAM,CAAC;IAIpB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;IAI5B,oEAAoE;IACpE,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IAIrB;;;OAGG;IACH,QAAQ,CAAC,EAAE;QACV,8EAA8E;QAC9E,eAAe,CAAC,EAAE,CACjB,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,gBAAgB,KACxB,OAAO,CAAC,SAAS,CAAC,CAAC;QAExB,0FAA0F;QAC1F,eAAe,CAAC,EAAE,CACjB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,UAAU,EACnB,YAAY,EAAE,MAAM,KAChB,IAAI,CAAC;QAEV,0DAA0D;QAC1D,cAAc,CAAC,EAAE,CAChB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,MAAM,KAChB,IAAI,CAAC;QAEV,wDAAwD;QACxD,YAAY,CAAC,EAAE,CACd,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,YAAY,EAAE,MAAM,KAChB,IAAI,CAAC;QAEV,uBAAuB;QACvB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;QAEpD,6CAA6C;QAC7C,eAAe,CAAC,EAAE,oBAAoB,CAAC;KACvC,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,uBAAuB,CAAC"}
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,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAGtD,OAAO,EACN,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,uBAAuB,EACvB,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,2BAA2B,EAC3B,iBAAiB,EACjB,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,6BAA6B,EAC7B,sBAAsB,EACtB,KAAK,UAAU,EACf,gBAAgB,EAChB,wBAAwB,EACxB,KAAK,uBAAuB,EAC5B,6BAA6B,EAC7B,KAAK,cAAc,EACnB,oBAAoB,GACpB,MAAM,qBAAqB,CAAC;AAE7B;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKhD;AAED;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAClC,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,KACjB,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB;;;;;;GAMG;AACH,MAAM,WAAW,uBAAuB;IACvC,mEAAmE;IACnE,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,iDAAiD;IACjD,SAAS,EAAE,MAAM,CAAC;IAIlB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,8BAA8B;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,sCAAsC;IACtC,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,yCAAyC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,gFAAgF;IAChF,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,2EAA2E;IAC3E,UAAU,CAAC,EAAE,MAAM,CAAC;IAIpB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;IAI5B,oEAAoE;IACpE,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IAIrB;;;OAGG;IACH,QAAQ,CAAC,EAAE;QACV,8EAA8E;QAC9E,eAAe,CAAC,EAAE,CACjB,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,gBAAgB,KACxB,OAAO,CAAC,SAAS,CAAC,CAAC;QAExB,0FAA0F;QAC1F,eAAe,CAAC,EAAE,CACjB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,UAAU,EACnB,YAAY,EAAE,MAAM,KAChB,IAAI,CAAC;QAEV,0DAA0D;QAC1D,cAAc,CAAC,EAAE,CAChB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,MAAM,KAChB,IAAI,CAAC;QAEV,wDAAwD;QACxD,YAAY,CAAC,EAAE,CACd,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,YAAY,EAAE,MAAM,KAChB,IAAI,CAAC;QAEV,uBAAuB;QACvB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;QAEpD,6CAA6C;QAC7C,eAAe,CAAC,EAAE,oBAAoB,CAAC;KACvC,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,uBAAuB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { homedir } from "node:os";
2
2
  import { resolve } from "node:path";
3
3
  // Re-export schemas and types from config-schemas
4
- export { EdgeConfigPayloadSchema, EdgeConfigSchema, RepositoryConfigPayloadSchema, RepositoryConfigSchema, RunnerTypeSchema, UserAccessControlConfigSchema, UserIdentifierSchema, } from "./config-schemas.js";
4
+ export { EdgeConfigPayloadSchema, EdgeConfigSchema, LinearWorkspaceConfigSchema, migrateEdgeConfig, RepositoryConfigPayloadSchema, RepositoryConfigSchema, RunnerTypeSchema, requireLinearWorkspaceId, UserAccessControlConfigSchema, UserIdentifierSchema, } from "./config-schemas.js";
5
5
  /**
6
6
  * Resolve path with tilde (~) expansion
7
7
  * Expands ~ to the user's home directory and resolves to absolute path
@@ -1 +1 @@
1
- {"version":3,"file":"config-types.js","sourceRoot":"","sources":["../src/config-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,kDAAkD;AAClD,OAAO,EAGN,uBAAuB,EACvB,gBAAgB,EAGhB,6BAA6B,EAC7B,sBAAsB,EAEtB,gBAAgB,EAEhB,6BAA6B,EAE7B,oBAAoB,GACpB,MAAM,qBAAqB,CAAC;AAE7B;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY;IACvC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,OAAO,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"config-types.js","sourceRoot":"","sources":["../src/config-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,kDAAkD;AAClD,OAAO,EAGN,uBAAuB,EACvB,gBAAgB,EAEhB,2BAA2B,EAC3B,iBAAiB,EAGjB,6BAA6B,EAC7B,sBAAsB,EAEtB,gBAAgB,EAChB,wBAAwB,EAExB,6BAA6B,EAE7B,oBAAoB,GACpB,MAAM,qBAAqB,CAAC;AAE7B;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY;IACvC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,OAAO,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,15 +1,15 @@
1
1
  export type { ILogger, LogContext } from "./logging/index.js";
2
2
  export { createLogger, LogLevel } from "./logging/index.js";
3
3
  export type { AgentMessage, AgentRunnerConfig, AgentSessionInfo, AgentUserMessage, AskUserQuestion, AskUserQuestionAnswers, AskUserQuestionInput, AskUserQuestionOption, AskUserQuestionResult, HookCallbackMatcher, HookEvent, IAgentRunner, IMessageFormatter, McpServerConfig, OnAskUserQuestion, SDKAssistantMessage, SDKAssistantMessageError, SDKMessage, SDKResultMessage, SDKUserMessage, } from "./agent-runner-types.js";
4
- export type { CyrusAgentSession, CyrusAgentSessionEntry, IssueContext, IssueMinimal, Workspace, } from "./CyrusAgentSession.js";
5
- export type { EdgeConfig, EdgeConfigPayload, EdgeWorkerConfig, OAuthCallbackHandler, RepositoryConfig, RepositoryConfigPayload, RunnerType, UserAccessControlConfig, UserIdentifier, } from "./config-types.js";
6
- export { EdgeConfigPayloadSchema, EdgeConfigSchema, RepositoryConfigPayloadSchema, RepositoryConfigSchema, RunnerTypeSchema, resolvePath, UserAccessControlConfigSchema, UserIdentifierSchema, } from "./config-types.js";
4
+ export type { CyrusAgentSession, CyrusAgentSessionEntry, IssueContext, IssueMinimal, RepositoryContext, Workspace, } from "./CyrusAgentSession.js";
5
+ export type { EdgeConfig, EdgeConfigPayload, EdgeWorkerConfig, LinearWorkspaceConfig, OAuthCallbackHandler, RepositoryConfig, RepositoryConfigPayload, RunnerType, UserAccessControlConfig, UserIdentifier, } from "./config-types.js";
6
+ export { EdgeConfigPayloadSchema, EdgeConfigSchema, LinearWorkspaceConfigSchema, migrateEdgeConfig, RepositoryConfigPayloadSchema, RepositoryConfigSchema, RunnerTypeSchema, requireLinearWorkspaceId, resolvePath, UserAccessControlConfigSchema, UserIdentifierSchema, } from "./config-types.js";
7
7
  export { DEFAULT_BASE_BRANCH, DEFAULT_CONFIG_FILENAME, DEFAULT_PROXY_URL, DEFAULT_WORKTREES_DIR, } from "./constants.js";
8
8
  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, IssueUpdateWebhook, IssueWithChildren, Label, PaginationOptions, Team, User, Webhook, WebhookAgentSession, WebhookComment, WebhookIssue, WorkflowState, } from "./issue-tracker/index.js";
9
9
  export { AgentActivityContentType, AgentActivitySignal, AgentSessionStatus, AgentSessionType, CLIEventTransport, CLIIssueTrackerService, CLIRPCServer, isAgentSessionCreatedEvent, isAgentSessionCreatedWebhook, isAgentSessionPromptedEvent, isAgentSessionPromptedWebhook, isCommentMentionEvent, isIssueAssignedEvent, isIssueAssignedWebhook, isIssueCommentMentionWebhook, isIssueNewCommentWebhook, isIssueTitleOrDescriptionUpdateWebhook, isIssueUnassignedEvent, isIssueUnassignedWebhook, isNewCommentEvent, } from "./issue-tracker/index.js";
10
10
  export type { ContentChanges, ContentUpdateMessage, GitHubPlatformRef, GitHubSessionStartPlatformData, GitHubUserPromptPlatformData, GuidanceItem, IMessageTranslator, InternalMessage, InternalMessageBase, LinearContentUpdatePlatformData, LinearPlatformRef, LinearSessionStartPlatformData, LinearStopSignalPlatformData, LinearUnassignPlatformData, LinearUserPromptPlatformData, MessageAction, MessageAuthor, MessageSource, SessionStartMessage, SlackPlatformRef, SlackSessionStartPlatformData, SlackUserPromptPlatformData, StopSignalMessage, TranslationContext, TranslationResult, UnassignMessage, UserPromptMessage, } from "./messages/index.js";
11
11
  export { hasGitHubSessionStartPlatformData, hasGitHubUserPromptPlatformData, hasLinearSessionStartPlatformData, hasLinearUserPromptPlatformData, hasSlackSessionStartPlatformData, hasSlackUserPromptPlatformData, isContentUpdateMessage, isGitHubMessage, isLinearMessage, isSessionStartMessage, isSlackMessage, isStopSignalMessage, isUnassignMessage, isUserPromptMessage, } from "./messages/index.js";
12
- export type { SerializableEdgeWorkerState, SerializedCyrusAgentSession, SerializedCyrusAgentSessionEntry, } from "./PersistenceManager.js";
12
+ export type { SerializableEdgeWorkerState, SerializedCyrusAgentSession, SerializedCyrusAgentSessionEntry, V3SerializableEdgeWorkerState, } from "./PersistenceManager.js";
13
13
  export { PERSISTENCE_VERSION, PersistenceManager, } from "./PersistenceManager.js";
14
14
  export { StreamingPrompt } from "./StreamingPrompt.js";
15
15
  export type { IAgentProgressEvent, ISimpleAgentQueryOptions, ISimpleAgentResult, ISimpleAgentRunner, ISimpleAgentRunnerConfig, } from "./simple-agent-runner-types.js";