@ai-matrx/chat 0.7.4 → 0.7.6
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 +19 -0
- package/dist/agents/components/ambient-assistant/ScrollAssistantLauncherImpl.js +13 -6
- package/dist/agents/components/identity-refs/AiIdentityRef.js +2 -2
- package/dist/agents/redux/conversation-list/conversation-row-actions.thunks.d.ts +5 -1
- package/dist/agents/redux/conversation-list/conversation-row-actions.thunks.js +64 -12
- package/dist/agents/redux/execution-system/message-crud/soft-delete-conversation.thunk.js +22 -12
- package/dist/agents/redux/execution-system/utils/stream-block-accumulator.d.ts +69 -333
- package/dist/agents/redux/execution-system/utils/stream-block-accumulator.js +268 -1896
- package/dist/host/defaults/files-ui.js +2 -1
- package/dist/host/defaults/server-api.d.ts +69 -0
- package/dist/host/defaults/server-api.js +6 -0
- package/dist/host/server/call-api.d.ts +69 -0
- package/dist/host/server/call-api.js +8 -0
- package/dist/tool-call-visualization/configured-rows/field-components.js +23 -45
- package/package.json +11 -10
- package/dist/agents/redux/execution-system/utils/content-prefilter.d.ts +0 -50
- package/dist/agents/redux/execution-system/utils/content-prefilter.js +0 -243
|
@@ -3,6 +3,7 @@ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
|
3
3
|
import { useCallback, useEffect, useState } from "react";
|
|
4
4
|
import { X } from "lucide-react";
|
|
5
5
|
import { downloadFile as saveBlob } from "@ai-matrx/kit/download";
|
|
6
|
+
import { formatFileSize } from "@ai-matrx/kit/format";
|
|
6
7
|
import { FileIcon, MediaThumbnail } from "@ai-matrx/media/react";
|
|
7
8
|
import { downloadFile } from "@ai-matrx/media/files/engine/api/files";
|
|
8
9
|
import { useFile } from "@ai-matrx/media/files/engine/handler/hooks/useFile";
|
|
@@ -115,7 +116,7 @@ function useDefaultFileResourceFamily(fileId) {
|
|
|
115
116
|
if (state.fileId !== fileId) return { data: null, loading: true, error: null };
|
|
116
117
|
return { data: state.data, loading: false, error: state.error };
|
|
117
118
|
}
|
|
118
|
-
const formatBytes = (n) => n == null ? null :
|
|
119
|
+
const formatBytes = (n) => n == null ? null : formatFileSize(n);
|
|
119
120
|
function DefaultFileResourceChip({ fileId, fileHint, nameOverride, badge, onOpen, onRemove, className }) {
|
|
120
121
|
const { file, status } = useFile(fileId && !isSyntheticId(fileId) ? { kind: "file_id", fileId } : null);
|
|
121
122
|
const name = nameOverride || file?.meta.fileName || fileHint?.fileName || (status === "resolving" ? "Loading\u2026" : "File");
|
|
@@ -70,6 +70,10 @@ export interface DefaultChatServerTypes {
|
|
|
70
70
|
CompactTurnsResult: Schemas["CompactTurnsResponse"];
|
|
71
71
|
ConversationForkBody: Schemas["ForkRequest"];
|
|
72
72
|
ConversationForkAndRunBody: Schemas["ForkAndRunRequest"];
|
|
73
|
+
ConversationSettingsBody: Schemas["ConversationSettingsUpdate"];
|
|
74
|
+
ConversationSettingsResult: Schemas["ConversationSettingsResponse"];
|
|
75
|
+
ConversationDeleteResult: Schemas["ConversationDeleteResponse"];
|
|
76
|
+
SandboxBindBody: Schemas["SandboxBindRequest"];
|
|
73
77
|
MatrxTransportOptions: {
|
|
74
78
|
expectedErrorStatuses?: readonly number[];
|
|
75
79
|
source?: string;
|
|
@@ -220,6 +224,71 @@ export declare function createDefaultServerApi(host: () => ServerHostView): {
|
|
|
220
224
|
turn_count: number;
|
|
221
225
|
position_range: [number, number];
|
|
222
226
|
}>>>;
|
|
227
|
+
callConversationUpdate: (options: {
|
|
228
|
+
conversationId: string;
|
|
229
|
+
body?: unknown;
|
|
230
|
+
signal?: AbortSignal;
|
|
231
|
+
scopeOverrides?: Partial<DefaultCallScope>;
|
|
232
|
+
onStreamStart?: DefaultApiCallConfig["onStreamStart"];
|
|
233
|
+
onStreamEvent?: DefaultApiCallConfig["onStreamEvent"];
|
|
234
|
+
onStreamComplete?: DefaultApiCallConfig["onStreamComplete"];
|
|
235
|
+
onStreamError?: DefaultApiCallConfig["onStreamError"];
|
|
236
|
+
}) => DefaultServerThunk<Promise<DefaultApiCallResult<{
|
|
237
|
+
conversation_id: string;
|
|
238
|
+
fields: string[];
|
|
239
|
+
title?: string | null;
|
|
240
|
+
status?: string | null;
|
|
241
|
+
exclude_from_kg?: boolean | null;
|
|
242
|
+
}>>>;
|
|
243
|
+
callConversationDelete: (options: {
|
|
244
|
+
conversationId: string;
|
|
245
|
+
body?: unknown;
|
|
246
|
+
signal?: AbortSignal;
|
|
247
|
+
scopeOverrides?: Partial<DefaultCallScope>;
|
|
248
|
+
onStreamStart?: DefaultApiCallConfig["onStreamStart"];
|
|
249
|
+
onStreamEvent?: DefaultApiCallConfig["onStreamEvent"];
|
|
250
|
+
onStreamComplete?: DefaultApiCallConfig["onStreamComplete"];
|
|
251
|
+
onStreamError?: DefaultApiCallConfig["onStreamError"];
|
|
252
|
+
}) => DefaultServerThunk<Promise<DefaultApiCallResult<{
|
|
253
|
+
conversation_id: string;
|
|
254
|
+
deleted: boolean;
|
|
255
|
+
}>>>;
|
|
256
|
+
callConversationSandboxBind: (options: {
|
|
257
|
+
conversationId: string;
|
|
258
|
+
body?: unknown;
|
|
259
|
+
signal?: AbortSignal;
|
|
260
|
+
scopeOverrides?: Partial<DefaultCallScope>;
|
|
261
|
+
onStreamStart?: DefaultApiCallConfig["onStreamStart"];
|
|
262
|
+
onStreamEvent?: DefaultApiCallConfig["onStreamEvent"];
|
|
263
|
+
onStreamComplete?: DefaultApiCallConfig["onStreamComplete"];
|
|
264
|
+
onStreamError?: DefaultApiCallConfig["onStreamError"];
|
|
265
|
+
}) => DefaultServerThunk<Promise<DefaultApiCallResult<{
|
|
266
|
+
conversation_id: string;
|
|
267
|
+
sandbox_instance_id?: string | null;
|
|
268
|
+
sandbox_id?: string | null;
|
|
269
|
+
status?: string | null;
|
|
270
|
+
tier?: string | null;
|
|
271
|
+
armed?: boolean;
|
|
272
|
+
reason?: string | null;
|
|
273
|
+
}>>>;
|
|
274
|
+
callConversationSandboxUnbind: (options: {
|
|
275
|
+
conversationId: string;
|
|
276
|
+
body?: unknown;
|
|
277
|
+
signal?: AbortSignal;
|
|
278
|
+
scopeOverrides?: Partial<DefaultCallScope>;
|
|
279
|
+
onStreamStart?: DefaultApiCallConfig["onStreamStart"];
|
|
280
|
+
onStreamEvent?: DefaultApiCallConfig["onStreamEvent"];
|
|
281
|
+
onStreamComplete?: DefaultApiCallConfig["onStreamComplete"];
|
|
282
|
+
onStreamError?: DefaultApiCallConfig["onStreamError"];
|
|
283
|
+
}) => DefaultServerThunk<Promise<DefaultApiCallResult<{
|
|
284
|
+
conversation_id: string;
|
|
285
|
+
sandbox_instance_id?: string | null;
|
|
286
|
+
sandbox_id?: string | null;
|
|
287
|
+
status?: string | null;
|
|
288
|
+
tier?: string | null;
|
|
289
|
+
armed?: boolean;
|
|
290
|
+
reason?: string | null;
|
|
291
|
+
}>>>;
|
|
223
292
|
createMatrxTransport: (_getState?: AnyGetState, options?: {
|
|
224
293
|
organizationId?: string;
|
|
225
294
|
source?: string;
|
|
@@ -171,6 +171,12 @@ function createDefaultServerApi(host) {
|
|
|
171
171
|
callHideMessages: call("POST", "/cx/conversations/{conversation_id}/messages/hide"),
|
|
172
172
|
callRestoreCompaction: call("POST", "/cx/conversations/{conversation_id}/messages/restore"),
|
|
173
173
|
callCompactTurns: call("POST", "/cx/conversations/{conversation_id}/compact"),
|
|
174
|
+
// THE ADMIN SEAT's write doors for a conversation's own settings, its delete and its
|
|
175
|
+
// sandbox binding (aidream cx_data.py / conversations.py, behind require_owned_conversation).
|
|
176
|
+
callConversationUpdate: call("PATCH", "/cx/conversations/{conversation_id}"),
|
|
177
|
+
callConversationDelete: call("DELETE", "/cx/conversations/{conversation_id}"),
|
|
178
|
+
callConversationSandboxBind: call("PUT", "/ai/conversations/{conversation_id}/sandbox"),
|
|
179
|
+
callConversationSandboxUnbind: call("DELETE", "/ai/conversations/{conversation_id}/sandbox"),
|
|
174
180
|
// matrx-transport
|
|
175
181
|
createMatrxTransport: (_getState, options = {}) => transport(options),
|
|
176
182
|
createMatrxTransportFromTarget: (getState, resolveTarget, options = {}) => createPackageTransport({
|
|
@@ -119,6 +119,71 @@ export declare const callCompactTurns: (options: {
|
|
|
119
119
|
turn_count: number;
|
|
120
120
|
position_range: [number, number];
|
|
121
121
|
}>>>;
|
|
122
|
+
export declare const callConversationUpdate: (options: {
|
|
123
|
+
conversationId: string;
|
|
124
|
+
body?: unknown;
|
|
125
|
+
signal?: AbortSignal;
|
|
126
|
+
scopeOverrides?: Partial<import("../defaults/server-api.js").DefaultCallScope>;
|
|
127
|
+
onStreamStart?: import("../defaults/server-api.js").DefaultApiCallConfig["onStreamStart"];
|
|
128
|
+
onStreamEvent?: import("../defaults/server-api.js").DefaultApiCallConfig["onStreamEvent"];
|
|
129
|
+
onStreamComplete?: import("../defaults/server-api.js").DefaultApiCallConfig["onStreamComplete"];
|
|
130
|
+
onStreamError?: import("../defaults/server-api.js").DefaultApiCallConfig["onStreamError"];
|
|
131
|
+
}) => import("../defaults/server-api.js").DefaultServerThunk<Promise<import("../defaults/server-api.js").DefaultApiCallResult<{
|
|
132
|
+
conversation_id: string;
|
|
133
|
+
fields: string[];
|
|
134
|
+
title?: string | null;
|
|
135
|
+
status?: string | null;
|
|
136
|
+
exclude_from_kg?: boolean | null;
|
|
137
|
+
}>>>;
|
|
138
|
+
export declare const callConversationDelete: (options: {
|
|
139
|
+
conversationId: string;
|
|
140
|
+
body?: unknown;
|
|
141
|
+
signal?: AbortSignal;
|
|
142
|
+
scopeOverrides?: Partial<import("../defaults/server-api.js").DefaultCallScope>;
|
|
143
|
+
onStreamStart?: import("../defaults/server-api.js").DefaultApiCallConfig["onStreamStart"];
|
|
144
|
+
onStreamEvent?: import("../defaults/server-api.js").DefaultApiCallConfig["onStreamEvent"];
|
|
145
|
+
onStreamComplete?: import("../defaults/server-api.js").DefaultApiCallConfig["onStreamComplete"];
|
|
146
|
+
onStreamError?: import("../defaults/server-api.js").DefaultApiCallConfig["onStreamError"];
|
|
147
|
+
}) => import("../defaults/server-api.js").DefaultServerThunk<Promise<import("../defaults/server-api.js").DefaultApiCallResult<{
|
|
148
|
+
conversation_id: string;
|
|
149
|
+
deleted: boolean;
|
|
150
|
+
}>>>;
|
|
151
|
+
export declare const callConversationSandboxBind: (options: {
|
|
152
|
+
conversationId: string;
|
|
153
|
+
body?: unknown;
|
|
154
|
+
signal?: AbortSignal;
|
|
155
|
+
scopeOverrides?: Partial<import("../defaults/server-api.js").DefaultCallScope>;
|
|
156
|
+
onStreamStart?: import("../defaults/server-api.js").DefaultApiCallConfig["onStreamStart"];
|
|
157
|
+
onStreamEvent?: import("../defaults/server-api.js").DefaultApiCallConfig["onStreamEvent"];
|
|
158
|
+
onStreamComplete?: import("../defaults/server-api.js").DefaultApiCallConfig["onStreamComplete"];
|
|
159
|
+
onStreamError?: import("../defaults/server-api.js").DefaultApiCallConfig["onStreamError"];
|
|
160
|
+
}) => import("../defaults/server-api.js").DefaultServerThunk<Promise<import("../defaults/server-api.js").DefaultApiCallResult<{
|
|
161
|
+
conversation_id: string;
|
|
162
|
+
sandbox_instance_id?: string | null;
|
|
163
|
+
sandbox_id?: string | null;
|
|
164
|
+
status?: string | null;
|
|
165
|
+
tier?: string | null;
|
|
166
|
+
armed?: boolean;
|
|
167
|
+
reason?: string | null;
|
|
168
|
+
}>>>;
|
|
169
|
+
export declare const callConversationSandboxUnbind: (options: {
|
|
170
|
+
conversationId: string;
|
|
171
|
+
body?: unknown;
|
|
172
|
+
signal?: AbortSignal;
|
|
173
|
+
scopeOverrides?: Partial<import("../defaults/server-api.js").DefaultCallScope>;
|
|
174
|
+
onStreamStart?: import("../defaults/server-api.js").DefaultApiCallConfig["onStreamStart"];
|
|
175
|
+
onStreamEvent?: import("../defaults/server-api.js").DefaultApiCallConfig["onStreamEvent"];
|
|
176
|
+
onStreamComplete?: import("../defaults/server-api.js").DefaultApiCallConfig["onStreamComplete"];
|
|
177
|
+
onStreamError?: import("../defaults/server-api.js").DefaultApiCallConfig["onStreamError"];
|
|
178
|
+
}) => import("../defaults/server-api.js").DefaultServerThunk<Promise<import("../defaults/server-api.js").DefaultApiCallResult<{
|
|
179
|
+
conversation_id: string;
|
|
180
|
+
sandbox_instance_id?: string | null;
|
|
181
|
+
sandbox_id?: string | null;
|
|
182
|
+
status?: string | null;
|
|
183
|
+
tier?: string | null;
|
|
184
|
+
armed?: boolean;
|
|
185
|
+
reason?: string | null;
|
|
186
|
+
}>>>;
|
|
122
187
|
export type ApiCallError = ChatServerTypes["ApiCallError"];
|
|
123
188
|
export type ApiCallResult = ChatServerTypes["ApiCallResult"];
|
|
124
189
|
export type CallScope = ChatServerTypes["CallScope"];
|
|
@@ -132,3 +197,7 @@ export type RestoreCompactionResult = ChatServerTypes["RestoreCompactionResult"]
|
|
|
132
197
|
export type CompactTurnsResult = ChatServerTypes["CompactTurnsResult"];
|
|
133
198
|
export type ConversationForkBody = ChatServerTypes["ConversationForkBody"];
|
|
134
199
|
export type ConversationForkAndRunBody = ChatServerTypes["ConversationForkAndRunBody"];
|
|
200
|
+
export type ConversationSettingsBody = ChatServerTypes["ConversationSettingsBody"];
|
|
201
|
+
export type ConversationSettingsResult = ChatServerTypes["ConversationSettingsResult"];
|
|
202
|
+
export type ConversationDeleteResult = ChatServerTypes["ConversationDeleteResult"];
|
|
203
|
+
export type SandboxBindBody = ChatServerTypes["SandboxBindBody"];
|
|
@@ -11,14 +11,22 @@ const callReplaceMessages = forwardServer("callReplaceMessages");
|
|
|
11
11
|
const callHideMessages = forwardServer("callHideMessages");
|
|
12
12
|
const callRestoreCompaction = forwardServer("callRestoreCompaction");
|
|
13
13
|
const callCompactTurns = forwardServer("callCompactTurns");
|
|
14
|
+
const callConversationUpdate = forwardServer("callConversationUpdate");
|
|
15
|
+
const callConversationDelete = forwardServer("callConversationDelete");
|
|
16
|
+
const callConversationSandboxBind = forwardServer("callConversationSandboxBind");
|
|
17
|
+
const callConversationSandboxUnbind = forwardServer("callConversationSandboxUnbind");
|
|
14
18
|
export {
|
|
15
19
|
buildRequestBody,
|
|
16
20
|
callApi,
|
|
17
21
|
callBatchDeleteMessages,
|
|
18
22
|
callCompactTurns,
|
|
23
|
+
callConversationDelete,
|
|
19
24
|
callConversationFork,
|
|
20
25
|
callConversationForkAndRun,
|
|
21
26
|
callConversationMemoryCost,
|
|
27
|
+
callConversationSandboxBind,
|
|
28
|
+
callConversationSandboxUnbind,
|
|
29
|
+
callConversationUpdate,
|
|
22
30
|
callHideMessages,
|
|
23
31
|
callReplaceMessages,
|
|
24
32
|
callRestoreCompaction,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { cn } from "@ai-matrx/design-system";
|
|
2
|
+
import { Badge, Table, TableBody, TableCell, TableHead, TableHeader, TableRow, cn } from "@ai-matrx/design-system";
|
|
3
3
|
import { MarkdownStream } from "../../ui/markdown-stream/MarkdownStream.js";
|
|
4
4
|
import { formatFileSize } from "@ai-matrx/kit/format";
|
|
5
5
|
import { Globe } from "lucide-react";
|
|
@@ -115,16 +115,7 @@ function formatToMime(format) {
|
|
|
115
115
|
if (f === "gif") return "image/gif";
|
|
116
116
|
return `image/${f}`;
|
|
117
117
|
}
|
|
118
|
-
const
|
|
119
|
-
"span",
|
|
120
|
-
{
|
|
121
|
-
className: cn(
|
|
122
|
-
"inline-flex rounded-full bg-muted px-2 py-0.5 text-[10px] text-muted-foreground",
|
|
123
|
-
className
|
|
124
|
-
),
|
|
125
|
-
children: String(value ?? "")
|
|
126
|
-
}
|
|
127
|
-
);
|
|
118
|
+
const BadgeField = ({ value, className }) => /* @__PURE__ */ jsx(Badge, { variant: "neutral", className, children: String(value ?? "") });
|
|
128
119
|
const Chips = ({ value, className }) => {
|
|
129
120
|
const items = Array.isArray(value) ? value.map((v) => v == null ? "" : String(v)).filter(Boolean) : value == null ? [] : [String(value)];
|
|
130
121
|
if (items.length === 0) return null;
|
|
@@ -179,7 +170,7 @@ const TabCard = ({ value, className }) => {
|
|
|
179
170
|
}
|
|
180
171
|
);
|
|
181
172
|
};
|
|
182
|
-
const
|
|
173
|
+
const ExtractTableField = ({ value, className }) => {
|
|
183
174
|
if (value == null || typeof value !== "object") return null;
|
|
184
175
|
const obj = value;
|
|
185
176
|
const columns = Array.isArray(obj.columns) ? obj.columns : [];
|
|
@@ -194,37 +185,24 @@ const Table = ({ value, className }) => {
|
|
|
194
185
|
});
|
|
195
186
|
});
|
|
196
187
|
if (visibleCols.length === 0) return null;
|
|
197
|
-
return /* @__PURE__ */ jsxs(
|
|
198
|
-
"
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
/* @__PURE__ */
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
{
|
|
216
|
-
className: "max-w-[20rem] truncate px-2 py-1 align-top text-foreground",
|
|
217
|
-
title: typeof cell?.value === "string" ? cell.value : void 0,
|
|
218
|
-
children: typeof cell?.value === "string" ? cell.value : cell?.value == null ? "" : String(cell.value)
|
|
219
|
-
},
|
|
220
|
-
c.index
|
|
221
|
-
);
|
|
222
|
-
}) }, r.index ?? ri)) })
|
|
223
|
-
] }),
|
|
224
|
-
obj.truncated === true && /* @__PURE__ */ jsx("div", { className: "border-t border-border/30 bg-muted/30 px-2 py-1 text-[10px] text-muted-foreground", children: "Table was truncated" })
|
|
225
|
-
]
|
|
226
|
-
}
|
|
227
|
-
);
|
|
188
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("rounded-md border border-border/40", className), children: [
|
|
189
|
+
/* @__PURE__ */ jsxs(Table, { size: "sm", children: [
|
|
190
|
+
/* @__PURE__ */ jsx(TableHeader, { children: /* @__PURE__ */ jsx(TableRow, { children: visibleCols.map((c) => /* @__PURE__ */ jsx(TableHead, { children: (c.path ?? []).join(" \u203A ") }, c.index)) }) }),
|
|
191
|
+
/* @__PURE__ */ jsx(TableBody, { children: rows.map((r, ri) => /* @__PURE__ */ jsx(TableRow, { children: visibleCols.map((c) => {
|
|
192
|
+
const cell = r.cells?.[c.index];
|
|
193
|
+
return /* @__PURE__ */ jsx(
|
|
194
|
+
TableCell,
|
|
195
|
+
{
|
|
196
|
+
className: "max-w-[20rem] truncate align-top",
|
|
197
|
+
title: typeof cell?.value === "string" ? cell.value : void 0,
|
|
198
|
+
children: typeof cell?.value === "string" ? cell.value : cell?.value == null ? "" : String(cell.value)
|
|
199
|
+
},
|
|
200
|
+
c.index
|
|
201
|
+
);
|
|
202
|
+
}) }, r.index ?? ri)) })
|
|
203
|
+
] }),
|
|
204
|
+
obj.truncated === true && /* @__PURE__ */ jsx("div", { className: "border-t border-border/30 bg-muted/30 px-2 py-1 text-[10px] text-muted-foreground", children: "Table was truncated" })
|
|
205
|
+
] });
|
|
228
206
|
};
|
|
229
207
|
const fieldComponents = {
|
|
230
208
|
BoldLabel,
|
|
@@ -234,10 +212,10 @@ const fieldComponents = {
|
|
|
234
212
|
Json,
|
|
235
213
|
Image,
|
|
236
214
|
Base64Image,
|
|
237
|
-
Badge,
|
|
215
|
+
Badge: BadgeField,
|
|
238
216
|
Chips,
|
|
239
217
|
TabCard,
|
|
240
|
-
Table
|
|
218
|
+
Table: ExtractTableField
|
|
241
219
|
};
|
|
242
220
|
export {
|
|
243
221
|
fieldComponents
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ai-matrx/chat",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.6",
|
|
4
4
|
"description": "THE one AI Matrx person-to-agent chat system: the full chat (running agents, conversations, tool calls, streaming, context, surfaces, voice) as explicit per-module subpaths @ai-matrx/chat/<domain>/<module> (no wildcards: scripts/public-modules.json) over a host contract (/host, /host/react) whose only required value is a db. One chat, one renderer: the old kernel entries (., /external-store, /matrx, /react, /tools, styles.css, tokens.css) are retired.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -4666,25 +4666,25 @@
|
|
|
4666
4666
|
"server-only": "^0.0.1",
|
|
4667
4667
|
"uuid": "^14.0.2",
|
|
4668
4668
|
"zod": "^4.6.5",
|
|
4669
|
-
"@ai-matrx/alchemy": "latest",
|
|
4670
|
-
"@ai-matrx/associations": "latest",
|
|
4671
|
-
"@ai-matrx/agents": "latest",
|
|
4672
4669
|
"@ai-matrx/browser-audio": "latest",
|
|
4673
|
-
"@ai-matrx/content-ir": "latest",
|
|
4674
4670
|
"@ai-matrx/canvas": "latest",
|
|
4671
|
+
"@ai-matrx/associations": "latest",
|
|
4672
|
+
"@ai-matrx/content-ir": "latest",
|
|
4675
4673
|
"@ai-matrx/content-ir-react": "latest",
|
|
4676
4674
|
"@ai-matrx/data": "latest",
|
|
4675
|
+
"@ai-matrx/design-system": "latest",
|
|
4676
|
+
"@ai-matrx/diff": "latest",
|
|
4677
4677
|
"@ai-matrx/icons": "latest",
|
|
4678
4678
|
"@ai-matrx/kit": "latest",
|
|
4679
4679
|
"@ai-matrx/media": "latest",
|
|
4680
4680
|
"@ai-matrx/print": "latest",
|
|
4681
4681
|
"@ai-matrx/realtime": "latest",
|
|
4682
|
+
"@ai-matrx/agents": "latest",
|
|
4682
4683
|
"@ai-matrx/records": "latest",
|
|
4683
|
-
"@ai-matrx/records-ui": "latest",
|
|
4684
4684
|
"@ai-matrx/rich-content": "latest",
|
|
4685
4685
|
"@ai-matrx/rich-editor": "latest",
|
|
4686
|
-
"@ai-matrx/
|
|
4687
|
-
"@ai-matrx/
|
|
4686
|
+
"@ai-matrx/records-ui": "latest",
|
|
4687
|
+
"@ai-matrx/alchemy": "latest"
|
|
4688
4688
|
},
|
|
4689
4689
|
"devDependencies": {
|
|
4690
4690
|
"@arethetypeswrong/cli": "^0.18.5",
|
|
@@ -4781,7 +4781,8 @@
|
|
|
4781
4781
|
"scripts": {
|
|
4782
4782
|
"build": "pnpm --filter @ai-matrx/rich-editor build && pnpm clean && tsup && node ./scripts/tsc-own.mjs -p tsconfig.build.json && node ./scripts/finish-build.mjs",
|
|
4783
4783
|
"clean": "node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"",
|
|
4784
|
-
"check:
|
|
4784
|
+
"check:styles": "node ../scripts/check-package-styles.mjs --package chat",
|
|
4785
|
+
"check:package": "pnpm build && pnpm check:styles && node ../scripts/check-exports-agreement.mjs && publint && pnpm verify:tarball && pnpm verify:modules-tarball && pnpm check:front-door:self-test && pnpm check:front-door:canary && pnpm check:host-boundary && pnpm check:no-builder-tier && pnpm check:one-holder && pnpm check:host-doors && pnpm check:no-package-slots && pnpm check:public-surface && pnpm check:side-effects && pnpm check:one-block-engine",
|
|
4785
4786
|
"check:host-boundary": "node ./scripts/check-host-boundary.mjs && node ./scripts/check-host-boundary.mjs --self-test",
|
|
4786
4787
|
"check:host-doors": "node ./scripts/check-host-source-doors.mjs && node ./scripts/check-host-source-doors.mjs --self-test",
|
|
4787
4788
|
"check:no-package-slots": "node ./scripts/check-no-package-slots.mjs && node ./scripts/check-no-package-slots.mjs --self-test",
|
|
@@ -4802,5 +4803,5 @@
|
|
|
4802
4803
|
"check:side-effects": "node ../scripts/check-side-effects-listed.mjs . && node ../scripts/check-side-effects-listed.mjs --self-test",
|
|
4803
4804
|
"check:public-surface": "node ./scripts/sync-public-surface.mjs --check && node ./scripts/sync-public-surface.mjs --self-test"
|
|
4804
4805
|
},
|
|
4805
|
-
"gitHead": "
|
|
4806
|
+
"gitHead": "393a0a08beeb948741a57c8efcbe806d24e64c4a"
|
|
4806
4807
|
}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Content Pre-Filter — Fast-reject layers for splitContentIntoBlocksV2
|
|
3
|
-
*
|
|
4
|
-
* Designed to run BEFORE any regex, JSON parsing, or XML extraction.
|
|
5
|
-
* Returns a set of candidate categories for a given line so the main
|
|
6
|
-
* parser can skip entire detection branches.
|
|
7
|
-
*
|
|
8
|
-
* Layer 0: Single-character scan (nanoseconds)
|
|
9
|
-
* Layer 1: Cheap secondary validation (tens of nanoseconds)
|
|
10
|
-
*
|
|
11
|
-
* If no candidates are found → the line is guaranteed to be plain text.
|
|
12
|
-
*/
|
|
13
|
-
/**
|
|
14
|
-
* Bit flags — a line can be a candidate for multiple categories simultaneously.
|
|
15
|
-
* Using bits so the main parser can do `if (candidates & Candidate.CODE)`.
|
|
16
|
-
*/
|
|
17
|
-
export declare const Candidate: {
|
|
18
|
-
readonly NONE: 0;
|
|
19
|
-
readonly TEXT: 0;
|
|
20
|
-
readonly CODE: number;
|
|
21
|
-
readonly XML_SIMPLE: number;
|
|
22
|
-
readonly XML_ATTR: number;
|
|
23
|
-
readonly TABLE: number;
|
|
24
|
-
readonly IMAGE: number;
|
|
25
|
-
readonly VIDEO: number;
|
|
26
|
-
readonly DIVIDER: number;
|
|
27
|
-
readonly TREE: number;
|
|
28
|
-
readonly BARE_JSON: number;
|
|
29
|
-
readonly AUDIO: number;
|
|
30
|
-
readonly MATRX_FILE: number;
|
|
31
|
-
};
|
|
32
|
-
export type CandidateFlags = number;
|
|
33
|
-
/**
|
|
34
|
-
* Scans a line and returns a bitmask of candidate categories.
|
|
35
|
-
*
|
|
36
|
-
* This scans the FULL line (not just the start) to support inline blocks
|
|
37
|
-
* like "Hello <decision prompt="...">". The scan is still cheap because
|
|
38
|
-
* we only look at individual characters — no regex, no string splitting.
|
|
39
|
-
*
|
|
40
|
-
* @param line The raw line (before trimming)
|
|
41
|
-
* @param trimmed The normalized+trimmed line (caller already has this)
|
|
42
|
-
* @returns Bitmask of Candidate flags
|
|
43
|
-
*/
|
|
44
|
-
export declare function classifyLine(line: string, trimmed: string): CandidateFlags;
|
|
45
|
-
export declare function isPlainText(flags: CandidateFlags): boolean;
|
|
46
|
-
/**
|
|
47
|
-
* Quick check for whether flags include a specific candidate.
|
|
48
|
-
* Usage: `if (hasCandidate(flags, Candidate.CODE)) { ... }`
|
|
49
|
-
*/
|
|
50
|
-
export declare function hasCandidate(flags: CandidateFlags, candidate: number): boolean;
|