@structured-vibe-coding/core 0.16.2 → 0.17.1

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.
@@ -15,7 +15,7 @@ Parent page for **stable** project docs. Humans and coding agents: start here, t
15
15
  |-------|------|
16
16
  | Product / vision | [product.md](product.md) |
17
17
  | Requirements | [requirements.md](requirements.md) (after greenfield) |
18
- | Feature backlog | [features.md](features.md) (after greenfield; `sdd feature start F-001`) |
18
+ | Feature backlog | [features.md](features.md) (after greenfield; `sdd backlog start F-001`) |
19
19
  | Constitution (non-negotiables) | [constitution.md](constitution.md) |
20
20
  | Architecture | [architecture.md](architecture.md) |
21
21
  | Coding & process conventions | [conventions.md](conventions.md) |
@@ -2,7 +2,7 @@
2
2
 
3
3
  > **{{title}}** · `{{id}}`
4
4
  > Each feature should fit **one PR**. Start implementation with:
5
- > `sdd feature start F-001`
5
+ > `sdd backlog start F-001`
6
6
 
7
7
  ## How to write a feature
8
8
 
@@ -50,7 +50,7 @@ stages:
50
50
 
51
51
  - id: features
52
52
  title: Feature backlog
53
- summary: PR-sized features with ids F-001… for later sdd feature start
53
+ summary: PR-sized features with ids F-001… for later sdd backlog start
54
54
  skippable: false
55
55
  artifacts:
56
56
  - id: features
@@ -19,8 +19,8 @@ import {
19
19
  removeOtherAgentHosts,
20
20
  renderThinAgent,
21
21
  writeAgentHandoff
22
- } from "./chunk-BTUI2WYQ.js";
23
- import "./chunk-BCLKMBKF.js";
22
+ } from "./chunk-BVCTVKBD.js";
23
+ import "./chunk-WPAGUBZ5.js";
24
24
  import "./chunk-WHDG6OTG.js";
25
25
  import "./chunk-A752UVPF.js";
26
26
  import "./chunk-67AUAGNV.js";
