@ai-matrx/chat 0.3.15 → 0.3.20
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 +53 -0
- package/dist/agents/components/agent-widgets/chat-assistant/CompactAssistantInput.js +1 -1
- package/dist/agents/components/inputs/AgentVariablesInline.js +1 -1
- package/dist/agents/components/inputs/smart-input/AgentTextarea.js +1 -1
- package/dist/agents/components/inputs/smart-input/InputActionButtons.js +1 -1
- package/dist/agents/components/inputs/smart-input/composer/ComposerAgentPeek.js +6 -6
- package/dist/agents/components/run/AgentRunHeader.js +1 -2
- package/dist/agents/components/shared/AgentConversationColumn.js +1 -1
- package/dist/agents/components/shared/AgentHeader.js +1 -2
- package/dist/agents/components/shared/AgentHeaderMobile.js +1 -2
- package/dist/agents/components/working-document/DocumentLinkPicker.d.ts +1 -1
- package/dist/agents/components/working-document/WorkingDocumentPanel.js +1 -1
- package/dist/agents/components/working-document/documents-workspace/DocumentsListRail.js +2 -2
- package/dist/agents/components/working-document/documents-workspace/DocumentsWorkspace.js +2 -2
- package/dist/agents/hooks/useInstanceInputUndoRedo.d.ts +1 -1
- package/dist/agents/hooks/useInstanceInputUndoRedo.js +1 -1
- package/dist/agents/hooks/useWorkingDocument.js +11 -7
- package/dist/agents/model-registry/model-classes.d.ts +1 -43
- package/dist/agents/model-registry/model-classes.js +1 -40
- package/dist/agents/model-registry/parse.d.ts +1 -88
- package/dist/agents/model-registry/parse.js +1 -246
- package/dist/agents/redux/agent-definition/selectors.d.ts +8 -8
- package/dist/agents/redux/execution-system/instance-working-document/cx-working-document.service.d.ts +18 -16
- package/dist/agents/redux/execution-system/instance-working-document/cx-working-document.service.js +101 -52
- package/dist/agents/redux/execution-system/instance-working-document/instance-working-document.slice.d.ts +2 -2
- package/dist/agents/redux/execution-system/instance-working-document/instance-working-document.thunks.d.ts +1 -1
- package/dist/agents/redux/execution-system/instance-working-document/scratchpad.thunks.d.ts +1 -1
- package/dist/agents/utils/platform-keys.d.ts +15 -0
- package/dist/agents/utils/platform-keys.js +69 -0
- package/dist/cx-chat/components/user-input/ConversationInput.js +1 -1
- package/dist/cx-conversation/ConversationInput.js +1 -1
- package/dist/host/db-types.d.ts +1123 -1691
- package/dist/host/ui-slots.d.ts +47 -64
- package/dist/host/ui-slots.js +10 -52
- package/dist/public-chat/components/GuidedVariableInputs.js +1 -1
- package/dist/public-chat/components/PublicVariableInputs.js +1 -1
- package/dist/react.cjs +11 -23
- package/dist/react.cjs.map +1 -1
- package/dist/react.js +11 -23
- package/dist/react.js.map +1 -1
- package/dist/surfaces/manifests/_conversation-document.manifest.js +1 -1
- package/dist/tool-call-visualization/registry/registry.js +13 -0
- package/dist/tool-call-visualization/result-fields/KeyValueGrid.d.ts +6 -0
- package/dist/tool-call-visualization/result-fields/KeyValueGrid.js +10 -2
- package/dist/ui/composer/useTouchOnlyDevice.js +1 -1
- package/dist/ui/skills-types.d.ts +1 -275
- package/dist/ui/skills-types.js +1 -0
- package/package.json +59 -33
- package/dist/agents/components/run/run-sidebar/AgentRunsSidebar.d.ts +0 -15
- package/dist/agents/components/run/run-sidebar/AgentRunsSidebar.js +0 -201
- package/dist/agents/components/run-controls/AgentExecutionTestModal.d.ts +0 -36
- package/dist/agents/components/run-controls/AgentExecutionTestModal.js +0 -440
- package/dist/agents/components/run-controls/AgentLauncherSidebarTester.d.ts +0 -6
- package/dist/agents/components/run-controls/AgentLauncherSidebarTester.js +0 -127
- package/dist/agents/components/run-controls/AgentWidgetInvokerTester.d.ts +0 -6
- package/dist/agents/components/run-controls/AgentWidgetInvokerTester.js +0 -84
- package/dist/agents/components/run-controls/CreatorRunPanel.d.ts +0 -22
- package/dist/agents/components/run-controls/CreatorRunPanel.js +0 -108
- package/dist/agents/components/run-controls/CreatorRunTabContent.d.ts +0 -30
- package/dist/agents/components/run-controls/CreatorRunTabContent.js +0 -319
- package/dist/agents/components/run-controls/PayloadTab.d.ts +0 -5
- package/dist/agents/components/run-controls/PayloadTab.js +0 -388
- package/dist/agents/components/run-controls/TesterSettingsPanel.d.ts +0 -71
- package/dist/agents/components/run-controls/TesterSettingsPanel.js +0 -470
- package/dist/agents/components/shared/AgentOptionsMenu.d.ts +0 -8
- package/dist/agents/components/shared/AgentOptionsMenu.js +0 -776
- package/dist/agents/components/shared/AgentPeekDuplicateButton.d.ts +0 -8
- package/dist/agents/components/shared/AgentPeekDuplicateButton.js +0 -66
- package/dist/agents/components/shared/AgentSaveStatus.d.ts +0 -7
- package/dist/agents/components/shared/AgentSaveStatus.js +0 -128
- package/dist/agents/components/shared/AgentSaveTapButton.d.ts +0 -18
- package/dist/agents/components/shared/AgentSaveTapButton.js +0 -105
- package/dist/agents/components/shared/useAgentSaveAction.d.ts +0 -33
- package/dist/agents/components/shared/useAgentSaveAction.js +0 -179
- package/dist/agents/components/shell/AgentsListHeader.d.ts +0 -1
- package/dist/agents/components/shell/AgentsListHeader.js +0 -69
- package/dist/agents/components/undo-history/AgentEditHistory.d.ts +0 -9
- package/dist/agents/components/undo-history/AgentEditHistory.js +0 -244
- package/dist/agents/components/unused/AgentSharedHeader.d.ts +0 -3
- package/dist/agents/components/unused/AgentSharedHeader.js +0 -134
- package/dist/agents/components/widgets/AgentWidgetsPage.d.ts +0 -11
- package/dist/agents/components/widgets/AgentWidgetsPage.js +0 -571
- package/dist/agents/components/widgets/WidgetVariableInputs.d.ts +0 -8
- package/dist/agents/components/widgets/WidgetVariableInputs.js +0 -80
- package/dist/agents/components/widgets/build-widget-launch.d.ts +0 -70
- package/dist/agents/components/widgets/build-widget-launch.js +0 -90
- package/dist/agents/hooks/useAgentAutoSave.d.ts +0 -1
- package/dist/agents/hooks/useAgentAutoSave.js +0 -127
- package/dist/agents/hooks/useAgentBuilderWriteHandlers.d.ts +0 -9
- package/dist/agents/hooks/useAgentBuilderWriteHandlers.js +0 -102
- package/dist/agents/hooks/useAgentDuplicateFlow.d.ts +0 -25
- package/dist/agents/hooks/useAgentDuplicateFlow.js +0 -133
- package/dist/agents/hooks/useAgentUndoRedo.d.ts +0 -31
- package/dist/agents/hooks/useAgentUndoRedo.js +0 -134
- package/dist/agents/hooks/useAgentUsages.d.ts +0 -17
- package/dist/agents/hooks/useAgentUsages.js +0 -36
- package/dist/agents/hooks/useDriftAlerts.d.ts +0 -11
- package/dist/agents/hooks/useDriftAlerts.js +0 -36
- package/dist/agents/hooks/useDriftReport.d.ts +0 -20
- package/dist/agents/hooks/useDriftReport.js +0 -34
- package/dist/agents/lifecycle/useAgentLifecycleActions.d.ts +0 -17
- package/dist/agents/lifecycle/useAgentLifecycleActions.js +0 -63
- package/dist/agents/message-flags/useMessageFlags.d.ts +0 -8
- package/dist/agents/message-flags/useMessageFlags.js +0 -68
- package/dist/agents/services/agent-definition-snapshot.service.d.ts +0 -15
- package/dist/agents/services/agent-definition-snapshot.service.js +0 -20
- package/dist/agents/surface-catalog-profile.d.ts +0 -96
- package/dist/agents/surface-catalog-profile.js +0 -79
- package/dist/cx-chat/hooks/useAgentBootstrap.d.ts +0 -1
- package/dist/cx-chat/hooks/useAgentBootstrap.js +0 -110
- package/dist/host/builder-door.d.ts +0 -61
- package/dist/host/builder-door.js +0 -25
- package/dist/next/lazy/CreatorRunPanel.d.ts +0 -1
- package/dist/next/lazy/CreatorRunPanel.js +0 -11
- package/dist/ui/composer/composerSubmit.d.ts +0 -50
- package/dist/ui/composer/composerSubmit.js +0 -32
|
@@ -80,7 +80,7 @@ const CONVERSATION_DOCUMENT_VALUES = [
|
|
|
80
80
|
{
|
|
81
81
|
name: "document_id",
|
|
82
82
|
label: "Document ID",
|
|
83
|
-
description: "UUID of the durable `
|
|
83
|
+
description: "UUID of the durable `content.document` row backing this document. Empty while the document is ephemeral (Redux-only) or bound to a note instead. Required for any action that writes the durable row directly.",
|
|
84
84
|
valueType: "string",
|
|
85
85
|
alwaysAvailable: false,
|
|
86
86
|
typicalCharCount: 36,
|
|
@@ -1296,6 +1296,11 @@ const FALLBACK_PHASE_LABELS_BY_TOOLNAME = {
|
|
|
1296
1296
|
errorPrefix: "Failed to update tasks"
|
|
1297
1297
|
}
|
|
1298
1298
|
};
|
|
1299
|
+
const APPLY_SURFACE_WRITE_LABELS = {
|
|
1300
|
+
running: "Applying change",
|
|
1301
|
+
complete: "Applied",
|
|
1302
|
+
errorPrefix: "Could not apply change"
|
|
1303
|
+
};
|
|
1299
1304
|
const FALLBACK_PHASE_LABELS_BY_DISPLAYNAME = {
|
|
1300
1305
|
"Update Plan": {
|
|
1301
1306
|
running: "Updating plan",
|
|
@@ -1330,6 +1335,14 @@ function getToolPhaseLabel(toolName, displayName, phase, errorMessage, entry) {
|
|
|
1330
1335
|
if (reg?.phaseLabels) {
|
|
1331
1336
|
return formatPhaseLabel(reg.phaseLabels, phase, errorMessage);
|
|
1332
1337
|
}
|
|
1338
|
+
if (toolName === "apply_surface_write" && !reg) {
|
|
1339
|
+
const out = entry?.result;
|
|
1340
|
+
const status = out && typeof out === "object" && !Array.isArray(out) ? out.status : null;
|
|
1341
|
+
if (phase === "complete" && status === "declined_by_person") {
|
|
1342
|
+
return "Change declined";
|
|
1343
|
+
}
|
|
1344
|
+
return formatPhaseLabel(APPLY_SURFACE_WRITE_LABELS, phase, errorMessage);
|
|
1345
|
+
}
|
|
1333
1346
|
if (FALLBACK_PHASE_LABELS_BY_TOOLNAME[toolName]) {
|
|
1334
1347
|
return formatPhaseLabel(
|
|
1335
1348
|
FALLBACK_PHASE_LABELS_BY_TOOLNAME[toolName],
|
|
@@ -61,6 +61,12 @@ export declare function formatMetaNumber(n: number): string;
|
|
|
61
61
|
* line still says it is there.
|
|
62
62
|
*/
|
|
63
63
|
export declare function isNotApplicableValue(val: unknown): boolean;
|
|
64
|
+
/**
|
|
65
|
+
* The collapsed omission line NAMES what did not apply (review 8041caec,
|
|
66
|
+
* 2026-10-07: "1 field did not apply" left the reader guessing which). Up to
|
|
67
|
+
* three names are listed; past that the rest is counted.
|
|
68
|
+
*/
|
|
69
|
+
export declare function notApplicableSummary(names: readonly string[]): string;
|
|
64
70
|
/**
|
|
65
71
|
* An object carrying its own `__kind` is a kind, not a field list: it renders
|
|
66
72
|
* through the value door (`KindValueNode` → `AnswerValueView`) and the caller
|
|
@@ -118,6 +118,13 @@ const IdentifierListRow = ({
|
|
|
118
118
|
open && /* @__PURE__ */ jsx("div", { className: "mt-1 flex flex-wrap items-center gap-1.5", children: ids.map((id, i) => /* @__PURE__ */ jsx(ShortId, { value: id }, `${id}-${i}`)) })
|
|
119
119
|
] });
|
|
120
120
|
};
|
|
121
|
+
function notApplicableSummary(names) {
|
|
122
|
+
if (names.length === 0) return "";
|
|
123
|
+
const head = `${names.length} ${names.length === 1 ? "field" : "fields"} did not apply`;
|
|
124
|
+
const shown = names.slice(0, 3).join(", ");
|
|
125
|
+
const more = names.length - 3;
|
|
126
|
+
return `${head}: ${shown}${more > 0 ? ` and ${more} more` : ""}`;
|
|
127
|
+
}
|
|
121
128
|
const NotApplicableRow = ({ entries, labels, density, depth, embedMedia }) => {
|
|
122
129
|
const [open, setOpen] = React.useState(false);
|
|
123
130
|
return /* @__PURE__ */ jsxs("div", { className: "text-xs text-muted-foreground", children: [
|
|
@@ -125,7 +132,7 @@ const NotApplicableRow = ({ entries, labels, density, depth, embedMedia }) => {
|
|
|
125
132
|
e.stopPropagation();
|
|
126
133
|
setOpen((v) => !v);
|
|
127
134
|
}, children: [
|
|
128
|
-
|
|
135
|
+
notApplicableSummary(entries.map(([key]) => fieldLabel(key, labels).label)),
|
|
129
136
|
open ? " \u2014 hide" : " \u2014 show"
|
|
130
137
|
] }),
|
|
131
138
|
open && /* @__PURE__ */ jsx("dl", { className: "mt-1 grid grid-cols-[fit-content(40%)_minmax(0,1fr)] items-baseline gap-x-4 gap-y-1", children: entries.map(([key, val]) => /* @__PURE__ */ jsxs(React.Fragment, { children: [
|
|
@@ -287,5 +294,6 @@ export {
|
|
|
287
294
|
humanNameSiblingKey,
|
|
288
295
|
isIdentifierKey,
|
|
289
296
|
isIdentifierListKey,
|
|
290
|
-
isNotApplicableValue
|
|
297
|
+
isNotApplicableValue,
|
|
298
|
+
notApplicableSummary
|
|
291
299
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { useMediaQueryState } from "@ai-matrx/kit/media-query";
|
|
3
|
-
import { TOUCH_ONLY_DEVICE_QUERY } from "
|
|
3
|
+
import { TOUCH_ONLY_DEVICE_QUERY } from "@ai-matrx/kit/composer-keys";
|
|
4
4
|
function useTouchOnlyDevice() {
|
|
5
5
|
return useMediaQueryState(TOUCH_ONLY_DEVICE_QUERY) === true;
|
|
6
6
|
}
|
|
@@ -1,275 +1 @@
|
|
|
1
|
-
|
|
2
|
-
* features/skills/types.ts
|
|
3
|
-
*
|
|
4
|
-
* Wire shapes and view models for the Agent Skills feature.
|
|
5
|
-
*
|
|
6
|
-
* The Python backend wire shape uses snake_case (per Pydantic) — see
|
|
7
|
-
* `aidream/api/routers/skills.py` and `docs/AGENT_SKILLS_HANDOFF.md`. We
|
|
8
|
-
* mirror it once here in camelCase and convert at the slice boundary
|
|
9
|
-
* (`skillsConverters.ts`) so consumer components never touch snake_case.
|
|
10
|
-
*
|
|
11
|
-
* When the backend OpenAPI regenerates and `/api/skills/{id}/projects/...`
|
|
12
|
-
* is in `@ai-matrx/agents/generated/api-types`, swap the hand-mirrored
|
|
13
|
-
* `SkillRowWire` for the generated `components["schemas"]["SkillRow"]`
|
|
14
|
-
* and drop the `as never` casts in the thunks.
|
|
15
|
-
*/
|
|
16
|
-
export interface SkillRowWire {
|
|
17
|
-
id: string;
|
|
18
|
-
skill_id: string;
|
|
19
|
-
label: string;
|
|
20
|
-
description: string;
|
|
21
|
-
skill_type: string;
|
|
22
|
-
body: string | null;
|
|
23
|
-
icon_name: string | null;
|
|
24
|
-
model_preference: string | null;
|
|
25
|
-
allowed_tools: string[];
|
|
26
|
-
trigger_patterns: string[];
|
|
27
|
-
disable_auto_invocation: boolean;
|
|
28
|
-
platform_targets: string[];
|
|
29
|
-
version: string | null;
|
|
30
|
-
config: Record<string, unknown>;
|
|
31
|
-
category_id: string | null;
|
|
32
|
-
parent_skill_id: string | null;
|
|
33
|
-
is_active: boolean;
|
|
34
|
-
is_system: boolean;
|
|
35
|
-
is_public: boolean;
|
|
36
|
-
sort_order: number;
|
|
37
|
-
user_id: string | null;
|
|
38
|
-
organization_id: string | null;
|
|
39
|
-
project_id: string | null;
|
|
40
|
-
/** Many-to-many associations from skl_skill_projects (read-only on the list endpoint). */
|
|
41
|
-
project_ids: string[];
|
|
42
|
-
}
|
|
43
|
-
export interface CategoryRowWire {
|
|
44
|
-
id: string;
|
|
45
|
-
category_key: string;
|
|
46
|
-
label: string;
|
|
47
|
-
description: string | null;
|
|
48
|
-
icon_name: string | null;
|
|
49
|
-
color: string | null;
|
|
50
|
-
parent_category_id: string | null;
|
|
51
|
-
sort_order: number;
|
|
52
|
-
is_active: boolean;
|
|
53
|
-
/** `user_id IS NULL` → system category. Populated when reading direct
|
|
54
|
-
* from Supabase; the Python wire shape currently strips this on its
|
|
55
|
-
* CategoryRow response model (it's still on the row server-side). */
|
|
56
|
-
user_id?: string | null;
|
|
57
|
-
}
|
|
58
|
-
export interface SkillsListWire {
|
|
59
|
-
count: number;
|
|
60
|
-
skills: SkillRowWire[];
|
|
61
|
-
}
|
|
62
|
-
export interface CategoryListWire {
|
|
63
|
-
count: number;
|
|
64
|
-
categories: CategoryRowWire[];
|
|
65
|
-
}
|
|
66
|
-
/** `skill.resource` row as it comes off Supabase. The Python backend
|
|
67
|
-
* doesn't yet expose a CRUD surface for resources; reads + writes go
|
|
68
|
-
* direct via the Supabase client (RLS gates on parent-skill ownership). */
|
|
69
|
-
export interface ResourceRowWire {
|
|
70
|
-
id: string;
|
|
71
|
-
skill_id: string;
|
|
72
|
-
resource_type: string;
|
|
73
|
-
filename: string;
|
|
74
|
-
content: string | null;
|
|
75
|
-
storage_path: string | null;
|
|
76
|
-
mime_type: string | null;
|
|
77
|
-
sort_order: number;
|
|
78
|
-
is_active: boolean;
|
|
79
|
-
}
|
|
80
|
-
export interface IngestRequestWire {
|
|
81
|
-
roots: string[];
|
|
82
|
-
dry_run: boolean;
|
|
83
|
-
}
|
|
84
|
-
export interface IngestReportWire {
|
|
85
|
-
parsed: number;
|
|
86
|
-
created: number;
|
|
87
|
-
updated: number;
|
|
88
|
-
unchanged: number;
|
|
89
|
-
errors: string[];
|
|
90
|
-
skills: Array<{
|
|
91
|
-
skill_id: string;
|
|
92
|
-
source_path: string;
|
|
93
|
-
/** Slug (`platform.categories.slug`, dimension="skill"); "" if none. */
|
|
94
|
-
category?: string;
|
|
95
|
-
/** "created" | "updated" | "unchanged" | "error" | "pending" (dry run). */
|
|
96
|
-
status?: string;
|
|
97
|
-
/** Resulting `skill.definition.id` (UUID); absent on dry run or error. */
|
|
98
|
-
id?: string;
|
|
99
|
-
}>;
|
|
100
|
-
roots: string[];
|
|
101
|
-
}
|
|
102
|
-
export interface SkillCreateWire {
|
|
103
|
-
skill_id: string;
|
|
104
|
-
label: string;
|
|
105
|
-
description: string;
|
|
106
|
-
skill_type: string;
|
|
107
|
-
body: string;
|
|
108
|
-
disable_auto_invocation: boolean;
|
|
109
|
-
is_public: boolean;
|
|
110
|
-
icon_name?: string | null;
|
|
111
|
-
model_preference?: string | null;
|
|
112
|
-
allowed_tools?: string[];
|
|
113
|
-
trigger_patterns?: string[];
|
|
114
|
-
platform_targets?: string[];
|
|
115
|
-
version?: string | null;
|
|
116
|
-
config?: Record<string, unknown>;
|
|
117
|
-
category_id?: string | null;
|
|
118
|
-
parent_skill_id?: string | null;
|
|
119
|
-
}
|
|
120
|
-
export interface SkillPatchWire {
|
|
121
|
-
label?: string;
|
|
122
|
-
description?: string;
|
|
123
|
-
skill_type?: string;
|
|
124
|
-
body?: string;
|
|
125
|
-
icon_name?: string | null;
|
|
126
|
-
model_preference?: string | null;
|
|
127
|
-
allowed_tools?: string[];
|
|
128
|
-
trigger_patterns?: string[];
|
|
129
|
-
disable_auto_invocation?: boolean;
|
|
130
|
-
platform_targets?: string[];
|
|
131
|
-
version?: string | null;
|
|
132
|
-
config?: Record<string, unknown>;
|
|
133
|
-
category_id?: string | null;
|
|
134
|
-
parent_skill_id?: string | null;
|
|
135
|
-
is_public?: boolean;
|
|
136
|
-
is_active?: boolean;
|
|
137
|
-
}
|
|
138
|
-
export interface ProjectAssociationWire {
|
|
139
|
-
skill_id: string;
|
|
140
|
-
project_id: string;
|
|
141
|
-
}
|
|
142
|
-
/** The full skill row as it flows through the FE. Matches `SkillRowWire`
|
|
143
|
-
* field-for-field with snake_case → camelCase conversion. */
|
|
144
|
-
export interface SkillRow {
|
|
145
|
-
id: string;
|
|
146
|
-
skillId: string;
|
|
147
|
-
label: string;
|
|
148
|
-
description: string;
|
|
149
|
-
skillType: SkillType;
|
|
150
|
-
body: string | null;
|
|
151
|
-
iconName: string | null;
|
|
152
|
-
modelPreference: string | null;
|
|
153
|
-
allowedTools: string[];
|
|
154
|
-
triggerPatterns: string[];
|
|
155
|
-
disableAutoInvocation: boolean;
|
|
156
|
-
platformTargets: string[];
|
|
157
|
-
version: string | null;
|
|
158
|
-
config: Record<string, unknown>;
|
|
159
|
-
categoryId: string | null;
|
|
160
|
-
parentSkillId: string | null;
|
|
161
|
-
isActive: boolean;
|
|
162
|
-
isSystem: boolean;
|
|
163
|
-
isPublic: boolean;
|
|
164
|
-
sortOrder: number;
|
|
165
|
-
userId: string | null;
|
|
166
|
-
organizationId: string | null;
|
|
167
|
-
projectId: string | null;
|
|
168
|
-
/** Multi-project membership via skl_skill_projects join. */
|
|
169
|
-
projectIds: string[];
|
|
170
|
-
}
|
|
171
|
-
/** Resource row tied to a skill — markdown / text attachment, or a
|
|
172
|
-
* storage-path pointer (the storage-bucket integration is deferred;
|
|
173
|
-
* inline `content` covers the cases we use today). */
|
|
174
|
-
export interface ResourceRow {
|
|
175
|
-
id: string;
|
|
176
|
-
skillId: string;
|
|
177
|
-
resourceType: string;
|
|
178
|
-
filename: string;
|
|
179
|
-
content: string | null;
|
|
180
|
-
storagePath: string | null;
|
|
181
|
-
mimeType: string | null;
|
|
182
|
-
sortOrder: number;
|
|
183
|
-
isActive: boolean;
|
|
184
|
-
}
|
|
185
|
-
/** Local form draft for create / edit. */
|
|
186
|
-
export interface ResourceDraft {
|
|
187
|
-
id?: string;
|
|
188
|
-
skillId: string;
|
|
189
|
-
resourceType: string;
|
|
190
|
-
filename: string;
|
|
191
|
-
content: string;
|
|
192
|
-
mimeType: string | null;
|
|
193
|
-
sortOrder: number;
|
|
194
|
-
}
|
|
195
|
-
export interface CategoryRow {
|
|
196
|
-
id: string;
|
|
197
|
-
categoryKey: string;
|
|
198
|
-
label: string;
|
|
199
|
-
description: string | null;
|
|
200
|
-
iconName: string | null;
|
|
201
|
-
color: string | null;
|
|
202
|
-
parentCategoryId: string | null;
|
|
203
|
-
sortOrder: number;
|
|
204
|
-
isActive: boolean;
|
|
205
|
-
/** `null` → system category (visible to every user). Populated when
|
|
206
|
-
* the row was fetched via Supabase direct; may be undefined when read
|
|
207
|
-
* via the Python `/api/skills/categories` GET (which strips it
|
|
208
|
-
* today). The editor uses this to gate write-paths. */
|
|
209
|
-
userId?: string | null;
|
|
210
|
-
/** Full `platform.categories.metadata` blob. Kept so `updateCategoryThunk`
|
|
211
|
-
* can merge-patch it without wiping unrelated fields (description, is_active,
|
|
212
|
-
* legacy_table, etc. all live here). Absent on wire-path rows (Python API). */
|
|
213
|
-
metadata?: Record<string, unknown> | null;
|
|
214
|
-
}
|
|
215
|
-
export type IngestSkillStatus = "created" | "updated" | "unchanged" | "error"
|
|
216
|
-
/** Dry run — the write hasn't happened, so the real outcome is unknown. */
|
|
217
|
-
| "pending";
|
|
218
|
-
export interface IngestReport {
|
|
219
|
-
parsed: number;
|
|
220
|
-
created: number;
|
|
221
|
-
updated: number;
|
|
222
|
-
unchanged: number;
|
|
223
|
-
errors: string[];
|
|
224
|
-
skills: Array<{
|
|
225
|
-
skillId: string;
|
|
226
|
-
sourcePath: string;
|
|
227
|
-
/** Category slug from frontmatter; "" if none was set. */
|
|
228
|
-
category: string;
|
|
229
|
-
status: IngestSkillStatus;
|
|
230
|
-
/** Resulting `skill.definition.id`; null on dry run or error. */
|
|
231
|
-
id: string | null;
|
|
232
|
-
}>;
|
|
233
|
-
roots: string[];
|
|
234
|
-
}
|
|
235
|
-
/** Per-agent skill tiering (included / listed / forbidden). Stored on `agx_agent.skill_config` JSONB. */
|
|
236
|
-
export interface SkillConfig {
|
|
237
|
-
included: string[];
|
|
238
|
-
listed: string[];
|
|
239
|
-
forbidden: string[];
|
|
240
|
-
disabled: boolean;
|
|
241
|
-
}
|
|
242
|
-
/** SkillConfig with an "undecided" tier — used in the picker UI to surface
|
|
243
|
-
* skills that the agent neither includes nor lists nor forbids (the
|
|
244
|
-
* implicit DEFAULT bucket). */
|
|
245
|
-
export type SkillTier = "included" | "listed" | "forbidden" | "default";
|
|
246
|
-
/** Free-string per the wire contract, but these are the recognized values
|
|
247
|
-
* for filtering / labelling. */
|
|
248
|
-
export type SkillType = "render_block" | "convention" | "workflow" | "task" | "reference" | "mode" | "agent_behavior" | string;
|
|
249
|
-
/** Local form draft used while a skill is being edited / created. Mirrors
|
|
250
|
-
* SkillRow but the immutable identity fields collapse to single optional
|
|
251
|
-
* id / skill_id slots. */
|
|
252
|
-
export interface SkillDraft {
|
|
253
|
-
id?: string;
|
|
254
|
-
skillId: string;
|
|
255
|
-
label: string;
|
|
256
|
-
description: string;
|
|
257
|
-
skillType: SkillType;
|
|
258
|
-
body: string;
|
|
259
|
-
iconName: string | null;
|
|
260
|
-
modelPreference: string | null;
|
|
261
|
-
allowedTools: string[];
|
|
262
|
-
triggerPatterns: string[];
|
|
263
|
-
disableAutoInvocation: boolean;
|
|
264
|
-
platformTargets: string[];
|
|
265
|
-
version: string | null;
|
|
266
|
-
config: Record<string, unknown>;
|
|
267
|
-
categoryId: string | null;
|
|
268
|
-
parentSkillId: string | null;
|
|
269
|
-
isPublic: boolean;
|
|
270
|
-
/** Admin-only: when the form is in admin mode, this toggle promotes
|
|
271
|
-
* the row to `is_system=true`. Plumbing for the FE; rejected by the
|
|
272
|
-
* backend if the caller isn't an admin. */
|
|
273
|
-
isSystem: boolean;
|
|
274
|
-
}
|
|
275
|
-
export type AsyncStatus = "idle" | "loading" | "ready" | "error";
|
|
1
|
+
export * from "@ai-matrx/agents/skills";
|
package/dist/ui/skills-types.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "@ai-matrx/agents/skills";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ai-matrx/chat",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.20",
|
|
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 per-module subpaths @ai-matrx/chat/<domain>/<module> over a host contract (/host, /host/react) whose only required value is a db; plus the kernel compatibility entries (., /external-store, /matrx, /react, /tools, styles.css, tokens.css) until P28.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
@@ -87,103 +87,128 @@
|
|
|
87
87
|
"./tokens.css": "./dist/tokens.css",
|
|
88
88
|
"./host": {
|
|
89
89
|
"types": "./dist/host/index.d.ts",
|
|
90
|
-
"import": "./dist/host/index.js"
|
|
90
|
+
"import": "./dist/host/index.js",
|
|
91
|
+
"default": "./dist/host/index.js"
|
|
91
92
|
},
|
|
92
93
|
"./host/react": {
|
|
93
94
|
"types": "./dist/host/react.d.ts",
|
|
94
|
-
"import": "./dist/host/react.js"
|
|
95
|
+
"import": "./dist/host/react.js",
|
|
96
|
+
"default": "./dist/host/react.js"
|
|
95
97
|
},
|
|
96
98
|
"./action-requests/*": {
|
|
97
99
|
"types": "./dist/action-requests/*.d.ts",
|
|
98
|
-
"import": "./dist/action-requests/*.js"
|
|
100
|
+
"import": "./dist/action-requests/*.js",
|
|
101
|
+
"default": "./dist/action-requests/*.js"
|
|
99
102
|
},
|
|
100
103
|
"./agent-copy/*": {
|
|
101
104
|
"types": "./dist/agent-copy/*.d.ts",
|
|
102
|
-
"import": "./dist/agent-copy/*.js"
|
|
105
|
+
"import": "./dist/agent-copy/*.js",
|
|
106
|
+
"default": "./dist/agent-copy/*.js"
|
|
103
107
|
},
|
|
104
108
|
"./agents/*": {
|
|
105
109
|
"types": "./dist/agents/*.d.ts",
|
|
106
|
-
"import": "./dist/agents/*.js"
|
|
110
|
+
"import": "./dist/agents/*.js",
|
|
111
|
+
"default": "./dist/agents/*.js"
|
|
107
112
|
},
|
|
108
113
|
"./canvas/*": {
|
|
109
114
|
"types": "./dist/canvas/*.d.ts",
|
|
110
|
-
"import": "./dist/canvas/*.js"
|
|
115
|
+
"import": "./dist/canvas/*.js",
|
|
116
|
+
"default": "./dist/canvas/*.js"
|
|
111
117
|
},
|
|
112
118
|
"./compute/*": {
|
|
113
119
|
"types": "./dist/compute/*.d.ts",
|
|
114
|
-
"import": "./dist/compute/*.js"
|
|
120
|
+
"import": "./dist/compute/*.js",
|
|
121
|
+
"default": "./dist/compute/*.js"
|
|
115
122
|
},
|
|
116
123
|
"./context/*": {
|
|
117
124
|
"types": "./dist/context/*.d.ts",
|
|
118
|
-
"import": "./dist/context/*.js"
|
|
125
|
+
"import": "./dist/context/*.js",
|
|
126
|
+
"default": "./dist/context/*.js"
|
|
119
127
|
},
|
|
120
128
|
"./context-menu/*": {
|
|
121
129
|
"types": "./dist/context-menu/*.d.ts",
|
|
122
|
-
"import": "./dist/context-menu/*.js"
|
|
130
|
+
"import": "./dist/context-menu/*.js",
|
|
131
|
+
"default": "./dist/context-menu/*.js"
|
|
123
132
|
},
|
|
124
133
|
"./conversation/*": {
|
|
125
134
|
"types": "./dist/conversation/*.d.ts",
|
|
126
|
-
"import": "./dist/conversation/*.js"
|
|
135
|
+
"import": "./dist/conversation/*.js",
|
|
136
|
+
"default": "./dist/conversation/*.js"
|
|
127
137
|
},
|
|
128
138
|
"./cx-chat/*": {
|
|
129
139
|
"types": "./dist/cx-chat/*.d.ts",
|
|
130
|
-
"import": "./dist/cx-chat/*.js"
|
|
140
|
+
"import": "./dist/cx-chat/*.js",
|
|
141
|
+
"default": "./dist/cx-chat/*.js"
|
|
131
142
|
},
|
|
132
143
|
"./cx-conversation/*": {
|
|
133
144
|
"types": "./dist/cx-conversation/*.d.ts",
|
|
134
|
-
"import": "./dist/cx-conversation/*.js"
|
|
145
|
+
"import": "./dist/cx-conversation/*.js",
|
|
146
|
+
"default": "./dist/cx-conversation/*.js"
|
|
135
147
|
},
|
|
136
148
|
"./host/*": {
|
|
137
149
|
"types": "./dist/host/*.d.ts",
|
|
138
|
-
"import": "./dist/host/*.js"
|
|
150
|
+
"import": "./dist/host/*.js",
|
|
151
|
+
"default": "./dist/host/*.js"
|
|
139
152
|
},
|
|
140
153
|
"./mandates/*": {
|
|
141
154
|
"types": "./dist/mandates/*.d.ts",
|
|
142
|
-
"import": "./dist/mandates/*.js"
|
|
155
|
+
"import": "./dist/mandates/*.js",
|
|
156
|
+
"default": "./dist/mandates/*.js"
|
|
143
157
|
},
|
|
144
158
|
"./next/*": {
|
|
145
159
|
"types": "./dist/next/*.d.ts",
|
|
146
|
-
"import": "./dist/next/*.js"
|
|
160
|
+
"import": "./dist/next/*.js",
|
|
161
|
+
"default": "./dist/next/*.js"
|
|
147
162
|
},
|
|
148
163
|
"./public-chat/*": {
|
|
149
164
|
"types": "./dist/public-chat/*.d.ts",
|
|
150
|
-
"import": "./dist/public-chat/*.js"
|
|
165
|
+
"import": "./dist/public-chat/*.js",
|
|
166
|
+
"default": "./dist/public-chat/*.js"
|
|
151
167
|
},
|
|
152
168
|
"./quick-actions/*": {
|
|
153
169
|
"types": "./dist/quick-actions/*.d.ts",
|
|
154
|
-
"import": "./dist/quick-actions/*.js"
|
|
170
|
+
"import": "./dist/quick-actions/*.js",
|
|
171
|
+
"default": "./dist/quick-actions/*.js"
|
|
155
172
|
},
|
|
156
173
|
"./store/*": {
|
|
157
174
|
"types": "./dist/store/*.d.ts",
|
|
158
|
-
"import": "./dist/store/*.js"
|
|
175
|
+
"import": "./dist/store/*.js",
|
|
176
|
+
"default": "./dist/store/*.js"
|
|
159
177
|
},
|
|
160
178
|
"./surfaces/*": {
|
|
161
179
|
"types": "./dist/surfaces/*.d.ts",
|
|
162
|
-
"import": "./dist/surfaces/*.js"
|
|
180
|
+
"import": "./dist/surfaces/*.js",
|
|
181
|
+
"default": "./dist/surfaces/*.js"
|
|
163
182
|
},
|
|
164
183
|
"./testing/*": {
|
|
165
184
|
"types": "./dist/testing/*.d.ts",
|
|
166
|
-
"import": "./dist/testing/*.js"
|
|
185
|
+
"import": "./dist/testing/*.js",
|
|
186
|
+
"default": "./dist/testing/*.js"
|
|
167
187
|
},
|
|
168
188
|
"./tool-call-visualization/*": {
|
|
169
189
|
"types": "./dist/tool-call-visualization/*.d.ts",
|
|
170
|
-
"import": "./dist/tool-call-visualization/*.js"
|
|
190
|
+
"import": "./dist/tool-call-visualization/*.js",
|
|
191
|
+
"default": "./dist/tool-call-visualization/*.js"
|
|
171
192
|
},
|
|
172
193
|
"./ui/*": {
|
|
173
194
|
"types": "./dist/ui/*.d.ts",
|
|
174
|
-
"import": "./dist/ui/*.js"
|
|
195
|
+
"import": "./dist/ui/*.js",
|
|
196
|
+
"default": "./dist/ui/*.js"
|
|
175
197
|
},
|
|
176
198
|
"./utils/*": {
|
|
177
199
|
"types": "./dist/utils/*.d.ts",
|
|
178
|
-
"import": "./dist/utils/*.js"
|
|
200
|
+
"import": "./dist/utils/*.js",
|
|
201
|
+
"default": "./dist/utils/*.js"
|
|
179
202
|
},
|
|
180
203
|
"./voice-agent/*": {
|
|
181
204
|
"types": "./dist/voice-agent/*.d.ts",
|
|
182
|
-
"import": "./dist/voice-agent/*.js"
|
|
205
|
+
"import": "./dist/voice-agent/*.js",
|
|
206
|
+
"default": "./dist/voice-agent/*.js"
|
|
183
207
|
},
|
|
184
208
|
"./window-panels/*": {
|
|
185
209
|
"types": "./dist/window-panels/*.d.ts",
|
|
186
|
-
"import": "./dist/window-panels/*.js"
|
|
210
|
+
"import": "./dist/window-panels/*.js",
|
|
211
|
+
"default": "./dist/window-panels/*.js"
|
|
187
212
|
},
|
|
188
213
|
"./package.json": "./package.json"
|
|
189
214
|
},
|
|
@@ -202,23 +227,23 @@
|
|
|
202
227
|
"uuid": "^14.0.2",
|
|
203
228
|
"zod": "^4.6.5",
|
|
204
229
|
"@ai-matrx/agents": "latest",
|
|
205
|
-
"@ai-matrx/alchemy": "latest",
|
|
206
230
|
"@ai-matrx/associations": "latest",
|
|
207
|
-
"@ai-matrx/browser-audio": "latest",
|
|
208
231
|
"@ai-matrx/canvas": "latest",
|
|
232
|
+
"@ai-matrx/browser-audio": "latest",
|
|
233
|
+
"@ai-matrx/alchemy": "latest",
|
|
209
234
|
"@ai-matrx/content-ir": "latest",
|
|
210
235
|
"@ai-matrx/content-ir-react": "latest",
|
|
211
236
|
"@ai-matrx/data": "latest",
|
|
212
237
|
"@ai-matrx/design-system": "latest",
|
|
213
238
|
"@ai-matrx/diff": "latest",
|
|
214
239
|
"@ai-matrx/icons": "latest",
|
|
215
|
-
"@ai-matrx/kit": "latest",
|
|
216
240
|
"@ai-matrx/media": "latest",
|
|
217
241
|
"@ai-matrx/print": "latest",
|
|
218
|
-
"@ai-matrx/
|
|
219
|
-
"@ai-matrx/
|
|
242
|
+
"@ai-matrx/realtime": "latest",
|
|
243
|
+
"@ai-matrx/kit": "latest",
|
|
220
244
|
"@ai-matrx/tap-target": "latest",
|
|
221
|
-
"@ai-matrx/
|
|
245
|
+
"@ai-matrx/records": "latest",
|
|
246
|
+
"@ai-matrx/records-ui": "latest"
|
|
222
247
|
},
|
|
223
248
|
"devDependencies": {
|
|
224
249
|
"@arethetypeswrong/cli": "^0.18.5",
|
|
@@ -279,8 +304,9 @@
|
|
|
279
304
|
"scripts": {
|
|
280
305
|
"build": "pnpm clean && tsup && node ./scripts/copy-css.mjs && node ./scripts/tsc-own.mjs -p tsconfig.build.json && node ./scripts/finish-build.mjs",
|
|
281
306
|
"clean": "node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"",
|
|
282
|
-
"check:package": "pnpm build && node ../scripts/check-exports-agreement.mjs && pnpm check:canonical-pickers && publint && pnpm verify:tarball && pnpm verify:modules-tarball && pnpm check:front-door:self-test && pnpm check:host-boundary",
|
|
307
|
+
"check:package": "pnpm build && node ../scripts/check-exports-agreement.mjs && pnpm check:canonical-pickers && publint && pnpm verify:tarball && pnpm verify:modules-tarball && pnpm check:front-door:self-test && pnpm check:host-boundary && pnpm check:no-builder-tier",
|
|
283
308
|
"check:host-boundary": "node ./scripts/check-host-boundary.mjs && node ./scripts/check-host-boundary.mjs --self-test",
|
|
309
|
+
"check:no-builder-tier": "node ./scripts/check-chat-has-no-builder-tier.mjs && node ./scripts/check-chat-has-no-builder-tier.mjs --self-test",
|
|
284
310
|
"typecheck": "node ./node_modules/typescript/bin/tsc -p tsconfig.json --noEmit && node ./scripts/tsc-own.mjs -p tsconfig.modules.json",
|
|
285
311
|
"test": "vitest run && pnpm test:modules",
|
|
286
312
|
"test:modules": "jest -c jest.config.mjs",
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
interface AgentRunsSidebarProps {
|
|
2
|
-
agentId: string;
|
|
3
|
-
conversationId: string;
|
|
4
|
-
surfaceKey: string;
|
|
5
|
-
conversationIdFromUrl?: string;
|
|
6
|
-
currentRunId?: string;
|
|
7
|
-
onToggleSidebar: () => void;
|
|
8
|
-
/** Base path for the embedded header's back-link + agent switcher.
|
|
9
|
-
* Defaults to `/agents`. Admin surfaces should pass
|
|
10
|
-
* `/administration/agents/system-agents/agents`. */
|
|
11
|
-
basePath?: string;
|
|
12
|
-
backHref?: string;
|
|
13
|
-
}
|
|
14
|
-
export declare function AgentRunsSidebar({ agentId, conversationId, surfaceKey, conversationIdFromUrl, onToggleSidebar, basePath, backHref, }: AgentRunsSidebarProps): import("react").JSX.Element;
|
|
15
|
-
export {};
|