@structured-vibe-coding/core 0.5.4 → 0.6.0
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.
|
@@ -639,6 +639,20 @@ var AGENT_INTEGRATIONS = [
|
|
|
639
639
|
installUrl: "https://docs.anthropic.com/en/docs/claude-code",
|
|
640
640
|
rolePath: (roleId) => `.claude/agents/${roleId}.md`,
|
|
641
641
|
agentsMdRow: "| Claude Code | `.claude/agents/` (`sdd`, `sdd-planner`, `sdd-implementer`, `sdd-reviewer`) |"
|
|
642
|
+
},
|
|
643
|
+
{
|
|
644
|
+
id: "grok",
|
|
645
|
+
key: "grok",
|
|
646
|
+
aliases: ["grok-build", "grokbuild", "xai", "xai-grok"],
|
|
647
|
+
label: "Grok Build",
|
|
648
|
+
hint: ".grok/rules/sdd.md + AGENTS.md (terminal TUI from xAI)",
|
|
649
|
+
requiresCli: false,
|
|
650
|
+
cliBinary: "grok",
|
|
651
|
+
installUrl: "https://docs.x.ai",
|
|
652
|
+
// Single rules file: Grok auto-loads all .grok/rules/*.md
|
|
653
|
+
rolePath: () => `.grok/rules/sdd.md`,
|
|
654
|
+
rolesToInstall: ["sdd"],
|
|
655
|
+
agentsMdRow: "| Grok Build | `.grok/rules/sdd.md` + `AGENTS.md` (reads protocol + active-context; run `sdd` in shell) |"
|
|
642
656
|
}
|
|
643
657
|
];
|
|
644
658
|
var ALL_AGENT_TARGETS = AGENT_INTEGRATIONS.map((i) => i.id);
|
|
@@ -681,7 +695,7 @@ function parseIntegration(raw) {
|
|
|
681
695
|
}
|
|
682
696
|
if (IDE_NAMES.has(p)) {
|
|
683
697
|
throw new Error(
|
|
684
|
-
`"${p}" is an IDE, not an AI coding agent. Choose:
|
|
698
|
+
`"${p}" is an IDE, not an AI coding agent. Choose: ${AGENT_INTEGRATIONS.map((i) => i.key).join(", ")}.`
|
|
685
699
|
);
|
|
686
700
|
}
|
|
687
701
|
for (const integ of AGENT_INTEGRATIONS) {
|
|
@@ -761,7 +775,8 @@ async function installAgentIntegration(opts) {
|
|
|
761
775
|
};
|
|
762
776
|
await write(join4(".sdd", "protocol.md"), PROTOCOL_MD);
|
|
763
777
|
await refreshActiveAgentContext(root);
|
|
764
|
-
|
|
778
|
+
const roles = integ.rolesToInstall?.length ? SDD_AGENT_ROLES.filter((r) => integ.rolesToInstall.includes(r.id)) : SDD_AGENT_ROLES;
|
|
779
|
+
for (const role of roles) {
|
|
765
780
|
await write(integ.rolePath(role.id), renderThinAgent(role));
|
|
766
781
|
}
|
|
767
782
|
await write("AGENTS.md", renderAgentsMd(integ));
|
package/dist/index.d.ts
CHANGED
|
@@ -1161,9 +1161,9 @@ declare function completeChange(projectRoot: string, config: Config, changeId: s
|
|
|
1161
1161
|
|
|
1162
1162
|
/**
|
|
1163
1163
|
* AI coding agents (not IDEs).
|
|
1164
|
-
* Speckit-style: one integration at a time; public keys
|
|
1164
|
+
* Speckit-style: one integration at a time; public keys: `copilot` | `claude` | `grok`.
|
|
1165
1165
|
*/
|
|
1166
|
-
type AgentTarget = "copilot" | "claude-code";
|
|
1166
|
+
type AgentTarget = "copilot" | "claude-code" | "grok";
|
|
1167
1167
|
/** Registry entry — add a new AI agent by appending here only. */
|
|
1168
1168
|
interface AgentIntegration {
|
|
1169
1169
|
id: AgentTarget;
|
|
@@ -1178,6 +1178,12 @@ interface AgentIntegration {
|
|
|
1178
1178
|
cliBinary?: string;
|
|
1179
1179
|
/** Relative path for a thin role agent file. */
|
|
1180
1180
|
rolePath: (roleId: string) => string;
|
|
1181
|
+
/**
|
|
1182
|
+
* Which thin roles to install. Default: all SDD_AGENT_ROLES.
|
|
1183
|
+
* Grok loads every `*.md` under `.grok/rules/`, so only install the router
|
|
1184
|
+
* role there to avoid conflicting planner/implementer instructions.
|
|
1185
|
+
*/
|
|
1186
|
+
rolesToInstall?: SddAgentRoleId[];
|
|
1181
1187
|
/** One markdown table row for AGENTS.md. */
|
|
1182
1188
|
agentsMdRow: string;
|
|
1183
1189
|
}
|
package/dist/index.js
CHANGED
|
@@ -73,7 +73,7 @@ import {
|
|
|
73
73
|
workflowsDir,
|
|
74
74
|
writeText,
|
|
75
75
|
writeYaml
|
|
76
|
-
} from "./chunk-
|
|
76
|
+
} from "./chunk-QTHYRKMK.js";
|
|
77
77
|
|
|
78
78
|
// src/change.ts
|
|
79
79
|
import { join as join2 } from "pathe";
|
|
@@ -185,7 +185,7 @@ async function createChange(input) {
|
|
|
185
185
|
await materializeStageArtifacts(projectRoot, config, id, workflow, meta, firstStage);
|
|
186
186
|
await setActiveChange(projectRoot, config, id);
|
|
187
187
|
try {
|
|
188
|
-
const { refreshActiveAgentContext: refreshActiveAgentContext2 } = await import("./agents-
|
|
188
|
+
const { refreshActiveAgentContext: refreshActiveAgentContext2 } = await import("./agents-O5ABMQJQ.js");
|
|
189
189
|
await refreshActiveAgentContext2(projectRoot);
|
|
190
190
|
} catch {
|
|
191
191
|
}
|
|
@@ -281,7 +281,7 @@ async function advanceStage(projectRoot, config, changeId, opts) {
|
|
|
281
281
|
stage
|
|
282
282
|
);
|
|
283
283
|
try {
|
|
284
|
-
const { refreshActiveAgentContext: refreshActiveAgentContext2 } = await import("./agents-
|
|
284
|
+
const { refreshActiveAgentContext: refreshActiveAgentContext2 } = await import("./agents-O5ABMQJQ.js");
|
|
285
285
|
await refreshActiveAgentContext2(projectRoot);
|
|
286
286
|
} catch {
|
|
287
287
|
}
|