@dxos/plugin-assistant 0.8.4-main.72ec0f3 → 0.8.4-main.7ace549

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 (124) hide show
  1. package/dist/lib/browser/{BlueprintArticle-IMCR3642.mjs → BlueprintArticle-BWSLH6LG.mjs} +2 -2
  2. package/dist/lib/browser/{ChatCompanion-JYD2RIBJ.mjs → ChatCompanion-OSZZZSWV.mjs} +4 -4
  3. package/dist/lib/browser/{ChatContainer-XCPBWYIR.mjs → ChatContainer-2W6FNSJD.mjs} +4 -4
  4. package/dist/lib/browser/{ChatDialog-DT7KFCRL.mjs → ChatDialog-XQ3KDYWE.mjs} +4 -4
  5. package/dist/lib/browser/{PromptArticle-45QX25Y5.mjs → PromptArticle-Q7JYGFQV.mjs} +3 -3
  6. package/dist/lib/browser/{PromptArticle-45QX25Y5.mjs.map → PromptArticle-Q7JYGFQV.mjs.map} +3 -3
  7. package/dist/lib/browser/{app-graph-builder-VZEXMDTY.mjs → app-graph-builder-LM6GVHQO.mjs} +4 -4
  8. package/dist/lib/browser/{app-graph-builder-VZEXMDTY.mjs.map → app-graph-builder-LM6GVHQO.mjs.map} +3 -3
  9. package/dist/lib/browser/{blueprint-definition-5FT5JGPY.mjs → blueprint-definition-VBEOXNBS.mjs} +2 -2
  10. package/dist/lib/browser/{chunk-BNTPFZ7O.mjs → chunk-5JZRYQZL.mjs} +8 -8
  11. package/dist/lib/browser/chunk-5JZRYQZL.mjs.map +7 -0
  12. package/dist/lib/browser/{chunk-FJQ4ZRYJ.mjs → chunk-7ZJIXQ2Y.mjs} +2 -2
  13. package/dist/lib/browser/chunk-7ZJIXQ2Y.mjs.map +7 -0
  14. package/dist/lib/browser/{chunk-IXIIS4QA.mjs → chunk-NC2QNMBF.mjs} +2 -2
  15. package/dist/lib/browser/{chunk-IXIIS4QA.mjs.map → chunk-NC2QNMBF.mjs.map} +1 -1
  16. package/dist/lib/browser/{chunk-U62BTGDF.mjs → chunk-PWSTPQUY.mjs} +39 -39
  17. package/dist/lib/browser/chunk-PWSTPQUY.mjs.map +7 -0
  18. package/dist/lib/browser/index.mjs +44 -52
  19. package/dist/lib/browser/index.mjs.map +3 -3
  20. package/dist/lib/browser/{intent-resolver-AK5O4GUW.mjs → intent-resolver-EEYS2GJF.mjs} +14 -14
  21. package/dist/lib/browser/intent-resolver-EEYS2GJF.mjs.map +7 -0
  22. package/dist/lib/browser/meta.json +1 -1
  23. package/dist/lib/browser/{react-surface-YCSR2MSR.mjs → react-surface-ECKZNDSU.mjs} +4 -4
  24. package/dist/lib/browser/repair-3MZXLUHO.mjs +44 -0
  25. package/dist/lib/browser/repair-3MZXLUHO.mjs.map +7 -0
  26. package/dist/lib/browser/{settings-NYJGNQ5I.mjs → settings-HD5WA24I.mjs} +2 -2
  27. package/dist/lib/browser/types/index.mjs +1 -1
  28. package/dist/lib/node-esm/{BlueprintArticle-OL2HUY6Q.mjs → BlueprintArticle-R2XYBRCK.mjs} +2 -2
  29. package/dist/lib/node-esm/{ChatCompanion-AHKJS25S.mjs → ChatCompanion-IUMU7WRQ.mjs} +4 -4
  30. package/dist/lib/node-esm/{ChatContainer-K7OGPE3G.mjs → ChatContainer-CTUNUEU3.mjs} +4 -4
  31. package/dist/lib/node-esm/{ChatDialog-QT6ZBX45.mjs → ChatDialog-X42ASXQD.mjs} +4 -4
  32. package/dist/lib/node-esm/{PromptArticle-OUKFSJQV.mjs → PromptArticle-IV7O5UZ3.mjs} +3 -3
  33. package/dist/lib/node-esm/{PromptArticle-OUKFSJQV.mjs.map → PromptArticle-IV7O5UZ3.mjs.map} +3 -3
  34. package/dist/lib/node-esm/{app-graph-builder-VRN6ESRR.mjs → app-graph-builder-6XUAGTRS.mjs} +4 -4
  35. package/dist/lib/node-esm/{app-graph-builder-VRN6ESRR.mjs.map → app-graph-builder-6XUAGTRS.mjs.map} +3 -3
  36. package/dist/lib/node-esm/{blueprint-definition-XW6QQVLV.mjs → blueprint-definition-RDCLLIQH.mjs} +2 -2
  37. package/dist/lib/node-esm/{chunk-UXTUHH24.mjs → chunk-25GMMNY5.mjs} +2 -2
  38. package/dist/lib/node-esm/{chunk-UXTUHH24.mjs.map → chunk-25GMMNY5.mjs.map} +1 -1
  39. package/dist/lib/node-esm/{chunk-KJGD4EBJ.mjs → chunk-CKW4IYLY.mjs} +2 -2
  40. package/dist/lib/node-esm/chunk-CKW4IYLY.mjs.map +7 -0
  41. package/dist/lib/node-esm/{chunk-AB74FOA2.mjs → chunk-E4JSYCWZ.mjs} +8 -8
  42. package/dist/lib/node-esm/chunk-E4JSYCWZ.mjs.map +7 -0
  43. package/dist/lib/node-esm/{chunk-BHS747K7.mjs → chunk-Z37USO4K.mjs} +39 -39
  44. package/dist/lib/node-esm/chunk-Z37USO4K.mjs.map +7 -0
  45. package/dist/lib/node-esm/index.mjs +44 -52
  46. package/dist/lib/node-esm/index.mjs.map +3 -3
  47. package/dist/lib/node-esm/{intent-resolver-L2F3N45L.mjs → intent-resolver-4SRYLDK5.mjs} +14 -14
  48. package/dist/lib/node-esm/intent-resolver-4SRYLDK5.mjs.map +7 -0
  49. package/dist/lib/node-esm/meta.json +1 -1
  50. package/dist/lib/node-esm/{react-surface-CTW44GEM.mjs → react-surface-NLIG5VAI.mjs} +4 -4
  51. package/dist/lib/node-esm/repair-RER5H7Y6.mjs +45 -0
  52. package/dist/lib/node-esm/repair-RER5H7Y6.mjs.map +7 -0
  53. package/dist/lib/node-esm/{settings-RRHYI5KO.mjs → settings-YJQVKHH5.mjs} +2 -2
  54. package/dist/lib/node-esm/types/index.mjs +1 -1
  55. package/dist/types/src/AssistantPlugin.d.ts.map +1 -1
  56. package/dist/types/src/capabilities/index.d.ts +1 -0
  57. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  58. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  59. package/dist/types/src/capabilities/repair.d.ts +4 -0
  60. package/dist/types/src/capabilities/repair.d.ts.map +1 -0
  61. package/dist/types/src/components/ChatPrompt/ChatOptions.d.ts.map +1 -1
  62. package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts +5 -0
  63. package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts.map +1 -1
  64. package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts +5 -0
  65. package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts.map +1 -1
  66. package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts +5 -0
  67. package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts.map +1 -1
  68. package/dist/types/src/components/Toolbox/Toolbox.stories.d.ts +5 -0
  69. package/dist/types/src/components/Toolbox/Toolbox.stories.d.ts.map +1 -1
  70. package/dist/types/src/hooks/index.d.ts +1 -1
  71. package/dist/types/src/hooks/index.d.ts.map +1 -1
  72. package/dist/types/src/hooks/useFilteredTypes.d.ts +4 -0
  73. package/dist/types/src/hooks/useFilteredTypes.d.ts.map +1 -0
  74. package/dist/types/src/translations.d.ts +5 -0
  75. package/dist/types/src/translations.d.ts.map +1 -1
  76. package/dist/types/src/types/Assistant.d.ts +8 -11
  77. package/dist/types/src/types/Assistant.d.ts.map +1 -1
  78. package/dist/types/src/types/AssistantAction.d.ts +10 -13
  79. package/dist/types/src/types/AssistantAction.d.ts.map +1 -1
  80. package/dist/types/src/types/service.d.ts +123 -82
  81. package/dist/types/src/types/service.d.ts.map +1 -1
  82. package/dist/types/tsconfig.tsbuildinfo +1 -1
  83. package/package.json +71 -71
  84. package/src/AssistantPlugin.tsx +21 -42
  85. package/src/capabilities/app-graph-builder.ts +3 -3
  86. package/src/capabilities/index.ts +1 -0
  87. package/src/capabilities/intent-resolver.ts +5 -17
  88. package/src/capabilities/repair.ts +49 -0
  89. package/src/components/ChatPrompt/ChatOptions.tsx +8 -2
  90. package/src/components/ChatThread/Link.tsx +2 -2
  91. package/src/components/PromptArticle.tsx +1 -1
  92. package/src/components/TemplateEditor/TemplateEditor.tsx +1 -1
  93. package/src/components/ToolBlock/ToolBlock.tsx +1 -1
  94. package/src/functions/object-load.ts +1 -1
  95. package/src/hooks/index.ts +1 -1
  96. package/src/hooks/useContextObjects.ts +1 -1
  97. package/src/hooks/{useItemTypes.ts → useFilteredTypes.ts} +7 -6
  98. package/src/translations.ts +4 -0
  99. package/src/types/Assistant.ts +4 -4
  100. package/src/types/AssistantAction.ts +1 -1
  101. package/dist/lib/browser/chunk-BNTPFZ7O.mjs.map +0 -7
  102. package/dist/lib/browser/chunk-FJQ4ZRYJ.mjs.map +0 -7
  103. package/dist/lib/browser/chunk-U62BTGDF.mjs.map +0 -7
  104. package/dist/lib/browser/intent-resolver-AK5O4GUW.mjs.map +0 -7
  105. package/dist/lib/node-esm/chunk-AB74FOA2.mjs.map +0 -7
  106. package/dist/lib/node-esm/chunk-BHS747K7.mjs.map +0 -7
  107. package/dist/lib/node-esm/chunk-KJGD4EBJ.mjs.map +0 -7
  108. package/dist/lib/node-esm/intent-resolver-L2F3N45L.mjs.map +0 -7
  109. package/dist/types/src/hooks/useItemTypes.d.ts +0 -4
  110. package/dist/types/src/hooks/useItemTypes.d.ts.map +0 -1
  111. /package/dist/lib/browser/{BlueprintArticle-IMCR3642.mjs.map → BlueprintArticle-BWSLH6LG.mjs.map} +0 -0
  112. /package/dist/lib/browser/{ChatCompanion-JYD2RIBJ.mjs.map → ChatCompanion-OSZZZSWV.mjs.map} +0 -0
  113. /package/dist/lib/browser/{ChatContainer-XCPBWYIR.mjs.map → ChatContainer-2W6FNSJD.mjs.map} +0 -0
  114. /package/dist/lib/browser/{ChatDialog-DT7KFCRL.mjs.map → ChatDialog-XQ3KDYWE.mjs.map} +0 -0
  115. /package/dist/lib/browser/{blueprint-definition-5FT5JGPY.mjs.map → blueprint-definition-VBEOXNBS.mjs.map} +0 -0
  116. /package/dist/lib/browser/{react-surface-YCSR2MSR.mjs.map → react-surface-ECKZNDSU.mjs.map} +0 -0
  117. /package/dist/lib/browser/{settings-NYJGNQ5I.mjs.map → settings-HD5WA24I.mjs.map} +0 -0
  118. /package/dist/lib/node-esm/{BlueprintArticle-OL2HUY6Q.mjs.map → BlueprintArticle-R2XYBRCK.mjs.map} +0 -0
  119. /package/dist/lib/node-esm/{ChatCompanion-AHKJS25S.mjs.map → ChatCompanion-IUMU7WRQ.mjs.map} +0 -0
  120. /package/dist/lib/node-esm/{ChatContainer-K7OGPE3G.mjs.map → ChatContainer-CTUNUEU3.mjs.map} +0 -0
  121. /package/dist/lib/node-esm/{ChatDialog-QT6ZBX45.mjs.map → ChatDialog-X42ASXQD.mjs.map} +0 -0
  122. /package/dist/lib/node-esm/{blueprint-definition-XW6QQVLV.mjs.map → blueprint-definition-RDCLLIQH.mjs.map} +0 -0
  123. /package/dist/lib/node-esm/{react-surface-CTW44GEM.mjs.map → react-surface-NLIG5VAI.mjs.map} +0 -0
  124. /package/dist/lib/node-esm/{settings-RRHYI5KO.mjs.map → settings-YJQVKHH5.mjs.map} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/plugin-assistant",
