* refactor getAssetUrl() util to enhance parameter handling for consistency
* add tests
* refactor: update getAssetUrl calls to use object parameter for isDownload option
* refactor: update getAssetUrl calls to use object parameter
* refactor and add modified date to the File Display asset URL
* refactor and add modified date to the Image Display asset URL
* refactor and add modified date to the User Display asset URL
* add cache buster to File Interface and update to use refactored getAssetUrl()
* add cache buster to User View and update to use refactored getAssetUrl()
* add cache buster to Comment Input and update to use refactored getAssetUrl()
* add cache buster to Comment Header and update to use refactored getAssetUrl()
* add cache buster to Module Bar Avatar and update to use refactored getAssetUrl()
* add cache buster to User Popover and update to use refactored getAssetUrl()
* make value prop optional in File component
* simplify getAssetUrl call in customLogoPath
* add optional modified_on field to Avatar type
* add changeset
* add avatar fields to user item query
* add modified_on field to user avatar in loadUsers API call
* add avatar.modified_on field to user fetch API call
* add modified_on field to user_created.avatar in useComments function to provide the field in <comment-item-header>
* add hydration for avatar.modified_on field in module-bar-avatar component
* add modified_on field to file query and update image thumbnail computed
* init
* initial tool
* cleanup
* prefer server over mcpserver
* add admin tool check
* type defineTool
* update ping tool
* improve tool handling
* update tool definition
* rework typres and add initial tool
* add schema to input
* add schema to handler opts
* add system prompt
* rename defineTool types
* Update tool.ts
* handle zod errors
* return correct format
* fix tool list
* prefer names from tool definition
* continue items improv
* return zod as schema output
* pass data down from zod parse
* handle no input schema tool
* update response format
* add handler note
* Ensure collection exists before access
* prefer name in tool file
* remove redundant message
* fix type issue and typo
* sanitize query
* add singleton support
* add remaining item tool commands
* support validate schema
* remove single actions and deleteByQuery
* fix toarray import
* updated tool types
* add back missing rpc message import
* remove unnecessary input schema
* updated tool registration
* separate schema
* removed partial
* remove tool name prefix on schema
* file tool wip
* pass down correct collection for folders/files
* fix global list
* add base64 asset retrieval support
* enable files tool
* add multi tool result type support
* add schema tool
* add missing file schema to files tool
* add create singleton support
* fixed system tool missing inputSchema
* inputschema is not optional
* initial flows tools
* forgot to push the index
* fix closing the connection
* Update server.ts
* format
* revert
* inputSchema is not optional
* add notification handler
* fix tool handlers
* simplified express handler and fixed non-closing get requests from inspector
* add comment
* changed sse error code
* small tweaks
* auto sanitize query
* utilize relevant file/folder service over generic item
* prefer admin flag over explicit check
* add base description
* updated flows
* improve overview command
* dont include invalid field properties
* fix typings for schema overview
* add note to schema overview
* add schema overview interface choices
* reorg
* remove util and default opt out of mcp prevent delete
* fixed unreturned code paths
* fix service typing
* prevent delete should be opt in
* fix import
* fmt
* fix query
* added flows tool test
* added some tool util funcs for better testing
* return deleted keys on item delete
* add item tool tests
* Update items.test.ts
* fix delete for schema tool
* add schema tests
* export the transport class
* make handleRequest async
* await the handleREquest function
* reverted misleading async change
* Added awaiting to server tests
* added some files tests
* fmt
* fix mcp file test types
* move collection, field and relation to their own tools
* Add prompts
* enable trigger flow
* improve prompts
* test wip
* add prompts to build
* remove invalid args for schema tools
* finish collection and field tests
* finish relation tests
* add catalog for mcp sdk
* prefer zod builtin for json schema conversion
* Do not use custom types in json schema
* fix data extraction and validation process
* do not allow additional properties
* MCP -> Schema Tool and Prompt Updates (#25617)
* separate system prompt description and system prompt
* stop duplicating field names to save context
* fetch only collections list first - add keys to fetch detailed schema
* updated schema prompt
* add repeater support for schema tool
* add collection item dropdown support
* items prompt
* long form prompts (need to tighten and condense)
* simplified query schema
* fmt
* Improve typings
* add basic prompt support and add type file
* add query support
* Finalize prompt support
* remove outdata env values
* MCP settings page (#25687)
* Render MCP in all caps
* Bootstrap AI settings page
* Add migration for mcp settings
* Add translations for mcp settings
* Setup fields in system data
* Add more translations
* Add use-collection-validation composable
* Bootstrap mcp prompts validation interface
* Finish settings page
* Add changeset
* Run formatter and resolve stylelint warning
* remove changeset
---------
Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>
* remove unnecessary object strict changes
* revert import ordering
* designate specific file per tool
* default delete to disabled
* account for empty messages
* remove custom type for relation item
* MCP -> Schema Tool -> Add support for relationships (#25693)
* rough in relations for schema detail
* Update schema.ts
---------
Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>
* cleanup schemas
* MCP Settings -> Improvements (#25696)
* add sidebar component for consistency
* add the translations we can for mcp prompts schema
* fix icon for collection
* set proper order
* clean up interaction
* handle edge case where ai prompts collection is deleted but value still saved in settings
* Ignore AI settings in general settings (#25698)
* add system prompt override
* allow disabling system prompt
* add import from url option to files tool
* remove legacy type arg
* add url to result
* add url to flows
* add endpoint for read
* add url display to prompt
* add changeset
* fmt
* Do not utilize custom type in file import
* Improve appearance of v-notice components (in the MCP settings) (#25714)
* add indentContent prop to v-notice for improved alignment of slot content and change appearance of the button inside the v-notice
* add snapshot
* fix mcp system prompt note display
* Add dynamic mimetype and audio support
* Allow disabling mcp feature via env
* update changeset
* MCP -> Update Settings Labels and Notes (#25725)
* update copy for settings labels and descriptions
* add divider
* suggestions from mtkg team
* use success notice when validated
* update validation success msg
* add top notice
* just the endpoint and nothing but the endpoint
Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>
* fix systemPrompt to system_prompt
---------
Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>
* utilize flow service for definition and limit to manual flows
* remove unnecessary check
* fmt
* ensure json expected fields are json
* Update folder tests
* prefer test
* add asset tool tests
* improve mcp test typing for folder and asset
* update collection tests
* prefer plural tool naming
* update field tests
* remove create action for files
* update file tests
* update flow tests
* update item tests
* update operation tests
* update relation tests
* add system tests
* Update trigger flow tests
* reorg asset error test to error handling
* add admin accountability for relation tests
* update schema tests
* prefer test over it
* add admin check
* prefer aftereach for clear mock
* improve protocol error
* MCP -> Possible Relations Tool Fix (#25754)
* remove extra try catch and switch to zod v4 built in errors
* replace custom schemas
* replace schemas
* resolve typing and format
* prefer discriminate union for actions
---------
Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>
* add json rpc error for invalid prompt
* prefer non protocol for tools and fix protocal errors for prompts
* promptsCollection should be optional
* fix server issues
* update server tests
* fix useCollectionValidation tests
* Remove remaining file create artifacts
* Remove custom types to allow proper validation
* restrict access to non public
* adjust schema tool to be non admin
* fix schema tool tests
* add non admin tool check in tests
* allow either field or data.field for relation create
* 405 to indicate no stream support
* ensure system accountability is not admin
* MCP Prompt Cleanup (#25745)
* asset-tool prompt
* trim files prompt
* remove tags example
* remove create from files prompt
* cleanup collection
* cleanup items
* add missing examples to operations
* add xml structure to improve comprehension
* flows and operations improvements
* remove create action from files tool
* fix query schema
* remove reused ref for OpenAI support
* update fields
* cleanup collections
* detailed field example
* cleanup folder
* update relations
* unconfuse folders and collection folders
---------
Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>
* fmt
* FlowItemInputSchema should be partial
* Fix operation tool input schema
* Fix schema tool tests
* MCP -> Improve collections tool prompts (#25781)
* Fix collection <> folder issue
* improve system fields handling
* Add asset downscaling
* fmt
* Add tool title annotation and prefix name with `directus`
* Fix tests for updated naming
* improve asset tests
* Update title to correct location
* Improve `inputSchema` for LLM ingestion (#25789)
* do not use top level unions
* support multi field create
* update prompt
* support transaction al calls on fieldsService methods
* cleanup
---------
Co-authored-by: bryantgillespie <hey@bryantgillespie.com>
* update field tests
* fix relations prompt
* Do not skip internal collections as long as permissions allow
* Update api/src/services/server.ts
Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>
* Update app.ts
Co-Authored-By: Brainslug <br41nslug@users.noreply.github.com>
* whoops
* revert ws changes
---------
Co-authored-by: Brainslug <tim@brainslug.nl>
Co-authored-by: Bryant Gillespie <bryant@hireclockwork.com>
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
Co-authored-by: Florian C. Wachmann <dev@formfcw.com>
Co-authored-by: bryantgillespie <hey@bryantgillespie.com>
Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>
* Dangerously update API deps
* Dangerously move app dependencies to pnpm-workspace
* Move all dependencies to catalog
* Sort catalog
* Pnpm update
* Use pnpm 10.14
* Update for zod breaking change
* Fix unhead breaking change
* Downgrade major api upgrades
* Downgrade app major upgrades
* Fix app tests
* Downgrade isolated-vm
* Add changeset
* Fix template in head
* Resolve unhead lang signature
* Downgrade unhead
* Downgrade keyv/redis
It uses a different redis lib under the hood which is incompatible
* Resolve import in test
* Update and move workspace root dependencies
* Update CSS for updated linter rules
* Oops
* Run formatter
* Update rule name
* Run prettier
* Move utils peer to catalog
* Add focus-trap dependency
* Make tests deterministic by dropping random
* Remove random dep
* Drop random package
* Update pnpm lock
* Update app/src/composables/use-permissions/collection/lib/is-action-allowed.test.ts
---------
Co-authored-by: Alex Gaillard <alex@directus.io>
* Move and update dependencies
* Gen tests for check-requirements
* Add test coverage to create-directus-project
* Fix typescript issues in index file
* Add changeset
* Pull inquirer from catalog
* Only run when not in a test
* Add vitest
* Add test coverage for index file
* Add vitest config
* Add changeset
* Run w/ prettier
* Update dependencies and move to catalog
* Add use-collection test
* Add 100% test coverage for use-collection
* Add tests for use-custom-selection
* Add tests for use-custom-selection
* Update workspace packages
* Make tests work with vitest 3
* Gen use-element-size tests
* Gen tests for use-filter-fields
* Gen tests for use-groupable
* Run formatter
* Run formatter some more
* Match node type to engine in package.json
* Gen tests for use-layout
* Gen tests for useSizeClass
* Gen tests for use-sync
* Add deprecation warning to useSync
* Gen tests for use-system
* Run formatter
* Update types for node type update
* Run formatter
* Add changeset
* Setup language_direction user setting
* Add option translations
* Add rtl const
* Return dir from getCurrentLanguage
* Set htmlAttrs for lang / dir
* Update tests, fix fallback
* Add test:watch script
* Add rtl transform in icon file
* Make sure the progress bar animates rtl
Devil's in the details
* Make sure sidebar animates correctly on smaller screens
* Care too much about the details
* Fix directionality on slider
* Fix drawer transitions
* Arrow alignment in settings
* Stacked drawers effect
* Full screen navigation
* Revert menu alignment
* Fix nudging on smoke click
* Add changeset
* Update app/src/components/v-menu.vue
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Format
* Format rebased work
* One more formatting quirk
* Update app/src/lang/translations/en-US.yaml
Co-authored-by: Florian C. Wachmann <dev@formfcw.com>
* Update .changeset/giant-cloths-play.md
Co-authored-by: Florian C. Wachmann <dev@formfcw.com>
* Add translation
* Remove importants
* Improve typing in get-current-language
* Update app/src/views/private/private-view.vue
Co-authored-by: Florian C. Wachmann <dev@formfcw.com>
* Update app/src/views/private/private-view.vue
Co-authored-by: Florian C. Wachmann <dev@formfcw.com>
* Fix tooltip directions
* Refactor user store to setup script
* Add language/dir to userStore
* Replace getCurrentLanguage w/ userStore
* Make html attrs reactive
* Rename language_direction to text_direction
* Appease the robot overlords
* Add text-direction to user type
* Make text-direction not nullable
* Fix arrow alignment
* fix top tooltips
* run formatter
* mirror directional icons
* Fix positioning for rtl
* Fix flow attachments
* Replace magic number with const
* Start refactoring arrows business logic
No way to properly write unit tests for these bits otherwise. Increases the surface of this PR quite a bit, but feels like a necessary evil...
* Move minMaxPoint to separate file
* Move is-point-in-panel out
* Move generateCorner to separate file
* Update docs
* Move range function out
* Move find-best-position to separate file
* Move get-points to separate file
* Move generate-path out of main fn
* Move create-line to separate file
* Rewrite docblock
* Add tests for generate arrows
* Make sure icons are only mirrored in rtl
* Add RTL for flow arrows
* Run formatter
* Remove extraneous setLanguage calls
* Fix mocks
* Fix generate test
* Fix review notes
* Fix pinia test stubbing
* Fix test runner and add coverage for rtl
* Mock global pinia in v-info test
* Remove unused imports
* Remove unused type
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Florian C. Wachmann <dev@formfcw.com>
* stream app extensions from the filesystem instead of storing them in the heap
* cleanup
* temp commit
* fmt and cleanup
* rename import and remove rollup
* fix lock file
* add EXTENSIONS_ROLLDOWN to switch between roll-up/down
* add comment
* fmt
* Update .changeset/violet-sloths-shine.md
Co-authored-by: ian <licitdev@gmail.com>
* Update api/package.json
Co-authored-by: ian <licitdev@gmail.com>
---------
Co-authored-by: ian <licitdev@gmail.com>
* fix replacing process.env.NODE_ENV on backend extensions
* use actual process.env['NODE_ENV']
* default to production to make it less of a breaking change
* Update shiny-eagles-stare.md
---------
Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>
* Added backlink query param
* add to sdk
* fmt
* fix and add more tests
* fmt
* Add check for boolean just in case
Query params should be strings, adding check since type is unknown
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Ensure no duplication
* small fix
* Create shaggy-bears-begin.md
* Update .changeset/shaggy-bears-begin.md
Co-authored-by: ian <licitdev@gmail.com>
---------
Co-authored-by: ian <licitdev@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Add key/value infomation to db errors
* make key/value error info consistent across DBs
* fmt and fix tests
* fix errors and clean up code
* fix tests
* fmt and fix tests
* fix linter...
* fix tests
* jeezz that formatter and linter.....
* fix fields in pg error
* rename key to value
* Update .changeset/sour-lands-sniff.md
---------
Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>
* Install uuid
* Add project id on migrate/install
* Include project id in telemetry
* Add changeset
* Fix snapshot
* Use migration timestamp for project_id UUID generation
Updated the migration to use the timestamp from 'directus_migrations' as the msecs value when generating the project_id UUID.
* Fix formatting
* Add into types and sdk
* update changeset
---------
Co-authored-by: ian <licitdev@gmail.com>
Co-authored-by: Connor Winston <connor@winston.guru>
Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>
* Bump tar-fs to 2.1.2
* Bump vue-i18n to 11.1.2
* Bump vite to 4.5.14
* Bump vite to 5.4.19
* Bump undici to 7.5.0
* Create six-dryers-punch.md
* fix lock
* attempt to re-create client if preload failed
* allow for client failure exit
* allow for client http option overrides
* add changeset
* Show "Service Unavailable" if provider is not available on sso button
---------
Co-authored-by: Nitwel <mail@nitwel.de>
* Build out license-banner component
* Implement display logic
* Add migration
* Mobile styles and add correct links
* Add dynamic color support for license SVG
* Add UTM links
* Changes from design review
* Copy changes and styles to fit
* Add changeset
* Add all packages to changeset
* Improve translation interpolation to allow for accurate translations
* Combine license_banner_seen and license_banner_disabled to accepted_terms and rename env var
* Format
* Capitalize translation
* Fix formatting error
* Use nbsp character instead of interpolation (#25308)
Co-authored-by: Alex Gaillard <alex@directus.io>
---------
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
* fix cohersion of values only in rest
* fix tests
* Update late-pans-draw.md
* default back to keep old behavior
* fmt
* combined mapValuesDeep into deepMap and cleaned function up.
* ran formatter
* Update .changeset/fine-boats-brush.md
---------
Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>
Co-authored-by: Brainslug <tim@brainslug.nl>
Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>
* update base styles
* remove rendundant focus styles in v-button
* update base styles
* ensure keyboard navigation for the base layout
* make clickable v-icon component accessible and update instances accordingly
* make v-fancy-select accessible
* make clickable v-chip component accessible
* update focus ring offset for select cell in table row component
* add focus-visible style for search and filter icons
* make shortcuts in permissions row accessible with button elements and focus-visible styles
* enhance accessibility for custom input in select-radio component
* make field name clickable by changing span to button for improved accessibility
* add border-radius to focus-visible style for improved consistency
* implement focus trap in v-dialog component
* refactor focus ring styles for improved accessibility and consistency
* update focus ring styles for base layout
* add skip menu component for improved navigation accessibility
* refactor live preview component to improve accessibility
* implement focus trap and escape key handling in v-menu component for improved accessibility
* refactor select-color component styles for improved focus ring consistency
* improve search input component accessibility
* enhance node component styles for improved focus visibility
* refactor v-input and v-select components for improved accessibility
* update snapshots
* improve keyboard navigation of v-list-group and v-list-item
* remove unused focus ring styles from private view component
* add noFocusReturn prop to v-menu for improved focus management
* refactor module-bar-avatar component for improved focus management and accessibility
* refactor notifications-preview component to improve structure
* add aria-expanded attribute to sidebar-button component for improved accessibility
* update useFocusTrap configuration to prevent escape key from deactivating focus trap
* refactor header component to improve selection button behavior and accessibility
* add apply event to dialogs for improved user interaction & accessibility
- Updated v-dialog components to emit an 'apply' event for better handling of user actions.
- Enhanced various components including v-drawer, v-upload, and v-remove to utilize the new 'apply' event.
- Improved accessibility and user experience by allowing actions to be triggered on specific conditions.
* enhance table layout for improved keyboard accessibility
* enhance focus visibility styles for breadcrumb and version button components
* add another focus ring offset variable
* enhance focus ring styles for active version item in version menu
* enhance context menu toggle styles for improved focus visibility
* refactor select-dropdown-m2o component for improved structure and accessibility
* update focus ring offset for block style in v-checkbox component
* refactor focus ring styles for improved accessibility on main elements
* enhance keyboard accessibility for table row interactions
* enhance keyboard accessibility for item links in list components
* update focus ring styles for markdown editor to improve accessibility
* refactor input handling and improve activation logic for autocomplete component
* enhance color picker interaction by adding toggle functionality and improving focus handling
* enhance icon interface interaction by adding click and keydown event handling for better accessibility
* refactor datetime interface by replacing v-input with v-list-item for improved structure and accessibility
* enhance focus styles for map interface to improve accessibility
* enhance focus styles for list items in datetime and select-dropdown interfaces to improve accessibility
* improve translation interface accessibility
* refactor group detail interface for improved accessibility and interaction
* enhance dialog interactions with apply handlers for improved user experience
* enhance v-checkbox and select-multiple-checkbox components with focus handling for custom inputs
* enhance v-checkbox and select-multiple-checkbox components for improved accessibility
* update tests
* refactor: replace label div with button for improved accessibility and interaction
* refactor: replace v-input with v-list-item for improved interaction and accessibility
* style: adjust spacing in v-checkbox for improved layout and readability
* refactor: update addOtherValue function to accept focus parameter for improved interaction
* fix: add tabindex to file input for better accessibility and set button type for cancel action
* refactor: replace v-input with v-list-item for improved interaction and accessibility
* fix: add immediate option to watch for internalActive in useOverlayFocusTrap for better responsiveness
* add applyShortcut prop to v-dialog, v-drawer, and overlay-item for customizable keyboard shortcuts
* feat: implement file input interaction with v-list-item for improved Accessibility
* improve accessibility for comments sidebar
* refactor: replace div with button in v-detail and revision-item for improved accessibility
* fix: update button attributes and focus-visible styles for improved accessibility
* feat: add apply event to dialogs for improved interaction handling
* fix: refactor removeField function for improved clarity and accessibility
* update key binding in v-fancy-select template for improved rendering
* fix: enhance keyboard interaction for table row
* fix: add button type attribute and style for 'set to now' functionality in date picker
* fix: ensure primary key updates only when there are internal edits in overlay-item
* update dialog apply handlers
* add changeset
* prettier
* rename focusCustomInput prop to autofocusCustomInput for clarity
* re-rename class to `other-input`
* add class to buttons in field template and translation input for improved clarity
* remove unnecessary offset property from v-list-item styles
* refactor: move headerColor style to the style block
* style: add `-webkit-user-select` to each occurrence of `user-select`
* style: move outline reset css to the `*:not(svg *)`
* Refactor itemsMap object to allItems array
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
* fix previous code suggestion issues
* reduce z-index value for skip menu component
* refactor: move @apply scripts from template to script block
* refactor larger inline scripts to script block
---------
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
* fix cohersion of values only in rest
* fix tests
* Update late-pans-draw.md
* default back to keep old behavior
* fmt
* slight test cleanup
* test name
* fix: added ADMIN_PASSWORD, ADMIN_TOKEN, KEY, and SECRET to TYPE_MAP to treat them as strings by default
* Create neat-wasps-change.md
* Update neat-wasps-change.md
---------
Co-authored-by: Nitwel <mail@nitwel.de>