@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
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/AutomationPanel/AutomationPanel.tsx", "../../../src/components/TriggerEditor/TriggerEditor.tsx", "../../../src/components/AutomationPanel/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useState } from 'react';\n\nimport { S } from '@dxos/echo-schema';\nimport {\n FunctionType,\n FunctionTrigger,\n FunctionTriggerSchema,\n TriggerKind,\n type FunctionTriggerType,\n ScriptType,\n} from '@dxos/functions';\nimport { type Client, useClient } from '@dxos/react-client';\nimport { create, Filter, useQuery, type Space, type ReactiveObject, getSpace } from '@dxos/react-client/echo';\nimport { IconButton, Input, useTranslation, Button } from '@dxos/react-ui';\nimport { List } from '@dxos/react-ui-list';\nimport { ghostHover, mx } from '@dxos/react-ui-theme';\n\nimport { AUTOMATION_PLUGIN } from '../../meta';\nimport { TriggerEditor, type TriggerEditorProps } from '../TriggerEditor';\n\nconst grid = 'grid grid-cols-[40px_1fr_32px] min-bs-[2.5rem]';\n\nexport type AutomationPanelProps = {\n space: Space;\n object?: ReactiveObject<any>;\n};\n\n// TODO(burdon): Factor out common layout with ViewEditor.\nexport const AutomationPanel = ({ space, object }: AutomationPanelProps) => {\n const { t } = useTranslation(AUTOMATION_PLUGIN);\n const client = useClient();\n const triggers = useQuery(space, Filter.schema(FunctionTrigger));\n const functions = useQuery(space, Filter.schema(FunctionType));\n const scripts = useQuery(space, Filter.schema(ScriptType));\n\n const [trigger, setTrigger] = useState<FunctionTriggerType>();\n const [selected, setSelected] = useState<FunctionTrigger>();\n\n const handleSelect = (trigger: FunctionTrigger) => {\n const { id: _, ...values } = trigger;\n setTrigger(values);\n setSelected(trigger);\n };\n\n const handleAdd = () => {\n setTrigger(create(FunctionTriggerSchema, { meta: {} }));\n setSelected(undefined);\n };\n\n const handleDelete = (trigger: FunctionTrigger) => {\n space.db.remove(trigger);\n setTrigger(undefined);\n setSelected(undefined);\n };\n\n const handleSave: TriggerEditorProps['onSave'] = (trigger) => {\n if (selected) {\n Object.assign(selected, trigger);\n } else {\n space.db.add(create(FunctionTrigger, trigger));\n }\n\n setTrigger(undefined);\n setSelected(undefined);\n };\n\n const handleCancel: TriggerEditorProps['onCancel'] = () => {\n setTrigger(undefined);\n };\n\n return (\n <div className='flex flex-col w-full divide-y divide-separator overflow-y-auto'>\n <List.Root<FunctionTrigger> items={triggers} isItem={S.is(FunctionTrigger)} getId={(field) => field.id}>\n {({ items: triggers }) => (\n <div role='list' className='flex flex-col w-full'>\n {triggers?.map((trigger) => {\n const copyAction = getCopyAction(client, trigger);\n return (\n <List.Item<FunctionTrigger>\n key={trigger.id}\n item={trigger}\n classNames={mx(grid, ghostHover, 'items-center', 'px-2')}\n >\n <Input.Root>\n <Input.Switch\n checked={trigger.enabled}\n onCheckedChange={(checked) => (trigger.enabled = checked)}\n />\n </Input.Root>\n\n <div className={'flex'}>\n <List.ItemTitle\n classNames='px-1 cursor-pointer w-0 shrink truncate'\n onClick={() => handleSelect(trigger)}\n >\n {getFunctionName(scripts, functions, trigger) ?? '∅'}\n </List.ItemTitle>\n\n {/* TODO: a better way to expose copy action */}\n {copyAction && (\n <Button onClick={() => navigator.clipboard.writeText(copyAction.contentProvider())}>\n {t(copyAction.translationKey)}\n </Button>\n )}\n </div>\n\n <List.ItemDeleteButton onClick={() => handleDelete(trigger)} />\n </List.Item>\n );\n })}\n </div>\n )}\n </List.Root>\n\n {trigger && <TriggerEditor space={space} trigger={trigger} onSave={handleSave} onCancel={handleCancel} />}\n\n {!trigger && (\n <div className='flex p-2 justify-center'>\n <IconButton icon='ph--plus--regular' label={t('new trigger')} onClick={handleAdd} />\n </div>\n )}\n </div>\n );\n};\n\nconst getCopyAction = (client: Client, trigger: FunctionTrigger | undefined) => {\n if (trigger?.spec?.type === TriggerKind.Email) {\n return { translationKey: 'trigger copy email', contentProvider: () => `${getSpace(trigger)!.id}@dxos.network` };\n }\n\n if (trigger?.spec?.type === TriggerKind.Webhook) {\n return { translationKey: 'trigger copy url', contentProvider: () => getWebhookUrl(client, trigger) };\n }\n\n return undefined;\n};\n\nconst getWebhookUrl = (client: Client, trigger: FunctionTrigger) => {\n const spaceId = getSpace(trigger)!.id;\n const edgeUrl = new URL(client.config.values.runtime!.services!.edge!.url!);\n const isSecure = edgeUrl.protocol.startsWith('https') || edgeUrl.protocol.startsWith('wss');\n edgeUrl.protocol = isSecure ? 'https' : 'http';\n return new URL(`/webhook/${spaceId}:${trigger.id}`, edgeUrl).toString();\n};\n\nconst getFunctionName = (scripts: ScriptType[], functions: FunctionType[], trigger: FunctionTriggerType) => {\n const shortId = trigger.function && `${trigger.function?.slice(0, 16)}…`;\n const functionObject = functions.find((fn) => fn.name === trigger.function);\n if (!functionObject) {\n return shortId;\n }\n return scripts.find((s) => functionObject.source?.target?.id === s.id)?.name ?? shortId;\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useState } from 'react';\n\nimport {\n FunctionType,\n FunctionTriggerSchema,\n type FunctionTriggerType,\n type FunctionTrigger,\n ScriptType,\n TriggerKind,\n} from '@dxos/functions';\nimport { Filter, useQuery, type Space } from '@dxos/react-client/echo';\nimport { IconButton, Input, useTranslation } from '@dxos/react-ui';\nimport { Form, SelectInput, TextInput } from '@dxos/react-ui-form';\n\nimport { AUTOMATION_PLUGIN } from '../../meta';\n\nexport type TriggerEditorProps = {\n space: Space;\n trigger: FunctionTriggerType;\n onSave?: (trigger: Omit<FunctionTrigger, 'id'>) => void;\n onCancel?: () => void;\n};\n\nexport const TriggerEditor = ({ space, trigger, onSave, onCancel }: TriggerEditorProps) => {\n const { t } = useTranslation(AUTOMATION_PLUGIN);\n\n const functions = useQuery(space, Filter.schema(FunctionType));\n const scripts = useQuery(space, Filter.schema(ScriptType));\n\n const handleSave = (values: FunctionTriggerType) => {\n onSave?.(values);\n };\n\n return (\n <Form<FunctionTriggerType>\n schema={FunctionTriggerSchema}\n values={trigger}\n onSave={handleSave}\n onCancel={onCancel}\n Custom={{\n ['function' satisfies keyof FunctionTriggerType]: (props) => (\n <SelectInput<FunctionTriggerType>\n {...props}\n options={functions.map((fn) => ({\n value: fn.name,\n label: getFunctionName(scripts, fn),\n }))}\n />\n ),\n ['spec.type' as const]: (props) => (\n <SelectInput<FunctionTriggerType>\n {...props}\n options={Object.values(TriggerKind).map((kind) => ({\n value: kind,\n label: t(`trigger type ${kind}`),\n }))}\n />\n ),\n ['meta' as const]: (props) => {\n const meta = props.getValue('meta')!;\n\n const [newMetaFieldName, setNewMetaFieldName] = useState('');\n\n React.useEffect(() => props.onValueChange('meta', 'object', { ...meta }), []);\n\n return (\n <>\n <div>{props.label}</div>\n {[...Object.keys(meta)].map((key) => {\n const compositeKey: any = `meta.${key}`;\n return (\n <div key={compositeKey} role='none' className='flex items-center mt-2 gap-1'>\n <div role='none' className='flex-1'>\n <TextInput {...props} property={compositeKey} type={'string'} label={key} />\n </div>\n <IconButton\n icon='ph--trash--regular'\n iconOnly\n classNames={'mt-6'}\n label={t('trigger meta remove')}\n onClick={() => {\n const newValues: any = { ...props.getValue('meta') };\n delete newValues[key];\n props.onValueChange('meta', 'object', newValues);\n }}\n />\n </div>\n );\n })}\n <div role='none' className='flex items-center mt-2 gap-1 plb-1'>\n <div role='none' className='flex-1'>\n <Input.Root>\n <Input.TextInput\n placeholder={t('trigger meta prop name placeholder')}\n value={newMetaFieldName}\n onChange={(event) => setNewMetaFieldName(event.target.value)}\n />\n </Input.Root>\n </div>\n <IconButton\n icon='ph--plus--regular'\n iconOnly\n label={t('trigger meta add')}\n onClick={() => {\n if (newMetaFieldName.length) {\n const meta = props.getValue('meta') ?? {};\n const metaWithNewProp = { ...meta, [newMetaFieldName]: '' };\n setNewMetaFieldName('');\n props.onValueChange('meta', 'object', metaWithNewProp);\n }\n }}\n />\n </div>\n </>\n );\n },\n }}\n />\n );\n};\n\nconst getFunctionName = (scripts: ScriptType[], fn: FunctionType) => {\n return scripts.find((s) => fn.source?.target?.id === s.id)?.name ?? fn.name;\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { AutomationPanel } from './AutomationPanel';\n\nexport default AutomationPanel;\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "useState", "S", "FunctionType", "FunctionTrigger", "FunctionTriggerSchema", "TriggerKind", "ScriptType", "useClient", "create", "Filter", "useQuery", "getSpace", "IconButton", "Input", "useTranslation", "Button", "List", "ghostHover", "mx", "React", "useState", "FunctionType", "FunctionTriggerSchema", "ScriptType", "TriggerKind", "Filter", "useQuery", "IconButton", "Input", "useTranslation", "Form", "SelectInput", "TextInput", "TriggerEditor", "space", "trigger", "onSave", "onCancel", "t", "useTranslation", "AUTOMATION_PLUGIN", "functions", "useQuery", "Filter", "schema", "FunctionType", "scripts", "ScriptType", "handleSave", "values", "Form", "FunctionTriggerSchema", "Custom", "props", "SelectInput", "options", "map", "fn", "value", "name", "label", "getFunctionName", "Object", "TriggerKind", "kind", "meta", "getValue", "newMetaFieldName", "setNewMetaFieldName", "useState", "React", "useEffect", "onValueChange", "div", "keys", "key", "compositeKey", "role", "className", "TextInput", "property", "type", "IconButton", "icon", "iconOnly", "classNames", "onClick", "newValues", "Input", "Root", "placeholder", "onChange", "event", "target", "length", "metaWithNewProp", "find", "s", "source", "id", "grid", "AutomationPanel", "space", "object", "t", "useTranslation", "AUTOMATION_PLUGIN", "client", "useClient", "triggers", "useQuery", "Filter", "schema", "FunctionTrigger", "functions", "FunctionType", "scripts", "ScriptType", "trigger", "setTrigger", "useState", "selected", "setSelected", "handleSelect", "id", "_", "values", "handleAdd", "create", "FunctionTriggerSchema", "meta", "undefined", "handleDelete", "db", "remove", "handleSave", "Object", "assign", "add", "handleCancel", "React", "div", "className", "List", "Root", "items", "isItem", "S", "is", "getId", "field", "role", "map", "copyAction", "getCopyAction", "Item", "key", "item", "classNames", "mx", "ghostHover", "Input", "Switch", "checked", "enabled", "onCheckedChange", "ItemTitle", "onClick", "getFunctionName", "Button", "navigator", "clipboard", "writeText", "contentProvider", "translationKey", "ItemDeleteButton", "TriggerEditor", "onSave", "onCancel", "IconButton", "icon", "label", "spec", "type", "TriggerKind", "Email", "getSpace", "Webhook", "getWebhookUrl", "spaceId", "edgeUrl", "URL", "config", "runtime", "services", "edge", "url", "isSecure", "protocol", "startsWith", "toString", "shortId", "function", "slice", "functionObject", "find", "fn", "name", "s", "source", "target", "AutomationPanel"]
7
+ }
@@ -0,0 +1,132 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ AUTOMATION_PLUGIN
4
+ } from "./chunk-X3LPRWIL.mjs";
5
+
6
+ // packages/plugins/experimental/plugin-automation/src/capabilities/app-graph-builder.ts
7
+ import { Capabilities, contributes } from "@dxos/app-framework";
8
+ import { ClientCapabilities } from "@dxos/plugin-client";
9
+ import { createExtension, toSignal } from "@dxos/plugin-graph";
10
+ import { memoizeQuery } from "@dxos/plugin-space";
11
+ import { getTypename, parseId, SpaceState } from "@dxos/react-client/echo";
12
+ var app_graph_builder_default = (context) => {
13
+ const resolve = (typename) => context.requestCapabilities(Capabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {};
14
+ return contributes(Capabilities.AppGraphBuilder, [
15
+ createExtension({
16
+ id: `${AUTOMATION_PLUGIN}/automation-for-subject`,
17
+ resolver: ({ id }) => {
18
+ if (!id.endsWith("~automation")) {
19
+ return;
20
+ }
21
+ const type = "orphan-settings-for-subject";
22
+ const icon = "ph--magic-wand--regular";
23
+ const client = context.requestCapability(ClientCapabilities.Client);
24
+ const [subjectId] = id.split("~");
25
+ const { spaceId, objectId } = parseId(subjectId);
26
+ const spaces = toSignal((onChange) => client.spaces.subscribe(() => onChange()).unsubscribe, () => client.spaces.get());
27
+ const space = spaces?.find((space2) => space2.id === spaceId && space2.state.get() === SpaceState.SPACE_READY);
28
+ if (!objectId) {
29
+ const label2 = space ? space.properties.name || [
30
+ "unnamed space label",
31
+ {
32
+ ns: AUTOMATION_PLUGIN
33
+ }
34
+ ] : [
35
+ "unnamed object settings label",
36
+ {
37
+ ns: AUTOMATION_PLUGIN
38
+ }
39
+ ];
40
+ return {
41
+ id,
42
+ type,
43
+ data: null,
44
+ properties: {
45
+ icon,
46
+ label: label2,
47
+ showResolvedThreads: false,
48
+ object: null,
49
+ space
50
+ }
51
+ };
52
+ }
53
+ const [object] = memoizeQuery(space, {
54
+ id: objectId
55
+ });
56
+ if (!object || !subjectId) {
57
+ return;
58
+ }
59
+ const meta = resolve(getTypename(object) ?? "");
60
+ const label = meta.label?.(object) || object.name || meta.placeholder || [
61
+ "unnamed object settings label",
62
+ {
63
+ ns: AUTOMATION_PLUGIN
64
+ }
65
+ ];
66
+ return {
67
+ id,
68
+ type,
69
+ data: null,
70
+ properties: {
71
+ icon,
72
+ label,
73
+ object
74
+ }
75
+ };
76
+ }
77
+ }),
78
+ createExtension({
79
+ id: `${AUTOMATION_PLUGIN}/assistant-for-subject`,
80
+ resolver: ({ id }) => {
81
+ if (!id.endsWith("~assistant")) {
82
+ return;
83
+ }
84
+ const client = context.requestCapability(ClientCapabilities.Client);
85
+ const [subjectId] = id.split("~");
86
+ const { spaceId, objectId } = parseId(subjectId);
87
+ const spaces = toSignal((onChange) => client.spaces.subscribe(() => onChange()).unsubscribe, () => client.spaces.get());
88
+ const space = spaces?.find((space2) => space2.id === spaceId && space2.state.get() === SpaceState.SPACE_READY);
89
+ if (!objectId) {
90
+ return {
91
+ id,
92
+ type: "orphan-automation-for-subject",
93
+ data: null,
94
+ properties: {
95
+ icon: "ph--atom--regular",
96
+ label: [
97
+ "assistant panel label",
98
+ {
99
+ ns: AUTOMATION_PLUGIN
100
+ }
101
+ ],
102
+ object: null,
103
+ space
104
+ }
105
+ };
106
+ }
107
+ const [object] = memoizeQuery(space, {
108
+ id: objectId
109
+ });
110
+ return {
111
+ id,
112
+ type: "orphan-automation-for-subject",
113
+ data: null,
114
+ properties: {
115
+ icon: "ph--atom--regular",
116
+ label: [
117
+ "assistant panel label",
118
+ {
119
+ ns: AUTOMATION_PLUGIN
120
+ }
121
+ ],
122
+ object
123
+ }
124
+ };
125
+ }
126
+ })
127
+ ]);
128
+ };
129
+ export {
130
+ app_graph_builder_default as default
131
+ };
132
+ //# sourceMappingURL=app-graph-builder-5N7OK23B.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/app-graph-builder.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes, type PluginsContext } from '@dxos/app-framework';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { createExtension, toSignal } from '@dxos/plugin-graph';\nimport { memoizeQuery } from '@dxos/plugin-space';\nimport { getTypename, parseId, SpaceState } from '@dxos/react-client/echo';\n\nimport { AUTOMATION_PLUGIN } from '../meta';\n\nexport default (context: PluginsContext) => {\n const resolve = (typename: string) =>\n context.requestCapabilities(Capabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {};\n\n return contributes(Capabilities.AppGraphBuilder, [\n createExtension({\n id: `${AUTOMATION_PLUGIN}/automation-for-subject`,\n resolver: ({ id }) => {\n if (!id.endsWith('~automation')) {\n return;\n }\n\n const type = 'orphan-settings-for-subject';\n const icon = 'ph--magic-wand--regular';\n\n const client = context.requestCapability(ClientCapabilities.Client);\n const [subjectId] = id.split('~');\n const { spaceId, objectId } = parseId(subjectId);\n const spaces = toSignal(\n (onChange) => client.spaces.subscribe(() => onChange()).unsubscribe,\n () => client.spaces.get(),\n );\n const space = spaces?.find((space) => space.id === spaceId && space.state.get() === SpaceState.SPACE_READY);\n if (!objectId) {\n // TODO(burdon): Ref SPACE_PLUGIN ns.\n const label = space\n ? space.properties.name || ['unnamed space label', { ns: AUTOMATION_PLUGIN }]\n : ['unnamed object settings label', { ns: AUTOMATION_PLUGIN }];\n\n // TODO(wittjosiah): Support comments for arbitrary subjects.\n // This is to ensure that the comments panel is not stuck on an old object.\n return {\n id,\n type,\n data: null,\n properties: {\n icon,\n label,\n showResolvedThreads: false,\n object: null,\n space,\n },\n };\n }\n\n const [object] = memoizeQuery(space, { id: objectId });\n if (!object || !subjectId) {\n return;\n }\n\n const meta = resolve(getTypename(object) ?? '');\n const label = meta.label?.(object) ||\n object.name ||\n meta.placeholder || ['unnamed object settings label', { ns: AUTOMATION_PLUGIN }];\n\n return {\n id,\n type,\n data: null,\n properties: {\n icon,\n label,\n object,\n },\n };\n },\n }),\n createExtension({\n id: `${AUTOMATION_PLUGIN}/assistant-for-subject`,\n resolver: ({ id }) => {\n // TODO(Zan): Find util (or make one). Effect schema!!\n if (!id.endsWith('~assistant')) {\n return;\n }\n\n const client = context.requestCapability(ClientCapabilities.Client);\n const [subjectId] = id.split('~');\n const { spaceId, objectId } = parseId(subjectId);\n const spaces = toSignal(\n (onChange) => client.spaces.subscribe(() => onChange()).unsubscribe,\n () => client.spaces.get(),\n );\n const space = spaces?.find((space) => space.id === spaceId && space.state.get() === SpaceState.SPACE_READY);\n if (!objectId) {\n // TODO(wittjosiah): Support assistant for arbitrary subjects.\n // This is to ensure that the assistant panel is not stuck on an old object.\n return {\n id,\n type: 'orphan-automation-for-subject',\n data: null,\n properties: {\n icon: 'ph--atom--regular',\n label: ['assistant panel label', { ns: AUTOMATION_PLUGIN }],\n object: null,\n space,\n },\n };\n }\n\n const [object] = memoizeQuery(space, { id: objectId });\n\n return {\n id,\n type: 'orphan-automation-for-subject',\n data: null,\n properties: {\n icon: 'ph--atom--regular',\n label: ['assistant panel label', { ns: AUTOMATION_PLUGIN }],\n object,\n },\n };\n },\n }),\n ]);\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["Capabilities", "contributes", "ClientCapabilities", "createExtension", "toSignal", "memoizeQuery", "getTypename", "parseId", "SpaceState", "context", "resolve", "typename", "requestCapabilities", "Capabilities", "Metadata", "find", "id", "metadata", "contributes", "AppGraphBuilder", "createExtension", "AUTOMATION_PLUGIN", "resolver", "endsWith", "type", "icon", "client", "requestCapability", "ClientCapabilities", "Client", "subjectId", "split", "spaceId", "objectId", "parseId", "spaces", "toSignal", "onChange", "subscribe", "unsubscribe", "get", "space", "state", "SpaceState", "SPACE_READY", "label", "properties", "name", "ns", "data", "showResolvedThreads", "object", "memoizeQuery", "meta", "getTypename", "placeholder"]
7
+ }
@@ -36,16 +36,10 @@ var ChainType = class extends TypedObject({
36
36
  }) {
37
37
  };