3
- "version": "0.8.4-main.72ec0f3",
3
+ "version": "0.8.4-main.7ace549",
4
4
  "description": "Assistant plugin",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -58,62 +58,62 @@
58
58
  "lodash.defaultsdeep": "^4.6.1",
59
59
  "unified": "^11.0.0",
60
60
  "use-deep-compare-effect": "^1.8.1",
61
- "@dxos/ai": "0.8.4-main.72ec0f3",
62
- "@dxos/assistant": "0.8.4-main.72ec0f3",
63
- "@dxos/assistant-toolkit": "0.8.4-main.72ec0f3",
64
- "@dxos/async": "0.8.4-main.72ec0f3",
65
- "@dxos/app-framework": "0.8.4-main.72ec0f3",
66
- "@dxos/blueprints": "0.8.4-main.72ec0f3",
67
- "@dxos/compute": "0.8.4-main.72ec0f3",
68
- "@dxos/client": "0.8.4-main.72ec0f3",
69
- "@dxos/conductor": "0.8.4-main.72ec0f3",
70
- "@dxos/context": "0.8.4-main.72ec0f3",
71
- "@dxos/config": "0.8.4-main.72ec0f3",
72
- "@dxos/echo": "0.8.4-main.72ec0f3",
73
- "@dxos/echo-db": "0.8.4-main.72ec0f3",
74
- "@dxos/echo-protocol": "0.8.4-main.72ec0f3",
75
- "@dxos/echo-query": "0.8.4-main.72ec0f3",
76
- "@dxos/edge-client": "0.8.4-main.72ec0f3",
77
- "@dxos/functions": "0.8.4-main.72ec0f3",
78
- "@dxos/functions-runtime": "0.8.4-main.72ec0f3",
79
- "@dxos/graph": "0.8.4-main.72ec0f3",
80
- "@dxos/invariant": "0.8.4-main.72ec0f3",
81
- "@dxos/effect": "0.8.4-main.72ec0f3",
82
- "@dxos/lit-ui": "0.8.4-main.72ec0f3",
83
- "@dxos/keys": "0.8.4-main.72ec0f3",
84
- "@dxos/live-object": "0.8.4-main.72ec0f3",
85
- "@dxos/local-storage": "0.8.4-main.72ec0f3",
86
- "@dxos/plugin-attention": "0.8.4-main.72ec0f3",
87
- "@dxos/plugin-automation": "0.8.4-main.72ec0f3",
88
- "@dxos/devtools": "0.8.4-main.72ec0f3",
89
- "@dxos/debug": "0.8.4-main.72ec0f3",
90
- "@dxos/log": "0.8.4-main.72ec0f3",
91
- "@dxos/plugin-client": "0.8.4-main.72ec0f3",
92
- "@dxos/plugin-deck": "0.8.4-main.72ec0f3",
93
- "@dxos/plugin-graph": "0.8.4-main.72ec0f3",
94
- "@dxos/plugin-space": "0.8.4-main.72ec0f3",
95
- "@dxos/plugin-transcription": "0.8.4-main.72ec0f3",
96
- "@dxos/protocols": "0.8.4-main.72ec0f3",
97
- "@dxos/react-edge-client": "0.8.4-main.72ec0f3",
98
- "@dxos/react-ui-attention": "0.8.4-main.72ec0f3",
99
- "@dxos/react-ui-canvas-compute": "0.8.4-main.72ec0f3",
100
- "@dxos/react-ui-canvas-editor": "0.8.4-main.72ec0f3",
101
- "@dxos/react-ui-chat": "0.8.4-main.72ec0f3",
102
- "@dxos/react-ui-components": "0.8.4-main.72ec0f3",
103
- "@dxos/react-ui-form": "0.8.4-main.72ec0f3",
104
- "@dxos/react-ui-editor": "0.8.4-main.72ec0f3",
105
- "@dxos/react-ui-graph": "0.8.4-main.72ec0f3",
106
- "@dxos/react-client": "0.8.4-main.72ec0f3",
107
- "@dxos/react-ui-list": "0.8.4-main.72ec0f3",
108
- "@dxos/react-ui-menu": "0.8.4-main.72ec0f3",
109
- "@dxos/react-ui-searchlist": "0.8.4-main.72ec0f3",
110
- "@dxos/react-ui-sfx": "0.8.4-main.72ec0f3",
111
- "@dxos/react-ui-stack": "0.8.4-main.72ec0f3",
112
- "@dxos/react-ui-syntax-highlighter": "0.8.4-main.72ec0f3",
113
- "@dxos/react-ui-tabs": "0.8.4-main.72ec0f3",
114
- "@dxos/types": "0.8.4-main.72ec0f3",
115
- "@dxos/util": "0.8.4-main.72ec0f3",
116
- "@dxos/schema": "0.8.4-main.72ec0f3"
61
+ "@dxos/ai": "0.8.4-main.7ace549",
62
+ "@dxos/app-framework": "0.8.4-main.7ace549",
63
+ "@dxos/async": "0.8.4-main.7ace549",
64
+ "@dxos/client": "0.8.4-main.7ace549",
65
+ "@dxos/conductor": "0.8.4-main.7ace549",
66
+ "@dxos/compute": "0.8.4-main.7ace549",
67
+ "@dxos/assistant": "0.8.4-main.7ace549",
68
+ "@dxos/blueprints": "0.8.4-main.7ace549",
69
+ "@dxos/config": "0.8.4-main.7ace549",
70
+ "@dxos/context": "0.8.4-main.7ace549",
71
+ "@dxos/debug": "0.8.4-main.7ace549",
72
+ "@dxos/echo": "0.8.4-main.7ace549",
73
+ "@dxos/echo-db": "0.8.4-main.7ace549",
74
+ "@dxos/devtools": "0.8.4-main.7ace549",
75
+ "@dxos/echo-protocol": "0.8.4-main.7ace549",
76
+ "@dxos/edge-client": "0.8.4-main.7ace549",
77
+ "@dxos/echo-query": "0.8.4-main.7ace549",
78
+ "@dxos/effect": "0.8.4-main.7ace549",
79
+ "@dxos/assistant-toolkit": "0.8.4-main.7ace549",
80
+ "@dxos/functions": "0.8.4-main.7ace549",
81
+ "@dxos/graph": "0.8.4-main.7ace549",
82
+ "@dxos/invariant": "0.8.4-main.7ace549",
83
+ "@dxos/keys": "0.8.4-main.7ace549",
84
+ "@dxos/functions-runtime": "0.8.4-main.7ace549",
85
+ "@dxos/lit-ui": "0.8.4-main.7ace549",
86
+ "@dxos/live-object": "0.8.4-main.7ace549",
87
+ "@dxos/log": "0.8.4-main.7ace549",
88
+ "@dxos/local-storage": "0.8.4-main.7ace549",
89
+ "@dxos/plugin-attention": "0.8.4-main.7ace549",
90
+ "@dxos/plugin-automation": "0.8.4-main.7ace549",
91
+ "@dxos/plugin-client": "0.8.4-main.7ace549",
92
+ "@dxos/plugin-deck": "0.8.4-main.7ace549",
93
+ "@dxos/plugin-graph": "0.8.4-main.7ace549",
94
+ "@dxos/plugin-space": "0.8.4-main.7ace549",
95
+ "@dxos/plugin-transcription": "0.8.4-main.7ace549",
96
+ "@dxos/protocols": "0.8.4-main.7ace549",
97
+ "@dxos/react-client": "0.8.4-main.7ace549",
98
+ "@dxos/react-edge-client": "0.8.4-main.7ace549",
99
+ "@dxos/react-ui-canvas-compute": "0.8.4-main.7ace549",
100
+ "@dxos/react-ui-attention": "0.8.4-main.7ace549",
101
+ "@dxos/react-ui-canvas-editor": "0.8.4-main.7ace549",
102
+ "@dxos/react-ui-components": "0.8.4-main.7ace549",
103
+ "@dxos/react-ui-chat": "0.8.4-main.7ace549",
104
+ "@dxos/react-ui-editor": "0.8.4-main.7ace549",
105
+ "@dxos/react-ui-form": "0.8.4-main.7ace549",
106
+ "@dxos/react-ui-graph": "0.8.4-main.7ace549",
107
+ "@dxos/react-ui-list": "0.8.4-main.7ace549",
108
+ "@dxos/react-ui-menu": "0.8.4-main.7ace549",
109
+ "@dxos/react-ui-searchlist": "0.8.4-main.7ace549",
110
+ "@dxos/react-ui-sfx": "0.8.4-main.7ace549",
111
+ "@dxos/react-ui-stack": "0.8.4-main.7ace549",
112
+ "@dxos/react-ui-syntax-highlighter": "0.8.4-main.7ace549",
113
+ "@dxos/react-ui-tabs": "0.8.4-main.7ace549",
114
+ "@dxos/schema": "0.8.4-main.7ace549",
115
+ "@dxos/util": "0.8.4-main.7ace549",
116
+ "@dxos/types": "0.8.4-main.7ace549"
117
117
  },
