@kitn.ai/ui 0.28.0 → 0.29.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 +1 -1
- package/dist/agent-tooling/construct/public.d.ts +15 -0
- package/dist/agent-tooling/construct/schema.d.ts +111 -0
- package/dist/construct-cli.es.js +3 -3
- package/dist/construct.d.ts +5 -0
- package/dist/construct.js +327 -0
- package/dist/core-C8fzo39E.js +1 -12
- package/dist/engine-javascript-C1x7zo1_.js +1 -141
- package/dist/mcp.es.js +1 -1
- package/package.json +16 -16
- package/bin/route.test.js +0 -58
- package/src/agent-tooling/README.md +0 -192
- package/src/agent-tooling/archetypes.ts +0 -205
- package/src/agent-tooling/catalog/README.md +0 -676
- package/src/agent-tooling/catalog/catalog-types.ts +0 -231
- package/src/agent-tooling/catalog/fabrications.ts +0 -96
- package/src/agent-tooling/catalog/invariants.ts +0 -284
- package/src/agent-tooling/catalog/labs-titles.ts +0 -114
- package/src/agent-tooling/catalog/scenarios.ts +0 -87
- package/src/agent-tooling/catalog/surfaces.ts +0 -347
- package/src/agent-tooling/construct/cli-entry.ts +0 -8
- package/src/agent-tooling/construct/cli.ts +0 -147
- package/src/agent-tooling/construct/codegen.ts +0 -1635
- package/src/agent-tooling/construct/construct.v1.schema.json +0 -319
- package/src/agent-tooling/construct/dev.ts +0 -148
- package/src/agent-tooling/construct/fixtures/demo-widget.construct.json +0 -7
- package/src/agent-tooling/construct/fixtures/ops-console.construct.json +0 -44
- package/src/agent-tooling/construct/fixtures/owner-widget.construct.json +0 -32
- package/src/agent-tooling/construct/schema.ts +0 -452
- package/src/agent-tooling/integrations/anthropic.ts +0 -442
- package/src/agent-tooling/integrations/cloudflare.ts +0 -218
- package/src/agent-tooling/integrations/langgraph.ts +0 -133
- package/src/agent-tooling/integrations/mastra.ts +0 -182
- package/src/agent-tooling/integrations/mock.ts +0 -148
- package/src/agent-tooling/integrations/ollama.ts +0 -97
- package/src/agent-tooling/integrations/openai.ts +0 -95
- package/src/agent-tooling/integrations/openrouter.ts +0 -82
- package/src/agent-tooling/integrations/pi.ts +0 -176
- package/src/agent-tooling/integrations/pydantic-ai.ts +0 -108
- package/src/agent-tooling/integrations/vercel-ai-sdk.ts +0 -398
- package/src/agent-tooling/mcp/css-raw.d.ts +0 -12
- package/src/agent-tooling/mcp/manifest.ts +0 -422
- package/src/agent-tooling/mcp/server.ts +0 -116
- package/src/agent-tooling/mcp/stdio.ts +0 -18
- package/src/agent-tooling/mcp/tools/construct.ts +0 -130
- package/src/agent-tooling/mcp/tools/debug.ts +0 -621
- package/src/agent-tooling/mcp/tools/reference.ts +0 -980
- package/src/agent-tooling/mcp/tools/scaffold.ts +0 -6708
- package/src/agent-tooling/mcp/tools/theme.ts +0 -456
- package/src/agent-tooling/mcp/tools/types.ts +0 -14
- package/src/agent-tooling/mcp/validate-args.ts +0 -141
- package/src/agent-tooling/recipes/composed-thread.ts +0 -714
- package/src/agent-tooling/recipes/index.ts +0 -22
- package/src/agent-tooling/recipes/types.ts +0 -32
- package/src/agent-tooling/registry.ts +0 -132
- package/src/agent-tooling/route-emit.ts +0 -305
- package/src/agent-tooling/types.ts +0 -390
- package/src/components/artifact-card.tsx +0 -120
- package/src/components/artifact.tsx +0 -914
- package/src/components/attachment-types.ts +0 -66
- package/src/components/attachments.tsx +0 -536
- package/src/components/audio-visualizer/audio-visualizer.voice-fixture.ts +0 -257
- package/src/components/audio-visualizer/aurora.glsl.ts +0 -330
- package/src/components/audio-visualizer/fit-scale.ts +0 -112
- package/src/components/audio-visualizer/index.tsx +0 -528
- package/src/components/audio-visualizer/labs/lab-choreography.ts +0 -187
- package/src/components/audio-visualizer/labs/lab-shaders.ts +0 -363
- package/src/components/audio-visualizer/labs/lab-visualizer.tsx +0 -102
- package/src/components/audio-visualizer/shader-canvas.tsx +0 -876
- package/src/components/audio-visualizer/sizes.ts +0 -54
- package/src/components/audio-visualizer/variant-aurora.tsx +0 -305
- package/src/components/audio-visualizer/variant-bar.tsx +0 -175
- package/src/components/audio-visualizer/variant-custom.tsx +0 -344
- package/src/components/audio-visualizer/variant-grid.tsx +0 -175
- package/src/components/audio-visualizer/variant-radial.tsx +0 -163
- package/src/components/audio-visualizer/variant-wave.tsx +0 -130
- package/src/components/audio-visualizer/wave.glsl.ts +0 -130
- package/src/components/card-fallback.tsx +0 -60
- package/src/components/card-renderer.tsx +0 -220
- package/src/components/card.tsx +0 -212
- package/src/components/chain-of-thought.tsx +0 -348
- package/src/components/chat-container.tsx +0 -89
- package/src/components/chat-scope-picker.tsx +0 -57
- package/src/components/chat-thread.tsx +0 -1014
- package/src/components/checkpoint.tsx +0 -88
- package/src/components/choice-card.tsx +0 -743
- package/src/components/coachmark.tsx +0 -249
- package/src/components/code-block.tsx +0 -181
- package/src/components/composer-dom.ts +0 -159
- package/src/components/composer-highlight.ts +0 -242
- package/src/components/composer-history.ts +0 -82
- package/src/components/composer.tsx +0 -1075
- package/src/components/confirm-card.tsx +0 -402
- package/src/components/context.tsx +0 -377
- package/src/components/conversation-item.tsx +0 -241
- package/src/components/conversation-list.tsx +0 -429
- package/src/components/conversation-panel.tsx +0 -118
- package/src/components/dismissed-stub.tsx +0 -80
- package/src/components/embed.tsx +0 -200
- package/src/components/empty.tsx +0 -177
- package/src/components/feedback-bar.tsx +0 -166
- package/src/components/file-tree.tsx +0 -530
- package/src/components/file-upload.tsx +0 -167
- package/src/components/form-widgets.tsx +0 -525
- package/src/components/form.tsx +0 -1296
- package/src/components/home-panel.tsx +0 -159
- package/src/components/image.tsx +0 -65
- package/src/components/link-preview.tsx +0 -195
- package/src/components/loader.tsx +0 -367
- package/src/components/markdown.tsx +0 -162
- package/src/components/message-skills.tsx +0 -40
- package/src/components/message.tsx +0 -765
- package/src/components/model-switcher.tsx +0 -132
- package/src/components/prompt-input.tsx +0 -188
- package/src/components/prompt-suggestion.tsx +0 -150
- package/src/components/reasoning.tsx +0 -293
- package/src/components/response-compare-types.ts +0 -152
- package/src/components/response-compare.tsx +0 -455
- package/src/components/response-stream.tsx +0 -109
- package/src/components/screen.tsx +0 -181
- package/src/components/scroll-button.tsx +0 -93
- package/src/components/source.tsx +0 -192
- package/src/components/tasks-card.tsx +0 -801
- package/src/components/text-shimmer.tsx +0 -37
- package/src/components/thinking-bar.tsx +0 -50
- package/src/components/thread.tsx +0 -228
- package/src/components/toast.tsx +0 -503
- package/src/components/tool-classify.ts +0 -26
- package/src/components/tool-types.ts +0 -49
- package/src/components/tool.tsx +0 -190
- package/src/components/use-card-resolution.ts +0 -44
- package/src/components/voice-input.tsx +0 -222
- package/src/components/voice-output.tsx +0 -242
- package/src/components/widget-tab-bar.tsx +0 -73
- package/src/components/workspace-shell.tsx +0 -285
- package/src/diagnostics/hook.ts +0 -352
- package/src/diagnostics/index.ts +0 -82
- package/src/diagnostics/report-request.ts +0 -296
- package/src/elements/agent-card.tsx +0 -67
- package/src/elements/artifact.tsx +0 -194
- package/src/elements/attachments.tsx +0 -140
- package/src/elements/audio-visualizer.tsx +0 -227
- package/src/elements/autoloader.ts +0 -89
- package/src/elements/avatar.tsx +0 -33
- package/src/elements/badge.tsx +0 -32
- package/src/elements/button.tsx +0 -149
- package/src/elements/card.tsx +0 -133
- package/src/elements/cards.tsx +0 -266
- package/src/elements/chain-of-thought.tsx +0 -141
- package/src/elements/chat-scope-picker.tsx +0 -65
- package/src/elements/chat-types.ts +0 -102
- package/src/elements/chat-workspace.tsx +0 -188
- package/src/elements/chat.tsx +0 -304
- package/src/elements/checkbox-group.tsx +0 -164
- package/src/elements/checkbox.tsx +0 -134
- package/src/elements/checkpoint.tsx +0 -47
- package/src/elements/choice.tsx +0 -100
- package/src/elements/coachmark.tsx +0 -90
- package/src/elements/code-block.tsx +0 -60
- package/src/elements/command.tsx +0 -197
- package/src/elements/compare.tsx +0 -111
- package/src/elements/compiled.css +0 -2
- package/src/elements/composer.tsx +0 -162
- package/src/elements/confirm-card.tsx +0 -76
- package/src/elements/context-meter.tsx +0 -107
- package/src/elements/conversation-item.tsx +0 -120
- package/src/elements/conversation-list.tsx +0 -203
- package/src/elements/css.ts +0 -5
- package/src/elements/default-input.tsx +0 -392
- package/src/elements/define-entry.ts +0 -12
- package/src/elements/define.tsx +0 -563
- package/src/elements/diagnostic-events.ts +0 -114
- package/src/elements/dialog.tsx +0 -145
- package/src/elements/disclosure.ts +0 -95
- package/src/elements/dock.tsx +0 -215
- package/src/elements/dropdown.tsx +0 -123
- package/src/elements/editable-label.tsx +0 -140
- package/src/elements/element-data-types.ts +0 -152
- package/src/elements/element-diagnostics.ts +0 -392
- package/src/elements/element-manifest.json +0 -354
- package/src/elements/element-nonscalar.json +0 -187
- package/src/elements/element-types.d.ts +0 -4353
- package/src/elements/embed.tsx +0 -35
- package/src/elements/empty.tsx +0 -29
- package/src/elements/feedback-bar.tsx +0 -66
- package/src/elements/file-tree.tsx +0 -62
- package/src/elements/file-upload.tsx +0 -44
- package/src/elements/form.tsx +0 -94
- package/src/elements/hover-card.tsx +0 -80
- package/src/elements/icon.tsx +0 -41
- package/src/elements/image.tsx +0 -32
- package/src/elements/input.tsx +0 -492
- package/src/elements/kbd.tsx +0 -45
- package/src/elements/link-preview.tsx +0 -34
- package/src/elements/loader.tsx +0 -25
- package/src/elements/markdown.tsx +0 -38
- package/src/elements/menu.tsx +0 -241
- package/src/elements/message-skills.tsx +0 -83
- package/src/elements/message.tsx +0 -361
- package/src/elements/model-switcher.tsx +0 -121
- package/src/elements/nav.tsx +0 -87
- package/src/elements/notice.tsx +0 -53
- package/src/elements/pane-grid.tsx +0 -111
- package/src/elements/pane-group.tsx +0 -119
- package/src/elements/pane.tsx +0 -129
- package/src/elements/popover.tsx +0 -81
- package/src/elements/progress-bar.tsx +0 -39
- package/src/elements/prompt-dock.tsx +0 -82
- package/src/elements/prompt-input.tsx +0 -240
- package/src/elements/prompt-suggestions.tsx +0 -113
- package/src/elements/radio-group.tsx +0 -129
- package/src/elements/reasoning.tsx +0 -71
- package/src/elements/register-impl.ts +0 -148
- package/src/elements/register.ts +0 -76
- package/src/elements/remote.tsx +0 -225
- package/src/elements/resizable.globals.d.ts +0 -36
- package/src/elements/resizable.tsx +0 -704
- package/src/elements/response-stream.tsx +0 -40
- package/src/elements/screen.tsx +0 -90
- package/src/elements/scroll-area.tsx +0 -33
- package/src/elements/scroll-button.tsx +0 -179
- package/src/elements/search.tsx +0 -185
- package/src/elements/segmented.tsx +0 -129
- package/src/elements/select.tsx +0 -165
- package/src/elements/separator.tsx +0 -36
- package/src/elements/setting-item.tsx +0 -50
- package/src/elements/settings-group.tsx +0 -37
- package/src/elements/skeleton.tsx +0 -45
- package/src/elements/slider.tsx +0 -171
- package/src/elements/slot-text.ts +0 -73
- package/src/elements/slots.ts +0 -787
- package/src/elements/source.tsx +0 -126
- package/src/elements/status.tsx +0 -42
- package/src/elements/styles.css +0 -328
- package/src/elements/switch.tsx +0 -118
- package/src/elements/tabs.tsx +0 -95
- package/src/elements/tasks.tsx +0 -103
- package/src/elements/text-shimmer.tsx +0 -28
- package/src/elements/thinking-bar.tsx +0 -43
- package/src/elements/thread.tsx +0 -139
- package/src/elements/toast.tsx +0 -106
- package/src/elements/tool.tsx +0 -78
- package/src/elements/tooltip.tsx +0 -85
- package/src/elements/validate-messages.ts +0 -76
- package/src/elements/voice-input.tsx +0 -100
- package/src/elements/voice-output.tsx +0 -82
- package/src/index.ts +0 -430
- package/src/primitives/audio-bands.ts +0 -174
- package/src/primitives/card-component-types.ts +0 -63
- package/src/primitives/card-contract.ts +0 -80
- package/src/primitives/card-data-types.ts +0 -361
- package/src/primitives/card-host.tsx +0 -37
- package/src/primitives/card-recovery.ts +0 -160
- package/src/primitives/card-registry.tsx +0 -78
- package/src/primitives/card-resolution.ts +0 -36
- package/src/primitives/card-routing.ts +0 -85
- package/src/primitives/card-schemas/artifact.schema.json +0 -92
- package/src/primitives/card-schemas/card-envelope.schema.json +0 -14
- package/src/primitives/card-schemas/card-event.schema.json +0 -12
- package/src/primitives/card-schemas/choice.schema.json +0 -75
- package/src/primitives/card-schemas/confirm.schema.json +0 -65
- package/src/primitives/card-schemas/embed.schema.json +0 -63
- package/src/primitives/card-schemas/form.result.schema.json +0 -7
- package/src/primitives/card-schemas/form.schema.json +0 -53
- package/src/primitives/card-schemas/link.schema.json +0 -54
- package/src/primitives/card-schemas/tasks.result.schema.json +0 -16
- package/src/primitives/card-schemas/tasks.schema.json +0 -83
- package/src/primitives/card-tags.ts +0 -61
- package/src/primitives/card-validate-cards.ts +0 -255
- package/src/primitives/card-validate-schemas.ts +0 -58
- package/src/primitives/card-validate.ts +0 -131
- package/src/primitives/chat-config.tsx +0 -103
- package/src/primitives/composer-model.ts +0 -49
- package/src/primitives/composer-triggers.ts +0 -35
- package/src/primitives/controllable.ts +0 -21
- package/src/primitives/conversation-store.ts +0 -248
- package/src/primitives/create-kai-chat.ts +0 -66
- package/src/primitives/create-tween.ts +0 -266
- package/src/primitives/embed-providers.ts +0 -254
- package/src/primitives/field-mask.ts +0 -256
- package/src/primitives/field-semantics.ts +0 -115
- package/src/primitives/highlighter.ts +0 -157
- package/src/primitives/input-mask.ts +0 -853
- package/src/primitives/link-preview.ts +0 -87
- package/src/primitives/message-feedback.ts +0 -124
- package/src/primitives/pdf-preview.ts +0 -121
- package/src/primitives/toast-store.ts +0 -338
- package/src/primitives/url-scheme-policy.ts +0 -70
- package/src/primitives/use-audio-analysis.ts +0 -340
- package/src/primitives/use-auto-resize.ts +0 -31
- package/src/primitives/use-resize-observer.ts +0 -45
- package/src/primitives/use-sequencer.ts +0 -72
- package/src/primitives/use-speech-recognition.ts +0 -146
- package/src/primitives/use-stick-to-bottom.ts +0 -75
- package/src/primitives/use-text-stream.ts +0 -143
- package/src/primitives/use-voice-recorder.ts +0 -62
- package/src/primitives/visualizer-sequences.ts +0 -350
- package/src/remote/host-embed.ts +0 -345
- package/src/remote/index.ts +0 -2
- package/src/remote/origin.ts +0 -30
- package/src/remote/provider-runtime.ts +0 -262
- package/src/remote/provider.ts +0 -2
- package/src/remote/validate.ts +0 -22
- package/src/remote/version.ts +0 -12
- package/src/remote/wire.ts +0 -48
- package/src/schemas/from-tool-call.ts +0 -151
- package/src/schemas/index.ts +0 -341
- package/src/schemas/provider-subsets.ts +0 -538
- package/src/schemas/registry.ts +0 -355
- package/src/schemas/tool-defs.ts +0 -793
- package/src/solid.ts +0 -173
- package/src/state/index.ts +0 -44
- package/src/state/messages.ts +0 -53
- package/src/state/mock.ts +0 -297
- package/src/state/parts.ts +0 -295
- package/src/state/persistence.ts +0 -180
- package/src/state/stream.ts +0 -246
- package/src/state/suggestions.ts +0 -9
- package/src/state/threads.ts +0 -142
- package/src/test-utils/fake-clock.ts +0 -88
- package/src/types.ts +0 -95
- package/src/ui/action-icons.ts +0 -53
- package/src/ui/agent-card.tsx +0 -218
- package/src/ui/avatar.tsx +0 -23
- package/src/ui/badge.tsx +0 -21
- package/src/ui/button.tsx +0 -49
- package/src/ui/card.tsx +0 -245
- package/src/ui/checkbox-group.tsx +0 -153
- package/src/ui/checkbox.tsx +0 -63
- package/src/ui/collapsible.tsx +0 -163
- package/src/ui/command.tsx +0 -103
- package/src/ui/dialog.tsx +0 -223
- package/src/ui/dock.tsx +0 -630
- package/src/ui/dropdown.tsx +0 -636
- package/src/ui/editable-label.tsx +0 -112
- package/src/ui/hover-card.tsx +0 -345
- package/src/ui/icon.tsx +0 -167
- package/src/ui/input.tsx +0 -391
- package/src/ui/kbd.tsx +0 -118
- package/src/ui/nav.tsx +0 -282
- package/src/ui/notice.tsx +0 -84
- package/src/ui/overlay.tsx +0 -277
- package/src/ui/pane-grid.tsx +0 -117
- package/src/ui/pane-group.tsx +0 -291
- package/src/ui/pane.tsx +0 -193
- package/src/ui/popover.tsx +0 -106
- package/src/ui/progress-bar.tsx +0 -83
- package/src/ui/prompt-dock.tsx +0 -145
- package/src/ui/radio.tsx +0 -150
- package/src/ui/resizable.tsx +0 -693
- package/src/ui/scroll-area.tsx +0 -26
- package/src/ui/segmented.tsx +0 -109
- package/src/ui/select.tsx +0 -168
- package/src/ui/separator.tsx +0 -10
- package/src/ui/settings-group.tsx +0 -67
- package/src/ui/skeleton.tsx +0 -73
- package/src/ui/slider.tsx +0 -178
- package/src/ui/status.tsx +0 -48
- package/src/ui/switch.tsx +0 -119
- package/src/ui/tabs.tsx +0 -168
- package/src/ui/textarea.tsx +0 -21
- package/src/ui/tooltip.tsx +0 -118
- package/src/utils/cn.ts +0 -30
- package/src/wire/chunk.ts +0 -248
- package/src/wire/consume.ts +0 -599
- package/src/wire/diagnostics.ts +0 -727
- package/src/wire/encode-probe.ts +0 -214
- package/src/wire/encode.ts +0 -947
- package/src/wire/files.ts +0 -342
- package/src/wire/formats/anthropic.ts +0 -274
- package/src/wire/formats/openai.ts +0 -228
- package/src/wire/index.ts +0 -95
- package/src/wire/media-types.ts +0 -344
- package/src/wire/read.ts +0 -396
- package/src/wire/sink-helpers.ts +0 -50
- package/src/wire/sse.ts +0 -153
package/src/schemas/index.ts
DELETED
|
@@ -1,341 +0,0 @@
|
|
|
1
|
-
// @kitn.ai/ui/schemas: the card JSON Schemas, reachable.
|
|
2
|
-
//
|
|
3
|
-
// The 11 schema documents under src/primitives/card-schemas/ have been copied into
|
|
4
|
-
// dist/schemas/ on every build and shipped in every tarball since the card contract
|
|
5
|
-
// landed. Nothing could reach them: package.json "exports" is a CLOSED map with no
|
|
6
|
-
// `./schemas` key, so both `@kitn.ai/ui/schemas` and
|
|
7
|
-
// `@kitn.ai/ui/schemas/confirm.schema.json` resolved to TS2307 /
|
|
8
|
-
// ERR_PACKAGE_PATH_NOT_EXPORTED. This repo's own reference harness gave up and
|
|
9
|
-
// hand-derived the confirm schema in
|
|
10
|
-
// examples/internal/openrouter-spike/src/card-schema.ts, saying so in a comment.
|
|
11
|
-
//
|
|
12
|
-
// WHY THIS JS ENTRY IS THE PRIMARY SURFACE
|
|
13
|
-
// ----------------------------------------
|
|
14
|
-
// The raw JSON subpaths ship too (`@kitn.ai/ui/schemas/confirm.schema.json`), and
|
|
15
|
-
// they are the right answer for a Python or Go backend, or for `fetch`. They are
|
|
16
|
-
// the SECONDARY surface for JS/TS consumers because importing JSON breaks three
|
|
17
|
-
// different ways across the framework targets the scaffolder supports: Node ESM and
|
|
18
|
-
// TS `nodenext` need `with { type: 'json' }`, types need `resolveJsonModule` in any
|
|
19
|
-
// mode, and Workers need a `wrangler` rule. A JS entry has none of those problems
|
|
20
|
-
// anywhere, and it picks up `verify:ssr` coverage for free, since that guard derives
|
|
21
|
-
// its entry list from the exports map.
|
|
22
|
-
//
|
|
23
|
-
// SERVER-SAFE, DELIBERATELY
|
|
24
|
-
// -------------------------
|
|
25
|
-
// No DOM, no Solid, no `fetch`. Everything reached from here is data or plain
|
|
26
|
-
// functions, and as of src/primitives/card-component-types.ts that is true of the
|
|
27
|
-
// TYPES too: nothing reachable from this entry resolves to a `.tsx` any more, so a
|
|
28
|
-
// Node/no-DOM project can read the whole graph from source. (`CardComponentMap` used
|
|
29
|
-
// to come from primitives/card-registry.tsx and was the last exception.) This entry
|
|
30
|
-
// is meant to be imported by a backend route that hands tool definitions to a model,
|
|
31
|
-
// so anything that touches a browser global would defeat its purpose. `verify:ssr`
|
|
32
|
-
// asserts the RUNTIME half, by importing the BUILT entry under the `node` condition
|
|
33
|
-
// in its own child process; the compile-time half is `tsc --noEmit -p
|
|
34
|
-
// tsconfig.mcp.json` on a tree with no dist/, and only that one sees a `.tsx` creep
|
|
35
|
-
// back in.
|
|
36
|
-
//
|
|
37
|
-
// WHAT `verify:ssr` DOES NOT CATCH, MEASURED
|
|
38
|
-
// ------------------------------------------
|
|
39
|
-
// It checks the BUILT bundle, so it only sees what survives tree-shaking — and
|
|
40
|
-
// rollup is good enough here that it does not see the mistake you would actually
|
|
41
|
-
// make. Measured, not assumed: pointing the `BUILTIN_CARD_TAGS` re-export below at
|
|
42
|
-
// src/primitives/card-registry.TSX instead of card-tags.ts produces a byte-identical
|
|
43
|
-
// dist/schemas.js with zero `solid-js` references, and imports clean under `node`.
|
|
44
|
-
// Rollup compiles the whole Solid component tree (build time 0.2s -> 3.9s) and then
|
|
45
|
-
// discards all of it, because only the tag map is reachable.
|
|
46
|
-
//
|
|
47
|
-
// So the `.ts` split is NOT holding a runtime guard up, and must not be described as
|
|
48
|
-
// if it were. What it buys is that this entry's server-safety stops depending on
|
|
49
|
-
// tree-shaking staying perfect: one module-scope side effect anywhere under
|
|
50
|
-
// components/ and the discarded tree stops being discardable. Removing the dependency
|
|
51
|
-
// beats relying on it being elided.
|
|
52
|
-
//
|
|
53
|
-
// WHAT IT COSTS, AND WHERE
|
|
54
|
-
// ------------------------
|
|
55
|
-
// dist/schemas.js, measured on this tree, not recalled:
|
|
56
|
-
//
|
|
57
|
-
// 42,658 B min / 11,762 B gzip before ./registry landed
|
|
58
|
-
// 53,658 B min / 14,669 B gzip after ./registry (+11,000 B / +2,907 B gzip)
|
|
59
|
-
// 53,864 B min / 14,739 B gzip now, with BUILTIN_CARD_TAGS (+206 B / +70 B gzip)
|
|
60
|
-
//
|
|
61
|
-
// The middle row is this comment's previous "53,656 / 14,667", re-measured rather than
|
|
62
|
-
// carried forward; the 2-byte drift is what a claim costs when it is copied instead of
|
|
63
|
-
// taken again. The last row is the tag map below, measured by building this entry with
|
|
64
|
-
// and without that one export line.
|
|
65
|
-
//
|
|
66
|
-
// The `18,160 B / 5,800 B` this comment used to claim was measured at 0.20.1, before
|
|
67
|
-
// tool-defs and provider-subsets were added to the barrel, and had been stale ever
|
|
68
|
-
// since. Corrected here rather than left, because a size claim nobody re-measures is
|
|
69
|
-
// the same class of thing as a guard nobody watches fail.
|
|
70
|
-
//
|
|
71
|
-
// The delta is ./registry plus what it pulls: primitives/card-validate.ts (the
|
|
72
|
-
// validator) and primitives/card-validate-schemas.ts (the LEAN projection). That last
|
|
73
|
-
// one means the seven card schemas appear TWICE in this bundle, authored and lean.
|
|
74
|
-
// Deliberate, and the alternative is worse: validating built-ins against the authored
|
|
75
|
-
// documents here while the browser validates them against the projection would be two
|
|
76
|
-
// behaviours wearing one name. One function, one answer, 4 KB.
|
|
77
|
-
//
|
|
78
|
-
// All of it is a SERVER cost and does not touch a client bundle. Nothing in the
|
|
79
|
-
// component tree imports this entry, so no consumer pays it unless a route or a
|
|
80
|
-
// build script imports it on purpose. If you are here comparing it against the
|
|
81
|
-
// ~1 KB gzip figure in the emit-contract plan, those are different things: that one
|
|
82
|
-
// is the LEAN projection destined for the browser (descriptions and `$id` stripped,
|
|
83
|
-
// validation keywords only), which is a separate artifact and not this file.
|
|
84
|
-
//
|
|
85
|
-
// NOT RESTATED
|
|
86
|
-
// ------------
|
|
87
|
-
// Every value below is the JSON file itself, imported and inlined by the bundler.
|
|
88
|
-
// There is no hand-copied shape here and there must never be one: `verify:schemas`
|
|
89
|
-
// asserts each exported entry is byte-identical to its file on disk, and that the
|
|
90
|
-
// two maps between them account for every file in the directory and for nothing
|
|
91
|
-
// else. The whole point of this entry is to stop the same shape existing in five
|
|
92
|
-
// places.
|
|
93
|
-
|
|
94
|
-
import type { JsonSchema } from '../primitives/card-validate';
|
|
95
|
-
|
|
96
|
-
import artifactSchema from '../primitives/card-schemas/artifact.schema.json';
|
|
97
|
-
import cardEnvelopeSchema from '../primitives/card-schemas/card-envelope.schema.json';
|
|
98
|
-
import cardEventSchema from '../primitives/card-schemas/card-event.schema.json';
|
|
99
|
-
import choiceSchema from '../primitives/card-schemas/choice.schema.json';
|
|
100
|
-
import confirmSchema from '../primitives/card-schemas/confirm.schema.json';
|
|
101
|
-
import embedSchema from '../primitives/card-schemas/embed.schema.json';
|
|
102
|
-
import formResultSchema from '../primitives/card-schemas/form.result.schema.json';
|
|
103
|
-
import formSchema from '../primitives/card-schemas/form.schema.json';
|
|
104
|
-
import linkSchema from '../primitives/card-schemas/link.schema.json';
|
|
105
|
-
import tasksResultSchema from '../primitives/card-schemas/tasks.result.schema.json';
|
|
106
|
-
import tasksSchema from '../primitives/card-schemas/tasks.schema.json';
|
|
107
|
-
|
|
108
|
-
/**
|
|
109
|
-
* A card schema document, as authored.
|
|
110
|
-
*
|
|
111
|
-
* Wider than {@link JsonSchema} on purpose. `JsonSchema` describes the LEAN subset
|
|
112
|
-
* `validateAgainstSchema` implements; the files also carry `$schema`, `$id`,
|
|
113
|
-
* `title`, `description`, `default`, `additionalProperties`, `x-kai-*`, and (in
|
|
114
|
-
* `embed` and `artifact`) `allOf`/`if`/`then`/`oneOf`. Reading a document as
|
|
115
|
-
* `JsonSchema` alone would quietly imply the validator understands all of it.
|
|
116
|
-
*/
|
|
117
|
-
export type CardSchema = JsonSchema & Readonly<Record<string, unknown>>;
|
|
118
|
-
|
|
119
|
-
/**
|
|
120
|
-
* DO NOT "TIGHTEN" THIS TO `doc as JsonSchema`, OR DELETE THE CAST.
|
|
121
|
-
*
|
|
122
|
-
* It reads like laziness and is not. `JsonSchema` (src/primitives/card-validate.ts)
|
|
123
|
-
* pins `type` to a literal union — `'string' | 'number' | ... | 'null'` — while
|
|
124
|
-
* TypeScript infers plain `string` for the `"type"` member of an imported JSON
|
|
125
|
-
* literal, so a schema document is NOT assignable to `JsonSchema` and no narrowing
|
|
126
|
-
* short of a per-file `as const` would make it so. On top of that the documents
|
|
127
|
-
* legitimately carry `$schema`, `$id`, `title`, `description`, `default`,
|
|
128
|
-
* `additionalProperties`, `x-kai-*` and (in `embed` and `artifact`)
|
|
129
|
-
* `allOf`/`if`/`then`/`oneOf`, which `JsonSchema` does not describe at all.
|
|
130
|
-
*
|
|
131
|
-
* So this widens once, at the module boundary, deliberately. It is not a claim
|
|
132
|
-
* about the contents, and the claim it does NOT make is checked elsewhere:
|
|
133
|
-
* `verify:schemas` imports the BUILT entry from a temp package outside the repo and
|
|
134
|
-
* asserts every exported value is byte-identical to its file on disk. A tighter
|
|
135
|
-
* type here would buy nothing that check does not already prove, and would cost the
|
|
136
|
-
* ability to represent the schemas we actually ship.
|
|
137
|
-
*/
|
|
138
|
-
const asSchema = (doc: unknown): CardSchema => doc as CardSchema;
|
|
139
|
-
|
|
140
|
-
/**
|
|
141
|
-
* The card-DATA schemas: one per built-in `CardEnvelope.type`, describing the
|
|
142
|
-
* `data` payload for that type. These are the tool candidates. The key IS the
|
|
143
|
-
* envelope type.
|
|
144
|
-
*/
|
|
145
|
-
export type CardSchemaName = 'artifact' | 'choice' | 'confirm' | 'embed' | 'form' | 'link' | 'tasks';
|
|
146
|
-
|
|
147
|
-
/**
|
|
148
|
-
* The contract shapes: the envelope itself, the event a card emits back up, and the
|
|
149
|
-
* two result payloads. Not card data and NOT tool candidates — a model is never
|
|
150
|
-
* asked to emit one of these, so keeping them out of `cardSchemas` is what stops
|
|
151
|
-
* `cardTools()` offering the model an envelope-shaped tool.
|
|
152
|
-
*/
|
|
153
|
-
export type ContractSchemaName = 'card-envelope' | 'card-event' | 'form.result' | 'tasks.result';
|
|
154
|
-
|
|
155
|
-
/** The 7 card-data schemas, keyed by `CardEnvelope.type`. */
|
|
156
|
-
export const cardSchemas: Readonly<Record<CardSchemaName, CardSchema>> = Object.freeze({
|
|
157
|
-
artifact: asSchema(artifactSchema),
|
|
158
|
-
choice: asSchema(choiceSchema),
|
|
159
|
-
confirm: asSchema(confirmSchema),
|
|
160
|
-
embed: asSchema(embedSchema),
|
|
161
|
-
form: asSchema(formSchema),
|
|
162
|
-
link: asSchema(linkSchema),
|
|
163
|
-
tasks: asSchema(tasksSchema),
|
|
164
|
-
});
|
|
165
|
-
|
|
166
|
-
/** The 4 contract shapes, keyed by file stem. */
|
|
167
|
-
export const contractSchemas: Readonly<Record<ContractSchemaName, CardSchema>> = Object.freeze({
|
|
168
|
-
'card-envelope': asSchema(cardEnvelopeSchema),
|
|
169
|
-
'card-event': asSchema(cardEventSchema),
|
|
170
|
-
'form.result': asSchema(formResultSchema),
|
|
171
|
-
'tasks.result': asSchema(tasksResultSchema),
|
|
172
|
-
});
|
|
173
|
-
|
|
174
|
-
/** The built-in card types, in the order `cardSchemas` declares them. */
|
|
175
|
-
export const cardSchemaNames: readonly CardSchemaName[] = Object.freeze(
|
|
176
|
-
Object.keys(cardSchemas) as CardSchemaName[],
|
|
177
|
-
);
|
|
178
|
-
|
|
179
|
-
/** Narrow an arbitrary string to a built-in card type. */
|
|
180
|
-
export function isCardSchemaName(name: string): name is CardSchemaName {
|
|
181
|
-
return Object.prototype.hasOwnProperty.call(cardSchemas, name);
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
// Re-exported so a consumer reading a schema out of these maps can annotate what
|
|
185
|
-
// they hand to the kit's validator without a second import.
|
|
186
|
-
export type { JsonSchema, ValidationResult } from '../primitives/card-validate';
|
|
187
|
-
export type { CardEnvelope } from '../primitives/card-contract';
|
|
188
|
-
|
|
189
|
-
// The card PAYLOAD types — `CardEnvelope.data`, one per built-in card type — so a
|
|
190
|
-
// TypeScript backend can NAME the shape it is building instead of assembling an
|
|
191
|
-
// `unknown` and hoping.
|
|
192
|
-
//
|
|
193
|
-
// This is the point of the whole entry, restated at the type level. We publish
|
|
194
|
-
// `./schemas/*.json` precisely so a Python or Go route can generate models for
|
|
195
|
-
// these payloads, and until this block existed TypeScript — the language the kit
|
|
196
|
-
// is authored in — was the one that could not: the types lived inside their
|
|
197
|
-
// components' `.tsx`, so naming one from a Node/no-DOM project was TS6142 and
|
|
198
|
-
// re-exporting one from here would have dragged the Solid tree into this entry's
|
|
199
|
-
// graph. They are authored in ../primitives/card-data-types.ts now, which has no
|
|
200
|
-
// DOM and no Solid below it, so this costs the entry nothing — see that file's
|
|
201
|
-
// header, and note that the check which can tell the difference is
|
|
202
|
-
// `tsc --noEmit -p tsconfig.mcp.json` on a tree with no dist/ present.
|
|
203
|
-
//
|
|
204
|
-
// Types only: they erase, so this adds nothing to dist/schemas.js.
|
|
205
|
-
export type {
|
|
206
|
-
ArtifactCardData,
|
|
207
|
-
ArtifactCardEnvelope,
|
|
208
|
-
ArtifactCardFile,
|
|
209
|
-
ArtifactCardTab,
|
|
210
|
-
ChoiceAllowOther,
|
|
211
|
-
ChoiceCardData,
|
|
212
|
-
ChoiceCardEnvelope,
|
|
213
|
-
ChoiceOption,
|
|
214
|
-
ChoiceOptionMedia,
|
|
215
|
-
ConfirmAction,
|
|
216
|
-
ConfirmActionStyle,
|
|
217
|
-
ConfirmCardData,
|
|
218
|
-
ConfirmCardEnvelope,
|
|
219
|
-
ConfirmTone,
|
|
220
|
-
FormCardEnvelope,
|
|
221
|
-
FormDefinition,
|
|
222
|
-
FormField,
|
|
223
|
-
TasksCardData,
|
|
224
|
-
TasksCardEnvelope,
|
|
225
|
-
TasksCardResult,
|
|
226
|
-
TasksTask,
|
|
227
|
-
} from '../primitives/card-data-types';
|
|
228
|
-
|
|
229
|
-
// The remaining two payload types, `link` and `embed`.
|
|
230
|
-
//
|
|
231
|
-
// They are NOT in card-data-types.ts, and that is deliberate rather than an
|
|
232
|
-
// oversight to be tidied later: that file exists to rescue types that were
|
|
233
|
-
// trapped inside a `.tsx`, and these two never were. `LinkPreviewData` and
|
|
234
|
-
// `EmbedCardData` have always been authored beside the pure logic that consumes
|
|
235
|
-
// them — `resolveLinkMetadata`, `resolveEmbed`/`watchUrl` — in modules that carry
|
|
236
|
-
// no DOM and no Solid, so they were already importable from a Node/no-DOM
|
|
237
|
-
// project. Moving them would buy nothing and would split each type from the
|
|
238
|
-
// functions written against it.
|
|
239
|
-
//
|
|
240
|
-
// Which is precisely how they got missed. The extraction that created
|
|
241
|
-
// card-data-types.ts swept the `.tsx` files, exported what it found HERE, and
|
|
242
|
-
// the two types that needed no rescuing were never on its list — five of seven
|
|
243
|
-
// payload types landed on this entry and nobody noticed the other two, because
|
|
244
|
-
// both are exported from src/index.ts and every check asked only whether a
|
|
245
|
-
// consumer could reach them from SOME public barrel. A backend cannot import
|
|
246
|
-
// from src/index.ts; that is the Solid-bearing one. See the REACHABILITY note in
|
|
247
|
-
// card-type-parity.test.ts, which now enumerates the payload types from
|
|
248
|
-
// `cardSchemas` and requires each to be reachable from THIS entry specifically.
|
|
249
|
-
//
|
|
250
|
-
// `EmbedProvider` comes along because `EmbedCardData.provider` names it, and a
|
|
251
|
-
// member type a consumer cannot import leaves them writing `provider: 'youtube'
|
|
252
|
-
// as EmbedCardData['provider']`. `ResolvedEmbed` and `LinkMetadataFetcher` stay
|
|
253
|
-
// off this entry on purpose — they describe how a card RENDERS and how an app
|
|
254
|
-
// resolves metadata in the browser, neither of which a route builds.
|
|
255
|
-
export type { EmbedCardData, EmbedCardEnvelope, EmbedProvider } from '../primitives/embed-providers';
|
|
256
|
-
export type { LinkPreviewData, LinkPreviewEnvelope } from '../primitives/link-preview';
|
|
257
|
-
|
|
258
|
-
// The loop, both directions.
|
|
259
|
-
//
|
|
260
|
-
// `cardTools` projects a card schema INTO a provider tool definition;
|
|
261
|
-
// `cardFromToolCall` turns the model's call back into a renderable envelope. They
|
|
262
|
-
// are the two halves of one contract and the tool-name convention that joins them
|
|
263
|
-
// lives in ./from-tool-call, spelled once. Exporting `from-tool-call` here is not
|
|
264
|
-
// bookkeeping: `verify:schemas` and `verify:ssr` both read the BUILT entry, so a
|
|
265
|
-
// module missing from this barrel is a module no guard covers.
|
|
266
|
-
export { cardFromToolCall, isCardTool, cardTypeFromToolName, toolNameForCardType, KAI_TOOL_PREFIX } from './from-tool-call';
|
|
267
|
-
|
|
268
|
-
// `tool-defs` imports `cardSchemas` back out of this module so that
|
|
269
|
-
// `cardTools({ provider })` can default to the built-ins. That cycle is deliberate
|
|
270
|
-
// and safe (the read happens inside a function, never at module init); the comment
|
|
271
|
-
// on `builtInSchemas()` over there explains why, and why it must not be hoisted.
|
|
272
|
-
export {
|
|
273
|
-
CARD_TOOL_DESCRIPTIONS,
|
|
274
|
-
UnsupportedCardToolSchemaError,
|
|
275
|
-
cardTools,
|
|
276
|
-
toAnthropicTools,
|
|
277
|
-
toJsonSchemaTools,
|
|
278
|
-
toOpenAITools,
|
|
279
|
-
} from './tool-defs';
|
|
280
|
-
export type {
|
|
281
|
-
AnthropicToolDef,
|
|
282
|
-
CardRequireRule,
|
|
283
|
-
CardToolInput,
|
|
284
|
-
CardToolOptions,
|
|
285
|
-
CardToolSource,
|
|
286
|
-
JsonSchemaToolDef,
|
|
287
|
-
OpenAIToolDef,
|
|
288
|
-
ToolDef,
|
|
289
|
-
ToolDefFor,
|
|
290
|
-
ToolParameters,
|
|
291
|
-
ToolProvider,
|
|
292
|
-
UnsupportedCardTool,
|
|
293
|
-
} from './tool-defs';
|
|
294
|
-
|
|
295
|
-
// The registry: "these are the card types THIS app renders", written once and threaded
|
|
296
|
-
// to both ends (`chat.cardTypes = cards.tags` on the client, `cardTools(cards, …)` on
|
|
297
|
-
// the route). It is what turns the `cardTypes` seam from something a developer CAN use
|
|
298
|
-
// into the path they normally take, which is the only thing that stops it rotting again
|
|
299
|
-
// the way it did when the conformance spike's `spike-artifact` workaround was deleted.
|
|
300
|
-
//
|
|
301
|
-
// `registry.ts` imports `cardSchemas` back out of this module, the same deliberate
|
|
302
|
-
// cycle `tool-defs` has and for the same reason; the read happens inside
|
|
303
|
-
// `createCardRegistry`, never at module init.
|
|
304
|
-
export { createCardRegistry } from './registry';
|
|
305
|
-
export type { CardRegistry, CardRegistrySpec, CustomCardSpec, IncompletePolicy } from './registry';
|
|
306
|
-
|
|
307
|
-
// Re-exported so a route can check a custom card's data server-side, in the tool loop,
|
|
308
|
-
// with the same tiering the browser dispatchers use, rather than a second validator.
|
|
309
|
-
// `registry.validate()` is the ergonomic form; this is the same function underneath.
|
|
310
|
-
export { cardValidationMessage, validateCardData } from '../primitives/card-validate-cards';
|
|
311
|
-
export type { CardValidationIssue, CardValidationReport, CardValidationTier } from '../primitives/card-validate-cards';
|
|
312
|
-
|
|
313
|
-
// `CardEnvelope.type` -> the `kai-*` element that renders it — exported because a
|
|
314
|
-
// server-side reader needed it and was inventing its own answer instead.
|
|
315
|
-
//
|
|
316
|
-
// src/agent-tooling/mcp/manifest.ts used to RE-DERIVE this map from the element
|
|
317
|
-
// manifest by convention (`kai-<type>`, else the single `kai-<type>-*`). The
|
|
318
|
-
// derivation was correct — it even got `link` -> `kai-link-preview` right, via the
|
|
319
|
-
// prefix branch — but it was a second copy of a fact the repo already held, kept
|
|
320
|
-
// honest only by a test. It re-derived because the authoritative map shared a module
|
|
321
|
-
// with `BUILTIN_CARD_COMPONENTS`, which is nothing but Solid, and the MCP is a
|
|
322
|
-
// Node/no-DOM project (tsconfig.mcp.json: `lib: ["ESNext"]`, no `jsx` — giving it one
|
|
323
|
-
// measures 0 errors -> 1364). src/primitives/card-tags.ts is that data on its own, so
|
|
324
|
-
// the map is now readable from source by anything, with or without a DOM.
|
|
325
|
-
//
|
|
326
|
-
// See "WHAT `verify:ssr` DOES NOT CATCH" above before describing the split as a
|
|
327
|
-
// bundle-safety fix: it is a dependency-graph fix, and the bundle is identical either
|
|
328
|
-
// way today.
|
|
329
|
-
//
|
|
330
|
-
// `mergeCardTags` is deliberately NOT re-exported here: merging a consumer's overrides
|
|
331
|
-
// is a rendering concern, it already ships from the main entry, and this one is for
|
|
332
|
-
// routes.
|
|
333
|
-
export { BUILTIN_CARD_TAGS } from '../primitives/card-tags';
|
|
334
|
-
export type { CardTagMap } from '../primitives/card-tags';
|
|
335
|
-
|
|
336
|
-
// The two provider subsets, exported rather than kept private, because a developer
|
|
337
|
-
// registering a CUSTOM card schema in Phase 2 needs the same check we run on ours,
|
|
338
|
-
// and because `verify:tool-schemas` reads them out of the BUILT entry rather than
|
|
339
|
-
// re-deriving them (a guard with its own copy of the table proves nothing).
|
|
340
|
-
export { ANTHROPIC_STRICT, OPENAI_STRICT, checkProviderSubset, providerSubsets } from './provider-subsets';
|
|
341
|
-
export type { KeywordRule, KeywordStatus, ProviderSubset, StrictProviderId, SubsetViolation } from './provider-subsets';
|