@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.
Files changed (48) hide show
  1. package/dist/cli.mjs +43 -8
  2. package/dist/cli.mjs.map +1 -1
  3. package/dist/index.d.ts +1 -5
  4. package/dist/index.mjs +15 -4
  5. package/dist/index.mjs.map +1 -1
  6. package/dist/specs/resources/aip-10/draft/KNOWLEDGE.schema.json +457 -0
  7. package/dist/specs/resources/aip-11/draft/LESSON.schema.json +149 -0
  8. package/dist/specs/resources/aip-12/draft/PLAYBOOK.schema.json +349 -0
  9. package/dist/specs/resources/aip-13/draft/WORK_ITEM.schema.json +547 -0
  10. package/dist/specs/resources/aip-14/draft/TOOL.schema.json +169 -0
  11. package/dist/specs/resources/aip-15/draft/WORKFLOW.schema.json +356 -0
  12. package/dist/specs/resources/aip-16/draft/IO.schema.json +64 -0
  13. package/dist/specs/resources/aip-17/draft/RUNNER.schema.json +81 -0
  14. package/dist/specs/resources/aip-18/draft/COLLECTION.schema.json +436 -0
  15. package/dist/specs/resources/aip-19/draft/SECRETS.schema.json +261 -0
  16. package/dist/specs/resources/aip-20/draft/WORK.schema.json +371 -0
  17. package/dist/specs/resources/aip-21/draft/AGENCY.schema.json +454 -0
  18. package/dist/specs/resources/aip-22/draft/OFFICE.schema.json +390 -0
  19. package/dist/specs/resources/aip-23/draft/IDENTITY.schema.json +358 -0
  20. package/dist/specs/resources/aip-24/draft/ASSEMBLY.schema.json +411 -0
  21. package/dist/specs/resources/aip-25/draft/PERSONA.schema.json +257 -0
  22. package/dist/specs/resources/aip-26/draft/CODE.schema.json +172 -0
  23. package/dist/specs/resources/aip-28/draft/INTENT.schema.json +215 -0
  24. package/dist/specs/resources/aip-29/draft/CLI.schema.json +339 -0
  25. package/dist/specs/resources/aip-3/draft/SKILL.schema.json +206 -0
  26. package/dist/specs/resources/aip-30/draft/DRIVER.schema.json +237 -0
  27. package/dist/specs/resources/aip-31/draft/HTTP.schema.json +80 -0
  28. package/dist/specs/resources/aip-32/draft/MCP.schema.json +88 -0
  29. package/dist/specs/resources/aip-33/draft/SDK.schema.json +60 -0
  30. package/dist/specs/resources/aip-34/draft/WORKSPACE.schema.json +252 -0
  31. package/dist/specs/resources/aip-35/draft/STORAGE.schema.json +237 -0
  32. package/dist/specs/resources/aip-36/draft/SANDBOX.schema.json +246 -0
  33. package/dist/specs/resources/aip-38/draft/POLICY.schema.json +217 -0
  34. package/dist/specs/resources/aip-39/draft/ACTION.schema.json +134 -0
  35. package/dist/specs/resources/aip-4/draft/DESIGN.schema.json +189 -0
  36. package/dist/specs/resources/aip-40/draft/EXTENSION.schema.json +116 -0
  37. package/dist/specs/resources/aip-41/draft/ROUTINE.schema.json +345 -0
  38. package/dist/specs/resources/aip-42/draft/AGENT.schema.json +268 -0
  39. package/dist/specs/resources/aip-44/draft/ACP.schema.json +170 -0
  40. package/dist/specs/resources/aip-45/draft/AGENT-CLI.schema.json +371 -0
  41. package/dist/specs/resources/aip-47/draft/ROLE.schema.json +199 -0
  42. package/dist/specs/resources/aip-48/draft/MultiAgentRuntime.schema.json +108 -0
  43. package/dist/specs/resources/aip-5/draft/TEMPLATE.schema.json +231 -0
  44. package/dist/specs/resources/aip-6/draft/COMPANY.schema.json +268 -0
  45. package/dist/specs/resources/aip-7/draft/GOVERNANCE.schema.json +581 -0
  46. package/dist/specs/resources/aip-8/draft/AGENCY.schema.json +518 -0
  47. package/dist/specs/resources/aip-9/draft/OPERATOR.schema.json +297 -0
  48. 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, dirname } from 'path';
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 SPECS_ROOT = process.env.CORPUS_SPECS_ROOT || findSpecsRoot();
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(SPECS_ROOT, `aip-${aip}`, "draft", `${doctype}.schema.json`),
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((resolve) => setTimeout(resolve, ms));
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((resolve) => this.pending.set(id, resolve));
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
- // src/version.ts
2516
- var VERSION = "0.1.0-alpha.0";
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})