@edgedive/cli 0.2.0 → 0.3.0
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/api/client.d.ts +12 -0
- package/dist/api/client.d.ts.map +1 -1
- package/dist/api/client.js +40 -0
- package/dist/api/client.js.map +1 -1
- package/dist/commands/local.d.ts +3 -1
- package/dist/commands/local.d.ts.map +1 -1
- package/dist/commands/local.js +31 -3
- package/dist/commands/local.js.map +1 -1
- package/dist/commands/takeover.d.ts +10 -0
- package/dist/commands/takeover.d.ts.map +1 -0
- package/dist/commands/takeover.js +108 -0
- package/dist/commands/takeover.js.map +1 -0
- package/dist/constants.js +1 -1
- package/dist/constants.js.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/.turbo/turbo-build.log +0 -5
- package/.turbo/turbo-dev.log +0 -8
- package/.turbo/turbo-typecheck.log +0 -4
- package/AGENTS.md +0 -135
- package/CLAUDE.md +0 -3
- package/src/api/client.ts +0 -158
- package/src/auth/oauth-flow.ts +0 -278
- package/src/auth/pkce.ts +0 -27
- package/src/commands/local.ts +0 -245
- package/src/commands/login.ts +0 -48
- package/src/commands/logout.ts +0 -29
- package/src/config/config-manager.ts +0 -120
- package/src/constants.ts +0 -34
- package/src/index.ts +0 -58
- package/src/utils/claude-launcher.ts +0 -94
- package/src/utils/git-utils.ts +0 -179
- package/src/utils/session-downloader.ts +0 -56
- package/tsconfig.json +0 -20
package/dist/api/client.d.ts
CHANGED
|
@@ -22,6 +22,10 @@ export interface TakeoverResponse {
|
|
|
22
22
|
identifier: string;
|
|
23
23
|
url: string;
|
|
24
24
|
};
|
|
25
|
+
asana_task?: {
|
|
26
|
+
gid: string;
|
|
27
|
+
url: string;
|
|
28
|
+
};
|
|
25
29
|
status: string;
|
|
26
30
|
agent_type: string;
|
|
27
31
|
download_urls: {
|
|
@@ -48,6 +52,14 @@ export declare class EdgediveApiClient {
|
|
|
48
52
|
* Get session takeover information by Slack thread URL
|
|
49
53
|
*/
|
|
50
54
|
getTakeoverBySlackThreadUrl(slackThreadUrl: string): Promise<TakeoverResponse>;
|
|
55
|
+
/**
|
|
56
|
+
* Get session takeover information by Asana task URL
|
|
57
|
+
*/
|
|
58
|
+
getTakeoverByAsanaTaskUrl(asanaTaskUrl: string): Promise<TakeoverResponse>;
|
|
59
|
+
/**
|
|
60
|
+
* Get session takeover information by session URL (share link)
|
|
61
|
+
*/
|
|
62
|
+
getTakeoverBySessionUrl(sessionUrl: string): Promise<TakeoverResponse>;
|
|
51
63
|
/**
|
|
52
64
|
* Upload Claude session file for an agent session
|
|
53
65
|
*/
|
package/dist/api/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAG5D,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE;QACV,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,SAAS,EAAE;QACT,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,YAAY,CAAC,EAAE;QACb,EAAE,EAAE,MAAM,CAAC;QACX,UAAU,EAAE,MAAM,CAAC;QACnB,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE;QACb,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,YAAY,CAAkB;gBAE1B,aAAa,EAAE,aAAa;IAoCxC;;OAEG;IACG,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAe5D,2BAA2B,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAiBpF;;OAEG;IACG,2BAA2B,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAiBpF;;OAEG;IACG,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAgBjF"}
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAG5D,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE;QACV,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,SAAS,EAAE;QACT,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,YAAY,CAAC,EAAE;QACb,EAAE,EAAE,MAAM,CAAC;QACX,UAAU,EAAE,MAAM,CAAC;QACnB,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,UAAU,CAAC,EAAE;QACX,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE;QACb,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,YAAY,CAAkB;gBAE1B,aAAa,EAAE,aAAa;IAoCxC;;OAEG;IACG,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAe5D,2BAA2B,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAiBpF;;OAEG;IACG,2BAA2B,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAiBpF;;OAEG;IACG,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAiBhF;;OAEG;IACG,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAiB5E;;OAEG;IACG,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAgBjF"}
|
package/dist/api/client.js
CHANGED
|
@@ -98,6 +98,46 @@ export class EdgediveApiClient {
|
|
|
98
98
|
throw new Error(`API request failed: ${error.message}`);
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
|
+
/**
|
|
102
|
+
* Get session takeover information by Asana task URL
|
|
103
|
+
*/
|
|
104
|
+
async getTakeoverByAsanaTaskUrl(asanaTaskUrl) {
|
|
105
|
+
try {
|
|
106
|
+
const response = await this.client.get(API_CONFIG.TAKEOVER_PATH, {
|
|
107
|
+
params: {
|
|
108
|
+
asana_task_url: asanaTaskUrl,
|
|
109
|
+
},
|
|
110
|
+
});
|
|
111
|
+
return response.data;
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
if (error.response) {
|
|
115
|
+
const errorData = error.response.data;
|
|
116
|
+
throw new Error(errorData?.error || `API request failed: ${error.response.status}`);
|
|
117
|
+
}
|
|
118
|
+
throw new Error(`API request failed: ${error.message}`);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Get session takeover information by session URL (share link)
|
|
123
|
+
*/
|
|
124
|
+
async getTakeoverBySessionUrl(sessionUrl) {
|
|
125
|
+
try {
|
|
126
|
+
const response = await this.client.get(API_CONFIG.TAKEOVER_PATH, {
|
|
127
|
+
params: {
|
|
128
|
+
session_url: sessionUrl,
|
|
129
|
+
},
|
|
130
|
+
});
|
|
131
|
+
return response.data;
|
|
132
|
+
}
|
|
133
|
+
catch (error) {
|
|
134
|
+
if (error.response) {
|
|
135
|
+
const errorData = error.response.data;
|
|
136
|
+
throw new Error(errorData?.error || `API request failed: ${error.response.status}`);
|
|
137
|
+
}
|
|
138
|
+
throw new Error(`API request failed: ${error.message}`);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
101
141
|
/**
|
|
102
142
|
* Upload Claude session file for an agent session
|
|
103
143
|
*/
|
package/dist/api/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAwB,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEvD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/local.d.ts
CHANGED
|
@@ -5,8 +5,10 @@ interface LocalOptions {
|
|
|
5
5
|
prUrl?: string;
|
|
6
6
|
issueUrl?: string;
|
|
7
7
|
threadUrl?: string;
|
|
8
|
+
taskUrl?: string;
|
|
9
|
+
sessionUrl?: string;
|
|
8
10
|
worktree?: boolean;
|
|
9
11
|
}
|
|
10
|
-
export declare function localCommand({ prUrl, issueUrl, threadUrl, worktree, }: LocalOptions): Promise<void>;
|
|
12
|
+
export declare function localCommand({ prUrl, issueUrl, threadUrl, taskUrl, sessionUrl, worktree, }: LocalOptions): Promise<void>;
|
|
11
13
|
export {};
|
|
12
14
|
//# sourceMappingURL=local.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local.d.ts","sourceRoot":"","sources":["../../src/commands/local.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,UAAU,YAAY;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAsB,YAAY,CAAC,EACjC,KAAK,EACL,QAAQ,EACR,SAAS,EACT,QAAQ,GACT,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"local.d.ts","sourceRoot":"","sources":["../../src/commands/local.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,UAAU,YAAY;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAsB,YAAY,CAAC,EACjC,KAAK,EACL,QAAQ,EACR,SAAS,EACT,OAAO,EACP,UAAU,EACV,QAAQ,GACT,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAmN9B"}
|
package/dist/commands/local.js
CHANGED
|
@@ -7,7 +7,7 @@ import { EdgediveApiClient } from '../api/client.js';
|
|
|
7
7
|
import { SessionDownloader } from '../utils/session-downloader.js';
|
|
8
8
|
import { GitUtils } from '../utils/git-utils.js';
|
|
9
9
|
import { launchClaudeSession } from '../utils/claude-launcher.js';
|
|
10
|
-
export async function localCommand({ prUrl, issueUrl, threadUrl, worktree, }) {
|
|
10
|
+
export async function localCommand({ prUrl, issueUrl, threadUrl, taskUrl, sessionUrl, worktree, }) {
|
|
11
11
|
const configManager = new ConfigManager();
|
|
12
12
|
const apiClient = new EdgediveApiClient(configManager);
|
|
13
13
|
const downloader = new SessionDownloader();
|
|
@@ -25,12 +25,14 @@ export async function localCommand({ prUrl, issueUrl, threadUrl, worktree, }) {
|
|
|
25
25
|
console.log(chalk.yellow('Please run: edgedive login\n'));
|
|
26
26
|
process.exit(1);
|
|
27
27
|
}
|
|
28
|
-
if (!prUrl && !issueUrl && !threadUrl) {
|
|
28
|
+
if (!prUrl && !issueUrl && !threadUrl && !taskUrl && !sessionUrl) {
|
|
29
29
|
console.log(chalk.red('❌ Missing session identifier.\n'));
|
|
30
30
|
console.log(chalk.yellow('Provide one of:\n' +
|
|
31
31
|
' --pr-url https://github.com/owner/repo/pull/123\n' +
|
|
32
32
|
' --issue-url https://linear.app/...\n' +
|
|
33
|
-
' --thread-url https://workspace.slack.com/archives/C12345/p1234567890123456\n'
|
|
33
|
+
' --thread-url https://workspace.slack.com/archives/C12345/p1234567890123456\n' +
|
|
34
|
+
' --task-url https://app.asana.com/0/PROJECT_ID/TASK_ID\n' +
|
|
35
|
+
' --session-url https://app.edgedive.com/agent-sessions?session={session_id}\n'));
|
|
34
36
|
process.exit(1);
|
|
35
37
|
}
|
|
36
38
|
let sessionData;
|
|
@@ -51,6 +53,29 @@ export async function localCommand({ prUrl, issueUrl, threadUrl, worktree, }) {
|
|
|
51
53
|
console.log('🔍 Fetching session information...\n');
|
|
52
54
|
sessionData = await apiClient.getTakeoverByLinearIssueUrl(issueUrl);
|
|
53
55
|
}
|
|
56
|
+
else if (taskUrl) {
|
|
57
|
+
// Validate it's an Asana URL — let the server handle detailed format parsing
|
|
58
|
+
const asanaTaskPattern = /^https?:\/\/app\.asana\.com\//;
|
|
59
|
+
if (!asanaTaskPattern.test(taskUrl)) {
|
|
60
|
+
console.log(chalk.red('❌ Invalid Asana task URL. Expected a URL starting with https://app.asana.com/\n'));
|
|
61
|
+
process.exit(1);
|
|
62
|
+
}
|
|
63
|
+
console.log(chalk.dim(`Asana Task URL: ${taskUrl}\n`));
|
|
64
|
+
console.log('🔍 Fetching session information...\n');
|
|
65
|
+
sessionData = await apiClient.getTakeoverByAsanaTaskUrl(taskUrl);
|
|
66
|
+
}
|
|
67
|
+
else if (sessionUrl) {
|
|
68
|
+
// Validate session URL format
|
|
69
|
+
const sessionUrlPattern = /^https?:\/\/[^\/]+\/agent-sessions\?session=([a-f0-9-]+)/i;
|
|
70
|
+
if (!sessionUrlPattern.test(sessionUrl)) {
|
|
71
|
+
console.log(chalk.red('❌ Invalid session URL format.\n'));
|
|
72
|
+
console.log(chalk.yellow('Expected format: https://app.edgedive.com/agent-sessions?session={session_id}\n'));
|
|
73
|
+
process.exit(1);
|
|
74
|
+
}
|
|
75
|
+
console.log(chalk.dim(`Session URL: ${sessionUrl}\n`));
|
|
76
|
+
console.log('🔍 Fetching session information...\n');
|
|
77
|
+
sessionData = await apiClient.getTakeoverBySessionUrl(sessionUrl);
|
|
78
|
+
}
|
|
54
79
|
else {
|
|
55
80
|
// Validate Slack thread URL format
|
|
56
81
|
const slackThreadPattern = /^https?:\/\/[^\/]+\.slack\.com\/archives\/([A-Z0-9]+)\/p(\d{16})/;
|
|
@@ -77,6 +102,9 @@ export async function localCommand({ prUrl, issueUrl, threadUrl, worktree, }) {
|
|
|
77
102
|
console.log(chalk.dim(` Linear Issue: ${sessionData.linear_issue.identifier}`));
|
|
78
103
|
console.log(chalk.dim(` Linear URL: ${sessionData.linear_issue.url}`));
|
|
79
104
|
}
|
|
105
|
+
if (sessionData.asana_task) {
|
|
106
|
+
console.log(chalk.dim(` Asana Task: ${sessionData.asana_task.url}`));
|
|
107
|
+
}
|
|
80
108
|
// Verify current repository matches PR source
|
|
81
109
|
const cwd = process.cwd();
|
|
82
110
|
let repoInfo;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local.js","sourceRoot":"","sources":["../../src/commands/local.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAyB,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"local.js","sourceRoot":"","sources":["../../src/commands/local.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Takeover command - download agent session for local development
|
|
3
|
+
*/
|
|
4
|
+
interface TakeoverOptions {
|
|
5
|
+
prUrl?: string;
|
|
6
|
+
issueUrl?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function takeoverCommand({ prUrl, issueUrl }: TakeoverOptions): Promise<void>;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=takeover.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"takeover.d.ts","sourceRoot":"","sources":["../../src/commands/takeover.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,UAAU,eAAe;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,eAAe,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CA6HzF"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Takeover command - download agent session for local development
|
|
3
|
+
*/
|
|
4
|
+
import chalk from 'chalk';
|
|
5
|
+
import { ConfigManager } from '../config/config-manager.js';
|
|
6
|
+
import { EdgediveApiClient } from '../api/client.js';
|
|
7
|
+
import { SessionDownloader } from '../utils/session-downloader.js';
|
|
8
|
+
import { GitUtils } from '../utils/git-utils.js';
|
|
9
|
+
import { launchClaudeSession } from '../utils/claude-launcher.js';
|
|
10
|
+
export async function takeoverCommand({ prUrl, issueUrl }) {
|
|
11
|
+
const configManager = new ConfigManager();
|
|
12
|
+
const apiClient = new EdgediveApiClient(configManager);
|
|
13
|
+
const downloader = new SessionDownloader();
|
|
14
|
+
try {
|
|
15
|
+
console.log(chalk.bold('\n🔧 Edgedive Session Takeover\n'));
|
|
16
|
+
// Check for Windows platform
|
|
17
|
+
if (process.platform === 'win32') {
|
|
18
|
+
console.log(chalk.red('❌ Windows is not currently supported for the takeover command.\n'));
|
|
19
|
+
console.log(chalk.yellow('Please use macOS or Linux to takeover agent sessions.\n'));
|
|
20
|
+
process.exit(1);
|
|
21
|
+
}
|
|
22
|
+
// Check if authenticated
|
|
23
|
+
if (!(await configManager.isAuthenticated())) {
|
|
24
|
+
console.log(chalk.red('❌ You are not logged in.\n'));
|
|
25
|
+
console.log(chalk.yellow('Please run: edgedive login\n'));
|
|
26
|
+
process.exit(1);
|
|
27
|
+
}
|
|
28
|
+
if (!prUrl && !issueUrl) {
|
|
29
|
+
console.log(chalk.red('❌ Missing takeover identifier.\n'));
|
|
30
|
+
console.log(chalk.yellow('Provide either --pr-url https://github.com/owner/repo/pull/123 or --issue-url https://linear.app/...\n'));
|
|
31
|
+
process.exit(1);
|
|
32
|
+
}
|
|
33
|
+
let takeoverData;
|
|
34
|
+
if (prUrl) {
|
|
35
|
+
// Validate PR URL format
|
|
36
|
+
const prUrlPattern = /^https?:\/\/github\.com\/([^\/]+)\/([^\/]+)\/pull\/(\d+)/;
|
|
37
|
+
if (!prUrlPattern.test(prUrl)) {
|
|
38
|
+
console.log(chalk.red('❌ Invalid PR URL format.\n'));
|
|
39
|
+
console.log(chalk.yellow('Expected format: https://github.com/owner/repo/pull/123\n'));
|
|
40
|
+
process.exit(1);
|
|
41
|
+
}
|
|
42
|
+
console.log(chalk.dim(`PR URL: ${prUrl}\n`));
|
|
43
|
+
console.log('🔍 Fetching session information...\n');
|
|
44
|
+
takeoverData = await apiClient.getTakeoverByPrUrl(prUrl);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
console.log(chalk.dim(`Linear Issue URL: ${issueUrl}\n`));
|
|
48
|
+
console.log('🔍 Fetching session information...\n');
|
|
49
|
+
takeoverData = await apiClient.getTakeoverByLinearIssueUrl(issueUrl);
|
|
50
|
+
}
|
|
51
|
+
console.log(chalk.green('✅ Found agent session!\n'));
|
|
52
|
+
if (takeoverData.github_pr?.url) {
|
|
53
|
+
console.log(chalk.dim(`PR URL: ${takeoverData.github_pr.url}`));
|
|
54
|
+
}
|
|
55
|
+
console.log(chalk.bold('Session Information:'));
|
|
56
|
+
console.log(chalk.dim(` Session ID: ${takeoverData.session_id}`));
|
|
57
|
+
console.log(chalk.dim(` Agent Type: ${takeoverData.agent_type}`));
|
|
58
|
+
console.log(chalk.dim(` Status: ${takeoverData.status}`));
|
|
59
|
+
console.log(chalk.dim(` Repository: ${takeoverData.repository.owner}/${takeoverData.repository.name}`));
|
|
60
|
+
console.log(chalk.dim(` Branch: ${takeoverData.repository.branch}`));
|
|
61
|
+
if (takeoverData.linear_issue) {
|
|
62
|
+
console.log(chalk.dim(` Linear Issue: ${takeoverData.linear_issue.identifier}`));
|
|
63
|
+
console.log(chalk.dim(` Linear URL: ${takeoverData.linear_issue.url}`));
|
|
64
|
+
}
|
|
65
|
+
// Verify current repository matches PR source
|
|
66
|
+
const cwd = process.cwd();
|
|
67
|
+
let repoInfo;
|
|
68
|
+
try {
|
|
69
|
+
repoInfo = await GitUtils.verifyRepoMatches(takeoverData.repository.owner, takeoverData.repository.name, cwd);
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
console.error(chalk.red(`\n❌ ${error.message}\n`));
|
|
73
|
+
console.log(chalk.yellow('Run this command from within the target repository checked out locally.'));
|
|
74
|
+
process.exit(1);
|
|
75
|
+
}
|
|
76
|
+
console.log(chalk.green(`✅ Using repository at ${repoInfo.rootPath}`));
|
|
77
|
+
// Download session files into Claude projects directory
|
|
78
|
+
const { claudeSessionId, claudeSessionPath } = await downloader.downloadSession(takeoverData, repoInfo.rootPath);
|
|
79
|
+
// Ensure PR branch is checked out locally
|
|
80
|
+
try {
|
|
81
|
+
await GitUtils.ensureBranchCheckedOut(takeoverData.repository.branch, repoInfo.rootPath);
|
|
82
|
+
console.log(chalk.green(`✅ Checked out branch ${takeoverData.repository.branch}`));
|
|
83
|
+
}
|
|
84
|
+
catch (error) {
|
|
85
|
+
console.error(chalk.red(`\n❌ Failed to checkout branch ${takeoverData.repository.branch}: ${error.message}\n`));
|
|
86
|
+
console.log(chalk.yellow('Resolve the git issue above and rerun the takeover command.'));
|
|
87
|
+
process.exit(1);
|
|
88
|
+
}
|
|
89
|
+
console.log(chalk.blue(`\n🚀 Launching Claude session ${claudeSessionId}...\n`));
|
|
90
|
+
try {
|
|
91
|
+
await launchClaudeSession(claudeSessionId, repoInfo.rootPath);
|
|
92
|
+
console.log(chalk.green('\n✅ Claude session closed. Happy debugging!\n'));
|
|
93
|
+
}
|
|
94
|
+
catch (error) {
|
|
95
|
+
console.error(chalk.red(`\n❌ Failed to start Claude automatically: ${error.message}\n`));
|
|
96
|
+
console.log(chalk.yellow(`You can resume manually with: claude -r ${claudeSessionId} (from ${repoInfo.rootPath})`));
|
|
97
|
+
process.exit(1);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
catch (error) {
|
|
101
|
+
console.error(chalk.red(`\n❌ Takeover failed: ${error.message}\n`));
|
|
102
|
+
if (error.message.includes('401') || error.message.includes('Unauthorized')) {
|
|
103
|
+
console.log(chalk.yellow('Your session may have expired. Please run: edgedive login\n'));
|
|
104
|
+
}
|
|
105
|
+
process.exit(1);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=takeover.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"takeover.js","sourceRoot":"","sources":["../../src/commands/takeover.ts"],"names":[],"mappings":"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"}
|
package/dist/constants.js
CHANGED
|
@@ -10,7 +10,7 @@ export const OAUTH_CONFIG = {
|
|
|
10
10
|
};
|
|
11
11
|
// API configuration
|
|
12
12
|
export const API_CONFIG = {
|
|
13
|
-
BASE_URL: 'https://api.edgedive.com',
|
|
13
|
+
BASE_URL: process.env.EDGEDIVE_API_URL || 'https://api.edgedive.com',
|
|
14
14
|
AUTHORIZE_PATH: '/api/oauth/authorize',
|
|
15
15
|
TOKEN_PATH: '/api/oauth/token',
|
|
16
16
|
TAKEOVER_PATH: '/api/agents/agent-sessions/takeover',
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AAEvB;;GAEG;AAEH,sBAAsB;AACtB,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,SAAS,EAAE,cAAc;IACzB,YAAY,EAAE,gCAAgC;IAC9C,aAAa,EAAE,IAAI;CACpB,CAAC;AAEF,oBAAoB;AACpB,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,QAAQ,EAAE,0BAA0B;
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AAEvB;;GAEG;AAEH,sBAAsB;AACtB,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,SAAS,EAAE,cAAc;IACzB,YAAY,EAAE,gCAAgC;IAC9C,aAAa,EAAE,IAAI;CACpB,CAAC;AAEF,oBAAoB;AACpB,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,0BAA0B;IACpE,cAAc,EAAE,sBAAsB;IACtC,UAAU,EAAE,kBAAkB;IAC9B,aAAa,EAAE,qCAAqC;CACrD,CAAC;AAEF,sBAAsB;AACtB,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,UAAU,EAAE,WAAW;IACvB,WAAW,EAAE,aAAa;IAC1B,UAAU,EAAE,SAAS;IACrB,mBAAmB,EAAE,UAAU;CAChC,CAAC;AAEF,gBAAgB;AAChB,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,kBAAkB,EAAE,KAAK;IACzB,kBAAkB,EAAE,MAAM,EAAE,2BAA2B;CACxD,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -34,6 +34,8 @@ program
|
|
|
34
34
|
.option('--pr-url <prUrl>', 'GitHub PR URL to load locally')
|
|
35
35
|
.option('--issue-url <issueUrl>', 'Linear issue URL to load locally')
|
|
36
36
|
.option('--thread-url <threadUrl>', 'Slack thread URL to load locally')
|
|
37
|
+
.option('--task-url <taskUrl>', 'Asana task URL to load locally')
|
|
38
|
+
.option('--session-url <sessionUrl>', 'Session share URL to load locally')
|
|
37
39
|
.option('--worktree', 'Create branch in a worktree instead of checking out')
|
|
38
40
|
.action(async (options) => {
|
|
39
41
|
await localCommand(options);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAEvC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAE/C,MAAM,CAAC,MAAM,EAAE,CAAC;AAChB,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,iDAAiD,CAAC;KAC9D,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAEhC,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,sCAAsC,CAAC;KACnD,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,YAAY,EAAE,CAAC;AACvB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,2BAA2B,CAAC;KACxC,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,aAAa,EAAE,CAAC;AACxB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,kCAAkC,CAAC;KAC/C,MAAM,CAAC,kBAAkB,EAAE,+BAA+B,CAAC;KAC3D,MAAM,CAAC,wBAAwB,EAAE,kCAAkC,CAAC;KACpE,MAAM,CAAC,0BAA0B,EAAE,kCAAkC,CAAC;KACtE,MAAM,CAAC,YAAY,EAAE,qDAAqD,CAAC;KAC3E,MAAM,CACL,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAEvC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAE/C,MAAM,CAAC,MAAM,EAAE,CAAC;AAChB,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,iDAAiD,CAAC;KAC9D,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAEhC,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,sCAAsC,CAAC;KACnD,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,YAAY,EAAE,CAAC;AACvB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,2BAA2B,CAAC;KACxC,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,aAAa,EAAE,CAAC;AACxB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,kCAAkC,CAAC;KAC/C,MAAM,CAAC,kBAAkB,EAAE,+BAA+B,CAAC;KAC3D,MAAM,CAAC,wBAAwB,EAAE,kCAAkC,CAAC;KACpE,MAAM,CAAC,0BAA0B,EAAE,kCAAkC,CAAC;KACtE,MAAM,CAAC,sBAAsB,EAAE,gCAAgC,CAAC;KAChE,MAAM,CAAC,4BAA4B,EAAE,mCAAmC,CAAC;KACzE,MAAM,CAAC,YAAY,EAAE,qDAAqD,CAAC;KAC3E,MAAM,CACL,KAAK,EAAE,OAON,EAAE,EAAE;IACH,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC,CACF,CAAC;AAEJ,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
package/package.json
CHANGED
package/.turbo/turbo-build.log
DELETED
package/.turbo/turbo-dev.log
DELETED
package/AGENTS.md
DELETED
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
# Edgedive CLI
|
|
2
|
-
|
|
3
|
-
Command-line tool for working on Edgedive agent sessions locally and continuing development with Claude Code.
|
|
4
|
-
|
|
5
|
-
## Purpose
|
|
6
|
-
|
|
7
|
-
The CLI enables developers to:
|
|
8
|
-
- Authenticate with Edgedive using OAuth
|
|
9
|
-
- Pull down agent sessions from Edgedive
|
|
10
|
-
- Restore Claude Code session files locally
|
|
11
|
-
- Check out PR branches for continued development
|
|
12
|
-
- Resume Claude Code sessions from where the agent left off
|
|
13
|
-
|
|
14
|
-
## Available Commands
|
|
15
|
-
|
|
16
|
-
```bash
|
|
17
|
-
# Authenticate with Edgedive
|
|
18
|
-
dive login --pr-url <github-pr-url>
|
|
19
|
-
dive login --issue-url <linear-issue-url>
|
|
20
|
-
|
|
21
|
-
# Prepare agent session locally
|
|
22
|
-
dive local --pr-url <github-pr-url>
|
|
23
|
-
dive local --issue-url <linear-issue-url>
|
|
24
|
-
|
|
25
|
-
# Remove stored credentials
|
|
26
|
-
dive logout
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
Both `dive` and `edgedive` commands are available.
|
|
30
|
-
|
|
31
|
-
## Development Commands
|
|
32
|
-
|
|
33
|
-
From the monorepo root:
|
|
34
|
-
|
|
35
|
-
```bash
|
|
36
|
-
# Build the CLI
|
|
37
|
-
pnpm --filter edgedive-cli run build
|
|
38
|
-
|
|
39
|
-
# Clean build artifacts
|
|
40
|
-
pnpm --filter edgedive-cli run clean
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
From this directory:
|
|
44
|
-
|
|
45
|
-
```bash
|
|
46
|
-
# Link for local testing
|
|
47
|
-
npm link
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
## Project Structure
|
|
51
|
-
|
|
52
|
-
- `src/` - TypeScript source code
|
|
53
|
-
- `commands/` - Command implementations (login, local, logout)
|
|
54
|
-
- `services/` - OAuth, API client, session management
|
|
55
|
-
- `utils/` - Helper utilities
|
|
56
|
-
- `index.ts` - CLI entry point
|
|
57
|
-
- `dist/` - Compiled JavaScript (gitignored)
|
|
58
|
-
|
|
59
|
-
## Development Guidelines
|
|
60
|
-
|
|
61
|
-
### Authentication
|
|
62
|
-
|
|
63
|
-
The CLI uses OAuth 2.0 with PKCE for secure authentication:
|
|
64
|
-
- Tokens are stored in `~/.edgedive/config.json` with restricted permissions (0600)
|
|
65
|
-
- Tokens are valid for 30 days
|
|
66
|
-
- Uses authorization code flow with PKCE for security
|
|
67
|
-
|
|
68
|
-
### Session Management
|
|
69
|
-
|
|
70
|
-
The `dive local` command:
|
|
71
|
-
1. Validates you're in the correct repository
|
|
72
|
-
2. Fetches session info from Edgedive API
|
|
73
|
-
3. Downloads and restores Claude session file
|
|
74
|
-
4. Checks out the PR branch
|
|
75
|
-
5. Launches Claude CLI with the resumed session
|
|
76
|
-
|
|
77
|
-
### Configuration
|
|
78
|
-
|
|
79
|
-
Configuration is stored in `~/.edgedive/config.json`:
|
|
80
|
-
- OAuth access token
|
|
81
|
-
- Token expiration time
|
|
82
|
-
- OAuth scope
|
|
83
|
-
|
|
84
|
-
### Environment Variables
|
|
85
|
-
|
|
86
|
-
Override defaults with:
|
|
87
|
-
- `EDGEDIVE_API_URL` - API base URL (default: `https://api.edgedive.com`)
|
|
88
|
-
- `EDGEDIVE_CLIENT_ID` - OAuth client ID
|
|
89
|
-
|
|
90
|
-
## Building for Distribution
|
|
91
|
-
|
|
92
|
-
To build the CLI for npm:
|
|
93
|
-
|
|
94
|
-
```bash
|
|
95
|
-
pnpm build
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
This compiles TypeScript to JavaScript in the `dist/` directory.
|
|
99
|
-
|
|
100
|
-
## Testing
|
|
101
|
-
|
|
102
|
-
For local testing:
|
|
103
|
-
|
|
104
|
-
```bash
|
|
105
|
-
# Link the CLI globally
|
|
106
|
-
npm link
|
|
107
|
-
|
|
108
|
-
# Test commands
|
|
109
|
-
dive login --pr-url https://github.com/owner/repo/pull/123
|
|
110
|
-
dive local --pr-url https://github.com/owner/repo/pull/123
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
## Security
|
|
114
|
-
|
|
115
|
-
- OAuth tokens stored with restricted file permissions
|
|
116
|
-
- PKCE prevents authorization code interception
|
|
117
|
-
- Presigned S3 URLs expire after 1 hour
|
|
118
|
-
- Local callback server only accepts localhost connections
|
|
119
|
-
|
|
120
|
-
## Troubleshooting
|
|
121
|
-
|
|
122
|
-
Common issues:
|
|
123
|
-
- **Not logged in**: Run `dive login` first
|
|
124
|
-
- **Session expired**: Tokens expire after 30 days, run `dive login` again
|
|
125
|
-
- **No agent session found**: PR may not be from an Edgedive agent
|
|
126
|
-
- **Failed to download file**: Presigned URLs expire after 1 hour, run command again
|
|
127
|
-
|
|
128
|
-
## Documentation
|
|
129
|
-
|
|
130
|
-
For comprehensive usage documentation, see [README.md](./README.md).
|
|
131
|
-
|
|
132
|
-
## Related Documentation
|
|
133
|
-
|
|
134
|
-
- [edgedive-server](../../apps/edgedive-server/CLAUDE.md) - API backend that CLI connects to
|
|
135
|
-
- [Root monorepo documentation](../../CLAUDE.md) - Monorepo overview
|
package/CLAUDE.md
DELETED