@kody-ade/kody-engine 0.4.536 → 0.4.537
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/bin/kody.js
CHANGED
|
@@ -15,7 +15,7 @@ var init_package = __esm({
|
|
|
15
15
|
"package.json"() {
|
|
16
16
|
package_default = {
|
|
17
17
|
name: "@kody-ade/kody-engine",
|
|
18
|
-
version: "0.4.
|
|
18
|
+
version: "0.4.537",
|
|
19
19
|
description: "kody \u2014 autonomous development engine. Single-session Claude Code agent behind a generic executor + declarative implementation profiles.",
|
|
20
20
|
license: "MIT",
|
|
21
21
|
type: "module",
|
|
@@ -22642,14 +22642,12 @@ async function runJob(job, base) {
|
|
|
22642
22642
|
}
|
|
22643
22643
|
if (valid.workflowRunId && workflowIdentity && hasGitHubActionsIdentity()) {
|
|
22644
22644
|
const facts = result.workflowState?.facts ?? {};
|
|
22645
|
-
const pr = typeof facts.pr === "number" ? facts.pr : typeof valid.cliArgs.pr === "number" ? valid.cliArgs.pr : void 0;
|
|
22646
|
-
const headSha = typeof facts.headSha === "string" ? facts.headSha : typeof valid.cliArgs.headSha === "string" ? valid.cliArgs.headSha : void 0;
|
|
22647
22645
|
await notifyWorkflowCompleted({
|
|
22648
22646
|
workflowId: workflowIdentity,
|
|
22649
22647
|
runId: valid.workflowRunId,
|
|
22650
22648
|
status: result.workflowState?.status === "blocked" ? "blocked" : result.exitCode === 0 ? "success" : "failed",
|
|
22651
22649
|
...result.reason ? { summary: result.reason } : {},
|
|
22652
|
-
...
|
|
22650
|
+
...Object.keys(facts).length > 0 ? { output: facts } : {}
|
|
22653
22651
|
});
|
|
22654
22652
|
}
|
|
22655
22653
|
return result;
|
|
@@ -22768,9 +22766,10 @@ async function runCapabilityWorkflow(parent, workflow, capability, base, checkpo
|
|
|
22768
22766
|
}
|
|
22769
22767
|
return result;
|
|
22770
22768
|
}
|
|
22771
|
-
return runLinearCapabilityWorkflow(parent, workflow, capability, base);
|
|
22769
|
+
return runLinearCapabilityWorkflow(parent, workflow, capability, base, checkpoint);
|
|
22772
22770
|
}
|
|
22773
|
-
async function runLinearCapabilityWorkflow(parent, workflow, capability, base) {
|
|
22771
|
+
async function runLinearCapabilityWorkflow(parent, workflow, capability, base, checkpoint) {
|
|
22772
|
+
const state = initialWorkflowState(parent, workflow);
|
|
22774
22773
|
let chainData = {
|
|
22775
22774
|
...base.preloadedData ?? {},
|
|
22776
22775
|
runSubjectType: "workflow",
|
|
@@ -22821,6 +22820,10 @@ async function runLinearCapabilityWorkflow(parent, workflow, capability, base) {
|
|
|
22821
22820
|
workflowContinueOn: step.continueOn ?? []
|
|
22822
22821
|
}
|
|
22823
22822
|
});
|
|
22823
|
+
mergeWorkflowResults(state, result.capabilityResults);
|
|
22824
|
+
if (result.capabilityOutput && typeof result.capabilityOutput === "object" && !Array.isArray(result.capabilityOutput)) {
|
|
22825
|
+
Object.assign(state.facts, result.capabilityOutput);
|
|
22826
|
+
}
|
|
22824
22827
|
const outcome = workflowOutcome(result);
|
|
22825
22828
|
const prUrl = result.prUrl ?? result.taskState?.core.prUrl ?? (typeof chainData.workflowPrUrl === "string" ? chainData.workflowPrUrl : void 0);
|
|
22826
22829
|
chainData = {
|
|
@@ -22835,13 +22838,20 @@ async function runLinearCapabilityWorkflow(parent, workflow, capability, base) {
|
|
|
22835
22838
|
...parsePrNumber5(prUrl) ? { workflowPrNumber: parsePrNumber5(prUrl) } : {}
|
|
22836
22839
|
};
|
|
22837
22840
|
if (result.exitCode !== 0 && !canContinueWorkflow(step, outcome)) {
|
|
22841
|
+
state.status = result.capabilityResults?.at(-1)?.status === "blocked" ? "blocked" : "failed";
|
|
22842
|
+
state.blocker = result.reason ?? `workflow ${capability.slug} stopped at step ${index + 1}/${workflow.steps.length}: ${label}`;
|
|
22843
|
+
await checkpoint?.(state);
|
|
22838
22844
|
return withWorkflowBoundaryEval(capability, {
|
|
22839
22845
|
...result,
|
|
22840
|
-
reason:
|
|
22846
|
+
reason: state.blocker,
|
|
22847
|
+
workflowState: state
|
|
22841
22848
|
});
|
|
22842
22849
|
}
|
|
22843
22850
|
}
|
|
22844
|
-
|
|
22851
|
+
state.status = "done";
|
|
22852
|
+
delete state.blocker;
|
|
22853
|
+
await checkpoint?.(state);
|
|
22854
|
+
return withWorkflowBoundaryEval(capability, { ...result, workflowState: state });
|
|
22845
22855
|
}
|
|
22846
22856
|
function isGraphWorkflow(workflow) {
|
|
22847
22857
|
return workflow.startAt !== void 0 || workflow.steps.some((step) => step.id !== void 0 || step.next !== void 0);
|
|
@@ -22881,7 +22891,11 @@ function initialWorkflowState(parent, workflow) {
|
|
|
22881
22891
|
...currentStepId ? { currentStepId } : {},
|
|
22882
22892
|
completedStepIds: [...prior?.completedStepIds ?? []],
|
|
22883
22893
|
transitionCounts: { ...prior?.transitionCounts ?? {} },
|
|
22884
|
-
facts: {
|
|
22894
|
+
facts: {
|
|
22895
|
+
...workflowInputContext(parent.cliArgs),
|
|
22896
|
+
...parent.workflowFacts ?? {},
|
|
22897
|
+
...prior?.facts ?? {}
|
|
22898
|
+
},
|
|
22885
22899
|
evidence: { ...prior?.evidence ?? {} },
|
|
22886
22900
|
artifacts: (prior?.artifacts ?? []).map((artifact) => ({ ...artifact }))
|
|
22887
22901
|
};
|
|
@@ -22968,6 +22982,9 @@ async function runGraphCapabilityWorkflow(parent, workflow, capability, base, ch
|
|
|
22968
22982
|
}
|
|
22969
22983
|
});
|
|
22970
22984
|
mergeWorkflowResults(state, result.capabilityResults);
|
|
22985
|
+
if (result.capabilityOutput && typeof result.capabilityOutput === "object" && !Array.isArray(result.capabilityOutput)) {
|
|
22986
|
+
Object.assign(state.facts, result.capabilityOutput);
|
|
22987
|
+
}
|
|
22971
22988
|
const outcome = workflowOutcome(result);
|
|
22972
22989
|
const prUrl = result.prUrl ?? result.taskState?.core.prUrl ?? (typeof chainData.workflowPrUrl === "string" ? chainData.workflowPrUrl : void 0);
|
|
22973
22990
|
chainData = {
|
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kody-ade/kody-engine",
|
|
3
|
-
"version": "0.4.
|
|
4
|
-
"description": "kody
|
|
3
|
+
"version": "0.4.537",
|
|
4
|
+
"description": "kody — autonomous development engine. Single-session Claude Code agent behind a generic executor + declarative implementation profiles.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"bin": {
|
|
@@ -12,29 +12,6 @@
|
|
|
12
12
|
"templates",
|
|
13
13
|
"kody.config.schema.json"
|
|
14
14
|
],
|
|
15
|
-
"scripts": {
|
|
16
|
-
"kody:run": "tsx bin/kody.ts",
|
|
17
|
-
"serve": "tsx bin/kody.ts serve",
|
|
18
|
-
"serve:vscode": "tsx bin/kody.ts serve vscode",
|
|
19
|
-
"serve:claude": "tsx bin/kody.ts serve claude",
|
|
20
|
-
"clean:dist": "node scripts/clean-dist.cjs",
|
|
21
|
-
"build": "pnpm clean:dist && tsup && node scripts/copy-assets.cjs",
|
|
22
|
-
"check:modularity": "tsx scripts/check-script-modularity.ts",
|
|
23
|
-
"pretest": "pnpm check:modularity",
|
|
24
|
-
"test": "vitest run tests/unit tests/int --coverage",
|
|
25
|
-
"posttest": "tsx scripts/check-coverage-floor.ts",
|
|
26
|
-
"test:smoke": "vitest run tests/smoke --no-coverage",
|
|
27
|
-
"test:e2e": "vitest run tests/e2e --no-coverage",
|
|
28
|
-
"test:runtime-services": "node --test \"tests/runtime-services/*.test.mjs\"",
|
|
29
|
-
"test:all": "vitest run tests --no-coverage",
|
|
30
|
-
"typecheck": "tsc --noEmit",
|
|
31
|
-
"lint": "biome check",
|
|
32
|
-
"lint:fix": "biome check --write",
|
|
33
|
-
"format": "biome format --write",
|
|
34
|
-
"verify:package": "node scripts/verify-package-tarball.cjs",
|
|
35
|
-
"brain:publish": "docker buildx build --platform linux/amd64 -f runner/Dockerfile.brain --build-arg KODY_ENGINE_REF=$(git rev-parse HEAD) -t ghcr.io/${KODY_BRAIN_GHCR_OWNER:-aharonyaircohen}/kody-brain:latest --push runner",
|
|
36
|
-
"prepublishOnly": "pnpm typecheck && pnpm test:runtime-services && pnpm build && pnpm verify:package"
|
|
37
|
-
},
|
|
38
15
|
"dependencies": {
|
|
39
16
|
"@actions/cache": "^6.0.0",
|
|
40
17
|
"@anthropic-ai/claude-agent-sdk": "0.2.119",
|
|
@@ -61,5 +38,27 @@
|
|
|
61
38
|
"url": "git+https://github.com/aharonyaircohen/kody-engine.git"
|
|
62
39
|
},
|
|
63
40
|
"homepage": "https://github.com/aharonyaircohen/kody-engine",
|
|
64
|
-
"bugs": "https://github.com/aharonyaircohen/kody-engine/issues"
|
|
65
|
-
|
|
41
|
+
"bugs": "https://github.com/aharonyaircohen/kody-engine/issues",
|
|
42
|
+
"scripts": {
|
|
43
|
+
"kody:run": "tsx bin/kody.ts",
|
|
44
|
+
"serve": "tsx bin/kody.ts serve",
|
|
45
|
+
"serve:vscode": "tsx bin/kody.ts serve vscode",
|
|
46
|
+
"serve:claude": "tsx bin/kody.ts serve claude",
|
|
47
|
+
"clean:dist": "node scripts/clean-dist.cjs",
|
|
48
|
+
"build": "pnpm clean:dist && tsup && node scripts/copy-assets.cjs",
|
|
49
|
+
"check:modularity": "tsx scripts/check-script-modularity.ts",
|
|
50
|
+
"pretest": "pnpm check:modularity",
|
|
51
|
+
"test": "vitest run tests/unit tests/int --coverage",
|
|
52
|
+
"posttest": "tsx scripts/check-coverage-floor.ts",
|
|
53
|
+
"test:smoke": "vitest run tests/smoke --no-coverage",
|
|
54
|
+
"test:e2e": "vitest run tests/e2e --no-coverage",
|
|
55
|
+
"test:runtime-services": "node --test \"tests/runtime-services/*.test.mjs\"",
|
|
56
|
+
"test:all": "vitest run tests --no-coverage",
|
|
57
|
+
"typecheck": "tsc --noEmit",
|
|
58
|
+
"lint": "biome check",
|
|
59
|
+
"lint:fix": "biome check --write",
|
|
60
|
+
"format": "biome format --write",
|
|
61
|
+
"verify:package": "node scripts/verify-package-tarball.cjs",
|
|
62
|
+
"brain:publish": "docker buildx build --platform linux/amd64 -f runner/Dockerfile.brain --build-arg KODY_ENGINE_REF=$(git rev-parse HEAD) -t ghcr.io/${KODY_BRAIN_GHCR_OWNER:-aharonyaircohen}/kody-brain:latest --push runner"
|
|
63
|
+
}
|
|
64
|
+
}
|