@dxos/plugin-daily-summary 0.8.3

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 (86) hide show
  1. package/LICENSE +8 -0
  2. package/dist/lib/browser/DailySummarySettings-RF6P6R5M.mjs +63 -0
  3. package/dist/lib/browser/DailySummarySettings-RF6P6R5M.mjs.map +7 -0
  4. package/dist/lib/browser/app-graph-builder-RHJEYETQ.mjs +39 -0
  5. package/dist/lib/browser/app-graph-builder-RHJEYETQ.mjs.map +7 -0
  6. package/dist/lib/browser/blueprint-definition-XOEDPUVU.mjs +53 -0
  7. package/dist/lib/browser/blueprint-definition-XOEDPUVU.mjs.map +7 -0
  8. package/dist/lib/browser/chunk-2TNDFGQB.mjs +21 -0
  9. package/dist/lib/browser/chunk-2TNDFGQB.mjs.map +7 -0
  10. package/dist/lib/browser/chunk-UYXGTD3T.mjs +40 -0
  11. package/dist/lib/browser/chunk-UYXGTD3T.mjs.map +7 -0
  12. package/dist/lib/browser/generate-FSSCIHAO.mjs +172 -0
  13. package/dist/lib/browser/generate-FSSCIHAO.mjs.map +7 -0
  14. package/dist/lib/browser/index.mjs +48 -0
  15. package/dist/lib/browser/index.mjs.map +7 -0
  16. package/dist/lib/browser/meta.json +1 -0
  17. package/dist/lib/browser/react-surface-WCGJVZCQ.mjs +36 -0
  18. package/dist/lib/browser/react-surface-WCGJVZCQ.mjs.map +7 -0
  19. package/dist/types/src/DailySummaryPlugin.d.ts +3 -0
  20. package/dist/types/src/DailySummaryPlugin.d.ts.map +1 -0
  21. package/dist/types/src/blueprints/daily-summary-blueprint.d.ts +7 -0
  22. package/dist/types/src/blueprints/daily-summary-blueprint.d.ts.map +1 -0
  23. package/dist/types/src/blueprints/functions/definitions.d.ts +18 -0
  24. package/dist/types/src/blueprints/functions/definitions.d.ts.map +1 -0
  25. package/dist/types/src/blueprints/functions/generate.d.ts +18 -0
  26. package/dist/types/src/blueprints/functions/generate.d.ts.map +1 -0
  27. package/dist/types/src/blueprints/functions/generate.test.d.ts +2 -0
  28. package/dist/types/src/blueprints/functions/generate.test.d.ts.map +1 -0
  29. package/dist/types/src/blueprints/functions/index.d.ts +4 -0
  30. package/dist/types/src/blueprints/functions/index.d.ts.map +1 -0
  31. package/dist/types/src/blueprints/index.d.ts +3 -0
  32. package/dist/types/src/blueprints/index.d.ts.map +1 -0
  33. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +6 -0
  34. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -0
  35. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +3 -0
  36. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +1 -0
  37. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +6 -0
  38. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +1 -0
  39. package/dist/types/src/capabilities/blueprint-definition/index.d.ts +3 -0
  40. package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +1 -0
  41. package/dist/types/src/capabilities/index.d.ts +4 -0
  42. package/dist/types/src/capabilities/index.d.ts.map +1 -0
  43. package/dist/types/src/capabilities/react-surface/index.d.ts +3 -0
  44. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
  45. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +5 -0
  46. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
  47. package/dist/types/src/containers/DailySummarySettings/DailySummarySettings.d.ts +7 -0
  48. package/dist/types/src/containers/DailySummarySettings/DailySummarySettings.d.ts.map +1 -0
  49. package/dist/types/src/containers/DailySummarySettings/index.d.ts +3 -0
  50. package/dist/types/src/containers/DailySummarySettings/index.d.ts.map +1 -0
  51. package/dist/types/src/containers/index.d.ts +3 -0
  52. package/dist/types/src/containers/index.d.ts.map +1 -0
  53. package/dist/types/src/index.d.ts +3 -0
  54. package/dist/types/src/index.d.ts.map +1 -0
  55. package/dist/types/src/meta.d.ts +3 -0
  56. package/dist/types/src/meta.d.ts.map +1 -0
  57. package/dist/types/src/meta.test.d.ts +2 -0
  58. package/dist/types/src/meta.test.d.ts.map +1 -0
  59. package/dist/types/src/translations.d.ts +11 -0
  60. package/dist/types/src/translations.d.ts.map +1 -0
  61. package/dist/types/src/translations.test.d.ts +2 -0
  62. package/dist/types/src/translations.test.d.ts.map +1 -0
  63. package/dist/types/tsconfig.tsbuildinfo +1 -0
  64. package/package.json +71 -0
  65. package/src/DailySummaryPlugin.tsx +18 -0
  66. package/src/blueprints/daily-summary-blueprint.ts +37 -0
  67. package/src/blueprints/functions/definitions.ts +43 -0
  68. package/src/blueprints/functions/generate.test.ts +143 -0
  69. package/src/blueprints/functions/generate.ts +182 -0
  70. package/src/blueprints/functions/index.ts +9 -0
  71. package/src/blueprints/index.ts +6 -0
  72. package/src/capabilities/app-graph-builder/app-graph-builder.ts +37 -0
  73. package/src/capabilities/app-graph-builder/index.ts +7 -0
  74. package/src/capabilities/blueprint-definition/blueprint-definition.ts +17 -0
  75. package/src/capabilities/blueprint-definition/index.ts +7 -0
  76. package/src/capabilities/index.ts +7 -0
  77. package/src/capabilities/react-surface/index.ts +7 -0
  78. package/src/capabilities/react-surface/react-surface.tsx +33 -0
  79. package/src/containers/DailySummarySettings/DailySummarySettings.tsx +68 -0
  80. package/src/containers/DailySummarySettings/index.ts +7 -0
  81. package/src/containers/index.ts +7 -0
  82. package/src/index.ts +6 -0
  83. package/src/meta.test.ts +21 -0
  84. package/src/meta.ts +19 -0
  85. package/src/translations.test.ts +20 -0
  86. package/src/translations.ts +20 -0