118
118
  "devDependencies": {
119
119
  "@effect-atom/atom-react": "^0.3.4",
@@ -126,18 +126,18 @@
126
126
  "react": "~19.2.0",
127
127
  "react-dom": "~19.2.0",
128
128
  "vite": "7.1.9",
129
- "@dxos/assistant-toolkit": "0.8.4-main.72ec0f3",
130
- "@dxos/devtools": "0.8.4-main.72ec0f3",
131
- "@dxos/echo-db": "0.8.4-main.72ec0f3",
132
- "@dxos/plugin-map": "0.8.4-main.72ec0f3",
133
- "@dxos/plugin-chess": "0.8.4-main.72ec0f3",
134
- "@dxos/random": "0.8.4-main.72ec0f3",
135
- "@dxos/react-ui-theme": "0.8.4-main.72ec0f3",
136
- "@dxos/react-ui": "0.8.4-main.72ec0f3",
137
- "@dxos/react-ui-table": "0.8.4-main.72ec0f3",
138
- "@dxos/plugin-table": "0.8.4-main.72ec0f3",
139
- "@dxos/storybook-utils": "0.8.4-main.72ec0f3",
140
- "@dxos/react-ui-menu": "0.8.4-main.72ec0f3"
129
+ "@dxos/assistant-toolkit": "0.8.4-main.7ace549",
130
+ "@dxos/devtools": "0.8.4-main.7ace549",
131
+ "@dxos/echo-db": "0.8.4-main.7ace549",
132
+ "@dxos/plugin-chess": "0.8.4-main.7ace549",
133
+ "@dxos/plugin-map": "0.8.4-main.7ace549",
134
+ "@dxos/plugin-table": "0.8.4-main.7ace549",
135
+ "@dxos/random": "0.8.4-main.7ace549",
136
+ "@dxos/react-ui-menu": "0.8.4-main.7ace549",
137
+ "@dxos/react-ui": "0.8.4-main.7ace549",
138
+ "@dxos/react-ui-table": "0.8.4-main.7ace549",
139
+ "@dxos/react-ui-theme": "0.8.4-main.7ace549",
140
+ "@dxos/storybook-utils": "0.8.4-main.7ace549"
141
141
  },
