@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.
Files changed (116) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/dist/agents/components/agent-widgets/chat-assistant/CompactAssistantInput.js +1 -1
  3. package/dist/agents/components/inputs/AgentVariablesInline.js +1 -1
  4. package/dist/agents/components/inputs/smart-input/AgentTextarea.js +1 -1
  5. package/dist/agents/components/inputs/smart-input/InputActionButtons.js +1 -1
  6. package/dist/agents/components/inputs/smart-input/composer/ComposerAgentPeek.js +6 -6
  7. package/dist/agents/components/run/AgentRunHeader.js +1 -2
  8. package/dist/agents/components/shared/AgentConversationColumn.js +1 -1
  9. package/dist/agents/components/shared/AgentHeader.js +1 -2
  10. package/dist/agents/components/shared/AgentHeaderMobile.js +1 -2
  11. package/dist/agents/components/working-document/DocumentLinkPicker.d.ts +1 -1
  12. package/dist/agents/components/working-document/WorkingDocumentPanel.js +1 -1
  13. package/dist/agents/components/working-document/documents-workspace/DocumentsListRail.js +2 -2
  14. package/dist/agents/components/working-document/documents-workspace/DocumentsWorkspace.js +2 -2
  15. package/dist/agents/hooks/useInstanceInputUndoRedo.d.ts +1 -1
  16. package/dist/agents/hooks/useInstanceInputUndoRedo.js +1 -1
  17. package/dist/agents/hooks/useWorkingDocument.js +11 -7
  18. package/dist/agents/model-registry/model-classes.d.ts +1 -43
  19. package/dist/agents/model-registry/model-classes.js +1 -40
  20. package/dist/agents/model-registry/parse.d.ts +1 -88
  21. package/dist/agents/model-registry/parse.js +1 -246
  22. package/dist/agents/redux/agent-definition/selectors.d.ts +8 -8
  23. package/dist/agents/redux/execution-system/instance-working-document/cx-working-document.service.d.ts +18 -16
  24. package/dist/agents/redux/execution-system/instance-working-document/cx-working-document.service.js +101 -52
  25. package/dist/agents/redux/execution-system/instance-working-document/instance-working-document.slice.d.ts +2 -2
  26. package/dist/agents/redux/execution-system/instance-working-document/instance-working-document.thunks.d.ts +1 -1
  27. package/dist/agents/redux/execution-system/instance-working-document/scratchpad.thunks.d.ts +1 -1
  28. package/dist/agents/utils/platform-keys.d.ts +15 -0
  29. package/dist/agents/utils/platform-keys.js +69 -0
  30. package/dist/cx-chat/components/user-input/ConversationInput.js +1 -1
  31. package/dist/cx-conversation/ConversationInput.js +1 -1
  32. package/dist/host/db-types.d.ts +1123 -1691
  33. package/dist/host/ui-slots.d.ts +47 -64
  34. package/dist/host/ui-slots.js +10 -52
  35. package/dist/public-chat/components/GuidedVariableInputs.js +1 -1
  36. package/dist/public-chat/components/PublicVariableInputs.js +1 -1
  37. package/dist/react.cjs +11 -23
  38. package/dist/react.cjs.map +1 -1
  39. package/dist/react.js +11 -23
  40. package/dist/react.js.map +1 -1
  41. package/dist/surfaces/manifests/_conversation-document.manifest.js +1 -1
  42. package/dist/tool-call-visualization/registry/registry.js +13 -0
  43. package/dist/tool-call-visualization/result-fields/KeyValueGrid.d.ts +6 -0
  44. package/dist/tool-call-visualization/result-fields/KeyValueGrid.js +10 -2
  45. package/dist/ui/composer/useTouchOnlyDevice.js +1 -1
  46. package/dist/ui/skills-types.d.ts +1 -275
  47. package/dist/ui/skills-types.js +1 -0
  48. package/package.json +59 -33
  49. package/dist/agents/components/run/run-sidebar/AgentRunsSidebar.d.ts +0 -15
  50. package/dist/agents/components/run/run-sidebar/AgentRunsSidebar.js +0 -201
  51. package/dist/agents/components/run-controls/AgentExecutionTestModal.d.ts +0 -36
  52. package/dist/agents/components/run-controls/AgentExecutionTestModal.js +0 -440
  53. package/dist/agents/components/run-controls/AgentLauncherSidebarTester.d.ts +0 -6
  54. package/dist/agents/components/run-controls/AgentLauncherSidebarTester.js +0 -127
  55. package/dist/agents/components/run-controls/AgentWidgetInvokerTester.d.ts +0 -6
  56. package/dist/agents/components/run-controls/AgentWidgetInvokerTester.js +0 -84
  57. package/dist/agents/components/run-controls/CreatorRunPanel.d.ts +0 -22
  58. package/dist/agents/components/run-controls/CreatorRunPanel.js +0 -108
  59. package/dist/agents/components/run-controls/CreatorRunTabContent.d.ts +0 -30
  60. package/dist/agents/components/run-controls/CreatorRunTabContent.js +0 -319
  61. package/dist/agents/components/run-controls/PayloadTab.d.ts +0 -5
  62. package/dist/agents/components/run-controls/PayloadTab.js +0 -388
  63. package/dist/agents/components/run-controls/TesterSettingsPanel.d.ts +0 -71
  64. package/dist/agents/components/run-controls/TesterSettingsPanel.js +0 -470
  65. package/dist/agents/components/shared/AgentOptionsMenu.d.ts +0 -8
  66. package/dist/agents/components/shared/AgentOptionsMenu.js +0 -776
  67. package/dist/agents/components/shared/AgentPeekDuplicateButton.d.ts +0 -8
  68. package/dist/agents/components/shared/AgentPeekDuplicateButton.js +0 -66
  69. package/dist/agents/components/shared/AgentSaveStatus.d.ts +0 -7
  70. package/dist/agents/components/shared/AgentSaveStatus.js +0 -128
  71. package/dist/agents/components/shared/AgentSaveTapButton.d.ts +0 -18
  72. package/dist/agents/components/shared/AgentSaveTapButton.js +0 -105
  73. package/dist/agents/components/shared/useAgentSaveAction.d.ts +0 -33
  74. package/dist/agents/components/shared/useAgentSaveAction.js +0 -179
  75. package/dist/agents/components/shell/AgentsListHeader.d.ts +0 -1
  76. package/dist/agents/components/shell/AgentsListHeader.js +0 -69
  77. package/dist/agents/components/undo-history/AgentEditHistory.d.ts +0 -9
  78. package/dist/agents/components/undo-history/AgentEditHistory.js +0 -244
  79. package/dist/agents/components/unused/AgentSharedHeader.d.ts +0 -3
  80. package/dist/agents/components/unused/AgentSharedHeader.js +0 -134
  81. package/dist/agents/components/widgets/AgentWidgetsPage.d.ts +0 -11
  82. package/dist/agents/components/widgets/AgentWidgetsPage.js +0 -571
  83. package/dist/agents/components/widgets/WidgetVariableInputs.d.ts +0 -8
  84. package/dist/agents/components/widgets/WidgetVariableInputs.js +0 -80
  85. package/dist/agents/components/widgets/build-widget-launch.d.ts +0 -70
  86. package/dist/agents/components/widgets/build-widget-launch.js +0 -90
  87. package/dist/agents/hooks/useAgentAutoSave.d.ts +0 -1
  88. package/dist/agents/hooks/useAgentAutoSave.js +0 -127
  89. package/dist/agents/hooks/useAgentBuilderWriteHandlers.d.ts +0 -9
  90. package/dist/agents/hooks/useAgentBuilderWriteHandlers.js +0 -102
  91. package/dist/agents/hooks/useAgentDuplicateFlow.d.ts +0 -25
  92. package/dist/agents/hooks/useAgentDuplicateFlow.js +0 -133
  93. package/dist/agents/hooks/useAgentUndoRedo.d.ts +0 -31
  94. package/dist/agents/hooks/useAgentUndoRedo.js +0 -134
  95. package/dist/agents/hooks/useAgentUsages.d.ts +0 -17
  96. package/dist/agents/hooks/useAgentUsages.js +0 -36
  97. package/dist/agents/hooks/useDriftAlerts.d.ts +0 -11
  98. package/dist/agents/hooks/useDriftAlerts.js +0 -36
  99. package/dist/agents/hooks/useDriftReport.d.ts +0 -20
  100. package/dist/agents/hooks/useDriftReport.js +0 -34
  101. package/dist/agents/lifecycle/useAgentLifecycleActions.d.ts +0 -17
  102. package/dist/agents/lifecycle/useAgentLifecycleActions.js +0 -63
  103. package/dist/agents/message-flags/useMessageFlags.d.ts +0 -8
  104. package/dist/agents/message-flags/useMessageFlags.js +0 -68
  105. package/dist/agents/services/agent-definition-snapshot.service.d.ts +0 -15
  106. package/dist/agents/services/agent-definition-snapshot.service.js +0 -20
  107. package/dist/agents/surface-catalog-profile.d.ts +0 -96
  108. package/dist/agents/surface-catalog-profile.js +0 -79
  109. package/dist/cx-chat/hooks/useAgentBootstrap.d.ts +0 -1
  110. package/dist/cx-chat/hooks/useAgentBootstrap.js +0 -110
  111. package/dist/host/builder-door.d.ts +0 -61
  112. package/dist/host/builder-door.js +0 -25
  113. package/dist/next/lazy/CreatorRunPanel.d.ts +0 -1
  114. package/dist/next/lazy/CreatorRunPanel.js +0 -11
  115. package/dist/ui/composer/composerSubmit.d.ts +0 -50
  116. 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 `cx_working_documents` 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.",
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
- `${entries.length} ${entries.length === 1 ? "field" : "fields"} did not apply`,
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 "./composerSubmit.js";
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";
@@ -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.15",
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/records": "latest",
219
- "@ai-matrx/records-ui": "latest",
242
+ "@ai-matrx/realtime": "latest",
243
+ "@ai-matrx/kit": "latest",
220
244
  "@ai-matrx/tap-target": "latest",
221
- "@ai-matrx/realtime": "latest"
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 {};