@dxos/plugin-pipeline 0.8.4-main.c351d160a8 → 0.8.4-main.d9fc60f731

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 (148) hide show
  1. package/LICENSE +102 -5
  2. package/PLUGIN.mdl +345 -0
  3. package/README.md +1 -1
  4. package/dist/lib/neutral/PipelineArticle-6JIVXMYF.mjs +69 -0
  5. package/dist/lib/neutral/PipelineArticle-6JIVXMYF.mjs.map +7 -0
  6. package/dist/lib/neutral/PipelinePlugin.mjs +38 -0
  7. package/dist/lib/neutral/PipelinePlugin.mjs.map +7 -0
  8. package/dist/lib/neutral/PipelinePlugin.node.mjs +21 -0
  9. package/dist/lib/neutral/PipelinePlugin.node.mjs.map +7 -0
  10. package/dist/lib/neutral/PipelinePlugin.workerd.mjs +16 -0
  11. package/dist/lib/neutral/PipelinePlugin.workerd.mjs.map +7 -0
  12. package/dist/lib/{browser/PipelineObjectSettings-QFMIKJH5.mjs → neutral/PipelineProperties-JXY3AVOY.mjs} +54 -65
  13. package/dist/lib/neutral/PipelineProperties-JXY3AVOY.mjs.map +7 -0
  14. package/dist/lib/neutral/app-graph-builder-ZLGRWRJU.mjs +44 -0
  15. package/dist/lib/neutral/app-graph-builder-ZLGRWRJU.mjs.map +7 -0
  16. package/dist/lib/neutral/capabilities/index.mjs +11 -0
  17. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  18. package/dist/lib/neutral/chunk-CYXDAAKN.mjs +35 -0
  19. package/dist/lib/neutral/chunk-CYXDAAKN.mjs.map +7 -0
  20. package/dist/lib/neutral/components/index.mjs +203 -0
  21. package/dist/lib/neutral/components/index.mjs.map +7 -0
  22. package/dist/lib/neutral/containers/index.mjs +9 -0
  23. package/dist/lib/neutral/containers/index.mjs.map +7 -0
  24. package/dist/lib/neutral/create-object-6Z4MMGX4.mjs +26 -0
  25. package/dist/lib/neutral/create-object-6Z4MMGX4.mjs.map +7 -0
  26. package/dist/lib/neutral/hooks/index.mjs +70 -0
  27. package/dist/lib/neutral/hooks/index.mjs.map +7 -0
  28. package/dist/lib/neutral/index.mjs +7 -0
  29. package/dist/lib/neutral/meta.json +1 -0
  30. package/dist/lib/neutral/meta.mjs +7 -0
  31. package/dist/lib/neutral/meta.mjs.map +7 -0
  32. package/dist/lib/neutral/plugin.mjs +11 -0
  33. package/dist/lib/neutral/plugin.mjs.map +7 -0
  34. package/dist/lib/{browser/react-surface-7PY3UOEA.mjs → neutral/react-surface-QG7QSZSS.mjs} +12 -24
  35. package/dist/lib/neutral/react-surface-QG7QSZSS.mjs.map +7 -0
  36. package/dist/lib/neutral/translations.mjs +39 -0
  37. package/dist/lib/neutral/translations.mjs.map +7 -0
  38. package/dist/lib/neutral/types/index.mjs.map +7 -0
  39. package/dist/types/src/PipelinePlugin.d.ts +1 -0
  40. package/dist/types/src/PipelinePlugin.d.ts.map +1 -1
  41. package/dist/types/src/PipelinePlugin.node.d.ts +4 -0
  42. package/dist/types/src/PipelinePlugin.node.d.ts.map +1 -0
  43. package/dist/types/src/PipelinePlugin.test.d.ts +2 -0
  44. package/dist/types/src/PipelinePlugin.test.d.ts.map +1 -0
  45. package/dist/types/src/PipelinePlugin.workerd.d.ts +4 -0
  46. package/dist/types/src/PipelinePlugin.workerd.d.ts.map +1 -0
  47. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -0
  48. package/dist/types/src/capabilities/create-object.d.ts +11 -0
  49. package/dist/types/src/capabilities/create-object.d.ts.map +1 -0
  50. package/dist/types/src/capabilities/index.d.ts +9 -3
  51. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  52. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
  53. package/dist/types/src/components/PipelineComponent/PipelineColumn.d.ts +4 -4
  54. package/dist/types/src/components/PipelineComponent/PipelineColumn.d.ts.map +1 -1
  55. package/dist/types/src/components/PipelineComponent/PipelineComponent.d.ts +22 -16
  56. package/dist/types/src/components/PipelineComponent/PipelineComponent.d.ts.map +1 -1
  57. package/dist/types/src/components/PipelineComponent/PipelineComponent.stories.d.ts +44 -25
  58. package/dist/types/src/components/PipelineComponent/PipelineComponent.stories.d.ts.map +1 -1
  59. package/dist/types/src/containers/PipelineArticle/PipelineArticle.d.ts +6 -0
  60. package/dist/types/src/containers/PipelineArticle/PipelineArticle.d.ts.map +1 -0
  61. package/dist/types/src/containers/PipelineArticle/PipelineArticle.stories.d.ts +76 -0
  62. package/dist/types/src/containers/PipelineArticle/PipelineArticle.stories.d.ts.map +1 -0
  63. package/dist/types/src/containers/PipelineArticle/index.d.ts +2 -0
  64. package/dist/types/src/containers/PipelineArticle/index.d.ts.map +1 -0
  65. package/dist/types/src/containers/PipelineProperties/PipelineProperties.d.ts +11 -0
  66. package/dist/types/src/containers/PipelineProperties/PipelineProperties.d.ts.map +1 -0
  67. package/dist/types/src/containers/PipelineProperties/index.d.ts +2 -0
  68. package/dist/types/src/containers/PipelineProperties/index.d.ts.map +1 -0
  69. package/dist/types/src/containers/index.d.ts +2 -2
  70. package/dist/types/src/containers/index.d.ts.map +1 -1
  71. package/dist/types/src/hooks/usePipelineBoardModel.d.ts.map +1 -1
  72. package/dist/types/src/index.d.ts +0 -1
  73. package/dist/types/src/index.d.ts.map +1 -1
  74. package/dist/types/src/meta.d.ts +1 -1
  75. package/dist/types/src/meta.d.ts.map +1 -1
  76. package/dist/types/src/plugin.d.ts +3 -0
  77. package/dist/types/src/plugin.d.ts.map +1 -0
  78. package/dist/types/src/templates/research.d.ts.map +1 -1
  79. package/dist/types/src/translations.d.ts +44 -26
  80. package/dist/types/src/translations.d.ts.map +1 -1
  81. package/dist/types/tsconfig.tsbuildinfo +1 -1
  82. package/package.json +103 -58
  83. package/src/PipelinePlugin.node.ts +19 -0
  84. package/src/PipelinePlugin.test.ts +27 -0
  85. package/src/PipelinePlugin.tsx +12 -19
  86. package/src/PipelinePlugin.workerd.ts +16 -0
  87. package/src/capabilities/app-graph-builder.ts +40 -0
  88. package/src/capabilities/create-object.ts +30 -0
  89. package/src/capabilities/index.ts +5 -3
  90. package/src/capabilities/{react-surface/react-surface.tsx → react-surface.tsx} +13 -15
  91. package/src/components/PipelineComponent/PipelineColumn.tsx +69 -55
  92. package/src/components/PipelineComponent/PipelineComponent.stories.tsx +18 -20
  93. package/src/components/PipelineComponent/PipelineComponent.tsx +22 -13
  94. package/src/containers/{PipelineContainer/PipelineContainer.stories.tsx → PipelineArticle/PipelineArticle.stories.tsx} +43 -47
  95. package/src/containers/{PipelineContainer/PipelineContainer.tsx → PipelineArticle/PipelineArticle.tsx} +12 -14
  96. package/src/containers/PipelineArticle/index.ts +5 -0
  97. package/src/containers/{PipelineObjectSettings/PipelineObjectSettings.tsx → PipelineProperties/PipelineProperties.tsx} +66 -70
  98. package/src/containers/PipelineProperties/index.ts +5 -0
  99. package/src/containers/index.ts +2 -2
  100. package/src/hooks/usePipelineBoardModel.ts +6 -6
  101. package/src/index.ts +0 -1
  102. package/src/meta.ts +19 -6
  103. package/src/plugin.ts +9 -0
  104. package/src/templates/research.ts +2 -2
  105. package/src/translations.ts +24 -23
  106. package/src/vite-env.d.ts +10 -0
  107. package/dist/lib/browser/PipelineContainer-V5KGYEQR.mjs +0 -318
  108. package/dist/lib/browser/PipelineContainer-V5KGYEQR.mjs.map +0 -7
  109. package/dist/lib/browser/PipelineObjectSettings-QFMIKJH5.mjs.map +0 -7
  110. package/dist/lib/browser/app-graph-builder-QQKBLYFD.mjs +0 -56
  111. package/dist/lib/browser/app-graph-builder-QQKBLYFD.mjs.map +0 -7
  112. package/dist/lib/browser/chunk-3A235GUD.mjs +0 -21
  113. package/dist/lib/browser/chunk-3A235GUD.mjs.map +0 -7
  114. package/dist/lib/browser/index.mjs +0 -87
  115. package/dist/lib/browser/index.mjs.map +0 -7
  116. package/dist/lib/browser/meta.json +0 -1
  117. package/dist/lib/browser/react-surface-7PY3UOEA.mjs.map +0 -7
  118. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +0 -1
  119. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +0 -3
  120. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +0 -1
  121. package/dist/types/src/capabilities/operation-resolver/index.d.ts +0 -2
  122. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +0 -1
  123. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +0 -5
  124. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +0 -1
  125. package/dist/types/src/capabilities/react-surface/index.d.ts +0 -3
  126. package/dist/types/src/capabilities/react-surface/index.d.ts.map +0 -1
  127. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +0 -1
  128. package/dist/types/src/containers/PipelineContainer/PipelineContainer.d.ts +0 -6
  129. package/dist/types/src/containers/PipelineContainer/PipelineContainer.d.ts.map +0 -1
  130. package/dist/types/src/containers/PipelineContainer/PipelineContainer.stories.d.ts +0 -57
  131. package/dist/types/src/containers/PipelineContainer/PipelineContainer.stories.d.ts.map +0 -1
  132. package/dist/types/src/containers/PipelineContainer/index.d.ts +0 -3
  133. package/dist/types/src/containers/PipelineContainer/index.d.ts.map +0 -1
  134. package/dist/types/src/containers/PipelineObjectSettings/PipelineObjectSettings.d.ts +0 -11
  135. package/dist/types/src/containers/PipelineObjectSettings/PipelineObjectSettings.d.ts.map +0 -1
  136. package/dist/types/src/containers/PipelineObjectSettings/index.d.ts +0 -3
  137. package/dist/types/src/containers/PipelineObjectSettings/index.d.ts.map +0 -1
  138. package/src/capabilities/app-graph-builder/app-graph-builder.ts +0 -49
  139. package/src/capabilities/app-graph-builder/index.ts +0 -7
  140. package/src/capabilities/operation-resolver/index.ts +0 -5
  141. package/src/capabilities/operation-resolver/operation-resolver.ts +0 -9
  142. package/src/capabilities/react-surface/index.ts +0 -7
  143. package/src/containers/PipelineContainer/index.ts +0 -7
  144. package/src/containers/PipelineObjectSettings/index.ts +0 -7
  145. /package/dist/lib/{browser/types → neutral}/index.mjs.map +0 -0
  146. /package/dist/lib/{browser → neutral}/types/index.mjs +0 -0
  147. /package/dist/types/src/capabilities/{app-graph-builder/app-graph-builder.d.ts → app-graph-builder.d.ts} +0 -0
  148. /package/dist/types/src/capabilities/{react-surface/react-surface.d.ts → react-surface.d.ts} +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/PipelinePlugin.node.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Plugin } from '@dxos/app-framework';\nimport { AppPlugin } from '@dxos/app-toolkit';\nimport { Pipeline } from '@dxos/types';\n\nimport { AppGraphBuilder, CreateObject } from '#capabilities';\nimport { meta } from '#meta';\n\nexport const PipelinePlugin = Plugin.define(meta).pipe(\n AppPlugin.addAppGraphModule({ activate: AppGraphBuilder }),\n AppPlugin.addCreateObjectModule({ activate: CreateObject }),\n AppPlugin.addSchemaModule({ schema: [Pipeline.Pipeline] }),\n Plugin.make,\n);\n\nexport default PipelinePlugin;\n"],
