@dxos/plugin-automation 0.7.5-main.9cb18ac → 0.7.5-main.9d2a38b

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 (107) hide show
  1. package/dist/lib/browser/{AssistantPanel-32FH2RA6.mjs → AssistantPanel-N276BTPV.mjs} +2 -2
  2. package/dist/lib/browser/AutomationPanel-IHZ4JKVS.mjs +232 -0
  3. package/dist/lib/browser/AutomationPanel-IHZ4JKVS.mjs.map +7 -0
  4. package/dist/lib/browser/app-graph-builder-IJTTULDP.mjs +131 -0
  5. package/dist/lib/browser/app-graph-builder-IJTTULDP.mjs.map +7 -0
  6. package/dist/lib/browser/chunk-4AIMDHKY.mjs +10 -0
  7. package/dist/lib/browser/chunk-4AIMDHKY.mjs.map +7 -0
  8. package/dist/lib/browser/{chunk-DN5M2QL5.mjs → chunk-DL6LB2NI.mjs} +2 -8
  9. package/dist/lib/browser/{chunk-DN5M2QL5.mjs.map → chunk-DL6LB2NI.mjs.map} +4 -4
  10. package/dist/lib/browser/{chunk-X5KMOH3I.mjs → chunk-HKX3D3ZP.mjs} +3 -3
  11. package/dist/lib/browser/chunk-HKX3D3ZP.mjs.map +7 -0
  12. package/dist/lib/browser/index.mjs +89 -236
  13. package/dist/lib/browser/index.mjs.map +4 -4
  14. package/dist/lib/browser/meta.json +1 -1
  15. package/dist/lib/browser/react-surface-LL72F3F4.mjs +34 -0
  16. package/dist/lib/browser/react-surface-LL72F3F4.mjs.map +7 -0
  17. package/dist/lib/browser/types/index.mjs +1 -3
  18. package/dist/lib/node/{AssistantPanel-XANI7YNV.cjs → AssistantPanel-Z4GVHUF3.cjs} +6 -6
  19. package/dist/lib/node/{AutomationPanel-VADY3HMP.cjs → AutomationPanel-PPODB5XA.cjs} +113 -32
  20. package/dist/lib/node/AutomationPanel-PPODB5XA.cjs.map +7 -0
  21. package/dist/lib/node/app-graph-builder-MF5M4QRS.cjs +147 -0
  22. package/dist/lib/node/app-graph-builder-MF5M4QRS.cjs.map +7 -0
  23. package/dist/lib/node/chunk-25AQIF3L.cjs +43 -0
  24. package/dist/lib/node/chunk-25AQIF3L.cjs.map +7 -0
  25. package/dist/lib/node/{chunk-DTJ7XVO2.cjs → chunk-5VF5JKUN.cjs} +7 -7
  26. package/dist/lib/node/chunk-5VF5JKUN.cjs.map +7 -0
  27. package/dist/lib/node/{chunk-NIL4TP6U.cjs → chunk-JNDMZQH7.cjs} +4 -9
  28. package/dist/lib/node/chunk-JNDMZQH7.cjs.map +7 -0
  29. package/dist/lib/node/index.cjs +112 -258
  30. package/dist/lib/node/index.cjs.map +4 -4
  31. package/dist/lib/node/meta.json +1 -1
  32. package/dist/lib/node/react-surface-DVAU4MGD.cjs +57 -0
  33. package/dist/lib/node/react-surface-DVAU4MGD.cjs.map +7 -0
  34. package/dist/lib/node/types/index.cjs +5 -7
  35. package/dist/lib/node/types/index.cjs.map +2 -2
  36. package/dist/lib/node-esm/{AssistantPanel-5M6O6JV7.mjs → AssistantPanel-DDCQHBJX.mjs} +2 -2
  37. package/dist/lib/node-esm/AutomationPanel-R3D6CRF5.mjs +233 -0
  38. package/dist/lib/node-esm/AutomationPanel-R3D6CRF5.mjs.map +7 -0
  39. package/dist/lib/node-esm/app-graph-builder-5N7OK23B.mjs +132 -0
  40. package/dist/lib/node-esm/app-graph-builder-5N7OK23B.mjs.map +7 -0
  41. package/dist/lib/node-esm/{chunk-GCHXTXVT.mjs → chunk-GIAYUM5I.mjs} +2 -8
  42. package/dist/lib/node-esm/{chunk-GCHXTXVT.mjs.map → chunk-GIAYUM5I.mjs.map} +4 -4
  43. package/dist/lib/node-esm/{chunk-HNOBZHWK.mjs → chunk-X3LPRWIL.mjs} +3 -3
  44. package/dist/lib/node-esm/chunk-X3LPRWIL.mjs.map +7 -0
  45. package/dist/lib/node-esm/chunk-XW7TEQA3.mjs +12 -0
  46. package/dist/lib/node-esm/chunk-XW7TEQA3.mjs.map +7 -0
  47. package/dist/lib/node-esm/index.mjs +89 -236
  48. package/dist/lib/node-esm/index.mjs.map +4 -4
  49. package/dist/lib/node-esm/meta.json +1 -1
  50. package/dist/lib/node-esm/react-surface-4BED2PZ4.mjs +35 -0
  51. package/dist/lib/node-esm/react-surface-4BED2PZ4.mjs.map +7 -0
  52. package/dist/lib/node-esm/types/index.mjs +1 -3
  53. package/dist/types/src/AutomationPlugin.d.ts +1 -3
  54. package/dist/types/src/AutomationPlugin.d.ts.map +1 -1
  55. package/dist/types/src/capabilities/app-graph-builder.d.ts +180 -0
  56. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -0
  57. package/dist/types/src/capabilities/index.d.ts +179 -0
  58. package/dist/types/src/capabilities/index.d.ts.map +1 -0
  59. package/dist/types/src/capabilities/react-surface.d.ts +4 -0
  60. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
  61. package/dist/types/src/components/AutomationPanel/AutomationPanel.d.ts +1 -1
  62. package/dist/types/src/components/AutomationPanel/AutomationPanel.d.ts.map +1 -1
  63. package/dist/types/src/components/TriggerEditor/TriggerEditor.d.ts +1 -2
  64. package/dist/types/src/components/TriggerEditor/TriggerEditor.d.ts.map +1 -1
  65. package/dist/types/src/components/index.d.ts +1 -1
  66. package/dist/types/src/components/index.d.ts.map +1 -1
  67. package/dist/types/src/index.d.ts +1 -2
  68. package/dist/types/src/index.d.ts.map +1 -1
  69. package/dist/types/src/meta.d.ts +1 -2
  70. package/dist/types/src/meta.d.ts.map +1 -1
  71. package/dist/types/src/translations.d.ts +7 -0
  72. package/dist/types/src/translations.d.ts.map +1 -1
  73. package/dist/types/src/types/index.d.ts +0 -1
  74. package/dist/types/src/types/index.d.ts.map +1 -1
  75. package/dist/types/tsconfig.tsbuildinfo +1 -1
  76. package/package.json +38 -46
  77. package/src/AutomationPlugin.tsx +55 -193
  78. package/src/capabilities/app-graph-builder.ts +127 -0
  79. package/src/capabilities/index.ts +8 -0
  80. package/src/capabilities/react-surface.tsx +27 -0
  81. package/src/components/AutomationPanel/AutomationPanel.tsx +54 -37
  82. package/src/components/TriggerEditor/TriggerEditor.tsx +63 -6
  83. package/src/index.ts +1 -4
  84. package/src/meta.ts +1 -1
  85. package/src/translations.ts +9 -0
  86. package/src/types/index.ts +0 -1
  87. package/dist/lib/browser/AutomationPanel-ABGPG5LE.mjs +0 -151
  88. package/dist/lib/browser/AutomationPanel-ABGPG5LE.mjs.map +0 -7
  89. package/dist/lib/browser/chunk-X5KMOH3I.mjs.map +0 -7
  90. package/dist/lib/browser/meta.mjs +0 -9
  91. package/dist/lib/browser/meta.mjs.map +0 -7
  92. package/dist/lib/node/AutomationPanel-VADY3HMP.cjs.map +0 -7
  93. package/dist/lib/node/chunk-DTJ7XVO2.cjs.map +0 -7
  94. package/dist/lib/node/chunk-NIL4TP6U.cjs.map +0 -7
  95. package/dist/lib/node/meta.cjs +0 -30
  96. package/dist/lib/node/meta.cjs.map +0 -7
  97. package/dist/lib/node-esm/AutomationPanel-EETYIDPA.mjs +0 -152
  98. package/dist/lib/node-esm/AutomationPanel-EETYIDPA.mjs.map +0 -7
  99. package/dist/lib/node-esm/chunk-HNOBZHWK.mjs.map +0 -7
  100. package/dist/lib/node-esm/meta.mjs +0 -10
  101. package/dist/lib/node-esm/meta.mjs.map +0 -7
  102. package/dist/types/src/types/types.d.ts +0 -7
  103. package/dist/types/src/types/types.d.ts.map +0 -1
  104. package/src/types/types.ts +0 -27
  105. /package/dist/lib/browser/{AssistantPanel-32FH2RA6.mjs.map → AssistantPanel-N276BTPV.mjs.map} +0 -0
  106. /package/dist/lib/node/{AssistantPanel-XANI7YNV.cjs.map → AssistantPanel-Z4GVHUF3.cjs.map} +0 -0
  107. /package/dist/lib/node-esm/{AssistantPanel-5M6O6JV7.mjs.map → AssistantPanel-DDCQHBJX.mjs.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"TriggerEditor.d.ts","sourceRoot":"","sources":["../../../../../src/components/TriggerEditor/TriggerEditor.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAGL,KAAK,mBAAmB,EACxB,KAAK,eAAe,EAGrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAoB,KAAK,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAMvE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,mBAAmB,CAAC;IAC7B,aAAa,CAAC,EAAE,eAAe,CAAC;IAChC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC;IACxD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,aAAa,wDAAyD,kBAAkB,sBAsCpG,CAAC"}
1
+ {"version":3,"file":"TriggerEditor.d.ts","sourceRoot":"","sources":["../../../../../src/components/TriggerEditor/TriggerEditor.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAExC,OAAO,EAGL,KAAK,mBAAmB,EACxB,KAAK,eAAe,EAGrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAoB,KAAK,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAMvE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,mBAAmB,CAAC;IAC7B,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC;IACxD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,aAAa,yCAA0C,kBAAkB,sBAgGrF,CAAC"}
@@ -1,3 +1,3 @@
1
1
  export declare const AssistantPanel: import("react").LazyExoticComponent<({ subject, classNames }: import("./AssistantPanel/AssistantPanel").AssistantPanelProps) => import("react").JSX.Element>;
2
- export declare const AutomationPanel: import("react").LazyExoticComponent<({ space }: import("./AutomationPanel/AutomationPanel").AutomationPanelProps) => import("react").JSX.Element>;
2
+ export declare const AutomationPanel: import("react").LazyExoticComponent<({ space, object }: import("./AutomationPanel/AutomationPanel").AutomationPanelProps) => import("react").JSX.Element>;
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,cAAc,8JAAyC,CAAC;AACrE,eAAO,MAAM,eAAe,mJAA0C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,cAAc,8JAAyC,CAAC;AACrE,eAAO,MAAM,eAAe,2JAA0C,CAAC"}
@@ -1,7 +1,6 @@
1
- import { AutomationPlugin } from './AutomationPlugin';
2
- export default AutomationPlugin;
3
1
  export * from './AutomationPlugin';
4
2
  export * from './components';
3
+ export * from './meta';
5
4
  export * from './presets';
6
5
  export * from './types';
7
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,eAAe,gBAAgB,CAAC;AAEhC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC"}
@@ -1,5 +1,5 @@
1
1
  export declare const AUTOMATION_PLUGIN = "dxos.org/plugin/automation";
2
- declare const _default: {
2
+ export declare const meta: {
3
3
  id: string;
4
4
  name: string;
5
5
  description: string;
@@ -7,5 +7,4 @@ declare const _default: {
7
7
  source: string;
8
8
  tags: string[];
9
9
  };
10
- export default _default;
11
10
  //# sourceMappingURL=meta.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/meta.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,iBAAiB,+BAA+B,CAAC;;;;;;;;;AAE9D,wBAOuB"}
1
+ {"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/meta.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,iBAAiB,+BAA+B,CAAC;AAE9D,eAAO,MAAM,IAAI;;;;;;;CAOK,CAAC"}
@@ -11,6 +11,7 @@ declare const _default: {
11
11
  'value placeholder': string;
12
12
  'select preset template placeholder': string;
13
13
  'open automation panel label': string;
14
+ 'automation panel label': string;
14
15
  'function select label': string;
15
16
  'function select placeholder': string;
16
17
  'function enabled': string;
@@ -20,10 +21,16 @@ declare const _default: {
20
21
  'trigger type webhook': string;
21
22
  'trigger type websocket': string;
22
23
  'trigger type subscription': string;
24
+ 'trigger type email': string;
23
25
  'trigger filter': string;
24
26
  'trigger cron': string;
25
27
  'trigger method': string;
26
28
  'trigger endpoint': string;
29
+ 'trigger copy url': string;
30
+ 'trigger copy email': string;
31
+ 'trigger meta add': string;
32
+ 'trigger meta remove': string;
33
+ 'trigger meta prop name placeholder': string;
27
34
  'open assistant panel label': string;
28
35
  'assistant panel label': string;
29
36
  };
@@ -1 +1 @@
1
- {"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../../../src/translations.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,wBAoCE"}
1
+ {"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../../../src/translations.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,wBA6CE"}
@@ -1,3 +1,2 @@
1
1
  export * from './schema';
2
- export * from './types';
3
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/types/index.ts"],"names":[],"mappings":"AAIA,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/types/index.ts"],"names":[],"mappings":"AAIA,cAAc,UAAU,CAAC"}
@@ -1 +1 @@
1
- {"version":"5.7.2"}
1
+ {"version":"5.7.3"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/plugin-automation",
3
- "version": "0.7.5-main.9cb18ac",
3
+ "version": "0.7.5-main.9d2a38b",
4
4
  "description": "Prompt chain plugin",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -13,11 +13,6 @@
13
13
  "browser": "./dist/lib/browser/index.mjs",
14
14
  "node": "./dist/lib/node-esm/index.mjs"
15
15
  },
16
- "./meta": {
17
- "types": "./dist/types/src/meta.d.ts",
18
- "browser": "./dist/lib/browser/meta.mjs",
19
- "node": "./dist/lib/node-esm/meta.mjs"
20
- },
21
16
  "./types": {
22
17
  "types": "./dist/types/src/types/index.d.ts",
23
18
  "browser": "./dist/lib/browser/types/index.mjs",
@@ -27,9 +22,6 @@
27
22
  "types": "dist/types/src/index.d.ts",
28
23
  "typesVersions": {
29
24
  "*": {
30
- "meta": [
31
- "dist/types/src/meta.d.ts"
32
- ],
33
25
  "types": [
34
26
  "dist/types/src/types/index.d.ts"
35
27
  ]
@@ -47,36 +39,36 @@
47
39
  "@effect/schema": "^0.75.5",
48
40
  "@preact/signals-core": "^1.6.0",
49
41
  "lodash.get": "^4.4.2",
50
- "@dxos/assistant": "0.7.5-main.9cb18ac",
51
- "@dxos/app-framework": "0.7.5-main.9cb18ac",
52
- "@dxos/async": "0.7.5-main.9cb18ac",
53
- "@dxos/compute": "0.7.5-main.9cb18ac",
54
- "@dxos/context": "0.7.5-main.9cb18ac",
55
- "@dxos/echo-db": "0.7.5-main.9cb18ac",
56
- "@dxos/echo-schema": "0.7.5-main.9cb18ac",
57
- "@dxos/functions": "0.7.5-main.9cb18ac",
58
- "@dxos/invariant": "0.7.5-main.9cb18ac",
59
- "@dxos/log": "0.7.5-main.9cb18ac",
60
- "@dxos/plugin-chess": "0.7.5-main.9cb18ac",
61
- "@dxos/keys": "0.7.5-main.9cb18ac",
62
- "@dxos/live-object": "0.7.5-main.9cb18ac",
63
- "@dxos/plugin-client": "0.7.5-main.9cb18ac",
64
- "@dxos/plugin-deck": "0.7.5-main.9cb18ac",
65
- "@dxos/plugin-graph": "0.7.5-main.9cb18ac",
66
- "@dxos/plugin-inbox": "0.7.5-main.9cb18ac",
67
- "@dxos/plugin-ipfs": "0.7.5-main.9cb18ac",
68
- "@dxos/plugin-markdown": "0.7.5-main.9cb18ac",
69
- "@dxos/plugin-script": "0.7.5-main.9cb18ac",
70
- "@dxos/plugin-sketch": "0.7.5-main.9cb18ac",
71
- "@dxos/plugin-stack": "0.7.5-main.9cb18ac",
72
- "@dxos/react-ui-editor": "0.7.5-main.9cb18ac",
73
- "@dxos/react-client": "0.7.5-main.9cb18ac",
74
- "@dxos/plugin-space": "0.7.5-main.9cb18ac",
75
- "@dxos/react-ui-form": "0.7.5-main.9cb18ac",
76
- "@dxos/react-ui-list": "0.7.5-main.9cb18ac",
77
- "@dxos/react-ui-syntax-highlighter": "0.7.5-main.9cb18ac",
78
- "@dxos/schema": "0.7.5-main.9cb18ac",
79
- "@dxos/util": "0.7.5-main.9cb18ac"
42
+ "@dxos/app-framework": "0.7.5-main.9d2a38b",
43
+ "@dxos/assistant": "0.7.5-main.9d2a38b",
44
+ "@dxos/compute": "0.7.5-main.9d2a38b",
45
+ "@dxos/context": "0.7.5-main.9d2a38b",
46
+ "@dxos/async": "0.7.5-main.9d2a38b",
47
+ "@dxos/echo-schema": "0.7.5-main.9d2a38b",
48
+ "@dxos/echo-db": "0.7.5-main.9d2a38b",
49
+ "@dxos/invariant": "0.7.5-main.9d2a38b",
50
+ "@dxos/functions": "0.7.5-main.9d2a38b",
51
+ "@dxos/keys": "0.7.5-main.9d2a38b",
52
+ "@dxos/live-object": "0.7.5-main.9d2a38b",
53
+ "@dxos/plugin-client": "0.7.5-main.9d2a38b",
54
+ "@dxos/log": "0.7.5-main.9d2a38b",
55
+ "@dxos/plugin-deck": "0.7.5-main.9d2a38b",
56
+ "@dxos/plugin-graph": "0.7.5-main.9d2a38b",
57
+ "@dxos/plugin-chess": "0.7.5-main.9d2a38b",
58
+ "@dxos/plugin-inbox": "0.7.5-main.9d2a38b",
59
+ "@dxos/plugin-script": "0.7.5-main.9d2a38b",
60
+ "@dxos/plugin-markdown": "0.7.5-main.9d2a38b",
61
+ "@dxos/plugin-space": "0.7.5-main.9d2a38b",
62
+ "@dxos/plugin-sketch": "0.7.5-main.9d2a38b",
63
+ "@dxos/plugin-stack": "0.7.5-main.9d2a38b",
64
+ "@dxos/plugin-wnfs": "0.7.5-main.9d2a38b",
65
+ "@dxos/react-client": "0.7.5-main.9d2a38b",
66
+ "@dxos/react-ui-editor": "0.7.5-main.9d2a38b",
67
+ "@dxos/react-ui-list": "0.7.5-main.9d2a38b",
68
+ "@dxos/react-ui-form": "0.7.5-main.9d2a38b",
69
+ "@dxos/react-ui-syntax-highlighter": "0.7.5-main.9d2a38b",
70
+ "@dxos/schema": "0.7.5-main.9d2a38b",
71
+ "@dxos/util": "0.7.5-main.9d2a38b"
80
72
  },
81
73
  "devDependencies": {
82
74
  "@phosphor-icons/react": "^2.1.5",
@@ -86,18 +78,18 @@
86
78
  "react": "~18.2.0",
87
79
  "react-dom": "~18.2.0",
88
80
  "vite": "5.4.7",
89
- "@dxos/echo-db": "0.7.5-main.9cb18ac",
90
- "@dxos/random": "0.7.5-main.9cb18ac",
91
- "@dxos/react-ui-theme": "0.7.5-main.9cb18ac",
92
- "@dxos/storybook-utils": "0.7.5-main.9cb18ac",
93
- "@dxos/react-ui": "0.7.5-main.9cb18ac"
81
+ "@dxos/echo-db": "0.7.5-main.9d2a38b",
82
+ "@dxos/random": "0.7.5-main.9d2a38b",
83
+ "@dxos/react-ui": "0.7.5-main.9d2a38b",
84
+ "@dxos/react-ui-theme": "0.7.5-main.9d2a38b",
85
+ "@dxos/storybook-utils": "0.7.5-main.9d2a38b"
94
86
  },
95
87
  "peerDependencies": {
96
88
  "@phosphor-icons/react": "^2.1.5",
97
89
  "react": "~18.2.0",
98
90
  "react-dom": "~18.2.0",
99
- "@dxos/react-ui": "0.7.5-main.9cb18ac",
100
- "@dxos/react-ui-theme": "0.7.5-main.9cb18ac"
91
+ "@dxos/react-ui-theme": "0.7.5-main.9d2a38b",
92
+ "@dxos/react-ui": "0.7.5-main.9d2a38b"
101
93
  },
102
94
  "publishConfig": {
103
95
  "access": "public"
@@ -2,205 +2,67 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import React from 'react';
6
-
7
- import { createSurface, parseMetadataResolverPlugin, type PluginDefinition, resolvePlugin } from '@dxos/app-framework';
5
+ import { Capabilities, contributes, defineModule, definePlugin, Events, oneOf } from '@dxos/app-framework';
8
6
  import { FunctionTrigger } from '@dxos/functions';
9
- import { invariant } from '@dxos/invariant';
10
- import { parseClientPlugin } from '@dxos/plugin-client/types';
11
- import { createExtension, toSignal } from '@dxos/plugin-graph';
12
- import { memoizeQuery } from '@dxos/plugin-space';
13
- import {
14
- getSpace,
15
- getTypename,
16
- isEchoObject,
17
- parseId,
18
- type ReactiveEchoObject,
19
- RefArray,
20
- SpaceState,
21
- } from '@dxos/react-client/echo';
22
- import { translations as formTranslations } from '@dxos/react-ui-form';
7
+ import { ClientCapabilities, ClientEvents } from '@dxos/plugin-client';
8
+ import { DeckCapabilities } from '@dxos/plugin-deck';
9
+ import { RefArray } from '@dxos/react-client/echo';
23
10
 
24
- import { AssistantPanel, AutomationPanel } from './components';
25
- import meta, { AUTOMATION_PLUGIN } from './meta';
11
+ import { AppGraphBuilder, ReactSurface } from './capabilities';
12
+ import { AUTOMATION_PLUGIN, meta } from './meta';
26
13
  import translations from './translations';
27
- import { type AutomationPluginProvides, ChainPromptType, ChainType } from './types';
14
+ import { ChainPromptType, ChainType } from './types';
28
15
 
29
- export const AutomationPlugin = (): PluginDefinition<AutomationPluginProvides> => {
30
- return {
31
- meta,
32
- provides: {
33
- metadata: {
34
- records: {
35
- [ChainType.typename]: {
16
+ export const AutomationPlugin = () =>
17
+ definePlugin(meta, [
18
+ defineModule({
19
+ id: `${meta.id}/module/translations`,
20
+ activatesOn: Events.SetupTranslations,
21
+ activate: () => contributes(Capabilities.Translations, translations),
22
+ }),
23
+ defineModule({
24
+ id: `${meta.id}/module/metadata`,
25
+ activatesOn: oneOf(Events.Startup, Events.SetupAppGraph),
26
+ activate: () =>
27
+ contributes(Capabilities.Metadata, {
28
+ id: ChainType.typename,
29
+ metadata: {
36
30
  placeholder: ['object placeholder', { ns: AUTOMATION_PLUGIN }],
37
31
  icon: 'ph--magic-wand--regular',
38
32
  // TODO(wittjosiah): Move out of metadata.
39
33
  loadReferences: async (chain: ChainType) => await RefArray.loadAll(chain.prompts ?? []),
40
34
  },
41
- },
42
- },
43
- translations: [...translations, ...formTranslations],
44
- echo: {
45
- system: [ChainType, ChainPromptType, FunctionTrigger],
46
- },
47
- complementary: {
48
- panels: [
49
- {
50
- id: 'automation',
51
- label: ['open automation panel label', { ns: AUTOMATION_PLUGIN }],
52
- icon: 'ph--magic-wand--regular',
53
- },
54
- {
55
- id: 'assistant',
56
- label: ['open assistant panel label', { ns: AUTOMATION_PLUGIN }],
57
- icon: 'ph--atom--regular',
58
- },
59
- ],
60
- },
61
- graph: {
62
- builder: (plugins) => {
63
- const clientPlugin = resolvePlugin(plugins, parseClientPlugin);
64
- const metadataPlugin = resolvePlugin(plugins, parseMetadataResolverPlugin);
65
- const resolve = metadataPlugin?.provides.metadata.resolver;
66
- const client = clientPlugin?.provides.client;
67
- invariant(resolve);
68
- invariant(client);
69
-
70
- return [
71
- // Create nodes for object settings.
72
- createExtension({
73
- id: `${AUTOMATION_PLUGIN}/automation-for-subject`,
74
- resolver: ({ id }) => {
75
- if (!id.endsWith('~automation')) {
76
- return;
77
- }
78
-
79
- const type = 'orphan-settings-for-subject';
80
- const icon = 'ph--magic-wand--regular';
81
-
82
- const [subjectId] = id.split('~');
83
- const { spaceId, objectId } = parseId(subjectId);
84
- const spaces = toSignal(
85
- (onChange) => client.spaces.subscribe(() => onChange()).unsubscribe,
86
- () => client.spaces.get(),
87
- );
88
- const space = spaces?.find(
89
- (space) => space.id === spaceId && space.state.get() === SpaceState.SPACE_READY,
90
- );
91
- if (!objectId) {
92
- // TODO(burdon): Ref SPACE_PLUGIN ns.
93
- const label = space
94
- ? space.properties.name || ['unnamed space label', { ns: AUTOMATION_PLUGIN }]
95
- : ['unnamed object settings label', { ns: AUTOMATION_PLUGIN }];
96
-
97
- // TODO(wittjosiah): Support comments for arbitrary subjects.
98
- // This is to ensure that the comments panel is not stuck on an old object.
99
- return {
100
- id,
101
- type,
102
- data: null,
103
- properties: {
104
- icon,
105
- label,
106
- showResolvedThreads: false,
107
- object: null,
108
- space,
109
- },
110
- };
111
- }
112
-
113
- const [object] = memoizeQuery(space, { id: objectId });
114
- if (!object || !subjectId) {
115
- return;
116
- }
117
-
118
- const meta = resolve(getTypename(object) ?? '');
119
- const label = meta.label?.(object) ||
120
- object.name ||
121
- meta.placeholder || ['unnamed object settings label', { ns: AUTOMATION_PLUGIN }];
122
-
123
- return {
124
- id,
125
- type,
126
- data: null,
127
- properties: {
128
- icon,
129
- label,
130
- object,
131
- },
132
- };
133
- },
134
- }),
135
- createExtension({
136
- id: `${AUTOMATION_PLUGIN}/assistant-for-subject`,
137
- resolver: ({ id }) => {
138
- // TODO(Zan): Find util (or make one). Effect schema!!
139
- if (!id.endsWith('~assistant')) {
140
- return;
141
- }
142
-
143
- const [subjectId] = id.split('~');
144
- const { spaceId, objectId } = parseId(subjectId);
145
- const spaces = toSignal(
146
- (onChange) => client.spaces.subscribe(() => onChange()).unsubscribe,
147
- () => client.spaces.get(),
148
- );
149
- const space = spaces?.find(
150
- (space) => space.id === spaceId && space.state.get() === SpaceState.SPACE_READY,
151
- );
152
- if (!objectId) {
153
- // TODO(wittjosiah): Support assistant for arbitrary subjects.
154
- // This is to ensure that the assistant panel is not stuck on an old object.
155
- return {
156
- id,
157
- type: 'orphan-automation-for-subject',
158
- data: null,
159
- properties: {
160
- icon: 'ph--atom--regular',
161
- label: ['assistant panel label', { ns: AUTOMATION_PLUGIN }],
162
- object: null,
163
- space,
164
- },
165
- };
166
- }
167
-
168
- const [object] = memoizeQuery(space, { id: objectId });
169
-
170
- return {
171
- id,
172
- type: 'orphan-automation-for-subject',
173
- data: null,
174
- properties: {
175
- icon: 'ph--atom--regular',
176
- label: ['assistant panel label', { ns: AUTOMATION_PLUGIN }],
177
- object,
178
- },
179
- };
180
- },
181
- }),
182
- ];
183
- },
184
- },
185
- surface: {
186
- definitions: () => [
187
- createSurface({
188
- id: `${AUTOMATION_PLUGIN}/assistant`,
189
- role: 'complementary--assistant',
190
- component: ({ data }) => <AssistantPanel subject={data.subject} />,
191
- }),
192
- createSurface({
193
- id: `${AUTOMATION_PLUGIN}/automation`,
194
- role: 'complementary--automation',
195
- filter: (data): data is { subject: ReactiveEchoObject<any> } =>
196
- isEchoObject(data.subject) && !!getSpace(data.subject),
197
- component: ({ data }) => <AutomationPanel space={getSpace(data.subject)!} object={data.subject} />,
198
- }),
199
- ],
200
- },
201
- intent: {
202
- resolvers: () => [],
203
- },
204
- },
205
- };
206
- };
35
+ }),
36
+ }),
37
+ defineModule({
38
+ id: `${meta.id}/module/schema`,
39
+ activatesOn: ClientEvents.SetupClient,
40
+ activate: () => contributes(ClientCapabilities.SystemSchema, [ChainType, ChainPromptType, FunctionTrigger]),
41
+ }),
42
+ defineModule({
43
+ id: `${meta.id}/module/complementary-panels`,
44
+ activatesOn: Events.Startup,
45
+ activate: () => [
46
+ contributes(DeckCapabilities.ComplementaryPanel, {
47
+ id: 'automation',
48
+ label: ['automation panel label', { ns: AUTOMATION_PLUGIN }],
49
+ icon: 'ph--magic-wand--regular',
50
+ }),
51
+ contributes(DeckCapabilities.ComplementaryPanel, {
52
+ id: 'assistant',
53
+ label: ['assistant panel label', { ns: AUTOMATION_PLUGIN }],
54
+ icon: 'ph--atom--regular',
55
+ }),
56
+ ],
57
+ }),
58
+ defineModule({
59
+ id: `${meta.id}/module/react-surface`,
60
+ activatesOn: Events.Startup,
61
+ activate: ReactSurface,
62
+ }),
63
+ defineModule({
64
+ id: `${meta.id}/module/app-graph-builder`,
65
+ activatesOn: Events.SetupAppGraph,
66
+ activate: AppGraphBuilder,
67
+ }),
68
+ ]);
@@ -0,0 +1,127 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { Capabilities, contributes, type PluginsContext } from '@dxos/app-framework';
6
+ import { ClientCapabilities } from '@dxos/plugin-client';
7
+ import { createExtension, toSignal } from '@dxos/plugin-graph';
8
+ import { memoizeQuery } from '@dxos/plugin-space';
9
+ import { getTypename, parseId, SpaceState } from '@dxos/react-client/echo';
10
+
11
+ import { AUTOMATION_PLUGIN } from '../meta';
12
+
13
+ export default (context: PluginsContext) => {
14
+ const resolve = (typename: string) =>
15
+ context.requestCapabilities(Capabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {};
16
+
17
+ return contributes(Capabilities.AppGraphBuilder, [
18
+ createExtension({
19
+ id: `${AUTOMATION_PLUGIN}/automation-for-subject`,
20
+ resolver: ({ id }) => {
21
+ if (!id.endsWith('~automation')) {
22
+ return;
23
+ }
24
+
25
+ const type = 'orphan-settings-for-subject';
26
+ const icon = 'ph--magic-wand--regular';
27
+
28
+ const client = context.requestCapability(ClientCapabilities.Client);
29
+ const [subjectId] = id.split('~');
30
+ const { spaceId, objectId } = parseId(subjectId);
31
+ const spaces = toSignal(
32
+ (onChange) => client.spaces.subscribe(() => onChange()).unsubscribe,
33
+ () => client.spaces.get(),
34
+ );
35
+ const space = spaces?.find((space) => space.id === spaceId && space.state.get() === SpaceState.SPACE_READY);
36
+ if (!objectId) {
37
+ // TODO(burdon): Ref SPACE_PLUGIN ns.
38
+ const label = space
39
+ ? space.properties.name || ['unnamed space label', { ns: AUTOMATION_PLUGIN }]
40
+ : ['unnamed object settings label', { ns: AUTOMATION_PLUGIN }];
41
+
42
+ // TODO(wittjosiah): Support comments for arbitrary subjects.
43
+ // This is to ensure that the comments panel is not stuck on an old object.
44
+ return {
45
+ id,
46
+ type,
47
+ data: null,
48
+ properties: {
49
+ icon,
50
+ label,
51
+ showResolvedThreads: false,
52
+ object: null,
53
+ space,
54
+ },
55
+ };
56
+ }
57
+
58
+ const [object] = memoizeQuery(space, { id: objectId });
59
+ if (!object || !subjectId) {
60
+ return;
61
+ }
62
+
63
+ const meta = resolve(getTypename(object) ?? '');
64
+ const label = meta.label?.(object) ||
65
+ object.name ||
66
+ meta.placeholder || ['unnamed object settings label', { ns: AUTOMATION_PLUGIN }];
67
+
68
+ return {
69
+ id,
70
+ type,
71
+ data: null,
72
+ properties: {
73
+ icon,
74
+ label,
75
+ object,
76
+ },
77
+ };
78
+ },
79
+ }),
80
+ createExtension({
81
+ id: `${AUTOMATION_PLUGIN}/assistant-for-subject`,
82
+ resolver: ({ id }) => {
83
+ // TODO(Zan): Find util (or make one). Effect schema!!
84
+ if (!id.endsWith('~assistant')) {
85
+ return;
86
+ }
87
+
88
+ const client = context.requestCapability(ClientCapabilities.Client);
89
+ const [subjectId] = id.split('~');
90
+ const { spaceId, objectId } = parseId(subjectId);
91
+ const spaces = toSignal(
92
+ (onChange) => client.spaces.subscribe(() => onChange()).unsubscribe,
93
+ () => client.spaces.get(),
94
+ );
95
+ const space = spaces?.find((space) => space.id === spaceId && space.state.get() === SpaceState.SPACE_READY);
96
+ if (!objectId) {
97
+ // TODO(wittjosiah): Support assistant for arbitrary subjects.
98
+ // This is to ensure that the assistant panel is not stuck on an old object.
99
+ return {
100
+ id,
101
+ type: 'orphan-automation-for-subject',
102
+ data: null,
103
+ properties: {
104
+ icon: 'ph--atom--regular',
105
+ label: ['assistant panel label', { ns: AUTOMATION_PLUGIN }],
106
+ object: null,
107
+ space,
108
+ },
109
+ };
110
+ }
111
+
112
+ const [object] = memoizeQuery(space, { id: objectId });
113
+
114
+ return {
115
+ id,
116
+ type: 'orphan-automation-for-subject',
117
+ data: null,
118
+ properties: {
119
+ icon: 'ph--atom--regular',
120
+ label: ['assistant panel label', { ns: AUTOMATION_PLUGIN }],
121
+ object,
122
+ },
123
+ };
124
+ },
125
+ }),
126
+ ]);
127
+ };
@@ -0,0 +1,8 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { lazy } from '@dxos/app-framework';
6
+
7
+ export const AppGraphBuilder = lazy(() => import('./app-graph-builder'));
8
+ export const ReactSurface = lazy(() => import('./react-surface'));
@@ -0,0 +1,27 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import React from 'react';
6
+
7
+ import { Capabilities, contributes, createSurface } from '@dxos/app-framework';
8
+ import { getSpace, isEchoObject, type ReactiveEchoObject } from '@dxos/react-client/echo';
9
+
10
+ import { AssistantPanel, AutomationPanel } from '../components';
11
+ import { AUTOMATION_PLUGIN } from '../meta';
12
+
13
+ export default () =>
14
+ contributes(Capabilities.ReactSurface, [
15
+ createSurface({
16
+ id: `${AUTOMATION_PLUGIN}/assistant`,
17
+ role: 'complementary--assistant',
18
+ component: ({ data }) => <AssistantPanel subject={data.subject} />,
19
+ }),
20
+ createSurface({
21
+ id: `${AUTOMATION_PLUGIN}/automation`,
22
+ role: 'complementary--automation',
23
+ filter: (data): data is { subject: ReactiveEchoObject<any> } =>
24
+ isEchoObject(data.subject) && !!getSpace(data.subject),
25
+ component: ({ data }) => <AutomationPanel space={getSpace(data.subject)!} object={data.subject} />,
26
+ }),
27
+ ]);