@kybernesis/create 0.1.2 → 0.1.3
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/cli.js +4 -5
- package/dist/init.d.ts +3 -1
- package/dist/init.js +24 -2
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -15,7 +15,7 @@ import { upgrade } from "./upgrade.js";
|
|
|
15
15
|
const [, , command, ...rest] = process.argv;
|
|
16
16
|
switch (command) {
|
|
17
17
|
case "init":
|
|
18
|
-
await init(rest.find((a) => !a.startsWith("-")));
|
|
18
|
+
await init(rest.find((a) => !a.startsWith("-")), { engineer: rest.includes("--engineer") });
|
|
19
19
|
break;
|
|
20
20
|
case "doctor":
|
|
21
21
|
await doctor();
|
|
@@ -24,20 +24,19 @@ switch (command) {
|
|
|
24
24
|
await upgrade(rest.includes("--skip-eval"));
|
|
25
25
|
break;
|
|
26
26
|
case undefined:
|
|
27
|
-
|
|
28
|
-
// npm create passes extra args as argv; treat a bare arg as init's name.
|
|
29
|
-
await init(undefined);
|
|
27
|
+
await init(undefined, { engineer: false });
|
|
30
28
|
break;
|
|
31
29
|
default:
|
|
32
30
|
if (!command.startsWith("-")) {
|
|
33
31
|
// `npm create @kybernesis acme-agent` → argv[2] is the name.
|
|
34
|
-
await init(command);
|
|
32
|
+
await init(command, { engineer: rest.includes("--engineer") });
|
|
35
33
|
break;
|
|
36
34
|
}
|
|
37
35
|
console.log(`
|
|
38
36
|
${bold("kyb")} — Kybernesis agent scaffolder & FDE toolkit
|
|
39
37
|
|
|
40
38
|
${bold("kyb init [name]")} scaffold a full Kybernesis eve agent
|
|
39
|
+
--engineer ${dim("add the engineer layer: workshop sandbox + vision dev loop")}
|
|
41
40
|
${bold("kyb doctor")} preflight checks (keys, issuer, envs, discovery)
|
|
42
41
|
${bold("kyb upgrade")} bump @kybernesis/* packages, gated on evals
|
|
43
42
|
--skip-eval ${dim("skip the eval gate")}
|
package/dist/init.d.ts
CHANGED
package/dist/init.js
CHANGED
|
@@ -3,7 +3,10 @@ import { join, resolve } from "node:path";
|
|
|
3
3
|
import { DEFAULT_ISSUER, EVE_VERSION, REGISTRY_URL, ask, bold, closePrompts, green, run, slug, yellow, } from "./util.js";
|
|
4
4
|
import { envExample, evalFileTs, evalScript, identityMd, rootArcanaTs, subagentAgentTs, subagentArcanaTs, subagentInstructionsMd, } from "./templates.js";
|
|
5
5
|
const ITEMS = ["enterprise", "arcana", "multiplayer", "evals"];
|
|
6
|
-
|
|
6
|
+
// Official eve-registry limbs installed alongside the engineer layer.
|
|
7
|
+
const ENGINEER_OFFICIAL_ITEMS = ["extension/agent-browser", "extension/github-tools", "connection/vercel"];
|
|
8
|
+
export async function init(rawName, options) {
|
|
9
|
+
const engineer = options?.engineer === true;
|
|
7
10
|
const name = slug(rawName ?? (await ask("Agent name (kebab-case)?", "acme-agent")));
|
|
8
11
|
if (!name) {
|
|
9
12
|
console.error("An agent name is required.");
|
|
@@ -29,6 +32,17 @@ export async function init(rawName) {
|
|
|
29
32
|
for (const item of ITEMS) {
|
|
30
33
|
run("npx", ["eve", "add", `@kybernesis/${item}`, "--overwrite"], { cwd: dir });
|
|
31
34
|
}
|
|
35
|
+
if (engineer) {
|
|
36
|
+
console.log(bold("\n2b Engineer layer: workshop sandbox + vision dev loop …"));
|
|
37
|
+
run("npx", ["eve", "add", "@kybernesis/engineer", "--overwrite"], { cwd: dir });
|
|
38
|
+
for (const item of ENGINEER_OFFICIAL_ITEMS) {
|
|
39
|
+
// Official items may carry their own interactive setup; a failure here
|
|
40
|
+
// shouldn't kill the scaffold — the FDE can re-run `eve add <item>`.
|
|
41
|
+
const ok = run("npx", ["eve", "add", item, "--overwrite"], { cwd: dir, allowFail: true });
|
|
42
|
+
if (!ok)
|
|
43
|
+
console.log(yellow(` ! ${item} did not install cleanly — re-run: npx eve add ${item}`));
|
|
44
|
+
}
|
|
45
|
+
}
|
|
32
46
|
console.log(bold("\n3/6 Writing agent identity, memory mount, and eval wiring …"));
|
|
33
47
|
mkdirSync(join(dir, "agent/instructions"), { recursive: true });
|
|
34
48
|
writeFileSync(join(dir, "agent/instructions/identity.md"), identityMd(displayName, depts));
|
|
@@ -68,7 +82,15 @@ export async function init(rawName) {
|
|
|
68
82
|
const infoOk = run("npx", ["eve", "info"], { cwd: dir, allowFail: true, quiet: true });
|
|
69
83
|
console.log(tsOk && infoOk ? green(" ✓ typecheck + discovery clean") : yellow(" ! verify manually: npm run typecheck && npx eve info"));
|
|
70
84
|
console.log(`
|
|
71
|
-
${green("✓")} ${bold(name)} scaffolded: governed (enterprise) · remembering (arcana) · multiplayer (slack) · self-testing (evals)${depts.length ? ` · ${depts.length} dept subagent(s)` : ""}
|
|
85
|
+
${green("✓")} ${bold(name)} scaffolded: governed (enterprise) · remembering (arcana) · multiplayer (slack) · self-testing (evals)${engineer ? " · engineer (workshop + vision loop)" : ""}${depts.length ? ` · ${depts.length} dept subagent(s)` : ""}${engineer ? `
|
|
86
|
+
|
|
87
|
+
${bold("Engineer notes:")}
|
|
88
|
+
· The workshop sandbox (agent/sandbox/sandbox.ts) bakes Playwright into the
|
|
89
|
+
template on FIRST use — expect the first screenshot turn to take minutes,
|
|
90
|
+
warm turns ~seconds. Deployed sessions run under a domain allowlist; extend
|
|
91
|
+
it deliberately in that file when a project needs another host.
|
|
92
|
+
· agent-browser / github-tools / vercel connection may need their Connect
|
|
93
|
+
setup flows — run their printed setup commands if tools 401.` : ""}
|
|
72
94
|
|
|
73
95
|
${bold("Human steps (in order) — the FDE playbook covers each in detail:")}
|
|
74
96
|
1. Arcana: create workspaces (${name}-company, ${name}-eval${depts.map((d) => `, ${name}-${d}`).join("")}) + scoped kb_ keys; fill .env.local from .env.example
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kybernesis/create",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "The Kybernesis agent scaffolder and FDE toolkit: one command to a governed, remembering, multiplayer, self-testing eve agent — plus doctor and upgrade.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|