@@ -235,7 +235,7 @@ async function createChange(input) {
235
235
  await materializeStageArtifacts(projectRoot, config, id, workflow, meta, firstStage);
236
236
  await setActiveChange(projectRoot, config, id);
237
237
  try {
238
- const { refreshActiveAgentContext } = await import("./agents-3MD2GPYI.js");
238
+ const { refreshActiveAgentContext } = await import("./agents-CLTJJVOD.js");
239
239
  await refreshActiveAgentContext(projectRoot);
240
240
  } catch {
241
241
  }
@@ -323,7 +323,7 @@ async function advanceStage(projectRoot, config, changeId, opts) {
323
323
  stage2
324
324
  );
325
325
  try {
326
- const { refreshActiveAgentContext } = await import("./agents-3MD2GPYI.js");
326
+ const { refreshActiveAgentContext } = await import("./agents-CLTJJVOD.js");
327
327
  await refreshActiveAgentContext(projectRoot);
328
328
  } catch {
329
329
  }
@@ -370,7 +370,7 @@ async function advanceStage(projectRoot, config, changeId, opts) {
370
370
  stage
371
371
  );
372
372
  try {
373
- const { refreshActiveAgentContext } = await import("./agents-3MD2GPYI.js");
373
+ const { refreshActiveAgentContext } = await import("./agents-CLTJJVOD.js");
374
374
  await refreshActiveAgentContext(projectRoot);
375
375
  } catch {
376
376
  }
@@ -471,7 +471,7 @@ async function completeChange(projectRoot, config, changeId) {
471
471
  let promoted;
472
472
  if (ctx.meta.workflow === "greenfield" || ctx.meta.flags?.greenfield === true) {
473
473
  try {
474
- const { promoteGreenfieldToMemory: promoteGreenfieldToMemory2 } = await import("./greenfield-YUAMU7F3.js");
474
+ const { promoteGreenfieldToMemory: promoteGreenfieldToMemory2 } = await import("./greenfield-QQJH3XL3.js");
475
475
  promoted = await promoteGreenfieldToMemory2(projectRoot, config, changeId);
476
476
  } catch {
477
477
  }
@@ -26,7 +26,7 @@ function toProcessEnv(base, extra) {
26
26
  }
27
27
 
28
28
  // src/version.ts
29
- var SDD_CORE_VERSION = "0.16.2" ? "0.16.2" : "0.0.0-dev";
29
+ var SDD_CORE_VERSION = "0.17.1" ? "0.17.1" : "0.0.0-dev";
30
30
 
31
31
  // src/mcp/client.ts
32
32
  function mcpTimeoutMs() {
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  buildAgentPrompt,
3
3
  formatStatus
4
- } from "./chunk-BCLKMBKF.js";
4
+ } from "./chunk-WPAGUBZ5.js";
5
5
  import {
6
6
  loadConfig
7
7
  } from "./chunk-WHDG6OTG.js";
@@ -72,6 +72,20 @@ var AGENT_INTEGRATIONS = [
72
72
  rolePath: () => `.ollama/sdd.md`,
73
73
  rolesToInstall: ["sdd"],
74
74
  agentsMdRow: "| Ollama (local) | `.ollama/sdd.md` + `AGENTS.md` + handoff; launch: `ollama run $SDD_OLLAMA_MODEL` |"
75
+ },
76
+ {
77
+ id: "kilo",
78
+ key: "kilo",
79
+ aliases: ["kilocode", "kilo-code", "kilo-ai"],
80
+ label: "Kilo Code",
81
+ hint: ".kilo/sdd.md + AGENTS.md (terminal CLI from kilo.ai)",
82
+ requiresCli: true,
83
+ cliBinary: "kilo",
84
+ installUrl: "https://kilo.ai/docs/code-with-ai/platforms/cli",
85
+ // Single project brief — Kilo loads AGENTS.md and supports instruction files
86
+ rolePath: () => `.kilo/sdd.md`,
87
+ rolesToInstall: ["sdd"],
88
+ agentsMdRow: "| Kilo Code | `.kilo/sdd.md` + `AGENTS.md` (reads protocol + active-context; run `kilo` or `sdd` in shell) |"
75
89
  }
76
90
  ];
77
91
  var ALL_AGENT_TARGETS = AGENT_INTEGRATIONS.map((i) => i.id);
@@ -108,6 +122,8 @@ function agentHostPaths(target) {
108
122
  return [".grok/rules"];
109
123
  case "ollama":
110
124
  return [".ollama"];
125
+ case "kilo":
126
+ return [".kilo"];
111
127
  default:
112
128
  return [];
113
129
  }
@@ -132,9 +148,10 @@ async function removeOtherAgentHosts(projectRoot, keep) {
132
148
  removed.push(rel);
133
149
  }
134
150
  }
