@agentproto/corpus-cli 0.1.0-alpha.1 → 0.1.0-alpha.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.mjs +43 -8
- package/dist/cli.mjs.map +1 -1
- package/dist/index.d.ts +1 -5
- package/dist/index.mjs +15 -4
- package/dist/index.mjs.map +1 -1
- package/dist/specs/resources/aip-10/draft/KNOWLEDGE.schema.json +457 -0
- package/dist/specs/resources/aip-11/draft/LESSON.schema.json +149 -0
- package/dist/specs/resources/aip-12/draft/PLAYBOOK.schema.json +349 -0
- package/dist/specs/resources/aip-13/draft/WORK_ITEM.schema.json +547 -0
- package/dist/specs/resources/aip-14/draft/TOOL.schema.json +169 -0
- package/dist/specs/resources/aip-15/draft/WORKFLOW.schema.json +356 -0
- package/dist/specs/resources/aip-16/draft/IO.schema.json +64 -0
- package/dist/specs/resources/aip-17/draft/RUNNER.schema.json +81 -0
- package/dist/specs/resources/aip-18/draft/COLLECTION.schema.json +436 -0
- package/dist/specs/resources/aip-19/draft/SECRETS.schema.json +261 -0
- package/dist/specs/resources/aip-20/draft/WORK.schema.json +371 -0
- package/dist/specs/resources/aip-21/draft/AGENCY.schema.json +454 -0
- package/dist/specs/resources/aip-22/draft/OFFICE.schema.json +390 -0
- package/dist/specs/resources/aip-23/draft/IDENTITY.schema.json +358 -0
- package/dist/specs/resources/aip-24/draft/ASSEMBLY.schema.json +411 -0
- package/dist/specs/resources/aip-25/draft/PERSONA.schema.json +257 -0
- package/dist/specs/resources/aip-26/draft/CODE.schema.json +172 -0
- package/dist/specs/resources/aip-28/draft/INTENT.schema.json +215 -0
- package/dist/specs/resources/aip-29/draft/CLI.schema.json +339 -0
- package/dist/specs/resources/aip-3/draft/SKILL.schema.json +206 -0
- package/dist/specs/resources/aip-30/draft/DRIVER.schema.json +237 -0
- package/dist/specs/resources/aip-31/draft/HTTP.schema.json +80 -0
- package/dist/specs/resources/aip-32/draft/MCP.schema.json +88 -0
- package/dist/specs/resources/aip-33/draft/SDK.schema.json +60 -0
- package/dist/specs/resources/aip-34/draft/WORKSPACE.schema.json +252 -0
- package/dist/specs/resources/aip-35/draft/STORAGE.schema.json +237 -0
- package/dist/specs/resources/aip-36/draft/SANDBOX.schema.json +246 -0
- package/dist/specs/resources/aip-38/draft/POLICY.schema.json +217 -0
- package/dist/specs/resources/aip-39/draft/ACTION.schema.json +134 -0
- package/dist/specs/resources/aip-4/draft/DESIGN.schema.json +189 -0
- package/dist/specs/resources/aip-40/draft/EXTENSION.schema.json +116 -0
- package/dist/specs/resources/aip-41/draft/ROUTINE.schema.json +345 -0
- package/dist/specs/resources/aip-42/draft/AGENT.schema.json +268 -0
- package/dist/specs/resources/aip-44/draft/ACP.schema.json +170 -0
- package/dist/specs/resources/aip-45/draft/AGENT-CLI.schema.json +371 -0
- package/dist/specs/resources/aip-47/draft/ROLE.schema.json +199 -0
- package/dist/specs/resources/aip-48/draft/MultiAgentRuntime.schema.json +108 -0
- package/dist/specs/resources/aip-5/draft/TEMPLATE.schema.json +231 -0
- package/dist/specs/resources/aip-6/draft/COMPANY.schema.json +268 -0
- package/dist/specs/resources/aip-7/draft/GOVERNANCE.schema.json +581 -0
- package/dist/specs/resources/aip-8/draft/AGENCY.schema.json +518 -0
- package/dist/specs/resources/aip-9/draft/OPERATOR.schema.json +297 -0
- package/package.json +2 -2
package/dist/cli.mjs
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { readFile, stat, mkdir, writeFile, rename, appendFile, readdir, rm, mkdtemp } from 'fs/promises';
|
|
3
3
|
import os, { tmpdir, homedir } from 'os';
|
|
4
4
|
import { createRequire } from 'module';
|
|
5
|
-
import path, { basename, join, extname
|
|
5
|
+
import path, { dirname, resolve, basename, join, extname } from 'path';
|
|
6
6
|
import { fileURLToPath, pathToFileURL } from 'url';
|
|
7
7
|
import { z } from 'zod';
|
|
8
8
|
import { randomBytes, randomUUID } from 'crypto';
|
|
@@ -346,6 +346,9 @@ var __filename$1 = fileURLToPath(import.meta.url);
|
|
|
346
346
|
var __dirname$1 = path.dirname(__filename$1);
|
|
347
347
|
function findSpecsRoot() {
|
|
348
348
|
const candidates = [
|
|
349
|
+
// published binary: schemas bundled beside the CLI at dist/specs/resources
|
|
350
|
+
// (copied from the repo's specs/resources by scripts/bundle-specs.mjs at build).
|
|
351
|
+
path.resolve(__dirname$1, "specs/resources"),
|
|
349
352
|
// source-tree (vendored): packages/corpus-cli/src/commands → ts repo's own specs/resources
|
|
350
353
|
path.resolve(__dirname$1, "../../../../specs/resources"),
|
|
351
354
|
// dist-tree (vendored): packages/corpus-cli/dist → ts repo's own specs/resources
|
|
@@ -368,11 +371,17 @@ function findSpecsRoot() {
|
|
|
368
371
|
"corpus-cli: could not locate AgentProto spec schemas. Re-install or set CORPUS_SPECS_ROOT."
|
|
369
372
|
);
|
|
370
373
|
}
|
|
371
|
-
var
|
|
374
|
+
var _specsRoot;
|
|
375
|
+
function getSpecsRoot() {
|
|
376
|
+
if (_specsRoot === void 0) {
|
|
377
|
+
_specsRoot = process.env.CORPUS_SPECS_ROOT || findSpecsRoot();
|
|
378
|
+
}
|
|
379
|
+
return _specsRoot;
|
|
380
|
+
}
|
|
372
381
|
function loadSchema(aip, doctype) {
|
|
373
382
|
return JSON.parse(
|
|
374
383
|
readFileSync(
|
|
375
|
-
path.join(
|
|
384
|
+
path.join(getSpecsRoot(), `aip-${aip}`, "draft", `${doctype}.schema.json`),
|
|
376
385
|
"utf8"
|
|
377
386
|
)
|
|
378
387
|
);
|
|
@@ -444,6 +453,10 @@ Run \`corpus init --list\` for available presets.`,
|
|
|
444
453
|
2
|
|
445
454
|
);
|
|
446
455
|
}
|
|
456
|
+
if (!presetSlug) {
|
|
457
|
+
const nameErr = invalidCorpusName(name);
|
|
458
|
+
if (nameErr) return fail(nameErr, 2);
|
|
459
|
+
}
|
|
447
460
|
const target = resolveWorkspacePath(pathArg);
|
|
448
461
|
const fs = new NodeFsAdapter({ root: target });
|
|
449
462
|
if (await fs.exists("KNOWLEDGE.md")) {
|
|
@@ -498,6 +511,19 @@ Try: corpus import-web ${pathArg ?? "."} --urls-file urls.txt
|
|
|
498
511
|
);
|
|
499
512
|
return 0;
|
|
500
513
|
}
|
|
514
|
+
var CORPUS_NAME_RE = /^[a-z][a-z0-9-]*[a-z0-9]$/;
|
|
515
|
+
function invalidCorpusName(name) {
|
|
516
|
+
if (name.length >= 2 && name.length <= 96 && CORPUS_NAME_RE.test(name)) {
|
|
517
|
+
return null;
|
|
518
|
+
}
|
|
519
|
+
const suggestion = slugifyName(name);
|
|
520
|
+
const hint = suggestion.length >= 2 && CORPUS_NAME_RE.test(suggestion) ? `
|
|
521
|
+
Did you mean: ${suggestion}` : "";
|
|
522
|
+
return `init: invalid corpus name "${name}". A corpus name is a kebab-case identifier \u2014 lowercase letters, digits and hyphens, 2\u201396 chars, starting with a letter and ending alphanumerically (^[a-z][a-z0-9-]*[a-z0-9]$).${hint}`;
|
|
523
|
+
}
|
|
524
|
+
function slugifyName(raw) {
|
|
525
|
+
return raw.normalize("NFKD").toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "");
|
|
526
|
+
}
|
|
501
527
|
function splitList(v) {
|
|
502
528
|
return (v ?? "").split(",").map((s) => s.trim()).filter(Boolean);
|
|
503
529
|
}
|
|
@@ -1063,7 +1089,7 @@ var OpenAiWhisperStt = class {
|
|
|
1063
1089
|
}
|
|
1064
1090
|
};
|
|
1065
1091
|
function delay(ms) {
|
|
1066
|
-
return new Promise((
|
|
1092
|
+
return new Promise((resolve2) => setTimeout(resolve2, ms));
|
|
1067
1093
|
}
|
|
1068
1094
|
var UPLOAD_RESPONSE = z.object({ upload_url: z.string() });
|
|
1069
1095
|
var AAI_TRANSCRIPT = z.object({
|
|
@@ -2268,7 +2294,7 @@ var SseMcpClient = class {
|
|
|
2268
2294
|
}
|
|
2269
2295
|
async send(method, params) {
|
|
2270
2296
|
const id = ++this.id;
|
|
2271
|
-
const wait = new Promise((
|
|
2297
|
+
const wait = new Promise((resolve2) => this.pending.set(id, resolve2));
|
|
2272
2298
|
await this.post({ jsonrpc: "2.0", id, method, params });
|
|
2273
2299
|
return withTimeout(wait, 6e4, `${method} response`);
|
|
2274
2300
|
}
|
|
@@ -2511,9 +2537,18 @@ async function runSync(args) {
|
|
|
2511
2537
|
}
|
|
2512
2538
|
return report.failed > 0 && report.pushed === 0 ? 1 : 0;
|
|
2513
2539
|
}
|
|
2514
|
-
|
|
2515
|
-
|
|
2516
|
-
|
|
2540
|
+
function readVersion() {
|
|
2541
|
+
try {
|
|
2542
|
+
const here = dirname(fileURLToPath(import.meta.url));
|
|
2543
|
+
const pkg = JSON.parse(
|
|
2544
|
+
readFileSync(resolve(here, "../package.json"), "utf8")
|
|
2545
|
+
);
|
|
2546
|
+
return pkg.version ?? "0.0.0";
|
|
2547
|
+
} catch {
|
|
2548
|
+
return "0.0.0";
|
|
2549
|
+
}
|
|
2550
|
+
}
|
|
2551
|
+
var VERSION = readVersion();
|
|
2517
2552
|
|
|
2518
2553
|
// src/cli.ts
|
|
2519
2554
|
var HELP = `corpus \u2014 AIP-10 corpus workspace operator (v${VERSION})
|