lemma-sdk 0.2.32 → 0.2.34

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 (171) hide show
  1. package/README.md +190 -54
  2. package/dist/browser/lemma-client.js +84 -14
  3. package/dist/index.d.ts +3 -1
  4. package/dist/index.js +2 -1
  5. package/dist/namespaces/desks.d.ts +5 -2
  6. package/dist/namespaces/desks.js +5 -2
  7. package/dist/namespaces/files.d.ts +11 -0
  8. package/dist/namespaces/files.js +12 -0
  9. package/dist/namespaces/pod-surfaces.js +1 -1
  10. package/dist/namespaces/workflows.d.ts +1 -1
  11. package/dist/openapi_client/index.d.ts +50 -12
  12. package/dist/openapi_client/index.js +10 -2
  13. package/dist/openapi_client/models/AdminConsentInfoResponse.d.ts +6 -0
  14. package/dist/openapi_client/models/AssistantSurfaceResponse.d.ts +16 -1
  15. package/dist/openapi_client/models/AssistantSurfaceStatus.d.ts +5 -0
  16. package/dist/openapi_client/models/AssistantSurfaceStatus.js +10 -0
  17. package/dist/openapi_client/models/ConversationMessageResponse.d.ts +4 -0
  18. package/dist/openapi_client/models/ConversationResponse.d.ts +3 -0
  19. package/dist/openapi_client/models/ConversationType.d.ts +8 -0
  20. package/dist/openapi_client/models/ConversationType.js +13 -0
  21. package/dist/openapi_client/models/CreateSurfaceRequest.d.ts +16 -5
  22. package/dist/openapi_client/models/{DataStoreFlowStart.d.ts → DataStoreFlowStartInput.d.ts} +1 -1
  23. package/dist/openapi_client/models/DataStoreFlowStartOutput.d.ts +11 -0
  24. package/dist/openapi_client/models/DataStoreWorkflowStartInput.d.ts +11 -0
  25. package/dist/openapi_client/models/DataStoreWorkflowStartOutput.d.ts +11 -0
  26. package/dist/openapi_client/models/DeskBundleUploadRequest.d.ts +1 -1
  27. package/dist/openapi_client/models/{EventFlowStart.d.ts → EventFlowStartInput.d.ts} +1 -1
  28. package/dist/openapi_client/models/EventFlowStartOutput.d.ts +19 -0
  29. package/dist/openapi_client/models/EventWorkflowStartInput.d.ts +11 -0
  30. package/dist/openapi_client/models/EventWorkflowStartOutput.d.ts +11 -0
  31. package/dist/openapi_client/models/FlowInstallResponse.d.ts +15 -0
  32. package/dist/openapi_client/models/FlowResponse.d.ts +5 -2
  33. package/dist/openapi_client/models/GmailSurfaceConfig.d.ts +7 -0
  34. package/dist/openapi_client/models/GmailSurfaceConfig.js +1 -0
  35. package/dist/openapi_client/models/GmailSurfaceConfigInput.d.ts +4 -0
  36. package/dist/openapi_client/models/GmailSurfaceConfigInput.js +1 -0
  37. package/dist/openapi_client/models/GrantPermissionRequest.d.ts +6 -0
  38. package/dist/openapi_client/models/GrantPermissionRequest.js +1 -0
  39. package/dist/openapi_client/models/ManualWorkflowStartInput.d.ts +10 -0
  40. package/dist/openapi_client/models/ManualWorkflowStartInput.js +1 -0
  41. package/dist/openapi_client/models/ManualWorkflowStartOutput.d.ts +10 -0
  42. package/dist/openapi_client/models/ManualWorkflowStartOutput.js +1 -0
  43. package/dist/openapi_client/models/OrganizationInvitationRequest.d.ts +2 -0
  44. package/dist/openapi_client/models/OrganizationInvitationResponse.d.ts +2 -0
  45. package/dist/openapi_client/models/OutlookSurfaceConfig.d.ts +7 -0
  46. package/dist/openapi_client/models/OutlookSurfaceConfig.js +1 -0
  47. package/dist/openapi_client/models/OutlookSurfaceConfigInput.d.ts +4 -0
  48. package/dist/openapi_client/models/OutlookSurfaceConfigInput.js +1 -0
  49. package/dist/openapi_client/models/ResourcePermissionListResponse.d.ts +4 -0
  50. package/dist/openapi_client/models/ResourcePermissionListResponse.js +1 -0
  51. package/dist/openapi_client/models/ResourcePermissionResponse.d.ts +12 -0
  52. package/dist/openapi_client/models/ResourcePermissionResponse.js +1 -0
  53. package/dist/openapi_client/models/{ScheduledFlowStart.d.ts → ScheduledFlowStartInput.d.ts} +1 -1
  54. package/dist/openapi_client/models/ScheduledFlowStartInput.js +1 -0
  55. package/dist/openapi_client/models/ScheduledFlowStartOutput.d.ts +7 -0
  56. package/dist/openapi_client/models/ScheduledFlowStartOutput.js +1 -0
  57. package/dist/openapi_client/models/ScheduledWorkflowStartInput.d.ts +11 -0
  58. package/dist/openapi_client/models/ScheduledWorkflowStartInput.js +1 -0
  59. package/dist/openapi_client/models/ScheduledWorkflowStartOutput.d.ts +11 -0
  60. package/dist/openapi_client/models/ScheduledWorkflowStartOutput.js +1 -0
  61. package/dist/openapi_client/models/SetVisibilityRequest.d.ts +3 -0
  62. package/dist/openapi_client/models/SetVisibilityRequest.js +1 -0
  63. package/dist/openapi_client/models/SlackCredentialsInput.d.ts +5 -0
  64. package/dist/openapi_client/models/SlackCredentialsInput.js +1 -0
  65. package/dist/openapi_client/models/SlackSurfaceConfig.d.ts +10 -0
  66. package/dist/openapi_client/models/SlackSurfaceConfig.js +1 -0
  67. package/dist/openapi_client/models/{SlackSurfaceConfigCreate.d.ts → SlackSurfaceConfigInput.d.ts} +1 -1
  68. package/dist/openapi_client/models/SlackSurfaceConfigInput.js +1 -0
  69. package/dist/openapi_client/models/SurfaceCredentialMode.d.ts +4 -0
  70. package/dist/openapi_client/models/SurfaceCredentialMode.js +9 -0
  71. package/dist/openapi_client/models/SurfaceIntegrationSetupGuide.d.ts +13 -0
  72. package/dist/openapi_client/models/SurfaceIntegrationSetupGuide.js +1 -0
  73. package/dist/openapi_client/models/SurfacePlatform.d.ts +8 -0
  74. package/dist/openapi_client/models/SurfacePlatform.js +13 -0
  75. package/dist/openapi_client/models/SurfacePlatformSetupGuideResponse.d.ts +9 -0
  76. package/dist/openapi_client/models/SurfacePlatformSetupGuideResponse.js +1 -0
  77. package/dist/openapi_client/models/SurfaceRoutingScope.d.ts +4 -0
  78. package/dist/openapi_client/models/SurfaceRoutingScope.js +9 -0
  79. package/dist/openapi_client/models/SurfaceSetupField.d.ts +10 -0
  80. package/dist/openapi_client/models/SurfaceSetupField.js +1 -0
  81. package/dist/openapi_client/models/SurfaceSetupFieldSource.d.ts +4 -0
  82. package/dist/openapi_client/models/SurfaceSetupFieldSource.js +9 -0
  83. package/dist/openapi_client/models/SurfaceSetupMode.d.ts +5 -0
  84. package/dist/openapi_client/models/SurfaceSetupMode.js +10 -0
  85. package/dist/openapi_client/models/SurfaceSetupPhase.d.ts +6 -0
  86. package/dist/openapi_client/models/SurfaceSetupPhase.js +11 -0
  87. package/dist/openapi_client/models/SurfaceSetupStep.d.ts +6 -0
  88. package/dist/openapi_client/models/SurfaceSetupStep.js +1 -0
  89. package/dist/openapi_client/models/SurfaceWebhookMode.d.ts +4 -0
  90. package/dist/openapi_client/models/SurfaceWebhookMode.js +9 -0
  91. package/dist/openapi_client/models/TeamsCredentialsInput.d.ts +6 -0
  92. package/dist/openapi_client/models/TeamsCredentialsInput.js +1 -0
  93. package/dist/openapi_client/models/TeamsSurfaceConfig.d.ts +9 -0
  94. package/dist/openapi_client/models/TeamsSurfaceConfig.js +1 -0
  95. package/dist/openapi_client/models/{TeamsSurfaceConfigCreate.d.ts → TeamsSurfaceConfigInput.d.ts} +1 -1
  96. package/dist/openapi_client/models/TeamsSurfaceConfigInput.js +1 -0
  97. package/dist/openapi_client/models/TelegramCredentialsInput.d.ts +5 -0
  98. package/dist/openapi_client/models/TelegramCredentialsInput.js +1 -0
  99. package/dist/openapi_client/models/TelegramSurfaceConfig.d.ts +6 -0
  100. package/dist/openapi_client/models/TelegramSurfaceConfig.js +1 -0
  101. package/dist/openapi_client/models/TelegramSurfaceConfigInput.d.ts +6 -0
  102. package/dist/openapi_client/models/TelegramSurfaceConfigInput.js +1 -0
  103. package/dist/openapi_client/models/UpdateSurfaceRequest.d.ts +17 -5
  104. package/dist/openapi_client/models/WhatsAppCredentialsInput.d.ts +8 -0
  105. package/dist/openapi_client/models/WhatsAppCredentialsInput.js +1 -0
  106. package/dist/openapi_client/models/WhatsAppSurfaceConfig.d.ts +6 -0
  107. package/dist/openapi_client/models/WhatsAppSurfaceConfig.js +1 -0
  108. package/dist/openapi_client/models/WhatsAppSurfaceConfigInput.d.ts +6 -0
  109. package/dist/openapi_client/models/WhatsAppSurfaceConfigInput.js +1 -0
  110. package/dist/openapi_client/models/WorkflowCreateRequest.d.ts +5 -2
  111. package/dist/openapi_client/models/WorkflowGraphUpdateRequest.d.ts +5 -2
  112. package/dist/openapi_client/models/WorkflowUpdateRequest.d.ts +5 -2
  113. package/dist/openapi_client/services/AssistantSurfacesIngressService.d.ts +51 -0
  114. package/dist/openapi_client/services/AssistantSurfacesIngressService.js +111 -0
  115. package/dist/openapi_client/services/AssistantSurfacesService.d.ts +27 -6
  116. package/dist/openapi_client/services/AssistantSurfacesService.js +62 -7
  117. package/dist/openapi_client/services/AuthorizationService.d.ts +47 -0
  118. package/dist/openapi_client/services/AuthorizationService.js +100 -0
  119. package/dist/openapi_client/services/DesksService.d.ts +2 -2
  120. package/dist/openapi_client/services/DesksService.js +3 -3
  121. package/dist/openapi_client/services/WorkflowsService.d.ts +3 -3
  122. package/dist/openapi_client/services/WorkflowsService.js +1 -1
  123. package/dist/react/index.d.ts +16 -0
  124. package/dist/react/index.js +8 -0
  125. package/dist/react/useAddPodMember.d.ts +22 -0
  126. package/dist/react/useAddPodMember.js +51 -0
  127. package/dist/react/useAssistantController.js +82 -37
  128. package/dist/react/useAssistantRuntime.js +8 -4
  129. package/dist/react/useAssistantSession.js +44 -2
  130. package/dist/react/useConversationMessages.js +19 -2
  131. package/dist/react/useFile.d.ts +18 -0
  132. package/dist/react/useFile.js +58 -0
  133. package/dist/react/useFilePreview.d.ts +23 -0
  134. package/dist/react/useFilePreview.js +76 -0
  135. package/dist/react/useFileSearch.d.ts +26 -0
  136. package/dist/react/useFileSearch.js +64 -0
  137. package/dist/react/useFileTree.d.ts +21 -0
  138. package/dist/react/useFileTree.js +59 -0
  139. package/dist/react/useFiles.d.ts +29 -0
  140. package/dist/react/useFiles.js +90 -0
  141. package/dist/react/useRecords.js +8 -5
  142. package/dist/react/useRemovePodMember.d.ts +19 -0
  143. package/dist/react/useRemovePodMember.js +50 -0
  144. package/dist/react/useUpdatePodMemberRole.d.ts +20 -0
  145. package/dist/react/useUpdatePodMemberRole.js +50 -0
  146. package/dist/react/useWorkflowStart.d.ts +2 -2
  147. package/dist/record-display.d.ts +20 -0
  148. package/dist/record-display.js +78 -0
  149. package/dist/record-form.d.ts +4 -0
  150. package/dist/record-form.js +16 -0
  151. package/dist/types.d.ts +8 -1
  152. package/package.json +2 -1
  153. package/dist/openapi_client/models/EmailSurfaceConfigCreate.d.ts +0 -5
  154. package/dist/openapi_client/models/FlowInstallEntity.d.ts +0 -16
  155. package/dist/openapi_client/models/FlowStartType.d.ts +0 -6
  156. package/dist/openapi_client/models/FlowStartType.js +0 -11
  157. package/dist/openapi_client/models/FlowStart_Input.d.ts +0 -14
  158. package/dist/openapi_client/models/FlowStart_Output.d.ts +0 -14
  159. package/dist/openapi_client/models/WhatsAppSurfaceConfigCreate.d.ts +0 -5
  160. package/dist/openapi_client/services/PublicDesksService.d.ts +0 -10
  161. package/dist/openapi_client/services/PublicDesksService.js +0 -22
  162. /package/dist/openapi_client/models/{DataStoreFlowStart.js → AdminConsentInfoResponse.js} +0 -0
  163. /package/dist/openapi_client/models/{EmailSurfaceConfigCreate.js → DataStoreFlowStartInput.js} +0 -0
  164. /package/dist/openapi_client/models/{EventFlowStart.js → DataStoreFlowStartOutput.js} +0 -0
  165. /package/dist/openapi_client/models/{FlowInstallEntity.js → DataStoreWorkflowStartInput.js} +0 -0
  166. /package/dist/openapi_client/models/{FlowStart_Input.js → DataStoreWorkflowStartOutput.js} +0 -0
  167. /package/dist/openapi_client/models/{FlowStart_Output.js → EventFlowStartInput.js} +0 -0
  168. /package/dist/openapi_client/models/{ScheduledFlowStart.js → EventFlowStartOutput.js} +0 -0
  169. /package/dist/openapi_client/models/{SlackSurfaceConfigCreate.js → EventWorkflowStartInput.js} +0 -0
  170. /package/dist/openapi_client/models/{TeamsSurfaceConfigCreate.js → EventWorkflowStartOutput.js} +0 -0
  171. /package/dist/openapi_client/models/{WhatsAppSurfaceConfigCreate.js → FlowInstallResponse.js} +0 -0
