@dxos/plugin-daily-summary 0.8.4-main.9be5663bfe → 0.8.4-main.fcc0d83b33

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 (36) hide show
  1. package/dist/lib/browser/index.mjs +2 -18
  2. package/dist/lib/browser/index.mjs.map +4 -4
  3. package/dist/lib/browser/meta.json +1 -1
  4. package/dist/lib/browser/translations.mjs +18 -0
  5. package/dist/lib/browser/translations.mjs.map +7 -0
  6. package/dist/types/src/DailySummaryPlugin.d.ts.map +1 -1
  7. package/dist/types/src/blueprints/daily-summary-blueprint.d.ts +2 -2
  8. package/dist/types/src/blueprints/daily-summary-blueprint.d.ts.map +1 -1
  9. package/dist/types/src/blueprints/functions/definitions.d.ts +2 -2
  10. package/dist/types/src/blueprints/functions/definitions.d.ts.map +1 -1
  11. package/dist/types/src/blueprints/functions/generate.d.ts +2 -2
  12. package/dist/types/src/blueprints/functions/generate.d.ts.map +1 -1
  13. package/dist/types/src/blueprints/functions/index.d.ts +1 -1
  14. package/dist/types/src/blueprints/functions/index.d.ts.map +1 -1
  15. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  16. package/dist/types/src/capabilities/blueprint-definition.d.ts +1 -2
  17. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -1
  18. package/dist/types/src/capabilities/index.d.ts +1 -1
  19. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  20. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  21. package/dist/types/src/containers/DailySummarySettings/DailySummarySettings.d.ts +2 -5
  22. package/dist/types/src/containers/DailySummarySettings/DailySummarySettings.d.ts.map +1 -1
  23. package/dist/types/src/translations.d.ts +5 -6
  24. package/dist/types/src/translations.d.ts.map +1 -1
  25. package/dist/types/tsconfig.tsbuildinfo +1 -1
  26. package/package.json +34 -29
  27. package/src/DailySummaryPlugin.tsx +1 -2
  28. package/src/blueprints/daily-summary-blueprint.ts +2 -3
  29. package/src/blueprints/functions/definitions.ts +1 -1
  30. package/src/blueprints/functions/generate.test.ts +9 -9
  31. package/src/blueprints/functions/generate.ts +12 -6
  32. package/src/blueprints/functions/index.ts +1 -1
  33. package/src/capabilities/app-graph-builder.ts +4 -5
  34. package/src/capabilities/react-surface.tsx +1 -2
  35. package/src/containers/DailySummarySettings/DailySummarySettings.tsx +10 -14
  36. package/src/translations.test.ts +1 -2
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/plugin-daily-summary",
3
- "version": "0.8.4-main.9be5663bfe",
3
+ "version": "0.8.4-main.fcc0d83b33",
4
4
  "description": "Daily activity summary plugin",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -16,13 +16,20 @@
16
16
  "#blueprints": "./src/blueprints/index.ts",
17
17
  "#capabilities": "./src/capabilities/index.ts",
18
18
  "#containers": "./src/containers/index.ts",
19
- "#meta": "./src/meta.ts"
19
+ "#meta": "./src/meta.ts",
20
+ "#translations": "./src/translations.ts"
20
21
  },
21
22
  "exports": {
22
23
  ".": {
23
24
  "source": "./src/index.ts",
24
25
  "types": "./dist/types/src/index.d.ts",
25
26
  "browser": "./dist/lib/browser/index.mjs"
27
+ },
28
+ "./translations": {
29
+ "source": "./src/translations.ts",
30
+ "types": "./dist/types/src/translations.d.ts",
31
+ "browser": "./dist/lib/browser/translations.mjs",
32
+ "node": "./dist/lib/node-esm/translations.mjs"
26
33
  }
27
34
  },
28
35
  "types": "dist/types/src/index.d.ts",
