@primer/brand-mcp 0.73.0 → 0.74.0-rc.817e3cc4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/README.md +3 -1
  2. package/content/page-design.md +15 -5
  3. package/dist/brand/detect-asset-generator/detect-asset-generator.js.map +1 -0
  4. package/dist/brand/detect-framework/detect-framework.js.map +1 -0
  5. package/dist/brand/{docs-source.d.ts → docs-source/docs-source.d.ts} +2 -2
  6. package/dist/brand/docs-source/docs-source.js.map +1 -0
  7. package/dist/brand/{resolve-assets.d.ts → resolve-assets/resolve-assets.d.ts} +1 -1
  8. package/dist/brand/resolve-assets/resolve-assets.js.map +1 -0
  9. package/dist/brand/resolve-brand-project/resolve-brand-project.d.ts +7 -0
  10. package/dist/brand/resolve-brand-project/resolve-brand-project.js +78 -0
  11. package/dist/brand/resolve-brand-project/resolve-brand-project.js.map +1 -0
  12. package/dist/brand/resolve-install/resolve-install.js.map +1 -0
  13. package/dist/brand/update-agents-md/update-agents-md.d.ts +7 -0
  14. package/dist/brand/update-agents-md/update-agents-md.js +74 -0
  15. package/dist/brand/update-agents-md/update-agents-md.js.map +1 -0
  16. package/dist/catalog.json +7 -6
  17. package/dist/review/rules.js +21 -0
  18. package/dist/review/rules.js.map +1 -1
  19. package/dist/server.js +17 -5
  20. package/dist/server.js.map +1 -1
  21. package/dist/tools/primer-brand-asset/primer-brand-asset.js +3 -1
  22. package/dist/tools/primer-brand-asset/primer-brand-asset.js.map +1 -1
  23. package/dist/tools/primer-brand-component/primer-brand-component.js +7 -1
  24. package/dist/tools/primer-brand-component/primer-brand-component.js.map +1 -1
  25. package/dist/tools/primer-brand-docs/primer-brand-docs.js +4 -1
  26. package/dist/tools/primer-brand-docs/primer-brand-docs.js.map +1 -1
  27. package/dist/tools/primer-brand-examples/primer-brand-examples.js +7 -5
  28. package/dist/tools/primer-brand-examples/primer-brand-examples.js.map +1 -1
  29. package/dist/tools/primer-brand-page-design/primer-brand-page-design.js +4 -1
  30. package/dist/tools/primer-brand-page-design/primer-brand-page-design.js.map +1 -1
  31. package/dist/tools/primer-brand-review/primer-brand-review.js +8 -6
  32. package/dist/tools/primer-brand-review/primer-brand-review.js.map +1 -1
  33. package/dist/tools/primer-brand-setup/primer-brand-setup.d.ts +3 -0
  34. package/dist/tools/primer-brand-setup/primer-brand-setup.js +66 -6
  35. package/dist/tools/primer-brand-setup/primer-brand-setup.js.map +1 -1
  36. package/dist/tools/primer-brand-tokens/primer-brand-tokens.js +2 -1
  37. package/dist/tools/primer-brand-tokens/primer-brand-tokens.js.map +1 -1
  38. package/dist/tools/types.d.ts +15 -2
  39. package/package.json +1 -1
  40. package/dist/brand/detect-asset-generator.js.map +0 -1
  41. package/dist/brand/detect-framework.js.map +0 -1
  42. package/dist/brand/docs-source.js.map +0 -1
  43. package/dist/brand/resolve-assets.js.map +0 -1
  44. package/dist/brand/resolve-install.js.map +0 -1
  45. /package/dist/brand/{detect-asset-generator.d.ts → detect-asset-generator/detect-asset-generator.d.ts} +0 -0
  46. /package/dist/brand/{detect-asset-generator.js → detect-asset-generator/detect-asset-generator.js} +0 -0
  47. /package/dist/brand/{detect-framework.d.ts → detect-framework/detect-framework.d.ts} +0 -0
  48. /package/dist/brand/{detect-framework.js → detect-framework/detect-framework.js} +0 -0
  49. /package/dist/brand/{docs-source.js → docs-source/docs-source.js} +0 -0
  50. /package/dist/brand/{resolve-assets.js → resolve-assets/resolve-assets.js} +0 -0
  51. /package/dist/brand/{resolve-install.d.ts → resolve-install/resolve-install.d.ts} +0 -0
  52. /package/dist/brand/{resolve-install.js → resolve-install/resolve-install.js} +0 -0
package/README.md CHANGED
@@ -8,7 +8,7 @@ It is a version-aware, `stdio` (local) server which reads the docs and metadata
8
8
 
9
9
  | Tool | What it does |
10
10
  | -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
11
- | `primer_brand_setup` | Configures Primer Brand first-time. Includes `ThemeProvider`, Mona Sans and RSC-directive configuration among other things |
11
+ | `primer_brand_setup` | Configures Primer Brand first-time and maintains a Primer Brand pointer beside the declaring `package.json`. |
12
12
  | `primer_brand_page_design` | Page-design conventions (header/footer, hero media, gridline aesthetic, card grids, labels) and the current-brand reference templates to start from. |
13
13
  | `primer_brand_component` | Get a component API information like props, allowed values and named sub-components. |
14
14
  | `primer_brand_examples` | Reference examples taken from our Storybook. |
@@ -35,6 +35,8 @@ Requires Node.js >= 24.
35
35
  }