package/README.md CHANGED
@@ -63,9 +63,9 @@ import {
63
63
  useAgentRun,
64
64
  useConversationMessages,
65
65
  useConversations,
66
+ useRecordForm,
66
67
  useRecords,
67
- useSchemaForm,
68
- useWorkflowStart,
68
+ useWorkflowRun,
69
69
  } from "lemma-sdk/react";
70
70
  ```
71
71
 
@@ -76,13 +76,14 @@ import {
76
76
  | Auth | `AuthGuard`, `useAuth`, `useCurrentUser`, `usePodAccess` | Stable | Gate an app, read signed-in user state, or request pod access. |
77
77
  | Tables | `useTables`, `useTable`, `useRecords`, `useRecord`, `useJoinedRecords`, `useRelatedRecords`, `useReverseRelatedRecords`, `useReferencingRecords` | Stable | Build custom table browsers, details views, related-record views, and relational reads. |
78
78
  | Record mutations | `useCreateRecord`, `useUpdateRecord`, `useDeleteRecord`, `useBulkRecords` | Stable | Create, update, delete, or bulk-delete rows from headless UI. Function-backed mutations via `createVia`/`updateVia` options. |
79
- | Record forms | `useRecordSchema`, `useRecordForm`, `useForeignKeyOptions`, `useSchemaForm` | Stable | Render schema-driven forms, enum fields, and foreign-key selectors. `useRecordForm` supports `submitVia: "function"`, `visibleFields`, `hiddenFields`. |
79
+ | Record forms | `useRecordSchema`, `useRecordForm`, `useForeignKeyOptions`, `useSchemaForm` | Stable | Render schema-driven record forms, enum fields, and foreign-key selectors. `useRecordForm` is the canonical table-bound form hook; `useSchemaForm` remains available for raw JSON-schema flows. |
80
+ | Files | `useFiles`, `useFile`, `useFileSearch`, `useFileTree`, `useFilePreview` | Stable | Browse datastore folders, resolve file metadata, search indexed files, load directory trees, and preview converted or raw file content. |
80
81
  | Assistant | `useConversations`, `useConversation`, `useConversationMessages`, `useAssistantRun`, `useAssistantSession`, `useAssistantRuntime`, `useAssistantController` | Stable except controller/runtime | Build custom chat, conversation lists, streaming output, and final-output views. |
81
82
  | Agents | `useAgentRun`, `useAgentRuns`, `useAgentInputSchema`, `useTaskSession` | Stable except raw session | Start agent tasks, submit follow-up input, read task history, and inspect input/output schemas. |
82
83
  | Workflows | `useWorkflowStart`, `useWorkflowRun`, `useWorkflowRuns`, `useWorkflowResume` | Stable | Start, poll, resume, cancel, retry, and inspect workflow runs. |
83
84
  | Workflow compatibility | `useFlowSession`, `useFlowRunHistory` | Deprecated naming | Kept for existing callers; prefer workflow-named hooks for new code. |
84
85
  | Functions | `useFunctionRun`, `useFunctionRuns`, `useFunctionSession` | Stable except raw session | Run functions, poll function runs, and list function history. |
85
- | Members and org | `useMembers`, `useOrganizationMembers` | Stable | Read pod and organization member lists. `useMembers` is intentionally read-only. |
86
+ | Members and org | `useMembers`, `useAddPodMember`, `useUpdatePodMemberRole`, `useRemovePodMember`, `useOrganizationMembers` | Stable | Read pod and organization members, add existing org members into a pod, update pod roles, and remove pod access. The current checked-in client does not yet expose direct email-to-pod invites. |
86
87
 
87
88
  ### Common Hook Shapes
88
89
 
@@ -215,23 +216,37 @@ Lemma UI lives in the registry, not in `lemma-sdk/react`.
215
216
  After running `npx lemma-sdk init-shadcn`, install blocks like:
216
217
 
217
218
  ```bash
