@skillcdn/console 0.1.23 → 0.3.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.
Files changed (97) hide show
  1. package/README.md +6 -5
  2. package/dist/api.d.ts +1 -1
  3. package/dist/api.d.ts.map +1 -1
  4. package/dist/api.js +1 -1
  5. package/dist/api.js.map +1 -1
  6. package/dist/cli/cli.d.ts.map +1 -1
  7. package/dist/cli/cli.js +80 -54
  8. package/dist/cli/cli.js.map +1 -1
  9. package/dist/cli/format.d.ts +4 -28
  10. package/dist/cli/format.d.ts.map +1 -1
  11. package/dist/cli/format.js +7 -260
  12. package/dist/cli/format.js.map +1 -1
  13. package/dist/cli/help.d.ts +6 -1
  14. package/dist/cli/help.d.ts.map +1 -1
  15. package/dist/cli/help.js +47 -24
  16. package/dist/cli/help.js.map +1 -1
  17. package/dist/cli/pack.d.ts +46 -0
  18. package/dist/cli/pack.d.ts.map +1 -0
  19. package/dist/cli/pack.js +250 -0
  20. package/dist/cli/pack.js.map +1 -0
  21. package/dist/compat.d.ts +1 -1
  22. package/dist/compat.js +1 -1
  23. package/dist/components/decision-list.d.ts +13 -1
  24. package/dist/components/decision-list.d.ts.map +1 -1
  25. package/dist/components/decision-list.js +74 -29
  26. package/dist/components/decision-list.js.map +1 -1
  27. package/dist/components/paged.d.ts +24 -0
  28. package/dist/components/paged.d.ts.map +1 -1
  29. package/dist/components/paged.js +40 -4
  30. package/dist/components/paged.js.map +1 -1
  31. package/dist/components/skills.d.ts.map +1 -1
  32. package/dist/components/skills.js +8 -4
  33. package/dist/components/skills.js.map +1 -1
  34. package/dist/components/ui.d.ts +2 -0
  35. package/dist/components/ui.d.ts.map +1 -1
  36. package/dist/components/ui.js +7 -2
  37. package/dist/components/ui.js.map +1 -1
  38. package/dist/components/work.d.ts +2 -0
  39. package/dist/components/work.d.ts.map +1 -1
  40. package/dist/components/work.js +3 -2
  41. package/dist/components/work.js.map +1 -1
  42. package/dist/console.css +112 -5
  43. package/dist/console.d.ts.map +1 -1
  44. package/dist/console.js +5 -3
  45. package/dist/console.js.map +1 -1
  46. package/dist/data.d.ts.map +1 -1
  47. package/dist/data.js +27 -2
  48. package/dist/data.js.map +1 -1
  49. package/dist/i18n/en.d.ts +13 -0
  50. package/dist/i18n/en.d.ts.map +1 -1
  51. package/dist/i18n/en.js +15 -0
  52. package/dist/i18n/en.js.map +1 -1
  53. package/dist/i18n/ko.d.ts.map +1 -1
  54. package/dist/i18n/ko.js +15 -0
  55. package/dist/i18n/ko.js.map +1 -1
  56. package/dist/index.d.ts +2 -2
  57. package/dist/index.d.ts.map +1 -1
  58. package/dist/index.js +2 -2
  59. package/dist/index.js.map +1 -1
  60. package/dist/router.d.ts +6 -1
  61. package/dist/router.d.ts.map +1 -1
  62. package/dist/router.js +13 -7
  63. package/dist/router.js.map +1 -1
  64. package/dist/rules.js +3 -3
  65. package/dist/rules.js.map +1 -1
  66. package/dist/schemas.d.ts +557 -162
  67. package/dist/schemas.d.ts.map +1 -1
  68. package/dist/schemas.js +72 -158
  69. package/dist/schemas.js.map +1 -1
  70. package/docs/specs/cli.md +12 -12
  71. package/docs/specs/rest.md +7 -15
  72. package/package.json +2 -1
  73. package/skills/deploying-a-console/SKILL.md +2 -2
  74. package/skills/working-the-board/SKILL.md +9 -14
  75. package/skills/working-the-board/references/setting-up.md +3 -0
  76. package/skills/working-the-board/references/terms.md +9 -0
  77. package/skills/working-the-board/references/the-sentence.md +5 -0
  78. package/src/api.ts +2 -7
  79. package/src/cli/cli.ts +113 -62
  80. package/src/cli/format.ts +10 -324
  81. package/src/cli/help.ts +53 -27
  82. package/src/cli/pack.ts +356 -0
  83. package/src/compat.ts +1 -1
  84. package/src/components/decision-list.tsx +227 -94
  85. package/src/components/paged.tsx +72 -3
  86. package/src/components/skills.tsx +51 -33
  87. package/src/components/ui.tsx +16 -3
  88. package/src/components/work.tsx +9 -5
  89. package/src/console.tsx +8 -2
  90. package/src/data.ts +32 -2
  91. package/src/i18n/en.ts +18 -0
  92. package/src/i18n/ko.ts +17 -0
  93. package/src/index.ts +9 -1
  94. package/src/router.ts +20 -9
  95. package/src/rules.ts +3 -3
  96. package/src/schemas.ts +87 -184
  97. package/src/styles/console.css +112 -5