36
36
  ```
37
37
 
38
+ When an agent calls `primer_brand_setup`, the tool updates `AGENTS.md` only in a package whose `package.json` declares `@primer/react-brand`. Existing instructions are preserved. If several workspace packages declare the dependency, call setup with `projectDir` set to the intended workspace-relative package folder. The pointer routes future agents to the MCP tools and version-matched docs bundled with the installed package.
39
+
38
40
  ### Copilot CLI / other stdio clients
39
41
 
40
42
  Run the server with `npx @primer/brand-mcp@latest`.
@@ -19,7 +19,9 @@ Pull adaptable component snippets with `primer_brand_examples`.
19
19
  `@primer/react-brand` spans multiple generations of GitHub's design language, and many components expose that choice as a variant or prop. **Gridline** is the current brand direction. It's a connected, ruled-line aesthetic, as seen throughout the Flexsuite templates. Bias toward it.
20
20
 
21
21
  - **Do** — when a component offers a gridline-family option, choose it over the older or default look. "Expressive" gridline options are a more pronounced sub-variant of the same aesthetic, not a competing style; reach for them where a section wants extra emphasis.
22
+ - **Do** — use a component's built-in `gridline` variant, gridline-family variant, or `hasGridLines` prop when available.
22
23
  - **Don't** — settle for a component's plainest or legacy variant, or borrow section layouts from an older brand generation, when a gridline equivalent exists.
24
+ - **Don't** — recreate built-in gridlines with custom `Box` wrappers, border props, or CSS.
23
25
 
24
26
  The gridline look is crucial and literal, not just a set of variants. Gridlines are thin ruled lines that frame the content column and separate sections (see "Contain content within the grid" section below).
25
27
 
@@ -36,17 +38,22 @@ Every full page should be framed top and bottom, unless the user has requested a
36
38
 
37
39
  ### Contain content within the grid
38
40
 
39
- Body content must sit in one centered, max-width grid framed by the brand's gridlines — it should rarely stretch edge-to-edge. Treat gridlines as one continuous page structure: every line endpoint must reach the viewport or shared page-grid boundary, or intersect another gridline. Never let a border stop in empty space.
41
+ Body content must sit in one centered, max-width grid framed by the brand's gridlines — it should rarely stretch edge-to-edge. Treat gridlines as one continuous page structure. A gridline group must not look like an isolated four-sided box floating inside the page gutters.
40
42
 
41
43
  Examples of this are in the Flexsuite recipes.
42
44
 
43
45
  - **Do** — keep heroes, `River`s, `ComparisonTable` / `PricingOptions`, connected Card or Pillar groups, forms, `CTABanner`s, and prose on the same `Grid` / `Section` column. Draw thin side rules on the column and full-bleed horizontal rules between major sections.
44
- - **Do** — for connected panels, put block rules on the outer frame, outer inline rules on the centered content container, and internal dividers on zero-gap cell wrappers. Preserve these intersections when max-width or column count changes at responsive breakpoints.
45
- - **Do** — give a panel frame's block-start and block-end rules the same extent. They may differ only when one rule is also a page-wide section boundary that intersects the frame's inline rules.
46
+ - **Do** — for connected `Card` and `Pillar` groups, put block-start and block-end rules on a page-width outer frame outside the centered, max-width `Grid` / `Section`. Put outer inline rules on the centered content container and internal dividers on zero-gap cell wrappers.
47
+ - **Do** — for these custom group frames, make every horizontal rule reach both viewport edges. It may instead end at vertical page-grid rules only when those rules continue beyond the group into adjacent sections.
48
+ - **Do** — preserve rule intersections when the max-width or column count changes at responsive breakpoints.
46
49
 
50
+ - **Don't** — put all four outer borders for a `Card` or `Pillar` group on a centered, max-width container. This creates a disconnected box with empty margins around it.
51
+ - **Don't** — assume `width: 100%` makes a custom group frame full bleed when it is inside a constrained parent. The outer frame must sit outside that parent or use the page's established full-bleed breakout.
47
52
  - **Don't** — give sections different widths, add gaps between borders that should connect, or put borders on inset wrappers where their endpoints stop in empty space.
48
53
  - **Don't** — stretch content edge-to-edge or let a section bleed full-width unless it is a deliberate background band behind the shared grid.
49
54
 
55
+ Retrieve the canonical grouped `Card` or `Pillar` structure with `primer_brand_examples` and carry its companion CSS with the JSX. Do not reproduce that structure from this prose.
56
+
50
57
  - **Mobile** — use a modest, consistent side inset and make sure nothing overflows the viewport.
51
58
 
52
59
  Resolve gutter, inset, and gridline (border) values with `primer_brand_tokens`; don't hardcode hex or pixel values.
@@ -63,7 +70,9 @@ Generous spacing is what lets a layout breathe; the Flexsuite recipes are a good
63
70
 
64
71
  A page has one clear headline and a calm step-down from there.
65
72
 
73
+ - **Do** — use the default `size` of component-owned text such as `Card.Heading`, `Hero.Heading`, and `FAQ.Heading`. Set `size` on standalone `Heading` and `Text`.
66
74
  - **Do** — use a single hero heading, make secondary section headings a clear step smaller, and keep body copy regular weight. Left-align long-form copy; reserve centering for short hero or section intros.
75
+ - **Don't** — pass `size` to a component-owned heading, description, label, or other text unless the brief requires an override. Changing `as` for semantic heading order does not require changing `size`.
67
76
  - **Don't** — size secondary headings close to the hero, set body text in heavy weights, or center long paragraphs.
68
77
 
69
78
  Resolve exact sizes and weights with `primer_brand_tokens`.
@@ -126,14 +135,15 @@ Resolve exact sizes and weights with `primer_brand_tokens`.
126
135
 
127
136
  **Do**
128
137
 
129
- - Default to placing `Card`, `Pillar`, `Box`, or custom items in a square frame using `<Grid columnGap="none" rowGap="none" enableGutters={false}>`.
138
+ - Default to placing connected `Card` or `Pillar` groups in a page-width outer frame around a centered zero-gap `Grid`. Retrieve the current structure and companion CSS with `primer_brand_examples`.
130
139
  - When Card images need to stretch to fill the Card width, set `padding="none"` on every `Card.Image` and `hasBorder` on every `Card` to provide visual containment. Place these full-bleed Cards in a regular `Grid` with a clear gap between them; this is a separate visual treatment from gridline Cards. Keep image position and aspect ratio consistent across the group, and retrieve Card examples with `primer_brand_examples` for reference.
131
140
  - Draw shared dividers on custom frame/cell wrappers and use `border-radius: 0` there.
132
141
 
133
142
  **Don't**
134
143
 
135
144
  - Put native-bordered, full-bleed Cards inside a shared gridline frame, or mix gridline and native-border treatments within one group.
136
- - Render other repeated panels as separate rounded cards, double their shared borders, or override `Card` / `Pillar` internals.
145
+ - Apply the custom Card/Pillar frame pattern to components that already provide a gridline variant or prop.
146
+ - Box a repeated panel group inside the centered content width, render panels as separate rounded cards, double their shared borders, or override `Card` / `Pillar` internals.
137
147
  - `Pillar` has no grid variant; don't invent one.
138
148
 
139
149
  ### CTABanner
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detect-asset-generator.js","sourceRoot":"","sources":["../../../src/brand/detect-asset-generator/detect-asset-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,SAAS,CAAA;AAClC,OAAO,EAAC,SAAS,EAAE,IAAI,EAAC,MAAM,WAAW,CAAA;AAEzC,MAAM,QAAQ,GAAG,qBAAqB,CAAA;AAEtC;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAyB,OAAO,CAAC,GAAG;IAGvE,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,EAAE,CAAA;IAC5C,IAAI,CAAC,SAAS;QAAE,OAAO,EAAC,SAAS,EAAE,KAAK,EAAC,CAAA;IAEzC,MAAM,iBAAiB,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACxE,MAAM,UAAU,GAAG,CAAC,QAAQ,EAAE,GAAG,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,QAAQ,GAAG,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAA;IAE7G,KAAK,MAAM,SAAS,IAAI,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QACnD,IAAI,CAAC,SAAS;YAAE,SAAQ;QACxB,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;YAAE,OAAO,EAAC,SAAS,EAAE,IAAI,EAAC,CAAA;IAC1F,CAAC;IACD,OAAO,EAAC,SAAS,EAAE,KAAK,EAAC,CAAA;AAC3B,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detect-framework.js","sourceRoot":"","sources":["../../../src/brand/detect-framework/detect-framework.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,YAAY,EAAC,MAAM,SAAS,CAAA;AAChD,OAAO,EAAC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAC,MAAM,WAAW,CAAA;AAY5C;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,UAAkB,OAAO,CAAC,GAAG,EAAE;IAC7D,wFAAwF;IACxF,IAAI,UAAU,GAAkB,IAAI,CAAA;IACpC,KAAK,IAAI,GAAG,GAAG,OAAO,IAAM,CAAC;QAC3B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;YACtF,UAAU,GAAG,GAAG,CAAA;YAChB,MAAK;QACP,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;QAC3B,IAAI,MAAM,KAAK,GAAG;YAAE,MAAK;QACzB,GAAG,GAAG,MAAM,CAAA;IACd,CAAC;IACD,IAAI,CAAC,UAAU;QAAE,OAAO,EAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,iBAAiB,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAC,CAAA;IAE/F,yFAAyF;IACzF,IAAI,IAAI,GAA2B,EAAE,CAAA;IACrC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAG/E,CAAA;QACD,IAAI,GAAG,EAAC,GAAG,MAAM,CAAC,YAAY,EAAE,GAAG,MAAM,CAAC,eAAe,EAAC,CAAA;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,4BAA4B;IAC9B,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;QACnG,OAAO,SAAS;YACd,CAAC,CAAC,EAAC,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,sBAAsB,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAC;YACxE,CAAC,CAAC,EAAC,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,wBAAwB,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAC,CAAA;IACjF,CAAC;IACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACxD,OAAO,EAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAC,CAAA;IAC9D,CAAC;IACD,IAAI,IAAI,CAAC,KAAK;QAAE,OAAO,EAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAC,CAAA;IAC5E,IAAI,IAAI,CAAC,IAAI;QAAE,OAAO,EAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAC,CAAA;IACjF,OAAO,EAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,iBAAiB,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAC,CAAA;AAC1E,CAAC"}
@@ -1,5 +1,5 @@
1
- import type { Logger } from '../logger.js';
2
- import type { BrandInstall } from './resolve-install.js';
1
+ import type { Logger } from '../../logger.js';
2
+ import type { BrandInstall } from '../resolve-install/resolve-install.js';
3
3
  /**
4
4
  * One entry in the documentation table of contents (parsed from `llms.txt`).
5
5
  */
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs-source.js","sourceRoot":"","sources":["../../../src/brand/docs-source/docs-source.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { CatalogAsset } from '../catalog/types.js';
1
+ import type { CatalogAsset } from '../../catalog/types.js';
2
2
  export type InstalledAssets = {
3
3
  assets: CatalogAsset[];
4
4
  sources: Array<{
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-assets.js","sourceRoot":"","sources":["../../../src/brand/resolve-assets/resolve-assets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export type BrandProjectResolution = {
2
+ projectDir: string | null;
3
+ candidates: string[];
4
+ reason?: 'no-workspace-root' | 'brand-package-not-found' | 'ambiguous-brand-project' | 'invalid-brand-project';
5
+ };
6
+ /** Resolve the package folder whose package.json directly declares @primer/react-brand. */
7
+ export declare function resolveBrandProject(workspaceDir: string | null, requestedProjectDir?: string): BrandProjectResolution;
@@ -0,0 +1,78 @@
1
+ import { readdirSync, readFileSync, realpathSync } from 'node:fs';
2
+ import { isAbsolute, join, relative, resolve, sep } from 'node:path';
3
+ /** Resolve the package folder whose package.json directly declares @primer/react-brand. */
4
+ export function resolveBrandProject(workspaceDir, requestedProjectDir) {
5
+ const dependencyName = '@primer/react-brand';
6
+ const ignoredDirectories = new Set([
7
+ '.git',
8
+ '.next',
9
+ 'build',
10
+ 'coverage',
11
+ 'dist',
12
+ 'node_modules',
13
+ 'out',
14
+ 'storybook-static',
15
+ ]);
16
+ const declaresBrand = (directory) => {
17
+ try {
18
+ const manifest = JSON.parse(readFileSync(join(directory, 'package.json'), 'utf8'));
19
+ return ['dependencies', 'devDependencies', 'peerDependencies', 'optionalDependencies'].some(group => Boolean(manifest[group]?.[dependencyName]));
20
+ }
21
+ catch {
22
+ return false;
23
+ }
24
+ };
25
+ if (!workspaceDir)
26
+ return { projectDir: null, candidates: [], reason: 'no-workspace-root' };
27
+ let canonicalWorkspaceDir;
28
+ try {
29
+ canonicalWorkspaceDir = realpathSync(workspaceDir);
30
+ }
31
+ catch {
32
+ return { projectDir: null, candidates: [], reason: 'no-workspace-root' };
33
+ }
34
+ const isWithinWorkspace = (candidate) => {
35
+ const relativeCandidate = relative(canonicalWorkspaceDir, candidate);
36
+ return relativeCandidate !== '..' && !relativeCandidate.startsWith(`..${sep}`) && !isAbsolute(relativeCandidate);
37
+ };
38
+ if (requestedProjectDir) {
39
+ if (isAbsolute(requestedProjectDir)) {
40
+ return { projectDir: null, candidates: [], reason: 'invalid-brand-project' };
41
+ }
42
+ let canonicalCandidate;
43
+ try {
44
+ canonicalCandidate = realpathSync(resolve(canonicalWorkspaceDir, requestedProjectDir));
45
+ }
46
+ catch {
47
+ return { projectDir: null, candidates: [], reason: 'invalid-brand-project' };
48
+ }
49
+ return isWithinWorkspace(canonicalCandidate) && declaresBrand(canonicalCandidate)
50
+ ? { projectDir: canonicalCandidate, candidates: [canonicalCandidate] }
51
+ : { projectDir: null, candidates: [], reason: 'invalid-brand-project' };
52
+ }
53
+ const candidates = [];
54
+ const visit = (directory) => {
55
+ if (declaresBrand(directory))
56
+ candidates.push(directory);
57
+ let entries;
58
+ try {
59
+ entries = readdirSync(directory, { withFileTypes: true });
60
+ }
61
+ catch {
62
+ return;
63
+ }
64
+ for (const entry of entries) {
65
+ if (!entry.isDirectory() || ignoredDirectories.has(entry.name))
66
+ continue;
67
+ visit(join(directory, entry.name));
68
+ }
69
+ };
70
+ visit(canonicalWorkspaceDir);
71
+ candidates.sort();
72
+ if (candidates.length === 1)
73
+ return { projectDir: candidates[0] ?? null, candidates };
74
+ if (candidates.length > 1)
75
+ return { projectDir: null, candidates, reason: 'ambiguous-brand-project' };
76
+ return { projectDir: null, candidates, reason: 'brand-package-not-found' };
77
+ }
78
+ //# sourceMappingURL=resolve-brand-project.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-brand-project.js","sourceRoot":"","sources":["../../../src/brand/resolve-brand-project/resolve-brand-project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAE,YAAY,EAAE,YAAY,EAAC,MAAM,SAAS,CAAA;AAC/D,OAAO,EAAC,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAC,MAAM,WAAW,CAAA;AAQlE,2FAA2F;AAC3F,MAAM,UAAU,mBAAmB,CAAC,YAA2B,EAAE,mBAA4B;IAC3F,MAAM,cAAc,GAAG,qBAAqB,CAAA;IAC5C,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC;QACjC,MAAM;QACN,OAAO;QACP,OAAO;QACP,UAAU;QACV,MAAM;QACN,cAAc;QACd,KAAK;QACL,kBAAkB;KACnB,CAAC,CAAA;IAEF,MAAM,aAAa,GAAG,CAAC,SAAiB,EAAW,EAAE;QACnD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAGhF,CAAA;YACD,OAAO,CAAC,cAAc,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,sBAAsB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAClG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAC3C,CAAA;QACH,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC,CAAA;IAED,IAAI,CAAC,YAAY;QAAE,OAAO,EAAC,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,mBAAmB,EAAC,CAAA;IAEzF,IAAI,qBAA6B,CAAA;IACjC,IAAI,CAAC;QACH,qBAAqB,GAAG,YAAY,CAAC,YAAY,CAAC,CAAA;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAC,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,mBAAmB,EAAC,CAAA;IACxE,CAAC;IAED,MAAM,iBAAiB,GAAG,CAAC,SAAiB,EAAW,EAAE;QACvD,MAAM,iBAAiB,GAAG,QAAQ,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAA;QACpE,OAAO,iBAAiB,KAAK,IAAI,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAA;IAClH,CAAC,CAAA;IAED,IAAI,mBAAmB,EAAE,CAAC;QACxB,IAAI,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACpC,OAAO,EAAC,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,uBAAuB,EAAC,CAAA;QAC5E,CAAC;QACD,IAAI,kBAA0B,CAAA;QAC9B,IAAI,CAAC;YACH,kBAAkB,GAAG,YAAY,CAAC,OAAO,CAAC,qBAAqB,EAAE,mBAAmB,CAAC,CAAC,CAAA;QACxF,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAC,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,uBAAuB,EAAC,CAAA;QAC5E,CAAC;QACD,OAAO,iBAAiB,CAAC,kBAAkB,CAAC,IAAI,aAAa,CAAC,kBAAkB,CAAC;YAC/E,CAAC,CAAC,EAAC,UAAU,EAAE,kBAAkB,EAAE,UAAU,EAAE,CAAC,kBAAkB,CAAC,EAAC;YACpE,CAAC,CAAC,EAAC,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,uBAAuB,EAAC,CAAA;IACzE,CAAC;IAED,MAAM,UAAU,GAAa,EAAE,CAAA;IAC/B,MAAM,KAAK,GAAG,CAAC,SAAiB,EAAQ,EAAE;QACxC,IAAI,aAAa,CAAC,SAAS,CAAC;YAAE,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAExD,IAAI,OAAO,CAAA;QACX,IAAI,CAAC;YACH,OAAO,GAAG,WAAW,CAAC,SAAS,EAAE,EAAC,aAAa,EAAE,IAAI,EAAC,CAAC,CAAA;QACzD,CAAC;QAAC,MAAM,CAAC;YACP,OAAM;QACR,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;gBAAE,SAAQ;YACxE,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;QACpC,CAAC;IACH,CAAC,CAAA;IACD,KAAK,CAAC,qBAAqB,CAAC,CAAA;IAC5B,UAAU,CAAC,IAAI,EAAE,CAAA;IAEjB,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,UAAU,EAAC,CAAA;IACnF,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAC,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,yBAAyB,EAAC,CAAA;IACnG,OAAO,EAAC,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,yBAAyB,EAAC,CAAA;AAC1E,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-install.js","sourceRoot":"","sources":["../../../src/brand/resolve-install/resolve-install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,YAAY,EAAC,MAAM,SAAS,CAAA;AAChD,OAAO,EAAC,OAAO,EAAE,IAAI,EAAC,MAAM,WAAW,CAAA;AAevC,MAAM,QAAQ,GAAiB;IAC7B,KAAK,EAAE,KAAK;IACZ,OAAO,EAAE,IAAI;IACb,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,IAAI;CACf,CAAA;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,UAAkB,OAAO,CAAC,GAAG,EAAE;IACjE,IAAI,GAAG,GAAG,OAAO,CAAA;IAEjB,MAAM,WAAW,GAAG,CAAC,eAAuB,EAAiB,EAAE;QAC7D,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAuB,CAAA;YACtF,OAAO,MAAM,CAAC,OAAO,IAAI,IAAI,CAAA;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,qFAAqF;YACrF,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC,CAAA;IAED,SAAS,CAAC;QACR,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,SAAS,EAAE,aAAa,CAAC,CAAA;QACtE,IAAI,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;YACjD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;YACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;YAC7C,OAAO;gBACL,KAAK,EAAE,IAAI;gBACX,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;gBACtD,UAAU;gBACV,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;gBAC7C,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI;aACjD,CAAA;QACH,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;QAC3B,IAAI,MAAM,KAAK,GAAG;YAAE,OAAO,QAAQ,CAAA;QACnC,GAAG,GAAG,MAAM,CAAA;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,UAAkB,OAAO,CAAC,GAAG,EAAE;IACrE,IAAI,mBAAmB,CAAC,OAAO,CAAC,CAAC,KAAK;QAAE,OAAO,KAAK,CAAA;IACpD,IAAI,GAAG,GAAG,OAAO,CAAA;IACjB,SAAS,CAAC;QACR,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;YAAE,OAAO,IAAI,CAAA;QAC1F,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;QAC3B,IAAI,MAAM,KAAK,GAAG;YAAE,OAAO,KAAK,CAAA;QAChC,GAAG,GAAG,MAAM,CAAA;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,7 @@
1
+ export type AgentsMdUpdateResult = {
2
+ action: 'created' | 'updated' | 'unchanged' | 'skipped';
3
+ path: string | null;
4
+ reason?: 'no-project-root' | 'incorrect-filename-case' | 'malformed-managed-block' | 'unsafe-agents-path';
5
+ };
6
+ /** Create or update the managed Primer Brand instructions in a project's root AGENTS.md. */
7
+ export declare function updateAgentsMd(projectDir: string | null): AgentsMdUpdateResult;
@@ -0,0 +1,74 @@
1
+ import { lstatSync, readFileSync, readdirSync, realpathSync, writeFileSync } from 'node:fs';
2
+ import { isAbsolute, join, relative, sep } from 'node:path';
3
+ /** Create or update the managed Primer Brand instructions in a project's root AGENTS.md. */
4
+ export function updateAgentsMd(projectDir) {
5
+ const filename = 'AGENTS.md';
6
+ const startMarker = '<!-- BEGIN:primer-brand-mcp -->';
7
+ const endMarker = '<!-- END:primer-brand-mcp -->';
8
+ const block = `${startMarker}
9
+ ## Primer Brand
10
+
11
+ When building brand-led marketing or landing pages with \`@primer/react-brand\`, use the available \`primer_brand_*\` MCP tools.
12
+
13
+ Prefer \`primer_brand_docs\` over fetching primer.style/brand directly. It reads version-matched documentation bundled with the installed package first and only falls back to the live site when necessary.
14
+
15
+ Start page work with \`primer_brand_page_design\` and \`primer_brand_examples\`. Use \`primer_brand_component\` for exact APIs and \`primer_brand_review\` before finishing.
16
+ ${endMarker}`;
17
+ if (!projectDir)
18
+ return { action: 'skipped', path: null, reason: 'no-project-root' };
19
+ let canonicalProjectDir;
20
+ try {
21
+ canonicalProjectDir = realpathSync(projectDir);
22
+ }
23
+ catch {
24
+ return { action: 'skipped', path: null, reason: 'no-project-root' };
25
+ }
26
+ const agentMdCustomSetupPath = join(canonicalProjectDir, filename);
27
+ const caseInsensitiveMatch = readdirSync(canonicalProjectDir).find(entry => entry.toLowerCase() === filename.toLowerCase());
28
+ if (caseInsensitiveMatch && caseInsensitiveMatch !== filename) {
29
+ return { action: 'skipped', path: agentMdCustomSetupPath, reason: 'incorrect-filename-case' };
30
+ }
31
+ const fileStats = lstatSync(agentMdCustomSetupPath, { throwIfNoEntry: false });
32
+ if (fileStats?.isSymbolicLink()) {
33
+ return { action: 'skipped', path: agentMdCustomSetupPath, reason: 'unsafe-agents-path' };
34
+ }
35
+ if (!fileStats) {
36
+ writeFileSync(agentMdCustomSetupPath, `${block}\n`, 'utf8');
37
+ return { action: 'created', path: agentMdCustomSetupPath };
38
+ }
39
+ let canonicalAgentsPath;
40
+ try {
41
+ canonicalAgentsPath = realpathSync(agentMdCustomSetupPath);
42
+ }
43
+ catch {
44
+ return { action: 'skipped', path: agentMdCustomSetupPath, reason: 'unsafe-agents-path' };
45
+ }
46
+ const relativeAgentsPath = relative(canonicalProjectDir, canonicalAgentsPath);
47
+ if (relativeAgentsPath === '..' || relativeAgentsPath.startsWith(`..${sep}`) || isAbsolute(relativeAgentsPath)) {
48
+ return { action: 'skipped', path: agentMdCustomSetupPath, reason: 'unsafe-agents-path' };
49
+ }
50
+ const existing = readFileSync(agentMdCustomSetupPath, 'utf8');
51
+ const eol = existing.includes('\r\n') ? '\r\n' : '\n';
52
+ const normalizedBlock = block.replaceAll('\n', eol);
53
+ const startIndex = existing.indexOf(startMarker);
54
+ const endIndex = existing.indexOf(endMarker);
55
+ const hasStartMarker = startIndex !== -1;
56
+ const hasEndMarker = endIndex !== -1;
57
+ const hasDuplicateMarkers = startIndex !== existing.lastIndexOf(startMarker) || endIndex !== existing.lastIndexOf(endMarker);
58
+ if (hasStartMarker !== hasEndMarker || hasDuplicateMarkers || (hasStartMarker && endIndex < startIndex)) {
59
+ return { action: 'skipped', path: agentMdCustomSetupPath, reason: 'malformed-managed-block' };
60
+ }
61
+ let updated;
62
+ if (hasStartMarker) {
63
+ updated = `${existing.slice(0, startIndex)}${normalizedBlock}${existing.slice(endIndex + endMarker.length)}`;
64
+ }
65
+ else {
66
+ const separator = existing.length === 0 || /\r?\n$/.test(existing) ? eol : `${eol}${eol}`;
67
+ updated = `${existing}${separator}${normalizedBlock}${eol}`;
68
+ }
69
+ if (updated === existing)
70
+ return { action: 'unchanged', path: agentMdCustomSetupPath };
71
+ writeFileSync(agentMdCustomSetupPath, updated, 'utf8');
72
+ return { action: 'updated', path: agentMdCustomSetupPath };
73
+ }
74
+ //# sourceMappingURL=update-agents-md.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-agents-md.js","sourceRoot":"","sources":["../../../src/brand/update-agents-md/update-agents-md.ts"],"names":[],"mappings":"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"}
package/dist/catalog.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "brandPackage": "@primer/react-brand",
3
- "generatedFromVersion": "0.73.0",
4
- "generatedAt": "2026-08-12T10:14:32.171Z",
3
+ "generatedFromVersion": "0.74.0-rc.817e3cc4",
4
+ "generatedAt": "2026-08-19T11:02:39.469Z",
5
5
  "components": [
6
6
  {
7
7
  "name": "Hero",
@@ -427,7 +427,7 @@
427
427
  "examples": [
428
428
  {
429
429
  "title": "RiverBreakout example",
430
- "code": "<Section>\n <RiverBreakout>\n <RiverBreakout.A11yHeading>River breakout highlight</RiverBreakout.A11yHeading>\n <RiverBreakout.Visual>\n <img src={placeholderImage} alt=\"placeholder, blank area with a gray background color\" />\n </RiverBreakout.Visual>\n <RiverBreakout.Content\n trailingComponent={() => (\n <Timeline>\n <Timeline.Item>\n <b>GitHub Codespaces</b> offers a complete dev environment in seconds.\n </Timeline.Item>\n <Timeline.Item>\n <b>GitHub Copilot</b> is your AI pair programmer that empowers you to complete tasks.\n </Timeline.Item>\n </Timeline>\n )}\n >\n <Text>\n <b>This first sentence is a river breakout headline.</b> And this is where the body copy starts. Remember to\n keep these nice and succinct.\n </Text>\n <Link href=\"#\">Call to action</Link>\n </RiverBreakout.Content>\n </RiverBreakout>\n</Section>",
430
+ "code": "<Section>\n <RiverBreakout variant=\"gridline\">\n <RiverBreakout.A11yHeading>River breakout highlight</RiverBreakout.A11yHeading>\n <RiverBreakout.Visual>\n <img src={placeholderImage} alt=\"placeholder, blank area with a gray background color\" />\n </RiverBreakout.Visual>\n <RiverBreakout.Content\n trailingComponent={() => (\n <Stack gap=\"normal\">\n <Text as=\"p\" variant=\"muted\">\n <Text variant=\"default\">Deals with your issues.</Text> When assigned issues, GitHub Copilot plans,\n writes, tests, and iterates.\n </Text>\n <Text as=\"p\" variant=\"muted\">\n <Text variant=\"default\">Codes like an insider.</Text> GitHub Copilot hooks into MCP servers to draw on\n data from your repositories and external resources.\n </Text>\n <Text as=\"p\" variant=\"muted\">\n <Text variant=\"default\">Human and agent in the loop.</Text>\n Comment to guide GitHub Copilot, polish your code for merge, or take over locally in your IDE.\n </Text>\n </Stack>\n )}\n trailingComponentDivider\n >\n <Text>\n <b>This first sentence is a river breakout headline.</b> And this is where the body copy starts. Remember to\n keep these nice and succinct.\n </Text>\n <Link href=\"#\">Call to action</Link>\n </RiverBreakout.Content>\n </RiverBreakout>\n</Section>",
431
431
  "source": "story"
432
432
  }
433
433
  ]
@@ -480,7 +480,7 @@
480
480
  "examples": [
481
481
  {
482
482
  "title": "RiverBreakoutTabs example",
483
- "code": "<Section>\n <RiverBreakoutTabs backgroundVisual={<SharedDitherBackdrop />} imagePosition=\"block-end\">\n <RiverBreakoutTabs.A11yHeading>{t('with_images_a11y_heading')}</RiverBreakoutTabs.A11yHeading>\n\n <RiverBreakoutTabs.Item>\n <RiverBreakoutTabs.Icon icon={AiModelIcon} color=\"green\" />\n <RiverBreakoutTabs.Heading>{t('with_images_item_plan_heading')}</RiverBreakoutTabs.Heading>\n <RiverBreakoutTabs.Content>\n <Text>{t('with_images_item_plan_body')}</Text>\n <Link href=\"https://github.com/features/copilot\">{t('with_images_item_plan_link')}</Link>\n </RiverBreakoutTabs.Content>\n <RiverBreakoutTabs.Visual>\n <Image src={renderUI1} alt={t('alt_ai_plan_editor')} />\n </RiverBreakoutTabs.Visual>\n </RiverBreakoutTabs.Item>\n\n <RiverBreakoutTabs.Item>\n <RiverBreakoutTabs.Icon icon={CopilotIcon} color=\"green\" />\n <RiverBreakoutTabs.Heading>{t('with_images_item_refine_heading')}</RiverBreakoutTabs.Heading>\n <RiverBreakoutTabs.Content>\n <Text>{t('with_images_item_refine_body')}</Text>\n <Link href=\"https://github.com/features/copilot/chat\">{t('with_images_item_refine_link')}</Link>\n </RiverBreakoutTabs.Content>\n <RiverBreakoutTabs.Visual>\n <Image src={renderUI2} alt={t('alt_chat_guiding_edits')} />\n </RiverBreakoutTabs.Visual>\n </RiverBreakoutTabs.Item>\n\n <RiverBreakoutTabs.Item>\n <RiverBreakoutTabs.Icon icon={ShieldCheckIcon} color=\"green\" />\n <RiverBreakoutTabs.Heading>{t('with_images_item_merge_heading')}</RiverBreakoutTabs.Heading>\n <RiverBreakoutTabs.Content>\n <Text>{t('with_images_item_merge_body')}</Text>\n <Link href=\"https://github.com/features/copilot/plans\">{t('with_images_item_merge_link')}</Link>\n </RiverBreakoutTabs.Content>\n <RiverBreakoutTabs.Visual>\n <Image src={renderUI3} alt={t('alt_checks_before_merge')} />\n </RiverBreakoutTabs.Visual>\n </RiverBreakoutTabs.Item>\n </RiverBreakoutTabs>\n</Section>",
483
+ "code": "<Section>\n <RiverBreakoutTabs\n backgroundVisual={process.env.NODE_ENV !== 'test' ? <SharedDitherBackdrop /> : null}\n imagePosition=\"block-end\"\n >\n <RiverBreakoutTabs.A11yHeading>{t('with_images_a11y_heading')}</RiverBreakoutTabs.A11yHeading>\n\n <RiverBreakoutTabs.Item>\n <RiverBreakoutTabs.Icon icon={AiModelIcon} color=\"green\" />\n <RiverBreakoutTabs.Heading>{t('with_images_item_plan_heading')}</RiverBreakoutTabs.Heading>\n <RiverBreakoutTabs.Content>\n <Text>{t('with_images_item_plan_body')}</Text>\n <Link href=\"https://github.com/features/copilot\">{t('with_images_item_plan_link')}</Link>\n </RiverBreakoutTabs.Content>\n <RiverBreakoutTabs.Visual>\n <Image src={renderUI1} alt={t('alt_ai_plan_editor')} />\n </RiverBreakoutTabs.Visual>\n </RiverBreakoutTabs.Item>\n\n <RiverBreakoutTabs.Item>\n <RiverBreakoutTabs.Icon icon={CopilotIcon} color=\"green\" />\n <RiverBreakoutTabs.Heading>{t('with_images_item_refine_heading')}</RiverBreakoutTabs.Heading>\n <RiverBreakoutTabs.Content>\n <Text>{t('with_images_item_refine_body')}</Text>\n <Link href=\"https://github.com/features/copilot/chat\">{t('with_images_item_refine_link')}</Link>\n </RiverBreakoutTabs.Content>\n <RiverBreakoutTabs.Visual>\n <Image src={renderUI2} alt={t('alt_chat_guiding_edits')} />\n </RiverBreakoutTabs.Visual>\n </RiverBreakoutTabs.Item>\n\n <RiverBreakoutTabs.Item>\n <RiverBreakoutTabs.Icon icon={ShieldCheckIcon} color=\"green\" />\n <RiverBreakoutTabs.Heading>{t('with_images_item_merge_heading')}</RiverBreakoutTabs.Heading>\n <RiverBreakoutTabs.Content>\n <Text>{t('with_images_item_merge_body')}</Text>\n <Link href=\"https://github.com/features/copilot/plans\">{t('with_images_item_merge_link')}</Link>\n </RiverBreakoutTabs.Content>\n <RiverBreakoutTabs.Visual>\n <Image src={renderUI3} alt={t('alt_checks_before_merge')} />\n </RiverBreakoutTabs.Visual>\n </RiverBreakoutTabs.Item>\n </RiverBreakoutTabs>\n</Section>",
484
484
  "source": "story"
485
485
  }
486
486
  ],
@@ -3050,7 +3050,8 @@
3050
3050
  "examples": [
3051
3051
  {
3052
3052
  "title": "Statistic example",
3053
- "code": "<>\n <Box\n marginBlockStart=\"normal\" /* This is for demo purposes only to reveal the initial gridline */\n borderBlockEndWidth=\"thin\"\n borderBlockStartWidth=\"thin\"\n borderColor=\"muted\"\n borderStyle=\"solid\"\n >\n <Grid enableGutters={false} columnGap=\"none\" rowGap=\"none\">\n <Grid.Column span={{large: 8}}>\n <Box\n padding={{\n narrow: 32,\n regular: 32,\n wide: 64,\n }}\n backgroundColor=\"subtle\"\n borderInlineStartWidth={{\n wide: 'thin',\n }}\n borderInlineEndWidth={{\n wide: 'thin',\n }}\n borderColor=\"muted\"\n borderStyle=\"solid\"\n style={{height: '100%'}}\n >\n <Card href=\"https://github.com\" fullWidth variant=\"minimal\" disableAnimation>\n <Card.Label>Resources</Card.Label>\n <Card.Heading size=\"5\">\n How Thomson Reuters successfully adopted AI —and how your organization can, too\n </Card.Heading>\n <Card.Image\n position=\"block-end\"\n aspectRatio=\"16:10\"\n src={placeholderImage}\n alt=\"placeholder, blank area with a gray background color\"\n />\n </Card>\n </Box>\n </Grid.Column>\n <Grid.Column span={{large: 4}}>\n <Box\n borderInlineEndWidth={{\n wide: 'thin',\n }}\n borderColor=\"muted\"\n borderStyle=\"solid\"\n style={{height: '100%'}}\n >\n <Stack direction=\"vertical\" padding=\"none\" gap=\"none\" style={{height: '100%'}}>\n <Box\n padding={{\n narrow: 32,\n wide: 64,\n }}\n borderBlockStartWidth={{\n narrow: 'thin',\n wide: 'none',\n }}\n borderColor=\"muted\"\n borderStyle=\"solid\"\n style={{flex: 1, display: 'flex', alignItems: 'center'}}\n >\n <Statistic>\n <Statistic.Heading weight=\"normal\" size=\"800\" style={{color: 'var(--brand-color-text-emphasized)'}}>\n 55%\n </Statistic.Heading>\n <Statistic.Description font=\"monospace\" size=\"100\">\n At vero eos et accusamus et iusto odio dignissimos\n </Statistic.Description>\n </Statistic>\n </Box>\n <Box\n padding={{\n narrow: 'normal',\n wide: 64,\n }}\n borderBlockStartWidth=\"thin\"\n borderColor=\"muted\"\n borderStyle=\"solid\"\n style={{flex: 1, display: 'flex', alignItems: 'center'}}\n >\n <Statistic>\n <Statistic.Heading weight=\"normal\" size=\"800\" style={{color: 'var(--brand-color-text-emphasized)'}}>\n 39%\n </Statistic.Heading>\n <Statistic.Description font=\"monospace\" size=\"100\">\n Sed ut perspiciatis unde omnis iste natus voluptatem\n </Statistic.Description>\n </Statistic>\n </Box>\n <Box\n padding={{\n narrow: 'normal',\n wide: 64,\n }}\n borderBlockStartWidth=\"thin\"\n borderColor=\"muted\"\n borderStyle=\"solid\"\n style={{flex: 1, display: 'flex', alignItems: 'center'}}\n >\n <Statistic>\n <Statistic.Heading weight=\"normal\" size=\"800\" style={{color: 'var(--brand-color-text-emphasized)'}}>\n 39%\n </Statistic.Heading>\n <Statistic.Description font=\"monospace\" size=\"100\">\n Sed ut perspiciatis unde omnis iste natus error sit\n </Statistic.Description>\n </Statistic>\n </Box>\n </Stack>\n </Box>\n </Grid.Column>\n </Grid>\n </Box>\n</>",
3053
+ "code": "<Section fullWidth paddingBlockStart=\"condensed\" paddingBlockEnd=\"normal\">\n <Stack direction=\"vertical\" padding=\"none\" gap=\"spacious\">\n <SectionIntro align=\"center\" fullWidth>\n <SectionIntro.Heading as=\"h3\" size=\"3\">\n H3 Heading 100 Characters Max\n </SectionIntro.Heading>\n </SectionIntro>\n\n <Box className={styles.gridFrame}>\n <Box className={styles.gridContent}>\n <Grid columnGap=\"none\" rowGap=\"none\" enableGutters={false}>\n {gridlineStatistics.map(statistic => (\n <Grid.Column key={statistic.heading} span={{xsmall: 12, large: 4}} className={styles.gridColumn}>\n <Box className={styles.gridItem} padding={{narrow: 32, wide: 48}}>\n <Statistic>\n <Statistic.Heading\n font=\"monospace\"\n weight=\"normal\"\n size=\"700\"\n style={{color: 'var(--brand-color-accent-primary)'}}\n >\n {statistic.heading}\n </Statistic.Heading>\n <Statistic.Description font=\"monospace\" size=\"100\">\n {statistic.description}\n </Statistic.Description>\n </Statistic>\n </Box>\n </Grid.Column>\n ))}\n </Grid>\n </Box>\n </Box>\n </Stack>\n</Section>",
3054
+ "styles": "/* Statistic/Statistic.stories.shared.module.css */\n.gridFrame {\n width: 100%;\n border-block-start: var(--brand-borderWidth-thin) solid var(--brand-color-border-subtle);\n border-block-end: var(--brand-borderWidth-thin) solid var(--brand-color-border-subtle);\n}\n\n.gridContent {\n width: 100%;\n max-width: 789px;\n margin-inline: auto;\n}\n\n.gridColumn {\n display: flex;\n}\n\n.gridItem {\n width: 100%;\n border-inline: var(--brand-borderWidth-thin) solid var(--brand-color-border-subtle);\n border-block-start: var(--brand-borderWidth-thin) solid var(--brand-color-border-subtle);\n display: flex;\n align-items: center;\n}\n\n.gridColumn:first-child .gridItem {\n border-block-start: 0;\n}\n\n@media screen and (min-width: 63.25rem) {\n .gridContent {\n max-width: 81rem;\n }\n\n .gridItem {\n border-block-start: 0;\n border-inline-end: 0;\n }\n\n .gridColumn:last-child .gridItem {\n border-inline-end: var(--brand-borderWidth-thin) solid var(--brand-color-border-subtle);\n }\n}",
3054
3055
  "source": "story"
3055
3056
  }
3056
3057
  ],
@@ -3252,7 +3253,7 @@
3252
3253
  "examples": [
3253
3254
  {
3254
3255
  "title": "SectionIntroStacked example",
3255
- "code": "<Grid>\n <Grid.Column>\n <SectionIntroStacked>\n <SectionIntroStacked.Heading>{t('enterprise_platform_heading')}</SectionIntroStacked.Heading>\n <SectionIntroStacked.Description>{t('playground_description')}</SectionIntroStacked.Description>\n <SectionIntroStacked.Link href=\"#\">{t('explore_github_enterprise')}</SectionIntroStacked.Link>\n <SectionIntroStacked.Items>\n <SectionIntroStacked.Item>\n <SectionIntroStacked.ItemIcon icon={CpuIcon} />\n <SectionIntroStacked.ItemHeading>{t('item_one_heading')}</SectionIntroStacked.ItemHeading>\n <SectionIntroStacked.ItemDescription>{t('item_one_description')}</SectionIntroStacked.ItemDescription>\n </SectionIntroStacked.Item>\n <SectionIntroStacked.Item>\n <SectionIntroStacked.ItemIcon icon={LightBulbIcon} />\n <SectionIntroStacked.ItemHeading>{t('item_two_heading')}</SectionIntroStacked.ItemHeading>\n <SectionIntroStacked.ItemDescription>{t('item_two_description')}</SectionIntroStacked.ItemDescription>\n </SectionIntroStacked.Item>\n <SectionIntroStacked.Item>\n <SectionIntroStacked.ItemIcon icon={HeartIcon} />\n <SectionIntroStacked.ItemHeading>{t('item_three_heading')}</SectionIntroStacked.ItemHeading>\n <SectionIntroStacked.ItemDescription>{t('item_three_description')}</SectionIntroStacked.ItemDescription>\n </SectionIntroStacked.Item>\n </SectionIntroStacked.Items>\n </SectionIntroStacked>\n </Grid.Column>\n</Grid>",
3256
+ "code": "<SectionIntroStacked variant=\"gridline\">\n <SectionIntroStacked.Heading>{t('with_item_icons_heading')}</SectionIntroStacked.Heading>\n <SectionIntroStacked.Description>{t('playground_description')}</SectionIntroStacked.Description>\n <SectionIntroStacked.Link href=\"#\">{t('sign_up_now')}</SectionIntroStacked.Link>\n <SectionIntroStacked.Items>\n <SectionIntroStacked.Item>\n <SectionIntroStacked.ItemIcon icon={CpuIcon} />\n <SectionIntroStacked.ItemHeading>{t('item_one_heading')}</SectionIntroStacked.ItemHeading>\n <SectionIntroStacked.ItemDescription>{t('item_one_description')}</SectionIntroStacked.ItemDescription>\n </SectionIntroStacked.Item>\n <SectionIntroStacked.Item>\n <SectionIntroStacked.ItemIcon icon={LightBulbIcon} />\n <SectionIntroStacked.ItemHeading>{t('item_two_heading')}</SectionIntroStacked.ItemHeading>\n <SectionIntroStacked.ItemDescription>{t('item_two_description')}</SectionIntroStacked.ItemDescription>\n </SectionIntroStacked.Item>\n <SectionIntroStacked.Item>\n <SectionIntroStacked.ItemIcon icon={HeartIcon} />\n <SectionIntroStacked.ItemHeading>{t('item_three_heading')}</SectionIntroStacked.ItemHeading>\n <SectionIntroStacked.ItemDescription>{t('item_three_description')}</SectionIntroStacked.ItemDescription>\n </SectionIntroStacked.Item>\n </SectionIntroStacked.Items>\n</SectionIntroStacked>",
3256
3257
  "source": "story"
3257
3258
  }
3258
3259
  ],
@@ -389,6 +389,26 @@ const headingExplicitSize = {
389
389
  return [];
390
390
  },
391
391
  };
392
+ /** Compound components provide context-appropriate text sizes; explicit overrides should be exceptional. */
393
+ const componentTextDefaultSize = {
394
+ id: 'component-text-default-size',
395
+ run(code, catalog) {
396
+ const knownSubcomponents = new Set(catalog.components.flatMap(component => component.subcomponents));
397
+ const findings = [];
398
+ for (const match of code.matchAll(/<([A-Z][A-Za-z0-9]*)\.(Heading|Subheading|Description|Label|Eyebrow|Text)\b[^>]*(?:^|\s)size\s*=/g)) {
399
+ const qualifiedName = `${match[1]}.${match[2]}`;
400
+ if (!knownSubcomponents.has(qualifiedName))
401
+ continue;
402
+ findings.push({
403
+ severity: 'warning',
404
+ rule: this.id,
405
+ message: `\`${qualifiedName}\` already has the right default \`size\` for its component. Remove \`size\` unless the brief requires an override.`,
406
+ evidence: evidence(match[0]),
407
+ });
408
+ }
409
+ return findings;
410
+ },
411
+ };
392
412
  /** Credit for actually importing approved brand components — surfaced as guidance, not a failure. */
393
413
  export function brandComponentsUsed(code, catalog) {
394
414
  const imported = new Set();
@@ -416,5 +436,6 @@ export const allRules = [
416
436
  hardcodedValues,
417
437
  offBrandTells,
418
438
  headingExplicitSize,
439
+ componentTextDefaultSize,
419
440
  ];
420
441
  //# sourceMappingURL=rules.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rules.js","sourceRoot":"","sources":["../../src/review/rules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rules.js","sourceRoot":"","sources":["../../src/review/rules.ts"],"names":[],"mappings":"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"}
package/dist/server.js CHANGED
@@ -1,10 +1,11 @@
1
1
  import { readFileSync } from 'node:fs';
2
2
  import { fileURLToPath } from 'node:url';
3
3
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
4
- import { detectAssetGenerator } from './brand/detect-asset-generator.js';
5
- import { createDocsSource } from './brand/docs-source.js';
6
- import { resolveInstalledAssets } from './brand/resolve-assets.js';
7
- import { looksLikeProductProject, resolveBrandInstall } from './brand/resolve-install.js';
4
+ import { detectAssetGenerator } from './brand/detect-asset-generator/detect-asset-generator.js';
5
+ import { detectFramework } from './brand/detect-framework/detect-framework.js';
6
+ import { createDocsSource } from './brand/docs-source/docs-source.js';
7
+ import { resolveInstalledAssets } from './brand/resolve-assets/resolve-assets.js';
8
+ import { looksLikeProductProject, resolveBrandInstall } from './brand/resolve-install/resolve-install.js';
8
9
  import { loadCatalog } from './catalog/load.js';
9
10
  import { createLogger } from './logger.js';
10
11
  import { registerTools } from './tools/register.js';
@@ -40,6 +41,7 @@ export function createServer() {
40
41
  const server = new McpServer({ name: 'Primer Brand', version }, { instructions: INSTRUCTIONS });
41
42
  const catalog = loadCatalog(logger);
42
43
  const brand = resolveBrandInstall();
44
+ const framework = detectFramework();
43
45
  if (brand.found) {
44
46
  logger.info(`using @primer/react-brand@${brand.version ?? 'unknown'} from ${brand.packageDir}`);
45
47
  }
@@ -60,7 +62,17 @@ export function createServer() {
60
62
  logger.info('GitHub Asset Generator MCP server detected; surfacing on-brand imagery guidance');
61
63
  }
62
64
  const docs = createDocsSource(brand, logger);
63
- registerTools(server, { catalog, brand, docs, logger, assets, assetsOrigin, assetGenerator: detectAssetGenerator() });
65
+ registerTools(server, {
66
+ catalog,
67
+ brand,
68
+ workspaceDir: process.cwd(),
69
+ framework,
70
+ docs,
71
+ logger,
72
+ assets,
73
+ assetsOrigin,
74
+ assetGenerator: detectAssetGenerator(),
75
+ });
64
76
  return server;
65
77
  }
66
78
  //# sourceMappingURL=server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,SAAS,CAAA;AACpC,OAAO,EAAC,aAAa,EAAC,MAAM,UAAU,CAAA;AAEtC,OAAO,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAA;AAEjE,OAAO,EAAC,oBAAoB,EAAC,MAAM,0DAA0D,CAAA;AAC7F,OAAO,EAAC,eAAe,EAAC,MAAM,8CAA8C,CAAA;AAC5E,OAAO,EAAC,gBAAgB,EAAC,MAAM,oCAAoC,CAAA;AACnE,OAAO,EAAC,sBAAsB,EAAC,MAAM,0CAA0C,CAAA;AAC/E,OAAO,EAAC,uBAAuB,EAAE,mBAAmB,EAAC,MAAM,4CAA4C,CAAA;AACvG,OAAO,EAAC,WAAW,EAAC,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAA;AACxC,OAAO,EAAC,aAAa,EAAC,MAAM,qBAAqB,CAAA;AAEjD,MAAM,cAAc,GAAG,oBAAoB,EAAE,CAAA;AAE7C,MAAM,YAAY,GAAG;;;;;;;;;;;EAYnB,cAAc,CAAC,SAAS;IACtB,CAAC,CAAC;;;6HAGuH;IACzH,CAAC,CAAC,EACN;CACC,CAAA;AAED,MAAM,UAAU,YAAY;IAC1B,MAAM,MAAM,GAAG,YAAY,EAAE,CAAA;IAE7B,IAAI,OAAO,GAAG,OAAO,CAAA;IACrB,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;QAC9E,OAAO,GAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAwB,CAAC,OAAO,IAAI,OAAO,CAAA;IACpG,CAAC;IAAC,MAAM,CAAC;QACP,oFAAoF;IACtF,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAC,IAAI,EAAE,cAAc,EAAE,OAAO,EAAC,EAAE,EAAC,YAAY,EAAE,YAAY,EAAC,CAAC,CAAA;IAE3F,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;IACnC,MAAM,KAAK,GAAG,mBAAmB,EAAE,CAAA;IACnC,MAAM,SAAS,GAAG,eAAe,EAAE,CAAA;IACnC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC,6BAA6B,KAAK,CAAC,OAAO,IAAI,SAAS,SAAS,KAAK,CAAC,UAAU,EAAE,CAAC,CAAA;IACjG,CAAC;SAAM,IAAI,uBAAuB,EAAE,EAAE,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,qGAAqG,CAAC,CAAA;IACpH,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAA;IACnF,CAAC;IAED,MAAM,eAAe,GAAG,sBAAsB,EAAE,CAAA;IAChD,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAA;IACjF,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAA;IAC1F,IAAI,YAAY,KAAK,WAAW,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,IAAI,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC9G,MAAM,CAAC,IAAI,CAAC,yDAAyD,QAAQ,EAAE,CAAC,CAAA;IAClF,CAAC;IAED,IAAI,oBAAoB,EAAE,CAAC,SAAS,EAAE,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,iFAAiF,CAAC,CAAA;IAChG,CAAC;IAED,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IAC5C,aAAa,CAAC,MAAM,EAAE;QACpB,OAAO;QACP,KAAK;QACL,YAAY,EAAE,OAAO,CAAC,GAAG,EAAE;QAC3B,SAAS;QACT,IAAI;QACJ,MAAM;QACN,MAAM;QACN,YAAY;QACZ,cAAc,EAAE,oBAAoB,EAAE;KACvC,CAAC,CAAA;IACF,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -8,7 +8,9 @@ const inputSchema = z.object({
8
8
  .describe('Restrict to Octicons ("icon") or Octovisuals ("illustration").'),
9
9
  limit: z.number().int().min(1).max(50).optional().default(12).describe('Max results.'),
10
10
  });