5
+ "mappings": ";AAIA,SAASA,cAAc;AACvB,SAASC,iBAAiB;AAC1B,SAASC,gBAAgB;AAEzB,SAASC,iBAAiBC,oBAAoB;AAC9C,SAASC,YAAY;AAEd,IAAMC,iBAAiBN,OAAOO,OAAOF,IAAAA,EAAMG,KAChDP,UAAUQ,kBAAkB;EAAEC,UAAUP;AAAgB,CAAA,GACxDF,UAAUU,sBAAsB;EAAED,UAAUN;AAAa,CAAA,GACzDH,UAAUW,gBAAgB;EAAEC,QAAQ;IAACX,SAASA;;AAAU,CAAA,GACxDF,OAAOc,IAAI;AAGb,IAAA,8BAAeR;",
6
+ "names": ["Plugin", "AppPlugin", "Pipeline", "AppGraphBuilder", "CreateObject", "meta", "PipelinePlugin", "define", "pipe", "addAppGraphModule", "activate", "addCreateObjectModule", "addSchemaModule", "schema", "make"]
7
+ }
@@ -0,0 +1,16 @@
1
+ // src/PipelinePlugin.workerd.ts
2
+ import { Plugin } from "@dxos/app-framework";
3
+ import { AppPlugin } from "@dxos/app-toolkit";
4
+ import { Pipeline } from "@dxos/types";
5
+ import { meta } from "#meta";
6
+ var PipelinePlugin = Plugin.define(meta).pipe(AppPlugin.addSchemaModule({
7
+ schema: [
8
+ Pipeline.Pipeline
9
+ ]
10
+ }), Plugin.make);
11
+ var PipelinePlugin_workerd_default = PipelinePlugin;
12
+ export {
13
+ PipelinePlugin,
14
+ PipelinePlugin_workerd_default as default
15
+ };
16
+ //# sourceMappingURL=PipelinePlugin.workerd.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/PipelinePlugin.workerd.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Plugin } from '@dxos/app-framework';\nimport { AppPlugin } from '@dxos/app-toolkit';\nimport { Pipeline } from '@dxos/types';\n\nimport { meta } from '#meta';\n\nexport const PipelinePlugin = Plugin.define(meta).pipe(\n AppPlugin.addSchemaModule({ schema: [Pipeline.Pipeline] }),\n Plugin.make,\n);\n\nexport default PipelinePlugin;\n"],
5
+ "mappings": ";AAIA,SAASA,cAAc;AACvB,SAASC,iBAAiB;AAC1B,SAASC,gBAAgB;AAEzB,SAASC,YAAY;AAEd,IAAMC,iBAAiBJ,OAAOK,OAAOF,IAAAA,EAAMG,KAChDL,UAAUM,gBAAgB;EAAEC,QAAQ;IAACN,SAASA;;AAAU,CAAA,GACxDF,OAAOS,IAAI;AAGb,IAAA,iCAAeL;",
6
+ "names": ["Plugin", "AppPlugin", "Pipeline", "meta", "PipelinePlugin", "define", "pipe", "addSchemaModule", "schema", "make"]
7
+ }
@@ -1,39 +1,36 @@
1
- import {
2
- meta
3
- } from "./chunk-3A235GUD.mjs";
4
-
5
- // src/containers/PipelineObjectSettings/PipelineObjectSettings.tsx
1
+ // src/containers/PipelineProperties/PipelineProperties.tsx
6
2
  import * as Schema from "effect/Schema";