218
- npx shadcn@latest add @lemma/lemma-records-page
219
- npx shadcn@latest add @lemma/lemma-agent-runner-page
220
- npx shadcn@latest add @lemma/lemma-workflow-launcher-page
221
- npx shadcn@latest add @lemma/lemma-function-runner-page
219
+ npx shadcn@latest add @lemma/lemma-records-view
220
+ npx shadcn@latest add @lemma/lemma-detail-panel
221
+ npx shadcn@latest add @lemma/lemma-record-form
222
+ npx shadcn@latest add @lemma/lemma-global-search
223
+ npx shadcn@latest add @lemma/lemma-file-browser
224
+ npx shadcn@latest add @lemma/lemma-file-viewer
225
+ npx shadcn@latest add @lemma/lemma-document-workspace
226
+ npx shadcn@latest add @lemma/lemma-document-creator
227
+ npx shadcn@latest add @lemma/lemma-document-viewer
228
+ npx shadcn@latest add @lemma/lemma-document-editor
229
+ npx shadcn@latest add @lemma/lemma-members
230
+ npx shadcn@latest add @lemma/lemma-comments
231
+ npx shadcn@latest add @lemma/lemma-insights
232
+ npx shadcn@latest add @lemma/lemma-assistant-experience
222
233
  ```
223
234
 
235
+ Those commands are representative. The registry currently ships 22 canonical blocks.
236
+
224
237
  Current registry items:
225
238
 
226
239
  | Area | Items |
227
240
  | --- | --- |
228
- | Assistant | `lemma-assistant-experience`, `lemma-assistant-embedded` |
229
- | Schema | `lemma-schema-form` |
230
- | Tables | `lemma-table-picker`, `lemma-record-picker`, `lemma-record-filters-bar`, `lemma-records-table`, `lemma-record-details-card`, `lemma-record-form`, `lemma-related-records-table`, `lemma-reverse-related-records-table`, `lemma-bulk-actions-bar`, `lemma-records-page` |
231
- | Agents | `lemma-agent-run-panel`, `lemma-agent-output-card`, `lemma-agent-messages`, `lemma-agent-runner-page` |
232
- | Workflows | `lemma-workflow-start-form`, `lemma-workflow-history`, `lemma-workflow-run-status`, `lemma-workflow-run-details`, `lemma-workflow-launcher-page` |
233
- | Members and access | `lemma-members-table`, `lemma-member-picker`, `lemma-org-member-picker`, `lemma-pod-access-card` |
234
- | Functions | `lemma-function-run-panel`, `lemma-function-run-history`, `lemma-function-runner-page` |
241
+ | Assistant | `lemma-assistant-experience` |
242
+ | Navigation | `lemma-breadcrumbs`, `lemma-global-search`, `lemma-page-tree` |
243
+ | Records | `lemma-records-view`, `lemma-detail-panel`, `lemma-record-form`, `lemma-status-flow` |
244
+ | Files | `lemma-file-browser`, `lemma-file-viewer` |
245
+ | Documents | `lemma-document-workspace`, `lemma-document-creator`, `lemma-document-viewer`, `lemma-document-editor`, `lemma-markdown-editor` |
246
+ | People | `lemma-members`, `lemma-notification-bell`, `lemma-user-menu` |
247
+ | Analytics | `lemma-insights` |
248
+ | Collaboration | `lemma-activity-feed`, `lemma-comments` |
249
+ | Automation | `lemma-workflow-runner` |
235
250
 
236
251
  The registry is currently served from jsDelivr against this public repo:
237
252
 
@@ -240,54 +255,166 @@ The registry is currently served from jsDelivr against this public repo:
240
255
 
241
256
  For more stable installs, pin the registry URL to a tag or commit SHA instead of `@main`.
242
257
 
258
+ Blocks that install a CSS file, such as records view, should be imported by your app's global stylesheet:
259
+
260
+ ```css
261
+ @import "@/styles/lemma-records-view.css";
262
+ ```
263
+
243
264
  ### Records Workspace Customization
244
265
 
245
266
  The records blocks are meant to be configured with props before you reach for a fork.
246
267
 
247
- `lemma-records-page` supports:
268
+ `lemma-records-view` supports:
269
+
270
+ - `preset="triage" | "issues" | "crm" | "docs"` for opinionated defaults without installing duplicate workflow blocks
271
+ - `defaultView` and `availableViews` across `grid`, `list`, `grouped`, `kanban`, `linear`, `calendar`, `timeline`, and `matrix`
272
+ - `tableName`, `visibleColumns`, and `hiddenFields` for schema-aware display
273
+ - `pinnedColumns`, `columnWidths`, `columnLabels`, `primaryField`, `defaultSort`, and `paginationMode` for stronger operator-table defaults
274
+ - `groupBy`, `calendarField`, `timelineField`, `matrixRowsBy`, and `matrixColumnsBy` for consolidated view configuration
275
+ - `renderCell` and `renderCard` for custom record rendering
276
+ - `foreignKeyLabels` for human-readable FK values in cards, detail views, and create/edit forms
277
+ - `detailTabs`, `detailFieldGroups`, `detailRelatedRecords`, `detailSectionLabels`, and `detailSectionVisibility` for canonical detail composition
278
+ - `quickActions`, `bulkActions`, `detailActions`, `quickActionMode`, and `onQuickActionSuccess` for direct, function, or workflow-backed actions
279
+ - `onCreateOptions` and `onUpdateOptions` for function-backed mutations, including conditional field and section visibility in the create sheet
280
+ - `createMode="sheet" | "modal" | "page"` and `detailMode="sheet" | "modal" | "page" | "inline"` for app-specific interaction patterns
281
+ - `headerActions`, `emptyState`, `onRecordClick`, `renderFilesTab`, `renderCommentsTab`, and `renderActivityTab` for app-specific extensions
282
+ - `appearance="default" | "minimal" | "borderless" | "contained"` and `density="compact" | "comfortable" | "spacious"` for host-level block chrome; `minimal` is the cardless mode
283
+
284
+ `lemma-detail-panel` supports:
285
+
286
+ - standalone record detail rendering outside the full records workspace, using the same canonical detail internals as `lemma-records-view`
287
+ - `mode`, `variant`, and `layout` controls for embedded, sheet, modal, or full-page use
288
+ - built-in detail tabs plus custom `tabs`, `relatedRecords`, and `renderFiles` / `renderComments` / `renderActivity` sections
289
+ - direct, function-backed, and workflow-aware `actions`, plus `updateVia` / `updateFunctionName` for inline edits
290
+ - shared `appearance`, `density`, and `radius` controls for use in inline, sheet, modal, or page layouts
291
+
292
+ `lemma-record-form` supports:
293
+
294
+ - `mode="inline" | "modal" | "sheet"`
295
+ - `submitVia="direct" | "function"` and `submitFunctionName`
296
+ - `submitFunctionInput` when the backing function expects a different payload shape
297
+ - `hiddenFields`, `visibleFields`, `fieldOrder`, and `fieldGroups`
298
+ - searchable FK inputs through the shared `record-form-fields` control layer
299
+ - `fieldVisibility` and `sectionVisibility` for conditional forms
300
+ - `foreignKeyLabels` for FK select labels
301
+ - `initialValues`, `onSuccess`, and `onClose`
302
+ - `appearance`, `density`, and `radius` using the same values as `lemma-records-view`
303
+
304
+ `lemma-insights` supports:
305
+
306
+ - table-backed count, sum, average, and grouped chart cards
307
+ - bar, line, area, pie, and funnel charts with count/sum/avg aggregation
308
+ - `aggregationMode="client" | "function"` with optional `aggregateFunctionName` for shared server-side aggregation
309
+ - chart descriptions, value/category formatters, limits, sorting, empty states, and optional footers
310
+ - function-backed stats and charts
311
+ - shared `appearance`, `density`, `radius`, and card-column controls
312
+
313
+ `lemma-global-search` supports:
314
+
315
+ - configured `tables[]` with `searchFields`, `displayField`, `subtitleField`, `href`, `onSelect`, and `openMode`
316
+ - optional file search with `searchMethod`, `href`, `onSelect`, and `openMode`
317
+ - progressive table/file result groups, smooth loading/error source states, hidden empty sources, keyboard navigation, and built-in `cmd/ctrl+k` handling
318
+ - `minQueryLength`, `debounceMs`, `appearance`, `density`, trigger label, and placeholder customization
319
+ - assistant handoff by `assistantName`, with optional query/results message shaping and conversation routing
320
+
321
+ Navigation blocks support:
322
+
323
+ - route, record, and file-path breadcrumb builders through `lemma-breadcrumbs`
324
+ - self-referential page hierarchies through `lemma-page-tree`, with selection, expansion, and create/reorder hooks
325
+
326
+ File blocks support:
327
+
328
+ - datastore folder navigation and path breadcrumbs through `lemma-file-browser`
329
+ - pod-level file browsing and search, not only record-linked attachments
330
+ - upload, download, search, rename, move, folder creation, picker mode, and composition-friendly link actions
331
+ - selection-aware file browsing so `lemma-file-browser` can drive a paired workspace preview
332
+ - image, PDF, text, markdown, converted HTML, metadata, and breadcrumb-aware previews through `lemma-file-viewer`
248
333
 
249
- - capability toggles such as `allowCreate`, `allowEdit`, `allowSelection`, `allowBulkDelete`, `allowSearch`, `allowFilters`, `allowSorting`, `allowPageSizeSelect`, and `allowColumnVisibility`
250
- - layout toggles such as `showTablePicker`, `showRecordPicker`, and `showRecordDetails`
251
- - column control through `columns`, `hiddenColumnNames`, `defaultHiddenColumnNames`, and `onHiddenColumnNamesChange`
252
- - non-`id` primary keys through `recordIdField` or `getRecordId`
253
- - record-form overrides through `recordFormHiddenFields`, `recordFormFieldOrder`, `recordFormFieldLabels`, `recordFormFieldDescriptions`, `createFormTitle`, `editFormTitle`, `createSubmitLabel`, and `editSubmitLabel`
334
+ Document blocks support:
254
335
 
255
- `lemma-records-table` supports richer column definitions:
336
+ - Notion/Coda-style block documents through `lemma-document-workspace`, with Tiptap JSON content, page/modal modes, title and summary chrome, file/reference/assistant blocks, save state, metadata, backlinks, and assistant-context rails
337
+ - docstore-native creation through `lemma-document-workspace` or the simpler `lemma-document-creator`, with folder targeting, title/summary setup, pod-file metadata, and `mode="page" | "modal"`
338
+ - long-form reading surfaces through `lemma-document-workspace` or `lemma-document-viewer`, with full-page and modal presentation, metadata, backlinks, references, and assistant-context rails
339
+ - long-form authoring through `lemma-document-workspace` or `lemma-document-editor`, with full-page and modal presentation, title/summary chrome, save-state affordances, outline, references, and assistant-context rails
340
+ - a clean separation between richer document UX and the lower-level pod file workspace, while keeping pod files as the primary document store and avoiding embedded-first document editing
256
341
 
257
- - `label`, `description`, `type`, `width`, `minWidth`, `align`
258
- - `searchable`, `hideable`, `hidden`
259
- - `renderCell(...)` for custom cell output
260
- - per-row buttons through `rowActions`
342
+ People blocks support:
343
+
344
+ - `LemmaMemberChip`, `LemmaAvatarGroup`, `LemmaMemberSelect`, and `LemmaUserField`
345
+ - a stock `LemmaMembers` admin workspace for pod membership, role changes, removal, and add-from-organization flows via `organizationId`, `allowAdd`, `allowRoleEdit`, and `allowRemove`
346
+ - pod member labels for owner, creator, assignee, participant, and author fields
347
+ - searchable member picking backed by `useMembers`
348
+
349
+ Workflow primitives support:
350
+
351
+ - lifecycle/status rendering and transitions through `lemma-status-flow`
352
+ - read-only tracker layouts and compact step progress through `lemma-status-flow`
353
+ - workflow run inspection through `lemma-workflow-runner`
354
+ - reusable history and collaboration surfaces through `lemma-activity-feed` and `lemma-comments`
355
+ - table-backed defaults with escape hatches for custom action payloads and render slots
356
+
357
+ `lemma-markdown-editor` supports:
358
+
359
+ - write, preview, and split modes
360
+ - controlled and uncontrolled values
361
+ - GitHub-flavored markdown preview via `react-markdown` and `remark-gfm`
362
+ - a lightweight interim editing lane for plain markdown notes beside the richer block-native `lemma-document-workspace`
363
+
364
+ Assistant blocks support:
365
+
366
+ - assistant-name-first configuration through `assistantName`
367
+ - shared `appearance` and `density` controls on the assistant experience surface
368
+ - `chromeStyle`, `statusPlacement`, `radius`, model picker, conversation list, and render overrides for deeper customization
369
+
370
+ Shell blocks support:
371
+
372
+ - `lemma-notification-bell` for unread counts, popover inboxes, and mark-as-read flows
373
+ - `lemma-user-menu` for current-user presentation, custom menu actions, and sign-out affordances
261
374
 
262
375
  ```tsx
