@gh-symphony/cli 0.0.14 → 0.0.16

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 (102) hide show
  1. package/dist/chunk-5NV3LSAJ.js +11 -0
  2. package/dist/chunk-6HBZC3BE.js +468 -0
  3. package/dist/chunk-76QPITKI.js +109 -0
  4. package/dist/chunk-EFMFGOWM.js +3575 -0
  5. package/dist/chunk-IWR4UQEJ.js +2250 -0
  6. package/dist/chunk-JO3AXHQI.js +130 -0
  7. package/dist/chunk-MHIWAIVD.js +876 -0
  8. package/dist/chunk-MVRF7BES.js +68 -0
  9. package/dist/chunk-ROGRTUFI.js +108 -0
  10. package/dist/chunk-TF3QNWNC.js +1121 -0
  11. package/dist/chunk-TH5QPO3Y.js +67 -0
  12. package/dist/config-cmd-AZ7POMAA.js +110 -0
  13. package/dist/index.d.ts +5 -4
  14. package/dist/index.js +568 -356
  15. package/dist/init-EZXQAXZM.js +17 -0
  16. package/dist/logs-6LNGT2GF.js +188 -0
  17. package/dist/project-557FE2GD.js +679 -0
  18. package/dist/recover-LVBI2TGH.js +131 -0
  19. package/dist/repo-R3XBIVAX.js +121 -0
  20. package/dist/run-WITYAYFZ.js +108 -0
  21. package/dist/start-JUFKNL3N.js +16 -0
  22. package/dist/status-3WK5BWRZ.js +11 -0
  23. package/dist/stop-AA3AP5M6.js +9 -0
  24. package/dist/version-VBB62JWI.js +30 -0
  25. package/dist/worker-entry.js +1828 -0
  26. package/package.json +9 -4
  27. package/dist/ansi.d.ts +0 -15
  28. package/dist/ansi.js +0 -53
  29. package/dist/commands/config-cmd.d.ts +0 -3
  30. package/dist/commands/config-cmd.js +0 -90
  31. package/dist/commands/help.d.ts +0 -3
  32. package/dist/commands/help.js +0 -55
  33. package/dist/commands/init.d.ts +0 -34
  34. package/dist/commands/init.js +0 -477
  35. package/dist/commands/logs.d.ts +0 -3
  36. package/dist/commands/logs.js +0 -184
  37. package/dist/commands/project.d.ts +0 -3
  38. package/dist/commands/project.js +0 -649
  39. package/dist/commands/recover.d.ts +0 -3
  40. package/dist/commands/recover.js +0 -119
  41. package/dist/commands/repo.d.ts +0 -3
  42. package/dist/commands/repo.js +0 -103
  43. package/dist/commands/run.d.ts +0 -3
  44. package/dist/commands/run.js +0 -95
  45. package/dist/commands/start.d.ts +0 -20
  46. package/dist/commands/start.js +0 -344
  47. package/dist/commands/status-refresh.d.ts +0 -9
  48. package/dist/commands/status-refresh.js +0 -27
  49. package/dist/commands/status.d.ts +0 -3
  50. package/dist/commands/status.js +0 -237
  51. package/dist/commands/stop.d.ts +0 -3
  52. package/dist/commands/stop.js +0 -92
  53. package/dist/commands/version.d.ts +0 -3
  54. package/dist/commands/version.js +0 -21
  55. package/dist/completion.d.ts +0 -1
  56. package/dist/completion.js +0 -204
  57. package/dist/config.d.ts +0 -38
  58. package/dist/config.js +0 -82
  59. package/dist/context/context-types.d.ts +0 -36
  60. package/dist/context/context-types.js +0 -1
  61. package/dist/context/generate-context-yaml.d.ts +0 -15
  62. package/dist/context/generate-context-yaml.js +0 -129
  63. package/dist/dashboard/renderer.d.ts +0 -9
  64. package/dist/dashboard/renderer.js +0 -220
  65. package/dist/detection/environment-detector.d.ts +0 -11
  66. package/dist/detection/environment-detector.js +0 -140
  67. package/dist/github/client.d.ts +0 -71
  68. package/dist/github/client.js +0 -348
  69. package/dist/github/gh-auth.d.ts +0 -34
  70. package/dist/github/gh-auth.js +0 -110
  71. package/dist/mapping/smart-defaults.d.ts +0 -17
  72. package/dist/mapping/smart-defaults.js +0 -86
  73. package/dist/orchestrator-runtime.d.ts +0 -1
  74. package/dist/orchestrator-runtime.js +0 -4
  75. package/dist/orchestrator-status-endpoint.d.ts +0 -5
  76. package/dist/orchestrator-status-endpoint.js +0 -27
  77. package/dist/project-selection.d.ts +0 -8
  78. package/dist/project-selection.js +0 -56
  79. package/dist/skills/skill-writer.d.ts +0 -14
  80. package/dist/skills/skill-writer.js +0 -62
  81. package/dist/skills/templates/commit.d.ts +0 -2
  82. package/dist/skills/templates/commit.js +0 -45
  83. package/dist/skills/templates/document.d.ts +0 -7
  84. package/dist/skills/templates/document.js +0 -16
  85. package/dist/skills/templates/gh-project.d.ts +0 -2
  86. package/dist/skills/templates/gh-project.js +0 -88
  87. package/dist/skills/templates/gh-symphony.d.ts +0 -2
  88. package/dist/skills/templates/gh-symphony.js +0 -125
  89. package/dist/skills/templates/index.d.ts +0 -8
  90. package/dist/skills/templates/index.js +0 -28
  91. package/dist/skills/templates/land.d.ts +0 -2
  92. package/dist/skills/templates/land.js +0 -59
  93. package/dist/skills/templates/pull.d.ts +0 -2
  94. package/dist/skills/templates/pull.js +0 -41
  95. package/dist/skills/templates/push.d.ts +0 -2
  96. package/dist/skills/templates/push.js +0 -36
  97. package/dist/skills/types.d.ts +0 -23
  98. package/dist/skills/types.js +0 -1
  99. package/dist/workflow/generate-reference-workflow.d.ts +0 -9
  100. package/dist/workflow/generate-reference-workflow.js +0 -261
  101. package/dist/workflow/generate-workflow-md.d.ts +0 -12
  102. package/dist/workflow/generate-workflow-md.js +0 -134
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gh-symphony/cli",
3
- "version": "0.0.14",
3
+ "version": "0.0.16",
4
4
  "license": "MIT",
