@kody-ade/kody-engine 0.4.641 → 0.4.642

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.641",
18
+ version: "0.4.642",
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
  repository: {
@@ -3589,6 +3589,7 @@ __export(capabilityMcp_exports, {
3589
3589
  parseCapabilityTrustMode: () => parseCapabilityTrustMode,
3590
3590
  readCheckRuns: () => readCheckRuns,
3591
3591
  readThread: () => readThread,
3592
+ readWorkflowRun: () => readWorkflowRun,
3592
3593
  selectCapabilityToolDefinitions: () => selectCapabilityToolDefinitions,
3593
3594
  startCapability: () => startCapability
3594
3595
  });
@@ -3859,6 +3860,12 @@ function startCapability(workflowFile, name, issue2, repoSlug, ref) {
3859
3860
  const forwardedIssue = acceptsIssue === false ? void 0 : issue2;
3860
3861
  return dispatchWorkflow(workflowFile, name, forwardedIssue, repoSlug, ref);
3861
3862
  }
3863
+ function readWorkflowRun(repoSlug, runId) {
3864
+ const run = JSON.parse(
3865
+ gh(["run", "view", String(runId), "--repo", repoSlug, "--json", "status,conclusion,url,createdAt,updatedAt"])
3866
+ );
3867
+ return { runId, ...run };
3868
+ }
3862
3869
  function capabilityAcceptsIssue(capability) {
3863
3870
  const route = resolveCapabilityAction(capability);
3864
3871
  if (!route) return null;
@@ -4051,6 +4058,17 @@ function capabilityToolDefinitions(opts) {
4051
4058
  return { content: [{ type: "text", text: text2 }] };
4052
4059
  }
4053
4060
  };
4061
+ const readWorkflowRunTool = {
4062
+ name: "read_workflow_run",
4063
+ description: "Read the current status and conclusion of an asynchronously started GitHub Actions workflow run.",
4064
+ inputSchema: {
4065
+ runId: z3.number().int().positive()
4066
+ },
4067
+ handler: async (args) => {
4068
+ const result = readWorkflowRun(opts.repoSlug, Number(args.runId));
4069
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
4070
+ }
4071
+ };
4054
4072
  const readLatestReportTool = {
4055
4073
  name: "read_latest_report",
4056
4074
  description: "Read the newest persisted Kody Report for this repository. Optionally restrict to one stable report slug or reports newer than an ISO timestamp. Returns the Report body and metadata; use it as evidence before deciding whether work is needed.",
@@ -4087,9 +4105,9 @@ function capabilityToolDefinitions(opts) {
4087
4105
  };
4088
4106
  const reconcileTodoTool = {
4089
4107
  name: "reconcile_todo",
4090
- description: "Idempotently create, update, close, or reopen one canonical repository Todo for a recurring problem. The stable slug and item id prevent duplicates. Repeating the same state is a no-op; unrelated items in an existing Todo are preserved.",
4108
+ description: "Idempotently create, update, close, or reopen one canonical repository Todo for a recurring problem. The Todo family is derived from reportSlug and the stable item id prevents duplicates. Repeating the same state is a no-op; unrelated items in an existing Todo are preserved.",
4091
4109
  inputSchema: {
4092
- slug: z3.string().regex(/^[a-z0-9][a-z0-9_-]{0,63}$/),
4110
+ slug: z3.string().regex(/^[a-z0-9][a-z0-9_-]{0,63}$/).optional().describe("Deprecated; the canonical Todo slug is reportSlug."),
4093
4111
  itemId: z3.string().regex(/^[a-z0-9][a-z0-9_-]{0,79}$/).optional(),
4094
4112
  title: z3.string().min(1).max(160),
4095
4113
  description: z3.string().max(2e4).optional(),
@@ -4099,12 +4117,12 @@ function capabilityToolDefinitions(opts) {
4099
4117
  evidence: z3.string().max(2e4).optional()
4100
4118
  },
4101
4119
  handler: async (args) => {
4102
- const slug = String(args.slug);
4120
+ const reportSlug = String(args.reportSlug);
4121
+ const slug = reportSlug;
4103
4122
  const itemId = typeof args.itemId === "string" ? args.itemId : "finding";
4104
4123
  const title = String(args.title).trim();
4105
4124
  const description = typeof args.description === "string" ? args.description.trim() : "";
4106
4125
  const status = args.status === "resolved" ? "resolved" : "open";
4107
- const reportSlug = String(args.reportSlug);
4108
4126
  const reportRunId = typeof args.reportRunId === "string" ? args.reportRunId : void 0;
4109
4127
  const evidence = typeof args.evidence === "string" ? args.evidence.trim() : "";
4110
4128
  const backend = createStateBackendFromEnv();
@@ -4191,6 +4209,7 @@ function capabilityToolDefinitions(opts) {
4191
4209
  ensureIssueTool,
4192
4210
  ensureCommentTool,
4193
4211
  startCapabilityTool,
4212
+ readWorkflowRunTool,
4194
4213
  readLatestReportTool,
4195
4214
  reconcileTodoTool,
4196
4215
  ...cmsTools
@@ -4241,6 +4260,7 @@ var init_capabilityMcp = __esm({
4241
4260
  "ensure_issue",
4242
4261
  "ensure_comment",
4243
4262
  "start_capability",
4263
+ "read_workflow_run",
4244
4264
  "read_latest_report",
4245
4265
  "reconcile_todo",
4246
4266
  ...DASHBOARD_CMS_MCP_TOOL_NAMES
@@ -16910,7 +16930,7 @@ var init_loadLiveAgent = __esm({
16910
16930
  }
16911
16931
  };
16912
16932
  ctx.data.jobStateJson = JSON.stringify(state, null, 2);
16913
- ctx.data.capabilityTools = ["start_capability", "read_latest_report", "reconcile_todo"];
16933
+ ctx.data.capabilityTools = ["start_capability", "read_workflow_run", "read_latest_report", "reconcile_todo"];
16914
16934
  ctx.data.capabilityToolMode = "lock";
16915
16935
  profile.claudeCode.enableSubmitTool = true;
16916
16936
  };
@@ -16,6 +16,7 @@
16
16
  "enableSubmitTool": true,
17
17
  "tools": [
18
18
  "mcp__kody-capability__start_capability",
19
+ "mcp__kody-capability__read_workflow_run",
19
20
  "mcp__kody-capability__read_latest_report",
20
21
  "mcp__kody-capability__reconcile_todo",
21
22
  "mcp__kody-submit__submit_state"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kody-ade/kody-engine",
3
- "version": "0.4.641",
3
+ "version": "0.4.642",
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
  "repository": {