263
- import { LemmaRecordsPage } from "@/components/lemma/lemma-records-page";
264
- import type { LemmaRecordsTableColumn } from "@/components/lemma/lemma-records-table";
265
-
266
- const columns: LemmaRecordsTableColumn[] = [
267
- { name: "item_id", label: "Item ID", hideable: false, width: 180 },
268
- { name: "group_id", label: "Group", width: 160 },
269
- { name: "name", label: "Name", minWidth: 320, searchable: true },
270
- {
271
- name: "sellable",
272
- label: "Sellable",
273
- type: "boolean",
274
- width: 120,
275
- align: "center",
276
- renderCell: ({ value }) => (value ? "Yes" : "No"),
277
- },
278
- ];
279
-
280
- <LemmaRecordsPage
281
- allowColumnVisibility
282
- allowCreate
283
- allowEdit
284
- columns={columns}
285
- createButtonLabel="New SKU"
286
- defaultHiddenColumnNames={["group_id"]}
287
- editSubmitLabel="Save SKU"
288
- recordFormFieldLabels={{ item_id: "Item ID" }}
289
- recordIdField="item_id"
290
- tableName="catalog_items"
376
+ import { LemmaRecordsView } from "@/components/lemma/lemma-records-view";
377
+ import { LemmaGlobalSearch } from "@/components/lemma/lemma-global-search";
378
+
379
+ <LemmaRecordsView
380
+ client={client}
381
+ podId={podId}
382
+ tableName="deals"
383
+ preset="crm"
384
+ hiddenFields={["id", "created_at", "updated_at"]}
385
+ foreignKeyLabels={{ company_id: "name" }}
386
+ appearance="minimal"
387
+ density="compact"
388
+ createMode="sheet"
389
+ onCreateOptions={{
390
+ submitVia: "function",
391
+ submitFunctionName: "create-deal",
392
+ }}
393
+ />;
394
+
395
+ <LemmaGlobalSearch
396
+ client={client}
397
+ podId={podId}
398
+ tables={[
399
+ {
400
+ tableName: "deals",
401
+ label: "Deals",
402
+ searchFields: ["name", "status", "source"],
403
+ displayField: "name",
404
+ subtitleField: "status",
405
+ href: (record) => `/deals?record=${record.id}`,
406
+ },
407
+ ]}
408
+ files={{ enabled: true, openMode: "new-tab" }}
409
+ assistant={{
410
+ assistantName: "sales-copilot",
411
+ label: "Ask CRM",
412
+ resultLimit: 8,
413
+ }}
414
+ minQueryLength={3}
415
+ debounceMs={450}
416
+ appearance="minimal"
417
+ density="compact"
291
418
  />;
