@dxos/plugin-assistant 0.8.3-main.7f5a14c → 0.8.3

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 (155) hide show
  1. package/dist/lib/browser/{AssistantDialog-YCPMFK7Y.mjs → AssistantDialog-MQOOR364.mjs} +5 -5
  2. package/dist/lib/browser/{BlueprintContainer-4MEK52NT.mjs → BlueprintContainer-AT5Y7EXG.mjs} +145 -28
  3. package/dist/lib/browser/BlueprintContainer-AT5Y7EXG.mjs.map +7 -0
  4. package/dist/lib/browser/{ChatContainer-RYFYYEWI.mjs → ChatContainer-C2NEAS3A.mjs} +5 -5
  5. package/dist/lib/browser/{ai-client-MTCTMJ5N.mjs → ai-client-MK2ZZII2.mjs} +6 -6
  6. package/dist/lib/browser/ai-client-MK2ZZII2.mjs.map +7 -0
  7. package/dist/lib/browser/{app-graph-builder-DBCVARVI.mjs → app-graph-builder-E4H5DCOJ.mjs} +35 -22
  8. package/dist/lib/browser/app-graph-builder-E4H5DCOJ.mjs.map +7 -0
  9. package/dist/lib/browser/{chunk-ZVHA24BL.mjs → chunk-AAOKC2JN.mjs} +10 -8
  10. package/dist/lib/browser/{chunk-ZVHA24BL.mjs.map → chunk-AAOKC2JN.mjs.map} +3 -3
  11. package/dist/lib/browser/{chunk-WFZ4EPPI.mjs → chunk-BI6AHRNJ.mjs} +6 -6
  12. package/dist/lib/browser/{chunk-WFZ4EPPI.mjs.map → chunk-BI6AHRNJ.mjs.map} +1 -1
  13. package/dist/lib/browser/{chunk-DLWFPGZE.mjs → chunk-JO4W3MF7.mjs} +6 -6
  14. package/dist/lib/browser/{chunk-DLWFPGZE.mjs.map → chunk-JO4W3MF7.mjs.map} +3 -3
  15. package/dist/lib/browser/chunk-MEGMOFJB.mjs +16 -0
  16. package/dist/lib/browser/{chunk-3TIEETB2.mjs → chunk-UE3IZ4PN.mjs} +1 -1
  17. package/dist/lib/browser/{chunk-3TIEETB2.mjs.map → chunk-UE3IZ4PN.mjs.map} +1 -1
  18. package/dist/lib/browser/index.mjs +66 -23
  19. package/dist/lib/browser/index.mjs.map +4 -4
  20. package/dist/lib/browser/{intent-resolver-ID5NOIIJ.mjs → intent-resolver-3UICTGPM.mjs} +2 -2
  21. package/dist/lib/browser/meta.json +1 -1
  22. package/dist/lib/browser/{react-surface-OD23FVUD.mjs → react-surface-LXCNUSZN.mjs} +23 -6
  23. package/dist/lib/browser/react-surface-LXCNUSZN.mjs.map +7 -0
  24. package/dist/lib/browser/{settings-FUYUBGSQ.mjs → settings-XRHXVWGB.mjs} +2 -2
  25. package/dist/lib/browser/types/index.mjs +1 -1
  26. package/dist/lib/node/{AssistantDialog-B5YKJOAF.cjs → AssistantDialog-AN4Z6YUV.cjs} +9 -9
  27. package/dist/lib/node/{BlueprintContainer-VD6EIWH7.cjs → BlueprintContainer-NOWLDYCZ.cjs} +141 -26
  28. package/dist/lib/node/BlueprintContainer-NOWLDYCZ.cjs.map +7 -0
  29. package/dist/lib/node/{ChatContainer-WFLTSAFA.cjs → ChatContainer-VKYBQHUB.cjs} +9 -9
  30. package/dist/lib/node/{ai-client-3XNIFMJX.cjs → ai-client-7HNSMUMT.cjs} +9 -9
  31. package/dist/lib/node/ai-client-7HNSMUMT.cjs.map +7 -0
  32. package/dist/lib/node/{app-graph-builder-VEPLBTML.cjs → app-graph-builder-PPR5B5KU.cjs} +42 -29
  33. package/dist/lib/node/app-graph-builder-PPR5B5KU.cjs.map +7 -0
  34. package/dist/lib/node/{chunk-BGRQNE3L.cjs → chunk-FUAGEO7Q.cjs} +9 -9
  35. package/dist/lib/node/{chunk-DXBAFX6M.cjs → chunk-IKZBMHSW.cjs} +11 -11
  36. package/dist/lib/node/{chunk-DXBAFX6M.cjs.map → chunk-IKZBMHSW.cjs.map} +1 -1
  37. package/dist/lib/node/{chunk-7TQAIKE2.cjs → chunk-LMDJEGZ2.cjs} +14 -12
  38. package/dist/lib/node/chunk-LMDJEGZ2.cjs.map +7 -0
  39. package/dist/lib/node/{chunk-WR5L3TVB.cjs → chunk-NIDICM57.cjs} +18 -18
  40. package/dist/lib/node/{chunk-WR5L3TVB.cjs.map → chunk-NIDICM57.cjs.map} +3 -3
  41. package/dist/lib/node/{chunk-ZP732NHS.cjs → chunk-QGPWY6GW.cjs} +4 -4
  42. package/dist/lib/node/{chunk-ZP732NHS.cjs.map → chunk-QGPWY6GW.cjs.map} +1 -1
  43. package/dist/lib/node/index.cjs +118 -76
  44. package/dist/lib/node/index.cjs.map +4 -4
  45. package/dist/lib/node/{intent-resolver-SDO4YKJK.cjs → intent-resolver-QSWGTKON.cjs} +8 -8
  46. package/dist/lib/node/meta.json +1 -1
  47. package/dist/lib/node/{react-surface-FANQXIRI.cjs → react-surface-D3NBYRZ6.cjs} +40 -23
  48. package/dist/lib/node/react-surface-D3NBYRZ6.cjs.map +7 -0
  49. package/dist/lib/node/{settings-PXPIPYJN.cjs → settings-2JXLKYGE.cjs} +6 -6
  50. package/dist/lib/node/types/index.cjs +14 -14
  51. package/dist/lib/node/types/index.cjs.map +1 -1
  52. package/dist/lib/node-esm/{AssistantDialog-KPZZD7XC.mjs → AssistantDialog-6WEMLUPU.mjs} +5 -5
  53. package/dist/lib/node-esm/{BlueprintContainer-SVOKCRCP.mjs → BlueprintContainer-STOJAVML.mjs} +145 -28
  54. package/dist/lib/node-esm/BlueprintContainer-STOJAVML.mjs.map +7 -0
  55. package/dist/lib/node-esm/{ChatContainer-WSMKUGS6.mjs → ChatContainer-3MVBTUJN.mjs} +5 -5
  56. package/dist/lib/node-esm/{ai-client-YIP44I4D.mjs → ai-client-XGZBJ6BE.mjs} +6 -6
  57. package/dist/lib/node-esm/ai-client-XGZBJ6BE.mjs.map +7 -0
  58. package/dist/lib/node-esm/{app-graph-builder-WJXDXLBQ.mjs → app-graph-builder-3SY5MBIK.mjs} +35 -22
  59. package/dist/lib/node-esm/app-graph-builder-3SY5MBIK.mjs.map +7 -0
  60. package/dist/lib/node-esm/chunk-34EX6E5Q.mjs +18 -0
  61. package/dist/lib/node-esm/{chunk-VXGO6Q2L.mjs → chunk-3UEZLJ2V.mjs} +1 -1
  62. package/dist/lib/node-esm/{chunk-VXGO6Q2L.mjs.map → chunk-3UEZLJ2V.mjs.map} +1 -1
  63. package/dist/lib/node-esm/{chunk-24LIHQST.mjs → chunk-J6UXXZGJ.mjs} +10 -8
  64. package/dist/lib/node-esm/{chunk-24LIHQST.mjs.map → chunk-J6UXXZGJ.mjs.map} +3 -3
  65. package/dist/lib/node-esm/{chunk-TTSMEWR6.mjs → chunk-OD574YIU.mjs} +6 -6
  66. package/dist/lib/node-esm/{chunk-TTSMEWR6.mjs.map → chunk-OD574YIU.mjs.map} +3 -3
  67. package/dist/lib/node-esm/{chunk-QFX6SFFZ.mjs → chunk-UCOFKNKN.mjs} +6 -6
  68. package/dist/lib/node-esm/{chunk-QFX6SFFZ.mjs.map → chunk-UCOFKNKN.mjs.map} +1 -1
  69. package/dist/lib/node-esm/index.mjs +66 -23
  70. package/dist/lib/node-esm/index.mjs.map +4 -4
  71. package/dist/lib/node-esm/{intent-resolver-75REJDDQ.mjs → intent-resolver-E6MXTYAU.mjs} +2 -2
  72. package/dist/lib/node-esm/meta.json +1 -1
  73. package/dist/lib/node-esm/{react-surface-NAN4SDCE.mjs → react-surface-7HA5EDWY.mjs} +23 -6
  74. package/dist/lib/node-esm/react-surface-7HA5EDWY.mjs.map +7 -0
  75. package/dist/lib/node-esm/{settings-JHMKX3UV.mjs → settings-5IAY6BT4.mjs} +2 -2
  76. package/dist/lib/node-esm/types/index.mjs +1 -1
  77. package/dist/types/src/AssistantPlugin.d.ts.map +1 -1
  78. package/dist/types/src/capabilities/ai-client.d.ts +2 -2
  79. package/dist/types/src/capabilities/ai-client.d.ts.map +1 -1
  80. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  81. package/dist/types/src/capabilities/capabilities.d.ts +2 -2
  82. package/dist/types/src/capabilities/index.d.ts +1 -1
  83. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  84. package/dist/types/src/components/BlueprintContainer.d.ts.map +1 -1
  85. package/dist/types/src/components/Thread/Thread.stories.d.ts.map +1 -1
  86. package/dist/types/src/events.d.ts +4 -0
  87. package/dist/types/src/events.d.ts.map +1 -0
  88. package/dist/types/src/hooks/processor.d.ts +3 -3
  89. package/dist/types/src/hooks/useMessageQueue.d.ts +2 -2
  90. package/dist/types/src/index.d.ts +1 -0
  91. package/dist/types/src/index.d.ts.map +1 -1
  92. package/dist/types/src/queue-logger.d.ts +11 -0
  93. package/dist/types/src/queue-logger.d.ts.map +1 -0
  94. package/dist/types/src/translations.d.ts +75 -11
  95. package/dist/types/src/translations.d.ts.map +1 -1
  96. package/dist/types/src/types/chat.d.ts +12 -9
  97. package/dist/types/src/types/chat.d.ts.map +1 -1
  98. package/dist/types/src/types/service.d.ts +51 -102
  99. package/dist/types/src/types/service.d.ts.map +1 -1
  100. package/dist/types/src/types/template.d.ts +3 -23
  101. package/dist/types/src/types/template.d.ts.map +1 -1
  102. package/dist/types/src/types/types.d.ts +5 -5
  103. package/package.json +70 -69
  104. package/src/AssistantPlugin.tsx +26 -3
  105. package/src/capabilities/ai-client.ts +4 -4
  106. package/src/capabilities/app-graph-builder.ts +34 -22
  107. package/src/capabilities/capabilities.ts +2 -2
  108. package/src/capabilities/react-surface.tsx +16 -0
  109. package/src/components/BlueprintContainer.tsx +10 -22
  110. package/src/components/PromptSettings.tsx +1 -1
  111. package/src/components/Thread/Thread.stories.tsx +19 -27
  112. package/src/components/Thread/ThreadContainer.stories.tsx +5 -5
  113. package/src/components/Thread/ThreadContainer.tsx +1 -1
  114. package/src/components/Thread/reducer.ts +3 -3
  115. package/src/events.ts +11 -0
  116. package/src/hooks/processor.ts +4 -4
  117. package/src/index.ts +1 -0
  118. package/src/queue-logger.ts +125 -0
  119. package/src/stories/Query.stories.tsx +4 -4
  120. package/src/stories/Research.stories.tsx +11 -11
  121. package/src/stories/test-data.ts +4 -4
  122. package/src/testing/test-blueprint.ts +1 -1
  123. package/src/tools/openapi.test.ts +4 -4
  124. package/src/translations.ts +16 -4
  125. package/src/types/template.ts +11 -6
  126. package/dist/lib/browser/BlueprintContainer-4MEK52NT.mjs.map +0 -7
  127. package/dist/lib/browser/ai-client-MTCTMJ5N.mjs.map +0 -7
  128. package/dist/lib/browser/app-graph-builder-DBCVARVI.mjs.map +0 -7
  129. package/dist/lib/browser/chunk-AKYSTUBJ.mjs +0 -16
  130. package/dist/lib/browser/react-surface-OD23FVUD.mjs.map +0 -7
  131. package/dist/lib/node/BlueprintContainer-VD6EIWH7.cjs.map +0 -7
  132. package/dist/lib/node/ai-client-3XNIFMJX.cjs.map +0 -7
  133. package/dist/lib/node/app-graph-builder-VEPLBTML.cjs.map +0 -7
  134. package/dist/lib/node/chunk-7TQAIKE2.cjs.map +0 -7
  135. package/dist/lib/node/react-surface-FANQXIRI.cjs.map +0 -7
  136. package/dist/lib/node-esm/BlueprintContainer-SVOKCRCP.mjs.map +0 -7
  137. package/dist/lib/node-esm/ai-client-YIP44I4D.mjs.map +0 -7
  138. package/dist/lib/node-esm/app-graph-builder-WJXDXLBQ.mjs.map +0 -7
  139. package/dist/lib/node-esm/chunk-ZKTIHNT7.mjs +0 -18
  140. package/dist/lib/node-esm/react-surface-NAN4SDCE.mjs.map +0 -7
  141. /package/dist/lib/browser/{AssistantDialog-YCPMFK7Y.mjs.map → AssistantDialog-MQOOR364.mjs.map} +0 -0
  142. /package/dist/lib/browser/{ChatContainer-RYFYYEWI.mjs.map → ChatContainer-C2NEAS3A.mjs.map} +0 -0
  143. /package/dist/lib/browser/{chunk-AKYSTUBJ.mjs.map → chunk-MEGMOFJB.mjs.map} +0 -0
  144. /package/dist/lib/browser/{intent-resolver-ID5NOIIJ.mjs.map → intent-resolver-3UICTGPM.mjs.map} +0 -0
  145. /package/dist/lib/browser/{settings-FUYUBGSQ.mjs.map → settings-XRHXVWGB.mjs.map} +0 -0
  146. /package/dist/lib/node/{AssistantDialog-B5YKJOAF.cjs.map → AssistantDialog-AN4Z6YUV.cjs.map} +0 -0
  147. /package/dist/lib/node/{ChatContainer-WFLTSAFA.cjs.map → ChatContainer-VKYBQHUB.cjs.map} +0 -0
  148. /package/dist/lib/node/{chunk-BGRQNE3L.cjs.map → chunk-FUAGEO7Q.cjs.map} +0 -0
  149. /package/dist/lib/node/{intent-resolver-SDO4YKJK.cjs.map → intent-resolver-QSWGTKON.cjs.map} +0 -0
  150. /package/dist/lib/node/{settings-PXPIPYJN.cjs.map → settings-2JXLKYGE.cjs.map} +0 -0
  151. /package/dist/lib/node-esm/{AssistantDialog-KPZZD7XC.mjs.map → AssistantDialog-6WEMLUPU.mjs.map} +0 -0
  152. /package/dist/lib/node-esm/{ChatContainer-WSMKUGS6.mjs.map → ChatContainer-3MVBTUJN.mjs.map} +0 -0
  153. /package/dist/lib/node-esm/{chunk-ZKTIHNT7.mjs.map → chunk-34EX6E5Q.mjs.map} +0 -0
  154. /package/dist/lib/node-esm/{intent-resolver-75REJDDQ.mjs.map → intent-resolver-E6MXTYAU.mjs.map} +0 -0
  155. /package/dist/lib/node-esm/{settings-JHMKX3UV.mjs.map → settings-5IAY6BT4.mjs.map} +0 -0
