@ai-matrx/chat 0.3.32 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/dist/agents/components/ambient-assistant/intelligence-places.js +2 -2
  3. package/dist/agents/components/chat/ChatConversationRoom.d.ts +7 -1
  4. package/dist/agents/components/chat/ChatConversationRoom.js +8 -2
  5. package/dist/agents/components/chat/intelligence-places.js +7 -7
  6. package/dist/agents/components/inputs/smart-input/RunToolPicker.js +7 -13
  7. package/dist/agents/components/inputs/smart-input/composer/ComposerAgentPill.js +3 -2
  8. package/dist/agents/components/inputs/smart-input/composer/useComposerAgent.js +5 -5
  9. package/dist/agents/components/inputs/smart-input/composer/useComposerAgentFilter.js +3 -2
  10. package/dist/agents/components/run-controls/RunConfigOverrides.js +10 -16
  11. package/dist/agents/components/run-controls/panels/shared.d.ts +0 -1
  12. package/dist/agents/hooks/useAgentModelLabel.js +4 -3
  13. package/dist/agents/hooks/useDiffEnrichment.js +3 -5
  14. package/dist/agents/hooks/useModelControls.d.ts +5 -161
  15. package/dist/agents/identity/model-catalog.d.ts +37 -0
  16. package/dist/agents/identity/model-catalog.js +103 -0
  17. package/dist/agents/redux/agent-definition/selectors.d.ts +0 -237
  18. package/dist/agents/redux/agent-definition/thunks.d.ts +1 -1
  19. package/dist/agents/redux/agent-settings/agentSettingsSlice.d.ts +1 -1
  20. package/dist/agents/redux/agent-settings/agentSettingsSlice.js +4 -6
  21. package/dist/agents/redux/agent-settings/selectors.d.ts +1 -152
  22. package/dist/agents/redux/agent-settings/selectors.js +0 -39
  23. package/dist/agents/redux/agent-settings/useNormalizedControls.d.ts +8 -0
  24. package/dist/agents/redux/agent-settings/useNormalizedControls.js +24 -0
  25. package/dist/agents/redux/agent-shortcut-categories/selectors.d.ts +0 -50
  26. package/dist/agents/redux/agent-shortcuts/selectors.d.ts +0 -147
  27. package/dist/agents/redux/conversation-history/selectors.d.ts +0 -16
  28. package/dist/agents/redux/conversation-list/conversation-list.selectors.d.ts +0 -2
  29. package/dist/agents/redux/execution-system/active-requests/active-requests.selectors.d.ts +0 -54
  30. package/dist/agents/redux/execution-system/context-state/context-state.selectors.d.ts +0 -14
  31. package/dist/agents/redux/execution-system/conversations/conversations.selectors.d.ts +0 -5
  32. package/dist/agents/redux/execution-system/instance-context/instance-context.selectors.d.ts +0 -3
  33. package/dist/agents/redux/execution-system/instance-resources/instance-resources.selectors.d.ts +0 -8
  34. package/dist/agents/redux/execution-system/instance-ui-state/instance-ui-state.selectors.d.ts +0 -5
  35. package/dist/agents/redux/execution-system/instance-variable-values/instance-variable-values.selectors.d.ts +0 -7
  36. package/dist/agents/redux/execution-system/messages/messages.selectors.d.ts +0 -1
  37. package/dist/agents/redux/execution-system/observability/observability.selectors.d.ts +0 -7
  38. package/dist/agents/redux/execution-system/observational-memory/observational-memory.selectors.d.ts +0 -1
  39. package/dist/agents/redux/execution-system/selectors/aggregate.selectors.d.ts +0 -14
  40. package/dist/agents/redux/execution-system/thunks/execute-manual-instance.thunk.js +2 -2
  41. package/dist/agents/redux/execution-system/thunks/launch-agent-execution.thunk.js +10 -2
  42. package/dist/agents/redux/execution-system/utils/required-organization.d.ts +14 -0
  43. package/dist/agents/redux/execution-system/utils/required-organization.js +4 -0
  44. package/dist/agents/redux/model-registry.d.ts +6 -4
  45. package/dist/agents/redux/model-registry.js +23 -5
  46. package/dist/agents/redux/proposed-directives/proposedDirectivesSlice.d.ts +0 -1
  47. package/dist/agents/redux/tools/tools.selectors.d.ts +0 -1
  48. package/dist/agents/runtime/generation-job.js +4 -7
  49. package/dist/agents/runtime/get-model-capabilities.js +3 -3
  50. package/dist/agents/ui-first-tools/redux/agent-lists.selectors.d.ts +0 -2
  51. package/dist/host/db-types.d.ts +276 -9
  52. package/dist/store/create-chat-store.d.ts +0 -2
  53. package/dist/store/middlewares.d.ts +0 -5
  54. package/dist/store/slices.d.ts +0 -1
  55. package/dist/store/slices.js +0 -2
  56. package/dist/surfaces/redux/selectors.d.ts +0 -2
  57. package/dist/tool-call-visualization/intelligence-places.js +1 -1
  58. package/dist/tool-call-visualization/redux/selectors.d.ts +0 -1
  59. package/dist/voice-agent/intelligence-places.js +6 -6
  60. package/package.json +4 -4
  61. package/dist/agents/model-registry/modelRegistrySlice.d.ts +0 -691
  62. package/dist/agents/model-registry/modelRegistrySlice.js +0 -574
  63. package/dist/host/model-class.d.ts +0 -33
  64. package/dist/host/model-class.js +0 -21