@@ -0,0 +1,68 @@
1
+ //
2
+ // Copyright 2026 DXOS.org
3
+ //
4
+
5
+ import React, { useCallback, useMemo } from 'react';
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';
11
+ import { useQuery } from '@dxos/react-client/echo';
12
+ import { IconButton, useTranslation } from '@dxos/react-ui';
13
+
14
+ import { GenerateSummary } from '../../blueprints/functions/definitions';
15
+ import { meta } from '../../meta';
16
+
17
+ export type DailySummarySettingsProps = {
18
+ space: Space;
19
+ };
20
+
21
+ export const DailySummarySettings = ({ space }: DailySummarySettingsProps) => {
22
+ const { t } = useTranslation(meta.id);
23
+
24
+ const triggers = useQuery(space.db, Filter.type(Trigger.Trigger));
25
+ const existingTrigger = useMemo(
26
+ () =>
27
+ triggers.find((trigger) => {
28
+ if (trigger.spec?.kind !== 'timer') {
29
+ return false;
30
+ }
31
+ const target = trigger.function?.target;
32
+ return (
33
+ target != null && 'key' in target && (target as Record<string, unknown>).key === GenerateSummary.meta.key
34
+ );
35
+ }),
36
+ [triggers],
37
+ );
38
+
39
+ const handleCreateTrigger = useCallback(() => {
40
+ if (existingTrigger) {
41
+ return;
42
+ }
43
+ const trigger = Trigger.make({
44
+ enabled: true,
45
+ spec: {
46
+ kind: 'timer',
47
+ cron: '0 21 * * *',
48
+ },
49
+ function: Ref.make(Operation.serialize(GenerateSummary)),
50
+ });
51
+ space.db.add(trigger);
52
+ }, [space, existingTrigger]);
53
+
54
+ return (
55
+ <div className='flex flex-col gap-4 p-4'>
56
+ <h2 className='text-lg font-medium'>{t('plugin name')}</h2>
57
+ <p className='text-sm text-description'>{t('create trigger description')}</p>
58
+ <div>
59
+ <IconButton
60
+ icon={existingTrigger ? 'ph--check--regular' : 'ph--plus--regular'}
61
+ label={t('create trigger label')}
62
+ onClick={handleCreateTrigger}
63
+ disabled={!!existingTrigger}
64
+ />
65
+ </div>
66
+ </div>
67
+ );
68
+ };
@@ -0,0 +1,7 @@
1
+ //
2
+ // Copyright 2026 DXOS.org
3
+ //
4
+
5
+ import { DailySummarySettings } from './DailySummarySettings';
6
+
7
+ export default DailySummarySettings;
@@ -0,0 +1,7 @@
1
+ //
2
+ // Copyright 2026 DXOS.org
3
+ //
4
+
5
+ import { type ComponentType, lazy } from 'react';
6
+
7
+ export const DailySummarySettings: ComponentType<any> = lazy(() => import('./DailySummarySettings'));
package/src/index.ts ADDED
@@ -0,0 +1,6 @@
1
+ //
2
+ // Copyright 2026 DXOS.org
3
+ //
4
+
5
+ export { meta } from './meta';
6
+ export { DailySummaryPlugin } from './DailySummaryPlugin';
@@ -0,0 +1,21 @@
1
+ //
2
+ // Copyright 2026 DXOS.org
3
+ //
4
+
5
+ import { describe, expect, test } from 'vitest';
6
+
7
+ import { meta } from './meta';
8
+
9
+ describe('plugin meta', () => {
10
+ test('has correct id', () => {
11
+ expect(meta.id).toBe('org.dxos.plugin.daily-summary');
12
+ });
13
+
14
+ test('has required fields', () => {
15
+ expect(meta.name).toBe('Daily Summary');
16
+ expect(meta.description).toBeTruthy();
17
+ expect(meta.icon).toBe('ph--calendar-check--regular');
18
+ expect(meta.iconHue).toBe('amber');
19
+ expect(meta.source).toContain('plugin-daily-summary');
20
+ });
21
+ });
package/src/meta.ts ADDED
@@ -0,0 +1,19 @@
1
+ //
2
+ // Copyright 2026 DXOS.org
3
+ //
4
+
5
+ import { type Plugin } from '@dxos/app-framework';
6
+ import { trim } from '@dxos/util';
7
+
8
+ export const meta: Plugin.Meta = {
9
+ id: 'org.dxos.plugin.daily-summary',
10
+ name: 'Daily Summary',
11
+ description: trim`
12
+ Generates a daily summary of your activity by querying objects edited in the last day
13
+ and feeding them to an AI agent. Runs on a configurable schedule (default 9 PM).
14
+ `,
15
+ icon: 'ph--calendar-check--regular',
16
+ iconHue: 'sky',
17
+ tags: ['labs'],
18
+ source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-daily-summary',
19
+ };
@@ -0,0 +1,20 @@
1
+ //
2
+ // Copyright 2026 DXOS.org
3
+ //
4
+
5
+ import { describe, expect, test } from 'vitest';
6
+
7
+ import { meta } from './meta';
8
+ import { translations } from './translations';
9
+
10
+ describe('translations', () => {
11
+ const enUS = translations[0]['en-US'];
12
+
13
+ test('has plugin translations', () => {
14
+ const pluginTranslations = enUS[meta.id];
15
+ expect(pluginTranslations).toBeDefined();
16
+ expect(pluginTranslations['plugin name']).toBe('Daily Summary');
17
+ expect(pluginTranslations['create trigger label']).toBeTruthy();
18
+ expect(pluginTranslations['create trigger description']).toBeTruthy();
19
+ });
20
+ });
@@ -0,0 +1,20 @@
1
+ //
2
+ // Copyright 2026 DXOS.org
3
+ //
4
+
5
+ import { type Resource } from '@dxos/react-ui';
6
+
7
+ import { meta } from './meta';
8
+
9
+ export const translations = [
10
+ {
11
+ 'en-US': {
12
+ [meta.id]: {
13
+ 'plugin name': 'Daily Summary',
14
+ 'create trigger label': 'Create daily summary trigger',
15
+ 'create trigger description':
16
+ 'Create a timer trigger that generates an AI-powered daily summary. After creation, edit the schedule in the Automation panel.',
17
+ },
18
+ },
19
+ },
20
+ ] as const satisfies Resource[];