@chucky.cloud/cli 0.2.8 → 0.2.9

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 (78) hide show
  1. package/dist/commands/apply.d.ts +7 -0
  2. package/dist/commands/apply.d.ts.map +1 -0
  3. package/dist/commands/apply.js +104 -0
  4. package/dist/commands/apply.js.map +1 -0
  5. package/dist/commands/config.d.ts.map +1 -1
  6. package/dist/commands/config.js +5 -1
  7. package/dist/commands/config.js.map +1 -1
  8. package/dist/commands/delete.js +3 -3
  9. package/dist/commands/delete.js.map +1 -1
  10. package/dist/commands/deploy.d.ts +6 -2
  11. package/dist/commands/deploy.d.ts.map +1 -1
  12. package/dist/commands/deploy.js +177 -33
  13. package/dist/commands/deploy.js.map +1 -1
  14. package/dist/commands/diff.d.ts +6 -0
  15. package/dist/commands/diff.d.ts.map +1 -0
  16. package/dist/commands/diff.js +101 -0
  17. package/dist/commands/diff.js.map +1 -0
  18. package/dist/commands/discard.d.ts +6 -0
  19. package/dist/commands/discard.d.ts.map +1 -0
  20. package/dist/commands/discard.js +36 -0
  21. package/dist/commands/discard.js.map +1 -0
  22. package/dist/commands/fetch.d.ts +6 -0
  23. package/dist/commands/fetch.d.ts.map +1 -0
  24. package/dist/commands/fetch.js +147 -0
  25. package/dist/commands/fetch.js.map +1 -0
  26. package/dist/commands/init.d.ts.map +1 -1
  27. package/dist/commands/init.js +199 -57
  28. package/dist/commands/init.js.map +1 -1
  29. package/dist/commands/jobs.d.ts +3 -0
  30. package/dist/commands/jobs.d.ts.map +1 -0
  31. package/dist/commands/jobs.js +415 -0
  32. package/dist/commands/jobs.js.map +1 -0
  33. package/dist/commands/keys.d.ts.map +1 -1
  34. package/dist/commands/keys.js +6 -1
  35. package/dist/commands/keys.js.map +1 -1
  36. package/dist/commands/log.d.ts +5 -0
  37. package/dist/commands/log.d.ts.map +1 -0
  38. package/dist/commands/log.js +69 -0
  39. package/dist/commands/log.js.map +1 -0
  40. package/dist/commands/prompt.d.ts +1 -0
  41. package/dist/commands/prompt.d.ts.map +1 -1
  42. package/dist/commands/prompt.js +173 -1
  43. package/dist/commands/prompt.js.map +1 -1
  44. package/dist/commands/pull.d.ts +7 -0
  45. package/dist/commands/pull.d.ts.map +1 -0
  46. package/dist/commands/pull.js +19 -0
  47. package/dist/commands/pull.js.map +1 -0
  48. package/dist/commands/sessions.d.ts +7 -0
  49. package/dist/commands/sessions.d.ts.map +1 -0
  50. package/dist/commands/sessions.js +57 -0
  51. package/dist/commands/sessions.js.map +1 -0
  52. package/dist/commands/wait.d.ts +7 -0
  53. package/dist/commands/wait.d.ts.map +1 -0
  54. package/dist/commands/wait.js +91 -0
  55. package/dist/commands/wait.js.map +1 -0
  56. package/dist/index.js +79 -1
  57. package/dist/index.js.map +1 -1
  58. package/dist/lib/api.d.ts +130 -0
  59. package/dist/lib/api.d.ts.map +1 -1
  60. package/dist/lib/api.js +99 -0
  61. package/dist/lib/api.js.map +1 -1
  62. package/dist/lib/archive.d.ts +5 -1
  63. package/dist/lib/archive.d.ts.map +1 -1
  64. package/dist/lib/archive.js +10 -15
  65. package/dist/lib/archive.js.map +1 -1
  66. package/dist/lib/config.d.ts +80 -5
  67. package/dist/lib/config.d.ts.map +1 -1
  68. package/dist/lib/config.js +86 -9
  69. package/dist/lib/config.js.map +1 -1
  70. package/dist/lib/git.d.ts +70 -0
  71. package/dist/lib/git.d.ts.map +1 -0
  72. package/dist/lib/git.js +232 -0
  73. package/dist/lib/git.js.map +1 -0
  74. package/dist/lib/output.d.ts +42 -0
  75. package/dist/lib/output.d.ts.map +1 -0
  76. package/dist/lib/output.js +123 -0
  77. package/dist/lib/output.js.map +1 -0
  78. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ export interface GitInfo {
2
+ isRepo: boolean;
3
+ isRoot: boolean;
4
+ headCommit: string;
5
+ isDirty: boolean;
6
+ dirtyFiles: string[];
7
+ }
8
+ export interface BundleStats {
9
+ commits: number;
10
+ filesAdded: string[];
11
+ filesModified: string[];
12
+ filesDeleted: string[];
13
+ insertions: number;
14
+ deletions: number;
15
+ }
16
+ export interface CommitInfo {
17
+ hash: string;
18
+ message: string;
19
+ filesChanged: number;
20
+ }
21
+ /**
22
+ * Get git repository information for a folder
23
+ */
24
+ export declare function getGitInfo(folder: string): GitInfo;
25
+ /**
26
+ * Auto-commit all changes
27
+ */
28
+ export declare function autoCommit(folder: string, message: string): string;
29
+ /**
30
+ * Create a git bundle from a commit range
31
+ */
32
+ export declare function createBundle(folder: string, fromCommit: string, outputPath: string): boolean;
33
+ /**
34
+ * Verify a git bundle
35
+ */
36
+ export declare function verifyBundle(folder: string, bundlePath: string): boolean;
37
+ /**
38
+ * Fetch a bundle to a branch
39
+ */
40
+ export declare function fetchBundle(folder: string, bundlePath: string, branchName: string): void;
41
+ /**
42
+ * Get stats for changes between HEAD and a branch
43
+ */
44
+ export declare function getBundleStats(folder: string, branchName: string): BundleStats;
45
+ /**
46
+ * Get full diff between HEAD and a branch
47
+ */
48
+ export declare function getFullDiff(folder: string, branchName: string): string;
49
+ /**
50
+ * Get commit log between HEAD and a branch
51
+ */
52
+ export declare function getCommitLog(folder: string, branchName: string): CommitInfo[];
53
+ /**
54
+ * Apply a branch (fast-forward merge)
55
+ */
56
+ export declare function applyBranch(folder: string, branchName: string, options?: {
57
+ force?: boolean;
58
+ }): {
59
+ commits: number;
60
+ files: number;
61
+ };
62
+ /**
63
+ * Discard a branch (delete without merging)
64
+ */
65
+ export declare function discardBranch(folder: string, branchName: string): void;
66
+ /**
67
+ * Check if a branch exists
68
+ */
69
+ export declare function branchExists(folder: string, branchName: string): boolean;
70
+ //# sourceMappingURL=git.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/lib/git.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB;AAkCD;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAqClD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAOlE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,OAAO,CAWT;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CASxE;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,IAAI,CAKN;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,WAAW,CAqD9E;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAGtE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,UAAU,EAAE,CAoC7E;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAC5B;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAmBpC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAKtE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAIxE"}
@@ -0,0 +1,232 @@
1
+ import { spawnSync } from "node:child_process";
2
+ import { existsSync } from "node:fs";
3
+ import { join, resolve } from "node:path";
4
+ /**
5
+ * Execute a git command and return stdout
6
+ */
7
+ function git(args, cwd) {
8
+ const result = spawnSync("git", args, {
9
+ cwd,
10
+ encoding: "utf-8",
11
+ maxBuffer: 10 * 1024 * 1024,
12
+ });
13
+ if (result.error) {
14
+ throw result.error;
15
+ }
16
+ if (result.status !== 0) {
17
+ throw new Error(result.stderr || `git ${args[0]} failed`);
18
+ }
19
+ return result.stdout.trim();
20
+ }
21
+ /**
22
+ * Execute a git command, returning null on failure instead of throwing
23
+ */
24
+ function gitSafe(args, cwd) {
25
+ try {
26
+ return git(args, cwd);
27
+ }
28
+ catch {
29
+ return null;
30
+ }
31
+ }
32
+ /**
33
+ * Get git repository information for a folder
34
+ */
35
+ export function getGitInfo(folder) {
36
+ const fullPath = resolve(folder);
37
+ // Check if .git exists in this folder (is root)
38
+ const isRoot = existsSync(join(fullPath, ".git"));
39
+ // Check if it's inside any git repo
40
+ const gitDir = gitSafe(["rev-parse", "--git-dir"], fullPath);
41
+ const isRepo = gitDir !== null;
42
+ if (!isRepo) {
43
+ return {
44
+ isRepo: false,
45
+ isRoot: false,
46
+ headCommit: "",
47
+ isDirty: false,
48
+ dirtyFiles: [],
49
+ };
50
+ }
51
+ // Get HEAD commit
52
+ const headCommit = gitSafe(["rev-parse", "HEAD"], fullPath) || "";
53
+ // Get dirty files
54
+ const status = gitSafe(["status", "--porcelain"], fullPath) || "";
55
+ const dirtyFiles = status
56
+ .split("\n")
57
+ .filter((line) => line.trim())
58
+ .map((line) => line.slice(3));
59
+ return {
60
+ isRepo,
61
+ isRoot,
62
+ headCommit,
63
+ isDirty: dirtyFiles.length > 0,
64
+ dirtyFiles,
65
+ };
66
+ }
67
+ /**
68
+ * Auto-commit all changes
69
+ */
70
+ export function autoCommit(folder, message) {
71
+ const fullPath = resolve(folder);
72
+ git(["add", "-A"], fullPath);
73
+ git(["commit", "-m", message], fullPath);
74
+ return git(["rev-parse", "HEAD"], fullPath);
75
+ }
76
+ /**
77
+ * Create a git bundle from a commit range
78
+ */
79
+ export function createBundle(folder, fromCommit, outputPath) {
80
+ const fullPath = resolve(folder);
81
+ // Check if there are any commits in the range
82
+ const revList = gitSafe(["rev-list", `${fromCommit}..HEAD`], fullPath);
83
+ if (!revList || revList.trim() === "") {
84
+ return false; // No changes
85
+ }
86
+ git(["bundle", "create", outputPath, `${fromCommit}..HEAD`], fullPath);
87
+ return true;
88
+ }
89
+ /**
90
+ * Verify a git bundle
91
+ */
92
+ export function verifyBundle(folder, bundlePath) {
93
+ const fullPath = resolve(folder);
94
+ try {
95
+ git(["bundle", "verify", bundlePath], fullPath);
96
+ return true;
97
+ }
98
+ catch {
99
+ return false;
100
+ }
101
+ }
102
+ /**
103
+ * Fetch a bundle to a branch
104
+ */
105
+ export function fetchBundle(folder, bundlePath, branchName) {
106
+ const fullPath = resolve(folder);
107
+ // Fetch from bundle to the specified branch
108
+ git(["fetch", bundlePath, `HEAD:${branchName}`], fullPath);
109
+ }
110
+ /**
111
+ * Get stats for changes between HEAD and a branch
112
+ */
113
+ export function getBundleStats(folder, branchName) {
114
+ const fullPath = resolve(folder);
115
+ // Get commit count
116
+ const revList = gitSafe(["rev-list", `HEAD..${branchName}`], fullPath) || "";
117
+ const commits = revList ? revList.split("\n").filter((l) => l.trim()).length : 0;
118
+ // Get file stats
119
+ const diffStat = gitSafe(["diff", "--numstat", `HEAD..${branchName}`], fullPath) || "";
120
+ let insertions = 0;
121
+ let deletions = 0;
122
+ for (const line of diffStat.split("\n").filter((l) => l.trim())) {
123
+ const [added, removed] = line.split("\t");
124
+ if (added !== "-")
125
+ insertions += parseInt(added, 10) || 0;
126
+ if (removed !== "-")
127
+ deletions += parseInt(removed, 10) || 0;
128
+ }
129
+ // Get file change types
130
+ const diffFiles = gitSafe(["diff", "--name-status", `HEAD..${branchName}`], fullPath) || "";
131
+ const filesAdded = [];
132
+ const filesModified = [];
133
+ const filesDeleted = [];
134
+ for (const line of diffFiles.split("\n").filter((l) => l.trim())) {
135
+ const [status, ...fileParts] = line.split("\t");
136
+ const file = fileParts.join("\t");
137
+ if (status.startsWith("A")) {
138
+ filesAdded.push(file);
139
+ }
140
+ else if (status.startsWith("M")) {
141
+ filesModified.push(file);
142
+ }
143
+ else if (status.startsWith("D")) {
144
+ filesDeleted.push(file);
145
+ }
146
+ }
147
+ return {
148
+ commits,
149
+ filesAdded,
150
+ filesModified,
151
+ filesDeleted,
152
+ insertions,
153
+ deletions,
154
+ };
155
+ }
156
+ /**
157
+ * Get full diff between HEAD and a branch
158
+ */
159
+ export function getFullDiff(folder, branchName) {
160
+ const fullPath = resolve(folder);
161
+ return git(["diff", `HEAD..${branchName}`], fullPath);
162
+ }
163
+ /**
164
+ * Get commit log between HEAD and a branch
165
+ */
166
+ export function getCommitLog(folder, branchName) {
167
+ const fullPath = resolve(folder);
168
+ const log = gitSafe(["log", "--oneline", "--numstat", `HEAD..${branchName}`], fullPath) || "";
169
+ const commits = [];
170
+ let currentCommit = null;
171
+ for (const line of log.split("\n")) {
172
+ if (!line.trim())
173
+ continue;
174
+ // Commit line: "abc1234 Commit message here"
175
+ const commitMatch = line.match(/^([a-f0-9]+)\s+(.+)$/);
176
+ if (commitMatch && !line.includes("\t")) {
177
+ if (currentCommit) {
178
+ commits.push(currentCommit);
179
+ }
180
+ currentCommit = {
181
+ hash: commitMatch[1],
182
+ message: commitMatch[2],
183
+ filesChanged: 0,
184
+ };
185
+ }
186
+ else if (currentCommit && line.includes("\t")) {
187
+ // File stat line
188
+ currentCommit.filesChanged++;
189
+ }
190
+ }
191
+ if (currentCommit) {
192
+ commits.push(currentCommit);
193
+ }
194
+ return commits;
195
+ }
196
+ /**
197
+ * Apply a branch (fast-forward merge)
198
+ */
199
+ export function applyBranch(folder, branchName, options) {
200
+ const fullPath = resolve(folder);
201
+ const stats = getBundleStats(fullPath, branchName);
202
+ if (options?.force) {
203
+ // Use --no-edit to avoid interactive editor, provide merge commit message
204
+ git(["merge", "--no-edit", "-m", `Merge ${branchName}`, branchName], fullPath);
205
+ }
206
+ else {
207
+ git(["merge", "--ff-only", branchName], fullPath);
208
+ }
209
+ // Clean up the branch
210
+ git(["branch", "-d", branchName], fullPath);
211
+ return {
212
+ commits: stats.commits,
213
+ files: stats.filesAdded.length + stats.filesModified.length + stats.filesDeleted.length,
214
+ };
215
+ }
216
+ /**
217
+ * Discard a branch (delete without merging)
218
+ */
219
+ export function discardBranch(folder, branchName) {
220
+ const fullPath = resolve(folder);
221
+ // Use -D to force delete even if not merged
222
+ gitSafe(["branch", "-D", branchName], fullPath);
223
+ }
224
+ /**
225
+ * Check if a branch exists
226
+ */
227
+ export function branchExists(folder, branchName) {
228
+ const fullPath = resolve(folder);
229
+ const result = gitSafe(["rev-parse", "--verify", branchName], fullPath);
230
+ return result !== null;
231
+ }
232
+ //# sourceMappingURL=git.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/lib/git.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Exit codes for CLI commands
3
+ */
4
+ export declare const ExitCode: {
5
+ readonly SUCCESS: 0;
6
+ readonly CONFLICT: 1;
7
+ readonly NOT_FOUND: 2;
8
+ readonly NOT_GIT_REPO: 3;
9
+ readonly NETWORK_ERROR: 4;
10
+ readonly DIRTY_WORKSPACE: 5;
11
+ readonly TIMEOUT: 6;
12
+ readonly NO_CHANGES: 7;
13
+ };
14
+ export type ExitCodeType = (typeof ExitCode)[keyof typeof ExitCode];
15
+ /**
16
+ * Output options for commands
17
+ */
18
+ export interface OutputOptions {
19
+ json?: boolean;
20
+ quiet?: boolean;
21
+ }
22
+ /**
23
+ * Error response structure
24
+ */
25
+ export interface ErrorResponse {
26
+ error: string;
27
+ message?: string;
28
+ [key: string]: unknown;
29
+ }
30
+ /**
31
+ * Output data to console based on options
32
+ */
33
+ export declare function output(data: unknown, options: OutputOptions): void;
34
+ /**
35
+ * Exit with an error code and message
36
+ */
37
+ export declare function exitWithError(code: ExitCodeType, error: ErrorResponse, options: OutputOptions): never;
38
+ /**
39
+ * Success exit
40
+ */
41
+ export declare function exitSuccess(data: unknown, options: OutputOptions): never;
42
+ //# sourceMappingURL=output.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/lib/output.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,eAAO,MAAM,QAAQ;;;;;;;;;CASX,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,OAAO,QAAQ,CAAC,CAAC;AAEpE;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,CASlE;AAsED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,aAAa,GACrB,KAAK,CAiBP;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,GAAG,KAAK,CAGxE"}
@@ -0,0 +1,123 @@
1
+ import chalk from "chalk";
2
+ /**
3
+ * Exit codes for CLI commands
4
+ */
5
+ export const ExitCode = {
6
+ SUCCESS: 0,
7
+ CONFLICT: 1,
8
+ NOT_FOUND: 2,
9
+ NOT_GIT_REPO: 3,
10
+ NETWORK_ERROR: 4,
11
+ DIRTY_WORKSPACE: 5,
12
+ TIMEOUT: 6,
13
+ NO_CHANGES: 7,
14
+ };
15
+ /**
16
+ * Output data to console based on options
17
+ */
18
+ export function output(data, options) {
19
+ if (options.quiet)
20
+ return;
21
+ if (options.json) {
22
+ console.log(JSON.stringify(data, null, 2));
23
+ }
24
+ else {
25
+ // Pretty print for human consumption
26
+ prettyPrint(data);
27
+ }
28
+ }
29
+ /**
30
+ * Pretty print data for human consumption
31
+ */
32
+ function prettyPrint(data) {
33
+ if (typeof data === "string") {
34
+ console.log(data);
35
+ return;
36
+ }
37
+ if (typeof data !== "object" || data === null) {
38
+ console.log(data);
39
+ return;
40
+ }
41
+ const obj = data;
42
+ // Handle status messages
43
+ if ("status" in obj) {
44
+ const status = obj.status;
45
+ if (status === "deployed" || status === "applied" || status === "completed") {
46
+ console.log(chalk.green(`✓ ${status}`));
47
+ }
48
+ else if (status === "fetched") {
49
+ console.log(chalk.blue(`✓ ${status}`));
50
+ }
51
+ else if (status === "discarded") {
52
+ console.log(chalk.yellow(`✓ ${status}`));
53
+ }
54
+ else {
55
+ console.log(chalk.dim(`Status: ${status}`));
56
+ }
57
+ }
58
+ // Print other fields
59
+ for (const [key, value] of Object.entries(obj)) {
60
+ if (key === "status")
61
+ continue;
62
+ if (key === "error") {
63
+ console.log(chalk.red(`Error: ${value}`));
64
+ continue;
65
+ }
66
+ if (Array.isArray(value)) {
67
+ console.log(chalk.dim(`${formatKey(key)}: ${value.length} items`));
68
+ for (const item of value.slice(0, 10)) {
69
+ console.log(chalk.dim(` - ${typeof item === "object" ? JSON.stringify(item) : item}`));
70
+ }
71
+ if (value.length > 10) {
72
+ console.log(chalk.dim(` ... and ${value.length - 10} more`));
73
+ }
74
+ }
75
+ else if (typeof value === "object" && value !== null) {
76
+ console.log(chalk.dim(`${formatKey(key)}:`));
77
+ for (const [subKey, subValue] of Object.entries(value)) {
78
+ console.log(chalk.dim(` ${formatKey(subKey)}: ${subValue}`));
79
+ }
80
+ }
81
+ else {
82
+ console.log(chalk.dim(`${formatKey(key)}: ${value}`));
83
+ }
84
+ }
85
+ }
86
+ /**
87
+ * Format a camelCase or snake_case key for display
88
+ */
89
+ function formatKey(key) {
90
+ return key
91
+ .replace(/_/g, " ")
92
+ .replace(/([A-Z])/g, " $1")
93
+ .toLowerCase()
94
+ .replace(/^\w/, (c) => c.toUpperCase());
95
+ }
96
+ /**
97
+ * Exit with an error code and message
98
+ */
99
+ export function exitWithError(code, error, options) {
100
+ if (options.quiet) {
101
+ process.exit(code);
102
+ }
103
+ if (options.json) {
104
+ console.log(JSON.stringify(error, null, 2));
105
+ }
106
+ else {
107
+ console.log(chalk.red(`\nError: ${error.message || error.error}`));
108
+ if (error.files && Array.isArray(error.files)) {
109
+ for (const file of error.files) {
110
+ console.log(chalk.dim(` - ${file}`));
111
+ }
112
+ }
113
+ }
114
+ process.exit(code);
115
+ }
116
+ /**
117
+ * Success exit
118
+ */
119
+ export function exitSuccess(data, options) {
120
+ output(data, options);
121
+ process.exit(ExitCode.SUCCESS);
122
+ }
123
+ //# sourceMappingURL=output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/lib/output.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chucky.cloud/cli",
3
- "version": "0.2.8",
3
+ "version": "0.2.9",
4
4
  "description": "CLI for deploying AI agent workspaces to Chucky cloud - build and ship Claude-powered assistants",
5
5
  "type": "module",
6
6
  "bin": {