@kody-ade/kody-engine 0.4.439 → 0.4.440
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.440",
|
|
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",
|
|
@@ -16870,6 +16870,54 @@ var init_parseJobStateFromAgentResult = __esm({
|
|
|
16870
16870
|
}
|
|
16871
16871
|
});
|
|
16872
16872
|
|
|
16873
|
+
// src/scripts/parseSimpleCapabilityOutput.ts
|
|
16874
|
+
function parseEnvelope(text2) {
|
|
16875
|
+
if (!text2) return null;
|
|
16876
|
+
try {
|
|
16877
|
+
const parsed = JSON.parse(text2);
|
|
16878
|
+
if (!isObject(parsed) || !isObject(parsed.result)) return null;
|
|
16879
|
+
return { result: parsed.result };
|
|
16880
|
+
} catch {
|
|
16881
|
+
return null;
|
|
16882
|
+
}
|
|
16883
|
+
}
|
|
16884
|
+
function isObject(value) {
|
|
16885
|
+
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
16886
|
+
}
|
|
16887
|
+
function stringValue4(value) {
|
|
16888
|
+
return typeof value === "string" && value.trim() ? value.trim() : void 0;
|
|
16889
|
+
}
|
|
16890
|
+
var parseSimpleCapabilityOutput;
|
|
16891
|
+
var init_parseSimpleCapabilityOutput = __esm({
|
|
16892
|
+
"src/scripts/parseSimpleCapabilityOutput.ts"() {
|
|
16893
|
+
"use strict";
|
|
16894
|
+
parseSimpleCapabilityOutput = async (ctx, _profile, agentResult) => {
|
|
16895
|
+
const envelope = parseEnvelope(agentResult?.finalText);
|
|
16896
|
+
if (!envelope) {
|
|
16897
|
+
ctx.output.exitCode = 64;
|
|
16898
|
+
ctx.output.reason = "simple capability did not return its JSON output contract";
|
|
16899
|
+
return;
|
|
16900
|
+
}
|
|
16901
|
+
const result = envelope.result;
|
|
16902
|
+
const data = isObject(result.data) ? result.data : {};
|
|
16903
|
+
const summary = typeof result.summary === "string" ? result.summary : "Capability completed";
|
|
16904
|
+
const reason = typeof result.reason === "string" ? result.reason : summary;
|
|
16905
|
+
const prUrl = stringValue4(data.pullRequestUrl) ?? stringValue4(data.prUrl) ?? stringValue4(result.pullRequestUrl) ?? stringValue4(result.prUrl);
|
|
16906
|
+
if (prUrl) ctx.output.prUrl = prUrl;
|
|
16907
|
+
ctx.output.reason = reason;
|
|
16908
|
+
ctx.data.capabilityResults = [{
|
|
16909
|
+
version: 1,
|
|
16910
|
+
status: "changed",
|
|
16911
|
+
summary,
|
|
16912
|
+
facts: data,
|
|
16913
|
+
artifacts: prUrl ? [{ label: "Pull request", url: prUrl }] : [],
|
|
16914
|
+
missingEvidence: [],
|
|
16915
|
+
blockers: []
|
|
16916
|
+
}];
|
|
16917
|
+
};
|
|
16918
|
+
}
|
|
16919
|
+
});
|
|
16920
|
+
|
|
16873
16921
|
// src/scripts/parseReproOutput.ts
|
|
16874
16922
|
function extractTestPath(text2) {
|
|
16875
16923
|
const m = text2.match(/^[\s>*_#`~-]*TEST_PATH[\s>*_#`~-]*\s*:\s*(.+?)\s*$/im);
|
|
@@ -17720,7 +17768,7 @@ function resolveDotted(root, path54) {
|
|
|
17720
17768
|
if (!path54) return void 0;
|
|
17721
17769
|
return path54.split(".").reduce((value, key) => recordField4(value)?.[key], root);
|
|
17722
17770
|
}
|
|
17723
|
-
function
|
|
17771
|
+
function stringValue5(value) {
|
|
17724
17772
|
return typeof value === "string" && value.trim() ? value.trim() : null;
|
|
17725
17773
|
}
|
|
17726
17774
|
function humanize(value) {
|
|
@@ -17743,16 +17791,16 @@ var init_publishReport = __esm({
|
|
|
17743
17791
|
const stateData = recordField4(recordField4(ctx.data.nextJobState)?.data) ?? {};
|
|
17744
17792
|
const data = { ...stateData, ...result?.facts ?? {} };
|
|
17745
17793
|
if (publication.publishWhenFact && resolveDotted(data, publication.publishWhenFact) === void 0) return;
|
|
17746
|
-
const slug = publication.slug ??
|
|
17794
|
+
const slug = publication.slug ?? stringValue5(resolveDotted(data, publication.slugFact));
|
|
17747
17795
|
if (!slug || !SAFE_SLUG.test(slug)) return;
|
|
17748
|
-
const title = publication.title ??
|
|
17796
|
+
const title = publication.title ?? stringValue5(resolveDotted(data, publication.titleFact)) ?? humanize(slug);
|
|
17749
17797
|
const generatedAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
17750
17798
|
const markdown = buildRuntimeReportMarkdown({
|
|
17751
17799
|
generatedAt,
|
|
17752
17800
|
reportType: publication.type,
|
|
17753
17801
|
reportTypeVersion: publication.version ?? 1,
|
|
17754
17802
|
owner: publication.owner,
|
|
17755
|
-
capability:
|
|
17803
|
+
capability: stringValue5(ctx.data.jobCapability) ?? stringValue5(ctx.data.capabilitySlug) ?? "unknown",
|
|
17756
17804
|
title,
|
|
17757
17805
|
summary: result?.summary ?? title,
|
|
17758
17806
|
data,
|
|
@@ -17772,7 +17820,7 @@ var init_publishReport = __esm({
|
|
|
17772
17820
|
reportType: publication.type,
|
|
17773
17821
|
reportTypeVersion: publication.version ?? 1,
|
|
17774
17822
|
owner: publication.owner,
|
|
17775
|
-
capability:
|
|
17823
|
+
capability: stringValue5(ctx.data.jobCapability) ?? stringValue5(ctx.data.capabilitySlug) ?? "unknown"
|
|
17776
17824
|
},
|
|
17777
17825
|
generatedAt
|
|
17778
17826
|
);
|
|
@@ -20581,6 +20629,7 @@ var init_scripts = __esm({
|
|
|
20581
20629
|
init_parseAgentResult();
|
|
20582
20630
|
init_parseIssueStateFromAgentResult();
|
|
20583
20631
|
init_parseJobStateFromAgentResult();
|
|
20632
|
+
init_parseSimpleCapabilityOutput();
|
|
20584
20633
|
init_parseReproOutput();
|
|
20585
20634
|
init_persistArtifacts();
|
|
20586
20635
|
init_persistFlowState();
|
|
@@ -20680,6 +20729,7 @@ var init_scripts = __esm({
|
|
|
20680
20729
|
saveManagedGoalState
|
|
20681
20730
|
};
|
|
20682
20731
|
postflightScripts = {
|
|
20732
|
+
parseSimpleCapabilityOutput,
|
|
20683
20733
|
parseAgentResult: parseAgentResult2,
|
|
20684
20734
|
parseIssueStateFromAgentResult,
|
|
20685
20735
|
parseJobStateFromAgentResult,
|
|
@@ -24663,7 +24713,7 @@ function normalizeLoopDefinition(value) {
|
|
|
24663
24713
|
if (Object.keys(raw).some((key) => !["id", "trigger", "target", "input", "enabled"].includes(key))) return null;
|
|
24664
24714
|
if (typeof raw.id !== "string" || !ID.test(raw.id)) return null;
|
|
24665
24715
|
if (typeof raw.enabled !== "boolean") return null;
|
|
24666
|
-
if (!
|
|
24716
|
+
if (!isObject2(raw.input) || !isObject2(raw.trigger) || !isObject2(raw.target)) return null;
|
|
24667
24717
|
const targetKind = raw.target.kind;
|
|
24668
24718
|
const targetId = raw.target.id;
|
|
24669
24719
|
if (targetKind !== "workflow" && targetKind !== "capability" || typeof targetId !== "string" || !ID.test(targetId)) {
|
|
@@ -24710,7 +24760,7 @@ function normalizeTrigger(raw) {
|
|
|
24710
24760
|
if (raw.at === void 0 && Object.keys(raw).every((key) => key === "type" || key === "every")) {
|
|
24711
24761
|
return { type: "schedule", every: raw.every };
|
|
24712
24762
|
}
|
|
24713
|
-
if (
|
|
24763
|
+
if (isObject2(raw.at) && typeof raw.at.time === "string" && typeof raw.at.timezone === "string" && Object.keys(raw.at).every((key) => key === "time" || key === "timezone") && Object.keys(raw).every((key) => key === "type" || key === "every" || key === "at")) {
|
|
24714
24764
|
return { type: "schedule", every: raw.every, at: { time: raw.at.time, timezone: raw.at.timezone } };
|
|
24715
24765
|
}
|
|
24716
24766
|
}
|
|
@@ -24722,7 +24772,7 @@ function normalizeTrigger(raw) {
|
|
|
24722
24772
|
}
|
|
24723
24773
|
return null;
|
|
24724
24774
|
}
|
|
24725
|
-
function
|
|
24775
|
+
function isObject2(value) {
|
|
24726
24776
|
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
24727
24777
|
}
|
|
24728
24778
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kody-ade/kody-engine",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.440",
|
|
4
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",
|