[User] Provide a JSON object that satisfies the schema "transcend.yml". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

transcend.yml

Define personal data schema and Transcend config as code with the Transcend CLI.

readOnly fullAdmin viewAllActionItems manageAllActionItems makeDataSubjectRequest connectDataSilos deployPrivacyCenter manageConsentManager viewConsentManager manageConsentManagerDisplaySettings manageConsentManagerDeveloperSettings manageDataFlow deployConsentManager deployTestConsentManager viewCustomerDataDataMapping viewCustomerDataPrivacyRequests manageAccessControl manageApiKeys manageBilling manageDataMap managedAssignedIntegrations managedAssignedDataInventory managedAssignedConsentManager managedAssignedRequests viewAssignedIntegrations viewAssignedDataInventory viewAssignedConsentManager viewAssignedRequests manageDataSubjectRequestSettings manageEmailTemplates manageOrganizationInfo managePrivacyCenter viewPrivacyCenter manageLegalHold manageRequestCompilation manageRequestIdentities manageRequestSecurity manageSombraRootKeys manageSSO manageEmailDomains requestApproval viewApiKeys viewDataFlow viewDataMap viewLegalHold viewDataSubjectRequestSettings viewEmailTemplates viewEmailDomains viewRequestCompilation viewRequestIdentitySettings viewRequests viewScopes viewSSO viewEmployees viewDataInventory manageDataInventory manageGlobalAttributes viewGlobalAttributes viewAssessments manageAssessments viewAssignedAssessments manageAssignedAssessments approveAssessments managePrompts managePromptRuns executePrompt viewPromptRuns viewPrompts approvePrompts manageAuditor executeAuditor viewCodeScanning manageCodeScanning viewPathfinder managePathfinder viewContractScanning manageContractScanning viewAuditorRuns viewAuditEvents manageActionItemCollections viewManagedConsentDatabaseAdminApi manageStoredPreferences managePreferenceStoreSettings viewPreferenceStoreSettings managePolicies viewPolicies manageIntlMessages viewIntlMessages llmLogTransfer manageWorkflows

MULTI_SELECT SINGLE_SELECT TEXT EMAIL TELEPHONE URL ASSESSMENT

actionItem airgapCookie airgapDataFlow assessmentForm assessmentGroup auditorRun auditorSchedule businessEntity dataSubCategory dataPoint dataPointLevel dataSilo enricher identifier legalHold legalMatter processingActivity processingPurposeSubCategory prompt promptGroup promptRun request scannedObject scannedObjectPath subject subDataPoint vendor

EU AF AX AL DZ AS AD AO AI AQ AG AR AM AW AU AT AZ BS BH BD BB BY BE BZ BJ BM BT BO BA BW BV BR IO VG BN BG BF BI KH CM CA CV BQ KY CF TD CL CN CX CC CO KM CG CD CK CR CI HR CU CW CY CZ DK DJ DM DO EC EG SV GQ ER EE SZ ET FK FO FJ FI FR GF PF TF GA GM GE DE GH GI GR GL GD GP GU GT GG GN GW GY HT HM HN HK HU IS IN ID IR IQ IE IM IL IT JM JP JE JO KZ KE KI KW KG LA LV LB LS LR LY LI LT LU MO MG MW MY MV ML MT MH MQ MR MU YT MX FM MD MC MN ME MS MA MZ MM NA NR NP NL NC NZ NI NE NG NU NF KP MK MP NO OM PK PW PS PA PG PY PE PH PN PL PT PR QA RE RO RU RW WS SM ST SA SN RS SC SL SG SX SK SI SB SO ZA GS KR SS ES LK BL SH KN LC MF PM VC SD SR SJ SE CH SY TW TJ TZ TH TL TG TK TO TT TN TR TM TC TV UM VI UG UA AE GB US UY UZ VU VA VE VN WF EH YE ZM ZW

FINANCIAL HEALTH CONTACT LOCATION DEMOGRAPHIC ID ONLINE_ACTIVITY USER_PROFILE SOCIAL_MEDIA CONNECTION TRACKING DEVICE SURVEY OTHER UNSPECIFIED NOT_PERSONAL_DATA INTEGRATION_IDENTIFIER

ESSENTIAL ADDITIONAL_FUNCTIONALITY ADVERTISING MARKETING ANALYTICS PERSONALIZATION OPERATION_SECURITY LEGAL TRANSFER SALE HR OTHER UNSPECIFIED

QuickOptions QuickOptions3 AcceptAll AcceptAllRejectAllToggle AcceptAllOrMoreChoices AcceptOrRejectAll AcceptOrRejectAllOrMoreChoices AcceptOrRejectAnalytics AcceptOrRejectAdvertising NoticeAndDoNotSell DoNotSellExplainer CompleteOptionsToggles PrivacyPolicyNotice PrivacyPolicyNoticeWithCloseButton CompleteOptions CompleteOptionsInverted Hidden TCF_EU

om ab aa af sq am ar-DZ ar-BH ar-EG ar-IQ ar-JO ar-KW ar-LB ar-LY ar-MA ar-OM ar-QA ar-SA ar-SY ar-TN ar-AE ar-YE ar hy as ay az ba eu be bn dz bh bi br bg-BG bg my km ca zh-CN zh-HK zh-MO zh-SG zh-TW zh co hr-HR hr cs-CZ cs da-DK da div nl-BE nl-NL nl en-AU en-BZ en-CA en-IE en-JM en-NZ en-PH en-ZA en-CH en-TT en-GB en-US en-ZW us eo et et-EE fo fa fj fi-FI fi fr-BE fr-CA fr-FR fr-LU fr-MC fr-CH fr fy mk gd gl ka de-AT de-DE de-LI de-LU de-CH de el-GR el kl gn gu ha iw hi hu-HU hu is is-IS in ia ie ik ga ga-IE it-IT it-CH it ja jw kn ks kk rw ky rn kok ko ku kz lo la lv lv-LV ln lt-LT lt mg ms ml mt mt-MT mi mr mo mn na ne no nb nn no-NO nb-NO nn-NO oc or ps pl-PL pl pt-BR pt-PT pt-CH pt pa qu rm ro-MD ro-RO ro ru-MD ru sm sg sa sr sh st sn sd si ss sk sk-SK sl sl-SI so sb es-AR es-BO es-CL es-CO es-CR es-DO es-EC es-SV es-ES es-GT es-HN es-MX es-NI es-PA es-PY es-PE es-PR es-US es-UY es-VE es su sx sw sv-FI sv-SE sv gsw gsw-LI gsw-CH syr tl tg ta tt te th bo ti to ts tn tr tk tw uk ur uz vi vo cy wo xh yi yo zu

