@nanisoft/prism-llms 0.3.0 → 0.5.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 +88 -0
- package/THIRD-PARTY-NOTICES.md +48 -0
- package/dist/data.json +3998 -375
- package/dist/demo-graph.d.ts +21 -12
- package/dist/demo-graph.js +37 -21
- package/dist/extractor.d.ts +24 -17
- package/dist/extractor.js +269 -153
- package/dist/index.d.ts +12 -7
- package/dist/index.js +9 -7
- package/dist/llms-full.txt +7988 -1989
- package/dist/llms.txt +97 -91
- package/dist/markdown.d.ts +69 -23
- package/dist/markdown.js +131 -72
- package/dist/md/blocks/app-shell-01.md +135 -0
- package/dist/md/blocks/auth-form-01.md +135 -0
- package/dist/md/blocks/cta-01.md +88 -0
- package/dist/md/blocks/data-table-01.md +196 -0
- package/dist/md/blocks/feature-grid-01.md +92 -0
- package/dist/md/blocks/hero-01.md +90 -0
- package/dist/md/blocks/instrument-panel-01.md +109 -0
- package/dist/md/blocks/logo-strip-01.md +97 -0
- package/dist/md/blocks/note-grid-01.md +102 -0
- package/dist/md/blocks/page-header-01.md +97 -0
- package/dist/md/blocks/pricing-01.md +91 -0
- package/dist/md/blocks/process-rail-01.md +106 -0
- package/dist/md/blocks/product-grid-01.md +113 -0
- package/dist/md/blocks/settings-panel-01.md +148 -0
- package/dist/md/blocks/site-footer.md +111 -0
- package/dist/md/blocks/site-header.md +119 -0
- package/dist/md/blocks/stack-grid-01.md +108 -0
- package/dist/md/blocks/stats-01.md +89 -0
- package/dist/md/blocks/status-ledger-01.md +121 -0
- package/dist/md/changelogs/prism-llms.md +206 -0
- package/dist/md/changelogs/prism-mcp-server.md +88 -0
- package/dist/md/changelogs/prism-tokens.md +126 -0
- package/dist/md/changelogs/prism-ui.md +429 -0
- package/dist/md/components/accordion.md +108 -0
- package/dist/md/components/alert.md +90 -7
- package/dist/md/components/avatar.md +89 -7
- package/dist/md/components/badge.md +74 -7
- package/dist/md/components/breadcrumb.md +84 -7
- package/dist/md/components/button.md +90 -7
- package/dist/md/components/card.md +90 -7
- package/dist/md/components/checkbox.md +101 -7
- package/dist/md/components/cta-link.md +98 -0
- package/dist/md/components/diagram.md +124 -0
- package/dist/md/components/dialog.md +128 -0
- package/dist/md/components/dropdown-menu.md +125 -0
- package/dist/md/components/fact-list.md +85 -0
- package/dist/md/components/field.md +116 -0
- package/dist/md/components/input.md +86 -7
- package/dist/md/components/kbd.md +77 -0
- package/dist/md/components/pagination.md +95 -7
- package/dist/md/components/popover.md +95 -7
- package/dist/md/components/product-mark.md +123 -0
- package/dist/md/components/product-switcher.md +88 -0
- package/dist/md/components/progress.md +88 -7
- package/dist/md/components/prose.md +91 -0
- package/dist/md/components/radio-group.md +111 -0
- package/dist/md/components/section.md +91 -0
- package/dist/md/components/select.md +143 -7
- package/dist/md/components/separator.md +77 -0
- package/dist/md/components/skeleton.md +71 -7
- package/dist/md/components/slider.md +90 -7
- package/dist/md/components/switch.md +104 -7
- package/dist/md/components/table.md +104 -7
- package/dist/md/components/tabs.md +105 -7
- package/dist/md/components/textarea.md +101 -0
- package/dist/md/components/tooltip.md +95 -7
- package/dist/md/components/typography.md +82 -7
- package/dist/md/content/about-content.md +36 -0
- package/dist/md/content/audience.md +43 -0
- package/dist/md/content/glossary.md +69 -0
- package/dist/md/content/product-vocabulary.md +53 -0
- package/dist/md/content/voice.md +52 -0
- package/dist/md/content/writing-mechanics.md +58 -0
- package/dist/md/foundation/colors.md +10 -0
- package/dist/md/foundation/iconography.md +14 -0
- package/dist/md/foundation/motion.md +10 -0
- package/dist/md/foundation/radii.md +9 -0
- package/dist/md/foundation/shadows.md +9 -0
- package/dist/md/foundation/spacings.md +8 -0
- package/dist/md/foundation/typography.md +9 -0
- package/dist/md/foundation/variables.md +9 -0
- package/dist/md/overview/architecture.md +76 -0
- package/dist/md/overview/brand.md +41 -0
- package/dist/md/overview/composition.md +77 -0
- package/dist/md/overview/quickstart.md +97 -0
- package/dist/md/overview/theming.md +89 -0
- package/dist/md/overview/using-llms.md +83 -0
- package/dist/md/pages/auth-page.md +149 -0
- package/dist/md/pages/blog-post-page.md +136 -0
- package/dist/md/pages/dashboard-page.md +241 -0
- package/dist/md/pages/marketing-page.md +199 -0
- package/dist/md/pages/not-found-page.md +105 -0
- package/dist/md/pages/settings-page.md +206 -0
- package/dist/prism-skill.md +50 -0
- package/dist/store.d.ts +203 -0
- package/dist/store.js +317 -0
- package/package.json +29 -26
- package/dist/demo-graph.d.ts.map +0 -1
- package/dist/demo-graph.js.map +0 -1
- package/dist/extractor.d.ts.map +0 -1
- package/dist/extractor.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/markdown.d.ts.map +0 -1
- package/dist/markdown.js.map +0 -1
- package/dist/md/blocks/component-demo.md +0 -19
- package/dist/md/blocks/page-header.md +0 -19
- package/dist/md/components/affix.md +0 -14
- package/dist/md/components/anchor.md +0 -14
- package/dist/md/components/auto-complete.md +0 -14
- package/dist/md/components/back-top.md +0 -14
- package/dist/md/components/border-beam.md +0 -14
- package/dist/md/components/calendar.md +0 -14
- package/dist/md/components/carousel.md +0 -14
- package/dist/md/components/cascader.md +0 -14
- package/dist/md/components/col.md +0 -14
- package/dist/md/components/collapse.md +0 -14
- package/dist/md/components/color-picker.md +0 -14
- package/dist/md/components/date-picker.md +0 -14
- package/dist/md/components/descriptions.md +0 -14
- package/dist/md/components/display-title.md +0 -20
- package/dist/md/components/divider.md +0 -14
- package/dist/md/components/drawer.md +0 -14
- package/dist/md/components/dropdown.md +0 -14
- package/dist/md/components/empty.md +0 -14
- package/dist/md/components/flex.md +0 -14
- package/dist/md/components/float-button.md +0 -14
- package/dist/md/components/form.md +0 -14
- package/dist/md/components/grid.md +0 -14
- package/dist/md/components/image.md +0 -14
- package/dist/md/components/input-number.md +0 -14
- package/dist/md/components/layout.md +0 -14
- package/dist/md/components/list.md +0 -14
- package/dist/md/components/listy.md +0 -14
- package/dist/md/components/masonry.md +0 -14
- package/dist/md/components/mentions.md +0 -14
- package/dist/md/components/menu.md +0 -14
- package/dist/md/components/modal.md +0 -14
- package/dist/md/components/popconfirm.md +0 -14
- package/dist/md/components/qrcode.md +0 -14
- package/dist/md/components/radio.md +0 -14
- package/dist/md/components/rate.md +0 -14
- package/dist/md/components/result.md +0 -14
- package/dist/md/components/row.md +0 -14
- package/dist/md/components/segmented.md +0 -14
- package/dist/md/components/space.md +0 -14
- package/dist/md/components/spin.md +0 -14
- package/dist/md/components/splitter.md +0 -14
- package/dist/md/components/statistic.md +0 -14
- package/dist/md/components/steps.md +0 -14
- package/dist/md/components/tag.md +0 -14
- package/dist/md/components/time-picker.md +0 -14
- package/dist/md/components/timeline.md +0 -14
- package/dist/md/components/tour.md +0 -14
- package/dist/md/components/transfer.md +0 -14
- package/dist/md/components/tree-select.md +0 -14
- package/dist/md/components/tree.md +0 -14
- package/dist/md/components/upload.md +0 -14
- package/dist/md/components/watermark.md +0 -14
- package/dist/md/docs/brand.md +0 -41
- package/dist/md/pages/blog-layout.md +0 -19
- package/dist/md/pages/docs-shell.md +0 -23
- package/dist/md/theme/blue-dark.md +0 -127
- package/dist/md/theme/blue-light.md +0 -129
- package/dist/md/theme/green-dark.md +0 -127
- package/dist/md/theme/green-light.md +0 -129
- package/dist/md/theme/lavender-dark.md +0 -127
- package/dist/md/theme/lavender-light.md +0 -129
- package/dist/md/theme/peach-dark.md +0 -127
- package/dist/md/theme/peach-light.md +0 -129
- package/dist/md/theme/rose-dark.md +0 -127
- package/dist/md/theme/rose-light.md +0 -129
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
# StackGrid01
|
|
2
|
+
|
|
3
|
+
A survey of what a product is assembled from, and a second grid of what it built itself.
|
|
4
|
+
|
|
5
|
+
```tsx
|
|
6
|
+
import { StackGrid01 } from '@nanisoft/prism-ui/blocks/stack-grid-01'
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
## Overview
|
|
10
|
+
|
|
11
|
+
StackGrid01 is a survey of what a product is assembled from, and what it built
|
|
12
|
+
itself. The composed parts sit in one grid, each a name and a role; the in-house
|
|
13
|
+
work sits in a second grid, each a name and a line about it.
|
|
14
|
+
|
|
15
|
+
Three of the four NaniSoft sites publish this section, and each one drew it by
|
|
16
|
+
hand with the same two groups. Three of them also drew the second group
|
|
17
|
+
differently from the first - a dashed border, a different tile, a mark above the
|
|
18
|
+
name - because the visual difference is the claim: *this part is ours*.
|
|
19
|
+
|
|
20
|
+
That is what the `own` group is here. It is a separate prop and a separate grid
|
|
21
|
+
rather than a flag on the part, because the difference is a claim about provenance
|
|
22
|
+
and a claim is not a property of a row: a part that is assembled and a part that is
|
|
23
|
+
built are the same kind of thing with a different answer to "who wrote it".
|
|
24
|
+
|
|
25
|
+
## Guidelines
|
|
26
|
+
|
|
27
|
+
### When to use
|
|
28
|
+
|
|
29
|
+
Use StackGrid01 where a reader's question is "what is this made of" and the honest
|
|
30
|
+
answer is mostly other people's work with a few exceptions.
|
|
31
|
+
|
|
32
|
+
Use it when the exceptions are the point. If everything in the grid is composed,
|
|
33
|
+
drop `own` and use `NoteGrid01` instead: a second group with nothing in it is a
|
|
34
|
+
claim you have not made.
|
|
35
|
+
|
|
36
|
+
### When not to use
|
|
37
|
+
|
|
38
|
+
Do not use it for integrations the reader connects themselves. That is a
|
|
39
|
+
`ProductGrid01` of destinations, and a survey of parts is not a survey of things
|
|
40
|
+
you can turn on.
|
|
41
|
+
|
|
42
|
+
Do not use it where you cannot substantiate the in-house group. The block requires
|
|
43
|
+
`ownLabel` precisely because the group is a claim, and a claim nobody can check
|
|
44
|
+
is marketing.
|
|
45
|
+
|
|
46
|
+
### Best practices
|
|
47
|
+
|
|
48
|
+
- Pass the words you mean for the claim. Three of the four sites write three
|
|
49
|
+
different ones - "built in-house", "built by Nanisoft", "our own" - and the
|
|
50
|
+
block does not choose between them.
|
|
51
|
+
- Keep a role to a phrase. The grid is a survey of what a product stands on, not a
|
|
52
|
+
feature list, and a role that runs to a sentence turns a survey into prose.
|
|
53
|
+
- Order the composed parts by how much of the product they carry.
|
|
54
|
+
|
|
55
|
+
### Content guidelines
|
|
56
|
+
|
|
57
|
+
- Use each part's own name, as its authors spell it.
|
|
58
|
+
- Write a role as what the part does *here*, not as what the part is generally
|
|
59
|
+
capable of.
|
|
60
|
+
- Write a blurb as why it is not assembled. That is the question the group raises.
|
|
61
|
+
|
|
62
|
+
**Two groups: the parts it stands on, and the two it built itself.**
|
|
63
|
+
|
|
64
|
+
```tsx
|
|
65
|
+
import { StackGrid01 } from '@nanisoft/prism-ui/blocks/stack-grid-01'
|
|
66
|
+
|
|
67
|
+
/** Two groups: the parts it stands on, and the two it built itself. */
|
|
68
|
+
export default function StackGrid01Demo() {
|
|
69
|
+
return (
|
|
70
|
+
<StackGrid01
|
|
71
|
+
headingLevel="h3"
|
|
72
|
+
eyebrow="Preview"
|
|
73
|
+
title="How it is built"
|
|
74
|
+
description="Most of it is composition. Two things are not."
|
|
75
|
+
ownLabel="built in-house"
|
|
76
|
+
caption="Everything else in the factory is composition."
|
|
77
|
+
parts={[
|
|
78
|
+
{ name: 'Postgres', role: 'Storage' },
|
|
79
|
+
{ name: 'NATS', role: 'Queue' },
|
|
80
|
+
{ name: 'Docker', role: 'Isolation' },
|
|
81
|
+
{ name: 'OpenCode', role: 'The agent' },
|
|
82
|
+
]}
|
|
83
|
+
own={[
|
|
84
|
+
{ name: 'The orchestrator', blurb: 'Decides what runs next, and what waits.' },
|
|
85
|
+
{ name: 'The merge pipeline', blurb: 'Three review rounds, then auto-merge.' },
|
|
86
|
+
]}
|
|
87
|
+
/>
|
|
88
|
+
)
|
|
89
|
+
}
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## Props
|
|
93
|
+
|
|
94
|
+
**`eyebrow`** `string` · optional · default: — — Optional label above the section title. See the No-Default-Eyebrow Rule.
|
|
95
|
+
**`title`** `string` · optional · default: — — The section title. Omit it for a grid composed under its own heading.
|
|
96
|
+
**`description`** `string` · optional · default: — — One or two sentences under the title.
|
|
97
|
+
**`parts`** `readonly StackPart[]` · required · default: — — The parts the product is assembled from, in the order a reader should meet them. Order is the caller's because it is a claim about which part matters first.
|
|
98
|
+
**`own`** `readonly StackOwn[]` · optional · default: — — The things the product built itself, in the order a reader should meet them. Omit it for a product that assembled everything, and pass it when the claim is that some of the work is its own.
|
|
99
|
+
**`ownLabel`** `string` · optional · default: — — The label on the in-house group, which is the claim the group makes. Omit it when the group is titled by the section itself, and pass a word you mean: "built in-house", "built by Nanisoft" and "our own" are three different claims and the Block does not choose between them.
|
|
100
|
+
**`caption`** `string` · optional · default: — — The line under the grid, for the sentence that qualifies it: what is not here, or where to read the full list.
|
|
101
|
+
**`headingLevel`** `HeadingLevel` · optional · default: — — Heading level for the section title. See `HeadingLevel`.
|
|
102
|
+
**`className`** `string` · optional · default: — — Layout only, exactly as on every Component. Changing a Prism-owned visual property from here is prohibited.
|
|
103
|
+
|
|
104
|
+
## Composition
|
|
105
|
+
|
|
106
|
+
**`exports`** `StackGrid01` — the public runtime names this Block promises
|
|
107
|
+
**`source`** `packages/ui/src/blocks/stack-grid-01/index.tsx` — the file this Block is defined in
|
|
108
|
+
**`dependencies`** `Card, Section` — the public Prism exports this item composes
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# Stats01
|
|
2
|
+
|
|
3
|
+
A KPI row with optional directional deltas.
|
|
4
|
+
|
|
5
|
+
```tsx
|
|
6
|
+
import { Stats01 } from '@nanisoft/prism-ui/blocks/stats-01'
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
## Overview
|
|
10
|
+
|
|
11
|
+
Stats01 is a row of key figures. Each stat carries a label, a value, and
|
|
12
|
+
optionally a delta and a hint. The delta renders a direction and a percentage;
|
|
13
|
+
the hint names the period it compares against.
|
|
14
|
+
|
|
15
|
+
Every number is a prop. The block previously carried invented figures and a
|
|
16
|
+
hardcoded heading, which meant a consumer who installed it shipped fabricated
|
|
17
|
+
metrics into their own dashboard.
|
|
18
|
+
|
|
19
|
+
## Guidelines
|
|
20
|
+
|
|
21
|
+
### When to use
|
|
22
|
+
|
|
23
|
+
Use Stats01 to summarise two to four figures that a reader should compare at a
|
|
24
|
+
glance. It works best when the figures share a unit and a period.
|
|
25
|
+
|
|
26
|
+
### When not to use
|
|
27
|
+
|
|
28
|
+
Do not use it for a single figure. One stat in a four-column grid leaves an
|
|
29
|
+
awkward empty row and overstates the number's importance.
|
|
30
|
+
|
|
31
|
+
Do not use it for figures that need a trend over time. A delta is a comparison
|
|
32
|
+
between two points, not a series; use a chart for a series.
|
|
33
|
+
|
|
34
|
+
Do not use it when the numbers do not share a period. Mixing "this month" with
|
|
35
|
+
"this quarter" in one row invites a false comparison.
|
|
36
|
+
|
|
37
|
+
### Best practices
|
|
38
|
+
|
|
39
|
+
- Give every delta a hint. A percentage with no period is unreadable, because
|
|
40
|
+
the reader cannot tell what it compares against.
|
|
41
|
+
- Omit `delta` rather than passing `0` when a figure has no meaningful change.
|
|
42
|
+
A zero delta renders a neutral marker, which is correct only when the value
|
|
43
|
+
truly held.
|
|
44
|
+
- Keep the label short and the value exact. The reader is scanning, not reading.
|
|
45
|
+
- Use three or four stats. Two fits, one does not.
|
|
46
|
+
|
|
47
|
+
### Content guidelines
|
|
48
|
+
|
|
49
|
+
- A label is a noun phrase in sentence case: "Active projects".
|
|
50
|
+
- A hint names the comparison and the period: "vs last month", "vs last
|
|
51
|
+
quarter".
|
|
52
|
+
- Format the value for the reader: thousands separators, one unit, and no more
|
|
53
|
+
precision than the source supports.
|
|
54
|
+
|
|
55
|
+
**The KPI row, with one of each delta direction and one figure with none.**
|
|
56
|
+
|
|
57
|
+
```tsx
|
|
58
|
+
import { Stats01 } from '@nanisoft/prism-ui/blocks/stats-01'
|
|
59
|
+
|
|
60
|
+
/** The KPI row, with one of each delta direction and one figure with none. */
|
|
61
|
+
export default function Stats01Demo() {
|
|
62
|
+
return (
|
|
63
|
+
<Stats01
|
|
64
|
+
headingLevel="h3"
|
|
65
|
+
eyebrow="Preview"
|
|
66
|
+
title="Section heading"
|
|
67
|
+
stats={[
|
|
68
|
+
{ label: 'First metric', value: '1,284', delta: 12, hint: 'vs last month' },
|
|
69
|
+
{ label: 'Second metric', value: '47.2%', delta: -3, hint: 'vs last month' },
|
|
70
|
+
{ label: 'Third metric', value: '2.4d', delta: 0, hint: 'vs last quarter' },
|
|
71
|
+
{ label: 'Fourth metric', value: '138' },
|
|
72
|
+
]}
|
|
73
|
+
/>
|
|
74
|
+
)
|
|
75
|
+
}
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Props
|
|
79
|
+
|
|
80
|
+
**`eyebrow`** `string` · optional · default: —
|
|
81
|
+
**`title`** `string` · optional · default: —
|
|
82
|
+
**`stats`** `Stat[]` · required · default: —
|
|
83
|
+
**`headingLevel`** `HeadingLevel` · optional · default: — — Heading level for the section title. See `HeadingLevel`.
|
|
84
|
+
|
|
85
|
+
## Composition
|
|
86
|
+
|
|
87
|
+
**`exports`** `Stats01` — the public runtime names this Block promises
|
|
88
|
+
**`source`** `packages/ui/src/blocks/stats-01/index.tsx` — the file this Block is defined in
|
|
89
|
+
**`dependencies`** `Card, Section` — the public Prism exports this item composes
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
# StatusLedger01
|
|
2
|
+
|
|
3
|
+
A ledger of things and the state each is in: a name, one of four status tiers and the words for that tier.
|
|
4
|
+
|
|
5
|
+
```tsx
|
|
6
|
+
import { StatusLedger01 } from '@nanisoft/prism-ui/blocks/status-ledger-01'
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
## Overview
|
|
10
|
+
|
|
11
|
+
StatusLedger01 is a ledger of things and the state each is in: a hairline row per
|
|
12
|
+
entry, a mark for the tier, and the words for the state beside the name.
|
|
13
|
+
|
|
14
|
+
All four NaniSoft sites publish this section, and three of them publish it as a
|
|
15
|
+
ledger of rows while the fourth publishes the same shape as a list of products;
|
|
16
|
+
the ledger appears twice in the fourth site as well, once for use cases and once
|
|
17
|
+
for research directions. Five ledgers across four sites, each one written by hand,
|
|
18
|
+
each one re-deciding the same four things: which tier words to use, how the tier
|
|
19
|
+
is drawn, whether the tier is announced, and whether the row carries a detail
|
|
20
|
+
line or a bullet list.
|
|
21
|
+
|
|
22
|
+
**The tier is four and the words are the caller's.** The `status` prop takes one
|
|
23
|
+
of four tiers and the `statusLabel` prop takes the words. That split is the whole
|
|
24
|
+
design: the tier is a colour, and colour is not information a reader can act on;
|
|
25
|
+
the words are the information, and the words belong to the product.
|
|
26
|
+
|
|
27
|
+
The four tiers are `live`, `designed`, `planned` and `direction`. Between them the
|
|
28
|
+
four sites use eight different words for those four states - `live`, `available`
|
|
29
|
+
and `complete` all mean the first; `approved`, `specified` and `designed` all mean
|
|
30
|
+
the second - and that vocabulary is what `statusLabel` is for.
|
|
31
|
+
|
|
32
|
+
## Guidelines
|
|
33
|
+
|
|
34
|
+
### When to use
|
|
35
|
+
|
|
36
|
+
Use StatusLedger01 when a reader needs to know how far along each of several
|
|
37
|
+
things is, and the difference between the states is the point.
|
|
38
|
+
|
|
39
|
+
Use it when the states are not all the same. A ledger of four rows that are all
|
|
40
|
+
`live` is a list with a column in it, and a plain list says that more plainly.
|
|
41
|
+
|
|
42
|
+
### When not to use
|
|
43
|
+
|
|
44
|
+
Do not use it for a list of things that are all available. `NoteGrid01` is for
|
|
45
|
+
that, and a ledger of green dots is a decoration.
|
|
46
|
+
|
|
47
|
+
Do not use it for a plan with dates. A tier says where a thing stands, not when it
|
|
48
|
+
will move, and a ledger cannot say when.
|
|
49
|
+
|
|
50
|
+
Do not use it to compare products. A comparison has a row per product and a column
|
|
51
|
+
per fact, and this is the other way round.
|
|
52
|
+
|
|
53
|
+
### Best practices
|
|
54
|
+
|
|
55
|
+
- Order the rows by state, most available first, when the reader's question is
|
|
56
|
+
"what can I use". Order them by importance when it is not.
|
|
57
|
+
- Write `statusLabel` as the sentence you would say out loud. It is the state a
|
|
58
|
+
screen reader hears, so "Planned" is better than a bare dot and "Available in
|
|
59
|
+
Q3" is better than "Planned" if that is the truth.
|
|
60
|
+
- The dot is `aria-hidden` on purpose. Nothing in a row depends on a reader being
|
|
61
|
+
able to see it, and that is the rule to keep if you fork the design.
|
|
62
|
+
- Prefer a `detail` line to a bullet list unless the row really lists things. A
|
|
63
|
+
row with four bullets and a row with one sentence beside it are hard to scan
|
|
64
|
+
together.
|
|
65
|
+
|
|
66
|
+
### Content guidelines
|
|
67
|
+
|
|
68
|
+
- Keep a name to one or two words. It is the anchor of the row.
|
|
69
|
+
- Do not put the state in the name as well as in the label. "Live capture" beside
|
|
70
|
+
"Available" says the same thing twice.
|
|
71
|
+
- A row with no detail and no bullets is a valid row, and most rows should be.
|
|
72
|
+
|
|
73
|
+
**Four rows, one per tier, with the caller's own words for each state.**
|
|
74
|
+
|
|
75
|
+
```tsx
|
|
76
|
+
import { StatusLedger01 } from '@nanisoft/prism-ui/blocks/status-ledger-01'
|
|
77
|
+
|
|
78
|
+
/** Four rows, one per tier, with the caller's own words for each state. */
|
|
79
|
+
export default function StatusLedger01Demo() {
|
|
80
|
+
return (
|
|
81
|
+
<StatusLedger01
|
|
82
|
+
headingLevel="h3"
|
|
83
|
+
eyebrow="Preview"
|
|
84
|
+
title="What it captures"
|
|
85
|
+
description="The tiers are the colour; the words beside them are the information."
|
|
86
|
+
caption="A research direction is named as one. It is not a shipped capability."
|
|
87
|
+
rows={[
|
|
88
|
+
{
|
|
89
|
+
name: 'Access traversal',
|
|
90
|
+
status: 'live',
|
|
91
|
+
statusLabel: 'Flagship - available today',
|
|
92
|
+
detail: 'Every path between a person and a sensitive product.',
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
name: 'Containment rehearsal',
|
|
96
|
+
status: 'designed',
|
|
97
|
+
statusLabel: 'Specified, not built',
|
|
98
|
+
bullets: ['Rehearse before you need it.', 'Against the graph you have.'],
|
|
99
|
+
},
|
|
100
|
+
{ name: 'Privilege hygiene', status: 'planned', statusLabel: 'Planned' },
|
|
101
|
+
{ name: 'Strategy backtesting', status: 'direction', statusLabel: 'Research direction' },
|
|
102
|
+
]}
|
|
103
|
+
/>
|
|
104
|
+
)
|
|
105
|
+
}
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
## Props
|
|
109
|
+
|
|
110
|
+
**`eyebrow`** `string` · optional · default: — — Optional label above the section title. See the No-Default-Eyebrow Rule.
|
|
111
|
+
**`title`** `string` · optional · default: — — The section title. Omit it for a ledger composed under its own heading.
|
|
112
|
+
**`description`** `string` · optional · default: — — One or two sentences under the title.
|
|
113
|
+
**`rows`** `readonly StatusRow[]` · required · default: — — The rows, in the order a reader should meet them. Order is the caller's because it is a claim about what matters first, and a ledger that sorted itself would be making that claim on the caller's behalf.
|
|
114
|
+
**`caption`** `string` · optional · default: — — The line under the ledger, for the sentence that qualifies it: what is not here, or where to read more.
|
|
115
|
+
**`headingLevel`** `HeadingLevel` · optional · default: — — Heading level for the section title. See `HeadingLevel`.
|
|
116
|
+
|
|
117
|
+
## Composition
|
|
118
|
+
|
|
119
|
+
**`exports`** `StatusLedger01` — the public runtime names this Block promises
|
|
120
|
+
**`source`** `packages/ui/src/blocks/status-ledger-01/index.tsx` — the file this Block is defined in
|
|
121
|
+
**`dependencies`** `Section` — the public Prism exports this item composes
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
# @nanisoft/prism-llms
|
|
2
|
+
|
|
3
|
+
## 0.5.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 76c8d96: Fourteen items, four catalogue gates, and a Block that publishes its interface
|
|
8
|
+
|
|
9
|
+
**Fourteen items ship.** Three Components (`Prose`, `FactList`, `ProductSwitcher`),
|
|
10
|
+
nine Blocks (`ProcessRail01`, `StatusLedger01`, `ProductGrid01`, `StackGrid01`,
|
|
11
|
+
`LogoStrip01`, `NoteGrid01`, `InstrumentPanel01`, `SiteHeader`, `SiteFooter`) and two
|
|
12
|
+
Pages (`NotFoundPage`, `BlogPostPage`). Every one of them earns its place by the
|
|
13
|
+
growth rule rather than by taste: a marketing Block when at least three of the four
|
|
14
|
+
sites compose that section today, a Component when it has one job no existing
|
|
15
|
+
Component can express. The evidence is in the ticket and in each item's own
|
|
16
|
+
JSDoc, which names the sites and the line numbers.
|
|
17
|
+
|
|
18
|
+
**The three contested shapes are settled as specified, and the specifications
|
|
19
|
+
held.** A process rail admits four steps and refuses five, in the type: `steps` is
|
|
20
|
+
a tuple union, so a five-element array is a compile error and not a fifth column. A
|
|
21
|
+
status ledger has four tiers rather than five, and the words for a tier are the
|
|
22
|
+
caller's: the four sites between them use eight words for those four states
|
|
23
|
+
(`live`, `available` and `complete` are one; `approved`, `specified` and `designed`
|
|
24
|
+
are one; then `planned`; then `direction`), and the vocabulary is what `statusLabel`
|
|
25
|
+
is for. A product row's mark is two parts because a filled dot fails contrast on a
|
|
26
|
+
light card, so the mark is `ProductMark`: a hairline ring in `brand-ink` around a
|
|
27
|
+
core in the product's own `primary` fill, with the name in the brand ink beside it.
|
|
28
|
+
|
|
29
|
+
**Four gates the catalogue's own rules depend on now exist and are wired into
|
|
30
|
+
`check` and, because they read only `src/`, into `build`.** `check-item-docs`
|
|
31
|
+
holds AGENTS.md's claim that a documentation comment is the only path from an Item
|
|
32
|
+
to its published interface. `check-block-copy` holds DESIGN.md's claim that a
|
|
33
|
+
Block ships no copy and no sample data. `check-item-category` holds CONTEXT.md's
|
|
34
|
+
closed set of seven Categories and the sentence that a Block and a Page have none.
|
|
35
|
+
`check-block-imports` holds the claim that a Block fetches nothing and a Page
|
|
36
|
+
imports no router and no data client. Each resolves its roots from its own
|
|
37
|
+
location, fails a root that resolves to nothing, prints its coverage and every
|
|
38
|
+
exclusion on every run, has no report-only mode, and is proved red by a fixture
|
|
39
|
+
before it is proved green.
|
|
40
|
+
|
|
41
|
+
**Two of those four gates were red on the tree they were written against, and both
|
|
42
|
+
findings were real.** `check-item-docs` found seven exported functions whose
|
|
43
|
+
documentation comment was not attached to the declaration: `CardHeader`,
|
|
44
|
+
`CardTitle`, `CardDescription`, `CardContent`, `CardFooter`, `SectionHeading` and
|
|
45
|
+
`Hero01`. A comment three functions above a declaration does not reach the emitted
|
|
46
|
+
`.d.ts`, so those seven were absent from the corpus. `check-block-copy` found
|
|
47
|
+
`pricing-01` rendering the word "Popular" on a featured plan that passed no badge:
|
|
48
|
+
a hardcoded claim every consumer of the Block inherited, published by the corpus as
|
|
49
|
+
part of the Block's own documentation. The fallback is gone; a featured plan with
|
|
50
|
+
no badge now renders no badge.
|
|
51
|
+
|
|
52
|
+
**Five additive fields on four shipped items**, each with three of the four
|
|
53
|
+
consumers passing a value the item could not take, counted per consumer with a
|
|
54
|
+
file and a line and never per string. `SectionHeading.index`, for the mono ordinal
|
|
55
|
+
all four sites render above every section head (www `Landing.tsx:49`, atlas
|
|
56
|
+
`landing.tsx:48`, nexus `Landing.tsx:38`, alphalens `Landing.tsx:66`).
|
|
57
|
+
`Cta01.secondaryAction`, for the pair of actions all four closing bands render
|
|
58
|
+
(www `Landing.tsx:186`, atlas `landing.tsx:243`, nexus `Landing.tsx:221`,
|
|
59
|
+
alphalens `Landing.tsx:285`). `Cta01.note`, for the footnote three of the four
|
|
60
|
+
render under it (atlas `landing.tsx:250`, nexus `Landing.tsx:228`, alphalens
|
|
61
|
+
`Landing.tsx:292`). `FeatureGrid01.numbered`, for the ordinal all four render on
|
|
62
|
+
every card (www `Landing.tsx:166`, atlas `landing.tsx:116`, nexus `Landing.tsx:132`,
|
|
63
|
+
alphalens `Landing.tsx:142`). `Hero01.align`, for the left-aligned hero three of
|
|
64
|
+
the four compose (atlas `landing.tsx:69`, nexus `Landing.tsx:63`, alphalens
|
|
65
|
+
`Landing.tsx:87`). All five are additive: nothing changed shape and nothing was
|
|
66
|
+
removed.
|
|
67
|
+
|
|
68
|
+
**A Block and a Page publish both an interface section and a composition section.**
|
|
69
|
+
`packages/llms` read the extractor's output for a Block and threw the interface half
|
|
70
|
+
away, so the tool told an agent a Block had no own props. The extractor reads a
|
|
71
|
+
named props type off an emitted declaration whether that declaration belongs to a
|
|
72
|
+
Component or to a Block, so both sections are now built and both are assembled into
|
|
73
|
+
the mirror file, `llms-full.txt` and the Store's `doc`.
|
|
74
|
+
|
|
75
|
+
The Store now carries both fields for every kind, and `get_item_props` prints
|
|
76
|
+
both when it has both. The sentence "a Block has no own props" is gone from the
|
|
77
|
+
tool as well as from the published document. It was the one place the two
|
|
78
|
+
sections were still exclusive, because that tool branched on `item.props` and
|
|
79
|
+
fell back to the composition section, so a Block was answered with its
|
|
80
|
+
composition and a denial of the interface it publishes. The test asserts the
|
|
81
|
+
sentence's absence, so a refactor that restores it fails even if the composition
|
|
82
|
+
is still printed, and a second test covers the one-present case so the
|
|
83
|
+
both-present branch cannot swallow it.
|
|
84
|
+
|
|
85
|
+
**Four accessible names became required props** on `SiteHeader`, `LogoStrip01`,
|
|
86
|
+
`NotFoundPage` and `BlogPostPage`, and a Block that ships no copy ships no
|
|
87
|
+
reader-facing copy either. `navLabel`, `productsLabel`, `label`, `linksLabel` and
|
|
88
|
+
`trailLabel` are words a screen reader reads out, and no Block should be choosing
|
|
89
|
+
them for a consumer whose site calls its own landmarks something else. This is the
|
|
90
|
+
one breaking change in the release, and it is on four new Blocks and two new Pages
|
|
91
|
+
plus one new required prop on `SiteHeader`, all of which are new in the same
|
|
92
|
+
release, so no existing call site changes.
|
|
93
|
+
|
|
94
|
+
**`ProductSwitcher.label` has no default** for the same reason: a consumer whose set
|
|
95
|
+
is not a set of products should pass its own word rather than accept a claim about
|
|
96
|
+
what the set is.
|
|
97
|
+
|
|
98
|
+
### Patch Changes
|
|
99
|
+
|
|
100
|
+
- 4832359: Build the corpus after the changelog routes are copied, and declare what it reads
|
|
101
|
+
|
|
102
|
+
The corpus asserts that every published package shipping a changelog has a route
|
|
103
|
+
in the site's content tree, and those routes are written by a copy step that
|
|
104
|
+
belongs to the site package. The copy ran after this package was built, so on a
|
|
105
|
+
cold machine the build failed with a message that read like a changelog file had
|
|
106
|
+
been deleted, and a warm machine never saw the failure at all.
|
|
107
|
+
|
|
108
|
+
The copy is now the task `@nanisoft/site#copy-changelogs`, which this build
|
|
109
|
+
depends on in the task graph, and this build declares the content tree, the Item
|
|
110
|
+
documentation tree, the two site script modules the builder imports, the
|
|
111
|
+
workspace globs, the published manifests and the changelogs as its inputs, so a
|
|
112
|
+
change to any of them rebuilds the corpus instead of replaying a cached one.
|
|
113
|
+
|
|
114
|
+
The assertion is unchanged and still fails a published package the site does not
|
|
115
|
+
publish, which is how a changelog path the corpus advertised while the site
|
|
116
|
+
returned 404 for it was found. Its message now says which of the two causes it
|
|
117
|
+
is. No corpus byte changes: the emitted corpus is the same.
|
|
118
|
+
|
|
119
|
+
## 0.2.0
|
|
120
|
+
|
|
121
|
+
### Minor Changes
|
|
122
|
+
|
|
123
|
+
- c0cc0a9: Publish seven Sections, and keep every published URL resolving
|
|
124
|
+
|
|
125
|
+
`STORE_SECTIONS` is `overview`, `foundation`, `content`, `changelogs` where it
|
|
126
|
+
was `docs`, `foundations`, `content`, `changelogs`, and `STORE_SECTION_TITLES`
|
|
127
|
+
carries the Section's own name beside its directory. The two are a pair for a
|
|
128
|
+
reason: the directory is the route a page is addressed by and `get_page` matches
|
|
129
|
+
on it, and the name is what `llms.txt` groups pages under and what `list_pages`
|
|
130
|
+
counts. A Section renamed without its label renamed would be advertised under two
|
|
131
|
+
names in two artifacts, and a page whose `section` no longer names a live
|
|
132
|
+
directory is a page no tool can reach.
|
|
133
|
+
|
|
134
|
+
The reading order of the prose Sections is the site's: Overview, then Foundation,
|
|
135
|
+
then Content, then the catalogue, then the Changelogs. The corpus is regenerated
|
|
136
|
+
at build, so `llms.txt`, `llms-full.txt`, `data.json` and every mirror under `md/`
|
|
137
|
+
advertise the new routes, and the site Worker answers each old route with a
|
|
138
|
+
permanent redirect generated from the same manifest. An agent holding a cached
|
|
139
|
+
`llms.txt` from before this release resolves every URL it names and is told
|
|
140
|
+
nothing about the move.
|
|
141
|
+
|
|
142
|
+
Nothing in the item surface moves. The forty-two catalogue routes are the same
|
|
143
|
+
forty-two addresses, their mirrors are byte-identical, and the nine tools keep
|
|
144
|
+
their names and their positions; `list_pages` and `get_page` are unchanged apart
|
|
145
|
+
from the Section names they group and describe, which is a parameter on the
|
|
146
|
+
existing tools and not a rename of any of them.
|
|
147
|
+
- b1125a0: Publish the Changelogs Section, and put the changelogs in the agent surface
|
|
148
|
+
|
|
149
|
+
There was no Changelogs Section, so the only record of a change in a published
|
|
150
|
+
package was a file inside its tarball. A reader now has one route per published
|
|
151
|
+
package and an agent can ask for it. Both halves land together, so a Section never
|
|
152
|
+
exists without being in the Corpus.
|
|
153
|
+
|
|
154
|
+
The per-package pages are byte-for-byte copies of each published package's own
|
|
155
|
+
`CHANGELOG.md`, written by a copy step inside the build the site already runs.
|
|
156
|
+
That is the whole reason for the shape: a hand-maintained copy of a changelog
|
|
157
|
+
drifts from what was published while continuing to look correct, and it is a third
|
|
158
|
+
place to remember alongside the changeset and the JSDoc. The published packages
|
|
159
|
+
are discovered from the workspace, so publishing a package is what adds a route,
|
|
160
|
+
and a package that ships a changelog and no route fails the build in three
|
|
161
|
+
places. The reference design system this is modelled on has reader-facing
|
|
162
|
+
changelog pages and no such gate, which is how every one of them can be deleted
|
|
163
|
+
and leave its continuous integration green.
|
|
164
|
+
|
|
165
|
+
`STORE_SECTIONS` gains `changelogs`, so `llms.txt`, `llms-full.txt` and the
|
|
166
|
+
Markdown mirror carry a Changelogs group, and the content walk reads the second
|
|
167
|
+
extension the Section needs: a copied changelog is plain Markdown, and a walk
|
|
168
|
+
filtered to `.mdx` would have left the whole Section out of the agent surface
|
|
169
|
+
with a green build. The walk already recursed, so a page nested inside a Section
|
|
170
|
+
reaches the Corpus the same way it did before.
|
|
171
|
+
|
|
172
|
+
`PrismDocsStore` gains a required `changelogs` field carrying each package's
|
|
173
|
+
bytes, its route and its version entries, and the MCP server gains one read-only
|
|
174
|
+
tool, `get_changelog(package, version?)`, registered last. The eight existing
|
|
175
|
+
tools keep their names and their positions: a Section joining the Corpus is a
|
|
176
|
+
parameter on `list_pages` and `get_page`, which now read the Sections from the
|
|
177
|
+
Store rather than from a list of the three prose Sections, and not a rename of
|
|
178
|
+
anything. `get_changelog` returns the package's own file, because a generated
|
|
179
|
+
summary would drift the moment a release was published, and a breaking change in
|
|
180
|
+
a published package is exactly what a consuming agent has to be able to find.
|
|
181
|
+
|
|
182
|
+
### Patch Changes
|
|
183
|
+
|
|
184
|
+
- cbf442f: Make the corpus walk the content tree, and make a missing Section fail
|
|
185
|
+
|
|
186
|
+
The generator read one directory per Section and filtered it to `.mdx`, so a page
|
|
187
|
+
one folder deeper was absent from `llms.txt`, from `llms-full.txt`, from the
|
|
188
|
+
`PrismDocsStore` and from every read-only MCP tool, with a green build. The walk
|
|
189
|
+
now recurses, and a page's route, its `slug` and its Markdown mirror all come
|
|
190
|
+
from where the page sits in the tree, so nesting content publishes a page
|
|
191
|
+
instead of losing it.
|
|
192
|
+
|
|
193
|
+
The same file guarded the Section loop with `if (!existsSync(dir)) continue`, so a
|
|
194
|
+
Section that was declared and not on disk, which is what renaming one does, was
|
|
195
|
+
skipped silently and deleted from every agent surface. It now throws.
|
|
196
|
+
|
|
197
|
+
`llms.txt`, `llms-full.txt`, `data.json` and `md/**` are byte-for-byte unchanged
|
|
198
|
+
for the current flat tree.
|
|
199
|
+
|
|
200
|
+
## 0.1.0
|
|
201
|
+
|
|
202
|
+
The first versioned line of the rebuilt Prism agent corpus. One build-fresh
|
|
203
|
+
`dist/` carries `llms.txt`, `llms-full.txt`, `prism-skill.md`, the per-item
|
|
204
|
+
Markdown mirror and `data.json`, the `PrismDocsStore` projection.
|
|
205
|
+
|
|
206
|
+
Changesets are appended above this entry for every published change.
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# @nanisoft/prism-mcp-server
|
|
2
|
+
|
|
3
|
+
## 0.4.0
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [4832359]
|
|
8
|
+
- Updated dependencies [76c8d96]
|
|
9
|
+
- @nanisoft/prism-llms@0.3.0
|
|
10
|
+
|
|
11
|
+
## 0.2.0
|
|
12
|
+
|
|
13
|
+
### Minor Changes
|
|
14
|
+
|
|
15
|
+
- c0cc0a9: Publish seven Sections, and keep every published URL resolving
|
|
16
|
+
|
|
17
|
+
`STORE_SECTIONS` is `overview`, `foundation`, `content`, `changelogs` where it
|
|
18
|
+
was `docs`, `foundations`, `content`, `changelogs`, and `STORE_SECTION_TITLES`
|
|
19
|
+
carries the Section's own name beside its directory. The two are a pair for a
|
|
20
|
+
reason: the directory is the route a page is addressed by and `get_page` matches
|
|
21
|
+
on it, and the name is what `llms.txt` groups pages under and what `list_pages`
|
|
22
|
+
counts. A Section renamed without its label renamed would be advertised under two
|
|
23
|
+
names in two artifacts, and a page whose `section` no longer names a live
|
|
24
|
+
directory is a page no tool can reach.
|
|
25
|
+
|
|
26
|
+
The reading order of the prose Sections is the site's: Overview, then Foundation,
|
|
27
|
+
then Content, then the catalogue, then the Changelogs. The corpus is regenerated
|
|
28
|
+
at build, so `llms.txt`, `llms-full.txt`, `data.json` and every mirror under `md/`
|
|
29
|
+
advertise the new routes, and the site Worker answers each old route with a
|
|
30
|
+
permanent redirect generated from the same manifest. An agent holding a cached
|
|
31
|
+
`llms.txt` from before this release resolves every URL it names and is told
|
|
32
|
+
nothing about the move.
|
|
33
|
+
|
|
34
|
+
Nothing in the item surface moves. The forty-two catalogue routes are the same
|
|
35
|
+
forty-two addresses, their mirrors are byte-identical, and the nine tools keep
|
|
36
|
+
their names and their positions; `list_pages` and `get_page` are unchanged apart
|
|
37
|
+
from the Section names they group and describe, which is a parameter on the
|
|
38
|
+
existing tools and not a rename of any of them.
|
|
39
|
+
- b1125a0: Publish the Changelogs Section, and put the changelogs in the agent surface
|
|
40
|
+
|
|
41
|
+
There was no Changelogs Section, so the only record of a change in a published
|
|
42
|
+
package was a file inside its tarball. A reader now has one route per published
|
|
43
|
+
package and an agent can ask for it. Both halves land together, so a Section never
|
|
44
|
+
exists without being in the Corpus.
|
|
45
|
+
|
|
46
|
+
The per-package pages are byte-for-byte copies of each published package's own
|
|
47
|
+
`CHANGELOG.md`, written by a copy step inside the build the site already runs.
|
|
48
|
+
That is the whole reason for the shape: a hand-maintained copy of a changelog
|
|
49
|
+
drifts from what was published while continuing to look correct, and it is a third
|
|
50
|
+
place to remember alongside the changeset and the JSDoc. The published packages
|
|
51
|
+
are discovered from the workspace, so publishing a package is what adds a route,
|
|
52
|
+
and a package that ships a changelog and no route fails the build in three
|
|
53
|
+
places. The reference design system this is modelled on has reader-facing
|
|
54
|
+
changelog pages and no such gate, which is how every one of them can be deleted
|
|
55
|
+
and leave its continuous integration green.
|
|
56
|
+
|
|
57
|
+
`STORE_SECTIONS` gains `changelogs`, so `llms.txt`, `llms-full.txt` and the
|
|
58
|
+
Markdown mirror carry a Changelogs group, and the content walk reads the second
|
|
59
|
+
extension the Section needs: a copied changelog is plain Markdown, and a walk
|
|
60
|
+
filtered to `.mdx` would have left the whole Section out of the agent surface
|
|
61
|
+
with a green build. The walk already recursed, so a page nested inside a Section
|
|
62
|
+
reaches the Corpus the same way it did before.
|
|
63
|
+
|
|
64
|
+
`PrismDocsStore` gains a required `changelogs` field carrying each package's
|
|
65
|
+
bytes, its route and its version entries, and the MCP server gains one read-only
|
|
66
|
+
tool, `get_changelog(package, version?)`, registered last. The eight existing
|
|
67
|
+
tools keep their names and their positions: a Section joining the Corpus is a
|
|
68
|
+
parameter on `list_pages` and `get_page`, which now read the Sections from the
|
|
69
|
+
Store rather than from a list of the three prose Sections, and not a rename of
|
|
70
|
+
anything. `get_changelog` returns the package's own file, because a generated
|
|
71
|
+
summary would drift the moment a release was published, and a breaking change in
|
|
72
|
+
a published package is exactly what a consuming agent has to be able to find.
|
|
73
|
+
|
|
74
|
+
### Patch Changes
|
|
75
|
+
|
|
76
|
+
- Updated dependencies [cbf442f]
|
|
77
|
+
- Updated dependencies [c0cc0a9]
|
|
78
|
+
- Updated dependencies [b1125a0]
|
|
79
|
+
- @nanisoft/prism-llms@0.2.0
|
|
80
|
+
|
|
81
|
+
## 0.1.0
|
|
82
|
+
|
|
83
|
+
The first versioned line of the rebuilt Prism MCP surface. The package is
|
|
84
|
+
transport-free: `createPrismMcpServer(store, options)` returns an `McpServer`
|
|
85
|
+
that the site Worker connects to the Agents SDK at `/mcp`. Eight read-only
|
|
86
|
+
retrieval tools answer over the bundled `PrismDocsStore`.
|
|
87
|
+
|
|
88
|
+
Changesets are appended above this entry for every published change.
|