@@ -0,0 +1,103 @@
1
+ "use client";
2
+ import { useEffect } from "react";
3
+ import {
4
+ classConfigKey,
5
+ createModelCatalog,
6
+ EMPTY_MODEL_RECORDS,
7
+ selectModelById,
8
+ selectModelLabelById,
9
+ selectModelLabelWithClass
10
+ } from "@ai-matrx/agents/models";
11
+ import { useModelRecordsSelector } from "@ai-matrx/agents/models/react";
12
+ import { supabase } from "../../host/db.js";
13
+ import { captureError } from "../../host/diagnostics.js";
14
+ import { isSignedOutVisitor } from "../../host/identity.js";
15
+ const KEY = /* @__PURE__ */ Symbol.for("ai-matrx.chat.model-catalog");
16
+ function getModelCatalog() {
17
+ const g = globalThis;
18
+ if (g[KEY]) return g[KEY];
19
+ const catalog = createModelCatalog({
20
+ // supabase-js satisfies the catalog's structural client as-is.
21
+ client: supabase,
22
+ isSignedIn: async () => !await isSignedOutVisitor(),
23
+ errorSink: (event) => {
24
+ captureError({
25
+ source: "supabase-postgrest",
26
+ schema: "ai",
27
+ code: event.code,
28
+ message: event.message,
29
+ ...event.context ? { details: JSON.stringify(event.context) } : {}
30
+ });
31
+ }
32
+ });
33
+ g[KEY] = catalog;
34
+ return catalog;
35
+ }
36
+ const getModelRecords = () => getModelCatalog().records;
37
+ function readModelRecords() {
38
+ try {
39
+ return getModelRecords().getState();
40
+ } catch {
41
+ return EMPTY_MODEL_RECORDS;
42
+ }
43
+ }
44
+ function useModelRecords(select) {
45
+ return useModelRecordsSelector(getModelRecords(), select);
46
+ }
47
+ function useModelRecord(modelId, options) {
48
+ const record = useModelRecords((s) => selectModelById(s, modelId));
49
+ const full = options?.full === true;
50
+ const fetchType = record?._fetchType;
51
+ useEffect(() => {
52
+ if (!modelId) return;
53
+ if (full && fetchType !== "full") void getModelRecords().loadModel(modelId);
54
+ else if (!fetchType) void getModelRecords().loadOptions();
55
+ }, [modelId, full, fetchType]);
56
+ return record;
57
+ }
58
+ function useModelLabel(modelId) {
59
+ const label = useModelRecords((s) => selectModelLabelById(s, modelId));
60
+ useEffect(() => {
61
+ if (!modelId || label) return;
62
+ const records = getModelRecords();
63
+ void records.loadOptions().then(() => {
64
+ if (!selectModelLabelById(records.getState(), modelId)) void records.loadIdentity(modelId);
65
+ });
66
+ }, [modelId, label]);
67
+ return label;
68
+ }
69
+ function useModelLabelWithClass(modelId, offeringId) {
70
+ useModelLabel(modelId);
71
+ useEffect(() => {
72
+ void getModelRecords().loadClasses();
73
+ }, []);
74
+ return useModelRecords((s) => selectModelLabelWithClass(s, modelId, offeringId));
75
+ }
76
+ function useModelClassLabels() {
77
+ useEffect(() => {
78
+ void getModelRecords().loadClasses();
79
+ }, []);
80
+ }
81
+ function useModelClassControls(modelId, offeringId) {
82
+ const key = modelId && offeringId ? classConfigKey(modelId, offeringId) : null;
83
+ const config = useModelRecords((s) => key ? s.classConfigByOffering[key] : void 0);
84
+ const status = useModelRecords((s) => key ? s.classConfigStatusByOffering[key] : void 0);
85
+ useEffect(() => {
86
+ if (modelId && offeringId) void getModelRecords().loadClassConfig(modelId, offeringId);
87
+ }, [modelId, offeringId]);
88
+ if (!modelId || !offeringId) return void 0;
89
+ if (config) return { config };
90
+ if (status === "failed") return { failed: true };
91
+ return { pending: true };
92
+ }
93
+ export {
94
+ getModelCatalog,
95
+ getModelRecords,
96
+ readModelRecords,
97
+ useModelClassControls,
98
+ useModelClassLabels,
99
+ useModelLabel,
100
+ useModelLabelWithClass,
101
+ useModelRecord,
102
+ useModelRecords
103
+ };