@@ -33,44 +40,42 @@
33
40
  "dependencies": {
34
41
  "@effect/ai": "0.33.2",
35
42
  "effect": "3.20.0",
36
- "@dxos/ai": "0.8.4-main.9be5663bfe",
37
- "@dxos/app-framework": "0.8.4-main.9be5663bfe",
38
- "@dxos/app-toolkit": "0.8.4-main.9be5663bfe",
39
- "@dxos/assistant": "0.8.4-main.9be5663bfe",
40
- "@dxos/client": "0.8.4-main.9be5663bfe",
41
- "@dxos/client-protocol": "0.8.4-main.9be5663bfe",
42
- "@dxos/effect": "0.8.4-main.9be5663bfe",
43
- "@dxos/echo": "0.8.4-main.9be5663bfe",
44
- "@dxos/functions": "0.8.4-main.9be5663bfe",
45
- "@dxos/functions-runtime": "0.8.4-main.9be5663bfe",
46
- "@dxos/invariant": "0.8.4-main.9be5663bfe",
47
- "@dxos/plugin-graph": "0.8.4-main.9be5663bfe",
48
- "@dxos/operation": "0.8.4-main.9be5663bfe",
49
- "@dxos/keys": "0.8.4-main.9be5663bfe",
50
- "@dxos/plugin-space": "0.8.4-main.9be5663bfe",
51
- "@dxos/react-client": "0.8.4-main.9be5663bfe",
52
- "@dxos/schema": "0.8.4-main.9be5663bfe",
53
- "@dxos/blueprints": "0.8.4-main.9be5663bfe",
54
- "@dxos/types": "0.8.4-main.9be5663bfe",
55
- "@dxos/util": "0.8.4-main.9be5663bfe",
56
- "@dxos/react-ui-form": "0.8.4-main.9be5663bfe"
43
+ "@dxos/ai": "0.8.4-main.fcc0d83b33",
44
+ "@dxos/app-framework": "0.8.4-main.fcc0d83b33",
45
+ "@dxos/assistant": "0.8.4-main.fcc0d83b33",
46
+ "@dxos/app-toolkit": "0.8.4-main.fcc0d83b33",
47
+ "@dxos/client-protocol": "0.8.4-main.fcc0d83b33",
48
+ "@dxos/client": "0.8.4-main.fcc0d83b33",
49
+ "@dxos/echo": "0.8.4-main.fcc0d83b33",
50
+ "@dxos/compute": "0.8.4-main.fcc0d83b33",
51
+ "@dxos/invariant": "0.8.4-main.fcc0d83b33",
52
+ "@dxos/effect": "0.8.4-main.fcc0d83b33",
53
+ "@dxos/plugin-graph": "0.8.4-main.fcc0d83b33",
54
+ "@dxos/plugin-space": "0.8.4-main.fcc0d83b33",
55
+ "@dxos/react-ui-form": "0.8.4-main.fcc0d83b33",
56
+ "@dxos/react-client": "0.8.4-main.fcc0d83b33",
57
+ "@dxos/util": "0.8.4-main.fcc0d83b33",
58
+ "@dxos/types": "0.8.4-main.fcc0d83b33",
59
+ "@dxos/schema": "0.8.4-main.fcc0d83b33",
60
+ "@dxos/keys": "0.8.4-main.fcc0d83b33"
57
61
  },
58
62
  "devDependencies": {
59
- "@storybook/react-vite": "^10.2.12",
63
+ "@storybook/react-vite": "^10.3.6",
60
64
  "@types/react": "~19.2.7",
61
65
  "@types/react-dom": "~19.2.3",
62
66
  "react": "~19.2.3",
63
67
  "react-dom": "~19.2.3",
64
- "vite": "^7.1.11",
65
- "@dxos/echo-db": "0.8.4-main.9be5663bfe",
66
- "@dxos/react-ui": "0.8.4-main.9be5663bfe",
67
- "@dxos/storybook-utils": "0.8.4-main.9be5663bfe"
68
+ "vite": "^8.0.10",
69
+ "@dxos/echo-db": "0.8.4-main.fcc0d83b33",
70
+ "@dxos/functions-runtime": "0.8.4-main.fcc0d83b33",
71
+ "@dxos/react-ui": "0.8.4-main.fcc0d83b33",
72
+ "@dxos/storybook-utils": "0.8.4-main.fcc0d83b33"
68
73
  },
69
74
  "peerDependencies": {
70
75
  "effect": "3.20.0",
71
76
  "react": "~19.2.3",
72
77
  "react-dom": "~19.2.3",
73
- "@dxos/react-ui": "0.8.4-main.9be5663bfe"
78
+ "@dxos/react-ui": "0.8.4-main.fcc0d83b33"
74
79
  },
