lemma-sdk 0.2.35 → 0.2.36

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 (47) hide show
  1. package/README.md +103 -26
  2. package/dist/browser/lemma-client.js +176 -14
  3. package/dist/namespaces/integrations.d.ts +10 -2
  4. package/dist/namespaces/integrations.js +17 -2
  5. package/dist/openapi_client/index.d.ts +10 -2
  6. package/dist/openapi_client/index.js +1 -0
  7. package/dist/openapi_client/models/FeedbackCategory.d.ts +7 -0
  8. package/dist/openapi_client/models/FeedbackCategory.js +12 -0
  9. package/dist/openapi_client/models/FlowRunEntity.d.ts +1 -0
  10. package/dist/openapi_client/models/IntegrationHelperAgentRequest.d.ts +13 -0
  11. package/dist/openapi_client/models/IntegrationHelperAgentResponse.d.ts +25 -0
  12. package/dist/openapi_client/models/OperationDetail.d.ts +3 -0
  13. package/dist/openapi_client/models/OperationDetailsBatchRequest.d.ts +9 -0
  14. package/dist/openapi_client/models/OperationDetailsBatchRequest.js +1 -0
  15. package/dist/openapi_client/models/OperationDetailsBatchResponse.d.ts +18 -0
  16. package/dist/openapi_client/models/OperationDetailsBatchResponse.js +1 -0
  17. package/dist/openapi_client/models/OperationDiscoverResponse.d.ts +26 -0
  18. package/dist/openapi_client/models/OperationDiscoverResponse.js +1 -0
  19. package/dist/openapi_client/models/OperationSummary.d.ts +3 -0
  20. package/dist/openapi_client/models/OrganizationCreateRequest.d.ts +2 -0
  21. package/dist/openapi_client/models/OrganizationInvitationRequest.d.ts +1 -0
  22. package/dist/openapi_client/models/OrganizationInvitationResponse.d.ts +3 -0
  23. package/dist/openapi_client/models/OrganizationMessageResponse.d.ts +1 -0
  24. package/dist/openapi_client/models/OrganizationResponse.d.ts +2 -0
  25. package/dist/openapi_client/models/OrganizationSlugAvailabilityResponse.d.ts +7 -0
  26. package/dist/openapi_client/models/OrganizationSlugAvailabilityResponse.js +1 -0
  27. package/dist/openapi_client/models/ReportFeedbackRequest.d.ts +30 -0
  28. package/dist/openapi_client/models/ReportFeedbackRequest.js +1 -0
  29. package/dist/openapi_client/models/ReportFeedbackResponse.d.ts +29 -0
  30. package/dist/openapi_client/models/ReportFeedbackResponse.js +1 -0
  31. package/dist/openapi_client/models/WorkflowInstallListResponse.d.ts +4 -0
  32. package/dist/openapi_client/models/WorkflowInstallListResponse.js +1 -0
  33. package/dist/openapi_client/services/AgentToolsService.d.ts +20 -0
  34. package/dist/openapi_client/services/AgentToolsService.js +36 -0
  35. package/dist/openapi_client/services/ApplicationsService.d.ts +10 -9
  36. package/dist/openapi_client/services/ApplicationsService.js +11 -10
  37. package/dist/openapi_client/services/IntegrationsService.d.ts +3 -2
  38. package/dist/openapi_client/services/IntegrationsService.js +4 -2
  39. package/dist/openapi_client/services/OrganizationsService.d.ts +18 -0
  40. package/dist/openapi_client/services/OrganizationsService.js +40 -0
  41. package/dist/openapi_client/services/WorkflowsService.d.ts +10 -0
  42. package/dist/openapi_client/services/WorkflowsService.js +21 -0
  43. package/package.json +1 -1
  44. package/dist/openapi_client/models/AppDescriptorResponse.d.ts +0 -5
  45. package/dist/openapi_client/models/OperationListResponse.d.ts +0 -6
  46. /package/dist/openapi_client/models/{AppDescriptorResponse.js → IntegrationHelperAgentRequest.js} +0 -0
  47. /package/dist/openapi_client/models/{OperationListResponse.js → IntegrationHelperAgentResponse.js} +0 -0
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  `lemma-sdk` is the headless TypeScript SDK for Lemma. Use `lemma-sdk` for the core client and shared helpers, and use `lemma-sdk/react` as the main app-building surface for hooks and auth primitives.
4
4
 
5
- `AuthGuard` intentionally stays in `lemma-sdk/react`. The product direction is hooks-first and shell-agnostic. The registry remains available, but it is intentionally small and no longer the center of the recommended development model. See [docs/headless-first-direction.md](docs/headless-first-direction.md).
5
+ `AuthGuard` intentionally stays in `lemma-sdk/react`. The product direction remains hooks-first and shell-agnostic, and the registry ships stock Lemma UI blocks when you want installable assistant, records, file, workflow, collaboration, or shell surfaces.
6
6
 
7
7
  ## Install
8
8
 