5
5
  "author": "hojinzs",
6
6
  "description": "Interactive CLI for GitHub Symphony orchestration",
@@ -37,13 +37,18 @@
37
37
  "dependencies": {
38
38
  "@clack/prompts": "^0.9.1",
39
39
  "commander": "^14.0.1",
40
+ "liquidjs": "^10.25.0"
41
+ },
42
+ "devDependencies": {
43
+ "tsup": "^8.5.1",
44
+ "@gh-symphony/dashboard": "0.0.14",
40
45
  "@gh-symphony/core": "0.0.14",
46
+ "@gh-symphony/worker": "0.0.14",
41
47
  "@gh-symphony/tracker-github": "0.0.14",
42
- "@gh-symphony/orchestrator": "0.0.14",
43
- "@gh-symphony/worker": "0.0.14"
48
+ "@gh-symphony/orchestrator": "0.0.14"
44
49
  },
45
50
  "scripts": {
46
- "build": "tsc -p tsconfig.json",
51
+ "build": "tsup",
47
52
  "lint": "eslint src --ext .ts",
48
53
  "test": "vitest run --passWithNoTests",
49
54
  "typecheck": "tsc -p tsconfig.json --noEmit"
package/dist/ansi.d.ts DELETED
@@ -1,15 +0,0 @@
1
- export declare const ESC = "\u001B[";
2
- export declare function bold(s: string): string;
3
- export declare function dim(s: string): string;
4
- export declare function green(s: string): string;
5
- export declare function red(s: string): string;
6
- export declare function yellow(s: string): string;
7
- export declare function cyan(s: string): string;
8
- export declare function magenta(s: string): string;
9
- export declare function blue(s: string): string;
10
- export declare function stripAnsi(s: string): string;
11
- export declare function setNoColor(value: boolean): void;
12
- export declare function getNoColor(): boolean;
13
- export declare function clearScreen(): string;
14
- export declare function hideCursor(): string;
15
- export declare function showCursor(): string;
package/dist/ansi.js DELETED
@@ -1,53 +0,0 @@
1
- // ── ANSI color and formatting utilities ────────────────────────────────────
2
- export const ESC = "\x1b[";
3
- let noColor = false;
4
- const _bold = (s) => `${ESC}1m${s}${ESC}0m`;
5
- const _dim = (s) => `${ESC}2m${s}${ESC}0m`;
6
- const _green = (s) => `${ESC}32m${s}${ESC}0m`;
7
- const _red = (s) => `${ESC}31m${s}${ESC}0m`;
8
- const _yellow = (s) => `${ESC}33m${s}${ESC}0m`;
9
- const _cyan = (s) => `${ESC}36m${s}${ESC}0m`;
10
- const _magenta = (s) => `${ESC}35m${s}${ESC}0m`;
11
- const _blue = (s) => `${ESC}34m${s}${ESC}0m`;
12
- export function bold(s) {
13
- return noColor ? s : _bold(s);
14
- }
15
- export function dim(s) {
16
- return noColor ? s : _dim(s);
17
- }
18
- export function green(s) {
19
- return noColor ? s : _green(s);
20
- }
21
- export function red(s) {
22
- return noColor ? s : _red(s);
23
- }
24
- export function yellow(s) {
25
- return noColor ? s : _yellow(s);
26
- }
27
- export function cyan(s) {
28
- return noColor ? s : _cyan(s);
29
- }
30
- export function magenta(s) {
31
- return noColor ? s : _magenta(s);
32
- }
33
- export function blue(s) {
34
- return noColor ? s : _blue(s);
35
- }
36
- export function stripAnsi(s) {
37
- return s.replace(new RegExp(`${ESC}\\[[0-9;]*m`, "g"), "");
38
- }
39
- export function setNoColor(value) {
40
- noColor = value;
41
- }
42
- export function getNoColor() {
43
- return noColor;
44
- }
45
- export function clearScreen() {
46
- return "\x1b[2J\x1b[H";
47
- }
48
- export function hideCursor() {
49
- return "\x1b[?25l";
50
- }
51
- export function showCursor() {
52
- return "\x1b[?25h";
53
- }
@@ -1,3 +0,0 @@
1
- import type { GlobalOptions } from "../index.js";
2
- declare const handler: (args: string[], options: GlobalOptions) => Promise<void>;
3
- export default handler;
@@ -1,90 +0,0 @@
1
- import { spawn } from "node:child_process";
2
- import { loadGlobalConfig, saveGlobalConfig, configFilePath, } from "../config.js";
3
- const handler = async (args, options) => {
4
- const [subcommand, ...rest] = args;
5
- switch (subcommand) {
6
- case "show":
7
- await configShow(options);
8
- break;
9
- case "set":
10
- await configSet(rest, options);
11
- break;
12
- case "edit":
13
- await configEdit(options);
14
- break;
15
- default:
16
- process.stderr.write("Usage: gh-symphony config <show|set|edit>\n");
17
- process.exitCode = 2;
18
- }
19
- };
20
- export default handler;
21
- // ── 7.1: config show ─────────────────────────────────────────────────────────
22
- async function configShow(options) {
23
- const config = await loadGlobalConfig(options.configDir);
24
- if (!config) {
25
- process.stderr.write("No configuration found. Run 'gh-symphony init'.\n");
26
- process.exitCode = 1;
27
- return;
28
- }
29
- if (options.json) {
30
- process.stdout.write(JSON.stringify(config, null, 2) + "\n");
31
- return;
32
- }
33
- process.stdout.write(`Config: ${configFilePath(options.configDir)}\n\n`);
34
- process.stdout.write(`Active project: ${config.activeProject ?? "none"}\n`);
35
- process.stdout.write(`Projects: ${config.projects.join(", ") || "none"}\n`);
36
- }
37
- // ── 7.2: config set ──────────────────────────────────────────────────────────
38
- const VALID_KEYS = {
39
- "active-project": { type: "string" },
40
- };
41
- async function configSet(args, options) {
42
- const [key, value] = args;
43
- if (!key || value === undefined) {
44
- process.stderr.write("Usage: gh-symphony config set <key> <value>\n");
45
- process.stderr.write(`Valid keys: ${Object.keys(VALID_KEYS).join(", ")}\n`);
46
- process.exitCode = 2;
47
- return;
48
- }
49
- const keyDef = VALID_KEYS[key];
50
- if (!keyDef) {
51
- process.stderr.write(`Unknown config key: ${key}\nValid keys: ${Object.keys(VALID_KEYS).join(", ")}\n`);
52
- process.exitCode = 2;
53
- return;
54
- }
55
- const config = (await loadGlobalConfig(options.configDir)) ??
56
- {
57
- activeProject: null,
58
- projects: [],
59
- };
60
- switch (key) {
61
- case "active-project":
62
- if (!config.projects.includes(value)) {
63
- process.stderr.write(`Project "${value}" not found. Available: ${config.projects.join(", ")}\n`);
64
- process.exitCode = 1;
65
- return;
66
- }
67
- config.activeProject = value;
68
- break;
69
- }
70
- await saveGlobalConfig(options.configDir, config);
71
- process.stdout.write(`Set ${key} = ${value}\n`);
72
- }
73
- // ── 7.3: config edit ─────────────────────────────────────────────────────────
74
- async function configEdit(options) {
75
- const editor = process.env.EDITOR || process.env.VISUAL || "vi";
76
- const path = configFilePath(options.configDir);
77
- const child = spawn(editor, [path], {
78
- stdio: "inherit",
79
- });
80
- await new Promise((resolve, reject) => {
81
- child.on("close", (code) => {
82
- if (code === 0) {
83
- resolve();
84
- }
85
- else {
86
- reject(new Error(`Editor exited with code ${code}`));
87
- }
88
- });
89
- });
90
- }
@@ -1,3 +0,0 @@
1
- import type { GlobalOptions } from "../index.js";
2
- declare const handler: (_args: string[], _options: GlobalOptions) => Promise<void>;
3
- export default handler;
@@ -1,55 +0,0 @@
1
- const HELP_TEXT = `
2
- gh-symphony — AI Coding Agent Orchestrator
3
-
4
- Usage: gh-symphony <command> [options]
5
-
6
- Setup:
7
- init Interactive project setup wizard
8
- config show Show current configuration
9
- config set Set a configuration value
10
- config edit Open config in $EDITOR
11
-
12
- Orchestration:
13
- start Start the orchestrator (foreground)
14
- start --daemon Start the orchestrator (background)
15
- stop Stop the background orchestrator
16
- status Show orchestrator status
17
- run <issue> Dispatch a single issue
18
- recover Recover stalled runs
19
- logs View orchestrator logs
20
-
21
- Project Management:
22
- project add Add a new project (interactive wizard)
23
- project list List all configured projects
24
- project remove Remove a project
25
-
26
- Project / Repo:
27
- project list List projects
28
- project switch Switch active project
29
- project status Show orchestrator status for a project
30
- repo list List configured repositories
31
- repo add Add a repository
32
- repo remove Remove a repository
33
-
34
- Global Options:
35
- --config <dir> Config directory (default: ~/.gh-symphony)
36
- --verbose Enable verbose output
37
- --json Output in JSON format
38
- --no-color Disable color output
39
- --help, -h Show this help message
40
- --version, -V Show version
41
-
42
- Examples:
43
- gh-symphony project add # Add a project (interactive)
44
- gh-symphony project add --non-interactive --project <id> --workspace-dir <path>
45
- gh-symphony project list # List all projects
46
- gh-symphony project remove <id> # Remove a project
47
- gh-symphony start # Start orchestrator
48
- gh-symphony start --daemon # Start in background
49
- gh-symphony run org/repo#123 # Dispatch a specific issue
50
- gh-symphony status --watch # Watch status in real-time
51
- `.trimStart();
52
- const handler = async (_args, _options) => {
53
- process.stdout.write(HELP_TEXT);
54
- };
55
- export default handler;
@@ -1,34 +0,0 @@
1
- import type { GlobalOptions } from "../index.js";
2
- import { type ProjectDetail, type ProjectStatusField, type LinkedRepository } from "../github/client.js";
3
- export declare function abortIfCancelled<T>(input: T | Promise<T>): Promise<Exclude<T, symbol>>;
4
- declare const handler: (args: string[], options: GlobalOptions) => Promise<void>;
5
- export default handler;
6
- type EcosystemOptions = {
7
- cwd: string;
8
- projectDetail: ProjectDetail;
9
- statusField: ProjectStatusField;
10
- runtime: string;
11
- skipSkills: boolean;
12
- skipContext: boolean;
13
- };
14
- export type EcosystemResult = {
15
- projectId: string;
16
- githubProjectTitle: string;
17
- runtime: string;
18
- skillsDir: string | null;
19
- contextYamlWritten: boolean;
20
- referenceWorkflowWritten: boolean;
21
- skillsWritten: string[];
22
- skillsSkipped: string[];
23
- };
24
- export declare function writeEcosystem(opts: EcosystemOptions): Promise<EcosystemResult>;
25
- type WriteConfigInput = {
26
- projectId: string;
27
- project: ProjectDetail;
28
- repos: LinkedRepository[];
29
- workspaceDir: string;
30
- maxAttempts?: number;
31
- assignedOnly?: boolean;
32
- };
33
- export declare function writeConfig(configDir: string, input: WriteConfigInput): Promise<void>;
34
- export declare function generateProjectId(githubProjectTitle: string, uniqueKey: string): string;