@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,117 @@
1
+ /**
2
+ * giga workflow logs command
3
+ */
4
+ import { Command } from "commander";
5
+ import { getClient } from "../../lib/client.js";
6
+ import { success, error, section, print } from "../../lib/output.js";
7
+ import chalk from "chalk";
8
+ export function createWorkflowLogsCommand() {
9
+ return new Command("logs")
10
+ .description("View logs for a specific workflow run entity")
11
+ .argument("<workflowId>", "Workflow ID")
12
+ .requiredOption("--entity <key>", "Entity key to get logs for")
13
+ .option("--json", "Output as JSON")
14
+ .action(async (workflowId, options) => {
15
+ try {
16
+ const id = parseInt(workflowId);
17
+ if (isNaN(id)) {
18
+ error("Invalid workflow ID");
19
+ process.exit(1);
20
+ }
21
+ const client = getClient();
22
+ print(`Fetching logs for entity "${options.entity}"...`);
23
+ const response = await client.getWorkflowRunLogs(id, options.entity);
24
+ if (options.json) {
25
+ console.log(JSON.stringify(response, null, 2));
26
+ return;
27
+ }
28
+ // Print human-readable output
29
+ section(`Logs for Entity: ${response.entityKey}`);
30
+ console.log(`Agent Run ID: ${response.agentRunId}`);
31
+ console.log(`Status: ${response.status}`);
32
+ console.log();
33
+ if (response.logs.length === 0) {
34
+ print(chalk.dim("No logs available"));
35
+ return;
36
+ }
37
+ section("Logs");
38
+ console.log();
39
+ for (const log of response.logs) {
40
+ const timestamp = new Date(log.timestamp).toLocaleTimeString();
41
+ const typeColor = getTypeColor(log.type);
42
+ const typeLabel = log.type.padEnd(15);
43
+ console.log(`${chalk.dim(timestamp)} ${typeColor(typeLabel)}`);
44
+ // Format log content based on type
45
+ if (log.type === "tool_use") {
46
+ console.log(chalk.cyan(` Tool: ${log.toolName || "unknown"} (#${log.toolNumber || "?"})`));
47
+ if (typeof log.content === "object") {
48
+ console.log(chalk.dim(" Input:"));
49
+ console.log(chalk.dim(" " +
50
+ JSON.stringify(log.content, null, 2)
51
+ .split("\n")
52
+ .join("\n ")));
53
+ }
54
+ }
55
+ else if (log.type === "tool_result") {
56
+ console.log(chalk.cyan(` Tool: ${log.toolName || "unknown"} (#${log.toolNumber || "?"})`));
57
+ if (typeof log.content === "string") {
58
+ const preview = log.content.length > 200
59
+ ? log.content.substring(0, 200) + "..."
60
+ : log.content;
61
+ console.log(chalk.dim(" " + preview.split("\n").join("\n ")));
62
+ }
63
+ else if (typeof log.content === "object") {
64
+ console.log(chalk.dim(" " + JSON.stringify(log.content)));
65
+ }
66
+ }
67
+ else if (log.type === "assistant") {
68
+ if (typeof log.content === "string") {
69
+ console.log(" " + log.content.split("\n").join("\n "));
70
+ }
71
+ else {
72
+ console.log(" " + JSON.stringify(log.content));
73
+ }
74
+ }
75
+ else if (log.type === "error") {
76
+ console.log(chalk.red(" " + JSON.stringify(log.content)));
77
+ }
78
+ else {
79
+ console.log(chalk.dim(" " + (typeof log.content === "string"
80
+ ? log.content
81
+ : JSON.stringify(log.content))));
82
+ }
83
+ console.log(); // Blank line between logs
84
+ }
85
+ success(`Displayed ${response.logs.length} log entries`);
86
+ }
87
+ catch (err) {
88
+ if (err.response?.status === 404) {
89
+ error(`No logs found for entity "${options.entity}" in workflow ${workflowId}`);
90
+ }
91
+ else {
92
+ error(err.message || String(err));
93
+ }
94
+ process.exit(1);
95
+ }
96
+ });
97
+ }
98
+ /**
99
+ * Get color for log type
100
+ */
101
+ function getTypeColor(type) {
102
+ switch (type) {
103
+ case "assistant":
104
+ return chalk.green;
105
+ case "tool_use":
106
+ return chalk.cyan;
107
+ case "tool_result":
108
+ return chalk.blue;
109
+ case "error":
110
+ return chalk.red;
111
+ case "system":
112
+ return chalk.yellow;
113
+ default:
114
+ return chalk.gray;
115
+ }
116
+ }
117
+ //# sourceMappingURL=logs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logs.js","sourceRoot":"","sources":["../../../commands/workflow/logs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * giga workflow start and next commands
3
+ */
4
+ import { Command } from "commander";
5
+ /**
6
+ * Start workflow with auto-continuation
7
+ * Also resumes paused workflows
8
+ */
9
+ export declare function createWorkflowStartCommand(): Command;
10
+ /**
11
+ * Run next N and then stop (no auto-continuation)
12
+ */
13
+ export declare function createWorkflowNextCommand(): Command;
14
+ //# sourceMappingURL=run.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../commands/workflow/run.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC;;;GAGG;AACH,wBAAgB,0BAA0B,IAAI,OAAO,CA6DpD;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,OAAO,CAmEnD"}
@@ -0,0 +1,140 @@
1
+ /**
2
+ * giga workflow start and next commands
3
+ */
4
+ import { Command } from "commander";
5
+ import { getClient } from "../../lib/client.js";
6
+ import { success, error, info, print } from "../../lib/output.js";
7
+ import chalk from "chalk";
8
+ /**
9
+ * Start workflow with auto-continuation
10
+ * Also resumes paused workflows
11
+ */
12
+ export function createWorkflowStartCommand() {
13
+ return new Command("start")
14
+ .description("Start workflow with auto-continuation (resumes if paused)")
15
+ .argument("<workflowId>", "Workflow ID")
16
+ .option("--count <n>", "Limit initial batch to N runs (default: fill all slots)")
17
+ .option("--dry-run", "Preview what would be started without actually starting")
18
+ .action(async (workflowId, options) => {
19
+ try {
20
+ const client = getClient();
21
+ const id = parseInt(workflowId, 10);
22
+ if (isNaN(id)) {
23
+ error("Workflow ID must be a number");
24
+ process.exit(1);
25
+ }
26
+ // Check if paused and auto-resume
27
+ const workflow = await client.getWorkflow(id, false);
28
+ const wasPaused = workflow.status === "paused";
29
+ const result = await client.runWorkflow(id, {
30
+ mode: "all", // Start with auto-continuation
31
+ count: options.count ? parseInt(options.count, 10) : undefined,
32
+ dryRun: options.dryRun,
33
+ autoContinue: true,
34
+ });
35
+ if (result.dryRun) {
36
+ info("Dry run: Would start " + result.wouldStart.length + " runs");
37
+ result.wouldStart.forEach((entity) => {
38
+ print(` ├─ ${entity.entityKey}`);
39
+ });
40
+ console.log();
41
+ print(`Current state: ${result.pending} pending, ${result.running} running, ${result.completed} completed, ${result.failed} failed`);
42
+ print(`Available slots: ${result.availableSlots}`);
43
+ }
44
+ else {
45
+ if (wasPaused) {
46
+ success(`Resumed workflow ${id} (was paused)`);
47
+ }
48
+ if (result.started && result.started.length > 0) {
49
+ success(`Starting ${result.started.length} runs for workflow ${id}...`);
50
+ result.started.forEach((run) => {
51
+ print(` ├─ ${run.entityKey}: started (run ${run.runId})`);
52
+ });
53
+ console.log();
54
+ print(`Status: ${result.running} running, ${result.pending} pending, ${result.completed} completed, ${result.failed} failed`);
55
+ info(chalk.dim("Auto-continuation enabled: workflow will keep running until complete or paused."));
56
+ info(chalk.dim(`Use 'giga workflow pause ${id}' to stop auto-continuation.`));
57
+ }
58
+ else {
59
+ info(`No runs started (${result.pending} pending, ${result.running} running)`);
60
+ if (result.running > 0) {
61
+ print(chalk.dim("Wait for running jobs to complete to free up slots."));
62
+ }
63
+ }
64
+ }
65
+ }
66
+ catch (err) {
67
+ error(err.message || String(err));
68
+ process.exit(1);
69
+ }
70
+ });
71
+ }
72
+ /**
73
+ * Run next N and then stop (no auto-continuation)
74
+ */
75
+ export function createWorkflowNextCommand() {
76
+ return new Command("next")
77
+ .description("Run next N entities and then stop (no auto-continuation)")
78
+ .argument("<workflowId>", "Workflow ID")
79
+ .argument("<count>", "Number of entities to run")
80
+ .option("--dry-run", "Preview what would be started without actually starting")
81
+ .action(async (workflowId, count, options) => {
82
+ try {
83
+ const client = getClient();
84
+ const id = parseInt(workflowId, 10);
85
+ const n = parseInt(count, 10);
86
+ if (isNaN(id)) {
87
+ error("Workflow ID must be a number");
88
+ process.exit(1);
89
+ }
90
+ if (isNaN(n) || n <= 0) {
91
+ error("Count must be a positive number");
92
+ process.exit(1);
93
+ }
94
+ // Check if paused (for informational message)
95
+ const workflow = await client.getWorkflow(id, false);
96
+ const wasPaused = workflow.status === "paused";
97
+ const result = await client.runWorkflow(id, {
98
+ mode: "next",
99
+ count: n,
100
+ dryRun: options.dryRun,
101
+ autoContinue: false,
102
+ });
103
+ if (result.dryRun) {
104
+ info("Dry run: Would start " + result.wouldStart.length + " runs");
105
+ result.wouldStart.forEach((entity) => {
106
+ print(` ├─ ${entity.entityKey}`);
107
+ });
108
+ console.log();
109
+ print(`Current state: ${result.pending} pending, ${result.running} running, ${result.completed} completed, ${result.failed} failed`);
110
+ print(`Available slots: ${result.availableSlots}`);
111
+ }
112
+ else {
113
+ if (wasPaused) {
114
+ info(`Workflow ${id} was paused - unpausing to run ${n} entities`);
115
+ }
116
+ if (result.started && result.started.length > 0) {
117
+ success(`Starting ${result.started.length} runs for workflow ${id}...`);
118
+ result.started.forEach((run) => {
119
+ print(` ├─ ${run.entityKey}: started (run ${run.runId})`);
120
+ });
121
+ console.log();
122
+ print(`Status: ${result.running} running, ${result.pending} pending, ${result.completed} completed, ${result.failed} failed`);
123
+ info(chalk.dim("Auto-continuation disabled: runs will stop after this batch completes."));
124
+ info(chalk.dim(`Use 'giga workflow start ${id}' to enable auto-continuation.`));
125
+ }
126
+ else {
127
+ info(`No runs started (${result.pending} pending, ${result.running} running)`);
128
+ if (result.running > 0) {
129
+ print(chalk.dim("Wait for running jobs to complete to free up slots."));
130
+ }
131
+ }
132
+ }
133
+ }
134
+ catch (err) {
135
+ error(err.message || String(err));
136
+ process.exit(1);
137
+ }
138
+ });
139
+ }
140
+ //# sourceMappingURL=run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../commands/workflow/run.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * giga workflow status command
3
+ */
4
+ import { Command } from "commander";
5
+ export declare function createWorkflowStatusCommand(): Command;
6
+ //# sourceMappingURL=status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../commands/workflow/status.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,2BAA2B,IAAI,OAAO,CAmFrD"}
@@ -0,0 +1,113 @@
1
+ /**
2
+ * giga workflow status command
3
+ */
4
+ import { Command } from "commander";
5
+ import { getClient } from "../../lib/client.js";
6
+ import { error, section, createTable, formatPercent, formatTimestamp, printJson } from "../../lib/output.js";
7
+ import chalk from "chalk";
8
+ export function createWorkflowStatusCommand() {
9
+ return new Command("status")
10
+ .description("Check workflow status and progress")
11
+ .argument("<workflowId>", "Workflow ID")
12
+ .option("--runs", "Include detailed run information")
13
+ .option("--filter <status>", "Filter runs by status (pending, running, completed, failed)")
14
+ .option("--json", "Output as JSON")
15
+ .action(async (workflowId, options) => {
16
+ try {
17
+ const client = getClient();
18
+ const id = parseInt(workflowId, 10);
19
+ if (isNaN(id)) {
20
+ error("Workflow ID must be a number");
21
+ process.exit(1);
22
+ }
23
+ const workflow = await client.getWorkflow(id, options.runs || false);
24
+ if (options.json) {
25
+ printJson(workflow);
26
+ return;
27
+ }
28
+ // Print summary
29
+ section(`Workflow ${workflow.workflowId}: "${workflow.name || "(unnamed)"}"`);
30
+ console.log(`Status: ${getStatusColor(workflow.status)}${workflow.status}${chalk.reset()}`);
31
+ console.log(`Created: ${formatTimestamp(workflow.createdAt)}`);
32
+ if (workflow.completedAt) {
33
+ console.log(`Completed: ${formatTimestamp(workflow.completedAt)}`);
34
+ }
35
+ console.log(`Concurrency: ${workflow.concurrency}`);
36
+ if (workflow.artifactPattern) {
37
+ console.log(`Artifact pattern: ${workflow.artifactPattern}`);
38
+ }
39
+ // Progress
40
+ section("Progress");
41
+ const { summary } = workflow;
42
+ console.log(` Total: ${summary.total} entities`);
43
+ console.log(` Pending: ${summary.pending} (${formatPercent(summary.pending, summary.total)})`);
44
+ console.log(` Running: ${summary.running} (${formatPercent(summary.running, summary.total)})`);
45
+ console.log(` Completed: ${chalk.green(summary.completed)} (${formatPercent(summary.completed, summary.total)})`);
46
+ console.log(` Failed: ${summary.failed > 0 ? chalk.red(summary.failed) : summary.failed} (${formatPercent(summary.failed, summary.total)})`);
47
+ // Detailed runs table
48
+ if (options.runs && workflow.runs) {
49
+ let runs = workflow.runs;
50
+ // Filter if requested
51
+ if (options.filter) {
52
+ runs = runs.filter((r) => r.status === options.filter);
53
+ }
54
+ section(`Runs (${runs.length})`);
55
+ const table = createTable({
56
+ head: ["Entity", "Status", "Agent Run", "Artifact", "Duration"],
57
+ });
58
+ for (const run of runs) {
59
+ const statusColor = getStatusColor(run.status);
60
+ const duration = run.startedAt && run.completedAt
61
+ ? calculateDuration(run.startedAt, run.completedAt)
62
+ : run.startedAt
63
+ ? "running..."
64
+ : "-";
65
+ table.push([
66
+ run.entityKey,
67
+ `${statusColor}${run.status}${chalk.reset()}`,
68
+ run.agentRunId?.toString() || "-",
69
+ run.artifactUrl ? "✓" : run.status === "completed" ? "✗" : "-",
70
+ duration,
71
+ ]);
72
+ }
73
+ console.log(table.toString());
74
+ }
75
+ }
76
+ catch (err) {
77
+ error(err.message || String(err));
78
+ process.exit(1);
79
+ }
80
+ });
81
+ }
82
+ function getStatusColor(status) {
83
+ switch (status) {
84
+ case "completed":
85
+ return chalk.green("");
86
+ case "running":
87
+ return chalk.blue("");
88
+ case "failed":
89
+ return chalk.red("");
90
+ case "pending":
91
+ return chalk.gray("");
92
+ case "paused":
93
+ return chalk.yellow("");
94
+ default:
95
+ return "";
96
+ }
97
+ }
98
+ function calculateDuration(start, end) {
99
+ const duration = new Date(end).getTime() - new Date(start).getTime();
100
+ const seconds = Math.floor(duration / 1000);
101
+ const minutes = Math.floor(seconds / 60);
102
+ const hours = Math.floor(minutes / 60);
103
+ if (hours > 0) {
104
+ return `${hours}h ${minutes % 60}m`;
105
+ }
106
+ else if (minutes > 0) {
107
+ return `${minutes}m ${seconds % 60}s`;
108
+ }
109
+ else {
110
+ return `${seconds}s`;
111
+ }
112
+ }
113
+ //# sourceMappingURL=status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../commands/workflow/status.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * giga workflow validate command
3
+ */
4
+ import { Command } from "commander";
5
+ export declare function createWorkflowValidateCommand(): Command;
6
+ //# sourceMappingURL=validate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../commands/workflow/validate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,6BAA6B,IAAI,OAAO,CA+FvD"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * giga workflow validate command
3
+ */
4
+ import { Command } from "commander";
5
+ import { success, error, warn, section, print } from "../../lib/output.js";
6
+ import { fileExists, createUploadFormData } from "../../lib/utils.js";
7
+ import chalk from "chalk";
8
+ export function createWorkflowValidateCommand() {
9
+ return new Command("validate")
10
+ .description("Validate workflow without creating it")
11
+ .requiredOption("--data <path>", "Path to data file (CSV or JSON)")
12
+ .option("--prompt <path>", "Path to prompt template file (.txt)")
13
+ .option("--prompt-inline <text>", "Inline prompt template string")
14
+ .option("--name <name>", "Workflow name (required for validation)")
15
+ .option("--key-field <field>", "Entity key field name")
16
+ .option("--key-expr <expression>", "Entity key expression")
17
+ .action(async (options) => {
18
+ try {
19
+ // Validate files exist
20
+ if (!fileExists(options.data)) {
21
+ error(`Data file not found: ${options.data}`);
22
+ process.exit(1);
23
+ }
24
+ if (options.prompt && !fileExists(options.prompt)) {
25
+ error(`Prompt template file not found: ${options.prompt}`);
26
+ process.exit(1);
27
+ }
28
+ if (!options.prompt && !options.promptInline) {
29
+ error("Either --prompt or --prompt-inline is required");
30
+ process.exit(1);
31
+ }
32
+ if (!options.keyField && !options.keyExpr) {
33
+ error("Either --key-field or --key-expr is required");
34
+ process.exit(1);
35
+ }
36
+ // Build config
37
+ const config = {
38
+ name: options.name || "validation-test",
39
+ };
40
+ if (options.keyField)
41
+ config.entityKeyField = options.keyField;
42
+ if (options.keyExpr)
43
+ config.entityKeyExpression = options.keyExpr;
44
+ print("Validating workflow...");
45
+ const formData = createUploadFormData({
46
+ dataFile: options.data,
47
+ promptTemplateFile: options.prompt,
48
+ promptTemplateInline: options.promptInline,
49
+ config,
50
+ });
51
+ // Use raw fetch for validation
52
+ const configModule = await import("../../lib/config.js");
53
+ const cfg = configModule.requireConfig();
54
+ const response = await fetch(`${cfg.baseUrl}/workflows/validate`, {
55
+ method: "POST",
56
+ body: formData,
57
+ });
58
+ if (!response.ok) {
59
+ const errorData = await response.json().catch(() => ({ error: "Validation failed" }));
60
+ error(errorData.error || `HTTP ${response.status}`);
61
+ process.exit(1);
62
+ }
63
+ const result = await response.json();
64
+ if (result.valid) {
65
+ success("Validation successful");
66
+ console.log(` Total entities: ${result.totalEntities}`);
67
+ console.log(` Unique keys: ${result.uniqueKeys}`);
68
+ if (result.warnings && result.warnings.length > 0) {
69
+ section("Warnings");
70
+ result.warnings.forEach((w) => warn(w));
71
+ }
72
+ if (result.samplePreview) {
73
+ section(`Sample Preview (entity "${result.samplePreview.entityKey}")`);
74
+ console.log(chalk.dim("─".repeat(60)));
75
+ console.log(result.samplePreview.renderedPrompt);
76
+ console.log(chalk.dim("─".repeat(60)));
77
+ }
78
+ }
79
+ else {
80
+ error("Validation failed");
81
+ if (result.errors && result.errors.length > 0) {
82
+ section("Errors");
83
+ result.errors.forEach((e) => error(e));
84
+ }
85
+ process.exit(1);
86
+ }
87
+ }
88
+ catch (err) {
89
+ error(err.message || String(err));
90
+ process.exit(1);
91
+ }
92
+ });
93
+ }
94
+ //# sourceMappingURL=validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../commands/workflow/validate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Giga-Claude CLI
4
+ * Command-line interface for Giga-Claude workflow orchestration
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";AAEA;;;GAGG"}
package/dist/index.js ADDED
@@ -0,0 +1,45 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Giga-Claude CLI
4
+ * Command-line interface for Giga-Claude workflow orchestration
5
+ */
6
+ import { Command } from "commander";
7
+ import { createConfigCommand } from "./commands/config.js";
8
+ import { createWorkflowCommand } from "./commands/workflow/index.js";
9
+ import chalk from "chalk";
10
+ const program = new Command();
11
+ program
12
+ .name("giga")
13
+ .description("Giga-Claude CLI - Workflow orchestration for Claude agents")
14
+ .version("1.0.0");
15
+ // Add commands
16
+ program.addCommand(createConfigCommand());
17
+ program.addCommand(createWorkflowCommand());
18
+ // Error handling
19
+ program.exitOverride((err) => {
20
+ if (err.code === "commander.helpDisplayed") {
21
+ process.exit(0);
22
+ }
23
+ process.exit(err.exitCode);
24
+ });
25
+ // Parse and handle errors
26
+ try {
27
+ await program.parseAsync(process.argv);
28
+ }
29
+ catch (err) {
30
+ if (err.message?.includes("Unknown command")) {
31
+ console.error(chalk.red("✗"), err.message);
32
+ console.error(chalk.dim("Run 'giga --help' for usage information."));
33
+ process.exit(1);
34
+ }
35
+ else if (err.message?.includes("Not configured")) {
36
+ console.error(chalk.yellow("⚠"), err.message);
37
+ console.error(chalk.dim("Example: giga config set baseUrl http://localhost:3000"));
38
+ process.exit(1);
39
+ }
40
+ else {
41
+ console.error(chalk.red("✗"), "Error:", err.message || String(err));
42
+ process.exit(1);
43
+ }
44
+ }
45
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";AAEA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,MAAM,CAAC;KACZ,WAAW,CAAC,4DAA4D,CAAC;KACzE,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,eAAe;AACf,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;AAC1C,OAAO,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAC;AAE5C,iBAAiB;AACjB,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,EAAE;IAC3B,IAAI,GAAG,CAAC,IAAI,KAAK,yBAAyB,EAAE,CAAC;QAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AAEH,0BAA0B;AAC1B,IAAI,CAAC;IACH,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAAC,OAAO,GAAQ,EAAE,CAAC;IAClB,IAAI,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAC7C,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QAC3C,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC,CAAC;QACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;SAAM,IAAI,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACnD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QAC9C,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC,CAAC;QACnF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Client wrapper for CLI
3
+ * Uses the @zdql/giga-claude-client package
4
+ */
5
+ import { GigaClaudeClient } from "@zdql/giga-claude-client";
6
+ /**
7
+ * Get or create client instance
8
+ */
9
+ export declare function getClient(): GigaClaudeClient;
10
+ /**
11
+ * Reset client instance (for testing)
12
+ */
13
+ export declare function resetClient(): void;
14
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../lib/client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAK5D;;GAEG;AACH,wBAAgB,SAAS,IAAI,gBAAgB,CAc5C;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAElC"}