@zdql/giga-claude-cli 1.0.2

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 (58) hide show
  1. package/README.md +148 -0
  2. package/dist/commands/config.d.ts +6 -0
  3. package/dist/commands/config.d.ts.map +1 -0
  4. package/dist/commands/config.js +62 -0
  5. package/dist/commands/config.js.map +1 -0
  6. package/dist/commands/workflow/artifacts.d.ts +6 -0
  7. package/dist/commands/workflow/artifacts.d.ts.map +1 -0
  8. package/dist/commands/workflow/artifacts.js +92 -0
  9. package/dist/commands/workflow/artifacts.js.map +1 -0
  10. package/dist/commands/workflow/control.d.ts +7 -0
  11. package/dist/commands/workflow/control.d.ts.map +1 -0
  12. package/dist/commands/workflow/control.js +76 -0
  13. package/dist/commands/workflow/control.js.map +1 -0
  14. package/dist/commands/workflow/create.d.ts +6 -0
  15. package/dist/commands/workflow/create.d.ts.map +1 -0
  16. package/dist/commands/workflow/create.js +137 -0
  17. package/dist/commands/workflow/create.js.map +1 -0
  18. package/dist/commands/workflow/index.d.ts +6 -0
  19. package/dist/commands/workflow/index.d.ts.map +1 -0
  20. package/dist/commands/workflow/index.js +27 -0
  21. package/dist/commands/workflow/index.js.map +1 -0
  22. package/dist/commands/workflow/logs.d.ts +6 -0
  23. package/dist/commands/workflow/logs.d.ts.map +1 -0
  24. package/dist/commands/workflow/logs.js +117 -0
  25. package/dist/commands/workflow/logs.js.map +1 -0
  26. package/dist/commands/workflow/run.d.ts +14 -0
  27. package/dist/commands/workflow/run.d.ts.map +1 -0
  28. package/dist/commands/workflow/run.js +140 -0
  29. package/dist/commands/workflow/run.js.map +1 -0
  30. package/dist/commands/workflow/status.d.ts +6 -0
  31. package/dist/commands/workflow/status.d.ts.map +1 -0
  32. package/dist/commands/workflow/status.js +113 -0
  33. package/dist/commands/workflow/status.js.map +1 -0
  34. package/dist/commands/workflow/validate.d.ts +6 -0
  35. package/dist/commands/workflow/validate.d.ts.map +1 -0
  36. package/dist/commands/workflow/validate.js +94 -0
  37. package/dist/commands/workflow/validate.js.map +1 -0
  38. package/dist/index.d.ts +7 -0
  39. package/dist/index.d.ts.map +1 -0
  40. package/dist/index.js +45 -0
  41. package/dist/index.js.map +1 -0
  42. package/dist/lib/client.d.ts +14 -0
  43. package/dist/lib/client.d.ts.map +1 -0
  44. package/dist/lib/client.js +30 -0
  45. package/dist/lib/client.js.map +1 -0
  46. package/dist/lib/config.d.ts +31 -0
  47. package/dist/lib/config.d.ts.map +1 -0
  48. package/dist/lib/config.js +71 -0
  49. package/dist/lib/config.js.map +1 -0
  50. package/dist/lib/output.d.ts +56 -0
  51. package/dist/lib/output.d.ts.map +1 -0
  52. package/dist/lib/output.js +106 -0
  53. package/dist/lib/output.js.map +1 -0
  54. package/dist/lib/utils.d.ts +41 -0
  55. package/dist/lib/utils.d.ts.map +1 -0
  56. package/dist/lib/utils.js +92 -0
  57. package/dist/lib/utils.js.map +1 -0
  58. package/package.json +41 -0
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Client wrapper for CLI
3
+ * Uses the @zdql/giga-claude-client package
4
+ */
5
+ import { GigaClaudeClient } from "@zdql/giga-claude-client";
6
+ import { requireConfig } from "./config.js";
7
+ let clientInstance = null;
8
+ /**
9
+ * Get or create client instance
10
+ */
11
+ export function getClient() {
12
+ if (clientInstance) {
13
+ return clientInstance;
14
+ }
15
+ const config = requireConfig();
16
+ clientInstance = new GigaClaudeClient({
17
+ baseUrl: config.baseUrl,
18
+ apiKey: config.apiKey,
19
+ timeout: config.timeout || 30000,
20
+ retries: config.retries || 3,
21
+ });
22
+ return clientInstance;
23
+ }
24
+ /**
25
+ * Reset client instance (for testing)
26
+ */
27
+ export function resetClient() {
28
+ clientInstance = null;
29
+ }
30
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../lib/client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,IAAI,cAAc,GAA4B,IAAI,CAAC;AAEnD;;GAEG;AACH,MAAM,UAAU,SAAS;IACvB,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;IAC/B,cAAc,GAAG,IAAI,gBAAgB,CAAC;QACpC,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,KAAK;QAChC,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,CAAC;KAC7B,CAAC,CAAC;IAEH,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW;IACzB,cAAc,GAAG,IAAI,CAAC;AACxB,CAAC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Configuration management for Giga-Claude CLI
3
+ * Stores config in ~/.giga-claude/config.json
4
+ */
5
+ export interface CLIConfig {
6
+ baseUrl: string;
7
+ apiKey?: string;
8
+ timeout?: number;
9
+ retries?: number;
10
+ }
11
+ /**
12
+ * Load configuration from file
13
+ */
14
+ export declare function loadConfig(): CLIConfig | null;
15
+ /**
16
+ * Save configuration to file
17
+ */
18
+ export declare function saveConfig(config: CLIConfig): void;
19
+ /**
20
+ * Update specific config value
21
+ */
22
+ export declare function updateConfig(key: keyof CLIConfig, value: string | number): void;
23
+ /**
24
+ * Get config value
25
+ */
26
+ export declare function getConfig(key: keyof CLIConfig): string | number | undefined;
27
+ /**
28
+ * Get config or throw if not configured
29
+ */
30
+ export declare function requireConfig(): CLIConfig;
31
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../lib/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAcD;;GAEG;AACH,wBAAgB,UAAU,IAAI,SAAS,GAAG,IAAI,CAY7C;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAQlD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI/E;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAG3E;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,SAAS,CAQzC"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Configuration management for Giga-Claude CLI
3
+ * Stores config in ~/.giga-claude/config.json
4
+ */
5
+ import * as fs from "fs";
6
+ import * as path from "path";
7
+ import * as os from "os";
8
+ const CONFIG_DIR = path.join(os.homedir(), ".giga-claude");
9
+ const CONFIG_FILE = path.join(CONFIG_DIR, "config.json");
10
+ /**
11
+ * Ensure config directory exists
12
+ */
13
+ function ensureConfigDir() {
14
+ if (!fs.existsSync(CONFIG_DIR)) {
15
+ fs.mkdirSync(CONFIG_DIR, { recursive: true });
16
+ }
17
+ }
18
+ /**
19
+ * Load configuration from file
20
+ */
21
+ export function loadConfig() {
22
+ if (!fs.existsSync(CONFIG_FILE)) {
23
+ return null;
24
+ }
25
+ try {
26
+ const content = fs.readFileSync(CONFIG_FILE, "utf-8");
27
+ return JSON.parse(content);
28
+ }
29
+ catch (error) {
30
+ console.error(`Failed to load config: ${error}`);
31
+ return null;
32
+ }
33
+ }
34
+ /**
35
+ * Save configuration to file
36
+ */
37
+ export function saveConfig(config) {
38
+ ensureConfigDir();
39
+ try {
40
+ fs.writeFileSync(CONFIG_FILE, JSON.stringify(config, null, 2));
41
+ }
42
+ catch (error) {
43
+ throw new Error(`Failed to save config: ${error}`);
44
+ }
45
+ }
46
+ /**
47
+ * Update specific config value
48
+ */
49
+ export function updateConfig(key, value) {
50
+ const config = loadConfig() || { baseUrl: "" };
51
+ config[key] = value;
52
+ saveConfig(config);
53
+ }
54
+ /**
55
+ * Get config value
56
+ */
57
+ export function getConfig(key) {
58
+ const config = loadConfig();
59
+ return config?.[key];
60
+ }
61
+ /**
62
+ * Get config or throw if not configured
63
+ */
64
+ export function requireConfig() {
65
+ const config = loadConfig();
66
+ if (!config || !config.baseUrl) {
67
+ throw new Error("Not configured. Run 'giga config set baseUrl <url>' first.");
68
+ }
69
+ return config;
70
+ }
71
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../lib/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AASzB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,cAAc,CAAC,CAAC;AAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AAEzD;;GAEG;AACH,SAAS,eAAe;IACtB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU;IACxB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,0BAA0B,KAAK,EAAE,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,MAAiB;IAC1C,eAAe,EAAE,CAAC;IAElB,IAAI,CAAC;QACH,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,0BAA0B,KAAK,EAAE,CAAC,CAAC;IACrD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,GAAoB,EAAE,KAAsB;IACvE,MAAM,MAAM,GAAG,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAC9C,MAAc,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC7B,UAAU,CAAC,MAAM,CAAC,CAAC;AACrB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,GAAoB;IAC5C,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,OAAO,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Output formatting utilities
3
+ */
4
+ import Table from "cli-table3";
5
+ /**
6
+ * Print success message
7
+ */
8
+ export declare function success(message: string): void;
9
+ /**
10
+ * Print error message
11
+ */
12
+ export declare function error(message: string): void;
13
+ /**
14
+ * Print warning message
15
+ */
16
+ export declare function warn(message: string): void;
17
+ /**
18
+ * Print info message
19
+ */
20
+ export declare function info(message: string): void;
21
+ /**
22
+ * Print plain message
23
+ */
24
+ export declare function print(message: string): void;
25
+ /**
26
+ * Print section header
27
+ */
28
+ export declare function section(title: string): void;
29
+ /**
30
+ * Create a table for displaying data
31
+ */
32
+ export declare function createTable(options?: {
33
+ head?: string[];
34
+ style?: any;
35
+ }): Table.Table;
36
+ /**
37
+ * Format duration in human-readable format
38
+ */
39
+ export declare function formatDuration(ms: number): string;
40
+ /**
41
+ * Format percentage
42
+ */
43
+ export declare function formatPercent(value: number, total: number): string;
44
+ /**
45
+ * Format timestamp
46
+ */
47
+ export declare function formatTimestamp(timestamp: string): string;
48
+ /**
49
+ * Print JSON (for --json flag)
50
+ */
51
+ export declare function printJson(data: any): void;
52
+ /**
53
+ * Draw a simple progress bar
54
+ */
55
+ export declare function progressBar(value: number, total: number, width?: number): string;
56
+ //# sourceMappingURL=output.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../lib/output.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,MAAM,YAAY,CAAC;AAE/B;;GAEG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE7C;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE3C;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE1C;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE1C;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE3C;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAG3C;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE;IACpC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,GAAG,CAAC;CACb,GAAG,KAAK,CAAC,KAAK,CAKd;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAcjD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAIlE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAGzD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,CAEzC;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,KAAK,GAAE,MAAW,GACjB,MAAM,CAUR"}
@@ -0,0 +1,106 @@
1
+ /**
2
+ * Output formatting utilities
3
+ */
4
+ import chalk from "chalk";
5
+ import Table from "cli-table3";
6
+ /**
7
+ * Print success message
8
+ */
9
+ export function success(message) {
10
+ console.log(chalk.green("✓"), message);
11
+ }
12
+ /**
13
+ * Print error message
14
+ */
15
+ export function error(message) {
16
+ console.error(chalk.red("✗"), message);
17
+ }
18
+ /**
19
+ * Print warning message
20
+ */
21
+ export function warn(message) {
22
+ console.warn(chalk.yellow("⚠"), message);
23
+ }
24
+ /**
25
+ * Print info message
26
+ */
27
+ export function info(message) {
28
+ console.log(chalk.blue("ℹ"), message);
29
+ }
30
+ /**
31
+ * Print plain message
32
+ */
33
+ export function print(message) {
34
+ console.log(message);
35
+ }
36
+ /**
37
+ * Print section header
38
+ */
39
+ export function section(title) {
40
+ console.log();
41
+ console.log(chalk.bold(title));
42
+ }
43
+ /**
44
+ * Create a table for displaying data
45
+ */
46
+ export function createTable(options) {
47
+ return new Table({
48
+ head: options?.head,
49
+ style: options?.style || { head: ["cyan"] },
50
+ });
51
+ }
52
+ /**
53
+ * Format duration in human-readable format
54
+ */
55
+ export function formatDuration(ms) {
56
+ if (ms < 1000) {
57
+ return `${ms}ms`;
58
+ }
59
+ else if (ms < 60000) {
60
+ return `${(ms / 1000).toFixed(1)}s`;
61
+ }
62
+ else if (ms < 3600000) {
63
+ const minutes = Math.floor(ms / 60000);
64
+ const seconds = Math.floor((ms % 60000) / 1000);
65
+ return `${minutes}m ${seconds}s`;
66
+ }
67
+ else {
68
+ const hours = Math.floor(ms / 3600000);
69
+ const minutes = Math.floor((ms % 3600000) / 60000);
70
+ return `${hours}h ${minutes}m`;
71
+ }
72
+ }
73
+ /**
74
+ * Format percentage
75
+ */
76
+ export function formatPercent(value, total) {
77
+ if (total === 0)
78
+ return "0%";
79
+ const percent = Math.round((value / total) * 100);
80
+ return `${percent}%`;
81
+ }
82
+ /**
83
+ * Format timestamp
84
+ */
85
+ export function formatTimestamp(timestamp) {
86
+ const date = new Date(timestamp);
87
+ return date.toLocaleString();
88
+ }
89
+ /**
90
+ * Print JSON (for --json flag)
91
+ */
92
+ export function printJson(data) {
93
+ console.log(JSON.stringify(data, null, 2));
94
+ }
95
+ /**
96
+ * Draw a simple progress bar
97
+ */
98
+ export function progressBar(value, total, width = 40) {
99
+ const percentage = total === 0 ? 0 : value / total;
100
+ const filled = Math.round(width * percentage);
101
+ const empty = width - filled;
102
+ const bar = chalk.green("█".repeat(filled)) + chalk.gray("░".repeat(empty));
103
+ const percent = formatPercent(value, total);
104
+ return `${bar} ${percent} (${value}/${total})`;
105
+ }
106
+ //# sourceMappingURL=output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../lib/output.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * CLI utility functions
3
+ */
4
+ /**
5
+ * Check if file exists
6
+ */
7
+ export declare function fileExists(filePath: string): boolean;
8
+ /**
9
+ * Read file as string
10
+ */
11
+ export declare function readFile(filePath: string): string;
12
+ /**
13
+ * Read file as buffer
14
+ */
15
+ export declare function readFileBuffer(filePath: string): Buffer;
16
+ /**
17
+ * Create FormData for file upload using native FormData
18
+ */
19
+ export declare function createUploadFormData(options: {
20
+ dataFile: string;
21
+ promptTemplateFile?: string;
22
+ promptTemplateInline?: string;
23
+ config: Record<string, any>;
24
+ }): FormData;
25
+ /**
26
+ * Sanitize filename for safe writing
27
+ */
28
+ export declare function sanitizeFilename(name: string): string;
29
+ /**
30
+ * Ensure directory exists
31
+ */
32
+ export declare function ensureDir(dirPath: string): void;
33
+ /**
34
+ * Parse comma-separated list
35
+ */
36
+ export declare function parseList(value: string): string[];
37
+ /**
38
+ * Confirm action (interactive prompt)
39
+ */
40
+ export declare function confirm(message: string, expected: string): Promise<boolean>;
41
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../lib/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH;;GAEG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC7B,GAAG,QAAQ,CAgCX;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAI/C;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAEjD;AAED;;GAEG;AACH,wBAAsB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAajF"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * CLI utility functions
3
+ */
4
+ import * as fs from "fs";
5
+ import * as path from "path";
6
+ /**
7
+ * Check if file exists
8
+ */
9
+ export function fileExists(filePath) {
10
+ return fs.existsSync(filePath);
11
+ }
12
+ /**
13
+ * Read file as string
14
+ */
15
+ export function readFile(filePath) {
16
+ return fs.readFileSync(filePath, "utf-8");
17
+ }
18
+ /**
19
+ * Read file as buffer
20
+ */
21
+ export function readFileBuffer(filePath) {
22
+ return fs.readFileSync(filePath);
23
+ }
24
+ /**
25
+ * Create FormData for file upload using native FormData
26
+ */
27
+ export function createUploadFormData(options) {
28
+ const formData = new FormData();
29
+ // Add data file - read into Blob for native FormData compatibility
30
+ const dataBuffer = fs.readFileSync(options.dataFile);
31
+ const dataBlob = new Blob([dataBuffer], { type: "text/csv" });
32
+ formData.append("data", dataBlob, path.basename(options.dataFile));
33
+ // Add prompt template
34
+ if (options.promptTemplateFile) {
35
+ const templateBuffer = fs.readFileSync(options.promptTemplateFile);
36
+ const templateBlob = new Blob([templateBuffer], { type: "text/plain" });
37
+ formData.append("promptTemplate", templateBlob, path.basename(options.promptTemplateFile));
38
+ }
39
+ // Add config as individual fields
40
+ for (const [key, value] of Object.entries(options.config)) {
41
+ if (value !== undefined && value !== null) {
42
+ if (Array.isArray(value)) {
43
+ formData.append(key, value.join(","));
44
+ }
45
+ else {
46
+ formData.append(key, value.toString());
47
+ }
48
+ }
49
+ }
50
+ // Add inline template if provided
51
+ if (options.promptTemplateInline) {
52
+ formData.append("promptTemplateInline", options.promptTemplateInline);
53
+ }
54
+ return formData;
55
+ }
56
+ /**
57
+ * Sanitize filename for safe writing
58
+ */
59
+ export function sanitizeFilename(name) {
60
+ return name.replace(/[^a-zA-Z0-9_-]/g, "_");
61
+ }
62
+ /**
63
+ * Ensure directory exists
64
+ */
65
+ export function ensureDir(dirPath) {
66
+ if (!fs.existsSync(dirPath)) {
67
+ fs.mkdirSync(dirPath, { recursive: true });
68
+ }
69
+ }
70
+ /**
71
+ * Parse comma-separated list
72
+ */
73
+ export function parseList(value) {
74
+ return value.split(",").map((v) => v.trim()).filter((v) => v);
75
+ }
76
+ /**
77
+ * Confirm action (interactive prompt)
78
+ */
79
+ export async function confirm(message, expected) {
80
+ const readline = await import("readline");
81
+ const rl = readline.createInterface({
82
+ input: process.stdin,
83
+ output: process.stdout,
84
+ });
85
+ return new Promise((resolve) => {
86
+ rl.question(`${message}\nType '${expected}' to confirm: `, (answer) => {
87
+ rl.close();
88
+ resolve(answer === expected);
89
+ });
90
+ });
91
+ }
92
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../lib/utils.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,41 @@
1
+ {
2
+ "name": "@zdql/giga-claude-cli",
3
+ "version": "1.0.2",
4
+ "description": "CLI for Giga-Claude workflow orchestration",
5
+ "type": "module",
6
+ "bin": {
7
+ "giga": "./dist/index.js"
8
+ },
9
+ "main": "./dist/index.js",
10
+ "files": [
11
+ "dist"
12
+ ],
13
+ "scripts": {
14
+ "build": "tsc",
15
+ "clean": "rm -rf dist",
16
+ "dev": "tsc --watch"
17
+ },
18
+ "dependencies": {
19
+ "@zdql/giga-claude-client": "workspace:*",
20
+ "commander": "^12.1.0",
21
+ "chalk": "^5.4.1",
22
+ "ora": "^8.1.1",
23
+ "cli-table3": "^0.6.5",
24
+ "form-data": "^4.0.1",
25
+ "csv-parse": "^5.6.0"
26
+ },
27
+ "devDependencies": {
28
+ "@types/node": "^20.17.10",
29
+ "typescript": "^5.7.3"
30
+ },
31
+ "keywords": [
32
+ "giga-claude",
33
+ "claude",
34
+ "ai",
35
+ "agent",
36
+ "cli",
37
+ "workflow",
38
+ "orchestration"
39
+ ],
40
+ "license": "MIT"
41
+ }