7
3
  import React, { useCallback, useMemo, useRef, useState } from "react";
8
- import { DXN, Filter, JsonSchema, Obj, Query, Ref, Tag } from "@dxos/echo";
9
- import { useTypeOptions } from "@dxos/plugin-space";
10
- import { resolveSchemaWithRegistry } from "@dxos/plugin-space";
11
- import { getSpace, useObject, useQuery } from "@dxos/react-client/echo";
4
+ import { resolveSchemaWithRegistry } from "@dxos/app-toolkit/query";
5
+ import { useTypeOptions } from "@dxos/app-toolkit/ui";
6
+ import { EID, Filter, JsonSchema, Obj, Query, Ref, Scope, Tag } from "@dxos/echo";
7
+ import { useObject, useQuery } from "@dxos/react-client/echo";
12
8
  import { IconButton, useAsyncEffect, useTranslation } from "@dxos/react-ui";
13
9
  import { Form, ViewEditor } from "@dxos/react-ui-form";
14
10
  import { List } from "@dxos/react-ui-list";
15
11
  import { ViewModel } from "@dxos/schema";
16
12
  import { Pipeline } from "@dxos/types";
17
- import { mx, osTranslations, subtleHover } from "@dxos/ui-theme";
13
+ import { mx, osTranslations } from "@dxos/ui-theme";
18
14
  import { arrayMove } from "@dxos/util";
15
+ import { meta } from "#meta";
19
16
  var listGrid = "grid grid-cols-[min-content_1fr_min-content_min-content_min-content]";
20
17
  var listItemGrid = "grid grid-cols-subgrid col-span-5";
21
18
  var ColumnFormSchema = Pipeline.Column.pipe(Schema.mutable, Schema.pick("name"));