75
80
  "publishConfig": {
76
81
  "access": "public"
@@ -7,8 +7,7 @@ import { AppPlugin } from '@dxos/app-toolkit';
7
7
 
8
8
  import { AppGraphBuilder, BlueprintDefinition, ReactSurface } from '#capabilities';
9
9
  import { meta } from '#meta';
10
-
11
- import { translations } from './translations';
10
+ import { translations } from '#translations';
12
11
 
13
12
  export const DailySummaryPlugin = Plugin.define(meta).pipe(
14
13
  AppPlugin.addAppGraphModule({ activate: AppGraphBuilder }),
@@ -2,8 +2,7 @@
2
2
  // Copyright 2026 DXOS.org
3
3
  //
4
4
 
5
- import { type AppCapabilities } from '@dxos/app-toolkit';
6
- import { Blueprint, Template } from '@dxos/blueprints';
5
+ import { Blueprint, Template } from '@dxos/compute';
7
6
  import { trim } from '@dxos/util';
8
7
 
9
8
  import { DailySummaryHandlers, GenerateSummary } from './functions';
@@ -29,7 +28,7 @@ const make = () =>
29
28
  }),
30
29
  });
31
30
 
32
- const blueprint: AppCapabilities.BlueprintDefinition = {
31
+ const blueprint: Blueprint.Definition = {
33
32
  key: BLUEPRINT_KEY,
34
33
  make,
35
34
  };
@@ -5,8 +5,8 @@
5
5
  import * as Schema from 'effect/Schema';
6
6
 
7
7
  import { AiService } from '@dxos/ai';
8
+ import { Operation } from '@dxos/compute';
8
9
  import { Database } from '@dxos/echo';
9
- import { Operation } from '@dxos/operation';
10
10
 
11
11
  /**
12
12
  * Generates a daily summary of recently modified objects using AI.
@@ -6,12 +6,12 @@ import { describe, expect, it } from '@effect/vitest';
6
6
  import * as Effect from 'effect/Effect';
7
7
  import * as Schema from 'effect/Schema';
8
8
 
9
- import { AssistantTestLayer } from '@dxos/assistant/testing';
10
- import { Blueprint } from '@dxos/blueprints';
11
9
  import { SpaceProperties } from '@dxos/client-protocol';
10
+ import { Blueprint } from '@dxos/compute';
11
+ import { Operation } from '@dxos/compute';
12
12
  import { Collection, DXN, Database, Obj, Query, Ref, Type } from '@dxos/echo';
13
13
  import { TestHelpers } from '@dxos/effect/testing';
14
- import { FunctionInvocationService } from '@dxos/functions';
14
+ import { AssistantTestLayer } from '@dxos/functions-runtime/testing';
15
15
  import { ObjectId } from '@dxos/keys';
16
16
  import { Text } from '@dxos/schema';
17
17
  import { HasSubject } from '@dxos/types';
@@ -49,7 +49,7 @@ describe('GenerateSummary', () => {
49
49
  'creates a Markdown document with summary content',
50
50
  Effect.fnUntraced(
51
51
  function* (_) {
52
- const result = yield* FunctionInvocationService.invokeFunction(GenerateSummary, {
52
+ const result = yield* Operation.invoke(GenerateSummary, {
53
53
  lookbackHours: 24,
54
54
  });
55
55
 
@@ -73,7 +73,7 @@ describe('GenerateSummary', () => {
73
73
  'creates a "Summaries" collection if none exists',
74
74
  Effect.fnUntraced(
75
75
  function* (_) {
76
- yield* FunctionInvocationService.invokeFunction(GenerateSummary, {});
76
+ yield* Operation.invoke(GenerateSummary, {});
77
77
 
78
78
  const collections = yield* Database.runQuery(Query.type(Collection.Collection, { name: 'Summaries' }));
79
79
  expect(collections.length).toBe(1);
@@ -89,8 +89,8 @@ describe('GenerateSummary', () => {
89
89
  'reuses existing "Summaries" collection on subsequent calls',
90
90
  Effect.fnUntraced(
91
91
  function* (_) {
92
- yield* FunctionInvocationService.invokeFunction(GenerateSummary, {});
93
- yield* FunctionInvocationService.invokeFunction(GenerateSummary, {});
92
+ yield* Operation.invoke(GenerateSummary, {});
93
+ yield* Operation.invoke(GenerateSummary, {});
94
94
 
95
95
  const collections = yield* Database.runQuery(Query.type(Collection.Collection, { name: 'Summaries' }));
96
96
  expect(collections.length).toBe(1);
@@ -107,7 +107,7 @@ describe('GenerateSummary', () => {
107
107
  Effect.fnUntraced(
108
108
  function* (_) {
109
109
  const previousSummary = 'Yesterday was productive. 10 objects edited.';
110
- const result = yield* FunctionInvocationService.invokeFunction(GenerateSummary, {
110
+ const result = yield* Operation.invoke(GenerateSummary, {
111
111
  previousSummary,
112
112
  lookbackHours: 24,
113
113
  });
@@ -127,7 +127,7 @@ describe('GenerateSummary', () => {
127
127
  'names document with today date',
128
128
  Effect.fnUntraced(
129
129
  function* (_) {
130
- const result = yield* FunctionInvocationService.invokeFunction(GenerateSummary, {});
130
+ const result = yield* Operation.invoke(GenerateSummary, {});
131
131
  const today = new Date().toISOString().slice(0, 10);
132
132
  expect(result.date).toBe(today);
133
133
 
@@ -9,9 +9,9 @@ import * as Layer from 'effect/Layer';
9
9
  import * as Schema from 'effect/Schema';
10
10
 
11
11
  import { AiService, ToolExecutionService, ToolResolverService } from '@dxos/ai';
12
+ import { Trace } from '@dxos/compute';
13
+ import { Operation, OperationRegistry } from '@dxos/compute';
12
14
  import { Collection, Database, Filter, Obj, Query, Ref, Type } from '@dxos/echo';
13
- import { FunctionInvocationService, TracingService } from '@dxos/functions';
14
- import { Operation } from '@dxos/operation';
15
15
  import { Text } from '@dxos/schema';
16
16
  import { CollectionModel } from '@dxos/schema';
17
17
  import { trim } from '@dxos/util';
@@ -109,8 +109,14 @@ export default GenerateSummary.pipe(
109
109
  AiService.model('@anthropic/claude-haiku-4-5'),
110
110
  ToolResolverService.layerEmpty,
111
111
  ToolExecutionService.layerEmpty,
112
- TracingService.layerNoop,
113
- FunctionInvocationService.layerNotAvailable,
112
+ Database.notAvailable,
113
+ Layer.succeed(Operation.Service, {
114
+ invoke: () => Effect.die('Not available.'),
115
+ schedule: () => Effect.die('Not available.'),
116
+ invokePromise: async () => ({ error: new Error('Not available.') }),
117
+ } as any),
118
+ Layer.succeed(OperationRegistry.Service, { resolve: () => Effect.succeed(undefined) } as any),
119
+ Trace.writerLayerNoop,
114
120
  ),
115
121
  ),
116
122
  ),
@@ -158,13 +164,13 @@ const updateDocContent = Effect.fn(function* (doc: MarkdownDoc, newContent: stri
158
164
  if (Ref.isRef(textRef)) {
159
165
  const text: Text.Text | undefined = yield* Effect.promise(() => textRef.load());
160
166
  if (text) {
161
- Obj.change(text, (text) => {
167
+ Obj.update(text, (text) => {
162
168
  text.content = newContent;
163
169
  });
164
170
  return;
165
171
  }
166
172
  }
167
- Obj.change(doc, (doc) => {
173
+ Obj.update(doc, (doc) => {
168
174
  doc.content = Ref.make(Text.make(newContent));
169
175
  });
170
176
  });
@@ -2,7 +2,7 @@
2
2
  // Copyright 2026 DXOS.org
3
3
  //
4
4
 
5
- import { OperationHandlerSet } from '@dxos/operation';
5
+ import { OperationHandlerSet } from '@dxos/compute';
6
6
 
7
7
  export * from './definitions';
8
8
 
@@ -5,9 +5,8 @@
5
5
  import * as Effect from 'effect/Effect';
6
6
 
7
7
  import { Capability } from '@dxos/app-framework';
8
- import { AppCapabilities, AppNode } from '@dxos/app-toolkit';
9
- import { GraphBuilder, NodeMatcher } from '@dxos/plugin-graph';
10
- import { meta as spaceMeta } from '@dxos/plugin-space/meta';
8
+ import { AppCapabilities, AppNode, AppNodeMatcher } from '@dxos/app-toolkit';
9
+ import { GraphBuilder } from '@dxos/plugin-graph';
11
10
 
12
11
  import { meta } from '#meta';
13
12
 
@@ -16,8 +15,8 @@ export default Capability.makeModule(
16
15
  const extensions = yield* Effect.all([
17
16
  GraphBuilder.createExtension({
18
17
  id: 'space-settings-daily-summary',
19
- match: NodeMatcher.whenNodeType(`${spaceMeta.id}.settings`),
20
- connector: (node) =>
18
+ match: AppNodeMatcher.whenSpace,
19
+ connector: () =>
21
20
  Effect.succeed([
22
21
  AppNode.makeSettingsPanel({
23
22
  id: 'daily-summary',
@@ -17,8 +17,7 @@ export default Capability.makeModule(() =>
17
17
  Capability.contributes(Capabilities.ReactSurface, [
18
18
  Surface.create({
19
19
  id: 'space-settings-daily-summary',
20
- role: 'article',
21
- filter: AppSurface.literalSection(`${meta.id}.space-settings-daily-summary`),
20
+ filter: AppSurface.literal(AppSurface.Article, `${meta.id}.space-settings-daily-summary`),
22
21
  component: () => {
23
22
  const space = useActiveSpace();
24
23
  if (!space) {
@@ -4,10 +4,10 @@
4
4
 
5
5
  import React, { useCallback, useMemo } from 'react';
6
6
 
7
- import type { Space } from '@dxos/client/echo';
8
- import { Filter, Ref } from '@dxos/echo';
9
- import { Trigger } from '@dxos/functions';
10
- import { Operation } from '@dxos/operation';
7
+ import { AppSurface } from '@dxos/app-toolkit/ui';
8
+ import { Trigger } from '@dxos/compute';
9
+ import { Operation } from '@dxos/compute';
10
+ import { Filter, Query, Ref } from '@dxos/echo';
11
11
  import { useQuery } from '@dxos/react-client/echo';
12
12
  import { IconButton, useTranslation } from '@dxos/react-ui';
13
13
  import { Settings } from '@dxos/react-ui-form';
@@ -15,14 +15,13 @@ import { Settings } from '@dxos/react-ui-form';
15
15
  import { GenerateSummary } from '#blueprints';
16
16
  import { meta } from '#meta';
17
17
 
18
- export type DailySummarySettingsProps = {
19
- space: Space;
20
- };
21
-
22
- export const DailySummarySettings = ({ space }: DailySummarySettingsProps) => {
18
+ export const DailySummarySettings = ({ space }: AppSurface.SpaceArticleProps) => {
23
19
  const { t } = useTranslation(meta.id);
24
20
 
25
- const triggers = useQuery(space.db, Filter.type(Trigger.Trigger));
21
+ const triggers = useQuery(
22
+ space.db,
23
+ Query.select(Filter.type(Trigger.Trigger)).debugLabel('plugin-daily-summary.DailySummarySettings'),
24
+ );
26
25
  const existingTrigger = useMemo(
27
26
  () =>
28
27
  triggers.find((trigger) => {
@@ -43,10 +42,7 @@ export const DailySummarySettings = ({ space }: DailySummarySettingsProps) => {
43
42
  }
44
43
  const trigger = Trigger.make({
45
44
  enabled: true,
46
- spec: {
47
- kind: 'timer',
48
- cron: '0 21 * * *',
49
- },
45
+ spec: Trigger.specTimer('0 21 * * *'),
50
46
  function: Ref.make(Operation.serialize(GenerateSummary)),
51
47
  });
52
48
  space.db.add(trigger);
@@ -5,8 +5,7 @@
5
5
  import { describe, expect, test } from 'vitest';
6
6
 
7
7
  import { meta } from '#meta';
8
-
9
- import { translations } from './translations';
8
+ import { translations } from '#translations';
10
9
 
11
10
  describe('translations', () => {
12
11
  const enUS = translations[0]['en-US'];