@crewhaus/spec 0.1.1 → 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/package.json +6 -11
- package/src/index.d.ts +11112 -0
- package/src/index.d.ts.map +1 -0
- package/src/index.js +1091 -0
- package/src/index.js.map +1 -0
- package/src/index.test.ts +407 -0
- package/src/index.ts +221 -23
package/src/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"}
|
package/src/index.test.ts
CHANGED
|
@@ -17,6 +17,28 @@ agent:
|
|
|
17
17
|
expect(spec.agent.instructions).toBe("be helpful");
|
|
18
18
|
});
|
|
19
19
|
|
|
20
|
+
// Codegen-injection backstop (#147/#148): names flow verbatim into generated
|
|
21
|
+
// comments, file paths, JSON manifests and frontmatter — reject the breakout
|
|
22
|
+
// characters at parse time so no emitter can be tricked downstream.
|
|
23
|
+
describe("name safe-charset backstop", () => {
|
|
24
|
+
const cli = (name: string) =>
|
|
25
|
+
`\ntarget: cli\nagent:\n model: m\n instructions: be helpful\nname: ${name}\n`;
|
|
26
|
+
test.each([
|
|
27
|
+
["a newline (block/line-comment escape)", '"line one\\nglobalThis.x=1"'],
|
|
28
|
+
["a block-comment terminator */", '"safe */ code /* x"'],
|
|
29
|
+
["a slash (path traversal in plugin emitters)", '"../../etc/evil"'],
|
|
30
|
+
["a double-quote (JSON manifest break-out)", '"a\\", \\"dependencies\\": {}"'],
|
|
31
|
+
["a backtick (template-literal escape)", '"a`+code+`b"'],
|
|
32
|
+
])("rejects a name containing %s", (_label, name) => {
|
|
33
|
+
expect(() => parseSpec(cli(name))).toThrow(SpecParseError);
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
test("accepts ordinary names (letters, digits, space, . _ - :)", () => {
|
|
37
|
+
const spec = parseSpec(cli('"My Agent v1.2 - prod:eu"'));
|
|
38
|
+
expect(spec.name).toBe("My Agent v1.2 - prod:eu");
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
|
|
20
42
|
test("preserves multi-line block-scalar instructions", () => {
|
|
21
43
|
const spec = parseSpec(`
|
|
22
44
|
name: hello
|
|
@@ -138,6 +160,67 @@ tools:
|
|
|
138
160
|
});
|
|
139
161
|
});
|
|
140
162
|
|
|
163
|
+
// SECURITY: the code-execution config blob is compiled verbatim into
|
|
164
|
+
// `registerCodeExecutionConfig(...)` and the sandbox boundary validates
|
|
165
|
+
// images/mounts against THIS same blob — so a spec must NOT be able to
|
|
166
|
+
// supply its own sandbox allowlist/backend/mounts. Those keys are owned by
|
|
167
|
+
// trusted operator config (CLI / CREWHAUS_SANDBOX* env), never a spec file.
|
|
168
|
+
// The blob can arrive under codeExecution/code_execution OR the per-tool
|
|
169
|
+
// keys python/javascript/shell (target-cli reads the per-tool key first),
|
|
170
|
+
// so every one of those must be rejected.
|
|
171
|
+
describe("tool_config code-execution sandbox-override hardening", () => {
|
|
172
|
+
const codeExecKeys = [
|
|
173
|
+
"codeExecution",
|
|
174
|
+
"code_execution",
|
|
175
|
+
"python",
|
|
176
|
+
"javascript",
|
|
177
|
+
"shell",
|
|
178
|
+
] as const;
|
|
179
|
+
const overrideKeys = [
|
|
180
|
+
["backend", "backend: noop"],
|
|
181
|
+
["allowedImages", "allowedImages:\n - evil/image:latest"],
|
|
182
|
+
["allowed_images", "allowed_images:\n - evil/image:latest"],
|
|
183
|
+
["mountWhitelist", 'mountWhitelist:\n - "/"'],
|
|
184
|
+
["mount_whitelist", 'mount_whitelist:\n - "/"'],
|
|
185
|
+
["images", "images:\n python: evil/image:latest"],
|
|
186
|
+
["mounts", "mounts:\n /etc: /host-etc"],
|
|
187
|
+
["sandbox", "sandbox: noop"],
|
|
188
|
+
] as const;
|
|
189
|
+
|
|
190
|
+
const specWith = (cfgKey: string, body: string) =>
|
|
191
|
+
`\nname: hello\ntarget: cli\nagent:\n model: m\n instructions: i\ntools:\n - python\ntool_config:\n ${cfgKey}:\n ${body}\n`;
|
|
192
|
+
|
|
193
|
+
for (const cfgKey of codeExecKeys) {
|
|
194
|
+
for (const [label, body] of overrideKeys) {
|
|
195
|
+
test(`rejects sandbox-override key "${label}" under tool_config.${cfgKey}`, () => {
|
|
196
|
+
expect(() => parseSpec(specWith(cfgKey, body))).toThrow(SpecParseError);
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
test(`allows non-security knobs under tool_config.${cfgKey}`, () => {
|
|
201
|
+
const spec = parseSpec(specWith(cfgKey, "defaultTimeoutMs: 5000\n warmPoolSize: 2"));
|
|
202
|
+
if (spec.target !== "cli") expect.unreachable();
|
|
203
|
+
expect(spec.tool_config?.[cfgKey]).toEqual({
|
|
204
|
+
defaultTimeoutMs: 5000,
|
|
205
|
+
warmPoolSize: 2,
|
|
206
|
+
});
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
test("does not constrain non-code-execution tool configs (fetch stays opaque)", () => {
|
|
211
|
+
const spec = parseSpec(
|
|
212
|
+
"\nname: hello\ntarget: cli\nagent:\n model: m\n instructions: i\ntools:\n - fetch\ntool_config:\n fetch:\n allowedImages:\n - anything\n backend: whatever\n",
|
|
213
|
+
);
|
|
214
|
+
if (spec.target !== "cli") expect.unreachable();
|
|
215
|
+
// `fetch` is not a code-execution tool, so its config is forwarded
|
|
216
|
+
// verbatim — these keys are meaningless there and harmless.
|
|
217
|
+
expect(spec.tool_config?.["fetch"]).toEqual({
|
|
218
|
+
allowedImages: ["anything"],
|
|
219
|
+
backend: "whatever",
|
|
220
|
+
});
|
|
221
|
+
});
|
|
222
|
+
});
|
|
223
|
+
|
|
141
224
|
describe("Spec schema", () => {
|
|
142
225
|
test("schema is exported as a runtime value (Zod)", () => {
|
|
143
226
|
expect(typeof Spec.safeParse).toBe("function");
|
|
@@ -1009,3 +1092,327 @@ compaction:
|
|
|
1009
1092
|
).toThrow(SpecParseError);
|
|
1010
1093
|
});
|
|
1011
1094
|
});
|
|
1095
|
+
|
|
1096
|
+
// FR-004 — Pillar 3 security block (intent-gate judge selection).
|
|
1097
|
+
describe("parseSpec security.justification", () => {
|
|
1098
|
+
test("parses a cli spec with security.justification.judge=claude + model", () => {
|
|
1099
|
+
const spec = parseSpec(`
|
|
1100
|
+
name: hello
|
|
1101
|
+
target: cli
|
|
1102
|
+
agent:
|
|
1103
|
+
model: m
|
|
1104
|
+
instructions: i
|
|
1105
|
+
security:
|
|
1106
|
+
justification:
|
|
1107
|
+
judge: claude
|
|
1108
|
+
model: claude-haiku-4-5
|
|
1109
|
+
`);
|
|
1110
|
+
if (spec.target !== "cli") expect.unreachable();
|
|
1111
|
+
expect(spec.security?.justification?.judge).toBe("claude");
|
|
1112
|
+
expect(spec.security?.justification?.model).toBe("claude-haiku-4-5");
|
|
1113
|
+
});
|
|
1114
|
+
|
|
1115
|
+
test("judge defaults to rule-based when the justification block omits it", () => {
|
|
1116
|
+
const spec = parseSpec(`
|
|
1117
|
+
name: hello
|
|
1118
|
+
target: cli
|
|
1119
|
+
agent:
|
|
1120
|
+
model: m
|
|
1121
|
+
instructions: i
|
|
1122
|
+
security:
|
|
1123
|
+
justification: {}
|
|
1124
|
+
`);
|
|
1125
|
+
if (spec.target !== "cli") expect.unreachable();
|
|
1126
|
+
expect(spec.security?.justification?.judge).toBe("rule-based");
|
|
1127
|
+
});
|
|
1128
|
+
|
|
1129
|
+
test("rejects an unknown judge enum value", () => {
|
|
1130
|
+
expect(() =>
|
|
1131
|
+
parseSpec(`
|
|
1132
|
+
name: hello
|
|
1133
|
+
target: cli
|
|
1134
|
+
agent:
|
|
1135
|
+
model: m
|
|
1136
|
+
instructions: i
|
|
1137
|
+
security:
|
|
1138
|
+
justification:
|
|
1139
|
+
judge: gpt-omniscient
|
|
1140
|
+
`),
|
|
1141
|
+
).toThrow(SpecParseError);
|
|
1142
|
+
});
|
|
1143
|
+
|
|
1144
|
+
test("rejects unknown keys inside the security block (strict)", () => {
|
|
1145
|
+
expect(() =>
|
|
1146
|
+
parseSpec(`
|
|
1147
|
+
name: hello
|
|
1148
|
+
target: cli
|
|
1149
|
+
agent:
|
|
1150
|
+
model: m
|
|
1151
|
+
instructions: i
|
|
1152
|
+
security:
|
|
1153
|
+
enableTelepathy: true
|
|
1154
|
+
`),
|
|
1155
|
+
).toThrow(SpecParseError);
|
|
1156
|
+
});
|
|
1157
|
+
|
|
1158
|
+
test("security block is optional — a spec without it still parses", () => {
|
|
1159
|
+
const spec = parseSpec(`
|
|
1160
|
+
name: hello
|
|
1161
|
+
target: cli
|
|
1162
|
+
agent:
|
|
1163
|
+
model: m
|
|
1164
|
+
instructions: i
|
|
1165
|
+
`);
|
|
1166
|
+
if (spec.target !== "cli") expect.unreachable();
|
|
1167
|
+
expect(spec.security).toBeUndefined();
|
|
1168
|
+
});
|
|
1169
|
+
});
|
|
1170
|
+
|
|
1171
|
+
// FR-006 — Pillar 3 sink-side fabric (egress matcher selector).
|
|
1172
|
+
describe("parseSpec security.egressMatcher", () => {
|
|
1173
|
+
test("parses a cli spec with security.egressMatcher: semantic", () => {
|
|
1174
|
+
const spec = parseSpec(`
|
|
1175
|
+
name: hello
|
|
1176
|
+
target: cli
|
|
1177
|
+
agent:
|
|
1178
|
+
model: m
|
|
1179
|
+
instructions: i
|
|
1180
|
+
security:
|
|
1181
|
+
egressMatcher: semantic
|
|
1182
|
+
`);
|
|
1183
|
+
if (spec.target !== "cli") expect.unreachable();
|
|
1184
|
+
expect(spec.security?.egressMatcher).toBe("semantic");
|
|
1185
|
+
});
|
|
1186
|
+
|
|
1187
|
+
test("parses security.egressMatcher: substring (the explicit default)", () => {
|
|
1188
|
+
const spec = parseSpec(`
|
|
1189
|
+
name: hello
|
|
1190
|
+
target: cli
|
|
1191
|
+
agent:
|
|
1192
|
+
model: m
|
|
1193
|
+
instructions: i
|
|
1194
|
+
security:
|
|
1195
|
+
egressMatcher: substring
|
|
1196
|
+
`);
|
|
1197
|
+
if (spec.target !== "cli") expect.unreachable();
|
|
1198
|
+
expect(spec.security?.egressMatcher).toBe("substring");
|
|
1199
|
+
});
|
|
1200
|
+
|
|
1201
|
+
test("rejects an unknown egressMatcher enum value (strict)", () => {
|
|
1202
|
+
expect(() =>
|
|
1203
|
+
parseSpec(`
|
|
1204
|
+
name: hello
|
|
1205
|
+
target: cli
|
|
1206
|
+
agent:
|
|
1207
|
+
model: m
|
|
1208
|
+
instructions: i
|
|
1209
|
+
security:
|
|
1210
|
+
egressMatcher: telepathic
|
|
1211
|
+
`),
|
|
1212
|
+
).toThrow(SpecParseError);
|
|
1213
|
+
});
|
|
1214
|
+
|
|
1215
|
+
test("egressMatcher coexists with justification in the same security block", () => {
|
|
1216
|
+
const spec = parseSpec(`
|
|
1217
|
+
name: hello
|
|
1218
|
+
target: cli
|
|
1219
|
+
agent:
|
|
1220
|
+
model: m
|
|
1221
|
+
instructions: i
|
|
1222
|
+
security:
|
|
1223
|
+
justification:
|
|
1224
|
+
judge: claude
|
|
1225
|
+
egressMatcher: semantic
|
|
1226
|
+
`);
|
|
1227
|
+
if (spec.target !== "cli") expect.unreachable();
|
|
1228
|
+
expect(spec.security?.justification?.judge).toBe("claude");
|
|
1229
|
+
expect(spec.security?.egressMatcher).toBe("semantic");
|
|
1230
|
+
});
|
|
1231
|
+
|
|
1232
|
+
test("egressMatcher is optional — a security block without it still parses", () => {
|
|
1233
|
+
const spec = parseSpec(`
|
|
1234
|
+
name: hello
|
|
1235
|
+
target: cli
|
|
1236
|
+
agent:
|
|
1237
|
+
model: m
|
|
1238
|
+
instructions: i
|
|
1239
|
+
security:
|
|
1240
|
+
justification: {}
|
|
1241
|
+
`);
|
|
1242
|
+
if (spec.target !== "cli") expect.unreachable();
|
|
1243
|
+
expect(spec.security?.egressMatcher).toBeUndefined();
|
|
1244
|
+
});
|
|
1245
|
+
});
|
|
1246
|
+
|
|
1247
|
+
describe("parseSpec pipeline target — vector backend (Section 21)", () => {
|
|
1248
|
+
const PIPELINE = (retrieve: string) => `
|
|
1249
|
+
name: doc-bot
|
|
1250
|
+
target: pipeline
|
|
1251
|
+
agent:
|
|
1252
|
+
model: claude-sonnet-4-6
|
|
1253
|
+
instructions: answer using Retrieve
|
|
1254
|
+
retrieve:
|
|
1255
|
+
${retrieve}
|
|
1256
|
+
indexing:
|
|
1257
|
+
chunkStrategy: fixed
|
|
1258
|
+
chunkSize: 200
|
|
1259
|
+
chunkOverlap: 0
|
|
1260
|
+
documents:
|
|
1261
|
+
- id: doc-1
|
|
1262
|
+
text: the quick brown fox
|
|
1263
|
+
`;
|
|
1264
|
+
|
|
1265
|
+
test("defaults vectorBackend to in-memory when omitted", () => {
|
|
1266
|
+
const spec = parseSpec(PIPELINE(" embedderModel: mock/det"));
|
|
1267
|
+
if (spec.target !== "pipeline") expect.unreachable();
|
|
1268
|
+
expect(spec.retrieve.vectorBackend).toBe("in-memory");
|
|
1269
|
+
});
|
|
1270
|
+
|
|
1271
|
+
test("accepts the file backend (lance) with no extra config", () => {
|
|
1272
|
+
const spec = parseSpec(PIPELINE(" embedderModel: mock/det\n vectorBackend: lance"));
|
|
1273
|
+
if (spec.target !== "pipeline") expect.unreachable();
|
|
1274
|
+
expect(spec.retrieve.vectorBackend).toBe("lance");
|
|
1275
|
+
});
|
|
1276
|
+
|
|
1277
|
+
test("accepts an http backend with url + collection + apiKey", () => {
|
|
1278
|
+
const spec = parseSpec(
|
|
1279
|
+
PIPELINE(
|
|
1280
|
+
[
|
|
1281
|
+
" embedderModel: mock/det",
|
|
1282
|
+
" vectorBackend: qdrant",
|
|
1283
|
+
" url: https://qdrant.example",
|
|
1284
|
+
" collection: docs",
|
|
1285
|
+
" apiKey: $QDRANT_API_KEY",
|
|
1286
|
+
].join("\n"),
|
|
1287
|
+
),
|
|
1288
|
+
);
|
|
1289
|
+
if (spec.target !== "pipeline") expect.unreachable();
|
|
1290
|
+
expect(spec.retrieve.vectorBackend).toBe("qdrant");
|
|
1291
|
+
expect(spec.retrieve.url).toBe("https://qdrant.example");
|
|
1292
|
+
expect(spec.retrieve.collection).toBe("docs");
|
|
1293
|
+
expect(spec.retrieve.apiKey).toBe("$QDRANT_API_KEY");
|
|
1294
|
+
});
|
|
1295
|
+
|
|
1296
|
+
test("rejects an unknown backend id", () => {
|
|
1297
|
+
expect(() => parseSpec(PIPELINE(" embedderModel: mock/det\n vectorBackend: faiss"))).toThrow(
|
|
1298
|
+
SpecParseError,
|
|
1299
|
+
);
|
|
1300
|
+
});
|
|
1301
|
+
|
|
1302
|
+
test("rejects an http backend missing url", () => {
|
|
1303
|
+
expect(() =>
|
|
1304
|
+
parseSpec(PIPELINE(" embedderModel: mock/det\n vectorBackend: qdrant\n collection: docs")),
|
|
1305
|
+
).toThrow(/requires retrieve\.url/);
|
|
1306
|
+
});
|
|
1307
|
+
|
|
1308
|
+
test("rejects an http backend missing collection", () => {
|
|
1309
|
+
expect(() =>
|
|
1310
|
+
parseSpec(
|
|
1311
|
+
PIPELINE(
|
|
1312
|
+
" embedderModel: mock/det\n vectorBackend: pinecone\n url: https://pinecone.example",
|
|
1313
|
+
),
|
|
1314
|
+
),
|
|
1315
|
+
).toThrow(/requires retrieve\.collection/);
|
|
1316
|
+
});
|
|
1317
|
+
});
|
|
1318
|
+
|
|
1319
|
+
describe("parseSpec crew target cross-field invariants (Section 22)", () => {
|
|
1320
|
+
// Two-role crew with a configurable `entry:` line and an optional trailing
|
|
1321
|
+
// routing block, so each post-parse invariant is exercised through a real
|
|
1322
|
+
// Zod-valid spec (the cross-field checks run only after safeParse succeeds).
|
|
1323
|
+
const CREW = (entry: string, routing = "") => `
|
|
1324
|
+
name: team
|
|
1325
|
+
target: crew
|
|
1326
|
+
model: m
|
|
1327
|
+
entry: ${entry}
|
|
1328
|
+
roles:
|
|
1329
|
+
lead:
|
|
1330
|
+
instructions: coordinate the crew
|
|
1331
|
+
worker:
|
|
1332
|
+
instructions: do the work
|
|
1333
|
+
${routing}`;
|
|
1334
|
+
|
|
1335
|
+
test("parses a valid crew with match routing and threads roles/entry/routing", () => {
|
|
1336
|
+
const spec = parseSpec(
|
|
1337
|
+
CREW(
|
|
1338
|
+
"lead",
|
|
1339
|
+
[
|
|
1340
|
+
"routing:",
|
|
1341
|
+
" kind: match",
|
|
1342
|
+
" match:",
|
|
1343
|
+
" lead:",
|
|
1344
|
+
" - contains: help",
|
|
1345
|
+
" to: worker",
|
|
1346
|
+
].join("\n"),
|
|
1347
|
+
),
|
|
1348
|
+
);
|
|
1349
|
+
if (spec.target !== "crew") expect.unreachable();
|
|
1350
|
+
expect(Object.keys(spec.roles)).toEqual(["lead", "worker"]);
|
|
1351
|
+
expect(spec.entry).toBe("lead");
|
|
1352
|
+
expect(spec.routing).toEqual({
|
|
1353
|
+
kind: "match",
|
|
1354
|
+
match: { lead: [{ contains: "help", to: "worker" }] },
|
|
1355
|
+
});
|
|
1356
|
+
});
|
|
1357
|
+
|
|
1358
|
+
test("accepts llm routing (no match block) — the match-validation loop is skipped", () => {
|
|
1359
|
+
const spec = parseSpec(CREW("lead", ["routing:", " kind: llm"].join("\n")));
|
|
1360
|
+
if (spec.target !== "crew") expect.unreachable();
|
|
1361
|
+
expect(spec.routing).toEqual({ kind: "llm" });
|
|
1362
|
+
});
|
|
1363
|
+
|
|
1364
|
+
test("accepts a crew with no routing block at all", () => {
|
|
1365
|
+
const spec = parseSpec(CREW("worker"));
|
|
1366
|
+
if (spec.target !== "crew") expect.unreachable();
|
|
1367
|
+
expect(spec.routing).toBeUndefined();
|
|
1368
|
+
expect(spec.entry).toBe("worker");
|
|
1369
|
+
});
|
|
1370
|
+
|
|
1371
|
+
test("rejects a crew whose roles record is empty", () => {
|
|
1372
|
+
expect(() => parseSpec("name: t\ntarget: crew\nmodel: m\nentry: lead\nroles: {}\n")).toThrow(
|
|
1373
|
+
/crew target requires at least one role/,
|
|
1374
|
+
);
|
|
1375
|
+
});
|
|
1376
|
+
|
|
1377
|
+
test("rejects a crew whose entry does not name a declared role", () => {
|
|
1378
|
+
expect(() => parseSpec(CREW("ghost"))).toThrow(
|
|
1379
|
+
/crew\.entry "ghost" must name one of crew\.roles \(got: lead, worker\)/,
|
|
1380
|
+
);
|
|
1381
|
+
});
|
|
1382
|
+
|
|
1383
|
+
test("rejects routing whose match source role is not a declared role", () => {
|
|
1384
|
+
expect(() =>
|
|
1385
|
+
parseSpec(
|
|
1386
|
+
CREW(
|
|
1387
|
+
"lead",
|
|
1388
|
+
[
|
|
1389
|
+
"routing:",
|
|
1390
|
+
" kind: match",
|
|
1391
|
+
" match:",
|
|
1392
|
+
" ghost:",
|
|
1393
|
+
" - contains: x",
|
|
1394
|
+
" to: worker",
|
|
1395
|
+
].join("\n"),
|
|
1396
|
+
),
|
|
1397
|
+
),
|
|
1398
|
+
).toThrow(/crew\.routing\.match\["ghost"\]: source role not in crew\.roles/);
|
|
1399
|
+
});
|
|
1400
|
+
|
|
1401
|
+
test("rejects routing whose match target role is not a declared role", () => {
|
|
1402
|
+
expect(() =>
|
|
1403
|
+
parseSpec(
|
|
1404
|
+
CREW(
|
|
1405
|
+
"lead",
|
|
1406
|
+
[
|
|
1407
|
+
"routing:",
|
|
1408
|
+
" kind: match",
|
|
1409
|
+
" match:",
|
|
1410
|
+
" lead:",
|
|
1411
|
+
" - contains: x",
|
|
1412
|
+
" to: ghost",
|
|
1413
|
+
].join("\n"),
|
|
1414
|
+
),
|
|
1415
|
+
),
|
|
1416
|
+
).toThrow(/crew\.routing\.match\["lead"\]\.to = "ghost" — target role not in crew\.roles/);
|
|
1417
|
+
});
|
|
1418
|
+
});
|