@dxos/plugin-assistant 0.8.2 → 0.8.3-main.672df60

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 (126) hide show
  1. package/dist/lib/browser/{AssistantDialog-K6POM23O.mjs → AssistantDialog-UAZSN6GT.mjs} +3 -3
  2. package/dist/lib/browser/BlueprintEditor-DGV4KJDM.mjs +45 -0
  3. package/dist/lib/browser/BlueprintEditor-DGV4KJDM.mjs.map +7 -0
  4. package/dist/lib/browser/{ChatContainer-QTO4LE2C.mjs → ChatContainer-UTN3AO5U.mjs} +3 -3
  5. package/dist/lib/browser/{app-graph-builder-YH4EGNBC.mjs → app-graph-builder-56OZ5RW4.mjs} +2 -2
  6. package/dist/lib/browser/{chunk-USJBRB3H.mjs → chunk-6SD7S7W5.mjs} +6 -4
  7. package/dist/lib/browser/{chunk-USJBRB3H.mjs.map → chunk-6SD7S7W5.mjs.map} +3 -3
  8. package/dist/lib/browser/{chunk-IHEBFO5O.mjs → chunk-NBSPGIHL.mjs} +5 -4
  9. package/dist/lib/browser/{chunk-IHEBFO5O.mjs.map → chunk-NBSPGIHL.mjs.map} +3 -3
  10. package/dist/lib/browser/{chunk-QTW7KVDO.mjs → chunk-Q6XE3O3E.mjs} +36 -12
  11. package/dist/lib/browser/{chunk-QTW7KVDO.mjs.map → chunk-Q6XE3O3E.mjs.map} +4 -4
  12. package/dist/lib/browser/index.mjs +15 -8
  13. package/dist/lib/browser/index.mjs.map +3 -3
  14. package/dist/lib/browser/{intent-resolver-63EAHENI.mjs → intent-resolver-GWELYIX2.mjs} +7 -10
  15. package/dist/lib/browser/intent-resolver-GWELYIX2.mjs.map +7 -0
  16. package/dist/lib/browser/meta.json +1 -1
  17. package/dist/lib/browser/{react-surface-XCV6NR75.mjs → react-surface-DGS34EON.mjs} +23 -10
  18. package/dist/lib/browser/react-surface-DGS34EON.mjs.map +7 -0
  19. package/dist/lib/browser/{settings-SHNQ4XXP.mjs → settings-BTFB7IQ6.mjs} +2 -2
  20. package/dist/lib/browser/types/index.mjs +1 -1
  21. package/dist/lib/node/{AssistantDialog-FDATKYE5.cjs → AssistantDialog-RTB5Q7FP.cjs} +7 -7
  22. package/dist/lib/node/BlueprintEditor-43VM3XPO.cjs +72 -0
  23. package/dist/lib/node/BlueprintEditor-43VM3XPO.cjs.map +7 -0
  24. package/dist/lib/node/{ChatContainer-5CLHJOIQ.cjs → ChatContainer-P3JL4VZ7.cjs} +7 -7
  25. package/dist/lib/node/{app-graph-builder-PSHIOW3Q.cjs → app-graph-builder-QLF353LH.cjs} +11 -11
  26. package/dist/lib/node/{chunk-FLJWJ35M.cjs → chunk-BWL5A3O5.cjs} +12 -9
  27. package/dist/lib/node/{chunk-FLJWJ35M.cjs.map → chunk-BWL5A3O5.cjs.map} +3 -3
  28. package/dist/lib/node/{chunk-H4A42LNR.cjs → chunk-PG7YNQ4R.cjs} +45 -21
  29. package/dist/lib/node/chunk-PG7YNQ4R.cjs.map +7 -0
  30. package/dist/lib/node/{chunk-RXPA2C2A.cjs → chunk-UNVDZOLA.cjs} +8 -7
  31. package/dist/lib/node/{chunk-RXPA2C2A.cjs.map → chunk-UNVDZOLA.cjs.map} +3 -3
  32. package/dist/lib/node/index.cjs +52 -45
  33. package/dist/lib/node/index.cjs.map +3 -3
  34. package/dist/lib/node/{intent-resolver-66F7WLW6.cjs → intent-resolver-U7663JU7.cjs} +11 -13
  35. package/dist/lib/node/intent-resolver-U7663JU7.cjs.map +7 -0
  36. package/dist/lib/node/meta.json +1 -1
  37. package/dist/lib/node/{react-surface-TASAPRPQ.cjs → react-surface-QXZTILW6.cjs} +37 -25
  38. package/dist/lib/node/react-surface-QXZTILW6.cjs.map +7 -0
  39. package/dist/lib/node/{settings-ERKLO6IO.cjs → settings-LBJMT6YB.cjs} +6 -6
  40. package/dist/lib/node/types/index.cjs +14 -14
  41. package/dist/lib/node/types/index.cjs.map +1 -1
  42. package/dist/lib/node-esm/{AssistantDialog-PIMYK774.mjs → AssistantDialog-DONAO6SA.mjs} +3 -3
  43. package/dist/lib/node-esm/BlueprintEditor-CTARB2FO.mjs +47 -0
  44. package/dist/lib/node-esm/BlueprintEditor-CTARB2FO.mjs.map +7 -0
  45. package/dist/lib/node-esm/{ChatContainer-QTC5NYE2.mjs → ChatContainer-FVIGCDIG.mjs} +3 -3
  46. package/dist/lib/node-esm/{app-graph-builder-Z3GMMJMD.mjs → app-graph-builder-5YX5TKKT.mjs} +2 -2
  47. package/dist/lib/node-esm/{chunk-QU626JMR.mjs → chunk-GJE4WCUJ.mjs} +6 -4
  48. package/dist/lib/node-esm/{chunk-QU626JMR.mjs.map → chunk-GJE4WCUJ.mjs.map} +3 -3
  49. package/dist/lib/node-esm/{chunk-SI5LOQEO.mjs → chunk-MNH6E6EB.mjs} +36 -12
  50. package/dist/lib/node-esm/{chunk-SI5LOQEO.mjs.map → chunk-MNH6E6EB.mjs.map} +4 -4
  51. package/dist/lib/node-esm/{chunk-ZKBACPIW.mjs → chunk-TQYSF2GS.mjs} +5 -4
  52. package/dist/lib/node-esm/{chunk-ZKBACPIW.mjs.map → chunk-TQYSF2GS.mjs.map} +3 -3
  53. package/dist/lib/node-esm/index.mjs +15 -8
  54. package/dist/lib/node-esm/index.mjs.map +3 -3
  55. package/dist/lib/node-esm/{intent-resolver-X3PWH7KM.mjs → intent-resolver-N5TM3RTL.mjs} +7 -10
  56. package/dist/lib/node-esm/intent-resolver-N5TM3RTL.mjs.map +7 -0
  57. package/dist/lib/node-esm/meta.json +1 -1
  58. package/dist/lib/node-esm/{react-surface-QMIQCXUM.mjs → react-surface-FTKGQQD2.mjs} +23 -10
  59. package/dist/lib/node-esm/react-surface-FTKGQQD2.mjs.map +7 -0
  60. package/dist/lib/node-esm/{settings-IVQRZUCU.mjs → settings-TGCCAH5D.mjs} +2 -2
  61. package/dist/lib/node-esm/types/index.mjs +1 -1
  62. package/dist/types/src/AssistantPlugin.d.ts.map +1 -1
  63. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  64. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  65. package/dist/types/src/components/BlueprintEditor/BlueprintEditor.d.ts +2 -2
  66. package/dist/types/src/components/BlueprintEditor/BlueprintEditor.d.ts.map +1 -1
  67. package/dist/types/src/components/BlueprintEditor/index.d.ts +2 -1
  68. package/dist/types/src/components/BlueprintEditor/index.d.ts.map +1 -1
  69. package/dist/types/src/components/Prompt/Prompt.stories.d.ts.map +1 -1
  70. package/dist/types/src/components/Prompt/PromptBar.stories.d.ts.map +1 -1
  71. package/dist/types/src/components/Thread/ThreadMessage.d.ts +2 -2
  72. package/dist/types/src/components/Thread/ThreadMessage.d.ts.map +1 -1
  73. package/dist/types/src/components/index.d.ts +1 -0
  74. package/dist/types/src/components/index.d.ts.map +1 -1
  75. package/dist/types/src/hooks/useContextProvider.d.ts.map +1 -1
  76. package/dist/types/src/stories/Prompt.stories.d.ts.map +1 -1
  77. package/dist/types/src/stories/Query.stories.d.ts.map +1 -1
  78. package/dist/types/src/stories/Research.stories.d.ts.map +1 -1
  79. package/dist/types/src/stories/testing.d.ts.map +1 -1
  80. package/dist/types/src/testing/index.d.ts +1 -1
  81. package/dist/types/src/testing/index.d.ts.map +1 -1
  82. package/dist/types/src/testing/test-blueprint.d.ts +14 -0
  83. package/dist/types/src/testing/test-blueprint.d.ts.map +1 -0
  84. package/dist/types/src/translations.d.ts.map +1 -1
  85. package/dist/types/src/types/types.d.ts +11 -5
  86. package/dist/types/src/types/types.d.ts.map +1 -1
  87. package/package.json +68 -68
  88. package/src/AssistantPlugin.tsx +5 -5
  89. package/src/capabilities/intent-resolver.ts +4 -3
  90. package/src/capabilities/react-surface.tsx +26 -7
  91. package/src/components/BlueprintEditor/BlueprintEditor.tsx +3 -4
  92. package/src/components/BlueprintEditor/index.ts +3 -1
  93. package/src/components/Prompt/Prompt.stories.tsx +1 -0
  94. package/src/components/Prompt/PromptBar.stories.tsx +1 -0
  95. package/src/components/Thread/ThreadMessage.tsx +3 -3
  96. package/src/components/index.ts +1 -0
  97. package/src/hooks/useContextProvider.ts +5 -6
  98. package/src/stories/Prompt.stories.tsx +1 -0
  99. package/src/stories/Query.stories.tsx +107 -40
  100. package/src/stories/Research.stories.tsx +1 -0
  101. package/src/stories/testing.ts +1 -5
  102. package/src/testing/index.ts +1 -1
  103. package/src/testing/{blueprint.ts → test-blueprint.ts} +21 -18
  104. package/src/translations.ts +5 -0
  105. package/src/types/types.ts +3 -3
  106. package/dist/lib/browser/intent-resolver-63EAHENI.mjs.map +0 -7
  107. package/dist/lib/browser/react-surface-XCV6NR75.mjs.map +0 -7
  108. package/dist/lib/node/chunk-H4A42LNR.cjs.map +0 -7
  109. package/dist/lib/node/intent-resolver-66F7WLW6.cjs.map +0 -7
  110. package/dist/lib/node/react-surface-TASAPRPQ.cjs.map +0 -7
  111. package/dist/lib/node-esm/intent-resolver-X3PWH7KM.mjs.map +0 -7
  112. package/dist/lib/node-esm/react-surface-QMIQCXUM.mjs.map +0 -7
  113. package/dist/types/src/testing/blueprint.d.ts +0 -7
  114. package/dist/types/src/testing/blueprint.d.ts.map +0 -1
  115. /package/dist/lib/browser/{AssistantDialog-K6POM23O.mjs.map → AssistantDialog-UAZSN6GT.mjs.map} +0 -0
  116. /package/dist/lib/browser/{ChatContainer-QTO4LE2C.mjs.map → ChatContainer-UTN3AO5U.mjs.map} +0 -0
  117. /package/dist/lib/browser/{app-graph-builder-YH4EGNBC.mjs.map → app-graph-builder-56OZ5RW4.mjs.map} +0 -0
  118. /package/dist/lib/browser/{settings-SHNQ4XXP.mjs.map → settings-BTFB7IQ6.mjs.map} +0 -0
  119. /package/dist/lib/node/{AssistantDialog-FDATKYE5.cjs.map → AssistantDialog-RTB5Q7FP.cjs.map} +0 -0
  120. /package/dist/lib/node/{ChatContainer-5CLHJOIQ.cjs.map → ChatContainer-P3JL4VZ7.cjs.map} +0 -0
  121. /package/dist/lib/node/{app-graph-builder-PSHIOW3Q.cjs.map → app-graph-builder-QLF353LH.cjs.map} +0 -0
  122. /package/dist/lib/node/{settings-ERKLO6IO.cjs.map → settings-LBJMT6YB.cjs.map} +0 -0
  123. /package/dist/lib/node-esm/{AssistantDialog-PIMYK774.mjs.map → AssistantDialog-DONAO6SA.mjs.map} +0 -0
  124. /package/dist/lib/node-esm/{ChatContainer-QTC5NYE2.mjs.map → ChatContainer-FVIGCDIG.mjs.map} +0 -0
  125. /package/dist/lib/node-esm/{app-graph-builder-Z3GMMJMD.mjs.map → app-graph-builder-5YX5TKKT.mjs.map} +0 -0
  126. /package/dist/lib/node-esm/{settings-IVQRZUCU.mjs.map → settings-TGCCAH5D.mjs.map} +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/react-surface.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Effect } from 'effect';\nimport React, { useEffect, useMemo } from 'react';\n\nimport { Capabilities, contributes, createIntent, createSurface, useIntentDispatcher } from '@dxos/app-framework';\nimport { Blueprint } from '@dxos/assistant';\nimport { Obj } from '@dxos/echo';\nimport { Filter, isInstanceOf, Query } from '@dxos/echo-schema';\nimport { SettingsStore } from '@dxos/local-storage';\nimport { SpaceAction } from '@dxos/plugin-space/types';\nimport {\n type AnyLiveObject,\n fullyQualifiedId,\n getSpace,\n getTypename,\n isEchoObject,\n type SpaceId,\n} from '@dxos/react-client/echo';\nimport { StackItem } from '@dxos/react-ui-stack';\n\nimport {\n AssistantDialog,\n AssistantSettings,\n BlueprintEditor,\n ChatContainer,\n PromptSettings,\n TemplateContainer,\n} from '../components';\nimport { ASSISTANT_PLUGIN, ASSISTANT_DIALOG } from '../meta';\nimport { AIChatType, AssistantAction, type AssistantSettingsProps, CompanionTo, TemplateType } from '../types';\n\nexport default () =>\n contributes(Capabilities.ReactSurface, [\n createSurface({\n id: `${ASSISTANT_PLUGIN}/plugin-settings`,\n role: 'article',\n filter: (data): data is { subject: SettingsStore<AssistantSettingsProps> } =>\n data.subject instanceof SettingsStore && data.subject.prefix === ASSISTANT_PLUGIN,\n component: ({ data: { subject } }) => <AssistantSettings settings={subject.value} />,\n }),\n createSurface({\n id: `${ASSISTANT_PLUGIN}/chat`,\n role: 'article',\n filter: (data): data is { subject: AIChatType; variant: undefined } =>\n Obj.instanceOf(AIChatType, data.subject) && data.variant !== 'assistant-chat',\n component: ({ data, role }) => <ChatContainer role={role} chat={data.subject} />,\n }),\n createSurface({\n id: `${ASSISTANT_PLUGIN}/object-chat`,\n role: 'article',\n filter: (data): data is { companionTo: AnyLiveObject<any>; subject: AIChatType | 'assistant-chat' } =>\n isEchoObject(data.companionTo) && (isInstanceOf(AIChatType, data.subject) || data.subject === 'assistant-chat'),\n component: ({ data, role }) => {\n const { dispatch } = useIntentDispatcher();\n const associatedArtifact = useMemo(\n () => ({\n id: fullyQualifiedId(data.companionTo),\n typename: getTypename(data.companionTo) ?? 'unknown',\n spaceId: (getSpace(data.companionTo)?.id ?? 'unknown') as SpaceId,\n }),\n [data.companionTo],\n );\n\n // TODO(wittjosiah): Factor out to container.\n useEffect(() => {\n const timeout = setTimeout(async () => {\n const space = getSpace(data.companionTo);\n if (space && data.subject === 'assistant-chat') {\n const result = await space.db\n .query(Query.select(Filter.ids(data.companionTo.id)).targetOf(CompanionTo).source())\n .run();\n if (result.objects.length > 0) {\n return;\n }\n\n const program = Effect.gen(function* () {\n const { object } = yield* dispatch(createIntent(AssistantAction.CreateChat, { space }));\n yield* dispatch(createIntent(SpaceAction.AddObject, { object, target: space, hidden: true }));\n yield* dispatch(\n createIntent(SpaceAction.AddRelation, {\n space,\n schema: CompanionTo,\n source: object,\n target: data.companionTo,\n }),\n );\n });\n void Effect.runPromise(program);\n }\n });\n\n return () => clearTimeout(timeout);\n }, [data.subject]);\n\n if (data.subject === 'assistant-chat') {\n return null;\n }\n\n return <ChatContainer role={role} chat={data.subject} associatedArtifact={associatedArtifact} />;\n },\n }),\n createSurface({\n id: `${ASSISTANT_PLUGIN}/blueprint`,\n role: 'article',\n filter: (data): data is { subject: Blueprint } => Obj.instanceOf(Blueprint, data.subject),\n component: ({ data, role }) => (\n <StackItem.Content role={role}>\n <BlueprintEditor blueprint={data.subject} />\n </StackItem.Content>\n ),\n }),\n createSurface({\n id: `${ASSISTANT_PLUGIN}/template`,\n role: 'article',\n filter: (data): data is { subject: TemplateType } => Obj.instanceOf(TemplateType, data.subject),\n component: ({ data, role }) => <TemplateContainer role={role} template={data.subject} />,\n }),\n createSurface({\n id: ASSISTANT_DIALOG,\n role: 'dialog',\n filter: (data): data is { props: { chat: AIChatType } } => data.component === ASSISTANT_DIALOG,\n component: ({ data }) => <AssistantDialog {...data.props} />,\n }),\n createSurface({\n id: `${ASSISTANT_PLUGIN}/prompt-settings`,\n role: 'object-settings',\n filter: (data): data is { subject: TemplateType } => Obj.instanceOf(TemplateType, data.subject),\n component: ({ data }) => <PromptSettings template={data.subject} />,\n }),\n ]);\n"],
5
+ "mappings": "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",
6
+ "names": ["Effect", "React", "useEffect", "useMemo", "Capabilities", "contributes", "createIntent", "createSurface", "useIntentDispatcher", "Blueprint", "Obj", "Filter", "isInstanceOf", "Query", "SettingsStore", "SpaceAction", "fullyQualifiedId", "getSpace", "getTypename", "isEchoObject", "StackItem", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "ASSISTANT_PLUGIN", "role", "filter", "data", "subject", "SettingsStore", "prefix", "component", "AssistantSettings", "settings", "value", "Obj", "instanceOf", "AIChatType", "variant", "ChatContainer", "chat", "isEchoObject", "companionTo", "isInstanceOf", "dispatch", "useIntentDispatcher", "associatedArtifact", "useMemo", "fullyQualifiedId", "typename", "getTypename", "spaceId", "getSpace", "useEffect", "timeout", "setTimeout", "space", "result", "db", "query", "Query", "select", "Filter", "ids", "targetOf", "CompanionTo", "source", "run", "objects", "length", "program", "Effect", "gen", "object", "createIntent", "AssistantAction", "CreateChat", "SpaceAction", "AddObject", "target", "hidden", "AddRelation", "schema", "runPromise", "clearTimeout", "Blueprint", "StackItem", "Content", "BlueprintEditor", "blueprint", "TemplateType", "TemplateContainer", "template", "ASSISTANT_DIALOG", "AssistantDialog", "props", "PromptSettings"]
7
+ }
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  AssistantSettingsSchema
3
- } from "./chunk-IHEBFO5O.mjs";
3
+ } from "./chunk-NBSPGIHL.mjs";
4
4
  import {
5
5
  ASSISTANT_PLUGIN
6
6
  } from "./chunk-XOZ7YMO3.mjs";
@@ -19,4 +19,4 @@ var settings_default = () => {
19
19
  export {
20
20
  settings_default as default
21
21
  };
22
- //# sourceMappingURL=settings-SHNQ4XXP.mjs.map
22
+ //# sourceMappingURL=settings-BTFB7IQ6.mjs.map
@@ -12,7 +12,7 @@ import {
12
12
  TemplateKinds,
13
13
  TemplateType,
14
14
  categoryIcons
15
- } from "../chunk-IHEBFO5O.mjs";
15
+ } from "../chunk-NBSPGIHL.mjs";
16
16
  import "../chunk-XOZ7YMO3.mjs";
17
17
  export {
18
18
  AIChatType,
@@ -26,16 +26,16 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  mod
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var AssistantDialog_FDATKYE5_exports = {};
30
- __export(AssistantDialog_FDATKYE5_exports, {
29
+ var AssistantDialog_RTB5Q7FP_exports = {};
30
+ __export(AssistantDialog_RTB5Q7FP_exports, {
31
31
  AssistantDialog: () => AssistantDialog,
32
32
  default: () => AssistantDialog_default
33
33
  });
34
- module.exports = __toCommonJS(AssistantDialog_FDATKYE5_exports);
34
+ module.exports = __toCommonJS(AssistantDialog_RTB5Q7FP_exports);
35
35
  var import_chunk_HRNIUYVQ = require("./chunk-HRNIUYVQ.cjs");
36
- var import_chunk_H4A42LNR = require("./chunk-H4A42LNR.cjs");
36
+ var import_chunk_PG7YNQ4R = require("./chunk-PG7YNQ4R.cjs");
37
37
  var import_chunk_TS3H5OSX = require("./chunk-TS3H5OSX.cjs");
38
- var import_chunk_RXPA2C2A = require("./chunk-RXPA2C2A.cjs");
38
+ var import_chunk_UNVDZOLA = require("./chunk-UNVDZOLA.cjs");
39
39
  var import_chunk_P74TWGMG = require("./chunk-P74TWGMG.cjs");
40
40
  var import_tracking = require("@preact-signals/safe-react/tracking");
41
41
  var import_react = __toESM(require("react"));
@@ -53,7 +53,7 @@ var AssistantDialog = ({ chat }) => {
53
53
  open,
54
54
  onOpenChange: setOpen,
55
55
  title: t("assistant dialog title")
56
- }, /* @__PURE__ */ import_react.default.createElement(import_chunk_H4A42LNR.ThreadContainer, {
56
+ }, /* @__PURE__ */ import_react.default.createElement(import_chunk_PG7YNQ4R.ThreadContainer, {
57
57
  part: "dialog",
58
58
  chat,
59
59
  onOpenChange: setOpen,
@@ -69,4 +69,4 @@ var AssistantDialog_default = AssistantDialog;
69
69
  0 && (module.exports = {
70
70
  AssistantDialog
71
71
  });
72
- //# sourceMappingURL=AssistantDialog-FDATKYE5.cjs.map
72
+ //# sourceMappingURL=AssistantDialog-RTB5Q7FP.cjs.map
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var BlueprintEditor_43VM3XPO_exports = {};
30
+ __export(BlueprintEditor_43VM3XPO_exports, {
31
+ default: () => BlueprintEditor_default
32
+ });
33
+ module.exports = __toCommonJS(BlueprintEditor_43VM3XPO_exports);
34
+ var import_tracking = require("@preact-signals/safe-react/tracking");
35
+ var import_react = __toESM(require("react"));
36
+ var import_assistant = require("@dxos/assistant");
37
+ var import_echo_schema = require("@dxos/echo-schema");
38
+ var import_react_ui = require("@dxos/react-ui");
39
+ var import_react_ui_editor = require("@dxos/react-ui-editor");
40
+ var import_react_ui_theme = require("@dxos/react-ui-theme");
41
+ var BlueprintEditor = ({ classNames, blueprint }) => {
42
+ var _effect = (0, import_tracking.useSignals)();
43
+ try {
44
+ const { themeMode } = (0, import_react_ui.useThemeContext)();
45
+ const { parentRef } = (0, import_react_ui_editor.useTextEditor)({
46
+ initialValue: JSON.stringify(blueprint, null, 2),
47
+ extensions: [
48
+ (0, import_react_ui_editor.createBasicExtensions)({
49
+ lineWrapping: false
50
+ }),
51
+ (0, import_react_ui_editor.createThemeExtensions)({
52
+ themeMode,
53
+ syntaxHighlighting: true
54
+ }),
55
+ (0, import_react_ui_editor.createJsonExtensions)({
56
+ schema: (0, import_echo_schema.toJsonSchema)(import_assistant.Blueprint, {
57
+ strict: true
58
+ })
59
+ }),
60
+ import_react_ui_editor.editorMonospace
61
+ ]
62
+ });
63
+ return /* @__PURE__ */ import_react.default.createElement("div", {
64
+ ref: parentRef,
65
+ className: (0, import_react_ui_theme.mx)("flex w-full pli-2 overflow-x-scroll border-x border-separator", classNames)
66
+ });
67
+ } finally {
68
+ _effect.f();
69
+ }
70
+ };
71
+ var BlueprintEditor_default = BlueprintEditor;
72
+ //# sourceMappingURL=BlueprintEditor-43VM3XPO.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/BlueprintEditor/BlueprintEditor.tsx", "../../../src/components/BlueprintEditor/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Blueprint } from '@dxos/assistant';\nimport { toJsonSchema } from '@dxos/echo-schema';\nimport { useThemeContext, type ThemedClassName } from '@dxos/react-ui';\nimport {\n createBasicExtensions,\n createJsonExtensions,\n createThemeExtensions,\n editorMonospace,\n useTextEditor,\n} from '@dxos/react-ui-editor';\nimport { mx } from '@dxos/react-ui-theme';\n\nexport type BlueprintEditorProps = ThemedClassName<{\n blueprint: Blueprint;\n}>;\n\n// TODO(burdon): Factor out JsonEditor.\n// TODO(burdon): Make editable.\nexport const BlueprintEditor = ({ classNames, blueprint }: BlueprintEditorProps) => {\n const { themeMode } = useThemeContext();\n const { parentRef } = useTextEditor({\n initialValue: JSON.stringify(blueprint, null, 2),\n extensions: [\n createBasicExtensions({ lineWrapping: false }),\n createThemeExtensions({ themeMode, syntaxHighlighting: true }),\n createJsonExtensions({ schema: toJsonSchema(Blueprint, { strict: true }) }),\n editorMonospace,\n ],\n });\n\n return (\n <div ref={parentRef} className={mx('flex w-full pli-2 overflow-x-scroll border-x border-separator', classNames)} />\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { BlueprintEditor } from './BlueprintEditor';\n\nexport default BlueprintEditor;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,mBAAkB;AAElB,uBAA0B;AAC1B,yBAA6B;AAC7B,sBAAsD;AACtD,6BAMO;AACP,4BAAmB;AAQZ,IAAMA,kBAAkB,CAAC,EAAEC,YAAYC,UAAS,MAAwB;;;AAC7E,UAAM,EAAEC,UAAS,QAAKC,iCAAAA;AACtB,UAAM,EAAEC,UAAS,QAAKC,sCAAc;MAClCC,cAAcC,KAAKC,UAAUP,WAAW,MAAM,CAAA;MAC9CQ,YAAY;YACVC,8CAAsB;UAAEC,cAAc;QAAM,CAAA;YAC5CC,8CAAsB;UAAEV;UAAWW,oBAAoB;QAAK,CAAA;YAC5DC,6CAAqB;UAAEC,YAAQC,iCAAaC,4BAAW;YAAEC,QAAQ;UAAK,CAAA;QAAG,CAAA;QACzEC;;IAEJ,CAAA;AAEA,WACE,6BAAAC,QAAA,cAACC,OAAAA;MAAIC,KAAKlB;MAAWmB,eAAWC,0BAAG,iEAAiExB,UAAAA;;;;;AAExG;ACjCA,IAAA,0BAAeD;",
6
+ "names": ["BlueprintEditor", "classNames", "blueprint", "themeMode", "useThemeContext", "parentRef", "useTextEditor", "initialValue", "JSON", "stringify", "extensions", "createBasicExtensions", "lineWrapping", "createThemeExtensions", "syntaxHighlighting", "createJsonExtensions", "schema", "toJsonSchema", "Blueprint", "strict", "editorMonospace", "React", "div", "ref", "className", "mx"]
7
+ }
@@ -26,15 +26,15 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  mod
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var ChatContainer_5CLHJOIQ_exports = {};
30
- __export(ChatContainer_5CLHJOIQ_exports, {
29
+ var ChatContainer_P3JL4VZ7_exports = {};
30
+ __export(ChatContainer_P3JL4VZ7_exports, {
31
31
  ChatContainer: () => ChatContainer,
32
32
  default: () => ChatContainer_default
33
33
  });
34
- module.exports = __toCommonJS(ChatContainer_5CLHJOIQ_exports);
35
- var import_chunk_H4A42LNR = require("./chunk-H4A42LNR.cjs");
34
+ module.exports = __toCommonJS(ChatContainer_P3JL4VZ7_exports);
35
+ var import_chunk_PG7YNQ4R = require("./chunk-PG7YNQ4R.cjs");
36
36
  var import_chunk_TS3H5OSX = require("./chunk-TS3H5OSX.cjs");
37
- var import_chunk_RXPA2C2A = require("./chunk-RXPA2C2A.cjs");
37
+ var import_chunk_UNVDZOLA = require("./chunk-UNVDZOLA.cjs");
38
38
  var import_chunk_P74TWGMG = require("./chunk-P74TWGMG.cjs");
39
39
  var import_tracking = require("@preact-signals/safe-react/tracking");
40
40
  var import_react = __toESM(require("react"));
@@ -49,7 +49,7 @@ var ChatContainer = ({ role, chat, associatedArtifact }) => {
49
49
  return /* @__PURE__ */ import_react.default.createElement(import_react_ui_stack.StackItem.Content, {
50
50
  role,
51
51
  classNames: "container-max-width"
52
- }, /* @__PURE__ */ import_react.default.createElement(import_chunk_H4A42LNR.ThreadContainer, {
52
+ }, /* @__PURE__ */ import_react.default.createElement(import_chunk_PG7YNQ4R.ThreadContainer, {
53
53
  chat,
54
54
  settings,
55
55
  transcription,
@@ -64,4 +64,4 @@ var ChatContainer_default = ChatContainer;
64
64
  0 && (module.exports = {
65
65
  ChatContainer
66
66
  });
67
- //# sourceMappingURL=ChatContainer-5CLHJOIQ.cjs.map
67
+ //# sourceMappingURL=ChatContainer-P3JL4VZ7.cjs.map
@@ -16,12 +16,12 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var app_graph_builder_PSHIOW3Q_exports = {};
20
- __export(app_graph_builder_PSHIOW3Q_exports, {
19
+ var app_graph_builder_QLF353LH_exports = {};
20
+ __export(app_graph_builder_QLF353LH_exports, {
21
21
  default: () => app_graph_builder_default
22
22
  });
23
- module.exports = __toCommonJS(app_graph_builder_PSHIOW3Q_exports);
24
- var import_chunk_RXPA2C2A = require("./chunk-RXPA2C2A.cjs");
23
+ module.exports = __toCommonJS(app_graph_builder_QLF353LH_exports);
24
+ var import_chunk_UNVDZOLA = require("./chunk-UNVDZOLA.cjs");
25
25
  var import_chunk_P74TWGMG = require("./chunk-P74TWGMG.cjs");
26
26
  var import_rx_react = require("@effect-rx/rx-react");
27
27
  var import_effect = require("effect");
@@ -104,7 +104,7 @@ var app_graph_builder_default = (context) => (0, import_app_framework.contribute
104
104
  }) : import_effect.Option.none();
105
105
  }), import_effect.Option.map(({ space, object }) => {
106
106
  if (!query) {
107
- query = space.db.query(import_echo.Query.select(import_echo.Filter.ids(object.id)).targetOf(import_chunk_RXPA2C2A.CompanionTo).source());
107
+ query = space.db.query(import_echo.Query.select(import_echo.Filter.ids(object.id)).targetOf(import_chunk_UNVDZOLA.CompanionTo).source());
108
108
  }
109
109
  const chat = get((0, import_plugin_space.rxFromQuery)(query))[0];
110
110
  return [
@@ -137,7 +137,7 @@ var app_graph_builder_default = (context) => (0, import_app_framework.contribute
137
137
  let query;
138
138
  return import_rx_react.Rx.make((get) => (0, import_effect.pipe)(get(node), import_effect.Option.flatMap((node2) => node2.type === import_types2.SPACE_TYPE && (0, import_echo.isSpace)(node2.data) ? import_effect.Option.some(node2.data) : import_effect.Option.none()), import_effect.Option.map((space) => {
139
139
  if (!query) {
140
- query = space.db.query(import_echo.Query.type(import_chunk_RXPA2C2A.TemplateType));
140
+ query = space.db.query(import_echo.Query.type(import_chunk_UNVDZOLA.TemplateType));
141
141
  }
142
142
  const templates = get((0, import_plugin_space.rxFromQuery)(query));
143
143
  return templates.length > 0 ? [
@@ -166,7 +166,7 @@ var app_graph_builder_default = (context) => (0, import_app_framework.contribute
166
166
  let query;
167
167
  return import_rx_react.Rx.make((get) => (0, import_effect.pipe)(get(node), import_effect.Option.flatMap((node2) => node2.id === `${import_chunk_P74TWGMG.ASSISTANT_PLUGIN}/templates` && (0, import_echo.isSpace)(node2.properties.space) ? import_effect.Option.some(node2.properties.space) : import_effect.Option.none()), import_effect.Option.map((space) => {
168
168
  if (!query) {
169
- query = space.db.query(import_echo.Query.type(import_chunk_RXPA2C2A.TemplateType));
169
+ query = space.db.query(import_echo.Query.type(import_chunk_UNVDZOLA.TemplateType));
170
170
  }
171
171
  return get((0, import_plugin_space.rxFromQuery)(query)).toSorted((a, b) => {
172
172
  const nameA = a.name ?? "";
@@ -191,14 +191,14 @@ var app_graph_builder_default = (context) => (0, import_app_framework.contribute
191
191
  })
192
192
  ]);
193
193
  var getOrCreateChat = async (dispatch, space) => {
194
- const { objects } = await space.db.query(import_echo.Filter.type(import_chunk_RXPA2C2A.AIChatType)).run();
194
+ const { objects } = await space.db.query(import_echo.Filter.type(import_chunk_UNVDZOLA.AIChatType)).run();
195
195
  if (objects.length > 0) {
196
196
  return objects[objects.length - 1];
197
197
  }
198
- const { data } = await dispatch((0, import_app_framework.createIntent)(import_chunk_RXPA2C2A.AssistantAction.CreateChat, {
198
+ const { data } = await dispatch((0, import_app_framework.createIntent)(import_chunk_UNVDZOLA.AssistantAction.CreateChat, {
199
199
  space
200
200
  }));
201
- (0, import_invariant.invariant)((0, import_echo_schema.isInstanceOf)(import_chunk_RXPA2C2A.AIChatType, data?.object), void 0, {
201
+ (0, import_invariant.invariant)((0, import_echo_schema.isInstanceOf)(import_chunk_UNVDZOLA.AIChatType, data?.object), void 0, {
202
202
  F: __dxlog_file,
203
203
  L: 230,
204
204
  S: void 0,
@@ -213,4 +213,4 @@ var getOrCreateChat = async (dispatch, space) => {
213
213
  }));
214
214
  return data.object;
215
215
  };
216
- //# sourceMappingURL=app-graph-builder-PSHIOW3Q.cjs.map
216
+ //# sourceMappingURL=app-graph-builder-QLF353LH.cjs.map
@@ -26,16 +26,17 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  mod
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var chunk_FLJWJ35M_exports = {};
30
- __export(chunk_FLJWJ35M_exports, {
29
+ var chunk_BWL5A3O5_exports = {};
30
+ __export(chunk_BWL5A3O5_exports, {
31
31
  AssistantDialog: () => AssistantDialog,
32
32
  AssistantSettings: () => AssistantSettings,
33
+ BlueprintEditor: () => BlueprintEditor,
33
34
  ChatContainer: () => ChatContainer,
34
35
  PromptSettings: () => PromptSettings,
35
36
  TemplateContainer: () => TemplateContainer
36
37
  });
37
- module.exports = __toCommonJS(chunk_FLJWJ35M_exports);
38
- var import_chunk_RXPA2C2A = require("./chunk-RXPA2C2A.cjs");
38
+ module.exports = __toCommonJS(chunk_BWL5A3O5_exports);
39
+ var import_chunk_UNVDZOLA = require("./chunk-UNVDZOLA.cjs");
39
40
  var import_chunk_P74TWGMG = require("./chunk-P74TWGMG.cjs");
40
41
  var import_tracking = require("@preact-signals/safe-react/tracking");
41
42
  var import_react = __toESM(require("react"));
@@ -74,7 +75,7 @@ var AssistantSettings = ({ settings }) => {
74
75
  placeholder: t("settings llm provider label")
75
76
  }), /* @__PURE__ */ import_react.default.createElement(import_react_ui.Select.Portal, null, /* @__PURE__ */ import_react.default.createElement(import_react_ui.Select.Content, null, /* @__PURE__ */ import_react.default.createElement(import_react_ui.Select.Viewport, null, /* @__PURE__ */ import_react.default.createElement(import_react_ui.Select.Option, {
76
77
  value: DEFAULT_VALUE
77
- }, t("settings default label")), import_chunk_RXPA2C2A.LLM_PROVIDERS.map((model) => /* @__PURE__ */ import_react.default.createElement(import_react_ui.Select.Option, {
78
+ }, t("settings default label")), import_chunk_UNVDZOLA.LLM_PROVIDERS.map((model) => /* @__PURE__ */ import_react.default.createElement(import_react_ui.Select.Option, {
78
79
  key: model,
79
80
  value: model
80
81
  }, LLM_PROVIDER_LABELS[model]))))))), /* @__PURE__ */ import_react.default.createElement(import_react_ui_form.DeprecatedFormInput, {
@@ -151,7 +152,7 @@ var PromptSettings = ({ template }) => {
151
152
  onValueChange: handleKindChange
152
153
  }, /* @__PURE__ */ import_react2.default.createElement(import_react_ui2.Toolbar.Button, {
153
154
  asChild: true
154
- }, /* @__PURE__ */ import_react2.default.createElement(import_react_ui2.Select.TriggerButton, null)), /* @__PURE__ */ import_react2.default.createElement(import_react_ui2.Select.Portal, null, /* @__PURE__ */ import_react2.default.createElement(import_react_ui2.Select.Content, null, /* @__PURE__ */ import_react2.default.createElement(import_react_ui2.Select.Viewport, null, import_chunk_RXPA2C2A.TemplateKinds.map((kind) => /* @__PURE__ */ import_react2.default.createElement(import_react_ui2.Select.Option, {
155
+ }, /* @__PURE__ */ import_react2.default.createElement(import_react_ui2.Select.TriggerButton, null)), /* @__PURE__ */ import_react2.default.createElement(import_react_ui2.Select.Portal, null, /* @__PURE__ */ import_react2.default.createElement(import_react_ui2.Select.Content, null, /* @__PURE__ */ import_react2.default.createElement(import_react_ui2.Select.Viewport, null, import_chunk_UNVDZOLA.TemplateKinds.map((kind) => /* @__PURE__ */ import_react2.default.createElement(import_react_ui2.Select.Option, {
155
156
  key: kind,
156
157
  value: kind
157
158
  }, kind)))))), template.kind.include === "schema-matching" && /* @__PURE__ */ import_react2.default.createElement(import_react_ui2.Input.Root, null, /* @__PURE__ */ import_react2.default.createElement(import_react_ui2.Input.TextInput, {
@@ -167,15 +168,17 @@ var PromptSettings = ({ template }) => {
167
168
  _effect.f();
168
169
  }
169
170
  };
170
- var AssistantDialog = (0, import_react3.lazy)(() => import("./AssistantDialog-FDATKYE5.cjs"));
171
- var ChatContainer = (0, import_react3.lazy)(() => import("./ChatContainer-5CLHJOIQ.cjs"));
171
+ var AssistantDialog = (0, import_react3.lazy)(() => import("./AssistantDialog-RTB5Q7FP.cjs"));
172
+ var BlueprintEditor = (0, import_react3.lazy)(() => import("./BlueprintEditor-43VM3XPO.cjs"));
173
+ var ChatContainer = (0, import_react3.lazy)(() => import("./ChatContainer-P3JL4VZ7.cjs"));
172
174
  var TemplateContainer = (0, import_react3.lazy)(() => import("./TemplateContainer-CTG2MB4W.cjs"));
173
175
  // Annotate the CommonJS export names for ESM import in node:
174
176
  0 && (module.exports = {
175
177
  AssistantDialog,
176
178
  AssistantSettings,
179
+ BlueprintEditor,
177
180
  ChatContainer,
178
181
  PromptSettings,
179
182
  TemplateContainer
180
183
  });
181
- //# sourceMappingURL=chunk-FLJWJ35M.cjs.map
184
+ //# sourceMappingURL=chunk-BWL5A3O5.cjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/AssistantSettings/AssistantSettings.tsx", "../../../src/components/PromptSettings.tsx", "../../../src/components/index.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { DEFAULT_EDGE_MODELS, DEFAULT_OLLAMA_MODELS } from '@dxos/ai';\nimport { Input, Select, useTranslation } from '@dxos/react-ui';\nimport { DeprecatedFormContainer, DeprecatedFormInput } from '@dxos/react-ui-form';\n\nimport { ASSISTANT_PLUGIN } from '../../meta';\nimport { LLM_PROVIDERS, type AssistantSettingsProps } from '../../types';\n\n// TODO(burdon): Factor out default Selector.\nconst DEFAULT_VALUE = '__default';\n\nconst LLM_PROVIDER_LABELS = {\n edge: 'DXOS',\n ollama: 'Ollama',\n lmstudio: 'LM Studio',\n} as const;\n\nexport const AssistantSettings = ({ settings }: { settings: AssistantSettingsProps }) => {\n const { t } = useTranslation(ASSISTANT_PLUGIN);\n\n return (\n <DeprecatedFormContainer>\n <DeprecatedFormInput label={t('settings custom prompts label')}>\n <Input.Switch\n checked={!!settings.customPrompts}\n onCheckedChange={(checked) => (settings.customPrompts = checked)}\n />\n </DeprecatedFormInput>\n\n <DeprecatedFormInput label={t('settings llm provider label')}>\n <Select.Root\n value={settings.llmProvider ?? 'edge'}\n onValueChange={(value) => {\n settings.llmProvider = value === DEFAULT_VALUE ? undefined : (value as any);\n }}\n >\n <Select.TriggerButton placeholder={t('settings llm provider label')} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n <Select.Option value={DEFAULT_VALUE}>{t('settings default label')}</Select.Option>\n {LLM_PROVIDERS.map((model) => (\n <Select.Option key={model} value={model}>\n {LLM_PROVIDER_LABELS[model]}\n </Select.Option>\n ))}\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </DeprecatedFormInput>\n\n <DeprecatedFormInput label={t('settings edge llm model label')}>\n <Select.Root\n value={settings.edgeModel ?? DEFAULT_VALUE}\n onValueChange={(value) => {\n settings.edgeModel = value === DEFAULT_VALUE ? undefined : value;\n }}\n >\n <Select.TriggerButton placeholder={t('settings default llm model label')} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n <Select.Option value={DEFAULT_VALUE}>{t('settings default label')}</Select.Option>\n {DEFAULT_EDGE_MODELS.map((model) => (\n <Select.Option key={model} value={model}>\n {model}\n </Select.Option>\n ))}\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </DeprecatedFormInput>\n\n <DeprecatedFormInput label={t('settings ollama llm model label')}>\n <Select.Root\n value={settings.ollamaModel ?? DEFAULT_VALUE}\n onValueChange={(value) => {\n settings.ollamaModel = value === DEFAULT_VALUE ? undefined : value;\n }}\n >\n <Select.TriggerButton placeholder={t('settings default llm model label')} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n <Select.Option value={DEFAULT_VALUE}>{t('settings default label')}</Select.Option>\n {DEFAULT_OLLAMA_MODELS.map((model) => (\n <Select.Option key={model} value={model}>\n {model}\n </Select.Option>\n ))}\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </DeprecatedFormInput>\n </DeprecatedFormContainer>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Match, type Schema } from 'effect';\nimport React, { type ChangeEvent, useCallback } from 'react';\n\nimport { debounce } from '@dxos/async';\nimport { Input, Select, Toolbar, useTranslation } from '@dxos/react-ui';\n\nimport { ASSISTANT_PLUGIN } from '../meta';\nimport { TemplateKinds, type TemplateType, type TemplateKindSchema } from '../types';\n\nexport const PromptSettings = ({ template }: { template: TemplateType }) => {\n const { t } = useTranslation(ASSISTANT_PLUGIN);\n\n const handleKindChange = useCallback(\n (value: string) => {\n const kind = Match.type<string>().pipe(\n Match.withReturnType<Schema.Schema.Type<typeof TemplateKindSchema>>(),\n Match.when('always', () => ({ include: 'always' })),\n Match.when('schema-matching', () => ({ include: 'schema-matching', typename: '' })),\n Match.when('automatically', () => ({ include: 'automatically', description: '' })),\n Match.orElse(() => ({ include: 'manual' })),\n )(value);\n\n template.kind = kind;\n },\n [template],\n );\n\n const handleTypenameChange = useCallback(\n debounce((event: ChangeEvent<HTMLInputElement>) => {\n if (template.kind.include === 'schema-matching') {\n template.kind.typename = event.target.value;\n }\n }, 300),\n [template.kind.include],\n );\n\n const handleDescriptionChange = useCallback(\n debounce((event: ChangeEvent<HTMLInputElement>) => {\n if (template.kind.include === 'automatically') {\n template.kind.description = event.target.value;\n }\n }, 300),\n [template.kind.include],\n );\n\n return (\n <div className='p-2 flex flex-col gap-4'>\n <h2>{t('prompt rules label')}</h2>\n <Toolbar.Root>\n <Select.Root value={template.kind.include} onValueChange={handleKindChange}>\n <Toolbar.Button asChild>\n <Select.TriggerButton />\n </Toolbar.Button>\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n {TemplateKinds.map((kind) => (\n <Select.Option key={kind} value={kind}>\n {kind}\n </Select.Option>\n ))}\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n {template.kind.include === 'schema-matching' && (\n <Input.Root>\n <Input.TextInput\n placeholder={t('typename placeholder')}\n defaultValue={template.kind.typename}\n onChange={handleTypenameChange}\n />\n </Input.Root>\n )}\n {template.kind.include === 'automatically' && (\n <Input.Root>\n <Input.TextInput\n placeholder={t('description placeholder')}\n defaultValue={template.kind.description}\n onChange={handleDescriptionChange}\n />\n </Input.Root>\n )}\n </Toolbar.Root>\n </div>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { lazy } from 'react';\n\nexport * from './AmbientDialog';\nexport * from './AssistantSettings';\nexport * from './Prompt';\nexport * from './PromptSettings';\nexport * from './TemplateEditor';\nexport * from './Thread';\nexport * from './Toolbox';\n\n// TODO(burdon): Lazy loading causes issues with Tabster.\n// Repro: open assistant dialog then close.\n// https://github.com/microsoft/fluentui/issues/34020\nexport const AssistantDialog = lazy(() => import('./AssistantDialog'));\nexport const ChatContainer = lazy(() => import('./ChatContainer'));\nexport const TemplateContainer = lazy(() => import('./TemplateContainer'));\n"],
5
- "mappings": "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",
6
- "names": ["import_react", "import_react_ui", "DEFAULT_VALUE", "LLM_PROVIDER_LABELS", "edge", "ollama", "lmstudio", "AssistantSettings", "settings", "t", "useTranslation", "ASSISTANT_PLUGIN", "React", "DeprecatedFormContainer", "DeprecatedFormInput", "label", "Input", "Switch", "checked", "customPrompts", "onCheckedChange", "Select", "Root", "value", "llmProvider", "onValueChange", "undefined", "TriggerButton", "placeholder", "Portal", "Content", "Viewport", "Option", "LLM_PROVIDERS", "map", "model", "key", "edgeModel", "DEFAULT_EDGE_MODELS", "ollamaModel", "DEFAULT_OLLAMA_MODELS", "PromptSettings", "template", "handleKindChange", "useCallback", "kind", "Match", "type", "pipe", "withReturnType", "when", "include", "typename", "description", "orElse", "handleTypenameChange", "debounce", "event", "target", "handleDescriptionChange", "div", "className", "h2", "Toolbar", "Button", "asChild", "TemplateKinds", "TextInput", "defaultValue", "onChange", "AssistantDialog", "lazy", "ChatContainer", "TemplateContainer"]
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { DEFAULT_EDGE_MODELS, DEFAULT_OLLAMA_MODELS } from '@dxos/ai';\nimport { Input, Select, useTranslation } from '@dxos/react-ui';\nimport { DeprecatedFormContainer, DeprecatedFormInput } from '@dxos/react-ui-form';\n\nimport { ASSISTANT_PLUGIN } from '../../meta';\nimport { LLM_PROVIDERS, type AssistantSettingsProps } from '../../types';\n\n// TODO(burdon): Factor out default Selector.\nconst DEFAULT_VALUE = '__default';\n\nconst LLM_PROVIDER_LABELS = {\n edge: 'DXOS',\n ollama: 'Ollama',\n lmstudio: 'LM Studio',\n} as const;\n\nexport const AssistantSettings = ({ settings }: { settings: AssistantSettingsProps }) => {\n const { t } = useTranslation(ASSISTANT_PLUGIN);\n\n return (\n <DeprecatedFormContainer>\n <DeprecatedFormInput label={t('settings custom prompts label')}>\n <Input.Switch\n checked={!!settings.customPrompts}\n onCheckedChange={(checked) => (settings.customPrompts = checked)}\n />\n </DeprecatedFormInput>\n\n <DeprecatedFormInput label={t('settings llm provider label')}>\n <Select.Root\n value={settings.llmProvider ?? 'edge'}\n onValueChange={(value) => {\n settings.llmProvider = value === DEFAULT_VALUE ? undefined : (value as any);\n }}\n >\n <Select.TriggerButton placeholder={t('settings llm provider label')} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n <Select.Option value={DEFAULT_VALUE}>{t('settings default label')}</Select.Option>\n {LLM_PROVIDERS.map((model) => (\n <Select.Option key={model} value={model}>\n {LLM_PROVIDER_LABELS[model]}\n </Select.Option>\n ))}\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </DeprecatedFormInput>\n\n <DeprecatedFormInput label={t('settings edge llm model label')}>\n <Select.Root\n value={settings.edgeModel ?? DEFAULT_VALUE}\n onValueChange={(value) => {\n settings.edgeModel = value === DEFAULT_VALUE ? undefined : value;\n }}\n >\n <Select.TriggerButton placeholder={t('settings default llm model label')} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n <Select.Option value={DEFAULT_VALUE}>{t('settings default label')}</Select.Option>\n {DEFAULT_EDGE_MODELS.map((model) => (\n <Select.Option key={model} value={model}>\n {model}\n </Select.Option>\n ))}\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </DeprecatedFormInput>\n\n <DeprecatedFormInput label={t('settings ollama llm model label')}>\n <Select.Root\n value={settings.ollamaModel ?? DEFAULT_VALUE}\n onValueChange={(value) => {\n settings.ollamaModel = value === DEFAULT_VALUE ? undefined : value;\n }}\n >\n <Select.TriggerButton placeholder={t('settings default llm model label')} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n <Select.Option value={DEFAULT_VALUE}>{t('settings default label')}</Select.Option>\n {DEFAULT_OLLAMA_MODELS.map((model) => (\n <Select.Option key={model} value={model}>\n {model}\n </Select.Option>\n ))}\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </DeprecatedFormInput>\n </DeprecatedFormContainer>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Match, type Schema } from 'effect';\nimport React, { type ChangeEvent, useCallback } from 'react';\n\nimport { debounce } from '@dxos/async';\nimport { Input, Select, Toolbar, useTranslation } from '@dxos/react-ui';\n\nimport { ASSISTANT_PLUGIN } from '../meta';\nimport { TemplateKinds, type TemplateType, type TemplateKindSchema } from '../types';\n\nexport const PromptSettings = ({ template }: { template: TemplateType }) => {\n const { t } = useTranslation(ASSISTANT_PLUGIN);\n\n const handleKindChange = useCallback(\n (value: string) => {\n const kind = Match.type<string>().pipe(\n Match.withReturnType<Schema.Schema.Type<typeof TemplateKindSchema>>(),\n Match.when('always', () => ({ include: 'always' })),\n Match.when('schema-matching', () => ({ include: 'schema-matching', typename: '' })),\n Match.when('automatically', () => ({ include: 'automatically', description: '' })),\n Match.orElse(() => ({ include: 'manual' })),\n )(value);\n\n template.kind = kind;\n },\n [template],\n );\n\n const handleTypenameChange = useCallback(\n debounce((event: ChangeEvent<HTMLInputElement>) => {\n if (template.kind.include === 'schema-matching') {\n template.kind.typename = event.target.value;\n }\n }, 300),\n [template.kind.include],\n );\n\n const handleDescriptionChange = useCallback(\n debounce((event: ChangeEvent<HTMLInputElement>) => {\n if (template.kind.include === 'automatically') {\n template.kind.description = event.target.value;\n }\n }, 300),\n [template.kind.include],\n );\n\n return (\n <div className='p-2 flex flex-col gap-4'>\n <h2>{t('prompt rules label')}</h2>\n <Toolbar.Root>\n <Select.Root value={template.kind.include} onValueChange={handleKindChange}>\n <Toolbar.Button asChild>\n <Select.TriggerButton />\n </Toolbar.Button>\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n {TemplateKinds.map((kind) => (\n <Select.Option key={kind} value={kind}>\n {kind}\n </Select.Option>\n ))}\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n {template.kind.include === 'schema-matching' && (\n <Input.Root>\n <Input.TextInput\n placeholder={t('typename placeholder')}\n defaultValue={template.kind.typename}\n onChange={handleTypenameChange}\n />\n </Input.Root>\n )}\n {template.kind.include === 'automatically' && (\n <Input.Root>\n <Input.TextInput\n placeholder={t('description placeholder')}\n defaultValue={template.kind.description}\n onChange={handleDescriptionChange}\n />\n </Input.Root>\n )}\n </Toolbar.Root>\n </div>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { lazy } from 'react';\n\nexport * from './AmbientDialog';\nexport * from './AssistantSettings';\nexport * from './Prompt';\nexport * from './PromptSettings';\nexport * from './TemplateEditor';\nexport * from './Thread';\nexport * from './Toolbox';\n\n// TODO(burdon): Lazy loading causes issues with Tabster.\n// Repro: open assistant dialog then close.\n// https://github.com/microsoft/fluentui/issues/34020\nexport const AssistantDialog = lazy(() => import('./AssistantDialog'));\nexport const BlueprintEditor = lazy(() => import('./BlueprintEditor'));\nexport const ChatContainer = lazy(() => import('./ChatContainer'));\nexport const TemplateContainer = lazy(() => import('./TemplateContainer'));\n"],
5
+ "mappings": "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",
6
+ "names": ["import_react", "import_react_ui", "DEFAULT_VALUE", "LLM_PROVIDER_LABELS", "edge", "ollama", "lmstudio", "AssistantSettings", "settings", "t", "useTranslation", "ASSISTANT_PLUGIN", "React", "DeprecatedFormContainer", "DeprecatedFormInput", "label", "Input", "Switch", "checked", "customPrompts", "onCheckedChange", "Select", "Root", "value", "llmProvider", "onValueChange", "undefined", "TriggerButton", "placeholder", "Portal", "Content", "Viewport", "Option", "LLM_PROVIDERS", "map", "model", "key", "edgeModel", "DEFAULT_EDGE_MODELS", "ollamaModel", "DEFAULT_OLLAMA_MODELS", "PromptSettings", "template", "handleKindChange", "useCallback", "kind", "Match", "type", "pipe", "withReturnType", "when", "include", "typename", "description", "orElse", "handleTypenameChange", "debounce", "event", "target", "handleDescriptionChange", "div", "className", "h2", "Toolbar", "Button", "asChild", "TemplateKinds", "TextInput", "defaultValue", "onChange", "AssistantDialog", "lazy", "BlueprintEditor", "ChatContainer", "TemplateContainer"]
7
7
  }
@@ -26,8 +26,8 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  mod
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var chunk_H4A42LNR_exports = {};
30
- __export(chunk_H4A42LNR_exports, {
29
+ var chunk_PG7YNQ4R_exports = {};
30
+ __export(chunk_PG7YNQ4R_exports, {
31
31
  AiClient: () => AiClient,
32
32
  AppGraphBuilder: () => AppGraphBuilder,
33
33
  IntentResolver: () => IntentResolver,
@@ -40,9 +40,9 @@ __export(chunk_H4A42LNR_exports, {
40
40
  Toolbox: () => Toolbox,
41
41
  ToolboxContainer: () => ToolboxContainer
42
42
  });
43
- module.exports = __toCommonJS(chunk_H4A42LNR_exports);
43
+ module.exports = __toCommonJS(chunk_PG7YNQ4R_exports);
44
44
  var import_chunk_TS3H5OSX = require("./chunk-TS3H5OSX.cjs");
45
- var import_chunk_RXPA2C2A = require("./chunk-RXPA2C2A.cjs");
45
+ var import_chunk_UNVDZOLA = require("./chunk-UNVDZOLA.cjs");
46
46
  var import_chunk_P74TWGMG = require("./chunk-P74TWGMG.cjs");
47
47
  var import_tracking = require("@preact-signals/safe-react/tracking");
48
48
  var import_state = require("@codemirror/state");
@@ -133,11 +133,12 @@ var import_react9 = require("react");
133
133
  var import_echo_schema3 = require("@dxos/echo-schema");
134
134
  var import_echo6 = require("@dxos/react-client/echo");
135
135
  var import_react10 = require("react");
136
+ var import_ai6 = require("@dxos/ai");
136
137
  var import_testing = require("@dxos/ai/testing");
137
138
  var import_assistant2 = require("@dxos/assistant");
138
139
  var import_schema = require("@dxos/schema");
139
140
  var import_util7 = require("@dxos/util");
140
- var import_ai6 = require("@dxos/ai");
141
+ var import_ai7 = require("@dxos/ai");
141
142
  var import_artifact2 = require("@dxos/artifact");
142
143
  var import_echo_schema4 = require("@dxos/echo-schema");
143
144
  var import_tracking9 = require("@preact-signals/safe-react/tracking");
@@ -1040,7 +1041,7 @@ var ToolboxContainer = ({ classNames, space }) => {
1040
1041
  var _effect = (0, import_tracking3.useSignals)();
1041
1042
  try {
1042
1043
  const artifactDefinitions = (0, import_app_framework.useCapabilities)(import_app_framework.Capabilities.ArtifactDefinition);
1043
- const services = (0, import_echo.useQuery)(space, import_echo.Filter.type(import_chunk_RXPA2C2A.ServiceType));
1044
+ const services = (0, import_echo.useQuery)(space, import_echo.Filter.type(import_chunk_UNVDZOLA.ServiceType));
1044
1045
  const [serviceTools, setServiceTools] = (0, import_react3.useState)([]);
1045
1046
  (0, import_react3.useEffect)(() => {
1046
1047
  (0, import_log.log)("creating service tools...", {
@@ -1731,10 +1732,10 @@ var AIServiceOverloadedError = class extends Error {
1731
1732
  }
1732
1733
  };
1733
1734
  var AiClient = (0, import_app_framework5.lazy)(() => import("./ai-client-R2CGEYZW.cjs"));
1734
- var AppGraphBuilder = (0, import_app_framework5.lazy)(() => import("./app-graph-builder-PSHIOW3Q.cjs"));
1735
- var IntentResolver = (0, import_app_framework5.lazy)(() => import("./intent-resolver-66F7WLW6.cjs"));
1736
- var ReactSurface = (0, import_app_framework5.lazy)(() => import("./react-surface-TASAPRPQ.cjs"));
1737
- var Settings = (0, import_app_framework5.lazy)(() => import("./settings-ERKLO6IO.cjs"));
1735
+ var AppGraphBuilder = (0, import_app_framework5.lazy)(() => import("./app-graph-builder-QLF353LH.cjs"));
1736
+ var IntentResolver = (0, import_app_framework5.lazy)(() => import("./intent-resolver-U7663JU7.cjs"));
1737
+ var ReactSurface = (0, import_app_framework5.lazy)(() => import("./react-surface-QXZTILW6.cjs"));
1738
+ var Settings = (0, import_app_framework5.lazy)(() => import("./settings-LBJMT6YB.cjs"));
1738
1739
  var __dxlog_file7 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-assistant/src/hooks/useChatProcessor.tsx";
1739
1740
  var useChatProcessor = ({
1740
1741
  chat,
@@ -1750,7 +1751,7 @@ var useChatProcessor = ({
1750
1751
  const globalTools = (0, import_app_framework4.useCapabilities)(import_app_framework4.Capabilities.Tools);
1751
1752
  const artifactDefinitions = (0, import_app_framework4.useCapabilities)(import_app_framework4.Capabilities.ArtifactDefinition);
1752
1753
  const { dispatchPromise: dispatch } = (0, import_app_framework4.useIntentDispatcher)();
1753
- const services = (0, import_echo5.useQuery)(space, import_echo5.Filter.type(import_chunk_RXPA2C2A.ServiceType));
1754
+ const services = (0, import_echo5.useQuery)(space, import_echo5.Filter.type(import_chunk_UNVDZOLA.ServiceType));
1754
1755
  const [serviceTools, setServiceTools] = (0, import_react8.useState)([]);
1755
1756
  (0, import_react8.useEffect)(() => {
1756
1757
  (0, import_log7.log)("creating service tools...", void 0, {
@@ -1847,6 +1848,29 @@ var useMessageQueue = (chat) => {
1847
1848
  ]);
1848
1849
  return (0, import_echo6.useQueue)(queueDxn);
1849
1850
  };
1851
+ var RESEARCH_BLUEPRINT = import_assistant2.BlueprintParser.create().parse({
1852
+ steps: [
1853
+ {
1854
+ instructions: "Research information and entities related to the selected objects.",
1855
+ tools: [
1856
+ "search/web_search"
1857
+ ]
1858
+ },
1859
+ {
1860
+ instructions: "Based on your research find matching entires that are already in the graph. Do exaustive research.",
1861
+ tools: [
1862
+ "search/local_search"
1863
+ ]
1864
+ },
1865
+ {
1866
+ instructions: "Add researched data to the graph. Make connections to existing objects.",
1867
+ tools: [
1868
+ "search/local_search",
1869
+ "graph/writer"
1870
+ ]
1871
+ }
1872
+ ]
1873
+ });
1850
1874
  var AMADEUS_AUTH = {
1851
1875
  type: "oauth",
1852
1876
  clientId: "BOEnpLd1sMyKjAPGKYeAPFFy60u53QEG",
@@ -1863,7 +1887,7 @@ var VISUAL_CROSSING_CREDENTIALS = {
1863
1887
  }
1864
1888
  };
1865
1889
  var TEST_SERVICES = [
1866
- (0, import_echo_schema4.create)(import_chunk_RXPA2C2A.ServiceType, {
1890
+ (0, import_echo_schema4.create)(import_chunk_UNVDZOLA.ServiceType, {
1867
1891
  serviceId: "amadeus.com/service/FlightSearch",
1868
1892
  name: "Amadeus Flight Search",
1869
1893
  description: "Search for local and international flights.",
@@ -1876,7 +1900,7 @@ var TEST_SERVICES = [
1876
1900
  }
1877
1901
  ]
1878
1902
  }),
1879
- (0, import_echo_schema4.create)(import_chunk_RXPA2C2A.ServiceType, {
1903
+ (0, import_echo_schema4.create)(import_chunk_UNVDZOLA.ServiceType, {
1880
1904
  serviceId: "amadeus.com/service/HotelSearch",
1881
1905
  name: "Amadeus Hotel Search",
1882
1906
  description: "Search for local and international hotels.",
@@ -1889,7 +1913,7 @@ var TEST_SERVICES = [
1889
1913
  }
1890
1914
  ]
1891
1915
  }),
1892
- (0, import_echo_schema4.create)(import_chunk_RXPA2C2A.ServiceType, {
1916
+ (0, import_echo_schema4.create)(import_chunk_UNVDZOLA.ServiceType, {
1893
1917
  serviceId: "visualcrossing.com/service/Weather",
1894
1918
  name: "Visual Crossing Weather",
1895
1919
  description: "Search for global weather forecasts.",
@@ -1903,7 +1927,7 @@ var TEST_SERVICES = [
1903
1927
  ]
1904
1928
  }),
1905
1929
  // TODO(burdon): Needs auth.
1906
- (0, import_echo_schema4.create)(import_chunk_RXPA2C2A.ServiceType, {
1930
+ (0, import_echo_schema4.create)(import_chunk_UNVDZOLA.ServiceType, {
1907
1931
  serviceId: "abstractapi.com/service/GeoLocation",
1908
1932
  name: "Abstract GeoLocation",
1909
1933
  description: "Get the location of any IP address.",
@@ -1920,11 +1944,11 @@ var TEST_SERVICES = [
1920
1944
  //
1921
1945
  ...Array.from({
1922
1946
  length: 20
1923
- }, (_, i) => (0, import_echo_schema4.create)(import_chunk_RXPA2C2A.ServiceType, {
1947
+ }, (_, i) => (0, import_echo_schema4.create)(import_chunk_UNVDZOLA.ServiceType, {
1924
1948
  serviceId: `example.com/service/test-${i}`,
1925
1949
  name: `Test ${i}`,
1926
1950
  description: `Test ${i}`,
1927
- category: Object.keys(import_chunk_RXPA2C2A.categoryIcons)[Math.floor(Math.random() * Object.keys(import_chunk_RXPA2C2A.categoryIcons).length)],
1951
+ category: Object.keys(import_chunk_UNVDZOLA.categoryIcons)[Math.floor(Math.random() * Object.keys(import_chunk_UNVDZOLA.categoryIcons).length)],
1928
1952
  interfaces: [
1929
1953
  {
1930
1954
  kind: "api",
@@ -1951,13 +1975,13 @@ var useContextProvider = (space) => {
1951
1975
  label: (0, import_echo_schema5.getLabel)(import_echo8.Obj.getSchema(object), object)
1952
1976
  }, {
1953
1977
  F: __dxlog_file8,
1954
- L: 38,
1978
+ L: 37,
1955
1979
  S: void 0,
1956
1980
  C: (f, a) => f(...a)
1957
1981
  });
1958
1982
  return object;
1959
- }).filter((object) => stringMatch(query, (0, import_echo_schema5.getLabel)(import_echo8.Obj.getSchema(object), object) ?? "")).filter((object) => !!(0, import_echo_schema5.getDXN)(object)).map((object) => ({
1960
- uri: (0, import_echo_schema5.getDXN)(object).toString(),
1983
+ }).filter((object) => stringMatch(query, (0, import_echo_schema5.getLabel)(import_echo8.Obj.getSchema(object), object) ?? "")).filter((object) => !!(0, import_echo_schema5.getObjectDXN)(object)).map((object) => ({
1984
+ uri: (0, import_echo_schema5.getObjectDXN)(object).toString(),
1961
1985
  label: (0, import_echo_schema5.getLabel)(import_echo8.Obj.getSchema(object), object) ?? ""
1962
1986
  }));
1963
1987
  },
@@ -2083,4 +2107,4 @@ var ThreadContainer = ({ classNames, chat, settings, part, associatedArtifact, o
2083
2107
  Toolbox,
2084
2108
  ToolboxContainer
2085
2109
  });
2086
- //# sourceMappingURL=chunk-H4A42LNR.cjs.map
2110
+ //# sourceMappingURL=chunk-PG7YNQ4R.cjs.map