Africa/Abidjan Africa/Accra Africa/Addis_Ababa Africa/Algiers Africa/Asmera Africa/Bamako Africa/Bangui Africa/Banjul Africa/Bissau Africa/Blantyre Africa/Brazzaville Africa/Bujumbura Africa/Cairo Africa/Casablanca Africa/Ceuta Africa/Conakry Africa/Dakar Africa/Dar_es_Salaam Africa/Djibouti Africa/Douala Africa/El_Aaiun Africa/Freetown Africa/Gaborone Africa/Harare Africa/Johannesburg Africa/Juba Africa/Kampala Africa/Khartoum Africa/Kigali Africa/Kinshasa Africa/Lagos Africa/Libreville Africa/Lome Africa/Luanda Africa/Lubumbashi Africa/Lusaka Africa/Malabo Africa/Maputo Africa/Maseru Africa/Mbabane Africa/Mogadishu Africa/Monrovia Africa/Nairobi Africa/Ndjamena Africa/Niamey Africa/Nouakchott Africa/Ouagadougou Africa/Porto-Novo Africa/Sao_Tome Africa/Tripoli Africa/Tunis Africa/Windhoek America/Adak America/Anchorage America/Anguilla America/Antigua America/Araguaina America/Argentina/La_Rioja America/Argentina/Rio_Gallegos America/Argentina/Salta America/Argentina/San_Juan America/Argentina/San_Luis America/Argentina/Tucuman America/Argentina/Ushuaia America/Aruba America/Asuncion America/Bahia America/Bahia_Banderas America/Barbados America/Belem America/Belize America/Blanc-Sablon America/Boa_Vista America/Bogota America/Boise America/Buenos_Aires America/Cambridge_Bay America/Campo_Grande America/Cancun America/Caracas America/Catamarca America/Cayenne America/Cayman America/Chicago America/Chihuahua America/Coral_Harbour America/Cordoba America/Costa_Rica America/Creston America/Cuiaba America/Curacao America/Danmarkshavn America/Dawson America/Dawson_Creek America/Denver America/Detroit America/Dominica America/Edmonton America/Eirunepe America/El_Salvador America/Fort_Nelson America/Fortaleza America/Glace_Bay America/Godthab America/Goose_Bay America/Grand_Turk America/Grenada America/Guadeloupe America/Guatemala America/Guayaquil America/Guyana America/Halifax America/Havana America/Hermosillo America/Indiana/Knox America/Indiana/Marengo America/Indiana/Petersburg America/Indiana/Tell_City America/Indiana/Vevay America/Indiana/Vincennes America/Indiana/Winamac America/Indianapolis America/Inuvik America/Iqaluit America/Jamaica America/Jujuy America/Juneau America/Kentucky/Monticello America/Kralendijk America/La_Paz America/Lima America/Los_Angeles America/Louisville America/Lower_Princes America/Maceio America/Managua America/Manaus America/Marigot America/Martinique America/Matamoros America/Mazatlan America/Mendoza America/Menominee America/Merida America/Metlakatla America/Mexico_City America/Miquelon America/Moncton America/Monterrey America/Montevideo America/Montreal America/Montserrat America/Nassau America/New_York America/Nipigon America/Nome America/Noronha America/North_Dakota/Beulah America/North_Dakota/Center America/North_Dakota/New_Salem America/Ojinaga America/Panama America/Pangnirtung America/Paramaribo America/Phoenix America/Port-au-Prince America/Port_of_Spain America/Porto_Velho America/Puerto_Rico America/Punta_Arenas America/Rainy_River America/Rankin_Inlet America/Recife America/Regina America/Resolute America/Rio_Branco America/Santa_Isabel America/Santarem America/Santiago America/Santo_Domingo America/Sao_Paulo America/Scoresbysund America/Sitka America/St_Barthelemy America/St_Johns America/St_Kitts America/St_Lucia America/St_Thomas America/St_Vincent America/Swift_Current America/Tegucigalpa America/Thule America/Thunder_Bay America/Tijuana America/Toronto America/Tortola America/Vancouver America/Whitehorse America/Winnipeg America/Yakutat America/Yellowknife Antarctica/Casey Antarctica/Davis Antarctica/DumontDUrville Antarctica/Macquarie Antarctica/Mawson Antarctica/McMurdo Antarctica/Palmer Antarctica/Rothera Antarctica/Syowa Antarctica/Troll Antarctica/Vostok Arctic/Longyearbyen Asia/Aden Asia/Almaty Asia/Amman Asia/Anadyr Asia/Aqtau Asia/Aqtobe Asia/Ashgabat Asia/Atyrau Asia/Baghdad Asia/Bahrain Asia/Baku Asia/Bangkok Asia/Barnaul Asia/Beirut Asia/Bishkek Asia/Brunei Asia/Calcutta Asia/Chita Asia/Choibalsan Asia/Colombo Asia/Damascus Asia/Dhaka Asia/Dili Asia/Dubai Asia/Dushanbe Asia/Famagusta Asia/Gaza Asia/Hebron Asia/Hong_Kong Asia/Hovd Asia/Irkutsk Asia/Jakarta Asia/Jayapura Asia/Jerusalem Asia/Kabul Asia/Kamchatka Asia/Karachi Asia/Katmandu Asia/Khandyga Asia/Krasnoyarsk Asia/Kuala_Lumpur Asia/Kuching Asia/Kuwait Asia/Macau Asia/Magadan Asia/Makassar Asia/Manila Asia/Muscat Asia/Nicosia Asia/Novokuznetsk Asia/Novosibirsk Asia/Omsk Asia/Oral Asia/Phnom_Penh Asia/Pontianak Asia/Pyongyang Asia/Qatar Asia/Qostanay Asia/Qyzylorda Asia/Rangoon Asia/Riyadh Asia/Saigon Asia/Sakhalin Asia/Samarkand Asia/Seoul Asia/Shanghai Asia/Singapore Asia/Srednekolymsk Asia/Taipei Asia/Tashkent Asia/Tbilisi Asia/Tehran Asia/Thimphu Asia/Tokyo Asia/Tomsk Asia/Ulaanbaatar Asia/Urumqi Asia/Ust-Nera Asia/Vientiane Asia/Vladivostok Asia/Yakutsk Asia/Yekaterinburg Asia/Yerevan Atlantic/Azores Atlantic/Bermuda Atlantic/Canary Atlantic/Cape_Verde Atlantic/Faeroe Atlantic/Madeira Atlantic/Reykjavik Atlantic/South_Georgia Atlantic/St_Helena Atlantic/Stanley Australia/Adelaide Australia/Brisbane Australia/Broken_Hill Australia/Currie Australia/Darwin Australia/Eucla Australia/Hobart Australia/Lindeman Australia/Lord_Howe Australia/Melbourne Australia/Perth Australia/Sydney Europe/Amsterdam Europe/Andorra Europe/Astrakhan Europe/Athens Europe/Belgrade Europe/Berlin Europe/Bratislava Europe/Brussels Europe/Bucharest Europe/Budapest Europe/Busingen Europe/Chisinau Europe/Copenhagen Europe/Dublin Europe/Gibraltar Europe/Guernsey Europe/Helsinki Europe/Isle_of_Man Europe/Istanbul Europe/Jersey Europe/Kaliningrad Europe/Kiev Europe/Kirov Europe/Lisbon Europe/Ljubljana Europe/London Europe/Luxembourg Europe/Madrid Europe/Malta Europe/Mariehamn Europe/Minsk Europe/Monaco Europe/Moscow Europe/Oslo Europe/Paris Europe/Podgorica Europe/Prague Europe/Riga Europe/Rome Europe/Samara Europe/San_Marino Europe/Sarajevo Europe/Saratov Europe/Simferopol Europe/Skopje Europe/Sofia Europe/Stockholm Europe/Tallinn Europe/Tirane Europe/Ulyanovsk Europe/Uzhgorod Europe/Vaduz Europe/Vatican Europe/Vienna Europe/Vilnius Europe/Volgograd Europe/Warsaw Europe/Zagreb Europe/Zaporozhye Europe/Zurich Indian/Antananarivo Indian/Chagos Indian/Christmas Indian/Cocos Indian/Comoro Indian/Kerguelen Indian/Mahe Indian/Maldives Indian/Mauritius Indian/Mayotte Indian/Reunion Pacific/Apia Pacific/Auckland Pacific/Bougainville Pacific/Chatham Pacific/Easter Pacific/Efate Pacific/Enderbury Pacific/Fakaofo Pacific/Fiji Pacific/Funafuti Pacific/Galapagos Pacific/Gambier Pacific/Guadalcanal Pacific/Guam Pacific/Honolulu Pacific/Johnston Pacific/Kiritimati Pacific/Kosrae Pacific/Kwajalein Pacific/Majuro Pacific/Marquesas Pacific/Midway Pacific/Nauru Pacific/Niue Pacific/Norfolk Pacific/Noumea Pacific/Pago_Pago Pacific/Palau Pacific/Pitcairn Pacific/Ponape Pacific/Port_Moresby Pacific/Rarotonga Pacific/Saipan Pacific/Tahiti Pacific/Tarawa Pacific/Tongatapu Pacific/Truk Pacific/Wake Pacific/Wallis

name instructions agentId codeInterpreterEnabled retrievalEnabled large-language-model

en ar fr es de it ja ru ar-AE fr-FR de-DE de-AT de-CH it-IT it-CH af-ZA bg-BG zh-CN hr-HR cs-CZ da-DK en-GB en-CA en-AE fi-FI el-GR hi-IN hu-HU id-ID ja-JP ko-KR lt-LT ms-MY mr-IN nb-NO pl-PL pt-BR pt-PT ro-RO ru-RU sr-Latn-RS sv-SE ta-IN th-TH tr-TR uk-UA vi-VN zu-ZA en-US en-AU fr-BE fr-CA fr-CH en-IE nl-NL nl-BE es-ES es-419 zh-HK he-IL en-NZ et-EE is-IS lv-LV mt-MT sk-SK sl-SL

dataSilo subDataPoint vendor dataSubCategory processingPurposeSubCategory businessEntity processingActivity

Provide a JSON object that satisfies the schema "transcend.yml". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[User] Provide a JSON object that satisfies the schema "JSON schema for Travis CI configuration files". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

If some rows in the build matrix are allowed to fail, the build won't be marked as finished until they have completed. To mark the build as finished as soon as possible, add fast_finish: true

The name of the build stage

The name of the build stage

Specifies the order of build stages

Specifies a condition for the stage

Build config specification version

Import YAML config snippets that can be shared across repositories.

Your account name, token and optional channel

cassandra couchdb docker elasticsearch mariadb memcached mongodb mysql neo4j postgresql rabbitmq redis redis-server rethinkdb riak xvfb

apt bundler cargo ccache cocoapods packages pip yarn npm

android bash c c++ clojure cpp crystal csharp d dart dartlang elixir elm erlang generic go golang groovy haskell haxe java javascript julia jvm matlab minimal nix node node.js node_js nodejs obj-c obj_c objective-c objective_c perl perl6 php python r ruby rust scala sh shell smalltalk

When the optional solution key is present, Travis will run NuGet package restore and build the given solution.

By default, Travis CI will assume that your Podfile is in the root of the repository. If this is not the case, you can specify where the Podfile is

A list of packages to install via brew. This option is ignored on non-OS X builds.

CRAN mirror to use for fetching packages

Dictionary of repositories to pass to options(repos)

The CPU Architecture to run the job on

The operating system to run the job on

The Ubuntu distribution to use

precise trusty xenial bionic focal jammy noble

sudo is deprecated

To install packages not included in the default container-based-infrastructure you need to use the APT addon, as sudo apt-get is not available

To update the list of available packages

Key-value pairs which will be added to /etc/apt/sources.list

When APT sources require GPG keys, you can specify this with key_url

Alias defined in source whitelist

To install packages from the package whitelist before your custom build steps

If your build requires setting up custom hostnames, you can specify a single host or a list of them. Travis CI will automatically setup the hostnames in /etc/hosts for both IPv4 and IPv6.

Travis CI can add entries to ~/.ssh/known_hosts prior to cloning your git repository, which is necessary if there are git submodules from domains other than github.com, gist.github.com, or ssh.github.com.

If you'd like to upload file from a specific directory, you can change your working directory

If you'd like to see more detail about what the artifacts addon is doing

Firefox addon

latest latest-esr latest-beta latest-dev latest-nightly latest-unsigned

Chrome addon

RethinkDB addon

PostgreSQL addon

MariaDB addon

Sauce Connect addon

SonarCloud addon

Coverity Scan addon

GitHub project metadata

Where email notification of build analysis results will be sent

Commands to prepare for build_command

The command that will be added as an argument to 'cov-build' to compile your project for analysis

Pattern to match selecting branches that will run analysis. We recommend leaving this set to 'coverity_scan'

Homebrew addon

SourceClear addon

Snaps addon

'classic:' is deprecated, use 'confinement:'

BrowserStack addon

Upload timeout in seconds

Set the git clone depth

Travis CI clones repositories without the quiet flag (-q) by default. Enabling the quiet flag can be useful if you're trying to avoid log file size limits or even if you just don't need to include it.

Control whether submodules should be cloned

Skip fetching the git-lfs files during the initial git clone (equivalent to git lfs smudge --skip),

In some work flows, like build stages, it might be beneficial to skip the automatic git clone step.

Is a path to the existing file in the current repository with data you'd like to put into $GIT_DIR/info/sparse-checkout file of format described in Git documentation.

Specify handling of line endings when cloning repository

Specify which branches to build

Tell Travis CI to only deploy on tagged commits

After your tests ran and before the release, Travis CI will clean up any additional files and changes you made. Maybe that is not what you want, as you might generate some artifacts that are supposed to be released, too.

if [[ <condition> ]]; then <deploy>; fi

If you need to overwrite existing files

deploy to heroku, to see https://docs.travis-ci.com/user/deployment/heroku/

heroku auth token

