@junctionpanel/cli 0.1.86 → 0.1.87
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/commands/worktree/archive.d.ts +6 -1
- package/dist/commands/worktree/archive.d.ts.map +1 -1
- package/dist/commands/worktree/archive.js +27 -5
- package/dist/commands/worktree/archive.js.map +1 -1
- package/dist/commands/worktree/index.d.ts.map +1 -1
- package/dist/commands/worktree/index.js +1 -0
- package/dist/commands/worktree/index.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Command } from 'commander';
|
|
2
|
-
import type { CommandOptions, SingleResult, OutputSchema } from '../../output/index.js';
|
|
2
|
+
import type { CommandOptions, SingleResult, OutputSchema, CommandError } from '../../output/index.js';
|
|
3
3
|
/** Result type for worktree archive command */
|
|
4
4
|
export interface WorktreeArchiveResult {
|
|
5
5
|
name: string;
|
|
@@ -9,8 +9,13 @@ export interface WorktreeArchiveResult {
|
|
|
9
9
|
/** Schema for archive command output */
|
|
10
10
|
export declare const archiveSchema: OutputSchema<WorktreeArchiveResult>;
|
|
11
11
|
export interface WorktreeArchiveOptions extends CommandOptions {
|
|
12
|
+
discardDirty?: boolean;
|
|
12
13
|
host?: string;
|
|
13
14
|
}
|
|
14
15
|
export type WorktreeArchiveCommandResult = SingleResult<WorktreeArchiveResult>;
|
|
16
|
+
export declare function toWorktreeArchiveCommandError(error: {
|
|
17
|
+
code?: string | null;
|
|
18
|
+
message: string;
|
|
19
|
+
} | null | undefined): CommandError;
|
|
15
20
|
export declare function runArchiveCommand(nameArg: string, options: WorktreeArchiveOptions, _command: Command): Promise<WorktreeArchiveCommandResult>;
|
|
16
21
|
//# sourceMappingURL=archive.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archive.d.ts","sourceRoot":"","sources":["../../../src/commands/worktree/archive.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAExC,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"archive.d.ts","sourceRoot":"","sources":["../../../src/commands/worktree/archive.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAExC,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAErG,+CAA+C;AAC/C,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,UAAU,CAAA;IAClB,cAAc,EAAE,MAAM,EAAE,CAAA;CACzB;AAID,wCAAwC;AACxC,eAAO,MAAM,aAAa,EAAE,YAAY,CAAC,qBAAqB,CAU7D,CAAA;AAED,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC5D,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,MAAM,4BAA4B,GAAG,YAAY,CAAC,qBAAqB,CAAC,CAAA;AAE9E,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,GAClE,YAAY,CAad;AAED,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,sBAAsB,EAC/B,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,4BAA4B,CAAC,CAyGvC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { connectToDaemon, getDaemonHost } from '../../utils/client.js';
|
|
2
|
+
const DIRTY_WORKTREE_CONFIRMATION_REQUIRED = 'dirty_worktree_confirmation_required';
|
|
2
3
|
/** Schema for archive command output */
|
|
3
4
|
export const archiveSchema = {
|
|
4
5
|
idField: 'name',
|
|
@@ -11,6 +12,19 @@ export const archiveSchema = {
|
|
|
11
12
|
},
|
|
12
13
|
],
|
|
13
14
|
};
|
|
15
|
+
export function toWorktreeArchiveCommandError(error) {
|
|
16
|
+
if (error?.code === DIRTY_WORKTREE_CONFIRMATION_REQUIRED) {
|
|
17
|
+
return {
|
|
18
|
+
code: 'DIRTY_WORKTREE_CONFIRMATION_REQUIRED',
|
|
19
|
+
message: 'Archiving this worktree would discard uncommitted or untracked files.',
|
|
20
|
+
details: 'Re-run with --discard-dirty to archive anyway and lose those local files.',
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
return {
|
|
24
|
+
code: 'WORKTREE_ARCHIVE_FAILED',
|
|
25
|
+
message: `Failed to archive worktree: ${error?.message ?? 'Unknown error'}`,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
14
28
|
export async function runArchiveCommand(nameArg, options, _command) {
|
|
15
29
|
const host = getDaemonHost({ host: options.host });
|
|
16
30
|
// Validate arguments
|
|
@@ -61,14 +75,11 @@ export async function runArchiveCommand(nameArg, options, _command) {
|
|
|
61
75
|
// Archive the worktree
|
|
62
76
|
const response = await client.archiveJunctionWorktree({
|
|
63
77
|
worktreePath: worktree.worktreePath,
|
|
78
|
+
dirtyWorktreeBehavior: options.discardDirty ? 'discard' : 'reject',
|
|
64
79
|
});
|
|
65
80
|
await client.close();
|
|
66
81
|
if (response.error) {
|
|
67
|
-
|
|
68
|
-
code: 'WORKTREE_ARCHIVE_FAILED',
|
|
69
|
-
message: `Failed to archive worktree: ${response.error.message}`,
|
|
70
|
-
};
|
|
71
|
-
throw error;
|
|
82
|
+
throw toWorktreeArchiveCommandError(response.error);
|
|
72
83
|
}
|
|
73
84
|
const worktreeName = worktree.worktreePath.split('/').pop() ?? nameArg;
|
|
74
85
|
return {
|
|
@@ -83,6 +94,17 @@ export async function runArchiveCommand(nameArg, options, _command) {
|
|
|
83
94
|
}
|
|
84
95
|
catch (err) {
|
|
85
96
|
await client.close().catch(() => { });
|
|
97
|
+
const daemonCode = err && typeof err === 'object' && 'code' in err && typeof err.code === 'string'
|
|
98
|
+
? err.code
|
|
99
|
+
: null;
|
|
100
|
+
if (daemonCode === DIRTY_WORKTREE_CONFIRMATION_REQUIRED) {
|
|
101
|
+
throw toWorktreeArchiveCommandError({
|
|
102
|
+
code: daemonCode,
|
|
103
|
+
message: err instanceof Error
|
|
104
|
+
? err.message
|
|
105
|
+
: 'Archiving this worktree would discard uncommitted or untracked files.',
|
|
106
|
+
});
|
|
107
|
+
}
|
|
86
108
|
// Re-throw CommandError as-is
|
|
87
109
|
if (err && typeof err === 'object' && 'code' in err) {
|
|
88
110
|
throw err;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archive.js","sourceRoot":"","sources":["../../../src/commands/worktree/archive.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAUtE,wCAAwC;AACxC,MAAM,CAAC,MAAM,aAAa,GAAwC;IAChE,OAAO,EAAE,MAAM;IACf,OAAO,EAAE;QACP,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;QACjC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;QACrC;YACE,MAAM,EAAE,iBAAiB;YACzB,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG;SACvF;KACF;CACF,CAAA;
|
|
1
|
+
{"version":3,"file":"archive.js","sourceRoot":"","sources":["../../../src/commands/worktree/archive.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/worktree/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAKnC,wBAAgB,qBAAqB,IAAI,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/worktree/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAKnC,wBAAgB,qBAAqB,IAAI,OAAO,CAoB/C"}
|
|
@@ -15,6 +15,7 @@ export function createWorktreeCommand() {
|
|
|
15
15
|
.description('Archive a worktree (removes worktree and associated branch)')
|
|
16
16
|
.argument('<name>', 'Worktree name or branch name')
|
|
17
17
|
.option('--json', 'Output in JSON format')
|
|
18
|
+
.option('--discard-dirty', 'Archive even if uncommitted or untracked files will be lost')
|
|
18
19
|
.option('--host <host>', 'Daemon host:port (default: localhost:6767)')
|
|
19
20
|
.action(withOutput(runArchiveCommand));
|
|
20
21
|
return worktree;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/worktree/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAElD,MAAM,UAAU,qBAAqB;IACnC,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,uCAAuC,CAAC,CAAA;IAE7F,QAAQ;SACL,OAAO,CAAC,IAAI,CAAC;SACb,WAAW,CAAC,qCAAqC,CAAC;SAClD,MAAM,CAAC,QAAQ,EAAE,uBAAuB,CAAC;SACzC,MAAM,CAAC,eAAe,EAAE,4CAA4C,CAAC;SACrE,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAA;IAEnC,QAAQ;SACL,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,6DAA6D,CAAC;SAC1E,QAAQ,CAAC,QAAQ,EAAE,8BAA8B,CAAC;SAClD,MAAM,CAAC,QAAQ,EAAE,uBAAuB,CAAC;SACzC,MAAM,CAAC,eAAe,EAAE,4CAA4C,CAAC;SACrE,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAA;IAExC,OAAO,QAAQ,CAAA;AACjB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/worktree/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAElD,MAAM,UAAU,qBAAqB;IACnC,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,uCAAuC,CAAC,CAAA;IAE7F,QAAQ;SACL,OAAO,CAAC,IAAI,CAAC;SACb,WAAW,CAAC,qCAAqC,CAAC;SAClD,MAAM,CAAC,QAAQ,EAAE,uBAAuB,CAAC;SACzC,MAAM,CAAC,eAAe,EAAE,4CAA4C,CAAC;SACrE,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAA;IAEnC,QAAQ;SACL,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,6DAA6D,CAAC;SAC1E,QAAQ,CAAC,QAAQ,EAAE,8BAA8B,CAAC;SAClD,MAAM,CAAC,QAAQ,EAAE,uBAAuB,CAAC;SACzC,MAAM,CAAC,iBAAiB,EAAE,6DAA6D,CAAC;SACxF,MAAM,CAAC,eAAe,EAAE,4CAA4C,CAAC;SACrE,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAA;IAExC,OAAO,QAAQ,CAAA;AACjB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@junctionpanel/cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.87",
|
|
4
4
|
"description": "Junction CLI - control your AI coding agents from the command line",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"types": "./dist/cli.d.ts",
|
|
@@ -45,8 +45,8 @@
|
|
|
45
45
|
"mime-types": "^2.1.35",
|
|
46
46
|
"ws": "^8.14.2",
|
|
47
47
|
"yaml": "^2.8.2",
|
|
48
|
-
"@junctionpanel/
|
|
49
|
-
"@junctionpanel/
|
|
48
|
+
"@junctionpanel/relay": "0.1.87",
|
|
49
|
+
"@junctionpanel/server": "0.1.87"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
52
|
"@types/mime-types": "^3.0.1",
|