@design-intelligence/ghost 0.22.1 → 0.23.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/commands/gather-command.d.ts.map +1 -1
- package/dist/commands/gather-command.js +4 -1
- package/dist/commands/gather-command.js.map +1 -1
- package/dist/commands/pull-command.d.ts.map +1 -1
- package/dist/commands/pull-command.js +4 -1
- package/dist/commands/pull-command.js.map +1 -1
- package/dist/ghost-core/node/serialize.d.ts +6 -5
- package/dist/ghost-core/node/serialize.d.ts.map +1 -1
- package/dist/ghost-core/node/serialize.js +25 -9
- package/dist/ghost-core/node/serialize.js.map +1 -1
- package/dist/ghost-core/node/types.d.ts +2 -0
- package/dist/ghost-core/node/types.d.ts.map +1 -1
- package/dist/observability-events.d.ts +10 -0
- package/dist/observability-events.d.ts.map +1 -1
- package/dist/observability-events.js +12 -0
- package/dist/observability-events.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gather-command.d.ts","sourceRoot":"","sources":["../../src/commands/gather-command.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAsB/B,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"gather-command.d.ts","sourceRoot":"","sources":["../../src/commands/gather-command.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAsB/B,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CA8EpD"}
|
|
@@ -2,7 +2,7 @@ import { readFile } from "node:fs/promises";
|
|
|
2
2
|
import { buildCatalogMenu, parseGlossary, } from "#ghost-core";
|
|
3
3
|
import { resolveFingerprintPackage } from "../fingerprint.js";
|
|
4
4
|
import { isMissingPathError } from "../internal/fs.js";
|
|
5
|
-
import { appendGhostEvent } from "../observability-events.js";
|
|
5
|
+
import { appendGhostEvent, resolveRunId } from "../observability-events.js";
|
|
6
6
|
import { loadFingerprintPackage } from "../scan/fingerprint-package.js";
|
|
7
7
|
import { failFromError } from "./errors.js";
|
|
8
8
|
export function registerGatherCommand(cli) {
|
|
@@ -12,6 +12,7 @@ export function registerGatherCommand(cli) {
|
|
|
12
12
|
.option("--format <fmt>", "Output format: markdown or json", {
|
|
13
13
|
default: "markdown",
|
|
14
14
|
})
|
|
15
|
+
.option("--run <id>", "Attribute the tape event to this run id (default: GHOST_RUN_ID)")
|
|
15
16
|
.action(async (askParts, opts) => {
|
|
16
17
|
try {
|
|
17
18
|
if (opts.format !== "markdown" && opts.format !== "json") {
|
|
@@ -28,8 +29,10 @@ export function registerGatherCommand(cli) {
|
|
|
28
29
|
: undefined;
|
|
29
30
|
const menu = buildCatalogMenu(loaded.catalog).filter((entry) => entry.id !== coverNode?.id);
|
|
30
31
|
const kinds = await readMenuKinds(paths.glossary);
|
|
32
|
+
const runId = resolveRunId(opts.run);
|
|
31
33
|
await appendGhostEvent(paths.packageDir, {
|
|
32
34
|
event: "gather",
|
|
35
|
+
...(runId ? { run: runId } : {}),
|
|
33
36
|
...(ask ? { ask } : {}),
|
|
34
37
|
menu: menu.map((entry) => entry.id),
|
|
35
38
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gather-command.js","sourceRoot":"","sources":["../../src/commands/gather-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EACL,gBAAgB,EAEhB,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"gather-command.js","sourceRoot":"","sources":["../../src/commands/gather-command.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pull-command.d.ts","sourceRoot":"","sources":["../../src/commands/pull-command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"pull-command.d.ts","sourceRoot":"","sources":["../../src/commands/pull-command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAqC/B,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CA+HlD"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { classifyMaterialLocator, closestIds, extractSkeletonFences, resolveLocalMaterialLocator, stripSkeletonSections, transportMaterials, } from "#ghost-core";
|
|
2
2
|
import { resolveFingerprintPackage } from "../fingerprint.js";
|
|
3
|
-
import { appendGhostEvent } from "../observability-events.js";
|
|
3
|
+
import { appendGhostEvent, resolveRunId, } from "../observability-events.js";
|
|
4
4
|
import { GHOST_EVENTS_FILENAME, GHOST_MATERIALS_DIR, } from "../scan/constants.js";
|
|
5
5
|
import { loadFingerprintPackage } from "../scan/fingerprint-package.js";
|
|
6
6
|
import { resolveGitRoot } from "../scan/package-paths.js";
|
|
@@ -17,6 +17,7 @@ export function registerPullCommand(cli) {
|
|
|
17
17
|
default: "steering",
|
|
18
18
|
})
|
|
19
19
|
.option("--no-events", `Skip appending to .ghost/${GHOST_EVENTS_FILENAME}`)
|
|
20
|
+
.option("--run <id>", "Attribute the tape event to this run id (default: GHOST_RUN_ID)")
|
|
20
21
|
.action(async (ids, opts) => {
|
|
21
22
|
try {
|
|
22
23
|
if (opts.format !== "markdown" && opts.format !== "json") {
|
|
@@ -54,8 +55,10 @@ export function registerPullCommand(cli) {
|
|
|
54
55
|
const pulledNodes = await resolvePulledNodes(nodes, paths.packageDir, opts.materials !== false);
|
|
55
56
|
const counts = sumMaterialCounts(pulledNodes);
|
|
56
57
|
if (opts.events !== false) {
|
|
58
|
+
const runId = resolveRunId(opts.run);
|
|
57
59
|
await appendGhostEvent(paths.packageDir, {
|
|
58
60
|
event: "pull",
|
|
61
|
+
...(runId ? { run: runId } : {}),
|
|
59
62
|
ids: known,
|
|
60
63
|
inlinedMaterials: counts.inlined,
|
|
61
64
|
omittedMaterials: counts.omitted,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pull-command.js","sourceRoot":"","sources":["../../src/commands/pull-command.ts"],"names":[],"mappings":"AACA,OAAO,EACL,uBAAuB,EACvB,UAAU,EACV,qBAAqB,EAGrB,2BAA2B,EAC3B,qBAAqB,EAErB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,
|
|
1
|
+
{"version":3,"file":"pull-command.js","sourceRoot":"","sources":["../../src/commands/pull-command.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import type { GhostNodeDocument, GhostNodeFrontmatter } from "./types.js";
|
|
2
2
|
/**
|
|
3
|
-
* Serialize a node back to its `---\n<yaml>\n---\n<body>` markdown form.
|
|
4
|
-
* are emitted in a stable order (description, materials)
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
3
|
+
* Serialize a node back to its `---\n<yaml>\n---\n<body>` markdown form. Known
|
|
4
|
+
* keys are emitted first in a stable order (description, materials), followed
|
|
5
|
+
* by any free-form descriptive keys in alphabetical order so round-trips and
|
|
6
|
+
* diffs are deterministic. Identity and kind are not serialized — they come
|
|
7
|
+
* from the node's file path and optional filename prefix. Undefined fields are
|
|
8
|
+
* omitted; a node with no frontmatter fields emits an empty block.
|
|
8
9
|
*/
|
|
9
10
|
export declare function serializeNode(node: GhostNodeDocument): string;
|
|
10
11
|
export type { GhostNodeFrontmatter };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../../src/ghost-core/node/serialize.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../../src/ghost-core/node/serialize.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAQ1E;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,CA0B7D;AAED,YAAY,EAAE,oBAAoB,EAAE,CAAC"}
|
|
@@ -1,18 +1,34 @@
|
|
|
1
1
|
import { stringify as stringifyYaml } from "yaml";
|
|
2
|
+
const FRONTMATTER_KEY_ORDER = ["description", "materials"];
|
|
3
|
+
function shouldSerializeFrontmatterValue(value) {
|
|
4
|
+
return value !== undefined;
|
|
5
|
+
}
|
|
2
6
|
/**
|
|
3
|
-
* Serialize a node back to its `---\n<yaml>\n---\n<body>` markdown form.
|
|
4
|
-
* are emitted in a stable order (description, materials)
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
7
|
+
* Serialize a node back to its `---\n<yaml>\n---\n<body>` markdown form. Known
|
|
8
|
+
* keys are emitted first in a stable order (description, materials), followed
|
|
9
|
+
* by any free-form descriptive keys in alphabetical order so round-trips and
|
|
10
|
+
* diffs are deterministic. Identity and kind are not serialized — they come
|
|
11
|
+
* from the node's file path and optional filename prefix. Undefined fields are
|
|
12
|
+
* omitted; a node with no frontmatter fields emits an empty block.
|
|
8
13
|
*/
|
|
9
14
|
export function serializeNode(node) {
|
|
10
15
|
const fm = node.frontmatter;
|
|
11
16
|
const ordered = {};
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
17
|
+
const emitted = new Set();
|
|
18
|
+
for (const key of FRONTMATTER_KEY_ORDER) {
|
|
19
|
+
const value = fm[key];
|
|
20
|
+
if (shouldSerializeFrontmatterValue(value)) {
|
|
21
|
+
ordered[key] = value;
|
|
22
|
+
emitted.add(key);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
for (const key of Object.keys(fm).sort()) {
|
|
26
|
+
if (emitted.has(key))
|
|
27
|
+
continue;
|
|
28
|
+
const value = fm[key];
|
|
29
|
+
if (shouldSerializeFrontmatterValue(value))
|
|
30
|
+
ordered[key] = value;
|
|
31
|
+
}
|
|
16
32
|
// An empty frontmatter object stringifies to "{}"; emit a bare block instead.
|
|
17
33
|
const yaml = Object.keys(ordered).length === 0
|
|
18
34
|
? ""
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../../src/ghost-core/node/serialize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,MAAM,CAAC;AAGlD
|
|
1
|
+
{"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../../src/ghost-core/node/serialize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,MAAM,CAAC;AAGlD,MAAM,qBAAqB,GAAG,CAAC,aAAa,EAAE,WAAW,CAAU,CAAC;AAEpE,SAAS,+BAA+B,CAAC,KAAc;IACrD,OAAO,KAAK,KAAK,SAAS,CAAC;AAC7B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,IAAuB;IACnD,MAAM,EAAE,GAAG,IAAI,CAAC,WAAsC,CAAC;IACvD,MAAM,OAAO,GAA4B,EAAE,CAAC;IAC5C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAElC,KAAK,MAAM,GAAG,IAAI,qBAAqB,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QACtB,IAAI,+BAA+B,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QACzC,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAC/B,MAAM,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QACtB,IAAI,+BAA+B,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACnE,CAAC;IAED,8EAA8E;IAC9E,MAAM,IAAI,GACR,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC;QAC/B,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC;IAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC3C,OAAO,QAAQ,IAAI,QAAQ,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAClE,CAAC"}
|
|
@@ -6,6 +6,8 @@ export declare const GHOST_NODE_SCHEMA: "ghost.node/v1";
|
|
|
6
6
|
* why / with-what / how-assembled are drafting prompts, never fields.
|
|
7
7
|
*/
|
|
8
8
|
export interface GhostNodeFrontmatter {
|
|
9
|
+
/** Free-form descriptive properties parsed from node frontmatter. */
|
|
10
|
+
[key: string]: unknown;
|
|
9
11
|
/**
|
|
10
12
|
* One-line statement of what this node is and when to gather it — the
|
|
11
13
|
* retrieval payload. Together with the node's id (its path) it is how an
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/ghost-core/node/types.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,EAAG,eAAwB,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,oBAAoB,CAAC;IAClC,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAEjE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,qBAAqB,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/ghost-core/node/types.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,EAAG,eAAwB,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACnC,qEAAqE;IACrE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,oBAAoB,CAAC;IAClC,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAEjE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,qBAAqB,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
export type GatherObservabilityEvent = {
|
|
2
2
|
ts: string;
|
|
3
3
|
event: "gather";
|
|
4
|
+
/** Caller-supplied run identifier (--run or GHOST_RUN_ID); attribution only. */
|
|
5
|
+
run?: string;
|
|
4
6
|
ask?: string;
|
|
5
7
|
menu: string[];
|
|
6
8
|
materials?: string[];
|
|
@@ -12,6 +14,8 @@ export type PullMiss = {
|
|
|
12
14
|
export type PullObservabilityEvent = {
|
|
13
15
|
ts: string;
|
|
14
16
|
event: "pull";
|
|
17
|
+
/** Caller-supplied run identifier (--run or GHOST_RUN_ID); attribution only. */
|
|
18
|
+
run?: string;
|
|
15
19
|
ids: string[];
|
|
16
20
|
missed?: PullMiss[];
|
|
17
21
|
inlinedMaterials?: number;
|
|
@@ -19,6 +23,12 @@ export type PullObservabilityEvent = {
|
|
|
19
23
|
};
|
|
20
24
|
export type GhostObservabilityEvent = GatherObservabilityEvent | PullObservabilityEvent;
|
|
21
25
|
export type NewGhostObservabilityEvent = Omit<GatherObservabilityEvent, "ts"> | Omit<PullObservabilityEvent, "ts">;
|
|
26
|
+
/**
|
|
27
|
+
* Resolve the run identifier for event attribution: explicit --run flag
|
|
28
|
+
* wins, then GHOST_RUN_ID from the environment. Returns undefined when
|
|
29
|
+
* neither is set — the tape line then looks exactly as it does today.
|
|
30
|
+
*/
|
|
31
|
+
export declare function resolveRunId(flagValue?: unknown): string | undefined;
|
|
22
32
|
export declare function appendGhostEvent(packageDir: string, event: NewGhostObservabilityEvent): Promise<void>;
|
|
23
33
|
export declare function readGhostEvents(packageDir: string): Promise<GhostObservabilityEvent[]>;
|
|
24
34
|
//# sourceMappingURL=observability-events.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observability-events.d.ts","sourceRoot":"","sources":["../src/observability-events.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,wBAAwB,GAAG;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,QAAQ,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAC/B,wBAAwB,GACxB,sBAAsB,CAAC;AAE3B,MAAM,MAAM,0BAA0B,GAClC,IAAI,CAAC,wBAAwB,EAAE,IAAI,CAAC,GACpC,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC;AAEvC,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,0BAA0B,GAChC,OAAO,CAAC,IAAI,CAAC,CAiBf;AAED,wBAAsB,eAAe,CACnC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAmBpC"}
|
|
1
|
+
{"version":3,"file":"observability-events.d.ts","sourceRoot":"","sources":["../src/observability-events.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,wBAAwB,GAAG;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,QAAQ,CAAC;IAChB,gFAAgF;IAChF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,gFAAgF;IAChF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAC/B,wBAAwB,GACxB,sBAAsB,CAAC;AAE3B,MAAM,MAAM,0BAA0B,GAClC,IAAI,CAAC,wBAAwB,EAAE,IAAI,CAAC,GACpC,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC;AAEvC;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAKpE;AAED,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,0BAA0B,GAChC,OAAO,CAAC,IAAI,CAAC,CAiBf;AAED,wBAAsB,eAAe,CACnC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAmBpC"}
|
|
@@ -2,6 +2,18 @@ import { access, appendFile, readFile } from "node:fs/promises";
|
|
|
2
2
|
import { join } from "node:path";
|
|
3
3
|
import { GHOST_EVENTS_FILENAME } from "./scan/constants.js";
|
|
4
4
|
const FIRST_WRITE_NOTICE = `ghost: logging selection events locally to .ghost/${GHOST_EVENTS_FILENAME} (gitignored; never leaves your machine). Summarize with \`ghost pulse\`.`;
|
|
5
|
+
/**
|
|
6
|
+
* Resolve the run identifier for event attribution: explicit --run flag
|
|
7
|
+
* wins, then GHOST_RUN_ID from the environment. Returns undefined when
|
|
8
|
+
* neither is set — the tape line then looks exactly as it does today.
|
|
9
|
+
*/
|
|
10
|
+
export function resolveRunId(flagValue) {
|
|
11
|
+
const fromFlag = typeof flagValue === "string" ? flagValue.trim() : "";
|
|
12
|
+
if (fromFlag)
|
|
13
|
+
return fromFlag;
|
|
14
|
+
const fromEnv = process.env.GHOST_RUN_ID?.trim();
|
|
15
|
+
return fromEnv || undefined;
|
|
16
|
+
}
|
|
5
17
|
export async function appendGhostEvent(packageDir, event) {
|
|
6
18
|
const line = `${JSON.stringify({ ts: new Date().toISOString(), ...event })}\n`;
|
|
7
19
|
const tapePath = join(packageDir, GHOST_EVENTS_FILENAME);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observability-events.js","sourceRoot":"","sources":["../src/observability-events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,MAAM,kBAAkB,GAAG,qDAAqD,qBAAqB,2EAA2E,CAAC;
|
|
1
|
+
{"version":3,"file":"observability-events.js","sourceRoot":"","sources":["../src/observability-events.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@design-intelligence/ghost",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.23.0",
|
|
4
4
|
"description": "Ghost CLI for the brand fingerprint: a portable steering packet of prose truths your agent reads before it builds, with advisory review after",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Block, Inc.",
|