142
142
  "peerDependencies": {
143
143
  "@effect-atom/atom-react": "^0.3.4",
@@ -145,8 +145,8 @@
145
145
  "effect": "^3.13.3",
146
146
  "react": "^19.0.0",
147
147
  "react-dom": "^19.0.0",
148
- "@dxos/react-ui": "0.8.4-main.72ec0f3",
149
- "@dxos/react-ui-theme": "0.8.4-main.72ec0f3"
148
+ "@dxos/react-ui": "0.8.4-main.7ace549",
149
+ "@dxos/react-ui-theme": "0.8.4-main.7ace549"
150
150
  },
151
151
  "publishConfig": {
152
152
  "access": "public"
@@ -9,7 +9,7 @@ import { Sequence } from '@dxos/conductor';
9
9
  import { Type } from '@dxos/echo';
10
10
  import { ClientCapabilities, ClientEvents } from '@dxos/plugin-client';
11
11
  import { SpaceCapabilities, SpaceEvents } from '@dxos/plugin-space';
12
- import { defineObjectForm } from '@dxos/plugin-space/types';
12
+ import { type CreateObjectIntent } from '@dxos/plugin-space/types';
13
13
  import { HasSubject } from '@dxos/types';
14
14
 
15
15
  import {
@@ -21,13 +21,14 @@ import {
21
21
  IntentResolver,
22
22
  LocalModelResolver,
23
23
  ReactSurface,
24
+ Repair,
24
25
  Settings,
25
26
  Toolkit,
26
27
  } from './capabilities';
27
28
  import { AssistantEvents } from './events';
28
29
  import { meta } from './meta';
29
30
  import { translations } from './translations';
30
- import { Assistant, AssistantAction, ServiceType } from './types';
31
+ import { Assistant, AssistantAction } from './types';
31
32
 
32
33
  export const AssistantPlugin = definePlugin(meta, () => [
33
34
  defineModule({
@@ -57,6 +58,8 @@ export const AssistantPlugin = definePlugin(meta, () => [
57
58
  metadata: {
58
59
  icon: 'ph--atom--regular',
59
60
  iconHue: 'sky',
61
+ createObjectIntent: ((_, options) =>
62
+ createIntent(AssistantAction.CreateChat, { space: options.space })) satisfies CreateObjectIntent,
60
63
  },
61
64
  }),
62
65
  contributes(Capabilities.Metadata, {
@@ -64,6 +67,9 @@ export const AssistantPlugin = definePlugin(meta, () => [
64
67
  metadata: {
65
68
  icon: 'ph--blueprint--regular',
66
69
  iconHue: 'sky',
70
+ inputSchema: AssistantAction.BlueprintForm,
71
+ createObjectIntent: ((props) =>
72
+ createIntent(AssistantAction.CreateBlueprint, props)) satisfies CreateObjectIntent,
67
73
  },
68
74
  }),
69
75
  contributes(Capabilities.Metadata, {
@@ -71,6 +77,7 @@ export const AssistantPlugin = definePlugin(meta, () => [
71
77
  metadata: {
72
78
  icon: 'ph--scroll--regular',
73
79
  iconHue: 'sky',
80
+ createObjectIntent: (() => createIntent(AssistantAction.CreatePrompt)) satisfies CreateObjectIntent,
74
81
  },
75
82
  }),
76
83
  contributes(Capabilities.Metadata, {
@@ -78,64 +85,36 @@ export const AssistantPlugin = definePlugin(meta, () => [
78
85
  metadata: {
79
86
  icon: 'ph--circuitry--regular',
80
87
  iconHue: 'sky',
88
+ createObjectIntent: (() => createIntent(AssistantAction.CreateSequence)) satisfies CreateObjectIntent,
89
+ addToCollectionOnCreate: true,
81
90
  },
82
91
  }),
83
92
  ],
84
93
  }),
85
- defineModule({
86
- id: `${meta.id}/module/object-form`,
87
- activatesOn: ClientEvents.SetupSchema,
88
- activate: () => [
89
- contributes(
90
- SpaceCapabilities.ObjectForm,
91
- defineObjectForm({
92
- objectSchema: Assistant.Chat,
93
- getIntent: (_, options) => createIntent(AssistantAction.CreateChat, { space: options.space }),
94
- }),
95
- ),
96
- contributes(
97
- SpaceCapabilities.ObjectForm,
98
- defineObjectForm({
99
- objectSchema: Blueprint.Blueprint,
100
- formSchema: AssistantAction.BlueprintForm,
101
- getIntent: (props) => createIntent(AssistantAction.CreateBlueprint, props),
102
- }),
103
- ),
104
- contributes(
105
- SpaceCapabilities.ObjectForm,
106
- defineObjectForm({
107
- objectSchema: Prompt.Prompt,
108
- getIntent: () => createIntent(AssistantAction.CreatePrompt),
109
- }),
110
- ),
111
- contributes(
112
- SpaceCapabilities.ObjectForm,
113
- defineObjectForm({
114
- objectSchema: Sequence,
115
- getIntent: () => createIntent(AssistantAction.CreateSequence),
116
- }),
117
- ),
118
- ],
119
- }),
120
94
  defineModule({
121
95
  id: `${meta.id}/module/schema`,
122
96
  activatesOn: ClientEvents.SetupSchema,
123
97
  activate: () =>
124
98
  contributes(ClientCapabilities.Schema, [
125
- ServiceType,
99
+ Assistant.Chat,
126
100
  Assistant.CompanionTo,
127
- ResearchGraph,
101
+ Blueprint.Blueprint,
128
102
  HasSubject.HasSubject,
129
103
  Prompt.Prompt,
104
+ ResearchGraph,
105
+ Sequence,
130
106
  ]),
131
107
  }),
132
108
  defineModule({
133
109
  id: `${meta.id}/module/on-space-created`,
134
110
  activatesOn: SpaceEvents.SpaceCreated,
135
111
  activate: () =>
136
- contributes(SpaceCapabilities.onCreateSpace, ({ rootCollection, space }) =>
137
- createIntent(AssistantAction.onCreateSpace, { rootCollection, space }),
138
- ),
112
+ contributes(SpaceCapabilities.OnCreateSpace, (params) => createIntent(AssistantAction.OnCreateSpace, params)),
113
+ }),
114
+ defineModule({
115
+ id: `${meta.id}/module/repair`,
116
+ activatesOn: ClientEvents.SpacesReady,
117
+ activate: Repair,
139
118
  }),
140
119
  defineModule({
141
120
  id: `${meta.id}/module/app-graph-builder`,
@@ -120,7 +120,7 @@ export default (context: PluginContext) =>
120
120
  Function.pipe(
121
121
  get(node),
122
122
  Option.flatMap((node) => (Obj.isObject(node.data) ? Option.some(node.data) : Option.none())),
123
- Option.flatMap((object) => {
123
+ Option.flatMap((object): Option.Option<{ object: Obj.Any; currentChat: Obj.Any | undefined }> => {
124
124
  const currentChatState = get(
125
125
  atomFromSignal(
126
126
  () => context.getCapability(AssistantCapabilities.State).currentChat[Obj.getDXN(object).toString()],
@@ -133,9 +133,9 @@ export default (context: PluginContext) =>
133
133
 
134
134
  const space = getSpace(object);
135
135
  const currentChatDxn = DXN.tryParse(currentChatState);
136
- const currentChatRef = currentChatDxn ? space?.db.ref(currentChatDxn) : undefined;
136
+ const currentChatRef = currentChatDxn ? space?.db.makeRef(currentChatDxn) : undefined;
137
137
  const currentChat = get(atomFromSignal(() => currentChatRef?.target));
138
- return currentChat ? Option.some({ object, currentChat }) : Option.none();
138
+ return Obj.isObject(currentChat) ? Option.some({ object, currentChat }) : Option.none();
139
139
  }),
140
140
  Option.map(({ object, currentChat }) => {
141
141
  return [
@@ -12,6 +12,7 @@ export const EdgeModelResolver = lazy(() => import('./edge-model-resolver'));
12
12
  export const IntentResolver = lazy(() => import('./intent-resolver'));
13
13
  export const LocalModelResolver = lazy(() => import('./local-model-resolver'));
14
14
  export const ReactSurface = lazy(() => import('./react-surface'));
15
+ export const Repair = lazy(() => import('./repair'));
15
16
  export const Settings = lazy(() => import('./settings'));
16
17
  export const Toolkit = lazy(() => import('./toolkit'));
17
18
 
@@ -13,8 +13,8 @@ import { Sequence } from '@dxos/conductor';
13
13
  import { Filter, Key, Obj, Ref, Type } from '@dxos/echo';
14
14
  import { TracingService, serializeFunction } from '@dxos/functions';
15
15
  import { AutomationCapabilities } from '@dxos/plugin-automation';
16
- import { CollectionAction } from '@dxos/plugin-space/types';
17
16
  import { getSpace } from '@dxos/react-client/echo';
17
+ import { Collection } from '@dxos/schema';
18
18
  import { type Message } from '@dxos/types';
19
19
 
20
20
  import { type AiChatServices, updateName } from '../processor';
@@ -26,25 +26,13 @@ import { AssistantCapabilities } from './capabilities';
26
26
  export default (context: PluginContext) => [
27
27
  contributes(Capabilities.IntentResolver, [
28
28
  createResolver({
29
- intent: AssistantAction.onCreateSpace,
29
+ intent: AssistantAction.OnCreateSpace,
30
30
  resolve: ({ space, rootCollection }) =>
31
31
  Effect.gen(function* () {
32
32
  const { dispatch } = context.getCapability(Capabilities.IntentDispatcher);
33
- const { object: chatCollection } = yield* dispatch(
34
- createIntent(CollectionAction.CreateQueryCollection, {
35
- typename: Assistant.Chat.typename,
36
- }),
37
- );
38
- const { object: blueprintCollection } = yield* dispatch(
39
- createIntent(CollectionAction.CreateQueryCollection, {
40
- typename: Blueprint.Blueprint.typename,
41
- }),
42
- );
43
- const { object: promptCollection } = yield* dispatch(
44
- createIntent(CollectionAction.CreateQueryCollection, {
45
- typename: Type.getTypename(Prompt.Prompt),
46
- }),
47
- );
33
+ const chatCollection = Collection.makeManaged({ key: Assistant.Chat.typename });
34
+ const blueprintCollection = Collection.makeManaged({ key: Blueprint.Blueprint.typename });
35
+ const promptCollection = Collection.makeManaged({ key: Type.getTypename(Prompt.Prompt) });
48
36
  rootCollection.objects.push(
49
37
  Ref.make(chatCollection),
50
38
  Ref.make(blueprintCollection),
@@ -0,0 +1,49 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { contributes } from '@dxos/app-framework';
6
+ import { Blueprint, Prompt } from '@dxos/blueprints';
7
+ import { Obj, Ref, Type } from '@dxos/echo';
8
+ import { SpaceCapabilities } from '@dxos/plugin-space';
9
+ import { type Space } from '@dxos/react-client/echo';
10
+ import { Collection } from '@dxos/schema';
11
+
12
+ import { Assistant } from '../types';
13
+
14
+ export default () =>
15
+ contributes(SpaceCapabilities.Repair, async ({ space }) => {
16
+ await ensureSystemCollections(space);
17
+ });
18
+
19
+ /**
20
+ * Ensure the root collection has system collections for AI Chats, Blueprints, and Prompts.
21
+ */
22
+ const ensureSystemCollections = async (space: Space) => {
23
+ const rootCollection: Collection.Collection = await space.properties[Collection.Collection.typename]?.load();
24
+ if (!rootCollection) {
25
+ return;
26
+ }
27
+
28
+ const objects = await Promise.all(rootCollection.objects.map((ref) => ref.load()));
29
+ const chats = objects.find(
30
+ (object) => Obj.instanceOf(Collection.Managed, object) && object.key === Assistant.Chat.typename,
31
+ );
32
+ if (!chats) {
33
+ rootCollection.objects.push(Ref.make(Collection.makeManaged({ key: Assistant.Chat.typename })));
34
+ }
35
+
36
+ const blueprints = objects.find(
37
+ (object) => Obj.instanceOf(Collection.Managed, object) && object.key === Blueprint.Blueprint.typename,
38
+ );
39
+ if (!blueprints) {
40
+ rootCollection.objects.push(Ref.make(Collection.makeManaged({ key: Blueprint.Blueprint.typename })));
41
+ }
42
+
43
+ const prompts = objects.find(
44
+ (object) => Obj.instanceOf(Collection.Managed, object) && object.key === Type.getTypename(Prompt.Prompt),
45
+ );
46
+ if (!prompts) {
47
+ rootCollection.objects.push(Ref.make(Collection.makeManaged({ key: Type.getTypename(Prompt.Prompt) })));
48
+ }
49
+ };
@@ -12,7 +12,13 @@ import { Icon, IconButton, Popover, Select, useTranslation } from '@dxos/react-u
12
12
  import { Listbox, SearchList } from '@dxos/react-ui-searchlist';
13
13
  import { Tabs } from '@dxos/react-ui-tabs';
14
14
 
15
- import { useActiveBlueprints, useBlueprintHandlers, useBlueprints, useContextObjects, useItemTypes } from '../../hooks';
15
+ import {
16
+ useActiveBlueprints,
17
+ useBlueprintHandlers,
18
+ useBlueprints,
19
+ useContextObjects,
20
+ useFilteredTypes,
21
+ } from '../../hooks';
16
22
  import { meta } from '../../meta';
17
23
 
18
24
  const panelClassNames = 'is-[calc(100dvw-.5rem)] sm:is-max md:is-72 max-is-[--text-content]';
@@ -153,7 +159,7 @@ const ObjectsPanel = ({ space, context }: Pick<ChatOptionsProps, 'space' | 'cont
153
159
  const { t } = useTranslation(meta.id);
154
160
 
155
161
  // Item types sorted by label.
156
- const types = useItemTypes(space);
162
+ const types = useFilteredTypes(space);
157
163
  const typenames = useMemo(() => {
158
164
  const typenames = types.map((type) => {
159
165
  const typename = Type.getTypename(type);
@@ -15,9 +15,9 @@ export type ObjectLinkProps = {
15
15
  };
16
16
 
17
17
  export const ObjectLink = ({ space, dxn }: ObjectLinkProps) => {
18
- const ref = useMemo(() => space.db.ref(dxn), [space, dxn.toString()]);
18
+ const ref = useMemo(() => space.db.makeRef(dxn), [space, dxn.toString()]);
19
19
 
20
- const title = Obj.getLabel(ref.target) ?? ref.target?.id ?? ref.dxn.toString();
20
+ const title = (ref.target && Obj.getLabel(ref.target)) ?? ref.target?.id ?? ref.dxn.toString();
21
21
  return (
22
22
  <DxAnchor rootclassname='dx-tag--anchor' refid={dxn.toString()}>
23
23
  {title}
@@ -28,7 +28,7 @@ export const PromptArticle = ({ subject }: PromptArticleProps) => {
28
28
  const inputData = useMemo(
29
29
  () =>
30
30
  subject && {
31
- prompt: space?.db.ref(Obj.getDXN(subject)),
31
+ prompt: space?.db.makeRef(Obj.getDXN(subject)),
32
32
  input: {},
33
33
  },
34
34
  [subject, space],
@@ -6,7 +6,7 @@ import { defaultHighlightStyle, syntaxHighlighting } from '@codemirror/language'
6
6
  import React from 'react';
7
7
 
8
8
  import { type Template } from '@dxos/blueprints';
9
- import { createDocAccessor } from '@dxos/react-client/echo';
9
+ import { createDocAccessor } from '@dxos/echo-db';
10
10
  import { type ThemedClassName, useThemeContext, useTranslation } from '@dxos/react-ui';
11
11
  import {
12
12
  createBasicExtensions,
@@ -115,7 +115,7 @@ export const ToolContainer = ({ items, onChangeOpen }: ToolContainerParams) => {
115
115
  if (open) {
116
116
  tabsRef.current?.focus();
117
117
  }
118
- }, [onChangeOpen, open]);
118
+ }, [open, onChangeOpen]);
119
119
 
120
120
  const handleSelect = (index: number) => {
121
121
  setSelected(index);
@@ -25,7 +25,7 @@ export default defineFunction({
25
25
  }),
26
26
  }),
27
27
  outputSchema: Schema.Struct({
28
- // TODO(wittjosiah): Type.Obj.Any | Type.Relation.Any
28
+ // TODO(wittjosiah): Type.Entity.Any
29
29
  object: Schema.Any,
30
30
  }),
31
31
  handler: Effect.fn(function* ({ data: { id, typename } }) {
@@ -8,8 +8,8 @@ export * from './useChatServices';
8
8
  export * from './useChatToolbarActions';
9
9
  export * from './useContextBinder';
10
10
  export * from './useContextObjects';
11
+ export * from './useFilteredTypes';
11
12
  export * from './useFlush';
12
- export * from './useItemTypes';
13
13
  export * from './useOnline';
14
14
  export * from './usePresets';
15
15
  export * from './useReferencesProvider';
@@ -35,7 +35,7 @@ export const useContextObjects = ({
35
35
 
36
36
  // Load the object by DXN/id from the current space.
37
37
  const id = dxn.asEchoDXN();
38
- const object = id && (await space.db.getObjectById(id.echoId));
38
+ const object = id && space.db.getObjectById(id.echoId);
39
39
  if (!object) {
40
40
  log.warn('Object not found', { dxn, id });
41
41
  return;
@@ -6,12 +6,13 @@ import * as Option from 'effect/Option';
6
6
  import { useEffect, useState } from 'react';
7
7
 
8
8
  import { type Type } from '@dxos/echo';
9
+ import { EntityKind, SystemTypeAnnotation, getTypeAnnotation } from '@dxos/echo/internal';
9
10
  import { type Space } from '@dxos/react-client/echo';
10
- import { ItemAnnotation } from '@dxos/schema';
11
11
 
12
12
  // TODO(burdon): Pass in filter.
13
- export const useItemTypes = (space?: Space): Type.Obj.Any[] => {
14
- const [types, setTypes] = useState<Type.Obj.Any[]>([]);
13
+ // TODO(wittjosiah): Factor out.
14
+ export const useFilteredTypes = (space?: Space): Type.Entity.Any[] => {
15
+ const [types, setTypes] = useState<Type.Entity.Any[]>([]);
15
16
  useEffect(() => {
16
17
  if (!space) {
17
18
  return;
@@ -21,9 +22,9 @@ export const useItemTypes = (space?: Space): Type.Obj.Any[] => {
21
22
  (query) => {
22
23
  const types = Array.from(
23
24
  new Set(
24
- [...space.db.graph.schemaRegistry.schemas, ...query.results].filter((type) =>
25
- Option.isSome(ItemAnnotation.get(type)),
26
- ),
25
+ [...space.db.graph.schemaRegistry.schemas, ...query.results]
26
+ .filter((schema) => getTypeAnnotation(schema)?.kind !== EntityKind.Relation)
27
+ .filter((schema) => SystemTypeAnnotation.get(schema).pipe(Option.getOrElse(() => false))),
27
28
  ),
28
29
  );
29
30
 
@@ -23,6 +23,7 @@ export const translations = [
23
23
  'object name placeholder': 'New blueprint',
24
24
  'rename object label': 'Rename blueprint',
25
25
  'delete object label': 'Delete blueprint',
26
+ 'object deleted label': 'Blueprint deleted',
26
27
  },
27
28
  [Type.getTypename(Prompt.Prompt)]: {
28
29
  'typename label': 'Prompt',
@@ -32,6 +33,7 @@ export const translations = [
32
33
  'object name placeholder': 'New prompt',
33
34
  'rename object label': 'Rename prompt',
34
35
  'delete object label': 'Delete prompt',
36
+ 'object deleted label': 'Prompt deleted',
35
37
  },
36
38
  // TODO(burdon): From conductor.
37
39
  [Sequence.typename]: {
@@ -42,12 +44,14 @@ export const translations = [
42
44
  'object name placeholder': 'New sequence',
43
45
  'rename object label': 'Rename sequence',
44
46
  'delete object label': 'Delete sequence',
47
+ 'object deleted label': 'Sequence deleted',
45
48
  },
46
49
  [Assistant.Chat.typename]: {
47
50
  'typename label': 'AI Chat',
48
51
  'object name placeholder': 'New AI Chat',
49
52
  'rename object label': 'Rename AI Chat',
50
53
  'delete object label': 'Delete AI Chat',
54
+ 'object deleted label': 'AI Chat deleted',
51
55
  },
52
56
  // TODO(burdon): Reconcile with react-ui-chat.
53
57
  [meta.id]: {
@@ -5,7 +5,7 @@
5
5
  import * as Schema from 'effect/Schema';
6
6
 
7
7
  import { Obj, Ref, Type } from '@dxos/echo';
8
- import { FormAnnotation, LabelAnnotation } from '@dxos/echo/internal';
8
+ import { FormInputAnnotation, LabelAnnotation } from '@dxos/echo/internal';
9
9
  import { Queue } from '@dxos/echo-db';
10
10
 
11
11
  import { LLM_PROVIDERS } from './defs';
@@ -15,9 +15,9 @@ import { LLM_PROVIDERS } from './defs';
15
15
  */
16
16
  export const Chat = Schema.Struct({
17
17
  name: Schema.String.pipe(Schema.optional),
18
- queue: Type.Ref(Queue).pipe(FormAnnotation.set(false)),
18
+ queue: Type.Ref(Queue).pipe(FormInputAnnotation.set(false)),
19
19
  // TODO(dmaretskyi): Eventually this and the message queue will be the same.
20
- traceQueue: Type.Ref(Queue).pipe(FormAnnotation.set(false), Schema.optional),
20
+ traceQueue: Type.Ref(Queue).pipe(FormInputAnnotation.set(false), Schema.optional),
21
21
  }).pipe(
22
22
  Type.Obj({
23
23
  typename: 'dxos.org/type/assistant/Chat',
@@ -35,7 +35,7 @@ export const makeChat = ({ name, queue }: { name?: string; queue: Queue }) =>
35
35
  * Relation between a Chat and companion objects (e.g., artifacts).
36
36
  */
37
37
  export const CompanionTo = Schema.Struct({
38
- id: Type.ObjectId,
38
+ id: Obj.ID,
39
39
  }).pipe(
40
40
  Type.Relation({
41
41
  typename: 'dxos.org/relation/assistant/CompanionTo',
@@ -14,7 +14,7 @@ import { meta } from '../meta';
14
14
  import { Chat } from './Assistant';
15
15
 
16
16
  // TODO(burdon): Name?
17
- export class onCreateSpace extends Schema.TaggedClass<onCreateSpace>()(`${meta.id}/on-space-created`, {
17
+ export class OnCreateSpace extends Schema.TaggedClass<OnCreateSpace>()(`${meta.id}/on-space-created`, {
18
18
  input: Schema.Struct({
19
19
  space: SpaceSchema,
20
20
  rootCollection: Collection.Collection,