svamp-cli 0.2.175 → 0.2.177
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/bin/skills/loop/SKILL.md +1 -1
- package/dist/{agentCommands-C4upUtMc.mjs → agentCommands-DWvXxX8p.mjs} +5 -5
- package/dist/{auth-BKN98KO4.mjs → auth-Dxka4cE6.mjs} +1 -1
- package/dist/cli.mjs +60 -64
- package/dist/{commands-D2lD-S4d.mjs → commands--dKRqMv8.mjs} +5 -5
- package/dist/{commands-BssfhM-2.mjs → commands-B4u6CUWH.mjs} +1 -1
- package/dist/{commands-CSK-jSnk.mjs → commands-Bf-TovMw.mjs} +1 -1
- package/dist/{commands-DICHik9Y.mjs → commands-BwBxmMxJ.mjs} +19 -13
- package/dist/{commands-BF_Wy2B4.mjs → commands-CwdYZQ-a.mjs} +1 -1
- package/dist/{commands-BbqjhR4z.mjs → commands-DVKFo1pt.mjs} +2 -2
- package/dist/{commands-D03sBXV4.mjs → commands-iXMwyExn.mjs} +2 -2
- package/dist/{fleet-qUmhLn41.mjs → fleet-plROHfB8.mjs} +1 -1
- package/dist/{frpc-BDZgTsi8.mjs → frpc-yc5-4EUe.mjs} +1 -1
- package/dist/{headlessCli-BG-PcYjM.mjs → headlessCli-D7vLrl7K.mjs} +2 -2
- package/dist/index.mjs +1 -1
- package/dist/{package-CMB-hfB0.mjs → package-Do-iBoUv.mjs} +2 -2
- package/dist/{rpc-CQTahguB.mjs → rpc-D1gr74eF.mjs} +11 -9
- package/dist/{rpc-gCEvLUNu.mjs → rpc-DUZqKPK4.mjs} +1 -1
- package/dist/{run-Buov6wz-.mjs → run-21-bMHCc.mjs} +37 -402
- package/dist/{run-DGs1hcvd.mjs → run-C__yViCA.mjs} +1 -1
- package/dist/scheduler-DweevMw_.mjs +93 -0
- package/dist/{serveCommands-C6l8yA9_.mjs → serveCommands-BZmiAjxi.mjs} +5 -5
- package/dist/{serveManager-B_Bj1AF4.mjs → serveManager-AbWv-Akt.mjs} +2 -2
- package/dist/{sideband-BYiyQgZR.mjs → sideband-CzzHtakf.mjs} +1 -1
- package/dist/store-BPL__e4D.mjs +125 -0
- package/package.json +2 -2
- package/bin/skills/loop/bin/routine-cli.mjs +0 -121
- package/bin/skills/loop/bin/routine-runner.mjs +0 -125
- package/bin/skills/loop/bin/routine-store.mjs +0 -49
- package/bin/skills/loop/routines.process.yaml +0 -20
- package/bin/skills/loop/test/test-routine-engine.mjs +0 -122
- package/dist/commands-CkygtYMZ.mjs +0 -223
- package/dist/store-D2HNe-Kv.mjs +0 -74
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { spawnSync } from 'node:child_process';
|
|
2
|
-
import { m as resolveProjectRoot } from './run-
|
|
3
|
-
import { r as removeWorkflow, g as getWorkflow, l as listWorkflows, s as saveWorkflow, a as rawWorkflow } from './store-
|
|
2
|
+
import { m as resolveProjectRoot } from './run-21-bMHCc.mjs';
|
|
3
|
+
import { w as workflowSteps, r as removeWorkflow, g as getWorkflow, l as listWorkflows, s as saveWorkflow, a as rawWorkflow } from './store-BPL__e4D.mjs';
|
|
4
4
|
import 'os';
|
|
5
5
|
import 'fs/promises';
|
|
6
6
|
import 'fs';
|
|
@@ -45,8 +45,8 @@ function positional(args) {
|
|
|
45
45
|
function describeOn(on) {
|
|
46
46
|
if (!on) return "manual";
|
|
47
47
|
const parts = [];
|
|
48
|
-
if (on.schedule) parts.push(`schedule(${on.schedule})`);
|
|
49
|
-
if (on.
|
|
48
|
+
if (on.schedule?.length) parts.push(`schedule(${on.schedule.map((s) => s.cron).join(", ")})`);
|
|
49
|
+
if (on.workflow_dispatch) parts.push("workflow_dispatch");
|
|
50
50
|
if (on.channel) parts.push(`channel(${on.channel})`);
|
|
51
51
|
if (on.issue?.length) parts.push(`issue(${on.issue.join("/")})`);
|
|
52
52
|
return parts.length ? parts.join(" ") : "manual";
|
|
@@ -65,16 +65,18 @@ async function workflowCommand(args) {
|
|
|
65
65
|
process.exit(1);
|
|
66
66
|
}
|
|
67
67
|
const onKinds = allFlags(rest, "--on");
|
|
68
|
+
const crons = allFlags(rest, "--cron");
|
|
68
69
|
const on = {};
|
|
69
|
-
if (onKinds.includes("schedule") ||
|
|
70
|
-
if (onKinds.includes("dispatch")) on.
|
|
70
|
+
if (onKinds.includes("schedule") || crons.length) on.schedule = (crons.length ? crons : ["0 * * * *"]).map((c) => ({ cron: c }));
|
|
71
|
+
if (onKinds.includes("dispatch") || onKinds.includes("workflow_dispatch")) on.workflow_dispatch = true;
|
|
71
72
|
if (onKinds.includes("channel") || flag(rest, "--channel")) on.channel = flag(rest, "--channel") || "default";
|
|
72
73
|
if (onKinds.includes("issue") || flag(rest, "--issue")) on.issue = (flag(rest, "--issue") || "ready").split(",").map((s) => s.trim()).filter(Boolean);
|
|
73
74
|
const owner = flag(rest, "--session") || process.env.SVAMP_SESSION_ID || null;
|
|
74
|
-
const wf = { name, on: Object.keys(on).length ? on : void 0, jobs: runs.map((r) => ({ run: r })), session: owner };
|
|
75
|
+
const wf = { name, on: Object.keys(on).length ? on : void 0, jobs: { run: { steps: runs.map((r) => ({ run: r })) } }, session: owner };
|
|
75
76
|
saveWorkflow(root, wf);
|
|
77
|
+
const nSteps = workflowSteps(wf).length;
|
|
76
78
|
if (json) console.log(JSON.stringify(wf));
|
|
77
|
-
else console.log(`Saved workflow "${name}" (on: ${describeOn(wf.on)}, ${
|
|
79
|
+
else console.log(`Saved workflow "${name}" (on: ${describeOn(wf.on)}, ${nSteps} step${nSteps === 1 ? "" : "s"}).`);
|
|
78
80
|
break;
|
|
79
81
|
}
|
|
80
82
|
case "list":
|
|
@@ -88,7 +90,10 @@ async function workflowCommand(args) {
|
|
|
88
90
|
console.log("No workflows.");
|
|
89
91
|
break;
|
|
90
92
|
}
|
|
91
|
-
for (const wf of all)
|
|
93
|
+
for (const wf of all) {
|
|
94
|
+
const n = workflowSteps(wf).length;
|
|
95
|
+
console.log(`${wf.name} [${describeOn(wf.on)}] ${n} step${n === 1 ? "" : "s"}`);
|
|
96
|
+
}
|
|
92
97
|
break;
|
|
93
98
|
}
|
|
94
99
|
case "show": {
|
|
@@ -119,10 +124,11 @@ async function workflowCommand(args) {
|
|
|
119
124
|
console.error(`Workflow not found: ${name}`);
|
|
120
125
|
process.exit(1);
|
|
121
126
|
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
127
|
+
const steps = workflowSteps(wf);
|
|
128
|
+
console.log(`\u25B6 running workflow "${wf.name}" (${steps.length} step${steps.length === 1 ? "" : "s"})`);
|
|
129
|
+
for (let i = 0; i < steps.length; i++) {
|
|
130
|
+
const step = steps[i];
|
|
131
|
+
console.log(` [${i + 1}/${steps.length}] $ ${step.run}`);
|
|
126
132
|
const r = spawnSync("sh", ["-c", step.run], { cwd: root, stdio: "inherit" });
|
|
127
133
|
if (r.status !== 0) {
|
|
128
134
|
console.error(` \u2717 step ${i + 1} failed (exit ${r.status ?? "signal"}). Stopping.`);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { execSync } from 'node:child_process';
|
|
2
|
-
import { m as resolveProjectRoot, t as searchIssues, q as listIssues, o as addComment, u as updateIssue, n as getIssue,
|
|
2
|
+
import { m as resolveProjectRoot, t as searchIssues, q as listIssues, o as addComment, u as updateIssue, n as getIssue, w as summarize, p as addIssue } from './run-21-bMHCc.mjs';
|
|
3
3
|
import 'os';
|
|
4
4
|
import 'fs/promises';
|
|
5
5
|
import 'fs';
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { writeFileSync, readFileSync } from 'fs';
|
|
2
2
|
import { resolve } from 'path';
|
|
3
|
-
import { connectAndGetMachine } from './commands-
|
|
3
|
+
import { connectAndGetMachine } from './commands-B4u6CUWH.mjs';
|
|
4
4
|
import 'node:fs';
|
|
5
5
|
import 'node:child_process';
|
|
6
6
|
import 'node:path';
|
|
7
7
|
import 'node:os';
|
|
8
|
-
import './run-
|
|
8
|
+
import './run-21-bMHCc.mjs';
|
|
9
9
|
import 'os';
|
|
10
10
|
import 'fs/promises';
|
|
11
11
|
import 'url';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { existsSync } from 'node:fs';
|
|
2
|
-
import { connectAndGetMachine, resolveSessionId, createWorktree, connectAndResolveSession } from './commands-
|
|
2
|
+
import { connectAndGetMachine, resolveSessionId, createWorktree, connectAndResolveSession } from './commands-B4u6CUWH.mjs';
|
|
3
3
|
import { execSync } from 'node:child_process';
|
|
4
|
-
import { u as updateIssue, o as addComment, p as addIssue, x as shortId } from './run-
|
|
4
|
+
import { u as updateIssue, o as addComment, p as addIssue, x as shortId } from './run-21-bMHCc.mjs';
|
|
5
5
|
import 'node:path';
|
|
6
6
|
import 'node:os';
|
|
7
7
|
import 'os';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { existsSync, readFileSync } from 'node:fs';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
3
|
import os from 'node:os';
|
|
4
|
-
import { c as connectToHypha } from './run-
|
|
4
|
+
import { c as connectToHypha } from './run-21-bMHCc.mjs';
|
|
5
5
|
import { PINNED_CLAUDE_CODE_VERSION } from './pinnedClaudeCode-HydRNEt7.mjs';
|
|
6
6
|
import 'os';
|
|
7
7
|
import 'fs/promises';
|
|
@@ -4,7 +4,7 @@ import { mkdirSync, writeFileSync, unlinkSync, existsSync, chmodSync, readFileSy
|
|
|
4
4
|
import { join } from 'path';
|
|
5
5
|
import { homedir, platform, arch } from 'os';
|
|
6
6
|
import { randomUUID, createHash } from 'crypto';
|
|
7
|
-
import { h as getFrpsSubdomainHost, i as getFrpsServerPort, j as getFrpsServerAddr } from './run-
|
|
7
|
+
import { h as getFrpsSubdomainHost, i as getFrpsServerPort, j as getFrpsServerAddr } from './run-21-bMHCc.mjs';
|
|
8
8
|
import 'fs/promises';
|
|
9
9
|
import 'url';
|
|
10
10
|
import 'node:crypto';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { handleRealtimeEvent, initMachineVoiceSession } from './sideband-
|
|
1
|
+
import { M as resolveModel, _ as describeMisconfiguration, $ as buildMachineDeps } from './run-21-bMHCc.mjs';
|
|
2
|
+
import { handleRealtimeEvent, initMachineVoiceSession } from './sideband-CzzHtakf.mjs';
|
|
3
3
|
import { WebSocket } from 'ws';
|
|
4
4
|
import { execSync, spawn } from 'child_process';
|
|
5
5
|
import 'os';
|
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { c as connectToHypha, a as createSessionStore, d as daemonStatus, g as getHyphaServerUrl, r as registerMachineService, s as startDaemon, b as stopDaemon } from './run-
|
|
1
|
+
export { c as connectToHypha, a as createSessionStore, d as daemonStatus, g as getHyphaServerUrl, r as registerMachineService, s as startDaemon, b as stopDaemon } from './run-21-bMHCc.mjs';
|
|
2
2
|
import 'os';
|
|
3
3
|
import 'fs/promises';
|
|
4
4
|
import 'fs';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
var name = "svamp-cli";
|
|
2
|
-
var version = "0.2.
|
|
2
|
+
var version = "0.2.177";
|
|
3
3
|
var description = "Svamp CLI — AI workspace daemon on Hypha Cloud";
|
|
4
4
|
var author = "Amun AI AB";
|
|
5
5
|
var license = "SEE LICENSE IN LICENSE";
|
|
@@ -19,7 +19,7 @@ var exports$1 = {
|
|
|
19
19
|
var scripts = {
|
|
20
20
|
build: "rm -rf dist bin/skills && mkdir -p bin/skills && cp -r ../../skills/artifact bin/skills/artifact && cp -r ../../skills/loop bin/skills/loop && cp -r ../../skills/crew bin/skills/crew && tsc --noEmit && pkgroll",
|
|
21
21
|
typecheck: "tsc --noEmit",
|
|
22
|
-
test: "npx tsx test/test-context-window.mjs && npx tsx test/test-ratelimit-retry.mjs && npx tsx test/test-instance-config.mjs && npx tsx test/test-authorize.mjs && npx tsx test/test-normalize-allowed-user.mjs && npx tsx test/test-share-url.mjs && npx tsx test/test-update-sharing-normalization.mjs && npx tsx test/test-sharing-notify-sync.mjs && npx tsx test/test-staged-homes-sweep.mjs && npx tsx test/test-session-helpers.mjs && npx tsx test/test-cli-routing.mjs && npx tsx test/test-security-context.mjs && npx tsx test/test-isolation-decision.mjs && npx tsx test/test-loop-activation.mjs && npx tsx test/test-message-helpers.mjs && npx tsx test/test-agent-config.mjs && npx tsx test/test-wrap-command.mjs && npx tsx test/test-credential-staging.mjs && npx tsx test/test-claude-auth.mjs && npx tsx test/test-output-formatters.mjs && npx tsx test/test-inbox-guard.mjs && npx tsx test/test-auto-topic.mjs && npx tsx test/test-project-info.mjs && npx tsx test/test-agent-types.mjs && npx tsx test/test-transport.mjs && npx tsx test/test-session-update-handlers.mjs && npx tsx test/test-session-scanner.mjs && npx tsx test/test-hypha-client.mjs && npx tsx test/test-hook-settings.mjs && npx tsx test/test-session-service-logic.mjs && npx tsx test/test-daemon-persistence.mjs && npx tsx test/test-detect-isolation.mjs && npx tsx test/test-machine-service-logic.mjs && npx tsx test/test-interactive-helpers.mjs && npx tsx test/test-codex-backend.mjs && npx tsx test/test-acp-backend.mjs && npx tsx test/test-acp-bridge.mjs && npx tsx test/test-hook-server.mjs && npx tsx test/test-session-commands.mjs && npx tsx test/test-interactive-console.mjs && npx tsx test/test-session-messages.mjs && npx tsx test/test-session-send-query.mjs && npx tsx test/test-skills.mjs && npx tsx test/test-agent-grouping.mjs && npx tsx test/test-machine-list-directory.mjs && npx tsx test/test-service-commands.mjs && npx tsx test/test-supervisor.mjs && npx tsx test/test-supervisor-lock.mjs && node test/test-supervisor-restart.mjs && npx tsx test/test-clear-detection.mjs && npx tsx test/test-session-consolidation.mjs && npx tsx test/test-inbox.mjs && npx tsx test/test-inbox-cross-machine.mjs && npx tsx test/test-issue-store.mjs && npx tsx test/test-issue-close-gate.mjs && npx tsx test/test-issue-rpc.mjs && npx tsx test/test-workflow-store.mjs && npx tsx test/test-workflow-rpc.mjs && npx tsx test/test-serve-link-subdomain.mjs && npx tsx test/test-short-id.mjs && npx tsx test/test-transcript-edit.mjs && npx tsx test/test-edit-history.mjs && npx tsx test/test-friendly-name.mjs && npx tsx test/test-session-rpc-dispatch.mjs && npx tsx test/test-sandbox-cli.mjs && npx tsx test/test-serve-manager.mjs && npx tsx test/test-serve-stability.mjs && npx tsx test/test-frpc-e2e.mjs --unit-only && npx tsx test/test-frpc-status.mjs && node test/pinnedClaudeCode.test.mjs && node test/fleet.test.mjs && npx tsx test/test-
|
|
22
|
+
test: "npx tsx test/test-context-window.mjs && npx tsx test/test-ratelimit-retry.mjs && npx tsx test/test-instance-config.mjs && npx tsx test/test-authorize.mjs && npx tsx test/test-normalize-allowed-user.mjs && npx tsx test/test-share-url.mjs && npx tsx test/test-update-sharing-normalization.mjs && npx tsx test/test-sharing-notify-sync.mjs && npx tsx test/test-staged-homes-sweep.mjs && npx tsx test/test-session-helpers.mjs && npx tsx test/test-cli-routing.mjs && npx tsx test/test-security-context.mjs && npx tsx test/test-isolation-decision.mjs && npx tsx test/test-loop-activation.mjs && npx tsx test/test-message-helpers.mjs && npx tsx test/test-agent-config.mjs && npx tsx test/test-wrap-command.mjs && npx tsx test/test-credential-staging.mjs && npx tsx test/test-claude-auth.mjs && npx tsx test/test-output-formatters.mjs && npx tsx test/test-inbox-guard.mjs && npx tsx test/test-auto-topic.mjs && npx tsx test/test-project-info.mjs && npx tsx test/test-agent-types.mjs && npx tsx test/test-transport.mjs && npx tsx test/test-session-update-handlers.mjs && npx tsx test/test-session-scanner.mjs && npx tsx test/test-hypha-client.mjs && npx tsx test/test-hook-settings.mjs && npx tsx test/test-session-service-logic.mjs && npx tsx test/test-daemon-persistence.mjs && npx tsx test/test-detect-isolation.mjs && npx tsx test/test-machine-service-logic.mjs && npx tsx test/test-interactive-helpers.mjs && npx tsx test/test-codex-backend.mjs && npx tsx test/test-acp-backend.mjs && npx tsx test/test-acp-bridge.mjs && npx tsx test/test-hook-server.mjs && npx tsx test/test-session-commands.mjs && npx tsx test/test-interactive-console.mjs && npx tsx test/test-session-messages.mjs && npx tsx test/test-session-send-query.mjs && npx tsx test/test-skills.mjs && npx tsx test/test-agent-grouping.mjs && npx tsx test/test-machine-list-directory.mjs && npx tsx test/test-service-commands.mjs && npx tsx test/test-supervisor.mjs && npx tsx test/test-supervisor-lock.mjs && node test/test-supervisor-restart.mjs && npx tsx test/test-clear-detection.mjs && npx tsx test/test-session-consolidation.mjs && npx tsx test/test-inbox.mjs && npx tsx test/test-inbox-cross-machine.mjs && npx tsx test/test-issue-store.mjs && npx tsx test/test-issue-close-gate.mjs && npx tsx test/test-issue-rpc.mjs && npx tsx test/test-workflow-store.mjs && npx tsx test/test-workflow-rpc.mjs && npx tsx test/test-workflow-scheduler.mjs && npx tsx test/test-serve-link-subdomain.mjs && npx tsx test/test-short-id.mjs && npx tsx test/test-transcript-edit.mjs && npx tsx test/test-edit-history.mjs && npx tsx test/test-friendly-name.mjs && npx tsx test/test-session-rpc-dispatch.mjs && npx tsx test/test-sandbox-cli.mjs && npx tsx test/test-serve-manager.mjs && npx tsx test/test-serve-stability.mjs && npx tsx test/test-frpc-e2e.mjs --unit-only && npx tsx test/test-frpc-status.mjs && node test/pinnedClaudeCode.test.mjs && node test/fleet.test.mjs && npx tsx test/test-session-file.mjs && npx tsx test/test-channel-rpc.mjs && npx tsx test/test-wise-agent.mjs && npx tsx test/test-channel-agent.mjs && npx tsx test/test-channels-service.mjs && npx tsx test/test-channel-async-reply.mjs && npx tsx test/test-channel-binding.mjs && npx tsx test/test-channel-identity.mjs && npx tsx test/test-shared-session-identity.mjs && npx tsx test/test-wise-agent-auth.mjs && npx tsx test/test-channel-http.mjs && npx tsx test/test-wise-voice.mjs && npx tsx test/test-wise-headless.mjs && npx tsx test/test-wise-machine.mjs && npx tsx test/test-crew-merge.mjs && npx tsx test/test-crew-verdict-routing.mjs",
|
|
23
23
|
"test:hypha": "node --no-warnings test/test-hypha-service.mjs",
|
|
24
24
|
dev: "tsx src/cli.ts",
|
|
25
25
|
"dev:daemon": "tsx src/cli.ts daemon start-sync",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { spawnSync } from 'node:child_process';
|
|
2
|
-
import { m as resolveProjectRoot } from './run-
|
|
3
|
-
import { g as getWorkflow, r as removeWorkflow, s as saveWorkflow, a as rawWorkflow, l as listWorkflows } from './store-
|
|
2
|
+
import { m as resolveProjectRoot } from './run-21-bMHCc.mjs';
|
|
3
|
+
import { g as getWorkflow, w as workflowSteps, r as removeWorkflow, s as saveWorkflow, a as rawWorkflow, l as listWorkflows } from './store-BPL__e4D.mjs';
|
|
4
4
|
import 'os';
|
|
5
5
|
import 'fs/promises';
|
|
6
6
|
import 'fs';
|
|
@@ -35,8 +35,9 @@ function workflowRpc(cwd, params) {
|
|
|
35
35
|
}
|
|
36
36
|
case "add": {
|
|
37
37
|
const on = {};
|
|
38
|
-
|
|
39
|
-
if (
|
|
38
|
+
const crons = Array.isArray(params.cron) ? params.cron.map(String) : params.cron ? [String(params.cron)] : [];
|
|
39
|
+
if (crons.length) on.schedule = crons.map((c) => ({ cron: c }));
|
|
40
|
+
if (params.dispatch || params.workflow_dispatch) on.workflow_dispatch = true;
|
|
40
41
|
if (params.channel) on.channel = String(params.channel);
|
|
41
42
|
if (Array.isArray(params.issue) && params.issue.length) on.issue = params.issue.map(String);
|
|
42
43
|
const runs = Array.isArray(params.runs) ? params.runs.map(String).filter(Boolean) : [];
|
|
@@ -44,7 +45,7 @@ function workflowRpc(cwd, params) {
|
|
|
44
45
|
const wf = {
|
|
45
46
|
name: String(params.name),
|
|
46
47
|
on: Object.keys(on).length ? on : void 0,
|
|
47
|
-
jobs: runs.map((r) => ({ run: r })),
|
|
48
|
+
jobs: { run: { steps: runs.map((r) => ({ run: r })) } },
|
|
48
49
|
session: params.session || null
|
|
49
50
|
};
|
|
50
51
|
saveWorkflow(root, wf);
|
|
@@ -55,10 +56,11 @@ function workflowRpc(cwd, params) {
|
|
|
55
56
|
case "run": {
|
|
56
57
|
const wf = getWorkflow(root, String(params.name));
|
|
57
58
|
if (!wf) throw new Error(`Workflow not found: ${params.name}`);
|
|
58
|
-
const
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
59
|
+
const steps = workflowSteps(wf);
|
|
60
|
+
const out = [`\u25B6 running workflow "${wf.name}" (${steps.length} step${steps.length === 1 ? "" : "s"})`];
|
|
61
|
+
for (let i = 0; i < steps.length; i++) {
|
|
62
|
+
const step = steps[i];
|
|
63
|
+
out.push(` [${i + 1}/${steps.length}] $ ${step.run}`);
|
|
62
64
|
const r = spawnSync("sh", ["-c", step.run], { cwd: root, encoding: "utf-8", timeout: 12e4 });
|
|
63
65
|
if (r.stdout) out.push(r.stdout.trimEnd());
|
|
64
66
|
if (r.stderr) out.push(r.stderr.trimEnd());
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { m as resolveProjectRoot, u as updateIssue, n as getIssue, o as addComment, p as addIssue, q as listIssues, t as searchIssues } from './run-
|
|
1
|
+
import { m as resolveProjectRoot, u as updateIssue, n as getIssue, o as addComment, p as addIssue, q as listIssues, t as searchIssues } from './run-21-bMHCc.mjs';
|
|
2
2
|
import 'os';
|
|
3
3
|
import 'fs/promises';
|
|
4
4
|
import 'fs';
|