@ai-matrx/rich-content 0.2.46 → 0.2.48
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/CHANGELOG.md +15 -0
- package/dist/copy/markdown-copy-html.d.ts +1 -1
- package/dist/copy/markdown-copy-html.js +2 -2
- package/dist/display/markdown-classification/processors/utils/content-splitter-core.d.ts +1 -1
- package/dist/host/app-bindings.js +12 -2
- package/dist/rich-document/variants/shared/AlchemyDocumentMenu.js +1 -1
- package/dist/utils/json.d.ts +3 -19
- package/dist/utils/json.js +1 -9
- package/package.json +8 -8
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.2.48
|
|
4
|
+
|
|
5
|
+
- The copy commands and the document menu strip thinking with THE rule
|
|
6
|
+
(`stripThinking`, `@ai-matrx/content-ir/source`) instead of a static import of
|
|
7
|
+
`@ai-matrx/print/markdown`, which put KaTeX and an HTML parser on every first screen. The
|
|
8
|
+
formatted-HTML copy still loads print at click time.
|
|
9
|
+
|
|
10
|
+
## 0.2.47
|
|
11
|
+
|
|
12
|
+
- The JSON value types and guards (`isJsonObject`, `isJsonArray`, `isJsonPrimitive`, `Json*`)
|
|
13
|
+
in `./utils/json` are re-exported from their one home, `@ai-matrx/kit/json-format`; only
|
|
14
|
+
`toJsonRecord` stays rich-content's own (architecture step 3).
|
|
15
|
+
|
|
16
|
+
Consumer action: none — `@ai-matrx/rich-content/utils/json` keeps every name.
|
|
17
|
+
|
|
3
18
|
## 0.2.46
|
|
4
19
|
|
|
5
20
|
- **A text field's "…" menu reads its text aloud.** `RegistryActionList` has no bar above it,
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { removeThinkingContent } from "@ai-matrx/
|
|
1
|
+
export { stripThinking as removeThinkingContent } from "@ai-matrx/content-ir/source";
|
|
2
2
|
/** The formatted HTML for a copy (loaded at click time), or `undefined` when this host writes plain text only. */
|
|
3
3
|
export declare function formattedCopyHtml(markdown: string): Promise<string> | undefined;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { stripThinking } from "@ai-matrx/content-ir/source";
|
|
2
2
|
function formattedCopyHtml(markdown) {
|
|
3
3
|
return import("@ai-matrx/print/markdown").then(({ markdownToHtml }) => markdownToHtml(markdown));
|
|
4
4
|
}
|
|
5
5
|
export {
|
|
6
6
|
formattedCopyHtml,
|
|
7
|
-
removeThinkingContent
|
|
7
|
+
stripThinking as removeThinkingContent
|
|
8
8
|
};
|
|
@@ -111,7 +111,7 @@ declare const JSON_BLOCK_PATTERNS: {
|
|
|
111
111
|
};
|
|
112
112
|
readonly decision_tree: {
|
|
113
113
|
readonly rootKey: "decision_tree";
|
|
114
|
-
readonly validate: (parsed: unknown) => import("
|
|
114
|
+
readonly validate: (parsed: unknown) => import("@ai-matrx/kit/json-format").JsonValue | undefined;
|
|
115
115
|
};
|
|
116
116
|
readonly comparison_table: {
|
|
117
117
|
readonly rootKey: "comparison";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { ConfirmDialog as DesignSystemConfirmDialog } from "@ai-matrx/design-system";
|
|
3
|
-
import { createElement } from "react";
|
|
3
|
+
import { createElement, lazy, Suspense } from "react";
|
|
4
4
|
import { GenericStructuredView } from "@ai-matrx/content-ir-react";
|
|
5
5
|
import { announceBareHost, BARE_HOST_ATTR, hostCapability } from "./registry.js";
|
|
6
6
|
function binding(key) {
|
|
@@ -47,7 +47,17 @@ const getArtifactDef = fn("getArtifactDef", nothing, "no artifact types are know
|
|
|
47
47
|
const resolveArtifactDef = fn("resolveArtifactDef", nothing, "no artifact types are known");
|
|
48
48
|
const hasArtifactRenderer = fn("hasArtifactRenderer", () => false, "no artifact renderers are known");
|
|
49
49
|
const ArtifactRender = component("ArtifactRender", ValueFloor, "artifacts render through the generic structured view");
|
|
50
|
-
const
|
|
50
|
+
const LazyCodeBlock = lazy(() => import("../code-block/CodeBlock.js"));
|
|
51
|
+
function PlainCodeBlock(props) {
|
|
52
|
+
const { conversationId: _c, messageId: _m, existingArtifactId: _a, extraMenuItems: _e, ...rest } = props;
|
|
53
|
+
const code = typeof rest.code === "string" ? rest.code : "";
|
|
54
|
+
return createElement(
|
|
55
|
+
Suspense,
|
|
56
|
+
{ fallback: createElement("pre", { ...BARE_HOST_ATTR, "data-code-block-loading": "" }, createElement("code", null, code)) },
|
|
57
|
+
createElement(LazyCodeBlock, rest)
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
const CodeBlockWithContextAttach = component("CodeBlockWithContextAttach", PlainCodeBlock, "code blocks render without the attach-to-context action");
|
|
51
61
|
const useOpenConvertToShapeWindow = fn("useOpenConvertToShapeWindow", nothing, "no convert-to-shape window");
|
|
52
62
|
const useOpenSmartCodeEditorWindow = fn("useOpenSmartCodeEditorWindow", nothing, "no code editor window");
|
|
53
63
|
const useOpenTableViewerWindow = fn("useOpenTableViewerWindow", nothing, "no table viewer window");
|
|
@@ -5,7 +5,7 @@ import * as React from "react";
|
|
|
5
5
|
import { ContentTransferMenu } from "@ai-matrx/alchemy/react/workspace";
|
|
6
6
|
import { unwrapKindEnvelopes } from "@ai-matrx/content-ir/source";
|
|
7
7
|
import { directSource } from "@ai-matrx/alchemy/operate";
|
|
8
|
-
import { removeThinkingContent } from "@ai-matrx/
|
|
8
|
+
import { stripThinking as removeThinkingContent } from "@ai-matrx/content-ir/source";
|
|
9
9
|
function AlchemyDocumentMenu({
|
|
10
10
|
getCtx,
|
|
11
11
|
sourceId,
|
package/dist/utils/json.d.ts
CHANGED
|
@@ -35,21 +35,9 @@
|
|
|
35
35
|
* open / loosely-shaped JSON the standards doc calls "just an object" — they
|
|
36
36
|
* give it an honest name so nobody reaches for `any` or a whole-row cast.
|
|
37
37
|
*/
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
* cleanly (mirrors Supabase's original generated `Json` object member).
|
|
42
|
-
*/
|
|
43
|
-
export interface JsonObject {
|
|
44
|
-
[key: string]: JsonValue | undefined;
|
|
45
|
-
}
|
|
46
|
-
export type JsonArray = JsonValue[];
|
|
47
|
-
export type JsonValue = JsonPrimitive | JsonObject | JsonArray;
|
|
48
|
-
/**
|
|
49
|
-
* Narrow an `unknown` (e.g. a bare JSONB column) to a `JsonObject`.
|
|
50
|
-
* Plain object only — arrays and `null` return false.
|
|
51
|
-
*/
|
|
52
|
-
export declare function isJsonObject(value: unknown): value is JsonObject;
|
|
38
|
+
import type { JsonObject, JsonValue } from "@ai-matrx/kit/json-format";
|
|
39
|
+
export { isJsonArray, isJsonObject, isJsonPrimitive } from "@ai-matrx/kit/json-format";
|
|
40
|
+
export type { JsonArray, JsonObject, JsonPrimitive, JsonValue } from "@ai-matrx/kit/json-format";
|
|
53
41
|
/**
|
|
54
42
|
* Convert a `JsonObject` (values `JsonValue | undefined`) into the strict
|
|
55
43
|
* `Record<string, JsonValue>` shape generated API request bodies demand,
|
|
@@ -57,7 +45,3 @@ export declare function isJsonObject(value: unknown): value is JsonObject;
|
|
|
57
45
|
* only appears via optional-key reads). Cast-free by construction.
|
|
58
46
|
*/
|
|
59
47
|
export declare function toJsonRecord(obj: JsonObject): Record<string, JsonValue>;
|
|
60
|
-
/** Narrow an `unknown` to a `JsonArray`. */
|
|
61
|
-
export declare function isJsonArray(value: unknown): value is JsonArray;
|
|
62
|
-
/** Narrow an `unknown` to a JSON primitive (string | number | boolean | null). */
|
|
63
|
-
export declare function isJsonPrimitive(value: unknown): value is JsonPrimitive;
|
package/dist/utils/json.js
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
3
|
-
}
|
|
1
|
+
import { isJsonArray, isJsonObject, isJsonPrimitive } from "@ai-matrx/kit/json-format";
|
|
4
2
|
function toJsonRecord(obj) {
|
|
5
3
|
const out = {};
|
|
6
4
|
for (const [key, value] of Object.entries(obj)) {
|
|
@@ -8,12 +6,6 @@ function toJsonRecord(obj) {
|
|
|
8
6
|
}
|
|
9
7
|
return out;
|
|
10
8
|
}
|
|
11
|
-
function isJsonArray(value) {
|
|
12
|
-
return Array.isArray(value);
|
|
13
|
-
}
|
|
14
|
-
function isJsonPrimitive(value) {
|
|
15
|
-
return value === null || typeof value === "string" || typeof value === "number" || typeof value === "boolean";
|
|
16
|
-
}
|
|
17
9
|
export {
|
|
18
10
|
isJsonArray,
|
|
19
11
|
isJsonObject,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ai-matrx/rich-content",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.48",
|
|
4
4
|
"description": "The AI Matrx formatted-text engine: the one markdown renderer, streaming markdown, the block splitter and renderer, the generic blocks, <RichContent> levels, the rich-document action registry and menus, copy, and the selection toolbar — as portable React.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -130,21 +130,21 @@
|
|
|
130
130
|
"unist-util-visit": "^5.1.0",
|
|
131
131
|
"unist-util-visit-parents": "^6.0.2",
|
|
132
132
|
"yaml": "^2.9.1",
|
|
133
|
-
"@ai-matrx/agents": "latest",
|
|
134
|
-
"@ai-matrx/alchemy": "latest",
|
|
135
|
-
"@ai-matrx/canvas": "latest",
|
|
136
133
|
"@ai-matrx/content-ir": "latest",
|
|
134
|
+
"@ai-matrx/alchemy": "latest",
|
|
137
135
|
"@ai-matrx/content-ir-react": "latest",
|
|
136
|
+
"@ai-matrx/agents": "latest",
|
|
138
137
|
"@ai-matrx/data": "latest",
|
|
139
|
-
"@ai-matrx/
|
|
138
|
+
"@ai-matrx/canvas": "latest",
|
|
140
139
|
"@ai-matrx/diff": "latest",
|
|
141
140
|
"@ai-matrx/icons": "latest",
|
|
142
141
|
"@ai-matrx/kit": "latest",
|
|
143
|
-
"@ai-matrx/media": "latest",
|
|
144
|
-
"@ai-matrx/print": "latest",
|
|
145
142
|
"@ai-matrx/records": "latest",
|
|
143
|
+
"@ai-matrx/print": "latest",
|
|
146
144
|
"@ai-matrx/records-ui": "latest",
|
|
147
|
-
"@ai-matrx/
|
|
145
|
+
"@ai-matrx/media": "latest",
|
|
146
|
+
"@ai-matrx/tap-target": "latest",
|
|
147
|
+
"@ai-matrx/design-system": "latest"
|
|
148
148
|
},
|
|
149
149
|
"peerDependencies": {
|
|
150
150
|
"react": ">=19.0.0",
|