@@ -26,41 +26,43 @@ 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 react_surface_FANQXIRI_exports = {};
30
- __export(react_surface_FANQXIRI_exports, {
29
+ var react_surface_D3NBYRZ6_exports = {};
30
+ __export(react_surface_D3NBYRZ6_exports, {
31
31
  default: () => react_surface_default
32
32
  });
33
- module.exports = __toCommonJS(react_surface_FANQXIRI_exports);
34
- var import_chunk_DXBAFX6M = require("./chunk-DXBAFX6M.cjs");
33
+ module.exports = __toCommonJS(react_surface_D3NBYRZ6_exports);
34
+ var import_chunk_IKZBMHSW = require("./chunk-IKZBMHSW.cjs");
35
35
  var import_chunk_4EEWTDQK = require("./chunk-4EEWTDQK.cjs");
36
36
  var import_chunk_HRNIUYVQ = require("./chunk-HRNIUYVQ.cjs");
37
- var import_chunk_WR5L3TVB = require("./chunk-WR5L3TVB.cjs");
38
- var import_chunk_7TQAIKE2 = require("./chunk-7TQAIKE2.cjs");
39
- var import_chunk_BGRQNE3L = require("./chunk-BGRQNE3L.cjs");
40
- var import_chunk_ZP732NHS = require("./chunk-ZP732NHS.cjs");
37
+ var import_chunk_NIDICM57 = require("./chunk-NIDICM57.cjs");
38
+ var import_chunk_LMDJEGZ2 = require("./chunk-LMDJEGZ2.cjs");
39
+ var import_chunk_FUAGEO7Q = require("./chunk-FUAGEO7Q.cjs");
40
+ var import_chunk_QGPWY6GW = require("./chunk-QGPWY6GW.cjs");
41
41
  var import_chunk_P74TWGMG = require("./chunk-P74TWGMG.cjs");
42
42
  var import_effect = require("effect");
43
43
  var import_react = __toESM(require("react"));
44
44
  var import_app_framework = require("@dxos/app-framework");
45
45
  var import_assistant = require("@dxos/assistant");
46
+ var import_devtools = require("@dxos/devtools");
46
47
  var import_echo = require("@dxos/echo");
47
48
  var import_local_storage = require("@dxos/local-storage");
48
49
  var import_types = require("@dxos/plugin-space/types");
49
50
  var import_echo2 = require("@dxos/react-client/echo");
51
+ var import_react_ui_stack = require("@dxos/react-ui-stack");
50
52
  var react_surface_default = () => (0, import_app_framework.contributes)(import_app_framework.Capabilities.ReactSurface, [
51
53
  (0, import_app_framework.createSurface)({
52
54
  id: `${import_chunk_P74TWGMG.ASSISTANT_PLUGIN}/plugin-settings`,
53
55
  role: "article",
54
56
  filter: (data) => data.subject instanceof import_local_storage.SettingsStore && data.subject.prefix === import_chunk_P74TWGMG.ASSISTANT_PLUGIN,
55
- component: ({ data: { subject } }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_DXBAFX6M.AssistantSettings, {
57
+ component: ({ data: { subject } }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_IKZBMHSW.AssistantSettings, {
56
58
  settings: subject.value
57
59
  })
58
60
  }),
59
61
  (0, import_app_framework.createSurface)({
60
62
  id: `${import_chunk_P74TWGMG.ASSISTANT_PLUGIN}/chat`,
61
63
  role: "article",
62
- filter: (data) => import_echo.Obj.instanceOf(import_chunk_7TQAIKE2.AIChatType, data.subject) && data.variant !== "assistant-chat",
63
- component: ({ data, role }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_DXBAFX6M.ChatContainer, {
64
+ filter: (data) => import_echo.Obj.instanceOf(import_chunk_LMDJEGZ2.AIChatType, data.subject) && data.variant !== "assistant-chat",
65
+ component: ({ data, role }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_IKZBMHSW.ChatContainer, {
64
66
  role,
65
67
  chat: data.subject
66
68
  })
@@ -68,7 +70,7 @@ var react_surface_default = () => (0, import_app_framework.contributes)(import_a
68
70
  (0, import_app_framework.createSurface)({
69
71
  id: `${import_chunk_P74TWGMG.ASSISTANT_PLUGIN}/object-chat`,
70
72
  role: "article",
71
- filter: (data) => import_echo.Obj.isObject(data.companionTo) && (import_echo.Obj.instanceOf(import_chunk_7TQAIKE2.AIChatType, data.subject) || data.subject === "assistant-chat"),
73
+ filter: (data) => import_echo.Obj.isObject(data.companionTo) && (import_echo.Obj.instanceOf(import_chunk_LMDJEGZ2.AIChatType, data.subject) || data.subject === "assistant-chat"),
72
74
  component: ({ data, role }) => {
73
75
  const { dispatch } = (0, import_app_framework.useIntentDispatcher)();
74
76
  const associatedArtifact = (0, import_react.useMemo)(() => ({
@@ -82,12 +84,12 @@ var react_surface_default = () => (0, import_app_framework.contributes)(import_a
82
84
  const timeout = setTimeout(async () => {
83
85
  const space = (0, import_echo2.getSpace)(data.companionTo);
84
86
  if (space && data.subject === "assistant-chat") {
85
- const result = await space.db.query(import_echo.Query.select(import_echo.Filter.ids(data.companionTo.id)).targetOf(import_chunk_7TQAIKE2.CompanionTo).source()).run();
87
+ const result = await space.db.query(import_echo.Query.select(import_echo.Filter.ids(data.companionTo.id)).targetOf(import_chunk_LMDJEGZ2.CompanionTo).source()).run();
86
88
  if (result.objects.length > 0) {
87
89
  return;
88
90
  }
89
91
  const program = import_effect.Effect.gen(function* () {
90
- const { object } = yield* dispatch((0, import_app_framework.createIntent)(import_chunk_7TQAIKE2.AssistantAction.CreateChat, {
92
+ const { object } = yield* dispatch((0, import_app_framework.createIntent)(import_chunk_LMDJEGZ2.AssistantAction.CreateChat, {
91
93
  space
92
94
  }));
93
95
  yield* dispatch((0, import_app_framework.createIntent)(import_types.SpaceAction.AddObject, {
@@ -97,7 +99,7 @@ var react_surface_default = () => (0, import_app_framework.contributes)(import_a
97
99
  }));
98
100
  yield* dispatch((0, import_app_framework.createIntent)(import_types.SpaceAction.AddRelation, {
99
101
  space,
100
- schema: import_chunk_7TQAIKE2.CompanionTo,
102
+ schema: import_chunk_LMDJEGZ2.CompanionTo,
101
103
  source: object,
102
104
  target: data.companionTo
103
105
  }));
@@ -112,7 +114,7 @@ var react_surface_default = () => (0, import_app_framework.contributes)(import_a
112
114
  if (data.subject === "assistant-chat") {
113
115
  return null;
114
116
  }
115
- return /* @__PURE__ */ import_react.default.createElement(import_chunk_DXBAFX6M.ChatContainer, {
117
+ return /* @__PURE__ */ import_react.default.createElement(import_chunk_IKZBMHSW.ChatContainer, {
116
118
  role,
117
119
  chat: data.subject,
118
120
  associatedArtifact
@@ -123,16 +125,31 @@ var react_surface_default = () => (0, import_app_framework.contributes)(import_a
123
125
  id: `${import_chunk_P74TWGMG.ASSISTANT_PLUGIN}/blueprint`,
124
126
  role: "article",
125
127
  filter: (data) => import_echo.Obj.instanceOf(import_assistant.Blueprint, data.subject),
126
- component: ({ data, role }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_DXBAFX6M.BlueprintContainer, {
128
+ component: ({ data, role }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_IKZBMHSW.BlueprintContainer, {
127
129
  role,
128
130
  blueprint: data.subject
129
131
  })
130
132
  }),
133
+ (0, import_app_framework.createSurface)({
134
+ id: `${import_chunk_P74TWGMG.ASSISTANT_PLUGIN}/companion/logs`,
135
+ role: "article",
136
+ filter: (data) => import_echo.Obj.instanceOf(import_assistant.Blueprint, data.companionTo) && data.subject === "logs",
137
+ component: ({ data, role }) => {
138
+ const space = (0, import_echo2.getSpace)(data.companionTo);
139
+ return /* @__PURE__ */ import_react.default.createElement(import_react_ui_stack.StackItem.Content, {
140
+ role
141
+ }, /* @__PURE__ */ import_react.default.createElement(import_devtools.InvocationTraceContainer, {
142
+ space,
143
+ target: data.companionTo,
144
+ detailAxis: "block"
145
+ }));
146
+ }
147
+ }),
131
148
  (0, import_app_framework.createSurface)({
132
149
  id: `${import_chunk_P74TWGMG.ASSISTANT_PLUGIN}/template`,
133
150
  role: "article",
134
- filter: (data) => import_echo.Obj.instanceOf(import_chunk_7TQAIKE2.TemplateType, data.subject),
135
- component: ({ data, role }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_DXBAFX6M.TemplateContainer, {
151
+ filter: (data) => import_echo.Obj.instanceOf(import_chunk_LMDJEGZ2.TemplateType, data.subject),
152
+ component: ({ data, role }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_IKZBMHSW.TemplateContainer, {
136
153
  role,
137
154
  template: data.subject
138
155
  })
@@ -141,15 +158,15 @@ var react_surface_default = () => (0, import_app_framework.contributes)(import_a
141
158
  id: import_chunk_P74TWGMG.ASSISTANT_DIALOG,
142
159
  role: "dialog",
143
160
  filter: (data) => data.component === import_chunk_P74TWGMG.ASSISTANT_DIALOG,
144
- component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_DXBAFX6M.AssistantDialog, data.props)
161
+ component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_IKZBMHSW.AssistantDialog, data.props)
145
162
  }),
146
163
  (0, import_app_framework.createSurface)({
147
164
  id: `${import_chunk_P74TWGMG.ASSISTANT_PLUGIN}/prompt-settings`,
148
165
  role: "object-settings",
149
- filter: (data) => import_echo.Obj.instanceOf(import_chunk_7TQAIKE2.TemplateType, data.subject),
150
- component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_DXBAFX6M.PromptSettings, {
166
+ filter: (data) => import_echo.Obj.instanceOf(import_chunk_LMDJEGZ2.TemplateType, data.subject),
167
+ component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_IKZBMHSW.PromptSettings, {
151
168
  template: data.subject
152
169
  })
153
170
  })
154
171
  ]);
155
- //# sourceMappingURL=react-surface-FANQXIRI.cjs.map
172
+ //# sourceMappingURL=react-surface-D3NBYRZ6.cjs.map
@@ -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 { InvocationTraceContainer } from '@dxos/devtools';\nimport { Filter, type Key, Obj, Query } from '@dxos/echo';\nimport { SettingsStore } from '@dxos/local-storage';\nimport { SpaceAction } from '@dxos/plugin-space/types';\nimport { fullyQualifiedId, getSpace, getTypename } from '@dxos/react-client/echo';\nimport { StackItem } from '@dxos/react-ui-stack';\n\nimport {\n AssistantDialog,\n AssistantSettings,\n BlueprintContainer,\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: Obj.Any; subject: AIChatType | 'assistant-chat' } =>\n Obj.isObject(data.companionTo) &&\n (Obj.instanceOf(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 Key.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 }) => <BlueprintContainer role={role} blueprint={data.subject} />,\n }),\n createSurface({\n id: `${ASSISTANT_PLUGIN}/companion/logs`,\n role: 'article',\n filter: (data): data is { companionTo: Blueprint } =>\n Obj.instanceOf(Blueprint, data.companionTo) && data.subject === 'logs',\n component: ({ data, role }) => {\n const space = getSpace(data.companionTo);\n return (\n <StackItem.Content role={role}>\n <InvocationTraceContainer space={space} target={data.companionTo} detailAxis='block' />\n </StackItem.Content>\n );\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": ["import_echo", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "ASSISTANT_PLUGIN", "role", "filter", "data", "subject", "SettingsStore", "prefix", "component", "React", "AssistantSettings", "settings", "value", "Obj", "instanceOf", "AIChatType", "variant", "ChatContainer", "chat", "isObject", "companionTo", "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", "BlueprintContainer", "blueprint", "StackItem", "Content", "InvocationTraceContainer", "detailAxis", "TemplateType", "TemplateContainer", "template", "ASSISTANT_DIALOG", "AssistantDialog", "props", "PromptSettings"]
7
+ }
@@ -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 settings_PXPIPYJN_exports = {};
20
- __export(settings_PXPIPYJN_exports, {
19
+ var settings_2JXLKYGE_exports = {};
20
+ __export(settings_2JXLKYGE_exports, {
21
21
  default: () => settings_default
22
22
  });
23
- module.exports = __toCommonJS(settings_PXPIPYJN_exports);
24
- var import_chunk_7TQAIKE2 = require("./chunk-7TQAIKE2.cjs");
23
+ module.exports = __toCommonJS(settings_2JXLKYGE_exports);
24
+ var import_chunk_LMDJEGZ2 = require("./chunk-LMDJEGZ2.cjs");
25
25
  var import_chunk_P74TWGMG = require("./chunk-P74TWGMG.cjs");
26
26
  var import_app_framework = require("@dxos/app-framework");
27
27
  var import_live_object = require("@dxos/live-object");
@@ -29,8 +29,8 @@ var settings_default = () => {
29
29
  const settings = (0, import_live_object.live)({});
30
30
  return (0, import_app_framework.contributes)(import_app_framework.Capabilities.Settings, {
31
31
  prefix: import_chunk_P74TWGMG.meta.id,
32
- schema: import_chunk_7TQAIKE2.AssistantSettingsSchema,
32
+ schema: import_chunk_LMDJEGZ2.AssistantSettingsSchema,
33
33
  value: settings
34
34
  });
35
35
  };
36
- //# sourceMappingURL=settings-PXPIPYJN.cjs.map
36
+ //# sourceMappingURL=settings-2JXLKYGE.cjs.map
@@ -18,22 +18,22 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var types_exports = {};
20
20
  __export(types_exports, {
21
- AIChatType: () => import_chunk_7TQAIKE2.AIChatType,
22
- ApiAuthorization: () => import_chunk_7TQAIKE2.ApiAuthorization,
23
- AssistantAction: () => import_chunk_7TQAIKE2.AssistantAction,
24
- AssistantSettingsSchema: () => import_chunk_7TQAIKE2.AssistantSettingsSchema,
25
- CompanionTo: () => import_chunk_7TQAIKE2.CompanionTo,
26
- LLM_PROVIDERS: () => import_chunk_7TQAIKE2.LLM_PROVIDERS,
27
- ServiceType: () => import_chunk_7TQAIKE2.ServiceType,
28
- TemplateInputSchema: () => import_chunk_7TQAIKE2.TemplateInputSchema,
29
- TemplateInputType: () => import_chunk_7TQAIKE2.TemplateInputType,
30
- TemplateKindSchema: () => import_chunk_7TQAIKE2.TemplateKindSchema,
31
- TemplateKinds: () => import_chunk_7TQAIKE2.TemplateKinds,
32
- TemplateType: () => import_chunk_7TQAIKE2.TemplateType,
33
- categoryIcons: () => import_chunk_7TQAIKE2.categoryIcons
21
+ AIChatType: () => import_chunk_LMDJEGZ2.AIChatType,
22
+ ApiAuthorization: () => import_chunk_LMDJEGZ2.ApiAuthorization,
23
+ AssistantAction: () => import_chunk_LMDJEGZ2.AssistantAction,
24
+ AssistantSettingsSchema: () => import_chunk_LMDJEGZ2.AssistantSettingsSchema,
25
+ CompanionTo: () => import_chunk_LMDJEGZ2.CompanionTo,
26
+ LLM_PROVIDERS: () => import_chunk_LMDJEGZ2.LLM_PROVIDERS,
27
+ ServiceType: () => import_chunk_LMDJEGZ2.ServiceType,
28
+ TemplateInputSchema: () => import_chunk_LMDJEGZ2.TemplateInputSchema,
29
+ TemplateInputType: () => import_chunk_LMDJEGZ2.TemplateInputType,
30
+ TemplateKindSchema: () => import_chunk_LMDJEGZ2.TemplateKindSchema,
31
+ TemplateKinds: () => import_chunk_LMDJEGZ2.TemplateKinds,
32
+ TemplateType: () => import_chunk_LMDJEGZ2.TemplateType,
33
+ categoryIcons: () => import_chunk_LMDJEGZ2.categoryIcons
34
34
  });
35
35
  module.exports = __toCommonJS(types_exports);
36
- var import_chunk_7TQAIKE2 = require("../chunk-7TQAIKE2.cjs");
36
+ var import_chunk_LMDJEGZ2 = require("../chunk-LMDJEGZ2.cjs");
37
37
  var import_chunk_P74TWGMG = require("../chunk-P74TWGMG.cjs");
38
38
  // Annotate the CommonJS export names for ESM import in node:
39
39
  0 && (module.exports = {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["index.cjs"],
4
- "sourcesContent": ["import {\n AIChatType,\n ApiAuthorization,\n AssistantAction,\n AssistantSettingsSchema,\n CompanionTo,\n LLM_PROVIDERS,\n ServiceType,\n TemplateInputSchema,\n TemplateInputType,\n TemplateKindSchema,\n TemplateKinds,\n TemplateType,\n categoryIcons\n} from \"../chunk-7TQAIKE2.cjs\";\nimport \"../chunk-P74TWGMG.cjs\";\nexport {\n AIChatType,\n ApiAuthorization,\n AssistantAction,\n AssistantSettingsSchema,\n CompanionTo,\n LLM_PROVIDERS,\n ServiceType,\n TemplateInputSchema,\n TemplateInputType,\n TemplateKindSchema,\n TemplateKinds,\n TemplateType,\n categoryIcons\n};\n//# sourceMappingURL=index.cjs.map\n"],
4
+ "sourcesContent": ["import {\n AIChatType,\n ApiAuthorization,\n AssistantAction,\n AssistantSettingsSchema,\n CompanionTo,\n LLM_PROVIDERS,\n ServiceType,\n TemplateInputSchema,\n TemplateInputType,\n TemplateKindSchema,\n TemplateKinds,\n TemplateType,\n categoryIcons\n} from \"../chunk-LMDJEGZ2.cjs\";\nimport \"../chunk-P74TWGMG.cjs\";\nexport {\n AIChatType,\n ApiAuthorization,\n AssistantAction,\n AssistantSettingsSchema,\n CompanionTo,\n LLM_PROVIDERS,\n ServiceType,\n TemplateInputSchema,\n TemplateInputType,\n TemplateKindSchema,\n TemplateKinds,\n TemplateType,\n categoryIcons\n};\n//# sourceMappingURL=index.cjs.map\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAcO;AACP,4BAAO;",
6
6
  "names": []
7
7
  }
@@ -4,10 +4,10 @@ import {
4
4
  } from "./chunk-CDAILLCU.mjs";
5
5
  import {
6
6
  ThreadContainer
7
- } from "./chunk-TTSMEWR6.mjs";
8
- import "./chunk-24LIHQST.mjs";
9
- import "./chunk-ZKTIHNT7.mjs";
10
- import "./chunk-VXGO6Q2L.mjs";
7
+ } from "./chunk-OD574YIU.mjs";
8
+ import "./chunk-J6UXXZGJ.mjs";
9
+ import "./chunk-34EX6E5Q.mjs";
10
+ import "./chunk-3UEZLJ2V.mjs";
11
11
  import {
12
12
  ASSISTANT_PLUGIN
13
13
  } from "./chunk-BB2TAT4P.mjs";
@@ -45,4 +45,4 @@ export {
45
45
  AssistantDialog,
46
46
  AssistantDialog_default as default
47
47
  };
48
- //# sourceMappingURL=AssistantDialog-KPZZD7XC.mjs.map
48
+ //# sourceMappingURL=AssistantDialog-6WEMLUPU.mjs.map
@@ -1,8 +1,8 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import "./chunk-ZKTIHNT7.mjs";
2
+ import "./chunk-34EX6E5Q.mjs";
3
3
  import {
4
4
  AssistantCapabilities
5
- } from "./chunk-VXGO6Q2L.mjs";
5
+ } from "./chunk-3UEZLJ2V.mjs";
6
6
  import {
7
7
  meta
8
8
  } from "./chunk-BB2TAT4P.mjs";
@@ -13,9 +13,9 @@ import JSON5 from "json5";
13
13
  import React2, { useCallback, useEffect, useMemo, useRef, useState } from "react";
14
14
  import { ToolRegistry } from "@dxos/ai";
15
15
  import { useCapability } from "@dxos/app-framework";
16
- import { BlueprintLoggerAdapter, BlueprintParser, BlueprintMachine, createLocalSearchTool, createExaTool, createGraphWriterTool } from "@dxos/assistant";
17
- import { getSpace } from "@dxos/client/echo";
18
- import { DXN, Key } from "@dxos/echo";
16
+ import { BlueprintMachine, createLocalSearchTool, createExaTool, createGraphWriterTool } from "@dxos/assistant";
17
+ import { getSpace as getSpace2 } from "@dxos/client/echo";
18
+ import { DXN as DXN2, Key as Key2 } from "@dxos/echo";
19
19
  import { Toolbar, useTranslation } from "@dxos/react-ui";
20
20
  import { getSelectionSet, useSelectionManager } from "@dxos/react-ui-attention";
21
21
  import { StackItem } from "@dxos/react-ui-stack";
@@ -64,6 +64,130 @@ var BlueprintEditor = /* @__PURE__ */ forwardRef(({ classNames, blueprint }, for
64
64
  }
65
65
  });
66
66
 
67
+ // packages/plugins/plugin-assistant/src/queue-logger.ts
68
+ import { getSpace, Ref } from "@dxos/client/echo";
69
+ import { DXN, Key, Obj } from "@dxos/echo";
70
+ import { InvocationOutcome, InvocationTraceEndEvent, InvocationTraceEventType, InvocationTraceStartEvent, TraceEvent } from "@dxos/functions";
71
+ import { invariant } from "@dxos/invariant";
72
+ import { QueueSubspaceTags } from "@dxos/keys";
73
+ var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-assistant/src/queue-logger.ts";
74
+ var QueueLogger = class {
75
+ constructor(blueprint) {
76
+ this.blueprint = blueprint;
77
+ const space = getSpace(blueprint);
78
+ invariant(space, "Space not found", {
79
+ F: __dxlog_file,
80
+ L: 25,
81
+ S: this,
82
+ A: [
83
+ "space",
84
+ "'Space not found'"
85
+ ]
86
+ });
87
+ this._space = space;
88
+ let dxn = this._space.properties.invocationTraceQueue?.dxn;
89
+ if (!dxn) {
90
+ dxn = DXN.fromQueue(QueueSubspaceTags.TRACE, this._space.id, Key.ObjectId.random());
91
+ this._space.properties.invocationTraceQueue = Ref.fromDXN(dxn);
92
+ }
93
+ this._invocationTraceQueue = this._space.queues.get(dxn);
94
+ }
95
+ log(event) {
96
+ switch (event.type) {
97
+ case "begin":
98
+ void this._invocationTraceQueue.append([
99
+ Obj.make(InvocationTraceStartEvent, {
100
+ type: InvocationTraceEventType.START,
101
+ invocationId: event.invocationId,
102
+ timestampMs: Date.now(),
103
+ input: {},
104
+ invocationTraceQueue: Ref.fromDXN(this._getTraceQueueDxn(event.invocationId)),
105
+ invocationTarget: Ref.make(this.blueprint)
106
+ })
107
+ ]);
108
+ break;
109
+ case "end":
110
+ void this._invocationTraceQueue.append([
111
+ Obj.make(InvocationTraceEndEvent, {
112
+ type: InvocationTraceEventType.END,
113
+ invocationId: event.invocationId,
114
+ timestampMs: Date.now(),
115
+ outcome: InvocationOutcome.SUCCESS
116
+ })
117
+ ]);
118
+ break;
119
+ case "step-start":
120
+ case "step-complete":
121
+ void this._getTraceEventQueue(event.invocationId).append([
122
+ Obj.make(TraceEvent, {
123
+ outcome: event.type,
124
+ truncated: false,
125
+ ingestionTimestampMs: Date.now(),
126
+ logs: [
127
+ {
128
+ timestampMs: Date.now(),
129
+ level: "info",
130
+ message: event.type,
131
+ context: {
132
+ step: event.step
133
+ }
134
+ }
135
+ ],
136
+ exceptions: []
137
+ })
138
+ ]);
139
+ break;
140
+ case "message":
141
+ void this._getTraceEventQueue(event.invocationId).append([
142
+ Obj.make(TraceEvent, {
143
+ outcome: event.type,
144
+ truncated: false,
145
+ ingestionTimestampMs: Date.now(),
146
+ logs: [
147
+ {
148
+ timestampMs: Date.now(),
149
+ level: "info",
150
+ message: event.type,
151
+ context: {
152
+ message: event.message
153
+ }
154
+ }
155
+ ],
156
+ exceptions: []
157
+ })
158
+ ]);
159
+ break;
160
+ case "block":
161
+ void this._getTraceEventQueue(event.invocationId).append([
162
+ Obj.make(TraceEvent, {
163
+ outcome: event.type,
164
+ truncated: false,
165
+ ingestionTimestampMs: Date.now(),
166
+ logs: [
167
+ {
168
+ timestampMs: Date.now(),
169
+ level: "info",
170
+ message: event.type,
171
+ context: {
172
+ block: event.block
173
+ }
174
+ }
175
+ ],
176
+ exceptions: []
177
+ })
178
+ ]);
179
+ break;
180
+ }
181
+ }
182
+ _getTraceQueueDxn(invocationId) {
183
+ return DXN.fromQueue(QueueSubspaceTags.TRACE, this._space.id, invocationId);
184
+ }
185
+ _getTraceEventQueue(invocationId) {
186
+ const dxn = this._getTraceQueueDxn(invocationId);
187
+ return this._space.queues.get(dxn);
188
+ }
189
+ };
190
+
67
191
  // packages/plugins/plugin-assistant/src/components/BlueprintContainer.tsx
68
192
  var EXA_API_KEY = "9c7e17ff-0c85-4cd5-827a-8b489f139e03";
69
193
  var parseBlueprint = (text) => {
@@ -95,7 +219,7 @@ var BlueprintContainer = ({ role, blueprint }) => {
95
219
  ]);
96
220
  const editorRef = useRef(void 0);
97
221
  const toolRegistry = useMemo(() => {
98
- const space = getSpace(blueprint);
222
+ const space = getSpace2(blueprint);
99
223
  if (!space) {
100
224
  return;
101
225
  }
@@ -110,14 +234,14 @@ var BlueprintContainer = ({ role, blueprint }) => {
110
234
  queue,
111
235
  schema: [],
112
236
  onDone: async (objects) => {
113
- queue.append(objects);
237
+ await queue.append(objects);
114
238
  }
115
239
  })
116
240
  ]);
117
241
  }, [
118
242
  blueprint
119
243
  ]);
120
- const formatAndSave = () => {
244
+ const formatAndSave = useCallback(() => {
121
245
  if (!blueprint) {
122
246
  return;
123
247
  }
@@ -141,50 +265,43 @@ var BlueprintContainer = ({ role, blueprint }) => {
141
265
  blueprint.steps.length = 0;
142
266
  for (const step of definition2.steps) {
143
267
  blueprint.steps.push({
144
- id: Key.ObjectId.random(),
268
+ id: Key2.ObjectId.random(),
145
269
  instructions: step.instructions,
146
270
  tools: step.tools
147
271
  });
148
272
  }
149
- return definition2;
150
- };
151
- const handleSave = useCallback(() => {
152
- const definition2 = formatAndSave();
153
- if (!definition2) {
154
- return;
155
- }
156
- setDefinition(definition2);
273
+ return blueprint;
157
274
  }, [
158
275
  blueprint
159
276
  ]);
277
+ const handleSave = useCallback(() => formatAndSave(), [
278
+ formatAndSave
279
+ ]);
160
280
  const handleRun = useCallback(async () => {
161
281
  if (!aiClient?.value || !toolRegistry) {
162
282
  return;
163
283
  }
164
- const definition2 = formatAndSave();
165
- if (!definition2) {
166
- return;
167
- }
168
- const input = Array.from(getSelectionSet(selectionManager)).map((id) => DXN.fromLocalObjectId(id));
284
+ formatAndSave();
285
+ const input = Array.from(getSelectionSet(selectionManager)).map((id) => DXN2.fromLocalObjectId(id));
169
286
  if (!input.length) {
170
287
  return;
171
288
  }
172
- const blueprint2 = BlueprintParser.create().parse(definition2);
173
- const machine = new BlueprintMachine(toolRegistry, blueprint2).setLogger(new BlueprintLoggerAdapter());
289
+ const machine = new BlueprintMachine(toolRegistry, blueprint).setLogger(new QueueLogger(blueprint));
174
290
  await machine.runToCompletion({
175
291
  aiClient: aiClient.value,
176
292
  input
177
293
  });
178
294
  }, [
179
295
  aiClient.value,
296
+ blueprint,
297
+ formatAndSave,
298
+ selectionManager,
180
299
  toolRegistry
181
300
  ]);
182
301
  return /* @__PURE__ */ React2.createElement(StackItem.Content, {
183
302
  role,
184
303
  toolbar: true
185
- }, /* @__PURE__ */ React2.createElement(Toolbar.Root, {
186
- classNames: "border-be border-subduedSeparator"
187
- }, /* @__PURE__ */ React2.createElement(Toolbar.Button, {
304
+ }, /* @__PURE__ */ React2.createElement(Toolbar.Root, null, /* @__PURE__ */ React2.createElement(Toolbar.Button, {
188
305
  onClick: handleSave
189
306
  }, t("button save")), /* @__PURE__ */ React2.createElement(Toolbar.Button, {
190
307
  onClick: handleRun
@@ -202,4 +319,4 @@ export {
202
319
  EXA_API_KEY,
203
320
  BlueprintContainer_default as default
204
321
  };
205
- //# sourceMappingURL=BlueprintContainer-SVOKCRCP.mjs.map
322
+ //# sourceMappingURL=BlueprintContainer-STOJAVML.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/BlueprintContainer.tsx", "../../../src/components/BlueprintEditor/BlueprintEditor.tsx", "../../../src/queue-logger.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { type EditorView } from '@codemirror/view';\nimport JSON5 from 'json5';\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { ToolRegistry } from '@dxos/ai';\nimport { useCapability } from '@dxos/app-framework';\nimport {\n type Blueprint,\n type BlueprintDefinition,\n BlueprintMachine,\n createLocalSearchTool,\n createExaTool,\n createGraphWriterTool,\n} from '@dxos/assistant';\nimport { getSpace } from '@dxos/client/echo';\nimport { DXN, Key } from '@dxos/echo';\nimport { Toolbar, useTranslation } from '@dxos/react-ui';\nimport { getSelectionSet, useSelectionManager } from '@dxos/react-ui-attention';\nimport { StackItem, type StackItemContentProps } from '@dxos/react-ui-stack';\n\nimport { BlueprintEditor } from './BlueprintEditor';\nimport { AssistantCapabilities } from '../capabilities';\nimport { meta } from '../meta';\nimport { QueueLogger } from '../queue-logger';\n\n// TODO(burdon): Move to config.\nexport const EXA_API_KEY = '9c7e17ff-0c85-4cd5-827a-8b489f139e03';\n\n// TODO(burdon): Validate.\nconst parseBlueprint = (text: string): BlueprintDefinition | undefined => {\n try {\n const json = JSON5.parse(text);\n const { steps } = json;\n return { steps };\n } catch (error) {\n // Ignore.\n }\n};\n\nexport const BlueprintContainer = ({\n role,\n blueprint,\n}: Pick<StackItemContentProps, 'role'> & { blueprint: Blueprint }) => {\n const { t } = useTranslation(meta.id);\n const aiClient = useCapability(AssistantCapabilities.AiClient);\n const selectionManager = useSelectionManager();\n const [definition, setDefinition] = useState<BlueprintDefinition>();\n useEffect(() => {\n setDefinition({\n steps: blueprint.steps.map(({ instructions, tools }) => ({ instructions, tools })),\n });\n }, [blueprint]);\n\n const editorRef = useRef<EditorView | undefined>(undefined);\n\n // TODO(burdon): Factor out.\n const toolRegistry = useMemo(() => {\n const space = getSpace(blueprint);\n if (!space) {\n return;\n }\n\n // TODO(burdon): How should the queue be created?\n const queue = space.queues.create();\n\n return new ToolRegistry([\n createExaTool({ apiKey: EXA_API_KEY }),\n createLocalSearchTool(space.db, queue),\n createGraphWriterTool({\n db: space.db,\n queue,\n schema: [], // TODO(burdon): Get schema from client/blueprint?\n onDone: async (objects) => {\n await queue.append(objects);\n },\n }),\n ]);\n }, [blueprint]);\n\n const formatAndSave = useCallback((): BlueprintDefinition | undefined => {\n if (!blueprint) {\n return;\n }\n\n const text = editorRef.current?.state.doc.toString();\n if (!text) {\n return;\n }\n\n const definition = parseBlueprint(text);\n if (!definition) {\n return;\n }\n\n setDefinition(definition);\n const formatted = JSON.stringify(definition, null, 2);\n editorRef.current?.dispatch({\n changes: { from: 0, to: text.length, insert: formatted },\n });\n\n blueprint.steps.length = 0;\n for (const step of definition.steps) {\n blueprint.steps.push({\n id: Key.ObjectId.random(),\n instructions: step.instructions,\n tools: step.tools,\n });\n }\n\n return blueprint;\n }, [blueprint]);\n\n // TODO(burdon): Save raw blueprint separately from parsed blueprint? (like Script).\n const handleSave = useCallback(() => formatAndSave(), [formatAndSave]);\n\n const handleRun = useCallback(async () => {\n if (!aiClient?.value || !toolRegistry) {\n return;\n }\n\n formatAndSave();\n\n // Get input from selection.\n const input = Array.from(getSelectionSet(selectionManager)).map((id) => DXN.fromLocalObjectId(id));\n if (!input.length) {\n return;\n }\n\n const machine = new BlueprintMachine(toolRegistry, blueprint).setLogger(new QueueLogger(blueprint));\n await machine.runToCompletion({ aiClient: aiClient.value, input });\n }, [aiClient.value, blueprint, formatAndSave, selectionManager, toolRegistry]);\n\n return (\n <StackItem.Content role={role} toolbar>\n <Toolbar.Root>\n <Toolbar.Button onClick={handleSave}>{t('button save')}</Toolbar.Button>\n <Toolbar.Button onClick={handleRun}>{t('button run')}</Toolbar.Button>\n </Toolbar.Root>\n {definition && <BlueprintEditor ref={editorRef} blueprint={definition} />}\n </StackItem.Content>\n );\n};\n\nexport default BlueprintContainer;\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { forwardRef, useImperativeHandle } from 'react';\n\nimport { BlueprintDefinition } from '@dxos/assistant';\nimport { Type } from '@dxos/echo';\nimport { useThemeContext, type ThemedClassName } from '@dxos/react-ui';\nimport {\n type EditorView,\n createBasicExtensions,\n createJsonExtensions,\n createThemeExtensions,\n useTextEditor,\n} from '@dxos/react-ui-editor';\nimport { mx } from '@dxos/react-ui-theme';\n\nexport type BlueprintEditorProps = ThemedClassName<{\n blueprint: BlueprintDefinition;\n}>;\n\n// TODO(burdon): Factor out JsonEditor.\nexport const BlueprintEditor = forwardRef<EditorView | undefined, BlueprintEditorProps>(\n ({ classNames, blueprint }, forwardedRef) => {\n const { themeMode } = useThemeContext();\n const { parentRef, view } = useTextEditor({\n initialValue: JSON.stringify(blueprint, null, 2),\n extensions: [\n createBasicExtensions({\n lineNumbers: true,\n lineWrapping: false,\n monospace: true,\n scrollPastEnd: true,\n }),\n createThemeExtensions({\n themeMode,\n syntaxHighlighting: true,\n }),\n createJsonExtensions({\n schema: Type.toJsonSchema(BlueprintDefinition, { strict: true }),\n }),\n ],\n });\n\n useImperativeHandle(forwardedRef, () => view, [view]);\n\n return <div ref={parentRef} className={mx('overflow-hidden', classNames)} />;\n },\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Blueprint, type BlueprintEvent, type BlueprintLogger } from '@dxos/assistant';\nimport { getSpace, Ref, type Queue, type Space } from '@dxos/client/echo';\nimport { DXN, Key, Obj } from '@dxos/echo';\nimport {\n InvocationOutcome,\n InvocationTraceEndEvent,\n InvocationTraceEventType,\n InvocationTraceStartEvent,\n TraceEvent,\n type InvocationTraceEvent,\n} from '@dxos/functions';\nimport { invariant } from '@dxos/invariant';\nimport { QueueSubspaceTags } from '@dxos/keys';\n\nexport class QueueLogger implements BlueprintLogger {\n private _space: Space;\n private _invocationTraceQueue: Queue<InvocationTraceEvent>;\n\n constructor(private readonly blueprint: Blueprint) {\n const space = getSpace(blueprint);\n invariant(space, 'Space not found');\n this._space = space;\n let dxn = this._space.properties.invocationTraceQueue?.dxn;\n if (!dxn) {\n dxn = DXN.fromQueue(QueueSubspaceTags.TRACE, this._space.id, Key.ObjectId.random());\n this._space.properties.invocationTraceQueue = Ref.fromDXN(dxn);\n }\n this._invocationTraceQueue = this._space.queues.get(dxn);\n }\n\n log(event: BlueprintEvent) {\n switch (event.type) {\n case 'begin':\n void this._invocationTraceQueue.append([\n Obj.make(InvocationTraceStartEvent, {\n type: InvocationTraceEventType.START,\n invocationId: event.invocationId,\n timestampMs: Date.now(),\n input: {},\n invocationTraceQueue: Ref.fromDXN(this._getTraceQueueDxn(event.invocationId)),\n invocationTarget: Ref.make(this.blueprint),\n }),\n ]);\n break;\n case 'end':\n void this._invocationTraceQueue.append([\n Obj.make(InvocationTraceEndEvent, {\n type: InvocationTraceEventType.END,\n invocationId: event.invocationId,\n timestampMs: Date.now(),\n outcome: InvocationOutcome.SUCCESS,\n }),\n ]);\n break;\n case 'step-start':\n case 'step-complete':\n void this._getTraceEventQueue(event.invocationId).append([\n Obj.make(TraceEvent, {\n outcome: event.type,\n truncated: false,\n ingestionTimestampMs: Date.now(),\n logs: [\n {\n timestampMs: Date.now(),\n level: 'info',\n message: event.type,\n context: { step: event.step },\n },\n ],\n exceptions: [],\n }),\n ]);\n break;\n case 'message':\n void this._getTraceEventQueue(event.invocationId).append([\n Obj.make(TraceEvent, {\n outcome: event.type,\n truncated: false,\n ingestionTimestampMs: Date.now(),\n logs: [\n {\n timestampMs: Date.now(),\n level: 'info',\n message: event.type,\n context: { message: event.message },\n },\n ],\n exceptions: [],\n }),\n ]);\n break;\n case 'block':\n void this._getTraceEventQueue(event.invocationId).append([\n Obj.make(TraceEvent, {\n outcome: event.type,\n truncated: false,\n ingestionTimestampMs: Date.now(),\n logs: [\n {\n timestampMs: Date.now(),\n level: 'info',\n message: event.type,\n context: { block: event.block },\n },\n ],\n exceptions: [],\n }),\n ]);\n break;\n }\n }\n\n private _getTraceQueueDxn(invocationId: string): DXN {\n return DXN.fromQueue(QueueSubspaceTags.TRACE, this._space.id, invocationId);\n }\n\n private _getTraceEventQueue(invocationId: string): Queue<TraceEvent> {\n const dxn = this._getTraceQueueDxn(invocationId);\n return this._space.queues.get(dxn);\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["JSON5", "React", "useCallback", "useEffect", "useMemo", "useRef", "useState", "ToolRegistry", "useCapability", "BlueprintMachine", "createLocalSearchTool", "createExaTool", "createGraphWriterTool", "getSpace", "DXN", "Key", "Toolbar", "useTranslation", "getSelectionSet", "useSelectionManager", "StackItem", "React", "forwardRef", "useImperativeHandle", "BlueprintDefinition", "Type", "useThemeContext", "createBasicExtensions", "createJsonExtensions", "createThemeExtensions", "useTextEditor", "mx", "BlueprintEditor", "forwardRef", "classNames", "blueprint", "forwardedRef", "themeMode", "useThemeContext", "parentRef", "view", "useTextEditor", "initialValue", "JSON", "stringify", "extensions", "createBasicExtensions", "lineNumbers", "lineWrapping", "monospace", "scrollPastEnd", "createThemeExtensions", "syntaxHighlighting", "createJsonExtensions", "schema", "Type", "toJsonSchema", "BlueprintDefinition", "strict", "useImperativeHandle", "div", "ref", "className", "mx", "getSpace", "Ref", "DXN", "Key", "Obj", "InvocationOutcome", "InvocationTraceEndEvent", "InvocationTraceEventType", "InvocationTraceStartEvent", "TraceEvent", "invariant", "QueueSubspaceTags", "QueueLogger", "blueprint", "space", "_space", "dxn", "properties", "invocationTraceQueue", "fromQueue", "TRACE", "id", "ObjectId", "random", "fromDXN", "_invocationTraceQueue", "queues", "get", "log", "event", "type", "append", "make", "START", "invocationId", "timestampMs", "Date", "now", "input", "_getTraceQueueDxn", "invocationTarget", "END", "outcome", "SUCCESS", "_getTraceEventQueue", "truncated", "ingestionTimestampMs", "logs", "level", "message", "context", "step", "exceptions", "block", "EXA_API_KEY", "parseBlueprint", "text", "json", "JSON5", "parse", "steps", "error", "BlueprintContainer", "role", "blueprint", "t", "useTranslation", "meta", "id", "aiClient", "useCapability", "AssistantCapabilities", "AiClient", "selectionManager", "useSelectionManager", "definition", "setDefinition", "useState", "useEffect", "map", "instructions", "tools", "editorRef", "useRef", "undefined", "toolRegistry", "useMemo", "space", "getSpace", "queue", "queues", "create", "ToolRegistry", "createExaTool", "apiKey", "createLocalSearchTool", "db", "createGraphWriterTool", "schema", "onDone", "objects", "append", "formatAndSave", "useCallback", "current", "state", "doc", "toString", "formatted", "JSON", "stringify", "dispatch", "changes", "from", "to", "length", "insert", "step", "push", "Key", "ObjectId", "random", "handleSave", "handleRun", "value", "input", "Array", "getSelectionSet", "DXN", "fromLocalObjectId", "machine", "BlueprintMachine", "setLogger", "QueueLogger", "runToCompletion", "React", "StackItem", "Content", "toolbar", "Toolbar", "Root", "Button", "onClick", "BlueprintEditor", "ref"]
7
+ }
@@ -1,10 +1,10 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
3
  ThreadContainer
4
- } from "./chunk-TTSMEWR6.mjs";
5
- import "./chunk-24LIHQST.mjs";
6
- import "./chunk-ZKTIHNT7.mjs";
7
- import "./chunk-VXGO6Q2L.mjs";
4
+ } from "./chunk-OD574YIU.mjs";
5
+ import "./chunk-J6UXXZGJ.mjs";
6
+ import "./chunk-34EX6E5Q.mjs";
7
+ import "./chunk-3UEZLJ2V.mjs";
8
8
  import {
9
9
  ASSISTANT_PLUGIN
10
10
  } from "./chunk-BB2TAT4P.mjs";
@@ -38,4 +38,4 @@ export {
38
38
  ChatContainer,
39
39
  ChatContainer_default as default
40
40
  };
41
- //# sourceMappingURL=ChatContainer-WSMKUGS6.mjs.map
41
+ //# sourceMappingURL=ChatContainer-3MVBTUJN.mjs.map