11
- const description = `Find approved Primer Brand visuals as code imports: Octicons (@primer/octicons-react) and Octovisuals (@primer/octovisuals-react). Use these instead of emoji, clip art, or random icon sets - mismatched or emoji icons are off-brand.`;
11
+ const description = `Find approved Primer Brand visuals as code imports:
12
+ Octicons (@primer/octicons-react) and Octovisuals (@primer/octovisuals-react).
13
+ Use these instead of emoji, clip art, or random icon sets - mismatched or emoji icons are off-brand.`;
12
14
  export const primerBrandAssetTool = {
13
15
  name: 'primer_brand_asset',
14
16
  title: 'Primer Brand icons & illustrations',
@@ -1 +1 @@
1
- {"version":3,"file":"primer-brand-asset.js","sourceRoot":"","sources":["../../../src/tools/primer-brand-asset/primer-brand-asset.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"primer-brand-asset.js","sourceRoot":"","sources":["../../../src/tools/primer-brand-asset/primer-brand-asset.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,13 @@ const inputSchema = z.object({
7
7
  .optional()
8
8
  .describe('Component name to look up (e.g. "Hero"). Omit to list every available component.'),
9
9
  });
10
- const description = `Primer Brand (@primer/react-brand) component reference for GitHub marketing and landing pages. Omit \`name\` to list every approved component; pass a \`name\` for its import, sub-components, props with allowed values, and a canonical example. The example is a real story snippet, so it may include Storybook \`{...args}\` spreads or imported demo assets to adapt rather than copy verbatim. Use this to avoid invented components or props. This is Primer Brand, not @primer/react product UI.`;
10
+ const description = `Primer Brand (@primer/react-brand) component reference for GitHub marketing and landing pages.
11
+ Omit \`name\` to list every approved component.
12
+ Pass a \`name\` for its import, sub-components, props with allowed values, and a canonical example.
13
+ The example is a real story snippet, so it may include Storybook \`{...args}\` spreads
14
+ or imported demo assets to adapt rather than copy verbatim.
15
+ Use this to avoid invented components or props.
16
+ This is Primer Brand, not @primer/react product UI.`;
11
17
  function listComponents(ctx) {
12
18
  const { components } = ctx.catalog;
13
19
  if (components.length === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"primer-brand-component.js","sourceRoot":"","sources":["../../../src/tools/primer-brand-component/primer-brand-component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"primer-brand-component.js","sourceRoot":"","sources":["../../../src/tools/primer-brand-component/primer-brand-component.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,10 @@ const inputSchema = z.object({
5
5
  query: z.string().optional().describe('Search guidance, e.g. "accessibility", "color usage", "getting started".'),
6
6
  path: z.string().optional().describe('Read a specific doc by its path (from a previous search result).'),
7
7
  });
8
- const description = `Search and read Primer Brand guidance — principles, accessibility, content, and getting started. Prefers the version-pinned docs bundled with the installed @primer/react-brand, falling back to the live site (https://primer.style/brand) for general guidance. This is brand concepts and how-to, not component APIs (use primer_brand_component for those).`;
8
+ const description = `Search and read Primer Brand guidance — principles, accessibility, content, and getting started.
9
+ Prefers the version-pinned docs bundled with the installed @primer/react-brand,
10
+ falling back to the live site (https://primer.style/brand) for general guidance.
11
+ This is brand concepts and how-to, not component APIs (use primer_brand_component for those).`;
9
12
  async function readPath(path, ctx) {
10
13
  const doc = await ctx.docs.read(path);
11
14
  if (!doc) {
@@ -1 +1 @@
1
- {"version":3,"file":"primer-brand-docs.js","sourceRoot":"","sources":["../../../src/tools/primer-brand-docs/primer-brand-docs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"primer-brand-docs.js","sourceRoot":"","sources":["../../../src/tools/primer-brand-docs/primer-brand-docs.ts"],"names":[],"mappings":"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"}
@@ -7,9 +7,9 @@ const inputSchema = z.object({
7
7
  .optional()
8
8
  .describe('What you are building, e.g. "education landing page" or "pricing section". Omit for a foundational starter set.'),
9
9
  });
10
- const description = `Get ranked, copy-and-adapt examples of correct Primer Brand usage for a goal. Page goals include a current-brand full-page recipe for overall composition, while independently ranked component examples provide goal-specific detail.
11
- Pass a target use-case like "pricing section", "category page", or "education landing page"; unmatched page types use the general overview recipe, while unmatched component goals use a foundational set.
12
- Examples are real source, so they may carry demo scaffolding (a \`content\` object, internal fixture imports, CSS-module class names, repo-relative imports, \`{...args}\` spreads). Preserve the composition and gridline geometry; adapt the content, assets, and imports. When companion CSS is included, carry its frame and cell rules with the JSX.`;
10
+ const description = `Get ranked, tested Primer Brand examples for a component or page goal.
11
+ Use when you need a starting composition; page goals can include a current-brand full-page reference.
12
+ Use \`primer_brand_component\` for exact component APIs.`;
13
13
  /** Foundational sections that anchor almost every GitHub landing page, in composition order. */
14
14
  const DEFAULT_COMPONENTS = ['Hero', 'SectionIntro', 'River', 'Pillar', 'CTABanner'];
15
15
  function exampleCode(component) {
@@ -31,6 +31,8 @@ export const primerBrandExamplesTool = {
31
31
  inputShape: inputSchema.shape,
32
32
  annotations: { readOnlyHint: true },
33
33
  run(input, ctx) {
34
+ const adaptationGuidance = `## How to use these examples
35
+ These are real source and may include demo scaffolding such as content objects, fixture imports, CSS-module class names, repo-relative imports, or Storybook argument spreads. Adapt the copy, assets, and imports while preserving component composition and gridline geometry. Use built-in gridline variants or props when available. When a grouped Card or Pillar example includes companion CSS, carry its page-width frame and cell rules with the JSX.`;
34
36
  const goal = input.goal?.trim() || 'landing page';
35
37
  const genericPageTerms = new Set([
36
38
  'feature',
@@ -88,7 +90,7 @@ export const primerBrandExamplesTool = {
88
90
  const useDefaultRecipe = isPageGoal && specificRecipes.length === 0 && Boolean(defaultRecipe);
89
91
  const matchedRecipes = specificRecipes.length > 0 ? specificRecipes : useDefaultRecipe && defaultRecipe ? [defaultRecipe] : [];
90
92
  const topRecipe = matchedRecipes[0];
91
- const sections = [`# Examples for "${goal}"`];
93
+ const sections = [`# Examples for "${goal}"`, adaptationGuidance];
92
94
  if (topRecipe) {
93
95
  const otherRecipes = matchedRecipes.slice(1);
94
96
  const also = otherRecipes.length
@@ -96,7 +98,7 @@ export const primerBrandExamplesTool = {
96
98
  : '';
97
99
  sections.push([
98
100
  `## Full-page template — ${useDefaultRecipe ? 'default FlexSuite overview recipe source' : 'goal-matched recipe source'}: ${topRecipe.title}`,
99
- `This is the **actual current-brand recipe source** from \`@primer/react-brand\`, wired for our demo harness: a \`content\` object supplies the copy, imagery comes from internal fixtures, styling uses internal CSS-module class names, and imports are repo-relative. Ignore that scaffolding — mirror the page structure and gridline composition, then use the goal-specific component examples below for deeper context.${also}`,
101
+ `This is the **actual current-brand recipe source** from \`@primer/react-brand\`. Use it for overall page composition, then use the goal-specific component examples below for deeper context.${also}`,
100
102
  `\`\`\`tsx\n${topRecipe.source}\n\`\`\``,
101
103
  ].join('\n\n'));
102
104
  }
@@ -1 +1 @@
1
- {"version":3,"file":"primer-brand-examples.js","sourceRoot":"","sources":["../../../src/tools/primer-brand-examples/primer-brand-examples.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"primer-brand-examples.js","sourceRoot":"","sources":["../../../src/tools/primer-brand-examples/primer-brand-examples.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,10 @@ import { fileURLToPath } from 'node:url';
3
3
  import { z } from 'zod';
4
4
  import { versionNote } from '../format.js';
5
5
  const inputSchema = z.object({});
6
- const description = `Page-design patterns to read before building a page: how to structure and style a full marketing/landing page and use components together correctly (frame with \`SubdomainNavBar\` + \`MinimalFooter\`, give heroes media, group cards inside connected gridlines, keep labels auto-width, bias to the gridline aesthetic) plus the current-brand reference templates to start from. Learn individual component APIs with \`primer_brand_docs\` / \`primer_brand_component\` — this is the page-design layer above them. These conventions \`primer_brand_review\` does not enforce.`;
6
+ const description = `Read before building a Primer Brand marketing or landing page.
7
+ Returns page-level composition guidance and current-brand reference templates for combining components.
8
+ Use \`primer_brand_docs\` or \`primer_brand_component\` for individual component APIs.
9
+ These visual conventions are not fully enforced by \`primer_brand_review\`.`;
7
10
  const guidancePath = fileURLToPath(new URL('../../../content/page-design.md', import.meta.url));
8
11
  export const primerPageDesignTool = {
9
12
  name: 'primer_brand_page_design',
@@ -1 +1 @@
1
- {"version":3,"file":"primer-brand-page-design.js","sourceRoot":"","sources":["../../../src/tools/primer-brand-page-design/primer-brand-page-design.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,SAAS,CAAA;AACpC,OAAO,EAAC,aAAa,EAAC,MAAM,UAAU,CAAA;AAEtC,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAA;AAErB,OAAO,EAAC,WAAW,EAAC,MAAM,cAAc,CAAA;AAGxC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;AAIhC,MAAM,WAAW,GAAG,ujBAAujB,CAAA;AAE3kB,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,iCAAiC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AAE/F,MAAM,CAAC,MAAM,oBAAoB,GAAsB;IACrD,IAAI,EAAE,0BAA0B;IAChC,KAAK,EAAE,sBAAsB;IAC7B,WAAW;IACX,UAAU,EAAE,WAAW,CAAC,KAAK;IAC7B,WAAW,EAAE,EAAC,YAAY,EAAE,IAAI,EAAC;IACjC,GAAG,CAAC,MAAM,EAAE,GAAgB;QAC1B,MAAM,QAAQ,GAAG,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAA;QAC1D,MAAM,kBAAkB,GAAG,GAAG,CAAC,cAAc,CAAC,SAAS;YACrD,CAAC,CAAC;;;;urBAI+qB;YACjrB,CAAC,CAAC,EAAE,CAAA;QACN,OAAO,EAAC,IAAI,EAAE,GAAG,QAAQ,GAAG,kBAAkB,OAAO,WAAW,CAAC,GAAG,CAAC,EAAE,EAAC,CAAA;IAC1E,CAAC;CACF,CAAA"}
1
+ {"version":3,"file":"primer-brand-page-design.js","sourceRoot":"","sources":["../../../src/tools/primer-brand-page-design/primer-brand-page-design.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,SAAS,CAAA;AACpC,OAAO,EAAC,aAAa,EAAC,MAAM,UAAU,CAAA;AAEtC,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAA;AAErB,OAAO,EAAC,WAAW,EAAC,MAAM,cAAc,CAAA;AAGxC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;AAIhC,MAAM,WAAW,GAAG;;;4EAGwD,CAAA;AAE5E,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,iCAAiC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AAE/F,MAAM,CAAC,MAAM,oBAAoB,GAAsB;IACrD,IAAI,EAAE,0BAA0B;IAChC,KAAK,EAAE,sBAAsB;IAC7B,WAAW;IACX,UAAU,EAAE,WAAW,CAAC,KAAK;IAC7B,WAAW,EAAE,EAAC,YAAY,EAAE,IAAI,EAAC;IACjC,GAAG,CAAC,MAAM,EAAE,GAAgB;QAC1B,MAAM,QAAQ,GAAG,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAA;QAC1D,MAAM,kBAAkB,GAAG,GAAG,CAAC,cAAc,CAAC,SAAS;YACrD,CAAC,CAAC;;;;urBAI+qB;YACjrB,CAAC,CAAC,EAAE,CAAA;QACN,OAAO,EAAC,IAAI,EAAE,GAAG,QAAQ,GAAG,kBAAkB,OAAO,WAAW,CAAC,GAAG,CAAC,EAAE,EAAC,CAAA;IAC1E,CAAC;CACF,CAAA"}
@@ -7,12 +7,14 @@ const inputSchema = z.object({
7
7
  .describe('Your COMPLETE output to check: the JSX/TSX AND all CSS/stylesheets together. Include App.css and any *.module.css — hardcoded px/hex usually live there.'),
8
8
  filename: z.string().optional().describe('Optional filename, used only to label the report.'),
9
9
  });
10
- const description = `The final on-brand gate. Before you finish, paste your COMPLETE output in one call — the JSX/TSX AND
11
- every stylesheet (App.css, *.module.css, styled blocks) together — because hardcoded sizes/colors and raw HTML most often
12
- hide in CSS. Flags non-compliant components or sub-components, invalid prop values, headings left at their oversized default
13
- (a \`Heading\` with no explicit \`size\`), raw HTML where a brand component exists, hardcoded colors/sizes that should be tokens,
14
- and off-brand visual tells (purple gradients, pill buttons, glassmorphism, placeholder copy). Run it on everything you wrote and
15
- fix what it reports rather than guessing.`;
10
+ const description = `The final on-brand gate.
11
+ Before you finish, paste your COMPLETE output in one call — the JSX/TSX AND every stylesheet
12
+ (App.css, *.module.css, styled blocks) together — because hardcoded sizes/colors and raw HTML most often hide in CSS.
13
+ Flags non-compliant components or sub-components, invalid prop values,
14
+ headings left at their oversized default (a \`Heading\` with no explicit \`size\`),
15
+ raw HTML where a brand component exists, hardcoded colors/sizes that should be tokens,
16
+ and off-brand visual tells (purple gradients, pill buttons, glassmorphism, placeholder copy).
17
+ Run it on everything you wrote and fix what it reports rather than guessing.`;
16
18
  export const primerBrandReviewTool = {
17
19
  name: 'primer_brand_review',
18
20
  title: 'Review code against Primer Brand',
@@ -1 +1 @@
1
- {"version":3,"file":"primer-brand-review.js","sourceRoot":"","sources":["../../../src/tools/primer-brand-review/primer-brand-review.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"primer-brand-review.js","sourceRoot":"","sources":["../../../src/tools/primer-brand-review/primer-brand-review.ts"],"names":[],"mappings":"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"}
@@ -2,10 +2,13 @@ import { z } from 'zod';
2
2
  import type { ToolModule } from '../types.js';
3
3
  declare const inputSchema: z.ZodObject<{
4
4
  framework: z.ZodDefault<z.ZodOptional<z.ZodEnum<["auto", "next-app", "next-pages", "vite", "astro", "remix"]>>>;
5
+ projectDir: z.ZodOptional<z.ZodString>;
5
6
  }, "strip", z.ZodTypeAny, {
6
7
  framework: "next-app" | "next-pages" | "vite" | "astro" | "remix" | "auto";
8
+ projectDir?: string | undefined;
7
9
  }, {
8
10
  framework?: "next-app" | "next-pages" | "vite" | "astro" | "remix" | "auto" | undefined;
11
+ projectDir?: string | undefined;
9
12
  }>;
10
13
  type Input = z.infer<typeof inputSchema>;
11
14
  export declare const primerBrandSetupTool: ToolModule<Input>;
@@ -1,5 +1,8 @@
1
1
  import { z } from 'zod';
2
- import { detectFramework } from '../../brand/detect-framework.js';
2
+ import { relative } from 'node:path';
3
+ import { detectFramework } from '../../brand/detect-framework/detect-framework.js';
4
+ import { resolveBrandProject, } from '../../brand/resolve-brand-project/resolve-brand-project.js';
5
+ import { updateAgentsMd } from '../../brand/update-agents-md/update-agents-md.js';
3
6
  import { versionNote } from '../format.js';
4
7
  const fence = '```';
5
8
  const inputSchema = z.object({
@@ -8,8 +11,15 @@ const inputSchema = z.object({
8
11
  .optional()
9
12
  .default('auto')
10
13
  .describe('Target framework. "auto" detects it from the project; override if detection is wrong.'),
14
+ projectDir: z
15
+ .string()
16
+ .min(1)
17
+ .optional()
18
+ .describe('Workspace-relative package folder whose package.json declares @primer/react-brand. Set this when several workspace packages declare it.'),
11
19
  });
12
- const description = `Set up the Primer Brand (@primer/react-brand) foundation that agents routinely forget: the ThemeProvider at the app root, the Mona Sans font import, the correct style import, and the \`'use client'\` boundary for React Server Components. Detects the framework (Next App/Pages, Vite, Astro, Remix) and returns tailored, copy-ready setup. Call this once before building a Primer Brand page.`;
20
+ const description = `Set up Primer Brand in an existing React project.
21
+ Call once before building a page; detects or accepts the framework and returns tailored root setup.
22
+ Also updates \`AGENTS.md\` in the package that declares \`@primer/react-brand\` so future agents use Primer Brand tools and local docs.`;
13
23
  const STATIC = {
14
24
  'next-app': { label: 'Next.js (App Router)', rsc: true },
15
25
  'next-pages': { label: 'Next.js (Pages Router)', rsc: false },
@@ -95,12 +105,48 @@ import {ThemeProvider} from '@primer/react-brand/esm'
95
105
  <ThemeProvider>
96
106
  <App />
97
107
  </ThemeProvider>`;
98
- function build(id, ctx) {
108
+ function build(id, ctx, agentsMd) {
99
109
  const { label, rsc } = STATIC[id];
100
110
  const snippet = id === 'unknown' ? GENERIC_SNIPPET : ROOT_SNIPPETS[id];
101
111
  const rscNote = rsc
102
112
  ? `\n\n> **RSC boundary:** \`ThemeProvider\` uses React context, so it must live in a \`'use client'\` component (the \`Providers\` wrapper above). It cannot go directly in the server-rendered \`layout.tsx\`.`
103
113
  : '';
114
+ const agentsMdResult = (() => {
115
+ switch (agentsMd.action) {
116
+ case 'created':
117
+ return 'Created `AGENTS.md` beside the selected package.json with local docs routing instructions.';
118
+ case 'updated':
119
+ return 'Updated the managed Primer Brand instructions beside the selected package.json; existing content was preserved.';
120
+ case 'unchanged':
121
+ return 'The selected package already has the current managed Primer Brand instructions in `AGENTS.md`.';
122
+ case 'skipped':
123
+ if (agentsMd.reason === 'ambiguous-brand-project') {
124
+ const candidates = agentsMd.candidates
125
+ ?.map(candidate => {
126
+ const relativeCandidate = ctx.workspaceDir ? relative(ctx.workspaceDir, candidate) : candidate;
127
+ return relativeCandidate || '.';
128
+ })
129
+ .join(', ');
130
+ return `Skipped \`AGENTS.md\`: multiple package.json files declare \`@primer/react-brand\`${candidates ? ` (${candidates})` : ''}. Rerun \`primer_brand_setup\` with \`projectDir\` set to the intended package folder.`;
131
+ }
132
+ if (agentsMd.reason === 'invalid-brand-project') {
133
+ return 'Skipped `AGENTS.md`: `projectDir` must identify a folder inside the workspace whose package.json declares `@primer/react-brand`.';
134
+ }
135
+ if (agentsMd.reason === 'brand-package-not-found') {
136
+ return 'Skipped `AGENTS.md`: no package.json declaring `@primer/react-brand` was found in the workspace.';
137
+ }
138
+ if (agentsMd.reason === 'incorrect-filename-case') {
139
+ return 'Skipped `AGENTS.md`: rename the existing case-insensitive match to exactly `AGENTS.md`, then rerun setup.';
140
+ }
141
+ if (agentsMd.reason === 'malformed-managed-block') {
142
+ return 'Skipped `AGENTS.md`: the Primer Brand managed markers are malformed or duplicated; repair or remove that block, then rerun setup.';
143
+ }
144
+ if (agentsMd.reason === 'unsafe-agents-path') {
145
+ return 'Skipped `AGENTS.md`: the existing path is a symbolic link or resolves outside the selected package. Replace it with a regular file inside the package, then rerun setup.';
146
+ }
147
+ return 'Skipped `AGENTS.md`: no project root was detected.';
148
+ }
149
+ })();
104
150
  return [
105
151
  `# Set up Primer Brand — ${label}`,
106
152
  `## 1. Install\n${fence}bash\nnpm install @primer/react-brand\n${fence}`,
@@ -109,6 +155,7 @@ function build(id, ctx) {
109
155
  `## 4. Styles\nImporting components from \`@primer/react-brand/esm\` auto-includes each component's styles. **Do not also import \`@primer/react-brand/lib/css/main.css\`** — that is the non-ESM path, and mixing the two double-loads styles.`,
110
156
  `## 5. Build the page\n- \`primer_brand_page_design\` first for page-design patterns and the current-brand reference templates to start from\n- \`primer_brand_examples\` for a correct starting composition, then \`primer_brand_component\` for exact props\n- \`primer_brand_tokens\` / \`primer_brand_asset\` for colors, spacing, and icons\n- \`primer_brand_review\` on your complete output — JSX and CSS together — before you finish`,
111
157
  `## 6. Header & footer\nFor a global header use \`SubdomainNavBar\`; for the footer use \`MinimalFooter\`. Don't hand-roll a \`<header>\`, \`<nav>\`, or \`<footer>\` — call \`primer_brand_component\` with "SubdomainNavBar" or "MinimalFooter" for their APIs.`,
158
+ `## 7. Add/update AGENTS.md pointer\n${agentsMdResult}`,
112
159
  versionNote(ctx),
113
160
  ].join('\n\n');
114
161
  }
@@ -117,10 +164,23 @@ export const primerBrandSetupTool = {
117
164
  title: 'Set up Primer Brand in a project',
118
165
  description,
119
166
  inputShape: inputSchema.shape,
120
- annotations: { readOnlyHint: true },
167
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: false },
121
168
  run(input, ctx) {
122
- const id = input.framework === 'auto' ? detectFramework().id : input.framework;
123
- return { text: build(id, ctx) };
169
+ const brandProject = resolveBrandProject(ctx.workspaceDir, input.projectDir);
170
+ const id = input.framework === 'auto'
171
+ ? brandProject.projectDir
172
+ ? detectFramework(brandProject.projectDir).id
173
+ : ctx.framework.id
174
+ : input.framework;
175
+ const agentsMd = brandProject.projectDir
176
+ ? updateAgentsMd(brandProject.projectDir)
177
+ : {
178
+ action: 'skipped',
179
+ path: null,
180
+ reason: brandProject.reason,
181
+ candidates: brandProject.candidates,
182
+ };
183
+ return { text: build(id, ctx, agentsMd) };
124
184
  },
125
185
  };
126
186
  //# sourceMappingURL=primer-brand-setup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"primer-brand-setup.js","sourceRoot":"","sources":["../../../src/tools/primer-brand-setup/primer-brand-setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAA;AAErB,OAAO,EAAC,eAAe,EAAmB,MAAM,iCAAiC,CAAA;AACjF,OAAO,EAAC,WAAW,EAAC,MAAM,cAAc,CAAA;AAGxC,MAAM,KAAK,GAAG,KAAK,CAAA;AAEnB,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,SAAS,EAAE,CAAC;SACT,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;SAClE,QAAQ,EAAE;SACV,OAAO,CAAC,MAAM,CAAC;SACf,QAAQ,CAAC,uFAAuF,CAAC;CACrG,CAAC,CAAA;AAIF,MAAM,WAAW,GAAG,sYAAsY,CAAA;AAE1Z,MAAM,MAAM,GAAuD;IACjE,UAAU,EAAE,EAAC,KAAK,EAAE,sBAAsB,EAAE,GAAG,EAAE,IAAI,EAAC;IACtD,YAAY,EAAE,EAAC,KAAK,EAAE,wBAAwB,EAAE,GAAG,EAAE,KAAK,EAAC;IAC3D,IAAI,EAAE,EAAC,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,KAAK,EAAC;IACzC,KAAK,EAAE,EAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAC;IACnC,KAAK,EAAE,EAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAC;IACnC,OAAO,EAAE,EAAC,KAAK,EAAE,iBAAiB,EAAE,GAAG,EAAE,KAAK,EAAC;CAChD,CAAA;AAED,MAAM,aAAa,GAAoD;IACrE,UAAU,EAAE;;;;;;;;;;;;;;;;;;;;EAoBZ;IACA,YAAY,EAAE;;;;;;;;;;;EAWd;IACA,IAAI,EAAE;;;;;;;;;;;;;EAaN;IACA,KAAK,EAAE;;;;;;;;;;;EAWP;IACA,KAAK,EAAE;;;;;;;;yEAQgE;CACxE,CAAA;AAED,MAAM,eAAe,GAAG;;;;;;iBAMP,CAAA;AAEjB,SAAS,KAAK,CAAC,EAAe,EAAE,GAAgB;IAC9C,MAAM,EAAC,KAAK,EAAE,GAAG,EAAC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;IAC/B,MAAM,OAAO,GAAG,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAA;IAEtE,MAAM,OAAO,GAAG,GAAG;QACjB,CAAC,CAAC,+MAA+M;QACjN,CAAC,CAAC,EAAE,CAAA;IAEN,OAAO;QACL,2BAA2B,KAAK,EAAE;QAClC,kBAAkB,KAAK,0CAA0C,KAAK,EAAE;QACxE,oDAAoD,KAAK,QAAQ,OAAO,KAAK,KAAK,GAAG,OAAO,mHAAmH;QAC/M,qJAAqJ;QACrJ,gPAAgP;QAChP,+aAA+a;QAC/a,kQAAkQ;QAClQ,WAAW,CAAC,GAAG,CAAC;KACjB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;AAChB,CAAC;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAsB;IACrD,IAAI,EAAE,oBAAoB;IAC1B,KAAK,EAAE,kCAAkC;IACzC,WAAW;IACX,UAAU,EAAE,WAAW,CAAC,KAAK;IAC7B,WAAW,EAAE,EAAC,YAAY,EAAE,IAAI,EAAC;IACjC,GAAG,CAAC,KAAK,EAAE,GAAG;QACZ,MAAM,EAAE,GAAgB,KAAK,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAA;QAC3F,OAAO,EAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,EAAC,CAAA;IAC/B,CAAC;CACF,CAAA"}
1
+ {"version":3,"file":"primer-brand-setup.js","sourceRoot":"","sources":["../../../src/tools/primer-brand-setup/primer-brand-setup.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,8 @@ const inputSchema = z.object({
13
13
  .describe('Filter by token category, matched against token names: e.g. "color", "canvas", "size", "spacing", "border", "radius", "font". Combine with query to narrow.'),
14
14
  limit: z.number().int().min(1).max(50).optional().default(15).describe('Max results.'),
15
15
  });
16
- const description = `Resolve Primer Brand design tokens to CSS variables and values, searching by intent. Use these CSS variables instead of hardcoded hex/px so pages adapt across light and dark themes.`;
16
+ const description = `Resolve Primer Brand design tokens to CSS variables and values, searching by intent.
17
+ Use these CSS variables instead of hardcoded hex/px so pages adapt across light and dark themes.`;
17
18
  /**
18
19
  * Maps colloquial words to the vocabulary that actually appears in Primer Brand token names, so
19
20
  * intent-based queries and the `group` facet resolve to real tokens. Only genuine translations
@@ -1 +1 @@
1
- {"version":3,"file":"primer-brand-tokens.js","sourceRoot":"","sources":["../../../src/tools/primer-brand-tokens/primer-brand-tokens.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"primer-brand-tokens.js","sourceRoot":"","sources":["../../../src/tools/primer-brand-tokens/primer-brand-tokens.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,16 @@
1
1
  import type { ZodRawShape } from 'zod';
2
- import type { BrandInstall } from '../brand/resolve-install.js';
3
- import type { DocsSource } from '../brand/docs-source.js';
2
+ import type { BrandInstall } from '../brand/resolve-install/resolve-install.js';
3
+ import type { FrameworkInfo } from '../brand/detect-framework/detect-framework.js';
4
+ import type { DocsSource } from '../brand/docs-source/docs-source.js';
4
5
  import type { Catalog, CatalogAsset } from '../catalog/types.js';
5
6
  import type { Logger } from '../logger.js';
6
7
  /** Dependencies shared by every tool, assembled once when the server starts. */
7
8
  export type ToolContext = {
8
9
  catalog: Catalog;
9
10
  brand: BrandInstall;
11
+ /** Directory where the MCP server was started; bounds workspace-scoped file discovery. */
12
+ workspaceDir: string | null;
13
+ framework: FrameworkInfo;
10
14
  docs: DocsSource;
11
15
  logger: Logger;
12
16
  /** Icons + illustrations, preferring the consumer's installed packages over the baked snapshot. */
@@ -22,10 +26,19 @@ export type ToolResult = {
22
26
  };
23
27
  export type ToolAnnotations = {
24
28
  readOnlyHint?: boolean;
29
+ destructiveHint?: boolean;
30
+ idempotentHint?: boolean;
31
+ openWorldHint?: boolean;
25
32
  };
26
33
  export type ToolModule<Input = unknown> = {
27
34
  name: string;
28
35
  title: string;
36
+ /**
37
+ * This is discovery metadata shown before tool invocation.
38
+ * Should describe when and why to call the tool, its scope,
39
+ * adjacent tools, and important limitations. Put the actual guidance,
40
+ * rules and implementation detail in the tool output, not here.
41
+ */
29
42
  description: string;
30
43
  inputShape: ZodRawShape;
31
44
  annotations: ToolAnnotations;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@primer/brand-mcp",
3
- "version": "0.73.0",
3
+ "version": "0.74.0-rc.817e3cc4",
4
4
  "description": "MCP (Model Context Protocol) server that helps AI agents use Primer Brand (@primer/react-brand) correctly when building GitHub marketing and landing pages.",
5
5
  "keywords": [
6
6
  "primer",
@@ -1 +0,0 @@
1
- {"version":3,"file":"detect-asset-generator.js","sourceRoot":"","sources":["../../src/brand/detect-asset-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,SAAS,CAAA;AAClC,OAAO,EAAC,SAAS,EAAE,IAAI,EAAC,MAAM,WAAW,CAAA;AAEzC,MAAM,QAAQ,GAAG,qBAAqB,CAAA;AAEtC;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAyB,OAAO,CAAC,GAAG;IAGvE,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,EAAE,CAAA;IAC5C,IAAI,CAAC,SAAS;QAAE,OAAO,EAAC,SAAS,EAAE,KAAK,EAAC,CAAA;IAEzC,MAAM,iBAAiB,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACxE,MAAM,UAAU,GAAG,CAAC,QAAQ,EAAE,GAAG,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,QAAQ,GAAG,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAA;IAE7G,KAAK,MAAM,SAAS,IAAI,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QACnD,IAAI,CAAC,SAAS;YAAE,SAAQ;QACxB,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;YAAE,OAAO,EAAC,SAAS,EAAE,IAAI,EAAC,CAAA;IAC1F,CAAC;IACD,OAAO,EAAC,SAAS,EAAE,KAAK,EAAC,CAAA;AAC3B,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"detect-framework.js","sourceRoot":"","sources":["../../src/brand/detect-framework.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,YAAY,EAAC,MAAM,SAAS,CAAA;AAChD,OAAO,EAAC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAC,MAAM,WAAW,CAAA;AAY5C;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,UAAkB,OAAO,CAAC,GAAG,EAAE;IAC7D,wFAAwF;IACxF,IAAI,UAAU,GAAkB,IAAI,CAAA;IACpC,KAAK,IAAI,GAAG,GAAG,OAAO,IAAM,CAAC;QAC3B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;YACtF,UAAU,GAAG,GAAG,CAAA;YAChB,MAAK;QACP,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;QAC3B,IAAI,MAAM,KAAK,GAAG;YAAE,MAAK;QACzB,GAAG,GAAG,MAAM,CAAA;IACd,CAAC;IACD,IAAI,CAAC,UAAU;QAAE,OAAO,EAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,iBAAiB,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAC,CAAA;IAE/F,yFAAyF;IACzF,IAAI,IAAI,GAA2B,EAAE,CAAA;IACrC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAG/E,CAAA;QACD,IAAI,GAAG,EAAC,GAAG,MAAM,CAAC,YAAY,EAAE,GAAG,MAAM,CAAC,eAAe,EAAC,CAAA;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,4BAA4B;IAC9B,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;QACnG,OAAO,SAAS;YACd,CAAC,CAAC,EAAC,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,sBAAsB,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAC;YACxE,CAAC,CAAC,EAAC,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,wBAAwB,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAC,CAAA;IACjF,CAAC;IACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACxD,OAAO,EAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAC,CAAA;IAC9D,CAAC;IACD,IAAI,IAAI,CAAC,KAAK;QAAE,OAAO,EAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAC,CAAA;IAC5E,IAAI,IAAI,CAAC,IAAI;QAAE,OAAO,EAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAC,CAAA;IACjF,OAAO,EAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,iBAAiB,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAC,CAAA;AAC1E,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"docs-source.js","sourceRoot":"","sources":["../../src/brand/docs-source.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolve-assets.js","sourceRoot":"","sources":["../../src/brand/resolve-assets.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolve-install.js","sourceRoot":"","sources":["../../src/brand/resolve-install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,YAAY,EAAC,MAAM,SAAS,CAAA;AAChD,OAAO,EAAC,OAAO,EAAE,IAAI,EAAC,MAAM,WAAW,CAAA;AAevC,MAAM,QAAQ,GAAiB;IAC7B,KAAK,EAAE,KAAK;IACZ,OAAO,EAAE,IAAI;IACb,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,IAAI;CACf,CAAA;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,UAAkB,OAAO,CAAC,GAAG,EAAE;IACjE,IAAI,GAAG,GAAG,OAAO,CAAA;IAEjB,MAAM,WAAW,GAAG,CAAC,eAAuB,EAAiB,EAAE;QAC7D,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAuB,CAAA;YACtF,OAAO,MAAM,CAAC,OAAO,IAAI,IAAI,CAAA;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,qFAAqF;YACrF,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC,CAAA;IAED,SAAS,CAAC;QACR,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,SAAS,EAAE,aAAa,CAAC,CAAA;QACtE,IAAI,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;YACjD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;YACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;YAC7C,OAAO;gBACL,KAAK,EAAE,IAAI;gBACX,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;gBACtD,UAAU;gBACV,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;gBAC7C,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI;aACjD,CAAA;QACH,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;QAC3B,IAAI,MAAM,KAAK,GAAG;YAAE,OAAO,QAAQ,CAAA;QACnC,GAAG,GAAG,MAAM,CAAA;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,UAAkB,OAAO,CAAC,GAAG,EAAE;IACrE,IAAI,mBAAmB,CAAC,OAAO,CAAC,CAAC,KAAK;QAAE,OAAO,KAAK,CAAA;IACpD,IAAI,GAAG,GAAG,OAAO,CAAA;IACjB,SAAS,CAAC;QACR,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;YAAE,OAAO,IAAI,CAAA;QAC1F,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;QAC3B,IAAI,MAAM,KAAK,GAAG;YAAE,OAAO,KAAK,CAAA;QAChC,GAAG,GAAG,MAAM,CAAA;IACd,CAAC;AACH,CAAC"}