38
38
 
39
- // packages/plugins/experimental/plugin-automation/src/types/types.ts
40
- var AutomationAction;
41
- /* @__PURE__ */ (function(AutomationAction2) {
42
- })(AutomationAction || (AutomationAction = {}));
43
-
44
39
  export {
45
40
  ChainInputType,
46
41
  ChainInputSchema,
47
42
  ChainPromptType,
48
- ChainType,
49
- AutomationAction
43
+ ChainType
50
44
  };
51
- //# sourceMappingURL=chunk-GCHXTXVT.mjs.map
45
+ //# sourceMappingURL=chunk-GIAYUM5I.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../src/types/schema.ts", "../../../src/types/types.ts"],
4
- "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { Ref, S, TypedObject } from '@dxos/echo-schema';\n\n// TODO(burdon): Change to S.Literal (and discriminated union).\nexport enum ChainInputType {\n VALUE = 0,\n PASS_THROUGH = 1,\n RETRIEVER = 2,\n FUNCTION = 3,\n QUERY = 4,\n RESOLVER = 5,\n CONTEXT = 6,\n SCHEMA = 7,\n}\n\nexport const ChainInputSchema = S.mutable(\n S.Struct({\n name: S.String,\n type: S.optional(S.Enums(ChainInputType)),\n value: S.optional(S.String),\n }),\n);\n\nexport type ChainInput = S.Schema.Type<typeof ChainInputSchema>;\n\nexport class ChainPromptType extends TypedObject({ typename: 'dxos.org/type/ChainPrompt', version: '0.1.0' })({\n command: S.optional(S.String),\n template: S.String,\n inputs: S.optional(S.mutable(S.Array(ChainInputSchema))),\n}) {}\n\nexport class ChainType extends TypedObject({ typename: 'dxos.org/type/Chain', version: '0.1.0' })({\n name: S.optional(S.String),\n prompts: S.optional(S.mutable(S.Array(Ref(ChainPromptType)))),\n}) {}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport type {\n GraphBuilderProvides,\n IntentResolverProvides,\n MetadataRecordsProvides,\n SurfaceProvides,\n TranslationsProvides,\n} from '@dxos/app-framework';\nimport { type PanelProvides } from '@dxos/plugin-deck/types';\nimport { type SchemaProvides } from '@dxos/plugin-space';\n\n// import { AUTOMATION_PLUGIN } from '../meta';\n\n// const AUTOMATION_ACTION = `${AUTOMATION_PLUGIN}/action`;\n\nexport enum AutomationAction {}\n\nexport type AutomationPluginProvides = SurfaceProvides &\n IntentResolverProvides &\n MetadataRecordsProvides &\n TranslationsProvides &\n GraphBuilderProvides &\n SchemaProvides &\n PanelProvides;\n"],
5
- "mappings": ";;;AAIA,SAASA,KAAKC,GAAGC,mBAAmB;;UAGxBC,iBAAAA;;;;;;;;;GAAAA,mBAAAA,iBAAAA,CAAAA,EAAAA;AAWL,IAAMC,mBAAmBC,EAAEC,QAChCD,EAAEE,OAAO;EACPC,MAAMH,EAAEI;EACRC,MAAML,EAAEM,SAASN,EAAEO,MAAMT,cAAAA,CAAAA;EACzBU,OAAOR,EAAEM,SAASN,EAAEI,MAAM;AAC5B,CAAA,CAAA;AAKK,IAAMK,kBAAN,cAA8BC,YAAY;EAAEC,UAAU;EAA6BC,SAAS;AAAQ,CAAA,EAAG;EAC5GC,SAASb,EAAEM,SAASN,EAAEI,MAAM;EAC5BU,UAAUd,EAAEI;EACZW,QAAQf,EAAEM,SAASN,EAAEC,QAAQD,EAAEgB,MAAMjB,gBAAAA,CAAAA,CAAAA;AACvC,CAAA,EAAA;AAAI;AAEG,IAAMkB,YAAN,cAAwBP,YAAY;EAAEC,UAAU;EAAuBC,SAAS;AAAQ,CAAA,EAAG;EAChGT,MAAMH,EAAEM,SAASN,EAAEI,MAAM;EACzBc,SAASlB,EAAEM,SAASN,EAAEC,QAAQD,EAAEgB,MAAMG,IAAIV,eAAAA,CAAAA,CAAAA,CAAAA;AAC5C,CAAA,EAAA;AAAI;;;;0BCnBQW,mBAAAA;AAAAA,GAAAA,qBAAAA,mBAAAA,CAAAA,EAAAA;",
6
- "names": ["Ref", "S", "TypedObject", "ChainInputType", "ChainInputSchema", "S", "mutable", "Struct", "name", "String", "type", "optional", "Enums", "value", "ChainPromptType", "TypedObject", "typename", "version", "command", "template", "inputs", "Array", "ChainType", "prompts", "Ref", "AutomationAction"]
3
+ "sources": ["../../../src/types/schema.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { Ref, S, TypedObject } from '@dxos/echo-schema';\n\n// TODO(burdon): Change to S.Literal (and discriminated union).\nexport enum ChainInputType {\n VALUE = 0,\n PASS_THROUGH = 1,\n RETRIEVER = 2,\n FUNCTION = 3,\n QUERY = 4,\n RESOLVER = 5,\n CONTEXT = 6,\n SCHEMA = 7,\n}\n\nexport const ChainInputSchema = S.mutable(\n S.Struct({\n name: S.String,\n type: S.optional(S.Enums(ChainInputType)),\n value: S.optional(S.String),\n }),\n);\n\nexport type ChainInput = S.Schema.Type<typeof ChainInputSchema>;\n\nexport class ChainPromptType extends TypedObject({ typename: 'dxos.org/type/ChainPrompt', version: '0.1.0' })({\n command: S.optional(S.String),\n template: S.String,\n inputs: S.optional(S.mutable(S.Array(ChainInputSchema))),\n}) {}\n\nexport class ChainType extends TypedObject({ typename: 'dxos.org/type/Chain', version: '0.1.0' })({\n name: S.optional(S.String),\n prompts: S.optional(S.mutable(S.Array(Ref(ChainPromptType)))),\n}) {}\n"],
5
+ "mappings": ";;;AAIA,SAASA,KAAKC,GAAGC,mBAAmB;;UAGxBC,iBAAAA;;;;;;;;;GAAAA,mBAAAA,iBAAAA,CAAAA,EAAAA;AAWL,IAAMC,mBAAmBC,EAAEC,QAChCD,EAAEE,OAAO;EACPC,MAAMH,EAAEI;EACRC,MAAML,EAAEM,SAASN,EAAEO,MAAMT,cAAAA,CAAAA;EACzBU,OAAOR,EAAEM,SAASN,EAAEI,MAAM;AAC5B,CAAA,CAAA;AAKK,IAAMK,kBAAN,cAA8BC,YAAY;EAAEC,UAAU;EAA6BC,SAAS;AAAQ,CAAA,EAAG;EAC5GC,SAASb,EAAEM,SAASN,EAAEI,MAAM;EAC5BU,UAAUd,EAAEI;EACZW,QAAQf,EAAEM,SAASN,EAAEC,QAAQD,EAAEgB,MAAMjB,gBAAAA,CAAAA,CAAAA;AACvC,CAAA,EAAA;AAAI;AAEG,IAAMkB,YAAN,cAAwBP,YAAY;EAAEC,UAAU;EAAuBC,SAAS;AAAQ,CAAA,EAAG;EAChGT,MAAMH,EAAEM,SAASN,EAAEI,MAAM;EACzBc,SAASlB,EAAEM,SAASN,EAAEC,QAAQD,EAAEgB,MAAMG,IAAIV,eAAAA,CAAAA,CAAAA,CAAAA;AAC5C,CAAA,EAAA;AAAI;",
6
+ "names": ["Ref", "S", "TypedObject", "ChainInputType", "ChainInputSchema", "S", "mutable", "Struct", "name", "String", "type", "optional", "Enums", "value", "ChainPromptType", "TypedObject", "typename", "version", "command", "template", "inputs", "Array", "ChainType", "prompts", "Ref"]
7
7
  }