@@ -185,52 +185,6 @@ export function formatArtifact(artifact, fileUrl) {
185
185
  : `${artifact.file.name} (${artifact.file.size} bytes, ${artifact.file.contentType}${fileUrl === undefined ? "" : `; read at ${fileUrl(artifact.id)}`}; console file ${artifact.id})`;
186
186
  return artifact.label === null ? what : `${artifact.label}: ${what}`;
187
187
  }
188
- const SKILLS_WORDS = {
189
- indexing: "SkillCDN is still indexing the repository; ask again in a moment.",
190
- failed: "SkillCDN could not index the repository.",
191
- not_found: "SkillCDN does not serve this address to the console: nothing is there, or the pack is private and the project holds no pack token for it (console project pack-token <key> --stdin, for an owner).",
192
- token_invalid: "The pack token the project holds no longer works at SkillCDN: an owner sets a new one (console project pack-token <key> --stdin).",
193
- unavailable: "SkillCDN could not be reached; ask again later.",
194
- };
195
- /** A count with its noun: `1 skill`, `2 skills`. */
196
- const counted = (n, noun) => `${n} ${noun}${n === 1 ? "" : "s"}`;
197
- /**
198
- * The organization's skills: where they are, the pack by name and by count, each skill with
199
- * what an agent loads it by, where a person connects an agent that has no connection to the
200
- * address, and where the console's own skills are on this machine, when the command knows.
201
- */
202
- export function formatSkills(skills, ownSkills) {
203
- const own = ownSkills === undefined
204
- ? []
205
- : ["", `The console's own skills, for working the board: ${ownSkills}`];
206
- if (skills.status === "none" || skills.address === null || skills.page === null) {
207
- return ["No skills address: neither this project nor the console names one.", ...own].join("\n");
208
- }
209
- const head = `skills at ${skills.address}, served by ${skills.source}: ${skills.status}`;
210
- if (skills.status !== "ready") {
211
- return [head, SKILLS_WORDS[skills.status], ...own].join("\n");
212
- }
213
- const lines = [head];
214
- if (skills.pack !== undefined) {
215
- const named = [skills.pack.name, skills.pack.description]
216
- .filter((text) => text !== null)
217
- .join(" ");
218
- if (named !== "") {
219
- lines.push(named);
220
- }
221
- }
222
- if (skills.counts !== undefined) {
223
- lines.push(`${counted(skills.counts.skills, "skill")}, ${counted(skills.counts.documents, "document")}: console skills <folder> shows what a folder holds (. for the root), console skills --search <words> finds skills and documents by words.`);
224
- }
225
- if (skills.items.length === 0) {
226
- lines.push("No skills at this address.");
227
- }
228
- for (const skill of skills.items) {
229
- lines.push(`${skill.name} ${skill.description}`, ` ${skill.uri ?? skill.path}`);
230
- }
231
- lines.push("", `Read a skill whole with console skill <path>, its rules first, and a file of the pack with console skill --file <path>; or load it by its URI through your own SkillCDN connection to this address, which a person makes at ${skills.page}. --json adds the page of each, for a person.`, ...own);
232
- return lines.join("\n");
233
- }
234
188
  /** One half of the rules: where it comes from, and the text as it stands. */
