@design-intelligence/ghost 0.23.0 → 0.25.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/README.md +55 -28
- package/dist/commands/checks-command.js +3 -3
- package/dist/commands/checks-command.js.map +1 -1
- package/dist/commands/command-discovery.d.ts.map +1 -1
- package/dist/commands/command-discovery.js +5 -5
- package/dist/commands/command-discovery.js.map +1 -1
- package/dist/commands/export-command.d.ts.map +1 -1
- package/dist/commands/export-command.js +10 -10
- package/dist/commands/export-command.js.map +1 -1
- package/dist/commands/fingerprint-commands.d.ts +2 -2
- package/dist/commands/fingerprint-commands.d.ts.map +1 -1
- package/dist/commands/fingerprint-commands.js +7 -7
- package/dist/commands/fingerprint-commands.js.map +1 -1
- package/dist/commands/gather-command.d.ts.map +1 -1
- package/dist/commands/gather-command.js +72 -87
- package/dist/commands/gather-command.js.map +1 -1
- package/dist/commands/init-command.d.ts.map +1 -1
- package/dist/commands/init-command.js +6 -6
- package/dist/commands/init-command.js.map +1 -1
- package/dist/commands/pull-command.d.ts.map +1 -1
- package/dist/commands/pull-command.js +87 -140
- package/dist/commands/pull-command.js.map +1 -1
- package/dist/commands/pulse-command.js +6 -6
- package/dist/commands/pulse-command.js.map +1 -1
- package/dist/commands/review-command.js +7 -7
- package/dist/commands/review-command.js.map +1 -1
- package/dist/commands/skill-command.js +2 -2
- package/dist/embed/gather.d.ts +9 -0
- package/dist/embed/gather.d.ts.map +1 -0
- package/dist/embed/gather.js +80 -0
- package/dist/embed/gather.js.map +1 -0
- package/dist/embed/index.d.ts +9 -0
- package/dist/embed/index.d.ts.map +1 -0
- package/dist/embed/index.js +6 -0
- package/dist/embed/index.js.map +1 -0
- package/dist/embed/inspect.d.ts +3 -0
- package/dist/embed/inspect.d.ts.map +1 -0
- package/dist/embed/inspect.js +155 -0
- package/dist/embed/inspect.js.map +1 -0
- package/dist/embed/pull.d.ts +8 -0
- package/dist/embed/pull.d.ts.map +1 -0
- package/dist/embed/pull.js +96 -0
- package/dist/embed/pull.js.map +1 -0
- package/dist/embed/readonly-map.d.ts +3 -0
- package/dist/embed/readonly-map.d.ts.map +1 -0
- package/dist/embed/readonly-map.js +33 -0
- package/dist/embed/readonly-map.js.map +1 -0
- package/dist/embed/snapshot.d.ts +4 -0
- package/dist/embed/snapshot.d.ts.map +1 -0
- package/dist/embed/snapshot.js +105 -0
- package/dist/embed/snapshot.js.map +1 -0
- package/dist/embed/types.d.ts +156 -0
- package/dist/embed/types.d.ts.map +1 -0
- package/dist/embed/types.js +2 -0
- package/dist/embed/types.js.map +1 -0
- package/dist/fingerprint.d.ts +2 -1
- package/dist/fingerprint.d.ts.map +1 -1
- package/dist/fingerprint.js +1 -0
- package/dist/fingerprint.js.map +1 -1
- package/dist/ghost-core/catalog/assemble.d.ts.map +1 -1
- package/dist/ghost-core/catalog/assemble.js +2 -1
- package/dist/ghost-core/catalog/assemble.js.map +1 -1
- package/dist/ghost-core/catalog/menu.d.ts +6 -4
- package/dist/ghost-core/catalog/menu.d.ts.map +1 -1
- package/dist/ghost-core/catalog/menu.js +1 -0
- package/dist/ghost-core/catalog/menu.js.map +1 -1
- package/dist/ghost-core/catalog/types.d.ts +4 -2
- package/dist/ghost-core/catalog/types.d.ts.map +1 -1
- package/dist/ghost-core/check/index.d.ts +1 -1
- package/dist/ghost-core/check/index.js +1 -1
- package/dist/ghost-core/check/lint.d.ts +2 -2
- package/dist/ghost-core/check/lint.js +2 -2
- package/dist/ghost-core/check/load.d.ts +1 -1
- package/dist/ghost-core/check/load.js +3 -3
- package/dist/ghost-core/check/types.d.ts +3 -3
- package/dist/ghost-core/index.d.ts +10 -4
- package/dist/ghost-core/index.d.ts.map +1 -1
- package/dist/ghost-core/index.js +7 -3
- package/dist/ghost-core/index.js.map +1 -1
- package/dist/ghost-core/markdown.d.ts +1 -1
- package/dist/ghost-core/markdown.js +1 -1
- package/dist/ghost-core/material-transport.d.ts +11 -0
- package/dist/ghost-core/material-transport.d.ts.map +1 -1
- package/dist/ghost-core/material-transport.js +80 -8
- package/dist/ghost-core/material-transport.js.map +1 -1
- package/dist/ghost-core/node/index.d.ts +1 -1
- package/dist/ghost-core/node/index.d.ts.map +1 -1
- package/dist/ghost-core/node/index.js +1 -1
- package/dist/ghost-core/node/index.js.map +1 -1
- package/dist/ghost-core/node/schema.js +1 -1
- package/dist/ghost-core/node/steering.d.ts +1 -0
- package/dist/ghost-core/node/steering.d.ts.map +1 -1
- package/dist/ghost-core/node/steering.js +4 -1
- package/dist/ghost-core/node/steering.js.map +1 -1
- package/dist/ghost-core/node/types.d.ts +4 -5
- package/dist/ghost-core/node/types.d.ts.map +1 -1
- package/dist/ghost-core/package-manifest.d.ts +23 -13
- package/dist/ghost-core/package-manifest.d.ts.map +1 -1
- package/dist/ghost-core/package-manifest.js +20 -7
- package/dist/ghost-core/package-manifest.js.map +1 -1
- package/dist/ghost-core/skill-bundle-loader.d.ts +1 -1
- package/dist/ghost-core/skill-bundle-loader.js +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/init-payloads/median/cliche.median.md +6 -6
- package/dist/init-payloads/median/median-tells.md +1 -1
- package/dist/init-payloads/skeleton/brand.md +4 -3
- package/dist/init-payloads/skeleton/glossary.md +1 -1
- package/dist/init-payloads/vessel-light/anti-goal.median.md +6 -6
- package/dist/init-payloads/vessel-light/checks/motion-restraint.md +1 -1
- package/dist/init-payloads/vessel-light/manifest.yml +1 -1
- package/dist/init-payloads/vessel-light/materials/ref/composition.form.html +2 -2
- package/dist/init-payloads/vessel-light/materials/ref/composition.overlay.html +3 -3
- package/dist/observability-events.d.ts +1 -0
- package/dist/observability-events.d.ts.map +1 -1
- package/dist/observability-events.js +4 -1
- package/dist/observability-events.js.map +1 -1
- package/dist/package.d.ts +7 -0
- package/dist/package.d.ts.map +1 -0
- package/dist/package.js +4 -0
- package/dist/package.js.map +1 -0
- package/dist/review/resolve.js +1 -1
- package/dist/review/resolve.js.map +1 -1
- package/dist/review/review-packet.d.ts +5 -3
- package/dist/review/review-packet.d.ts.map +1 -1
- package/dist/review/review-packet.js +12 -11
- package/dist/review/review-packet.js.map +1 -1
- package/dist/scan/constants.d.ts +6 -2
- package/dist/scan/constants.d.ts.map +1 -1
- package/dist/scan/constants.js +8 -4
- package/dist/scan/constants.js.map +1 -1
- package/dist/scan/file-kind.d.ts +1 -1
- package/dist/scan/file-kind.d.ts.map +1 -1
- package/dist/scan/file-kind.js +11 -11
- package/dist/scan/file-kind.js.map +1 -1
- package/dist/scan/fingerprint-package-lint.d.ts +3 -1
- package/dist/scan/fingerprint-package-lint.d.ts.map +1 -1
- package/dist/scan/fingerprint-package-lint.js +14 -12
- package/dist/scan/fingerprint-package-lint.js.map +1 -1
- package/dist/scan/fingerprint-package-loader.d.ts +7 -3
- package/dist/scan/fingerprint-package-loader.d.ts.map +1 -1
- package/dist/scan/fingerprint-package-loader.js +10 -6
- package/dist/scan/fingerprint-package-loader.js.map +1 -1
- package/dist/scan/fingerprint-package.d.ts +30 -14
- package/dist/scan/fingerprint-package.d.ts.map +1 -1
- package/dist/scan/fingerprint-package.js +17 -9
- package/dist/scan/fingerprint-package.js.map +1 -1
- package/dist/scan/index.d.ts +3 -1
- package/dist/scan/index.d.ts.map +1 -1
- package/dist/scan/index.js +3 -1
- package/dist/scan/index.js.map +1 -1
- package/dist/scan/tarball.d.ts +2 -2
- package/dist/scan/tarball.js +3 -3
- package/dist/scan/tarball.js.map +1 -1
- package/dist/scan/templates.d.ts +1 -1
- package/dist/scan/templates.d.ts.map +1 -1
- package/dist/scan/templates.js +7 -283
- package/dist/scan/templates.js.map +1 -1
- package/dist/skill-bundle/SKILL.md +40 -32
- package/dist/skill-bundle/references/adapting-a-starter.md +11 -11
- package/dist/skill-bundle/references/authoring-scenarios.md +33 -30
- package/dist/skill-bundle/references/blocks.md +19 -20
- package/dist/skill-bundle/references/brief.md +13 -11
- package/dist/skill-bundle/references/capture.md +66 -39
- package/dist/skill-bundle/references/concrete-tiers.md +7 -7
- package/dist/skill-bundle/references/distill.md +204 -0
- package/dist/skill-bundle/references/making.md +113 -0
- package/dist/skill-bundle/references/recall.md +11 -7
- package/dist/skill-bundle/references/schema.md +16 -12
- package/dist/skill-bundle/references/self-check.md +12 -12
- package/dist/skill-bundle/references/steering-audit.md +19 -9
- package/package.json +11 -3
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: "The model's median defaults this
|
|
2
|
+
description: "The model's median defaults this package refuses — gather for any greenfield visual surface or first-draft copy. Each rule is reject→replace; delete lines your brand legitimately violates."
|
|
3
3
|
---
|
|
4
4
|
|
|
5
5
|
This is the model's median, not your brand. Each rule is reject→replace.
|
|
@@ -17,16 +17,16 @@ verified at review, never steered in prose.
|
|
|
17
17
|
|
|
18
18
|
### Hover-lift
|
|
19
19
|
Reject hover-lift (`translateY` + growing shadow) as the default interaction
|
|
20
|
-
→ confirm with color and background change at the
|
|
20
|
+
→ confirm with color and background change at the package's fast
|
|
21
21
|
duration. (measured: 341)
|
|
22
22
|
|
|
23
23
|
### Indigo accent
|
|
24
24
|
Reject the indigo/blue/purple default accent (`#4f46e5`, `#2563eb`,
|
|
25
|
-
`#8b5cf6` family; purple/violet hue 260–310) → the
|
|
25
|
+
`#8b5cf6` family; purple/violet hue 260–310) → the package's declared
|
|
26
26
|
palette; absent one, monochrome plus a single functional accent.
|
|
27
27
|
|
|
28
28
|
### Dark theme
|
|
29
|
-
Reject unprompted dark theme → the
|
|
29
|
+
Reject unprompted dark theme → the package's declared surface.
|
|
30
30
|
Dark-to-look-cool and light-to-be-safe are the same retreat from a decision.
|
|
31
31
|
(measured: 271)
|
|
32
32
|
|
|
@@ -47,7 +47,7 @@ the ground.
|
|
|
47
47
|
|
|
48
48
|
### Glassmorphism
|
|
49
49
|
Reject glassmorphism (decorative backdrop blur) → flat surfaces with real
|
|
50
|
-
borders and the
|
|
50
|
+
borders and the package's elevation tiers.
|
|
51
51
|
|
|
52
52
|
### Chat bubbles
|
|
53
53
|
Reject chat bubbles with initials-circle avatars for assistant turns →
|
|
@@ -73,7 +73,7 @@ prominent metric showing real user data is fine.
|
|
|
73
73
|
|
|
74
74
|
### Every button primary
|
|
75
75
|
Reject every button a primary button → one primary per view; the rest step
|
|
76
|
-
down the
|
|
76
|
+
down the package's emphasis ladder.
|
|
77
77
|
|
|
78
78
|
### Eyebrow kicker
|
|
79
79
|
Reject an eyebrow kicker on every section → at most one, where the register
|
|
@@ -25,7 +25,7 @@ Pruning a rule from `cliche.median` orphans its paired reference here —
|
|
|
25
25
|
|
|
26
26
|
Flag `transform` with `translateY` inside a `:hover` rule on cards,
|
|
27
27
|
buttons, or list items, especially paired with a shadow increase. Hover
|
|
28
|
-
confirmation in this
|
|
28
|
+
confirmation in this package is color and background change, not lift.
|
|
29
29
|
(`cliche.median > Hover-lift`)
|
|
30
30
|
|
|
31
31
|
Flag accent values in the indigo/blue/purple default family (`#4f46e5`,
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: "The brand on one page
|
|
2
|
+
description: "The brand on one page; what this brand is, how it feels, and what only it refuses."
|
|
3
3
|
---
|
|
4
4
|
|
|
5
|
-
This cover is unwritten.
|
|
6
|
-
|
|
5
|
+
This cover is unwritten. ghost gather always places this page in an agent's
|
|
6
|
+
context; that is delivery status, not a claim that every sentence applies to
|
|
7
|
+
every task. Use it for what cannot be retrieved by task: what this brand is about,
|
|
7
8
|
in one paragraph, in the brand's own voice. The temperature its words and
|
|
8
9
|
motion share. And the refusals only this brand makes — not generic don'ts
|
|
9
10
|
(those live in each foundation's misuse list, and the model's cliches live
|
|
@@ -34,6 +34,6 @@ checks at review.
|
|
|
34
34
|
The cover node (`brand.md`, declared in the manifest) is the one page always
|
|
35
35
|
in context: what the brand is, its temperature, and the refusals only it
|
|
36
36
|
makes. The ghost skill's `adapting-a-starter` recipe is the procedure for
|
|
37
|
-
growing this skeleton into a real
|
|
37
|
+
growing this skeleton into a real ghost package: write the cover, answer each
|
|
38
38
|
chapter's open question, prune the cliches your chapters absorb, then add
|
|
39
39
|
materials and refs.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: "The model's median defaults this
|
|
2
|
+
description: "The model's median defaults this ghost package refuses — gather for any greenfield visual surface or first-draft copy. Each rule is reject→replace; delete lines your brand legitimately violates."
|
|
3
3
|
---
|
|
4
4
|
|
|
5
5
|
This is the model's median, not your brand. Each rule is reject→replace.
|
|
@@ -17,16 +17,16 @@ verified at review, never steered in prose.
|
|
|
17
17
|
|
|
18
18
|
### Hover-lift
|
|
19
19
|
Reject hover-lift (`translateY` + growing shadow) as the default interaction
|
|
20
|
-
→ confirm with color and background change at the
|
|
20
|
+
→ confirm with color and background change at the package's fast
|
|
21
21
|
duration. (measured: 341)
|
|
22
22
|
|
|
23
23
|
### Indigo accent
|
|
24
24
|
Reject the indigo/blue/purple default accent (`#4f46e5`, `#2563eb`,
|
|
25
|
-
`#8b5cf6` family; purple/violet hue 260–310) → the
|
|
25
|
+
`#8b5cf6` family; purple/violet hue 260–310) → the package's declared
|
|
26
26
|
palette; absent one, monochrome plus a single functional accent.
|
|
27
27
|
|
|
28
28
|
### Dark theme
|
|
29
|
-
Reject unprompted dark theme → the
|
|
29
|
+
Reject unprompted dark theme → the package's declared surface.
|
|
30
30
|
Dark-to-look-cool and light-to-be-safe are the same retreat from a decision.
|
|
31
31
|
(measured: 271)
|
|
32
32
|
|
|
@@ -47,7 +47,7 @@ the ground.
|
|
|
47
47
|
|
|
48
48
|
### Glassmorphism
|
|
49
49
|
Reject glassmorphism (decorative backdrop blur) → flat surfaces with real
|
|
50
|
-
borders and the
|
|
50
|
+
borders and the package's elevation tiers.
|
|
51
51
|
|
|
52
52
|
### Chat bubbles
|
|
53
53
|
Reject chat bubbles with initials-circle avatars for assistant turns →
|
|
@@ -73,7 +73,7 @@ prominent metric showing real user data is fine.
|
|
|
73
73
|
|
|
74
74
|
### Every button primary
|
|
75
75
|
Reject every button a primary button → one primary per view; the rest step
|
|
76
|
-
down the
|
|
76
|
+
down the package's emphasis ladder.
|
|
77
77
|
|
|
78
78
|
### Eyebrow kicker
|
|
79
79
|
Reject an eyebrow kicker on every section → at most one, where the register
|
|
@@ -11,7 +11,7 @@ Review changed transitions and animations for vocabulary first.
|
|
|
11
11
|
|
|
12
12
|
Flag durations that do not use `--duration-fast`, `--duration-normal`, or `--duration-slow`. A hard-coded millisecond value is a drift even when it matches the token today.
|
|
13
13
|
|
|
14
|
-
Flag custom easing unless it uses the
|
|
14
|
+
Flag custom easing unless it uses the package's one ease or a browser default already required by the primitive.
|
|
15
15
|
|
|
16
16
|
Flag looping animations outside explicit loading states. Loading must be tied to ongoing work, not ambient motion.
|
|
17
17
|
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
<section class="stack stack--gap-md">
|
|
36
36
|
<div class="field">
|
|
37
37
|
<label class="label" for="workspace-name">Workspace name</label>
|
|
38
|
-
<input class="input" id="workspace-name" value="
|
|
38
|
+
<input class="input" id="workspace-name" value="ghost Studio" />
|
|
39
39
|
</div>
|
|
40
40
|
|
|
41
41
|
<div class="field">
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
<section class="stack stack--row stack--justify-between stack--align-center stack--gap-md stack--wrap">
|
|
71
71
|
<div class="stack stack--gap-none">
|
|
72
72
|
<span class="text">Delete this workspace</span>
|
|
73
|
-
<span class="text text--destructive">Removes every
|
|
73
|
+
<span class="text text--destructive">Removes every guidance node and review record immediately.</span>
|
|
74
74
|
</div>
|
|
75
75
|
<button class="button button--destructive button--size-sm" type="button">Delete workspace</button>
|
|
76
76
|
</section>
|
|
@@ -25,13 +25,13 @@
|
|
|
25
25
|
<body>
|
|
26
26
|
<main class="page stack stack--gap-lg">
|
|
27
27
|
<header class="stack stack--row stack--justify-between stack--align-center stack--gap-md">
|
|
28
|
-
<h1 class="text text--headline">
|
|
28
|
+
<h1 class="text text--headline">ghost package</h1>
|
|
29
29
|
<button class="button button--outline button--size-sm" type="button" aria-haspopup="menu" aria-expanded="true">Actions</button>
|
|
30
30
|
</header>
|
|
31
31
|
<p class="text text--muted">Three nodes changed since the last publish. Review the diff, then publish from the actions menu.</p>
|
|
32
32
|
|
|
33
33
|
<!-- popover tier: anchored menu, floats above the flow -->
|
|
34
|
-
<nav class="menu surface surface--popover surface--pad-xs surface--radius-surface surface--border surface--elevation-popover stack stack--gap-none" role="menu" aria-label="
|
|
34
|
+
<nav class="menu surface surface--popover surface--pad-xs surface--radius-surface surface--border surface--elevation-popover stack stack--gap-none" role="menu" aria-label="Package actions">
|
|
35
35
|
<button class="button button--ghost menu-item" type="button" role="menuitem">Review diff</button>
|
|
36
36
|
<button class="button button--ghost menu-item" type="button" role="menuitem">Publish changes…</button>
|
|
37
37
|
<button class="button button--ghost menu-item" type="button" role="menuitem">Export package</button>
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
<section class="surface surface--popover surface--pad-lg surface--radius-surface surface--border surface--elevation-modal stack stack--gap-lg" role="dialog" aria-modal="true" aria-labelledby="dialog-title" aria-describedby="dialog-description">
|
|
44
44
|
<header class="stack stack--gap-sm">
|
|
45
45
|
<div class="stack stack--row stack--justify-between stack--align-center stack--gap-md">
|
|
46
|
-
<h2 class="text text--title" id="dialog-title">Publish
|
|
46
|
+
<h2 class="text text--title" id="dialog-title">Publish guidance changes?</h2>
|
|
47
47
|
<button class="button button--ghost button--icon" type="button" aria-label="Close">×</button>
|
|
48
48
|
</div>
|
|
49
49
|
<p class="text text--muted" id="dialog-description">This will make the selected brand truths available to agents working in this repo. Review the diff before confirming.</p>
|
|
@@ -29,6 +29,7 @@ export type NewGhostObservabilityEvent = Omit<GatherObservabilityEvent, "ts"> |
|
|
|
29
29
|
* neither is set — the tape line then looks exactly as it does today.
|
|
30
30
|
*/
|
|
31
31
|
export declare function resolveRunId(flagValue?: unknown): string | undefined;
|
|
32
|
+
export declare function stampGhostEvent(event: NewGhostObservabilityEvent, now?: Date): GhostObservabilityEvent;
|
|
32
33
|
export declare function appendGhostEvent(packageDir: string, event: NewGhostObservabilityEvent): Promise<void>;
|
|
33
34
|
export declare function readGhostEvents(packageDir: string): Promise<GhostObservabilityEvent[]>;
|
|
34
35
|
//# 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,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"}
|
|
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,wBAAgB,eAAe,CAC7B,KAAK,EAAE,0BAA0B,EACjC,GAAG,GAAE,IAAiB,GACrB,uBAAuB,CAEzB;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"}
|
|
@@ -14,8 +14,11 @@ export function resolveRunId(flagValue) {
|
|
|
14
14
|
const fromEnv = process.env.GHOST_RUN_ID?.trim();
|
|
15
15
|
return fromEnv || undefined;
|
|
16
16
|
}
|
|
17
|
+
export function stampGhostEvent(event, now = new Date()) {
|
|
18
|
+
return { ts: now.toISOString(), ...event };
|
|
19
|
+
}
|
|
17
20
|
export async function appendGhostEvent(packageDir, event) {
|
|
18
|
-
const line = `${JSON.stringify(
|
|
21
|
+
const line = `${JSON.stringify(stampGhostEvent(event))}\n`;
|
|
19
22
|
const tapePath = join(packageDir, GHOST_EVENTS_FILENAME);
|
|
20
23
|
try {
|
|
21
24
|
const isFirstWrite = await access(tapePath).then(() => false, () => true);
|
|
@@ -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;AAoCjL;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,SAAmB;IAC9C,MAAM,QAAQ,GAAG,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACvE,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC;IACjD,OAAO,OAAO,IAAI,SAAS,CAAC;AAC9B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,UAAkB,EAClB,KAAiC;IAEjC,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"observability-events.js","sourceRoot":"","sources":["../src/observability-events.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export type { GhostPackageManifest } from "./ghost-core/package-manifest.js";
|
|
2
|
+
export { GHOST_PACKAGE_SCHEMA, GhostPackageManifestSchema, } from "./ghost-core/package-manifest.js";
|
|
3
|
+
export { GHOST_MANIFEST_FILENAME, GHOST_PACKAGE_DIR, } from "./scan/constants.js";
|
|
4
|
+
export type { GhostPackagePaths, InitGhostPackageOptions, InitGhostPackageResult, LoadedGhostPackage, } from "./scan/fingerprint-package.js";
|
|
5
|
+
export { initGhostPackage, lintGhostPackage, loadGhostPackage, resolveGhostPackage, } from "./scan/fingerprint-package.js";
|
|
6
|
+
export type { LintIssue, LintReport, LintSeverity } from "./scan/lint.js";
|
|
7
|
+
//# sourceMappingURL=package.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package.d.ts","sourceRoot":"","sources":["../src/package.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EACL,oBAAoB,EACpB,0BAA0B,GAC3B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,iBAAiB,EACjB,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,+BAA+B,CAAC;AACvC,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
|
package/dist/package.js
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { GHOST_PACKAGE_SCHEMA, GhostPackageManifestSchema, } from "./ghost-core/package-manifest.js";
|
|
2
|
+
export { GHOST_MANIFEST_FILENAME, GHOST_PACKAGE_DIR, } from "./scan/constants.js";
|
|
3
|
+
export { initGhostPackage, lintGhostPackage, loadGhostPackage, resolveGhostPackage, } from "./scan/fingerprint-package.js";
|
|
4
|
+
//# sourceMappingURL=package.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package.js","sourceRoot":"","sources":["../src/package.ts"],"names":[],"mappings":"AACA,OAAO,EACL,oBAAoB,EACpB,0BAA0B,GAC3B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAO7B,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,+BAA+B,CAAC"}
|
package/dist/review/resolve.js
CHANGED
|
@@ -63,7 +63,7 @@ export function resolveReview(catalog, checks, diffText, transport) {
|
|
|
63
63
|
if (unmatched.length > 0) {
|
|
64
64
|
gaps.push({
|
|
65
65
|
kind: "unmatched-file",
|
|
66
|
-
detail: "changed files match no node `materials` locators — no
|
|
66
|
+
detail: "changed files match no node `materials` locators — no ghost package guidance claims them",
|
|
67
67
|
files: unmatched,
|
|
68
68
|
});
|
|
69
69
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/review/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EAGvB,yBAAyB,EACzB,cAAc,GACf,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,iBAAiB,EAAoB,MAAM,WAAW,CAAC;AA6BhE,MAAM,UAAU,aAAa,CAC3B,OAAqB,EACrB,MAAgC,EAChC,QAAgB,EAChB,SAAmC;IAEnC,MAAM,YAAY,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACjD,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;IAC1C,MAAM,OAAO,GAAG,IAAI,GAAG,EAGpB,CAAC;IACJ,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IAEvC,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;QAC1C,MAAM,aAAa,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,MAAM,CACjD,CAAC,OAAO,EAAE,EAAE,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAC/D,CAAC;QACF,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACzC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7B,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;YAChC,oEAAoE;YACpE,mEAAmE;YACnE,oEAAoE;YACpE,qEAAqE;YACrE,yCAAyC;YACzC,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAChD,yBAAyB,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CACzD,CAAC;YACF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YACpC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI;gBACpC,KAAK,EAAE,IAAI,GAAG,EAAU;gBACxB,QAAQ,EAAE,IAAI,GAAG,EAAU;aAC5B,CAAC;YACF,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3B,KAAK,MAAM,OAAO,IAAI,QAAQ;gBAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACrD,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAAU,CAAC;IAClD,MAAM,aAAa,GAAmB,EAAE,CAAC;IAEzC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QACpC,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,IAAI,kBAAkB,GAAG,KAAK,CAAC;QAC/B,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACnC,MAAM,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;YAChC,IAAI,GAAG,KAAK,IAAI;gBAAE,SAAS;YAC3B,IAAI,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBACpC,kBAAkB,GAAG,IAAI,CAAC;gBAC1B,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACxC,IAAI,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;oBAAE,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;QACD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAClD,aAAa,CAAC,IAAI,CAAC;gBACjB,EAAE,EAAE,KAAK,CAAC,EAAE;gBACZ,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ;gBACxC,OAAO,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;gBACtD,GAAG,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE;aACrE,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAkB,EAAE,CAAC;IAC/B,MAAM,SAAS,GAAG,YAAY;SAC3B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;SACxB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7C,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,gBAAgB;YACtB,MAAM,EACJ,
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/review/resolve.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { LoadedGhostPackage } from "../scan/fingerprint-package.js";
|
|
2
2
|
import { type BaselineProse } from "./baseline.js";
|
|
3
3
|
import { type ProbeEvidence } from "./probes.js";
|
|
4
4
|
import type { CoverageGap } from "./resolve.js";
|
|
@@ -22,6 +22,8 @@ export interface PacketCheck {
|
|
|
22
22
|
probe?: ProbeEvidence;
|
|
23
23
|
}
|
|
24
24
|
export interface ReviewPacket {
|
|
25
|
+
packageId: string;
|
|
26
|
+
/** @deprecated Use `packageId`. */
|
|
25
27
|
fingerprintId: string;
|
|
26
28
|
touchedFiles: string[];
|
|
27
29
|
materialNodes: PacketMaterialNode[];
|
|
@@ -30,12 +32,12 @@ export interface ReviewPacket {
|
|
|
30
32
|
diff: string;
|
|
31
33
|
}
|
|
32
34
|
export interface BuildReviewPacketOptions {
|
|
33
|
-
/** Absolute path of the
|
|
35
|
+
/** Absolute path of the ghost package directory (default: cwd/.ghost). */
|
|
34
36
|
packageDir?: string;
|
|
35
37
|
runProbes?: boolean;
|
|
36
38
|
cwd?: string;
|
|
37
39
|
probeTimeoutMs?: number;
|
|
38
40
|
}
|
|
39
|
-
export declare function buildReviewPacket(
|
|
41
|
+
export declare function buildReviewPacket(ghostPackage: LoadedGhostPackage, diffText: string, options?: BuildReviewPacketOptions): Promise<ReviewPacket>;
|
|
40
42
|
export declare function formatReviewPacket(packet: ReviewPacket): string;
|
|
41
43
|
//# sourceMappingURL=review-packet.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review-packet.d.ts","sourceRoot":"","sources":["../../src/review/review-packet.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"review-packet.d.ts","sourceRoot":"","sources":["../../src/review/review-packet.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEzE,OAAO,EAAE,KAAK,aAAa,EAAmB,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,KAAK,aAAa,EAAY,MAAM,aAAa,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC;AAE7C,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,OAAO,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC9B,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EAAE,kBAAkB,EAAE,CAAC;IACpC,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,wBAAwB;IACvC,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAsB,iBAAiB,CACrC,YAAY,EAAE,kBAAkB,EAChC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,YAAY,CAAC,CAoDvB;AAoBD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CA8F/D"}
|
|
@@ -4,16 +4,16 @@ import { resolveGitRoot } from "../scan/package-paths.js";
|
|
|
4
4
|
import { resolveBaseline } from "./baseline.js";
|
|
5
5
|
import { runProbe } from "./probes.js";
|
|
6
6
|
import { resolveReview } from "./resolve.js";
|
|
7
|
-
export async function buildReviewPacket(
|
|
7
|
+
export async function buildReviewPacket(ghostPackage, diffText, options = {}) {
|
|
8
8
|
const cwd = options.cwd ?? process.cwd();
|
|
9
|
-
const resolution = resolveReview(
|
|
9
|
+
const resolution = resolveReview(ghostPackage.catalog, ghostPackage.checks, diffText, {
|
|
10
10
|
repoRoot: await resolveGitRoot(cwd),
|
|
11
11
|
packageDir: options.packageDir ?? join(cwd, ".ghost"),
|
|
12
12
|
materialsDir: GHOST_MATERIALS_DIR,
|
|
13
13
|
});
|
|
14
|
-
const materialNodes = resolution.materialNodes.map((matched) => materialNodeFromMatch(
|
|
14
|
+
const materialNodes = resolution.materialNodes.map((matched) => materialNodeFromMatch(ghostPackage, matched));
|
|
15
15
|
const checks = await Promise.all(resolution.offeredChecks.map(async (offered) => {
|
|
16
|
-
const check =
|
|
16
|
+
const check = ghostPackage.checks.get(offered.id);
|
|
17
17
|
const probeCommand = check?.doc.frontmatter.probe;
|
|
18
18
|
const probe = options.runProbes !== false && probeCommand !== undefined
|
|
19
19
|
? await runProbe(probeCommand, {
|
|
@@ -28,13 +28,14 @@ export async function buildReviewPacket(fingerprint, diffText, options = {}) {
|
|
|
28
28
|
via: offered.via,
|
|
29
29
|
prose: check?.doc.body.trim() ?? "",
|
|
30
30
|
baseline: check?.references
|
|
31
|
-
.map((ref) => resolveBaseline(ref,
|
|
31
|
+
.map((ref) => resolveBaseline(ref, ghostPackage.catalog))
|
|
32
32
|
.filter((ref) => ref !== null) ?? [],
|
|
33
33
|
...(probe ? { probe } : {}),
|
|
34
34
|
};
|
|
35
35
|
}));
|
|
36
36
|
return {
|
|
37
|
-
|
|
37
|
+
packageId: ghostPackage.manifest.id,
|
|
38
|
+
fingerprintId: ghostPackage.manifest.id,
|
|
38
39
|
touchedFiles: resolution.touchedFiles.map((file) => file.path),
|
|
39
40
|
materialNodes,
|
|
40
41
|
checks,
|
|
@@ -42,8 +43,8 @@ export async function buildReviewPacket(fingerprint, diffText, options = {}) {
|
|
|
42
43
|
diff: diffText,
|
|
43
44
|
};
|
|
44
45
|
}
|
|
45
|
-
function materialNodeFromMatch(
|
|
46
|
-
const node =
|
|
46
|
+
function materialNodeFromMatch(ghostPackage, matched) {
|
|
47
|
+
const node = ghostPackage.catalog.nodes.get(matched.id);
|
|
47
48
|
return {
|
|
48
49
|
id: node.id,
|
|
49
50
|
...(node.kind !== undefined ? { kind: node.kind } : {}),
|
|
@@ -58,8 +59,8 @@ function materialNodeFromMatch(fingerprint, matched) {
|
|
|
58
59
|
}
|
|
59
60
|
export function formatReviewPacket(packet) {
|
|
60
61
|
const out = [];
|
|
61
|
-
out.push(`#
|
|
62
|
-
out.push("You are reviewing a diff against
|
|
62
|
+
out.push(`# ghost review — package \`${packet.packageId}\``, "");
|
|
63
|
+
out.push("You are reviewing a diff against ghost package guidance. The command has", "assembled the touched files, matched material-backed nodes, offered", "checks, and optional probe evidence. Probes are repo-owned shell commands", "with the same trust class as npm scripts; git review is the boundary.", "Weigh which checks apply. Do not invent obligations that are not grounded", "in the ghost package guidance or check text.", "");
|
|
63
64
|
if (packet.touchedFiles.length > 0) {
|
|
64
65
|
out.push("## Touched files");
|
|
65
66
|
for (const file of packet.touchedFiles)
|
|
@@ -104,7 +105,7 @@ export function formatReviewPacket(packet) {
|
|
|
104
105
|
out.push("");
|
|
105
106
|
}
|
|
106
107
|
if (check.probe) {
|
|
107
|
-
out.push("Probe evidence (shell run by
|
|
108
|
+
out.push("Probe evidence (shell run by ghost; evidence only, not a pass/fail verdict):", `- command: \`${check.probe.command}\``, `- exit code: ${check.probe.exitCode ?? "unknown"}${check.probe.timedOut ? " (timed out)" : ""}`, "- stdout:", "```", check.probe.stdout.trimEnd(), "```", "- stderr:", "```", check.probe.stderr.trimEnd(), "```", "");
|
|
108
109
|
}
|
|
109
110
|
out.push(check.prose, "");
|
|
110
111
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review-packet.js","sourceRoot":"","sources":["../../src/review/review-packet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAsB,eAAe,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,EAAsB,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE3D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"review-packet.js","sourceRoot":"","sources":["../../src/review/review-packet.ts"],"names":[],"mappings":"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"}
|
package/dist/scan/constants.d.ts
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
|
-
/** Canonical directory for
|
|
1
|
+
/** Canonical directory for a ghost package. */
|
|
2
|
+
export declare const GHOST_PACKAGE_DIR = ".ghost";
|
|
3
|
+
/** ghost package manifest filename. */
|
|
4
|
+
export declare const GHOST_MANIFEST_FILENAME = "manifest.yml";
|
|
5
|
+
/** @deprecated Use `GHOST_PACKAGE_DIR`. */
|
|
2
6
|
export declare const FINGERPRINT_PACKAGE_DIR = ".ghost";
|
|
3
|
-
/**
|
|
7
|
+
/** @deprecated Use `GHOST_MANIFEST_FILENAME`. */
|
|
4
8
|
export declare const FINGERPRINT_MANIFEST_FILENAME = "manifest.yml";
|
|
5
9
|
/** Reserved package-root glossary filename. */
|
|
6
10
|
export declare const GHOST_GLOSSARY_FILENAME = "glossary.md";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/scan/constants.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/scan/constants.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,eAAO,MAAM,iBAAiB,WAAW,CAAC;AAE1C,uCAAuC;AACvC,eAAO,MAAM,uBAAuB,iBAAiB,CAAC;AAEtD,2CAA2C;AAC3C,eAAO,MAAM,uBAAuB,WAAoB,CAAC;AAEzD,iDAAiD;AACjD,eAAO,MAAM,6BAA6B,iBAA0B,CAAC;AAErE,+CAA+C;AAC/C,eAAO,MAAM,uBAAuB,gBAAgB,CAAC;AAErD,6DAA6D;AAC7D,eAAO,MAAM,mBAAmB,cAAc,CAAC;AAE/C,sDAAsD;AACtD,eAAO,MAAM,qBAAqB,YAAY,CAAC;AAE/C,gEAAgE;AAChE,eAAO,MAAM,4BAA4B,WAAW,CAAC;AAErD;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,eAAe,CAAC;AACxD,eAAO,MAAM,8BAA8B,kBAAkB,CAAC;AAC9D,eAAO,MAAM,gCAAgC,oBAAoB,CAAC"}
|
package/dist/scan/constants.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
/** Canonical directory for
|
|
2
|
-
export const
|
|
3
|
-
/**
|
|
4
|
-
export const
|
|
1
|
+
/** Canonical directory for a ghost package. */
|
|
2
|
+
export const GHOST_PACKAGE_DIR = ".ghost";
|
|
3
|
+
/** ghost package manifest filename. */
|
|
4
|
+
export const GHOST_MANIFEST_FILENAME = "manifest.yml";
|
|
5
|
+
/** @deprecated Use `GHOST_PACKAGE_DIR`. */
|
|
6
|
+
export const FINGERPRINT_PACKAGE_DIR = GHOST_PACKAGE_DIR;
|
|
7
|
+
/** @deprecated Use `GHOST_MANIFEST_FILENAME`. */
|
|
8
|
+
export const FINGERPRINT_MANIFEST_FILENAME = GHOST_MANIFEST_FILENAME;
|
|
5
9
|
/** Reserved package-root glossary filename. */
|
|
6
10
|
export const GHOST_GLOSSARY_FILENAME = "glossary.md";
|
|
7
11
|
/** Reserved package-root directory for bundled materials. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/scan/constants.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/scan/constants.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,MAAM,CAAC,MAAM,iBAAiB,GAAG,QAAQ,CAAC;AAE1C,uCAAuC;AACvC,MAAM,CAAC,MAAM,uBAAuB,GAAG,cAAc,CAAC;AAEtD,2CAA2C;AAC3C,MAAM,CAAC,MAAM,uBAAuB,GAAG,iBAAiB,CAAC;AAEzD,iDAAiD;AACjD,MAAM,CAAC,MAAM,6BAA6B,GAAG,uBAAuB,CAAC;AAErE,+CAA+C;AAC/C,MAAM,CAAC,MAAM,uBAAuB,GAAG,aAAa,CAAC;AAErD,6DAA6D;AAC7D,MAAM,CAAC,MAAM,mBAAmB,GAAG,WAAW,CAAC;AAE/C,sDAAsD;AACtD,MAAM,CAAC,MAAM,qBAAqB,GAAG,SAAS,CAAC;AAE/C,gEAAgE;AAChE,MAAM,CAAC,MAAM,4BAA4B,GAAG,QAAQ,CAAC;AAErD;;;;GAIG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,YAAY,CAAC;AACxD,MAAM,CAAC,MAAM,8BAA8B,GAAG,eAAe,CAAC;AAC9D,MAAM,CAAC,MAAM,gCAAgC,GAAG,iBAAiB,CAAC"}
|
package/dist/scan/file-kind.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { LintReport } from "./lint.js";
|
|
2
|
-
export type DetectedFileKind = "
|
|
2
|
+
export type DetectedFileKind = "package-manifest" | "check" | "material" | "node" | "unsupported";
|
|
3
3
|
/**
|
|
4
4
|
* Decide whether a file is a bundle artifact. The manifest routes to its
|
|
5
5
|
* artifact linter; files under a root `materials/` directory are material
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-kind.d.ts","sourceRoot":"","sources":["../../src/scan/file-kind.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C,MAAM,MAAM,gBAAgB,GACxB,
|
|
1
|
+
{"version":3,"file":"file-kind.d.ts","sourceRoot":"","sources":["../../src/scan/file-kind.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C,MAAM,MAAM,gBAAgB,GACxB,kBAAkB,GAClB,OAAO,GACP,UAAU,GACV,MAAM,GACN,aAAa,CAAC;AAElB;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAyB1E;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,gBAAgB,EACtB,GAAG,EAAE,MAAM,GACV,UAAU,CAUZ"}
|
package/dist/scan/file-kind.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { parse as parseYaml } from "yaml";
|
|
2
|
-
import {
|
|
2
|
+
import { GhostPackageManifestSchema, lintGhostCheck, lintGhostNode, } from "#ghost-core";
|
|
3
3
|
import { GHOST_MATERIALS_DIR } from "./constants.js";
|
|
4
4
|
/**
|
|
5
5
|
* Decide whether a file is a bundle artifact. The manifest routes to its
|
|
@@ -12,10 +12,10 @@ export function detectFileKind(path, raw) {
|
|
|
12
12
|
const lowerPath = path.toLowerCase();
|
|
13
13
|
const filename = lowerPath.split(/[\\/]/).pop() ?? lowerPath;
|
|
14
14
|
if (filename === "manifest.yml") {
|
|
15
|
-
return "
|
|
15
|
+
return "package-manifest";
|
|
16
16
|
}
|
|
17
17
|
if (filename === "manifest.yaml") {
|
|
18
|
-
return "
|
|
18
|
+
return "package-manifest";
|
|
19
19
|
}
|
|
20
20
|
if (new RegExp(`(^|[\\\\/])${GHOST_MATERIALS_DIR}[\\\\/]`).test(lowerPath)) {
|
|
21
21
|
return "material";
|
|
@@ -29,14 +29,14 @@ export function detectFileKind(path, raw) {
|
|
|
29
29
|
if (filename.endsWith(".md")) {
|
|
30
30
|
return "node";
|
|
31
31
|
}
|
|
32
|
-
if (/^\s*schema:\s*ghost\.fingerprint-package\/v1\b/m.test(raw)) {
|
|
33
|
-
return "
|
|
32
|
+
if (/^\s*schema:\s*ghost\.(?:package|fingerprint-package)\/v1\b/m.test(raw)) {
|
|
33
|
+
return "package-manifest";
|
|
34
34
|
}
|
|
35
35
|
return "unsupported";
|
|
36
36
|
}
|
|
37
37
|
export function lintDetectedFileKind(kind, raw) {
|
|
38
|
-
return kind === "
|
|
39
|
-
?
|
|
38
|
+
return kind === "package-manifest"
|
|
39
|
+
? lintPackageManifestFile(raw)
|
|
40
40
|
: kind === "check"
|
|
41
41
|
? lintGhostCheck(raw)
|
|
42
42
|
: kind === "material"
|
|
@@ -48,12 +48,12 @@ export function lintDetectedFileKind(kind, raw) {
|
|
|
48
48
|
function emptyLintReport() {
|
|
49
49
|
return { issues: [], errors: 0, warnings: 0, info: 0 };
|
|
50
50
|
}
|
|
51
|
-
function
|
|
51
|
+
function lintPackageManifestFile(raw) {
|
|
52
52
|
try {
|
|
53
|
-
return zodLintReport(
|
|
53
|
+
return zodLintReport(GhostPackageManifestSchema.safeParse(parseYaml(raw)));
|
|
54
54
|
}
|
|
55
55
|
catch (err) {
|
|
56
|
-
return yamlErrorReport("
|
|
56
|
+
return yamlErrorReport("package-manifest-not-yaml", "manifest.yml", err);
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
59
|
function zodLintReport(result) {
|
|
@@ -79,7 +79,7 @@ function lintUnsupportedFile() {
|
|
|
79
79
|
{
|
|
80
80
|
severity: "error",
|
|
81
81
|
rule: "unsupported-artifact",
|
|
82
|
-
message: "File is not a recognized
|
|
82
|
+
message: "File is not a recognized ghost artifact. Use manifest.yml, a checks/*.md check, or a *.md node.",
|
|
83
83
|
},
|
|
84
84
|
],
|
|
85
85
|
errors: 1,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-kind.js","sourceRoot":"","sources":["../../src/scan/file-kind.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"file-kind.js","sourceRoot":"","sources":["../../src/scan/file-kind.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,5 +4,7 @@ import type { LintReport } from "./lint.js";
|
|
|
4
4
|
* deterministic kind-prefix lint enabled by glossary.md. The catalog is flat;
|
|
5
5
|
* loading collects malformed nodes so they can be surfaced as structured issues.
|
|
6
6
|
*/
|
|
7
|
-
export declare function
|
|
7
|
+
export declare function lintGhostPackage(dirArg: string | undefined, cwd?: string): Promise<LintReport>;
|
|
8
|
+
/** @deprecated Use `lintGhostPackage`. */
|
|
9
|
+
export declare const lintFingerprintPackage: typeof lintGhostPackage;
|
|
8
10
|
//# sourceMappingURL=fingerprint-package-lint.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fingerprint-package-lint.d.ts","sourceRoot":"","sources":["../../src/scan/fingerprint-package-lint.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAa,UAAU,EAAE,MAAM,WAAW,CAAC;AAGvD;;;;GAIG;AACH,wBAAsB,
|
|
1
|
+
{"version":3,"file":"fingerprint-package-lint.d.ts","sourceRoot":"","sources":["../../src/scan/fingerprint-package-lint.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAa,UAAU,EAAE,MAAM,WAAW,CAAC;AAGvD;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,GAAG,SAAgB,GAClB,OAAO,CAAC,UAAU,CAAC,CA4DrB;AA+QD,0CAA0C;AAC1C,eAAO,MAAM,sBAAsB,yBAAmB,CAAC"}
|