22
- var PipelineObjectSettings = ({ classNames, pipeline }) => {
19
+ var PipelineProperties = ({ classNames, pipeline }) => {
23
20
  const { t } = useTranslation(meta.id);
24
- const space = getSpace(pipeline);
21
+ const db = Obj.getDatabase(pipeline);
25
22
  const [expandedId, setExpandedId] = useState();
26
23
  const [columns, updateColumns] = useObject(pipeline, "columns");
27
- const column = useMemo(() => columns.find((column2) => column2.view.dxn.toString() === expandedId), [
24
+ const column = useMemo(() => columns.find((column2) => column2.view.uri === expandedId), [
28
25
  columns,
29
26
  expandedId
30
27
  ]);
31
28
  const [view, updateView] = useObject(column?.view);
32
- const [schema, setSchema] = useState(() => Schema.Struct({}));
29
+ const [type, setType] = useState();
33
30
  const projectionRef = useRef(null);
34
- const tags = useQuery(space?.db, Filter.type(Tag.Tag));
31
+ const tags = useQuery(db, Filter.type(Tag.Tag));
35
32
  const types = useTypeOptions({
36
- space,
33
+ db,
37
34
  annotation: {
38
35
  location: [
39
36
  "database",
@@ -45,17 +42,17 @@ var PipelineObjectSettings = ({ classNames, pipeline }) => {
45
42
  }
46
43
  });
47
44
  useAsyncEffect(async () => {
48
- if (!view?.query || !space) {
45
+ if (!view?.query || !db) {
49
46
  return;
50
47
  }
51
- const foundSchema = await resolveSchemaWithRegistry(space.db.schemaRegistry, view.query.ast);
52
- if (foundSchema && foundSchema !== schema) {
53
- setSchema(() => foundSchema);
48
+ const foundType = await resolveSchemaWithRegistry(db, view.query.ast);
49
+ if (foundType && foundType !== type) {
50
+ setType(() => foundType);
54
51
  }
55
52
  }, [
56
- space,
53
+ db,
57
54
  view,
58
- schema
55
+ type
59
56
  ]);
60
57
  const handleMove = useCallback((fromIndex, toIndex) => updateColumns((columns2) => {
61
58
  arrayMove(columns2, fromIndex, toIndex);
@@ -63,34 +60,33 @@ var PipelineObjectSettings = ({ classNames, pipeline }) => {
63
60
  updateColumns
64
61
  ]);
65
62
  const handleQueryChanged = useCallback(async (newQuery, target) => {
66
- if (!view || !space) {
63
+ if (!view || !db) {
67
64
  return;
68
65
  }
69
- const queue = target && DXN.tryParse(target) ? target : void 0;
70
- const query = queue ? Query.fromAst(newQuery).from({
71
- queues: [
72
- queue
73
- ]
74
- }) : Query.fromAst(newQuery);
66
+ const queue = target;
67
+ const query = queue ? Query.fromAst(newQuery).from([
68
+ Scope.feed(`dxn:queue:data:${EID.getSpaceId(queue)}:${EID.getEntityId(queue)}`)
69
+ ]) : Query.fromAst(newQuery);
75
70
  updateView((view2) => {
76
71
  view2.query.ast = query.ast;
77
72
  });
78
- const newSchema = await resolveSchemaWithRegistry(space.db.schemaRegistry, query.ast);
79
- if (!newSchema) {
73
+ const newType = await resolveSchemaWithRegistry(db, query.ast);
74
+ if (!newType) {
80
75
  return;
81
76
  }
82
77
  const newView = ViewModel.make({
83
78
  query,
84
- jsonSchema: JsonSchema.toJsonSchema(newSchema)
79
+ jsonSchema: newType.jsonSchema
85
80
  });
86
81
  updateView((view2) => {
87
82
  view2.projection = Obj.getSnapshot(newView).projection;
88
83
  });
89
- setSchema(() => newSchema);
84
+ setType(() => newType);
90
85
  }, [
86
+ db,
91
87
  view,
92
88
  updateView,
93
- schema
89
+ type
94
90
  ]);
95
91
  const handleColumnValuesChanged = useCallback((column2) => (newValues, { changed }) => {
96
92
  if (changed["name"]) {
@@ -107,10 +103,10 @@ var PipelineObjectSettings = ({ classNames, pipeline }) => {
107
103
  updateColumns
108
104
  ]);
109
105
  const handleToggleField = useCallback((column2) => {
110
- setExpandedId((prevExpandedId) => prevExpandedId === column2.view.dxn.toString() ? void 0 : column2.view.dxn.toString());
106
+ setExpandedId((prevExpandedId) => prevExpandedId === column2.view.uri ? void 0 : column2.view.uri);
111
107
  }, []);
112
108
  const handleDelete = useCallback(async (column2) => {
113
- if (column2.view.dxn.toString() === expandedId) {
109
+ if (column2.view.uri === expandedId) {
114
110
  setExpandedId(void 0);
115
111
  }
116
112
  const index = columns.findIndex((l) => l === column2);
@@ -118,22 +114,22 @@ var PipelineObjectSettings = ({ classNames, pipeline }) => {
118
114
  updateColumns((columns2) => {
119
115
  columns2.splice(index, 1);
120
116
  });
121
- space?.db.remove(viewToRemove);
117
+ db?.remove(viewToRemove);
122
118
  }, [
123
119
  expandedId,
124
120
  columns,
125
121
  updateColumns,
126
- space
122
+ db
127
123
  ]);
128
124
  const handleAdd = useCallback(() => {
129
- if (!space) {
125
+ if (!db) {
130
126
  return;
131
127
  }
132
128
  const newView = ViewModel.make({
133
129
  query: Query.select(Filter.nothing()),
134
130
  jsonSchema: JsonSchema.toJsonSchema(Schema.Struct({}))
135
131
  });
136
- space.db.add(newView);
132
+ db.add(newView);
137
133
  updateColumns((columns2) => {
138
134
  columns2.push({
139
135
  name: "",
@@ -144,77 +140,70 @@ var PipelineObjectSettings = ({ classNames, pipeline }) => {
144
140
  });
145
141
  setExpandedId(newView.id);
146
142
  }, [
147
- space,
143
+ db,
148
144
  updateColumns
149
145
  ]);
150
146
  return /* @__PURE__ */ React.createElement("div", {
151
- role: "none",
152
147
  className: mx("py-form-padding overflow-y-auto", classNames)
153
148
  }, /* @__PURE__ */ React.createElement("h2", {
154
149
  className: "text-sm text-description py-1"
155
- }, t("views label")), /* @__PURE__ */ React.createElement(List.Root, {
150
+ }, t("views.label")), /* @__PURE__ */ React.createElement(List.Root, {
156
151
  items: columns,
157
152
  isItem: Schema.is(Pipeline.Column),
158
- getId: (column2) => column2.view.dxn.toString(),
153
+ getId: (column2) => column2.view.uri,
159
154
  onMove: handleMove
160
155
  }, ({ items: columns2 }) => /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("div", {
161
156
  role: "list",
162
157
  className: mx(listGrid)
163
158
  }, columns2.map((column2) => /* @__PURE__ */ React.createElement(List.Item, {
164
- key: column2.view.dxn.toString(),
159
+ key: column2.view.uri,
165
160
  item: column2,
166
161
  classNames: listItemGrid,
167
- "aria-expanded": expandedId === column2.view.dxn.toString()
162
+ "aria-expanded": expandedId === column2.view.uri
168
163
  }, /* @__PURE__ */ React.createElement("div", {
169
- role: "none",
170
- className: mx(subtleHover, listItemGrid, "rounded-xs cursor-pointer min-h-10")
164
+ className: mx(listItemGrid, "dx-hover rounded-xs cursor-pointer min-h-10")
171
165
  }, /* @__PURE__ */ React.createElement(List.ItemDragHandle, null), /* @__PURE__ */ React.createElement(List.ItemTitle, {
172
166
  onClick: () => handleToggleField(column2)
173
- }, column2.name || t("untitled view title")), /* @__PURE__ */ React.createElement(List.ItemDeleteButton, {
174
- label: t("delete view label"),
167
+ }, column2.name || t("untitled-view.title")), /* @__PURE__ */ React.createElement(List.ItemDeleteButton, {
168
+ label: t("delete-view.label"),
175
169
  autoHide: false,
176
170
  onClick: () => handleDelete(column2),
177
171
  "data-testid": "view.delete"
178
172
  }), /* @__PURE__ */ React.createElement(IconButton, {
179
173
  iconOnly: true,
180
174
  variant: "ghost",
181
- label: t("toggle expand label", {
175
+ label: t("toggle-expand.label", {
182
176
  ns: osTranslations
183
177
  }),
184
- icon: expandedId === column2.view.dxn.toString() ? "ph--caret-down--regular" : "ph--caret-right--regular",
178
+ icon: expandedId === column2.view.uri ? "ph--caret-down--regular" : "ph--caret-right--regular",
185
179
  onClick: () => handleToggleField(column2)
186
- })), expandedId === column2.view.dxn.toString() && column2?.view.target && /* @__PURE__ */ React.createElement("div", {
187
- role: "none",
180
+ })), expandedId === column2.view.uri && column2?.view.target && /* @__PURE__ */ React.createElement("div", {
188
181
  className: "col-span-5 my-2 border border-separator rounded-md"
189
182
  }, /* @__PURE__ */ React.createElement(Form.Root, {
190
183
  schema: ColumnFormSchema,
191
184
  values: column2,
192
185
  onValuesChanged: handleColumnValuesChanged(column2)
193
- }, /* @__PURE__ */ React.createElement(Form.Content, null, /* @__PURE__ */ React.createElement(Form.FieldSet, null))), /* @__PURE__ */ React.createElement(ViewEditor, {
186
+ }, /* @__PURE__ */ React.createElement(Form.Content, null, /* @__PURE__ */ React.createElement(Form.FieldSet, null))), type && /* @__PURE__ */ React.createElement(ViewEditor, {
194
187
  ref: projectionRef,
195
188
  mode: "tag",
196
189
  readonly: true,
197
- schema,
190
+ type,
198
191
  view: column2.view.target,
199
- registry: space?.db.schemaRegistry,
200
- db: space?.db,
192
+ registry: db?.graph.registry,
193
+ db,
201
194
  tags,
202
195
  types,
203
196
  onQueryChanged: handleQueryChanged
204
197
  }))))))), /* @__PURE__ */ React.createElement("div", {
205
- role: "none",
206
198
  className: "my-form-padding"
207
199
  }, /* @__PURE__ */ React.createElement(IconButton, {
208
200
  icon: "ph--plus--regular",
209
- label: t("add view label"),
201
+ label: t("add-view.label"),
210
202
  onClick: handleAdd,
211
203
  classNames: "w-full"
212
204
  })));
213
205
  };
214
-
215
- // src/containers/PipelineObjectSettings/index.ts
216
- var PipelineObjectSettings_default = PipelineObjectSettings;
217
206
  export {
218
- PipelineObjectSettings_default as default
207
+ PipelineProperties as default
219
208
  };
220
- //# sourceMappingURL=PipelineObjectSettings-QFMIKJH5.mjs.map
209
+ //# sourceMappingURL=PipelineProperties-JXY3AVOY.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/containers/PipelineProperties/PipelineProperties.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\nimport React, { useCallback, useMemo, useRef, useState } from 'react';\n\nimport { resolveSchemaWithRegistry } from '@dxos/app-toolkit/query';\nimport { useTypeOptions } from '@dxos/app-toolkit/ui';\nimport { EID, Filter, JsonSchema, Obj, Query, type QueryAST, Ref, Scope, Tag, type Type } from '@dxos/echo';\nimport { type JsonPath, type Mutable } from '@dxos/echo/internal';\nimport { useObject, useQuery } from '@dxos/react-client/echo';\nimport { IconButton, type ThemedClassName, useAsyncEffect, useTranslation } from '@dxos/react-ui';\nimport { Form, ViewEditor } from '@dxos/react-ui-form';\nimport { List } from '@dxos/react-ui-list';\nimport { type ProjectionModel, ViewModel } from '@dxos/schema';\nimport { Pipeline } from '@dxos/types';\nimport { mx, osTranslations } from '@dxos/ui-theme';\nimport { arrayMove } from '@dxos/util';\n\nimport { meta } from '#meta';\n\nconst listGrid = 'grid grid-cols-[min-content_1fr_min-content_min-content_min-content]';\nconst listItemGrid = 'grid grid-cols-subgrid col-span-5';\n\nconst ColumnFormSchema = Pipeline.Column.pipe(Schema.mutable, Schema.pick('name'));\n\nexport type PipelinePropertiesProps = ThemedClassName<{\n pipeline: Pipeline.Pipeline;\n}>;\n\n/**\n * Supports editing the pipeline view.\n */\nexport const PipelineProperties = ({ classNames, pipeline }: PipelinePropertiesProps) => {\n const { t } = useTranslation(meta.id);\n const db = Obj.getDatabase(pipeline);\n const [expandedId, setExpandedId] = useState<string>();\n const [columns, updateColumns] = useObject(pipeline, 'columns');\n const column = useMemo(() => columns.find((column) => column.view.uri === expandedId), [columns, expandedId]);\n const [view, updateView] = useObject(column?.view);\n const [type, setType] = useState<Type.AnyEntity>();\n const projectionRef = useRef<ProjectionModel>(null);\n const tags = useQuery(db, Filter.type(Tag.Tag));\n const types = useTypeOptions({\n db,\n annotation: {\n location: ['database', 'runtime'],\n kind: ['user'],\n },\n });\n\n useAsyncEffect(async () => {\n if (!view?.query || !db) {\n return;\n }\n\n const foundType = await resolveSchemaWithRegistry(db, view.query.ast);\n if (foundType && foundType !== type) {\n setType(() => foundType);\n }\n }, [db, view, type]);\n\n const handleMove = useCallback(\n (fromIndex: number, toIndex: number) =>\n updateColumns((columns) => {\n arrayMove(columns, fromIndex, toIndex);\n }),\n [updateColumns],\n );\n\n const handleQueryChanged = useCallback(\n async (newQuery: QueryAST.Query, target?: EID.EID) => {\n if (!view || !db) {\n return;\n }\n\n const queue = target;\n const query = queue\n ? Query.fromAst(newQuery).from([\n Scope.feed(`dxn:queue:data:${EID.getSpaceId(queue)}:${EID.getEntityId(queue)}`),\n ])\n : Query.fromAst(newQuery);\n updateView((view) => {\n view.query.ast = query.ast as Mutable<typeof query.ast>;\n });\n const newType = await resolveSchemaWithRegistry(db, query.ast);\n if (!newType) {\n return;\n }\n\n const newView = ViewModel.make({\n query,\n jsonSchema: newType.jsonSchema,\n });\n updateView((view) => {\n view.projection = Obj.getSnapshot(newView).projection as Mutable<typeof view.projection>;\n });\n\n setType(() => newType);\n },\n [db, view, updateView, type],\n );\n\n const handleColumnValuesChanged = useCallback(\n (column: Pipeline.Column) =>\n (newValues: { name?: string }, { changed }: { changed: Record<JsonPath, boolean> }) => {\n if (changed['name' as JsonPath]) {\n const columnIndex = columns.findIndex((c) => c === column);\n if (columnIndex === -1) {\n return;\n }\n updateColumns((cols) => {\n cols[columnIndex].name = newValues.name ?? '';\n });\n }\n },\n [columns, updateColumns],\n );\n\n const handleToggleField = useCallback((column: Pipeline.Column) => {\n setExpandedId((prevExpandedId) => (prevExpandedId === column.view.uri ? undefined : column.view.uri));\n }, []);\n\n const handleDelete = useCallback(\n async (column: Pipeline.Column) => {\n if (column.view.uri === expandedId) {\n setExpandedId(undefined);\n }\n\n const index = columns.findIndex((l) => l === column);\n const viewToRemove = await column.view.load();\n updateColumns((columns) => {\n columns.splice(index, 1);\n });\n db?.remove(viewToRemove);\n },\n [expandedId, columns, updateColumns, db],\n );\n\n const handleAdd = useCallback(() => {\n if (!db) {\n return;\n }\n const newView = ViewModel.make({\n query: Query.select(Filter.nothing()),\n jsonSchema: JsonSchema.toJsonSchema(Schema.Struct({})),\n });\n db.add(newView);\n updateColumns((columns) => {\n columns.push({\n name: '',\n // Type assertion needed due to QueryAST type variance.\n view: Ref.make(newView) as (typeof columns)[number]['view'],\n order: [],\n });\n });\n setExpandedId(newView.id);\n }, [db, updateColumns]);\n\n return (\n <div className={mx('py-form-padding overflow-y-auto', classNames)}>\n <h2 className='text-sm text-description py-1'>{t('views.label')}</h2>\n\n <List.Root<Pipeline.Column>\n items={columns}\n isItem={Schema.is(Pipeline.Column)}\n getId={(column) => column.view.uri}\n onMove={handleMove}\n >\n {({ items: columns }) => (\n <>\n <div role='list' className={mx(listGrid)}>\n {columns.map((column) => (\n <List.Item<Pipeline.Column>\n key={column.view.uri}\n item={column}\n classNames={listItemGrid}\n aria-expanded={expandedId === column.view.uri}\n >\n <div className={mx(listItemGrid, 'dx-hover rounded-xs cursor-pointer min-h-10')}>\n <List.ItemDragHandle />\n <List.ItemTitle onClick={() => handleToggleField(column)}>\n {column.name || t('untitled-view.title')}\n </List.ItemTitle>\n <List.ItemDeleteButton\n label={t('delete-view.label')}\n autoHide={false}\n onClick={() => handleDelete(column)}\n data-testid='view.delete'\n />\n <IconButton\n iconOnly\n variant='ghost'\n label={t('toggle-expand.label', { ns: osTranslations })}\n icon={expandedId === column.view.uri ? 'ph--caret-down--regular' : 'ph--caret-right--regular'}\n onClick={() => handleToggleField(column)}\n />\n </div>\n {expandedId === column.view.uri && column?.view.target && (\n <div className='col-span-5 my-2 border border-separator rounded-md'>\n <Form.Root\n schema={ColumnFormSchema}\n values={column}\n onValuesChanged={handleColumnValuesChanged(column)}\n >\n <Form.Content>\n <Form.FieldSet />\n </Form.Content>\n </Form.Root>\n {type && (\n <ViewEditor\n ref={projectionRef}\n mode='tag'\n readonly\n type={type}\n view={column.view.target}\n registry={db?.graph.registry}\n db={db}\n tags={tags}\n types={types}\n onQueryChanged={handleQueryChanged}\n />\n )}\n </div>\n )}\n </List.Item>\n ))}\n </div>\n </>\n )}\n </List.Root>\n\n <div className='my-form-padding'>\n <IconButton icon='ph--plus--regular' label={t('add-view.label')} onClick={handleAdd} classNames='w-full' />\n </div>\n </div>\n );\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["Schema", "React", "useCallback", "useMemo", "useRef", "useState", "resolveSchemaWithRegistry", "useTypeOptions", "EID", "Filter", "JsonSchema", "Obj", "Query", "Ref", "Scope", "Tag", "useObject", "useQuery", "IconButton", "useAsyncEffect", "useTranslation", "Form", "ViewEditor", "List", "ViewModel", "Pipeline", "mx", "osTranslations", "arrayMove", "meta", "listGrid", "listItemGrid", "ColumnFormSchema", "Column", "pipe", "mutable", "pick", "PipelineProperties", "classNames", "pipeline", "t", "id", "db", "getDatabase", "expandedId", "setExpandedId", "columns", "updateColumns", "column", "find", "view", "uri", "updateView", "type", "setType", "projectionRef", "tags", "types", "annotation", "location", "kind", "query", "foundType", "ast", "handleMove", "fromIndex", "toIndex", "handleQueryChanged", "newQuery", "target", "queue", "fromAst", "from", "feed", "getSpaceId", "getEntityId", "newType", "newView", "make", "jsonSchema", "projection", "getSnapshot", "handleColumnValuesChanged", "newValues", "changed", "columnIndex", "findIndex", "c", "cols", "name", "handleToggleField", "prevExpandedId", "undefined", "handleDelete", "index", "l", "viewToRemove", "load", "splice", "remove", "handleAdd", "select", "nothing", "toJsonSchema", "Struct", "add", "push", "order", "div", "className", "h2", "Root", "items", "isItem", "is", "getId", "onMove", "role", "map", "Item", "key", "item", "aria-expanded", "ItemDragHandle", "ItemTitle", "onClick", "ItemDeleteButton", "label", "autoHide", "data-testid", "iconOnly", "variant", "ns", "icon", "schema", "values", "onValuesChanged", "Content", "FieldSet", "ref", "mode", "readonly", "registry", "graph", "onQueryChanged"]
7
+ }
@@ -0,0 +1,44 @@
1
+ // src/capabilities/app-graph-builder.ts
2
+ import * as Effect from "effect/Effect";
3
+ import { Capability } from "@dxos/app-framework";
4
+ import { AppCapabilities, AppNode } from "@dxos/app-toolkit";
5
+ import { GraphBuilder } from "@dxos/plugin-graph";
6
+ import { Pipeline } from "@dxos/types";
7
+ import { meta } from "#meta";
8
+ var app_graph_builder_default = Capability.makeModule(Effect.fnUntraced(function* () {
9
+ const extensions = yield* Effect.all([
10
+ GraphBuilder.createTypeExtension({
11
+ id: "triggers",
12
+ type: Pipeline.Pipeline,
13
+ connector: () => Effect.succeed([
14
+ AppNode.makeCompanion({
15
+ id: "invocations",
16
+ label: [
17
+ "pipeline-invocations.label",
18
+ {
19
+ ns: meta.id
20
+ }
21
+ ],
22
+ icon: "ph--clock-countdown--regular",
23
+ data: "invocations"
24
+ }),
25
+ AppNode.makeCompanion({
26
+ id: "automation",
27
+ label: [
28
+ "pipeline-automation.label",
29
+ {
30
+ ns: meta.id
31
+ }
32
+ ],
33
+ icon: "ph--lightning--regular",
34
+ data: "automation"
35
+ })
36
+ ])
37
+ })
38
+ ]);
39
+ return Capability.contributes(AppCapabilities.AppGraphBuilder, extensions);
40
+ }));
41
+ export {
42
+ app_graph_builder_default as default
43
+ };
44
+ //# sourceMappingURL=app-graph-builder-ZLGRWRJU.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 * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { AppCapabilities, AppNode } from '@dxos/app-toolkit';\nimport { GraphBuilder } from '@dxos/plugin-graph';\nimport { Pipeline } from '@dxos/types';\n\nimport { meta } from '#meta';\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n const extensions = yield* Effect.all([\n GraphBuilder.createTypeExtension({\n id: 'triggers',\n type: Pipeline.Pipeline,\n connector: () =>\n Effect.succeed([\n AppNode.makeCompanion({\n id: 'invocations',\n label: ['pipeline-invocations.label', { ns: meta.id }],\n icon: 'ph--clock-countdown--regular',\n data: 'invocations',\n }),\n AppNode.makeCompanion({\n id: 'automation',\n label: ['pipeline-automation.label', { ns: meta.id }],\n icon: 'ph--lightning--regular',\n data: 'automation',\n }),\n ]),\n }),\n ]);\n\n return Capability.contributes(AppCapabilities.AppGraphBuilder, extensions);\n }),\n);\n"],
5
+ "mappings": ";AAIA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,iBAAiBC,eAAe;AACzC,SAASC,oBAAoB;AAC7B,SAASC,gBAAgB;AAEzB,SAASC,YAAY;AAErB,IAAA,4BAAeL,WAAWM,WACjBC,kBAAW,aAAA;AAChB,QAAMC,aAAa,OAAcC,WAAI;IACnCN,aAAaO,oBAAoB;MAC/BC,IAAI;MACJC,MAAMR,SAASA;MACfS,WAAW,MACFC,eAAQ;QACbZ,QAAQa,cAAc;UACpBJ,IAAI;UACJK,OAAO;YAAC;YAA8B;cAAEC,IAAIZ,KAAKM;YAAG;;UACpDO,MAAM;UACNC,MAAM;QACR,CAAA;QACAjB,QAAQa,cAAc;UACpBJ,IAAI;UACJK,OAAO;YAAC;YAA6B;cAAEC,IAAIZ,KAAKM;YAAG;;UACnDO,MAAM;UACNC,MAAM;QACR,CAAA;OACD;IACL,CAAA;GACD;AAED,SAAOnB,WAAWoB,YAAYnB,gBAAgBoB,iBAAiBb,UAAAA;AACjE,CAAA,CAAA;",
6
+ "names": ["Effect", "Capability", "AppCapabilities", "AppNode", "GraphBuilder", "Pipeline", "meta", "makeModule", "fnUntraced", "extensions", "all", "createTypeExtension", "id", "type", "connector", "succeed", "makeCompanion", "label", "ns", "icon", "data", "contributes", "AppGraphBuilder"]
7
+ }
@@ -0,0 +1,11 @@
1
+ // src/capabilities/index.ts
2
+ import { Capability } from "@dxos/app-framework";
3
+ var AppGraphBuilder = Capability.lazy("AppGraphBuilder", () => import("../app-graph-builder-ZLGRWRJU.mjs"));
4
+ var CreateObject = Capability.lazy("CreateObject", () => import("../create-object-6Z4MMGX4.mjs"));
5
+ var ReactSurface = Capability.lazy("ReactSurface", () => import("../react-surface-QG7QSZSS.mjs"));
6
+ export {
7
+ AppGraphBuilder,
8
+ CreateObject,
9
+ ReactSurface
10
+ };
11
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/capabilities/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const AppGraphBuilder = Capability.lazy('AppGraphBuilder', () => import('./app-graph-builder'));\nexport const CreateObject = Capability.lazy('CreateObject', () => import('./create-object'));\nexport const ReactSurface = Capability.lazy('ReactSurface', () => import('./react-surface'));\n"],
5
+ "mappings": ";AAIA,SAASA,kBAAkB;AAEpB,IAAMC,kBAAkBD,WAAWE,KAAK,mBAAmB,MAAM,OAAO,mCAAA,CAAA;AACxE,IAAMC,eAAeH,WAAWE,KAAK,gBAAgB,MAAM,OAAO,+BAAA,CAAA;AAClE,IAAME,eAAeJ,WAAWE,KAAK,gBAAgB,MAAM,OAAO,+BAAA,CAAA;",
6
+ "names": ["Capability", "AppGraphBuilder", "lazy", "CreateObject", "ReactSurface"]
7
+ }
@@ -0,0 +1,35 @@
1
+ // src/meta.ts
2
+ import { Plugin } from "@dxos/app-framework";
3
+ import { DXN } from "@dxos/keys";
4
+ import { trim } from "@dxos/util";
5
+ var meta = Plugin.makeMeta({
6
+ key: DXN.make("org.dxos.plugin.pipeline"),
7
+ name: "Pipelines",
8
+ author: "DXOS",
9
+ description: trim`
10
+ A multi-column Kanban-style pipeline plugin for DXOS Composer.
11
+ Each Pipeline holds an ordered set of Columns; each Column is backed by a ViewModel whose query
12
+ can select any ECHO object type — messages, contacts, documents, or custom types — from the active space.
13
+
14
+ Columns are fully configurable through the Settings companion panel, where users can add, rename,
15
+ reorder, and delete columns and edit the underlying query and projection for each column.
16
+ Objects can be dragged between columns and the full pipeline state, including column order and
17
+ per-column item order, persists collaboratively via ECHO.
18
+
19
+ A built-in Research template scaffolds a four-column pipeline wired to the Mailbox, Contacts,
20
+ Organizations, and Notes objects in the space, providing an out-of-the-box CRM-style workflow.
21
+ Pipeline articles also expose Invocations and Automation companion tabs for AI-driven automation.
22
+ `,
23
+ icon: "ph--path--regular",
24
+ iconHue: "purple",
25
+ source: "https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-pipeline",
26
+ spec: "PLUGIN.mdl",
27
+ tags: [
28
+ "labs"
29
+ ]
30
+ });
31
+
32
+ export {
33
+ meta
34
+ };
35
+ //# sourceMappingURL=chunk-CYXDAAKN.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 { Plugin } from '@dxos/app-framework';\nimport { DXN } from '@dxos/keys';\nimport { trim } from '@dxos/util';\n\nexport const meta = Plugin.makeMeta({\n key: DXN.make('org.dxos.plugin.pipeline'),\n name: 'Pipelines',\n author: 'DXOS',\n description: trim`\n A multi-column Kanban-style pipeline plugin for DXOS Composer.\n Each Pipeline holds an ordered set of Columns; each Column is backed by a ViewModel whose query\n can select any ECHO object type — messages, contacts, documents, or custom types — from the active space.\n\n Columns are fully configurable through the Settings companion panel, where users can add, rename,\n reorder, and delete columns and edit the underlying query and projection for each column.\n Objects can be dragged between columns and the full pipeline state, including column order and\n per-column item order, persists collaboratively via ECHO.\n\n A built-in Research template scaffolds a four-column pipeline wired to the Mailbox, Contacts,\n Organizations, and Notes objects in the space, providing an out-of-the-box CRM-style workflow.\n Pipeline articles also expose Invocations and Automation companion tabs for AI-driven automation.\n `,\n icon: 'ph--path--regular',\n iconHue: 'purple',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-pipeline',\n spec: 'PLUGIN.mdl',\n tags: ['labs'],\n});\n"],
5
+ "mappings": ";AAIA,SAASA,cAAc;AACvB,SAASC,WAAW;AACpB,SAASC,YAAY;AAEd,IAAMC,OAAOH,OAAOI,SAAS;EAClCC,KAAKJ,IAAIK,KAAK,0BAAA;EACdC,MAAM;EACNC,QAAQ;EACRC,aAAaP;;;;;;;;;;;;;;EAcbQ,MAAM;EACNC,SAAS;EACTC,QAAQ;EACRC,MAAM;EACNC,MAAM;IAAC;;AACT,CAAA;",
6
+ "names": ["Plugin", "DXN", "trim", "meta", "makeMeta", "key", "make", "name", "author", "description", "icon", "iconHue", "source", "spec", "tags"]
7
+ }