deepspace 0.10.0 → 0.10.2

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 (82) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/{chunk-DQ4G6VL6.js → chunk-T7V4GUIN.js} +283 -180
  3. package/dist/chunk-T7V4GUIN.js.map +1 -0
  4. package/dist/cli.js +1010 -6123
  5. package/dist/cli.js.map +1 -1
  6. package/dist/documentation-client-core.d.ts +18 -0
  7. package/dist/{docs-client-core.js → documentation-client-core.js} +60 -51
  8. package/dist/documentation-client-core.js.map +1 -0
  9. package/dist/documentation-default-renderer.cjs +124 -0
  10. package/dist/documentation-react.d.ts +2 -0
  11. package/dist/{docs-react.js → documentation-react.js} +8 -8
  12. package/dist/documentation-runtime.js +71 -0
  13. package/dist/documentation-server-core.d.ts +11 -0
  14. package/dist/{docs-server-core.js → documentation-server-core.js} +13 -13
  15. package/dist/documentation-server-core.js.map +1 -0
  16. package/dist/documentation.d.ts +366 -0
  17. package/dist/documentation.js +3953 -0
  18. package/dist/documentation.js.map +1 -0
  19. package/dist/feature-installer.js +145 -0
  20. package/dist/feature-installer.js.map +1 -1
  21. package/dist/index.d.ts +6 -8
  22. package/dist/index.js +5 -15
  23. package/dist/index.js.map +1 -1
  24. package/dist/public-BGRX_Cjd.d.ts +234 -0
  25. package/dist/schema.d.ts +186 -0
  26. package/dist/schema.js +610 -0
  27. package/dist/schema.js.map +1 -0
  28. package/dist/server.d.ts +19 -167
  29. package/dist/server.js +76 -1069
  30. package/dist/server.js.map +1 -1
  31. package/dist/testing.d.ts +5 -8
  32. package/dist/testing.js +48 -14
  33. package/dist/testing.js.map +1 -1
  34. package/dist/worker.d.ts +52 -173
  35. package/dist/worker.js +563 -492
  36. package/dist/worker.js.map +1 -1
  37. package/features/admin-page/src/admin-schema.ts +1 -1
  38. package/features/ai-chat/feature.json +2 -2
  39. package/features/ai-chat/src/ChatPanel.tsx +0 -1
  40. package/features/ai-chat/src/ai-chat-schema.ts +1 -2
  41. package/features/canvas/src/canvas-schema.ts +1 -1
  42. package/features/documentation/content/index.mdx +14 -0
  43. package/features/documentation/content/quickstart.mdx +12 -0
  44. package/features/documentation/documentation.json +18 -0
  45. package/features/documentation/feature.json +68 -0
  46. package/features/{docs → documents}/feature.json +27 -27
  47. package/features/{docs/src/DocsEditorPage.tsx → documents/src/DocumentsEditorPage.tsx} +74 -74
  48. package/features/{docs/src/DocsListPage.tsx → documents/src/DocumentsListPage.tsx} +102 -102
  49. package/features/{docs/src/DocsOutlinePanel.tsx → documents/src/DocumentsOutlinePanel.tsx} +9 -9
  50. package/features/{docs/src/DocsPresence.tsx → documents/src/DocumentsPresence.tsx} +18 -18
  51. package/features/{docs → documents}/src/InviteDialog.tsx +21 -21
  52. package/features/{docs → documents}/src/LibrarySidebar.tsx +25 -25
  53. package/features/documents/src/__tests__/documents-presence-access.test.ts +71 -0
  54. package/features/{docs/src/docs-library-types.ts → documents/src/documents-library-types.ts} +3 -3
  55. package/features/{docs/src/docs-schema.ts → documents/src/documents-schema.ts} +6 -6
  56. package/features/{docs/src/docs-ui.css → documents/src/documents-ui.css} +89 -89
  57. package/features/{docs → documents}/src/editor/DocEditorSurface.tsx +11 -11
  58. package/features/{docs/src/editor/DocsTiptapToolbar.tsx → documents/src/editor/DocumentsTiptapToolbar.tsx} +21 -21
  59. package/features/{docs → documents}/src/editor/useDocEditor.ts +4 -4
  60. package/features/{docs/src/use-docs-presence-access.ts → documents/src/use-documents-presence-access.ts} +51 -51
  61. package/features/file-attachments/src/attachments-schema.ts +1 -1
  62. package/features/items/src/items-schema.ts +1 -1
  63. package/features/leaderboard/src/leaderboard-schema.ts +1 -1
  64. package/features/messaging/src/ChatMultiPage.tsx +1 -1
  65. package/features/messaging/src/ChatPage.tsx +1 -1
  66. package/features/messaging/src/messaging-schema.ts +2 -2
  67. package/features/tasks/src/tasks-schema.ts +1 -1
  68. package/features/testing/src/test-schema.ts +2 -2
  69. package/package.json +12 -7
  70. package/dist/chunk-DQ4G6VL6.js.map +0 -1
  71. package/dist/docs-client-core.d.ts +0 -18
  72. package/dist/docs-client-core.js.map +0 -1
  73. package/dist/docs-react.d.ts +0 -2
  74. package/dist/docs-runtime.js +0 -71
  75. package/dist/docs-server-core.d.ts +0 -11
  76. package/dist/docs-server-core.js.map +0 -1
  77. package/dist/docs.d.ts +0 -350
  78. package/dist/docs.js +0 -5139
  79. package/dist/docs.js.map +0 -1
  80. package/dist/public-Cp1X8ZQ3.d.ts +0 -230
  81. package/features/docs/src/__tests__/docs-presence-access.test.ts +0 -71
  82. /package/dist/{docs-react.js.map → documentation-react.js.map} +0 -0
