@brainbase-labs/cli 0.14.0 → 0.15.0-acp.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.
- package/dist/index.js +52 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -36008,7 +36008,7 @@ function padStart(s, n) {
|
|
|
36008
36008
|
// package.json
|
|
36009
36009
|
var package_default = {
|
|
36010
36010
|
name: "@brainbase-labs/cli",
|
|
36011
|
-
version: "0.
|
|
36011
|
+
version: "0.15.0-acp.0",
|
|
36012
36012
|
description: "Pack, share, and install agent templates across harnesses (Claude Code, Codex, ...).",
|
|
36013
36013
|
type: "module",
|
|
36014
36014
|
bin: {
|
|
@@ -57754,6 +57754,32 @@ var CapabilitiesSchema = exports_external.object({
|
|
|
57754
57754
|
slack: exports_external.boolean().optional(),
|
|
57755
57755
|
meeting: exports_external.boolean().optional()
|
|
57756
57756
|
});
|
|
57757
|
+
var EvalOutputShape = exports_external.enum(["binary", "rating", "classification"]);
|
|
57758
|
+
var EVAL_SLUG_RE = /^[a-z0-9][a-z0-9-]*$/;
|
|
57759
|
+
var EvalSchema = exports_external.object({
|
|
57760
|
+
id: exports_external.string().min(1).optional(),
|
|
57761
|
+
slug: exports_external.string().regex(EVAL_SLUG_RE, "slug must be kebab-case (a-z, 0-9, hyphens)"),
|
|
57762
|
+
criteria: exports_external.string().min(1).max(4000),
|
|
57763
|
+
icon: exports_external.string().max(64).optional(),
|
|
57764
|
+
enabled: exports_external.boolean().default(true),
|
|
57765
|
+
judge_model: exports_external.string().min(1).max(128).default("claude-sonnet-4-6"),
|
|
57766
|
+
judge_type: exports_external.enum(["model", "agent"]).default("model"),
|
|
57767
|
+
judge_agent: exports_external.string().min(1).optional(),
|
|
57768
|
+
output_shape: EvalOutputShape.default("binary"),
|
|
57769
|
+
classification_values: exports_external.array(exports_external.string().min(1)).optional()
|
|
57770
|
+
}).refine((v3) => v3.output_shape === "classification" ? !!v3.classification_values && v3.classification_values.length > 0 : v3.classification_values === undefined, {
|
|
57771
|
+
message: 'classification_values must be a non-empty list iff output_shape is "classification"',
|
|
57772
|
+
path: ["classification_values"]
|
|
57773
|
+
}).refine((v3) => v3.judge_type === "agent" ? v3.judge_agent !== undefined : v3.judge_agent === undefined, {
|
|
57774
|
+
message: 'judge_agent is required iff judge_type is "agent"',
|
|
57775
|
+
path: ["judge_agent"]
|
|
57776
|
+
}).refine((v3) => v3.judge_agent === undefined || EVAL_SLUG_RE.test(v3.judge_agent), {
|
|
57777
|
+
message: "judge_agent must be kebab-case (a slug, or a raw agent id)",
|
|
57778
|
+
path: ["judge_agent"]
|
|
57779
|
+
}).refine((v3) => v3.classification_values === undefined || new Set(v3.classification_values).size === v3.classification_values.length, {
|
|
57780
|
+
message: "classification_values must not contain duplicate labels",
|
|
57781
|
+
path: ["classification_values"]
|
|
57782
|
+
});
|
|
57757
57783
|
var AgentManifestSchema = exports_external.object({
|
|
57758
57784
|
schema: exports_external.literal(1),
|
|
57759
57785
|
id: exports_external.string().min(1).optional(),
|
|
@@ -57764,6 +57790,19 @@ var AgentManifestSchema = exports_external.object({
|
|
|
57764
57790
|
playbooks: exports_external.array(PlaybookSchema).default([]),
|
|
57765
57791
|
skills: exports_external.array(SkillEntrySchema).default([]),
|
|
57766
57792
|
mcp: exports_external.array(McpEntrySchema).default([]),
|
|
57793
|
+
evals: exports_external.array(EvalSchema).superRefine((evals, ctx) => {
|
|
57794
|
+
const seen = new Set;
|
|
57795
|
+
evals.forEach((e2, i) => {
|
|
57796
|
+
if (seen.has(e2.slug)) {
|
|
57797
|
+
ctx.addIssue({
|
|
57798
|
+
code: exports_external.ZodIssueCode.custom,
|
|
57799
|
+
message: `duplicate eval slug "${e2.slug}" — slugs must be unique within an agent`,
|
|
57800
|
+
path: [i, "slug"]
|
|
57801
|
+
});
|
|
57802
|
+
}
|
|
57803
|
+
seen.add(e2.slug);
|
|
57804
|
+
});
|
|
57805
|
+
}).default([]),
|
|
57767
57806
|
capabilities: CapabilitiesSchema.optional(),
|
|
57768
57807
|
commands: exports_external.array(exports_external.record(exports_external.unknown())).optional(),
|
|
57769
57808
|
hooks: exports_external.array(exports_external.record(exports_external.unknown())).optional(),
|
|
@@ -58085,6 +58124,7 @@ function writeLink(cwd2, link2) {
|
|
|
58085
58124
|
schema: 1,
|
|
58086
58125
|
agent: { name: link2.name },
|
|
58087
58126
|
playbooks: [],
|
|
58127
|
+
evals: [],
|
|
58088
58128
|
skills: [],
|
|
58089
58129
|
mcp: []
|
|
58090
58130
|
};
|
|
@@ -58093,6 +58133,7 @@ function writeLink(cwd2, link2) {
|
|
|
58093
58133
|
schema: 1,
|
|
58094
58134
|
agent: { name: link2.name },
|
|
58095
58135
|
playbooks: [],
|
|
58136
|
+
evals: [],
|
|
58096
58137
|
skills: [],
|
|
58097
58138
|
mcp: []
|
|
58098
58139
|
};
|
|
@@ -59952,6 +59993,7 @@ function mergeManifest(cwd2, prev, cloud, cloudAgent, harness) {
|
|
|
59952
59993
|
playbooks,
|
|
59953
59994
|
skills,
|
|
59954
59995
|
mcp,
|
|
59996
|
+
evals: prev?.evals ?? [],
|
|
59955
59997
|
capabilities: {
|
|
59956
59998
|
memory: caps.memory,
|
|
59957
59999
|
browser: caps.browser,
|
|
@@ -61226,6 +61268,7 @@ async function loadOrScaffoldManifest(cwd2, args) {
|
|
|
61226
61268
|
...seedHarness ? { harness: seedHarness } : {},
|
|
61227
61269
|
agent: { name: seedName, ...args.tagline ? { tagline: args.tagline } : {} },
|
|
61228
61270
|
playbooks: [],
|
|
61271
|
+
evals: [],
|
|
61229
61272
|
skills: [],
|
|
61230
61273
|
mcp: []
|
|
61231
61274
|
};
|
|
@@ -61376,6 +61419,7 @@ async function runAgentUnpack(cwd2, args) {
|
|
|
61376
61419
|
scope
|
|
61377
61420
|
});
|
|
61378
61421
|
toInstall.push(...builtinInstall);
|
|
61422
|
+
writeResolvedMcps(cwd2, toInstall);
|
|
61379
61423
|
const opts = {
|
|
61380
61424
|
cwd: cwd2,
|
|
61381
61425
|
scope,
|
|
@@ -61415,6 +61459,12 @@ async function runAgentUnpack(cwd2, args) {
|
|
|
61415
61459
|
]
|
|
61416
61460
|
});
|
|
61417
61461
|
}
|
|
61462
|
+
function writeResolvedMcps(workdir, toInstall) {
|
|
61463
|
+
const mcps = toInstall.filter((c2) => c2.type === "mcp").map((c2) => ({ name: c2.slug, ...c2.payload }));
|
|
61464
|
+
const dir = path50.join(workdir, ".brainbase");
|
|
61465
|
+
fs46.mkdirSync(dir, { recursive: true });
|
|
61466
|
+
fs46.writeFileSync(path50.join(dir, "resolved-mcps.json"), JSON.stringify(mcps, null, 2));
|
|
61467
|
+
}
|
|
61418
61468
|
function stageLocalPlaybook(entry, cwd2, stageRoot, scope, toInstall) {
|
|
61419
61469
|
if (entry.content.text !== undefined && entry.content.file !== undefined) {
|
|
61420
61470
|
return `Playbook ${entry.title}: both text and file set — skipped.`;
|
|
@@ -61969,6 +62019,7 @@ function buildManifestFromCloud(cloud, agent) {
|
|
|
61969
62019
|
},
|
|
61970
62020
|
...hasInstructions ? { instructions: { file: DEFAULT_INSTRUCTIONS_FILE } } : {},
|
|
61971
62021
|
playbooks: [],
|
|
62022
|
+
evals: [],
|
|
61972
62023
|
skills,
|
|
61973
62024
|
mcp,
|
|
61974
62025
|
capabilities: {
|