sylas-ai 0.2.21 → 0.2.23

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 (96) hide show
  1. package/LICENSE +21 -0
  2. package/dist/app.js +2 -2
  3. package/dist/app.js.map +1 -1
  4. package/dist/commands/RefreshTokenCommand.js +2 -2
  5. package/dist/commands/RefreshTokenCommand.js.map +1 -1
  6. package/dist/commands/SelfAddRepoCommand.d.ts +1 -0
  7. package/dist/commands/SelfAddRepoCommand.d.ts.map +1 -1
  8. package/dist/commands/SelfAddRepoCommand.js +20 -101
  9. package/dist/commands/SelfAddRepoCommand.js.map +1 -1
  10. package/dist/commands/SelfAuthCommand.d.ts +1 -7
  11. package/dist/commands/SelfAuthCommand.d.ts.map +1 -1
  12. package/dist/commands/SelfAuthCommand.js +9 -142
  13. package/dist/commands/SelfAuthCommand.js.map +1 -1
  14. package/dist/commands/StartCommand.d.ts.map +1 -1
  15. package/dist/commands/StartCommand.js +16 -1
  16. package/dist/commands/StartCommand.js.map +1 -1
  17. package/dist/services/AuthFlowService.d.ts +20 -0
  18. package/dist/services/AuthFlowService.d.ts.map +1 -0
  19. package/dist/{src/commands/SelfAuthCommand.js → services/AuthFlowService.js} +10 -82
  20. package/dist/services/AuthFlowService.js.map +1 -0
  21. package/dist/services/OnboardingService.d.ts +15 -0
  22. package/dist/services/OnboardingService.d.ts.map +1 -0
  23. package/dist/services/OnboardingService.js +111 -0
  24. package/dist/services/OnboardingService.js.map +1 -0
  25. package/dist/services/RepoService.d.ts +33 -0
  26. package/dist/services/RepoService.d.ts.map +1 -0
  27. package/dist/services/RepoService.js +118 -0
  28. package/dist/services/RepoService.js.map +1 -0
  29. package/dist/utils/openUrl.d.ts +7 -0
  30. package/dist/utils/openUrl.d.ts.map +1 -0
  31. package/dist/utils/openUrl.js +33 -0
  32. package/dist/utils/openUrl.js.map +1 -0
  33. package/package.json +12 -11
  34. package/dist/src/Application.d.ts +0 -75
  35. package/dist/src/Application.d.ts.map +0 -1
  36. package/dist/src/Application.js +0 -289
  37. package/dist/src/Application.js.map +0 -1
  38. package/dist/src/app.d.ts +0 -3
  39. package/dist/src/app.d.ts.map +0 -1
  40. package/dist/src/app.js +0 -93
  41. package/dist/src/app.js.map +0 -1
  42. package/dist/src/commands/AuthCommand.d.ts +0 -8
  43. package/dist/src/commands/AuthCommand.d.ts.map +0 -1
  44. package/dist/src/commands/AuthCommand.js +0 -70
  45. package/dist/src/commands/AuthCommand.js.map +0 -1
  46. package/dist/src/commands/CheckTokensCommand.d.ts +0 -8
  47. package/dist/src/commands/CheckTokensCommand.d.ts.map +0 -1
  48. package/dist/src/commands/CheckTokensCommand.js +0 -53
  49. package/dist/src/commands/CheckTokensCommand.js.map +0 -1
  50. package/dist/src/commands/ICommand.d.ts +0 -38
  51. package/dist/src/commands/ICommand.d.ts.map +0 -1
  52. package/dist/src/commands/ICommand.js +0 -37
  53. package/dist/src/commands/ICommand.js.map +0 -1
  54. package/dist/src/commands/RefreshTokenCommand.d.ts +0 -8
  55. package/dist/src/commands/RefreshTokenCommand.d.ts.map +0 -1
  56. package/dist/src/commands/RefreshTokenCommand.js +0 -152
  57. package/dist/src/commands/RefreshTokenCommand.js.map +0 -1
  58. package/dist/src/commands/SelfAddRepoCommand.d.ts +0 -17
  59. package/dist/src/commands/SelfAddRepoCommand.d.ts.map +0 -1
  60. package/dist/src/commands/SelfAddRepoCommand.js +0 -164
  61. package/dist/src/commands/SelfAddRepoCommand.js.map +0 -1
  62. package/dist/src/commands/SelfAuthCommand.d.ts +0 -16
  63. package/dist/src/commands/SelfAuthCommand.d.ts.map +0 -1
  64. package/dist/src/commands/SelfAuthCommand.js.map +0 -1
  65. package/dist/src/commands/StartCommand.d.ts +0 -8
  66. package/dist/src/commands/StartCommand.d.ts.map +0 -1
  67. package/dist/src/commands/StartCommand.js +0 -76
  68. package/dist/src/commands/StartCommand.js.map +0 -1
  69. package/dist/src/config/constants.d.ts +0 -12
  70. package/dist/src/config/constants.d.ts.map +0 -1
  71. package/dist/src/config/constants.js +0 -19
  72. package/dist/src/config/constants.js.map +0 -1
  73. package/dist/src/config/types.d.ts +0 -21
  74. package/dist/src/config/types.d.ts.map +0 -1
  75. package/dist/src/config/types.js +0 -2
  76. package/dist/src/config/types.js.map +0 -1
  77. package/dist/src/services/ConfigService.d.ts +0 -37
  78. package/dist/src/services/ConfigService.d.ts.map +0 -1
  79. package/dist/src/services/ConfigService.js +0 -121
  80. package/dist/src/services/ConfigService.js.map +0 -1
  81. package/dist/src/services/Logger.d.ts +0 -77
  82. package/dist/src/services/Logger.d.ts.map +0 -1
  83. package/dist/src/services/Logger.js +0 -100
  84. package/dist/src/services/Logger.js.map +0 -1
  85. package/dist/src/services/WorkerService.d.ts +0 -59
  86. package/dist/src/services/WorkerService.d.ts.map +0 -1
  87. package/dist/src/services/WorkerService.js +0 -220
  88. package/dist/src/services/WorkerService.js.map +0 -1
  89. package/dist/src/ui/CLIPrompts.d.ts +0 -18
  90. package/dist/src/ui/CLIPrompts.d.ts.map +0 -1
  91. package/dist/src/ui/CLIPrompts.js +0 -53
  92. package/dist/src/ui/CLIPrompts.js.map +0 -1
  93. package/dist/vitest.config.d.ts +0 -3
  94. package/dist/vitest.config.d.ts.map +0 -1
  95. package/dist/vitest.config.js +0 -13
  96. package/dist/vitest.config.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"ICommand.js","sourceRoot":"","sources":["../../../src/commands/ICommand.ts"],"names":[],"mappings":"AAcA;;GAEG;AACH,MAAM,OAAgB,WAAW;IAGV;IAFZ,MAAM,CAAS;IAEzB,YAAsB,GAAgB;QAAhB,QAAG,GAAH,GAAG,CAAa;QACrC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IAC1B,CAAC;IAID;;OAEG;IACO,aAAa,CAAC,OAAe,EAAE,IAAI,GAAG,CAAC;QAChD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IAED;;OAEG;IACO,UAAU,CAAC,OAAe;QACnC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACO,QAAQ,CAAC,OAAe;QACjC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAED;;OAEG;IACO,UAAU;QACnB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACzB,CAAC;CACD"}
