@design-intelligence/ghost 0.25.1 → 0.26.1
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/commands/checks-command.js +5 -5
- package/dist/commands/checks-command.js.map +1 -1
- package/dist/commands/errors.d.ts +2 -1
- package/dist/commands/errors.d.ts.map +1 -1
- package/dist/commands/errors.js +12 -2
- package/dist/commands/errors.js.map +1 -1
- package/dist/commands/export-command.d.ts.map +1 -1
- package/dist/commands/export-command.js +24 -10
- package/dist/commands/export-command.js.map +1 -1
- package/dist/commands/fingerprint-commands.js +4 -4
- package/dist/commands/fingerprint-commands.js.map +1 -1
- package/dist/commands/gather-command.js +4 -4
- package/dist/commands/gather-command.js.map +1 -1
- package/dist/commands/init-command.js +4 -4
- package/dist/commands/init-command.js.map +1 -1
- package/dist/commands/manifest-command.js +5 -5
- package/dist/commands/manifest-command.js.map +1 -1
- package/dist/commands/pull-command.js +19 -16
- package/dist/commands/pull-command.js.map +1 -1
- package/dist/commands/pulse-command.js +4 -4
- package/dist/commands/pulse-command.js.map +1 -1
- package/dist/commands/review-command.js +5 -5
- package/dist/commands/review-command.js.map +1 -1
- package/dist/commands/skill-command.js +5 -5
- package/dist/commands/skill-command.js.map +1 -1
- package/dist/embed/inspect.d.ts.map +1 -1
- package/dist/embed/inspect.js +4 -3
- package/dist/embed/inspect.js.map +1 -1
- package/dist/embed/pull.d.ts.map +1 -1
- package/dist/embed/pull.js +16 -12
- package/dist/embed/pull.js.map +1 -1
- package/dist/embed/types.d.ts +2 -2
- package/dist/embed/types.d.ts.map +1 -1
- package/dist/ghost-core/catalog/types.d.ts +3 -2
- package/dist/ghost-core/catalog/types.d.ts.map +1 -1
- package/dist/ghost-core/index.d.ts +1 -1
- package/dist/ghost-core/index.d.ts.map +1 -1
- package/dist/ghost-core/index.js +1 -1
- package/dist/ghost-core/index.js.map +1 -1
- package/dist/ghost-core/material-transport.d.ts +3 -1
- package/dist/ghost-core/material-transport.d.ts.map +1 -1
- package/dist/ghost-core/material-transport.js +11 -4
- package/dist/ghost-core/material-transport.js.map +1 -1
- package/dist/ghost-core/materials.d.ts +23 -2
- package/dist/ghost-core/materials.d.ts.map +1 -1
- package/dist/ghost-core/materials.js +63 -19
- package/dist/ghost-core/materials.js.map +1 -1
- package/dist/ghost-core/node/schema.d.ts +4 -1
- package/dist/ghost-core/node/schema.d.ts.map +1 -1
- package/dist/ghost-core/node/schema.js +15 -8
- package/dist/ghost-core/node/schema.js.map +1 -1
- package/dist/ghost-core/node/steering.d.ts +2 -1
- package/dist/ghost-core/node/steering.d.ts.map +1 -1
- package/dist/ghost-core/node/steering.js.map +1 -1
- package/dist/ghost-core/node/types.d.ts +6 -4
- package/dist/ghost-core/node/types.d.ts.map +1 -1
- package/dist/ghost-core/node/types.js.map +1 -1
- package/dist/review/resolve.d.ts.map +1 -1
- package/dist/review/resolve.js +4 -2
- package/dist/review/resolve.js.map +1 -1
- package/dist/review/review-packet.d.ts +2 -1
- package/dist/review/review-packet.d.ts.map +1 -1
- package/dist/review/review-packet.js +8 -2
- package/dist/review/review-packet.js.map +1 -1
- package/dist/scan/fingerprint-package-lint.d.ts.map +1 -1
- package/dist/scan/fingerprint-package-lint.js +3 -2
- package/dist/scan/fingerprint-package-lint.js.map +1 -1
- package/dist/scan/packed-payloads.d.ts.map +1 -1
- package/dist/scan/packed-payloads.js +16 -5
- package/dist/scan/packed-payloads.js.map +1 -1
- package/dist/skill-bundle/SKILL.md +5 -3
- package/dist/skill-bundle/references/capture.md +9 -5
- package/dist/skill-bundle/references/distill.md +3 -2
- package/dist/skill-bundle/references/making.md +10 -0
- package/dist/skill-bundle/references/schema.md +10 -3
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { resolveGhostPackage } from "../package.js";
|
|
2
2
|
import { addChecksDir } from "../scan/check-scaffold.js";
|
|
3
|
-
import { failFromError } from "./errors.js";
|
|
3
|
+
import { exitCli, failFromError } from "./errors.js";
|
|
4
4
|
/**
|
|
5
5
|
* `ghost checks <action>` — manage the flat `.ghost/checks/` directory of
|
|
6
6
|
* review assertions. `init` scaffolds the directory with an example check.
|
|
@@ -16,12 +16,12 @@ export function registerChecksCommand(cli) {
|
|
|
16
16
|
try {
|
|
17
17
|
if (opts.format !== "cli" && opts.format !== "json") {
|
|
18
18
|
console.error("Error: --format must be 'cli' or 'json'");
|
|
19
|
-
|
|
19
|
+
await exitCli(2);
|
|
20
20
|
return;
|
|
21
21
|
}
|
|
22
22
|
if (action !== "init") {
|
|
23
23
|
console.error("Error: ghost checks supports `init`");
|
|
24
|
-
|
|
24
|
+
await exitCli(2);
|
|
25
25
|
return;
|
|
26
26
|
}
|
|
27
27
|
const paths = resolveGhostPackage(opts.package, process.cwd());
|
|
@@ -42,10 +42,10 @@ export function registerChecksCommand(cli) {
|
|
|
42
42
|
process.stdout.write(` skipped ${file}\n`);
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
|
-
|
|
45
|
+
await exitCli(0);
|
|
46
46
|
}
|
|
47
47
|
catch (err) {
|
|
48
|
-
failFromError(err);
|
|
48
|
+
await failFromError(err);
|
|
49
49
|
}
|
|
50
50
|
});
|
|
51
51
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checks-command.js","sourceRoot":"","sources":["../../src/commands/checks-command.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"checks-command.js","sourceRoot":"","sources":["../../src/commands/checks-command.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAErD;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAQ;IAC5C,GAAG;SACA,OAAO,CAAC,iBAAiB,EAAE,6BAA6B,CAAC;SACzD,MAAM,CACL,iBAAiB,EACjB,sDAAsD,CACvD;SACA,MAAM,CAAC,gBAAgB,EAAE,4BAA4B,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;SAC1E,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,IAAI,EAAE,EAAE;QACrC,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBACpD,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;gBACzD,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;gBACjB,OAAO;YACT,CAAC;YACD,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACtB,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;gBACrD,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;gBACjB,OAAO;YACT,CAAC;YAED,MAAM,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YAC/D,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACpD,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,IAAI,CAAC,SAAS,CACf;oBACE,GAAG,EAAE,MAAM,CAAC,GAAG;oBACf,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,OAAO,EAAE,MAAM,CAAC,OAAO;iBACxB,EACD,IAAI,EACJ,CAAC,CACF,IAAI,CACN,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;gBACvD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;gBACtC,CAAC;gBACD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC;gBAC9C,CAAC;YACH,CAAC;YACD,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
export declare function exitCli(code: number): Promise<never>;
|
|
1
2
|
/**
|
|
2
3
|
* Report a thrown error and exit. A `UsageError` (or anything carrying a numeric
|
|
3
4
|
* `exitCode`) exits with that code; everything else is an unexpected crash and
|
|
4
5
|
* exits `1`. Pass `stream` to match a command's existing output channel.
|
|
5
6
|
*/
|
|
6
|
-
export declare function failFromError(err: unknown, stream?: "stderr" | "stdout"): never
|
|
7
|
+
export declare function failFromError(err: unknown, stream?: "stderr" | "stdout"): Promise<never>;
|
|
7
8
|
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/commands/errors.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/commands/errors.ts"],"names":[],"mappings":"AAQA,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAI1D;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,OAAO,EACZ,MAAM,GAAE,QAAQ,GAAG,QAAmB,GACrC,OAAO,CAAC,KAAK,CAAC,CAWhB"}
|
package/dist/commands/errors.js
CHANGED
|
@@ -1,10 +1,20 @@
|
|
|
1
1
|
import { EXIT } from "#ghost-core";
|
|
2
|
+
function flushStream(stream) {
|
|
3
|
+
return new Promise((resolve) => {
|
|
4
|
+
stream.write("", () => resolve());
|
|
5
|
+
});
|
|
6
|
+
}
|
|
7
|
+
export async function exitCli(code) {
|
|
8
|
+
await flushStream(process.stdout);
|
|
9
|
+
await flushStream(process.stderr);
|
|
10
|
+
process.exit(code);
|
|
11
|
+
}
|
|
2
12
|
/**
|
|
3
13
|
* Report a thrown error and exit. A `UsageError` (or anything carrying a numeric
|
|
4
14
|
* `exitCode`) exits with that code; everything else is an unexpected crash and
|
|
5
15
|
* exits `1`. Pass `stream` to match a command's existing output channel.
|
|
6
16
|
*/
|
|
7
|
-
export function failFromError(err, stream = "stderr") {
|
|
17
|
+
export async function failFromError(err, stream = "stderr") {
|
|
8
18
|
const message = err instanceof Error ? err.message : String(err);
|
|
9
19
|
const line = `Error: ${message}\n`;
|
|
10
20
|
if (stream === "stdout")
|
|
@@ -14,6 +24,6 @@ export function failFromError(err, stream = "stderr") {
|
|
|
14
24
|
const exitCode = typeof err?.exitCode === "number"
|
|
15
25
|
? err.exitCode
|
|
16
26
|
: EXIT.failure;
|
|
17
|
-
|
|
27
|
+
return exitCli(exitCode);
|
|
18
28
|
}
|
|
19
29
|
//# sourceMappingURL=errors.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/commands/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC;;;;GAIG;AACH,MAAM,UAAU,aAAa,
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/commands/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC,SAAS,WAAW,CAAC,MAA0B;IAC7C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAY;IACxC,MAAM,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrB,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,GAAY,EACZ,SAA8B,QAAQ;IAEtC,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACjE,MAAM,IAAI,GAAG,UAAU,OAAO,IAAI,CAAC;IACnC,IAAI,MAAM,KAAK,QAAQ;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;;QAC/C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEhC,MAAM,QAAQ,GACZ,OAAQ,GAA8B,EAAE,QAAQ,KAAK,QAAQ;QAC3D,CAAC,CAAE,GAA4B,CAAC,QAAQ;QACxC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;IACnB,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC3B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export-command.d.ts","sourceRoot":"","sources":["../../src/commands/export-command.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"export-command.d.ts","sourceRoot":"","sources":["../../src/commands/export-command.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AA2C/B,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAmGpD"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { mkdir } from "node:fs/promises";
|
|
2
2
|
import { dirname, resolve } from "node:path";
|
|
3
|
-
import { classifyMaterialLocator, resolveLocalMaterialLocator, } from "#ghost-core";
|
|
3
|
+
import { classifyMaterialLocator, externalLocatorScheme, materialLocator, resolveLocalMaterialLocator, } from "#ghost-core";
|
|
4
4
|
import { lintGhostPackage, resolveGhostPackage } from "../package.js";
|
|
5
5
|
import { readPackageVersion } from "../package-version.js";
|
|
6
6
|
import { GHOST_CHECKS_DIR } from "../scan/check-files.js";
|
|
@@ -8,7 +8,7 @@ import { GHOST_EVENTS_FILENAME, GHOST_MATERIALS_DIR, } from "../scan/constants.j
|
|
|
8
8
|
import { loadGhostPackage, } from "../scan/fingerprint-package.js";
|
|
9
9
|
import { resolveGitRoot } from "../scan/package-paths.js";
|
|
10
10
|
import { defaultArchiveName, writeDirectoryTarball } from "../scan/tarball.js";
|
|
11
|
-
import { failFromError } from "./errors.js";
|
|
11
|
+
import { exitCli, failFromError } from "./errors.js";
|
|
12
12
|
const EXPORT_SCHEMA = "ghost.export/v1";
|
|
13
13
|
export function registerExportCommand(cli) {
|
|
14
14
|
cli
|
|
@@ -24,14 +24,14 @@ export function registerExportCommand(cli) {
|
|
|
24
24
|
try {
|
|
25
25
|
if (opts.format !== "markdown" && opts.format !== "json") {
|
|
26
26
|
console.error("Error: --format must be 'markdown' or 'json'");
|
|
27
|
-
|
|
27
|
+
await exitCli(2);
|
|
28
28
|
return;
|
|
29
29
|
}
|
|
30
30
|
const paths = resolveGhostPackage(opts.package, process.cwd());
|
|
31
31
|
const report = await lintGhostPackage(opts.package, process.cwd());
|
|
32
32
|
if (report.errors > 0) {
|
|
33
33
|
console.error("Error: ghost package has validation errors. Run `ghost validate` and fix them before exporting.");
|
|
34
|
-
|
|
34
|
+
await exitCli(2);
|
|
35
35
|
return;
|
|
36
36
|
}
|
|
37
37
|
const loaded = await loadGhostPackage(paths);
|
|
@@ -79,10 +79,10 @@ export function registerExportCommand(cli) {
|
|
|
79
79
|
audit,
|
|
80
80
|
}));
|
|
81
81
|
}
|
|
82
|
-
|
|
82
|
+
await exitCli(opts.strict && audit.stranded.length > 0 ? 2 : 0);
|
|
83
83
|
}
|
|
84
84
|
catch (err) {
|
|
85
|
-
failFromError(err);
|
|
85
|
+
await failFromError(err);
|
|
86
86
|
}
|
|
87
87
|
});
|
|
88
88
|
}
|
|
@@ -95,10 +95,16 @@ function buildExportAudit(loaded, options) {
|
|
|
95
95
|
return { travels, stranded };
|
|
96
96
|
}
|
|
97
97
|
function auditNodeMaterials(node, options, travels, stranded) {
|
|
98
|
-
for (const
|
|
98
|
+
for (const material of node.materials ?? []) {
|
|
99
|
+
const locator = materialLocator(material);
|
|
99
100
|
const classified = classifyMaterialLocator(locator);
|
|
100
101
|
if (classified.kind === "url") {
|
|
101
|
-
travels.push({
|
|
102
|
+
travels.push({
|
|
103
|
+
nodeId: node.id,
|
|
104
|
+
locator,
|
|
105
|
+
tier: "url",
|
|
106
|
+
access: classified.access,
|
|
107
|
+
});
|
|
102
108
|
continue;
|
|
103
109
|
}
|
|
104
110
|
const resolved = resolveLocalMaterialLocator(locator, {
|
|
@@ -136,8 +142,16 @@ function formatExportMarkdown(fields) {
|
|
|
136
142
|
if (fields.audit.travels.length > 0) {
|
|
137
143
|
lines.push("Travels with the archive:", "");
|
|
138
144
|
for (const item of fields.audit.travels) {
|
|
139
|
-
|
|
140
|
-
|
|
145
|
+
if (item.access === "connector") {
|
|
146
|
+
const provider = externalLocatorScheme(item.locator) ?? "connector";
|
|
147
|
+
lines.push(`- \`${item.nodeId}\` — \`${item.locator}\` (${provider} external locator only)`, ` - The locator travels; the recipient may need a ${provider} connection or permission to access the material.`);
|
|
148
|
+
}
|
|
149
|
+
else if (item.access === "https") {
|
|
150
|
+
lines.push(`- \`${item.nodeId}\` — \`${item.locator}\` (HTTPS external locator only)`, " - The locator travels; access depends on the URL and any permissions it requires.");
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
lines.push(`- \`${item.nodeId}\` — \`${item.locator}\` (bundled material)`);
|
|
154
|
+
}
|
|
141
155
|
}
|
|
142
156
|
}
|
|
143
157
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export-command.js","sourceRoot":"","sources":["../../src/commands/export-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE7C,OAAO,EACL,uBAAuB,
|
|
1
|
+
{"version":3,"file":"export-command.js","sourceRoot":"","sources":["../../src/commands/export-command.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { readFile, stat } from "node:fs/promises";
|
|
|
2
2
|
import { resolve } from "node:path";
|
|
3
3
|
import { lintGhostPackage, resolveGhostPackage, } from "../package.js";
|
|
4
4
|
import { detectFileKind, lintDetectedFileKind } from "../scan/file-kind.js";
|
|
5
|
-
import { failFromError } from "./errors.js";
|
|
5
|
+
import { exitCli, failFromError } from "./errors.js";
|
|
6
6
|
import { registerInitCommand } from "./init-command.js";
|
|
7
7
|
/**
|
|
8
8
|
* Register ghost package commands on the unified ghost CLI.
|
|
@@ -26,7 +26,7 @@ export function registerFingerprintCommands(cli) {
|
|
|
26
26
|
if (path === undefined || (await isDirectory(target))) {
|
|
27
27
|
report = await lintGhostPackage(packagePath, process.cwd());
|
|
28
28
|
writeLintReport(report, opts.format);
|
|
29
|
-
|
|
29
|
+
await exitCli(report.errors > 0 ? 1 : 0);
|
|
30
30
|
return;
|
|
31
31
|
}
|
|
32
32
|
const fileTarget = resolve(process.cwd(), path ?? target);
|
|
@@ -34,10 +34,10 @@ export function registerFingerprintCommands(cli) {
|
|
|
34
34
|
const kind = detectFileKind(fileTarget, raw);
|
|
35
35
|
report = lintDetectedFileKind(kind, raw);
|
|
36
36
|
writeLintReport(report, opts.format);
|
|
37
|
-
|
|
37
|
+
await exitCli(report.errors > 0 ? 1 : 0);
|
|
38
38
|
}
|
|
39
39
|
catch (err) {
|
|
40
|
-
failFromError(err);
|
|
40
|
+
await failFromError(err);
|
|
41
41
|
}
|
|
42
42
|
});
|
|
43
43
|
registerInitCommand(cli);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fingerprint-commands.js","sourceRoot":"","sources":["../../src/commands/fingerprint-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAEL,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"fingerprint-commands.js","sourceRoot":"","sources":["../../src/commands/fingerprint-commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { gatherGhostPackage, loadGhostSnapshot } from "../embed/index.js";
|
|
2
2
|
import { appendGhostEvent, resolveRunId } from "../observability-events.js";
|
|
3
3
|
import { resolveGhostPackage } from "../package.js";
|
|
4
|
-
import { failFromError } from "./errors.js";
|
|
4
|
+
import { exitCli, failFromError } from "./errors.js";
|
|
5
5
|
export function registerGatherCommand(cli) {
|
|
6
6
|
cli
|
|
7
7
|
.command("gather [...ask]", "Emit the complete available guidance menu so the agent can pull applicable nodes.")
|
|
@@ -14,7 +14,7 @@ export function registerGatherCommand(cli) {
|
|
|
14
14
|
try {
|
|
15
15
|
if (opts.format !== "markdown" && opts.format !== "json") {
|
|
16
16
|
console.error("Error: --format must be 'markdown' or 'json'");
|
|
17
|
-
|
|
17
|
+
await exitCli(2);
|
|
18
18
|
return;
|
|
19
19
|
}
|
|
20
20
|
const ask = normalizeAskParts(askParts);
|
|
@@ -37,10 +37,10 @@ export function registerGatherCommand(cli) {
|
|
|
37
37
|
else {
|
|
38
38
|
process.stdout.write(formatMenuMarkdown(menu));
|
|
39
39
|
}
|
|
40
|
-
|
|
40
|
+
await exitCli(0);
|
|
41
41
|
}
|
|
42
42
|
catch (err) {
|
|
43
|
-
failFromError(err);
|
|
43
|
+
await failFromError(err);
|
|
44
44
|
}
|
|
45
45
|
});
|
|
46
46
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gather-command.js","sourceRoot":"","sources":["../../src/commands/gather-command.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"gather-command.js","sourceRoot":"","sources":["../../src/commands/gather-command.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { UsageError } from "#ghost-core";
|
|
|
2
2
|
import { initGhostPackage } from "../package.js";
|
|
3
3
|
import { addChecksDir } from "../scan/check-scaffold.js";
|
|
4
4
|
import { getInitBody } from "../scan/templates.js";
|
|
5
|
-
import { failFromError } from "./errors.js";
|
|
5
|
+
import { exitCli, failFromError } from "./errors.js";
|
|
6
6
|
export function registerInitCommand(cli) {
|
|
7
7
|
cli
|
|
8
8
|
.command("init", "Create a root .ghost package of nodes")
|
|
@@ -16,7 +16,7 @@ export function registerInitCommand(cli) {
|
|
|
16
16
|
try {
|
|
17
17
|
if (cli.args.length > 0) {
|
|
18
18
|
console.error("Error: ghost init no longer accepts a positional directory. Use --package <dir> for an exact package directory.");
|
|
19
|
-
|
|
19
|
+
await exitCli(2);
|
|
20
20
|
return;
|
|
21
21
|
}
|
|
22
22
|
const exactPackage = typeof opts.package === "string" ? opts.package : undefined;
|
|
@@ -69,10 +69,10 @@ export function registerInitCommand(cli) {
|
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
|
-
|
|
72
|
+
await exitCli(0);
|
|
73
73
|
}
|
|
74
74
|
catch (err) {
|
|
75
|
-
failFromError(err);
|
|
75
|
+
await failFromError(err);
|
|
76
76
|
}
|
|
77
77
|
});
|
|
78
78
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-command.js","sourceRoot":"","sources":["../../src/commands/init-command.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"init-command.js","sourceRoot":"","sources":["../../src/commands/init-command.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { buildCliManifest } from "./command-discovery.js";
|
|
2
|
-
import { failFromError } from "./errors.js";
|
|
2
|
+
import { exitCli, failFromError } from "./errors.js";
|
|
3
3
|
/**
|
|
4
4
|
* Emit a self-describing manifest of the CLI: every command, its curated
|
|
5
5
|
* discovery metadata, and its flags. Lets a host agent learn the CLI in one
|
|
@@ -10,11 +10,11 @@ export function registerManifestCommand(cli) {
|
|
|
10
10
|
cli
|
|
11
11
|
.command("manifest", "Emit a self-describing JSON manifest of every command and flag.")
|
|
12
12
|
.option("--format <fmt>", "Output format: json", { default: "json" })
|
|
13
|
-
.action((opts) => {
|
|
13
|
+
.action(async (opts) => {
|
|
14
14
|
try {
|
|
15
15
|
if (opts.format !== "json") {
|
|
16
16
|
console.error("Error: ghost manifest supports only --format json");
|
|
17
|
-
|
|
17
|
+
await exitCli(2);
|
|
18
18
|
return;
|
|
19
19
|
}
|
|
20
20
|
const manifest = {
|
|
@@ -23,10 +23,10 @@ export function registerManifestCommand(cli) {
|
|
|
23
23
|
data: buildCliManifest(cli, cli.name),
|
|
24
24
|
};
|
|
25
25
|
process.stdout.write(`${JSON.stringify(manifest, null, 2)}\n`);
|
|
26
|
-
|
|
26
|
+
await exitCli(0);
|
|
27
27
|
}
|
|
28
28
|
catch (err) {
|
|
29
|
-
failFromError(err);
|
|
29
|
+
await failFromError(err);
|
|
30
30
|
}
|
|
31
31
|
});
|
|
32
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest-command.js","sourceRoot":"","sources":["../../src/commands/manifest-command.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"manifest-command.js","sourceRoot":"","sources":["../../src/commands/manifest-command.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAErD;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CAAC,GAAQ;IAC9C,GAAG;SACA,OAAO,CACN,UAAU,EACV,iEAAiE,CAClE;SACA,MAAM,CAAC,gBAAgB,EAAE,qBAAqB,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;SACpE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC3B,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;gBACnE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;gBACjB,OAAO;YACT,CAAC;YACD,MAAM,QAAQ,GAAG;gBACf,UAAU,EAAE,CAAC;gBACb,IAAI,EAAE,UAAmB;gBACzB,IAAI,EAAE,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;aACtC,CAAC;YACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/D,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -3,7 +3,7 @@ import { appendGhostEvent, resolveRunId } from "../observability-events.js";
|
|
|
3
3
|
import { resolveGhostPackage } from "../package.js";
|
|
4
4
|
import { GHOST_EVENTS_FILENAME } from "../scan/constants.js";
|
|
5
5
|
import { resolveGitRoot } from "../scan/package-paths.js";
|
|
6
|
-
import { failFromError } from "./errors.js";
|
|
6
|
+
import { exitCli, failFromError } from "./errors.js";
|
|
7
7
|
export function registerPullCommand(cli) {
|
|
8
8
|
cli
|
|
9
9
|
.command("pull <...ids>", "Emit the named nodes' full prose bodies, and append the pull to the events tape.")
|
|
@@ -21,12 +21,12 @@ export function registerPullCommand(cli) {
|
|
|
21
21
|
try {
|
|
22
22
|
if (opts.format !== "markdown" && opts.format !== "json") {
|
|
23
23
|
console.error("Error: --format must be 'markdown' or 'json'");
|
|
24
|
-
|
|
24
|
+
await exitCli(2);
|
|
25
25
|
return;
|
|
26
26
|
}
|
|
27
27
|
if (opts.order !== "steering" && opts.order !== "given") {
|
|
28
28
|
console.error("Error: --order must be 'steering' or 'given'");
|
|
29
|
-
|
|
29
|
+
await exitCli(2);
|
|
30
30
|
return;
|
|
31
31
|
}
|
|
32
32
|
const paths = resolveGhostPackage(opts.package, process.cwd());
|
|
@@ -59,7 +59,7 @@ export function registerPullCommand(cli) {
|
|
|
59
59
|
});
|
|
60
60
|
}
|
|
61
61
|
if (result.ids.length === 0) {
|
|
62
|
-
|
|
62
|
+
await exitCli(2);
|
|
63
63
|
return;
|
|
64
64
|
}
|
|
65
65
|
if (opts.format === "json") {
|
|
@@ -68,10 +68,10 @@ export function registerPullCommand(cli) {
|
|
|
68
68
|
else {
|
|
69
69
|
process.stdout.write(formatPullMarkdown(result));
|
|
70
70
|
}
|
|
71
|
-
|
|
71
|
+
await exitCli(0);
|
|
72
72
|
}
|
|
73
73
|
catch (err) {
|
|
74
|
-
failFromError(err);
|
|
74
|
+
await failFromError(err);
|
|
75
75
|
}
|
|
76
76
|
});
|
|
77
77
|
}
|
|
@@ -128,21 +128,24 @@ function formatPullMarkdown(result) {
|
|
|
128
128
|
function appendMaterialMarkdown(lines, material) {
|
|
129
129
|
if (material.inlined !== undefined) {
|
|
130
130
|
const info = material.path ?? material.locator;
|
|
131
|
-
lines.push(""
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
const reason = material.omitted
|
|
138
|
-
? ` — ${material.reason ?? "not inlined"}`
|
|
139
|
-
: "";
|
|
140
|
-
lines.push(`- ${material.locator}${reason}`);
|
|
131
|
+
lines.push("");
|
|
132
|
+
if (material.note !== undefined) {
|
|
133
|
+
lines.push(`Note for \`${material.locator}\`: ${material.note}`, "");
|
|
134
|
+
}
|
|
135
|
+
lines.push(fencedMarkdown(material.inlined.trimEnd(), info));
|
|
136
|
+
return;
|
|
141
137
|
}
|
|
138
|
+
const target = material.reason === "binary inspect-pointer"
|
|
139
|
+
? `inspect: ${material.path ?? material.locator} — view this image before generating`
|
|
140
|
+
: `${material.locator}${material.omitted ? ` — ${material.reason ?? "not inlined"}` : ""}`;
|
|
141
|
+
lines.push(`- ${target}`);
|
|
142
|
+
if (material.note !== undefined)
|
|
143
|
+
lines.push(` Note: ${material.note}`);
|
|
142
144
|
}
|
|
143
145
|
function formatJsonMaterial(material) {
|
|
144
146
|
return {
|
|
145
147
|
locator: material.locator,
|
|
148
|
+
...(material.note !== undefined ? { note: material.note } : {}),
|
|
146
149
|
tier: material.tier,
|
|
147
150
|
...(material.inlined !== undefined ? { inlined: material.inlined } : {}),
|
|
148
151
|
...(material.omitted
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pull-command.js","sourceRoot":"","sources":["../../src/commands/pull-command.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"pull-command.js","sourceRoot":"","sources":["../../src/commands/pull-command.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { buildCatalogMenu } from "#ghost-core";
|
|
|
2
2
|
import { readGhostEvents, } from "../observability-events.js";
|
|
3
3
|
import { resolveGhostPackage } from "../package.js";
|
|
4
4
|
import { loadGhostPackage } from "../scan/fingerprint-package.js";
|
|
5
|
-
import { failFromError } from "./errors.js";
|
|
5
|
+
import { exitCli, failFromError } from "./errors.js";
|
|
6
6
|
export function registerPulseCommand(cli) {
|
|
7
7
|
cli
|
|
8
8
|
.command("pulse", "Summarize local gather/pull events from .ghost/.events.")
|
|
@@ -14,7 +14,7 @@ export function registerPulseCommand(cli) {
|
|
|
14
14
|
try {
|
|
15
15
|
if (opts.format !== "markdown" && opts.format !== "json") {
|
|
16
16
|
console.error("Error: --format must be 'markdown' or 'json'");
|
|
17
|
-
|
|
17
|
+
await exitCli(2);
|
|
18
18
|
return;
|
|
19
19
|
}
|
|
20
20
|
const paths = resolveGhostPackage(opts.package, process.cwd());
|
|
@@ -28,10 +28,10 @@ export function registerPulseCommand(cli) {
|
|
|
28
28
|
else {
|
|
29
29
|
process.stdout.write(formatPulseMarkdown(report));
|
|
30
30
|
}
|
|
31
|
-
|
|
31
|
+
await exitCli(0);
|
|
32
32
|
}
|
|
33
33
|
catch (err) {
|
|
34
|
-
failFromError(err);
|
|
34
|
+
await failFromError(err);
|
|
35
35
|
}
|
|
36
36
|
});
|
|
37
37
|
}
|