@dxos/plugin-pipeline 0.8.4-main.c85a9c8dae → 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 (169) 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-D36OYVHW.mjs → neutral/PipelineProperties-JXY3AVOY.mjs} +58 -73
  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-ZGQVH4VX.mjs → neutral/react-surface-QG7QSZSS.mjs} +15 -26
  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 +1 -0
  39. package/dist/lib/neutral/types/index.mjs.map +7 -0
  40. package/dist/types/src/PipelinePlugin.d.ts +1 -0
  41. package/dist/types/src/PipelinePlugin.d.ts.map +1 -1
  42. package/dist/types/src/PipelinePlugin.node.d.ts +4 -0
  43. package/dist/types/src/PipelinePlugin.node.d.ts.map +1 -0
  44. package/dist/types/src/PipelinePlugin.test.d.ts +2 -0
  45. package/dist/types/src/PipelinePlugin.test.d.ts.map +1 -0
  46. package/dist/types/src/PipelinePlugin.workerd.d.ts +4 -0
  47. package/dist/types/src/PipelinePlugin.workerd.d.ts.map +1 -0
  48. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -0
  49. package/dist/types/src/capabilities/create-object.d.ts +11 -0
  50. package/dist/types/src/capabilities/create-object.d.ts.map +1 -0
  51. package/dist/types/src/capabilities/index.d.ts +9 -3
  52. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  53. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
  54. package/dist/types/src/components/{PipelineColumn.d.ts → PipelineComponent/PipelineColumn.d.ts} +4 -4
  55. package/dist/types/src/components/PipelineComponent/PipelineColumn.d.ts.map +1 -0
  56. package/dist/types/src/components/PipelineComponent/PipelineComponent.d.ts +53 -0
  57. package/dist/types/src/components/PipelineComponent/PipelineComponent.d.ts.map +1 -0
  58. package/dist/types/src/components/PipelineComponent/PipelineComponent.stories.d.ts +62 -0
  59. package/dist/types/src/components/PipelineComponent/PipelineComponent.stories.d.ts.map +1 -0
  60. package/dist/types/src/components/PipelineComponent/index.d.ts +3 -0
  61. package/dist/types/src/components/PipelineComponent/index.d.ts.map +1 -0
  62. package/dist/types/src/components/index.d.ts +0 -1
  63. package/dist/types/src/components/index.d.ts.map +1 -1
  64. package/dist/types/src/containers/PipelineArticle/PipelineArticle.d.ts +6 -0
  65. package/dist/types/src/containers/PipelineArticle/PipelineArticle.d.ts.map +1 -0
  66. package/dist/types/src/containers/PipelineArticle/PipelineArticle.stories.d.ts +76 -0
  67. package/dist/types/src/containers/PipelineArticle/PipelineArticle.stories.d.ts.map +1 -0
  68. package/dist/types/src/containers/PipelineArticle/index.d.ts +2 -0
  69. package/dist/types/src/containers/PipelineArticle/index.d.ts.map +1 -0
  70. package/dist/types/src/containers/PipelineProperties/PipelineProperties.d.ts +11 -0
  71. package/dist/types/src/containers/PipelineProperties/PipelineProperties.d.ts.map +1 -0
  72. package/dist/types/src/containers/PipelineProperties/index.d.ts +2 -0
  73. package/dist/types/src/containers/PipelineProperties/index.d.ts.map +1 -0
  74. package/dist/types/src/containers/index.d.ts +2 -2
  75. package/dist/types/src/containers/index.d.ts.map +1 -1
  76. package/dist/types/src/hooks/usePipelineBoardModel.d.ts.map +1 -1
  77. package/dist/types/src/index.d.ts +0 -1
  78. package/dist/types/src/index.d.ts.map +1 -1
  79. package/dist/types/src/meta.d.ts +1 -1
  80. package/dist/types/src/meta.d.ts.map +1 -1
  81. package/dist/types/src/plugin.d.ts +3 -0
  82. package/dist/types/src/plugin.d.ts.map +1 -0
  83. package/dist/types/src/templates/research.d.ts.map +1 -1
  84. package/dist/types/src/translations.d.ts +44 -25
  85. package/dist/types/src/translations.d.ts.map +1 -1
  86. package/dist/types/src/types/index.d.ts +0 -2
  87. package/dist/types/src/types/index.d.ts.map +1 -1
  88. package/dist/types/tsconfig.tsbuildinfo +1 -1
  89. package/package.json +103 -58
  90. package/src/PipelinePlugin.node.ts +19 -0
  91. package/src/PipelinePlugin.test.ts +27 -0
  92. package/src/PipelinePlugin.tsx +12 -30
  93. package/src/PipelinePlugin.workerd.ts +16 -0
  94. package/src/capabilities/app-graph-builder.ts +40 -0
  95. package/src/capabilities/create-object.ts +30 -0
  96. package/src/capabilities/index.ts +5 -3
  97. package/src/capabilities/{react-surface/react-surface.tsx → react-surface.tsx} +16 -15
  98. package/src/components/PipelineComponent/PipelineColumn.tsx +154 -0
  99. package/src/components/{PipelineComponent.stories.tsx → PipelineComponent/PipelineComponent.stories.tsx} +21 -21
  100. package/src/components/{PipelineComponent.tsx → PipelineComponent/PipelineComponent.tsx} +22 -13
  101. package/src/components/PipelineComponent/index.ts +6 -0
  102. package/src/components/index.ts +0 -1
  103. package/src/containers/{PipelineContainer/PipelineContainer.stories.tsx → PipelineArticle/PipelineArticle.stories.tsx} +43 -47
  104. package/src/containers/{PipelineContainer/PipelineContainer.tsx → PipelineArticle/PipelineArticle.tsx} +14 -17
  105. package/src/containers/PipelineArticle/index.ts +5 -0
  106. package/src/containers/{PipelineObjectSettings/PipelineObjectSettings.tsx → PipelineProperties/PipelineProperties.tsx} +72 -75
  107. package/src/containers/PipelineProperties/index.ts +5 -0
  108. package/src/containers/index.ts +2 -2
  109. package/src/hooks/usePipelineBoardModel.ts +6 -6
  110. package/src/index.ts +0 -1
  111. package/src/meta.ts +19 -6
  112. package/src/plugin.ts +9 -0
  113. package/src/templates/research.ts +8 -7
  114. package/src/translations.ts +24 -22
  115. package/src/types/index.ts +0 -3
  116. package/src/vite-env.d.ts +10 -0
  117. package/dist/lib/browser/PipelineContainer-2ZYSZATA.mjs +0 -320
  118. package/dist/lib/browser/PipelineContainer-2ZYSZATA.mjs.map +0 -7
  119. package/dist/lib/browser/PipelineObjectSettings-D36OYVHW.mjs.map +0 -7
  120. package/dist/lib/browser/app-graph-builder-NUJB33F7.mjs +0 -65
  121. package/dist/lib/browser/app-graph-builder-NUJB33F7.mjs.map +0 -7
  122. package/dist/lib/browser/chunk-N6FZHYWT.mjs +0 -42
  123. package/dist/lib/browser/chunk-N6FZHYWT.mjs.map +0 -7
  124. package/dist/lib/browser/chunk-QWNKLHBY.mjs +0 -28
  125. package/dist/lib/browser/chunk-QWNKLHBY.mjs.map +0 -7
  126. package/dist/lib/browser/index.mjs +0 -109
  127. package/dist/lib/browser/index.mjs.map +0 -7
  128. package/dist/lib/browser/meta.json +0 -1
  129. package/dist/lib/browser/react-surface-ZGQVH4VX.mjs.map +0 -7
  130. package/dist/lib/browser/types/index.mjs +0 -10
  131. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +0 -1
  132. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +0 -3
  133. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +0 -1
  134. package/dist/types/src/capabilities/operation-resolver/index.d.ts +0 -2
  135. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +0 -1
  136. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +0 -5
  137. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +0 -1
  138. package/dist/types/src/capabilities/react-surface/index.d.ts +0 -3
  139. package/dist/types/src/capabilities/react-surface/index.d.ts.map +0 -1
  140. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +0 -1
  141. package/dist/types/src/components/PipelineColumn.d.ts.map +0 -1
  142. package/dist/types/src/components/PipelineComponent.d.ts +0 -47
  143. package/dist/types/src/components/PipelineComponent.d.ts.map +0 -1
  144. package/dist/types/src/components/PipelineComponent.stories.d.ts +0 -42
  145. package/dist/types/src/components/PipelineComponent.stories.d.ts.map +0 -1
  146. package/dist/types/src/containers/PipelineContainer/PipelineContainer.d.ts +0 -6
  147. package/dist/types/src/containers/PipelineContainer/PipelineContainer.d.ts.map +0 -1
  148. package/dist/types/src/containers/PipelineContainer/PipelineContainer.stories.d.ts +0 -56
  149. package/dist/types/src/containers/PipelineContainer/PipelineContainer.stories.d.ts.map +0 -1
  150. package/dist/types/src/containers/PipelineContainer/index.d.ts +0 -3
  151. package/dist/types/src/containers/PipelineContainer/index.d.ts.map +0 -1
  152. package/dist/types/src/containers/PipelineObjectSettings/PipelineObjectSettings.d.ts +0 -11
  153. package/dist/types/src/containers/PipelineObjectSettings/PipelineObjectSettings.d.ts.map +0 -1
  154. package/dist/types/src/containers/PipelineObjectSettings/index.d.ts +0 -3
  155. package/dist/types/src/containers/PipelineObjectSettings/index.d.ts.map +0 -1
  156. package/dist/types/src/types/PipelineAction.d.ts +0 -25
  157. package/dist/types/src/types/PipelineAction.d.ts.map +0 -1
  158. package/src/capabilities/app-graph-builder/app-graph-builder.ts +0 -51
  159. package/src/capabilities/app-graph-builder/index.ts +0 -7
  160. package/src/capabilities/operation-resolver/index.ts +0 -5
  161. package/src/capabilities/operation-resolver/operation-resolver.ts +0 -29
  162. package/src/capabilities/react-surface/index.ts +0 -7
  163. package/src/components/PipelineColumn.tsx +0 -133
  164. package/src/containers/PipelineContainer/index.ts +0 -7
  165. package/src/containers/PipelineObjectSettings/index.ts +0 -7
  166. package/src/types/PipelineAction.ts +0 -29
  167. /package/dist/lib/{browser/types → neutral}/index.mjs.map +0 -0
  168. /package/dist/types/src/capabilities/{app-graph-builder/app-graph-builder.d.ts → app-graph-builder.d.ts} +0 -0
  169. /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-QWNKLHBY.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
