@gh-symphony/cli 0.2.5 → 0.4.0
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/README.md +2 -2
- package/dist/{chunk-3SKN5L3I.js → chunk-6OPRRC2J.js} +36 -7
- package/dist/{chunk-NRABQNAX.js → chunk-B6G3KGBB.js} +212 -17
- package/dist/{chunk-DLZ2XHWY.js → chunk-QOX5UGUE.js} +1 -1
- package/dist/{chunk-5U36B7FC.js → chunk-TTVGBHZI.js} +8 -4
- package/dist/{chunk-FAU72YC2.js → chunk-Z7CDL3T2.js} +1 -1
- package/dist/{chunk-DTPIJO6S.js → chunk-ZPS4CQZJ.js} +524 -63
- package/dist/{doctor-TQR54KNZ.js → doctor-CCUTNEYN.js} +5 -5
- package/dist/index.js +6 -6
- package/dist/{repo-Y6EF2DZP.js → repo-C2APQR2P.js} +21 -4
- package/dist/{setup-T2QENR26.js → setup-JINI7HBM.js} +18 -6
- package/dist/{upgrade-7452LZXX.js → upgrade-EBD4LX5W.js} +2 -2
- package/dist/{version-D3FB3PXO.js → version-6Z354HHH.js} +1 -1
- package/dist/worker-entry.js +5 -5
- package/dist/{workflow-AV676KAP.js → workflow-BOZ25AJ2.js} +5 -5
- package/package.json +3 -3
|
@@ -5,14 +5,14 @@ import {
|
|
|
5
5
|
parseIssueReference,
|
|
6
6
|
readGitHubProjectBinding,
|
|
7
7
|
renderIssueWorkflowPreview
|
|
8
|
-
} from "./chunk-
|
|
9
|
-
import "./chunk-
|
|
8
|
+
} from "./chunk-TTVGBHZI.js";
|
|
9
|
+
import "./chunk-ZPS4CQZJ.js";
|
|
10
10
|
import {
|
|
11
11
|
fetchGithubProjectIssueByRepositoryAndNumber,
|
|
12
12
|
fetchGithubProjectIssues,
|
|
13
13
|
inspectManagedProjectSelection
|
|
14
|
-
} from "./chunk-
|
|
15
|
-
import "./chunk-
|
|
14
|
+
} from "./chunk-B6G3KGBB.js";
|
|
15
|
+
import "./chunk-Z7CDL3T2.js";
|
|
16
16
|
import {
|
|
17
17
|
resolveRuntimeRoot
|
|
18
18
|
} from "./chunk-RZ3WO7OV.js";
|
|
@@ -40,7 +40,7 @@ import {
|
|
|
40
40
|
resolveClaudeCommandBinary,
|
|
41
41
|
resolveRuntimeCommandBinary,
|
|
42
42
|
runClaudePreflight
|
|
43
|
-
} from "./chunk-
|
|
43
|
+
} from "./chunk-6OPRRC2J.js";
|
|
44
44
|
import {
|
|
45
45
|
configFilePath,
|
|
46
46
|
orchestratorLogPath,
|
package/dist/index.js
CHANGED
|
@@ -417,13 +417,13 @@ function createRemovedCommandHandler(message) {
|
|
|
417
417
|
|
|
418
418
|
// src/index.ts
|
|
419
419
|
var COMMANDS = {
|
|
420
|
-
workflow: () => import("./workflow-
|
|
421
|
-
setup: () => import("./setup-
|
|
422
|
-
doctor: () => import("./doctor-
|
|
423
|
-
upgrade: () => import("./upgrade-
|
|
424
|
-
repo: () => import("./repo-
|
|
420
|
+
workflow: () => import("./workflow-BOZ25AJ2.js"),
|
|
421
|
+
setup: () => import("./setup-JINI7HBM.js"),
|
|
422
|
+
doctor: () => import("./doctor-CCUTNEYN.js"),
|
|
423
|
+
upgrade: () => import("./upgrade-EBD4LX5W.js"),
|
|
424
|
+
repo: () => import("./repo-C2APQR2P.js"),
|
|
425
425
|
config: () => import("./config-cmd-AOZVS6GU.js"),
|
|
426
|
-
version: () => import("./version-
|
|
426
|
+
version: () => import("./version-6Z354HHH.js")
|
|
427
427
|
};
|
|
428
428
|
function addGlobalOptions(command) {
|
|
429
429
|
return command.option("--config <dir>", "Config directory").addOption(new Option("--config-dir <dir>").hideHelp()).option("-v, --verbose", "Enable verbose output").option("--json", "Output in JSON format").option("--no-color", "Disable color output");
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
import {
|
|
18
18
|
initRepoRuntime,
|
|
19
19
|
parseRepoRuntimeFlags
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-QOX5UGUE.js";
|
|
21
21
|
import {
|
|
22
22
|
OrchestratorService,
|
|
23
23
|
acquireProjectLock,
|
|
@@ -33,8 +33,8 @@ import {
|
|
|
33
33
|
resolveOrchestratorLogLevel,
|
|
34
34
|
resolveTrackerAdapter,
|
|
35
35
|
runCli
|
|
36
|
-
} from "./chunk-
|
|
37
|
-
import "./chunk-
|
|
36
|
+
} from "./chunk-B6G3KGBB.js";
|
|
37
|
+
import "./chunk-Z7CDL3T2.js";
|
|
38
38
|
import {
|
|
39
39
|
resolveRepoRuntimeRoot,
|
|
40
40
|
resolveRuntimeRoot
|
|
@@ -58,7 +58,7 @@ import {
|
|
|
58
58
|
parseRecentEvents,
|
|
59
59
|
readJsonFile,
|
|
60
60
|
safeReadDir
|
|
61
|
-
} from "./chunk-
|
|
61
|
+
} from "./chunk-6OPRRC2J.js";
|
|
62
62
|
import {
|
|
63
63
|
daemonPidPath,
|
|
64
64
|
httpStatusPath,
|
|
@@ -990,6 +990,7 @@ async function statusForIssue(reader, issueIdentifier) {
|
|
|
990
990
|
kind: resolvedRun?.retryKind ?? null,
|
|
991
991
|
error: resolvedRun?.lastError ?? issueRecord.retryEntry?.error ?? null
|
|
992
992
|
} : null,
|
|
993
|
+
recovery: resolvedRun?.recovery ?? null,
|
|
993
994
|
logs: {
|
|
994
995
|
codex_session_logs: resolvedRun === null ? [] : [
|
|
995
996
|
{
|
|
@@ -2568,6 +2569,22 @@ function renderLegacyStatus(snapshot, noColor) {
|
|
|
2568
2569
|
}
|
|
2569
2570
|
lines.push("");
|
|
2570
2571
|
}
|
|
2572
|
+
if (snapshot.recovery) {
|
|
2573
|
+
const recovery = snapshot.recovery;
|
|
2574
|
+
lines.push(apply(yellow(" Recoverable incomplete turn:")));
|
|
2575
|
+
lines.push(` Run ${recovery.runId}`);
|
|
2576
|
+
lines.push(` Issue ${recovery.issueId}`);
|
|
2577
|
+
lines.push(` Workspace ${recovery.workspacePath}`);
|
|
2578
|
+
lines.push(
|
|
2579
|
+
` Dirty ${recovery.dirtyFiles.length > 0 ? recovery.dirtyFiles.join(", ") : "none"}`
|
|
2580
|
+
);
|
|
2581
|
+
lines.push(` Last ${recovery.lastEvent ?? "unknown"}`);
|
|
2582
|
+
lines.push(` At ${recovery.lastEventAt ?? "unknown"}`);
|
|
2583
|
+
lines.push(` Session ${recovery.sessionId ?? "unknown"}`);
|
|
2584
|
+
lines.push(` Thread ${recovery.threadId ?? "unknown"}`);
|
|
2585
|
+
lines.push(` Command ${recovery.suggestedCommand}`);
|
|
2586
|
+
lines.push("");
|
|
2587
|
+
}
|
|
2571
2588
|
if (snapshot.lastError) {
|
|
2572
2589
|
lines.push(apply(red(` \u2717 ${snapshot.lastError}`)));
|
|
2573
2590
|
lines.push("");
|
|
@@ -4,18 +4,20 @@ import {
|
|
|
4
4
|
buildAutomaticStateMappings,
|
|
5
5
|
collectPriorityLabelNames,
|
|
6
6
|
planWorkflowArtifacts,
|
|
7
|
+
promptBlockerCheck,
|
|
7
8
|
promptPriorityConfig,
|
|
8
9
|
promptStateMappings,
|
|
9
10
|
renderDryRunPreview,
|
|
10
11
|
resolvePriorityField,
|
|
11
12
|
resolveStatusField,
|
|
13
|
+
toWorkflowLifecycleConfig,
|
|
12
14
|
validateStateMapping,
|
|
13
15
|
writeEcosystem,
|
|
14
16
|
writeWorkflowPlan
|
|
15
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-ZPS4CQZJ.js";
|
|
16
18
|
import {
|
|
17
19
|
initRepoRuntime
|
|
18
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-QOX5UGUE.js";
|
|
19
21
|
import "./chunk-RZ3WO7OV.js";
|
|
20
22
|
import {
|
|
21
23
|
GhAuthError,
|
|
@@ -29,7 +31,7 @@ import {
|
|
|
29
31
|
listUserProjects,
|
|
30
32
|
validateToken
|
|
31
33
|
} from "./chunk-SMNIGNS3.js";
|
|
32
|
-
import "./chunk-
|
|
34
|
+
import "./chunk-6OPRRC2J.js";
|
|
33
35
|
import "./chunk-4ICDSQCJ.js";
|
|
34
36
|
|
|
35
37
|
// src/commands/setup.ts
|
|
@@ -106,7 +108,7 @@ async function selectProjectSummary(client) {
|
|
|
106
108
|
}
|
|
107
109
|
const selectedProjectId = await abortIfCancelled(
|
|
108
110
|
p.select({
|
|
109
|
-
message: "Step 1/
|
|
111
|
+
message: "Step 1/4 \u2014 Select a GitHub Project board:",
|
|
110
112
|
options: projects.map((project) => ({
|
|
111
113
|
value: project.id,
|
|
112
114
|
label: `${project.owner.login}/${project.title}`,
|
|
@@ -345,7 +347,7 @@ async function runInteractive(flags, _options) {
|
|
|
345
347
|
projectDetail.linkedRepositories
|
|
346
348
|
);
|
|
347
349
|
const mappings = await promptStateMappings(statusField, {
|
|
348
|
-
stepLabel: "Step 2/
|
|
350
|
+
stepLabel: "Step 2/4"
|
|
349
351
|
});
|
|
350
352
|
const workflowValidation = validateStateMapping(mappings);
|
|
351
353
|
if (!workflowValidation.valid) {
|
|
@@ -359,10 +361,18 @@ async function runInteractive(flags, _options) {
|
|
|
359
361
|
for (const warning of workflowValidation.warnings) {
|
|
360
362
|
p.log.warn(` \u26A0 ${warning}`);
|
|
361
363
|
}
|
|
364
|
+
const lifecycleBase = toWorkflowLifecycleConfig(statusField.name, mappings);
|
|
365
|
+
const blockerCheckStates = await promptBlockerCheck(lifecycleBase, {
|
|
366
|
+
stepLabel: "Step 3/4"
|
|
367
|
+
});
|
|
368
|
+
const lifecycle = toWorkflowLifecycleConfig(statusField.name, mappings, {
|
|
369
|
+
blockerCheckStates,
|
|
370
|
+
planningStates: blockerCheckStates
|
|
371
|
+
});
|
|
362
372
|
const { priority, priorityField } = await promptPriorityConfig({
|
|
363
373
|
priorityResolution,
|
|
364
374
|
labelNames: priorityLabelNames,
|
|
365
|
-
stepLabel: "Step
|
|
375
|
+
stepLabel: "Step 4/4"
|
|
366
376
|
});
|
|
367
377
|
const workflowPath = resolve(flags.output ?? "WORKFLOW.md");
|
|
368
378
|
const { workflowPlan, ecosystemPlan } = await planWorkflowArtifacts({
|
|
@@ -374,6 +384,7 @@ async function runInteractive(flags, _options) {
|
|
|
374
384
|
priority,
|
|
375
385
|
includePriorityTemplates: priority.source === "disabled",
|
|
376
386
|
mappings,
|
|
387
|
+
lifecycle,
|
|
377
388
|
runtime: "codex",
|
|
378
389
|
skipSkills: flags.skipSkills,
|
|
379
390
|
skipContext: flags.skipContext
|
|
@@ -406,6 +417,7 @@ async function runInteractive(flags, _options) {
|
|
|
406
417
|
statusField,
|
|
407
418
|
priorityField,
|
|
408
419
|
priority,
|
|
420
|
+
lifecycle,
|
|
409
421
|
includePriorityTemplates: priority.source === "disabled",
|
|
410
422
|
runtime: "codex",
|
|
411
423
|
skipSkills: flags.skipSkills,
|
|
@@ -16,8 +16,8 @@ function execFileAsync(file, args, execFileImpl = execFileCallback) {
|
|
|
16
16
|
});
|
|
17
17
|
}
|
|
18
18
|
function resolveCurrentCliVersion() {
|
|
19
|
-
if ("0.
|
|
20
|
-
return "0.
|
|
19
|
+
if ("0.4.0".length > 0) {
|
|
20
|
+
return "0.4.0";
|
|
21
21
|
}
|
|
22
22
|
const pkg = JSON.parse(
|
|
23
23
|
readFileSync(new URL("../../package.json", import.meta.url), "utf8")
|
package/dist/worker-entry.js
CHANGED
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
normalizeCodexRuntimeEvents,
|
|
7
7
|
prepareCodexRuntimePlan,
|
|
8
8
|
resolveLocalRuntimeLaunchConfig
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-Z7CDL3T2.js";
|
|
10
10
|
import {
|
|
11
11
|
DEFAULT_AGENT_INPUT_REQUIRED_REASON,
|
|
12
12
|
classifySessionExit,
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
resolveClaudeCommandBinary,
|
|
18
18
|
resolveWorkflowRuntimeCommand,
|
|
19
19
|
runClaudePreflight
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-6OPRRC2J.js";
|
|
21
21
|
|
|
22
22
|
// ../worker/src/index.ts
|
|
23
23
|
import { spawn as spawn2 } from "child_process";
|
|
@@ -26,11 +26,11 @@ import { join as join2 } from "path";
|
|
|
26
26
|
|
|
27
27
|
// ../worker/src/execution-phase.ts
|
|
28
28
|
function resolveInitialExecutionPhase(input) {
|
|
29
|
-
const { issueState,
|
|
29
|
+
const { issueState, planningStates, activeStates } = input;
|
|
30
30
|
if (!issueState) {
|
|
31
31
|
return null;
|
|
32
32
|
}
|
|
33
|
-
if (
|
|
33
|
+
if (planningStates.includes(issueState)) {
|
|
34
34
|
return "planning";
|
|
35
35
|
}
|
|
36
36
|
if (activeStates.includes(issueState)) {
|
|
@@ -788,7 +788,7 @@ async function startAssignedRun() {
|
|
|
788
788
|
}
|
|
789
789
|
runtimeState.executionPhase = resolveInitialExecutionPhase({
|
|
790
790
|
issueState: runtimeState.run?.state,
|
|
791
|
-
|
|
791
|
+
planningStates: workflow.lifecycle.planningStates,
|
|
792
792
|
activeStates: workflow.lifecycle.activeStates
|
|
793
793
|
});
|
|
794
794
|
runtimeState.runPhase = "launching_agent";
|
|
@@ -6,12 +6,12 @@ import {
|
|
|
6
6
|
resetWorkflowCommandDependenciesForTest,
|
|
7
7
|
setWorkflowCommandDependenciesForTest,
|
|
8
8
|
workflow_default
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
9
|
+
} from "./chunk-TTVGBHZI.js";
|
|
10
|
+
import "./chunk-ZPS4CQZJ.js";
|
|
11
|
+
import "./chunk-B6G3KGBB.js";
|
|
12
|
+
import "./chunk-Z7CDL3T2.js";
|
|
13
13
|
import "./chunk-SMNIGNS3.js";
|
|
14
|
-
import "./chunk-
|
|
14
|
+
import "./chunk-6OPRRC2J.js";
|
|
15
15
|
import "./chunk-4ICDSQCJ.js";
|
|
16
16
|
export {
|
|
17
17
|
workflow_default as default,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gh-symphony/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"author": "hojinzs",
|
|
6
6
|
"description": "Interactive CLI for GitHub Symphony orchestration",
|
|
@@ -42,11 +42,11 @@
|
|
|
42
42
|
"devDependencies": {
|
|
43
43
|
"tsup": "^8.5.1",
|
|
44
44
|
"@gh-symphony/core": "0.0.14",
|
|
45
|
+
"@gh-symphony/orchestrator": "0.0.14",
|
|
45
46
|
"@gh-symphony/dashboard": "0.0.14",
|
|
46
47
|
"@gh-symphony/control-plane": "0.0.15",
|
|
47
|
-
"@gh-symphony/orchestrator": "0.0.14",
|
|
48
|
-
"@gh-symphony/runtime-claude": "0.0.14",
|
|
49
48
|
"@gh-symphony/tracker-github": "0.0.14",
|
|
49
|
+
"@gh-symphony/runtime-claude": "0.0.14",
|
|
50
50
|
"@gh-symphony/worker": "0.0.14"
|
|
51
51
|
},
|
|
52
52
|
"scripts": {
|