blacksmith-organization-system 1.8.0 → 1.10.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/cli.js +56 -11
- package/dist/cli.js.map +1 -1
- package/dist/core/tool.d.ts +1 -0
- package/dist/core/tool.js +10 -0
- package/dist/core/tool.js.map +1 -1
- package/dist/views/help.js +1 -0
- package/dist/views/help.js.map +1 -1
- package/package.json +1 -1
- package/resources/docs-templates/ruleset.md +14 -0
package/dist/cli.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
// bos <model> <tool> [operands] [--flags] · bos help · bos --version
|
|
2
|
+
// bos <model> <tool> [operands] [--flags] · bos help · bos --version · bos (a REPL)
|
|
3
3
|
// One command per run: read the arguments, run the tool on BOS, print what it returned.
|
|
4
|
+
// Without a command in a terminal (or with --repl): a REPL, each line one <model> <tool>.
|
|
5
|
+
import { createInterface } from "node:readline";
|
|
4
6
|
import { BOS } from "./bos.js";
|
|
5
7
|
import { JsonFile } from "./core/json-file.js";
|
|
6
8
|
import { packagePath } from "./core/paths.js";
|
|
7
|
-
import { inputFor, parseArgs } from "./core/tool.js";
|
|
9
|
+
import { inputFor, parseArgs, splitLine } from "./core/tool.js";
|
|
8
10
|
import { NodeHost } from "./hosts/node.js";
|
|
9
11
|
import { findTool, TOOLS } from "./tools/_index.js";
|
|
10
12
|
import { helpText } from "./views/help.js";
|
|
@@ -38,9 +40,10 @@ function print(entry, result, input, json) {
|
|
|
38
40
|
console.log(json ? asJson : forPeople);
|
|
39
41
|
}
|
|
40
42
|
}
|
|
41
|
-
|
|
43
|
+
// one command: bos <model> <tool> [operands] [--flags]
|
|
44
|
+
async function command(argv, signal) {
|
|
42
45
|
const { operands, flags } = parseArgs(argv);
|
|
43
|
-
const { workshop, json, ...toolFlags } = flags;
|
|
46
|
+
const { workshop, json, repl: _repl, ...toolFlags } = flags;
|
|
44
47
|
const [model, name, ...rest] = operands;
|
|
45
48
|
if (flags.version) {
|
|
46
49
|
console.log(manifest.data.version);
|
|
@@ -57,21 +60,63 @@ async function main(argv) {
|
|
|
57
60
|
}
|
|
58
61
|
const input = inputFor(entry, rest, toolFlags);
|
|
59
62
|
const bos = new BOS(host, { workshop: typeof workshop === "string" ? workshop : undefined });
|
|
63
|
+
const result = await entry.run(bos, input, { print: (line) => console.log(line), signal });
|
|
64
|
+
print(entry, result, input, Boolean(json));
|
|
65
|
+
return 0;
|
|
66
|
+
}
|
|
67
|
+
const failure = (error) => `bos: ${error instanceof Error ? error.message : String(error)}`;
|
|
68
|
+
// the REPL: each line is one command, with the flags bos was started with (--workshop=…);
|
|
69
|
+
// a failed command says why and the next line comes; exit, quit or Ctrl+D ends it.
|
|
70
|
+
// Ctrl+C stops the running tool (bos workshop watch), at the prompt it ends the REPL.
|
|
71
|
+
async function repl(startFlags) {
|
|
72
|
+
const terminal = Boolean(process.stdin.isTTY);
|
|
73
|
+
const lines = createInterface({ input: process.stdin, output: process.stdout, terminal });
|
|
74
|
+
if (terminal) {
|
|
75
|
+
console.log(`bos ${manifest.data.version}: <model> <tool> [operands] [--flags], help, exit`);
|
|
76
|
+
}
|
|
77
|
+
const prompt = () => terminal && lines.prompt();
|
|
78
|
+
lines.setPrompt("bos> ");
|
|
79
|
+
let running = null;
|
|
80
|
+
lines.on("SIGINT", () => (running ? running.abort() : lines.close()));
|
|
81
|
+
let failed = 0;
|
|
82
|
+
prompt();
|
|
83
|
+
for await (const line of lines) {
|
|
84
|
+
const argv = splitLine(line);
|
|
85
|
+
if (argv[0] === "exit" || argv[0] === "quit") {
|
|
86
|
+
break;
|
|
87
|
+
}
|
|
88
|
+
if (argv.length) {
|
|
89
|
+
running = new AbortController();
|
|
90
|
+
try {
|
|
91
|
+
await command([...argv, ...startFlags], running.signal);
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
failed++;
|
|
95
|
+
console.error(failure(error));
|
|
96
|
+
}
|
|
97
|
+
running = null;
|
|
98
|
+
}
|
|
99
|
+
prompt();
|
|
100
|
+
}
|
|
101
|
+
lines.close();
|
|
102
|
+
// piped lines (bos --repl < commands): the exit code says whether any of them failed
|
|
103
|
+
return failed ? 1 : 0;
|
|
104
|
+
}
|
|
105
|
+
async function main(argv) {
|
|
106
|
+
const { operands, flags } = parseArgs(argv);
|
|
107
|
+
if (flags.repl || (!operands.length && !flags.version && process.stdin.isTTY)) {
|
|
108
|
+
return repl(argv.filter((arg) => arg.startsWith("--") && arg !== "--repl"));
|
|
109
|
+
}
|
|
60
110
|
// Ctrl+C stops a long tool (bos workshop watch) cleanly instead of killing it
|
|
61
111
|
const stop = new AbortController();
|
|
62
112
|
process.once("SIGINT", () => stop.abort());
|
|
63
|
-
|
|
64
|
-
print: (line) => console.log(line),
|
|
65
|
-
signal: stop.signal,
|
|
66
|
-
});
|
|
67
|
-
print(entry, result, input, Boolean(json));
|
|
68
|
-
return 0;
|
|
113
|
+
return command(argv, stop.signal);
|
|
69
114
|
}
|
|
70
115
|
loadCheckoutEnv();
|
|
71
116
|
main(process.argv.slice(2)).then((code) => {
|
|
72
117
|
process.exitCode = code;
|
|
73
118
|
}, (error) => {
|
|
74
|
-
console.error(
|
|
119
|
+
console.error(failure(error));
|
|
75
120
|
process.exitCode = 1;
|
|
76
121
|
});
|
|
77
122
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/core/tool.d.ts
CHANGED
|
@@ -26,6 +26,7 @@ export declare function tool<R>(definition: Omit<Tool, "run" | "render" | "args"
|
|
|
26
26
|
run: (bos: BOS, input: Input, io: IO) => R | Promise<R>;
|
|
27
27
|
render?: (result: Awaited<R>, input: Input) => string;
|
|
28
28
|
}): Tool;
|
|
29
|
+
export declare function splitLine(line: string): string[];
|
|
29
30
|
export declare function parseArgs(argv: string[]): {
|
|
30
31
|
operands: string[];
|
|
31
32
|
flags: Record<string, string | boolean>;
|
package/dist/core/tool.js
CHANGED
|
@@ -2,6 +2,16 @@ export function tool(definition) {
|
|
|
2
2
|
return { args: [], readOnly: true, ...definition };
|
|
3
3
|
}
|
|
4
4
|
// "--dry-run --workshop=/x a b" → flags { dryRun: true, workshop: "/x" }, operands [a, b]
|
|
5
|
+
// a line typed in the REPL → its arguments, as a shell would split them: by spaces, with
|
|
6
|
+
// "double" or 'single' quotes holding one argument together ('almanac judge "Cleo pushes"')
|
|
7
|
+
export function splitLine(line) {
|
|
8
|
+
const args = [];
|
|
9
|
+
for (const match of line.matchAll(/"((?:\\.|[^"\\])*)"|'([^']*)'|(\S+)/g)) {
|
|
10
|
+
const [, double, single, bare] = match;
|
|
11
|
+
args.push(double !== undefined ? double.replace(/\\(.)/g, "$1") : (single ?? bare ?? ""));
|
|
12
|
+
}
|
|
13
|
+
return args;
|
|
14
|
+
}
|
|
5
15
|
export function parseArgs(argv) {
|
|
6
16
|
const flags = {};
|
|
7
17
|
const operands = [];
|
package/dist/core/tool.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../../src/core/tool.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../../src/core/tool.ts"],"names":[],"mappings":"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"}
|
package/dist/views/help.js
CHANGED
|
@@ -26,6 +26,7 @@ export function helpText(tools, version) {
|
|
|
26
26
|
`bos ${version}: the Blacksmith Organization System core`,
|
|
27
27
|
"",
|
|
28
28
|
"usage: bos <model> <tool> [operands] [--flags] common flags: --workshop=<path> --json",
|
|
29
|
+
" bos (in a terminal) or bos --repl: one <model> <tool> per line, exit to end",
|
|
29
30
|
"",
|
|
30
31
|
...tools.flatMap(toolLines),
|
|
31
32
|
].join("\n");
|
package/dist/views/help.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/views/help.ts"],"names":[],"mappings":"AAOA,+FAA+F;AAC/F,SAAS,QAAQ,CAAC,GAAQ;IACxB,IAAI,KAAK,GAAG,KAAK,GAAG,CAAC,IAAI,UAAU,CAAC;IACpC,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;QACnB,KAAK,GAAG,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC;IAC1B,CAAC;SAAM,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAClC,KAAK,GAAG,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC;IAC1B,CAAC;IACD,OAAO,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC;AAC7C,CAAC;AAED,SAAS,KAAK,CAAC,KAAW;IACxB,OAAO,CAAC,OAAO,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrF,CAAC;AAED,sDAAsD;AACtD,SAAS,SAAS,CAAC,KAAW;IAC5B,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;IAClD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QAClC,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC;QACzD,OAAO,WAAW,IAAI,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC;IACxC,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,KAAK,CAAC,IAAI,GAAG,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAa,EAAE,OAAe;IACrD,OAAO;QACL,OAAO,OAAO,2CAA2C;QACzD,EAAE;QACF,yFAAyF;QACzF,EAAE;QACF,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;KAC5B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
|
|
1
|
+
{"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/views/help.ts"],"names":[],"mappings":"AAOA,+FAA+F;AAC/F,SAAS,QAAQ,CAAC,GAAQ;IACxB,IAAI,KAAK,GAAG,KAAK,GAAG,CAAC,IAAI,UAAU,CAAC;IACpC,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;QACnB,KAAK,GAAG,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC;IAC1B,CAAC;SAAM,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAClC,KAAK,GAAG,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC;IAC1B,CAAC;IACD,OAAO,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC;AAC7C,CAAC;AAED,SAAS,KAAK,CAAC,KAAW;IACxB,OAAO,CAAC,OAAO,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrF,CAAC;AAED,sDAAsD;AACtD,SAAS,SAAS,CAAC,KAAW;IAC5B,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;IAClD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QAClC,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC;QACzD,OAAO,WAAW,IAAI,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC;IACxC,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,KAAK,CAAC,IAAI,GAAG,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAa,EAAE,OAAe;IACrD,OAAO;QACL,OAAO,OAAO,2CAA2C;QACzD,EAAE;QACF,yFAAyF;QACzF,oFAAoF;QACpF,EAAE;QACF,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;KAC5B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "blacksmith-organization-system",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.10.0",
|
|
4
4
|
"description": "Blacksmith Organization System (BOS) core: the workshop as code - build its base, listen to its changes, inspect it as one coherent environment",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"bos",
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Ruleset $ruleset
|
|
2
|
+
|
|
3
|
+
> $about
|
|
4
|
+
>
|
|
5
|
+
> Generated from [`$source`]($repo/blob/master/$source) when the docs are built;
|
|
6
|
+
> change the JSON, not this page. A case is judged against it by
|
|
7
|
+
> `bos almanac judge "<case>"` (see the [almanac](../../glossary/almanac.md)).
|
|
8
|
+
$roles
|
|
9
|
+
## Rules
|
|
10
|
+
|
|
11
|
+
In order: the first rule that applies decides. With none, the verdict is
|
|
12
|
+
`unknown`: ask the owner.
|
|
13
|
+
|
|
14
|
+
$rules
|