292
419
  ```
293
420
 
@@ -328,6 +455,15 @@ npm run build
328
455
  npm run registry:build
329
456
  ```
330
457
 
458
+ To build the canonical example desk:
459
+
460
+ ```bash
461
+ cd examples/inbox-crm
462
+ npm run build
463
+ ```
464
+
465
+ `examples/inbox-crm` now mirrors the kept registry surface only. Its local `src/components/lemma` folder is a copied install target of the current canonical registry blocks, and `src/main.tsx` demonstrates those blocks in one routed operator desk.
466
+
331
467
  This repo includes:
332
468
 
333
469
  - `registry.json` for registry source definitions
@@ -1742,8 +1742,8 @@ class DesksNamespace {
1742
1742
  this.client = client;
1743
1743
  this.http = http;
1744
1744
  this.podId = podId;
1745
- this.html = {
1746
- get: (name) => this.client.request(() => DesksService_js_1.DesksService.deskHtmlGet(this.podId(), name)),
1745
+ this.assets = {
1746
+ get: (name, path) => this.http.request("GET", `/pods/${this.podId()}/desks/${name}/assets${path ? `/${path.replace(/^\/+/, "")}` : ""}`),
1747
1747
  };
1748
1748
  this.bundle = {
1749
1749
  upload: (name, payload) => this.client.request(() => DesksService_js_1.DesksService.deskBundleUpload(this.podId(), name, payload)),
@@ -1751,6 +1751,9 @@ class DesksNamespace {
1751
1751
  this.source = {
1752
1752
  download: (name) => this.http.requestBytes("GET", `/pods/${this.podId()}/desks/${name}/source/archive`),
1753
1753
  };
1754
+ this.dist = {
1755
+ download: (name) => this.http.requestBytes("GET", `/pods/${this.podId()}/desks/${name}/dist/archive`),
1756
+ };
1754
1757
  }
1755
1758
  list(options = {}) {
1756
1759
  return this.client.request(() => DesksService_js_1.DesksService.deskList(this.podId(), options.limit ?? 100, options.pageToken));
@@ -1910,16 +1913,16 @@ class DesksService {
1910
1913
  });
1911
1914
  }
1912
1915
  /**
1913
- * Get Desk HTML
1916
+ * Download Desk Dist Archive
1914
1917
  * @param podId
1915
1918
  * @param deskName
1916
1919
  * @returns any Successful Response
1917
1920
  * @throws ApiError
1918
1921
  */
1919
- static deskHtmlGet(podId, deskName) {
1922
+ static deskDistArchiveGet(podId, deskName) {
1920
1923
  return (0, request_js_1.request)(OpenAPI_js_1.OpenAPI, {
1921
1924
  method: 'GET',
1922
- url: '/pods/{pod_id}/desks/{desk_name}/html',
1925
+ url: '/pods/{pod_id}/desks/{desk_name}/dist/archive',
1923
1926
  path: {
1924
1927
  'pod_id': podId,
1925
1928
  'desk_name': deskName,
@@ -2002,6 +2005,15 @@ class FilesNamespace {
2002
2005
  return this.client.request(() => FilesService_js_1.FilesService.fileFolderCreate(this.podId(), payload));
2003
2006
  },
2004
2007
  };
2008
+ this.converted = {
2009
+ get: (path) => this.client.request(() => FilesService_js_1.FilesService.fileConvertedGet(this.podId(), path)),
2010
+ render: (path) => this.client.request(() => FilesService_js_1.FilesService.fileConvertedRender(this.podId(), path)),
2011
+ download: (path, artifact = "document.md") => {
2012
+ const encodedPath = encodeURIComponent(path);
2013
+ const encodedArtifact = encodeURIComponent(artifact);
2014
+ return this.http.requestBytes("GET", `/pods/${this.podId()}/datastore/files/converted/download?path=${encodedPath}&artifact=${encodedArtifact}`);
2015
+ },
2016
+ };
2005
2017
  }
2006
2018
  list(options = {}) {
2007
2019
  const directoryPath = options.directoryPath ?? options.parentId ?? "/";
@@ -2024,6 +2036,9 @@ class FilesNamespace {
2024
2036
  const encodedPath = encodeURIComponent(path);
2025
2037
  return this.http.requestBytes("GET", `/pods/${this.podId()}/datastore/files/download?path=${encodedPath}`);
2026
2038
  }
2039
+ tree(options = {}) {
2040
+ return this.client.request(() => FilesService_js_1.FilesService.fileTree(this.podId(), options.rootPath ?? "/", options.filesPerDirectory ?? 3));
2041
+ }
2027
2042
  upload(file, options = {}) {
2028
2043
  const payload = {
2029
2044
  data: file,
@@ -3873,7 +3888,7 @@ class PodSurfacesNamespace {
3873
3888
  return this.client.request(() => AssistantSurfacesService_js_1.AssistantSurfacesService.assistantSurfaceGet(podId, surfaceId));
3874
3889
  }
3875
3890
  updateConfig(podId, surfaceId, payload) {
3876
- return this.client.request(() => AssistantSurfacesService_js_1.AssistantSurfacesService.assistantSurfaceUpdateConfig(podId, surfaceId, payload));
3891
+ return this.client.request(() => AssistantSurfacesService_js_1.AssistantSurfacesService.assistantSurfaceUpdate(podId, surfaceId, payload));
3877
3892
  }
3878
3893
  toggle(podId, surfaceId, isActive) {
3879
3894
  return this.client.request(() => AssistantSurfacesService_js_1.AssistantSurfacesService.assistantSurfaceToggle(podId, surfaceId, { is_active: isActive }));
@@ -3891,7 +3906,6 @@ const request_js_1 = require("./openapi_client/core/request.js");
3891
3906
  class AssistantSurfacesService {
3892
3907
  /**
3893
3908
  * List Surfaces
3894
- * List configured surfaces in a pod.
3895
3909
  * @param podId
3896
3910
  * @param limit
3897
3911
  * @param pageToken
@@ -3916,7 +3930,6 @@ class AssistantSurfacesService {
3916
3930
  }
3917
3931
  /**
3918
3932
  * Create Surface
3919
- * Create a new surface for an assistant.
3920
3933
  * @param podId
3921
3934
  * @param requestBody
3922
3935
  * @returns any Successful Response
@@ -3936,9 +3949,28 @@ class AssistantSurfacesService {
3936
3949
  },
3937
3950
  });
3938
3951
  }
3952
+ /**
3953
+ * Get Surface Platform Checklist
3954
+ * @param podId
3955
+ * @param platform
3956
+ * @returns SurfacePlatformSetupGuideResponse Successful Response
3957
+ * @throws ApiError
3958
+ */
3959
+ static assistantSurfacePlatformChecklist(podId, platform) {
3960
+ return (0, request_js_1.request)(OpenAPI_js_1.OpenAPI, {
3961
+ method: 'GET',
3962
+ url: '/pods/{pod_id}/surfaces/platforms/{platform}/checklist',
3963
+ path: {
3964
+ 'pod_id': podId,
3965
+ 'platform': platform,
3966
+ },
3967
+ errors: {
3968
+ 422: `Validation Error`,
3969
+ },
3970
+ });
3971
+ }
3939
3972
  /**
3940
3973
  * Get Surface
3941
- * Get a specific surface configuration.
3942
3974
  * @param podId
3943
3975
  * @param surfaceId
3944
3976
  * @returns any Successful Response
@@ -3959,17 +3991,16 @@ class AssistantSurfacesService {
3959
3991
  }
3960
3992
  /**
3961
3993
  * Update Surface
3962
- * Update a surface configuration.
3963
3994
  * @param podId
3964
3995
  * @param surfaceId
3965
3996
  * @param requestBody
3966
3997
  * @returns any Successful Response
3967
3998
  * @throws ApiError
3968
3999
  */
3969
- static assistantSurfaceUpdateConfig(podId, surfaceId, requestBody) {
4000
+ static assistantSurfaceUpdate(podId, surfaceId, requestBody) {
3970
4001
  return (0, request_js_1.request)(OpenAPI_js_1.OpenAPI, {
3971
4002
  method: 'PATCH',
3972
- url: '/pods/{pod_id}/surfaces/{surface_id}/config',
4003
+ url: '/pods/{pod_id}/surfaces/{surface_id}',
3973
4004
  path: {
3974
4005
  'pod_id': podId,
3975
4006
  'surface_id': surfaceId,
@@ -3981,9 +4012,28 @@ class AssistantSurfacesService {
3981
4012
  },
3982
4013
  });
3983
4014
  }
4015
+ /**
4016
+ * Get Admin Consent Info
4017
+ * @param podId
4018
+ * @param surfaceId
4019
+ * @returns AdminConsentInfoResponse Successful Response
4020
+ * @throws ApiError
4021
+ */
4022
+ static assistantSurfaceAdminConsentInfo(podId, surfaceId) {
4023
+ return (0, request_js_1.request)(OpenAPI_js_1.OpenAPI, {
4024
+ method: 'GET',
4025
+ url: '/pods/{pod_id}/surfaces/{surface_id}/admin-consent',
4026
+ path: {
4027
+ 'pod_id': podId,
4028
+ 'surface_id': surfaceId,
4029
+ },
4030
+ errors: {
4031
+ 422: `Validation Error`,
4032
+ },
4033
+ });
4034
+ }
3984
4035
  /**
3985
4036
  * Toggle Surface
3986
- * Toggle a surface active state.
3987
4037
  * @param podId
3988
4038
  * @param surfaceId
3989
4039
  * @param requestBody
@@ -4005,6 +4055,26 @@ class AssistantSurfacesService {
4005
4055
  },
4006
4056
  });
4007
4057
  }
4058
+ /**
4059
+ * Get Webhook Url
4060
+ * @param podId
4061
+ * @param surfaceId
4062
+ * @returns any Successful Response
4063
+ * @throws ApiError
4064
+ */
4065
+ static assistantSurfaceWebhookUrl(podId, surfaceId) {
4066
+ return (0, request_js_1.request)(OpenAPI_js_1.OpenAPI, {
4067
+ method: 'GET',
4068
+ url: '/pods/{pod_id}/surfaces/{surface_id}/webhook-url',
4069
+ path: {
4070
+ 'pod_id': podId,
4071
+ 'surface_id': surfaceId,
4072
+ },
4073
+ errors: {
4074
+ 422: `Validation Error`,
4075
+ },
4076
+ });
4077
+ }
4008
4078
  }
4009
4079
  exports.AssistantSurfacesService = AssistantSurfacesService;
4010
4080
 
@@ -5003,7 +5073,7 @@ class WorkflowsService {
5003
5073
  * @param podId
5004
5074
  * @param workflowName
5005
5075
  * @param requestBody
5006
- * @returns FlowInstallEntity Successful Response
5076
+ * @returns FlowInstallResponse Successful Response
5007
5077
  * @throws ApiError
5008
5078
  */
5009
5079
  static workflowInstallCreate(podId, workflowName, requestBody) {
package/dist/index.d.ts CHANGED
@@ -12,8 +12,10 @@ export { parseTaskStreamEvent, upsertTaskMessage } from "./task-events.js";
12
12
  export type { ParsedTaskStreamEvent } from "./task-events.js";
13
13
  export { parseAssistantStreamEvent, upsertConversationMessage } from "./assistant-events.js";
14
14
  export type { ParsedAssistantStreamEvent } from "./assistant-events.js";
15
- export { buildRecordFormValues, buildRecordPayload, buildRecordSchemaFields, formatRecordValueForForm, getEditableRecordFields, getRecordFieldKind, } from "./record-form.js";
15
+ export { DEFAULT_RECORD_FORM_HIDDEN_FIELDS, buildRecordFormValues, buildRecordPayload, buildRecordSchemaFields, formatRecordValueForForm, getEditableRecordFields, getRecordFieldKind, orderRecordSchemaFields, } from "./record-form.js";
16
16
  export type { BuildRecordPayloadOptions, BuildRecordPayloadResult, RecordSchemaField, RecordSchemaFieldKind, } from "./record-form.js";
17
+ export { buildDefaultRecordDetailFieldGroups, detectRecordDescriptionColumn, detectRecordStatusColumn, detectRecordTitleColumn, formatRecordDateDisplayValue, formatRecordDisplayValue, formatRecordPlainValue, humanizeRecordFieldName, isDefaultRecordDetailHiddenField, } from "./record-display.js";
18
+ export type { RecordDetailFieldGroupDefinition } from "./record-display.js";
17
19
  export { buildSchemaFormFields, buildSchemaFormPayload, buildSchemaFormValues, formatSchemaFieldValueForForm, } from "./schema-form.js";
18
20
  export type { BuildSchemaFormPayloadResult, JsonSchemaLike, JsonSchemaPrimitiveType, SchemaFormField, SchemaFormFieldKind, } from "./schema-form.js";
19
21
  export { buildJoinedRecordsQuery, parseForeignKeyReference, } from "./datastore-query.js";
package/dist/index.js CHANGED
@@ -6,6 +6,7 @@ export { readSSE, parseSSEJson } from "./streams.js";
6
6
  export { normalizeRunStatus, isTerminalTaskStatus, isTerminalFunctionStatus, isTerminalFlowStatus, sleep, nextBackoffDelay, } from "./run-utils.js";
7
7
  export { parseTaskStreamEvent, upsertTaskMessage } from "./task-events.js";
8
8
  export { parseAssistantStreamEvent, upsertConversationMessage } from "./assistant-events.js";
9
- export { buildRecordFormValues, buildRecordPayload, buildRecordSchemaFields, formatRecordValueForForm, getEditableRecordFields, getRecordFieldKind, } from "./record-form.js";
9
+ export { DEFAULT_RECORD_FORM_HIDDEN_FIELDS, buildRecordFormValues, buildRecordPayload, buildRecordSchemaFields, formatRecordValueForForm, getEditableRecordFields, getRecordFieldKind, orderRecordSchemaFields, } from "./record-form.js";
10
+ export { buildDefaultRecordDetailFieldGroups, detectRecordDescriptionColumn, detectRecordStatusColumn, detectRecordTitleColumn, formatRecordDateDisplayValue, formatRecordDisplayValue, formatRecordPlainValue, humanizeRecordFieldName, isDefaultRecordDetailHiddenField, } from "./record-display.js";
10
11
  export { buildSchemaFormFields, buildSchemaFormPayload, buildSchemaFormValues, formatSchemaFieldValueForForm, } from "./schema-form.js";
11
12
  export { buildJoinedRecordsQuery, parseForeignKeyReference, } from "./datastore-query.js";
@@ -16,8 +16,8 @@ export declare class DesksNamespace {
16
16
  get(name: string): Promise<import("../types.js").DeskResponse>;
17
17
  update(name: string, payload: UpdateDeskRequest): Promise<import("../types.js").DeskResponse>;
18
18
  delete(name: string): Promise<import("../types.js").DeskMessageResponse>;
19
- readonly html: {
20
- get: (name: string) => Promise<string>;
19
+ readonly assets: {
20
+ get: (name: string, path?: string) => Promise<string>;
21
21
  };
22
22
  readonly bundle: {
23
23
  upload: (name: string, payload: DeskBundleUploadRequest) => Promise<import("../types.js").DeskBundleUploadResponse>;
@@ -25,4 +25,7 @@ export declare class DesksNamespace {
25
25
  readonly source: {
26
26
  download: (name: string) => Promise<Blob>;
27
27
  };
28
+ readonly dist: {
29
+ download: (name: string) => Promise<Blob>;
30
+ };
28
31
  }
@@ -23,8 +23,8 @@ export class DesksNamespace {
23
23
  delete(name) {
24
24
  return this.client.request(() => DesksService.deskDelete(this.podId(), name));
25
25
  }
26
- html = {
27
- get: (name) => this.client.request(() => DesksService.deskHtmlGet(this.podId(), name)),
26
+ assets = {
27
+ get: (name, path) => this.http.request("GET", `/pods/${this.podId()}/desks/${name}/assets${path ? `/${path.replace(/^\/+/, "")}` : ""}`),
28
28
  };
29
29
  bundle = {
30
30
  upload: (name, payload) => this.client.request(() => DesksService.deskBundleUpload(this.podId(), name, payload)),
@@ -32,4 +32,7 @@ export class DesksNamespace {
32
32
  source = {
33
33
  download: (name) => this.http.requestBytes("GET", `/pods/${this.podId()}/desks/${name}/source/archive`),
34
34
  };
35
+ dist = {
36
+ download: (name) => this.http.requestBytes("GET", `/pods/${this.podId()}/desks/${name}/dist/archive`),
37
+ };
35
38
  }
@@ -1,5 +1,7 @@
1
1
  import type { GeneratedClientAdapter } from "../generated.js";
2
2
  import type { HttpClient } from "../http.js";
3
+ import type { ConvertedFileResponse } from "../openapi_client/models/ConvertedFileResponse.js";
4
+ import type { DirectoryTreeResponse } from "../openapi_client/models/DirectoryTreeResponse.js";
3
5
  import { SearchMethod } from "../openapi_client/models/SearchMethod.js";
4
6
  export declare class FilesNamespace {
5
7
  private readonly client;
@@ -19,6 +21,10 @@ export declare class FilesNamespace {
19
21
  searchMethod?: SearchMethod;
20
22
  }): Promise<import("../types.js").FileSearchResponse>;
21
23
  download(path: string): Promise<Blob>;
24
+ tree(options?: {
25
+ rootPath?: string;
26
+ filesPerDirectory?: number;
27
+ }): Promise<DirectoryTreeResponse>;
22
28
  upload(file: Blob, options?: {
23
29
  name?: string;
24
30
  directoryPath?: string;
@@ -42,4 +48,9 @@ export declare class FilesNamespace {
42
48
  description?: string;
43
49
  }) => Promise<import("../types.js").FileResponse>;
44
50
  };
51
+ readonly converted: {
52
+ get: (path: string) => Promise<ConvertedFileResponse>;
53
+ render: (path: string) => Promise<string>;
54
+ download: (path: string, artifact?: string) => Promise<Blob>;
55
+ };
45
56
  }
@@ -59,6 +59,9 @@ export class FilesNamespace {
59
59
  const encodedPath = encodeURIComponent(path);
60
60
  return this.http.requestBytes("GET", `/pods/${this.podId()}/datastore/files/download?path=${encodedPath}`);
61
61
  }
62
+ tree(options = {}) {
63
+ return this.client.request(() => FilesService.fileTree(this.podId(), options.rootPath ?? "/", options.filesPerDirectory ?? 3));
64
+ }
62
65
  upload(file, options = {}) {
63
66
  const payload = {
64
67
  data: file,
@@ -96,4 +99,13 @@ export class FilesNamespace {
96
99
  return this.client.request(() => FilesService.fileFolderCreate(this.podId(), payload));
97
100
  },
98
101
  };
102
+ converted = {
103
+ get: (path) => this.client.request(() => FilesService.fileConvertedGet(this.podId(), path)),
104
+ render: (path) => this.client.request(() => FilesService.fileConvertedRender(this.podId(), path)),
105
+ download: (path, artifact = "document.md") => {
106
+ const encodedPath = encodeURIComponent(path);
107
+ const encodedArtifact = encodeURIComponent(artifact);
108
+ return this.http.requestBytes("GET", `/pods/${this.podId()}/datastore/files/converted/download?path=${encodedPath}&artifact=${encodedArtifact}`);
109
+ },
110
+ };
99
111
  }
@@ -14,7 +14,7 @@ export class PodSurfacesNamespace {
14
14
  return this.client.request(() => AssistantSurfacesService.assistantSurfaceGet(podId, surfaceId));
15
15
  }
16
16
  updateConfig(podId, surfaceId, payload) {
17
- return this.client.request(() => AssistantSurfacesService.assistantSurfaceUpdateConfig(podId, surfaceId, payload));
17
+ return this.client.request(() => AssistantSurfacesService.assistantSurfaceUpdate(podId, surfaceId, payload));
18
18
  }
19
19
  toggle(podId, surfaceId, isActive) {
20
20
  return this.client.request(() => AssistantSurfacesService.assistantSurfaceToggle(podId, surfaceId, { is_active: isActive }));
@@ -23,7 +23,7 @@ export declare class WorkflowsNamespace {
23
23
  update: (workflowName: string, graph: WorkflowGraphUpdateRequest) => Promise<import("../types.js").FlowResponse>;
24
24
  };
25
25
  readonly installs: {
26
- create: (workflowName: string, payload?: WorkflowInstallRequest) => Promise<import("../types.js").FlowInstallEntity>;
26
+ create: (workflowName: string, payload?: WorkflowInstallRequest) => Promise<import("../types.js").FlowInstallResponse>;
27
27
  delete: (workflowName: string, installId: string) => Promise<void>;
28
28
  };
29
29
  private postRunAction;