@@ -1,8 +0,0 @@
1
- import { BaseCommand } from "./ICommand.js";
2
- /**
3
- * Refresh token command - refresh a specific Linear token
4
- */
5
- export declare class RefreshTokenCommand extends BaseCommand {
6
- execute(_args: string[]): Promise<void>;
7
- }
8
- //# sourceMappingURL=RefreshTokenCommand.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RefreshTokenCommand.d.ts","sourceRoot":"","sources":["../../../src/commands/RefreshTokenCommand.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAmC5C;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,WAAW;IAC7C,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAwJ7C"}
@@ -1,152 +0,0 @@
1
- import http from "node:http";
2
- import open from "open";
3
- import { CLIPrompts } from "../ui/CLIPrompts.js";
4
- import { BaseCommand } from "./ICommand.js";
5
- /**
6
- * Helper function to check Linear token status
7
- */
8
- async function checkLinearToken(token) {
9
- try {
10
- const response = await fetch("https://api.linear.app/graphql", {
11
- method: "POST",
12
- headers: {
13
- "Content-Type": "application/json",
14
- Authorization: token,
15
- },
16
- body: JSON.stringify({
17
- query: "{ viewer { id email name } }",
18
- }),
19
- });
20
- const data = (await response.json());
21
- if (data.errors) {
22
- return {
23
- valid: false,
24
- error: data.errors[0]?.message || "Unknown error",
25
- };
26
- }
27
- return { valid: true };
28
- }
29
- catch (error) {
30
- return { valid: false, error: error.message };
31
- }
32
- }
33
- /**
34
- * Refresh token command - refresh a specific Linear token
35
- */
36
- export class RefreshTokenCommand extends BaseCommand {
37
- async execute(_args) {
38
- if (!this.app.config.exists()) {
39
- this.logError("No edge configuration found. Please run setup first.");
40
- process.exit(1);
41
- }
42
- const config = this.app.config.load();
43
- // Show repositories with their token status
44
- console.log("Checking current token status...\n");
45
- const tokenStatuses = [];
46
- for (const repo of config.repositories) {
47
- const result = await checkLinearToken(repo.linearToken);
48
- tokenStatuses.push({ repo, valid: result.valid });
49
- console.log(`${tokenStatuses.length}. ${repo.name} (${repo.linearWorkspaceName}): ${result.valid ? "āœ… Valid" : "āŒ Invalid"}`);
50
- }
51
- // Ask which token to refresh
52
- const answer = await CLIPrompts.ask('\nWhich repository token would you like to refresh? (Enter number or "all"): ');
53
- const indicesToRefresh = [];
54
- if (answer.toLowerCase() === "all") {
55
- indicesToRefresh.push(...Array.from({ length: tokenStatuses.length }, (_, i) => i));
56
- }
57
- else {
58
- const index = parseInt(answer, 10) - 1;
59
- if (Number.isNaN(index) || index < 0 || index >= tokenStatuses.length) {
60
- this.logError("Invalid selection");
61
- process.exit(1);
62
- }
63
- indicesToRefresh.push(index);
64
- }
65
- // Refresh tokens
66
- for (const index of indicesToRefresh) {
67
- const tokenStatus = tokenStatuses[index];
68
- if (!tokenStatus)
69
- continue;
70
- const { repo } = tokenStatus;
71
- console.log(`\nRefreshing token for ${repo.name} (${repo.linearWorkspaceName || repo.linearWorkspaceId})...`);
72
- console.log("Opening Linear OAuth flow in your browser...");
73
- // Use the proxy's OAuth flow with a callback to localhost
74
- const serverPort = process.env.SYLAS_SERVER_PORT
75
- ? parseInt(process.env.SYLAS_SERVER_PORT, 10)
76
- : 3456;
77
- const callbackUrl = `http://localhost:${serverPort}/callback`;
78
- const proxyUrl = this.app.getProxyUrl();
79
- const oauthUrl = `${proxyUrl}/oauth/authorize?callback=${encodeURIComponent(callbackUrl)}`;
80
- console.log(`\nPlease complete the OAuth flow in your browser.`);
81
- console.log(`If the browser doesn't open automatically, visit:\n${oauthUrl}\n`);
82
- // Start a temporary server to receive the OAuth callback
83
- let tokenReceived = null;
84
- const server = await new Promise((resolve) => {
85
- const s = http.createServer((req, res) => {
86
- if (req.url?.startsWith("/callback")) {
87
- const url = new URL(req.url, `http://localhost:${serverPort}`);
88
- tokenReceived = url.searchParams.get("token");
89
- res.writeHead(200, { "Content-Type": "text/html; charset=utf-8" });
90
- res.end(`
91
- <html>
92
- <head>
93
- <meta charset="UTF-8">
94
- </head>
95
- <body style="font-family: system-ui; padding: 40px; text-align: center;">
96
- <h2>āœ… Authorization successful!</h2>
97
- <p>You can close this window and return to your terminal.</p>
98
- <script>setTimeout(() => window.close(), 2000);</script>
99
- </body>
100
- </html>
101
- `);
102
- }
103
- else {
104
- res.writeHead(404);
105
- res.end("Not found");
106
- }
107
- });
108
- s.listen(serverPort, () => {
109
- console.log("Waiting for OAuth callback...");
110
- resolve(s);
111
- });
112
- });
113
- await open(oauthUrl);
114
- // Wait for the token with timeout
115
- const startTime = Date.now();
116
- while (!tokenReceived && Date.now() - startTime < 120000) {
117
- await new Promise((resolve) => setTimeout(resolve, 100));
118
- }
119
- server.close();
120
- const newToken = tokenReceived;
121
- if (!newToken || !newToken.startsWith("lin_oauth_")) {
122
- this.logError("Invalid token received from OAuth flow");
123
- continue;
124
- }
125
- // Verify the new token
126
- const verifyResult = await checkLinearToken(newToken);
127
- if (!verifyResult.valid) {
128
- this.logError(`New token is invalid: ${verifyResult.error}`);
129
- continue;
130
- }
131
- // Update the config - update ALL repositories that had the same old token
132
- const oldToken = repo.linearToken;
133
- let updatedCount = 0;
134
- this.app.config.update((cfg) => {
135
- for (let i = 0; i < cfg.repositories.length; i++) {
136
- const currentRepo = cfg.repositories[i];
137
- if (currentRepo && currentRepo.linearToken === oldToken) {
138
- currentRepo.linearToken = newToken;
139
- updatedCount++;
140
- this.logSuccess(`Updated token for ${currentRepo.name}`);
141
- }
142
- }
143
- return cfg;
144
- });
145
- if (updatedCount > 1) {
146
- console.log(`\nšŸ“ Updated ${updatedCount} repositories that shared the same token`);
147
- }
148
- }
149
- this.logSuccess("Configuration saved");
150
- }
151
- }
152
- //# sourceMappingURL=RefreshTokenCommand.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RefreshTokenCommand.js","sourceRoot":"","sources":["../../../src/commands/RefreshTokenCommand.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- import { BaseCommand } from "./ICommand.js";
2
- /**
3
- * Self-add-repo command - clones a repo and adds it to config.json
4
- *
5
- * Usage:
6
- * sylas self-add-repo # prompts for everything
7
- * sylas self-add-repo <url> # prompts for workspace if multiple
8
- * sylas self-add-repo <url> <workspace> # no prompts
9
- */
10
- export declare class SelfAddRepoCommand extends BaseCommand {
11
- private rl;
12
- private getReadline;
13
- private prompt;
14
- private cleanup;
15
- execute(args: string[]): Promise<void>;
16
- }
17
- //# sourceMappingURL=SelfAddRepoCommand.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SelfAddRepoCommand.d.ts","sourceRoot":"","sources":["../../../src/commands/SelfAddRepoCommand.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAY5C;;;;;;;GAOG;AACH,qBAAa,kBAAmB,SAAQ,WAAW;IAClD,OAAO,CAAC,EAAE,CAAmC;IAE7C,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,MAAM;IAMd,OAAO,CAAC,OAAO;IAOT,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAkJ5C"}
@@ -1,164 +0,0 @@
1
- import { execSync } from "node:child_process";
2
- import { randomUUID } from "node:crypto";
3
- import { existsSync, readFileSync, writeFileSync } from "node:fs";
4
- import { resolve } from "node:path";
5
- import * as readline from "node:readline";
6
- import { DEFAULT_BASE_BRANCH, DEFAULT_CONFIG_FILENAME, DEFAULT_WORKTREES_DIR, } from "sylas-core";
7
- import { BaseCommand } from "./ICommand.js";
8
- /**
9
- * Self-add-repo command - clones a repo and adds it to config.json
10
- *
11
- * Usage:
12
- * sylas self-add-repo # prompts for everything
13
- * sylas self-add-repo <url> # prompts for workspace if multiple
14
- * sylas self-add-repo <url> <workspace> # no prompts
15
- */
16
- export class SelfAddRepoCommand extends BaseCommand {
17
- rl = null;
18
- getReadline() {
19
- if (!this.rl) {
20
- this.rl = readline.createInterface({
21
- input: process.stdin,
22
- output: process.stdout,
23
- });
24
- }
25
- return this.rl;
26
- }
27
- prompt(question) {
28
- return new Promise((resolve) => {
29
- this.getReadline().question(question, (answer) => resolve(answer.trim()));
30
- });
31
- }
32
- cleanup() {
33
- if (this.rl) {
34
- this.rl.close();
35
- this.rl = null;
36
- }
37
- }
38
- async execute(args) {
39
- let url = args[0];
40
- const workspaceName = args[1];
41
- try {
42
- // Load config
43
- const configPath = resolve(this.app.sylasHome, DEFAULT_CONFIG_FILENAME);
44
- let config;
45
- try {
46
- config = JSON.parse(readFileSync(configPath, "utf-8"));
47
- }
48
- catch {
49
- this.logError(`Config file not found: ${configPath}`);
50
- process.exit(1);
51
- }
52
- if (!config.repositories) {
53
- config.repositories = [];
54
- }
55
- // Get URL if not provided
56
- if (!url) {
57
- url = await this.prompt("Repository URL: ");
58
- if (!url) {
59
- this.logError("URL is required");
60
- process.exit(1);
61
- }
62
- }
63
- // Extract repo name from URL
64
- const repoName = url
65
- .split("/")
66
- .pop()
67
- ?.replace(/\.git$/, "");
68
- if (!repoName) {
69
- this.logError("Could not extract repo name from URL");
70
- process.exit(1);
71
- }
72
- // Check for duplicate
73
- if (config.repositories.some((r) => r.name === repoName)) {
74
- this.logError(`Repository '${repoName}' already exists in config`);
75
- process.exit(1);
76
- }
77
- // Find workspaces with Linear credentials
78
- const workspaces = new Map();
79
- for (const repo of config.repositories) {
80
- if (repo.linearWorkspaceId &&
81
- repo.linearToken &&
82
- !workspaces.has(repo.linearWorkspaceId)) {
83
- workspaces.set(repo.linearWorkspaceId, {
84
- id: repo.linearWorkspaceId,
85
- name: repo.linearWorkspaceName || repo.linearWorkspaceId,
86
- token: repo.linearToken,
87
- refreshToken: repo.linearRefreshToken,
88
- });
89
- }
90
- }
91
- if (workspaces.size === 0) {
92
- this.logError("No Linear credentials found. Run 'sylas self-auth' first.");
93
- process.exit(1);
94
- }
95
- // Get workspace
96
- let selectedWorkspace;
97
- const workspaceList = Array.from(workspaces.values());
98
- if (workspaceList.length === 1) {
99
- // Safe: we checked length === 1 above
100
- selectedWorkspace = workspaceList[0];
101
- }
102
- else if (workspaceName) {
103
- const foundWorkspace = workspaceList.find((w) => w.name === workspaceName);
104
- if (!foundWorkspace) {
105
- this.logError(`Workspace '${workspaceName}' not found`);
106
- process.exit(1);
107
- }
108
- selectedWorkspace = foundWorkspace;
109
- }
110
- else {
111
- console.log("\nAvailable workspaces:");
112
- workspaceList.forEach((w, i) => {
113
- console.log(` ${i + 1}. ${w.name}`);
114
- });
115
- const choice = await this.prompt(`Select workspace [1-${workspaceList.length}]: `);
116
- const idx = parseInt(choice, 10) - 1;
117
- if (idx < 0 || idx >= workspaceList.length) {
118
- this.logError("Invalid selection");
119
- process.exit(1);
120
- }
121
- // Safe: we validated idx is within bounds above
122
- selectedWorkspace = workspaceList[idx];
123
- }
124
- // Clone the repo
125
- const repositoryPath = resolve(this.app.sylasHome, "repos", repoName);
126
- if (existsSync(repositoryPath)) {
127
- console.log(`Repository already exists at ${repositoryPath}`);
128
- }
129
- else {
130
- console.log(`Cloning ${url}...`);
131
- try {
132
- execSync(`git clone ${url} ${repositoryPath}`, { stdio: "inherit" });
133
- }
134
- catch {
135
- this.logError("Failed to clone repository");
136
- process.exit(1);
137
- }
138
- }
139
- // Generate UUID and add to config
140
- const id = randomUUID();
141
- config.repositories.push({
142
- id,
143
- name: repoName,
144
- repositoryPath,
145
- baseBranch: DEFAULT_BASE_BRANCH,
146
- workspaceBaseDir: resolve(this.app.sylasHome, DEFAULT_WORKTREES_DIR),
147
- linearWorkspaceId: selectedWorkspace.id,
148
- linearWorkspaceName: selectedWorkspace.name,
149
- linearToken: selectedWorkspace.token,
150
- linearRefreshToken: selectedWorkspace.refreshToken,
151
- isActive: true,
152
- });
153
- writeFileSync(configPath, JSON.stringify(config, null, "\t"), "utf-8");
154
- console.log(`\nAdded: ${repoName}`);
155
- console.log(` ID: ${id}`);
156
- console.log(` Workspace: ${selectedWorkspace.name}`);
157
- process.exit(0);
158
- }
159
- finally {
160
- this.cleanup();
161
- }
162
- }
163
- }
164
- //# sourceMappingURL=SelfAddRepoCommand.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SelfAddRepoCommand.js","sourceRoot":"","sources":["../../../src/commands/SelfAddRepoCommand.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- import { BaseCommand } from "./ICommand.js";
2
- /**
3
- * Self-auth command - authenticate with Linear OAuth directly from CLI
4
- * Handles the complete OAuth flow without requiring EdgeWorker
5
- */
6
- export declare class SelfAuthCommand extends BaseCommand {
7
- private server;
8
- private callbackPort;
9
- execute(_args: string[]): Promise<void>;
10
- private waitForCallback;
11
- private exchangeCodeForTokens;
12
- private fetchWorkspaceInfo;
13
- private overwriteRepoConfigTokens;
14
- private cleanup;
15
- }
16
- //# sourceMappingURL=SelfAuthCommand.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SelfAuthCommand.d.ts","sourceRoot":"","sources":["../../../src/commands/SelfAuthCommand.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,WAAW;IAC/C,OAAO,CAAC,MAAM,CAAgC;IAC9C,OAAO,CAAC,YAAY,CAAyD;IAEvE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;YAmF/B,eAAe;YAiFf,qBAAqB;YA2CrB,kBAAkB;IAchC,OAAO,CAAC,yBAAyB;YAuBnB,OAAO;CAMrB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"SelfAuthCommand.js","sourceRoot":"","sources":["../../../src/commands/SelfAuthCommand.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import { BaseCommand } from "./ICommand.js";
2
- /**
3
- * Start command - main entry point for starting the edge worker
4
- */
5
- export declare class StartCommand extends BaseCommand {
6
- execute(_args: string[]): Promise<void>;
7
- }
8
- //# sourceMappingURL=StartCommand.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StartCommand.d.ts","sourceRoot":"","sources":["../../../src/commands/StartCommand.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C;;GAEG;AACH,qBAAa,YAAa,SAAQ,WAAW;IACtC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAsF7C"}
@@ -1,76 +0,0 @@
1
- import { getSylasAppUrl } from "sylas-cloudflare-tunnel-client";
2
- import { BaseCommand } from "./ICommand.js";
3
- /**
4
- * Start command - main entry point for starting the edge worker
5
- */
6
- export class StartCommand extends BaseCommand {
7
- async execute(_args) {
8
- try {
9
- // Load edge configuration
10
- const edgeConfig = this.app.config.load();
11
- const repositories = edgeConfig.repositories || [];
12
- // Check if we're in setup waiting mode (no repositories + SYLAS_SETUP_PENDING flag)
13
- if (repositories.length === 0 &&
14
- process.env.SYLAS_SETUP_PENDING === "true") {
15
- // Enable setup waiting mode and start config watcher
16
- this.app.enableSetupWaitingMode();
17
- // Start setup waiting mode - server only, no EdgeWorker
18
- await this.app.worker.startSetupWaitingMode();
19
- // Setup signal handlers for graceful shutdown
20
- this.app.setupSignalHandlers();
21
- // Keep process alive and wait for configuration
22
- return;
23
- }
24
- // Check if we're in idle mode (no repositories, post-onboarding)
25
- if (repositories.length === 0) {
26
- // Enable idle mode and start config watcher
27
- this.app.enableIdleMode();
28
- // Start idle mode - server infrastructure only, no EdgeWorker
29
- await this.app.worker.startIdleMode();
30
- // Setup signal handlers for graceful shutdown
31
- this.app.setupSignalHandlers();
32
- // Keep process alive and wait for configuration
33
- return;
34
- }
35
- // Start the edge worker (SharedApplicationServer will start Cloudflare tunnel if CLOUDFLARE_TOKEN is set)
36
- await this.app.worker.startEdgeWorker({
37
- repositories,
38
- });
39
- // Display server information
40
- const serverPort = this.app.worker.getServerPort();
41
- this.logger.raw("");
42
- this.logger.divider(70);
43
- this.logger.success("Edge worker started successfully");
44
- this.logger.info(`šŸ“Œ Version: ${this.app.version}`);
45
- this.logger.info(`šŸ”— Server running on port ${serverPort}`);
46
- if (process.env.CLOUDFLARE_TOKEN) {
47
- this.logger.info("šŸŒ©ļø Cloudflare tunnel: Active");
48
- }
49
- this.logger.info(`\nšŸ“¦ Managing ${repositories.length} repositories:`);
50
- repositories.forEach((repo) => {
51
- this.logger.info(` • ${repo.name} (${repo.repositoryPath})`);
52
- });
53
- this.logger.divider(70);
54
- // Setup signal handlers for graceful shutdown
55
- this.app.setupSignalHandlers();
56
- }
57
- catch (error) {
58
- this.logger.error(`Failed to start edge application: ${error.message}`);
59
- // Provide helpful error guidance
60
- if (error.message?.includes("CLOUDFLARE_TOKEN")) {
61
- this.logger.info("\nšŸ’” Cloudflare tunnel requires:");
62
- this.logger.info(" - CLOUDFLARE_TOKEN environment variable");
63
- this.logger.info(` - Get your token from: ${getSylasAppUrl()}/onboarding`);
64
- }
65
- else if (error.message?.includes("Failed to connect")) {
66
- this.logger.info("\nšŸ’” Connection issues can occur when:");
67
- this.logger.info(" - Linear OAuth tokens have expired");
68
- this.logger.info(" - The Linear API is temporarily unavailable");
69
- this.logger.info(" - Your network connection is having issues");
70
- }
71
- await this.app.shutdown();
72
- process.exit(1);
73
- }
74
- }
75
- }
76
- //# sourceMappingURL=StartCommand.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StartCommand.js","sourceRoot":"","sources":["../../../src/commands/StartCommand.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- /**
2
- * Application constants
3
- */
4
- /**
5
- * Default server port for OAuth callbacks and webhooks
6
- */
7
- export declare const DEFAULT_SERVER_PORT = 3456;
8
- /**
9
- * Parse a port number from string with validation
10
- */
11
- export declare function parsePort(value: string | undefined, defaultPort: number): number;
12
- //# sourceMappingURL=constants.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/config/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC;;GAEG;AACH,wBAAgB,SAAS,CACxB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,WAAW,EAAE,MAAM,GACjB,MAAM,CAMR"}
@@ -1,19 +0,0 @@
1
- /**
2
- * Application constants
3
- */
4
- /**
5
- * Default server port for OAuth callbacks and webhooks
6
- */
7
- export const DEFAULT_SERVER_PORT = 3456;
8
- /**
9
- * Parse a port number from string with validation
10
- */
11
- export function parsePort(value, defaultPort) {
12
- if (!value)
13
- return defaultPort;
14
- const parsed = parseInt(value, 10);
15
- return Number.isNaN(parsed) || parsed < 1 || parsed > 65535
16
- ? defaultPort
17
- : parsed;
18
- }
19
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/config/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC;AAExC;;GAEG;AACH,MAAM,UAAU,SAAS,CACxB,KAAyB,EACzB,WAAmB;IAEnB,IAAI,CAAC,KAAK;QAAE,OAAO,WAAW,CAAC;IAC/B,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnC,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,GAAG,KAAK;QAC1D,CAAC,CAAC,WAAW;QACb,CAAC,CAAC,MAAM,CAAC;AACX,CAAC"}
@@ -1,21 +0,0 @@
1
- import type { EdgeConfig } from "sylas-core";
2
- /**
3
- * Linear credentials obtained from OAuth flow
4
- */
5
- export interface LinearCredentials {
6
- linearToken: string;
7
- linearWorkspaceId: string;
8
- linearWorkspaceName: string;
9
- }
10
- /**
11
- * Workspace information for issue processing
12
- */
13
- export interface Workspace {
14
- path: string;
15
- isGitWorktree: boolean;
16
- }
17
- /**
18
- * Re-export EdgeConfig from sylas-core for convenience
19
- */
20
- export type { EdgeConfig };
21
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/config/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C;;GAEG;AACH,MAAM,WAAW,iBAAiB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,YAAY,EAAE,UAAU,EAAE,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/config/types.ts"],"names":[],"mappings":""}
@@ -1,37 +0,0 @@
1
- import type { EdgeConfig } from "../config/types.js";
2
- import type { Logger } from "./Logger.js";
3
- /**
4
- * Service responsible for configuration management
5
- * Handles loading, saving, and validation of edge configuration
6
- */
7
- export declare class ConfigService {
8
- private logger;
9
- private configPath;
10
- constructor(sylasHome: string, logger: Logger);
11
- /**
12
- * Get the configuration file path
13
- */
14
- getConfigPath(): string;
15
- /**
16
- * Load edge configuration from disk
17
- */
18
- load(): EdgeConfig;
19
- /**
20
- * Run migrations on config to ensure it's up to date
21
- * Persists changes to disk if any migrations were applied
22
- */
23
- private migrateConfig;
24
- /**
25
- * Save edge configuration to disk
26
- */
27
- save(config: EdgeConfig): void;
28
- /**
29
- * Update a specific field in the configuration
30
- */
31
- update(updater: (config: EdgeConfig) => EdgeConfig): void;
32
- /**
33
- * Check if configuration exists
34
- */
35
- exists(): boolean;
36
- }
37
- //# sourceMappingURL=ConfigService.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ConfigService.d.ts","sourceRoot":"","sources":["../../../src/services/ConfigService.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C;;;GAGG;AACH,qBAAa,aAAa;IAKxB,OAAO,CAAC,MAAM;IAJf,OAAO,CAAC,UAAU,CAAS;gBAG1B,SAAS,EAAE,MAAM,EACT,MAAM,EAAE,MAAM;IAKvB;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACH,IAAI,IAAI,UAAU;IAmClB;;;OAGG;IACH,OAAO,CAAC,aAAa;IAuDrB;;OAEG;IACH,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAW9B;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,UAAU,GAAG,IAAI;IAMzD;;OAEG;IACH,MAAM,IAAI,OAAO;CAGjB"}