@dxos/plugin-chess 0.8.1-staging.391c573 → 0.8.1-staging.9eaf14f

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 (69) hide show
  1. package/dist/lib/browser/{ChessContainer-XERPODLK.mjs → ChessContainer-6JIE36JW.mjs} +2 -4
  2. package/dist/lib/browser/ChessContainer-6JIE36JW.mjs.map +7 -0
  3. package/dist/lib/browser/{artifact-definition-B4K4M4EX.mjs → artifact-definition-GHBVTO4Y.mjs} +21 -25
  4. package/dist/lib/browser/artifact-definition-GHBVTO4Y.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-NNA3W3LX.mjs → chunk-4NJ4PMPW.mjs} +1 -1
  6. package/dist/lib/browser/{chunk-NNA3W3LX.mjs.map → chunk-4NJ4PMPW.mjs.map} +2 -2
  7. package/dist/lib/browser/chunk-7SPN7XYA.mjs +8 -0
  8. package/dist/lib/browser/index.mjs +7 -14
  9. package/dist/lib/browser/index.mjs.map +3 -3
  10. package/dist/lib/browser/{intent-resolver-KBIH2KYC.mjs → intent-resolver-JVLCHAJD.mjs} +2 -2
  11. package/dist/lib/browser/meta.json +1 -1
  12. package/dist/lib/browser/{react-surface-2PI2KNSU.mjs → react-surface-LZYVKHCU.mjs} +3 -3
  13. package/dist/lib/browser/types/index.mjs +1 -1
  14. package/dist/lib/node/{ChessContainer-LEPLNICP.cjs → ChessContainer-BZMTO4FZ.cjs} +5 -7
  15. package/dist/lib/node/ChessContainer-BZMTO4FZ.cjs.map +7 -0
  16. package/dist/lib/node/{artifact-definition-DHM4H4VO.cjs → artifact-definition-JDJAOTXF.cjs} +32 -36
  17. package/dist/lib/node/artifact-definition-JDJAOTXF.cjs.map +7 -0
  18. package/dist/lib/node/{chunk-VXYRI6VA.cjs → chunk-PQ64RGCS.cjs} +4 -4
  19. package/dist/lib/node/{chunk-VXYRI6VA.cjs.map → chunk-PQ64RGCS.cjs.map} +2 -2
  20. package/dist/lib/node/{chunk-ITDMCBQQ.cjs → chunk-WKOWLRXP.cjs} +5 -5
  21. package/dist/lib/node/index.cjs +22 -29
  22. package/dist/lib/node/index.cjs.map +3 -3
  23. package/dist/lib/node/{intent-resolver-TZFKPQOV.cjs → intent-resolver-IJXRCQA5.cjs} +7 -7
  24. package/dist/lib/node/meta.json +1 -1
  25. package/dist/lib/node/{react-surface-OHQIPHSN.cjs → react-surface-JWVHHTQU.cjs} +10 -10
  26. package/dist/lib/node/types/index.cjs +5 -5
  27. package/dist/lib/node/types/index.cjs.map +1 -1
  28. package/dist/lib/node-esm/{ChessContainer-S76WNBWN.mjs → ChessContainer-MAXLUGKY.mjs} +2 -4
  29. package/dist/lib/node-esm/ChessContainer-MAXLUGKY.mjs.map +7 -0
  30. package/dist/lib/node-esm/{artifact-definition-KOK5BODD.mjs → artifact-definition-CSY4I334.mjs} +21 -25
  31. package/dist/lib/node-esm/artifact-definition-CSY4I334.mjs.map +7 -0
  32. package/dist/lib/node-esm/{chunk-IP66EHSW.mjs → chunk-GLBZ7ZZD.mjs} +1 -1
  33. package/dist/lib/node-esm/{chunk-IP66EHSW.mjs.map → chunk-GLBZ7ZZD.mjs.map} +2 -2
  34. package/dist/lib/node-esm/{chunk-B72CIN6T.mjs → chunk-YFCRXSGH.mjs} +2 -2
  35. package/dist/lib/node-esm/index.mjs +7 -14
  36. package/dist/lib/node-esm/index.mjs.map +3 -3
  37. package/dist/lib/node-esm/{intent-resolver-WBUS64KC.mjs → intent-resolver-AWNZCS56.mjs} +2 -2
  38. package/dist/lib/node-esm/meta.json +1 -1
  39. package/dist/lib/node-esm/{react-surface-XX4VFNRS.mjs → react-surface-TQKBCMJU.mjs} +3 -3
  40. package/dist/lib/node-esm/types/index.mjs +1 -1
  41. package/dist/types/src/ChessPlugin.d.ts.map +1 -1
  42. package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -1
  43. package/dist/types/src/meta.d.ts +2 -8
  44. package/dist/types/src/meta.d.ts.map +1 -1
  45. package/dist/types/src/translations.d.ts +2 -6
  46. package/dist/types/src/translations.d.ts.map +1 -1
  47. package/package.json +20 -20
  48. package/src/ChessPlugin.tsx +1 -2
  49. package/src/capabilities/artifact-definition.ts +9 -16
  50. package/src/components/ChessContainer.tsx +1 -1
  51. package/src/components/Chessboard.stories.tsx +2 -2
  52. package/src/meta.ts +2 -2
  53. package/src/translations.ts +1 -2
  54. package/dist/lib/browser/ChessContainer-XERPODLK.mjs.map +0 -7
  55. package/dist/lib/browser/artifact-definition-B4K4M4EX.mjs.map +0 -7
  56. package/dist/lib/browser/chunk-R26FYVUS.mjs +0 -8
  57. package/dist/lib/node/ChessContainer-LEPLNICP.cjs.map +0 -7
  58. package/dist/lib/node/artifact-definition-DHM4H4VO.cjs.map +0 -7
  59. package/dist/lib/node-esm/ChessContainer-S76WNBWN.mjs.map +0 -7
  60. package/dist/lib/node-esm/artifact-definition-KOK5BODD.mjs.map +0 -7
  61. /package/dist/lib/browser/{chunk-R26FYVUS.mjs.map → chunk-7SPN7XYA.mjs.map} +0 -0
  62. /package/dist/lib/browser/{intent-resolver-KBIH2KYC.mjs.map → intent-resolver-JVLCHAJD.mjs.map} +0 -0
  63. /package/dist/lib/browser/{react-surface-2PI2KNSU.mjs.map → react-surface-LZYVKHCU.mjs.map} +0 -0
  64. /package/dist/lib/node/{chunk-ITDMCBQQ.cjs.map → chunk-WKOWLRXP.cjs.map} +0 -0
  65. /package/dist/lib/node/{intent-resolver-TZFKPQOV.cjs.map → intent-resolver-IJXRCQA5.cjs.map} +0 -0
  66. /package/dist/lib/node/{react-surface-OHQIPHSN.cjs.map → react-surface-JWVHHTQU.cjs.map} +0 -0
  67. /package/dist/lib/node-esm/{chunk-B72CIN6T.mjs.map → chunk-YFCRXSGH.mjs.map} +0 -0
  68. /package/dist/lib/node-esm/{intent-resolver-WBUS64KC.mjs.map → intent-resolver-AWNZCS56.mjs.map} +0 -0
  69. /package/dist/lib/node-esm/{react-surface-XX4VFNRS.mjs.map → react-surface-TQKBCMJU.mjs.map} +0 -0
@@ -1,10 +1,4 @@
1
+ import { type PluginMeta } from '@dxos/app-framework';
1
2
  export declare const CHESS_PLUGIN = "dxos.org/plugin/chess";