@@ -1,230 +0,0 @@
1
- import { ReactNode, ReactElement, ComponentType } from 'react';
2
-
3
- type DocsAssistantAccess = 'disabled' | 'public' | 'authenticated';
4
- type DocsMcpAccess = 'disabled' | 'public';
5
- declare const DOCS_CONTEXTUAL_ACTIONS: readonly ["copy", "view", "assistant", "chatgpt", "claude", "mcp", "add-mcp", "cursor", "vscode"];
6
- type DocsContextualAction = (typeof DOCS_CONTEXTUAL_ACTIONS)[number];
7
- interface DocsFontConfig {
8
- family: string;
9
- weight?: number | string;
10
- source?: string;
11
- format?: string;
12
- }
13
- interface DocsThemeConfig {
14
- preset?: string;
15
- accent?: string;
16
- background?: string;
17
- backgroundDark?: string;
18
- backgroundDecoration?: 'none' | 'gradient' | 'grid';
19
- bodyFont?: DocsFontConfig;
20
- headingFont?: DocsFontConfig;
21
- monoFont?: DocsFontConfig;
22
- codeBlockMode?: 'dark' | 'system';
23
- eyebrowStyle?: 'section' | 'breadcrumbs' | 'none';
24
- logo?: string;
25
- logoDark?: string;
26
- logoHref?: string;
27
- favicon?: string;
28
- defaultMode?: 'light' | 'dark' | 'system';
29
- strictMode?: boolean;
30
- }
31
- interface DocsLinkConfig {
32
- label: string;
33
- href: string;
34
- }
35
- interface DocsNavGroup {
36
- group: string;
37
- pages: DocsNavigationItem[];
38
- }
39
- type DocsNavigationItem = string | DocsLinkConfig | DocsNavGroup;
40
- declare const DOCS_OPENAPI_SAMPLE_LANGUAGES: readonly ["curl", "javascript", "python", "go"];
41
- type DocsOpenApiSampleLanguage = (typeof DOCS_OPENAPI_SAMPLE_LANGUAGES)[number];
42
- type DocsOpenApiSampleDefaults = 'required' | 'all';
43
- interface DocsOpenApiExamplesConfig {
44
- languages: DocsOpenApiSampleLanguage[];
45
- defaults: DocsOpenApiSampleDefaults;
46
- autogenerate: boolean;
47
- }
48
- interface DocsOpenApiConfig {
49
- source: string;
50
- route?: string;
51
- label?: string;
52
- playground?: boolean;
53
- baseUrl?: string;
54
- examples?: DocsOpenApiExamplesConfig;
55
- }
56
- interface DocsAssistantConfig {
57
- access: DocsAssistantAccess;
58
- model?: string;
59
- suggestions?: string[];
60
- }
61
- interface DocsMcpConfig {
62
- access: DocsMcpAccess;
63
- }
64
- interface DocsContextualConfig {
65
- actions: DocsContextualAction[];
66
- }
67
- interface DocsSeoConfig {
68
- noindex?: boolean;
69
- ogImage?: string;
70
- metaTags?: Record<string, string>;
71
- }
72
- interface DocsConfig {
73
- $schema?: string;
74
- name: string;
75
- description?: string;
76
- source: string;
77
- output: string;
78
- url?: string;
79
- theme: DocsThemeConfig;
80
- navigation?: DocsNavigationItem[];
81
- links: DocsLinkConfig[];
82
- footer: DocsLinkConfig[];
83
- redirects: Record<string, string>;
84
- openapi: DocsOpenApiConfig[];
85
- assistant: DocsAssistantConfig;
86
- mcp: DocsMcpConfig;
87
- contextual: DocsContextualConfig;
88
- seo: DocsSeoConfig;
89
- }
90
- interface DocsHeading {
91
- depth: number;
92
- id: string;
93
- text: string;
94
- }
95
- interface DocsPage {
96
- sourcePath: string;
97
- relativePath: string;
98
- route: string;
99
- title: string;
100
- description?: string;
101
- hidden: boolean;
102
- noindex: boolean;
103
- markdown: string;
104
- html: string;
105
- text: string;
106
- headings: DocsHeading[];
107
- sourceFormat: 'markdown' | 'mdx' | 'generated';
108
- kind: 'page' | 'openapi';
109
- openapi?: DocsOpenApiOperation;
110
- }
111
- interface DocsNavigationPage {
112
- kind: 'page';
113
- route: string;
114
- label: string;
115
- }
116
- interface DocsNavigationLink {
117
- kind: 'link';
118
- href: string;
119
- label: string;
120
- }
121
- interface DocsNavigationGroup {
122
- kind: 'group';
123
- label: string;
124
- items: DocsNavigationNode[];
125
- }
126
- type DocsNavigationNode = DocsNavigationPage | DocsNavigationLink | DocsNavigationGroup;
127
- interface DocsOpenApiParameter {
128
- name: string;
129
- in: string;
130
- required: boolean;
131
- description?: string;
132
- schema?: unknown;
133
- example?: unknown;
134
- }
135
- interface DocsOpenApiResponse {
136
- status: string;
137
- description: string;
138
- schema?: unknown;
139
- }
140
- interface DocsOpenApiCodeSample {
141
- language: string;
142
- label: string;
143
- syntax: string;
144
- code: string;
145
- generated: boolean;
146
- }
147
- interface DocsOpenApiOperation {
148
- method: string;
149
- path: string;
150
- operationId: string;
151
- summary: string;
152
- description?: string;
153
- tags: string[];
154
- parameters: DocsOpenApiParameter[];
155
- requestBody?: unknown;
156
- responses: DocsOpenApiResponse[];
157
- security?: unknown;
158
- baseUrl?: string;
159
- playground: boolean;
160
- codeSamples: DocsOpenApiCodeSample[];
161
- }
162
- interface DocsRuntimePageLink {
163
- route: string;
164
- title: string;
165
- }
166
- interface DocsRuntimePage {
167
- route: string;
168
- title: string;
169
- description?: string;
170
- html: string;
171
- headings: DocsHeading[];
172
- kind: DocsPage['kind'];
173
- markdownUrl: string;
174
- openapi?: DocsOpenApiOperation;
175
- }
176
- interface DocsRuntimeData {
177
- config: Pick<DocsConfig, 'name' | 'description' | 'theme' | 'links' | 'footer' | 'assistant' | 'mcp' | 'contextual'>;
178
- page: DocsRuntimePage;
179
- navigation: DocsNavigationNode[];
180
- breadcrumbs: string[];
181
- previous?: DocsRuntimePageLink;
182
- next?: DocsRuntimePageLink;
183
- }
184
-
185
- interface DocsAppProps {
186
- data: DocsRuntimeData;
187
- /** Rendered page body. Omit children to use the compiler's static HTML. */
188
- children?: ReactNode;
189
- navigating?: boolean;
190
- onNavigate?: (href: string) => void;
191
- onPrefetch?: (href: string) => void;
192
- }
193
- declare function DocsApp({ data, children, navigating, onNavigate, }: DocsAppProps): ReactElement;
194
-
195
- interface TitledProps {
196
- children?: ReactNode;
197
- label?: string;
198
- title?: string;
199
- }
200
- declare function Note(props: TitledProps): ReactElement;
201
- declare function Tip(props: TitledProps): ReactElement;
202
- declare function Warning(props: TitledProps): ReactElement;
203
- declare function Info(props: TitledProps): ReactElement;
204
- declare function Card({ children, href, label, title }: TitledProps & {
205
- href?: string;
206
- }): ReactElement;
207
- declare function Accordion({ children, label, title }: TitledProps): ReactElement;
208
- declare function AccordionGroup({ children }: TitledProps): ReactElement;
209
- declare function Step({ children, label, title }: TitledProps): ReactElement;
210
- declare function Steps({ children }: TitledProps): ReactElement;
211
- declare function Tab({ children, label, title }: TitledProps): ReactElement;
212
- declare function Tabs({ children }: TitledProps): ReactElement;
213
- declare function CodeGroup({ children, label, title }: TitledProps): ReactElement;
214
-
215
- type DocsPageComponent = ComponentType<{
216
- components?: Record<string, ComponentType<never>>;
217
- }>;
218
- interface DocsSiteProps extends DocsAppProps {
219
- /** The current compiled Markdown or MDX page. */
220
- children: ReactNode;
221
- }
222
- type DocsSiteComponent = ComponentType<DocsSiteProps>;
223
- /** The polished SDK-owned documentation shell. */
224
- declare const DefaultDocs: typeof DocsApp;
225
- declare function DocsContent({ data, Page, }: {
226
- data: DocsRuntimeData;
227
- Page?: DocsPageComponent;
228
- }): ReactElement;
229
-
230
- export { Accordion as A, Card as C, type DocsRuntimeData as D, Info as I, Note as N, Step as S, Tab as T, Warning as W, type DocsPageComponent as a, type DocsSiteComponent as b, AccordionGroup as c, CodeGroup as d, DefaultDocs as e, DocsApp as f, type DocsAppProps as g, DocsContent as h, type DocsSiteProps as i, Steps as j, Tabs as k, Tip as l };
@@ -1,71 +0,0 @@
1
- import { describe, expect, it } from 'vitest'
2
- import {
3
- deriveDocsAccessChange,
4
- detectDocsAclEvent,
5
- isDocsOwner,
6
- resolveDocsAccessRole,
7
- } from '../use-docs-presence-access'
8
-
9
- describe('document access policy', () => {
10
- const document = {
11
- data: {
12
- ownerId: 'owner',
13
- collaborators: JSON.stringify(['editor', 'viewer']),
14
- editors: JSON.stringify(['editor']),
15
- },
16
- }
17
-
18
- it('resolves owner, editor, viewer, and no-access roles from the document ACL', () => {
19
- expect(resolveDocsAccessRole(document, 'owner')).toBe('owner')
20
- expect(resolveDocsAccessRole(document, 'editor')).toBe('editor')
21
- expect(resolveDocsAccessRole(document, 'viewer')).toBe('viewer')
22
- expect(resolveDocsAccessRole(document, 'outsider')).toBe('none')
23
- expect(resolveDocsAccessRole(document, null)).toBe('none')
24
- })
25
-
26
- it('does not expose owner controls while both the document and user are loading', () => {
27
- expect(isDocsOwner(undefined, undefined)).toBe(false)
28
- expect(isDocsOwner(document, undefined)).toBe(false)
29
- expect(isDocsOwner(undefined, 'owner')).toBe(false)
30
- expect(isDocsOwner(document, 'owner')).toBe(true)
31
- })
32
-
33
- it('treats malformed ACL fields as empty lists', () => {
34
- const malformed = {
35
- data: { ownerId: 'owner', collaborators: '{broken', editors: JSON.stringify('editor') },
36
- }
37
- expect(resolveDocsAccessRole(malformed, 'editor')).toBe('none')
38
- })
39
-
40
- it('derives only actionable transitions from the session baseline', () => {
41
- expect(deriveDocsAccessChange('editor', 'viewer', null)).toBe('downgrade')
42
- expect(deriveDocsAccessChange('viewer', 'editor', null)).toBe('upgrade')
43
- expect(deriveDocsAccessChange('viewer', 'none', null)).toBe('revoked')
44
- expect(deriveDocsAccessChange('owner', 'owner', null)).toBeNull()
45
- expect(deriveDocsAccessChange(null, 'viewer', { kind: 'downgrade', at: 20 })).toBe('downgrade')
46
- expect(deriveDocsAccessChange('editor', 'viewer', { kind: 'revoked', at: 20 })).toBe('revoked')
47
- })
48
-
49
- it('accepts only a fresh ACL signal addressed to the current user', () => {
50
- const state = {
51
- aclSignal: {
52
- at: 20,
53
- removed: ['removed-user'],
54
- demoted: ['demoted-user'],
55
- promoted: ['promoted-user'],
56
- },
57
- }
58
-
59
- expect(detectDocsAclEvent(state, 'removed-user', 10)).toEqual({ kind: 'revoked', at: 20 })
60
- expect(detectDocsAclEvent(state, 'demoted-user', 10)).toEqual({
61
- kind: 'downgrade',
62
- at: 20,
63
- })
64
- expect(detectDocsAclEvent(state, 'promoted-user', 10)).toEqual({
65
- kind: 'upgrade',
66
- at: 20,
67
- })
68
- expect(detectDocsAclEvent(state, 'other-user', 10)).toBeNull()
69
- expect(detectDocsAclEvent(state, 'removed-user', 20)).toBeNull()
70
- })
71
- })