- import { Pipeline, Task } from "@dxos/types";
17
- import { mx, osTranslations, subtleHover } from "@dxos/ui-theme";
12
+ import { Pipeline } from "@dxos/types";
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",
@@ -41,25 +38,21 @@ var PipelineObjectSettings = ({ classNames, pipeline }) => {
41
38
  ],
42
39
  kind: [
43
40
  "user"
44
- ],
45
- registered: [
46
- "registered",
47
- "unregistered"
48
41
  ]
49
42
  }
50
43
  });
51
44
  useAsyncEffect(async () => {
52
- if (!view?.query || !space) {
45
+ if (!view?.query || !db) {
53
46
  return;
54
47
  }
55
- const foundSchema = await resolveSchemaWithRegistry(space.db.schemaRegistry, view.query.ast);
56
- if (foundSchema && foundSchema !== schema) {
57
- setSchema(() => foundSchema);
48
+ const foundType = await resolveSchemaWithRegistry(db, view.query.ast);
49
+ if (foundType && foundType !== type) {
50
+ setType(() => foundType);
58
51
  }
59
52
  }, [
60
- space,
53
+ db,
61
54
  view,
62
- schema
55
+ type
63
56
  ]);
64
57
  const handleMove = useCallback((fromIndex, toIndex) => updateColumns((columns2) => {
65
58
  arrayMove(columns2, fromIndex, toIndex);
@@ -67,34 +60,33 @@ var PipelineObjectSettings = ({ classNames, pipeline }) => {
67
60
  updateColumns
68
61
  ]);
69
62
  const handleQueryChanged = useCallback(async (newQuery, target) => {
70
- if (!view || !space) {
63
+ if (!view || !db) {
71
64
  return;
72
65
  }
73
- const queue = target && DXN.tryParse(target) ? target : void 0;
74
- const query = queue ? Query.fromAst(newQuery).from({
75
- queues: [
76
- queue
77
- ]
78
- }) : 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);
79
70
  updateView((view2) => {
80
71
  view2.query.ast = query.ast;
81
72
  });
82
- const newSchema = await resolveSchemaWithRegistry(space.db.schemaRegistry, query.ast);
83
- if (!newSchema) {
73
+ const newType = await resolveSchemaWithRegistry(db, query.ast);
74
+ if (!newType) {
84
75
  return;
85
76
  }
86
77
  const newView = ViewModel.make({
87
78
  query,
88
- jsonSchema: JsonSchema.toJsonSchema(newSchema)
79
+ jsonSchema: newType.jsonSchema
89
80
  });
90
81
  updateView((view2) => {
91
82
  view2.projection = Obj.getSnapshot(newView).projection;
92
83
  });
93
- setSchema(() => newSchema);
84
+ setType(() => newType);
94
85
  }, [
86
+ db,
95
87
  view,
96
88
  updateView,
97
- schema
89
+ type
98
90
  ]);
99
91
  const handleColumnValuesChanged = useCallback((column2) => (newValues, { changed }) => {
100
92
  if (changed["name"]) {
@@ -111,10 +103,10 @@ var PipelineObjectSettings = ({ classNames, pipeline }) => {
111
103
  updateColumns
112
104
  ]);
113
105
  const handleToggleField = useCallback((column2) => {
114
- 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);
115
107
  }, []);
116
108
  const handleDelete = useCallback(async (column2) => {
117
- if (column2.view.dxn.toString() === expandedId) {
109
+ if (column2.view.uri === expandedId) {
118
110
  setExpandedId(void 0);
119
111
  }
120
112
  const index = columns.findIndex((l) => l === column2);
@@ -122,25 +114,25 @@ var PipelineObjectSettings = ({ classNames, pipeline }) => {
122
114
  updateColumns((columns2) => {
123
115
  columns2.splice(index, 1);
124
116
  });
125
- space?.db.remove(viewToRemove);
117
+ db?.remove(viewToRemove);
126
118
  }, [
127
119
  expandedId,
128
120
  columns,
129
121
  updateColumns,
130
- space
122
+ db
131
123
  ]);
132
124
  const handleAdd = useCallback(() => {
133
- if (!space) {
125
+ if (!db) {
134
126
  return;
135
127
  }
136
128
  const newView = ViewModel.make({
137
- query: Query.select(Filter.type(Task.Task)),
138
- jsonSchema: JsonSchema.toJsonSchema(Task.Task)
129
+ query: Query.select(Filter.nothing()),
130
+ jsonSchema: JsonSchema.toJsonSchema(Schema.Struct({}))
139
131
  });
140
- space.db.add(newView);
132
+ db.add(newView);
141
133
  updateColumns((columns2) => {
142
134
  columns2.push({
143
- name: "Tasks",
135
+ name: "",
144
136
  // Type assertion needed due to QueryAST type variance.
145
137
  view: Ref.make(newView),
146
138
  order: []
@@ -148,77 +140,70 @@ var PipelineObjectSettings = ({ classNames, pipeline }) => {
148
140
  });
149
141
  setExpandedId(newView.id);
150
142
  }, [
151
- space,
143
+ db,
152
144
  updateColumns
153
145
  ]);
154
146
  return /* @__PURE__ */ React.createElement("div", {
155
- role: "none",
156
147
  className: mx("py-form-padding overflow-y-auto", classNames)
157
148
  }, /* @__PURE__ */ React.createElement("h2", {
158
149
  className: "text-sm text-description py-1"
159
- }, t("views label")), /* @__PURE__ */ React.createElement(List.Root, {
150
+ }, t("views.label")), /* @__PURE__ */ React.createElement(List.Root, {
160
151
  items: columns,
161
152
  isItem: Schema.is(Pipeline.Column),
162
- getId: (column2) => column2.view.dxn.toString(),
153
+ getId: (column2) => column2.view.uri,
163
154
  onMove: handleMove
164
155
  }, ({ items: columns2 }) => /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("div", {
165
156
  role: "list",
166
157
  className: mx(listGrid)
167
158
  }, columns2.map((column2) => /* @__PURE__ */ React.createElement(List.Item, {
168
- key: column2.view.dxn.toString(),
159
+ key: column2.view.uri,
169
160
  item: column2,
170
161
  classNames: listItemGrid,
171
- "aria-expanded": expandedId === column2.view.dxn.toString()
162
+ "aria-expanded": expandedId === column2.view.uri
172
163
  }, /* @__PURE__ */ React.createElement("div", {
173
- role: "none",
174
- className: mx(subtleHover, listItemGrid, "rounded-xs cursor-pointer min-h-10")
164
+ className: mx(listItemGrid, "dx-hover rounded-xs cursor-pointer min-h-10")
175
165
  }, /* @__PURE__ */ React.createElement(List.ItemDragHandle, null), /* @__PURE__ */ React.createElement(List.ItemTitle, {
176
166
  onClick: () => handleToggleField(column2)
177
- }, column2.name), /* @__PURE__ */ React.createElement(List.ItemDeleteButton, {
178
- label: t("delete view label"),
167
+ }, column2.name || t("untitled-view.title")), /* @__PURE__ */ React.createElement(List.ItemDeleteButton, {
168
+ label: t("delete-view.label"),
179
169
  autoHide: false,
180
170
  onClick: () => handleDelete(column2),
181
171
  "data-testid": "view.delete"
182
172
  }), /* @__PURE__ */ React.createElement(IconButton, {
183
173
  iconOnly: true,
184
174
  variant: "ghost",
185
- label: t("toggle expand label", {
175
+ label: t("toggle-expand.label", {
186
176
  ns: osTranslations
187
177
  }),
188
- 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",
189
179
  onClick: () => handleToggleField(column2)
190
- })), expandedId === column2.view.dxn.toString() && column2?.view.target && /* @__PURE__ */ React.createElement("div", {
191
- role: "none",
180
+ })), expandedId === column2.view.uri && column2?.view.target && /* @__PURE__ */ React.createElement("div", {
192
181
  className: "col-span-5 my-2 border border-separator rounded-md"
193
182
  }, /* @__PURE__ */ React.createElement(Form.Root, {
194
183
  schema: ColumnFormSchema,
195
184
  values: column2,
196
185
  onValuesChanged: handleColumnValuesChanged(column2)
197
- }, /* @__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, {
198
187
  ref: projectionRef,
199
188
  mode: "tag",
200
189
  readonly: true,
201
- schema,
190
+ type,
202
191
  view: column2.view.target,
203
- registry: space?.db.schemaRegistry,
204
- db: space?.db,
192
+ registry: db?.graph.registry,
193
+ db,
205
194
  tags,
206
195
  types,
207
196
  onQueryChanged: handleQueryChanged
208
197
  }))))))), /* @__PURE__ */ React.createElement("div", {
209
- role: "none",
210
198
  className: "my-form-padding"
211
199
  }, /* @__PURE__ */ React.createElement(IconButton, {
212
200
  icon: "ph--plus--regular",
213
- label: t("add view label"),
201
+ label: t("add-view.label"),
214
202
  onClick: handleAdd,
215
203
  classNames: "w-full"
216
204
  })));
217
205
  };
218
-
219
- // src/containers/PipelineObjectSettings/index.ts
220
- var PipelineObjectSettings_default = PipelineObjectSettings;
221
206
  export {
222
- PipelineObjectSettings_default as default
207
+ PipelineProperties as default
223
208
  };
224
- //# sourceMappingURL=PipelineObjectSettings-D36OYVHW.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
+ }