@ghostwater/soulforge 0.4.0 → 0.6.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 +5 -1
- package/dist/cli/cli.js +41 -7
- package/dist/cli/cli.js.map +1 -1
- package/dist/daemon/daemon.js +17 -8
- package/dist/daemon/daemon.js.map +1 -1
- package/dist/daemon/runner.d.ts +2 -0
- package/dist/daemon/runner.js +98 -13
- package/dist/daemon/runner.js.map +1 -1
- package/dist/db/database.d.ts +13 -2
- package/dist/db/database.js +66 -17
- package/dist/db/database.js.map +1 -1
- package/dist/executors/codex-cli.d.ts +9 -0
- package/dist/executors/codex-cli.js +69 -0
- package/dist/executors/codex-cli.js.map +1 -0
- package/dist/executors/registry.js +2 -0
- package/dist/executors/registry.js.map +1 -1
- package/dist/lib/logger.js +16 -8
- package/dist/lib/logger.js.map +1 -1
- package/dist/lib/worktree.d.ts +1 -0
- package/dist/lib/worktree.js +13 -3
- package/dist/lib/worktree.js.map +1 -1
- package/dist/test-setup.js +29 -0
- package/dist/test-setup.js.map +1 -0
- package/dist/workflow/parser.js +26 -1
- package/dist/workflow/parser.js.map +1 -1
- package/dist/workflow/types.d.ts +4 -1
- package/package.json +2 -2
- package/workflows/bugfix/workflow.yml +174 -0
- package/workflows/feature-dev/workflow.yml +2 -0
- package/dist/db/database.test.js +0 -378
- package/dist/db/database.test.js.map +0 -1
- /package/dist/{db/database.test.d.ts → test-setup.d.ts} +0 -0
package/dist/db/database.js
CHANGED
|
@@ -4,27 +4,54 @@ import path from "node:path";
|
|
|
4
4
|
import os from "node:os";
|
|
5
5
|
import crypto from "node:crypto";
|
|
6
6
|
// ── Paths ──────────────────────────────────────────────────────────
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
// Lazy evaluation to support SOULFORGE_DATA_DIR env var for test isolation.
|
|
8
|
+
// Module-level consts are evaluated once at import time, so we use functions
|
|
9
|
+
// to read the env var at call time instead.
|
|
10
|
+
function getDataDirBase() {
|
|
11
|
+
return process.env.SOULFORGE_DATA_DIR || path.join(os.homedir(), ".soulforge");
|
|
12
|
+
}
|
|
13
|
+
export function getDataDir() {
|
|
14
|
+
return getDataDirBase();
|
|
15
|
+
}
|
|
16
|
+
export function getDbPath() {
|
|
17
|
+
return path.join(getDataDirBase(), "soulforge.db");
|
|
18
|
+
}
|
|
19
|
+
export function getEventsDir() {
|
|
20
|
+
return path.join(getDataDirBase(), "events");
|
|
21
|
+
}
|
|
22
|
+
export function getProgressDir() {
|
|
23
|
+
return path.join(getDataDirBase(), "progress");
|
|
24
|
+
}
|
|
25
|
+
// Getter-based compatibility object for lazy path access.
|
|
26
|
+
export const DIRS = Object.defineProperties({}, {
|
|
27
|
+
EVENTS_DIR: {
|
|
28
|
+
enumerable: true,
|
|
29
|
+
get: () => getEventsDir(),
|
|
30
|
+
},
|
|
31
|
+
PROGRESS_DIR: {
|
|
32
|
+
enumerable: true,
|
|
33
|
+
get: () => getProgressDir(),
|
|
34
|
+
},
|
|
35
|
+
});
|
|
36
|
+
/** @deprecated Use getEventsDir() */
|
|
37
|
+
export const EVENTS_DIR = DIRS.EVENTS_DIR;
|
|
38
|
+
/** @deprecated Use getProgressDir() */
|
|
39
|
+
export const PROGRESS_DIR = DIRS.PROGRESS_DIR;
|
|
11
40
|
export function ensureProgressDir() {
|
|
12
|
-
fs.mkdirSync(
|
|
41
|
+
fs.mkdirSync(getProgressDir(), { recursive: true });
|
|
13
42
|
}
|
|
14
43
|
export function getProgressPath(runId) {
|
|
15
44
|
ensureProgressDir();
|
|
16
|
-
return path.join(
|
|
17
|
-
}
|
|
18
|
-
export function getDataDir() {
|
|
19
|
-
return DATA_DIR;
|
|
45
|
+
return path.join(getProgressDir(), `${runId}.txt`);
|
|
20
46
|
}
|
|
21
47
|
// ── DB Singleton ────────────────────────────────────────────────────
|
|
22
48
|
let _db = null;
|
|
23
49
|
export function getDb() {
|
|
24
50
|
if (_db)
|
|
25
51
|
return _db;
|
|
26
|
-
|
|
27
|
-
|
|
52
|
+
const dataDir = getDataDirBase();
|
|
53
|
+
fs.mkdirSync(dataDir, { recursive: true });
|
|
54
|
+
_db = new DatabaseSync(getDbPath());
|
|
28
55
|
_db.exec("PRAGMA journal_mode=WAL");
|
|
29
56
|
_db.exec("PRAGMA foreign_keys=ON");
|
|
30
57
|
migrate(_db);
|
|
@@ -51,6 +78,7 @@ function migrate(db) {
|
|
|
51
78
|
context TEXT NOT NULL DEFAULT '{}',
|
|
52
79
|
callback TEXT,
|
|
53
80
|
worktree TEXT,
|
|
81
|
+
executor_override TEXT,
|
|
54
82
|
created_at TEXT NOT NULL,
|
|
55
83
|
updated_at TEXT NOT NULL
|
|
56
84
|
);
|
|
@@ -127,9 +155,23 @@ function migrate(db) {
|
|
|
127
155
|
catch {
|
|
128
156
|
// Column already exists, ignore
|
|
129
157
|
}
|
|
158
|
+
// Add notify column for step callback notifications
|
|
159
|
+
try {
|
|
160
|
+
db.exec("ALTER TABLE steps ADD COLUMN notify TEXT");
|
|
161
|
+
}
|
|
162
|
+
catch {
|
|
163
|
+
// Column already exists, ignore
|
|
164
|
+
}
|
|
165
|
+
// Add executor_override column for CLI-provided executor override
|
|
166
|
+
try {
|
|
167
|
+
db.exec("ALTER TABLE runs ADD COLUMN executor_override TEXT");
|
|
168
|
+
}
|
|
169
|
+
catch {
|
|
170
|
+
// Column already exists, ignore
|
|
171
|
+
}
|
|
130
172
|
}
|
|
131
173
|
// ── Run Operations ──────────────────────────────────────────────────
|
|
132
|
-
export function createRun(workflowSpec, workflowPath, task, callback, worktreeMetadata) {
|
|
174
|
+
export function createRun(workflowSpec, workflowPath, task, callback, worktreeMetadata, executorOverride) {
|
|
133
175
|
const db = getDb();
|
|
134
176
|
const now = new Date().toISOString();
|
|
135
177
|
const runId = crypto.randomUUID();
|
|
@@ -140,8 +182,8 @@ export function createRun(workflowSpec, workflowPath, task, callback, worktreeMe
|
|
|
140
182
|
};
|
|
141
183
|
db.exec("BEGIN");
|
|
142
184
|
try {
|
|
143
|
-
db.prepare("INSERT INTO runs (id, workflow_id, workflow_path, task, status, context, callback, worktree, created_at, updated_at) VALUES (?, ?, ?, ?, 'pending', ?, ?, ?, ?, ?)").run(runId, workflowSpec.id, workflowPath, task, JSON.stringify(initialContext), callback ? JSON.stringify(callback) : null, worktreeMetadata ? JSON.stringify(worktreeMetadata) : null, now, now);
|
|
144
|
-
const insertStep = db.prepare("INSERT INTO steps (id, run_id, step_id, executor, model, agent_id, step_index, input_template, expects, status, max_retries, type, loop_config, workdir, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
|
|
185
|
+
db.prepare("INSERT INTO runs (id, workflow_id, workflow_path, task, status, context, callback, worktree, executor_override, created_at, updated_at) VALUES (?, ?, ?, ?, 'pending', ?, ?, ?, ?, ?, ?)").run(runId, workflowSpec.id, workflowPath, task, JSON.stringify(initialContext), callback ? JSON.stringify(callback) : null, worktreeMetadata ? JSON.stringify(worktreeMetadata) : null, executorOverride ?? null, now, now);
|
|
186
|
+
const insertStep = db.prepare("INSERT INTO steps (id, run_id, step_id, executor, model, agent_id, step_index, input_template, expects, status, max_retries, type, loop_config, workdir, notify, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
|
|
145
187
|
for (let i = 0; i < workflowSpec.steps.length; i++) {
|
|
146
188
|
const step = workflowSpec.steps[i];
|
|
147
189
|
const stepUuid = crypto.randomUUID();
|
|
@@ -150,7 +192,14 @@ export function createRun(workflowSpec, workflowPath, task, callback, worktreeMe
|
|
|
150
192
|
const maxRetries = step.max_retries ?? step.on_fail?.max_retries ?? 2;
|
|
151
193
|
const stepType = step.type ?? "single";
|
|
152
194
|
const loopConfig = step.loop ? JSON.stringify(step.loop) : null;
|
|
153
|
-
|
|
195
|
+
const executor = step.executor ?? "openclaw";
|
|
196
|
+
// Self executor defaults to on_waiting if notify not specified
|
|
197
|
+
const notify = step.notify
|
|
198
|
+
? JSON.stringify(step.notify)
|
|
199
|
+
: executor === "self"
|
|
200
|
+
? JSON.stringify(["on_waiting"])
|
|
201
|
+
: null;
|
|
202
|
+
insertStep.run(stepUuid, runId, step.id, executor, step.model ?? null, agentId, i, step.input ?? "", step.expects ?? null, status, maxRetries, stepType, loopConfig, step.workdir ?? null, notify, now, now);
|
|
154
203
|
}
|
|
155
204
|
db.exec("COMMIT");
|
|
156
205
|
}
|
|
@@ -283,10 +332,10 @@ export function insertEvent(runId, type, summary, stepId, details) {
|
|
|
283
332
|
const db = getDb();
|
|
284
333
|
db.prepare("INSERT INTO events (run_id, step_id, type, summary, details, created_at) VALUES (?, ?, ?, ?, ?, ?)").run(runId, stepId ?? null, type, summary, details ?? null, new Date().toISOString());
|
|
285
334
|
// Also write to events directory
|
|
286
|
-
fs.mkdirSync(
|
|
335
|
+
fs.mkdirSync(getEventsDir(), { recursive: true });
|
|
287
336
|
const filename = `${new Date().toISOString().replace(/[:.]/g, "-")}-${type}.json`;
|
|
288
337
|
const event = { runId, stepId, type, summary, details, timestamp: new Date().toISOString() };
|
|
289
|
-
fs.writeFileSync(path.join(
|
|
338
|
+
fs.writeFileSync(path.join(getEventsDir(), filename), JSON.stringify(event, null, 2));
|
|
290
339
|
}
|
|
291
340
|
export function getEvents(runId, limit = 50) {
|
|
292
341
|
const db = getDb();
|
package/dist/db/database.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/db/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,MAAM,MAAM,aAAa,CAAC;AAGjC,sEAAsE;AAEtE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,CAAC;AACvD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;AACpD,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AACxD,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AAE5D,MAAM,UAAU,iBAAiB;IAC/B,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,iBAAiB,EAAE,CAAC;IACpB,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,KAAK,MAAM,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,uEAAuE;AAEvE,IAAI,GAAG,GAAwB,IAAI,CAAC;AAEpC,MAAM,UAAU,KAAK;IACnB,IAAI,GAAG;QAAE,OAAO,GAAG,CAAC;IACpB,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,GAAG,GAAG,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;IAChC,GAAG,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACpC,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,CAAC;IACb,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,OAAO;IACrB,IAAI,GAAG,EAAE,CAAC;QACR,IAAI,CAAC;YAAC,GAAG,CAAC,KAAK,EAAE,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QAC7B,GAAG,GAAG,IAAI,CAAC;IACb,CAAC;AACH,CAAC;AAED,uEAAuE;AAEvE,SAAS,OAAO,CAAC,EAAgB;IAC/B,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgEP,CAAC,CAAC;IAEH,6CAA6C;IAC7C,IAAI,CAAC;QACH,EAAE,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,gCAAgC;IAClC,CAAC;IAED,6CAA6C;IAC7C,IAAI,CAAC;QACH,EAAE,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,gCAAgC;IAClC,CAAC;IAED,8DAA8D;IAC9D,IAAI,CAAC;QACH,EAAE,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;IACzE,CAAC;IAAC,MAAM,CAAC;QACP,gCAAgC;IAClC,CAAC;AACH,CAAC;AAoED,uEAAuE;AAEvE,MAAM,UAAU,SAAS,CACvB,YAA0B,EAC1B,YAAoB,EACpB,IAAY,EACZ,QAAyB,EACzB,gBAAiF;IAEjF,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IAElC,MAAM,cAAc,GAA2B;QAC7C,IAAI;QACJ,aAAa,EAAE,eAAe,CAAC,KAAK,CAAC;QACrC,GAAG,YAAY,CAAC,OAAO;KACxB,CAAC;IAEF,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACjB,IAAI,CAAC;QACH,EAAE,CAAC,OAAO,CACR,oKAAoK,CACrK,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAEpM,MAAM,UAAU,GAAG,EAAE,CAAC,OAAO,CAC3B,0OAA0O,CAC3O,CAAC;QAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACnD,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;YACrC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YACvE,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;YAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,EAAE,WAAW,IAAI,CAAC,CAAC;YACtE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC;YACvC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAEhE,UAAU,CAAC,GAAG,CACZ,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,IAAI,UAAU,EACrD,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE,EAChD,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAClD,UAAU,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE,GAAG,EAAE,GAAG,CAC3C,CAAC;QACJ,CAAC;QAED,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACpB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpB,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,OAAO,MAAM,CAAC,KAAK,CAAE,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,KAAa;IAClC,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CACpB,8CAA8C,CAC/C,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAqC,CAAC;IAC9D,OAAO,GAAG,IAAI,IAAI,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAK,GAAG,EAAE;IACjC,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,OAAO,EAAE,CAAC,OAAO,CACf,qDAAqD,CACtD,CAAC,GAAG,CAAC,KAAK,CAA2B,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAa,EAAE,MAAc;IAC3D,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,EAAE,CAAC,OAAO,CACR,yDAAyD,CAC1D,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAa,EAAE,OAA+B;IAC7E,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,EAAE,CAAC,OAAO,CACR,0DAA0D,CAC3D,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC;AAClE,CAAC;AAED,uEAAuE;AAEvE,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,OAAO,EAAE,CAAC,OAAO,CACf,8DAA8D,CAC/D,CAAC,GAAG,CAAC,KAAK,CAA4B,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,MAAc;IACpC,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,OAAQ,EAAE,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC,GAAG,CAAC,MAAM,CAA2B,IAAI,IAAI,CAAC;AACvG,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,OAAQ,EAAE,CAAC,OAAO,CAChB,6FAA6F,CAC9F,CAAC,GAAG,CAAC,KAAK,CAA2B,IAAI,IAAI,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,MAAc,EACd,MAAc,EACd,KAA8I;IAE9I,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,IAAI,GAAG,GAAG,6CAA6C,CAAC;IACxD,MAAM,MAAM,GAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEpC,IAAI,KAAK,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,GAAG,IAAI,cAAc,CAAC;QACtB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IACD,IAAI,KAAK,EAAE,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,GAAG,IAAI,aAAa,CAAC;QACrB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IACD,IAAI,KAAK,EAAE,WAAW,KAAK,SAAS,EAAE,CAAC;QACrC,GAAG,IAAI,mBAAmB,CAAC;QAC3B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACjC,CAAC;IACD,IAAI,KAAK,EAAE,gBAAgB,KAAK,SAAS,EAAE,CAAC;QAC1C,GAAG,IAAI,wBAAwB,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,KAAK,EAAE,yBAAyB,KAAK,SAAS,EAAE,CAAC;QACnD,GAAG,IAAI,iCAAiC,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC/C,CAAC;IAED,GAAG,IAAI,eAAe,CAAC;IACvB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpB,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;IACtC,EAAE,CAAC,OAAO,CACR,+DAA+D,CAChE,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,CAAC;IAClD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CACrB,8FAA8F,CAC/F,CAAC,GAAG,CAAC,KAAK,CAA+B,CAAC;IAE3C,IAAI,IAAI,EAAE,CAAC;QACT,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QACrC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;IACjD,CAAC;SAAM,CAAC;QACN,eAAe,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QACpC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IACjD,CAAC;AACH,CAAC;AAED,uEAAuE;AAEvE,MAAM,UAAU,aAAa,CAAC,KAAa,EAAE,OAAc;IACzD,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CACvB,gNAAgN,CACjN,CAAC;IAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACrB,MAAM,EAAE,GAAG,CAAC,CAAC,kBAAkB,IAAI,CAAC,CAAC,mBAAmB,CAAC;QACzD,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACxG,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,OAAO,EAAE,CAAC,OAAO,CACf,iEAAiE,CAClE,CAAC,GAAG,CAAC,KAAK,CAA6B,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAa;IAC/C,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,OAAQ,EAAE,CAAC,OAAO,CAChB,gGAAgG,CACjG,CAAC,GAAG,CAAC,KAAK,CAA4B,IAAI,IAAI,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAe,EAAE,MAAc,EAAE,MAAe;IAChF,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,EAAE,CAAC,OAAO,CACR,wEAAwE,CACzE,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;SAAM,CAAC;QACN,EAAE,CAAC,OAAO,CACR,4DAA4D,CAC7D,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAe;IACjD,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC,GAAG,CAAC,OAAO,CAAwC,CAAC;IAC7H,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC;IACvC,EAAE,CAAC,OAAO,CACR,iEAAiE,CAClE,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,OAAO,CAAC,CAAC;IACnD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,uEAAuE;AAEvE,MAAM,UAAU,WAAW,CACzB,KAAa,EACb,IAAY,EACZ,OAAe,EACf,MAAe,EACf,OAAgB;IAEhB,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,EAAE,CAAC,OAAO,CACR,oGAAoG,CACrG,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;IAEvF,iCAAiC;IACjC,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC;IAClF,MAAM,KAAK,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;IAC7F,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACpF,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAc,EAAE,KAAK,GAAG,EAAE;IAClD,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,EAAE,CAAC,OAAO,CACf,gEAAgE,CACjE,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAA6B,CAAC;IAClD,CAAC;IACD,OAAO,EAAE,CAAC,OAAO,CACf,+CAA+C,CAChD,CAAC,GAAG,CAAC,KAAK,CAA6B,CAAC;AAC3C,CAAC;AAED,wEAAwE;AAExE,MAAM,UAAU,WAAW,CAAC,KAAa,EAAE,YAAoB,EAAE,QAAgB;IAC/E,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAErC,4BAA4B;IAC5B,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACpC,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,YAAY,CAAC,CAAC;IAC/D,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,gBAAgB,YAAY,sBAAsB,KAAK,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,MAAM,WAAW,GAAG,UAAU,CAAC,UAAU,CAAC;IAE1C,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACjB,IAAI,CAAC;QACH,+BAA+B;QAC/B,EAAE,CAAC,OAAO,CACR,gKAAgK,CACjK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;QAE/B,0CAA0C;QAC1C,EAAE,CAAC,OAAO,CACR,gKAAgK,CACjK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;QAE/B,iCAAiC;QACjC,EAAE,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAE9D,yCAAyC;QACzC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACxC,OAAO,CAAC,kBAAkB,GAAG,QAAQ,CAAC;YACtC,EAAE,CAAC,OAAO,CACR,8EAA8E,CAC/E,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAC7C,CAAC;QAED,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACpB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpB,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/db/database.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ExecuteParams, ExecuteResult, ExecutorAdapter } from "./types.js";
|
|
2
|
+
export declare class CodexCliExecutor implements ExecutorAdapter {
|
|
3
|
+
readonly name = "codex-cli";
|
|
4
|
+
check(): Promise<{
|
|
5
|
+
ok: boolean;
|
|
6
|
+
error?: string;
|
|
7
|
+
}>;
|
|
8
|
+
execute(params: ExecuteParams): Promise<ExecuteResult>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { spawn } from "node:child_process";
|
|
2
|
+
import { extractContext } from "../workflow/template.js";
|
|
3
|
+
export class CodexCliExecutor {
|
|
4
|
+
name = "codex-cli";
|
|
5
|
+
async check() {
|
|
6
|
+
return new Promise((resolve) => {
|
|
7
|
+
const proc = spawn("codex", ["--version"], { stdio: ["ignore", "pipe", "pipe"] });
|
|
8
|
+
proc.on("error", () => resolve({ ok: false, error: "codex CLI not found" }));
|
|
9
|
+
proc.on("close", (code) => {
|
|
10
|
+
resolve(code === 0 ? { ok: true } : { ok: false, error: `codex --version exited ${code}` });
|
|
11
|
+
});
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
async execute(params) {
|
|
15
|
+
const startTime = Date.now();
|
|
16
|
+
const timeout = (params.timeout ?? 600) * 1000;
|
|
17
|
+
const args = [
|
|
18
|
+
"exec",
|
|
19
|
+
"--dangerously-bypass-approvals-and-sandbox",
|
|
20
|
+
];
|
|
21
|
+
if (params.model) {
|
|
22
|
+
args.push("--model", params.model);
|
|
23
|
+
}
|
|
24
|
+
args.push(params.input);
|
|
25
|
+
return new Promise((resolve) => {
|
|
26
|
+
const proc = spawn("codex", args, {
|
|
27
|
+
cwd: params.workdir,
|
|
28
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
29
|
+
env: { ...process.env, ...params.env },
|
|
30
|
+
});
|
|
31
|
+
let stdout = "";
|
|
32
|
+
let stderr = "";
|
|
33
|
+
proc.stdout.on("data", (d) => (stdout += d.toString()));
|
|
34
|
+
proc.stderr.on("data", (d) => (stderr += d.toString()));
|
|
35
|
+
const timer = setTimeout(() => {
|
|
36
|
+
proc.kill("SIGTERM");
|
|
37
|
+
setTimeout(() => proc.kill("SIGKILL"), 5000);
|
|
38
|
+
}, timeout);
|
|
39
|
+
proc.on("close", (code) => {
|
|
40
|
+
clearTimeout(timer);
|
|
41
|
+
const durationMs = Date.now() - startTime;
|
|
42
|
+
const output = stdout.trim();
|
|
43
|
+
const context = extractContext(output);
|
|
44
|
+
let success = code === 0;
|
|
45
|
+
if (success && params.expects) {
|
|
46
|
+
success = output.includes(params.expects);
|
|
47
|
+
}
|
|
48
|
+
resolve({
|
|
49
|
+
output,
|
|
50
|
+
success,
|
|
51
|
+
context,
|
|
52
|
+
error: success ? undefined : stderr.trim() || `Exit code ${code}`,
|
|
53
|
+
durationMs,
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
proc.on("error", (err) => {
|
|
57
|
+
clearTimeout(timer);
|
|
58
|
+
resolve({
|
|
59
|
+
output: "",
|
|
60
|
+
success: false,
|
|
61
|
+
context: {},
|
|
62
|
+
error: `Failed to spawn codex: ${err.message}`,
|
|
63
|
+
durationMs: Date.now() - startTime,
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=codex-cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex-cli.js","sourceRoot":"","sources":["../../src/executors/codex-cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { ClaudeCodeExecutor } from "./claude-code.js";
|
|
2
2
|
import { CodexExecutor } from "./codex.js";
|
|
3
|
+
import { CodexCliExecutor } from "./codex-cli.js";
|
|
3
4
|
import { OpenClawExecutor } from "./openclaw.js";
|
|
4
5
|
import { SelfExecutor } from "./self.js";
|
|
5
6
|
const executors = new Map();
|
|
6
7
|
executors.set("claude-code", new ClaudeCodeExecutor());
|
|
7
8
|
executors.set("codex", new CodexExecutor());
|
|
9
|
+
executors.set("codex-cli", new CodexCliExecutor());
|
|
8
10
|
executors.set("openclaw", new OpenClawExecutor());
|
|
9
11
|
executors.set("self", new SelfExecutor());
|
|
10
12
|
export function getExecutor(type) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/executors/registry.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAiC,CAAC;AAC3D,SAAS,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,kBAAkB,EAAE,CAAC,CAAC;AACvD,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,aAAa,EAAE,CAAC,CAAC;AAC5C,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,gBAAgB,EAAE,CAAC,CAAC;AAClD,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,YAAY,EAAE,CAAC,CAAC;AAE1C,MAAM,UAAU,WAAW,CAAC,IAAkB;IAC5C,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;AAC/B,CAAC"}
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/executors/registry.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAiC,CAAC;AAC3D,SAAS,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,kBAAkB,EAAE,CAAC,CAAC;AACvD,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,aAAa,EAAE,CAAC,CAAC;AAC5C,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,gBAAgB,EAAE,CAAC,CAAC;AACnD,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,gBAAgB,EAAE,CAAC,CAAC;AAClD,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,YAAY,EAAE,CAAC,CAAC;AAE1C,MAAM,UAAU,WAAW,CAAC,IAAkB;IAC5C,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;AAC/B,CAAC"}
|
package/dist/lib/logger.js
CHANGED
|
@@ -1,22 +1,30 @@
|
|
|
1
1
|
import fs from "node:fs";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import os from "node:os";
|
|
4
|
-
const LOG_DIR = path.join(os.homedir(), ".soulforge");
|
|
5
|
-
const LOG_PATH = path.join(LOG_DIR, "daemon.log");
|
|
6
4
|
const MAX_LOG_SIZE = 5 * 1024 * 1024; // 5MB
|
|
5
|
+
function getDataDirBase() {
|
|
6
|
+
return process.env.SOULFORGE_DATA_DIR || path.join(os.homedir(), ".soulforge");
|
|
7
|
+
}
|
|
8
|
+
function getLogDir() {
|
|
9
|
+
return getDataDirBase();
|
|
10
|
+
}
|
|
11
|
+
function getLogPath() {
|
|
12
|
+
return path.join(getLogDir(), "daemon.log");
|
|
13
|
+
}
|
|
7
14
|
function ensureLogDir() {
|
|
8
|
-
fs.mkdirSync(
|
|
15
|
+
fs.mkdirSync(getLogDir(), { recursive: true });
|
|
9
16
|
}
|
|
10
17
|
function rotateIfNeeded() {
|
|
11
18
|
try {
|
|
12
|
-
const
|
|
19
|
+
const logPath = getLogPath();
|
|
20
|
+
const stat = fs.statSync(logPath);
|
|
13
21
|
if (stat.size > MAX_LOG_SIZE) {
|
|
14
|
-
const backup =
|
|
22
|
+
const backup = `${logPath}.1`;
|
|
15
23
|
try {
|
|
16
24
|
fs.unlinkSync(backup);
|
|
17
25
|
}
|
|
18
26
|
catch { }
|
|
19
|
-
fs.renameSync(
|
|
27
|
+
fs.renameSync(logPath, backup);
|
|
20
28
|
}
|
|
21
29
|
}
|
|
22
30
|
catch {
|
|
@@ -32,7 +40,7 @@ function write(level, message, meta) {
|
|
|
32
40
|
ensureLogDir();
|
|
33
41
|
rotateIfNeeded();
|
|
34
42
|
const entry = formatEntry(level, message, meta);
|
|
35
|
-
fs.appendFileSync(
|
|
43
|
+
fs.appendFileSync(getLogPath(), entry);
|
|
36
44
|
if (level === "error") {
|
|
37
45
|
process.stderr.write(entry);
|
|
38
46
|
}
|
|
@@ -45,7 +53,7 @@ export const logger = {
|
|
|
45
53
|
};
|
|
46
54
|
export function readRecentLogs(lines = 50) {
|
|
47
55
|
try {
|
|
48
|
-
const content = fs.readFileSync(
|
|
56
|
+
const content = fs.readFileSync(getLogPath(), "utf-8");
|
|
49
57
|
const allLines = content.split("\n").filter((l) => l.trim());
|
|
50
58
|
return allLines.slice(-lines);
|
|
51
59
|
}
|
package/dist/lib/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/lib/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,MAAM,
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/lib/logger.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/worktree.d.ts
CHANGED
|
@@ -16,6 +16,7 @@ export interface GitRepoInfo {
|
|
|
16
16
|
export declare function validateGitRepo(repoPath: string): GitRepoInfo;
|
|
17
17
|
/**
|
|
18
18
|
* Check if a branch already exists in the repository.
|
|
19
|
+
* For bare+worktree layout, repoPath is the parent directory containing .bare/
|
|
19
20
|
*/
|
|
20
21
|
export declare function branchExists(repoPath: string, branchName: string): boolean;
|
|
21
22
|
/**
|
package/dist/lib/worktree.js
CHANGED
|
@@ -64,12 +64,18 @@ export function validateGitRepo(repoPath) {
|
|
|
64
64
|
}
|
|
65
65
|
/**
|
|
66
66
|
* Check if a branch already exists in the repository.
|
|
67
|
+
* For bare+worktree layout, repoPath is the parent directory containing .bare/
|
|
67
68
|
*/
|
|
68
69
|
export function branchExists(repoPath, branchName) {
|
|
69
70
|
try {
|
|
71
|
+
// Check if this is a bare+worktree layout
|
|
72
|
+
const bareDir = path.join(repoPath, '.bare');
|
|
73
|
+
const isBareLayout = fs.existsSync(bareDir) && fs.statSync(bareDir).isDirectory();
|
|
74
|
+
const env = isBareLayout ? { ...process.env, GIT_DIR: bareDir } : process.env;
|
|
70
75
|
const result = execSync(`git branch --list "${branchName}"`, {
|
|
71
76
|
cwd: repoPath,
|
|
72
77
|
encoding: 'utf-8',
|
|
78
|
+
env,
|
|
73
79
|
}).trim();
|
|
74
80
|
return result.length > 0;
|
|
75
81
|
}
|
|
@@ -114,10 +120,14 @@ export function createWorktree(repoPath, branch, repoInfo) {
|
|
|
114
120
|
}
|
|
115
121
|
const worktreePath = path.join(worktreesDir, branch.replace(/\//g, '-'));
|
|
116
122
|
fs.mkdirSync(worktreesDir, { recursive: true });
|
|
117
|
-
|
|
118
|
-
|
|
123
|
+
const gitEnv = { ...process.env, GIT_DIR: gitDir };
|
|
124
|
+
// Get current HEAD to branch from.
|
|
125
|
+
// For bare layout, use the original repoPath (an existing worktree) to get HEAD,
|
|
126
|
+
// since the bare repo's HEAD may not point to a valid commit.
|
|
127
|
+
const headCwd = info.type === 'bare' ? path.resolve(repoPath) : workingDir;
|
|
128
|
+
const head = execSync('git rev-parse HEAD', { cwd: headCwd }).toString().trim();
|
|
119
129
|
// Create worktree with new branch
|
|
120
|
-
execSync(`git worktree add "${worktreePath}" -b "${branch}" ${head}`, { cwd: workingDir, env:
|
|
130
|
+
execSync(`git worktree add "${worktreePath}" -b "${branch}" ${head}`, { cwd: workingDir, env: gitEnv });
|
|
121
131
|
return { worktreePath, branch };
|
|
122
132
|
}
|
|
123
133
|
export function removeWorktree(repoPath, worktreePath) {
|
package/dist/lib/worktree.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worktree.js","sourceRoot":"","sources":["../../src/lib/worktree.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AAYzB;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE5C,0DAA0D;IAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC9C,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;QACjE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IAC/C,CAAC;IAED,4EAA4E;IAC5E,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAChD,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YAClB,sEAAsE;YACtE,IAAI,CAAC;gBACH,MAAM,YAAY,GAAG,QAAQ,CAAC,gDAAgD,EAAE;oBAC9E,GAAG,EAAE,YAAY;oBACjB,QAAQ,EAAE,OAAO;iBAClB,CAAC,CAAC,IAAI,EAAE,CAAC;gBACV,IAAI,YAAY,EAAE,CAAC;oBACjB,uCAAuC;oBACvC,OAAO,eAAe,CAAC,YAAY,CAAC,CAAC;gBACvC,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,iCAAiC;YACnC,CAAC;YACD,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;QACtD,CAAC;aAAM,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YAC9B,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;QACtD,CAAC;IACH,CAAC;IAED,6CAA6C;IAC7C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,QAAQ,CAAC,+BAA+B,EAAE;YACxD,GAAG,EAAE,YAAY;YACjB,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC,IAAI,EAAE,CAAC;QACV,IAAI,OAAO,EAAE,CAAC;YACZ,2CAA2C;YAC3C,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC5C,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;YACzD,IAAI,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;gBAC/E,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;YACnD,CAAC;YACD,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;QACjD,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,iBAAiB;IACnB,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC7C,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"worktree.js","sourceRoot":"","sources":["../../src/lib/worktree.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Test setup for Soulforge
|
|
3
|
+
*
|
|
4
|
+
* Sets up environment variables for test isolation before any tests run.
|
|
5
|
+
* This prevents test pollution of the production ~/.soulforge directory.
|
|
6
|
+
*/
|
|
7
|
+
import fs from "node:fs";
|
|
8
|
+
import os from "node:os";
|
|
9
|
+
import path from "node:path";
|
|
10
|
+
// Create a temp directory for test isolation
|
|
11
|
+
const testDataDir = fs.mkdtempSync(path.join(os.tmpdir(), "soulforge-test-"));
|
|
12
|
+
// Set the env var BEFORE any modules are imported
|
|
13
|
+
process.env.SOULFORGE_DATA_DIR = testDataDir;
|
|
14
|
+
console.log(`[test-setup] SOULFORGE_DATA_DIR=${testDataDir}`);
|
|
15
|
+
// Cleanup on exit
|
|
16
|
+
process.on("exit", () => {
|
|
17
|
+
try {
|
|
18
|
+
fs.rmSync(testDataDir, { recursive: true, force: true });
|
|
19
|
+
}
|
|
20
|
+
catch { }
|
|
21
|
+
});
|
|
22
|
+
process.on("SIGINT", () => {
|
|
23
|
+
try {
|
|
24
|
+
fs.rmSync(testDataDir, { recursive: true, force: true });
|
|
25
|
+
}
|
|
26
|
+
catch { }
|
|
27
|
+
process.exit(1);
|
|
28
|
+
});
|
|
29
|
+
//# sourceMappingURL=test-setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-setup.js","sourceRoot":"","sources":["../src/test-setup.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,6CAA6C;AAC7C,MAAM,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,iBAAiB,CAAC,CAAC,CAAC;AAE9E,kDAAkD;AAClD,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,WAAW,CAAC;AAE7C,OAAO,CAAC,GAAG,CAAC,mCAAmC,WAAW,EAAE,CAAC,CAAC;AAE9D,kBAAkB;AAClB,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;IACtB,IAAI,CAAC;QACH,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;AACZ,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;IACxB,IAAI,CAAC;QACH,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IACV,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/dist/workflow/parser.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import fs from "node:fs/promises";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import YAML from "yaml";
|
|
4
|
+
const VALID_NOTIFY_EVENTS = ["on_complete", "on_waiting", "on_fail"];
|
|
4
5
|
export async function loadWorkflowSpec(workflowPath) {
|
|
5
6
|
// workflowPath can be a directory (containing workflow.yml) or a file
|
|
6
7
|
let filePath;
|
|
@@ -19,13 +20,20 @@ export async function loadWorkflowSpec(workflowPath) {
|
|
|
19
20
|
if (!Array.isArray(parsed.steps) || parsed.steps.length === 0) {
|
|
20
21
|
throw new Error(`workflow.yml missing 'steps' in ${filePath}`);
|
|
21
22
|
}
|
|
22
|
-
// Parse loop configs from raw YAML
|
|
23
|
+
// Parse loop configs and normalize notify from raw YAML
|
|
23
24
|
for (const step of parsed.steps) {
|
|
24
25
|
const rawStep = step;
|
|
25
26
|
if (rawStep.type)
|
|
26
27
|
step.type = rawStep.type;
|
|
27
28
|
if (rawStep.loop)
|
|
28
29
|
step.loop = parseLoopConfig(rawStep.loop);
|
|
30
|
+
if (rawStep.notify !== undefined) {
|
|
31
|
+
step.notify = normalizeNotify(rawStep.notify, step.id);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
// Normalize defaults.notify if present
|
|
35
|
+
if (parsed.defaults?.notify !== undefined) {
|
|
36
|
+
parsed.defaults.notify = normalizeNotify(parsed.defaults.notify, "defaults");
|
|
29
37
|
}
|
|
30
38
|
// Apply defaults
|
|
31
39
|
if (parsed.defaults) {
|
|
@@ -41,6 +49,9 @@ export async function loadWorkflowSpec(workflowPath) {
|
|
|
41
49
|
}
|
|
42
50
|
if (!step.workdir && parsed.defaults.workdir)
|
|
43
51
|
step.workdir = parsed.defaults.workdir;
|
|
52
|
+
if (step.notify === undefined && parsed.defaults.notify !== undefined) {
|
|
53
|
+
step.notify = parsed.defaults.notify;
|
|
54
|
+
}
|
|
44
55
|
}
|
|
45
56
|
}
|
|
46
57
|
// Default executor to openclaw for backward compat
|
|
@@ -60,6 +71,20 @@ function parseLoopConfig(raw) {
|
|
|
60
71
|
verifyStep: raw.verify_step ?? raw.verifyStep,
|
|
61
72
|
};
|
|
62
73
|
}
|
|
74
|
+
function normalizeNotify(value, context) {
|
|
75
|
+
const values = Array.isArray(value) ? value : [value];
|
|
76
|
+
const result = [];
|
|
77
|
+
for (const v of values) {
|
|
78
|
+
if (typeof v !== "string") {
|
|
79
|
+
throw new Error(`Invalid notify value in "${context}": expected string, got ${typeof v}`);
|
|
80
|
+
}
|
|
81
|
+
if (!VALID_NOTIFY_EVENTS.includes(v)) {
|
|
82
|
+
throw new Error(`Invalid notify value "${v}" in "${context}". Valid values: ${VALID_NOTIFY_EVENTS.join(", ")}`);
|
|
83
|
+
}
|
|
84
|
+
result.push(v);
|
|
85
|
+
}
|
|
86
|
+
return result;
|
|
87
|
+
}
|
|
63
88
|
function validateSteps(steps) {
|
|
64
89
|
const ids = new Set();
|
|
65
90
|
for (const step of steps) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/workflow/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,YAAoB;IACzD,sEAAsE;IACtE,IAAI,QAAgB,CAAC;IACrB,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACzC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;QACvB,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IACrD,CAAC;SAAM,CAAC;QACN,QAAQ,GAAG,YAAY,CAAC;IAC1B,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAiB,CAAC;IAE/C,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,gCAAgC,QAAQ,EAAE,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,KAAK,CAAC,mCAAmC,QAAQ,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/workflow/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,MAAM,mBAAmB,GAAkB,CAAC,aAAa,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;AAEpF,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,YAAoB;IACzD,sEAAsE;IACtE,IAAI,QAAgB,CAAC;IACrB,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACzC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;QACvB,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IACrD,CAAC;SAAM,CAAC;QACN,QAAQ,GAAG,YAAY,CAAC;IAC1B,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAiB,CAAC;IAE/C,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,gCAAgC,QAAQ,EAAE,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,KAAK,CAAC,mCAAmC,QAAQ,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,wDAAwD;IACxD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,IAAW,CAAC;QAC5B,IAAI,OAAO,CAAC,IAAI;YAAE,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAC3C,IAAI,OAAO,CAAC,IAAI;YAAE,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5D,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAED,uCAAuC;IACvC,IAAI,MAAM,CAAC,QAAQ,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;QAC1C,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC/E,CAAC;IAED,iBAAiB;IACjB,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAChC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ;gBAAE,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACzF,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK;gBAAE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC7E,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO;gBAAE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;YACrF,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;gBAChF,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC;YACjD,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO;gBAAE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;YACrF,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACtE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;YACvC,CAAC;QACH,CAAC;IACH,CAAC;IAED,mDAAmD;IACnD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;IACjD,CAAC;IAED,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAE5B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,eAAe,CAAC,GAAQ;IAC/B,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,YAAY,EAAE,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,YAAY;QACnD,UAAU,EAAE,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,UAAU;QAC7C,UAAU,EAAE,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,UAAU;KAC9C,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,KAAc,EAAE,OAAe;IACtD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,MAAM,GAAkB,EAAE,CAAC;IAEjC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,4BAA4B,OAAO,2BAA2B,OAAO,CAAC,EAAE,CAAC,CAAC;QAC5F,CAAC;QACD,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAgB,CAAC,EAAE,CAAC;YACpD,MAAM,IAAI,KAAK,CACb,yBAAyB,CAAC,SAAS,OAAO,oBAAoB,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC/F,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,CAAgB,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,aAAa,CAAC,KAAqB;IAC1C,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC;QACD,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QACpD,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEjB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;YACpD,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,EAAE,mBAAmB,CAAC,CAAC;QACvD,CAAC;QAED,uBAAuB;QACvB,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,EAAE,oCAAoC,CAAC,CAAC;YACxE,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACjC,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,EAAE,+BAA+B,CAAC,CAAC;YACnE,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBACnF,oEAAoE;gBACpE,mEAAmE;YACrE,CAAC;QACH,CAAC;QAED,mCAAmC;QACnC,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,EAAE,6CAA6C,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;AACH,CAAC"}
|
package/dist/workflow/types.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
export type ExecutorType = "openclaw" | "claude-code" | "codex" | "self";
|
|
1
|
+
export type ExecutorType = "openclaw" | "claude-code" | "codex" | "codex-cli" | "self";
|
|
2
|
+
export type NotifyEvent = "on_complete" | "on_waiting" | "on_fail";
|
|
2
3
|
export type LoopConfig = {
|
|
3
4
|
over: "stories";
|
|
4
5
|
completion: "all_done";
|
|
@@ -31,6 +32,7 @@ export type WorkflowStep = {
|
|
|
31
32
|
max_retries?: number;
|
|
32
33
|
on_fail?: StepFailure;
|
|
33
34
|
on_reject?: OnRejectConfig;
|
|
35
|
+
notify?: NotifyEvent | NotifyEvent[];
|
|
34
36
|
};
|
|
35
37
|
export type AgentRole = "analysis" | "coding" | "verification" | "testing" | "pr" | "scanning";
|
|
36
38
|
export type WorkflowAgent = {
|
|
@@ -50,6 +52,7 @@ export type WorkflowDefaults = {
|
|
|
50
52
|
timeout?: number;
|
|
51
53
|
max_retries?: number;
|
|
52
54
|
workdir?: string;
|
|
55
|
+
notify?: NotifyEvent | NotifyEvent[];
|
|
53
56
|
};
|
|
54
57
|
export type WorkflowSpec = {
|
|
55
58
|
id: string;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ghostwater/soulforge",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "Pluggable executor workflow engine for AI coding agents. Dispatch workflow steps to Claude Code, Codex CLI, or human review checkpoints.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"engines": {
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"build": "tsc -p tsconfig.json && chmod +x dist/cli/cli.js",
|
|
14
14
|
"dev": "tsc -p tsconfig.json --watch",
|
|
15
15
|
"start": "node dist/cli/cli.js",
|
|
16
|
-
"test": "node --test src/**/*.test.ts",
|
|
16
|
+
"test": "node --import ./src/test-setup.ts --test src/**/*.test.ts",
|
|
17
17
|
"prepublishOnly": "npm run build"
|
|
18
18
|
},
|
|
19
19
|
"keywords": [
|