135
- for (const parent of [".claude", ".idea", ".grok", ".ollama"]) {
151
+ for (const parent of [".claude", ".idea", ".grok", ".ollama", ".kilo"]) {
136
152
  if (keep === "grok" && parent === ".grok") continue;
137
153
  if (keep === "ollama" && parent === ".ollama") continue;
154
+ if (keep === "kilo" && parent === ".kilo") continue;
138
155
  const full = join(projectRoot, parent);
139
156
  if (!await pathExists(full)) continue;
140
157
  try {
@@ -105,7 +105,7 @@ async function buildAgentPrompt(ctx, config, projectRoot) {
105
105
  }
106
106
  try {
107
107
  const { loadMcpConfig } = await import("./sources-PF45EUH2.js");
108
- const { gatherMcpContextForChange, formatMcpContextForHandoff } = await import("./gather-2LQ464XU.js");
108
+ const { gatherMcpContextForChange, formatMcpContextForHandoff } = await import("./gather-S4A5YR7X.js");
109
109
  const mcpCfg = await loadMcpConfig(projectRoot);
110
110
  if (mcpCfg.auto_fetch_on_handoff && mcpCfg.sources.length) {
111
111
  const fetched = await gatherMcpContextForChange(projectRoot, ctx);
@@ -3,7 +3,7 @@ import {
3
3
  gatherMcpContext,
4
4
  gatherMcpContextForChange,
5
5
  listMatchingSourceIds
6
- } from "./chunk-2C3WHUAR.js";
6
+ } from "./chunk-BGM6KS64.js";
7
7
  import "./chunk-KYWETNFU.js";
8
8
  import "./chunk-MHODNFIL.js";
9
9
  import "./chunk-7MJYPJMR.js";
@@ -6,8 +6,8 @@ import {
6
6
  startFeatureFromBacklog,
7
7
  startGreenfield,
8
8
  updateFeatureStatus
9
- } from "./chunk-TNZHQ6B5.js";
10
- import "./chunk-BCLKMBKF.js";
9
+ } from "./chunk-72QJHR53.js";
10
+ import "./chunk-WPAGUBZ5.js";
11
11
  import "./chunk-A752UVPF.js";
12
12
  import "./chunk-67AUAGNV.js";
13
13
  import "./chunk-7MJYPJMR.js";
package/dist/index.d.ts CHANGED
@@ -1228,9 +1228,9 @@ declare function completeChange(projectRoot: string, config: Config, changeId: s
1228
1228
 
1229
1229
  /**
1230
1230
  * AI coding agents (not IDEs).
1231
- * Speckit-style: one integration at a time; public keys: `copilot` | `claude` | `grok` | `ollama`.
1231
+ * Speckit-style: one integration at a time; public keys: `copilot` | `claude` | `grok` | `ollama` | `kilo`.
1232
1232
  */
1233
- type AgentTarget = "copilot" | "claude-code" | "grok" | "ollama";
1233
+ type AgentTarget = "copilot" | "claude-code" | "grok" | "ollama" | "kilo";
1234
1234
  /** Registry entry — add a new AI agent by appending here only. */
1235
1235
  interface AgentIntegration {
1236
1236
  id: AgentTarget;
@@ -1326,7 +1326,7 @@ declare function installAgentIntegrations(opts: InstallAgentsOptions): Promise<I
1326
1326
  /** Thin agent body shared across hosts (same text). */
1327
1327
  declare function renderThinAgent(role: SddAgentRole): string;
1328
1328
  interface InstalledAgentSnapshot {
1329
- /** Public key: copilot | claude | grok | ollama */
1329
+ /** Public key: copilot | claude | grok | ollama | kilo */
1330
1330
  ai: string;
1331
1331
  target: AgentTarget;
1332
1332
  integration: AgentIntegration;
package/dist/index.js CHANGED
@@ -16,7 +16,7 @@ import {
16
16
  startGreenfield,
17
17
  switchWorkflow,
18
18
  updateFeatureStatus
19
- } from "./chunk-TNZHQ6B5.js";
19
+ } from "./chunk-72QJHR53.js";
20
20
  import {
21
21
  SDD_CORE_VERSION,
22
22
  callMcpSourceTool,
@@ -30,7 +30,7 @@ import {
30
30
  mcpTimeoutMs,
31
31
  toProcessEnv,
32
32
  withMcpSource
33
- } from "./chunk-2C3WHUAR.js";
33
+ } from "./chunk-BGM6KS64.js";
34
34
  import {
35
35
  McpConfigSchema,
36
36
  McpInvokeSchema,
@@ -67,11 +67,11 @@ import {
67
67
  removeOtherAgentHosts,
68
68
  renderThinAgent,
69
69
  writeAgentHandoff
70
- } from "./chunk-BTUI2WYQ.js";
70
+ } from "./chunk-BVCTVKBD.js";
71
71
  import {
72
72
  buildAgentPrompt,
73
73
  formatStatus
74
- } from "./chunk-BCLKMBKF.js";
74
+ } from "./chunk-WPAGUBZ5.js";
75
75
  import {
76
76
  defaultConfig,
77
77
  isInitialized,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@structured-vibe-coding/core",
3
- "version": "0.16.2",
4
- "description": "Core engine for sdd — local Spec-Driven Development workflows, change packs, greenfield, and agent handoff",
3
+ "version": "0.17.1",
4
+ "description": "Core engine for sdd — Spec-Driven Development workflows, change packs, greenfield, and AI agent handoff (used by the sdd CLI)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",
@@ -48,12 +48,16 @@
48
48
  "keywords": [
49
49
  "sdd",
50
50
  "spec-driven-development",
51
+ "spec-driven-development-cli",
51
52
  "structured-vibe-coding",
52
53
  "ai-coding",
53
54
  "ai-coding-agent",
55
+ "ai-agent-workflow",
56
+ "agent-handoff",
54
57
  "workflow",
55
58
  "greenfield",
56
59
  "change-packs",
60
+ "change-pack",
57
61
  "local-sdd"
58
62
  ],
59
63
  "scripts": {