@oisincoveney/pipeline 1.27.4 → 1.27.6
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/dist/config.js +13 -13
- package/dist/runner.js +1 -1
- package/dist/schedule-planner.js +6 -1
- package/docs/config-architecture.md +1 -1
- package/package.json +1 -1
package/dist/config.js
CHANGED
|
@@ -70,7 +70,7 @@ const PACKAGE_DEFAULT_RUNNERS_YAML = `version: 1
|
|
|
70
70
|
runners:
|
|
71
71
|
opencode:
|
|
72
72
|
type: opencode
|
|
73
|
-
model:
|
|
73
|
+
model: opencode/deepseek-v4-flash-free
|
|
74
74
|
capabilities:
|
|
75
75
|
native_subagents: true
|
|
76
76
|
rules: true
|
|
@@ -344,54 +344,54 @@ scheduler:
|
|
|
344
344
|
backlog-intake:
|
|
345
345
|
category: intake
|
|
346
346
|
profile: moka-researcher
|
|
347
|
-
models: [
|
|
347
|
+
models: [opencode/deepseek-v4-flash-free, openai/gpt-5.5-fast]
|
|
348
348
|
red-tests:
|
|
349
349
|
category: red
|
|
350
350
|
profile: moka-test-writer
|
|
351
|
-
models: [
|
|
351
|
+
models: [opencode/deepseek-v4-flash-free, openai/gpt-5.5, kimi-for-coding/kimi-k2-thinking]
|
|
352
352
|
green-implementation:
|
|
353
353
|
category: green
|
|
354
354
|
profile: moka-code-writer
|
|
355
|
-
models: [
|
|
355
|
+
models: [opencode/deepseek-v4-flash-free, kimi-for-coding/k2p6, opencode-go/qwen3.7-max, opencode-go/deepseek-v4-pro]
|
|
356
356
|
verification:
|
|
357
357
|
category: verification
|
|
358
358
|
profile: moka-verifier
|
|
359
|
-
models: [
|
|
359
|
+
models: [opencode/deepseek-v4-flash-free, openai/gpt-5.5]
|
|
360
360
|
execute:
|
|
361
361
|
required_categories: [intake, research, red, green, mechanical, acceptance, verification, learn]
|
|
362
362
|
nodes:
|
|
363
363
|
backlog-intake:
|
|
364
364
|
category: intake
|
|
365
365
|
profile: moka-researcher
|
|
366
|
-
models: [
|
|
366
|
+
models: [opencode/deepseek-v4-flash-free, openai/gpt-5.5-fast]
|
|
367
367
|
research:
|
|
368
368
|
category: research
|
|
369
369
|
profile: moka-researcher
|
|
370
|
-
models: [
|
|
370
|
+
models: [opencode/deepseek-v4-flash-free, openai/gpt-5.5-fast, kimi-for-coding/k2p6]
|
|
371
371
|
red-tests:
|
|
372
372
|
category: red
|
|
373
373
|
profile: moka-test-writer
|
|
374
|
-
models: [
|
|
374
|
+
models: [opencode/deepseek-v4-flash-free, openai/gpt-5.5, kimi-for-coding/kimi-k2-thinking]
|
|
375
375
|
green-backend:
|
|
376
376
|
category: green
|
|
377
377
|
profile: moka-code-writer
|
|
378
|
-
models: [
|
|
378
|
+
models: [opencode/deepseek-v4-flash-free, kimi-for-coding/k2p6, opencode-go/qwen3.7-max, opencode-go/deepseek-v4-pro]
|
|
379
379
|
green-frontend:
|
|
380
380
|
category: green
|
|
381
381
|
profile: moka-code-writer
|
|
382
|
-
models: [
|
|
382
|
+
models: [opencode/deepseek-v4-flash-free, kimi-for-coding/k2p6, opencode-go/qwen3.7-max, opencode-go/deepseek-v4-pro]
|
|
383
383
|
acceptance-review:
|
|
384
384
|
category: acceptance
|
|
385
385
|
profile: moka-acceptance-reviewer
|
|
386
|
-
models: [
|
|
386
|
+
models: [opencode/deepseek-v4-flash-free, openai/gpt-5.5]
|
|
387
387
|
verification:
|
|
388
388
|
category: verification
|
|
389
389
|
profile: moka-verifier
|
|
390
|
-
models: [
|
|
390
|
+
models: [opencode/deepseek-v4-flash-free, openai/gpt-5.5]
|
|
391
391
|
learn:
|
|
392
392
|
category: learn
|
|
393
393
|
profile: moka-learner
|
|
394
|
-
models: [
|
|
394
|
+
models: [opencode/deepseek-v4-flash-free, openai/gpt-5.5-fast]
|
|
395
395
|
schedules:
|
|
396
396
|
quick-schedule:
|
|
397
397
|
baseline: quick
|
package/dist/runner.js
CHANGED
|
@@ -17,7 +17,7 @@ const OPENCODE_EXCLUDES = [
|
|
|
17
17
|
"coverage/"
|
|
18
18
|
];
|
|
19
19
|
const LINE_RE = /\r?\n/;
|
|
20
|
-
const DEFAULT_OPENCODE_MODEL = "
|
|
20
|
+
const DEFAULT_OPENCODE_MODEL = "opencode/deepseek-v4-flash-free";
|
|
21
21
|
function ensureOpencodeGitExcludes(worktreePath) {
|
|
22
22
|
const excludePath = join(worktreePath, ".git", "info", "exclude");
|
|
23
23
|
if (!existsSync(excludePath)) return;
|
package/dist/schedule-planner.js
CHANGED
|
@@ -19,6 +19,7 @@ const GENERATED_ID_INVALID_CHARS_RE = /[^a-z0-9]+/g;
|
|
|
19
19
|
const GENERATED_ID_TRIM_HYPHENS_RE = /^-+|-+$/g;
|
|
20
20
|
const STARTS_WITH_ALPHA_RE = /^[a-z]/;
|
|
21
21
|
const LINE_RE = /\r?\n/;
|
|
22
|
+
const MARKDOWN_YAML_FENCE_RE = /^\s*```(?:ya?ml)?\s*\r?\n([\s\S]*?)\r?\n```\s*$/i;
|
|
22
23
|
const SCHEDULE_PLANNER_REPAIR_ATTEMPTS = 1;
|
|
23
24
|
const SCHEDULE_BUILTINS = [
|
|
24
25
|
"drain-merge",
|
|
@@ -514,9 +515,10 @@ async function planScheduleArtifact(baseline, plannerProfile, options, planningC
|
|
|
514
515
|
].join("\n"));
|
|
515
516
|
}
|
|
516
517
|
function parseGeneratedSchedule(source, sourcePath) {
|
|
518
|
+
const parseableSource = normalizeGeneratedScheduleSource(source);
|
|
517
519
|
try {
|
|
518
520
|
return {
|
|
519
|
-
artifact: canonicalizeGeneratedScheduleIds(parseScheduleArtifact(
|
|
521
|
+
artifact: canonicalizeGeneratedScheduleIds(parseScheduleArtifact(parseableSource, sourcePath)),
|
|
520
522
|
ok: true
|
|
521
523
|
};
|
|
522
524
|
} catch (err) {
|
|
@@ -527,6 +529,9 @@ function parseGeneratedSchedule(source, sourcePath) {
|
|
|
527
529
|
};
|
|
528
530
|
}
|
|
529
531
|
}
|
|
532
|
+
function normalizeGeneratedScheduleSource(source) {
|
|
533
|
+
return MARKDOWN_YAML_FENCE_RE.exec(source)?.[1] ?? source;
|
|
534
|
+
}
|
|
530
535
|
function acceptedGeneratedSchedule(parsed) {
|
|
531
536
|
if (!parsed.ok) return parsed;
|
|
532
537
|
const builtinCheck = generatedBuiltinsSupported(parsed.artifact);
|
package/package.json
CHANGED
|
@@ -120,7 +120,7 @@
|
|
|
120
120
|
"prepack": "bun run build:cli"
|
|
121
121
|
},
|
|
122
122
|
"type": "module",
|
|
123
|
-
"version": "1.27.
|
|
123
|
+
"version": "1.27.6",
|
|
124
124
|
"description": "Config-driven multi-agent pipeline runner for repository work",
|
|
125
125
|
"main": "./dist/index.js",
|
|
126
126
|
"types": "./dist/index.d.ts",
|