2
- export declare const meta: {
3
- id: string;
4
- name: string;
5
- description: string;
6
- icon: string;
7
- source: string;
8
- screenshots: string[];
9
- };
3
+ export declare const meta: PluginMeta;
10
4
  //# sourceMappingURL=meta.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/meta.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,YAAY,0BAA0B,CAAC;AAEpD,eAAO,MAAM,IAAI;;;;;;;CAQK,CAAC"}
1
+ {"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/meta.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD,eAAO,MAAM,YAAY,0BAA0B,CAAC;AAEpD,eAAO,MAAM,IAAI,EAAE,UAQlB,CAAC"}
@@ -2,21 +2,17 @@ declare const _default: {
2
2
  'en-US': {
3
3
  [x: string]: {
4
4
  'typename label': string;
5
+ 'object name placeholder': string;
5
6
  'plugin name'?: undefined;
6
- 'game title placeholder'?: undefined;
7
- 'create game label'?: undefined;
8
7
  'delete game label'?: undefined;
9
8
  } | {
10
9
  'plugin name': string;
11
- 'game title placeholder': string;
12
- 'create game label': string;
13
10
  'delete game label': string;
14
11
  'typename label'?: undefined;
12
+ 'object name placeholder'?: undefined;
15
13
  };
16
14
  "dxos.org/plugin/chess": {
17
15
  'plugin name': string;
18
- 'game title placeholder': string;
19
- 'create game label': string;
20
16
  'delete game label': string;
21
17
  };
22
18
  };
@@ -1 +1 @@
1
- {"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../../../src/translations.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAOA,wBAcE"}
1
+ {"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../../../src/translations.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAOA,wBAaE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/plugin-chess",
3
- "version": "0.8.1-staging.391c573",
3
+ "version": "0.8.1-staging.9eaf14f",
4
4
  "description": "Chess for new plugin",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -36,20 +36,20 @@
36
36
  "@preact/signals-core": "^1.6.0",
37
37
  "chess.js": "^1.0.0",
38
38
  "effect": "3.13.3",
39
- "@dxos/app-framework": "0.8.1-staging.391c573",
40
- "@dxos/artifact": "0.8.1-staging.391c573",
41
- "@dxos/async": "0.8.1-staging.391c573",
42
- "@dxos/assistant": "0.8.1-staging.391c573",
43
- "@dxos/display-name": "0.8.1-staging.391c573",
44
- "@dxos/echo-schema": "0.8.1-staging.391c573",
45
- "@dxos/invariant": "0.8.1-staging.391c573",
46
- "@dxos/live-object": "0.8.1-staging.391c573",
47
- "@dxos/plugin-graph": "0.8.1-staging.391c573",
48
- "@dxos/plugin-client": "0.8.1-staging.391c573",
49
- "@dxos/react-client": "0.8.1-staging.391c573",
50
- "@dxos/plugin-space": "0.8.1-staging.391c573",
51
- "@dxos/react-ui-gameboard": "0.8.1-staging.391c573",
52
- "@dxos/react-ui-stack": "0.8.1-staging.391c573"
39
+ "@dxos/app-framework": "0.8.1-staging.9eaf14f",
40
+ "@dxos/artifact": "0.8.1-staging.9eaf14f",
41
+ "@dxos/assistant": "0.8.1-staging.9eaf14f",
42
+ "@dxos/async": "0.8.1-staging.9eaf14f",
43
+ "@dxos/display-name": "0.8.1-staging.9eaf14f",
44
+ "@dxos/echo-schema": "0.8.1-staging.9eaf14f",
45
+ "@dxos/live-object": "0.8.1-staging.9eaf14f",
46
+ "@dxos/invariant": "0.8.1-staging.9eaf14f",
47
+ "@dxos/plugin-client": "0.8.1-staging.9eaf14f",
48
+ "@dxos/plugin-graph": "0.8.1-staging.9eaf14f",
49
+ "@dxos/react-client": "0.8.1-staging.9eaf14f",
50
+ "@dxos/plugin-space": "0.8.1-staging.9eaf14f",
51
+ "@dxos/react-ui-gameboard": "0.8.1-staging.9eaf14f",
52
+ "@dxos/react-ui-stack": "0.8.1-staging.9eaf14f"
53
53
  },
54
54
  "devDependencies": {
55
55
  "@phosphor-icons/react": "^2.1.5",
@@ -58,16 +58,16 @@
58
58
  "react": "~18.2.0",
59
59
  "react-dom": "~18.2.0",
60
60
  "vite": "5.4.7",
61
- "@dxos/react-ui": "0.8.1-staging.391c573",
62
- "@dxos/react-ui-theme": "0.8.1-staging.391c573",
63
- "@dxos/storybook-utils": "0.8.1-staging.391c573"
61
+ "@dxos/react-ui": "0.8.1-staging.9eaf14f",
62
+ "@dxos/react-ui-theme": "0.8.1-staging.9eaf14f",
63
+ "@dxos/storybook-utils": "0.8.1-staging.9eaf14f"
64
64
  },
65
65
  "peerDependencies": {
66
66
  "@phosphor-icons/react": "^2.1.5",
67
67
  "react": "~18.2.0",
68
68
  "react-dom": "~18.2.0",
69
- "@dxos/react-ui": "0.8.1-staging.391c573",
70
- "@dxos/react-ui-theme": "0.8.1-staging.391c573"
69
+ "@dxos/react-ui": "0.8.1-staging.9eaf14f",
70
+ "@dxos/react-ui-theme": "0.8.1-staging.9eaf14f"
71
71
  },
72
72
  "publishConfig": {
73
73
  "access": "public"
@@ -8,7 +8,7 @@ import { SpaceCapabilities } from '@dxos/plugin-space';
8
8
  import { defineObjectForm } from '@dxos/plugin-space/types';
9
9
 
10
10
  import { ArtifactDefinition, IntentResolver, ReactSurface } from './capabilities';
11
- import { CHESS_PLUGIN, meta } from './meta';
11
+ import { meta } from './meta';
12
12
  import translations from './translations';
13
13
  import { ChessAction, ChessType } from './types';
14
14
 
@@ -26,7 +26,6 @@ export const ChessPlugin = () =>
26
26
  contributes(Capabilities.Metadata, {
27
27
  id: ChessType.typename,
28
28
  metadata: {
29
- placeholder: ['game title placeholder', { ns: CHESS_PLUGIN }],
30
29
  icon: 'ph--shield-chevron--regular',
31
30
  },
32
31
  }),
@@ -6,12 +6,12 @@ import { Chess } from 'chess.js';
6
6
  import { pipe } from 'effect';
7
7
 
8
8
  import { Capabilities, chain, contributes, createIntent, type PromiseIntentDispatcher } from '@dxos/app-framework';
9
- import { defineArtifact, defineTool, ToolResult } from '@dxos/artifact';
9
+ import { ArtifactId, defineArtifact, defineTool, ToolResult } from '@dxos/artifact';
10
10
  import { createArtifactElement } from '@dxos/assistant';
11
11
  import { isInstanceOf, S } from '@dxos/echo-schema';
12
12
  import { invariant } from '@dxos/invariant';
13
13
  import { SpaceAction } from '@dxos/plugin-space/types';
14
- import { Filter, parseId, type Space } from '@dxos/react-client/echo';
14
+ import { Filter, type Space } from '@dxos/react-client/echo';
15
15
 
16
16
  import { meta } from '../meta';
17
17
  import { ChessAction, ChessType } from '../types';
@@ -24,14 +24,9 @@ declare global {
24
24
  }
25
25
  }
26
26
 
27
- const ArtifacftId = class extends S.String.annotations({
28
- description: 'ID of the artifact in <spaceid>:<artifactid> format',
29
- }) {};
30
- type ArtifacftId = S.Schema.Type<typeof ArtifacftId>;
31
-
32
27
  export default () => {
33
28
  const definition = defineArtifact({
34
- id: meta.id,
29
+ id: `artifact:${meta.id}`,
35
30
  name: meta.name,
36
31
  description: 'Provides a simple chess engine.',
37
32
  instructions: `
@@ -78,13 +73,12 @@ export default () => {
78
73
  name: 'inspect',
79
74
  description: 'Get the current state of the chess game.',
80
75
  caption: 'Inspecting game...',
81
- schema: S.Struct({ id: ArtifacftId }),
76
+ schema: S.Struct({ id: ArtifactId }),
82
77
  execute: async ({ id }, { extensions }) => {
83
78
  invariant(extensions?.space, 'No space');
84
- const { objects: games } = await extensions.space.db.query(Filter.schema(ChessType)).run();
85
- const { objectId } = parseId(id);
86
- const game = games.find((game) => game.id === objectId);
79
+ const game = await extensions.space.db.query({ id: ArtifactId.toDXN(id).toString() }).first();
87
80
  invariant(isInstanceOf(ChessType, game));
81
+
88
82
  return ToolResult.Success(game.fen);
89
83
  },
90
84
  }),
@@ -93,7 +87,7 @@ export default () => {
93
87
  description: 'Make a move in the chess game.',
94
88
  caption: 'Making chess move...',
95
89
  schema: S.Struct({
96
- id: ArtifacftId,
90
+ id: ArtifactId,
97
91
  move: S.String.annotations({
98
92
  description: 'The move to make in the chess game.',
99
93
  examples: ['e4', 'Bf3'],
@@ -101,10 +95,9 @@ export default () => {
101
95
  }),
102
96
  execute: async ({ id, move }, { extensions }) => {
103
97
  invariant(extensions?.space, 'No space');
104
- const { objects: games } = await extensions.space.db.query(Filter.schema(ChessType)).run();
105
- const { objectId } = parseId(id);
106
- const game = games.find((game) => game.id === objectId);
98
+ const game = await extensions.space.db.query({ id: ArtifactId.toDXN(id).toString() }).first();
107
99
  invariant(isInstanceOf(ChessType, game));
100
+
108
101
  const board = new Chess(game.fen);
109
102
  try {
110
103
  board.move(move);
@@ -18,7 +18,7 @@ const ChessContainer = ({ game }: { game: ChessType; role?: string }) => {
18
18
  }
19
19
 
20
20
  return (
21
- <StackItem.Content toolbar={false}>
21
+ <StackItem.Content>
22
22
  <div role='none' className='grid grid-rows-[60px_1fr_60px] grow overflow-hidden'>
23
23
  <div />
24
24
 
@@ -12,7 +12,7 @@ import { withLayout, withTheme } from '@dxos/storybook-utils';
12
12
 
13
13
  import { ChessPanel } from './ChessPanel';
14
14
 
15
- const Render = () => {
15
+ const DefaultStory = () => {
16
16
  const model = useMemo(() => new ChessModel(), []);
17
17
 
18
18
  return (
@@ -28,7 +28,7 @@ const Render = () => {
28
28
  const meta: Meta<typeof Chessboard> = {
29
29
  title: 'plugins/plugin-chess/Chessboard',
30
30
  component: Chessboard,
31
- render: Render,
31
+ render: DefaultStory,
32
32
  decorators: [withTheme, withLayout({ fullscreen: true })],
33
33
  };
34
34
 
package/src/meta.ts CHANGED
@@ -6,7 +6,7 @@ import { type PluginMeta } from '@dxos/app-framework';
6
6
 
7
7
  export const CHESS_PLUGIN = 'dxos.org/plugin/chess';
8
8
 
9
- export const meta = {
9
+ export const meta: PluginMeta = {
10
10
  id: CHESS_PLUGIN,
11
11
  name: 'Chess',
12
12
  description:
@@ -14,4 +14,4 @@ export const meta = {
14
14
  icon: 'ph--shield-chevron--regular',
15
15
  source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-chess',
16
16
  screenshots: ['https://dxos.network/plugin-details-chess-dark.png'],
17
- } satisfies PluginMeta;
17
+ };
@@ -10,11 +10,10 @@ export default [
10
10
  'en-US': {
11
11
  [ChessType.typename]: {
12
12
  'typename label': 'Game',
13
+ 'object name placeholder': 'New game',
13
14
  },
14
15
  [CHESS_PLUGIN]: {
15
16
  'plugin name': 'Chess',
16
- 'game title placeholder': 'New game',
17
- 'create game label': 'Create game',
18
17
  'delete game label': 'Delete',
19
18
  },
20
19
  },
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/ChessContainer.tsx", "../../../src/components/PlayerSelector.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\nimport { getSpace } from '@dxos/react-client/echo';\nimport { StackItem } from '@dxos/react-ui-stack';\n\nimport { ChessComponent } from './ChessComponent';\nimport { PlayerSelector } from './PlayerSelector';\nimport { type ChessType } from '../types';\n\nconst ChessContainer = ({ game }: { game: ChessType; role?: string }) => {\n const space = getSpace(game);\n if (!space) {\n return null;\n }\n\n return (\n <StackItem.Content toolbar={false}>\n <div role='none' className='grid grid-rows-[60px_1fr_60px] grow overflow-hidden'>\n <div />\n\n <div className='flex m-4 overflow-hidden'>\n <ChessComponent game={game} />\n </div>\n\n <PlayerSelector space={space} game={game} />\n </div>\n </StackItem.Content>\n );\n};\n\nexport default ChessContainer;\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { CrownCross } from '@phosphor-icons/react';\nimport React from 'react';\n\nimport { generateName } from '@dxos/display-name';\nimport { useMembers, type Space, type SpaceMember } from '@dxos/react-client/echo';\nimport { Input, Select, useThemeContext } from '@dxos/react-ui';\nimport { getSize, mx } from '@dxos/react-ui-theme';\n\nimport { type ChessType } from '../types';\n\nexport const PlayerSelector = ({ space, game }: { space: Space; game: ChessType }) => {\n const members = useMembers(space.key);\n\n return (\n <div role='none' className='grid grid-cols-2 gap-8'>\n <div role='none' className='flex flex-row-reverse items-center gap-2'>\n <PlayerSelect\n side='white'\n value={game.playerWhite}\n onValueChange={(player) => (game.playerWhite = player)}\n members={members}\n />\n </div>\n <div role='none' className='flex flex-row items-center gap-2'>\n <PlayerSelect\n side='black'\n value={game.playerBlack}\n onValueChange={(player) => (game.playerBlack = player)}\n members={members}\n />\n </div>\n </div>\n );\n};\n\nconst PlayerSelect = ({\n side,\n value,\n onValueChange,\n members,\n}: {\n side: 'white' | 'black';\n value: string | undefined;\n onValueChange: (player: string) => void;\n members: SpaceMember[];\n}) => {\n const { themeMode } = useThemeContext();\n const iconFillMode =\n (side === 'black' && themeMode === 'light') || (side === 'white' && themeMode === 'dark') ? 'fill' : undefined;\n\n return (\n <Input.Root>\n <Input.Label>\n <CrownCross className={mx(getSize(6))} weight={iconFillMode} aria-label={`Chess icon for side ${side}`} />\n </Input.Label>\n <Select.Root value={value} onValueChange={onValueChange}>\n <Select.TriggerButton placeholder={'Select player'} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n {members.map((member) => {\n const memberKey = member.identity.identityKey.toHex();\n const displayName = member.identity?.profile?.displayName || generateName(memberKey);\n return (\n <Select.Option key={memberKey} value={memberKey}>\n {displayName}\n </Select.Option>\n );\n })}\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </Input.Root>\n );\n};\n"],
5
- "mappings": ";;;;;AAIA,OAAOA,YAAW;AAElB,SAASC,gBAAgB;AACzB,SAASC,iBAAiB;;;ACH1B,SAASC,kBAAkB;AAC3B,OAAOC,WAAW;AAElB,SAASC,oBAAoB;AAC7B,SAASC,kBAAgD;AACzD,SAASC,OAAOC,QAAQC,uBAAuB;AAC/C,SAASC,SAASC,UAAU;AAIrB,IAAMC,iBAAiB,CAAC,EAAEC,OAAOC,KAAI,MAAqC;AAC/E,QAAMC,UAAUC,WAAWH,MAAMI,GAAG;AAEpC,SACE,sBAAA,cAACC,OAAAA;IAAIC,MAAK;IAAOC,WAAU;KACzB,sBAAA,cAACF,OAAAA;IAAIC,MAAK;IAAOC,WAAU;KACzB,sBAAA,cAACC,cAAAA;IACCC,MAAK;IACLC,OAAOT,KAAKU;IACZC,eAAe,CAACC,WAAYZ,KAAKU,cAAcE;IAC/CX;OAGJ,sBAAA,cAACG,OAAAA;IAAIC,MAAK;IAAOC,WAAU;KACzB,sBAAA,cAACC,cAAAA;IACCC,MAAK;IACLC,OAAOT,KAAKa;IACZF,eAAe,CAACC,WAAYZ,KAAKa,cAAcD;IAC/CX;;AAKV;AAEA,IAAMM,eAAe,CAAC,EACpBC,MACAC,OACAE,eACAV,QAAO,MAMR;AACC,QAAM,EAAEa,UAAS,IAAKC,gBAAAA;AACtB,QAAMC,eACHR,SAAS,WAAWM,cAAc,WAAaN,SAAS,WAAWM,cAAc,SAAU,SAASG;AAEvG,SACE,sBAAA,cAACC,MAAMC,MAAI,MACT,sBAAA,cAACD,MAAME,OAAK,MACV,sBAAA,cAACC,YAAAA;IAAWf,WAAWgB,GAAGC,QAAQ,CAAA,CAAA;IAAKC,QAAQR;IAAcS,cAAY,uBAAuBjB,IAAAA;OAElG,sBAAA,cAACkB,OAAOP,MAAI;IAACV;IAAcE;KACzB,sBAAA,cAACe,OAAOC,eAAa;IAACC,aAAa;MACnC,sBAAA,cAACF,OAAOG,QAAM,MACZ,sBAAA,cAACH,OAAOI,SAAO,MACb,sBAAA,cAACJ,OAAOK,UAAQ,MACb9B,QAAQ+B,IAAI,CAACC,WAAAA;AACZ,UAAMC,YAAYD,OAAOE,SAASC,YAAYC,MAAK;AACnD,UAAMC,cAAcL,OAAOE,UAAUI,SAASD,eAAeE,aAAaN,SAAAA;AAC1E,WACE,sBAAA,cAACR,OAAOe,QAAM;MAACtC,KAAK+B;MAAWzB,OAAOyB;OACnCI,WAAAA;EAGP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAOd;;;ADlEA,IAAMI,iBAAiB,CAAC,EAAEC,KAAI,MAAsC;AAClE,QAAMC,QAAQC,SAASF,IAAAA;AACvB,MAAI,CAACC,OAAO;AACV,WAAO;EACT;AAEA,SACE,gBAAAE,OAAA,cAACC,UAAUC,SAAO;IAACC,SAAS;KAC1B,gBAAAH,OAAA,cAACI,OAAAA;IAAIC,MAAK;IAAOC,WAAU;KACzB,gBAAAN,OAAA,cAACI,OAAAA,IAAAA,GAED,gBAAAJ,OAAA,cAACI,OAAAA;IAAIE,WAAU;KACb,gBAAAN,OAAA,cAACO,gBAAAA;IAAeV;OAGlB,gBAAAG,OAAA,cAACQ,gBAAAA;IAAeV;IAAcD;;AAItC;AAEA,IAAA,yBAAeD;",
6
- "names": ["React", "getSpace", "StackItem", "CrownCross", "React", "generateName", "useMembers", "Input", "Select", "useThemeContext", "getSize", "mx", "PlayerSelector", "space", "game", "members", "useMembers", "key", "div", "role", "className", "PlayerSelect", "side", "value", "playerWhite", "onValueChange", "player", "playerBlack", "themeMode", "useThemeContext", "iconFillMode", "undefined", "Input", "Root", "Label", "CrownCross", "mx", "getSize", "weight", "aria-label", "Select", "TriggerButton", "placeholder", "Portal", "Content", "Viewport", "map", "member", "memberKey", "identity", "identityKey", "toHex", "displayName", "profile", "generateName", "Option", "ChessContainer", "game", "space", "getSpace", "React", "StackItem", "Content", "toolbar", "div", "role", "className", "ChessComponent", "PlayerSelector"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/artifact-definition.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Chess } from 'chess.js';\nimport { pipe } from 'effect';\n\nimport { Capabilities, chain, contributes, createIntent, type PromiseIntentDispatcher } from '@dxos/app-framework';\nimport { defineArtifact, defineTool, ToolResult } from '@dxos/artifact';\nimport { createArtifactElement } from '@dxos/assistant';\nimport { isInstanceOf, S } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { SpaceAction } from '@dxos/plugin-space/types';\nimport { Filter, parseId, type Space } from '@dxos/react-client/echo';\n\nimport { meta } from '../meta';\nimport { ChessAction, ChessType } from '../types';\n\n// TODO(burdon): Factor out.\ndeclare global {\n interface ToolContextExtensions {\n space?: Space;\n dispatch?: PromiseIntentDispatcher;\n }\n}\n\nconst ArtifacftId = class extends S.String.annotations({\n description: 'ID of the artifact in <spaceid>:<artifactid> format',\n}) {};\ntype ArtifacftId = S.Schema.Type<typeof ArtifacftId>;\n\nexport default () => {\n const definition = defineArtifact({\n id: meta.id,\n name: meta.name,\n description: 'Provides a simple chess engine.',\n instructions: `\n - If the user's message relates to a chess game, you must return the chess game inside the artifact tag as a valid FEN string with no additional text.\n - Always inspect the chess game at the start of every prompt realting to a chess game, as it might have changed since the interaction.\n `,\n schema: ChessType,\n tools: [\n defineTool(meta.id, {\n name: 'create',\n description: 'Create a new chess game. Returns the artifact definition for the game.',\n caption: 'Creating chess game...',\n schema: S.Struct({\n fen: S.String.annotations({ description: 'The state of the chess game in the FEN format.' }),\n }),\n execute: async ({ fen }, { extensions }) => {\n invariant(extensions?.space, 'No space');\n invariant(extensions?.dispatch, 'No intent dispatcher');\n const intent = pipe(\n createIntent(ChessAction.Create, { fen }),\n chain(SpaceAction.AddObject, { target: extensions.space }),\n );\n const { data, error } = await extensions.dispatch(intent);\n if (!data || error) {\n return ToolResult.Error(error?.message ?? 'Failed to create chess game');\n }\n\n return ToolResult.Success(createArtifactElement(data.id));\n },\n }),\n defineTool(meta.id, {\n name: 'list',\n description: 'Query all active chess games.',\n caption: 'Getting games...',\n schema: S.Struct({}),\n execute: async (_, { extensions }) => {\n invariant(extensions?.space, 'No space');\n const { objects: games } = await extensions.space.db.query(Filter.schema(ChessType)).run();\n invariant(games.length > 0, 'No chess games found');\n return ToolResult.Success(games);\n },\n }),\n defineTool(meta.id, {\n name: 'inspect',\n description: 'Get the current state of the chess game.',\n caption: 'Inspecting game...',\n schema: S.Struct({ id: ArtifacftId }),\n execute: async ({ id }, { extensions }) => {\n invariant(extensions?.space, 'No space');\n const { objects: games } = await extensions.space.db.query(Filter.schema(ChessType)).run();\n const { objectId } = parseId(id);\n const game = games.find((game) => game.id === objectId);\n invariant(isInstanceOf(ChessType, game));\n return ToolResult.Success(game.fen);\n },\n }),\n defineTool(meta.id, {\n name: 'move',\n description: 'Make a move in the chess game.',\n caption: 'Making chess move...',\n schema: S.Struct({\n id: ArtifacftId,\n move: S.String.annotations({\n description: 'The move to make in the chess game.',\n examples: ['e4', 'Bf3'],\n }),\n }),\n execute: async ({ id, move }, { extensions }) => {\n invariant(extensions?.space, 'No space');\n const { objects: games } = await extensions.space.db.query(Filter.schema(ChessType)).run();\n const { objectId } = parseId(id);\n const game = games.find((game) => game.id === objectId);\n invariant(isInstanceOf(ChessType, game));\n const board = new Chess(game.fen);\n try {\n board.move(move);\n } catch (error: any) {\n return ToolResult.Error(error.message);\n }\n game.pgn = board.pgn();\n game.fen = board.fen();\n return ToolResult.Success(game.fen);\n },\n }),\n ],\n });\n\n return contributes(Capabilities.ArtifactDefinition, definition);\n};\n"],
5
- "mappings": "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",
6
- "names": ["Chess", "pipe", "Capabilities", "chain", "contributes", "createIntent", "defineArtifact", "defineTool", "ToolResult", "createArtifactElement", "isInstanceOf", "S", "invariant", "SpaceAction", "Filter", "parseId", "ArtifacftId", "S", "String", "annotations", "description", "definition", "defineArtifact", "id", "meta", "name", "instructions", "schema", "ChessType", "tools", "defineTool", "caption", "Struct", "fen", "execute", "extensions", "invariant", "space", "dispatch", "intent", "pipe", "createIntent", "ChessAction", "Create", "chain", "SpaceAction", "AddObject", "target", "data", "error", "ToolResult", "Error", "message", "Success", "createArtifactElement", "_", "objects", "games", "db", "query", "Filter", "run", "length", "objectId", "parseId", "game", "find", "isInstanceOf", "move", "examples", "board", "Chess", "pgn", "contributes", "Capabilities", "ArtifactDefinition"]
7
- }
@@ -1,8 +0,0 @@
1
- // packages/plugins/plugin-chess/src/components/index.ts
2
- import { lazy } from "react";
3
- var ChessContainer = lazy(() => import("./ChessContainer-XERPODLK.mjs"));
4
-
5
- export {
6
- ChessContainer
7
- };
8
- //# sourceMappingURL=chunk-R26FYVUS.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/ChessContainer.tsx", "../../../src/components/PlayerSelector.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\nimport { getSpace } from '@dxos/react-client/echo';\nimport { StackItem } from '@dxos/react-ui-stack';\n\nimport { ChessComponent } from './ChessComponent';\nimport { PlayerSelector } from './PlayerSelector';\nimport { type ChessType } from '../types';\n\nconst ChessContainer = ({ game }: { game: ChessType; role?: string }) => {\n const space = getSpace(game);\n if (!space) {\n return null;\n }\n\n return (\n <StackItem.Content toolbar={false}>\n <div role='none' className='grid grid-rows-[60px_1fr_60px] grow overflow-hidden'>\n <div />\n\n <div className='flex m-4 overflow-hidden'>\n <ChessComponent game={game} />\n </div>\n\n <PlayerSelector space={space} game={game} />\n </div>\n </StackItem.Content>\n );\n};\n\nexport default ChessContainer;\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { CrownCross } from '@phosphor-icons/react';\nimport React from 'react';\n\nimport { generateName } from '@dxos/display-name';\nimport { useMembers, type Space, type SpaceMember } from '@dxos/react-client/echo';\nimport { Input, Select, useThemeContext } from '@dxos/react-ui';\nimport { getSize, mx } from '@dxos/react-ui-theme';\n\nimport { type ChessType } from '../types';\n\nexport const PlayerSelector = ({ space, game }: { space: Space; game: ChessType }) => {\n const members = useMembers(space.key);\n\n return (\n <div role='none' className='grid grid-cols-2 gap-8'>\n <div role='none' className='flex flex-row-reverse items-center gap-2'>\n <PlayerSelect\n side='white'\n value={game.playerWhite}\n onValueChange={(player) => (game.playerWhite = player)}\n members={members}\n />\n </div>\n <div role='none' className='flex flex-row items-center gap-2'>\n <PlayerSelect\n side='black'\n value={game.playerBlack}\n onValueChange={(player) => (game.playerBlack = player)}\n members={members}\n />\n </div>\n </div>\n );\n};\n\nconst PlayerSelect = ({\n side,\n value,\n onValueChange,\n members,\n}: {\n side: 'white' | 'black';\n value: string | undefined;\n onValueChange: (player: string) => void;\n members: SpaceMember[];\n}) => {\n const { themeMode } = useThemeContext();\n const iconFillMode =\n (side === 'black' && themeMode === 'light') || (side === 'white' && themeMode === 'dark') ? 'fill' : undefined;\n\n return (\n <Input.Root>\n <Input.Label>\n <CrownCross className={mx(getSize(6))} weight={iconFillMode} aria-label={`Chess icon for side ${side}`} />\n </Input.Label>\n <Select.Root value={value} onValueChange={onValueChange}>\n <Select.TriggerButton placeholder={'Select player'} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n {members.map((member) => {\n const memberKey = member.identity.identityKey.toHex();\n const displayName = member.identity?.profile?.displayName || generateName(memberKey);\n return (\n <Select.Option key={memberKey} value={memberKey}>\n {displayName}\n </Select.Option>\n );\n })}\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </Input.Root>\n );\n};\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,mBAAkB;AAElB,kBAAyB;AACzB,4BAA0B;ACH1B,IAAAA,gBAA2B;AAC3B,IAAAA,gBAAkB;AAElB,0BAA6B;AAC7B,IAAAC,eAAyD;AACzD,sBAA+C;AAC/C,4BAA4B;AAIrB,IAAMC,iBAAiB,CAAC,EAAEC,OAAOC,KAAI,MAAqC;AAC/E,QAAMC,cAAUC,yBAAWH,MAAMI,GAAG;AAEpC,SACE,8BAAAC,QAAA,cAACC,OAAAA;IAAIC,MAAK;IAAOC,WAAU;KACzB,8BAAAH,QAAA,cAACC,OAAAA;IAAIC,MAAK;IAAOC,WAAU;KACzB,8BAAAH,QAAA,cAACI,cAAAA;IACCC,MAAK;IACLC,OAAOV,KAAKW;IACZC,eAAe,CAACC,WAAYb,KAAKW,cAAcE;IAC/CZ;OAGJ,8BAAAG,QAAA,cAACC,OAAAA;IAAIC,MAAK;IAAOC,WAAU;KACzB,8BAAAH,QAAA,cAACI,cAAAA;IACCC,MAAK;IACLC,OAAOV,KAAKc;IACZF,eAAe,CAACC,WAAYb,KAAKc,cAAcD;IAC/CZ;;AAKV;AAEA,IAAMO,eAAe,CAAC,EACpBC,MACAC,OACAE,eACAX,QAAO,MAMR;AACC,QAAM,EAAEc,UAAS,QAAKC,iCAAAA;AACtB,QAAMC,eACHR,SAAS,WAAWM,cAAc,WAAaN,SAAS,WAAWM,cAAc,SAAU,SAASG;AAEvG,SACE,8BAAAd,QAAA,cAACe,sBAAMC,MAAI,MACT,8BAAAhB,QAAA,cAACe,sBAAME,OAAK,MACV,8BAAAjB,QAAA,cAACkB,0BAAAA;IAAWf,eAAWgB,8BAAGC,+BAAQ,CAAA,CAAA;IAAKC,QAAQR;IAAcS,cAAY,uBAAuBjB,IAAAA;OAElG,8BAAAL,QAAA,cAACuB,uBAAOP,MAAI;IAACV;IAAcE;KACzB,8BAAAR,QAAA,cAACuB,uBAAOC,eAAa;IAACC,aAAa;MACnC,8BAAAzB,QAAA,cAACuB,uBAAOG,QAAM,MACZ,8BAAA1B,QAAA,cAACuB,uBAAOI,SAAO,MACb,8BAAA3B,QAAA,cAACuB,uBAAOK,UAAQ,MACb/B,QAAQgC,IAAI,CAACC,WAAAA;AACZ,UAAMC,YAAYD,OAAOE,SAASC,YAAYC,MAAK;AACnD,UAAMC,cAAcL,OAAOE,UAAUI,SAASD,mBAAeE,kCAAaN,SAAAA;AAC1E,WACE,8BAAA/B,QAAA,cAACuB,uBAAOe,QAAM;MAACvC,KAAKgC;MAAWzB,OAAOyB;OACnCI,WAAAA;EAGP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAOd;ADlEA,IAAMI,iBAAiB,CAAC,EAAE3C,KAAI,MAAsC;AAClE,QAAMD,YAAQ6C,sBAAS5C,IAAAA;AACvB,MAAI,CAACD,OAAO;AACV,WAAO;EACT;AAEA,SACEK,6BAAAA,QAAA,cAACyC,gCAAUd,SAAO;IAACe,SAAS;KAC1B1C,6BAAAA,QAAA,cAACC,OAAAA;IAAIC,MAAK;IAAOC,WAAU;KACzBH,6BAAAA,QAAA,cAACC,OAAAA,IAAAA,GAEDD,6BAAAA,QAAA,cAACC,OAAAA;IAAIE,WAAU;KACbH,6BAAAA,QAAA,cAAC2C,sCAAAA;IAAe/C;OAGlBI,6BAAAA,QAAA,cAACN,gBAAAA;IAAeC;IAAcC;;AAItC;AAEA,IAAA,yBAAe2C;",
6
- "names": ["import_react", "import_echo", "PlayerSelector", "space", "game", "members", "useMembers", "key", "React", "div", "role", "className", "PlayerSelect", "side", "value", "playerWhite", "onValueChange", "player", "playerBlack", "themeMode", "useThemeContext", "iconFillMode", "undefined", "Input", "Root", "Label", "CrownCross", "mx", "getSize", "weight", "aria-label", "Select", "TriggerButton", "placeholder", "Portal", "Content", "Viewport", "map", "member", "memberKey", "identity", "identityKey", "toHex", "displayName", "profile", "generateName", "Option", "ChessContainer", "getSpace", "StackItem", "toolbar", "ChessComponent"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/artifact-definition.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Chess } from 'chess.js';\nimport { pipe } from 'effect';\n\nimport { Capabilities, chain, contributes, createIntent, type PromiseIntentDispatcher } from '@dxos/app-framework';\nimport { defineArtifact, defineTool, ToolResult } from '@dxos/artifact';\nimport { createArtifactElement } from '@dxos/assistant';\nimport { isInstanceOf, S } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { SpaceAction } from '@dxos/plugin-space/types';\nimport { Filter, parseId, type Space } from '@dxos/react-client/echo';\n\nimport { meta } from '../meta';\nimport { ChessAction, ChessType } from '../types';\n\n// TODO(burdon): Factor out.\ndeclare global {\n interface ToolContextExtensions {\n space?: Space;\n dispatch?: PromiseIntentDispatcher;\n }\n}\n\nconst ArtifacftId = class extends S.String.annotations({\n description: 'ID of the artifact in <spaceid>:<artifactid> format',\n}) {};\ntype ArtifacftId = S.Schema.Type<typeof ArtifacftId>;\n\nexport default () => {\n const definition = defineArtifact({\n id: meta.id,\n name: meta.name,\n description: 'Provides a simple chess engine.',\n instructions: `\n - If the user's message relates to a chess game, you must return the chess game inside the artifact tag as a valid FEN string with no additional text.\n - Always inspect the chess game at the start of every prompt realting to a chess game, as it might have changed since the interaction.\n `,\n schema: ChessType,\n tools: [\n defineTool(meta.id, {\n name: 'create',\n description: 'Create a new chess game. Returns the artifact definition for the game.',\n caption: 'Creating chess game...',\n schema: S.Struct({\n fen: S.String.annotations({ description: 'The state of the chess game in the FEN format.' }),\n }),\n execute: async ({ fen }, { extensions }) => {\n invariant(extensions?.space, 'No space');\n invariant(extensions?.dispatch, 'No intent dispatcher');\n const intent = pipe(\n createIntent(ChessAction.Create, { fen }),\n chain(SpaceAction.AddObject, { target: extensions.space }),\n );\n const { data, error } = await extensions.dispatch(intent);\n if (!data || error) {\n return ToolResult.Error(error?.message ?? 'Failed to create chess game');\n }\n\n return ToolResult.Success(createArtifactElement(data.id));\n },\n }),\n defineTool(meta.id, {\n name: 'list',\n description: 'Query all active chess games.',\n caption: 'Getting games...',\n schema: S.Struct({}),\n execute: async (_, { extensions }) => {\n invariant(extensions?.space, 'No space');\n const { objects: games } = await extensions.space.db.query(Filter.schema(ChessType)).run();\n invariant(games.length > 0, 'No chess games found');\n return ToolResult.Success(games);\n },\n }),\n defineTool(meta.id, {\n name: 'inspect',\n description: 'Get the current state of the chess game.',\n caption: 'Inspecting game...',\n schema: S.Struct({ id: ArtifacftId }),\n execute: async ({ id }, { extensions }) => {\n invariant(extensions?.space, 'No space');\n const { objects: games } = await extensions.space.db.query(Filter.schema(ChessType)).run();\n const { objectId } = parseId(id);\n const game = games.find((game) => game.id === objectId);\n invariant(isInstanceOf(ChessType, game));\n return ToolResult.Success(game.fen);\n },\n }),\n defineTool(meta.id, {\n name: 'move',\n description: 'Make a move in the chess game.',\n caption: 'Making chess move...',\n schema: S.Struct({\n id: ArtifacftId,\n move: S.String.annotations({\n description: 'The move to make in the chess game.',\n examples: ['e4', 'Bf3'],\n }),\n }),\n execute: async ({ id, move }, { extensions }) => {\n invariant(extensions?.space, 'No space');\n const { objects: games } = await extensions.space.db.query(Filter.schema(ChessType)).run();\n const { objectId } = parseId(id);\n const game = games.find((game) => game.id === objectId);\n invariant(isInstanceOf(ChessType, game));\n const board = new Chess(game.fen);\n try {\n board.move(move);\n } catch (error: any) {\n return ToolResult.Error(error.message);\n }\n game.pgn = board.pgn();\n game.fen = board.fen();\n return ToolResult.Success(game.fen);\n },\n }),\n ],\n });\n\n return contributes(Capabilities.ArtifactDefinition, definition);\n};\n"],
5
- "mappings": "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",
6
- "names": ["ArtifacftId", "S", "String", "annotations", "description", "definition", "defineArtifact", "id", "meta", "name", "instructions", "schema", "ChessType", "tools", "defineTool", "caption", "Struct", "fen", "execute", "extensions", "invariant", "space", "dispatch", "intent", "pipe", "createIntent", "ChessAction", "Create", "chain", "SpaceAction", "AddObject", "target", "data", "error", "ToolResult", "Error", "message", "Success", "createArtifactElement", "_", "objects", "games", "db", "query", "Filter", "run", "length", "objectId", "parseId", "game", "find", "isInstanceOf", "move", "examples", "board", "Chess", "pgn", "contributes", "Capabilities", "ArtifactDefinition"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/ChessContainer.tsx", "../../../src/components/PlayerSelector.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\nimport { getSpace } from '@dxos/react-client/echo';\nimport { StackItem } from '@dxos/react-ui-stack';\n\nimport { ChessComponent } from './ChessComponent';\nimport { PlayerSelector } from './PlayerSelector';\nimport { type ChessType } from '../types';\n\nconst ChessContainer = ({ game }: { game: ChessType; role?: string }) => {\n const space = getSpace(game);\n if (!space) {\n return null;\n }\n\n return (\n <StackItem.Content toolbar={false}>\n <div role='none' className='grid grid-rows-[60px_1fr_60px] grow overflow-hidden'>\n <div />\n\n <div className='flex m-4 overflow-hidden'>\n <ChessComponent game={game} />\n </div>\n\n <PlayerSelector space={space} game={game} />\n </div>\n </StackItem.Content>\n );\n};\n\nexport default ChessContainer;\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { CrownCross } from '@phosphor-icons/react';\nimport React from 'react';\n\nimport { generateName } from '@dxos/display-name';\nimport { useMembers, type Space, type SpaceMember } from '@dxos/react-client/echo';\nimport { Input, Select, useThemeContext } from '@dxos/react-ui';\nimport { getSize, mx } from '@dxos/react-ui-theme';\n\nimport { type ChessType } from '../types';\n\nexport const PlayerSelector = ({ space, game }: { space: Space; game: ChessType }) => {\n const members = useMembers(space.key);\n\n return (\n <div role='none' className='grid grid-cols-2 gap-8'>\n <div role='none' className='flex flex-row-reverse items-center gap-2'>\n <PlayerSelect\n side='white'\n value={game.playerWhite}\n onValueChange={(player) => (game.playerWhite = player)}\n members={members}\n />\n </div>\n <div role='none' className='flex flex-row items-center gap-2'>\n <PlayerSelect\n side='black'\n value={game.playerBlack}\n onValueChange={(player) => (game.playerBlack = player)}\n members={members}\n />\n </div>\n </div>\n );\n};\n\nconst PlayerSelect = ({\n side,\n value,\n onValueChange,\n members,\n}: {\n side: 'white' | 'black';\n value: string | undefined;\n onValueChange: (player: string) => void;\n members: SpaceMember[];\n}) => {\n const { themeMode } = useThemeContext();\n const iconFillMode =\n (side === 'black' && themeMode === 'light') || (side === 'white' && themeMode === 'dark') ? 'fill' : undefined;\n\n return (\n <Input.Root>\n <Input.Label>\n <CrownCross className={mx(getSize(6))} weight={iconFillMode} aria-label={`Chess icon for side ${side}`} />\n </Input.Label>\n <Select.Root value={value} onValueChange={onValueChange}>\n <Select.TriggerButton placeholder={'Select player'} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n {members.map((member) => {\n const memberKey = member.identity.identityKey.toHex();\n const displayName = member.identity?.profile?.displayName || generateName(memberKey);\n return (\n <Select.Option key={memberKey} value={memberKey}>\n {displayName}\n </Select.Option>\n );\n })}\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </Input.Root>\n );\n};\n"],
5
- "mappings": ";;;;;;AAIA,OAAOA,YAAW;AAElB,SAASC,gBAAgB;AACzB,SAASC,iBAAiB;;;ACH1B,SAASC,kBAAkB;AAC3B,OAAOC,WAAW;AAElB,SAASC,oBAAoB;AAC7B,SAASC,kBAAgD;AACzD,SAASC,OAAOC,QAAQC,uBAAuB;AAC/C,SAASC,SAASC,UAAU;AAIrB,IAAMC,iBAAiB,CAAC,EAAEC,OAAOC,KAAI,MAAqC;AAC/E,QAAMC,UAAUC,WAAWH,MAAMI,GAAG;AAEpC,SACE,sBAAA,cAACC,OAAAA;IAAIC,MAAK;IAAOC,WAAU;KACzB,sBAAA,cAACF,OAAAA;IAAIC,MAAK;IAAOC,WAAU;KACzB,sBAAA,cAACC,cAAAA;IACCC,MAAK;IACLC,OAAOT,KAAKU;IACZC,eAAe,CAACC,WAAYZ,KAAKU,cAAcE;IAC/CX;OAGJ,sBAAA,cAACG,OAAAA;IAAIC,MAAK;IAAOC,WAAU;KACzB,sBAAA,cAACC,cAAAA;IACCC,MAAK;IACLC,OAAOT,KAAKa;IACZF,eAAe,CAACC,WAAYZ,KAAKa,cAAcD;IAC/CX;;AAKV;AAEA,IAAMM,eAAe,CAAC,EACpBC,MACAC,OACAE,eACAV,QAAO,MAMR;AACC,QAAM,EAAEa,UAAS,IAAKC,gBAAAA;AACtB,QAAMC,eACHR,SAAS,WAAWM,cAAc,WAAaN,SAAS,WAAWM,cAAc,SAAU,SAASG;AAEvG,SACE,sBAAA,cAACC,MAAMC,MAAI,MACT,sBAAA,cAACD,MAAME,OAAK,MACV,sBAAA,cAACC,YAAAA;IAAWf,WAAWgB,GAAGC,QAAQ,CAAA,CAAA;IAAKC,QAAQR;IAAcS,cAAY,uBAAuBjB,IAAAA;OAElG,sBAAA,cAACkB,OAAOP,MAAI;IAACV;IAAcE;KACzB,sBAAA,cAACe,OAAOC,eAAa;IAACC,aAAa;MACnC,sBAAA,cAACF,OAAOG,QAAM,MACZ,sBAAA,cAACH,OAAOI,SAAO,MACb,sBAAA,cAACJ,OAAOK,UAAQ,MACb9B,QAAQ+B,IAAI,CAACC,WAAAA;AACZ,UAAMC,YAAYD,OAAOE,SAASC,YAAYC,MAAK;AACnD,UAAMC,cAAcL,OAAOE,UAAUI,SAASD,eAAeE,aAAaN,SAAAA;AAC1E,WACE,sBAAA,cAACR,OAAOe,QAAM;MAACtC,KAAK+B;MAAWzB,OAAOyB;OACnCI,WAAAA;EAGP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAOd;;;ADlEA,IAAMI,iBAAiB,CAAC,EAAEC,KAAI,MAAsC;AAClE,QAAMC,QAAQC,SAASF,IAAAA;AACvB,MAAI,CAACC,OAAO;AACV,WAAO;EACT;AAEA,SACE,gBAAAE,OAAA,cAACC,UAAUC,SAAO;IAACC,SAAS;KAC1B,gBAAAH,OAAA,cAACI,OAAAA;IAAIC,MAAK;IAAOC,WAAU;KACzB,gBAAAN,OAAA,cAACI,OAAAA,IAAAA,GAED,gBAAAJ,OAAA,cAACI,OAAAA;IAAIE,WAAU;KACb,gBAAAN,OAAA,cAACO,gBAAAA;IAAeV;OAGlB,gBAAAG,OAAA,cAACQ,gBAAAA;IAAeV;IAAcD;;AAItC;AAEA,IAAA,yBAAeD;",
6
- "names": ["React", "getSpace", "StackItem", "CrownCross", "React", "generateName", "useMembers", "Input", "Select", "useThemeContext", "getSize", "mx", "PlayerSelector", "space", "game", "members", "useMembers", "key", "div", "role", "className", "PlayerSelect", "side", "value", "playerWhite", "onValueChange", "player", "playerBlack", "themeMode", "useThemeContext", "iconFillMode", "undefined", "Input", "Root", "Label", "CrownCross", "mx", "getSize", "weight", "aria-label", "Select", "TriggerButton", "placeholder", "Portal", "Content", "Viewport", "map", "member", "memberKey", "identity", "identityKey", "toHex", "displayName", "profile", "generateName", "Option", "ChessContainer", "game", "space", "getSpace", "React", "StackItem", "Content", "toolbar", "div", "role", "className", "ChessComponent", "PlayerSelector"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/artifact-definition.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Chess } from 'chess.js';\nimport { pipe } from 'effect';\n\nimport { Capabilities, chain, contributes, createIntent, type PromiseIntentDispatcher } from '@dxos/app-framework';\nimport { defineArtifact, defineTool, ToolResult } from '@dxos/artifact';\nimport { createArtifactElement } from '@dxos/assistant';\nimport { isInstanceOf, S } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { SpaceAction } from '@dxos/plugin-space/types';\nimport { Filter, parseId, type Space } from '@dxos/react-client/echo';\n\nimport { meta } from '../meta';\nimport { ChessAction, ChessType } from '../types';\n\n// TODO(burdon): Factor out.\ndeclare global {\n interface ToolContextExtensions {\n space?: Space;\n dispatch?: PromiseIntentDispatcher;\n }\n}\n\nconst ArtifacftId = class extends S.String.annotations({\n description: 'ID of the artifact in <spaceid>:<artifactid> format',\n}) {};\ntype ArtifacftId = S.Schema.Type<typeof ArtifacftId>;\n\nexport default () => {\n const definition = defineArtifact({\n id: meta.id,\n name: meta.name,\n description: 'Provides a simple chess engine.',\n instructions: `\n - If the user's message relates to a chess game, you must return the chess game inside the artifact tag as a valid FEN string with no additional text.\n - Always inspect the chess game at the start of every prompt realting to a chess game, as it might have changed since the interaction.\n `,\n schema: ChessType,\n tools: [\n defineTool(meta.id, {\n name: 'create',\n description: 'Create a new chess game. Returns the artifact definition for the game.',\n caption: 'Creating chess game...',\n schema: S.Struct({\n fen: S.String.annotations({ description: 'The state of the chess game in the FEN format.' }),\n }),\n execute: async ({ fen }, { extensions }) => {\n invariant(extensions?.space, 'No space');\n invariant(extensions?.dispatch, 'No intent dispatcher');\n const intent = pipe(\n createIntent(ChessAction.Create, { fen }),\n chain(SpaceAction.AddObject, { target: extensions.space }),\n );\n const { data, error } = await extensions.dispatch(intent);\n if (!data || error) {\n return ToolResult.Error(error?.message ?? 'Failed to create chess game');\n }\n\n return ToolResult.Success(createArtifactElement(data.id));\n },\n }),\n defineTool(meta.id, {\n name: 'list',\n description: 'Query all active chess games.',\n caption: 'Getting games...',\n schema: S.Struct({}),\n execute: async (_, { extensions }) => {\n invariant(extensions?.space, 'No space');\n const { objects: games } = await extensions.space.db.query(Filter.schema(ChessType)).run();\n invariant(games.length > 0, 'No chess games found');\n return ToolResult.Success(games);\n },\n }),\n defineTool(meta.id, {\n name: 'inspect',\n description: 'Get the current state of the chess game.',\n caption: 'Inspecting game...',\n schema: S.Struct({ id: ArtifacftId }),\n execute: async ({ id }, { extensions }) => {\n invariant(extensions?.space, 'No space');\n const { objects: games } = await extensions.space.db.query(Filter.schema(ChessType)).run();\n const { objectId } = parseId(id);\n const game = games.find((game) => game.id === objectId);\n invariant(isInstanceOf(ChessType, game));\n return ToolResult.Success(game.fen);\n },\n }),\n defineTool(meta.id, {\n name: 'move',\n description: 'Make a move in the chess game.',\n caption: 'Making chess move...',\n schema: S.Struct({\n id: ArtifacftId,\n move: S.String.annotations({\n description: 'The move to make in the chess game.',\n examples: ['e4', 'Bf3'],\n }),\n }),\n execute: async ({ id, move }, { extensions }) => {\n invariant(extensions?.space, 'No space');\n const { objects: games } = await extensions.space.db.query(Filter.schema(ChessType)).run();\n const { objectId } = parseId(id);\n const game = games.find((game) => game.id === objectId);\n invariant(isInstanceOf(ChessType, game));\n const board = new Chess(game.fen);\n try {\n board.move(move);\n } catch (error: any) {\n return ToolResult.Error(error.message);\n }\n game.pgn = board.pgn();\n game.fen = board.fen();\n return ToolResult.Success(game.fen);\n },\n }),\n ],\n });\n\n return contributes(Capabilities.ArtifactDefinition, definition);\n};\n"],
5
- "mappings": "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",
6
- "names": ["Chess", "pipe", "Capabilities", "chain", "contributes", "createIntent", "defineArtifact", "defineTool", "ToolResult", "createArtifactElement", "isInstanceOf", "S", "invariant", "SpaceAction", "Filter", "parseId", "ArtifacftId", "S", "String", "annotations", "description", "definition", "defineArtifact", "id", "meta", "name", "instructions", "schema", "ChessType", "tools", "defineTool", "caption", "Struct", "fen", "execute", "extensions", "invariant", "space", "dispatch", "intent", "pipe", "createIntent", "ChessAction", "Create", "chain", "SpaceAction", "AddObject", "target", "data", "error", "ToolResult", "Error", "message", "Success", "createArtifactElement", "_", "objects", "games", "db", "query", "Filter", "run", "length", "objectId", "parseId", "game", "find", "isInstanceOf", "move", "examples", "board", "Chess", "pgn", "contributes", "Capabilities", "ArtifactDefinition"]
7
- }