235
189
  function formatRulesHalf(where, rules) {
236
190
  const page = rules.page;
@@ -327,18 +281,21 @@ export function formatDecisionLine(decision) {
327
281
  const state = decision.answer === null ? "waiting" : `answered ${decision.answer.option}`;
328
282
  return `${decision.id} ${state} ${decision.question} (asked by ${asker(decision)})`;
329
283
  }
284
+ /** The options, one a line; the person's own answer, when they wrote one, is the last and says so. */
330
285
  export function formatOptions(decision) {
331
- return decision.options.map((option) => ` ${option.id}) ${option.label}`).join("\n");
286
+ return decision.options
287
+ .map((option) => ` ${option.id}) ${option.label}${option.own === true ? " (the person's own answer, not one given)" : ""}`)
288
+ .join("\n");
332
289
  }
333
- /** The answer, with who gave it; or that there is none yet. */
290
+ /** The answer, with who gave it, and that it is in their own words when it is; or that there is none yet. */
334
291
  export function formatAnswer(decision) {
335
292
  const { answer } = decision;
336
293
  if (answer === null) {
337
294
  return "waits for a person.";
338
295
  }
339
- const label = decision.options.find((option) => option.id === answer.option)?.label;
296
+ const chosen = decision.options.find((option) => option.id === answer.option);
340
297
  const lines = [
341
- `Answered: ${answer.option}) ${label ?? answer.option}, by ${answer.by.login} at ${answer.at}`,
298
+ `Answered: ${answer.option}) ${chosen?.label ?? answer.option}${chosen?.own === true ? ", in their own words" : ""}, by ${answer.by.login} at ${answer.at}`,
342
299
  ];
343
300
  if (answer.note !== null && answer.note.length > 0) {
344
301
  lines.push(`Note: ${answer.note}`);
@@ -424,214 +381,4 @@ export function formatVersion(path, version) {
424
381
  return lines.join("\n");
425
382
  }
426
383
  /** The text of one path across the pages a skill came in: the fragments joined in order. */
427
- function joinTexts(pages, pick) {
428
- const joined = new Map();
429
- for (const page of pages) {
430
- for (const text of pick(page)) {
431
- joined.set(text.path, (joined.get(text.path) ?? "") + text.body);
432
- }
433
- }
434
- return [...joined.entries()].map(([path, body]) => ({ path, body }));
435
- }
436
- const NO_ADDRESS = "No skills address: neither this project nor the console names one.";
437
- /**
438
- * One skill, as load_skill lays it out for a model (ADR-0028): the rules from the repository's
439
- * root to the nearest manifest, the body, the included files, each under a line that names its
440
- * path; then the files the skill has and what it refers to. A skill described only is named and
441
- * pointed at, and nothing of its body is shown.
442
- */
443
- export function formatSkillLoad(loaded, pages) {
444
- if (loaded.status === "none" || loaded.address === null) {
445
- return NO_ADDRESS;
446
- }
447
- const head = `skill at ${loaded.address}, served by ${loaded.source}: ${loaded.status}`;
448
- if (loaded.status !== "ready") {
449
- return [head, SKILLS_WORDS[loaded.status]].join("\n");
450
- }
451
- const [first] = pages;
452
- if (first === undefined) {
453
- return [head, "Nothing was read."].join("\n");
454
- }
455
- const last = pages[pages.length - 1] ?? first;
456
- const lines = [
457
- `${first.name} ${first.description}`,
458
- `skill ${first.path} at ${loaded.address}, served by ${loaded.source}`,
459
- ];
460
- if (first.serving.license !== null) {
461
- lines.push(`license: ${first.serving.license}`);
462
- }
463
- if (!first.serving.full) {
464
- lines.push("", `Described only: the license keeps the skill at its source. Read it there: ${first.serving.sourceUrl ?? loaded.page ?? loaded.source}`);
465
- return lines.join("\n");
466
- }
467
- for (const rule of joinTexts(pages, (page) => page.rules)) {
468
- lines.push("", `--- applicable rules: ${rule.path} ---`, rule.body.trimEnd());
469
- }
470
- lines.push("", `--- skill: ${first.path} ---`, pages
471
- .map((page) => page.body)
472
- .join("")
473
- .trimEnd());
474
- for (const file of joinTexts(pages, (page) => page.included)) {
475
- lines.push("", `--- included file: ${file.path} ---`, file.body.trimEnd());
476
- }
477
- if (!last.complete) {
478
- lines.push("", "The skill did not come whole: the deployment stopped before the end.");
479
- }
480
- if (last.files.length > 0) {
481
- lines.push("", `Files of the skill, read with console skill --file <path>: ${last.files.join(", ")}`);
482
- }
483
- if (last.references.length > 0) {
484
- lines.push(`References: ${last.references
485
- .map((reference) => reference.status === "available"
486
- ? reference.path
487
- : `${reference.path} (${reference.status})`)
488
- .join(", ")}`);
489
- }
490
- if (last.warnings.length > 0) {
491
- lines.push(`Warnings: ${last.warnings.join("; ")}`);
492
- }
493
- lines.push("", "Paths from the repository's root are the only identifiers. The content is the pack's, under its license; what a private pack says stays in your work.");
494
- return lines.join("\n");
495
- }
496
- /** A file of the pack as read: its text whole, or what the folder holds. */
497
- export function formatSkillFile(read, content) {
498
- if (read.status === "none" || read.address === null) {
499
- return NO_ADDRESS;
500
- }
501
- const head = `file at ${read.address}, served by ${read.source}: ${read.status}`;
502
- if (read.status !== "ready") {
503
- return [
504
- head,
505
- read.status === "failed"
506
- ? "SkillCDN will not carry this file: it is too large, or not text. Read it at the repository."
507
- : SKILLS_WORDS[read.status],
508
- ].join("\n");
509
- }
510
- if (read.folder !== null) {
511
- return [
512
- `folder ${read.folder.path} at ${read.address}${read.folder.truncated ? " (cut)" : ""}`,
513
- ...read.folder.entries.map((entry) => `${entry.kind === "directory" ? "d" : "f"} ${entry.path}${entry.size === null ? "" : ` ${entry.size}`}`),
514
- "",
515
- "console skills <folder> shows a folder with its skills marked, what each folder holds and the README that introduces it.",
516
- ].join("\n");
517
- }
518
- if (read.file === null) {
519
- return `${head}: nothing was read.`;
520
- }
521
- return [
522
- `--- file: ${read.file.path} (${read.file.totalLength} characters) ---`,
523
- content.trimEnd(),
524
- ].join("\n");
525
- }
526
- /** One entry of a browsed folder: what it is, its path, its words, and the facts of its kind. */
527
- function formatBrowseEntry(entry) {
528
- const facts = [];
529
- if (entry.kind === "directory") {
530
- if (entry.skillCount > 0) {
531
- facts.push(counted(entry.skillCount, "skill"));
532
- }
533
- if (entry.documentCount > 0) {
534
- facts.push(counted(entry.documentCount, "document"));
535
- }
536
- if (entry.overviewPath !== null) {
537
- facts.push(`README ${entry.overviewPath}`);
538
- }
539
- }
540
- if (entry.kind === "skill") {
541
- if (entry.license !== null) {
542
- facts.push(entry.license);
543
- }
544
- if (entry.describedOnly) {
545
- facts.push("described only");
546
- }
547
- }
548
- if (entry.kind === "file" && entry.size !== null) {
549
- facts.push(`${entry.size} bytes`);
550
- }
551
- const words = [entry.name, entry.description]
552
- .filter((text) => text !== null && text !== "")
553
- .join(" ");
554
- const mark = entry.kind === "skill" ? "skill" : entry.kind === "directory" ? "d" : "f";
555
- return `${mark} ${entry.path}${words === "" ? "" : ` ${words}`}${facts.length === 0 ? "" : ` (${facts.join("; ")})`}`;
556
- }
557
- /**
558
- * What a folder of the pack holds, as browse_repo lays it out: the README that introduces the
559
- * folder, then its skills, its folders with what each holds, and its files, across the pages the
560
- * listing came in.
561
- */
562
- export function formatSkillBrowse(browsed, folders) {
563
- if (browsed.status === "none" || browsed.address === null) {
564
- return NO_ADDRESS;
565
- }
566
- const head = `folder at ${browsed.address}, served by ${browsed.source}: ${browsed.status}`;
567
- if (browsed.status !== "ready") {
568
- return [head, SKILLS_WORDS[browsed.status]].join("\n");
569
- }
570
- const [first] = folders;
571
- if (first === undefined) {
572
- return [head, "Nothing was read."].join("\n");
573
- }
574
- const last = folders[folders.length - 1] ?? first;
575
- const lines = [`folder ${first.path === "" ? "/" : first.path} at ${browsed.address}`];
576
- if (first.overview !== null) {
577
- const words = [first.overview.title, first.overview.description]
578
- .filter((text) => text !== null && text !== "")
579
- .join(" ");
580
- lines.push(` ${words === "" ? "" : `${words} `}(README: ${first.overview.path})`);
581
- }
582
- const entries = folders.flatMap((folder) => folder.entries);
583
- if (entries.length === 0) {
584
- lines.push("Nothing in this folder.");
585
- }
586
- for (const entry of entries) {
587
- lines.push(formatBrowseEntry(entry));
588
- }
589
- if (last.nextCursor !== null) {
590
- lines.push("More entries: the listing stopped before the end of the folder.");
591
- }
592
- lines.push("", "Read a skill with console skill <path>; a file, or a README named above, with console skill --file <path>; a folder with console skills <folder>.");
593
- return lines.join("\n");
594
- }
595
- /**
596
- * What words found in the pack, as search_repo lays it out: skills with the files of theirs that
597
- * matched, documents on their own, in relevance order; words, not meaning.
598
- */
599
- export function formatSkillFind(found) {
600
- if (found.status === "none" || found.address === null) {
601
- return NO_ADDRESS;
602
- }
603
- const head = `search at ${found.address}, served by ${found.source}: ${found.status}`;
604
- if (found.status !== "ready") {
605
- return [head, SKILLS_WORDS[found.status]].join("\n");
606
- }
607
- if (found.found === null) {
608
- return [head, "Nothing was read."].join("\n");
609
- }
610
- const { query, path, items, nextCursor } = found.found;
611
- const where = path === null || path === "" ? "" : ` within ${path}`;
612
- const lines = [
613
- `found for "${query}"${where} at ${found.address}: ${counted(items.length, "result")}`,
614
- ];
615
- for (const item of items) {
616
- if (item.kind === "skill") {
617
- lines.push(`skill ${item.path} ${item.name} ${item.description}${item.describedOnly ? " (described only)" : ""}`);
618
- for (const file of item.files) {
619
- lines.push(` file ${file.path}${file.title === null ? "" : ` ${file.title}`}`);
620
- }
621
- if (item.moreFiles > 0) {
622
- lines.push(` and ${counted(item.moreFiles, "more file")}`);
623
- }
624
- }
625
- else {
626
- lines.push(`document ${item.path}${item.title === null ? "" : ` ${item.title}`}${item.summary === null ? "" : ` ${item.summary}`}`);
627
- }
628
- }
629
- if (nextCursor !== null) {
630
- lines.push("More matched: narrow the words, or search within a folder (console skills <folder> --search <words>).");
631
- }
632
- if (items.length > 0) {
633
- lines.push("", "Read a skill with console skill <path>, a file or a document with console skill --file <path>.");
634
- }
635
- return lines.join("\n");
636
- }
637
384
  //# sourceMappingURL=format.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/cli/format.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/cli/format.ts"],"names":[],"mappings":"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"}
@@ -13,8 +13,13 @@ export interface CommandHelp {
13
13
  readonly refusals?: readonly string[];
14
14
  }
15
15
  export declare const COMMAND_HELP: Readonly<Record<string, CommandHelp>>;
16
+ /**
17
+ * Where the skill working-the-board is, among the console's own skills in `skillsDir`, with the
18
+ * separators the directory came with, so that the path reads as the machine writes paths.
19
+ */
20
+ export declare function ownSkillPath(skillsDir: string): string;
16
21
  /** The overview, as `console help` prints it: every command in a line, naming the version when it is known. */
17
- export declare function usage(version?: string): string;
22
+ export declare function usage(version?: string, skillsDir?: string): string;
18
23
  /** What `console help <command>` prints, the command in full; or nothing for a command that is not one. */
19
24
  export declare function helpFor(name: string): string | undefined;
20
25
  //# sourceMappingURL=help.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAwCA,MAAM,WAAW,WAAW;IAC1B,2EAA2E;IAC3E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,oGAAoG;IACpG,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,mDAAmD;IACnD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,wDAAwD;IACxD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,+CAA+C;IAC/C,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,iEAAiE;IACjE,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACvC;AAqCD,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAoa9D,CAAC;AA0EF,+GAA+G;AAC/G,wBAAgB,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAc9C;AAED,2GAA2G;AAC3G,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAaxD"}
1
+ {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAwCA,MAAM,WAAW,WAAW;IAC1B,2EAA2E;IAC3E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,oGAAoG;IACpG,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,mDAAmD;IACnD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,wDAAwD;IACxD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,+CAA+C;IAC/C,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,iEAAiE;IACjE,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACvC;AA+CD,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAwa9D,CAAC;AAEF;;;GAGG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAKtD;AA2ED,+GAA+G;AAC/G,wBAAgB,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAclE;AAED,2GAA2G;AAC3G,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAaxD"}
package/dist/cli/help.js CHANGED
@@ -6,10 +6,18 @@ const COMMON_REFUSALS = [
6
6
  "request.invalid: what was sent is over a limit or malformed; the message names the field",
7
7
  "network: the console could not be reached at its address",
8
8
  ];
9
+ /** How a command on a run finds its run, and what it says when it cannot: the command's own refusals. */
10
+ const RUN_CHOICE = [
11
+ "run.none: no run of yours is open in the project; take a task first, or name a run with --run <id>",
12
+ "run.ambiguous: several runs of yours are open in the project; say which with --run <id>",
13
+ ];
9
14
  const RUN_REFUSALS = [
15
+ ...RUN_CHOICE,
10
16
  "run.not_yours: the run is another person's",
11
17
  "run.over: the run has ended already",
12
18
  ];
19
+ /** What every command on a run says of the run it acts on. */
20
+ const ON_THE_RUN = "On your one open run in the project, or the one --run <id> names.";
13
21
  const MARKDOWN = `Markdown, up to ${MAX_BODY_LENGTH} characters`;
14
22
  const DOCUMENT_PATH = `a path of lowercase letters, digits and hyphens, with slashes between its folders (guides/onboarding), up to ${MAX_DOCUMENT_PATH_LENGTH} characters; it does not change once written`;
15
23
  const DOCUMENT_REFUSALS = ["document.not_found: no page has that path in this project"];
@@ -185,9 +193,9 @@ export const COMMAND_HELP = {
185
193
  ],
186
194
  },
187
195
  skills: {
188
- usage: "skills | skills <folder> | skills --search <words> [<folder>] [--limit <n>]",
196
+ usage: "skills | skills <folder> | skills --search <words> [<folder>] [--limit <n>] [--cursor <cursor>]",
189
197
  synopsis: "The project's pack: its skills; what a folder of it holds; or what words find in it.",
190
- about: "The project's pack, as SkillCDN serves it at the project's address, read by the console with the pack token the project holds where the pack is private (ADR-0028). Alone: the pack by name with how many skills and documents it has, and its skills, each with its description, the path of its SKILL.md, which console skill reads it by, and the URI you load it by through your own SkillCDN connection where your host has one; and where the console's own skills are on this machine. With a folder (. for the root): what it holds, as browse_repo lays it out: its skills, its folders with how many skills and documents each holds and the README that introduces it, its files; whole, page after page. With --search: the skills and the documents the words find, in relevance order, a skill with the files of it that matched; words, not meaning, in the language the pack is written in; within the folder when one is named; 10 unless --limit says otherwise, up to 25, and a last line says when more matched. --json answers with the console's own JSON, the page of each skill included.",
198
+ about: "The project's pack, read by the console at the project's address, or the organization's: at a SkillCDN deployment, with the pack token the project holds where the pack is private (ADR-0028), or from a directory on the console's machine for a local address (ADR-0031). Alone: where the pack is and what a client is told of it on connect, then every skill with the path of its SKILL.md and every document, as a connection of your own would list them, and where the console's own skills are on this machine. With a folder (. for the root): what it holds, whole, as browse_repo lays it out for a model: its skills, its folders with what each holds and the README that introduces it, its files. With --search: what the words find, as search_repo does: skills first, with the files of theirs that matched, then documents, in relevance order; words, not meaning, in the language the pack is written in; within the folder when one is named; 10 unless --limit says otherwise, up to 25, and a nextCursor line says when more matched, which --cursor continues. The text is the one an MCP client's model is given, with the reads named as these commands. --json answers with the console's own JSON: what the pack answered, in the shapes of the main repository's REST API, the pages of a folder joined.",
191
199
  limits: ["search: 1 to 500 characters; limit: 1 to 25"],
192
200
  refusals: [
193
201
  "status not_found: the pack is not served to the console; private, with no pack token on the project",
@@ -197,11 +205,11 @@ export const COMMAND_HELP = {
197
205
  skill: {
198
206
  usage: "skill <path> | skill --file <path>",
199
207
  synopsis: "One skill of the pack whole, its rules first; or with --file a file of the pack, or what a folder holds.",
200
- about: "One skill of the project's pack, whole, as load_skill lays it out for you: the rules of the repository from its root to the nearest manifest, the skill's body, the files it includes, each under a line that names its path; then the files it has and what it refers to. Read by the console from the SkillCDN deployment, with the pack token the project holds where the pack is private, so you need no connection of your own. <path> is the path of the SKILL.md from the repository's root, as console skills lists it. --file <path> reads a file of the pack instead, whole, or what a folder holds, and takes no skill's path beside it; console skills <folder> shows a folder with more.",
208
+ about: "One skill of the project's pack, whole, as load_skill lays it out for a model: the rules of the repository from its root to the nearest manifest, the skill's instructions, the files it includes, then its supporting files and what it refers to; the pages it came in are joined. Read by the console from the pack, with the pack token the project holds where the pack is private, so you need no connection of your own. <path> is the path of the SKILL.md from the repository's root, as console skills lists it, or the URI the pack names it by (skill://<host>/<owner>/<name>/<path>). --file <path> reads a file of the pack instead, whole, as read_repo_file does, or what a folder holds, and takes no skill's path beside it; console skills <folder> shows a folder with more. --json answers with what the pack answered, in the shapes of the main repository's REST API, the pages joined.",
201
209
  refusals: [
202
210
  "status not_found: the pack is not served to the console; private, with no pack token on the project",
203
211
  "status token_invalid: the pack token the project holds no longer works; an owner sets a new one",
204
- "status failed, for a file: SkillCDN will not carry it, too large or not text",
212
+ "status failed, for a file: the pack will not carry it, too large or not text",
205
213
  ],
206
214
  },
207
215
  rules: {
@@ -227,9 +235,10 @@ export const COMMAND_HELP = {
227
235
  ],
228
236
  },
229
237
  report: {
230
- usage: "report <markdown> | report --file <path> | report -",
238
+ usage: "report <markdown> [--run <id>] | report --file <path> [--run <id>] | report - [--run <id>]",
239
+ overview: "report <markdown> | report --file <path> | report -",
231
240
  synopsis: "Says how the work goes, in Markdown, on the open run.",
232
- about: "Says how the work goes, in Markdown: what was found, what was done, what is next. With - the report is read from standard input.",
241
+ about: `Says how the work goes, in Markdown: what was found, what was done, what is next. With - the report is read from standard input. ${ON_THE_RUN}`,
233
242
  limits: [
234
243
  `the report: ${MARKDOWN}, not blank`,
235
244
  `at most ${MAX_REPORTS_PER_RUN} reports on one run`,
@@ -237,9 +246,10 @@ export const COMMAND_HELP = {
237
246
  refusals: [...RUN_REFUSALS, "run.too_many_reports: the run carries as many as one may"],
238
247
  },
239
248
  "hand-in": {
240
- usage: "hand-in <https url | file path> [--label <words>]",
249
+ usage: "hand-in <https url | file path> [--label <words>] [--run <id>]",
250
+ overview: "hand-in <https url | file path> [--label <words>]",
241
251
  synopsis: "Hands in what was made: an https link, or a file from this machine.",
242
- about: "Hands in what was made: a link (a branch, a pull request, a document, a page), or a file from this machine, which the console keeps and shows on the task; a picture is shown there small and large, and a report that names it as ![words](its name) shows it where the words are.",
252
+ about: `Hands in what was made: a link (a branch, a pull request, a document, a page), or a file from this machine, which the console keeps and shows on the task; a picture is shown there small and large, and a report that names it as ![words](its name) shows it where the words are. ${ON_THE_RUN}`,
243
253
  limits: [
244
254
  "a link: https only",
245
255
  `a file: up to ${MAX_FILE_BYTES} bytes, not empty; it is called by its name, without the path`,
@@ -253,20 +263,21 @@ export const COMMAND_HELP = {
253
263
  ],
254
264
  },
255
265
  ask: {
256
- usage: 'ask "<question>" --option "<label>" --option "<label>" [...] [--body <markdown>|--file <path>] [--wait <seconds>]',
266
+ usage: 'ask "<question>" --option "<label>" --option "<label>" [...] [--body <markdown>|--file <path>] [--wait <seconds>] [--run <id>]',
267
+ overview: 'ask "<question>" --option "<label>" --option "<label>" [...] [--body <markdown>|--file <path>] [--wait <seconds>]',
257
268
  synopsis: "Raises a decision a person must make, with options, and waits a while for the answer.",
258
- about: "Raises a decision a person must make: the question, the options to choose from, and what they need to know. The run waits for the answer. The command waits 60 seconds for it unless --wait says otherwise, and exits with 3 if it is still to come: keep waiting with `console decision <id> --wait 100`, within what your shell gives one command. The decision's id is printed as soon as it is raised.",
269
+ about: `Raises a decision a person must make: the question, the options to choose from, and what they need to know. The run waits for the answer. The command waits 60 seconds for it unless --wait says otherwise, and exits with 3 if it is still to come: keep waiting with \`console decision <id> --wait 100\`, within what your shell gives one command. The decision's id is printed as soon as it is raised. The person chooses one of the options, or answers in their own words: the answer then names one more option, their words, marked own; act on it as given. ${ON_THE_RUN}`,
259
270
  limits: [
260
271
  `question: one line, up to ${MAX_QUESTION_LENGTH} characters`,
261
272
  `options: ${MIN_OPTIONS} to ${MAX_OPTIONS}, each one line up to ${MAX_OPTION_LABEL_LENGTH} characters`,
262
273
  `body: ${MARKDOWN}`,
263
274
  ],
264
- refusals: ["decision.invalid_run: the run is not yours, or is over"],
275
+ refusals: [...RUN_CHOICE, "decision.invalid_run: the run is not yours, or is over"],
265
276
  },
266
277
  decision: {
267
278
  usage: "decision <id> [--wait <seconds>] | decision <id> --outcome <markdown>|--file <path>",
268
279
  synopsis: "One decision in full; waits for its answer with --wait; writes what followed with --outcome.",
269
- about: "One decision, with its context, its options, its answer and what followed. With --wait, holds on for the answer that long, and exits with 3 if it is still to come. With --outcome, writes down what followed the decision, so that it reads as a record.",
280
+ about: "One decision, with its context, its options, its answer (one of the options, or the person's own words as one more, marked own) and what followed. With --wait, holds on for the answer that long, and exits with 3 if it is still to come. With --outcome, writes down what followed the decision, so that it reads as a record.",
270
281
  limits: [`outcome: ${MARKDOWN}`],
271
282
  refusals: ["decision.not_found: no decision has that id"],
272
283
  },
@@ -276,16 +287,18 @@ export const COMMAND_HELP = {
276
287
  about: `The decisions on the board, the waiting first; --open keeps only those. A page at a time: ${DEFAULT_PAGE_LIMIT} unless --limit says otherwise, from --offset on.`,
277
288
  },
278
289
  finish: {
279
- usage: 'finish [--summary "<markdown>"|--file <path>]',
290
+ usage: 'finish [--summary "<markdown>"|--file <path>] [--run <id>]',
291
+ overview: 'finish [--summary "<markdown>"|--file <path>]',
280
292
  synopsis: "Ends the run: done and handed in; the task goes up for review.",
281
- about: "Ends the run: the work is done and handed in, and the task goes up for review. The summary says what was done and what is left; the result itself goes in a last report before, which may be much longer.",
293
+ about: `Ends the run: the work is done and handed in, and the task goes up for review. The summary says what was done and what is left; the result itself goes in a last report before, which may be much longer. ${ON_THE_RUN}`,
282
294
  limits: [`summary: ${`Markdown, up to ${MAX_SUMMARY_LENGTH} characters`}`],
283
295
  refusals: RUN_REFUSALS,
284
296
  },
285
297
  fail: {
286
- usage: 'fail [--summary "<markdown>"|--file <path>]',
298
+ usage: 'fail [--summary "<markdown>"|--file <path>] [--run <id>]',
299
+ overview: 'fail [--summary "<markdown>"|--file <path>]',
287
300
  synopsis: "Ends the run: the work could not be done.",
288
- about: "Ends the run: the work could not be done. The summary says why, and what is left.",
301
+ about: `Ends the run: the work could not be done. The summary says why, and what is left. ${ON_THE_RUN}`,
289
302
  limits: [`summary: Markdown, up to ${MAX_SUMMARY_LENGTH} characters`],
290
303
  refusals: RUN_REFUSALS,
291
304
  },
@@ -344,7 +357,7 @@ export const COMMAND_HELP = {
344
357
  write: {
345
358
  usage: 'write <path> [--title "<title>"] --body <markdown>|--file <path> [--base <version>]',
346
359
  synopsis: "Writes a page: a new one at a path, or a new version of the page there.",
347
- about: "Writes a page: the first version at a new path, or a new version of the page there. A link in the body whose destination is a page's path (guides/onboarding) refers to that page, and the page says what refers to it. Without --title the page keeps its title. With --base, the write is refused if the page has moved on since that version.",
360
+ about: "Writes a page: the first version at a new path, or a new version of the page there. The title is shown above the body, on the page and by console doc, so the body does not begin with it as a heading. A link in the body whose destination is a page's path (guides/onboarding) refers to that page, and the page says what refers to it. Without --title the page keeps its title. With --base, the write is refused if the page has moved on since that version.",
348
361
  limits: [
349
362
  `path: ${DOCUMENT_PATH}`,
350
363
  `title: one line, up to ${MAX_TITLE_LENGTH} characters`,
@@ -392,12 +405,21 @@ export const COMMAND_HELP = {
392
405
  refusals: ["not a build to serve: the directory holds no index.html"],
393
406
  },
394
407
  };
395
- /** The first lines of the usage, with the version of the command when it is known. */
396
- const preamble = (version) => `console${version === undefined ? "" : ` ${version}`}: the board of your organization's work with AI agents, from the command line.
408
+ /**
409
+ * Where the skill working-the-board is, among the console's own skills in `skillsDir`, with the
410
+ * separators the directory came with, so that the path reads as the machine writes paths.
411
+ */
412
+ export function ownSkillPath(skillsDir) {
413
+ const separator = skillsDir.includes("\\") ? "\\" : "/";
414
+ const base = skillsDir.endsWith("/") || skillsDir.endsWith("\\") ? skillsDir : `${skillsDir}${separator}`;
415
+ return `${base}working-the-board${separator}SKILL.md`;
416
+ }
417
+ /** The first lines of the usage, with the version of the command and where its skill is, when known. */
418
+ const preamble = (version, skillsDir) => `console${version === undefined ? "" : ` ${version}`}: the board of your organization's work with AI agents, from the command line.
397
419
  You act as the person whose token you hold; everything you send is shown to people as text.
398
420
  The rules of this organization come with the task: console take prints them; console rules reads them any time.
399
- How the board is worked is the skill working-the-board, installed with this command: console skills prints
400
- where it is; read it before the first command of a run.
421
+ How the board is worked is the skill working-the-board, installed with this command; read it before the
422
+ first command of a run${skillsDir === undefined ? " (console whoami says where it is)" : `:\n${ownSkillPath(skillsDir)}`}
401
423
 
402
424
  Usage: console <command> [arguments] [--json] [--url <origin>] [--project <key>]
403
425
  A command in full, every form and flag ([flags] below), the limits the console holds it to and what
@@ -412,7 +434,8 @@ with several open, say which with --run <id>. A Markdown body given as - is read
412
434
  console --version says which version of the command this is.
413
435
 
414
436
  Exit codes: 0 done; 1 the console refused, or could not be reached (the reason is on stderr);
415
- 2 the command was not understood; 3 the decision still waits for a person.
437
+ 2 the command was not understood; 3 the decision still waits for a person; 4 the command and the
438
+ console do not go together, and stderr says which to update and how.
416
439
  What the console refuses is printed as its code and its words. Everywhere:
417
440
  ${COMMON_REFUSALS.map((refusal) => ` ${refusal}`).join("\n")}
418
441
 
@@ -460,8 +483,8 @@ const SECTIONS = [
460
483
  },
461
484
  ];
462
485
  /** The overview, as `console help` prints it: every command in a line, naming the version when it is known. */
463
- export function usage(version) {
464
- const parts = [preamble(version)];
486
+ export function usage(version, skillsDir) {
487
+ const parts = [preamble(version, skillsDir)];
465
488
  for (const section of SECTIONS) {
466
489
  parts.push(`${section.title}`);
467
490
  for (const name of section.commands) {