Deploy master branch to heroku app

Deploy the different branch to the different heroku app

to run a command on Heroku after a successful deploy

Travis CI default will clean up any additional files and changes you made, you can by it to skip the clean up

Travis CI supports different mechanisms for deploying to Heroku: api is default

The source to import build config from

How to merge the imported config into the target config (defaults to deep_merge_append)

Specifies a condition for the import

Provide a JSON object that satisfies the schema "JSON schema for Travis CI configuration files". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-07/schema#","title":"Trident Configuration","description":"Configuration schema for Trident fuzzing framework","type":"object","properties":{"honggfuzz":{"type":"object","description":"Honggfuzz-specific configuration options","properties":{"timeout":{"type":"integer","description":"Timeout in seconds","minimum":0,"maximum":65535,"default":10},"iterations":{"type":"integer","description":"Number of fuzzing iterations (0 means no limit)","minimum":0,"default":0},"threads":{"type":"integer","description":"Number of concurrent fuzzing threads","minimum":0,"maximum":65535,"default":null},"keep_output":{"type":"boolean","description":"Don't close children's stdin, stdout, stderr; can be noisy","default":false},"verbose":{"type":"boolean","description":"Disable ANSI console; use simple log output","default":false},"exit_upon_crash":{"type":"boolean","description":"Exit upon seeing the first crash","default":false},"mutations_per_run":{"type":"integer","description":"Maximal number of mutations per one run","minimum":0,"maximum":65535,"default":6},"cargo_target_dir":{"type":"string","description":"Target compilation directory","default":"trident-tests/fuzzing/hfuzz_target"},"hfuzz_workspace":{"type":"string","description":"Honggfuzz working directory","default":"trident-tests/fuzzing/hfuzz_workspace"},"crashdir":{"type":"string","description":"Directory where crashes are saved to","default":null},"extension":{"type":"string","description":"Input file extension","default":"fuzz"},"run_time":{"type":"integer","description":"Number of seconds this fuzzing session will last (0 means no limit)","minimum":0,"default":0},"max_file_size":{"type":"integer","description":"Maximal size of files processed by the fuzzer in bytes","minimum":0,"default":1048576},"save_all":{"type":"boolean","description":"Save all test-cases by appending timestamp to filenames","default":false}}},"afl":{"type":"object","description":"AFL-specific configuration options","properties":{"cargo_target_dir":{"type":"string","description":"Target directory for AFL builds","default":"target/debug"},"afl_workspace_in":{"type":"string","description":"Input directory for AFL test cases","default":"trident-tests/fuzzing/afl_in"},"afl_workspace_out":{"type":"string","description":"Output directory for AFL findings","default":"trident-tests/fuzzing/afl_out"},"iterations":{"type":"integer","description":"Number of executions to perform","minimum":0,"default":0},"run_time":{"type":"integer","description":"Number of seconds to run for","minimum":0,"default":0},"seeds":{"type":"array","description":"Initial seeds for AFL fuzzing","items":{"type":"object","properties":{"file_name":{"type":"string","description":"Name of the seed file","default":"default_seed"},"seed":{"type":"string","description":"Seed content","default":""},"override_file":{"type":"boolean","description":"Whether to override existing file","default":false},"bytes_count":{"type":"integer","description":"Number of bytes for the seed","minimum":0}},"required":["file_name"]},"default":[]}}},"fuzz":{"type":"object","description":"General fuzzing configuration","properties":{"fuzzing_with_stats":{"type":"boolean","description":"Enable statistics collection during fuzzing","default":false},"allow_duplicate_txs":{"type":"boolean","description":"Allow duplicate transactions","default":false},"programs":{"type":"array","description":"List of programs to fuzz","items":{"type":"object","properties":{"address":{"type":"string","description":"Program address (as base-58 encoded string)"},"program":{"type":"string","description":"Path to program binary"}},"required":["address","program"]},"default":[]},"accounts":{"type":"array","description":"List of accounts to use in fuzzing","items":{"type":"object","properties":{"address":{"type":"string","description":"Account address (as base-58 encoded string)"},"filename":{"type":"string","description":"Path to account data file"}},"required":["address","filename"]},"default":[]}}}}}
</schema>

[User] Provide a JSON object that satisfies the schema "Trident Configuration". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

Trident Configuration

Configuration schema for Trident fuzzing framework

Honggfuzz-specific configuration options

Timeout in seconds

Number of fuzzing iterations (0 means no limit)

Number of concurrent fuzzing threads

Don't close children's stdin, stdout, stderr; can be noisy

Disable ANSI console; use simple log output

Exit upon seeing the first crash

Maximal number of mutations per one run

Target compilation directory

Honggfuzz working directory

Directory where crashes are saved to

Input file extension

Number of seconds this fuzzing session will last (0 means no limit)

Maximal size of files processed by the fuzzer in bytes

Save all test-cases by appending timestamp to filenames

AFL-specific configuration options

Target directory for AFL builds

Input directory for AFL test cases

Output directory for AFL findings

Number of executions to perform

Number of seconds to run for

Initial seeds for AFL fuzzing

Name of the seed file

Seed content

Whether to override existing file

Number of bytes for the seed

General fuzzing configuration

Enable statistics collection during fuzzing

Allow duplicate transactions

List of programs to fuzz

Program address (as base-58 encoded string)

Path to program binary

List of accounts to use in fuzzing

Account address (as base-58 encoded string)

Path to account data file

Provide a JSON object that satisfies the schema "Trident Configuration". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[User] Provide a JSON object that satisfies the schema "JSON schema for trime.yaml". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

config version

方案名稱

作者資訊

自动句首大写

备用参数，暂无功能

候選字型

候選項內邊距

候選間距

候選字號

高亮候選項

候選區高度

配色方案

編碼提示字型

編碼提示區高度

編碼提示在上方或右側

編碼提示字號

擴充字型

水平模式

鍵水平間距

竖屏模式下，屏幕左右两侧与键盘的距离（曲面屏减少误触）

竖屏屏模式下，左手键盘布局，屏幕左侧与键盘的距离

竖屏屏模式下，左手键盘布局，屏幕右侧与键盘的距离

竖屏模式下，屏幕下边缘与键盘的距离（避免误触发全面屏手势）

横屏模式下，屏幕左右两侧与键盘的距离（避免横屏按键过度拉伸变形）

横屏模式下，屏幕下侧与键盘的距离

懸浮窗口設置

位置 (left、right需要>=Android5.0)

最小詞長

超過字數則換行

固頂行數

横屏模式下的固顶行数

最大詞條數

只要前n个候选词有长度大于等于min_length的词，就会把长度符合以及之前的词全部加到悬浮窗内

所有滿足條件的詞語都顯示在窗口

邊框寬度

最大寬度，超過則自動換行

最大高度

最小寬度

最小高度

水平邊距

豎直邊距

底部边距 （用于适配特定背景图）

候选詞的行間距(px)

候选詞的行間距(倍數)

屏幕左右边缘和悬浮窗之间的距离

屏幕上下边缘或预编辑上下边缘和悬浮窗之间的距离

窗口圓角

透明度

是否可移動窗口，或僅移動一次

鍵盤字型

鍵高

長標籤字號

鍵字號

鍵寬，佔螢幕寬的百分比

鍵盤配置

標籤字號

編標籤字型

西文字型

西文語言

預設語言

锁定键盘高度，避免切换时键盘高度变化而造成闪烁

锁定横屏下键盘高度，避免切换时键盘高度变化而造成闪烁

按鍵提示字型

按鍵提示高度

按鍵提示縱向偏移

按鍵提示字號

按鍵糾錯

顯示鍵盤時重置爲中文狀態

按鍵圓角半徑

按鍵陰影半徑

語音輸入簡繁轉換

符號字型

編碼字型

編碼區高度

編碼區字號

触摸位置校正（竖直方向）。为了提升打字手感，可将按键的实际触摸位置相对其显示位置上下偏移一点点

鍵盤行距

剪贴板等可能包含大段文本使用的字体

背景图保存在background目录下的哪个子目录

是否使用App提供的ActionLabel内容作为Enter键的文本（由于多数App没有适配ActionLable，实际影响不大）。0不使用，1只使用actionlabel，2优先使用，3当其他方式没有获得label时才读取actionlabel

定义Enter键的文本

高亮候选序号

整个键盘区+候选栏的背景图/色

候选栏的整体背景图/色

键盘区的背景图/色

liquidKeyboard 的背景图/色

编码区背景，即悬浮窗背景

