@kybernesis/create 0.3.0 → 0.3.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.
package/dist/doctor.js
CHANGED
|
@@ -45,10 +45,13 @@ export async function doctor() {
|
|
|
45
45
|
if (env.ARCANA_API_KEY && env.ARCANA_COMPANY_WORKSPACE)
|
|
46
46
|
arcanaPairs.push({ key: env.ARCANA_API_KEY, ws: env.ARCANA_COMPANY_WORKSPACE, label: "company brain" });
|
|
47
47
|
if (env.ARCANA_EVAL_API_KEY) {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
48
|
+
// Match both `WORKSPACE=name-eval` and the shell-default form
|
|
49
|
+
// `WORKSPACE=${ARCANA_EVAL_WORKSPACE:-name-eval}`.
|
|
50
|
+
const script = pkg.scripts?.eval ?? "";
|
|
51
|
+
const evalWs = /=\$\{[A-Z0-9_]+:-([a-z0-9][a-z0-9-]*-eval)\}/.exec(script) ??
|
|
52
|
+
/=([a-z0-9][a-z0-9-]*-eval)\b/.exec(script);
|
|
53
|
+
if (evalWs?.[1])
|
|
54
|
+
arcanaPairs.push({ key: env.ARCANA_EVAL_API_KEY, ws: evalWs[1], label: "eval workspace" });
|
|
52
55
|
}
|
|
53
56
|
for (const [k, v] of Object.entries(env)) {
|
|
54
57
|
const m = /^ARCANA_([A-Z0-9_]+)_API_KEY$/.exec(k);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kybernesis/create",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.1",
|
|
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",
|
|
@@ -33,7 +33,23 @@ model under test.
|
|
|
33
33
|
- Stale sandbox state (migration errors, re-baking templates):
|
|
34
34
|
`rm -rf .eve/sandbox-cache .eve/dev-runtime` and rerun.
|
|
35
35
|
- Don't pipe the eval command through `tail` in scripts — it masks the exit
|
|
36
|
-
code
|
|
36
|
+
code (and `| tail -N` on a backgrounded run destroys the per-eval detail —
|
|
37
|
+
`tee` to a file instead).
|
|
38
|
+
- **Heavy-model suites: `maxConcurrency: 1` locally.** At 2, long opus turns
|
|
39
|
+
overload the local world-queue transport (`Queue delivery failed … fetch
|
|
40
|
+
failed`); crashed deliveries REPLAY subagent steps, surfacing as
|
|
41
|
+
`lost continuationToken` races and phantom failures that move between runs.
|
|
42
|
+
The deployed runtime uses real queue infra — this is a local-harness limit.
|
|
43
|
+
- **AI Gateway budget is a silent eval killer**: Vercel applies a default
|
|
44
|
+
per-project budget (e.g. $10/daily); a suite of real opus turns can exhaust
|
|
45
|
+
it MID-RUN → `MODEL_CALL_FAILED` on whatever ran last. Check/raise:
|
|
46
|
+
`vercel ai-gateway budgets list` / `budgets set project <name> --limit 30
|
|
47
|
+
--refresh-period monthly`.
|
|
48
|
+
- **"run parked on N unanswered input request(s)"** = the agent called a
|
|
49
|
+
human-in-the-loop tool (`approval: status=pending tool=ask_question` in the
|
|
50
|
+
turn log) — no one answers in an eval. Usually a behavior finding: the
|
|
51
|
+
fixture was self-contained and the agent asked instead of acting. Fix the
|
|
52
|
+
agent's bias-to-act instructions, not the fixture.
|
|
37
53
|
|
|
38
54
|
## eve version certification
|
|
39
55
|
|
|
@@ -18,7 +18,11 @@ able to *initiate*.
|
|
|
18
18
|
2. **Vercel identities** of both projects: team slug + project name as shown in
|
|
19
19
|
`npx vercel ls <project>` (slugs, not `team_…`/`prj_…` IDs).
|
|
20
20
|
3. **Stable production URL** of the callee: `npx vercel inspect <latest-prod-url>`
|
|
21
|
-
→ Aliases
|
|
21
|
+
→ Aliases — then **verify the alias is OPEN before wiring it**:
|
|
22
|
+
`curl -s -o /dev/null -w "%{http_code}" <url>/eve/v1/health` must return
|
|
23
|
+
**200**. The `<project>-<team>.vercel.app` aliases commonly sit behind
|
|
24
|
+
Vercel SSO deployment protection (302 → vercel.com/sso-api) and CANNOT
|
|
25
|
+
receive dispatches; the shorter production alias is usually the open one.
|
|
22
26
|
4. Both repos need `@kybernesis/dispatch` installed (`npm i @kybernesis/dispatch`).
|
|
23
27
|
|
|
24
28
|
## Caller side — one file
|