@gh-symphony/cli 0.1.3 → 0.2.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.
@@ -10,10 +10,10 @@ import {
10
10
  validateStateMapping,
11
11
  writeEcosystem,
12
12
  writeWorkflowPlan
13
- } from "./chunk-2YF7PQUC.js";
13
+ } from "./chunk-F46FTZJE.js";
14
14
  import {
15
15
  initRepoRuntime
16
- } from "./chunk-PG332ZS4.js";
16
+ } from "./chunk-C44DYDNU.js";
17
17
  import "./chunk-6I753NYO.js";
18
18
  import {
19
19
  GhAuthError,
@@ -26,7 +26,7 @@ import {
26
26
  listUserProjects,
27
27
  validateToken
28
28
  } from "./chunk-Z3NZOPLZ.js";
29
- import "./chunk-WCOIVNHH.js";
29
+ import "./chunk-Q3UEPUE3.js";
30
30
  import "./chunk-WOVNN5NW.js";
31
31
 
32
32
  // src/commands/setup.ts
@@ -16,8 +16,8 @@ function execFileAsync(file, args, execFileImpl = execFileCallback) {
16
16
  });
17
17
  }
18
18
  function resolveCurrentCliVersion() {
19
- if ("0.1.3".length > 0) {
20
- return "0.1.3";
19
+ if ("0.2.0".length > 0) {
20
+ return "0.2.0";
21
21
  }
22
22
  const pkg = JSON.parse(
23
23
  readFileSync(new URL("../../package.json", import.meta.url), "utf8")
@@ -2,7 +2,7 @@
2
2
 
3
3
  // src/commands/version.ts
4
4
  var handler = async (_args, options) => {
5
- const version = "0.1.3";
5
+ const version = "0.2.0";
6
6
  if (options.json) {
7
7
  process.stdout.write(JSON.stringify({ version }) + "\n");
8
8
  } else {
@@ -6,7 +6,7 @@ import {
6
6
  normalizeCodexRuntimeEvents,
7
7
  prepareCodexRuntimePlan,
8
8
  resolveLocalRuntimeLaunchConfig
9
- } from "./chunk-PEZUBHWJ.js";
9
+ } from "./chunk-B6OHDUSH.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-WCOIVNHH.js";
20
+ } from "./chunk-Q3UEPUE3.js";
21
21
 
22
22
  // ../worker/src/index.ts
23
23
  import { spawn as spawn2 } from "child_process";
@@ -297,6 +297,9 @@ function resolveWorkerRuntimeRoute(workflow) {
297
297
  function resolveClaudePreflightAuthMode(workflow) {
298
298
  return workflow.runtime?.isolation.bare === true ? "api-key-required" : "local-or-api-key";
299
299
  }
300
+ function shouldExposeLinearGraphQLTool(workflow, env = process.env) {
301
+ return workflow.tracker.kind === "linear" || env.SYMPHONY_TRACKER_KIND === "linear" || env.SYMPHONY_TRACKER_ADAPTER === "linear";
302
+ }
300
303
 
301
304
  // ../worker/src/thread-resume.ts
302
305
  var DEFAULT_CONTINUATION_GUIDANCE = "Continue working on the issue. Review your progress and complete any remaining tasks.";
@@ -765,6 +768,13 @@ async function startAssignedRun() {
765
768
  }
766
769
  const config = resolveLocalRuntimeLaunchConfig(launcherEnv);
767
770
  config.agentCommand = resolveWorkflowRuntimeCommand(workflow);
771
+ config.enableLinearGraphqlTool = shouldExposeLinearGraphQLTool(
772
+ workflow,
773
+ launcherEnv
774
+ );
775
+ config.linearApiKey = launcherEnv.LINEAR_API_KEY;
776
+ config.linearAuthorization = launcherEnv.LINEAR_AUTHORIZATION;
777
+ config.linearGraphqlUrl = launcherEnv.LINEAR_GRAPHQL_URL;
768
778
  const plan = await prepareCodexRuntimePlan(config);
769
779
  childProcess = launchCodexAppServer(plan);
770
780
  runtimeState.status = "running";
@@ -946,7 +956,15 @@ async function runNonCodexRuntimeAdapterLifecycle(workflow, env) {
946
956
  async function spawnNonCodexRuntimeTurn(adapter, runtimeKind, renderedPrompt, env) {
947
957
  if (runtimeKind === "claude-print") {
948
958
  return await adapter.spawnTurn({
949
- messages: [{ type: "user", text: renderedPrompt }],
959
+ messages: [
960
+ {
961
+ type: "user",
962
+ message: {
963
+ role: "user",
964
+ content: [{ type: "text", text: renderedPrompt }]
965
+ }
966
+ }
967
+ ],
950
968
  cwd: env.WORKING_DIRECTORY,
951
969
  env
952
970
  });
@@ -1007,8 +1025,30 @@ function isNonCodexTurnFailure(result) {
1007
1025
  return result.result !== "success";
1008
1026
  }
1009
1027
  function describeNonCodexTurnFailure(result) {
1028
+ const stderrSummary = extractRuntimeStderrSummary(result);
1029
+ if (stderrSummary) {
1030
+ return result.errorMessage ?? `${result.command} exited with ${result.signal ?? result.exitCode ?? "unknown"}: ${stderrSummary}`;
1031
+ }
1010
1032
  return result.errorMessage ?? `${result.command} exited with ${result.signal ?? result.exitCode ?? "unknown"}`;
1011
1033
  }
1034
+ function extractRuntimeStderrSummary(result) {
1035
+ if ("stderr" in result) {
1036
+ return summarizeRuntimeStderr(result.stderr);
1037
+ }
1038
+ if ("records" in result) {
1039
+ return summarizeRuntimeStderr(
1040
+ result.records.filter((record) => record.stream === "stderr").map((record) => record.line || record.parseError).filter((line) => Boolean(line)).join("\n")
1041
+ );
1042
+ }
1043
+ return null;
1044
+ }
1045
+ function summarizeRuntimeStderr(stderr) {
1046
+ const lines = stderr.split(/\r?\n/).map((line) => line.trim()).filter((line) => line.length > 0);
1047
+ if (lines.length === 0) {
1048
+ return null;
1049
+ }
1050
+ return lines.slice(-3).join(" | ").slice(0, 1e3);
1051
+ }
1012
1052
  async function exitWorkerStartupFailure(message) {
1013
1053
  runtimeState.status = "failed";
1014
1054
  runtimeState.runPhase = "failed";
@@ -6,11 +6,12 @@ import {
6
6
  resetWorkflowCommandDependenciesForTest,
7
7
  setWorkflowCommandDependenciesForTest,
8
8
  workflow_default
9
- } from "./chunk-NESHTYXQ.js";
10
- import "./chunk-2YF7PQUC.js";
11
- import "./chunk-HQ7A3C7K.js";
9
+ } from "./chunk-JU3WSGMZ.js";
10
+ import "./chunk-F46FTZJE.js";
11
+ import "./chunk-CTTFIZYG.js";
12
+ import "./chunk-B6OHDUSH.js";
12
13
  import "./chunk-Z3NZOPLZ.js";
13
- import "./chunk-WCOIVNHH.js";
14
+ import "./chunk-Q3UEPUE3.js";
14
15
  import "./chunk-WOVNN5NW.js";
15
16
  export {
16
17
  workflow_default as default,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gh-symphony/cli",
3
- "version": "0.1.3",
3
+ "version": "0.2.0",
4
4
  "license": "MIT",
5
5
  "author": "hojinzs",
6
6
  "description": "Interactive CLI for GitHub Symphony orchestration",
@@ -44,10 +44,10 @@
44
44
  "@gh-symphony/control-plane": "0.0.15",
45
45
  "@gh-symphony/dashboard": "0.0.14",
46
46
  "@gh-symphony/core": "0.0.14",
47
- "@gh-symphony/orchestrator": "0.0.14",
48
- "@gh-symphony/worker": "0.0.14",
49
47
  "@gh-symphony/runtime-claude": "0.0.14",
50
- "@gh-symphony/tracker-github": "0.0.14"
48
+ "@gh-symphony/tracker-github": "0.0.14",
49
+ "@gh-symphony/worker": "0.0.14",
50
+ "@gh-symphony/orchestrator": "0.0.14"
51
51
  },
52
52
  "scripts": {
53
53
  "build": "tsup",