@@ -2,7 +2,7 @@ import { createRequire } from 'node:module';const require = createRequire(import
2
2
 
3
3
  // packages/plugins/experimental/plugin-automation/src/meta.ts
4
4
  var AUTOMATION_PLUGIN = "dxos.org/plugin/automation";
5
- var meta_default = {
5
+ var meta = {
6
6
  id: AUTOMATION_PLUGIN,
7
7
  name: "Automation",
8
8
  description: "Automation workflows.",
@@ -15,6 +15,6 @@ var meta_default = {
15
15
 
16
16
  export {
17
17
  AUTOMATION_PLUGIN,
18
- meta_default
18
+ meta
19
19
  };
20
- //# sourceMappingURL=chunk-HNOBZHWK.mjs.map
20
+ //# sourceMappingURL=chunk-X3LPRWIL.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/meta.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type PluginMeta } from '@dxos/app-framework';\n\nexport const AUTOMATION_PLUGIN = 'dxos.org/plugin/automation';\n\nexport const meta = {\n id: AUTOMATION_PLUGIN,\n name: 'Automation',\n description: 'Automation workflows.',\n icon: 'ph--magic-wand--regular',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/experimental/plugin-automation',\n tags: ['experimental'],\n} satisfies PluginMeta;\n"],
5
+ "mappings": ";;;AAMO,IAAMA,oBAAoB;AAE1B,IAAMC,OAAO;EAClBC,IAAIF;EACJG,MAAM;EACNC,aAAa;EACbC,MAAM;EACNC,QAAQ;EACRC,MAAM;IAAC;;AACT;",
6
+ "names": ["AUTOMATION_PLUGIN", "meta", "id", "name", "description", "icon", "source", "tags"]
7
+ }
@@ -0,0 +1,12 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+
3
+ // packages/plugins/experimental/plugin-automation/src/components/index.ts
4
+ import { lazy } from "react";
5
+ var AssistantPanel = lazy(() => import("./AssistantPanel-DDCQHBJX.mjs"));
6
+ var AutomationPanel = lazy(() => import("./AutomationPanel-R3D6CRF5.mjs"));
7
+
8
+ export {
9
+ AssistantPanel,
10
+ AutomationPanel
11
+ };
12
+ //# sourceMappingURL=chunk-XW7TEQA3.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { lazy } from 'react';\n\nexport const AssistantPanel = lazy(() => import('./AssistantPanel'));\nexport const AutomationPanel = lazy(() => import('./AutomationPanel'));\n"],
5
+ "mappings": ";;;AAIA,SAASA,YAAY;AAEd,IAAMC,iBAAiBC,KAAK,MAAM,OAAO,+BAAA,CAAA;AACzC,IAAMC,kBAAkBD,KAAK,MAAM,OAAO,gCAAA,CAAA;",
6
+ "names": ["lazy", "AssistantPanel", "lazy", "AutomationPanel"]
7
+ }