@kody-ade/kody-engine 0.4.64 → 0.4.66

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.
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "bug",
3
3
  "role": "container",
4
+ "preloadContext": true,
4
5
  "describe": "Bug / enhancement flow — reproduce → plan → run → review (→ fix on concerns/fail). Children run sequentially in one process via the container loop.",
5
6
  "inputs": [
6
7
  {
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "chore",
3
3
  "role": "container",
4
+ "preloadContext": true,
4
5
  "describe": "Chore / docs / dep-bump flow — run → review (→ fix on concerns/fail). Skips planning entirely. Children run sequentially in one process via the container loop.",
5
6
  "inputs": [
6
7
  {
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "feature",
3
3
  "role": "container",
4
+ "preloadContext": true,
4
5
  "describe": "Feature / refactor flow — research → plan → run → review (→ fix on concerns/fail). Children run sequentially in one process via the container loop.",
5
6
  "inputs": [
6
7
  {
@@ -63,37 +63,21 @@
63
63
  "usage": ""
64
64
  }
65
65
  ],
66
+ "lifecycle": "pr-branch",
67
+ "lifecycleConfig": {
68
+ "label": {
69
+ "name": "kody:fixing",
70
+ "color": "e99695",
71
+ "description": "kody: applying review feedback"
72
+ },
73
+ "context": "task"
74
+ },
66
75
  "scripts": {
67
76
  "preflight": [
68
- { "script": "syncFlow" },
69
- {
70
- "script": "setLifecycleLabel",
71
- "with": {
72
- "label": "kody:fixing",
73
- "color": "e99695",
74
- "description": "kody: applying review feedback"
75
- }
76
- },
77
- { "script": "fixFlow" },
78
- { "script": "loadTaskState" },
79
- { "script": "loadConventions" },
80
- { "script": "loadPriorArt" },
81
- { "script": "loadMemoryContext" },
82
- { "script": "loadCoverageRules" },
83
- { "script": "composePrompt" }
77
+ { "script": "fixFlow" }
84
78
  ],
85
79
  "postflight": [
86
- { "script": "parseAgentResult" },
87
- { "script": "requireFeedbackActions" },
88
- { "script": "verify" },
89
- { "script": "checkCoverageWithRetry" },
90
- { "script": "abortUnfinishedGitOps" },
91
- { "script": "commitAndPush" },
92
- { "script": "ensurePr" },
93
- { "script": "postIssueComment" },
94
- { "script": "writeRunSummary" },
95
- { "script": "saveTaskState" },
96
- { "script": "advanceFlow" }
80
+ { "script": "requireFeedbackActions" }
97
81
  ]
98
82
  },
99
83
  "output": {
@@ -44,62 +44,21 @@
44
44
  "mcpServers": []
45
45
  },
46
46
  "cliTools": [],
47
+ "lifecycle": "pr-branch",
48
+ "lifecycleConfig": {
49
+ "label": {
50
+ "name": "kody:fixing",
51
+ "color": "e99695",
52
+ "description": "kody: applying review feedback"
53
+ },
54
+ "context": "ci-fix",
55
+ "advance": false
56
+ },
47
57
  "scripts": {
48
58
  "preflight": [
49
- { "script": "syncFlow" },
50
- {
51
- "script": "setLifecycleLabel",
52
- "with": {
53
- "label": "kody:fixing",
54
- "color": "e99695",
55
- "description": "kody: applying review feedback"
56
- }
57
- },
58
- {
59
- "script": "fixCiFlow"
60
- },
61
- {
62
- "script": "loadTaskState"
63
- },
64
- {
65
- "script": "loadConventions"
66
- },
67
- {
68
- "script": "loadCoverageRules"
69
- },
70
- {
71
- "script": "composePrompt"
72
- }
59
+ { "script": "fixCiFlow" }
73
60
  ],
74
- "postflight": [
75
- {
76
- "script": "parseAgentResult"
77
- },
78
- {
79
- "script": "verify"
80
- },
81
- {
82
- "script": "checkCoverageWithRetry"
83
- },
84
- {
85
- "script": "abortUnfinishedGitOps"
86
- },
87
- {
88
- "script": "commitAndPush"
89
- },
90
- {
91
- "script": "ensurePr"
92
- },
93
- {
94
- "script": "postIssueComment"
95
- },
96
- {
97
- "script": "writeRunSummary"
98
- },
99
- {
100
- "script": "saveTaskState"
101
- }
102
- ]
61
+ "postflight": []
103
62
  },
104
63
  "output": {
105
64
  "actionTypes": [
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -44,38 +44,24 @@
44
44
  "mcpServers": []
45
45
  },
46
46
  "cliTools": [],
47
+ "lifecycle": "pr-branch",
48
+ "lifecycleConfig": {
49
+ "label": {
50
+ "name": "kody:running",
51
+ "color": "fbca04",
52
+ "description": "kody: implementing the change"
53
+ },
54
+ "context": "task",
55
+ "contextExtras": ["resolveArtifacts"],
56
+ "sync": false,
57
+ "mirrorState": true
58
+ },
47
59
  "scripts": {
48
60
  "preflight": [
49
- {
50
- "script": "setLifecycleLabel",
51
- "with": {
52
- "label": "kody:running",
53
- "color": "fbca04",
54
- "description": "kody: implementing the change"
55
- }
56
- },
57
- { "script": "runFlow" },
58
- { "script": "loadTaskState" },
59
- { "script": "resolveArtifacts" },
60
- { "script": "loadPriorArt" },
61
- { "script": "loadMemoryContext" },
62
- { "script": "loadConventions" },
63
- { "script": "loadCoverageRules" },
64
- { "script": "composePrompt" }
61
+ { "script": "runFlow" }
65
62
  ],
66
63
  "postflight": [
67
- { "script": "parseAgentResult" },
68
- { "script": "requirePlanDeviations" },
69
- { "script": "verify" },
70
- { "script": "checkCoverageWithRetry" },
71
- { "script": "abortUnfinishedGitOps" },
72
- { "script": "commitAndPush" },
73
- { "script": "ensurePr" },
74
- { "script": "postIssueComment" },
75
- { "script": "writeRunSummary" },
76
- { "script": "saveTaskState" },
77
- { "script": "mirrorStateToPr" },
78
- { "script": "advanceFlow" }
64
+ { "script": "requirePlanDeviations" }
79
65
  ]
80
66
  },
81
67
  "input": {
@@ -51,6 +51,24 @@ export interface Profile {
51
51
  inputs: InputSpec[]
52
52
  claudeCode: ClaudeCodeSpec
53
53
  cliTools: CliToolSpec[]
54
+ /**
55
+ * Optional lifecycle macro. When set, the profile loader applies a
56
+ * predefined preflight/postflight wrapper around `scripts.preflight` and
57
+ * `scripts.postflight` before returning the profile. Registry of lifecycles
58
+ * lives in src/lifecycles/. Unknown values are rejected at load time.
59
+ *
60
+ * Lifecycles exist to consolidate orchestration boilerplate (label,
61
+ * context loading, verify, commit, comment) that recurs across many
62
+ * executables. Per-executable specifics still go in `scripts.preflight`
63
+ * and `scripts.postflight` — the lifecycle wraps them, it doesn't
64
+ * replace them.
65
+ */
66
+ lifecycle?: string
67
+ /**
68
+ * Lifecycle-specific configuration. Shape depends on `lifecycle`. Validated
69
+ * by each lifecycle expander, not by the generic profile parser.
70
+ */
71
+ lifecycleConfig?: Record<string, unknown>
54
72
  scripts: {
55
73
  preflight: ScriptEntry[]
56
74
  postflight: ScriptEntry[]
@@ -84,6 +102,20 @@ export interface Profile {
84
102
  * then makes pass). Only honoured when `role === "container"`.
85
103
  */
86
104
  resetBetweenChildren?: boolean
105
+ /**
106
+ * Phase 5 in-process handoff: when true, the container's loop runs
107
+ * the shared context loaders (loadConventions, loadPriorArt,
108
+ * loadMemoryContext, loadCoverageRules) ONCE after its own preflight
109
+ * completes, then passes the resulting `ctx.data` snapshot to every
110
+ * child via `ExecutorInput.preloadedData`. Each child's loaders take
111
+ * their fast path (added in 0.4.63) and skip the redundant
112
+ * GitHub/filesystem round-trips.
113
+ *
114
+ * Default `false` (opt-in) so the change is gated to containers
115
+ * that have been verified end-to-end. Only honoured when
116
+ * `role === "container"`.
117
+ */
118
+ preloadContext?: boolean
87
119
  /** Absolute directory the profile was loaded from. Used to resolve prompt.md. */
88
120
  dir: string
89
121
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kody-ade/kody-engine",
3
- "version": "0.4.64",
3
+ "version": "0.4.66",
4
4
  "description": "kody — autonomous development engine. Single-session Claude Code agent behind a generic executor + declarative executable profiles.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -12,18 +12,6 @@
12
12
  "templates",
13
13
  "kody.config.schema.json"
14
14
  ],
15
- "scripts": {
16
- "kody": "tsx bin/kody.ts",
17
- "build": "tsup && node scripts/copy-assets.cjs",
18
- "test": "vitest run tests/unit tests/int --no-coverage",
19
- "test:e2e": "vitest run tests/e2e --no-coverage",
20
- "test:all": "vitest run tests --no-coverage",
21
- "typecheck": "tsc --noEmit",
22
- "lint": "biome check",
23
- "lint:fix": "biome check --write",
24
- "format": "biome format --write",
25
- "prepublishOnly": "pnpm build"
26
- },
27
15
  "dependencies": {
28
16
  "@actions/cache": "^6.0.0",
29
17
  "@anthropic-ai/claude-agent-sdk": "0.2.119",
@@ -45,5 +33,16 @@
45
33
  "url": "git+https://github.com/aharonyaircohen/kody-engine.git"
46
34
  },
47
35
  "homepage": "https://github.com/aharonyaircohen/kody-engine",
48
- "bugs": "https://github.com/aharonyaircohen/kody-engine/issues"
49
- }
36
+ "bugs": "https://github.com/aharonyaircohen/kody-engine/issues",
37
+ "scripts": {
38
+ "kody": "tsx bin/kody.ts",
39
+ "build": "tsup && node scripts/copy-assets.cjs",
40
+ "test": "vitest run tests/unit tests/int --no-coverage",
41
+ "test:e2e": "vitest run tests/e2e --no-coverage",
42
+ "test:all": "vitest run tests --no-coverage",
43
+ "typecheck": "tsc --noEmit",
44
+ "lint": "biome check",
45
+ "lint:fix": "biome check --write",
46
+ "format": "biome format --write"
47
+ }
48
+ }