长文本按键的背景(剪贴板）

方案名稱

作者資訊

候選區背景

邊框

候選分割背景

候選文字

提示

標明編碼背景

標明候選背景

標明候選文字

標明提示

標明按鍵背景

標明按鍵符號

標明按鍵文字

標明按鍵關閉狀態背景

標明按鍵關閉狀態文字

標明按鍵打開狀態背景

標明按鍵打開狀態文字

標明編碼

按鍵背景

按鍵邊框

按鍵符號

按鍵文字

鍵盤背景

標籤

按鍵關閉狀態背景

按鍵關閉狀態文字

按鍵打開狀態背景

按鍵打開狀態文字

按鍵提示背景

按鍵提示文字

按鍵文字陰影

編碼

編碼區背景

每屏最多显示多少行按键

横屏每屏最多显示多少行按键

按键高度

横屏模式按键高度

single类型的按键宽度

纵向按键间隙

左右按键间隙的1/2

固定按键条摆放位置（相对滚动区域的上/下/左/右方位）

固定按键条的按键（显示名称为对应的label，不能放太多）

JSON schema for trime.yaml

Provide a JSON object that satisfies the schema "JSON schema for trime.yaml". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$id":"https://raw.githubusercontent.com/Cog-Creators/Red-DiscordBot/V3/develop/schema/trivia.schema.json","$schema":"http://json-schema.org/draft-07/schema#","title":"Red-DiscordBot Trivia List file","type":"object","properties":{"$schema":{"type":"string","format":"uri"},"AUTHOR":{"type":"string","description":"Author of the Trivia list."},"DESCRIPTION":{"type":"string","description":"Brief description of the Trivia list."},"CONFIG":{"type":"object","description":"The configuration for a trivia session.","properties":{"bot_plays":{"type":"boolean","description":"Whether or not the bot gains points during the session."},"delay":{"type":"number","description":"The maximum number of seconds permitted to answer a question, must be a positive number greater than or equal to 4.0.","minimum":4.0},"max_score":{"type":"integer","description":"Number of points required in order to win the trivia, must be a positive integer.","exclusiveMinimum":0},"payout_multiplier":{"type":"number","description":"The payout multiplier, must be a positive number or zero.","minimum":0},"reveal_answer":{"type":"boolean","description":"Whether or not to reveal the answer when the question times out."},"timeout":{"type":"number","description":"Number of seconds that need to pass until trivia stops due to no response, must be a positive number greater than 0.0.","exclusiveMinimum":0},"use_spoilers":{"type":"boolean","description":"Whether to hide the answers in spoilers when revealing the question's answers."}},"additionalProperties":false}},"additionalProperties":{"type":"array","items":{"type":"string"}}}
</schema>

[User] Provide a JSON object that satisfies the schema "Red-DiscordBot Trivia List file". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

Red-DiscordBot Trivia List file

Author of the Trivia list.

Brief description of the Trivia list.

The configuration for a trivia session.

Whether or not the bot gains points during the session.

The maximum number of seconds permitted to answer a question, must be a positive number greater than or equal to 4.0.

Number of points required in order to win the trivia, must be a positive integer.

The payout multiplier, must be a positive number or zero.

Whether or not to reveal the answer when the question times out.

Number of seconds that need to pass until trivia stops due to no response, must be a positive number greater than 0.0.

Whether to hide the answers in spoilers when revealing the question's answers.

Provide a JSON object that satisfies the schema "Red-DiscordBot Trivia List file". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://json.schemastore.org/truescript.json","title":"TrueScript for *.tscript files","description":"The Ultimate Script Language for monday.com - \u00a9 2024 MakeITSimple","additionalProperties":false,"type":"object","definitions":{"TrueScriptVersion":{"description":"TrueScript version info. Format: \"major.minor.patch\"","type":"string","pattern":"^\\d+\\.\\d+\\.\\d+$"},"UUID4":{"description":"Unique ID (UUID4)","type":"string","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"},"Environment":{"description":"TrueScript environment","type":"string","enum":["production","staging","development"]},"MondayId":{"description":"Any monday.com ID","type":"integer","exclusiveMinimum":0},"Result":{"description":"The result of the execution of the TrueScript","type":"string","enum":["success","error"]}},"properties":{"truescript_version":{"$ref":"#/definitions/TrueScriptVersion","description":"The minimal version to run this TrueScript. Format: \"major.minor.patch\""},"id":{"$ref":"#/definitions/UUID4","description":"Unique ID of the TrueScript (UUID4)"},"name":{"description":"Short description of the TrueScript","type":"string"},"description":{"description":"A more detailed description of the TrueScript","type":"string"},"environment":{"$ref":"#/definitions/Environment","description":"Intended environment to run the TrueScript"},"item_id":{"$ref":"#/definitions/MondayId","description":"The item's ID to execute the TrueScript upon"},"params":{"description":"Parameters that will be passed to the TrueScript","type":"object","additionalProperties":true},"tags":{"description":"Free tags for any classification","type":"array","items":{"type":"string"}},"result":{"description":"The expected result when running this TrueScript","type":"object","properties":{"result":{"$ref":"#/definitions/Result","description":"The result of the execution of the TrueScript"},"error":{"description":"The error info (when 'result=error')","type":"object","properties":{"additionalProperties":true}}},"required":["result"]},"script":{"description":"The TrueScript itself","anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"required":["truescript_version","id","name","environment","item_id","script"]}
</schema>

[User] Provide a JSON object that satisfies the schema "TrueScript for *.tscript files". Here are the required top‑level fields: truescript_version, id, name, environment, item_id, script. Return only the valid JSON object.

TrueScript for *.tscript files

The Ultimate Script Language for monday.com - © 2024 MakeITSimple

TrueScript version info. Format: "major.minor.patch"

Unique ID (UUID4)

TrueScript environment

Any monday.com ID

The result of the execution of the TrueScript

The minimal version to run this TrueScript. Format: "major.minor.patch"

Unique ID of the TrueScript (UUID4)

Short description of the TrueScript

A more detailed description of the TrueScript

Intended environment to run the TrueScript

The item's ID to execute the TrueScript upon

Parameters that will be passed to the TrueScript

Free tags for any classification

The expected result when running this TrueScript

The error info (when 'result=error')

The TrueScript itself

truescript_version id name environment item_id script

Provide a JSON object that satisfies the schema "TrueScript for *.tscript files". Here are the required top‑level fields: truescript_version, id, name, environment, item_id, script. Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$id":"https://static.trunk.io/pub/trunk-yaml-schema.json","$schema":"https://json-schema.org/draft/2020-12/schema","definitions":{"filetype_list":{"description":"List of filetypes\nTo refer to all filetypes, use [ALL]","items":{"examples":[],"type":"string"},"type":"array"},"linter_list":{"description":"List of linter IDs\nTo refer to all linters, use [ALL]","items":{"examples":["ALL"],"type":"string"},"type":"array"},"template_string":{"description":"String where \"${key1} ${key2}\" will be expanded into \"value1 value2\"","type":"string"}},"description":"The last linter you'll ever need","properties":{"actions":{"properties":{"definitions":{"items":{"properties":{"autogenerated_definition_path":{"type":["string","number","boolean"]},"description":{"type":["string","number","boolean"]},"display_name":{"type":["string","number","boolean"]},"enabled":{"type":"boolean"},"environment":{"items":{"properties":{"list":{"items":{"type":["string","number","boolean"]},"type":"array"},"name":{"type":["string","number","boolean"]},"optional":{"type":"boolean"},"value":{"type":["string","number","boolean"]}},"type":"object"},"type":"array"},"id":{"type":["string","number","boolean"]},"interactive":{"examples":["false","optional","true"],"type":"string"},"notify_on_error":{"type":"boolean"},"output_type":{"examples":["notification_v1"],"type":"string"},"packages_file":{"type":["string","number","boolean"]},"run":{"type":["string","number","boolean"]},"run_from":{"type":["string","number","boolean"]},"runtime":{"examples":["git_bash","go","java","node","php","python","ruby","rust"],"type":"string"},"shell":{"type":["string","number","boolean"]},"triggers":{"items":{"properties":{"files":{"items":{"type":["string","number","boolean"]},"type":"array"},"git_hooks":{"items":{"type":["string","number","boolean"]},"type":"array"},"run":{"type":["string","number","boolean"]},"schedule":{"oneOf":[{"properties":{"cron":{"type":["string","number","boolean"]},"delay":{"type":["string","number","boolean"]},"interval":{"type":["string","number","boolean"]}},"type":"object"},{"type":"string"}]}},"type":"object"},"type":"array"}},"type":"object"},"type":"array"},"disabled":{"items":{"type":["string","number","boolean"]},"type":"array"},"enabled":{"items":{"oneOf":[{"description":"Id of actions to enable","examples":["trunk-upgrade-available","trunk-fmt-pre-commit"],"type":"string"},{"additionalProperties":{"properties":{"name":{"type":["string","number","boolean"]}},"type":"object"},"examples":[],"type":"object"}]},"type":"array"},"output_level":{"examples":["hidden","short","verbose"],"type":"string"}},"type":"object"},"api":{"properties":{"address":{"type":["string","number","boolean"]},"org":{"type":["string","number","boolean"]}},"type":"object"},"cli":{"properties":{"check_for_upgrades":{"type":"boolean"},"options":{"items":{"properties":{"args":{"type":["string","number","boolean"]},"commands":{"items":{"type":["string","number","boolean"]},"type":"array"}},"type":"object"},"type":"array"},"sha256":{"properties":{"darwin_arm64":{"type":["string","number","boolean"]},"darwin_x86_64":{"type":["string","number","boolean"]},"linux_arm64":{"type":["string","number","boolean"]},"linux_x86_64":{"type":["string","number","boolean"]},"mingw_x86_64":{"type":["string","number","boolean"]},"windows_x86_64":{"type":["string","number","boolean"]}},"type":"object"},"shell_hooks":{"properties":{"enforce":{"type":"boolean"},"path_add":{"items":{"type":["string","number","boolean"]},"type":"array"}},"type":"object"},"version":{"type":["string","number","boolean"]}},"type":"object"},"daemon":{"properties":{"check_for_upgrades":{"type":"boolean"},"idle_timeout":{"type":["string","number","boolean"]},"log_level":{"examples":["critical","debug","error","info","off","trace","warn"],"type":"string"},"monitor_repository":{"type":"boolean"}},"type":"object"},"downloads":{"items":{"properties":{"args":{"additionalProperties":{"type":["string","number","boolean"]},"type":"object"},"downloads":{"items":{"properties":{"cpu":{"additionalProperties":{"type":["string","number","boolean"]},"type":"object"},"gpg":{"type":["string","number","boolean"]},"os":{"additionalProperties":{"type":["string","number","boolean"]},"type":"object"},"sha256":{"type":["string","number","boolean"]},"strip_components":{"type":"integer"},"url":{"type":["string","number","boolean"]},"version":{"type":["string","number","boolean"]}},"type":"object"},"type":"array"},"executable":{"type":"boolean"},"name":{"type":["string","number","boolean"]},"rename_single_file":{"type":"boolean"},"version":{"type":["string","number","boolean"]}},"type":"object"},"type":"array"},"environments":{"items":{"properties":{"environment":{"items":{"properties":{"list":{"items":{"type":["string","number","boolean"]},"type":"array"},"name":{"type":["string","number","boolean"]},"optional":{"type":"boolean"},"value":{"type":["string","number","boolean"]}},"type":"object"},"type":"array"},"name":{"type":["string","number","boolean"]}},"type":"object"},"type":"array"},"lint":{"properties":{"bazel":{"properties":{"all_targets_query":{"type":["string","number","boolean"]},"compiler_override_paths":{"items":{"properties":{"cpu":{"examples":["arm_64","x86_64"],"type":"string"},"os":{"examples":["linux","macos","windows"],"type":"string"},"path":{"type":["string","number","boolean"]}},"type":"object"},"type":"array"},"paths":{"properties":{"system":{"items":{"type":["string","number","boolean"]},"type":"array"},"workspace":{"items":{"type":["string","number","boolean"]},"type":"array"}},"type":"object"}},"type":"object"},"comment_formats":{"items":{"properties":{"leading_delimiter":{"type":["string","number","boolean"]},"name":{"type":["string","number","boolean"]},"trailing_delimiter":{"type":["string","number","boolean"]}},"type":"object"},"type":"array"},"compile_commands":{"examples":["bazel","json"],"type":"string"},"compile_commands_roots":{"items":{"type":["string","number","boolean"]},"type":"array"},"default_max_file_size":{"type":"integer"},"definitions":{"items":{"dependencies":{"download":{"not":{"required":["package"]}},"package":{"allOf":[{"required":["runtime"]},{"not":{"required":["download"]}}]}},"properties":{"affects_cache":{"items":{"type":["string","number","boolean"]},"type":"array"},"allow_empty_files":{"description":"Whether or not this will be run on empty files","type":"boolean"},"autogenerated_definition_path":{"type":["string","number","boolean"]},"batch":{"description":"Whether linter invocations for multiple targets should be batched; used to cut down on per-invocation overhead\n\nCauses every token containing ${target} to be expanded multiple times, e.g. 'my_linter target=${target}' would be expanded into 'my_linter target=target1 target=target2 ... target=targetN'","type":"boolean"},"cache_results":{"description":"Whether Trunk can cache results for this linter","type":"boolean"},"cache_ttl":{"type":["string","number","boolean"]},"command":{"description":"argv of the command to invoke the linter with","items":{"type":["string","number","boolean"]},"type":"array"},"commands":{"items":{"properties":{"allow_empty_files":{"description":"Whether or not this will be run on empty files","type":"boolean"},"batch":{"description":"Whether linter invocations for multiple targets should be batched; used to cut down on per-invocation overhead\n\nCauses every token containing ${target} to be expanded multiple times, e.g. 'my_linter target=${target}' would be expanded into 'my_linter target=target1 target=target2 ... target=targetN'","type":"boolean"},"cache_results":{"description":"Whether Trunk can cache results for this linter","type":"boolean"},"cache_ttl":{"type":["string","number","boolean"]},"direct_configs":{"items":{"type":["string","number","boolean"]},"type":"array"},"disable_upstream":{"description":"Whether or not we support linting the upstream version of a target","type":"boolean"},"enabled":{"description":"Whether the command is enabled to run when the linter is run. Allows some commands of a linter to be run by default without others.","type":"boolean"},"error_codes":{"description":"Exit codes implying the linter experienced an internal error","items":{"type":"integer"},"type":"array"},"files":{"items":{"type":["string","number","boolean"]},"type":"array"},"fix_prompt":{"type":["string","number","boolean"]},"fix_verb":{"type":["string","number","boolean"]},"formatter":{"description":"Whether or not this linter will be run by 'trunk fmt'; default: false","type":"boolean"},"idempotent":{"type":"boolean"},"in_place":{"description":"Whether the linter modifies ${target} files in-place.","type":"boolean"},"is_security":{"type":"boolean"},"max_concurrency":{"type":"integer"},"max_file_size":{"type":"integer"},"name":{"type":["string","number","boolean"]},"no_issues_codes":{"items":{"type":"integer"},"type":"array"},"output":{"description":"Output type of this linter; controls how `trunk` parses its output","examples":["actionlint","ansible_lint","arcanist","bandit","brakeman","buf","buildifier","cfnlint","clippy","detekt_gradle","diff","eslint","golangci_lint","hadolint","haml_lint","iwyu","llvm","lsp_json","markdownlint","mypy","pass_fail","pylint","regex","rewrite","rubocop","sarif","sarif_uri","semgrep","shellcheck","shfmt","stylelint","taplo","terraform_validate"],"type":"string"},"parse_regex":{"type":["string","number","boolean"]},"parser":{"properties":{"run":{"type":["string","number","boolean"]},"runtime":{"examples":["git_bash","go","java","node","php","python","ruby","rust"],"type":"string"}},"type":"object"},"platforms":{"items":{"examples":["linux","macos","windows"],"type":"string"},"type":"array"},"prepare_run":{"description":"Command to initialize the linter with","examples":["tflint --init"],"type":["string","number","boolean"]},"read_output_from":{"description":"Tell parser where to expect output from for reading (if 'tmpfile', then the linter should write its output to ${tmpfile})\n\nNOTE: this field is only respected for type=sarif linters currently","examples":["stderr","stdout","tmp_file"],"type":"string"},"run":{"$ref":"#/definitions/template_string","description":"Command to invoke the linter with (write as if you were typing into your shell)","examples":["\"${path}\" will expand to $PATH","\"${home}\" will expand to $HOME","\"${linter}\" will expand to the directory a linter is installed into, e.g. \"${linter}/node_modules/.bin\" is appended to the `PATH` of any linter with `runtime: node`","\"${runtime}\" will expand to the directory a runtime is installed into, e.g. with `runtime: node`, \"${runtime}/bin/npm\" will yield the path to the installed NPM binary","\"${linter}\" will expand to the directory a linter is installed into, e.g. \"${linter}/node_modules/.bin\" is appended to the `PATH` of any linter with `runtime: node`","\"${runtime}\" will expand to the directory a runtime is installed into, e.g. with `runtime: node`, \"${runtime}/bin/npm\" will yield the path to the installed NPM binary","stylelint --fix ${target}"]},"run_from":{"type":["string","number","boolean"]},"run_from_root_target":{"description":"The nearest target to search for when 'run_linter_from' is 'root_file' or 'root_directory'","type":["string","number","boolean"]},"run_linter_from":{"description":"What to use as the current working directory:\n  * workspace - the root of the repository\n  * parent_directory - the directory containing the linter target\n  * directory - the linter target itself, with the condition that the linter target is a directory itself\n  * root_file - the nearest directory containing 'run_from_root_target', e.g. the nearest directory containing a go.mod file\n  * root_directory - the nearest directory matching 'run_from_root_target', e.g. the nearest src/ directory\n","examples":["compile_command","directory","parent_directory","root_directory","root_file","workspace"],"type":"string"},"run_when":{"items":{"examples":["ci","cli","lsp","monitor"],"type":"string"},"type":"array"},"sandbox_type":{"examples":["copy_targets","expanded","normal"],"type":"string"},"std_in":{"description":"Whether or not this linter takes its input from stdin","type":"boolean"},"success_codes":{"description":"Exit codes corresponding to no issues found or issues found","items":{"type":"integer"},"type":"array"},"target":{"type":["string","number","boolean"]},"unformatted_level":{"examples":["high","low","medium","none","note"],"type":"string"},"verbatim_message":{"type":"boolean"},"version":{"type":["string","number","boolean"]}},"type":"object"},"type":"array"},"deprecated":{"type":["string","number","boolean"]},"description":{"type":["string","number","boolean"]},"direct_configs":{"items":{"type":["string","number","boolean"]},"type":"array"},"disable_upstream":{"description":"Whether or not we support linting the upstream version of a target","type":"boolean"},"disabled":{"type":"boolean"},"download":{"description":"The download containing this linter (i.e. the `name` of an entry in `downloads`)","type":["string","number","boolean"]},"enabled":{"description":"Whether the command is enabled to run when the linter is run. Allows some commands of a linter to be run by default without others.","type":"boolean"},"environment":{"description":"Environment variables set when `trunk` runs the linter","items":{"oneOf":[{"required":["name","value"]},{"required":["name","list"]}],"properties":{"list":{"description":"The envvar will be set to the `:`-joined list","items":{"$ref":"#/definitions/template_string","examples":["\"${path}\" will expand to $PATH","\"${home}\" will expand to $HOME","\"${linter}\" will expand to the directory a linter is installed into, e.g. \"${linter}/node_modules/.bin\" is appended to the `PATH` of any linter with `runtime: node`","\"${runtime}\" will expand to the directory a runtime is installed into, e.g. with `runtime: node`, \"${runtime}/bin/npm\" will yield the path to the installed NPM binary"]},"type":"array"},"name":{"type":["string","number","boolean"]},"optional":{"type":"boolean"},"value":{"$ref":"#/definitions/template_string","examples":["\"${path}\" will expand to $PATH","\"${home}\" will expand to $HOME","\"${linter}\" will expand to the directory a linter is installed into, e.g. \"${linter}/node_modules/.bin\" is appended to the `PATH` of any linter with `runtime: node`","\"${runtime}\" will expand to the directory a runtime is installed into, e.g. with `runtime: node`, \"${runtime}/bin/npm\" will yield the path to the installed NPM binary"]}},"type":"object"},"type":"array"},"error_codes":{"description":"Exit codes implying the linter experienced an internal error","items":{"type":"integer"},"type":"array"},"extra_packages":{"description":"Extra packages needed to run this linter; also installed using the runtime's package manager","items":{"type":["string","number","boolean"]},"type":"array"},"files":{"$ref":"#/definitions/filetype_list","description":"Filetypes to run this linter on"},"formatter":{"description":"Whether or not this linter will be run by 'trunk fmt'; default: false","type":"boolean"},"good_without_config":{"type":"boolean"},"hold_the_line":{"type":"boolean"},"idempotent":{"type":"boolean"},"in_place":{"description":"Whether the linter modifies ${target} files in-place.","type":"boolean"},"include_lfs":{"description":"Whether or not this linter can handle LFS files; default: false","type":"boolean"},"include_scanner_type":{"examples":["compile_command","none"],"type":"string"},"is_manual":{"type":"boolean"},"is_recommended":{"type":"boolean"},"issue_url_format":{"type":["string","number","boolean"]},"known_bad_versions":{"items":{"type":["string","number","boolean"]},"type":"array"},"known_good_version":{"type":["string","number","boolean"]},"main_tool":{"type":["string","number","boolean"]},"name":{"description":"Linter ID; use this in fields like `enabled` to reference this linter","type":["string","number","boolean"]},"package":{"description":"The package containing this linter; installed using the runtime's package manager","type":["string","number","boolean"]},"path_format":{"examples":["generic","native"],"type":"string"},"plugin_url":{"type":["string","number","boolean"]},"prepare_command":{"description":"argv of the command to initialize the linter with","items":{"type":["string","number","boolean"]},"type":"array"},"query_compile_commands":{"type":"boolean"},"read_output_from":{"description":"Tell parser where to expect output from for reading (if 'tmpfile', then the linter should write its output to ${tmpfile})\n\nNOTE: this field is only respected for type=sarif linters currently","examples":["stderr","stdout","tmp_file"],"type":"string"},"run_from_root_file":{"type":["string","number","boolean"]},"run_from_root_target":{"description":"The nearest target to search for when 'run_linter_from' is 'root_file' or 'root_directory'","type":["string","number","boolean"]},"run_linter_from":{"description":"What to use as the current working directory:\n  * workspace - the root of the repository\n  * parent_directory - the directory containing the linter target\n  * directory - the linter target itself, with the condition that the linter target is a directory itself\n  * root_file - the nearest directory containing 'run_from_root_target', e.g. the nearest directory containing a go.mod file\n  * root_directory - the nearest directory matching 'run_from_root_target', e.g. the nearest src/ directory\n","examples":["compile_command","directory","parent_directory","root_directory","root_file","workspace"],"type":"string"},"run_timeout":{"type":["string","number","boolean"]},"run_when":{"items":{"examples":["ci","cli","lsp","monitor"],"type":"string"},"type":"array"},"runtime":{"description":"The runtime, toolchain, and package manager used to run and install a linter","examples":["git_bash","go","java","node","php","python","ruby","rust"],"type":"string"},"std_in":{"description":"Whether or not this linter takes its input from stdin","type":"boolean"},"success_codes":{"description":"Exit codes corresponding to no issues found or issues found","items":{"type":"integer"},"type":"array"},"suggest_if":{"examples":["config_present","files_present","legacy","never"],"type":"string"},"supported_platforms":{"items":{"examples":["linux","macos","windows"],"type":"string"},"type":"array"},"symlinks":{"items":{"properties":{"from":{"type":["string","number","boolean"]},"to":{"type":["string","number","boolean"]}},"type":"object"},"type":"array"},"target":{"type":["string","number","boolean"]},"tools":{"items":{"type":["string","number","boolean"]},"type":"array"},"type":{"description":"Output type of this linter; controls how `trunk` parses its output","examples":["pass_fail","lsp_json","rewrite","arcanist","sarif"],"type":"string"},"version":{"type":["string","number","boolean"]},"version_command":{"properties":{"parse_regex":{"type":["string","number","boolean"]},"run":{"type":["string","number","boolean"]}},"type":"object"}},"type":"object"},"type":"array"},"disabled":{"items":{"type":["string","number","boolean"]},"type":"array"},"do_not_recommend_linters":{"items":{"type":["string","number","boolean"]},"type":"array"},"downloads":{"items":{"properties":{"args":{"additionalProperties":{"type":["string","number","boolean"]},"type":"object"},"downloads":{"items":{"properties":{"cpu":{"oneOf":[{"additionalProperties":{"type":["string","number","boolean"]},"type":"object"},{"type":"string"}]},"gpg":{"type":["string","number","boolean"]},"os":{"oneOf":[{"additionalProperties":{"type":["string","number","boolean"]},"type":"object"},{"type":"string"}]},"sha256":{"type":["string","number","boolean"]},"strip_components":{"type":"integer"},"url":{"type":["string","number","boolean"]},"version":{"type":["string","number","boolean"]}},"type":"object"},"type":"array"},"executable":{"type":"boolean"},"name":{"type":["string","number","boolean"]},"rename_single_file":{"type":"boolean"},"version":{"type":["string","number","boolean"]}},"type":"object"},"type":"array"},"enabled":{"items":{"oneOf":[{"description":"linter@envOrVersion, where envOrVersion is either the name of an environment, the version of the main `package` if `runtime` is set, or the verson of the `download`","examples":["gofmt@1.16.7","shellcheck@0.7.2"],"type":"string"},{"additionalProperties":{"properties":{"commands":{"items":{"type":["string","number","boolean"]},"type":"array"},"name":{"type":["string","number","boolean"]},"packages":{"items":{"type":["string","number","boolean"]},"type":"array"}},"type":"object"},"examples":["flake8@4.0.1 { packages [ 'flake8-bugbear@21.9.2', 'flake8-docstring@1.6.0' ] }"],"type":"object"}]},"type":"array"},"environments":{"items":{"properties":{"environment":{"items":{"properties":{"list":{"items":{"type":["string","number","boolean"]},"type":"array"},"name":{"type":["string","number","boolean"]},"optional":{"type":"boolean"},"value":{"type":["string","number","boolean"]}},"type":"object"},"type":"array"},"name":{"type":["string","number","boolean"]}},"type":"object"},"type":"array"},"exported_configs":{"items":{"properties":{"configs":{"items":{"type":["string","number","boolean"]},"type":"array"},"plugin_id":{"type":["string","number","boolean"]}},"type":"object"},"type":"array"},"extra_compilation_flags":{"items":{"type":["string","number","boolean"]},"type":"array"},"files":{"items":{"properties":{"comments":{"items":{"type":["string","number","boolean"]},"type":"array"},"extensions":{"items":{"type":["string","number","boolean"]},"type":"array"},"filenames":{"items":{"type":["string","number","boolean"]},"type":"array"},"inherit":{"items":{"type":["string","number","boolean"]},"type":"array"},"name":{"type":["string","number","boolean"]},"regexes":{"items":{"type":["string","number","boolean"]},"type":"array"},"required_yaml_keys":{"items":{"type":["string","number","boolean"]},"type":"array"},"shebangs":{"items":{"type":["string","number","boolean"]},"type":"array"}},"type":"object"},"type":"array"},"hold_the_line_mode":{"examples":["line","word"],"type":"string"},"ignore":{"items":{"properties":{"linters":{"$ref":"#/definitions/linter_list"},"paths":{"description":"Paths to exclude from linting","items":{"type":["string","number","boolean"]},"type":"array"},"security":{"type":"boolean"},"when":{"items":{"examples":["ci","cli","lsp","monitor"],"type":"string"},"type":"array"}},"type":"object"},"type":"array"},"landing_mode":{"items":{"properties":{"landing_mode":{"examples":["burn_down","clean","hold_the_line"],"type":"string"},"linters":{"items":{"type":["string","number","boolean"]},"type":"array"}},"type":"object"},"type":"array"},"linters":{"items":{"properties":{"affects_cache":{"items":{"type":["string","number","boolean"]},"type":"array"},"allow_empty_files":{"type":"boolean"},"autogenerated_definition_path":{"type":["string","number","boolean"]},"batch":{"type":"boolean"},"cache_results":{"type":"boolean"},"cache_ttl":{"type":["string","number","boolean"]},"command":{"items":{"type":["string","number","boolean"]},"type":"array"},"commands":{"items":{"properties":{"allow_empty_files":{"type":"boolean"},"batch":{"type":"boolean"},"cache_results":{"type":"boolean"},"cache_ttl":{"type":["string","number","boolean"]},"direct_configs":{"items":{"type":["string","number","boolean"]},"type":"array"},"disable_upstream":{"type":"boolean"},"enabled":{"type":"boolean"},"error_codes":{"items":{"type":"integer"},"type":"array"},"files":{"items":{"type":["string","number","boolean"]},"type":"array"},"fix_prompt":{"type":["string","number","boolean"]},"fix_verb":{"type":["string","number","boolean"]},"formatter":{"type":"boolean"},"idempotent":{"type":"boolean"},"in_place":{"type":"boolean"},"is_security":{"type":"boolean"},"max_concurrency":{"type":"integer"},"max_file_size":{"type":"integer"},"name":{"type":["string","number","boolean"]},"no_issues_codes":{"items":{"type":"integer"},"type":"array"},"output":{"examples":["actionlint","ansible_lint","arcanist","bandit","brakeman","buf","buildifier","cfnlint","clippy","detekt_gradle","diff","eslint","golangci_lint","hadolint","haml_lint","iwyu","llvm","lsp_json","markdownlint","mypy","pass_fail","pylint","regex","rewrite","rubocop","sarif","sarif_uri","semgrep","shellcheck","shfmt","stylelint","taplo","terraform_validate"],"type":"string"},"parse_regex":{"type":["string","number","boolean"]},"parser":{"properties":{"run":{"type":["string","number","boolean"]},"runtime":{"examples":["git_bash","go","java","node","php","python","ruby","rust"],"type":"string"}},"type":"object"},"platforms":{"items":{"examples":["linux","macos","windows"],"type":"string"},"type":"array"},"prepare_run":{"type":["string","number","boolean"]},"read_output_from":{"examples":["stderr","stdout","tmp_file"],"type":"string"},"run":{"type":["string","number","boolean"]},"run_from":{"type":["string","number","boolean"]},"run_from_root_target":{"type":["string","number","boolean"]},"run_linter_from":{"examples":["compile_command","directory","parent_directory","root_directory","root_file","workspace"],"type":"string"},"run_when":{"items":{"examples":["ci","cli","lsp","monitor"],"type":"string"},"type":"array"},"sandbox_type":{"examples":["copy_targets","expanded","normal"],"type":"string"},"std_in":{"type":"boolean"},"success_codes":{"items":{"type":"integer"},"type":"array"},"target":{"type":["string","number","boolean"]},"unformatted_level":{"examples":["high","low","medium","none","note"],"type":"string"},"verbatim_message":{"type":"boolean"},"version":{"type":["string","number","boolean"]}},"type":"object"},"type":"array"},"deprecated":{"type":["string","number","boolean"]},"description":{"type":["string","number","boolean"]},"direct_configs":{"items":{"type":["string","number","boolean"]},"type":"array"},"disable_upstream":{"type":"boolean"},"disabled":{"type":"boolean"},"download":{"type":["string","number","boolean"]},"enabled":{"type":"boolean"},"environment":{"items":{"properties":{"list":{"items":{"type":["string","number","boolean"]},"type":"array"},"name":{"type":["string","number","boolean"]},"optional":{"type":"boolean"},"value":{"type":["string","number","boolean"]}},"type":"object"},"type":"array"},"error_codes":{"items":{"type":"integer"},"type":"array"},"extra_packages":{"items":{"type":["string","number","boolean"]},"type":"array"},"files":{"items":{"type":["string","number","boolean"]},"type":"array"},"formatter":{"type":"boolean"},"good_without_config":{"type":"boolean"},"hold_the_line":{"type":"boolean"},"idempotent":{"type":"boolean"},"in_place":{"type":"boolean"},"include_lfs":{"type":"boolean"},"include_scanner_type":{"examples":["compile_command","none"],"type":"string"},"is_manual":{"type":"boolean"},"is_recommended":{"type":"boolean"},"issue_url_format":{"type":["string","number","boolean"]},"known_bad_versions":{"items":{"type":["string","number","boolean"]},"type":"array"},"known_good_version":{"type":["string","number","boolean"]},"main_tool":{"type":["string","number","boolean"]},"name":{"type":["string","number","boolean"]},"package":{"type":["string","number","boolean"]},"path_format":{"examples":["generic","native"],"type":"string"},"plugin_url":{"type":["string","number","boolean"]},"prepare_command":{"items":{"type":["string","number","boolean"]},"type":"array"},"query_compile_commands":{"type":"boolean"},"read_output_from":{"examples":["stderr","stdout","tmp_file"],"type":"string"},"run_from_root_file":{"type":["string","number","boolean"]},"run_from_root_target":{"type":["string","number","boolean"]},"run_linter_from":{"examples":["compile_command","directory","parent_directory","root_directory","root_file","workspace"],"type":"string"},"run_timeout":{"type":["string","number","boolean"]},"run_when":{"items":{"examples":["ci","cli","lsp","monitor"],"type":"string"},"type":"array"},"runtime":{"examples":["git_bash","go","java","node","php","python","ruby","rust"],"type":"string"},"std_in":{"type":"boolean"},"success_codes":{"items":{"type":"integer"},"type":"array"},"suggest_if":{"examples":["config_present","files_present","legacy","never"],"type":"string"},"supported_platforms":{"items":{"examples":["linux","macos","windows"],"type":"string"},"type":"array"},"symlinks":{"items":{"properties":{"from":{"type":["string","number","boolean"]},"to":{"type":["string","number","boolean"]}},"type":"object"},"type":"array"},"target":{"type":["string","number","boolean"]},"tools":{"items":{"type":["string","number","boolean"]},"type":"array"},"type":{"examples":["actionlint","ansible_lint","arcanist","bandit","brakeman","buf","buildifier","cfnlint","clippy","detekt_gradle","diff","eslint","golangci_lint","hadolint","haml_lint","iwyu","llvm","lsp_json","markdownlint","mypy","pass_fail","pylint","regex","rewrite","rubocop","sarif","sarif_uri","semgrep","shellcheck","shfmt","stylelint","taplo","terraform_validate"],"type":"string"},"version":{"type":["string","number","boolean"]},"version_command":{"properties":{"parse_regex":{"type":["string","number","boolean"]},"run":{"type":["string","number","boolean"]}},"type":"object"}},"type":"object"},"type":"array"},"runtimes":{"items":{"properties":{"download":{"type":["string","number","boolean"]},"enabled":{"type":"boolean"},"known_good_version":{"type":["string","number","boolean"]},"linter_environment":{"items":{"properties":{"list":{"items":{"type":["string","number","boolean"]},"type":"array"},"name":{"type":["string","number","boolean"]},"optional":{"type":"boolean"},"value":{"type":["string","number","boolean"]}},"type":"object"},"type":"array"},"runtime_environment":{"items":{"properties":{"list":{"items":{"type":["string","number","boolean"]},"type":"array"},"name":{"type":["string","number","boolean"]},"optional":{"type":"boolean"},"value":{"type":["string","number","boolean"]}},"type":"object"},"type":"array"},"shims":{"items":{"properties":{"name":{"type":["string","number","boolean"]},"target":{"type":["string","number","boolean"]}},"type":"object"},"type":"array"},"supported_platforms":{"items":{"examples":["linux","macos","windows"],"type":"string"},"type":"array"},"system_version":{"examples":["allowed","ignored","required"],"type":"string"},"type":{"examples":["git_bash","go","java","node","php","python","ruby","rust"],"type":"string"},"version":{"type":["string","number","boolean"]},"version_commands":{"items":{"properties":{"parse_regex":{"type":["string","number","boolean"]},"run":{"type":["string","number","boolean"]}},"type":"object"},"type":"array"}},"type":"object"},"type":"array"},"shared_configs":{"items":{"properties":{"file":{"type":["string","number","boolean"]},"regex":{"type":["string","number","boolean"]}},"type":"object"},"type":"array"},"skip_missing_compile_command":{"type":"boolean"},"threshold":{"items":{"properties":{"level":{"examples":["high","low","medium","none","note"],"type":"string"},"linters":{"items":{"type":["string","number","boolean"]},"type":"array"}},"type":"object"},"type":"array"},"triggers":{"items":{"properties":{"files":{"items":{"type":["string","number","boolean"]},"type":"array"},"linters":{"items":{"type":["string","number","boolean"]},"type":"array"},"paths":{"items":{"type":["string","number","boolean"]},"type":"array"},"regexes":{"items":{"type":["string","number","boolean"]},"type":"array"},"targets":{"items":{"type":["string","number","boolean"]},"type":"array"}},"type":"object"},"type":"array"}},"type":"object"},"merge":{"properties":{"required_statuses":{"items":{"type":["string","number","boolean"]},"type":"array"},"service":{"examples":["auto","graph","queue"],"type":"string"},"statuses":{"items":{"type":["string","number","boolean"]},"type":"array"}},"type":"object"},"notifications":{"properties":{"sleep":{"additionalProperties":{"properties":{"priority":{"additionalProperties":{"type":["string","number","boolean"]},"type":"object"}},"type":"object"},"type":"object"}},"type":"object"},"plugin_url":{"type":["string","number","boolean"]},"plugins":{"properties":{"sources":{"items":{"properties":{"id":{"type":["string","number","boolean"]},"implicit":{"type":"boolean"},"import_to_global":{"type":"boolean"},"local":{"type":["string","number","boolean"]},"original_ref":{"type":["string","number","boolean"]},"ref":{"type":["string","number","boolean"]},"uri":{"type":["string","number","boolean"]}},"type":"object"},"type":"array"}},"type":"object"},"repo":{"properties":{"git":{"properties":{"allowed_user_email_domains":{"items":{"type":["string","number","boolean"]},"type":"array"},"branch_name_format":{"type":["string","number","boolean"]},"new_files_warning_threshold_kb":{"type":"integer"}},"type":"object"},"repo":{"properties":{"host":{"type":["string","number","boolean"]},"name":{"type":["string","number","boolean"]},"owner":{"type":["string","number","boolean"]}},"type":"object"},"trunk_branch":{"type":["string","number","boolean"]},"trunk_primary_remote":{"type":["string","number","boolean"]},"trunk_remote_hint":{"type":["string","number","boolean"]},"use_branch_upstream":{"type":"boolean"}},"type":"object"},"required_trunk_version":{"type":["string","number","boolean"]},"runtimes":{"properties":{"definitions":{"items":{"properties":{"download":{"type":["string","number","boolean"]},"enabled":{"type":"boolean"},"known_good_version":{"type":["string","number","boolean"]},"linter_environment":{"items":{"properties":{"list":{"items":{"type":["string","number","boolean"]},"type":"array"},"name":{"type":["string","number","boolean"]},"optional":{"type":"boolean"},"value":{"type":["string","number","boolean"]}},"type":"object"},"type":"array"},"runtime_environment":{"items":{"properties":{"list":{"items":{"type":["string","number","boolean"]},"type":"array"},"name":{"type":["string","number","boolean"]},"optional":{"type":"boolean"},"value":{"type":["string","number","boolean"]}},"type":"object"},"type":"array"},"shims":{"items":{"properties":{"name":{"type":["string","number","boolean"]},"target":{"type":["string","number","boolean"]}},"type":"object"},"type":"array"},"supported_platforms":{"items":{"examples":["linux","macos","windows"],"type":"string"},"type":"array"},"system_version":{"examples":["allowed","ignored","required"],"type":"string"},"type":{"examples":["git_bash","go","java","node","php","python","ruby","rust"],"type":"string"},"version":{"type":["string","number","boolean"]},"version_commands":{"items":{"properties":{"parse_regex":{"type":["string","number","boolean"]},"run":{"type":["string","number","boolean"]}},"type":"object"},"type":"array"}},"type":"object"},"type":"array"},"enabled":{"items":{"description":"See https://docs.trunk.io","examples":["ruby@>=2.7.1","python@3.9.1"],"type":"string"},"type":"array"}},"type":"object"},"telemetry":{"examples":["all","off"],"type":"string"},"tools":{"properties":{"auto_sync":{"type":"boolean"},"definitions":{"items":{"properties":{"autogenerated_definition_path":{"type":["string","number","boolean"]},"download":{"type":["string","number","boolean"]},"enabled":{"type":"boolean"},"enabled_status":{"examples":["disabled","explicit","implicit_dependency","implicit_main"],"type":"string"},"environment":{"items":{"properties":{"list":{"items":{"type":["string","number","boolean"]},"type":"array"},"name":{"type":["string","number","boolean"]},"optional":{"type":"boolean"},"value":{"type":["string","number","boolean"]}},"type":"object"},"type":"array"},"extra_packages":{"items":{"type":["string","number","boolean"]},"type":"array"},"health_checks":{"items":{"properties":{"check_stderr":{"type":"boolean"},"command":{"type":["string","number","boolean"]},"exit_code":{"type":"integer"},"parse_regex":{"type":["string","number","boolean"]},"platforms":{"items":{"examples":["linux","macos","windows"],"type":"string"},"type":"array"}},"type":"object"},"type":"array"},"known_good_version":{"type":["string","number","boolean"]},"name":{"type":["string","number","boolean"]},"package":{"type":["string","number","boolean"]},"runtime":{"examples":["git_bash","go","java","node","php","python","ruby","rust"],"type":"string"},"shims":{"items":{"properties":{"name":{"type":["string","number","boolean"]},"target":{"type":["string","number","boolean"]}},"type":"object"},"type":"array"},"version":{"type":["string","number","boolean"]},"version_constraint":{"type":["string","number","boolean"]}},"type":"object"},"type":"array"},"disabled":{"items":{"type":["string","number","boolean"]},"type":"array"},"downloads":{"items":{"properties":{"args":{"additionalProperties":{"type":["string","number","boolean"]},"type":"object"},"downloads":{"items":{"properties":{"cpu":{"additionalProperties":{"type":["string","number","boolean"]},"type":"object"},"gpg":{"type":["string","number","boolean"]},"os":{"additionalProperties":{"type":["string","number","boolean"]},"type":"object"},"sha256":{"type":["string","number","boolean"]},"strip_components":{"type":"integer"},"url":{"type":["string","number","boolean"]},"version":{"type":["string","number","boolean"]}},"type":"object"},"type":"array"},"executable":{"type":"boolean"},"name":{"type":["string","number","boolean"]},"rename_single_file":{"type":"boolean"},"version":{"type":["string","number","boolean"]}},"type":"object"},"type":"array"},"enabled":{"items":{"oneOf":[{"description":"Name of tools to enable, including a version. If a tool shares a name with an enabled linter, it can be omitted from this list.","examples":["prisma@5.1.1","bazel@6.3.2"],"type":"string"},{"additionalProperties":{"properties":{"name":{"type":["string","number","boolean"]},"packages":{"items":{"type":["string","number","boolean"]},"type":"array"}},"type":"object"},"examples":[],"type":"object"}]},"type":"array"},"runtimes":{"items":{"description":"List of runtimes to enable for tools - must also be enabled in top level runtimes section","examples":["python","node","java"],"type":"string"},"type":"array"}},"type":"object"},"version":{"description":"The trunk config version being parsed. The only possible value is 0.1.","enum":["0.1",0.1]}},"required":["version"],"title":"Configuration schema for trunk, a powerful linter runner - https://docs.trunk.io","type":"object"}
</schema>

[User] Provide a JSON object that satisfies the schema "Configuration schema for trunk, a powerful linter runner - https://docs.trunk.io". Here are the required top‑level fields: version. Return only the valid JSON object.

List of filetypes
To refer to all filetypes, use [ALL]

List of linter IDs
To refer to all linters, use [ALL]

String where "${key1} ${key2}" will be expanded into "value1 value2"

The last linter you'll ever need

git_bash go java node php python ruby rust

Id of actions to enable

critical debug error info off trace warn

Whether or not this will be run on empty files

Whether linter invocations for multiple targets should be batched; used to cut down on per-invocation overhead

Causes every token containing ${target} to be expanded multiple times, e.g. 'my_linter target=${target}' would be expanded into 'my_linter target=target1 target=target2 ... target=targetN'

Whether Trunk can cache results for this linter

argv of the command to invoke the linter with

Whether or not we support linting the upstream version of a target

Whether the command is enabled to run when the linter is run. Allows some commands of a linter to be run by default without others.

Exit codes implying the linter experienced an internal error

Whether or not this linter will be run by 'trunk fmt'; default: false

Whether the linter modifies ${target} files in-place.

Output type of this linter; controls how `trunk` parses its output

actionlint ansible_lint arcanist bandit brakeman buf buildifier cfnlint clippy detekt_gradle diff eslint golangci_lint hadolint haml_lint iwyu llvm lsp_json markdownlint mypy pass_fail pylint regex rewrite rubocop sarif sarif_uri semgrep shellcheck shfmt stylelint taplo terraform_validate

Command to initialize the linter with

Tell parser where to expect output from for reading (if 'tmpfile', then the linter should write its output to ${tmpfile})

NOTE: this field is only respected for type=sarif linters currently

Command to invoke the linter with (write as if you were typing into your shell)

"${linter}" will expand to the directory a linter is installed into, e.g. "${linter}/node_modules/.bin" is appended to the `PATH` of any linter with `runtime: node`

"${runtime}" will expand to the directory a runtime is installed into, e.g. with `runtime: node`, "${runtime}/bin/npm" will yield the path to the installed NPM binary

The nearest target to search for when 'run_linter_from' is 'root_file' or 'root_directory'

What to use as the current working directory:
  * workspace - the root of the repository
  * parent_directory - the directory containing the linter target
  * directory - the linter target itself, with the condition that the linter target is a directory itself
  * root_file - the nearest directory containing 'run_from_root_target', e.g. the nearest directory containing a go.mod file
  * root_directory - the nearest directory matching 'run_from_root_target', e.g. the nearest src/ directory

Whether or not this linter takes its input from stdin

Exit codes corresponding to no issues found or issues found

The download containing this linter (i.e. the `name` of an entry in `downloads`)

Environment variables set when `trunk` runs the linter

The envvar will be set to the `:`-joined list

Extra packages needed to run this linter; also installed using the runtime's package manager

Filetypes to run this linter on

Whether or not this linter can handle LFS files; default: false

Linter ID; use this in fields like `enabled` to reference this linter

The package containing this linter; installed using the runtime's package manager

argv of the command to initialize the linter with

The runtime, toolchain, and package manager used to run and install a linter

Output type of this linter; controls how `trunk` parses its output

linter@envOrVersion, where envOrVersion is either the name of an environment, the version of the main `package` if `runtime` is set, or the verson of the `download`

flake8@4.0.1 { packages [ 'flake8-bugbear@21.9.2', 'flake8-docstring@1.6.0' ] }

Paths to exclude from linting

actionlint ansible_lint arcanist bandit brakeman buf buildifier cfnlint clippy detekt_gradle diff eslint golangci_lint hadolint haml_lint iwyu llvm lsp_json markdownlint mypy pass_fail pylint regex rewrite rubocop sarif sarif_uri semgrep shellcheck shfmt stylelint taplo terraform_validate

actionlint ansible_lint arcanist bandit brakeman buf buildifier cfnlint clippy detekt_gradle diff eslint golangci_lint hadolint haml_lint iwyu llvm lsp_json markdownlint mypy pass_fail pylint regex rewrite rubocop sarif sarif_uri semgrep shellcheck shfmt stylelint taplo terraform_validate

See https://docs.trunk.io

Name of tools to enable, including a version. If a tool shares a name with an enabled linter, it can be omitted from this list.

List of runtimes to enable for tools - must also be enabled in top level runtimes section

The trunk config version being parsed. The only possible value is 0.1.

Provide a JSON object that satisfies the schema "Configuration schema for trunk, a powerful linter runner - https://docs.trunk.io". Here are the required top‑level fields: version. Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://json.schemastore.org/ts-force-config.json","definitions":{"AuthConfig":{"properties":{"accessToken":{"type":"string"},"clientId":{"type":"string"},"clientSecret":{"type":"string"},"instanceUrl":{"type":"string"},"oAuthHost":{"type":"string"},"password":{"type":"string"},"username":{"description":"If using `sfdx-cli` auth, this is the only property needed to authenticate.\nOtherwise, supply additional oAuth parameters","type":"string"},"version":{"type":"number"}},"type":"object"},"FieldMapping":{"properties":{"apiName":{"description":"The Target SObject API name","type":"string"},"propName":{"description":"The generated class property name","type":"string"}},"required":["apiName","propName"],"type":"object"},"SObjectConfig":{"description":"Object used to configure advanced settings on SObject generation","properties":{"apiName":{"description":"The Target SObject API name","type":"string"},"autoConvertNames":{"description":"Defaulted to true.  If set to false, names will NOT be auto-converted to standard javascript conventions","type":"boolean"},"className":{"description":"The generated class name.  If not set, it will be automatically\nconverted to standard javascript Class convention","type":"string"},"enforcePicklistValues":{"description":"*Overrides Global Setting*\nThe path to generate files to.\n   If the destination is a folder, it will generate one file per object.\n   If the destination is a `.ts` file, a single file will be generated.\n   If not set, class output will be logged to `stdout`","enum":["ALL","RESTRICTED",false]},"fieldMappings":{"description":"List of field mappings to override the auto-conversion","items":{"$ref":"#/definitions/FieldMapping"},"type":"array"},"generatePicklists":{"description":"*Overrides Global Setting*\nMake picklist fields strongly typed to generated enums. `generatePicklists` must also be `true`\n  `ALL`: for all picklist fields, regardless of salesforce enforcement\n  `RESTRICTED`: only on fields where the values are restricted on Salesforce","type":"boolean"}},"required":["apiName"],"type":"object"}},"properties":{"auth":{"$ref":"#/definitions/AuthConfig","description":"Authentication Method.  Choose one of three:\n- You can either username/password oAuth configuration\n- sfdx configuration (`username` only)\n- `accessToken` & `instanceUrl`\nSee readme for examples."},"enforcePicklistValues":{"description":"Make picklist fields strongly typed to generated enums. `generatePicklists` must also be `true`\n  `ALL`: for all picklist fields, regardless of salesforce enforcement\n  `RESTRICTED`: only on fields where the values are restricted on Salesforce","enum":["ALL","RESTRICTED",false]},"generatePicklists":{"description":"Flag to generate enums for picklist fields.  Defaulted to false","type":"boolean"},"outPath":{"description":"The path to generate files to.\n   If the destination is a folder, it will generate one file per object.\n   If the destination is a `.ts` file, a single file will be generated.\n   If not set, class output will be logged to `stdout`","type":"string"},"sObjects":{"description":"The SObjects to generate classes for.  Can either be a string or an `SObjectConfig` object","items":{"anyOf":[{"$ref":"#/definitions/SObjectConfig"},{"type":"string"}]},"type":"array"}},"type":"object"}
</schema>

[User] Provide a JSON object that satisfies the schema "ts-force-config". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

If using `sfdx-cli` auth, this is the only property needed to authenticate.
Otherwise, supply additional oAuth parameters

The Target SObject API name

The generated class property name

Object used to configure advanced settings on SObject generation

The Target SObject API name

Defaulted to true.  If set to false, names will NOT be auto-converted to standard javascript conventions

The generated class name.  If not set, it will be automatically
converted to standard javascript Class convention

*Overrides Global Setting*
The path to generate files to.
   If the destination is a folder, it will generate one file per object.
   If the destination is a `.ts` file, a single file will be generated.
   If not set, class output will be logged to `stdout`

List of field mappings to override the auto-conversion

*Overrides Global Setting*
Make picklist fields strongly typed to generated enums. `generatePicklists` must also be `true`
  `ALL`: for all picklist fields, regardless of salesforce enforcement
  `RESTRICTED`: only on fields where the values are restricted on Salesforce

Authentication Method.  Choose one of three:
- You can either username/password oAuth configuration
- sfdx configuration (`username` only)
- `accessToken` & `instanceUrl`
See readme for examples.

Flag to generate enums for picklist fields.  Defaulted to false

The SObjects to generate classes for.  Can either be a string or an `SObjectConfig` object

Provide a JSON object that satisfies the schema "ts-force-config". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.