@kody-ade/kody-engine 0.4.203 → 0.4.204-next.10

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.
@@ -17,6 +17,15 @@ import type { Phase } from "../state.js"
17
17
 
18
18
  export interface Profile {
19
19
  name: string
20
+ /**
21
+ * Optional staff member this executable runs *as*. When set, the executor
22
+ * loads `.kody/staff/<staff>.md` and injects that persona (authoritative
23
+ * identity) ahead of the executable's own system-prompt append. This is the
24
+ * unification hook: a "duty" is just an executable + a staff member. Absent →
25
+ * runs with no persona (unchanged legacy behaviour). A declared-but-missing
26
+ * staff file is fatal at run time (see src/staff.ts).
27
+ */
28
+ staff?: string
20
29
  describe: string
21
30
  /**
22
31
  * Semantic role — what this executable IS, not when it runs.
@@ -40,6 +49,28 @@ export interface Profile {
40
49
  * `schedule:`). Scheduled profiles must declare a `schedule` cron string.
41
50
  */
42
51
  kind: "oneshot" | "scheduled"
52
+ /**
53
+ * Recurrence cadence for a duty that runs on a timer (unified successor to a
54
+ * markdown duty's `every:` frontmatter). One of the ScheduleEvery values
55
+ * ("15m".."7d" | "manual"). Present → the duty-scheduler fires a one-shot run
56
+ * when due (no target). Absent → on-demand only (runs against an issue/PR).
57
+ * This is what makes "scheduled" just a field on the one duty shape.
58
+ */
59
+ every?: string
60
+ /**
61
+ * Locked-toolbox palette (unified successor to a markdown duty's `tools:`
62
+ * frontmatter). When non-empty, loadDutyState sets ctx.data.dutyTools so the
63
+ * executor spins up the in-process kody-duty MCP server and the agent runs
64
+ * MCP-only (Bash/Read revoked unless also in claudeCode.tools). Absent →
65
+ * normal SDK tools.
66
+ */
67
+ dutyTools?: string[]
68
+ /**
69
+ * GitHub logins (no leading `@`) this duty's output should mention. Rendered
70
+ * to `@a @b` and exposed to the prompt as {{mentions}} (and as the duty-MCP
71
+ * operator mention), mirroring a markdown duty's `mentions:` frontmatter.
72
+ */
73
+ mentions?: string[]
43
74
  /** Cron expression for scheduled profiles (e.g. "0 8 * * MON"). */
44
75
  schedule?: string
45
76
  /**
@@ -127,6 +158,14 @@ export interface Profile {
127
158
  * ENOENT even though profile.json (read here, earlier) loaded fine.
128
159
  */
129
160
  promptTemplates?: Record<string, string>
161
+ /**
162
+ * Subagent markdown captured (by declared name) at load time, BEFORE any
163
+ * task branch switch — same rationale as promptTemplates. loadSubagents
164
+ * prefers this snapshot so a duty's `agents/` surviving only on the default
165
+ * checkout (e.g. `.kody/duties/<slug>/agents/` absent on a PR branch) doesn't
166
+ * crash a PR-targeted duty. Populated by captureSubagentTemplates.
167
+ */
168
+ subagentTemplates?: Record<string, string>
130
169
  }
131
170
 
132
171
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kody-ade/kody-engine",
3
- "version": "0.4.203",
3
+ "version": "0.4.204-next.10",
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",