Compare commits

..
Author SHA1 Message Date
Weiko c27815ca34 fix 2026-02-24 15:34:28 +01:00
Weiko 19aeec66d2 fix merge 2026-02-24 10:59:46 +01:00
Weiko 16e2204d4d Merge branch 'main' into c--introduce-metadata-client-in-twenty-sdk 2026-02-24 09:26:29 +01:00
Paul RastoinandGitHub af0af0a237 Fix cross app installation (#18151)
# Introduction
- Fixing app dependencyFlatEntityMaps load ( to load current app +
dependent app )
- Fix empty flat entity maps and undefined optimistic override
- Refactor the optimistic rendering to be mutation oriented at
orchestrator level
2026-02-23 19:58:06 +01:00
Charles BochetandGitHub 0d4fe4575b Various SDK improvements (#18115)
## Summary

- **Refactor frontend metadata loading architecture**: Split the
monolithic `EagerMetadataLoadEffect` into focused provider effects
(`UserMetadataProviderEffect`, `ObjectMetadataProviderEffect`,
`ViewMetadataProviderEffect`) orchestrated by `MetadataProviderEffects`.
Replaced `UserProvider` + `ObjectMetadataItemsProvider` with a single
`MetadataGater` that gates rendering on `isAppMetadataReadyState`. The
metadata store now validates view-object consistency before promoting
views, and `updateDraft` skips no-op updates via deep equality checks.

- **SDK CLI improvements**: Added `app:typecheck` command, improved
error handling in API sync (extracts GraphQL error messages), added
`serializeError` utility for human-readable error output, added `error`
file status to dev mode orchestrator with UI support, and fixed
ClickHouse migration/seed commands to use `transpile-only`.
2026-02-23 19:57:02 +01:00
Thomas TrompetteandGitHub ccddd105d8 Add generate key command (#18171)
Will be useful to auto log users on app creation
2026-02-23 19:56:44 +01:00
e21a7e11b2 i18n - translations (#18175)
Created by Github action

---------

Co-authored-by: github-actions <[email protected]>
2026-02-23 19:56:31 +01:00
WeikoandGitHub 1ac87d106e With RLS predicates on Select, only show possible values in option picker (#18166)
## Context
Removing SELECT/MULTI_SELECT options that can't be selected due to RLS
(see https://github.com/twentyhq/core-team-issues/issues/2226)

<img width="521" height="276" alt="Screenshot 2026-02-23 at 11 30 21"
src="https://github.com/user-attachments/assets/238ff596-cd8c-4660-a709-3eb2486e23b4"
/>
<img width="279" height="200" alt="Screenshot 2026-02-23 at 11 30 03"
src="https://github.com/user-attachments/assets/7a627d74-7519-4314-9a0e-0890cb8cbf30"
/>
2026-02-23 19:25:58 +01:00
9a0295fd3d feat: add atomic upsertFieldsWidget mutation to replace multiple view field group/field API calls (#18137)
The `useSaveFieldsWidgetGroups` hook was making multiple sequential API
calls per widget (create groups, delete groups, update groups, update
fields) — non-atomic, chatty, and with heavy diff computation on the
frontend.

## Backend

- **New input DTOs**: `UpsertFieldsWidgetInput` /
`UpsertFieldsWidgetGroupInput` / `UpsertFieldsWidgetFieldInput` — caller
passes the full desired state of groups + fields for a widget
- **`FieldsWidgetUpsertService`**: looks up widget → resolves `viewId`,
diffs against existing flat entity maps, builds optimistic group maps so
newly-created groups can be referenced by field updates in the same
pass, then runs creates/updates/deletes in a single
`validateBuildAndRunWorkspaceMigration` call
- **`upsertFieldsWidget` mutation** added to `ViewFieldGroupResolver`;
new `FIELDS_WIDGET_NOT_FOUND` exception code added and wired into the
GraphQL exception filter

## Frontend

- New `UPSERT_FIELDS_WIDGET` GQL document
- `useSaveFieldsWidgetGroups` replaces all per-operation calls with a
single mutation per widget, passing the full draft state — diff logic
moves entirely to the backend

```graphql
mutation UpsertFieldsWidget($input: UpsertFieldsWidgetInput!) {
  upsertFieldsWidget(input: $input) {
    id
    name
    position
    isVisible
    viewId
    viewFields { id isVisible position ... }
  }
}
```

Widget IDs are collected from both draft **and** persisted state so
widgets whose draft groups were cleared still trigger deletion of their
server-side groups.

<!-- START COPILOT ORIGINAL PROMPT -->



<details>

<summary>Original prompt</summary>

Start implementation

The user has attached the following file paths as relevant context:
 - CLAUDE.md

<analysis>
[Chronological Review: The conversation began with the user requesting a
review of how updates on views are stored in the frontend of record page
layouts. The user expressed a desire to migrate heavy computations and
multiple requests from the frontend to the backend. They proposed
creating a custom upsertFieldsWidget mutation to handle updates
atomically. The conversation has focused on this migration strategy and
its implementation.]

[Intent Mapping: The user explicitly requested to "check how we store
updates on views in the frontend of record page layouts" and indicated a
need to "migrate this task to the backend" by creating a custom mutation
for atomic updates.]

[Technical Inventory: The conversation involves the following technical
concepts:
- Frontend and backend architecture for handling page layout updates.
- Custom GraphQL mutation (upsertFieldsWidget) for atomic updates.
- The file in focus is page-layout-update.service.ts, which is likely
responsible for handling updates related to page layouts in the
backend.]

[Code Archaeology: The specific file being worked on is
/Users/devessier/Web/twenty/packages/twenty-server/src/engine/metadata-modules/page-layout/services/page-layout-update.service.ts.
The user is likely looking to modify or enhance this service to
accommodate the new mutation for handling updates.]

[Progress Assessment: The user has identified the need for a backend
migration strategy but has not yet implemented any changes. The focus is
on planning the transition from frontend to backend processing.]

[Context Validation: All critical information for continuation is
captured, including the user's intent to migrate computations to the
backend and the specific file being modified.]

[Recent Commands Analysis: The last agent commands involved checking the
current file context and the user's request to summarize the
conversation. No specific tool results were generated as the focus was
on summarizing the conversation history. The agent was actively working
on summarizing the conversation when the token budget was exceeded,
which was triggered by the user's request for a summary.]

</analysis>

<summary>
1. Conversation Overview:
- Primary Objectives: The user requested to "check how we store updates
on views in the frontend of record page layouts" and expressed a desire
to "migrate this task to the backend" by creating a custom
upsertFieldsWidget mutation for atomic updates.
- Session Context: The conversation has focused on the need to shift
heavy computations from the frontend to the backend, with an emphasis on
implementing a new mutation to streamline updates.
- User Intent Evolution: The user's needs have remained consistent,
focusing on backend migration for efficiency and atomicity in updates.

2. Technical Foundation:
- Core Technology: The conversation involves a backend service likely
built with Node.js and TypeScript, as indicated by the file path.
- Framework/Library: The use of GraphQL for handling mutations is
implied through the mention of a custom mutation.
- Architectural Pattern: The user is looking to implement a
service-oriented architecture where the backend handles complex
computations instead of the frontend.
- Environment Detail: The current working file is located in a server
package of the twenty repository.

3. Codebase Status:
- File Name: page-layout-update.service.ts
- Purpose: This file is responsible for managing updates related to page
layouts in the backend.
- Current State: The user is considering modifications to implement a
new mutation for handling updates.
- Key Code Segments: Specific functions or classes have not been
detailed yet, as the focus is on planning changes.
- Dependencies: This service likely interacts with other components in
the metadata-modules related to page layouts.

4. Problem Resolution:
- Issues Encountered: The current challenge is the inefficiency of
handling updates in the frontend.
- Solutions Implemented: The proposed solution is to create a custom
mutation to handle updates atomically in the backend.
- Debugging Context: No ongoing troubleshooting efforts have been
mentioned yet.
- Lessons Learned: The need for backend processing to improve
performance has been highlighted.

5. Progress Tracking:
- Completed Tasks: No tasks have been completed yet; the user is in the
planning phase.
- Partially Complete Work: The user is preparing to implement a new
mutation for backend updates.
- Validated Outcomes: No features have been confirmed working through
testing at this stage.

6. Active Work State:
- Current Focus: The user is focused on modifying the
page-layout-update.service.ts to implement the new mutation.
- Recent Context: The last few exchanges involved discussing the
migration of update tasks from the frontend to the backend.
- Working Code: No specific code snippets have been modified yet, as the
co...

</details>



<!-- START COPILOT CODING AGENT SUFFIX -->

Created from [VS
Code](https://code.visualstudio.com/docs/copilot/copilot-coding-agent).

<!-- START COPILOT CODING AGENT TIPS -->
---

💡 You can make Copilot smarter by setting up custom instructions,
customizing its development environment and configuring Model Context
Protocol (MCP) servers. Learn more [Copilot coding agent
tips](https://gh.io/copilot-coding-agent-tips) in the docs.

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: Devessier <[email protected]>
Co-authored-by: Baptiste Devessier <[email protected]>
2026-02-23 19:25:47 +01:00
a0c0e7de25 [FRONT COMPONENTS] Add snackbar to the API (#18136)
## PR description

- Adds `enqueueSnackbar` to the front component host communication API,
allowing front components to display snack bar notifications (success,
error, info, warning) to the user.
- Introduces `frontComponentId` to the `FrontComponentExecutionContext`
and a `useFrontComponentId` hook, enabling front components to identify
themselves (used for dedupe keys).
- Wires error/success notifications into the `Action`, `ActionLink`, and
`ActionOpenSidePanelPage` SDK components -> actions now catch errors and
display them as snack bars, and `Action` supports an optional
`notifyOnEnd` prop for success feedback.

## Video QA

### Success example


https://github.com/user-attachments/assets/8cc53d31-d9eb-49a8-9220-f7866ec1b415

### Error example


https://github.com/user-attachments/assets/a37d65b8-0b5f-4adb-bcdb-571bb2b997c3

---------

Co-authored-by: Charles Bochet <[email protected]>
2026-02-23 12:25:05 +01:00
EtienneGitHubgreptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
7cbbd082e3 Billing - Fix (#18135)
Context : https://github.com/twentyhq/private-issues/issues/425
Try to fix https://github.com/twentyhq/core-team-issues/issues/2158

---------

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-02-23 12:13:19 +01:00
Charles BochetandGitHub 7944ca29fa Fix CI (#18168)
Fix 2 issues on CI:
- website still using ubuntu-latest
- linter that cannot use more than 2GB
2026-02-23 12:05:53 +01:00
b51eb6471f Jotai 12 (#18160)
Co-authored-by: Cursor <[email protected]>
2026-02-23 12:01:37 +01:00
Raphaël BosiandGitHub 22bc3004b9 [FRONT COMPONENTS] Add loader to command menu items (#18165)
## PR description

- Add a loader to the command menu items when the action is running.
- Add a new method `closeSidePanel` to the front component host api.

## Video QA


https://github.com/user-attachments/assets/c20b592a-6e4c-4cab-b5da-4cb2316acc7c
2026-02-23 11:15:45 +01:00
Charles BochetandGitHub 129d1ede86 Change runners temp (#18163)
Temporarily moving all ubuntu-latest 1 core to depot except ci-website
2026-02-23 10:53:31 +01:00
a2e3af5625 i18n - translations (#18156)
Created by Github action

---------

Co-authored-by: github-actions <[email protected]>
2026-02-22 15:40:35 +01:00
41f09c5a4c Add AI model pricing, Bedrock provider, and InferenceProvider/ModelFamily split (#18155)
## Summary

- **Model pricing overhaul**: All model constants updated with accurate
pricing in dollars per 1M tokens, including cached input rates, cache
creation rates, and tiered >200k context pricing
- **New providers**: Added Google (Gemini 3.x), Mistral, and AWS Bedrock
as inference providers. Bedrock serves Claude Opus 4.6 and Sonnet 4.6
via AWS, with proper credential handling following the existing S3/SES
pattern
- **InferenceProvider/ModelFamily split**: Refactored `ModelProvider`
into two orthogonal enums — `InferenceProvider` (who serves the model:
auth, SDK, metadata format) and `ModelFamily` (who created it: token
counting semantics). This eliminates growing `||` chains for token
normalization checks like `excludesCachedTokens`
- **Billing improvements**: Reasoning tokens charged at output rate,
cache token discounts applied accurately, real errors thrown to Sentry
on billing failures

## Test plan

- [x] All existing unit tests updated and passing (23 tests across 3
test files)
- [x] Lint passes for both twenty-server and twenty-front
- [ ] CI checks pass


Made with [Cursor](https://cursor.com)

---------

Co-authored-by: Cursor <[email protected]>
2026-02-22 14:39:04 +01:00
a900b4a4b4 i18n - docs translations (#18141)
Created by Github action

---------

Co-authored-by: github-actions <[email protected]>
2026-02-22 12:36:36 +01:00
020cf7f3e0 i18n - translations (#18146)
Created by Github action

---------

Co-authored-by: github-actions <[email protected]>
2026-02-22 12:36:23 +01:00
0bccdedb4f feat: design the ai-models tab on settings ai page (#18147)
Remove AI model selectors from the settings tab on AI settings page,
rename that tab to "More" and create a separate "Models" tab as per the
design.


https://www.figma.com/design/xt8O9mFeLl46C5InWwoMrN/Twenty?node-id=91311-278313&m=dev

---------

Co-authored-by: Félix Malfait <[email protected]>
2026-02-22 11:41:26 +01:00
martmullandGitHub 088be4c47b Expose standard universal identifiers (#18152)
as title
2026-02-21 23:53:55 +00:00
ad88108b28 Update README: add E2B logo and improve heading (#18144)
## Summary
- Add E2B logo to the Thanks section (after Crowdin, same height)
- Rename section heading from "Does the world need another CRM?" to "Why
Twenty" for a more confident, direct tone

## Test plan
- [ ] Verify E2B logo renders correctly on GitHub README
- [ ] Confirm all other logos still display properly

Made with [Cursor](https://cursor.com)

Co-authored-by: Cursor <[email protected]>
2026-02-21 15:02:11 +01:00
Raphaël BosiandGitHub 58e8b466f3 Fix frontComponentHostCommunicationApi is not defined error (#18145)
Fix missing import
2026-02-20 18:49:03 +01:00
martmullandGitHub ba59ab8094 Add upload file in twenty client (#18129)
This function 

```typescript
import { defineLogicFunction } from 'twenty-sdk';
import TwentyClient from 'twenty-sdk/generated';

import { v4 } from 'uuid';

export const POST_INSTALL_UNIVERSAL_IDENTIFIER =
  '1312be5c-4fd6-44b3-afd0-567352616c7c';

const handler = async (): Promise<any> => {
  const client = new TwentyClient();

  const seedResult = await client.mutation({
    createCompany: {
      id: true,
      name: true,
      __args: {
        data: {
          name: `toto + ${v4()}`,
        },
      },
    },
  });

  const companyFieldUniversalIdentifier =
    '20202020-15db-460e-8166-c7b5d87ad4be';

  const uploadFileResult = await client.uploadFile(
    Buffer.from('hello world', 'utf-8'),
    'test.txt',
    undefined,
    companyFieldUniversalIdentifier,
  );

  await client.mutation({
    createAttachment: {
      id: true,
      __args: {
        data: {
          file: [{ fileId: uploadFileResult.id, label: 'hello-world.txt' }],
          fullPath: uploadFileResult.path,
          targetCompanyId: seedResult.createCompany?.id,
        },
      },
    },
  });

  return;
};

export default defineLogicFunction({
  universalIdentifier: POST_INSTALL_UNIVERSAL_IDENTIFIER,
  name: 'post-install',
  description: 'Add a description for your logic function',
  timeoutSeconds: 30,
  handler,
});

```

produces this record below 

<img width="1512" height="859" alt="image"
src="https://github.com/user-attachments/assets/57dc3a6b-fd2c-4f21-8331-8f1f05403826"
/>
2026-02-20 17:11:59 +00:00
Thomas TrompetteandGitHub cd1a2712d5 Add server health check every 2 secs on app:dev (#18142)
https://github.com/user-attachments/assets/ff10503f-ebc0-417b-b0f3-8aa40dee74e2
2026-02-20 17:01:45 +00:00
Thomas TrompetteandGitHub 932adf8e4b Create view and navigation item on add-object command - to be tested (#18134)
<img width="580" height="141" alt="Capture d’écran 2026-02-20 à 15 52
11"
src="https://github.com/user-attachments/assets/40254d3a-f7f9-4f2a-a51f-c37dc1f5d167"
/>
2026-02-20 16:41:16 +00:00
Weiko 611c2706c8 remove output 2026-02-20 17:17:52 +01:00
Weiko df5af17760 Introduce metadataClient to twenty-sdk
use better import

update hello-world
2026-02-20 17:15:36 +01:00
Lucas BordeauandGitHub 26fabdc3d0 Minor fixes following up Temporal refactor (#18139)
Fixes https://github.com/twentyhq/core-team-issues/issues/2034
2026-02-20 15:54:38 +00:00
82617727a2 i18n - docs translations (#18131)
Created by Github action

Co-authored-by: github-actions <[email protected]>
2026-02-20 16:33:06 +01:00
Raphaël BosiandGitHub 87922253f3 Fix front component cleanup (#18132)
Fix front component cleanup
2026-02-20 15:03:10 +00:00
865 changed files with 12156 additions and 7784 deletions
+1 -1
View File
@@ -11,7 +11,7 @@ on:
jobs:
deploy-main:
timeout-minutes: 3
runs-on: ubuntu-latest
runs-on: depot-ubuntu-24.04
steps:
- name: Repository Dispatch
uses: peter-evans/repository-dispatch@v2
+1 -1
View File
@@ -11,7 +11,7 @@ on:
jobs:
deploy-tag:
timeout-minutes: 3
runs-on: ubuntu-latest
runs-on: depot-ubuntu-24.04
steps:
- name: Repository Dispatch
uses: peter-evans/repository-dispatch@v2
+1 -1
View File
@@ -16,7 +16,7 @@ permissions:
jobs:
changed-files:
timeout-minutes: 5
runs-on: ubuntu-latest
runs-on: depot-ubuntu-24.04
outputs:
any_changed: ${{ steps.changed-files.outputs.any_changed }}
steps:
+1 -1
View File
@@ -34,7 +34,7 @@ jobs:
needs: changed-files-check
if: needs.changed-files-check.outputs.any_changed == 'true'
timeout-minutes: 45
runs-on: ubuntu-latest
runs-on: depot-ubuntu-24.04
services:
postgres:
image: twentycrm/twenty-postgres-spilo
+2 -2
View File
@@ -25,7 +25,7 @@ jobs:
needs: changed-files-check
if: needs.changed-files-check.outputs.any_changed == 'true'
timeout-minutes: 30
runs-on: ubuntu-latest
runs-on: depot-ubuntu-24.04
strategy:
matrix:
task: [lint, typecheck, test]
@@ -50,7 +50,7 @@ jobs:
ci-create-app-status-check:
if: always() && !cancelled()
timeout-minutes: 5
runs-on: ubuntu-latest
runs-on: depot-ubuntu-24.04
needs: [changed-files-check, create-app-test]
steps:
- name: Fail job if any needs failed
+1 -1
View File
@@ -27,7 +27,7 @@ jobs:
needs: changed-files-check
if: needs.changed-files-check.outputs.any_changed == 'true'
timeout-minutes: 10
runs-on: ubuntu-latest
runs-on: depot-ubuntu-24.04
steps:
- name: Cancel Previous Runs
uses: styfle/[email protected]
+1 -1
View File
@@ -56,7 +56,7 @@ jobs:
ci-emails-status-check:
if: always() && !cancelled()
timeout-minutes: 5
runs-on: ubuntu-latest
runs-on: depot-ubuntu-24.04
needs: [changed-files-check, emails-test]
steps:
- name: Fail job if any needs failed
+6 -5
View File
@@ -115,7 +115,7 @@ jobs:
path: packages/twenty-front/coverage/storybook/coverage-shard-${{matrix.shard}}.json
merge-reports-and-check-coverage:
timeout-minutes: 30
runs-on: ubuntu-latest
runs-on: depot-ubuntu-24.04
needs: front-sb-test
env:
PATH_TO_COVERAGE: packages/twenty-front/coverage/storybook
@@ -169,8 +169,9 @@ jobs:
needs: changed-files-check
if: needs.changed-files-check.outputs.any_changed == 'true'
timeout-minutes: 30
runs-on: ubuntu-latest
runs-on: depot-ubuntu-24.04
env:
NODE_OPTIONS: '--max-old-space-size=4096'
TASK_CACHE_KEY: front-task-${{ matrix.task }}
strategy:
matrix:
@@ -235,7 +236,7 @@ jobs:
path: packages/twenty-front/build
retention-days: 1
e2e-test:
runs-on: ubuntu-latest
runs-on: depot-ubuntu-24.04
needs: [changed-files-check-e2e, front-build]
if: |
always() &&
@@ -345,7 +346,7 @@ jobs:
ci-front-status-check:
if: always() && !cancelled()
timeout-minutes: 5
runs-on: ubuntu-latest
runs-on: depot-ubuntu-24.04
needs:
[
changed-files-check,
@@ -362,7 +363,7 @@ jobs:
ci-e2e-status-check:
if: always() && !cancelled()
timeout-minutes: 5
runs-on: ubuntu-latest
runs-on: depot-ubuntu-24.04
needs: [changed-files-check-e2e, e2e-test]
steps:
- name: Fail job if any needs failed
+1 -1
View File
@@ -25,7 +25,7 @@ defaults:
jobs:
create_pr:
timeout-minutes: 10
runs-on: ubuntu-latest
runs-on: depot-ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@v4
+1 -1
View File
@@ -15,7 +15,7 @@ defaults:
jobs:
tag_and_release:
timeout-minutes: 10
runs-on: ubuntu-latest
runs-on: depot-ubuntu-24.04
if: github.event.pull_request.merged == true && contains(github.event.pull_request.labels.*.name, 'release')
steps:
- name: Check PR Author
+2 -2
View File
@@ -23,7 +23,7 @@ jobs:
needs: changed-files-check
if: needs.changed-files-check.outputs.any_changed == 'true'
timeout-minutes: 30
runs-on: ubuntu-latest
runs-on: depot-ubuntu-24.04
strategy:
matrix:
task: [lint, typecheck, test:unit, storybook:build, storybook:test, test:integration]
@@ -94,7 +94,7 @@ jobs:
ci-sdk-status-check:
if: always() && !cancelled()
timeout-minutes: 5
runs-on: ubuntu-latest
runs-on: depot-ubuntu-24.04
needs: [changed-files-check, sdk-test, sdk-e2e-test]
steps:
- name: Fail job if any needs failed
+1 -1
View File
@@ -250,7 +250,7 @@ jobs:
ci-server-status-check:
if: always() && !cancelled()
timeout-minutes: 5
runs-on: ubuntu-latest
runs-on: depot-ubuntu-24.04
needs: [changed-files-check, server-setup, server-test, server-integration-test]
steps:
- name: Fail job if any needs failed
+4 -2
View File
@@ -22,7 +22,9 @@ jobs:
needs: changed-files-check
if: needs.changed-files-check.outputs.any_changed == 'true'
timeout-minutes: 30
runs-on: ubuntu-latest
runs-on: depot-ubuntu-24.04
env:
NODE_OPTIONS: '--max-old-space-size=4096'
strategy:
matrix:
task: [lint, typecheck, test]
@@ -45,7 +47,7 @@ jobs:
ci-shared-status-check:
if: always() && !cancelled()
timeout-minutes: 5
runs-on: ubuntu-latest
runs-on: depot-ubuntu-24.04
needs: [changed-files-check, shared-test]
steps:
- name: Fail job if any needs failed
@@ -23,7 +23,7 @@ jobs:
needs: changed-files-check
if: needs.changed-files-check.outputs.any_changed == 'true'
timeout-minutes: 30
runs-on: ubuntu-latest
runs-on: depot-ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@v4
@@ -92,7 +92,7 @@ jobs:
ci-test-docker-compose-status-check:
if: always() && !cancelled()
timeout-minutes: 5
runs-on: ubuntu-latest
runs-on: depot-ubuntu-24.04
needs: [changed-files-check, test]
steps:
- name: Fail job if any needs failed
+2 -2
View File
@@ -25,7 +25,7 @@ concurrency:
jobs:
danger-js:
timeout-minutes: 5
runs-on: ubuntu-latest
runs-on: depot-ubuntu-24.04
if: github.event.action != 'closed'
steps:
- uses: actions/checkout@v4
@@ -38,7 +38,7 @@ jobs:
congratulate:
timeout-minutes: 3
runs-on: ubuntu-latest
runs-on: depot-ubuntu-24.04
if: github.event.action == 'closed' && github.event.pull_request.merged == true
steps:
- uses: actions/checkout@v4
+2 -2
View File
@@ -23,7 +23,7 @@ jobs:
needs: changed-files-check
if: needs.changed-files-check.outputs.any_changed == 'true'
timeout-minutes: 10
runs-on: ubuntu-latest
runs-on: depot-ubuntu-24.04
services:
postgres:
image: twentycrm/twenty-postgres-spilo
@@ -65,7 +65,7 @@ jobs:
ci-website-status-check:
if: always() && !cancelled()
timeout-minutes: 5
runs-on: ubuntu-latest
runs-on: depot-ubuntu-24.04
needs: [changed-files-check, website-build]
steps:
- name: Fail job if any needs failed
+2 -2
View File
@@ -23,7 +23,7 @@ jobs:
(github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude') && github.event.comment.user.type != 'Bot') ||
(github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude') && github.event.review.user.type != 'Bot') ||
(github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude')))
runs-on: ubuntu-latest
runs-on: depot-ubuntu-24.04
timeout-minutes: 60
permissions:
contents: write
@@ -96,7 +96,7 @@ jobs:
claude-cross-repo:
if: github.event_name == 'repository_dispatch'
runs-on: ubuntu-latest
runs-on: depot-ubuntu-24.04
timeout-minutes: 60
permissions:
contents: write
+1 -1
View File
@@ -34,7 +34,7 @@ concurrency:
jobs:
pull_docs_translations:
name: Pull docs translations
runs-on: ubuntu-latest
runs-on: depot-ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@v4
+1 -1
View File
@@ -21,7 +21,7 @@ concurrency:
jobs:
push_docs:
name: Push documentation to Crowdin
runs-on: ubuntu-latest
runs-on: depot-ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@v4
+1 -1
View File
@@ -32,7 +32,7 @@ concurrency:
jobs:
pull_translations:
name: Pull translations
runs-on: ubuntu-latest
runs-on: depot-ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@v4
+1 -1
View File
@@ -17,7 +17,7 @@ concurrency:
jobs:
extract_translations:
name: Extract and upload translations
runs-on: ubuntu-latest
runs-on: depot-ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@v4
+1 -1
View File
@@ -18,7 +18,7 @@ concurrency:
jobs:
qa_report:
name: Generate QA Report
runs-on: ubuntu-latest
runs-on: depot-ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@v4
+1 -1
View File
@@ -26,7 +26,7 @@ jobs:
trigger-preview:
if: github.event.action == 'opened' || github.event.action == 'synchronize' || github.event.action == 'reopened' || (github.event.action == 'labeled' && github.event.label.name == 'preview-app')
timeout-minutes: 5
runs-on: ubuntu-latest
runs-on: depot-ubuntu-24.04
steps:
- name: Trigger preview environment workflow
uses: peter-evans/repository-dispatch@v2
+21 -21
View File
@@ -11,13 +11,13 @@ on:
jobs:
preview-environment:
timeout-minutes: 310
runs-on: ubuntu-latest
runs-on: depot-ubuntu-24.04
steps:
- name: Checkout PR
uses: actions/checkout@v4
with:
ref: ${{ github.event.client_payload.pr_head_sha }}
- name: Run compose setup
run: |
echo "Patching docker-compose.yml..."
@@ -25,17 +25,17 @@ jobs:
yq eval 'del(.services.server.image)' -i packages/twenty-docker/docker-compose.yml
yq eval '.services.server.build.context = "../../"' -i packages/twenty-docker/docker-compose.yml
yq eval '.services.server.build.dockerfile = "./packages/twenty-docker/twenty/Dockerfile"' -i packages/twenty-docker/docker-compose.yml
yq eval 'del(.services.worker.image)' -i packages/twenty-docker/docker-compose.yml
yq eval '.services.worker.build.context = "../../"' -i packages/twenty-docker/docker-compose.yml
yq eval '.services.worker.build.dockerfile = "./packages/twenty-docker/twenty/Dockerfile"' -i packages/twenty-docker/docker-compose.yml
echo "Adding SIGN_IN_PREFILLED environment variable to server service..."
yq eval '.services.server.environment.SIGN_IN_PREFILLED = "${SIGN_IN_PREFILLED}"' -i packages/twenty-docker/docker-compose.yml
echo "Setting up .env file..."
cp packages/twenty-docker/.env.example packages/twenty-docker/.env
echo "Generating secrets..."
echo "" >> packages/twenty-docker/.env
echo "# === Randomly generated secrets ===" >> packages/twenty-docker/.env
@@ -46,24 +46,24 @@ jobs:
cd packages/twenty-docker/
docker compose build
working-directory: ./
- name: Create Tunnel
id: expose-tunnel
uses: codetalkio/[email protected]
with:
service: bore.pub
port: 3000
- name: Start services with correct SERVER_URL
run: |
cd packages/twenty-docker/
# Update the SERVER_URL with the tunnel URL
echo "Setting SERVER_URL to ${{ steps.expose-tunnel.outputs.tunnel-url }}"
sed -i '/SERVER_URL=/d' .env
echo "" >> .env
echo "SERVER_URL=${{ steps.expose-tunnel.outputs.tunnel-url }}" >> .env
# Start the services
echo "Docker compose up..."
docker compose up -d || {
@@ -71,7 +71,7 @@ jobs:
docker compose logs
exit 1
}
echo "Waiting for services to be ready..."
count=0
while [ ! $(docker inspect --format='{{.State.Health.Status}}' twenty-db-1) = "healthy" ] || [ ! $(docker inspect --format='{{.State.Health.Status}}' twenty-server-1) = "healthy" ]; do
@@ -84,7 +84,7 @@ jobs:
fi
echo "Still waiting for services... ($count/60)"
done
echo "All services are up and running!"
working-directory: ./
@@ -104,7 +104,7 @@ jobs:
echo "✅ Preview Environment Ready!"
echo "🔗 Preview URL: ${{ steps.expose-tunnel.outputs.tunnel-url }}"
echo "⏱️ This environment will be available for 5 hours"
- name: Post comment on PR
uses: actions/github-script@v6
with:
@@ -113,21 +113,21 @@ jobs:
const COMMENT_MARKER = '<!-- PR_PREVIEW_ENV -->';
const commentBody = `${COMMENT_MARKER}
🚀 **Preview Environment Ready!**
Your preview environment is available at: ${{ steps.expose-tunnel.outputs.tunnel-url }}
This environment will automatically shut down when the PR is closed or after 5 hours.`;
// Get all comments
const {data: comments} = await github.rest.issues.listComments({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: ${{ github.event.client_payload.pr_number }},
});
// Find our comment
const botComment = comments.find(comment => comment.body.includes(COMMENT_MARKER));
if (botComment) {
// Update existing comment
await github.rest.issues.updateComment({
@@ -147,13 +147,13 @@ jobs:
});
console.log('Created new comment');
}
- name: Keep tunnel alive for 5 hours
run: timeout 300m sleep 18000 # Stop on whichever we reach first (300m or 5hour sleep)
- name: Cleanup
if: always()
run: |
cd packages/twenty-docker/
docker compose down -v
working-directory: ./
working-directory: ./
-207
View File
@@ -1,207 +0,0 @@
# Bug #4132:
## CRITICAL: Working Directory
Your working directory is `/work/worktrees/twentyhq-twenty-wt-3023`. This is your primary repository (`twentyhq/twenty`).
All edits MUST be performed within this directory.
## Sentry Error Details (TOON format)
Error information from Sentry (TOON = compact CSV-like format for lists):
```
event_info:
title: Cannot query field 'builtHandlerPath' on type 'LogicFunction'. Did you mean 'sourceHandlerPath'?: Cannot query field 'builtHandlerPath' on type 'LogicFunction'. Did you mean 'sourceHandlerPath'?
type: error
platform: javascript
culprit: /welcome
release: {'id': 1678867630; 'version': 'v1.18.0'; 'status': 'open'; 'shortVersion': 'v1.18.0'; 'versionInfo': {'package': None; 'version': {'raw': 'v1.18.0'}; 'description': 'v1.18.0'; 'buildHash': None}; 'ref...
user:
geo: country_code=AR, city=Buenos Aires, region=Argentina
exceptions[1]{type,value,mechanism}:
Cannot query field 'builtHandlerPath' on type 'Log...,Cannot query field 'builtHandlerPath' on type 'LogicFunction'. Did you mean 'sourceHandlerPath'?,handled=True
stack_frames[5]:
[+] /assets/index-DWghFydJ.js:3032:6887
fn: ? (module: assets/index-DWghFydJ)
3033: Copyright (c) 2018 Jed Watson.
3034: Licensed under the MIT License (MIT), see
3035: http://jedwatson.github.io/classnames
3036: ... ansition-show-delay"));G.current=setTimeout(()=>{he(!1),_e(null),U?.()},fn+25)}},[ve]);const tt=fn=>{ye(je=>iwe(je,fn)?je:fn)},Z=(fn=h)=>{ty ...
3037: ... ow:!0,place:"bottom",positionStrategy:"absolute",delay:u4.mediumDelay,isOpen:!0,children:n?Fe(GFn,{children:h}):h})}),document.body)]})};/**
[+] /assets/index-DWghFydJ.js:5838:15848
fn: TRo (module: assets/index-DWghFydJ)
5839: mutation AddQueryToEventStream($input: AddQuerySubscriptionInput!) {
5840: addQueryToEventStream(input: $input)
5841: }
5842: `,MKn=Ee`
5843: mutation RemoveQueryFromEventStream(
[+] /assets/index-DWghFydJ.js:5838:15130
fn: Object.bJn [as withScope] (module: assets/index-DWghFydJ)
5839: mutation AddQueryToEventStream($input: AddQuerySubscriptionInput!) {
5840: addQueryToEventStream(input: $input)
5841: }
5842: `,MKn=Ee`
5843: mutation RemoveQueryFromEventStream(
[+] /assets/index-DWghFydJ.js:5838:14523
fn: yJn.withScope (module: assets/index-DWghFydJ)
5839: mutation AddQueryToEventStream($input: AddQuerySubscriptionInput!) {
5840: addQueryToEventStream(input: $input)
5841: }
5842: `,MKn=Ee`
5843: mutation RemoveQueryFromEventStream(
[+] /assets/index-DWghFydJ.js:3032:6901
fn: ? (module: assets/index-DWghFydJ)
3033: Copyright (c) 2018 Jed Watson.
3034: Licensed under the MIT License (MIT), see
3035: http://jedwatson.github.io/classnames
3036: ... delay"));G.current=setTimeout(()=>{he(!1),_e(null),U?.()},fn+25)}},[ve]);const tt=fn=>{ye(je=>iwe(je,fn)?je:fn)},Z=(fn=h)=>{ty(ge),Pe?on(!0) ...
3037: ... ow:!0,place:"bottom",positionStrategy:"absolute",delay:u4.mediumDelay,isOpen:!0,children:n?Fe(GFn,{children:h}):h})}),document.body)]})};/**
request:
url: https://ventixsolutions.twenty.com/welcome
contexts:
browser: browser=Chrome 143.0.0; name=Chrome; version=143.0.0
device: family=Mac; model=Mac; brand=Apple
os: os=Mac OS X >=10.15.7; name=Mac OS X; version=>=10.15.7
breadcrumbs_fetch[10]{ts,method,url,status}:
14:52:28,POST,https://ventixsolutions.twenty.com/graphql,200
14:52:28,POST,https://ventixsolutions.twenty.com/metadata,200
14:52:29,POST,https://ventixsolutions.twenty.com/graphql,200
14:52:29,POST,https://ventixsolutions.twenty.com/graphql,200
14:52:29,POST,https://ventixsolutions.twenty.com/graphql,200
14:52:29,POST,https://ventixsolutions.twenty.com/metadata,200
14:52:29,POST,https://ventixsolutions.twenty.com/graphql,200
14:52:30,POST,https://ventixsolutions.twenty.com/graphql,200
14:52:30,POST,https://ventixsolutions.twenty.com/graphql,200
14:52:30,POST,https://ventixsolutions.twenty.com/metadata,200
breadcrumbs_console[38]{ts,level,msg}:
14:52:28,i,UNAUTHENTICATED; triggering token renewal
14:52:28,i,UNAUTHENTICATED; triggering token renewal
14:52:28,i,UNAUTHENTICATED; triggering token renewal
14:52:29,d,%cCannot query field "renewToken" on type "Mutation". color: #F51818; font-weight: lighter
14:52:29,d,%cUnknown type "AuthTokenPair". color: #F51818; font-weight: lighter
14:52:29,d,%cUnknown type "AuthToken". color: #F51818; font-weight: lighter
14:52:29,d,HEADERS:
14:52:29,d,VARIABLES [object Object]
14:52:29,d,QUERY mutation RenewToken($appToken: String!) { renewToken(appToken: $appToken) { tokens { ...
14:52:29,d,ERRORS [object Object];[object Object];[object Object]
14:52:29,i,Failed to renew token; triggering unauthenticated error from handleTokenRenewal
14:52:29,i,onUnauthenticatedError; resetting state
14:52:29,w,Uncompiled message detected! Message: > Open command menu That means you use raw catalog or your c...
14:52:29,d,%cCannot query field "renewToken" on type "Mutation". color: #F51818; font-weight: lighter
14:52:29,d,%cUnknown type "AuthTokenPair". color: #F51818; font-weight: lighter
14:52:29,d,%cUnknown type "AuthToken". color: #F51818; font-weight: lighter
14:52:29,d,HEADERS:
14:52:29,d,VARIABLES [object Object]
14:52:29,d,QUERY mutation RenewToken($appToken: String!) { renewToken(appToken: $appToken) { tokens { ...
14:52:29,d,ERRORS [object Object];[object Object];[object Object]
14:52:29,i,Failed to renew token; triggering unauthenticated error from handleTokenRenewal
14:52:29,i,onUnauthenticatedError; resetting state
14:52:29,i,tokenPair is undefined
14:52:29,d,%cCannot query field "renewToken" on type "Mutation". color: #F51818; font-weight: lighter
14:52:29,d,%cUnknown type "AuthTokenPair". color: #F51818; font-weight: lighter
14:52:29,d,%cUnknown type "AuthToken". color: #F51818; font-weight: lighter
14:52:29,d,HEADERS:
14:52:29,d,VARIABLES [object Object]
14:52:29,d,QUERY mutation RenewToken($appToken: String!) { renewToken(appToken: $appToken) { tokens { ...
14:52:29,d,ERRORS [object Object];[object Object];[object Object]
14:52:29,i,Failed to renew token; triggering unauthenticated error from handleTokenRenewal
14:52:29,i,onUnauthenticatedError; resetting state
14:52:29,i,tokenPair is undefined
14:52:29,d,HEADERS:
14:52:29,d,VARIABLES [object Object]
14:52:29,d,QUERY mutation RenewToken($appToken: String!) { renewToken(appToken: $appToken) { tokens { ...
14:52:29,d,RESULT [object Object]
14:52:29,i,setTokenPair from handleTokenRenewal
breadcrumbs_navigation[1]{ts,from,to}:
14:52:29,/objects/facturas?viewId=dc4c104d-0791-441e-be86-22c08d80a3d...,/welcome
breadcrumbs_sentry.transaction[1]{ts,type,level,msg}:
14:52:29,default,i,cafc56b1b423479f843c7d948352fdf3
```
## Severity Assessment
After analyzing the bug, determine severity independently based on your analysis:
- **critical**: User CANNOT complete a critical task. Crashes, core feature broken, data loss risk.
- **medium**: User CAN complete tasks but degraded experience. Non-critical feature broken, workaround exists.
- **low**: User unlikely to notice. Cosmetic, rare edge case, transient error that auto-recovers.
Your severity assessment in the output JSON is the FINAL severity that will be used.
## STRICT GIT RULES (violations = failed run)
- You are already on the correct fix branch — do NOT run `git checkout`, `git switch`, or `git merge`
- **NEVER run `git merge`** — merging other branches (feature branches, main, etc.) is FORBIDDEN
- **NEVER run `git checkout` on a different branch** — stay on your current branch at all times
- **NEVER run `git rebase`** — rebasing is not needed and can corrupt the worktree
- If the code you need to fix is not on this branch, fix the code that IS on this branch
or report that the fix cannot be applied — do NOT merge or pull in other branches
- **NEVER run `git add`, `git commit`, or `git push`** — the system handles all git write operations automatically after your analysis
- Only allowed git commands: `git blame`, `git log`, `git diff`, `git show` (read-only)
## Your Task (in this order)
1. **Find the Root Cause**
- Locate the exact file and line where the bug originates
- Understand why this error occurs
2. **Git Blame Analysis**
- Use `git blame` to find the commit that introduced this bug
- Note the commit SHA, author, and date
3. **Fix the Bug**
- Implement a **minimal, targeted fix** — only change what's necessary to resolve this specific error
- **NEVER modify shared/generic utilities, base classes, or ORM internals** to work around a missing field or feature.
Instead, fix the specific code paths that trigger the error (e.g. add a guard/try-catch in the caller).
Changing a generic utility to silently skip errors is ALWAYS wrong — it masks future bugs.
- Do NOT refactor surrounding code, add new features, or make unrelated improvements
- Do NOT build new components, screens, or functionality — only fix the reported error
- Add appropriate error handling if needed
- Do NOT run any git write commands (`git add`, `git commit`, `git push`) — the system handles committing and pushing automatically after your analysis
4. **Output Structured Analysis**
At the end of your response, output a JSON block between these markers:
```
SONARLY_ANALYSIS_START
{
"title": "User-focused title (max 60 chars)",
"severity": "critical|medium|low",
"summary": "1-2 sentence summary of the bug",
"user_impact": "Who was impacted and how they were impacted",
"evidence": { // Each code item: file (relative path from repo root), line (integer), snippet (faulty code, max ~10 lines). Multiple items for multiple files. {} if no evidence.
"code": [
{"file": "src/checkout/process.py", "line": 42, "snippet": "def process_order(order_id):\n orders = db.query(\"SELECT * FROM orders\") # missing WHERE clause"}
]
},
"root_cause": {
"explanation": "Root cause explanation. Use plain text only — NO bold, italic, or code backticks. When listing multiple points, use a numbered list (1. 2. 3.) with each item on its own line. Include who introduced it (git blame author), when (date), and why.",
"blame": {
"commit_sha": "abc123def (the full commit SHA from git blame, or null if unknown)",
"author": "Author Name (from git blame output, or null if unknown)",
"date": "2026-01-15 (date from git blame, or null if unknown)",
"commit_url": "https://github.com/{owner}/{repo}/commit/{sha} (build from git remote get-url origin + sha, strip any access token, or null)",
"explanation": "Brief explanation of when/who introduced the bug (e.g. Added in commit abc123 by John on Jan 15)"
}
},
"suggested_fix": {
"explanation": "What the fix does and why it solves the problem. Use plain text only — NO bold, italic, or code backticks. When listing multiple steps, use a numbered list (1. 2. 3.) with each item on its own line.",
"files_changed": ["path/to/file.py", "path/to/other.py (list of file paths you created or modified in the fix)"]
}
}
SONARLY_ANALYSIS_END
```
CRITICAL: The JSON block is the ONLY part of your response shown to the user.
Everything outside the SONARLY_ANALYSIS markers is discarded. Put ALL investigation details,
evidence (code snippets and log lines), and findings INSIDE the JSON fields,
especially root_cause.explanation, and summary. Do NOT write a separate investigation summary before the JSON.
IMPORTANT: The JSON between SONARLY_ANALYSIS_START and SONARLY_ANALYSIS_END must be valid JSON.
## Critical: ALWAYS output the analysis JSON
You MUST output SONARLY_ANALYSIS_START...SONARLY_ANALYSIS_END even if you could not find the code or fix the bug.
If you cannot locate the relevant code or create a fix,
explain what you found in the `root_cause.explanation` field.
A run without the analysis JSON is a FAILED run — never end without it.
Don't ask any questions to the user
+2 -1
View File
@@ -28,7 +28,7 @@ See:
🚀 [Self-hosting](https://docs.twenty.com/developers/self-hosting/docker-compose)
🖥️ [Local Setup](https://docs.twenty.com/developers/local-setup)
# Does the world need another CRM?
# Why Twenty
We built Twenty for three reasons:
@@ -120,6 +120,7 @@ Below are a few features we have implemented to date:
<a href="https://greptile.com"><img src="./packages/twenty-website/public/images/readme/greptile.png" height="30" alt="Greptile" /></a>
<a href="https://sentry.io/"><img src="./packages/twenty-website/public/images/readme/sentry.png" height="30" alt="Sentry" /></a>
<a href="https://crowdin.com/"><img src="./packages/twenty-website/public/images/readme/crowdin.png" height="30" alt="Crowdin" /></a>
<a href="https://e2b.dev/"><img src="./packages/twenty-website/public/images/readme/e2b.svg" height="30" alt="E2B" /></a>
</p>
Thanks to these amazing services that we use and recommend for UI testing (Chromatic), code review (Greptile), catching bugs (Sentry) and translating (Crowdin).
@@ -5,7 +5,7 @@ import {
type ObjectRecordCreateEvent,
type ObjectRecordUpdateEvent,
} from 'twenty-sdk';
import Twenty, { type Person } from '../generated';
import { CoreApiClient, type Person } from 'twenty-sdk/core-api';
const MAILCHIMP_API_URL: string =
process.env.MAILCHIMP_SERVER_PREFIX !== '' &&
@@ -88,7 +88,7 @@ type DatabaseEvent =
| DatabaseEventPayload<ObjectRecordUpdateEvent<Person>>;
const fetchCompanyData = async (companyId: string): Promise<twentyCompany> => {
const { company } = await new Twenty().query({
const { company } = await new CoreApiClient().query({
company: {
__args: { filter: { id: { eq: companyId } } },
name: true,
@@ -1,5 +1,5 @@
import { defineFunction } from 'twenty-sdk';
import { createClient } from '../../generated';
import { createClient } from 'twenty-sdk/core-api';
// TODO: import from twenty-sdk when 0.4.0 is deployed
type ServerlessFunctionEvent<TBody = object> = {
@@ -430,10 +430,10 @@ Each function file uses `defineLogicFunction()` to export a configuration with a
// src/app/createPostCard.logic-function.ts
import { defineLogicFunction } from 'twenty-sdk';
import type { DatabaseEventPayload, ObjectRecordCreateEvent, CronPayload, RoutePayload } from 'twenty-sdk';
import Twenty, { type Person } from '~/generated';
import { CoreApiClient, type Person } from 'twenty-sdk/core-api';
const handler = async (params: RoutePayload) => {
const client = new Twenty(); // generated typed client
const client = new CoreApiClient(); // generated typed client
const name = 'name' in params.queryStringParameters
? params.queryStringParameters.name ?? process.env.DEFAULT_RECIPIENT_NAME ?? 'Hello world'
: 'Hello world';
@@ -642,10 +642,10 @@ To mark a logic function as a tool, set `isTool: true` and provide a `toolInputS
```typescript
// src/logic-functions/enrich-company.logic-function.ts
import { defineLogicFunction } from 'twenty-sdk';
import Twenty from '~/generated';
import { CoreApiClient } from 'twenty-sdk/core-api';
const handler = async (params: { companyName: string; domain?: string }) => {
const client = new Twenty();
const client = new CoreApiClient();
const result = await client.mutation({
createTask: {
@@ -773,9 +773,9 @@ You can create new skills in two ways:
The typed client is auto-generated by `yarn twenty app:dev` and stored in `node_modules/twenty-sdk/generated` based on your workspace schema. Use it in your functions:
```typescript
import Twenty from '~/generated';
import { CoreApiClient } from 'twenty-sdk/core-api';
const client = new Twenty();
const client = new CoreApiClient();
const { me } = await client.query({ me: { id: true, displayName: true } });
```
@@ -793,6 +793,51 @@ Notes:
- The API key's permissions are determined by the role referenced in your `application-config.ts` via `defaultRoleUniversalIdentifier`. This is the default role used by logic functions of your application.
- Applications can define roles to follow leastprivilege. Grant only the permissions your functions need, then point `defaultRoleUniversalIdentifier` to that role's universal identifier.
#### Uploading files
The generated `MetadataApiClient` includes an `uploadFile` method for attaching files to file-type fields on your workspace objects. Because standard GraphQL clients do not support multipart file uploads natively, the client provides this dedicated method that implements the [GraphQL multipart request specification](https://github.com/jaydenseric/graphql-multipart-request-spec) under the hood.
```typescript
import { MetadataApiClient } from 'twenty-sdk/metadata-api';
import * as fs from 'fs';
const client = new MetadataApiClient();
const fileBuffer = fs.readFileSync('./invoice.pdf');
const uploadedFile = await client.uploadFile(
fileBuffer, // file contents as a Buffer
'invoice.pdf', // filename
'application/pdf', // MIME type (defaults to 'application/octet-stream')
'58a0a314-d7ea-4865-9850-7fb84e72f30b', // field universal identifier
);
console.log(uploadedFile);
// { id: '...', path: '...', size: 12345, createdAt: '...', url: 'https://...' }
```
The method signature:
```typescript
uploadFile(
fileBuffer: Buffer,
filename: string,
contentType: string,
fieldMetadataUniversalIdentifier: string,
): Promise<{ id: string; path: string; size: number; createdAt: string; url: string }>
```
| Parameter | Type | Description |
|-----------|------|-------------|
| `fileBuffer` | `Buffer` | The raw file contents |
| `filename` | `string` | The name of the file (used for storage and display) |
| `contentType` | `string` | MIME type of the file (defaults to `application/octet-stream` if omitted) |
| `fieldMetadataUniversalIdentifier` | `string` | The `universalIdentifier` of the file-type field on your object |
Key points:
- The method sends the file to the **metadata endpoint** (not the main GraphQL endpoint), where the upload mutation is resolved.
- It uses the field's `universalIdentifier` (not its workspace-specific ID), so your upload code works across any workspace where your app is installed — consistent with how apps reference fields everywhere else.
- The returned `url` is a signed URL you can use to access the uploaded file.
### Hello World example
@@ -46,13 +46,13 @@ yarn twenty app:dev
يدعم المُنشئ ثلاثة أوضاع للتحكم في ملفات الأمثلة التي سيتم تضمينها:
```bash filename="Terminal"
# Default (exhaustive): all examples (object, field, logic function, front component, view, navigation menu item, skill)
# الافتراضي (شامل): جميع الأمثلة (كائن، حقل، دالة منطقية، مكوّن الواجهة الأمامية، عرض، عنصر قائمة التنقل، مهارة)
npx create-twenty-app@latest my-app
# Minimal: only core files (application-config.ts and default-role.ts)
# الأدنى: الملفات الأساسية فقط (application-config.ts و default-role.ts)
npx create-twenty-app@latest my-app --minimal
# Interactive: select which examples to include
# التفاعلي: اختر الأمثلة التي تريد تضمينها
npx create-twenty-app@latest my-app --interactive
```
@@ -103,26 +103,26 @@ my-twenty-app/
eslint.config.mjs
tsconfig.json
README.md
public/ # Public assets folder (images, fonts, etc.)
public/ # مجلد الأصول العامة (صور، خطوط، إلخ)
src/
├── application-config.ts # Required - main application configuration
├── application-config.ts # مطلوب - إعدادات التطبيق الرئيسية
├── roles/
│ └── default-role.ts # Default role for logic functions
│ └── default-role.ts # الدور الافتراضي للدوال المنطقية
├── objects/
│ └── example-object.ts # Example custom object definition
│ └── example-object.ts # تعريف كائن مخصص — مثال
├── fields/
│ └── example-field.ts # Example standalone field definition
│ └── example-field.ts # تعريف حقل مستقل — مثال
├── logic-functions/
│ ├── hello-world.ts # Example logic function
│ └── post-install.ts # Post-install logic function
│ ├── hello-world.ts # دالة منطقية — مثال
│ └── post-install.ts # دالة منطقية لما بعد التثبيت
├── front-components/
│ └── hello-world.tsx # Example front component
│ └── hello-world.tsx # مكوّن واجهة أمامية — مثال
├── views/
│ └── example-view.ts # Example saved view definition
│ └── example-view.ts # تعريف عرض محفوظ — مثال
├── navigation-menu-items/
│ └── example-navigation-menu-item.ts # Example sidebar navigation link
│ └── example-navigation-menu-item.ts # رابط تنقّل في الشريط الجانبي — مثال
└── skills/
└── example-skill.ts # Example AI agent skill definition
└── example-skill.ts # تعريف مهارة لوكيل الذكاء الاصطناعي — مثال
```
مع `--minimal`، سيتم إنشاء الملفات الأساسية فقط (`application-config.ts` و`roles/default-role.ts` و`logic-functions/post-install.ts`). مع `--interactive`، تختار ملفات الأمثلة التي تريد تضمينها.
@@ -142,16 +142,16 @@ my-twenty-app/
يكتشف SDK الكيانات عبر تحليل ملفات TypeScript الخاصة بك بحثًا عن استدعاءات **`export default define<Entity>({...})`**. يحتوي كل نوع كيان على دالة مساعدة مقابلة يتم تصديرها من `twenty-sdk`:
| دالة مساعدة | نوع الكيان |
| ---------------------------- | --------------------------------- |
| `defineObject()` | تعريفات كائنات مخصصة |
| `defineLogicFunction()` | تعريفات الوظائف المنطقية |
| `defineFrontComponent()` | Front component definitions |
| `defineRole()` | تعريفات الأدوار |
| `defineField()` | امتدادات الحقول للكائنات الموجودة |
| `defineView()` | تعريفات العروض المحفوظة |
| `defineNavigationMenuItem()` | تعريفات عناصر قائمة التنقل |
| `defineSkill()` | AI agent skill definitions |
| دالة مساعدة | نوع الكيان |
| ---------------------------- | ------------------------------------ |
| `defineObject()` | تعريفات كائنات مخصصة |
| `defineLogicFunction()` | تعريفات الوظائف المنطقية |
| `defineFrontComponent()` | Front component definitions |
| `defineRole()` | تعريفات الأدوار |
| `defineField()` | امتدادات الحقول للكائنات الموجودة |
| `defineView()` | تعريفات العروض المحفوظة |
| `defineNavigationMenuItem()` | تعريفات عناصر قائمة التنقل |
| `defineSkill()` | تعريفات مهارات وكيل الذكاء الاصطناعي |
<Note>
**تسمية الملفات مرنة.** يعتمد اكتشاف الكيانات على بنية الشجرة المجردة (AST) — إذ يقوم SDK بفحص ملفات المصدر لديك بحثًا عن النمط `export default define<Entity>({...})`. يمكنك تنظيم ملفاتك ومجلداتك كيفما تشاء. التجميع حسب نوع الكيان (مثلًا، `logic-functions/` و`roles/`) هو مجرد عرف لتنظيم الشيفرة، وليس مطلبًا إلزاميًا.
@@ -173,7 +173,7 @@ export default defineObject({
ستضيف الأوامر اللاحقة مزيدًا من الملفات والمجلدات:
* `yarn twenty app:dev` سيولّد تلقائيًا عميل API مضبوط الأنواع في `node_modules/twenty-sdk/generated` (عميل Twenty مضبوط الأنواع + أنواع مساحة العمل).
* `yarn twenty entity:add` will add entity definition files under `src/` for your custom objects, functions, front components, roles, skills, and more.
* `yarn twenty entity:add` سيضيف ملفات تعريف الكيانات ضمن `src/` لكائناتك المخصّصة، والوظائف، ومكوّنات الواجهة الأمامية، والأدوار، والمهارات، وغير ذلك.
## المصادقة
@@ -226,7 +226,7 @@ yarn twenty auth:status
| `defineField()` | وسّع الكائنات الموجودة بحقول إضافية |
| `defineView()` | تعريف العروض المحفوظة للكائنات |
| `defineNavigationMenuItem()` | تعريف روابط التنقل في الشريط الجانبي |
| `defineSkill()` | Define AI agent skills |
| `defineSkill()` | عرّف مهارات وكيل الذكاء الاصطناعي |
تتحقق هذه الدوال من تكوينك وقت البناء وتوفّر إكمالًا تلقائيًا في بيئة التطوير وأمان الأنواع.
@@ -433,10 +433,10 @@ export default defineRole({
// src/app/createPostCard.logic-function.ts
import { defineLogicFunction } from 'twenty-sdk';
import type { DatabaseEventPayload, ObjectRecordCreateEvent, CronPayload, RoutePayload } from 'twenty-sdk';
import Twenty, { type Person } from '~/generated';
import { CoreApiClient, type Person } from 'twenty-sdk/core-api';
const handler = async (params: RoutePayload) => {
const client = new Twenty(); // generated typed client
const client = new CoreApiClient(); // generated typed client
const name = 'name' in params.queryStringParameters
? params.queryStringParameters.name ?? process.env.DEFAULT_RECIPIENT_NAME ?? 'Hello world'
: 'Hello world';
@@ -653,10 +653,10 @@ const handler = async (event: RoutePayload) => {
```typescript
// src/logic-functions/enrich-company.logic-function.ts
import { defineLogicFunction } from 'twenty-sdk';
import Twenty from '~/generated';
import { CoreApiClient } from 'twenty-sdk/core-api';
const handler = async (params: { companyName: string; domain?: string }) => {
const client = new Twenty();
const client = new CoreApiClient();
const result = await client.mutation({
createTask: {
@@ -748,7 +748,7 @@ export default defineFrontComponent({
### المهارات
Skills define reusable instructions and capabilities that AI agents can use within your workspace. Use `defineSkill()` to define skills with built-in validation:
تُحدِّد المهارات تعليمات وإمكانات قابلة لإعادة الاستخدام يمكن لوكلاء الذكاء الاصطناعي استخدامها داخل مساحة العمل لديك. استخدم `defineSkill()` لتعريف مهارات مع تحقّق مدمج:
```typescript
// src/skills/example-skill.ts
@@ -757,38 +757,38 @@ import { defineSkill } from 'twenty-sdk';
export default defineSkill({
universalIdentifier: 'a1b2c3d4-e5f6-7890-abcd-ef1234567890',
name: 'sales-outreach',
label: 'Sales Outreach',
description: 'Guides the AI agent through a structured sales outreach process',
label: 'التواصل البيعي',
description: 'يرشد وكيل الذكاء الاصطناعي خلال عملية منظّمة للتواصل البيعي',
icon: 'IconBrain',
content: `You are a sales outreach assistant. When reaching out to a prospect:
1. Research the company and recent news
2. Identify the prospect's role and likely pain points
3. Draft a personalized message referencing specific details
4. Keep the tone professional but conversational`,
content: `أنت مساعد للتواصل البيعي. عند التواصل مع عميل محتمل:
1. ابحث عن الشركة وآخر الأخبار
2. حدِّد دور العميل المحتمل ونقاط الألم المرجّحة
3. صِغ رسالة مخصّصة تشير إلى تفاصيل محدّدة
4. حافظ على نبرة احترافية ولكن حوارية`,
});
```
النقاط الرئيسية:
* `name` is a unique identifier string for the skill (kebab-case recommended).
* `label` is the human-readable display name shown in the UI.
* `content` contains the skill instructions — this is the text the AI agent uses.
* `icon` (optional) sets the icon displayed in the UI.
* `description` (optional) provides additional context about the skill's purpose.
* `name` هي سلسلة معرّف فريدة للمهارة (يُنصَح باستخدام kebab-case).
* `label` هو اسم العرض المقروء للبشر الظاهر في واجهة المستخدم.
* `content` يحتوي على تعليمات المهارة — وهو النص الذي يستخدمه وكيل الذكاء الاصطناعي.
* `icon` (اختياري) يحدّد الأيقونة المعروضة في واجهة المستخدم.
* `description` (اختياري) يوفّر سياقًا إضافيًا حول غرض المهارة.
You can create new skills in two ways:
يمكنك إنشاء مهارات جديدة بطريقتين:
* **Scaffolded**: Run `yarn twenty entity:add` and choose the option to add a new skill.
* **Manual**: Create a new file and use `defineSkill()`, following the same pattern.
* **مُنشأ بالقالب**: شغِّل `yarn twenty entity:add` واختر خيار إضافة مهارة جديدة.
* **يدوي**: أنشئ ملفًا جديدًا واستخدم `defineSkill()` مع اتباع النمط نفسه.
### عميل مُولَّد مضبوط الأنواع
يُولَّد العميل مضبوط الأنواع تلقائيًا بواسطة `yarn twenty app:dev` ويُخزَّن في `node_modules/twenty-sdk/generated` استنادًا إلى مخطط مساحة العمل لديك. استخدمه في وظائفك:
```typescript
import Twenty from '~/generated';
import { CoreApiClient } from 'twenty-sdk/core-api';
const client = new Twenty();
const client = new CoreApiClient();
const { me } = await client.query({ me: { id: true, displayName: true } });
```
@@ -807,6 +807,53 @@ const { me } = await client.query({ me: { id: true, displayName: true } });
* تُحدَّد أذونات مفتاح واجهة برمجة التطبيقات بواسطة الدور المشار إليه في `application-config.ts` عبر `defaultRoleUniversalIdentifier`. هذا هو الدور الافتراضي الذي تستخدمه الوظائف المنطقية في تطبيقك.
* يمكن للتطبيقات تعريف أدوار لاتباع مبدأ أقل الامتياز. امنح فقط الأذونات التي تحتاجها وظائفك، ثم وجّه `defaultRoleUniversalIdentifier` إلى المعرّف الشامل لذلك الدور.
#### رفع الملفات
يتضمن العميل `MetadataApiClient` المُولَّد طريقة `uploadFile` لإرفاق الملفات بالحقول من نوع ملف ضمن كائنات مساحة العمل الخاصة بك. نظرًا لأن عملاء GraphQL القياسيون لا يدعمون تحميل الملفات متعددة الأجزاء افتراضيًا، يوفر العميل هذه الطريقة المخصصة التي تطبق [مواصفة طلب GraphQL متعدد الأجزاء](https://github.com/jaydenseric/graphql-multipart-request-spec) في الخلفية.
```typescript
import { MetadataApiClient } from 'twenty-sdk/metadata-api';
import * as fs from 'fs';
const client = new MetadataApiClient();
const fileBuffer = fs.readFileSync('./invoice.pdf');
const uploadedFile = await client.uploadFile(
fileBuffer, // file contents as a Buffer
'invoice.pdf', // filename
'application/pdf', // MIME type (defaults to 'application/octet-stream')
'58a0a314-d7ea-4865-9850-7fb84e72f30b', // field universal identifier
);
console.log(uploadedFile);
// { id: '...', path: '...', size: 12345, createdAt: '...', url: 'https://...' }
```
توقيع الطريقة:
```typescript
uploadFile(
fileBuffer: Buffer,
filename: string,
contentType: string,
fieldMetadataUniversalIdentifier: string,
): Promise<{ id: string; path: string; size: number; createdAt: string; url: string }>
```
| المعلمة | النوع | الوصف |
| ---------------------------------- | -------- | ---------------------------------------------------------------------------------- |
| `fileBuffer` | `Buffer` | المحتوى الخام للملف |
| `filename` | `string` | اسم الملف (يُستخدم للتخزين والعرض) |
| `contentType` | `string` | نوع MIME للملف (القيمة الافتراضية هي `application/octet-stream` إذا لم يتم تحديده) |
| `fieldMetadataUniversalIdentifier` | `string` | قيمة `universalIdentifier` لحقل نوع الملف في كائنك |
النقاط الرئيسية:
* ترسل هذه الطريقة الملف إلى **نقطة نهاية البيانات الوصفية** (وليست نقطة النهاية الرئيسية لـ GraphQL)، حيث تُنفَّذ عملية الرفع.
* تستخدم `universalIdentifier` الخاص بالحقل (وليس المعرّف الخاص بمساحة العمل)، ليعمل كود الرفع لديك عبر أي مساحة عمل مُثبَّت فيها تطبيقك — بما يتماشى مع كيفية إشارة التطبيقات إلى الحقول في كل مكان آخر.
* العنوان `url` المُعاد هو عنوان URL موقّع يمكنك استخدامه للوصول إلى الملف المرفوع.
### مثال Hello World
استكشف مثالًا بسيطًا شاملًا من البداية إلى النهاية يوضح الكائنات والوظائف المنطقية والمكوّنات الأمامية ومشغّلات متعددة [هنا](https://github.com/twentyhq/twenty/tree/main/packages/twenty-apps/hello-world):
@@ -46,13 +46,13 @@ yarn twenty app:dev
Nástroj pro generování kostry podporuje tři režimy pro řízení toho, které ukázkové soubory jsou zahrnuty:
```bash filename="Terminal"
# Default (exhaustive): all examples (object, field, logic function, front component, view, navigation menu item, skill)
# Výchozí (úplný): všechny příklady (objekt, pole, logic funkce, front-endová komponenta, zobrazení, položka navigační nabídky, dovednost)
npx create-twenty-app@latest my-app
# Minimal: only core files (application-config.ts and default-role.ts)
# Minimální: pouze základní soubory (application-config.ts a default-role.ts)
npx create-twenty-app@latest my-app --minimal
# Interactive: select which examples to include
# Interaktivní: vyberte, které příklady zahrnout
npx create-twenty-app@latest my-app --interactive
```
@@ -103,26 +103,26 @@ my-twenty-app/
eslint.config.mjs
tsconfig.json
README.md
public/ # Public assets folder (images, fonts, etc.)
public/ # Složka s veřejnými prostředky (obrázky, písma apod.)
src/
├── application-config.ts # Required - main application configuration
├── application-config.ts # Povinné hlavní konfigurace aplikace
├── roles/
│ └── default-role.ts # Default role for logic functions
│ └── default-role.ts # Výchozí role pro logic funkce
├── objects/
│ └── example-object.ts # Example custom object definition
│ └── example-object.ts # Ukázková definice vlastního objektu
├── fields/
│ └── example-field.ts # Example standalone field definition
│ └── example-field.ts # Ukázková samostatná definice pole
├── logic-functions/
│ ├── hello-world.ts # Example logic function
│ └── post-install.ts # Post-install logic function
│ ├── hello-world.ts # Ukázková logic funkce
│ └── post-install.ts # Postinstalační logic funkce
├── front-components/
│ └── hello-world.tsx # Example front component
│ └── hello-world.tsx # Ukázková front-endová komponenta
├── views/
│ └── example-view.ts # Example saved view definition
│ └── example-view.ts # Ukázková definice uloženého zobrazení
├── navigation-menu-items/
│ └── example-navigation-menu-item.ts # Example sidebar navigation link
│ └── example-navigation-menu-item.ts # Ukázkový odkaz postranní navigace
└── skills/
└── example-skill.ts # Example AI agent skill definition
└── example-skill.ts # Ukázková definice dovednosti agenta AI
```
S volbou `--minimal` se vytvoří pouze základní soubory (`application-config.ts`, `roles/default-role.ts` a `logic-functions/post-install.ts`). S volbou `--interactive` si vyberete, které ukázkové soubory chcete zahrnout.
@@ -151,7 +151,7 @@ SDK detekuje entity analýzou vašich souborů TypeScript a hledá volání **`e
| `defineField()` | Rozšíření polí u existujících objektů |
| `defineView()` | Definice uložených zobrazení |
| `defineNavigationMenuItem()` | Definice položek navigační nabídky |
| `defineSkill()` | AI agent skill definitions |
| `defineSkill()` | Definice dovedností agenta AI |
<Note>
**Pojmenování souborů je flexibilní.** Detekce entit je založená na AST — SDK prochází vaše zdrojové soubory a hledá vzor `export default define<Entity>({...})`. Soubory a složky můžete organizovat, jak chcete. Seskupování podle typu entity (např. `logic-functions/`, `roles/`) je pouze konvence pro organizaci kódu, nikoli požadavek.
@@ -173,7 +173,7 @@ export default defineObject({
Pozdější příkazy přidají další soubory a složky:
* `yarn twenty app:dev` automaticky vygeneruje typovaného klienta API v `node_modules/twenty-sdk/generated` (typovaný klient Twenty + typy pracovního prostoru).
* `yarn twenty entity:add` will add entity definition files under `src/` for your custom objects, functions, front components, roles, skills, and more.
* `yarn twenty entity:add` přidá soubory s definicemi entit do `src/` pro vaše vlastní objekty, funkce, frontové komponenty, role, dovednosti a další.
## Ověření
@@ -226,7 +226,7 @@ SDK poskytuje pomocné funkce pro definování entit vaší aplikace. Jak je pop
| `defineField()` | Rozšiřte existující objekty o další pole |
| `defineView()` | Definujte uložená zobrazení pro objekty |
| `defineNavigationMenuItem()` | Definujte odkazy postranní navigace |
| `defineSkill()` | Define AI agent skills |
| `defineSkill()` | Definuje dovednosti agenta AI |
Tyto funkce validují vaši konfiguraci v době sestavení a poskytují automatické doplňování v IDE a typovou bezpečnost.
@@ -433,10 +433,10 @@ Každý soubor funkce používá `defineLogicFunction()` k exportu konfigurace s
// src/app/createPostCard.logic-function.ts
import { defineLogicFunction } from 'twenty-sdk';
import type { DatabaseEventPayload, ObjectRecordCreateEvent, CronPayload, RoutePayload } from 'twenty-sdk';
import Twenty, { type Person } from '~/generated';
import { CoreApiClient, type Person } from 'twenty-sdk/core-api';
const handler = async (params: RoutePayload) => {
const client = new Twenty(); // generated typed client
const client = new CoreApiClient(); // generated typed client
const name = 'name' in params.queryStringParameters
? params.queryStringParameters.name ?? process.env.DEFAULT_RECIPIENT_NAME ?? 'Hello world'
: 'Hello world';
@@ -653,10 +653,10 @@ Chcete-li označit logickou funkci jako nástroj, nastavte `isTool: true` a posk
```typescript
// src/logic-functions/enrich-company.logic-function.ts
import { defineLogicFunction } from 'twenty-sdk';
import Twenty from '~/generated';
import { CoreApiClient } from 'twenty-sdk/core-api';
const handler = async (params: { companyName: string; domain?: string }) => {
const client = new Twenty();
const client = new CoreApiClient();
const result = await client.mutation({
createTask: {
@@ -748,7 +748,7 @@ Nové frontendové komponenty můžete vytvořit dvěma způsoby:
### Dovednosti
Skills define reusable instructions and capabilities that AI agents can use within your workspace. Use `defineSkill()` to define skills with built-in validation:
Dovednosti definují znovupoužitelné pokyny a schopnosti, které mohou agenti AI používat ve vašem pracovním prostoru. K definování dovedností s vestavěnou validací použijte `defineSkill()`:
```typescript
// src/skills/example-skill.ts
@@ -770,25 +770,25 @@ export default defineSkill({
Hlavní body:
* `name` is a unique identifier string for the skill (kebab-case recommended).
* `label` is the human-readable display name shown in the UI.
* `content` contains the skill instructions — this is the text the AI agent uses.
* `icon` (optional) sets the icon displayed in the UI.
* `description` (optional) provides additional context about the skill's purpose.
* `name` je jedinečný identifikátor dovednosti (doporučuje se kebab-case).
* `label` je uživatelsky čitelný název zobrazovaný v UI.
* `content` obsahuje pokyny dovednosti — je to text, který agent AI používá.
* `icon` (volitelné) nastavuje ikonu zobrazovanou v UI.
* `description` (volitelné) poskytuje doplňující kontext o účelu dovednosti.
You can create new skills in two ways:
Nové dovednosti můžete vytvářet dvěma způsoby:
* **Scaffolded**: Run `yarn twenty entity:add` and choose the option to add a new skill.
* **Manual**: Create a new file and use `defineSkill()`, following the same pattern.
* **Vygenerované**: Spusťte `yarn twenty entity:add` a zvolte možnost přidat novou dovednost.
* **Ruční**: Vytvořte nový soubor a použijte `defineSkill()` podle stejného vzoru.
### Generovaný typovaný klient
Typovaný klient je automaticky generován pomocí `yarn twenty app:dev` a ukládá se do `node_modules/twenty-sdk/generated` podle schématu vašeho pracovního prostoru. Použijte jej ve svých funkcích:
```typescript
import Twenty from '~/generated';
import { CoreApiClient } from 'twenty-sdk/core-api';
const client = new Twenty();
const client = new CoreApiClient();
const { me } = await client.query({ me: { id: true, displayName: true } });
```
@@ -807,6 +807,53 @@ Poznámky:
* Oprávnění klíče API jsou určena rolí odkazovanou ve vašem `application-config.ts` prostřednictvím `defaultRoleUniversalIdentifier`. Toto je výchozí role používaná logickými funkcemi vaší aplikace.
* Aplikace mohou definovat role podle principu nejmenších oprávnění. Udělte pouze oprávnění, která vaše funkce potřebují, a poté nastavte `defaultRoleUniversalIdentifier` na univerzální identifikátor této role.
#### Nahrávání souborů
Vygenerovaný klient `MetadataApiClient` obsahuje metodu `uploadFile` pro připojování souborů k polím typu souboru u objektů ve vašem pracovním prostoru. Protože standardní klienti GraphQL nativně nepodporují nahrávání souborů pomocí multipart, klient poskytuje tuto speciální metodu, která interně implementuje [specifikaci multipart požadavků GraphQL](https://github.com/jaydenseric/graphql-multipart-request-spec).
```typescript
import { MetadataApiClient } from 'twenty-sdk/metadata-api';
import * as fs from 'fs';
const client = new MetadataApiClient();
const fileBuffer = fs.readFileSync('./invoice.pdf');
const uploadedFile = await client.uploadFile(
fileBuffer, // file contents as a Buffer
'invoice.pdf', // filename
'application/pdf', // MIME type (defaults to 'application/octet-stream')
'58a0a314-d7ea-4865-9850-7fb84e72f30b', // field universal identifier
);
console.log(uploadedFile);
// { id: '...', path: '...', size: 12345, createdAt: '...', url: 'https://...' }
```
Signatura metody:
```typescript
uploadFile(
fileBuffer: Buffer,
filename: string,
contentType: string,
fieldMetadataUniversalIdentifier: string,
): Promise<{ id: string; path: string; size: number; createdAt: string; url: string }>
```
| Parametr | Typ | Popis |
| ---------------------------------- | -------- | --------------------------------------------------------------------------- |
| `fileBuffer` | `Buffer` | Surový obsah souboru |
| `filename` | `string` | Název souboru (používá se pro ukládání a zobrazení) |
| `contentType` | `string` | Typ MIME souboru (pokud je vynechán, výchozí je `application/octet-stream`) |
| `fieldMetadataUniversalIdentifier` | `string` | `universalIdentifier` pole typu souboru ve vašem objektu |
Hlavní body:
* Metoda odešle soubor na **koncový bod metadat** (nikoli na hlavní koncový bod GraphQL), kde se provede mutace nahrání.
* Používá `universalIdentifier` pole (nikoli jeho ID specifické pro pracovní prostor), takže váš kód pro nahrávání funguje ve všech pracovních prostorech, kde je vaše aplikace nainstalována — v souladu s tím, jak aplikace odkazují na pole všude jinde.
* Vrácená hodnota `url` je podepsaná adresa URL, kterou můžete použít k přístupu k nahranému souboru.
### Příklad Hello World
Prozkoumejte minimalistický end-to-end příklad, který demonstruje objekty, logické funkce, frontendové komponenty a více spouštěčů [zde](https://github.com/twentyhq/twenty/tree/main/packages/twenty-apps/hello-world):
@@ -46,13 +46,13 @@ yarn twenty app:dev
Das Scaffolding-Tool unterstützt drei Modi, um zu steuern, welche Beispieldateien enthalten sind:
```bash filename="Terminal"
# Default (exhaustive): all examples (object, field, logic function, front component, view, navigation menu item, skill)
# Standard (umfassend): alle Beispiele (Objekt, Feld, Logikfunktion, Frontend-Komponente, View, Navigationsmenüeintrag, Skill)
npx create-twenty-app@latest my-app
# Minimal: only core files (application-config.ts and default-role.ts)
# Minimal: nur Kerndateien (application-config.ts und default-role.ts)
npx create-twenty-app@latest my-app --minimal
# Interactive: select which examples to include
# Interaktiv: wähle aus, welche Beispiele enthalten sein sollen
npx create-twenty-app@latest my-app --interactive
```
@@ -103,26 +103,26 @@ my-twenty-app/
eslint.config.mjs
tsconfig.json
README.md
public/ # Public assets folder (images, fonts, etc.)
public/ # Ordner für öffentliche Assets (Bilder, Schriftarten usw.)
src/
├── application-config.ts # Required - main application configuration
├── application-config.ts # Erforderlich - Hauptkonfiguration der Anwendung
├── roles/
│ └── default-role.ts # Default role for logic functions
│ └── default-role.ts # Standardrolle für Logikfunktionen
├── objects/
│ └── example-object.ts # Example custom object definition
│ └── example-object.ts # Beispiel für eine benutzerdefinierte Objektdefinition
├── fields/
│ └── example-field.ts # Example standalone field definition
│ └── example-field.ts # Beispiel für eine eigenständige Felddefinition
├── logic-functions/
│ ├── hello-world.ts # Example logic function
│ └── post-install.ts # Post-install logic function
│ ├── hello-world.ts # Beispiel für eine Logikfunktion
│ └── post-install.ts # Post-Installations-Logikfunktion
├── front-components/
│ └── hello-world.tsx # Example front component
│ └── hello-world.tsx # Beispiel für eine Frontend-Komponente
├── views/
│ └── example-view.ts # Example saved view definition
│ └── example-view.ts # Beispiel für eine gespeicherte View-Definition
├── navigation-menu-items/
│ └── example-navigation-menu-item.ts # Example sidebar navigation link
│ └── example-navigation-menu-item.ts # Beispiel für einen Navigationslink in der Seitenleiste
└── skills/
└── example-skill.ts # Example AI agent skill definition
└── example-skill.ts # Beispiel für eine Skill-Definition eines KI-Agenten
```
Mit `--minimal` werden nur die Kerndateien erstellt (`application-config.ts`, `roles/default-role.ts` und `logic-functions/post-install.ts`). Mit `--interactive` wählst du aus, welche Beispieldateien enthalten sein sollen.
@@ -151,7 +151,7 @@ Das SDK erkennt Entitäten, indem es Ihre TypeScript-Dateien nach Aufrufen von *
| `defineField()` | Felderweiterungen für bestehende Objekte |
| `defineView()` | Gespeicherte View-Definitionen |
| `defineNavigationMenuItem()` | Definitionen von Navigationsmenüeinträgen |
| `defineSkill()` | AI agent skill definitions |
| `defineSkill()` | Skill-Definitionen für KI-Agenten |
<Note>
**Dateibenennung ist flexibel.** Die Entitätserkennung ist AST-basiert — das SDK durchsucht Ihre Quelldateien nach dem Muster `export default define<Entity>({...})`. Sie können Ihre Dateien und Ordner nach Belieben organisieren. Die Gruppierung nach Entitätstyp (z. B. `logic-functions/`, `roles/`) ist lediglich eine Konvention zur Codeorganisation, keine Voraussetzung.
@@ -173,7 +173,7 @@ export default defineObject({
Spätere Befehle fügen weitere Dateien und Ordner hinzu:
* `yarn twenty app:dev` generiert automatisch einen typisierten API-Client in `node_modules/twenty-sdk/generated` (typisierter Twenty-Client + Arbeitsbereichs-Typen).
* `yarn twenty entity:add` will add entity definition files under `src/` for your custom objects, functions, front components, roles, skills, and more.
* `yarn twenty entity:add` fügt unter `src/` Entitätsdefinitionsdateien für Ihre benutzerdefinierten Objekte, Funktionen, Frontend-Komponenten, Rollen, Skills und mehr hinzu.
## Authentifizierung
@@ -226,7 +226,7 @@ Das SDK stellt Hilfsfunktionen bereit, um die Entitäten Ihrer App zu definieren
| `defineField()` | Bestehende Objekte mit zusätzlichen Feldern erweitern |
| `defineView()` | Gespeicherte Views für Objekte definieren |
| `defineNavigationMenuItem()` | Seitenleisten-Navigationslinks definieren |
| `defineSkill()` | Define AI agent skills |
| `defineSkill()` | Definieren Sie Skills für KI-Agenten |
Diese Funktionen validieren Ihre Konfiguration zur Build-Zeit und bieten IDE-Autovervollständigung sowie Typsicherheit.
@@ -433,10 +433,10 @@ Jede Funktionsdatei verwendet `defineLogicFunction()`, um eine Konfiguration mit
// src/app/createPostCard.logic-function.ts
import { defineLogicFunction } from 'twenty-sdk';
import type { DatabaseEventPayload, ObjectRecordCreateEvent, CronPayload, RoutePayload } from 'twenty-sdk';
import Twenty, { type Person } from '~/generated';
import { CoreApiClient, type Person } from 'twenty-sdk/core-api';
const handler = async (params: RoutePayload) => {
const client = new Twenty(); // generated typed client
const client = new CoreApiClient(); // generated typed client
const name = 'name' in params.queryStringParameters
? params.queryStringParameters.name ?? process.env.DEFAULT_RECIPIENT_NAME ?? 'Hello world'
: 'Hello world';
@@ -653,10 +653,10 @@ Um eine Logikfunktion als Tool zu markieren, setzen Sie `isTool: true` und geben
```typescript
// src/logic-functions/enrich-company.logic-function.ts
import { defineLogicFunction } from 'twenty-sdk';
import Twenty from '~/generated';
import { CoreApiClient } from 'twenty-sdk/core-api';
const handler = async (params: { companyName: string; domain?: string }) => {
const client = new Twenty();
const client = new CoreApiClient();
const result = await client.mutation({
createTask: {
@@ -748,7 +748,7 @@ Sie können neue Frontend-Komponenten auf zwei Arten erstellen:
### Fähigkeiten
Skills define reusable instructions and capabilities that AI agents can use within your workspace. Use `defineSkill()` to define skills with built-in validation:
Skills definieren wiederverwendbare Anweisungen und Fähigkeiten, die KI-Agenten in Ihrem Arbeitsbereich verwenden können. Verwenden Sie `defineSkill()`, um Skills mit eingebauter Validierung zu definieren:
```typescript
// src/skills/example-skill.ts
@@ -770,25 +770,25 @@ export default defineSkill({
Hauptpunkte:
* `name` is a unique identifier string for the skill (kebab-case recommended).
* `label` is the human-readable display name shown in the UI.
* `content` contains the skill instructions — this is the text the AI agent uses.
* `icon` (optional) sets the icon displayed in the UI.
* `description` (optional) provides additional context about the skill's purpose.
* `name` ist eine eindeutige Kennung (als Zeichenfolge) für den Skill (kebab-case empfohlen).
* `label` ist der menschenlesbare Anzeigename, der in der UI angezeigt wird.
* `content` enthält die Skill-Anweisungen — dies ist der Text, den der KI-Agent verwendet.
* `icon` (optional) legt das in der UI angezeigte Symbol fest.
* `description` (optional) liefert zusätzlichen Kontext zum Zweck des Skills.
You can create new skills in two ways:
Sie können neue Skills auf zwei Arten erstellen:
* **Scaffolded**: Run `yarn twenty entity:add` and choose the option to add a new skill.
* **Manual**: Create a new file and use `defineSkill()`, following the same pattern.
* **Generiert**: Führen Sie `yarn twenty entity:add` aus und wählen Sie die Option zum Hinzufügen eines neuen Skills.
* **Manuell**: Erstellen Sie eine neue Datei und verwenden Sie `defineSkill()` nach demselben Muster.
### Generierter typisierter Client
Der typisierte Client wird von `yarn twenty app:dev` automatisch generiert und basierend auf Ihrem Arbeitsbereichs-Schema in `node_modules/twenty-sdk/generated` gespeichert. Verwenden Sie ihn in Ihren Funktionen:
```typescript
import Twenty from '~/generated';
import { CoreApiClient } from 'twenty-sdk/core-api';
const client = new Twenty();
const client = new CoreApiClient();
const { me } = await client.query({ me: { id: true, displayName: true } });
```
@@ -807,6 +807,53 @@ Notizen:
* Die Berechtigungen des API-Schlüssels werden durch die Rolle bestimmt, auf die in Ihrer `application-config.ts` über `defaultRoleUniversalIdentifier` verwiesen wird. Dies ist die Standardrolle, die von den Logikfunktionen Ihrer Anwendung verwendet wird.
* Anwendungen können Rollen definieren, um das Least-Privilege-Prinzip einzuhalten. Gewähren Sie nur die Berechtigungen, die Ihre Funktionen benötigen, und verweisen Sie dann mit `defaultRoleUniversalIdentifier` auf den universellen Bezeichner dieser Rolle.
#### Dateien hochladen
Der generierte `MetadataApiClient`-Client enthält eine Methode `uploadFile`, um Dateien an Felder des Typs Datei in Ihren Arbeitsbereichsobjekten anzuhängen. Da Standard-GraphQL-Clients Multipart-Datei-Uploads nicht nativ unterstützen, stellt der Client diese dedizierte Methode bereit, die unter der Haube die [GraphQL-Multipart-Anfragespezifikation](https://github.com/jaydenseric/graphql-multipart-request-spec) implementiert.
```typescript
import { MetadataApiClient } from 'twenty-sdk/metadata-api';
import * as fs from 'fs';
const client = new MetadataApiClient();
const fileBuffer = fs.readFileSync('./invoice.pdf');
const uploadedFile = await client.uploadFile(
fileBuffer, // file contents as a Buffer
'invoice.pdf', // filename
'application/pdf', // MIME type (defaults to 'application/octet-stream')
'58a0a314-d7ea-4865-9850-7fb84e72f30b', // field universal identifier
);
console.log(uploadedFile);
// { id: '...', path: '...', size: 12345, createdAt: '...', url: 'https://...' }
```
Die Methodensignatur:
```typescript
uploadFile(
fileBuffer: Buffer,
filename: string,
contentType: string,
fieldMetadataUniversalIdentifier: string,
): Promise<{ id: string; path: string; size: number; createdAt: string; url: string }>
```
| Parameter | Typ | Beschreibung |
| ---------------------------------- | -------- | ------------------------------------------------------------------------------- |
| `fileBuffer` | `Buffer` | Der Rohinhalt der Datei |
| `filename` | `string` | Der Name der Datei (wird für Speicherung und Anzeige verwendet) |
| `contentType` | `string` | MIME-Typ der Datei (standardmäßig `application/octet-stream`, wenn weggelassen) |
| `fieldMetadataUniversalIdentifier` | `string` | Der `universalIdentifier` des Dateityp-Felds in Ihrem Objekt |
Hauptpunkte:
* Die Methode sendet die Datei an den **metadata endpoint** (nicht den main GraphQL endpoint), wo die Upload-Mutation ausgeführt wird.
* Sie verwendet den `universalIdentifier` des Feldes (nicht dessen arbeitsbereichsspezifische ID), sodass Ihr Upload-Code in jedem Arbeitsbereich funktioniert, in dem Ihre App installiert ist — im Einklang damit, wie Apps Felder überall sonst referenzieren.
* Die zurückgegebene `url` ist eine signierte URL, mit der Sie auf die hochgeladene Datei zugreifen können.
### Hello-World-Beispiel
Ein minimales End-to-End-Beispiel, das Objekte, Logikfunktionen, Frontend-Komponenten und mehrere Trigger demonstriert, finden Sie [hier](https://github.com/twentyhq/twenty/tree/main/packages/twenty-apps/hello-world):
@@ -418,10 +418,10 @@ Cada archivo de función usa `defineFunction()` para exportar una configuración
// src/app/createPostCard.function.ts
import { defineFunction } from 'twenty-sdk';
import type { DatabaseEventPayload, ObjectRecordCreateEvent, CronPayload, RoutePayload } from 'twenty-sdk';
import Twenty, { type Person } from '~/generated';
import { CoreApiClient, type Person } from 'twenty-sdk/core-api';
const handler = async (params: RoutePayload) => {
const client = new Twenty(); // generated typed client
const client = new CoreApiClient(); // generated typed client
const name = 'name' in params.queryStringParameters
? params.queryStringParameters.name ?? process.env.DEFAULT_RECIPIENT_NAME ?? 'Hello world'
: 'Hello world';
@@ -585,9 +585,9 @@ Puedes crear funciones nuevas de dos maneras:
`yarn app:dev` genera automáticamente el cliente Twenty tipado en `node_modules/twenty-sdk/generated`. Úsalo en tus funciones:
```typescript
import Twenty from '~/generated';
import { CoreApiClient } from 'twenty-sdk/core-api';
const client = new Twenty();
const client = new CoreApiClient();
const { me } = await client.query({ me: { id: true, displayName: true } });
```
@@ -418,10 +418,10 @@ Chaque fichier de fonction utilise `defineFunction()` pour exporter une configur
// src/app/createPostCard.function.ts
import { defineFunction } from 'twenty-sdk';
import type { DatabaseEventPayload, ObjectRecordCreateEvent, CronPayload, RoutePayload } from 'twenty-sdk';
import Twenty, { type Person } from '~/generated';
import { CoreApiClient, type Person } from 'twenty-sdk/core-api';
const handler = async (params: RoutePayload) => {
const client = new Twenty(); // generated typed client
const client = new CoreApiClient(); // generated typed client
const name = 'name' in params.queryStringParameters
? params.queryStringParameters.name ?? process.env.DEFAULT_RECIPIENT_NAME ?? 'Hello world'
: 'Hello world';
@@ -585,9 +585,9 @@ Vous pouvez créer de nouvelles fonctions de deux façons :
`yarn app:dev` génère automatiquement le client Twenty typé dans `node_modules/twenty-sdk/generated`. Utilisez-le dans vos fonctions :
```typescript
import Twenty from '~/generated';
import { CoreApiClient } from 'twenty-sdk/core-api';
const client = new Twenty();
const client = new CoreApiClient();
const { me } = await client.query({ me: { id: true, displayName: true } });
```
@@ -433,10 +433,10 @@ Ogni file di funzione usa `defineLogicFunction()` per esportare una configurazio
// src/app/createPostCard.logic-function.ts
import { defineLogicFunction } from 'twenty-sdk';
import type { DatabaseEventPayload, ObjectRecordCreateEvent, CronPayload, RoutePayload } from 'twenty-sdk';
import Twenty, { type Person } from '~/generated';
import { CoreApiClient, type Person } from 'twenty-sdk/core-api';
const handler = async (params: RoutePayload) => {
const client = new Twenty(); // generated typed client
const client = new CoreApiClient(); // generated typed client
const name = 'name' in params.queryStringParameters
? params.queryStringParameters.name ?? process.env.DEFAULT_RECIPIENT_NAME ?? 'Hello world'
: 'Hello world';
@@ -653,10 +653,10 @@ Per contrassegnare una funzione logica come strumento, imposta `isTool: true` e
```typescript
// src/logic-functions/enrich-company.logic-function.ts
import { defineLogicFunction } from 'twenty-sdk';
import Twenty from '~/generated';
import { CoreApiClient } from 'twenty-sdk/core-api';
const handler = async (params: { companyName: string; domain?: string }) => {
const client = new Twenty();
const client = new CoreApiClient();
const result = await client.mutation({
createTask: {
@@ -786,9 +786,9 @@ You can create new skills in two ways:
Il client tipizzato è generato automaticamente da `yarn twenty app:dev` e salvato in `node_modules/twenty-sdk/generated` in base allo schema della tua area di lavoro. Usalo nelle tue funzioni:
```typescript
import Twenty from '~/generated';
import { CoreApiClient } from 'twenty-sdk/core-api';
const client = new Twenty();
const client = new CoreApiClient();
const { me } = await client.query({ me: { id: true, displayName: true } });
```
@@ -807,6 +807,53 @@ Note:
* I permessi della chiave API sono determinati dal ruolo referenziato nel tuo `application-config.ts` tramite `defaultRoleUniversalIdentifier`. Questo è il ruolo predefinito utilizzato dalle funzioni logiche della tua applicazione.
* Le applicazioni possono definire ruoli per seguire il principio del privilegio minimo. Concedi solo i permessi necessari alle tue funzioni, quindi punta `defaultRoleUniversalIdentifier` all'identificatore universale di quel ruolo.
#### Caricamento dei file
Il client `MetadataApiClient` generato include un metodo `uploadFile` per allegare file ai campi di tipo file sugli oggetti del tuo spazio di lavoro. Poiché i client GraphQL standard non supportano nativamente il caricamento di file multipart, il client fornisce questo metodo dedicato che implementa la [specifica della richiesta GraphQL multipart](https://github.com/jaydenseric/graphql-multipart-request-spec) dietro le quinte.
```typescript
import { MetadataApiClient } from 'twenty-sdk/metadata-api';
import * as fs from 'fs';
const client = new MetadataApiClient();
const fileBuffer = fs.readFileSync('./invoice.pdf');
const uploadedFile = await client.uploadFile(
fileBuffer, // file contents as a Buffer
'invoice.pdf', // filename
'application/pdf', // MIME type (defaults to 'application/octet-stream')
'58a0a314-d7ea-4865-9850-7fb84e72f30b', // field universal identifier
);
console.log(uploadedFile);
// { id: '...', path: '...', size: 12345, createdAt: '...', url: 'https://...' }
```
La firma del metodo:
```typescript
uploadFile(
fileBuffer: Buffer,
filename: string,
contentType: string,
fieldMetadataUniversalIdentifier: string,
): Promise<{ id: string; path: string; size: number; createdAt: string; url: string }>
```
| Parametro | Tipo | Descrizione |
| ---------------------------------- | -------- | ------------------------------------------------------------------------ |
| `fileBuffer` | `Buffer` | Il contenuto grezzo del file |
| `filename` | `string` | Il nome del file (utilizzato per l'archiviazione e la visualizzazione) |
| `contentType` | `string` | Tipo MIME del file (predefinito su `application/octet-stream` se omesso) |
| `fieldMetadataUniversalIdentifier` | `string` | L'`universalIdentifier` del campo di tipo file nel tuo oggetto |
Punti chiave:
* Il metodo invia il file al **metadata endpoint** (non all'endpoint GraphQL principale), dove la mutation di upload viene risolta.
* Usa l'`universalIdentifier` del campo (non il suo ID specifico dello spazio di lavoro), quindi il tuo codice di upload funziona in qualsiasi spazio di lavoro in cui la tua app è installata — coerentemente con il modo in cui le app fanno riferimento ai campi altrove.
* L'`url` restituito è un URL firmato che puoi usare per accedere al file caricato.
### Esempio Hello World
Esplora un esempio minimale end-to-end che dimostra oggetti, funzioni logiche, componenti front-end e trigger multipli [qui](https://github.com/twentyhq/twenty/tree/main/packages/twenty-apps/hello-world):
@@ -416,10 +416,10 @@ export default defineRole({
// src/app/createPostCard.function.ts
import { defineFunction } from 'twenty-sdk';
import type { DatabaseEventPayload, ObjectRecordCreateEvent, CronPayload, RoutePayload } from 'twenty-sdk';
import Twenty, { type Person } from '~/generated';
import { CoreApiClient, type Person } from 'twenty-sdk/core-api';
const handler = async (params: RoutePayload) => {
const client = new Twenty(); // generated typed client
const client = new CoreApiClient(); // generated typed client
const name = 'name' in params.queryStringParameters
? params.queryStringParameters.name ?? process.env.DEFAULT_RECIPIENT_NAME ?? 'Hello world'
: 'Hello world';
@@ -583,9 +583,9 @@ const handler = async (event: RoutePayload) => {
`yarn app:dev` は `node_modules/twenty-sdk/generated` に型付き Twenty クライアントを自動生成します。 関数内で使用します:
```typescript
import Twenty from '~/generated';
import { CoreApiClient } from 'twenty-sdk/core-api';
const client = new Twenty();
const client = new CoreApiClient();
const { me } = await client.query({ me: { id: true, displayName: true } });
```
@@ -418,10 +418,10 @@ The `universalIdentifier` of this role is then referenced in `application.config
// src/app/createPostCard.function.ts
import { defineFunction } from 'twenty-sdk';
import type { DatabaseEventPayload, ObjectRecordCreateEvent, CronPayload, RoutePayload } from 'twenty-sdk';
import Twenty, { type Person } from '~/generated';
import { CoreApiClient, type Person } from 'twenty-sdk/core-api';
const handler = async (params: RoutePayload) => {
const client = new Twenty(); // generated typed client
const client = new CoreApiClient(); // generated typed client
const name = 'name' in params.queryStringParameters
? params.queryStringParameters.name ?? process.env.DEFAULT_RECIPIENT_NAME ?? 'Hello world'
: 'Hello world';
@@ -585,9 +585,9 @@ const handler = async (event: RoutePayload) => {
`yarn app:dev`는 `node_modules/twenty-sdk/generated`에 타입드 Twenty 클라이언트를 자동으로 생성합니다. 함수에서 사용하세요:
```typescript
import Twenty from '~/generated';
import { CoreApiClient } from 'twenty-sdk/core-api';
const client = new Twenty();
const client = new CoreApiClient();
const { me } = await client.query({ me: { id: true, displayName: true } });
```
@@ -46,13 +46,13 @@ yarn twenty app:dev
O gerador de estrutura oferece suporte a três modos para controlar quais arquivos de exemplo são incluídos:
```bash filename="Terminal"
# Default (exhaustive): all examples (object, field, logic function, front component, view, navigation menu item, skill)
# Padrão (exhaustivo): todos os exemplos (objeto, campo, função de lógica, componente de front-end, visualização, item do menu de navegação, habilidade)
npx create-twenty-app@latest my-app
# Minimal: only core files (application-config.ts and default-role.ts)
# Mínimo: apenas arquivos principais (application-config.ts e default-role.ts)
npx create-twenty-app@latest my-app --minimal
# Interactive: select which examples to include
# Interativo: selecione quais exemplos incluir
npx create-twenty-app@latest my-app --interactive
```
@@ -103,26 +103,26 @@ my-twenty-app/
eslint.config.mjs
tsconfig.json
README.md
public/ # Public assets folder (images, fonts, etc.)
public/ # Pasta de recursos públicos (imagens, fontes, etc.)
src/
├── application-config.ts # Required - main application configuration
├── application-config.ts # Obrigatório - configuração principal da aplicação
├── roles/
│ └── default-role.ts # Default role for logic functions
│ └── default-role.ts # Papel padrão para funções de lógica
├── objects/
│ └── example-object.ts # Example custom object definition
│ └── example-object.ts # Exemplo de definição de objeto personalizado
├── fields/
│ └── example-field.ts # Example standalone field definition
│ └── example-field.ts # Exemplo de definição de campo independente
├── logic-functions/
│ ├── hello-world.ts # Example logic function
│ └── post-install.ts # Post-install logic function
│ ├── hello-world.ts # Exemplo de função de lógica
│ └── post-install.ts # Função de lógica de pós-instalação
├── front-components/
│ └── hello-world.tsx # Example front component
│ └── hello-world.tsx # Exemplo de componente de front-end
├── views/
│ └── example-view.ts # Example saved view definition
│ └── example-view.ts # Exemplo de definição de visualização salva
├── navigation-menu-items/
│ └── example-navigation-menu-item.ts # Example sidebar navigation link
│ └── example-navigation-menu-item.ts # Exemplo de link de navegação da barra lateral
└── skills/
└── example-skill.ts # Example AI agent skill definition
└── example-skill.ts # Exemplo de definição de habilidade de agente de IA
```
Com `--minimal`, apenas os arquivos principais são criados (`application-config.ts`, `roles/default-role.ts` e `logic-functions/post-install.ts`). Com `--interactive`, você escolhe quais arquivos de exemplo incluir.
@@ -151,7 +151,7 @@ O SDK detecta entidades analisando seus arquivos TypeScript em busca de chamadas
| `defineField()` | Extensões de campos para objetos existentes |
| `defineView()` | Definições de visualizações salvas |
| `defineNavigationMenuItem()` | Definições de itens do menu de navegação |
| `defineSkill()` | AI agent skill definitions |
| `defineSkill()` | Definições de habilidades de agente de IA |
<Note>
**A nomeação de arquivos é flexível.** A detecção de entidades é baseada em AST — o SDK varre seus arquivos fonte em busca do padrão `export default define<Entity>({...})`. Você pode organizar seus arquivos e pastas como quiser. Agrupar por tipo de entidade (por exemplo, `logic-functions/`, `roles/`) é apenas uma convenção para organização do código, não um requisito.
@@ -173,7 +173,7 @@ export default defineObject({
Comandos posteriores adicionarão mais arquivos e pastas:
* `yarn twenty app:dev` vai gerar automaticamente um cliente de API tipado em `node_modules/twenty-sdk/generated` (cliente Twenty tipado + tipos do espaço de trabalho).
* `yarn twenty entity:add` will add entity definition files under `src/` for your custom objects, functions, front components, roles, skills, and more.
* `yarn twenty entity:add` adicionará arquivos de definição de entidade em `src/` para seus objetos, funções, componentes de front-end, papéis e habilidades personalizados, entre outros.
## Autenticação
@@ -226,7 +226,7 @@ O SDK fornece funções utilitárias para definir as entidades do seu app. Confo
| `defineField()` | Estender objetos existentes com campos adicionais |
| `defineView()` | Define visualizações salvas para objetos |
| `defineNavigationMenuItem()` | Define links de navegação da barra lateral |
| `defineSkill()` | Define AI agent skills |
| `defineSkill()` | Define habilidades de agente de IA |
Essas funções validam sua configuração em tempo de compilação e oferecem autocompletar na IDE e segurança de tipos.
@@ -433,10 +433,10 @@ Cada arquivo de função usa `defineLogicFunction()` para exportar uma configura
// src/app/createPostCard.logic-function.ts
import { defineLogicFunction } from 'twenty-sdk';
import type { DatabaseEventPayload, ObjectRecordCreateEvent, CronPayload, RoutePayload } from 'twenty-sdk';
import Twenty, { type Person } from '~/generated';
import { CoreApiClient, type Person } from 'twenty-sdk/core-api';
const handler = async (params: RoutePayload) => {
const client = new Twenty(); // generated typed client
const client = new CoreApiClient(); // generated typed client
const name = 'name' in params.queryStringParameters
? params.queryStringParameters.name ?? process.env.DEFAULT_RECIPIENT_NAME ?? 'Hello world'
: 'Hello world';
@@ -653,10 +653,10 @@ Para marcar uma função lógica como ferramenta, defina `isTool: true` e forne
```typescript
// src/logic-functions/enrich-company.logic-function.ts
import { defineLogicFunction } from 'twenty-sdk';
import Twenty from '~/generated';
import { CoreApiClient } from 'twenty-sdk/core-api';
const handler = async (params: { companyName: string; domain?: string }) => {
const client = new Twenty();
const client = new CoreApiClient();
const result = await client.mutation({
createTask: {
@@ -748,7 +748,7 @@ Você pode criar novos componentes de front-end de duas formas:
### Habilidades
Skills define reusable instructions and capabilities that AI agents can use within your workspace. Use `defineSkill()` to define skills with built-in validation:
As habilidades definem instruções e capacidades reutilizáveis que os agentes de IA podem usar no seu espaço de trabalho. Use `defineSkill()` para definir habilidades com validação integrada:
```typescript
// src/skills/example-skill.ts
@@ -770,25 +770,25 @@ export default defineSkill({
Pontos-chave:
* `name` is a unique identifier string for the skill (kebab-case recommended).
* `label` is the human-readable display name shown in the UI.
* `content` contains the skill instructions — this is the text the AI agent uses.
* `icon` (optional) sets the icon displayed in the UI.
* `description` (optional) provides additional context about the skill's purpose.
* `name` é uma string de identificador exclusivo para a habilidade (recomenda-se kebab-case).
* `label` é o nome de exibição legível por humanos mostrado na UI.
* `content` contém as instruções da habilidade — este é o texto que o agente de IA usa.
* `icon` (opcional) define o ícone exibido na UI.
* `description` (opcional) fornece contexto adicional sobre a finalidade da habilidade.
You can create new skills in two ways:
Você pode criar novas habilidades de duas formas:
* **Scaffolded**: Run `yarn twenty entity:add` and choose the option to add a new skill.
* **Manual**: Create a new file and use `defineSkill()`, following the same pattern.
* **Gerado automaticamente**: Execute `yarn twenty entity:add` e escolha a opção para adicionar uma nova habilidade.
* **Manual**: Crie um novo arquivo e use `defineSkill()`, seguindo o mesmo padrão.
### Cliente tipado gerado
O cliente tipado é gerado automaticamente pelo `yarn twenty app:dev` e armazenado em `node_modules/twenty-sdk/generated` com base no esquema do seu espaço de trabalho. Use-o em suas funções:
```typescript
import Twenty from '~/generated';
import { CoreApiClient } from 'twenty-sdk/core-api';
const client = new Twenty();
const client = new CoreApiClient();
const { me } = await client.query({ me: { id: true, displayName: true } });
```
@@ -807,6 +807,53 @@ Notas:
* As permissões da chave de API são determinadas pelo papel referenciado no seu `application-config.ts` via `defaultRoleUniversalIdentifier`. Este é o papel padrão usado pelas funções de lógica do seu app.
* Os aplicativos podem definir papéis para seguir o princípio do menor privilégio. Conceda apenas as permissões de que suas funções precisam e, em seguida, aponte `defaultRoleUniversalIdentifier` para o identificador universal desse papel.
#### Carregamento de ficheiros
O cliente `MetadataApiClient` gerado inclui um método `uploadFile` para anexar ficheiros a campos do tipo ficheiro nos objetos do seu espaço de trabalho. Como os clientes GraphQL padrão não suportam nativamente o carregamento de ficheiros multipart, o cliente fornece este método dedicado que implementa, nos bastidores, a [especificação de pedidos multipart do GraphQL](https://github.com/jaydenseric/graphql-multipart-request-spec).
```typescript
import { MetadataApiClient } from 'twenty-sdk/metadata-api';
import * as fs from 'fs';
const client = new MetadataApiClient();
const fileBuffer = fs.readFileSync('./invoice.pdf');
const uploadedFile = await client.uploadFile(
fileBuffer, // file contents as a Buffer
'invoice.pdf', // filename
'application/pdf', // MIME type (defaults to 'application/octet-stream')
'58a0a314-d7ea-4865-9850-7fb84e72f30b', // field universal identifier
);
console.log(uploadedFile);
// { id: '...', path: '...', size: 12345, createdAt: '...', url: 'https://...' }
```
A assinatura do método:
```typescript
uploadFile(
fileBuffer: Buffer,
filename: string,
contentType: string,
fieldMetadataUniversalIdentifier: string,
): Promise<{ id: string; path: string; size: number; createdAt: string; url: string }>
```
| Parâmetro | Tipo | Descrição |
| ---------------------------------- | -------- | ------------------------------------------------------------------------ |
| `fileBuffer` | `Buffer` | O conteúdo bruto do arquivo |
| `filename` | `string` | O nome do arquivo (usado para armazenamento e exibição) |
| `contentType` | `string` | Tipo MIME do arquivo (padrão para `application/octet-stream` se omitido) |
| `fieldMetadataUniversalIdentifier` | `string` | O `universalIdentifier` do campo do tipo arquivo no seu objeto |
Pontos-chave:
* O método envia o arquivo para o **endpoint de metadados** (não para o endpoint GraphQL principal), onde a mutação de upload é resolvida.
* Ele usa o `universalIdentifier` do campo (não o ID específico do espaço de trabalho), de modo que seu código de upload funcione em qualquer espaço de trabalho onde seu app esteja instalado — consistente com a forma como os apps referenciam campos em qualquer outro lugar.
* A `url` retornada é um URL assinado que você pode usar para acessar o arquivo enviado.
### Exemplo Hello World
Explore um exemplo mínimo de ponta a ponta que demonstra objetos, funções de lógica, componentes de front-end e vários gatilhos [aqui](https://github.com/twentyhq/twenty/tree/main/packages/twenty-apps/hello-world):
@@ -433,10 +433,10 @@ Fiecare fișier de funcție folosește `defineLogicFunction()` pentru a exporta
// src/app/createPostCard.logic-function.ts
import { defineLogicFunction } from 'twenty-sdk';
import type { DatabaseEventPayload, ObjectRecordCreateEvent, CronPayload, RoutePayload } from 'twenty-sdk';
import Twenty, { type Person } from '~/generated';
import { CoreApiClient, type Person } from 'twenty-sdk/core-api';
const handler = async (params: RoutePayload) => {
const client = new Twenty(); // generated typed client
const client = new CoreApiClient(); // generated typed client
const name = 'name' in params.queryStringParameters
? params.queryStringParameters.name ?? process.env.DEFAULT_RECIPIENT_NAME ?? 'Hello world'
: 'Hello world';
@@ -653,10 +653,10 @@ Pentru a marca o funcție logică drept instrument, setați `isTool: true` și f
```typescript
// src/logic-functions/enrich-company.logic-function.ts
import { defineLogicFunction } from 'twenty-sdk';
import Twenty from '~/generated';
import { CoreApiClient } from 'twenty-sdk/core-api';
const handler = async (params: { companyName: string; domain?: string }) => {
const client = new Twenty();
const client = new CoreApiClient();
const result = await client.mutation({
createTask: {
@@ -786,9 +786,9 @@ Puteți crea abilități noi în două moduri:
Clientul tipizat este generat automat de `yarn twenty app:dev` și stocat în `node_modules/twenty-sdk/generated`, pe baza schemei spațiului tău de lucru. Folosiți-l în funcțiile dvs.:
```typescript
import Twenty from '~/generated';
import { CoreApiClient } from 'twenty-sdk/core-api';
const client = new Twenty();
const client = new CoreApiClient();
const { me } = await client.query({ me: { id: true, displayName: true } });
```
@@ -807,6 +807,53 @@ Notițe:
* Permisiunile cheii API sunt determinate de rolul referențiat în `application-config.ts` prin `defaultRoleUniversalIdentifier`. Acesta este rolul implicit folosit de funcțiile de logică ale aplicației.
* Aplicațiile pot defini roluri pentru a urma principiul celui mai mic privilegiu. Acordați doar permisiunile de care au nevoie funcțiile, apoi setați `defaultRoleUniversalIdentifier` la identificatorul universal al acelui rol.
#### Încărcarea fișierelor
Clientul `MetadataApiClient` generat include o metodă `uploadFile` pentru atașarea fișierelor la câmpuri de tip fișier ale obiectelor din spațiul de lucru. Deoarece clienții GraphQL standard nu acceptă în mod nativ încărcarea fișierelor multipart, clientul oferă această metodă dedicată care implementează, sub capotă, [specificația cererilor GraphQL multipart](https://github.com/jaydenseric/graphql-multipart-request-spec).
```typescript
import { MetadataApiClient } from 'twenty-sdk/metadata-api';
import * as fs from 'fs';
const client = new MetadataApiClient();
const fileBuffer = fs.readFileSync('./invoice.pdf');
const uploadedFile = await client.uploadFile(
fileBuffer, // file contents as a Buffer
'invoice.pdf', // filename
'application/pdf', // MIME type (defaults to 'application/octet-stream')
'58a0a314-d7ea-4865-9850-7fb84e72f30b', // field universal identifier
);
console.log(uploadedFile);
// { id: '...', path: '...', size: 12345, createdAt: '...', url: 'https://...' }
```
Semnătura metodei:
```typescript
uploadFile(
fileBuffer: Buffer,
filename: string,
contentType: string,
fieldMetadataUniversalIdentifier: string,
): Promise<{ id: string; path: string; size: number; createdAt: string; url: string }>
```
| Parametru | Tip | Descriere |
| ---------------------------------- | -------- | ------------------------------------------------------------------------------------------- |
| `fileBuffer` | `Buffer` | Conținutul brut al fișierului |
| `filename` | `string` | Numele fișierului (folosit pentru stocare și afișare) |
| `contentType` | `string` | Tipul MIME al fișierului (are valoarea implicită `application/octet-stream` dacă este omis) |
| `fieldMetadataUniversalIdentifier` | `string` | `universalIdentifier` al câmpului de tip fișier de pe obiectul tău |
Puncte cheie:
* Metoda trimite fișierul către **metadata endpoint** (nu către endpoint-ul principal GraphQL), unde mutația de încărcare este rezolvată.
* Folosește `universalIdentifier` al câmpului (nu ID-ul specific spațiului de lucru), astfel încât codul tău de încărcare funcționează în orice spațiu de lucru în care aplicația ta este instalată — în concordanță cu modul în care aplicațiile fac referire la câmpuri în rest.
* `url` returnat este un URL semnat pe care îl poți folosi pentru a accesa fișierul încărcat.
### Exemplu Hello World
Explorați un exemplu minim, cap la cap, care demonstrează obiecte, funcții de logică, componente Front și declanșatoare multiple [aici](https://github.com/twentyhq/twenty/tree/main/packages/twenty-apps/hello-world):
@@ -46,13 +46,13 @@ yarn twenty app:dev
Генератор каркаса поддерживает три режима для управления тем, какие примерные файлы включаются:
```bash filename="Terminal"
# Default (exhaustive): all examples (object, field, logic function, front component, view, navigation menu item, skill)
# По умолчанию (полный набор): все примеры (объект, поле, логическая функция, фронтенд-компонент, представление, пункт меню навигации, навык)
npx create-twenty-app@latest my-app
# Minimal: only core files (application-config.ts and default-role.ts)
# Минимальный: только основные файлы (application-config.ts и default-role.ts)
npx create-twenty-app@latest my-app --minimal
# Interactive: select which examples to include
# Интерактивный: выбрать, какие примеры включить
npx create-twenty-app@latest my-app --interactive
```
@@ -103,26 +103,26 @@ my-twenty-app/
eslint.config.mjs
tsconfig.json
README.md
public/ # Public assets folder (images, fonts, etc.)
public/ # Папка публичных ресурсов (изображения, шрифты и т. д.)
src/
├── application-config.ts # Required - main application configuration
├── application-config.ts # Обязательный — основная конфигурация приложения
├── roles/
│ └── default-role.ts # Default role for logic functions
│ └── default-role.ts # Роль по умолчанию для логических функций
├── objects/
│ └── example-object.ts # Example custom object definition
│ └── example-object.ts # Пример определения пользовательского объекта
├── fields/
│ └── example-field.ts # Example standalone field definition
│ └── example-field.ts # Пример определения отдельного поля
├── logic-functions/
│ ├── hello-world.ts # Example logic function
│ └── post-install.ts # Post-install logic function
│ ├── hello-world.ts # Пример логической функции
│ └── post-install.ts # Постустановочная логическая функция
├── front-components/
│ └── hello-world.tsx # Example front component
│ └── hello-world.tsx # Пример фронтенд-компонента
├── views/
│ └── example-view.ts # Example saved view definition
│ └── example-view.ts # Пример определения сохранённого представления
├── navigation-menu-items/
│ └── example-navigation-menu-item.ts # Example sidebar navigation link
│ └── example-navigation-menu-item.ts # Пример ссылки боковой панели навигации
└── skills/
└── example-skill.ts # Example AI agent skill definition
└── example-skill.ts # Пример определения навыка агента ИИ
```
С `--minimal` создаются только основные файлы (`application-config.ts`, `roles/default-role.ts` и `logic-functions/post-install.ts`). С `--interactive` вы выбираете, какие примерные файлы включить.
@@ -151,7 +151,7 @@ SDK обнаруживает сущности, разбирая ваши фай
| `defineField()` | Расширения полей для существующих объектов |
| `defineView()` | Определения сохранённых представлений |
| `defineNavigationMenuItem()` | Определения пунктов меню навигации |
| `defineSkill()` | AI agent skill definitions |
| `defineSkill()` | Определения навыков агента ИИ |
<Note>
**Имена файлов заданы гибко.** Обнаружение сущностей основано на AST — SDK сканирует ваши исходные файлы в поисках шаблона `export default define<Entity>({...})`. Вы можете организовывать файлы и папки как угодно. Группировка по типу сущности (например, `logic-functions/`, `roles/`) — это лишь соглашение для организации кода, а не требование.
@@ -173,7 +173,7 @@ export default defineObject({
Позднее команды добавят больше файлов и папок:
* `yarn twenty app:dev` автоматически сгенерирует типизированный клиент API в `node_modules/twenty-sdk/generated` (типизированный клиент Twenty + типы рабочего пространства).
* `yarn twenty entity:add` will add entity definition files under `src/` for your custom objects, functions, front components, roles, skills, and more.
* `yarn twenty entity:add` добавит файлы определений сущностей в `src/` для ваших пользовательских объектов, функций, фронтенд-компонентов, ролей, навыков и многого другого.
## Аутентификация
@@ -226,7 +226,7 @@ SDK предоставляет вспомогательные функции д
| `defineField()` | Расширение существующих объектов дополнительными полями |
| `defineView()` | Определяйте сохранённые представления для объектов |
| `defineNavigationMenuItem()` | Определяйте ссылки боковой панели навигации |
| `defineSkill()` | Define AI agent skills |
| `defineSkill()` | Определение навыков агента ИИ |
Эти функции проверяют вашу конфигурацию на этапе сборки и обеспечивают автодополнение в IDE и безопасность типов.
@@ -433,10 +433,10 @@ export default defineRole({
// src/app/createPostCard.logic-function.ts
import { defineLogicFunction } from 'twenty-sdk';
import type { DatabaseEventPayload, ObjectRecordCreateEvent, CronPayload, RoutePayload } from 'twenty-sdk';
import Twenty, { type Person } from '~/generated';
import { CoreApiClient, type Person } from 'twenty-sdk/core-api';
const handler = async (params: RoutePayload) => {
const client = new Twenty(); // generated typed client
const client = new CoreApiClient(); // generated typed client
const name = 'name' in params.queryStringParameters
? params.queryStringParameters.name ?? process.env.DEFAULT_RECIPIENT_NAME ?? 'Hello world'
: 'Hello world';
@@ -653,10 +653,10 @@ const handler = async (event: RoutePayload) => {
```typescript
// src/logic-functions/enrich-company.logic-function.ts
import { defineLogicFunction } from 'twenty-sdk';
import Twenty from '~/generated';
import { CoreApiClient } from 'twenty-sdk/core-api';
const handler = async (params: { companyName: string; domain?: string }) => {
const client = new Twenty();
const client = new CoreApiClient();
const result = await client.mutation({
createTask: {
@@ -748,7 +748,7 @@ export default defineFrontComponent({
### Навыки
Skills define reusable instructions and capabilities that AI agents can use within your workspace. Use `defineSkill()` to define skills with built-in validation:
Навыки определяют многократно используемые инструкции и возможности, которые агенты ИИ могут использовать в вашем рабочем пространстве. Используйте `defineSkill()` для определения навыков со встроенной валидацией:
```typescript
// src/skills/example-skill.ts
@@ -770,25 +770,25 @@ export default defineSkill({
Основные моменты:
* `name` is a unique identifier string for the skill (kebab-case recommended).
* `label` is the human-readable display name shown in the UI.
* `content` contains the skill instructions — this is the text the AI agent uses.
* `icon` (optional) sets the icon displayed in the UI.
* `description` (optional) provides additional context about the skill's purpose.
* `name` — уникальная строка-идентификатор навыка (рекомендуется kebab-case).
* `label` — читаемое человеком отображаемое имя, показываемое в UI.
* `content` содержит инструкции навыка — это текст, который использует агент ИИ.
* `icon` (необязательно) задаёт значок, отображаемый в UI.
* `description` (необязательно) предоставляет дополнительный контекст о назначении навыка.
You can create new skills in two ways:
Вы можете создать новые навыки двумя способами:
* **Scaffolded**: Run `yarn twenty entity:add` and choose the option to add a new skill.
* **Manual**: Create a new file and use `defineSkill()`, following the same pattern.
* **Сгенерировано**: Запустите `yarn twenty entity:add` и выберите опцию добавления нового навыка.
* **Вручную**: Создайте новый файл и используйте `defineSkill()`, следуя тому же шаблону.
### Сгенерированный типизированный клиент
Типизированный клиент автоматически генерируется с помощью `yarn twenty app:dev` и сохраняется в `node_modules/twenty-sdk/generated` на основе схемы вашего рабочего пространства. Используйте его в своих функциях:
```typescript
import Twenty from '~/generated';
import { CoreApiClient } from 'twenty-sdk/core-api';
const client = new Twenty();
const client = new CoreApiClient();
const { me } = await client.query({ me: { id: true, displayName: true } });
```
@@ -807,6 +807,53 @@ const { me } = await client.query({ me: { id: true, displayName: true } });
* Права ключа API определяются ролью, на которую ссылается ваш `application-config.ts` через `defaultRoleUniversalIdentifier`. Это роль по умолчанию, используемая логическими функциями вашего приложения.
* Приложения могут определять роли, чтобы следовать принципу наименьших привилегий. Предоставляйте только те права, которые нужны вашим функциям, затем укажите в `defaultRoleUniversalIdentifier` универсальный идентификатор этой роли.
#### Загрузка файлов
Сгенерированный клиент `MetadataApiClient` включает метод `uploadFile` для прикрепления файлов к полям типа «файл» в объектах вашего рабочего пространства. Поскольку стандартные клиенты GraphQL изначально не поддерживают многочастовую загрузку файлов, клиент предоставляет специальный метод, который под капотом реализует [спецификацию многочастных запросов GraphQL](https://github.com/jaydenseric/graphql-multipart-request-spec).
```typescript
import { MetadataApiClient } from 'twenty-sdk/metadata-api';
import * as fs from 'fs';
const client = new MetadataApiClient();
const fileBuffer = fs.readFileSync('./invoice.pdf');
const uploadedFile = await client.uploadFile(
fileBuffer, // file contents as a Buffer
'invoice.pdf', // filename
'application/pdf', // MIME type (defaults to 'application/octet-stream')
'58a0a314-d7ea-4865-9850-7fb84e72f30b', // field universal identifier
);
console.log(uploadedFile);
// { id: '...', path: '...', size: 12345, createdAt: '...', url: 'https://...' }
```
Сигнатура метода:
```typescript
uploadFile(
fileBuffer: Buffer,
filename: string,
contentType: string,
fieldMetadataUniversalIdentifier: string,
): Promise<{ id: string; path: string; size: number; createdAt: string; url: string }>
```
| Параметр | Тип | Описание |
| ---------------------------------- | -------- | ------------------------------------------------------------------------ |
| `fileBuffer` | `Buffer` | Необработанное содержимое файла |
| `filename` | `строка` | Имя файла (используется для хранения и отображения) |
| `contentType` | `строка` | Тип MIME файла (по умолчанию `application/octet-stream`, если не указан) |
| `fieldMetadataUniversalIdentifier` | `строка` | Значение `universalIdentifier` для поля типа файла в вашем объекте |
Основные моменты:
* Метод отправляет файл на **metadata endpoint** (не на основной GraphQL endpoint), где обрабатывается мутация загрузки.
* Он использует `universalIdentifier` поля (а не его идентификатор, специфичный для рабочего пространства), поэтому ваш код загрузки будет работать в любом рабочем пространстве, где установлено ваше приложение — в соответствии с тем, как приложения ссылаются на поля повсюду.
* Возвращаемый `url` — это подписанный URL, который можно использовать для доступа к загруженному файлу.
### Пример Hello World
Ознакомьтесь с минимальным сквозным примером, демонстрирующим объекты, логические функции, фронт-компоненты и несколько триггеров, [здесь](https://github.com/twentyhq/twenty/tree/main/packages/twenty-apps/hello-world):
@@ -46,13 +46,13 @@ yarn twenty app:dev
İskelet oluşturucu, hangi örnek dosyaların dahil edileceğini kontrol etmek için üç modu destekler:
```bash filename="Terminal"
# Default (exhaustive): all examples (object, field, logic function, front component, view, navigation menu item, skill)
# Varsayılan (kapsamlı): tüm örnekler (nesne, alan, mantık fonksiyonu, ön bileşen, görünüm, gezinme menüsü öğesi, yetenek)
npx create-twenty-app@latest my-app
# Minimal: only core files (application-config.ts and default-role.ts)
# Minimal: yalnızca çekirdek dosyalar (application-config.ts ve default-role.ts)
npx create-twenty-app@latest my-app --minimal
# Interactive: select which examples to include
# Etkileşimli: dahil edilecek örnekleri seçin
npx create-twenty-app@latest my-app --interactive
```
@@ -103,26 +103,26 @@ my-twenty-app/
eslint.config.mjs
tsconfig.json
README.md
public/ # Public assets folder (images, fonts, etc.)
public/ # Genel varlıklar klasörü (görseller, yazı tipleri vb.)
src/
├── application-config.ts # Required - main application configuration
├── application-config.ts # Gerekli - ana uygulama yapılandırması
├── roles/
│ └── default-role.ts # Default role for logic functions
│ └── default-role.ts # Mantık fonksiyonları için varsayılan rol
├── objects/
│ └── example-object.ts # Example custom object definition
│ └── example-object.ts # Örnek özel nesne tanımı
├── fields/
│ └── example-field.ts # Example standalone field definition
│ └── example-field.ts # Örnek bağımsız alan tanımı
├── logic-functions/
│ ├── hello-world.ts # Example logic function
│ └── post-install.ts # Post-install logic function
│ ├── hello-world.ts # Örnek mantık fonksiyonu
│ └── post-install.ts # Kurulum sonrası mantık fonksiyonu
├── front-components/
│ └── hello-world.tsx # Example front component
│ └── hello-world.tsx # Örnek ön bileşen
├── views/
│ └── example-view.ts # Example saved view definition
│ └── example-view.ts # Örnek kaydedilmiş görünüm tanımı
├── navigation-menu-items/
│ └── example-navigation-menu-item.ts # Example sidebar navigation link
│ └── example-navigation-menu-item.ts # Örnek kenar çubuğu gezinme bağlantısı
└── skills/
└── example-skill.ts # Example AI agent skill definition
└── example-skill.ts # Örnek yapay zekâ ajanı yetenek tanımı
```
`--minimal` ile yalnızca çekirdek dosyalar oluşturulur (`application-config.ts`, `roles/default-role.ts` ve `logic-functions/post-install.ts`). `--interactive` ile hangi örnek dosyaların dahil edileceğini siz seçersiniz.
@@ -151,7 +151,7 @@ SDK, TypeScript dosyalarınızı **`export default define<Entity>({...})`** ça
| `defineField()` | Mevcut nesneler için alan genişletmeleri |
| `defineView()` | Kaydedilmiş görünüm tanımları |
| `defineNavigationMenuItem()` | Gezinme menüsü öğesi tanımları |
| `defineSkill()` | AI agent skill definitions |
| `defineSkill()` | Yapay zekâ ajanı yetenek tanımları |
<Note>
**Dosya adlandırma esnektir.** Varlık algılama AST tabanlıdır — SDK, kaynak dosyalarınızı `export default define<Entity>({...})` desenini bulmak için tarar. Dosyalarınızı ve klasörlerinizi dilediğiniz gibi düzenleyebilirsiniz. Varlık türüne göre gruplama (örn. `logic-functions/`, `roles/`) bir gereklilik değil, yalnızca kod organizasyonu için bir gelenektir.
@@ -173,7 +173,7 @@ export default defineObject({
İlerideki komutlar daha fazla dosya ve klasör ekleyecektir:
* `yarn twenty app:dev`, `node_modules/twenty-sdk/generated` içinde tipli bir API istemcisini otomatik olarak oluşturur (tipli Twenty istemcisi + çalışma alanı türleri).
* `yarn twenty entity:add` will add entity definition files under `src/` for your custom objects, functions, front components, roles, skills, and more.
* `yarn twenty entity:add`, özel nesneleriniz, fonksiyonlarınız, ön bileşenleriniz, rolleriniz, yetenekleriniz ve daha fazlası için `src/` altında varlık tanım dosyaları ekler.
## Kimlik Doğrulama
@@ -226,7 +226,7 @@ SDK, uygulama varlıklarınızı tanımlamak için yardımcı fonksiyonlar sağl
| `defineField()` | Mevcut nesneleri ek alanlarla genişletin |
| `defineView()` | Nesneler için kaydedilmiş görünümler tanımlayın |
| `defineNavigationMenuItem()` | Kenar çubuğu gezinme bağlantılarını tanımlayın |
| `defineSkill()` | Define AI agent skills |
| `defineSkill()` | Yapay zekâ ajanı yeteneklerini tanımlayın |
Bu fonksiyonlar, derleme zamanında yapılandırmanızı doğrular ve IDE otomatik tamamlama ile tür güvenliği sağlar.
@@ -433,10 +433,10 @@ Her fonksiyon dosyası, bir işleyici ve isteğe bağlı tetikleyiciler içeren
// src/app/createPostCard.logic-function.ts
import { defineLogicFunction } from 'twenty-sdk';
import type { DatabaseEventPayload, ObjectRecordCreateEvent, CronPayload, RoutePayload } from 'twenty-sdk';
import Twenty, { type Person } from '~/generated';
import { CoreApiClient, type Person } from 'twenty-sdk/core-api';
const handler = async (params: RoutePayload) => {
const client = new Twenty(); // generated typed client
const client = new CoreApiClient(); // generated typed client
const name = 'name' in params.queryStringParameters
? params.queryStringParameters.name ?? process.env.DEFAULT_RECIPIENT_NAME ?? 'Hello world'
: 'Hello world';
@@ -653,10 +653,10 @@ Bir mantık işlevini bir araç olarak işaretlemek için `isTool: true` olarak
```typescript
// src/logic-functions/enrich-company.logic-function.ts
import { defineLogicFunction } from 'twenty-sdk';
import Twenty from '~/generated';
import { CoreApiClient } from 'twenty-sdk/core-api';
const handler = async (params: { companyName: string; domain?: string }) => {
const client = new Twenty();
const client = new CoreApiClient();
const result = await client.mutation({
createTask: {
@@ -748,7 +748,7 @@ Yeni ön uç bileşenlerini iki şekilde oluşturabilirsiniz:
### Beceriler
Skills define reusable instructions and capabilities that AI agents can use within your workspace. Use `defineSkill()` to define skills with built-in validation:
Yetenekler, yapay zekâ ajanlarının çalışma alanınızda kullanabileceği yeniden kullanılabilir yönergeleri ve kabiliyetleri tanımlar. Yerleşik doğrulamayla yetenekleri tanımlamak için `defineSkill()` kullanın:
```typescript
// src/skills/example-skill.ts
@@ -770,25 +770,25 @@ export default defineSkill({
Önemli noktalar:
* `name` is a unique identifier string for the skill (kebab-case recommended).
* `label` is the human-readable display name shown in the UI.
* `content` contains the skill instructions — this is the text the AI agent uses.
* `icon` (optional) sets the icon displayed in the UI.
* `description` (optional) provides additional context about the skill's purpose.
* `name`, yetenek için benzersiz bir tanımlayıcı dizedir (kebab-case önerilir).
* `label`, UI'de gösterilen, insan tarafından okunabilir addır.
* `content`, yetenek yönergelerini içerir — bu, yapay zekâ ajanının kullandığı metindir.
* `icon` (isteğe bağlı), UI'de gösterilen simgeyi ayarlar.
* `description` (isteğe bağlı), yeteneğin amacı hakkında ek bağlam sağlar.
You can create new skills in two ways:
Yeni yetenekleri iki şekilde oluşturabilirsiniz:
* **Scaffolded**: Run `yarn twenty entity:add` and choose the option to add a new skill.
* **Manual**: Create a new file and use `defineSkill()`, following the same pattern.
* **Şablondan**: `yarn twenty entity:add` komutunu çalıştırın ve yeni bir yetenek ekleme seçeneğini seçin.
* **Manuel**: Yeni bir dosya oluşturun ve aynı deseni izleyerek `defineSkill()` kullanın.
### Oluşturulmuş türlendirilmiş istemci
Tipli istemci, `yarn twenty app:dev` tarafından otomatik olarak oluşturulur ve çalışma alanı şemanıza göre `node_modules/twenty-sdk/generated` içine kaydedilir. Fonksiyonlarınızda kullanın:
```typescript
import Twenty from '~/generated';
import { CoreApiClient } from 'twenty-sdk/core-api';
const client = new Twenty();
const client = new CoreApiClient();
const { me } = await client.query({ me: { id: true, displayName: true } });
```
@@ -807,6 +807,53 @@ Notlar:
* API anahtarının izinleri, `application-config.ts` içinde `defaultRoleUniversalIdentifier` aracılığıyla referans verilen role göre belirlenir. Bu, uygulamanızın mantık fonksiyonları tarafından kullanılan varsayılan roldür.
* Uygulamalar, en az ayrıcalık ilkesini izlemek için roller tanımlayabilir. Yalnızca fonksiyonlarınızın ihtiyaç duyduğu izinleri verin ve ardından `defaultRoleUniversalIdentifier` değerini o rolün evrensel tanımlayıcısına yönlendirin.
#### Dosya yükleme
Oluşturulan `MetadataApiClient` istemcisi, çalışma alanı nesnelerinizdeki dosya türündeki alanlara dosya eklemek için bir `uploadFile` yöntemi içerir. Standart GraphQL istemcileri çok parçalı dosya yüklemelerini yerel olarak desteklemediğinden, istemci arka planda [GraphQL çok parçalı istek belirtimi](https://github.com/jaydenseric/graphql-multipart-request-spec) uygulayan bu özel yöntemi sağlar.
```typescript
import { MetadataApiClient } from 'twenty-sdk/metadata-api';
import * as fs from 'fs';
const client = new MetadataApiClient();
const fileBuffer = fs.readFileSync('./invoice.pdf');
const uploadedFile = await client.uploadFile(
fileBuffer, // file contents as a Buffer
'invoice.pdf', // filename
'application/pdf', // MIME type (defaults to 'application/octet-stream')
'58a0a314-d7ea-4865-9850-7fb84e72f30b', // field universal identifier
);
console.log(uploadedFile);
// { id: '...', path: '...', size: 12345, createdAt: '...', url: 'https://...' }
```
Yöntem imzası:
```typescript
uploadFile(
fileBuffer: Buffer,
filename: string,
contentType: string,
fieldMetadataUniversalIdentifier: string,
): Promise<{ id: string; path: string; size: number; createdAt: string; url: string }>
```
| Parametre | Tür | Açıklama |
| ---------------------------------- | -------- | ------------------------------------------------------------------------------------------ |
| `fileBuffer` | `Buffer` | Dosyanın ham içeriği |
| `filename` | `string` | Dosyanın adı (depolama ve görüntüleme için kullanılır) |
| `contentType` | `string` | Dosyanın MIME türü (belirtilmezse varsayılan olarak `application/octet-stream` kullanılır) |
| `fieldMetadataUniversalIdentifier` | `string` | Nesnenizdeki dosya türü alanının `universalIdentifier` değeri |
Önemli noktalar:
* Yöntem dosyayı, yükleme mutasyonunun çözümlendiği **metadata endpoint**'e (ana GraphQL endpoint'ine değil) gönderir.
* Alan için `universalIdentifier` kullanılır (çalışma alanına özgü kimliği değil), böylece yükleme kodunuz uygulamanızın yüklü olduğu herhangi bir çalışma alanında çalışır — uygulamaların başka her yerde alanlara nasıl atıfta bulunduğuyla tutarlıdır.
* Döndürülen `url`, yüklenen dosyaya erişmek için kullanabileceğiniz imzalı bir URL'dir.
### Hello World örneği
Nesneleri, mantık fonksiyonlarını, ön uç bileşenlerini ve birden çok tetikleyiciyi gösteren minimal, uçtan uca bir örneği [buradan](https://github.com/twentyhq/twenty/tree/main/packages/twenty-apps/hello-world) inceleyin:
@@ -46,13 +46,13 @@ yarn twenty app:dev
The scaffolder supports three modes for controlling which example files are included:
```bash filename="Terminal"
# Default (exhaustive): all examples (object, field, logic function, front component, view, navigation menu item, skill)
# 默认(完整):所有示例(对象、字段、逻辑函数、前端组件、视图、导航菜单项、技能)
npx create-twenty-app@latest my-app
# Minimal: only core files (application-config.ts and default-role.ts)
# 最小化:仅核心文件(application-config.ts default-role.ts
npx create-twenty-app@latest my-app --minimal
# Interactive: select which examples to include
# 交互式:选择要包含的示例
npx create-twenty-app@latest my-app --interactive
```
@@ -433,10 +433,10 @@ export default defineRole({
// src/app/createPostCard.logic-function.ts
import { defineLogicFunction } from 'twenty-sdk';
import type { DatabaseEventPayload, ObjectRecordCreateEvent, CronPayload, RoutePayload } from 'twenty-sdk';
import Twenty, { type Person } from '~/generated';
import { CoreApiClient, type Person } from 'twenty-sdk/core-api';
const handler = async (params: RoutePayload) => {
const client = new Twenty(); // generated typed client
const client = new CoreApiClient(); // generated typed client
const name = 'name' in params.queryStringParameters
? params.queryStringParameters.name ?? process.env.DEFAULT_RECIPIENT_NAME ?? 'Hello world'
: 'Hello world';
@@ -653,10 +653,10 @@ const handler = async (event: RoutePayload) => {
```typescript
// src/logic-functions/enrich-company.logic-function.ts
import { defineLogicFunction } from 'twenty-sdk';
import Twenty from '~/generated';
import { CoreApiClient } from 'twenty-sdk/core-api';
const handler = async (params: { companyName: string; domain?: string }) => {
const client = new Twenty();
const client = new CoreApiClient();
const result = await client.mutation({
createTask: {
@@ -786,9 +786,9 @@ You can create new skills in two ways:
类型化客户端由 `yarn twenty app:dev` 自动生成,并基于你的工作区架构存放在 `node_modules/twenty-sdk/generated`。 在你的函数中使用它:
```typescript
import Twenty from '~/generated';
import { CoreApiClient } from 'twenty-sdk/core-api';
const client = new Twenty();
const client = new CoreApiClient();
const { me } = await client.query({ me: { id: true, displayName: true } });
```
@@ -807,6 +807,53 @@ const { me } = await client.query({ me: { id: true, displayName: true } });
* API 密钥的权限由 `application-config.ts` 中通过 `defaultRoleUniversalIdentifier` 引用的角色决定。 这是你的应用逻辑函数使用的默认角色。
* 应用可以定义角色以遵循最小权限原则。 仅授予函数所需的权限,然后将 `defaultRoleUniversalIdentifier` 指向该角色的通用标识符。
#### 上传文件
生成的 `MetadataApiClient` 包含一个 `uploadFile` 方法,用于将文件附加到工作区对象的文件类型字段。 由于标准 GraphQL 客户端不原生支持多部分文件上传,该客户端提供了一个专用方法,在底层实现了 [GraphQL 多部分请求规范](https://github.com/jaydenseric/graphql-multipart-request-spec)。
```typescript
import { MetadataApiClient } from 'twenty-sdk/metadata-api';
import * as fs from 'fs';
const client = new MetadataApiClient();
const fileBuffer = fs.readFileSync('./invoice.pdf');
const uploadedFile = await client.uploadFile(
fileBuffer, // file contents as a Buffer
'invoice.pdf', // filename
'application/pdf', // MIME type (defaults to 'application/octet-stream')
'58a0a314-d7ea-4865-9850-7fb84e72f30b', // field universal identifier
);
console.log(uploadedFile);
// { id: '...', path: '...', size: 12345, createdAt: '...', url: 'https://...' }
```
方法签名:
```typescript
uploadFile(
fileBuffer: Buffer,
filename: string,
contentType: string,
fieldMetadataUniversalIdentifier: string,
): Promise<{ id: string; path: string; size: number; createdAt: string; url: string }>
```
| 参数 | 类型 | 描述 |
| ---------------------------------- | -------- | ------------------------------------------------ |
| `fileBuffer` | `Buffer` | 原始文件内容 |
| `filename` | `string` | 文件名称(用于存储和显示) |
| `contentType` | `string` | 文件的 MIME 类型(如果省略,默认为 `application/octet-stream` |
| `fieldMetadataUniversalIdentifier` | `string` | 你的对象上文件类型字段的 `universalIdentifier` |
关键点:
* 该方法将文件发送到**元数据端点**(而不是主 GraphQL 端点),在那里处理上传变更操作。
* 它使用该字段的 `universalIdentifier`(而不是其工作区特定的 ID),因此你的上传代码可以在安装了你的应用的任何工作区中使用——这与应用在其他地方引用字段的方式保持一致。
* 返回的 `url` 是一个签名 URL,你可以用它来访问已上传的文件。
### Hello World 示例
在[此处](https://github.com/twentyhq/twenty/tree/main/packages/twenty-apps/hello-world)查看一个最小的端到端示例,展示对象、逻辑函数、前端组件和多种触发器:
+1 -1
View File
@@ -63,7 +63,7 @@ const jestConfig = {
global: {
statements: 49.5,
lines: 48,
functions: 40,
functions: 39.5,
},
},
collectCoverageFrom: ['<rootDir>/src/**/*.ts'],
File diff suppressed because one or more lines are too long
@@ -3,7 +3,7 @@ import { useDefaultHomePagePath } from '@/navigation/hooks/useDefaultHomePagePat
import { useOnboardingStatus } from '@/onboarding/hooks/useOnboardingStatus';
import { useIsWorkspaceActivationStatusEqualsTo } from '@/workspace/hooks/useIsWorkspaceActivationStatusEqualsTo';
import { useParams } from 'react-router-dom';
import { useRecoilValue } from 'recoil';
import { useRecoilValueV2 } from '@/ui/utilities/state/jotai/hooks/useRecoilValueV2';
import { AppPath, SettingsPath } from 'twenty-shared/types';
import { getSettingsPath } from 'twenty-shared/utils';
@@ -63,14 +63,14 @@ const setupMockUseParams = (objectNamePlural?: string) => {
.mockReturnValueOnce({ objectNamePlural: objectNamePlural ?? '' });
};
jest.mock('recoil');
jest.mock('@/ui/utilities/state/jotai/hooks/useRecoilValueV2');
const setupMockRecoil = (
objectNamePlural?: string,
verifyEmailRedirectPath?: string,
calendarBookingPageId?: string | null,
) => {
jest
.mocked(useRecoilValue)
.mocked(useRecoilValueV2)
.mockReturnValueOnce(calendarBookingPageId ?? 'mock-calendar-id')
.mockReturnValueOnce([{ namePlural: objectNamePlural ?? '' }])
.mockReturnValueOnce(verifyEmailRedirectPath);
@@ -5,9 +5,9 @@ import { useIsCurrentLocationOnAWorkspace } from '@/domain-manager/hooks/useIsCu
import { useDefaultHomePagePath } from '@/navigation/hooks/useDefaultHomePagePath';
import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadataItemsState';
import { useOnboardingStatus } from '@/onboarding/hooks/useOnboardingStatus';
import { useRecoilValueV2 } from '@/ui/utilities/state/jotai/hooks/useRecoilValueV2';
import { useIsWorkspaceActivationStatusEqualsTo } from '@/workspace/hooks/useIsWorkspaceActivationStatusEqualsTo';
import { useLocation, useParams } from 'react-router-dom';
import { useRecoilValue } from 'recoil';
import { AppPath, SettingsPath } from 'twenty-shared/types';
import { isDefined } from 'twenty-shared/utils';
import { WorkspaceActivationStatus } from 'twenty-shared/workspace';
@@ -23,7 +23,7 @@ export const usePageChangeEffectNavigateLocation = () => {
);
const { defaultHomePagePath } = useDefaultHomePagePath();
const location = useLocation();
const calendarBookingPageId = useRecoilValue(calendarBookingPageIdState);
const calendarBookingPageId = useRecoilValueV2(calendarBookingPageIdState);
const someMatchingLocationOf = (appPaths: AppPath[]): boolean =>
appPaths.some((appPath) => isMatchingLocation(location, appPath));
@@ -45,11 +45,13 @@ export const usePageChangeEffectNavigateLocation = () => {
];
const objectNamePlural = useParams().objectNamePlural ?? '';
const objectMetadataItems = useRecoilValue(objectMetadataItemsState);
const objectMetadataItems = useRecoilValueV2(objectMetadataItemsState);
const objectMetadataItem = objectMetadataItems?.find(
(objectMetadataItem) => objectMetadataItem.namePlural === objectNamePlural,
);
const verifyEmailRedirectPath = useRecoilValue(verifyEmailRedirectPathState);
const verifyEmailRedirectPath = useRecoilValueV2(
verifyEmailRedirectPathState,
);
if (
(!isLoggedIn || (isLoggedIn && !isOnAWorkspace)) &&
+30 -50
View File
@@ -1150,11 +1150,6 @@ msgstr "Gevorderde funksie om die werkverrigting van navrae te verbeter en uniek
msgid "Advanced filter"
msgstr "Gevorderde filter"
#. js-lingui-id: luNzWN
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Advanced model for complex planning"
msgstr ""
#. js-lingui-id: miuPUc
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartDataSourceDropdownContent.tsx
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartDataSourceDropdownContent.tsx
@@ -1268,11 +1263,6 @@ msgstr "KI"
msgid "AI Model"
msgstr "KI Model"
#. js-lingui-id: tGx4Zn
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "AI Models"
msgstr ""
#. js-lingui-id: Sfwld8
#: src/modules/ai/components/AIChatApiKeyNotConfiguredMessage.tsx
msgid "AI not configured. Set OPENAI_API_KEY, ANTHROPIC_API_KEY, or XAI_API_KEY in your environment."
@@ -2891,11 +2881,6 @@ msgstr "Konfigurasie"
msgid "Configure"
msgstr ""
#. js-lingui-id: 9px+al
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Configure AI models for routing and planning"
msgstr ""
#. js-lingui-id: +zUMwJ
#: src/pages/settings/security/SettingsSecurity.tsx
msgid "Configure an SSO connection"
@@ -2961,6 +2946,11 @@ msgstr "Konfigureer hierdie widget om velde te vertoon"
msgid "Configure when this function should be executed"
msgstr ""
#. js-lingui-id: hzDiM0
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Configure your default AI model"
msgstr ""
#. js-lingui-id: Bh4GBD
#: src/modules/settings/accounts/components/SettingsAccountsSettingsSection.tsx
msgid "Configure your emails and calendar settings."
@@ -3949,6 +3939,7 @@ msgid "Decide which Sub-address fields you want to display"
msgstr "Besluit watter Subadresvelde jy wil vertoon"
#. js-lingui-id: ovBPCi
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
#: src/modules/settings/data-model/fields/forms/date/utils/getDisplayFormatLabel.ts
#: src/modules/settings/data-model/fields/forms/address/components/MultiSelectAddressFields.tsx
msgid "Default"
@@ -3964,6 +3955,21 @@ msgstr "Verstekland"
msgid "Default Country Code"
msgstr "Verstek landkode"
#. js-lingui-id: J6v1s/
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default Model"
msgstr ""
#. js-lingui-id: n4U+0E
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default model for new chats and agents"
msgstr ""
#. js-lingui-id: K/FKkg
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default model updated successfully"
msgstr ""
#. js-lingui-id: 4HDpKr
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartColorPaletteOption.tsx
msgid "Default palette"
@@ -5812,9 +5818,9 @@ msgstr ""
msgid "Failed to save workspace instructions"
msgstr ""
#. js-lingui-id: YMSYb+
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Failed to update fast model"
#. js-lingui-id: 2D6TRg
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Failed to update default model"
msgstr ""
#. js-lingui-id: P1NmNz
@@ -5837,11 +5843,6 @@ msgstr ""
msgid "Failed to update role"
msgstr "Kon nie rol opdateer nie"
#. js-lingui-id: h/0aT5
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Failed to update smart model"
msgstr ""
#. js-lingui-id: Dzh4a2
#: src/modules/settings/admin-panel/config-variables/hooks/useConfigVariableActions.ts
msgid "Failed to update variable"
@@ -5889,16 +5890,6 @@ msgstr "Mislukkingskoers"
msgid "False"
msgstr "Vals"
#. js-lingui-id: XVIZ7v
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Fast Model"
msgstr ""
#. js-lingui-id: UJHTjm
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Fast model updated successfully"
msgstr ""
#. js-lingui-id: X9kySA
#: src/modules/navigation-menu-item/components/CurrentWorkspaceMemberNavigationMenuItemFolders.tsx
#: src/modules/favorites/components/CurrentWorkspaceMemberFavoritesFolders.tsx
@@ -8183,6 +8174,11 @@ msgstr ""
msgid "Mission accomplished!"
msgstr "Missie voltooi!"
#. js-lingui-id: //nm2/
#: src/pages/settings/ai/SettingsAI.tsx
msgid "Models"
msgstr ""
#. js-lingui-id: hty0d5
#: src/pages/settings/profile/appearance/components/DateTimeSettingsCalendarStartDaySelect.tsx
msgid "Monday"
@@ -8228,6 +8224,7 @@ msgid "months"
msgstr ""
#. js-lingui-id: 2FYpfJ
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
msgid "More"
msgstr "Meer"
@@ -8930,7 +8927,6 @@ msgstr "Geen maatstawedata beskikbaar"
#. js-lingui-id: UWZZdQ
#: src/pages/settings/ai/forms/components/SettingsAIAgentForm.tsx
#: src/pages/settings/ai/components/SettingsAgentSettingsTab.tsx
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "No models available. Please configure AI models in your workspace settings."
msgstr "Geen modelle beskikbaar nie. Stel asseblief KI-modelle in jou werkruimte-instellings op."
@@ -10256,11 +10252,6 @@ msgstr "Wagryprestasie"
msgid "Queue: {queueName}"
msgstr "Wagry: {queueName}"
#. js-lingui-id: GaAG2G
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Quick model for routing decisions"
msgstr ""
#. js-lingui-id: opSifa
#: src/modules/ai/utils/getToolDisplayMessage.ts
msgid "Ran {formattedName}"
@@ -11653,7 +11644,6 @@ msgstr "Instelling van jou databasis..."
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/ai/SettingsAgentForm.tsx
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/sign-in-background-mock/components/SignInAppNavigationDrawerMock.tsx
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsSection.tsx
#: src/modules/settings/roles/role/components/SettingsRole.tsx
@@ -11871,16 +11861,6 @@ msgstr "Hemelblou"
msgid "Small section heading"
msgstr ""
#. js-lingui-id: 5J8ZFl
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Smart Model"
msgstr ""
#. js-lingui-id: qgvZ/2
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Smart model updated successfully"
msgstr ""
#. js-lingui-id: w+rJId
#: src/modules/settings/accounts/components/SettingsAccountsConnectionForm.tsx
msgid "SMTP Configuration"
+30 -50
View File
@@ -1150,11 +1150,6 @@ msgstr "ميزة متقدمة لتحسين أداء الاستعلامات وف
msgid "Advanced filter"
msgstr "الفلتر المتقدم"
#. js-lingui-id: luNzWN
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Advanced model for complex planning"
msgstr ""
#. js-lingui-id: miuPUc
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartDataSourceDropdownContent.tsx
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartDataSourceDropdownContent.tsx
@@ -1268,11 +1263,6 @@ msgstr "الذكاء الاصطناعي"
msgid "AI Model"
msgstr "نموذج الذكاء الاصطناعي"
#. js-lingui-id: tGx4Zn
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "AI Models"
msgstr ""
#. js-lingui-id: Sfwld8
#: src/modules/ai/components/AIChatApiKeyNotConfiguredMessage.tsx
msgid "AI not configured. Set OPENAI_API_KEY, ANTHROPIC_API_KEY, or XAI_API_KEY in your environment."
@@ -2891,11 +2881,6 @@ msgstr "التكوين"
msgid "Configure"
msgstr ""
#. js-lingui-id: 9px+al
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Configure AI models for routing and planning"
msgstr ""
#. js-lingui-id: +zUMwJ
#: src/pages/settings/security/SettingsSecurity.tsx
msgid "Configure an SSO connection"
@@ -2961,6 +2946,11 @@ msgstr "قم بتهيئة هذه الأداة لعرض الحقول"
msgid "Configure when this function should be executed"
msgstr ""
#. js-lingui-id: hzDiM0
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Configure your default AI model"
msgstr ""
#. js-lingui-id: Bh4GBD
#: src/modules/settings/accounts/components/SettingsAccountsSettingsSection.tsx
msgid "Configure your emails and calendar settings."
@@ -3949,6 +3939,7 @@ msgid "Decide which Sub-address fields you want to display"
msgstr "قرر أي حقول العناوين الفرعية تريد عرضها"
#. js-lingui-id: ovBPCi
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
#: src/modules/settings/data-model/fields/forms/date/utils/getDisplayFormatLabel.ts
#: src/modules/settings/data-model/fields/forms/address/components/MultiSelectAddressFields.tsx
msgid "Default"
@@ -3964,6 +3955,21 @@ msgstr "البلد الافتراضي"
msgid "Default Country Code"
msgstr "رمز البلد الافتراضي"
#. js-lingui-id: J6v1s/
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default Model"
msgstr ""
#. js-lingui-id: n4U+0E
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default model for new chats and agents"
msgstr ""
#. js-lingui-id: K/FKkg
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default model updated successfully"
msgstr ""
#. js-lingui-id: 4HDpKr
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartColorPaletteOption.tsx
msgid "Default palette"
@@ -5812,9 +5818,9 @@ msgstr ""
msgid "Failed to save workspace instructions"
msgstr ""
#. js-lingui-id: YMSYb+
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Failed to update fast model"
#. js-lingui-id: 2D6TRg
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Failed to update default model"
msgstr ""
#. js-lingui-id: P1NmNz
@@ -5837,11 +5843,6 @@ msgstr ""
msgid "Failed to update role"
msgstr "فشل في تحديث الدور"
#. js-lingui-id: h/0aT5
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Failed to update smart model"
msgstr ""
#. js-lingui-id: Dzh4a2
#: src/modules/settings/admin-panel/config-variables/hooks/useConfigVariableActions.ts
msgid "Failed to update variable"
@@ -5889,16 +5890,6 @@ msgstr "معدل الفشل"
msgid "False"
msgstr "خاطئ"
#. js-lingui-id: XVIZ7v
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Fast Model"
msgstr ""
#. js-lingui-id: UJHTjm
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Fast model updated successfully"
msgstr ""
#. js-lingui-id: X9kySA
#: src/modules/navigation-menu-item/components/CurrentWorkspaceMemberNavigationMenuItemFolders.tsx
#: src/modules/favorites/components/CurrentWorkspaceMemberFavoritesFolders.tsx
@@ -8183,6 +8174,11 @@ msgstr ""
msgid "Mission accomplished!"
msgstr "تم إنجاز المهمة!"
#. js-lingui-id: //nm2/
#: src/pages/settings/ai/SettingsAI.tsx
msgid "Models"
msgstr ""
#. js-lingui-id: hty0d5
#: src/pages/settings/profile/appearance/components/DateTimeSettingsCalendarStartDaySelect.tsx
msgid "Monday"
@@ -8228,6 +8224,7 @@ msgid "months"
msgstr ""
#. js-lingui-id: 2FYpfJ
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
msgid "More"
msgstr "المزيد"
@@ -8930,7 +8927,6 @@ msgstr "لا توجد بيانات قياسات متاحة"
#. js-lingui-id: UWZZdQ
#: src/pages/settings/ai/forms/components/SettingsAIAgentForm.tsx
#: src/pages/settings/ai/components/SettingsAgentSettingsTab.tsx
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "No models available. Please configure AI models in your workspace settings."
msgstr "لا توجد نماذج متاحة. يرجى تهيئة نماذج الذكاء الاصطناعي في إعدادات مكان العمل الخاص بك."
@@ -10256,11 +10252,6 @@ msgstr "أداء الطابور"
msgid "Queue: {queueName}"
msgstr "الطابور: {queueName}"
#. js-lingui-id: GaAG2G
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Quick model for routing decisions"
msgstr ""
#. js-lingui-id: opSifa
#: src/modules/ai/utils/getToolDisplayMessage.ts
msgid "Ran {formattedName}"
@@ -11653,7 +11644,6 @@ msgstr "إعداد قاعدة البيانات الخاصة بك..."
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/ai/SettingsAgentForm.tsx
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/sign-in-background-mock/components/SignInAppNavigationDrawerMock.tsx
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsSection.tsx
#: src/modules/settings/roles/role/components/SettingsRole.tsx
@@ -11871,16 +11861,6 @@ msgstr "سمائي"
msgid "Small section heading"
msgstr ""
#. js-lingui-id: 5J8ZFl
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Smart Model"
msgstr ""
#. js-lingui-id: qgvZ/2
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Smart model updated successfully"
msgstr ""
#. js-lingui-id: w+rJId
#: src/modules/settings/accounts/components/SettingsAccountsConnectionForm.tsx
msgid "SMTP Configuration"
+30 -50
View File
@@ -1150,11 +1150,6 @@ msgstr "Funció avançada per millorar el rendiment de les consultes i fer compl
msgid "Advanced filter"
msgstr "Filtre avançat"
#. js-lingui-id: luNzWN
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Advanced model for complex planning"
msgstr ""
#. js-lingui-id: miuPUc
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartDataSourceDropdownContent.tsx
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartDataSourceDropdownContent.tsx
@@ -1268,11 +1263,6 @@ msgstr "IA"
msgid "AI Model"
msgstr "Model IA"
#. js-lingui-id: tGx4Zn
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "AI Models"
msgstr ""
#. js-lingui-id: Sfwld8
#: src/modules/ai/components/AIChatApiKeyNotConfiguredMessage.tsx
msgid "AI not configured. Set OPENAI_API_KEY, ANTHROPIC_API_KEY, or XAI_API_KEY in your environment."
@@ -2891,11 +2881,6 @@ msgstr "Configuració"
msgid "Configure"
msgstr ""
#. js-lingui-id: 9px+al
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Configure AI models for routing and planning"
msgstr ""
#. js-lingui-id: +zUMwJ
#: src/pages/settings/security/SettingsSecurity.tsx
msgid "Configure an SSO connection"
@@ -2961,6 +2946,11 @@ msgstr "Configura aquest giny per mostrar camps"
msgid "Configure when this function should be executed"
msgstr ""
#. js-lingui-id: hzDiM0
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Configure your default AI model"
msgstr ""
#. js-lingui-id: Bh4GBD
#: src/modules/settings/accounts/components/SettingsAccountsSettingsSection.tsx
msgid "Configure your emails and calendar settings."
@@ -3949,6 +3939,7 @@ msgid "Decide which Sub-address fields you want to display"
msgstr "Decideix quins camps de Sub-adreça vols mostrar"
#. js-lingui-id: ovBPCi
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
#: src/modules/settings/data-model/fields/forms/date/utils/getDisplayFormatLabel.ts
#: src/modules/settings/data-model/fields/forms/address/components/MultiSelectAddressFields.tsx
msgid "Default"
@@ -3964,6 +3955,21 @@ msgstr "País predeterminat"
msgid "Default Country Code"
msgstr "Codi de país predeterminat"
#. js-lingui-id: J6v1s/
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default Model"
msgstr ""
#. js-lingui-id: n4U+0E
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default model for new chats and agents"
msgstr ""
#. js-lingui-id: K/FKkg
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default model updated successfully"
msgstr ""
#. js-lingui-id: 4HDpKr
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartColorPaletteOption.tsx
msgid "Default palette"
@@ -5812,9 +5818,9 @@ msgstr ""
msgid "Failed to save workspace instructions"
msgstr ""
#. js-lingui-id: YMSYb+
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Failed to update fast model"
#. js-lingui-id: 2D6TRg
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Failed to update default model"
msgstr ""
#. js-lingui-id: P1NmNz
@@ -5837,11 +5843,6 @@ msgstr ""
msgid "Failed to update role"
msgstr "Ha fallat l'actualització del rol"
#. js-lingui-id: h/0aT5
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Failed to update smart model"
msgstr ""
#. js-lingui-id: Dzh4a2
#: src/modules/settings/admin-panel/config-variables/hooks/useConfigVariableActions.ts
msgid "Failed to update variable"
@@ -5889,16 +5890,6 @@ msgstr "Taxa de fallades"
msgid "False"
msgstr "Fals"
#. js-lingui-id: XVIZ7v
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Fast Model"
msgstr ""
#. js-lingui-id: UJHTjm
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Fast model updated successfully"
msgstr ""
#. js-lingui-id: X9kySA
#: src/modules/navigation-menu-item/components/CurrentWorkspaceMemberNavigationMenuItemFolders.tsx
#: src/modules/favorites/components/CurrentWorkspaceMemberFavoritesFolders.tsx
@@ -8183,6 +8174,11 @@ msgstr ""
msgid "Mission accomplished!"
msgstr "Missió acomplerta!"
#. js-lingui-id: //nm2/
#: src/pages/settings/ai/SettingsAI.tsx
msgid "Models"
msgstr ""
#. js-lingui-id: hty0d5
#: src/pages/settings/profile/appearance/components/DateTimeSettingsCalendarStartDaySelect.tsx
msgid "Monday"
@@ -8228,6 +8224,7 @@ msgid "months"
msgstr ""
#. js-lingui-id: 2FYpfJ
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
msgid "More"
msgstr "Més"
@@ -8930,7 +8927,6 @@ msgstr "No hi ha dades de mètriques disponibles"
#. js-lingui-id: UWZZdQ
#: src/pages/settings/ai/forms/components/SettingsAIAgentForm.tsx
#: src/pages/settings/ai/components/SettingsAgentSettingsTab.tsx
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "No models available. Please configure AI models in your workspace settings."
msgstr "No hi ha models disponibles. Si us plau, configureu models d'IA a la configuració del vostre espai de treball."
@@ -10256,11 +10252,6 @@ msgstr "Rendiment de la cua"
msgid "Queue: {queueName}"
msgstr "Cua: {queueName}"
#. js-lingui-id: GaAG2G
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Quick model for routing decisions"
msgstr ""
#. js-lingui-id: opSifa
#: src/modules/ai/utils/getToolDisplayMessage.ts
msgid "Ran {formattedName}"
@@ -11653,7 +11644,6 @@ msgstr "Configurant la teva base de dades..."
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/ai/SettingsAgentForm.tsx
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/sign-in-background-mock/components/SignInAppNavigationDrawerMock.tsx
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsSection.tsx
#: src/modules/settings/roles/role/components/SettingsRole.tsx
@@ -11871,16 +11861,6 @@ msgstr "Cel"
msgid "Small section heading"
msgstr ""
#. js-lingui-id: 5J8ZFl
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Smart Model"
msgstr ""
#. js-lingui-id: qgvZ/2
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Smart model updated successfully"
msgstr ""
#. js-lingui-id: w+rJId
#: src/modules/settings/accounts/components/SettingsAccountsConnectionForm.tsx
msgid "SMTP Configuration"
+30 -50
View File
@@ -1150,11 +1150,6 @@ msgstr "Pokročilá funkce pro zlepšení výkonu dotazů a prosazení jedinečn
msgid "Advanced filter"
msgstr "Pokročilý filtr"
#. js-lingui-id: luNzWN
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Advanced model for complex planning"
msgstr ""
#. js-lingui-id: miuPUc
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartDataSourceDropdownContent.tsx
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartDataSourceDropdownContent.tsx
@@ -1268,11 +1263,6 @@ msgstr "AI"
msgid "AI Model"
msgstr "AI Model"
#. js-lingui-id: tGx4Zn
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "AI Models"
msgstr ""
#. js-lingui-id: Sfwld8
#: src/modules/ai/components/AIChatApiKeyNotConfiguredMessage.tsx
msgid "AI not configured. Set OPENAI_API_KEY, ANTHROPIC_API_KEY, or XAI_API_KEY in your environment."
@@ -2891,11 +2881,6 @@ msgstr "Konfigurace"
msgid "Configure"
msgstr ""
#. js-lingui-id: 9px+al
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Configure AI models for routing and planning"
msgstr ""
#. js-lingui-id: +zUMwJ
#: src/pages/settings/security/SettingsSecurity.tsx
msgid "Configure an SSO connection"
@@ -2961,6 +2946,11 @@ msgstr "Nakonfigurujte tento widget, aby zobrazoval pole."
msgid "Configure when this function should be executed"
msgstr ""
#. js-lingui-id: hzDiM0
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Configure your default AI model"
msgstr ""
#. js-lingui-id: Bh4GBD
#: src/modules/settings/accounts/components/SettingsAccountsSettingsSection.tsx
msgid "Configure your emails and calendar settings."
@@ -3949,6 +3939,7 @@ msgid "Decide which Sub-address fields you want to display"
msgstr "Rozhodněte se, která pole podadresy chcete zobrazit"
#. js-lingui-id: ovBPCi
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
#: src/modules/settings/data-model/fields/forms/date/utils/getDisplayFormatLabel.ts
#: src/modules/settings/data-model/fields/forms/address/components/MultiSelectAddressFields.tsx
msgid "Default"
@@ -3964,6 +3955,21 @@ msgstr "Výchozí země"
msgid "Default Country Code"
msgstr "Výchozí číselný kód země"
#. js-lingui-id: J6v1s/
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default Model"
msgstr ""
#. js-lingui-id: n4U+0E
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default model for new chats and agents"
msgstr ""
#. js-lingui-id: K/FKkg
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default model updated successfully"
msgstr ""
#. js-lingui-id: 4HDpKr
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartColorPaletteOption.tsx
msgid "Default palette"
@@ -5812,9 +5818,9 @@ msgstr ""
msgid "Failed to save workspace instructions"
msgstr ""
#. js-lingui-id: YMSYb+
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Failed to update fast model"
#. js-lingui-id: 2D6TRg
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Failed to update default model"
msgstr ""
#. js-lingui-id: P1NmNz
@@ -5837,11 +5843,6 @@ msgstr ""
msgid "Failed to update role"
msgstr "Nepodařilo se aktualizovat roli"
#. js-lingui-id: h/0aT5
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Failed to update smart model"
msgstr ""
#. js-lingui-id: Dzh4a2
#: src/modules/settings/admin-panel/config-variables/hooks/useConfigVariableActions.ts
msgid "Failed to update variable"
@@ -5889,16 +5890,6 @@ msgstr "Míra selhání"
msgid "False"
msgstr "Nepravdivé"
#. js-lingui-id: XVIZ7v
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Fast Model"
msgstr ""
#. js-lingui-id: UJHTjm
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Fast model updated successfully"
msgstr ""
#. js-lingui-id: X9kySA
#: src/modules/navigation-menu-item/components/CurrentWorkspaceMemberNavigationMenuItemFolders.tsx
#: src/modules/favorites/components/CurrentWorkspaceMemberFavoritesFolders.tsx
@@ -8183,6 +8174,11 @@ msgstr ""
msgid "Mission accomplished!"
msgstr "Mise splněna!"
#. js-lingui-id: //nm2/
#: src/pages/settings/ai/SettingsAI.tsx
msgid "Models"
msgstr ""
#. js-lingui-id: hty0d5
#: src/pages/settings/profile/appearance/components/DateTimeSettingsCalendarStartDaySelect.tsx
msgid "Monday"
@@ -8228,6 +8224,7 @@ msgid "months"
msgstr ""
#. js-lingui-id: 2FYpfJ
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
msgid "More"
msgstr "Více"
@@ -8930,7 +8927,6 @@ msgstr "Žádná data metrik nejsou k dispozici"
#. js-lingui-id: UWZZdQ
#: src/pages/settings/ai/forms/components/SettingsAIAgentForm.tsx
#: src/pages/settings/ai/components/SettingsAgentSettingsTab.tsx
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "No models available. Please configure AI models in your workspace settings."
msgstr "Nejsou dostupné žádné modely. Prosím, nakonfigurujte AI modely v nastavení vašeho pracovního prostoru."
@@ -10256,11 +10252,6 @@ msgstr "Výkon fronty"
msgid "Queue: {queueName}"
msgstr "Fronta: {queueName}"
#. js-lingui-id: GaAG2G
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Quick model for routing decisions"
msgstr ""
#. js-lingui-id: opSifa
#: src/modules/ai/utils/getToolDisplayMessage.ts
msgid "Ran {formattedName}"
@@ -11653,7 +11644,6 @@ msgstr "Nastavení vaší databáze..."
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/ai/SettingsAgentForm.tsx
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/sign-in-background-mock/components/SignInAppNavigationDrawerMock.tsx
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsSection.tsx
#: src/modules/settings/roles/role/components/SettingsRole.tsx
@@ -11871,16 +11861,6 @@ msgstr "Nebesky modrá"
msgid "Small section heading"
msgstr ""
#. js-lingui-id: 5J8ZFl
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Smart Model"
msgstr ""
#. js-lingui-id: qgvZ/2
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Smart model updated successfully"
msgstr ""
#. js-lingui-id: w+rJId
#: src/modules/settings/accounts/components/SettingsAccountsConnectionForm.tsx
msgid "SMTP Configuration"
+30 -50
View File
@@ -1150,11 +1150,6 @@ msgstr "Avanceret funktion til at forbedre ydeevnen af forespørgsler og håndh
msgid "Advanced filter"
msgstr "Avanceret filter"
#. js-lingui-id: luNzWN
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Advanced model for complex planning"
msgstr ""
#. js-lingui-id: miuPUc
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartDataSourceDropdownContent.tsx
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartDataSourceDropdownContent.tsx
@@ -1268,11 +1263,6 @@ msgstr "AI"
msgid "AI Model"
msgstr "AI Model"
#. js-lingui-id: tGx4Zn
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "AI Models"
msgstr ""
#. js-lingui-id: Sfwld8
#: src/modules/ai/components/AIChatApiKeyNotConfiguredMessage.tsx
msgid "AI not configured. Set OPENAI_API_KEY, ANTHROPIC_API_KEY, or XAI_API_KEY in your environment."
@@ -2891,11 +2881,6 @@ msgstr "Konfiguration"
msgid "Configure"
msgstr ""
#. js-lingui-id: 9px+al
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Configure AI models for routing and planning"
msgstr ""
#. js-lingui-id: +zUMwJ
#: src/pages/settings/security/SettingsSecurity.tsx
msgid "Configure an SSO connection"
@@ -2961,6 +2946,11 @@ msgstr "Konfigurer denne widget til at vise felter"
msgid "Configure when this function should be executed"
msgstr ""
#. js-lingui-id: hzDiM0
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Configure your default AI model"
msgstr ""
#. js-lingui-id: Bh4GBD
#: src/modules/settings/accounts/components/SettingsAccountsSettingsSection.tsx
msgid "Configure your emails and calendar settings."
@@ -3949,6 +3939,7 @@ msgid "Decide which Sub-address fields you want to display"
msgstr "Vælg hvilke underadressefelter du vil vise"
#. js-lingui-id: ovBPCi
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
#: src/modules/settings/data-model/fields/forms/date/utils/getDisplayFormatLabel.ts
#: src/modules/settings/data-model/fields/forms/address/components/MultiSelectAddressFields.tsx
msgid "Default"
@@ -3964,6 +3955,21 @@ msgstr "Standardland"
msgid "Default Country Code"
msgstr "Standardlandekode"
#. js-lingui-id: J6v1s/
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default Model"
msgstr ""
#. js-lingui-id: n4U+0E
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default model for new chats and agents"
msgstr ""
#. js-lingui-id: K/FKkg
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default model updated successfully"
msgstr ""
#. js-lingui-id: 4HDpKr
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartColorPaletteOption.tsx
msgid "Default palette"
@@ -5812,9 +5818,9 @@ msgstr ""
msgid "Failed to save workspace instructions"
msgstr ""
#. js-lingui-id: YMSYb+
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Failed to update fast model"
#. js-lingui-id: 2D6TRg
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Failed to update default model"
msgstr ""
#. js-lingui-id: P1NmNz
@@ -5837,11 +5843,6 @@ msgstr ""
msgid "Failed to update role"
msgstr "Kunne ikke ændre rollen"
#. js-lingui-id: h/0aT5
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Failed to update smart model"
msgstr ""
#. js-lingui-id: Dzh4a2
#: src/modules/settings/admin-panel/config-variables/hooks/useConfigVariableActions.ts
msgid "Failed to update variable"
@@ -5889,16 +5890,6 @@ msgstr "Fejlrate"
msgid "False"
msgstr "Falsk"
#. js-lingui-id: XVIZ7v
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Fast Model"
msgstr ""
#. js-lingui-id: UJHTjm
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Fast model updated successfully"
msgstr ""
#. js-lingui-id: X9kySA
#: src/modules/navigation-menu-item/components/CurrentWorkspaceMemberNavigationMenuItemFolders.tsx
#: src/modules/favorites/components/CurrentWorkspaceMemberFavoritesFolders.tsx
@@ -8183,6 +8174,11 @@ msgstr ""
msgid "Mission accomplished!"
msgstr "Mission fuldført!"
#. js-lingui-id: //nm2/
#: src/pages/settings/ai/SettingsAI.tsx
msgid "Models"
msgstr ""
#. js-lingui-id: hty0d5
#: src/pages/settings/profile/appearance/components/DateTimeSettingsCalendarStartDaySelect.tsx
msgid "Monday"
@@ -8228,6 +8224,7 @@ msgid "months"
msgstr ""
#. js-lingui-id: 2FYpfJ
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
msgid "More"
msgstr "Mere"
@@ -8930,7 +8927,6 @@ msgstr "Ingen metrikdata tilgængelige"
#. js-lingui-id: UWZZdQ
#: src/pages/settings/ai/forms/components/SettingsAIAgentForm.tsx
#: src/pages/settings/ai/components/SettingsAgentSettingsTab.tsx
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "No models available. Please configure AI models in your workspace settings."
msgstr "Ingen modeller tilgængelige. Konfigurer venligst AI-modeller i dine arbejdsområdeindstillinger."
@@ -10256,11 +10252,6 @@ msgstr "Køydelse"
msgid "Queue: {queueName}"
msgstr "Kø: {queueName}"
#. js-lingui-id: GaAG2G
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Quick model for routing decisions"
msgstr ""
#. js-lingui-id: opSifa
#: src/modules/ai/utils/getToolDisplayMessage.ts
msgid "Ran {formattedName}"
@@ -11653,7 +11644,6 @@ msgstr "Opsætning af din database..."
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/ai/SettingsAgentForm.tsx
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/sign-in-background-mock/components/SignInAppNavigationDrawerMock.tsx
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsSection.tsx
#: src/modules/settings/roles/role/components/SettingsRole.tsx
@@ -11871,16 +11861,6 @@ msgstr "Himmel"
msgid "Small section heading"
msgstr ""
#. js-lingui-id: 5J8ZFl
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Smart Model"
msgstr ""
#. js-lingui-id: qgvZ/2
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Smart model updated successfully"
msgstr ""
#. js-lingui-id: w+rJId
#: src/modules/settings/accounts/components/SettingsAccountsConnectionForm.tsx
msgid "SMTP Configuration"
+30 -50
View File
@@ -1150,11 +1150,6 @@ msgstr "Erweiterte Funktion zur Verbesserung der Abfrageleistung und zur Durchse
msgid "Advanced filter"
msgstr "Erweiterter Filter"
#. js-lingui-id: luNzWN
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Advanced model for complex planning"
msgstr ""
#. js-lingui-id: miuPUc
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartDataSourceDropdownContent.tsx
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartDataSourceDropdownContent.tsx
@@ -1268,11 +1263,6 @@ msgstr "KI"
msgid "AI Model"
msgstr "KI-Modell"
#. js-lingui-id: tGx4Zn
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "AI Models"
msgstr ""
#. js-lingui-id: Sfwld8
#: src/modules/ai/components/AIChatApiKeyNotConfiguredMessage.tsx
msgid "AI not configured. Set OPENAI_API_KEY, ANTHROPIC_API_KEY, or XAI_API_KEY in your environment."
@@ -2891,11 +2881,6 @@ msgstr "Konfiguration"
msgid "Configure"
msgstr ""
#. js-lingui-id: 9px+al
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Configure AI models for routing and planning"
msgstr ""
#. js-lingui-id: +zUMwJ
#: src/pages/settings/security/SettingsSecurity.tsx
msgid "Configure an SSO connection"
@@ -2961,6 +2946,11 @@ msgstr "Konfigurieren Sie dieses Widget, um Felder anzuzeigen."
msgid "Configure when this function should be executed"
msgstr ""
#. js-lingui-id: hzDiM0
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Configure your default AI model"
msgstr ""
#. js-lingui-id: Bh4GBD
#: src/modules/settings/accounts/components/SettingsAccountsSettingsSection.tsx
msgid "Configure your emails and calendar settings."
@@ -3949,6 +3939,7 @@ msgid "Decide which Sub-address fields you want to display"
msgstr "Entscheiden Sie, welche Unteradressfelder Sie anzeigen möchten"
#. js-lingui-id: ovBPCi
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
#: src/modules/settings/data-model/fields/forms/date/utils/getDisplayFormatLabel.ts
#: src/modules/settings/data-model/fields/forms/address/components/MultiSelectAddressFields.tsx
msgid "Default"
@@ -3964,6 +3955,21 @@ msgstr "Standardland"
msgid "Default Country Code"
msgstr "Standard-Ländercode"
#. js-lingui-id: J6v1s/
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default Model"
msgstr ""
#. js-lingui-id: n4U+0E
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default model for new chats and agents"
msgstr ""
#. js-lingui-id: K/FKkg
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default model updated successfully"
msgstr ""
#. js-lingui-id: 4HDpKr
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartColorPaletteOption.tsx
msgid "Default palette"
@@ -5812,9 +5818,9 @@ msgstr ""
msgid "Failed to save workspace instructions"
msgstr ""
#. js-lingui-id: YMSYb+
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Failed to update fast model"
#. js-lingui-id: 2D6TRg
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Failed to update default model"
msgstr ""
#. js-lingui-id: P1NmNz
@@ -5837,11 +5843,6 @@ msgstr ""
msgid "Failed to update role"
msgstr "Fehler beim Aktualisieren der Rolle"
#. js-lingui-id: h/0aT5
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Failed to update smart model"
msgstr ""
#. js-lingui-id: Dzh4a2
#: src/modules/settings/admin-panel/config-variables/hooks/useConfigVariableActions.ts
msgid "Failed to update variable"
@@ -5889,16 +5890,6 @@ msgstr "Fehlerquote"
msgid "False"
msgstr "Falsch"
#. js-lingui-id: XVIZ7v
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Fast Model"
msgstr ""
#. js-lingui-id: UJHTjm
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Fast model updated successfully"
msgstr ""
#. js-lingui-id: X9kySA
#: src/modules/navigation-menu-item/components/CurrentWorkspaceMemberNavigationMenuItemFolders.tsx
#: src/modules/favorites/components/CurrentWorkspaceMemberFavoritesFolders.tsx
@@ -8183,6 +8174,11 @@ msgstr ""
msgid "Mission accomplished!"
msgstr "Mission erfüllt!"
#. js-lingui-id: //nm2/
#: src/pages/settings/ai/SettingsAI.tsx
msgid "Models"
msgstr ""
#. js-lingui-id: hty0d5
#: src/pages/settings/profile/appearance/components/DateTimeSettingsCalendarStartDaySelect.tsx
msgid "Monday"
@@ -8228,6 +8224,7 @@ msgid "months"
msgstr ""
#. js-lingui-id: 2FYpfJ
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
msgid "More"
msgstr "Mehr"
@@ -8930,7 +8927,6 @@ msgstr "Keine Metrik-Daten verfügbar"
#. js-lingui-id: UWZZdQ
#: src/pages/settings/ai/forms/components/SettingsAIAgentForm.tsx
#: src/pages/settings/ai/components/SettingsAgentSettingsTab.tsx
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "No models available. Please configure AI models in your workspace settings."
msgstr "Keine Modelle verfügbar. Bitte konfigurieren Sie KI-Modelle in Ihren Arbeitsbereichseinstellungen."
@@ -10256,11 +10252,6 @@ msgstr "Queue-Leistung"
msgid "Queue: {queueName}"
msgstr "Warteschlange: {queueName}"
#. js-lingui-id: GaAG2G
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Quick model for routing decisions"
msgstr ""
#. js-lingui-id: opSifa
#: src/modules/ai/utils/getToolDisplayMessage.ts
msgid "Ran {formattedName}"
@@ -11653,7 +11644,6 @@ msgstr "Einrichten Ihrer Datenbank..."
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/ai/SettingsAgentForm.tsx
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/sign-in-background-mock/components/SignInAppNavigationDrawerMock.tsx
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsSection.tsx
#: src/modules/settings/roles/role/components/SettingsRole.tsx
@@ -11871,16 +11861,6 @@ msgstr "Himmelblau"
msgid "Small section heading"
msgstr ""
#. js-lingui-id: 5J8ZFl
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Smart Model"
msgstr ""
#. js-lingui-id: qgvZ/2
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Smart model updated successfully"
msgstr ""
#. js-lingui-id: w+rJId
#: src/modules/settings/accounts/components/SettingsAccountsConnectionForm.tsx
msgid "SMTP Configuration"
+30 -50
View File
@@ -1150,11 +1150,6 @@ msgstr "Σύνθετη λειτουργία για τη βελτίωση της
msgid "Advanced filter"
msgstr "Προηγμένο φίλτρο"
#. js-lingui-id: luNzWN
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Advanced model for complex planning"
msgstr ""
#. js-lingui-id: miuPUc
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartDataSourceDropdownContent.tsx
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartDataSourceDropdownContent.tsx
@@ -1268,11 +1263,6 @@ msgstr "AI"
msgid "AI Model"
msgstr "Μοντέλο AI"
#. js-lingui-id: tGx4Zn
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "AI Models"
msgstr ""
#. js-lingui-id: Sfwld8
#: src/modules/ai/components/AIChatApiKeyNotConfiguredMessage.tsx
msgid "AI not configured. Set OPENAI_API_KEY, ANTHROPIC_API_KEY, or XAI_API_KEY in your environment."
@@ -2891,11 +2881,6 @@ msgstr "Διαμόρφωση"
msgid "Configure"
msgstr ""
#. js-lingui-id: 9px+al
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Configure AI models for routing and planning"
msgstr ""
#. js-lingui-id: +zUMwJ
#: src/pages/settings/security/SettingsSecurity.tsx
msgid "Configure an SSO connection"
@@ -2961,6 +2946,11 @@ msgstr "Ρυθμίστε αυτό το γραφικό στοιχείο ώστε
msgid "Configure when this function should be executed"
msgstr ""
#. js-lingui-id: hzDiM0
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Configure your default AI model"
msgstr ""
#. js-lingui-id: Bh4GBD
#: src/modules/settings/accounts/components/SettingsAccountsSettingsSection.tsx
msgid "Configure your emails and calendar settings."
@@ -3949,6 +3939,7 @@ msgid "Decide which Sub-address fields you want to display"
msgstr "Αποφασίστε ποια πεδία Υπο-διευθύνσεων θέλετε να εμφανίζονται"
#. js-lingui-id: ovBPCi
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
#: src/modules/settings/data-model/fields/forms/date/utils/getDisplayFormatLabel.ts
#: src/modules/settings/data-model/fields/forms/address/components/MultiSelectAddressFields.tsx
msgid "Default"
@@ -3964,6 +3955,21 @@ msgstr "Προεπιλεγμένη Χώρα"
msgid "Default Country Code"
msgstr "Προεπιλεγμένος Κωδικός Χώρας"
#. js-lingui-id: J6v1s/
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default Model"
msgstr ""
#. js-lingui-id: n4U+0E
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default model for new chats and agents"
msgstr ""
#. js-lingui-id: K/FKkg
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default model updated successfully"
msgstr ""
#. js-lingui-id: 4HDpKr
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartColorPaletteOption.tsx
msgid "Default palette"
@@ -5812,9 +5818,9 @@ msgstr ""
msgid "Failed to save workspace instructions"
msgstr ""
#. js-lingui-id: YMSYb+
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Failed to update fast model"
#. js-lingui-id: 2D6TRg
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Failed to update default model"
msgstr ""
#. js-lingui-id: P1NmNz
@@ -5837,11 +5843,6 @@ msgstr ""
msgid "Failed to update role"
msgstr "Αποτυχία ενημέρωσης ρόλου"
#. js-lingui-id: h/0aT5
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Failed to update smart model"
msgstr ""
#. js-lingui-id: Dzh4a2
#: src/modules/settings/admin-panel/config-variables/hooks/useConfigVariableActions.ts
msgid "Failed to update variable"
@@ -5889,16 +5890,6 @@ msgstr "Ποσοστό αποτυχίας"
msgid "False"
msgstr "Ψευδής"
#. js-lingui-id: XVIZ7v
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Fast Model"
msgstr ""
#. js-lingui-id: UJHTjm
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Fast model updated successfully"
msgstr ""
#. js-lingui-id: X9kySA
#: src/modules/navigation-menu-item/components/CurrentWorkspaceMemberNavigationMenuItemFolders.tsx
#: src/modules/favorites/components/CurrentWorkspaceMemberFavoritesFolders.tsx
@@ -8183,6 +8174,11 @@ msgstr ""
msgid "Mission accomplished!"
msgstr "Αποστολή ολοκληρώθηκε!"
#. js-lingui-id: //nm2/
#: src/pages/settings/ai/SettingsAI.tsx
msgid "Models"
msgstr ""
#. js-lingui-id: hty0d5
#: src/pages/settings/profile/appearance/components/DateTimeSettingsCalendarStartDaySelect.tsx
msgid "Monday"
@@ -8228,6 +8224,7 @@ msgid "months"
msgstr ""
#. js-lingui-id: 2FYpfJ
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
msgid "More"
msgstr "Περισσότερα"
@@ -8930,7 +8927,6 @@ msgstr "Δεν υπάρχουν διαθέσιμα δεδομένα μετρήσ
#. js-lingui-id: UWZZdQ
#: src/pages/settings/ai/forms/components/SettingsAIAgentForm.tsx
#: src/pages/settings/ai/components/SettingsAgentSettingsTab.tsx
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "No models available. Please configure AI models in your workspace settings."
msgstr "Δεν υπάρχουν διαθέσιμα μοντέλα. Παρακαλούμε ρυθμίστε τα μοντέλα AI στις ρυθμίσεις χώρου εργασίας σας."
@@ -10256,11 +10252,6 @@ msgstr "Επιδόσεις Ουράς"
msgid "Queue: {queueName}"
msgstr "Ουρά: {queueName}"
#. js-lingui-id: GaAG2G
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Quick model for routing decisions"
msgstr ""
#. js-lingui-id: opSifa
#: src/modules/ai/utils/getToolDisplayMessage.ts
msgid "Ran {formattedName}"
@@ -11653,7 +11644,6 @@ msgstr "Ρύθμιση της βάσης δεδομένων σας..."
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/ai/SettingsAgentForm.tsx
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/sign-in-background-mock/components/SignInAppNavigationDrawerMock.tsx
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsSection.tsx
#: src/modules/settings/roles/role/components/SettingsRole.tsx
@@ -11873,16 +11863,6 @@ msgstr "Ουρανί"
msgid "Small section heading"
msgstr ""
#. js-lingui-id: 5J8ZFl
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Smart Model"
msgstr ""
#. js-lingui-id: qgvZ/2
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Smart model updated successfully"
msgstr ""
#. js-lingui-id: w+rJId
#: src/modules/settings/accounts/components/SettingsAccountsConnectionForm.tsx
msgid "SMTP Configuration"
+31 -51
View File
@@ -1145,11 +1145,6 @@ msgstr "Advanced feature to improve the performance of queries and to enforce un
msgid "Advanced filter"
msgstr "Advanced filter"
#. js-lingui-id: luNzWN
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Advanced model for complex planning"
msgstr "Advanced model for complex planning"
#. js-lingui-id: miuPUc
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartDataSourceDropdownContent.tsx
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartDataSourceDropdownContent.tsx
@@ -1263,11 +1258,6 @@ msgstr "AI"
msgid "AI Model"
msgstr "AI Model"
#. js-lingui-id: tGx4Zn
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "AI Models"
msgstr "AI Models"
#. js-lingui-id: Sfwld8
#: src/modules/ai/components/AIChatApiKeyNotConfiguredMessage.tsx
msgid "AI not configured. Set OPENAI_API_KEY, ANTHROPIC_API_KEY, or XAI_API_KEY in your environment."
@@ -2886,11 +2876,6 @@ msgstr "Configuration"
msgid "Configure"
msgstr "Configure"
#. js-lingui-id: 9px+al
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Configure AI models for routing and planning"
msgstr "Configure AI models for routing and planning"
#. js-lingui-id: +zUMwJ
#: src/pages/settings/security/SettingsSecurity.tsx
msgid "Configure an SSO connection"
@@ -2956,6 +2941,11 @@ msgstr "Configure this widget to display fields"
msgid "Configure when this function should be executed"
msgstr "Configure when this function should be executed"
#. js-lingui-id: hzDiM0
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Configure your default AI model"
msgstr "Configure your default AI model"
#. js-lingui-id: Bh4GBD
#: src/modules/settings/accounts/components/SettingsAccountsSettingsSection.tsx
msgid "Configure your emails and calendar settings."
@@ -3944,6 +3934,7 @@ msgid "Decide which Sub-address fields you want to display"
msgstr "Decide which Sub-address fields you want to display"
#. js-lingui-id: ovBPCi
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
#: src/modules/settings/data-model/fields/forms/date/utils/getDisplayFormatLabel.ts
#: src/modules/settings/data-model/fields/forms/address/components/MultiSelectAddressFields.tsx
msgid "Default"
@@ -3959,6 +3950,21 @@ msgstr "Default Country"
msgid "Default Country Code"
msgstr "Default Country Code"
#. js-lingui-id: J6v1s/
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default Model"
msgstr "Default Model"
#. js-lingui-id: n4U+0E
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default model for new chats and agents"
msgstr "Default model for new chats and agents"
#. js-lingui-id: K/FKkg
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default model updated successfully"
msgstr "Default model updated successfully"
#. js-lingui-id: 4HDpKr
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartColorPaletteOption.tsx
msgid "Default palette"
@@ -5807,10 +5813,10 @@ msgstr "Failed to save role permissions: {errorMessage}"
msgid "Failed to save workspace instructions"
msgstr "Failed to save workspace instructions"
#. js-lingui-id: YMSYb+
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Failed to update fast model"
msgstr "Failed to update fast model"
#. js-lingui-id: 2D6TRg
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Failed to update default model"
msgstr "Failed to update default model"
#. js-lingui-id: P1NmNz
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
@@ -5832,11 +5838,6 @@ msgstr "Failed to update records. Please try again."
msgid "Failed to update role"
msgstr "Failed to update role"
#. js-lingui-id: h/0aT5
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Failed to update smart model"
msgstr "Failed to update smart model"
#. js-lingui-id: Dzh4a2
#: src/modules/settings/admin-panel/config-variables/hooks/useConfigVariableActions.ts
msgid "Failed to update variable"
@@ -5884,16 +5885,6 @@ msgstr "Failure Rate"
msgid "False"
msgstr "False"
#. js-lingui-id: XVIZ7v
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Fast Model"
msgstr "Fast Model"
#. js-lingui-id: UJHTjm
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Fast model updated successfully"
msgstr "Fast model updated successfully"
#. js-lingui-id: X9kySA
#: src/modules/navigation-menu-item/components/CurrentWorkspaceMemberNavigationMenuItemFolders.tsx
#: src/modules/favorites/components/CurrentWorkspaceMemberFavoritesFolders.tsx
@@ -8178,6 +8169,11 @@ msgstr "Missing email draft permission."
msgid "Mission accomplished!"
msgstr "Mission accomplished!"
#. js-lingui-id: //nm2/
#: src/pages/settings/ai/SettingsAI.tsx
msgid "Models"
msgstr "Models"
#. js-lingui-id: hty0d5
#: src/pages/settings/profile/appearance/components/DateTimeSettingsCalendarStartDaySelect.tsx
msgid "Monday"
@@ -8223,6 +8219,7 @@ msgid "months"
msgstr "months"
#. js-lingui-id: 2FYpfJ
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
msgid "More"
msgstr "More"
@@ -8925,7 +8922,6 @@ msgstr "No metrics data available"
#. js-lingui-id: UWZZdQ
#: src/pages/settings/ai/forms/components/SettingsAIAgentForm.tsx
#: src/pages/settings/ai/components/SettingsAgentSettingsTab.tsx
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "No models available. Please configure AI models in your workspace settings."
msgstr "No models available. Please configure AI models in your workspace settings."
@@ -10251,11 +10247,6 @@ msgstr "Queue performance"
msgid "Queue: {queueName}"
msgstr "Queue: {queueName}"
#. js-lingui-id: GaAG2G
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Quick model for routing decisions"
msgstr "Quick model for routing decisions"
#. js-lingui-id: opSifa
#: src/modules/ai/utils/getToolDisplayMessage.ts
msgid "Ran {formattedName}"
@@ -11648,7 +11639,6 @@ msgstr "Setting up your database..."
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/ai/SettingsAgentForm.tsx
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/sign-in-background-mock/components/SignInAppNavigationDrawerMock.tsx
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsSection.tsx
#: src/modules/settings/roles/role/components/SettingsRole.tsx
@@ -11866,16 +11856,6 @@ msgstr "Sky"
msgid "Small section heading"
msgstr "Small section heading"
#. js-lingui-id: 5J8ZFl
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Smart Model"
msgstr "Smart Model"
#. js-lingui-id: qgvZ/2
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Smart model updated successfully"
msgstr "Smart model updated successfully"
#. js-lingui-id: w+rJId
#: src/modules/settings/accounts/components/SettingsAccountsConnectionForm.tsx
msgid "SMTP Configuration"
+30 -50
View File
@@ -1150,11 +1150,6 @@ msgstr "Característica avanzada para mejorar el rendimiento de consultas y para
msgid "Advanced filter"
msgstr "Filtro avanzado"
#. js-lingui-id: luNzWN
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Advanced model for complex planning"
msgstr ""
#. js-lingui-id: miuPUc
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartDataSourceDropdownContent.tsx
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartDataSourceDropdownContent.tsx
@@ -1268,11 +1263,6 @@ msgstr "IA"
msgid "AI Model"
msgstr "Modelo de IA"
#. js-lingui-id: tGx4Zn
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "AI Models"
msgstr ""
#. js-lingui-id: Sfwld8
#: src/modules/ai/components/AIChatApiKeyNotConfiguredMessage.tsx
msgid "AI not configured. Set OPENAI_API_KEY, ANTHROPIC_API_KEY, or XAI_API_KEY in your environment."
@@ -2891,11 +2881,6 @@ msgstr "Configuración"
msgid "Configure"
msgstr ""
#. js-lingui-id: 9px+al
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Configure AI models for routing and planning"
msgstr ""
#. js-lingui-id: +zUMwJ
#: src/pages/settings/security/SettingsSecurity.tsx
msgid "Configure an SSO connection"
@@ -2961,6 +2946,11 @@ msgstr "Configura este widget para visualizar campos"
msgid "Configure when this function should be executed"
msgstr ""
#. js-lingui-id: hzDiM0
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Configure your default AI model"
msgstr ""
#. js-lingui-id: Bh4GBD
#: src/modules/settings/accounts/components/SettingsAccountsSettingsSection.tsx
msgid "Configure your emails and calendar settings."
@@ -3949,6 +3939,7 @@ msgid "Decide which Sub-address fields you want to display"
msgstr "Decide qué campos de subdirección deseas mostrar"
#. js-lingui-id: ovBPCi
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
#: src/modules/settings/data-model/fields/forms/date/utils/getDisplayFormatLabel.ts
#: src/modules/settings/data-model/fields/forms/address/components/MultiSelectAddressFields.tsx
msgid "Default"
@@ -3964,6 +3955,21 @@ msgstr "País predeterminado"
msgid "Default Country Code"
msgstr "Código de país predeterminado"
#. js-lingui-id: J6v1s/
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default Model"
msgstr ""
#. js-lingui-id: n4U+0E
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default model for new chats and agents"
msgstr ""
#. js-lingui-id: K/FKkg
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default model updated successfully"
msgstr ""
#. js-lingui-id: 4HDpKr
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartColorPaletteOption.tsx
msgid "Default palette"
@@ -5812,9 +5818,9 @@ msgstr "Error al guardar los permisos de rol: {errorMessage}"
msgid "Failed to save workspace instructions"
msgstr ""
#. js-lingui-id: YMSYb+
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Failed to update fast model"
#. js-lingui-id: 2D6TRg
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Failed to update default model"
msgstr ""
#. js-lingui-id: P1NmNz
@@ -5837,11 +5843,6 @@ msgstr ""
msgid "Failed to update role"
msgstr "Error al actualizar el rol"
#. js-lingui-id: h/0aT5
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Failed to update smart model"
msgstr ""
#. js-lingui-id: Dzh4a2
#: src/modules/settings/admin-panel/config-variables/hooks/useConfigVariableActions.ts
msgid "Failed to update variable"
@@ -5889,16 +5890,6 @@ msgstr "Tasa de fallos"
msgid "False"
msgstr "Falso"
#. js-lingui-id: XVIZ7v
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Fast Model"
msgstr ""
#. js-lingui-id: UJHTjm
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Fast model updated successfully"
msgstr ""
#. js-lingui-id: X9kySA
#: src/modules/navigation-menu-item/components/CurrentWorkspaceMemberNavigationMenuItemFolders.tsx
#: src/modules/favorites/components/CurrentWorkspaceMemberFavoritesFolders.tsx
@@ -8183,6 +8174,11 @@ msgstr ""
msgid "Mission accomplished!"
msgstr "¡Misión cumplida!"
#. js-lingui-id: //nm2/
#: src/pages/settings/ai/SettingsAI.tsx
msgid "Models"
msgstr ""
#. js-lingui-id: hty0d5
#: src/pages/settings/profile/appearance/components/DateTimeSettingsCalendarStartDaySelect.tsx
msgid "Monday"
@@ -8228,6 +8224,7 @@ msgid "months"
msgstr ""
#. js-lingui-id: 2FYpfJ
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
msgid "More"
msgstr "Más"
@@ -8930,7 +8927,6 @@ msgstr "No hay datos de métricas disponibles"
#. js-lingui-id: UWZZdQ
#: src/pages/settings/ai/forms/components/SettingsAIAgentForm.tsx
#: src/pages/settings/ai/components/SettingsAgentSettingsTab.tsx
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "No models available. Please configure AI models in your workspace settings."
msgstr "No hay modelos disponibles. Por favor configure modelos de IA en la configuración de su espacio de trabajo."
@@ -10256,11 +10252,6 @@ msgstr "Rendimiento de la cola"
msgid "Queue: {queueName}"
msgstr "Cola: {queueName}"
#. js-lingui-id: GaAG2G
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Quick model for routing decisions"
msgstr ""
#. js-lingui-id: opSifa
#: src/modules/ai/utils/getToolDisplayMessage.ts
msgid "Ran {formattedName}"
@@ -11653,7 +11644,6 @@ msgstr "Configurando su base de datos..."
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/ai/SettingsAgentForm.tsx
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/sign-in-background-mock/components/SignInAppNavigationDrawerMock.tsx
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsSection.tsx
#: src/modules/settings/roles/role/components/SettingsRole.tsx
@@ -11871,16 +11861,6 @@ msgstr "Cielo"
msgid "Small section heading"
msgstr "Encabezado de sección pequeña"
#. js-lingui-id: 5J8ZFl
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Smart Model"
msgstr ""
#. js-lingui-id: qgvZ/2
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Smart model updated successfully"
msgstr ""
#. js-lingui-id: w+rJId
#: src/modules/settings/accounts/components/SettingsAccountsConnectionForm.tsx
msgid "SMTP Configuration"
+30 -50
View File
@@ -1150,11 +1150,6 @@ msgstr "Edistynyt ominaisuus tiedusteluiden suorituskyvyn parantamiseksi ja ainu
msgid "Advanced filter"
msgstr "Tarkennettu suodatin"
#. js-lingui-id: luNzWN
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Advanced model for complex planning"
msgstr ""
#. js-lingui-id: miuPUc
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartDataSourceDropdownContent.tsx
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartDataSourceDropdownContent.tsx
@@ -1268,11 +1263,6 @@ msgstr "AI"
msgid "AI Model"
msgstr "AI-malli"
#. js-lingui-id: tGx4Zn
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "AI Models"
msgstr ""
#. js-lingui-id: Sfwld8
#: src/modules/ai/components/AIChatApiKeyNotConfiguredMessage.tsx
msgid "AI not configured. Set OPENAI_API_KEY, ANTHROPIC_API_KEY, or XAI_API_KEY in your environment."
@@ -2891,11 +2881,6 @@ msgstr "Kokoonpano"
msgid "Configure"
msgstr ""
#. js-lingui-id: 9px+al
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Configure AI models for routing and planning"
msgstr ""
#. js-lingui-id: +zUMwJ
#: src/pages/settings/security/SettingsSecurity.tsx
msgid "Configure an SSO connection"
@@ -2961,6 +2946,11 @@ msgstr "Määritä tämä pienoisohjelma näyttämään kenttiä"
msgid "Configure when this function should be executed"
msgstr ""
#. js-lingui-id: hzDiM0
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Configure your default AI model"
msgstr ""
#. js-lingui-id: Bh4GBD
#: src/modules/settings/accounts/components/SettingsAccountsSettingsSection.tsx
msgid "Configure your emails and calendar settings."
@@ -3949,6 +3939,7 @@ msgid "Decide which Sub-address fields you want to display"
msgstr "Päätä, mitkä alikentät haluat näyttää"
#. js-lingui-id: ovBPCi
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
#: src/modules/settings/data-model/fields/forms/date/utils/getDisplayFormatLabel.ts
#: src/modules/settings/data-model/fields/forms/address/components/MultiSelectAddressFields.tsx
msgid "Default"
@@ -3964,6 +3955,21 @@ msgstr "Oletusmaa"
msgid "Default Country Code"
msgstr "Oletusmaakoodi"
#. js-lingui-id: J6v1s/
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default Model"
msgstr ""
#. js-lingui-id: n4U+0E
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default model for new chats and agents"
msgstr ""
#. js-lingui-id: K/FKkg
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default model updated successfully"
msgstr ""
#. js-lingui-id: 4HDpKr
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartColorPaletteOption.tsx
msgid "Default palette"
@@ -5812,9 +5818,9 @@ msgstr ""
msgid "Failed to save workspace instructions"
msgstr ""
#. js-lingui-id: YMSYb+
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Failed to update fast model"
#. js-lingui-id: 2D6TRg
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Failed to update default model"
msgstr ""
#. js-lingui-id: P1NmNz
@@ -5837,11 +5843,6 @@ msgstr ""
msgid "Failed to update role"
msgstr "Roolin päivitys epäonnistui"
#. js-lingui-id: h/0aT5
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Failed to update smart model"
msgstr ""
#. js-lingui-id: Dzh4a2
#: src/modules/settings/admin-panel/config-variables/hooks/useConfigVariableActions.ts
msgid "Failed to update variable"
@@ -5889,16 +5890,6 @@ msgstr "Epäonnistumisprosentti"
msgid "False"
msgstr "Väärä"
#. js-lingui-id: XVIZ7v
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Fast Model"
msgstr ""
#. js-lingui-id: UJHTjm
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Fast model updated successfully"
msgstr ""
#. js-lingui-id: X9kySA
#: src/modules/navigation-menu-item/components/CurrentWorkspaceMemberNavigationMenuItemFolders.tsx
#: src/modules/favorites/components/CurrentWorkspaceMemberFavoritesFolders.tsx
@@ -8183,6 +8174,11 @@ msgstr ""
msgid "Mission accomplished!"
msgstr "Tehtävä suoritettu!"
#. js-lingui-id: //nm2/
#: src/pages/settings/ai/SettingsAI.tsx
msgid "Models"
msgstr ""
#. js-lingui-id: hty0d5
#: src/pages/settings/profile/appearance/components/DateTimeSettingsCalendarStartDaySelect.tsx
msgid "Monday"
@@ -8228,6 +8224,7 @@ msgid "months"
msgstr ""
#. js-lingui-id: 2FYpfJ
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
msgid "More"
msgstr "Lisää"
@@ -8930,7 +8927,6 @@ msgstr "Ei metriikkatietoja saatavilla"
#. js-lingui-id: UWZZdQ
#: src/pages/settings/ai/forms/components/SettingsAIAgentForm.tsx
#: src/pages/settings/ai/components/SettingsAgentSettingsTab.tsx
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "No models available. Please configure AI models in your workspace settings."
msgstr "Malitavoa ei ole saatavilla. Konfiguroi AI-mallit työtilan asetuksista."
@@ -10256,11 +10252,6 @@ msgstr "Jonon suorituskyky"
msgid "Queue: {queueName}"
msgstr "Jono: {queueName}"
#. js-lingui-id: GaAG2G
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Quick model for routing decisions"
msgstr ""
#. js-lingui-id: opSifa
#: src/modules/ai/utils/getToolDisplayMessage.ts
msgid "Ran {formattedName}"
@@ -11653,7 +11644,6 @@ msgstr "Asetetaan tietokantaasi..."
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/ai/SettingsAgentForm.tsx
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/sign-in-background-mock/components/SignInAppNavigationDrawerMock.tsx
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsSection.tsx
#: src/modules/settings/roles/role/components/SettingsRole.tsx
@@ -11871,16 +11861,6 @@ msgstr "Taivaansininen"
msgid "Small section heading"
msgstr ""
#. js-lingui-id: 5J8ZFl
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Smart Model"
msgstr ""
#. js-lingui-id: qgvZ/2
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Smart model updated successfully"
msgstr ""
#. js-lingui-id: w+rJId
#: src/modules/settings/accounts/components/SettingsAccountsConnectionForm.tsx
msgid "SMTP Configuration"
+30 -50
View File
@@ -1150,11 +1150,6 @@ msgstr "Fonctionnalité avancée pour améliorer la performance des requêtes et
msgid "Advanced filter"
msgstr "Filtre avancé"
#. js-lingui-id: luNzWN
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Advanced model for complex planning"
msgstr ""
#. js-lingui-id: miuPUc
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartDataSourceDropdownContent.tsx
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartDataSourceDropdownContent.tsx
@@ -1268,11 +1263,6 @@ msgstr "IA"
msgid "AI Model"
msgstr "Modèle IA"
#. js-lingui-id: tGx4Zn
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "AI Models"
msgstr ""
#. js-lingui-id: Sfwld8
#: src/modules/ai/components/AIChatApiKeyNotConfiguredMessage.tsx
msgid "AI not configured. Set OPENAI_API_KEY, ANTHROPIC_API_KEY, or XAI_API_KEY in your environment."
@@ -2891,11 +2881,6 @@ msgstr "Configuration"
msgid "Configure"
msgstr ""
#. js-lingui-id: 9px+al
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Configure AI models for routing and planning"
msgstr ""
#. js-lingui-id: +zUMwJ
#: src/pages/settings/security/SettingsSecurity.tsx
msgid "Configure an SSO connection"
@@ -2961,6 +2946,11 @@ msgstr "Configurez ce widget pour afficher des champs"
msgid "Configure when this function should be executed"
msgstr ""
#. js-lingui-id: hzDiM0
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Configure your default AI model"
msgstr ""
#. js-lingui-id: Bh4GBD
#: src/modules/settings/accounts/components/SettingsAccountsSettingsSection.tsx
msgid "Configure your emails and calendar settings."
@@ -3949,6 +3939,7 @@ msgid "Decide which Sub-address fields you want to display"
msgstr "Décidez quels champs de sous-adresse vous souhaitez afficher"
#. js-lingui-id: ovBPCi
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
#: src/modules/settings/data-model/fields/forms/date/utils/getDisplayFormatLabel.ts
#: src/modules/settings/data-model/fields/forms/address/components/MultiSelectAddressFields.tsx
msgid "Default"
@@ -3964,6 +3955,21 @@ msgstr "Pays par défaut"
msgid "Default Country Code"
msgstr "Code du pays par défaut"
#. js-lingui-id: J6v1s/
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default Model"
msgstr ""
#. js-lingui-id: n4U+0E
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default model for new chats and agents"
msgstr ""
#. js-lingui-id: K/FKkg
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default model updated successfully"
msgstr ""
#. js-lingui-id: 4HDpKr
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartColorPaletteOption.tsx
msgid "Default palette"
@@ -5812,9 +5818,9 @@ msgstr ""
msgid "Failed to save workspace instructions"
msgstr ""
#. js-lingui-id: YMSYb+
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Failed to update fast model"
#. js-lingui-id: 2D6TRg
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Failed to update default model"
msgstr ""
#. js-lingui-id: P1NmNz
@@ -5837,11 +5843,6 @@ msgstr ""
msgid "Failed to update role"
msgstr "Échec de la mise à jour du rôle"
#. js-lingui-id: h/0aT5
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Failed to update smart model"
msgstr ""
#. js-lingui-id: Dzh4a2
#: src/modules/settings/admin-panel/config-variables/hooks/useConfigVariableActions.ts
msgid "Failed to update variable"
@@ -5889,16 +5890,6 @@ msgstr "Taux d'échec"
msgid "False"
msgstr "Faux"
#. js-lingui-id: XVIZ7v
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Fast Model"
msgstr ""
#. js-lingui-id: UJHTjm
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Fast model updated successfully"
msgstr ""
#. js-lingui-id: X9kySA
#: src/modules/navigation-menu-item/components/CurrentWorkspaceMemberNavigationMenuItemFolders.tsx
#: src/modules/favorites/components/CurrentWorkspaceMemberFavoritesFolders.tsx
@@ -8183,6 +8174,11 @@ msgstr ""
msgid "Mission accomplished!"
msgstr "Mission accomplie !"
#. js-lingui-id: //nm2/
#: src/pages/settings/ai/SettingsAI.tsx
msgid "Models"
msgstr ""
#. js-lingui-id: hty0d5
#: src/pages/settings/profile/appearance/components/DateTimeSettingsCalendarStartDaySelect.tsx
msgid "Monday"
@@ -8228,6 +8224,7 @@ msgid "months"
msgstr ""
#. js-lingui-id: 2FYpfJ
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
msgid "More"
msgstr "Plus"
@@ -8930,7 +8927,6 @@ msgstr "Aucune donnée de métriques disponible"
#. js-lingui-id: UWZZdQ
#: src/pages/settings/ai/forms/components/SettingsAIAgentForm.tsx
#: src/pages/settings/ai/components/SettingsAgentSettingsTab.tsx
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "No models available. Please configure AI models in your workspace settings."
msgstr "Aucun modèle disponible. Veuillez configurer les modèles IA dans les paramètres de votre espace de travail."
@@ -10256,11 +10252,6 @@ msgstr "Performance de la file d'attente"
msgid "Queue: {queueName}"
msgstr "File d'attente : {queueName}"
#. js-lingui-id: GaAG2G
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Quick model for routing decisions"
msgstr ""
#. js-lingui-id: opSifa
#: src/modules/ai/utils/getToolDisplayMessage.ts
msgid "Ran {formattedName}"
@@ -11653,7 +11644,6 @@ msgstr "Configuration de votre base de données..."
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/ai/SettingsAgentForm.tsx
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/sign-in-background-mock/components/SignInAppNavigationDrawerMock.tsx
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsSection.tsx
#: src/modules/settings/roles/role/components/SettingsRole.tsx
@@ -11871,16 +11861,6 @@ msgstr "Ciel"
msgid "Small section heading"
msgstr ""
#. js-lingui-id: 5J8ZFl
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Smart Model"
msgstr ""
#. js-lingui-id: qgvZ/2
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Smart model updated successfully"
msgstr ""
#. js-lingui-id: w+rJId
#: src/modules/settings/accounts/components/SettingsAccountsConnectionForm.tsx
msgid "SMTP Configuration"
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+30 -50
View File
@@ -1150,11 +1150,6 @@ msgstr "תכונה מתקדמת לשיפור ביצועי השאילתות וא
msgid "Advanced filter"
msgstr "מסנן מתקדם"
#. js-lingui-id: luNzWN
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Advanced model for complex planning"
msgstr ""
#. js-lingui-id: miuPUc
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartDataSourceDropdownContent.tsx
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartDataSourceDropdownContent.tsx
@@ -1268,11 +1263,6 @@ msgstr "בינה מלאכותית (AI)"
msgid "AI Model"
msgstr "מודל AI"
#. js-lingui-id: tGx4Zn
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "AI Models"
msgstr ""
#. js-lingui-id: Sfwld8
#: src/modules/ai/components/AIChatApiKeyNotConfiguredMessage.tsx
msgid "AI not configured. Set OPENAI_API_KEY, ANTHROPIC_API_KEY, or XAI_API_KEY in your environment."
@@ -2891,11 +2881,6 @@ msgstr "הגדרה"
msgid "Configure"
msgstr ""
#. js-lingui-id: 9px+al
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Configure AI models for routing and planning"
msgstr ""
#. js-lingui-id: +zUMwJ
#: src/pages/settings/security/SettingsSecurity.tsx
msgid "Configure an SSO connection"
@@ -2961,6 +2946,11 @@ msgstr "הגדירו את הווידג'ט הזה כדי להציג שדות"
msgid "Configure when this function should be executed"
msgstr ""
#. js-lingui-id: hzDiM0
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Configure your default AI model"
msgstr ""
#. js-lingui-id: Bh4GBD
#: src/modules/settings/accounts/components/SettingsAccountsSettingsSection.tsx
msgid "Configure your emails and calendar settings."
@@ -3949,6 +3939,7 @@ msgid "Decide which Sub-address fields you want to display"
msgstr "החליטו אילו שדות כתובת משנה אתם רוצים להציג"
#. js-lingui-id: ovBPCi
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
#: src/modules/settings/data-model/fields/forms/date/utils/getDisplayFormatLabel.ts
#: src/modules/settings/data-model/fields/forms/address/components/MultiSelectAddressFields.tsx
msgid "Default"
@@ -3964,6 +3955,21 @@ msgstr "מדינת ברירת המחדל"
msgid "Default Country Code"
msgstr "קוד מדינה ברירת מחדל"
#. js-lingui-id: J6v1s/
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default Model"
msgstr ""
#. js-lingui-id: n4U+0E
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default model for new chats and agents"
msgstr ""
#. js-lingui-id: K/FKkg
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default model updated successfully"
msgstr ""
#. js-lingui-id: 4HDpKr
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartColorPaletteOption.tsx
msgid "Default palette"
@@ -5812,9 +5818,9 @@ msgstr ""
msgid "Failed to save workspace instructions"
msgstr ""
#. js-lingui-id: YMSYb+
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Failed to update fast model"
#. js-lingui-id: 2D6TRg
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Failed to update default model"
msgstr ""
#. js-lingui-id: P1NmNz
@@ -5837,11 +5843,6 @@ msgstr ""
msgid "Failed to update role"
msgstr "העדכון של התפקיד נכשל"
#. js-lingui-id: h/0aT5
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Failed to update smart model"
msgstr ""
#. js-lingui-id: Dzh4a2
#: src/modules/settings/admin-panel/config-variables/hooks/useConfigVariableActions.ts
msgid "Failed to update variable"
@@ -5889,16 +5890,6 @@ msgstr "שיעור כשל"
msgid "False"
msgstr "שקר"
#. js-lingui-id: XVIZ7v
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Fast Model"
msgstr ""
#. js-lingui-id: UJHTjm
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Fast model updated successfully"
msgstr ""
#. js-lingui-id: X9kySA
#: src/modules/navigation-menu-item/components/CurrentWorkspaceMemberNavigationMenuItemFolders.tsx
#: src/modules/favorites/components/CurrentWorkspaceMemberFavoritesFolders.tsx
@@ -8183,6 +8174,11 @@ msgstr ""
msgid "Mission accomplished!"
msgstr "המשימה הושלמה!"
#. js-lingui-id: //nm2/
#: src/pages/settings/ai/SettingsAI.tsx
msgid "Models"
msgstr ""
#. js-lingui-id: hty0d5
#: src/pages/settings/profile/appearance/components/DateTimeSettingsCalendarStartDaySelect.tsx
msgid "Monday"
@@ -8228,6 +8224,7 @@ msgid "months"
msgstr ""
#. js-lingui-id: 2FYpfJ
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
msgid "More"
msgstr "עוד"
@@ -8930,7 +8927,6 @@ msgstr "אין נתונים זמינים"
#. js-lingui-id: UWZZdQ
#: src/pages/settings/ai/forms/components/SettingsAIAgentForm.tsx
#: src/pages/settings/ai/components/SettingsAgentSettingsTab.tsx
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "No models available. Please configure AI models in your workspace settings."
msgstr "אין מודלים זמינים. נא להגדיר מודלים לבינה מלאכותית בהגדרות מרחב העבודה שלכם."
@@ -10256,11 +10252,6 @@ msgstr "ביצועי התור"
msgid "Queue: {queueName}"
msgstr "תור: {queueName}"
#. js-lingui-id: GaAG2G
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Quick model for routing decisions"
msgstr ""
#. js-lingui-id: opSifa
#: src/modules/ai/utils/getToolDisplayMessage.ts
msgid "Ran {formattedName}"
@@ -11653,7 +11644,6 @@ msgstr "מגדיר את מסד הנתונים שלך..."
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/ai/SettingsAgentForm.tsx
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/sign-in-background-mock/components/SignInAppNavigationDrawerMock.tsx
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsSection.tsx
#: src/modules/settings/roles/role/components/SettingsRole.tsx
@@ -11871,16 +11861,6 @@ msgstr "תכלת"
msgid "Small section heading"
msgstr ""
#. js-lingui-id: 5J8ZFl
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Smart Model"
msgstr ""
#. js-lingui-id: qgvZ/2
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Smart model updated successfully"
msgstr ""
#. js-lingui-id: w+rJId
#: src/modules/settings/accounts/components/SettingsAccountsConnectionForm.tsx
msgid "SMTP Configuration"
+30 -50
View File
@@ -1150,11 +1150,6 @@ msgstr "Fejlett funkció a lekérdezések teljesítményének javítására és
msgid "Advanced filter"
msgstr "Speciális szűrő"
#. js-lingui-id: luNzWN
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Advanced model for complex planning"
msgstr ""
#. js-lingui-id: miuPUc
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartDataSourceDropdownContent.tsx
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartDataSourceDropdownContent.tsx
@@ -1268,11 +1263,6 @@ msgstr "MI"
msgid "AI Model"
msgstr "AI modell"
#. js-lingui-id: tGx4Zn
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "AI Models"
msgstr ""
#. js-lingui-id: Sfwld8
#: src/modules/ai/components/AIChatApiKeyNotConfiguredMessage.tsx
msgid "AI not configured. Set OPENAI_API_KEY, ANTHROPIC_API_KEY, or XAI_API_KEY in your environment."
@@ -2891,11 +2881,6 @@ msgstr "Konfiguráció"
msgid "Configure"
msgstr ""
#. js-lingui-id: 9px+al
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Configure AI models for routing and planning"
msgstr ""
#. js-lingui-id: +zUMwJ
#: src/pages/settings/security/SettingsSecurity.tsx
msgid "Configure an SSO connection"
@@ -2961,6 +2946,11 @@ msgstr "Konfigurálja ezt a widgetet a mezők megjelenítéséhez"
msgid "Configure when this function should be executed"
msgstr ""
#. js-lingui-id: hzDiM0
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Configure your default AI model"
msgstr ""
#. js-lingui-id: Bh4GBD
#: src/modules/settings/accounts/components/SettingsAccountsSettingsSection.tsx
msgid "Configure your emails and calendar settings."
@@ -3949,6 +3939,7 @@ msgid "Decide which Sub-address fields you want to display"
msgstr "Döntse el, melyik Al-cím mezőket szeretné megjeleníteni"
#. js-lingui-id: ovBPCi
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
#: src/modules/settings/data-model/fields/forms/date/utils/getDisplayFormatLabel.ts
#: src/modules/settings/data-model/fields/forms/address/components/MultiSelectAddressFields.tsx
msgid "Default"
@@ -3964,6 +3955,21 @@ msgstr "Alapértelmezett ország"
msgid "Default Country Code"
msgstr "Alapértelmezett országkód"
#. js-lingui-id: J6v1s/
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default Model"
msgstr ""
#. js-lingui-id: n4U+0E
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default model for new chats and agents"
msgstr ""
#. js-lingui-id: K/FKkg
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default model updated successfully"
msgstr ""
#. js-lingui-id: 4HDpKr
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartColorPaletteOption.tsx
msgid "Default palette"
@@ -5812,9 +5818,9 @@ msgstr ""
msgid "Failed to save workspace instructions"
msgstr ""
#. js-lingui-id: YMSYb+
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Failed to update fast model"
#. js-lingui-id: 2D6TRg
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Failed to update default model"
msgstr ""
#. js-lingui-id: P1NmNz
@@ -5837,11 +5843,6 @@ msgstr ""
msgid "Failed to update role"
msgstr "A szerepkör frissítése sikertelen"
#. js-lingui-id: h/0aT5
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Failed to update smart model"
msgstr ""
#. js-lingui-id: Dzh4a2
#: src/modules/settings/admin-panel/config-variables/hooks/useConfigVariableActions.ts
msgid "Failed to update variable"
@@ -5889,16 +5890,6 @@ msgstr "Hibaarány"
msgid "False"
msgstr "Hamis"
#. js-lingui-id: XVIZ7v
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Fast Model"
msgstr ""
#. js-lingui-id: UJHTjm
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Fast model updated successfully"
msgstr ""
#. js-lingui-id: X9kySA
#: src/modules/navigation-menu-item/components/CurrentWorkspaceMemberNavigationMenuItemFolders.tsx
#: src/modules/favorites/components/CurrentWorkspaceMemberFavoritesFolders.tsx
@@ -8183,6 +8174,11 @@ msgstr ""
msgid "Mission accomplished!"
msgstr "Küldetés teljesítve!"
#. js-lingui-id: //nm2/
#: src/pages/settings/ai/SettingsAI.tsx
msgid "Models"
msgstr ""
#. js-lingui-id: hty0d5
#: src/pages/settings/profile/appearance/components/DateTimeSettingsCalendarStartDaySelect.tsx
msgid "Monday"
@@ -8228,6 +8224,7 @@ msgid "months"
msgstr ""
#. js-lingui-id: 2FYpfJ
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
msgid "More"
msgstr "Több"
@@ -8930,7 +8927,6 @@ msgstr "Nincs elérhető metrikai adat"
#. js-lingui-id: UWZZdQ
#: src/pages/settings/ai/forms/components/SettingsAIAgentForm.tsx
#: src/pages/settings/ai/components/SettingsAgentSettingsTab.tsx
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "No models available. Please configure AI models in your workspace settings."
msgstr "Nincsenek elérhető modellek. Kérjük, állítsa be a MI modelleket a munkaterület beállításaiban."
@@ -10256,11 +10252,6 @@ msgstr "Sor teljesítmény"
msgid "Queue: {queueName}"
msgstr "Sor: {queueName}"
#. js-lingui-id: GaAG2G
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Quick model for routing decisions"
msgstr ""
#. js-lingui-id: opSifa
#: src/modules/ai/utils/getToolDisplayMessage.ts
msgid "Ran {formattedName}"
@@ -11653,7 +11644,6 @@ msgstr "Az adatbázis beállítása..."
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/ai/SettingsAgentForm.tsx
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/sign-in-background-mock/components/SignInAppNavigationDrawerMock.tsx
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsSection.tsx
#: src/modules/settings/roles/role/components/SettingsRole.tsx
@@ -11871,16 +11861,6 @@ msgstr "Égkék"
msgid "Small section heading"
msgstr ""
#. js-lingui-id: 5J8ZFl
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Smart Model"
msgstr ""
#. js-lingui-id: qgvZ/2
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Smart model updated successfully"
msgstr ""
#. js-lingui-id: w+rJId
#: src/modules/settings/accounts/components/SettingsAccountsConnectionForm.tsx
msgid "SMTP Configuration"
+30 -50
View File
@@ -1150,11 +1150,6 @@ msgstr "Funzionalità avanzata per migliorare le prestazioni delle query e impor
msgid "Advanced filter"
msgstr "Filtro avanzato"
#. js-lingui-id: luNzWN
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Advanced model for complex planning"
msgstr ""
#. js-lingui-id: miuPUc
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartDataSourceDropdownContent.tsx
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartDataSourceDropdownContent.tsx
@@ -1268,11 +1263,6 @@ msgstr "AI"
msgid "AI Model"
msgstr "Modello AI"
#. js-lingui-id: tGx4Zn
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "AI Models"
msgstr ""
#. js-lingui-id: Sfwld8
#: src/modules/ai/components/AIChatApiKeyNotConfiguredMessage.tsx
msgid "AI not configured. Set OPENAI_API_KEY, ANTHROPIC_API_KEY, or XAI_API_KEY in your environment."
@@ -2891,11 +2881,6 @@ msgstr "Configurazione"
msgid "Configure"
msgstr ""
#. js-lingui-id: 9px+al
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Configure AI models for routing and planning"
msgstr ""
#. js-lingui-id: +zUMwJ
#: src/pages/settings/security/SettingsSecurity.tsx
msgid "Configure an SSO connection"
@@ -2961,6 +2946,11 @@ msgstr "Configura questo widget per visualizzare i campi"
msgid "Configure when this function should be executed"
msgstr ""
#. js-lingui-id: hzDiM0
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Configure your default AI model"
msgstr ""
#. js-lingui-id: Bh4GBD
#: src/modules/settings/accounts/components/SettingsAccountsSettingsSection.tsx
msgid "Configure your emails and calendar settings."
@@ -3949,6 +3939,7 @@ msgid "Decide which Sub-address fields you want to display"
msgstr "Decidere quali campi del sottoindirizzo visualizzare"
#. js-lingui-id: ovBPCi
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
#: src/modules/settings/data-model/fields/forms/date/utils/getDisplayFormatLabel.ts
#: src/modules/settings/data-model/fields/forms/address/components/MultiSelectAddressFields.tsx
msgid "Default"
@@ -3964,6 +3955,21 @@ msgstr "Paese predefinito"
msgid "Default Country Code"
msgstr "Prefisso internazionale predefinito"
#. js-lingui-id: J6v1s/
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default Model"
msgstr ""
#. js-lingui-id: n4U+0E
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default model for new chats and agents"
msgstr ""
#. js-lingui-id: K/FKkg
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default model updated successfully"
msgstr ""
#. js-lingui-id: 4HDpKr
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartColorPaletteOption.tsx
msgid "Default palette"
@@ -5812,9 +5818,9 @@ msgstr ""
msgid "Failed to save workspace instructions"
msgstr ""
#. js-lingui-id: YMSYb+
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Failed to update fast model"
#. js-lingui-id: 2D6TRg
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Failed to update default model"
msgstr ""
#. js-lingui-id: P1NmNz
@@ -5837,11 +5843,6 @@ msgstr ""
msgid "Failed to update role"
msgstr "Impossibile aggiornare il ruolo"
#. js-lingui-id: h/0aT5
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Failed to update smart model"
msgstr ""
#. js-lingui-id: Dzh4a2
#: src/modules/settings/admin-panel/config-variables/hooks/useConfigVariableActions.ts
msgid "Failed to update variable"
@@ -5889,16 +5890,6 @@ msgstr "Tasso di errore"
msgid "False"
msgstr "Falso"
#. js-lingui-id: XVIZ7v
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Fast Model"
msgstr ""
#. js-lingui-id: UJHTjm
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Fast model updated successfully"
msgstr ""
#. js-lingui-id: X9kySA
#: src/modules/navigation-menu-item/components/CurrentWorkspaceMemberNavigationMenuItemFolders.tsx
#: src/modules/favorites/components/CurrentWorkspaceMemberFavoritesFolders.tsx
@@ -8183,6 +8174,11 @@ msgstr ""
msgid "Mission accomplished!"
msgstr "Missione compiuta!"
#. js-lingui-id: //nm2/
#: src/pages/settings/ai/SettingsAI.tsx
msgid "Models"
msgstr ""
#. js-lingui-id: hty0d5
#: src/pages/settings/profile/appearance/components/DateTimeSettingsCalendarStartDaySelect.tsx
msgid "Monday"
@@ -8228,6 +8224,7 @@ msgid "months"
msgstr ""
#. js-lingui-id: 2FYpfJ
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
msgid "More"
msgstr "Altro"
@@ -8930,7 +8927,6 @@ msgstr "Nessun dato metrico disponibile"
#. js-lingui-id: UWZZdQ
#: src/pages/settings/ai/forms/components/SettingsAIAgentForm.tsx
#: src/pages/settings/ai/components/SettingsAgentSettingsTab.tsx
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "No models available. Please configure AI models in your workspace settings."
msgstr "Nessun modello disponibile. Configurare i modelli AI nelle impostazioni del tuo workspace."
@@ -10256,11 +10252,6 @@ msgstr "Prestazioni della coda"
msgid "Queue: {queueName}"
msgstr "Coda: {queueName}"
#. js-lingui-id: GaAG2G
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Quick model for routing decisions"
msgstr ""
#. js-lingui-id: opSifa
#: src/modules/ai/utils/getToolDisplayMessage.ts
msgid "Ran {formattedName}"
@@ -11653,7 +11644,6 @@ msgstr "Configurazione del tuo database..."
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/ai/SettingsAgentForm.tsx
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/sign-in-background-mock/components/SignInAppNavigationDrawerMock.tsx
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsSection.tsx
#: src/modules/settings/roles/role/components/SettingsRole.tsx
@@ -11871,16 +11861,6 @@ msgstr "Cielo"
msgid "Small section heading"
msgstr ""
#. js-lingui-id: 5J8ZFl
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Smart Model"
msgstr ""
#. js-lingui-id: qgvZ/2
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Smart model updated successfully"
msgstr ""
#. js-lingui-id: w+rJId
#: src/modules/settings/accounts/components/SettingsAccountsConnectionForm.tsx
msgid "SMTP Configuration"
+30 -50
View File
@@ -1150,11 +1150,6 @@ msgstr "クエリのパフォーマンスを向上させ、重複制約を強制
msgid "Advanced filter"
msgstr "高度なフィルター"
#. js-lingui-id: luNzWN
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Advanced model for complex planning"
msgstr ""
#. js-lingui-id: miuPUc
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartDataSourceDropdownContent.tsx
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartDataSourceDropdownContent.tsx
@@ -1268,11 +1263,6 @@ msgstr "AI"
msgid "AI Model"
msgstr "AIモデル"
#. js-lingui-id: tGx4Zn
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "AI Models"
msgstr ""
#. js-lingui-id: Sfwld8
#: src/modules/ai/components/AIChatApiKeyNotConfiguredMessage.tsx
msgid "AI not configured. Set OPENAI_API_KEY, ANTHROPIC_API_KEY, or XAI_API_KEY in your environment."
@@ -2891,11 +2881,6 @@ msgstr "構成"
msgid "Configure"
msgstr ""
#. js-lingui-id: 9px+al
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Configure AI models for routing and planning"
msgstr ""
#. js-lingui-id: +zUMwJ
#: src/pages/settings/security/SettingsSecurity.tsx
msgid "Configure an SSO connection"
@@ -2961,6 +2946,11 @@ msgstr "フィールドを表示するには、このウィジェットを設定
msgid "Configure when this function should be executed"
msgstr ""
#. js-lingui-id: hzDiM0
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Configure your default AI model"
msgstr ""
#. js-lingui-id: Bh4GBD
#: src/modules/settings/accounts/components/SettingsAccountsSettingsSection.tsx
msgid "Configure your emails and calendar settings."
@@ -3949,6 +3939,7 @@ msgid "Decide which Sub-address fields you want to display"
msgstr "表示したいサブアドレスフィールドを選択してください"
#. js-lingui-id: ovBPCi
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
#: src/modules/settings/data-model/fields/forms/date/utils/getDisplayFormatLabel.ts
#: src/modules/settings/data-model/fields/forms/address/components/MultiSelectAddressFields.tsx
msgid "Default"
@@ -3964,6 +3955,21 @@ msgstr "デフォルトの国"
msgid "Default Country Code"
msgstr "デフォルトの国コード"
#. js-lingui-id: J6v1s/
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default Model"
msgstr ""
#. js-lingui-id: n4U+0E
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default model for new chats and agents"
msgstr ""
#. js-lingui-id: K/FKkg
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default model updated successfully"
msgstr ""
#. js-lingui-id: 4HDpKr
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartColorPaletteOption.tsx
msgid "Default palette"
@@ -5812,9 +5818,9 @@ msgstr ""
msgid "Failed to save workspace instructions"
msgstr ""
#. js-lingui-id: YMSYb+
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Failed to update fast model"
#. js-lingui-id: 2D6TRg
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Failed to update default model"
msgstr ""
#. js-lingui-id: P1NmNz
@@ -5837,11 +5843,6 @@ msgstr ""
msgid "Failed to update role"
msgstr "ロールの更新に失敗しました。"
#. js-lingui-id: h/0aT5
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Failed to update smart model"
msgstr ""
#. js-lingui-id: Dzh4a2
#: src/modules/settings/admin-panel/config-variables/hooks/useConfigVariableActions.ts
msgid "Failed to update variable"
@@ -5889,16 +5890,6 @@ msgstr "失敗率"
msgid "False"
msgstr "偽"
#. js-lingui-id: XVIZ7v
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Fast Model"
msgstr ""
#. js-lingui-id: UJHTjm
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Fast model updated successfully"
msgstr ""
#. js-lingui-id: X9kySA
#: src/modules/navigation-menu-item/components/CurrentWorkspaceMemberNavigationMenuItemFolders.tsx
#: src/modules/favorites/components/CurrentWorkspaceMemberFavoritesFolders.tsx
@@ -8183,6 +8174,11 @@ msgstr ""
msgid "Mission accomplished!"
msgstr "任務完了!"
#. js-lingui-id: //nm2/
#: src/pages/settings/ai/SettingsAI.tsx
msgid "Models"
msgstr ""
#. js-lingui-id: hty0d5
#: src/pages/settings/profile/appearance/components/DateTimeSettingsCalendarStartDaySelect.tsx
msgid "Monday"
@@ -8228,6 +8224,7 @@ msgid "months"
msgstr ""
#. js-lingui-id: 2FYpfJ
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
msgid "More"
msgstr "もっと"
@@ -8930,7 +8927,6 @@ msgstr "利用可能なメトリックスデータがありません"
#. js-lingui-id: UWZZdQ
#: src/pages/settings/ai/forms/components/SettingsAIAgentForm.tsx
#: src/pages/settings/ai/components/SettingsAgentSettingsTab.tsx
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "No models available. Please configure AI models in your workspace settings."
msgstr "モデルが利用可能ではありません。ワークスペース設定でAIモデルを設定してください。"
@@ -10256,11 +10252,6 @@ msgstr "キューのパフォーマンス"
msgid "Queue: {queueName}"
msgstr "キュー: {queueName}"
#. js-lingui-id: GaAG2G
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Quick model for routing decisions"
msgstr ""
#. js-lingui-id: opSifa
#: src/modules/ai/utils/getToolDisplayMessage.ts
msgid "Ran {formattedName}"
@@ -11653,7 +11644,6 @@ msgstr "データベースのセットアップ..."
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/ai/SettingsAgentForm.tsx
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/sign-in-background-mock/components/SignInAppNavigationDrawerMock.tsx
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsSection.tsx
#: src/modules/settings/roles/role/components/SettingsRole.tsx
@@ -11871,16 +11861,6 @@ msgstr "スカイ"
msgid "Small section heading"
msgstr ""
#. js-lingui-id: 5J8ZFl
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Smart Model"
msgstr ""
#. js-lingui-id: qgvZ/2
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Smart model updated successfully"
msgstr ""
#. js-lingui-id: w+rJId
#: src/modules/settings/accounts/components/SettingsAccountsConnectionForm.tsx
msgid "SMTP Configuration"
+30 -50
View File
@@ -1150,11 +1150,6 @@ msgstr "쿼리 성능을 개선하고 유니시티 제약 조건을 강제하는
msgid "Advanced filter"
msgstr "고급 필터"
#. js-lingui-id: luNzWN
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Advanced model for complex planning"
msgstr ""
#. js-lingui-id: miuPUc
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartDataSourceDropdownContent.tsx
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartDataSourceDropdownContent.tsx
@@ -1268,11 +1263,6 @@ msgstr "AI"
msgid "AI Model"
msgstr "AI 모델"
#. js-lingui-id: tGx4Zn
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "AI Models"
msgstr ""
#. js-lingui-id: Sfwld8
#: src/modules/ai/components/AIChatApiKeyNotConfiguredMessage.tsx
msgid "AI not configured. Set OPENAI_API_KEY, ANTHROPIC_API_KEY, or XAI_API_KEY in your environment."
@@ -2891,11 +2881,6 @@ msgstr "구성"
msgid "Configure"
msgstr ""
#. js-lingui-id: 9px+al
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Configure AI models for routing and planning"
msgstr ""
#. js-lingui-id: +zUMwJ
#: src/pages/settings/security/SettingsSecurity.tsx
msgid "Configure an SSO connection"
@@ -2961,6 +2946,11 @@ msgstr "필드를 표시하도록 이 위젯을 구성하세요"
msgid "Configure when this function should be executed"
msgstr ""
#. js-lingui-id: hzDiM0
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Configure your default AI model"
msgstr ""
#. js-lingui-id: Bh4GBD
#: src/modules/settings/accounts/components/SettingsAccountsSettingsSection.tsx
msgid "Configure your emails and calendar settings."
@@ -3949,6 +3939,7 @@ msgid "Decide which Sub-address fields you want to display"
msgstr "표시할 하위 주소 필드를 선택하세요"
#. js-lingui-id: ovBPCi
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
#: src/modules/settings/data-model/fields/forms/date/utils/getDisplayFormatLabel.ts
#: src/modules/settings/data-model/fields/forms/address/components/MultiSelectAddressFields.tsx
msgid "Default"
@@ -3964,6 +3955,21 @@ msgstr "기본 국가"
msgid "Default Country Code"
msgstr "기본 국가 코드"
#. js-lingui-id: J6v1s/
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default Model"
msgstr ""
#. js-lingui-id: n4U+0E
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default model for new chats and agents"
msgstr ""
#. js-lingui-id: K/FKkg
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default model updated successfully"
msgstr ""
#. js-lingui-id: 4HDpKr
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartColorPaletteOption.tsx
msgid "Default palette"
@@ -5812,9 +5818,9 @@ msgstr ""
msgid "Failed to save workspace instructions"
msgstr ""
#. js-lingui-id: YMSYb+
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Failed to update fast model"
#. js-lingui-id: 2D6TRg
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Failed to update default model"
msgstr ""
#. js-lingui-id: P1NmNz
@@ -5837,11 +5843,6 @@ msgstr ""
msgid "Failed to update role"
msgstr "역할 업데이트 실패"
#. js-lingui-id: h/0aT5
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Failed to update smart model"
msgstr ""
#. js-lingui-id: Dzh4a2
#: src/modules/settings/admin-panel/config-variables/hooks/useConfigVariableActions.ts
msgid "Failed to update variable"
@@ -5889,16 +5890,6 @@ msgstr "실패율"
msgid "False"
msgstr "거짓"
#. js-lingui-id: XVIZ7v
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Fast Model"
msgstr ""
#. js-lingui-id: UJHTjm
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Fast model updated successfully"
msgstr ""
#. js-lingui-id: X9kySA
#: src/modules/navigation-menu-item/components/CurrentWorkspaceMemberNavigationMenuItemFolders.tsx
#: src/modules/favorites/components/CurrentWorkspaceMemberFavoritesFolders.tsx
@@ -8183,6 +8174,11 @@ msgstr ""
msgid "Mission accomplished!"
msgstr "임무 완료!"
#. js-lingui-id: //nm2/
#: src/pages/settings/ai/SettingsAI.tsx
msgid "Models"
msgstr ""
#. js-lingui-id: hty0d5
#: src/pages/settings/profile/appearance/components/DateTimeSettingsCalendarStartDaySelect.tsx
msgid "Monday"
@@ -8228,6 +8224,7 @@ msgid "months"
msgstr ""
#. js-lingui-id: 2FYpfJ
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
msgid "More"
msgstr "더보기"
@@ -8930,7 +8927,6 @@ msgstr "사용 가능한 메트릭스 데이터 없음"
#. js-lingui-id: UWZZdQ
#: src/pages/settings/ai/forms/components/SettingsAIAgentForm.tsx
#: src/pages/settings/ai/components/SettingsAgentSettingsTab.tsx
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "No models available. Please configure AI models in your workspace settings."
msgstr "사용 가능한 모델이 없습니다. 작업 공간 설정에서 AI 모델을 구성해주세요."
@@ -10256,11 +10252,6 @@ msgstr "대기열 성능"
msgid "Queue: {queueName}"
msgstr "큐: {queueName}"
#. js-lingui-id: GaAG2G
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Quick model for routing decisions"
msgstr ""
#. js-lingui-id: opSifa
#: src/modules/ai/utils/getToolDisplayMessage.ts
msgid "Ran {formattedName}"
@@ -11653,7 +11644,6 @@ msgstr "데이터베이스 설정 중..."
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/ai/SettingsAgentForm.tsx
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/sign-in-background-mock/components/SignInAppNavigationDrawerMock.tsx
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsSection.tsx
#: src/modules/settings/roles/role/components/SettingsRole.tsx
@@ -11871,16 +11861,6 @@ msgstr "하늘색"
msgid "Small section heading"
msgstr ""
#. js-lingui-id: 5J8ZFl
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Smart Model"
msgstr ""
#. js-lingui-id: qgvZ/2
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Smart model updated successfully"
msgstr ""
#. js-lingui-id: w+rJId
#: src/modules/settings/accounts/components/SettingsAccountsConnectionForm.tsx
msgid "SMTP Configuration"
+30 -50
View File
@@ -1150,11 +1150,6 @@ msgstr "Geavanceerde functie om de prestaties van query's te verbeteren en unici
msgid "Advanced filter"
msgstr "Geavanceerd filter"
#. js-lingui-id: luNzWN
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Advanced model for complex planning"
msgstr ""
#. js-lingui-id: miuPUc
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartDataSourceDropdownContent.tsx
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartDataSourceDropdownContent.tsx
@@ -1268,11 +1263,6 @@ msgstr "AI"
msgid "AI Model"
msgstr "AI Model"
#. js-lingui-id: tGx4Zn
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "AI Models"
msgstr ""
#. js-lingui-id: Sfwld8
#: src/modules/ai/components/AIChatApiKeyNotConfiguredMessage.tsx
msgid "AI not configured. Set OPENAI_API_KEY, ANTHROPIC_API_KEY, or XAI_API_KEY in your environment."
@@ -2891,11 +2881,6 @@ msgstr "Configuratie"
msgid "Configure"
msgstr ""
#. js-lingui-id: 9px+al
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Configure AI models for routing and planning"
msgstr ""
#. js-lingui-id: +zUMwJ
#: src/pages/settings/security/SettingsSecurity.tsx
msgid "Configure an SSO connection"
@@ -2961,6 +2946,11 @@ msgstr "Configureer deze widget om velden weer te geven"
msgid "Configure when this function should be executed"
msgstr ""
#. js-lingui-id: hzDiM0
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Configure your default AI model"
msgstr ""
#. js-lingui-id: Bh4GBD
#: src/modules/settings/accounts/components/SettingsAccountsSettingsSection.tsx
msgid "Configure your emails and calendar settings."
@@ -3949,6 +3939,7 @@ msgid "Decide which Sub-address fields you want to display"
msgstr "Beslis welke sub-adresvelden je wilt weergeven"
#. js-lingui-id: ovBPCi
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
#: src/modules/settings/data-model/fields/forms/date/utils/getDisplayFormatLabel.ts
#: src/modules/settings/data-model/fields/forms/address/components/MultiSelectAddressFields.tsx
msgid "Default"
@@ -3964,6 +3955,21 @@ msgstr "Standaardland"
msgid "Default Country Code"
msgstr "Standaard landcode"
#. js-lingui-id: J6v1s/
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default Model"
msgstr ""
#. js-lingui-id: n4U+0E
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default model for new chats and agents"
msgstr ""
#. js-lingui-id: K/FKkg
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default model updated successfully"
msgstr ""
#. js-lingui-id: 4HDpKr
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartColorPaletteOption.tsx
msgid "Default palette"
@@ -5812,9 +5818,9 @@ msgstr ""
msgid "Failed to save workspace instructions"
msgstr ""
#. js-lingui-id: YMSYb+
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Failed to update fast model"
#. js-lingui-id: 2D6TRg
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Failed to update default model"
msgstr ""
#. js-lingui-id: P1NmNz
@@ -5837,11 +5843,6 @@ msgstr ""
msgid "Failed to update role"
msgstr "Fout bij het bijwerken van de rol"
#. js-lingui-id: h/0aT5
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Failed to update smart model"
msgstr ""
#. js-lingui-id: Dzh4a2
#: src/modules/settings/admin-panel/config-variables/hooks/useConfigVariableActions.ts
msgid "Failed to update variable"
@@ -5889,16 +5890,6 @@ msgstr "Foutpercentage"
msgid "False"
msgstr "Vals"
#. js-lingui-id: XVIZ7v
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Fast Model"
msgstr ""
#. js-lingui-id: UJHTjm
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Fast model updated successfully"
msgstr ""
#. js-lingui-id: X9kySA
#: src/modules/navigation-menu-item/components/CurrentWorkspaceMemberNavigationMenuItemFolders.tsx
#: src/modules/favorites/components/CurrentWorkspaceMemberFavoritesFolders.tsx
@@ -8183,6 +8174,11 @@ msgstr ""
msgid "Mission accomplished!"
msgstr "Missie volbracht!"
#. js-lingui-id: //nm2/
#: src/pages/settings/ai/SettingsAI.tsx
msgid "Models"
msgstr ""
#. js-lingui-id: hty0d5
#: src/pages/settings/profile/appearance/components/DateTimeSettingsCalendarStartDaySelect.tsx
msgid "Monday"
@@ -8228,6 +8224,7 @@ msgid "months"
msgstr ""
#. js-lingui-id: 2FYpfJ
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
msgid "More"
msgstr "Meer"
@@ -8930,7 +8927,6 @@ msgstr "Geen metrische gegevens beschikbaar"
#. js-lingui-id: UWZZdQ
#: src/pages/settings/ai/forms/components/SettingsAIAgentForm.tsx
#: src/pages/settings/ai/components/SettingsAgentSettingsTab.tsx
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "No models available. Please configure AI models in your workspace settings."
msgstr "Geen modellen beschikbaar. Configureer AI-modellen in je werkruimte-instellingen."
@@ -10256,11 +10252,6 @@ msgstr "Wachtrijprestatie"
msgid "Queue: {queueName}"
msgstr "Wachtrij: {queueName}"
#. js-lingui-id: GaAG2G
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Quick model for routing decisions"
msgstr ""
#. js-lingui-id: opSifa
#: src/modules/ai/utils/getToolDisplayMessage.ts
msgid "Ran {formattedName}"
@@ -11653,7 +11644,6 @@ msgstr "Uw database opzetten..."
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/ai/SettingsAgentForm.tsx
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/sign-in-background-mock/components/SignInAppNavigationDrawerMock.tsx
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsSection.tsx
#: src/modules/settings/roles/role/components/SettingsRole.tsx
@@ -11871,16 +11861,6 @@ msgstr "Lucht"
msgid "Small section heading"
msgstr ""
#. js-lingui-id: 5J8ZFl
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Smart Model"
msgstr ""
#. js-lingui-id: qgvZ/2
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Smart model updated successfully"
msgstr ""
#. js-lingui-id: w+rJId
#: src/modules/settings/accounts/components/SettingsAccountsConnectionForm.tsx
msgid "SMTP Configuration"
+30 -50
View File
@@ -1150,11 +1150,6 @@ msgstr "Avansert funksjon for å forbedre ytelsen til spørringer og for å hån
msgid "Advanced filter"
msgstr "Avansert filter"
#. js-lingui-id: luNzWN
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Advanced model for complex planning"
msgstr ""
#. js-lingui-id: miuPUc
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartDataSourceDropdownContent.tsx
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartDataSourceDropdownContent.tsx
@@ -1268,11 +1263,6 @@ msgstr "AI"
msgid "AI Model"
msgstr "AI-modell"
#. js-lingui-id: tGx4Zn
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "AI Models"
msgstr ""
#. js-lingui-id: Sfwld8
#: src/modules/ai/components/AIChatApiKeyNotConfiguredMessage.tsx
msgid "AI not configured. Set OPENAI_API_KEY, ANTHROPIC_API_KEY, or XAI_API_KEY in your environment."
@@ -2891,11 +2881,6 @@ msgstr "Konfigurasjon"
msgid "Configure"
msgstr ""
#. js-lingui-id: 9px+al
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Configure AI models for routing and planning"
msgstr ""
#. js-lingui-id: +zUMwJ
#: src/pages/settings/security/SettingsSecurity.tsx
msgid "Configure an SSO connection"
@@ -2961,6 +2946,11 @@ msgstr "Konfigurer denne widgeten for å vise felt"
msgid "Configure when this function should be executed"
msgstr ""
#. js-lingui-id: hzDiM0
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Configure your default AI model"
msgstr ""
#. js-lingui-id: Bh4GBD
#: src/modules/settings/accounts/components/SettingsAccountsSettingsSection.tsx
msgid "Configure your emails and calendar settings."
@@ -3949,6 +3939,7 @@ msgid "Decide which Sub-address fields you want to display"
msgstr "Bestem hvilke underadressefelt du vil vise"
#. js-lingui-id: ovBPCi
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
#: src/modules/settings/data-model/fields/forms/date/utils/getDisplayFormatLabel.ts
#: src/modules/settings/data-model/fields/forms/address/components/MultiSelectAddressFields.tsx
msgid "Default"
@@ -3964,6 +3955,21 @@ msgstr "Standardland"
msgid "Default Country Code"
msgstr "Standardlandkode"
#. js-lingui-id: J6v1s/
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default Model"
msgstr ""
#. js-lingui-id: n4U+0E
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default model for new chats and agents"
msgstr ""
#. js-lingui-id: K/FKkg
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default model updated successfully"
msgstr ""
#. js-lingui-id: 4HDpKr
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartColorPaletteOption.tsx
msgid "Default palette"
@@ -5812,9 +5818,9 @@ msgstr ""
msgid "Failed to save workspace instructions"
msgstr ""
#. js-lingui-id: YMSYb+
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Failed to update fast model"
#. js-lingui-id: 2D6TRg
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Failed to update default model"
msgstr ""
#. js-lingui-id: P1NmNz
@@ -5837,11 +5843,6 @@ msgstr ""
msgid "Failed to update role"
msgstr "Kunne ikke oppdatere rolle"
#. js-lingui-id: h/0aT5
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Failed to update smart model"
msgstr ""
#. js-lingui-id: Dzh4a2
#: src/modules/settings/admin-panel/config-variables/hooks/useConfigVariableActions.ts
msgid "Failed to update variable"
@@ -5889,16 +5890,6 @@ msgstr "Feilrate"
msgid "False"
msgstr "Usann"
#. js-lingui-id: XVIZ7v
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Fast Model"
msgstr ""
#. js-lingui-id: UJHTjm
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Fast model updated successfully"
msgstr ""
#. js-lingui-id: X9kySA
#: src/modules/navigation-menu-item/components/CurrentWorkspaceMemberNavigationMenuItemFolders.tsx
#: src/modules/favorites/components/CurrentWorkspaceMemberFavoritesFolders.tsx
@@ -8183,6 +8174,11 @@ msgstr ""
msgid "Mission accomplished!"
msgstr "Oppdrag utført!"
#. js-lingui-id: //nm2/
#: src/pages/settings/ai/SettingsAI.tsx
msgid "Models"
msgstr ""
#. js-lingui-id: hty0d5
#: src/pages/settings/profile/appearance/components/DateTimeSettingsCalendarStartDaySelect.tsx
msgid "Monday"
@@ -8228,6 +8224,7 @@ msgid "months"
msgstr ""
#. js-lingui-id: 2FYpfJ
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
msgid "More"
msgstr "Mer"
@@ -8930,7 +8927,6 @@ msgstr "Ingen metrikkdata tilgjengelig"
#. js-lingui-id: UWZZdQ
#: src/pages/settings/ai/forms/components/SettingsAIAgentForm.tsx
#: src/pages/settings/ai/components/SettingsAgentSettingsTab.tsx
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "No models available. Please configure AI models in your workspace settings."
msgstr "Ingen modeller tilgjengelig. Vennligst konfigurer AI-modeller i arbeidsområdeinnstillingene dine."
@@ -10256,11 +10252,6 @@ msgstr "Køyteytelse"
msgid "Queue: {queueName}"
msgstr "Kø: {queueName}"
#. js-lingui-id: GaAG2G
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Quick model for routing decisions"
msgstr ""
#. js-lingui-id: opSifa
#: src/modules/ai/utils/getToolDisplayMessage.ts
msgid "Ran {formattedName}"
@@ -11653,7 +11644,6 @@ msgstr "Konfigurere databasen din..."
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/ai/SettingsAgentForm.tsx
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/sign-in-background-mock/components/SignInAppNavigationDrawerMock.tsx
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsSection.tsx
#: src/modules/settings/roles/role/components/SettingsRole.tsx
@@ -11871,16 +11861,6 @@ msgstr "Himmel"
msgid "Small section heading"
msgstr ""
#. js-lingui-id: 5J8ZFl
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Smart Model"
msgstr ""
#. js-lingui-id: qgvZ/2
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Smart model updated successfully"
msgstr ""
#. js-lingui-id: w+rJId
#: src/modules/settings/accounts/components/SettingsAccountsConnectionForm.tsx
msgid "SMTP Configuration"
+30 -50
View File
@@ -1150,11 +1150,6 @@ msgstr "Zaawansowana funkcja poprawiająca wydajność zapytań i wymuszająca u
msgid "Advanced filter"
msgstr "Zaawansowany filtr"
#. js-lingui-id: luNzWN
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Advanced model for complex planning"
msgstr ""
#. js-lingui-id: miuPUc
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartDataSourceDropdownContent.tsx
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartDataSourceDropdownContent.tsx
@@ -1268,11 +1263,6 @@ msgstr "AI"
msgid "AI Model"
msgstr "Model AI"
#. js-lingui-id: tGx4Zn
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "AI Models"
msgstr ""
#. js-lingui-id: Sfwld8
#: src/modules/ai/components/AIChatApiKeyNotConfiguredMessage.tsx
msgid "AI not configured. Set OPENAI_API_KEY, ANTHROPIC_API_KEY, or XAI_API_KEY in your environment."
@@ -2891,11 +2881,6 @@ msgstr "Konfiguracja"
msgid "Configure"
msgstr ""
#. js-lingui-id: 9px+al
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Configure AI models for routing and planning"
msgstr ""
#. js-lingui-id: +zUMwJ
#: src/pages/settings/security/SettingsSecurity.tsx
msgid "Configure an SSO connection"
@@ -2961,6 +2946,11 @@ msgstr "Skonfiguruj ten widżet, aby wyświetlał pola"
msgid "Configure when this function should be executed"
msgstr ""
#. js-lingui-id: hzDiM0
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Configure your default AI model"
msgstr ""
#. js-lingui-id: Bh4GBD
#: src/modules/settings/accounts/components/SettingsAccountsSettingsSection.tsx
msgid "Configure your emails and calendar settings."
@@ -3949,6 +3939,7 @@ msgid "Decide which Sub-address fields you want to display"
msgstr "Zdecyduj, które pola podrzędnego adresu chcesz wyświetlić"
#. js-lingui-id: ovBPCi
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
#: src/modules/settings/data-model/fields/forms/date/utils/getDisplayFormatLabel.ts
#: src/modules/settings/data-model/fields/forms/address/components/MultiSelectAddressFields.tsx
msgid "Default"
@@ -3964,6 +3955,21 @@ msgstr "Domyślny kraj"
msgid "Default Country Code"
msgstr "Domyślny kod kraju"
#. js-lingui-id: J6v1s/
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default Model"
msgstr ""
#. js-lingui-id: n4U+0E
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default model for new chats and agents"
msgstr ""
#. js-lingui-id: K/FKkg
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default model updated successfully"
msgstr ""
#. js-lingui-id: 4HDpKr
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartColorPaletteOption.tsx
msgid "Default palette"
@@ -5812,9 +5818,9 @@ msgstr ""
msgid "Failed to save workspace instructions"
msgstr ""
#. js-lingui-id: YMSYb+
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Failed to update fast model"
#. js-lingui-id: 2D6TRg
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Failed to update default model"
msgstr ""
#. js-lingui-id: P1NmNz
@@ -5837,11 +5843,6 @@ msgstr ""
msgid "Failed to update role"
msgstr "Nie udało się zaktualizować roli"
#. js-lingui-id: h/0aT5
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Failed to update smart model"
msgstr ""
#. js-lingui-id: Dzh4a2
#: src/modules/settings/admin-panel/config-variables/hooks/useConfigVariableActions.ts
msgid "Failed to update variable"
@@ -5889,16 +5890,6 @@ msgstr "Wskaźnik niepowodzeń"
msgid "False"
msgstr "Fałsz"
#. js-lingui-id: XVIZ7v
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Fast Model"
msgstr ""
#. js-lingui-id: UJHTjm
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Fast model updated successfully"
msgstr ""
#. js-lingui-id: X9kySA
#: src/modules/navigation-menu-item/components/CurrentWorkspaceMemberNavigationMenuItemFolders.tsx
#: src/modules/favorites/components/CurrentWorkspaceMemberFavoritesFolders.tsx
@@ -8183,6 +8174,11 @@ msgstr ""
msgid "Mission accomplished!"
msgstr "Misja zakończona!"
#. js-lingui-id: //nm2/
#: src/pages/settings/ai/SettingsAI.tsx
msgid "Models"
msgstr ""
#. js-lingui-id: hty0d5
#: src/pages/settings/profile/appearance/components/DateTimeSettingsCalendarStartDaySelect.tsx
msgid "Monday"
@@ -8228,6 +8224,7 @@ msgid "months"
msgstr ""
#. js-lingui-id: 2FYpfJ
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
msgid "More"
msgstr "Więcej"
@@ -8930,7 +8927,6 @@ msgstr "Brak dostępnych danych o metrykach"
#. js-lingui-id: UWZZdQ
#: src/pages/settings/ai/forms/components/SettingsAIAgentForm.tsx
#: src/pages/settings/ai/components/SettingsAgentSettingsTab.tsx
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "No models available. Please configure AI models in your workspace settings."
msgstr "Brak dostępnych modeli. Skonfiguruj modele AI w ustawieniach przestrzeni roboczej."
@@ -10256,11 +10252,6 @@ msgstr "Wydajność kolejki"
msgid "Queue: {queueName}"
msgstr "Kolejka: {queueName}"
#. js-lingui-id: GaAG2G
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Quick model for routing decisions"
msgstr ""
#. js-lingui-id: opSifa
#: src/modules/ai/utils/getToolDisplayMessage.ts
msgid "Ran {formattedName}"
@@ -11653,7 +11644,6 @@ msgstr "Ustawianie twojej bazy danych..."
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/ai/SettingsAgentForm.tsx
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/sign-in-background-mock/components/SignInAppNavigationDrawerMock.tsx
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsSection.tsx
#: src/modules/settings/roles/role/components/SettingsRole.tsx
@@ -11871,16 +11861,6 @@ msgstr "Błękitny"
msgid "Small section heading"
msgstr ""
#. js-lingui-id: 5J8ZFl
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Smart Model"
msgstr ""
#. js-lingui-id: qgvZ/2
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Smart model updated successfully"
msgstr ""
#. js-lingui-id: w+rJId
#: src/modules/settings/accounts/components/SettingsAccountsConnectionForm.tsx
msgid "SMTP Configuration"
+30 -50
View File
@@ -1145,11 +1145,6 @@ msgstr ""
msgid "Advanced filter"
msgstr ""
#. js-lingui-id: luNzWN
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Advanced model for complex planning"
msgstr ""
#. js-lingui-id: miuPUc
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartDataSourceDropdownContent.tsx
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartDataSourceDropdownContent.tsx
@@ -1263,11 +1258,6 @@ msgstr ""
msgid "AI Model"
msgstr ""
#. js-lingui-id: tGx4Zn
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "AI Models"
msgstr ""
#. js-lingui-id: Sfwld8
#: src/modules/ai/components/AIChatApiKeyNotConfiguredMessage.tsx
msgid "AI not configured. Set OPENAI_API_KEY, ANTHROPIC_API_KEY, or XAI_API_KEY in your environment."
@@ -2886,11 +2876,6 @@ msgstr ""
msgid "Configure"
msgstr ""
#. js-lingui-id: 9px+al
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Configure AI models for routing and planning"
msgstr ""
#. js-lingui-id: +zUMwJ
#: src/pages/settings/security/SettingsSecurity.tsx
msgid "Configure an SSO connection"
@@ -2956,6 +2941,11 @@ msgstr ""
msgid "Configure when this function should be executed"
msgstr ""
#. js-lingui-id: hzDiM0
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Configure your default AI model"
msgstr ""
#. js-lingui-id: Bh4GBD
#: src/modules/settings/accounts/components/SettingsAccountsSettingsSection.tsx
msgid "Configure your emails and calendar settings."
@@ -3944,6 +3934,7 @@ msgid "Decide which Sub-address fields you want to display"
msgstr ""
#. js-lingui-id: ovBPCi
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
#: src/modules/settings/data-model/fields/forms/date/utils/getDisplayFormatLabel.ts
#: src/modules/settings/data-model/fields/forms/address/components/MultiSelectAddressFields.tsx
msgid "Default"
@@ -3959,6 +3950,21 @@ msgstr ""
msgid "Default Country Code"
msgstr ""
#. js-lingui-id: J6v1s/
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default Model"
msgstr ""
#. js-lingui-id: n4U+0E
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default model for new chats and agents"
msgstr ""
#. js-lingui-id: K/FKkg
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default model updated successfully"
msgstr ""
#. js-lingui-id: 4HDpKr
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartColorPaletteOption.tsx
msgid "Default palette"
@@ -5807,9 +5813,9 @@ msgstr ""
msgid "Failed to save workspace instructions"
msgstr ""
#. js-lingui-id: YMSYb+
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Failed to update fast model"
#. js-lingui-id: 2D6TRg
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Failed to update default model"
msgstr ""
#. js-lingui-id: P1NmNz
@@ -5832,11 +5838,6 @@ msgstr ""
msgid "Failed to update role"
msgstr ""
#. js-lingui-id: h/0aT5
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Failed to update smart model"
msgstr ""
#. js-lingui-id: Dzh4a2
#: src/modules/settings/admin-panel/config-variables/hooks/useConfigVariableActions.ts
msgid "Failed to update variable"
@@ -5884,16 +5885,6 @@ msgstr ""
msgid "False"
msgstr ""
#. js-lingui-id: XVIZ7v
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Fast Model"
msgstr ""
#. js-lingui-id: UJHTjm
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Fast model updated successfully"
msgstr ""
#. js-lingui-id: X9kySA
#: src/modules/navigation-menu-item/components/CurrentWorkspaceMemberNavigationMenuItemFolders.tsx
#: src/modules/favorites/components/CurrentWorkspaceMemberFavoritesFolders.tsx
@@ -8178,6 +8169,11 @@ msgstr ""
msgid "Mission accomplished!"
msgstr ""
#. js-lingui-id: //nm2/
#: src/pages/settings/ai/SettingsAI.tsx
msgid "Models"
msgstr ""
#. js-lingui-id: hty0d5
#: src/pages/settings/profile/appearance/components/DateTimeSettingsCalendarStartDaySelect.tsx
msgid "Monday"
@@ -8223,6 +8219,7 @@ msgid "months"
msgstr ""
#. js-lingui-id: 2FYpfJ
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
msgid "More"
msgstr ""
@@ -8925,7 +8922,6 @@ msgstr ""
#. js-lingui-id: UWZZdQ
#: src/pages/settings/ai/forms/components/SettingsAIAgentForm.tsx
#: src/pages/settings/ai/components/SettingsAgentSettingsTab.tsx
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "No models available. Please configure AI models in your workspace settings."
msgstr ""
@@ -10251,11 +10247,6 @@ msgstr ""
msgid "Queue: {queueName}"
msgstr ""
#. js-lingui-id: GaAG2G
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Quick model for routing decisions"
msgstr ""
#. js-lingui-id: opSifa
#: src/modules/ai/utils/getToolDisplayMessage.ts
msgid "Ran {formattedName}"
@@ -11648,7 +11639,6 @@ msgstr ""
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/ai/SettingsAgentForm.tsx
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/sign-in-background-mock/components/SignInAppNavigationDrawerMock.tsx
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsSection.tsx
#: src/modules/settings/roles/role/components/SettingsRole.tsx
@@ -11866,16 +11856,6 @@ msgstr ""
msgid "Small section heading"
msgstr ""
#. js-lingui-id: 5J8ZFl
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Smart Model"
msgstr ""
#. js-lingui-id: qgvZ/2
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Smart model updated successfully"
msgstr ""
#. js-lingui-id: w+rJId
#: src/modules/settings/accounts/components/SettingsAccountsConnectionForm.tsx
msgid "SMTP Configuration"
+30 -50
View File
@@ -1150,11 +1150,6 @@ msgstr "Recurso avançado para melhorar o desempenho de consultas e impor restri
msgid "Advanced filter"
msgstr "Filtro avançado"
#. js-lingui-id: luNzWN
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Advanced model for complex planning"
msgstr "Modelo avançado para planejamento complexo"
#. js-lingui-id: miuPUc
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartDataSourceDropdownContent.tsx
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartDataSourceDropdownContent.tsx
@@ -1268,11 +1263,6 @@ msgstr "IA"
msgid "AI Model"
msgstr "Modelo de IA"
#. js-lingui-id: tGx4Zn
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "AI Models"
msgstr "Modelos de IA"
#. js-lingui-id: Sfwld8
#: src/modules/ai/components/AIChatApiKeyNotConfiguredMessage.tsx
msgid "AI not configured. Set OPENAI_API_KEY, ANTHROPIC_API_KEY, or XAI_API_KEY in your environment."
@@ -2891,11 +2881,6 @@ msgstr "Configuração"
msgid "Configure"
msgstr ""
#. js-lingui-id: 9px+al
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Configure AI models for routing and planning"
msgstr "Configurar modelos de AI para roteamento e planejamento"
#. js-lingui-id: +zUMwJ
#: src/pages/settings/security/SettingsSecurity.tsx
msgid "Configure an SSO connection"
@@ -2961,6 +2946,11 @@ msgstr "Configure este widget para exibir campos"
msgid "Configure when this function should be executed"
msgstr ""
#. js-lingui-id: hzDiM0
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Configure your default AI model"
msgstr ""
#. js-lingui-id: Bh4GBD
#: src/modules/settings/accounts/components/SettingsAccountsSettingsSection.tsx
msgid "Configure your emails and calendar settings."
@@ -3949,6 +3939,7 @@ msgid "Decide which Sub-address fields you want to display"
msgstr "Decidir quais campos de sub-endereço você deseja exibir"
#. js-lingui-id: ovBPCi
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
#: src/modules/settings/data-model/fields/forms/date/utils/getDisplayFormatLabel.ts
#: src/modules/settings/data-model/fields/forms/address/components/MultiSelectAddressFields.tsx
msgid "Default"
@@ -3964,6 +3955,21 @@ msgstr "País Padrão"
msgid "Default Country Code"
msgstr "Código do País Padrão"
#. js-lingui-id: J6v1s/
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default Model"
msgstr ""
#. js-lingui-id: n4U+0E
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default model for new chats and agents"
msgstr ""
#. js-lingui-id: K/FKkg
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default model updated successfully"
msgstr ""
#. js-lingui-id: 4HDpKr
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartColorPaletteOption.tsx
msgid "Default palette"
@@ -5812,9 +5818,9 @@ msgstr ""
msgid "Failed to save workspace instructions"
msgstr ""
#. js-lingui-id: YMSYb+
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Failed to update fast model"
#. js-lingui-id: 2D6TRg
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Failed to update default model"
msgstr ""
#. js-lingui-id: P1NmNz
@@ -5837,11 +5843,6 @@ msgstr ""
msgid "Failed to update role"
msgstr "Falha ao atualizar a função"
#. js-lingui-id: h/0aT5
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Failed to update smart model"
msgstr ""
#. js-lingui-id: Dzh4a2
#: src/modules/settings/admin-panel/config-variables/hooks/useConfigVariableActions.ts
msgid "Failed to update variable"
@@ -5889,16 +5890,6 @@ msgstr "Taxa de falhas"
msgid "False"
msgstr "Falso"
#. js-lingui-id: XVIZ7v
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Fast Model"
msgstr ""
#. js-lingui-id: UJHTjm
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Fast model updated successfully"
msgstr ""
#. js-lingui-id: X9kySA
#: src/modules/navigation-menu-item/components/CurrentWorkspaceMemberNavigationMenuItemFolders.tsx
#: src/modules/favorites/components/CurrentWorkspaceMemberFavoritesFolders.tsx
@@ -8183,6 +8174,11 @@ msgstr ""
msgid "Mission accomplished!"
msgstr "Missão cumprida!"
#. js-lingui-id: //nm2/
#: src/pages/settings/ai/SettingsAI.tsx
msgid "Models"
msgstr ""
#. js-lingui-id: hty0d5
#: src/pages/settings/profile/appearance/components/DateTimeSettingsCalendarStartDaySelect.tsx
msgid "Monday"
@@ -8228,6 +8224,7 @@ msgid "months"
msgstr ""
#. js-lingui-id: 2FYpfJ
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
msgid "More"
msgstr "Mais"
@@ -8930,7 +8927,6 @@ msgstr "Nenhum dado de métricas disponível"
#. js-lingui-id: UWZZdQ
#: src/pages/settings/ai/forms/components/SettingsAIAgentForm.tsx
#: src/pages/settings/ai/components/SettingsAgentSettingsTab.tsx
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "No models available. Please configure AI models in your workspace settings."
msgstr "Nenhum modelo disponível. Por favor, configure modelos de IA nas configurações do seu workspace."
@@ -10256,11 +10252,6 @@ msgstr "Desempenho da fila"
msgid "Queue: {queueName}"
msgstr "Fila: {queueName}"
#. js-lingui-id: GaAG2G
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Quick model for routing decisions"
msgstr ""
#. js-lingui-id: opSifa
#: src/modules/ai/utils/getToolDisplayMessage.ts
msgid "Ran {formattedName}"
@@ -11653,7 +11644,6 @@ msgstr "Configurando seu banco de dados..."
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/ai/SettingsAgentForm.tsx
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/sign-in-background-mock/components/SignInAppNavigationDrawerMock.tsx
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsSection.tsx
#: src/modules/settings/roles/role/components/SettingsRole.tsx
@@ -11871,16 +11861,6 @@ msgstr "Céu"
msgid "Small section heading"
msgstr ""
#. js-lingui-id: 5J8ZFl
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Smart Model"
msgstr ""
#. js-lingui-id: qgvZ/2
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Smart model updated successfully"
msgstr ""
#. js-lingui-id: w+rJId
#: src/modules/settings/accounts/components/SettingsAccountsConnectionForm.tsx
msgid "SMTP Configuration"
+30 -50
View File
@@ -1150,11 +1150,6 @@ msgstr "Recurso avançado para melhorar o desempenho das consultas e impor restr
msgid "Advanced filter"
msgstr "Filtro avançado"
#. js-lingui-id: luNzWN
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Advanced model for complex planning"
msgstr ""
#. js-lingui-id: miuPUc
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartDataSourceDropdownContent.tsx
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartDataSourceDropdownContent.tsx
@@ -1268,11 +1263,6 @@ msgstr "IA"
msgid "AI Model"
msgstr "Modelo de IA"
#. js-lingui-id: tGx4Zn
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "AI Models"
msgstr ""
#. js-lingui-id: Sfwld8
#: src/modules/ai/components/AIChatApiKeyNotConfiguredMessage.tsx
msgid "AI not configured. Set OPENAI_API_KEY, ANTHROPIC_API_KEY, or XAI_API_KEY in your environment."
@@ -2891,11 +2881,6 @@ msgstr "Configuração"
msgid "Configure"
msgstr ""
#. js-lingui-id: 9px+al
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Configure AI models for routing and planning"
msgstr ""
#. js-lingui-id: +zUMwJ
#: src/pages/settings/security/SettingsSecurity.tsx
msgid "Configure an SSO connection"
@@ -2961,6 +2946,11 @@ msgstr "Configure este widget para exibir campos"
msgid "Configure when this function should be executed"
msgstr ""
#. js-lingui-id: hzDiM0
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Configure your default AI model"
msgstr ""
#. js-lingui-id: Bh4GBD
#: src/modules/settings/accounts/components/SettingsAccountsSettingsSection.tsx
msgid "Configure your emails and calendar settings."
@@ -3949,6 +3939,7 @@ msgid "Decide which Sub-address fields you want to display"
msgstr "Decidir quais campos de Sub-endereço você deseja exibir"
#. js-lingui-id: ovBPCi
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
#: src/modules/settings/data-model/fields/forms/date/utils/getDisplayFormatLabel.ts
#: src/modules/settings/data-model/fields/forms/address/components/MultiSelectAddressFields.tsx
msgid "Default"
@@ -3964,6 +3955,21 @@ msgstr "País padrão"
msgid "Default Country Code"
msgstr "Código de país padrão"
#. js-lingui-id: J6v1s/
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default Model"
msgstr ""
#. js-lingui-id: n4U+0E
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default model for new chats and agents"
msgstr ""
#. js-lingui-id: K/FKkg
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default model updated successfully"
msgstr ""
#. js-lingui-id: 4HDpKr
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartColorPaletteOption.tsx
msgid "Default palette"
@@ -5812,9 +5818,9 @@ msgstr ""
msgid "Failed to save workspace instructions"
msgstr ""
#. js-lingui-id: YMSYb+
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Failed to update fast model"
#. js-lingui-id: 2D6TRg
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Failed to update default model"
msgstr ""
#. js-lingui-id: P1NmNz
@@ -5837,11 +5843,6 @@ msgstr ""
msgid "Failed to update role"
msgstr "Falha ao atualizar a função"
#. js-lingui-id: h/0aT5
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Failed to update smart model"
msgstr ""
#. js-lingui-id: Dzh4a2
#: src/modules/settings/admin-panel/config-variables/hooks/useConfigVariableActions.ts
msgid "Failed to update variable"
@@ -5889,16 +5890,6 @@ msgstr "Taxa de falhas"
msgid "False"
msgstr "Falso"
#. js-lingui-id: XVIZ7v
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Fast Model"
msgstr ""
#. js-lingui-id: UJHTjm
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Fast model updated successfully"
msgstr ""
#. js-lingui-id: X9kySA
#: src/modules/navigation-menu-item/components/CurrentWorkspaceMemberNavigationMenuItemFolders.tsx
#: src/modules/favorites/components/CurrentWorkspaceMemberFavoritesFolders.tsx
@@ -8183,6 +8174,11 @@ msgstr ""
msgid "Mission accomplished!"
msgstr "Missão cumprida!"
#. js-lingui-id: //nm2/
#: src/pages/settings/ai/SettingsAI.tsx
msgid "Models"
msgstr ""
#. js-lingui-id: hty0d5
#: src/pages/settings/profile/appearance/components/DateTimeSettingsCalendarStartDaySelect.tsx
msgid "Monday"
@@ -8228,6 +8224,7 @@ msgid "months"
msgstr ""
#. js-lingui-id: 2FYpfJ
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
msgid "More"
msgstr "Mais"
@@ -8930,7 +8927,6 @@ msgstr "Não há dados de métricas disponíveis"
#. js-lingui-id: UWZZdQ
#: src/pages/settings/ai/forms/components/SettingsAIAgentForm.tsx
#: src/pages/settings/ai/components/SettingsAgentSettingsTab.tsx
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "No models available. Please configure AI models in your workspace settings."
msgstr "Nenhum modelo disponível. Por favor, configure modelos de IA nas configurações do seu espaço de trabalho."
@@ -10256,11 +10252,6 @@ msgstr "Desempenho da fila"
msgid "Queue: {queueName}"
msgstr "Fila: {queueName}"
#. js-lingui-id: GaAG2G
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Quick model for routing decisions"
msgstr ""
#. js-lingui-id: opSifa
#: src/modules/ai/utils/getToolDisplayMessage.ts
msgid "Ran {formattedName}"
@@ -11653,7 +11644,6 @@ msgstr "Configurando seu banco de dados..."
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/ai/SettingsAgentForm.tsx
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/sign-in-background-mock/components/SignInAppNavigationDrawerMock.tsx
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsSection.tsx
#: src/modules/settings/roles/role/components/SettingsRole.tsx
@@ -11871,16 +11861,6 @@ msgstr "Céu"
msgid "Small section heading"
msgstr ""
#. js-lingui-id: 5J8ZFl
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Smart Model"
msgstr ""
#. js-lingui-id: qgvZ/2
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Smart model updated successfully"
msgstr ""
#. js-lingui-id: w+rJId
#: src/modules/settings/accounts/components/SettingsAccountsConnectionForm.tsx
msgid "SMTP Configuration"
+30 -50
View File
@@ -1150,11 +1150,6 @@ msgstr "Funcție avansată pentru a îmbunătăți performanța interogărilor
msgid "Advanced filter"
msgstr "Filtru avansat"
#. js-lingui-id: luNzWN
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Advanced model for complex planning"
msgstr ""
#. js-lingui-id: miuPUc
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartDataSourceDropdownContent.tsx
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartDataSourceDropdownContent.tsx
@@ -1268,11 +1263,6 @@ msgstr "AI"
msgid "AI Model"
msgstr "Model AI"
#. js-lingui-id: tGx4Zn
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "AI Models"
msgstr ""
#. js-lingui-id: Sfwld8
#: src/modules/ai/components/AIChatApiKeyNotConfiguredMessage.tsx
msgid "AI not configured. Set OPENAI_API_KEY, ANTHROPIC_API_KEY, or XAI_API_KEY in your environment."
@@ -2891,11 +2881,6 @@ msgstr "Configurație"
msgid "Configure"
msgstr ""
#. js-lingui-id: 9px+al
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Configure AI models for routing and planning"
msgstr ""
#. js-lingui-id: +zUMwJ
#: src/pages/settings/security/SettingsSecurity.tsx
msgid "Configure an SSO connection"
@@ -2961,6 +2946,11 @@ msgstr "Configurați acest widget pentru a afișa câmpuri"
msgid "Configure when this function should be executed"
msgstr ""
#. js-lingui-id: hzDiM0
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Configure your default AI model"
msgstr ""
#. js-lingui-id: Bh4GBD
#: src/modules/settings/accounts/components/SettingsAccountsSettingsSection.tsx
msgid "Configure your emails and calendar settings."
@@ -3949,6 +3939,7 @@ msgid "Decide which Sub-address fields you want to display"
msgstr "Decideți ce câmpuri Sub-adresă doriți să afișați"
#. js-lingui-id: ovBPCi
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
#: src/modules/settings/data-model/fields/forms/date/utils/getDisplayFormatLabel.ts
#: src/modules/settings/data-model/fields/forms/address/components/MultiSelectAddressFields.tsx
msgid "Default"
@@ -3964,6 +3955,21 @@ msgstr "Țară implicită"
msgid "Default Country Code"
msgstr "Codul de țară implicit"
#. js-lingui-id: J6v1s/
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default Model"
msgstr ""
#. js-lingui-id: n4U+0E
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default model for new chats and agents"
msgstr ""
#. js-lingui-id: K/FKkg
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Default model updated successfully"
msgstr ""
#. js-lingui-id: 4HDpKr
#: src/modules/command-menu/pages/page-layout/components/dropdown-content/ChartColorPaletteOption.tsx
msgid "Default palette"
@@ -5812,9 +5818,9 @@ msgstr ""
msgid "Failed to save workspace instructions"
msgstr ""
#. js-lingui-id: YMSYb+
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Failed to update fast model"
#. js-lingui-id: 2D6TRg
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
msgid "Failed to update default model"
msgstr ""
#. js-lingui-id: P1NmNz
@@ -5837,11 +5843,6 @@ msgstr ""
msgid "Failed to update role"
msgstr "Eroare la actualizarea rolului"
#. js-lingui-id: h/0aT5
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Failed to update smart model"
msgstr ""
#. js-lingui-id: Dzh4a2
#: src/modules/settings/admin-panel/config-variables/hooks/useConfigVariableActions.ts
msgid "Failed to update variable"
@@ -5889,16 +5890,6 @@ msgstr "Rată de eșec"
msgid "False"
msgstr "Fals"
#. js-lingui-id: XVIZ7v
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Fast Model"
msgstr ""
#. js-lingui-id: UJHTjm
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Fast model updated successfully"
msgstr ""
#. js-lingui-id: X9kySA
#: src/modules/navigation-menu-item/components/CurrentWorkspaceMemberNavigationMenuItemFolders.tsx
#: src/modules/favorites/components/CurrentWorkspaceMemberFavoritesFolders.tsx
@@ -8183,6 +8174,11 @@ msgstr ""
msgid "Mission accomplished!"
msgstr "Misiune îndeplinită!"
#. js-lingui-id: //nm2/
#: src/pages/settings/ai/SettingsAI.tsx
msgid "Models"
msgstr ""
#. js-lingui-id: hty0d5
#: src/pages/settings/profile/appearance/components/DateTimeSettingsCalendarStartDaySelect.tsx
msgid "Monday"
@@ -8228,6 +8224,7 @@ msgid "months"
msgstr ""
#. js-lingui-id: 2FYpfJ
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
msgid "More"
msgstr "Mai mult"
@@ -8930,7 +8927,6 @@ msgstr "Nu sunt disponibile date metrice"
#. js-lingui-id: UWZZdQ
#: src/pages/settings/ai/forms/components/SettingsAIAgentForm.tsx
#: src/pages/settings/ai/components/SettingsAgentSettingsTab.tsx
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "No models available. Please configure AI models in your workspace settings."
msgstr "Nu există modele disponibile. Vă rugăm să configurați modelele AI în setările spațiului de lucru."
@@ -10256,11 +10252,6 @@ msgstr "Performanța cozii"
msgid "Queue: {queueName}"
msgstr "Coada: {queueName}"
#. js-lingui-id: GaAG2G
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Quick model for routing decisions"
msgstr ""
#. js-lingui-id: opSifa
#: src/modules/ai/utils/getToolDisplayMessage.ts
msgid "Ran {formattedName}"
@@ -11653,7 +11644,6 @@ msgstr "Configurarea bazei tale de date..."
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
#: src/pages/settings/applications/SettingsApplicationDetails.tsx
#: src/pages/settings/ai/SettingsAgentForm.tsx
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/sign-in-background-mock/components/SignInAppNavigationDrawerMock.tsx
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsSection.tsx
#: src/modules/settings/roles/role/components/SettingsRole.tsx
@@ -11871,16 +11861,6 @@ msgstr "Cer"
msgid "Small section heading"
msgstr ""
#. js-lingui-id: 5J8ZFl
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Smart Model"
msgstr ""
#. js-lingui-id: qgvZ/2
#: src/pages/settings/ai/components/SettingsAIRouterSettings.tsx
msgid "Smart model updated successfully"
msgstr ""
#. js-lingui-id: w+rJId
#: src/modules/settings/accounts/components/SettingsAccountsConnectionForm.tsx
msgid "SMTP Configuration"

Some files were not shown because too many files have changed in this diff Show More