@@ -218,31 +218,31 @@ function WorkflowButton({ client }: { client: LemmaClient }) {
218
218
 
219
219
  ## Registry
220
220
 
221
- The registry is optional UI scaffolding, not the default product story. Most desks should be built from hooks and app-local UI.
222
-
223
- If you still want registry installs, they remain available:
221
+ The registry is optional UI scaffolding for teams that want stock Lemma blocks on top of the headless SDK.
224
222
 
225
223
  After running `npx lemma-sdk init-shadcn`, install blocks like:
226
224
 
227
225
  ```bash
228
- npx shadcn@latest add @lemma/lemma-assistant-experience
229
- npx shadcn@latest add @lemma/lemma-document-workspace
226
+ npx shadcn@latest add @lemma/lemma-records-view
227
+ npx shadcn@latest add @lemma/lemma-detail-panel
228
+ npx shadcn@latest add @lemma/lemma-record-form
230
229
  npx shadcn@latest add @lemma/lemma-global-search
231
- npx shadcn@latest add @lemma/lemma-members
232
- npx shadcn@latest add @lemma/lemma-action-surface
230
+ npx shadcn@latest add @lemma/lemma-file-browser
231
+ npx shadcn@latest add @lemma/lemma-document-workspace
232
+ npx shadcn@latest add @lemma/lemma-comments
233
+ npx shadcn@latest add @lemma/lemma-assistant-experience
233
234
  ```
234
235
 
235
- The registry is intentionally small now. It currently ships 5 published blocks.
236
-
237
- Current registry items:
236
+ The registry currently ships 19 canonical blocks:
238
237
 
239
238
  | Area | Items |
240
239
  | --- | --- |
241
- | Assistant | `lemma-assistant-experience` |
242
- | Documents | `lemma-document-workspace` |
243
- | Search | `lemma-global-search` |
244
- | People | `lemma-members` |
245
- | Automation | `lemma-action-surface` |
240
+ | Core operator blocks | `lemma-records-view`, `lemma-detail-panel`, `lemma-record-form`, `lemma-status-flow` |
241
+ | Search, files, and pages | `lemma-global-search`, `lemma-breadcrumbs`, `lemma-file-browser`, `lemma-markdown-editor`, `lemma-page-tree`, `lemma-document-workspace` |
242
+ | Collaboration and analytics | `lemma-comments`, `lemma-activity-feed`, `lemma-insights`, `lemma-action-surface`, `lemma-workflow-runner` |
243
+ | Assistant and shell | `lemma-assistant-experience`, `lemma-members`, `lemma-notification-bell`, `lemma-user-menu` |
244
+
245
+ Registry blocks now install against a shared `lemma-ui` primitive layer that ships with this registry. Consumers no longer need a pre-existing app-local `@/components/ui/*` shadcn tree just to use Lemma blocks.
246
246
 
247
247
  The registry is currently served from jsDelivr against this public repo:
248
248
 
@@ -251,13 +251,50 @@ The registry is currently served from jsDelivr against this public repo:
251
251
 
252
252
  For more stable installs, pin the registry URL to a tag or commit SHA instead of `@main`.
253
253
 
254
- Published blocks:
254
+ Blocks that install a CSS file, such as records view, should be imported by your app's global stylesheet:
255
+
256
+ ```css
257
+ @import "@/styles/lemma-records-view.css";
258
+ ```
259
+
260
+ Core registry blocks:
255
261
 
256
- - `lemma-assistant-experience` for the hardest assistant/chat runtime surface
257
- - `lemma-document-workspace` for rich document/file create-read-edit-preview flows
262
+ - `lemma-records-view` for a lean records browser by default, with explicit workspace presets for grid, list, grouped, kanban, and linear operator flows
263
+ - `lemma-detail-panel` for standalone record detail rendering with shared records-detail internals
264
+ - `lemma-record-form` for schema-aware create and edit flows with searchable foreign-key controls
265
+ - `lemma-status-flow` for interactive status transitions and lifecycle display
258
266
  - `lemma-global-search` for a stock command-bar style omnibox
259
- - `lemma-members` for stock pod membership management
260
- - `lemma-action-surface` for long-running function/workflow/agent launches
267
+ - `lemma-file-browser` and `lemma-document-workspace` for file browsing, editing, preview, and document-native workflows
268
+ - `lemma-comments`, `lemma-activity-feed`, and `lemma-insights` for collaboration and reporting
269
+ - `lemma-action-surface` and `lemma-workflow-runner` for long-running actions and workflow history
270
+ - `lemma-assistant-experience`, `lemma-members`, `lemma-notification-bell`, and `lemma-user-menu` for assistant and shell surfaces
271
+
272
+ ### Block Defaults
273
+
274
+ The registry now treats generic blocks as read-first and low-chrome by default.
275
+
276
+ - base blocks should render useful data without assuming a full workspace shell
277
+ - presets are the place for opinionated operator UX such as inline detail, multi-view boards, and heavier toolbars
278
+ - `appearance`, `density`, and `radius` remain available as local override props on major blocks, but they are optional; prefer setting visual defaults in your app shell or wrapper components instead of passing them everywhere
279
+
280
+ `lemma-records-view` now defaults to:
281
+
282
+ - one explicit view instead of an inferred multi-view workspace
283
+ - no search bar unless you opt in through `chrome.search` or pass search config
284
+ - no filter launcher unless you opt in through `chrome.filters` or provide default filters
285
+ - no create button unless you opt in through `chrome.create` or pass create config
286
+ - no row-selection chrome unless you opt in through `chrome.selection` or provide bulk actions
287
+ - `detailMode="sheet"` for the base block, with inline detail reserved for explicit presets or explicit props
288
+ - no schema-name heuristics that silently promote a table into `kanban` or `linear`
289
+
290
+ For records workspaces, the split is:
291
+
292
+ - use the base block for simple table/list browsing
293
+ - pass `availableViews` only when you want a view switcher
294
+ - pass `chrome={{ search: true, filters: true, create: true, viewSwitcher: true, selection: true }}` when you want workspace controls on the base block
295
+ - use `preset="triage" | "issues" | "crm" | "docs"` when you want a stock operator workspace
296
+
297
+ `lemma-members` now defaults to a read-only membership list. Add management behavior explicitly with `allowAdd`, `allowRoleEdit`, and `allowRemove`.
261
298
 
262
299
  `lemma-global-search` supports:
263
300
 
@@ -277,15 +314,29 @@ Document blocks support:
277
314
  People blocks support:
278
315
 
279
316
  - `LemmaMemberChip`, `LemmaAvatarGroup`, `LemmaMemberSelect`, and `LemmaUserField`
280
- - a stock `LemmaMembers` admin workspace for pod membership, role changes, removal, and add-from-organization flows via `organizationId`, `allowAdd`, `allowRoleEdit`, and `allowRemove`
317
+ - a stock `LemmaMembers` surface that is read-only by default, and upgrades into a membership admin workspace only when `allowAdd`, `allowRoleEdit`, or `allowRemove` are enabled
281
318
  - pod member labels for owner, creator, assignee, participant, and author fields
282
319
  - searchable member picking backed by `useMembers`
283
320
 
284
321
  Workflow primitives support:
285
322
 
323
+ - lifecycle/status rendering and transitions through `lemma-status-flow`
286
324
  - direct, function-backed, workflow-backed, and agent-backed launches through `lemma-action-surface`
287
325
  - inline, row, and panel presentation modes for long-running actions with inspectable progress
288
- - native workflow/file surfaces plus app-local record UIs where tables are the actual product data model
326
+ - native workflow run inspection through `lemma-workflow-runner`
327
+
328
+ Navigation and file blocks support:
329
+
330
+ - route, record, and file-path breadcrumb builders through `lemma-breadcrumbs`
331
+ - native pod-file hierarchy navigation through `lemma-page-tree`
332
+ - datastore folder navigation, upload, rename, move, folder creation, picker mode, and delete handling through `lemma-file-browser`
333
+ - write, preview, and split modes through `lemma-markdown-editor`
334
+
335
+ Collaboration and analytics blocks support:
336
+
337
+ - record-scoped discussion through `lemma-comments`
338
+ - unified audit and history timelines through `lemma-activity-feed`
339
+ - dashboard-style stat cards and charts through `lemma-insights`
289
340
 
290
341
  Assistant blocks support:
291
342
 
@@ -295,10 +346,39 @@ Assistant blocks support:
295
346
  - bounded default heights for `page` and `side-panel` modes so the message viewport scrolls instead of stretching with content; pass `className="h-full min-h-0"` inside an explicit-height parent when you want a fill-layout assistant like inbox CRM
296
347
 
297
348
  ```tsx
349
+ import { LemmaRecordsView } from "@/components/lemma/lemma-records-view";
298
350
  import { LemmaAssistantExperience } from "@/components/lemma/assistant/assistant-experience";
299
351
  import { LemmaActionSurface } from "@/components/lemma/lemma-action-surface";
300
352
  import { LemmaGlobalSearch } from "@/components/lemma/lemma-global-search";
301
353
 
354
+ <LemmaRecordsView
355
+ client={client}
356
+ podId={podId}
357
+ tableName="tickets"
358
+ />;
359
+
360
+ <LemmaRecordsView
361
+ client={client}
362
+ podId={podId}
363
+ tableName="deals"
364
+ defaultView="list"
365
+ availableViews={["list", "grid"]}
366
+ chrome={{ search: true, filters: true, create: true, viewSwitcher: true, selection: true }}
367
+ hiddenFields={["id", "created_at", "updated_at"]}
368
+ foreignKeyLabels={{ company_id: "name" }}
369
+ onCreateOptions={{
370
+ submitVia: "function",
371
+ submitFunctionName: "create-deal",
372
+ }}
373
+ />;
374
+
375
+ <LemmaRecordsView
376
+ client={client}
377
+ podId={podId}
378
+ tableName="deals"
379
+ preset="crm"
380
+ />;
381
+
302
382
  <LemmaGlobalSearch
303
383
  client={client}
304
384
  podId={podId}
@@ -320,8 +400,6 @@ import { LemmaGlobalSearch } from "@/components/lemma/lemma-global-search";
320
400
  }}
321
401
  minQueryLength={3}
322
402
  debounceMs={450}
323
- appearance="minimal"
324
- density="compact"
325
403
  />;
326
404
 
327
405
  <LemmaActionSurface
@@ -335,7 +413,6 @@ import { LemmaGlobalSearch } from "@/components/lemma/lemma-global-search";
335
413
  <LemmaAssistantExperience
336
414
  client={client}
337
415
  assistantName="sales-copilot"
338
- density="compact"
339
416
  />;
340
417
  ```
341
418
 
@@ -2675,19 +2675,27 @@ exports.IconsService = IconsService;
2675
2675
  "use strict";
2676
2676
  Object.defineProperty(exports, "__esModule", { value: true });
2677
2677
  exports.IntegrationsNamespace = void 0;
2678
+ const AgentToolsService_js_1 = require("./openapi_client/services/AgentToolsService.js");
2678
2679
  const ApplicationsService_js_1 = require("./openapi_client/services/ApplicationsService.js");
2679
2680
  const IntegrationsService_js_1 = require("./openapi_client/services/IntegrationsService.js");
2680
2681
  class IntegrationsNamespace {
2681
2682
  constructor(client) {
2682
2683
  this.client = client;
2683
2684
  this.operations = {
2684
- list: (applicationId) => this.client.request(() => ApplicationsService_js_1.ApplicationsService.applicationOperationList(applicationId)),
2685
+ discover: (applicationId, options = {}) => this.client.request(() => ApplicationsService_js_1.ApplicationsService.applicationOperationDiscover(applicationId, options.query, options.limit ?? 100)),
2686
+ list: async (applicationId, options = {}) => {
2687
+ const response = await this.client.request(() => ApplicationsService_js_1.ApplicationsService.applicationOperationDiscover(applicationId, options.query, options.limit ?? 100));
2688
+ return response.items ?? [];
2689
+ },
2685
2690
  get: (applicationId, operationName) => this.client.request(() => ApplicationsService_js_1.ApplicationsService.applicationOperationDetail(applicationId, operationName)),
2691
+ details: (applicationId, operationNames) => {
2692
+ const body = { operation_names: operationNames };
2693
+ return this.client.request(() => ApplicationsService_js_1.ApplicationsService.applicationOperationDetailsBatch(applicationId, body));
2694
+ },
2686
2695
  execute: (applicationId, operationName, payload, accountId) => {
2687
2696
  const body = { payload, account_id: accountId };
2688
2697
  return this.client.request(() => ApplicationsService_js_1.ApplicationsService.applicationOperationExecute(applicationId, operationName, body));
2689
2698
  },
2690
- descriptor: (applicationId) => this.client.request(() => ApplicationsService_js_1.ApplicationsService.applicationDescriptor(applicationId)),
2691
2699
  };
2692
2700
  this.triggers = {
2693
2701
  list: (options = {}) => this.client.request(() => ApplicationsService_js_1.ApplicationsService.applicationTriggerList(options.applicationId, options.search, options.limit ?? 100, options.pageToken)),
@@ -2706,6 +2714,13 @@ class IntegrationsNamespace {
2706
2714
  get(applicationId) {
2707
2715
  return this.client.request(() => ApplicationsService_js_1.ApplicationsService.applicationGet(applicationId));
2708
2716
  }
2717
+ helperAgent(goal, appNames) {
2718
+ const body = {
2719
+ app_names: appNames,
2720
+ goal,
2721
+ };
2722
+ return this.client.request(() => AgentToolsService_js_1.AgentToolsService.toolIntegrationHelperAgent(body));
2723
+ }
2709
2724
  createConnectRequest(applicationId) {
2710
2725
  const payload = { application_id: applicationId };
2711
2726
  return this.client.request(() => IntegrationsService_js_1.IntegrationsService.integrationConnectRequestCreate(payload));
@@ -2713,6 +2728,89 @@ class IntegrationsNamespace {
2713
2728
  }
2714
2729
  exports.IntegrationsNamespace = IntegrationsNamespace;
2715
2730
 
2731
+ },
2732
+ "./openapi_client/services/AgentToolsService.js": function (module, exports, require) {
2733
+ "use strict";
2734
+ Object.defineProperty(exports, "__esModule", { value: true });
2735
+ exports.AgentToolsService = void 0;
2736
+ const OpenAPI_js_1 = require("./openapi_client/core/OpenAPI.js");
2737
+ const request_js_1 = require("./openapi_client/core/request.js");
2738
+ class AgentToolsService {
2739
+ /**
2740
+ * Integration Helper Agent
2741
+ * Plan how to use one or more integration applications for a goal and return recommended operations.
2742
+ * @param requestBody
2743
+ * @returns IntegrationHelperAgentResponse Successful Response
2744
+ * @throws ApiError
2745
+ */
2746
+ static toolIntegrationHelperAgent(requestBody) {
2747
+ return (0, request_js_1.request)(OpenAPI_js_1.OpenAPI, {
2748
+ method: 'POST',
2749
+ url: '/tools/integration-helper-agent',
2750
+ body: requestBody,
2751
+ mediaType: 'application/json',
2752
+ errors: {
2753
+ 422: `Validation Error`,
2754
+ },
2755
+ });
2756
+ }
2757
+ /**
2758
+ * Report Feedback
2759
+ * Record a maintainer-facing feedback report about system issues, skill issues, incorrect knowledge, or other unexpected behavior.
2760
+ * @param requestBody
2761
+ * @returns ReportFeedbackResponse Successful Response
2762
+ * @throws ApiError
2763
+ */
2764
+ static toolReportFeedback(requestBody) {
2765
+ return (0, request_js_1.request)(OpenAPI_js_1.OpenAPI, {
2766
+ method: 'POST',
2767
+ url: '/tools/report-feedback',
2768
+ body: requestBody,
2769
+ mediaType: 'application/json',
2770
+ errors: {
2771
+ 422: `Validation Error`,
2772
+ },
2773
+ });
2774
+ }
2775
+ /**
2776
+ * Web Search
2777
+ * Run a raw web search and return structured results.
2778
+ * @param requestBody
2779
+ * @returns WebSearchResponse Successful Response
2780
+ * @throws ApiError
2781
+ */
2782
+ static toolWebSearch(requestBody) {
2783
+ return (0, request_js_1.request)(OpenAPI_js_1.OpenAPI, {
2784
+ method: 'POST',
2785
+ url: '/tools/web-search',
2786
+ body: requestBody,
2787
+ mediaType: 'application/json',
2788
+ errors: {
2789
+ 422: `Validation Error`,
2790
+ },
2791
+ });
2792
+ }
2793
+ /**
2794
+ * Web Search Agent
2795
+ * Run the multi-step web search agent and return a synthesized answer.
2796
+ * @param requestBody
2797
+ * @returns WebSearchAgentResponse Successful Response
2798
+ * @throws ApiError
2799
+ */
2800
+ static toolWebSearchAgent(requestBody) {
2801
+ return (0, request_js_1.request)(OpenAPI_js_1.OpenAPI, {
2802
+ method: 'POST',
2803
+ url: '/tools/web-search-agent',
2804
+ body: requestBody,
2805
+ mediaType: 'application/json',
2806
+ errors: {
2807
+ 422: `Validation Error`,
2808
+ },
2809
+ });
2810
+ }
2811
+ }
2812
+ exports.AgentToolsService = AgentToolsService;
2813
+
2716
2814
  },
2717
2815
  "./openapi_client/services/ApplicationsService.js": function (module, exports, require) {
2718
2816
  "use strict";
@@ -2806,15 +2904,14 @@ class ApplicationsService {
2806
2904
  });
2807
2905
  }
2808
2906
  /**
2809
- * List Application Operations
2907
+ * Discover Application Operations
2810
2908
  * @param applicationId
2811
2909
  * @param query
2812
2910
  * @param limit
2813
- * @param pageToken
2814
- * @returns OperationListResponse Successful Response
2911
+ * @returns OperationDiscoverResponse Successful Response
2815
2912
  * @throws ApiError
2816
2913
  */
2817
- static applicationOperationList(applicationId, query, limit = 100, pageToken) {
2914
+ static applicationOperationDiscover(applicationId, query, limit = 100) {
2818
2915
  return (0, request_js_1.request)(OpenAPI_js_1.OpenAPI, {
2819
2916
  method: 'GET',
2820
2917
  url: '/integrations/applications/{application_id}/operations',
@@ -2824,7 +2921,6 @@ class ApplicationsService {
2824
2921
  query: {
2825
2922
  'query': query,
2826
2923
  'limit': limit,
2827
- 'page_token': pageToken,
2828
2924
  },
2829
2925
  errors: {
2830
2926
  422: `Validation Error`,
@@ -2832,18 +2928,21 @@ class ApplicationsService {
2832
2928
  });
2833
2929
  }
2834
2930
  /**
2835
- * Get Application Descriptor
2931
+ * Get Application Operation Details In Batch
2836
2932
  * @param applicationId
2837
- * @returns AppDescriptorResponse Successful Response
2933
+ * @param requestBody
2934
+ * @returns OperationDetailsBatchResponse Successful Response
2838
2935
  * @throws ApiError
2839
2936
  */
2840
- static applicationDescriptor(applicationId) {
2937
+ static applicationOperationDetailsBatch(applicationId, requestBody) {
2841
2938
  return (0, request_js_1.request)(OpenAPI_js_1.OpenAPI, {
2842
- method: 'GET',
2843
- url: '/integrations/applications/{application_id}/operations/descriptor',
2939
+ method: 'POST',
2940
+ url: '/integrations/applications/{application_id}/operations/details',
2844
2941
  path: {
2845
2942
  'application_id': applicationId,
2846
2943
  },
2944
+ body: requestBody,
2945
+ mediaType: 'application/json',
2847
2946
  errors: {
2848
2947
  422: `Validation Error`,
2849
2948
  },
@@ -3005,15 +3104,17 @@ class IntegrationsService {
3005
3104
  * OAuth Callback
3006
3105
  * Handle OAuth callback and complete account connection. This endpoint is public and uses state parameter for security.
3007
3106
  * @param error
3008
- * @returns AccountResponseSchema Successful Response
3107
+ * @param format
3108
+ * @returns string Successful Response
3009
3109
  * @throws ApiError
3010
3110
  */
3011
- static integrationOauthCallback(error) {
3111
+ static integrationOauthCallback(error, format) {
3012
3112
  return (0, request_js_1.request)(OpenAPI_js_1.OpenAPI, {
3013
3113
  method: 'GET',
3014
3114
  url: '/integrations/connect-requests/oauth/callback',
3015
3115
  query: {
3016
3116
  'error': error,
3117
+ 'format': format,
3017
3118
  },
3018
3119
  errors: {
3019
3120
  422: `Validation Error`,
@@ -3207,6 +3308,46 @@ class OrganizationsService {
3207
3308
  },
3208
3309
  });
3209
3310
  }
3311
+ /**
3312
+ * Check Organization Slug Availability
3313
+ * Check whether an organization slug is available
3314
+ * @param slug
3315
+ * @returns OrganizationSlugAvailabilityResponse Successful Response
3316
+ * @throws ApiError
3317
+ */
3318
+ static orgSlugAvailability(slug) {
3319
+ return (0, request_js_1.request)(OpenAPI_js_1.OpenAPI, {
3320
+ method: 'GET',
3321
+ url: '/organizations/slug-availability',
3322
+ query: {
3323
+ 'slug': slug,
3324
+ },
3325
+ errors: {
3326
+ 422: `Validation Error`,
3327
+ },
3328
+ });
3329
+ }
3330
+ /**
3331
+ * Get Suggested Organizations
3332
+ * Get auto-join organizations matching the current user's email domain
3333
+ * @param limit
3334
+ * @param pageToken
3335
+ * @returns OrganizationListResponse Successful Response
3336
+ * @throws ApiError
3337
+ */
3338
+ static orgSuggested(limit = 100, pageToken) {
3339
+ return (0, request_js_1.request)(OpenAPI_js_1.OpenAPI, {
3340
+ method: 'GET',
3341
+ url: '/organizations/suggested',
3342
+ query: {
3343
+ 'limit': limit,
3344
+ 'page_token': pageToken,
3345
+ },
3346
+ errors: {
3347
+ 422: `Validation Error`,
3348
+ },
3349
+ });
3350
+ }
3210
3351
  /**
3211
3352
  * Get Organization
3212
3353
  * Get organization details
@@ -5091,6 +5232,27 @@ class WorkflowsService {
5091
5232
  },
5092
5233
  });
5093
5234
  }
5235
+ /**
5236
+ * List Workflow Installs
5237
+ * List the current user's installations for a workflow.
5238
+ * @param podId
5239
+ * @param workflowName
5240
+ * @returns WorkflowInstallListResponse Successful Response
5241
+ * @throws ApiError
5242
+ */
5243
+ static workflowInstallList(podId, workflowName) {
5244
+ return (0, request_js_1.request)(OpenAPI_js_1.OpenAPI, {
5245
+ method: 'GET',
5246
+ url: '/pods/{pod_id}/workflows/{workflow_name}/installs',
5247
+ path: {
5248
+ 'pod_id': podId,
5249
+ 'workflow_name': workflowName,
5250
+ },
5251
+ errors: {
5252
+ 422: `Validation Error`,
5253
+ },
5254
+ });
5255
+ }
5094
5256
  /**
5095
5257
  * Uninstall Workflow
5096
5258
  * Remove a previously created workflow installation binding.
@@ -8,11 +8,19 @@ export declare class IntegrationsNamespace {
8
8
  }): Promise<import("../types.js").ApplicationListResponseSchema>;
9
9
  get(applicationId: string): Promise<import("../types.js").ApplicationDetailResponseSchema>;
10
10
  readonly operations: {
11
- list: (applicationId: string) => Promise<import("../types.js").OperationListResponse>;
11
+ discover: (applicationId: string, options?: {
12
+ query?: string;
13
+ limit?: number;
14
+ }) => Promise<import("../types.js").OperationDiscoverResponse>;
15
+ list: (applicationId: string, options?: {
16
+ query?: string;
17
+ limit?: number;
18
+ }) => Promise<import("../types.js").OperationSummary[]>;
12
19
  get: (applicationId: string, operationName: string) => Promise<import("../types.js").OperationDetail>;
20
+ details: (applicationId: string, operationNames?: string[]) => Promise<import("../types.js").OperationDetailsBatchResponse>;
13
21
  execute: (applicationId: string, operationName: string, payload: Record<string, unknown>, accountId?: string) => Promise<import("../types.js").OperationExecutionResponse>;
14
- descriptor: (applicationId: string) => Promise<import("../types.js").AppDescriptorResponse>;
15
22
  };
23
+ helperAgent(goal: string, appNames: string[]): Promise<import("../types.js").IntegrationHelperAgentResponse>;
16
24
  readonly triggers: {
17
25
  list: (options?: {
18
26
  applicationId?: string;
@@ -1,3 +1,4 @@
1
+ import { AgentToolsService } from "../openapi_client/services/AgentToolsService.js";
1
2
  import { ApplicationsService } from "../openapi_client/services/ApplicationsService.js";
2
3
  import { IntegrationsService } from "../openapi_client/services/IntegrationsService.js";
3
4
  export class IntegrationsNamespace {
@@ -12,14 +13,28 @@ export class IntegrationsNamespace {
12
13
  return this.client.request(() => ApplicationsService.applicationGet(applicationId));
13
14
  }
14
15
  operations = {
15
- list: (applicationId) => this.client.request(() => ApplicationsService.applicationOperationList(applicationId)),
16
+ discover: (applicationId, options = {}) => this.client.request(() => ApplicationsService.applicationOperationDiscover(applicationId, options.query, options.limit ?? 100)),
17
+ list: async (applicationId, options = {}) => {
18
+ const response = await this.client.request(() => ApplicationsService.applicationOperationDiscover(applicationId, options.query, options.limit ?? 100));
19
+ return response.items ?? [];
20
+ },
16
21
  get: (applicationId, operationName) => this.client.request(() => ApplicationsService.applicationOperationDetail(applicationId, operationName)),
22
+ details: (applicationId, operationNames) => {
23
+ const body = { operation_names: operationNames };
24
+ return this.client.request(() => ApplicationsService.applicationOperationDetailsBatch(applicationId, body));
25
+ },
17
26
  execute: (applicationId, operationName, payload, accountId) => {
18
27
  const body = { payload, account_id: accountId };
19
28
  return this.client.request(() => ApplicationsService.applicationOperationExecute(applicationId, operationName, body));
20
29
  },
21
- descriptor: (applicationId) => this.client.request(() => ApplicationsService.applicationDescriptor(applicationId)),
22
30
  };
31
+ helperAgent(goal, appNames) {
32
+ const body = {
33
+ app_names: appNames,
34
+ goal,
35
+ };
36
+ return this.client.request(() => AgentToolsService.toolIntegrationHelperAgent(body));
37
+ }
23
38
  triggers = {
24
39
  list: (options = {}) => this.client.request(() => ApplicationsService.applicationTriggerList(options.applicationId, options.search, options.limit ?? 100, options.pageToken)),
25
40
  get: (triggerId) => this.client.request(() => ApplicationsService.applicationTriggerGet(triggerId)),
@@ -15,7 +15,6 @@ export type { AgentNodeConfig } from './models/AgentNodeConfig.js';
15
15
  export type { AgentNodeResponse } from './models/AgentNodeResponse.js';
16
16
  export type { AgentResponse } from './models/AgentResponse.js';
17
17
  export type { ApiKeyCredentialsResponseSchema } from './models/ApiKeyCredentialsResponseSchema.js';
18
- export type { AppDescriptorResponse } from './models/AppDescriptorResponse.js';
19
18
  export type { ApplicationAccessConfig } from './models/ApplicationAccessConfig.js';
20
19
  export type { ApplicationDetailResponseSchema } from './models/ApplicationDetailResponseSchema.js';
21
20
  export type { ApplicationListResponseSchema } from './models/ApplicationListResponseSchema.js';
@@ -92,6 +91,7 @@ export type { EventWorkflowStartInput } from './models/EventWorkflowStartInput.j
92
91
  export type { EventWorkflowStartOutput } from './models/EventWorkflowStartOutput.js';
93
92
  export type { ExecuteFunctionRequest } from './models/ExecuteFunctionRequest.js';
94
93
  export type { ExpressionInputBinding } from './models/ExpressionInputBinding.js';
94
+ export { FeedbackCategory } from './models/FeedbackCategory.js';
95
95
  export { FileInfo } from './models/FileInfo.js';
96
96
  export type { FileListResponse } from './models/FileListResponse.js';
97
97
  export type { FileResponse } from './models/FileResponse.js';
@@ -126,6 +126,8 @@ export type { GrantPermissionRequest } from './models/GrantPermissionRequest.js'
126
126
  export type { HTTPValidationError } from './models/HTTPValidationError.js';
127
127
  export type { IconUploadRequest } from './models/IconUploadRequest.js';
128
128
  export type { IconUploadResponse } from './models/IconUploadResponse.js';
129
+ export type { IntegrationHelperAgentRequest } from './models/IntegrationHelperAgentRequest.js';
130
+ export type { IntegrationHelperAgentResponse } from './models/IntegrationHelperAgentResponse.js';
129
131
  export type { LiteralInputBinding } from './models/LiteralInputBinding.js';
130
132
  export type { LoopNode } from './models/LoopNode.js';
131
133
  export type { LoopNodeConfig } from './models/LoopNodeConfig.js';
@@ -136,9 +138,11 @@ export type { MessageResponseSchema } from './models/MessageResponseSchema.js';
136
138
  export type { NotificationContent } from './models/NotificationContent.js';
137
139
  export type { OauthCredentialsResponseSchema } from './models/OauthCredentialsResponseSchema.js';
138
140
  export type { OperationDetail } from './models/OperationDetail.js';
141
+ export type { OperationDetailsBatchRequest } from './models/OperationDetailsBatchRequest.js';
142
+ export type { OperationDetailsBatchResponse } from './models/OperationDetailsBatchResponse.js';
143
+ export type { OperationDiscoverResponse } from './models/OperationDiscoverResponse.js';
139
144
  export type { OperationExecutionRequest } from './models/OperationExecutionRequest.js';
140
145
  export type { OperationExecutionResponse } from './models/OperationExecutionResponse.js';
141
- export type { OperationListResponse } from './models/OperationListResponse.js';
142
146
  export type { OperationSummary } from './models/OperationSummary.js';
143
147
  export type { OrganizationCreateRequest } from './models/OrganizationCreateRequest.js';
144
148
  export type { OrganizationInvitationListResponse } from './models/OrganizationInvitationListResponse.js';
@@ -151,6 +155,7 @@ export type { OrganizationMemberResponse } from './models/OrganizationMemberResp
151
155
  export type { OrganizationMessageResponse } from './models/OrganizationMessageResponse.js';
152
156
  export type { OrganizationResponse } from './models/OrganizationResponse.js';
153
157
  export { OrganizationRole } from './models/OrganizationRole.js';
158
+ export type { OrganizationSlugAvailabilityResponse } from './models/OrganizationSlugAvailabilityResponse.js';
154
159
  export type { OutlookSurfaceConfig } from './models/OutlookSurfaceConfig.js';
155
160
  export type { OutlookSurfaceConfigInput } from './models/OutlookSurfaceConfigInput.js';
156
161
  export type { PlanListResponse } from './models/PlanListResponse.js';
@@ -177,6 +182,8 @@ export type { PodUpdateRequest } from './models/PodUpdateRequest.js';
177
182
  export type { RecentUsageResponse } from './models/RecentUsageResponse.js';
178
183
  export type { RecordListResponse } from './models/RecordListResponse.js';
179
184
  export type { RecordResponse } from './models/RecordResponse.js';
185
+ export type { ReportFeedbackRequest } from './models/ReportFeedbackRequest.js';
186
+ export type { ReportFeedbackResponse } from './models/ReportFeedbackResponse.js';
180
187
  export type { ResourceFileListResponse } from './models/ResourceFileListResponse.js';
181
188
  export type { ResourcePermissionListResponse } from './models/ResourcePermissionListResponse.js';
182
189
  export type { ResourcePermissionResponse } from './models/ResourcePermissionResponse.js';
@@ -265,6 +272,7 @@ export type { WhatsAppSurfaceConfigInput } from './models/WhatsAppSurfaceConfigI
265
272
  export type { WorkflowCreateRequest } from './models/WorkflowCreateRequest.js';
266
273
  export type { WorkflowEdge } from './models/WorkflowEdge.js';
267
274
  export type { WorkflowGraphUpdateRequest } from './models/WorkflowGraphUpdateRequest.js';
275
+ export type { WorkflowInstallListResponse } from './models/WorkflowInstallListResponse.js';
268
276
  export { WorkflowInstallMode } from './models/WorkflowInstallMode.js';
269
277
  export type { WorkflowInstallRequest } from './models/WorkflowInstallRequest.js';
270
278
  export type { WorkflowListResponse } from './models/WorkflowListResponse.js';
@@ -15,6 +15,7 @@ export { CredentialTypes } from './models/CredentialTypes.js';
15
15
  export { DatastoreDataType } from './models/DatastoreDataType.js';
16
16
  export { DatastoreOperation } from './models/DatastoreOperation.js';
17
17
  export { DeskStatus } from './models/DeskStatus.js';
18
+ export { FeedbackCategory } from './models/FeedbackCategory.js';
18
19
  export { FileInfo } from './models/FileInfo.js';
19
20
  export { FileSearchScopeMode } from './models/FileSearchScopeMode.js';
20
21
  export { FileVisibility } from './models/FileVisibility.js';
@@ -0,0 +1,7 @@
1
+ export declare enum FeedbackCategory {
2
+ SYSTEM_ISSUE = "SYSTEM_ISSUE",
3
+ SKILL_ISSUE = "SKILL_ISSUE",
4
+ INCORRECT_KNOWLEDGE = "INCORRECT_KNOWLEDGE",
5
+ TOOLING_ISSUE = "TOOLING_ISSUE",
6
+ OTHER = "OTHER"
7
+ }
@@ -0,0 +1,12 @@
1
+ /* generated using openapi-typescript-codegen -- do not edit */
2
+ /* istanbul ignore file */
3
+ /* tslint:disable */
4
+ /* eslint-disable */
5
+ export var FeedbackCategory;
6
+ (function (FeedbackCategory) {
7
+ FeedbackCategory["SYSTEM_ISSUE"] = "SYSTEM_ISSUE";
8
+ FeedbackCategory["SKILL_ISSUE"] = "SKILL_ISSUE";
9
+ FeedbackCategory["INCORRECT_KNOWLEDGE"] = "INCORRECT_KNOWLEDGE";
10
+ FeedbackCategory["TOOLING_ISSUE"] = "TOOLING_ISSUE";
11
+ FeedbackCategory["OTHER"] = "OTHER";
12
+ })(FeedbackCategory || (FeedbackCategory = {}));
@@ -16,6 +16,7 @@ export type FlowRunEntity = {
16
16
  started_at?: (string | null);
17
17
  status?: FlowRunStatus;
18
18
  step_history?: Array<StepExecution>;
19
+ trigger_event_id?: (string | null);
19
20
  trigger_type?: string;
20
21
  updated_at?: string;
21
22
  user_id: string;
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Request model for the integration helper agent.
3
+ */
4
+ export type IntegrationHelperAgentRequest = {
5
+ /**
6
+ * Application IDs the agent may use while planning the goal.
7
+ */
8
+ app_names: Array<string>;
9
+ /**
10
+ * What the caller wants to achieve with one or more integrations.
11
+ */
12
+ goal: string;
13
+ };