Merge branch 'main' into fix/6465-workflow-repository-guards

This commit is contained in:
Mark IJbema
2026-03-05 10:58:27 +01:00
committed by GitHub
87 changed files with 513 additions and 322 deletions
+84 -23
View File
@@ -1,26 +1,26 @@
/* Kilo Button overrides – sized to match @vscode/webview-ui-toolkit */
/* Kilo Button overrides – styled to match Figma design */
[data-component="button"] {
font-family: var(--vscode-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif);
font-size: 13px;
line-height: normal;
line-height: 16px;
border-radius: 2px;
cursor: pointer;
border-color: transparent;
box-shadow: none;
&:active:not([data-disabled]) {
opacity: 0.8;
&:focus-visible {
outline: 1px solid var(--border-focus);
outline-offset: 1px;
}
&[data-variant="primary"] {
background-color: var(--surface-interactive-base);
color: var(--text-on-interactive-base, white);
border-color: transparent;
box-shadow: none;
font-weight: 500;
&:disabled {
opacity: 0.5;
cursor: not-allowed;
}
&:hover:not([data-disabled]) {
background-color: var(--surface-interactive-hover);
}
&:active:not(:disabled) {
opacity: 0.8;
}
/* Full-width variant for "Start New Task" style buttons */
@@ -28,35 +28,96 @@
width: 100%;
}
&[data-variant="secondary"] {
&[data-variant="primary"] {
background-color: var(--surface-brand-base);
color: #ffffff;
border-color: transparent;
box-shadow: none;
border: 1px solid var(--border-weak-base);
font-weight: 400;
[data-slot="icon-svg"] {
color: #ffffff;
}
&:hover:not(:disabled) {
background-color: var(--surface-brand-hover);
}
&:disabled {
background-color: var(--surface-brand-base);
opacity: 0.5;
}
}
&[data-variant="secondary"] {
background-color: var(--button-secondary-base);
color: var(--text-strong);
border-color: transparent;
box-shadow: none;
font-weight: 400;
&:hover:not(:disabled) {
background-color: var(--button-secondary-hover);
}
&:disabled {
background-color: var(--button-secondary-base);
opacity: 0.5;
}
[data-slot="icon-svg"] {
color: var(--icon-base);
}
}
&[data-variant="ghost"] {
background: transparent;
border-color: transparent;
box-shadow: none;
font-weight: 400;
&:hover:not(:disabled) {
background-color: rgba(255, 255, 255, 0.03);
background-color: var(--surface-base-hover);
}
&:disabled {
opacity: 0.5;
}
}
&[data-size="normal"] {
height: 26px;
padding: 4px 11px;
height: 32px;
padding: 6px 16px;
gap: 6px;
font-size: 13px;
line-height: 16px;
&[data-icon] {
padding: 6px 16px 6px 12px;
}
}
&[data-size="large"] {
height: 30px;
padding: 6px 11px;
height: 32px;
padding: 6px 16px;
gap: 6px;
font-size: 13px;
line-height: 16px;
&[data-icon] {
padding: 6px 16px 6px 12px;
}
}
&[data-size="small"] {
height: 22px;
padding: 2px 8px;
font-size: 11px;
height: 24px;
padding: 4px 12px;
gap: 4px;
font-size: 13px;
line-height: 16px;
&[data-icon] {
padding: 4px 12px 4px 8px;
}
}
}
+31 -23
View File
@@ -1,51 +1,59 @@
/* Kilo Select overrides – styled to match legacy SelectDropdown look */
/* Kilo Select overrides – styled to match Figma design */
/* Select trigger (renders as a Button, override the button sizing) */
[data-component="select"] [data-slot="select-select-trigger"] {
height: auto !important;
min-height: 22px;
border-radius: 3px;
font-size: 12px;
line-height: normal;
padding: 1px 6px !important;
height: 32px;
min-height: 32px;
border-radius: 2px;
font-size: 13px;
line-height: 16px;
padding: 6px 12px !important;
cursor: pointer;
background: transparent;
border: 1px solid rgba(255, 255, 255, 0.08);
background: var(--background-weak);
border: 1px solid var(--border-base);
box-shadow: none;
opacity: 0.9;
gap: 6px;
gap: 8px;
white-space: nowrap;
transition: all 150ms;
color: var(--text-base, var(--vscode-foreground));
transition: border-color 150ms;
color: var(--icon-weak-base);
justify-content: space-between;
&:hover:not(:disabled) {
opacity: 1;
background: rgba(255, 255, 255, 0.03);
border-color: rgba(255, 255, 255, 0.15);
background: var(--background-weak);
border-color: var(--border-hover);
}
&:focus-visible {
outline: none;
border-color: var(--border-hover);
box-shadow: 0 0 0 1px var(--border-focus);
}
&[data-expanded] {
background: rgba(255, 255, 255, 0.03);
border-color: rgba(255, 255, 255, 0.15);
background: var(--background-weak);
border-color: var(--border-hover);
}
&:disabled {
cursor: not-allowed;
opacity: 0.5;
}
[data-slot="select-select-trigger-value"] {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
font-size: 12px;
font-size: 13px;
line-height: 16px;
color: var(--text-base);
}
[data-slot="select-select-trigger-icon"] {
width: 12px;
height: 12px;
opacity: 0.8;
width: 10px;
height: 20px;
flex-shrink: 0;
color: var(--icon-weak-base);
background-color: transparent;
}
}
@@ -82,7 +90,7 @@
box-sizing: border-box;
border-radius: 0;
padding: 6px 12px;
font-size: 12px;
font-size: 13px;
line-height: 16px;
cursor: pointer;
gap: 8px;
@@ -4,4 +4,76 @@
[data-slot="switch-label"] {
font-size: 13px;
}
[data-slot="switch-control"] {
display: flex;
flex-direction: row;
align-items: center;
box-sizing: border-box;
width: 36px;
height: 20px;
padding: 2px;
border-radius: 9999px;
border: none;
background: var(--border-base);
transition: background-color 150ms;
}
[data-slot="switch-thumb"] {
width: 16px;
height: 16px;
box-sizing: border-box;
border-radius: 9999px;
border: none;
background: #ffffff;
box-shadow:
0px 10px 15px -3px rgba(0, 0, 0, 0.1),
0px 4px 6px -2px rgba(0, 0, 0, 0.05);
transform: translateX(0);
transition: transform 150ms;
}
&:hover:not([data-disabled], [data-readonly]) [data-slot="switch-control"] {
border: none;
background-color: var(--border-hover);
}
&:not([data-readonly]) [data-slot="switch-input"]:focus-visible ~ [data-slot="switch-control"] {
border: none;
box-shadow: none;
outline: 2px solid var(--border-focus);
outline-offset: 2px;
}
&[data-checked] [data-slot="switch-control"] {
box-sizing: border-box;
border: none;
background-color: var(--border-focus);
}
&[data-checked] [data-slot="switch-thumb"] {
border: none;
transform: translateX(16px);
background: #ffffff;
}
&[data-checked]:hover:not([data-disabled], [data-readonly]) [data-slot="switch-control"] {
border: none;
background-color: var(--border-focus);
}
&[data-disabled] [data-slot="switch-control"] {
border: none;
background-color: var(--border-base);
opacity: 0.5;
}
&[data-disabled] [data-slot="switch-thumb"] {
background: #ffffff;
}
&[data-invalid] [data-slot="switch-control"] {
border: none;
box-shadow: 0 0 0 1px var(--border-error);
}
}
+50 -15
View File
@@ -4,6 +4,25 @@
font-size: 13px;
line-height: normal;
[data-slot="tabs-list"] {
padding: 8px;
}
[data-slot="tabs-trigger-wrapper"] {
padding: 8px;
border-radius: 2px;
&:has([data-selected]) {
background-color: var(--input-base);
}
}
[data-slot="tabs-trigger"] {
font-size: 12px;
line-height: normal;
padding: 0px;
}
/* Pill variant: closest to legacy tab style */
&[data-variant="pill"] [data-slot="tabs-list"] {
background: var(--input-base);
@@ -17,23 +36,39 @@
font-size: 13px;
}
/* Default/alt variant adjustments */
[data-slot="tabs-trigger"] {
height: 48px;
padding: 4px 0;
font-size: 13px;
line-height: normal;
}
&[data-variant="settings"] {
container-type: inline-size;
/* Settings variant: content area padding and header styling */
&[data-variant="settings"] [data-slot="tabs-content"] {
padding: 16px 20px;
[data-slot="tabs-list"] {
width: 180px;
min-width: 180px;
}
> h3 {
font-size: 18px;
font-weight: 600;
margin: 0 0 16px 0;
color: var(--vscode-foreground, var(--text-strong));
@container (max-width: 500px) {
[data-slot="tabs-list"] {
width: auto;
min-width: auto;
}
[data-slot="tabs-trigger"] .label {
display: none;
}
}
[data-slot="tabs-content"] {
background-color: var(--background-base);
padding: 8px 16px;
> h3 {
font-size: 16px;
font-weight: 400;
margin: 16px 0;
color: var(--vscode-foreground, var(--text-strong));
}
[data-component="card"] {
padding: 0;
border: none;
}
}
}
}
+44 -7
View File
@@ -1,26 +1,63 @@
/* Kilo Input / TextField overrides – sized to match @vscode/webview-ui-toolkit */
/* Kilo Input / TextField overrides – styled to match Figma design */
[data-component="input"] {
&[data-variant="normal"] [data-slot="input-label"] {
font-size: 12px;
line-height: 14px;
font-weight: var(--font-weight-regular);
color: var(--text-base);
}
&[data-variant="normal"] [data-slot="input-wrapper"] {
border-radius: 2px;
border: 1px solid var(--border-base);
background: var(--background-weak);
padding-right: 0;
transition: border-color 150ms;
&:hover:not(:has([data-readonly])):not(:has(:disabled)) {
border-color: var(--border-hover);
}
&:focus-within:not(:has([data-readonly])) {
border-color: var(--border-focus);
border-color: var(--border-hover);
box-shadow: 0 0 0 1px var(--border-focus);
}
&:has([data-invalid]) {
background: var(--background-weak);
border: 1px solid var(--border-critical-base);
box-shadow: none;
}
&:has(:disabled) {
opacity: 0.5;
}
}
&[data-variant="normal"] [data-slot="input-input"] {
height: 26px;
padding: 0 9px;
height: 32px;
padding: 6px 12px;
font-size: 13px;
line-height: normal;
line-height: 16px;
font-family: var(--vscode-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif);
color: var(--text-base);
&::placeholder {
color: var(--icon-weak-base);
}
}
&[data-variant="normal"] textarea[data-slot="input-input"] {
height: auto;
min-height: 26px;
padding: 9px;
min-height: 32px;
padding: 6px 12px;
}
&[data-variant="normal"] [data-slot="input-error"] {
font-size: 12px;
line-height: 14px;
font-weight: var(--font-weight-regular);
color: var(--text-on-critical-base);
}
}
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d0f6231acb66fe78d5092a7225fd5614f27f4c77c61230bf7151db0e80d196b9
size 6895
oid sha256:ef9169538e70cab67567ca4cfa903ef610e9b73b59cad6701e5cb5818341ee81
size 7376
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ce98be74244727ae4175aeb8d130be0b3f00fedb8dfa1443a45f9ceb909e1418
size 1299
oid sha256:0929c5eceb85e5a74ba55ae0d20e70f625d23d36192f6d9cb028041290063331
size 1247
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:56baa5ea0a41832ec201ed4ab51ac3889c5d55824c1629ab9bdbc9c3c9ae5637
size 1310
oid sha256:0c1dc9216454cca2fde9659b2d43d84e33b8eb487ff78c3b477d7a121de2f493
size 1325
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:890aa247468b220824d4a9ad0f722b67aa85bc76291037bebd9c5c6539d56093
size 1011
oid sha256:d30ad3d15210d135f4d83fab7977b2729025d3818dd5ed4a98aa7062d9b05cd6
size 993
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3607f7a671af286353127740a6fb704104d8be43e4425ad5e0d4f4f382987ff2
size 1018
oid sha256:39b729232cd2f25f61538b1a0fe4042cb96a11c4266b44046199231249637f0c
size 999
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c7e36a11db6f6743c9be84ca587c353e90c24bd0077e810b3c7d7ba4f760283c
size 1687
oid sha256:c6ab68e8eec6f7698185052fb81ec1647c1e7e4d48e4008ec67435ef95e24f12
size 1672
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:7a39c19e03cc544fcc6282525921e5913d62492493737cfd61447e7b47a07116
size 2172
oid sha256:de37fc00cdf7028475fdb57b9791a3a6e3f630fa3c11cb7a611330bac017b1d7
size 2156
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:130d9bc651e1095ecad3a6b098c155c8e95e175c0f9a803d5e5fe15f1a7a41bd
size 774
oid sha256:050745983faa91ff56ca5aa1a5db3b50057cba1c9867ef341aa928b73c6ac3f1
size 892
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d1da9e2d525f04dd4fbc132b442a62df7a1160538bd77b21ae88a9c2c91239ad
size 1344
oid sha256:6b040588b60525e01a5b63a3bd13285e4c6546e58e5c3ef9f23be1198e0b5718
size 1353
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d15875f85359b44cf46c968032197ed12f7c8bd2c99c011df79a51be6dea2691
size 4977
oid sha256:6b136f748640e5a23335febccf8e553787a270e0c02956eb608da76a7d04321c
size 5030
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:33ce241de394bdc80c8c233d40c32c137368dba840247a23041ce964c6b4b2c3
size 2445
oid sha256:3471e6f9ed20eda6c785be3fe3cbb34535665076379225dd7937b20dac3a9d30
size 2432
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:77db8ea0e6e2dda4d9349f5a29fae0b2de506c7bb98325ddff238aab8d1907cd
size 2274
oid sha256:b3dcda97eae4bfbb610808edec0a35e78b6a139ff67b60f00612b0014a31413c
size 2256
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:77db8ea0e6e2dda4d9349f5a29fae0b2de506c7bb98325ddff238aab8d1907cd
size 2274
oid sha256:b3dcda97eae4bfbb610808edec0a35e78b6a139ff67b60f00612b0014a31413c
size 2256
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ba9380f9a80f5b4a9e65ad4a87f97f42489ebbe9bc2067534335829e73414d25
size 2658
oid sha256:c436b47d20b885b52716217728b6d06b9dd5b4947be8f43919491b8384b176e2
size 2634
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4025108089ff661e325aa0eebdcf97ec640a1a688055362a9b80296f9d1ab7f6
size 1756
oid sha256:e0653bf3ad0acb42b55f6167ea2f3eec69a10c0e87d13a2a40268552221cd8b9
size 1710
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:50d533da79b80fca9e763cced0d08f536b5af53c1fbe254b1038189f2e68ecbb
size 2303
oid sha256:c0f8f9d03ed0c3afccc249edfb086711d52e6847927622455b0cc28bbc059568
size 2326
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9af5220a6729832954a3836b8ff5de6c92434cb94c367f8aa764052d8fead514
size 2259
oid sha256:bd776e9c9c78dd63015fbb4ed47e7b11234672b0eb553107dbed6002231d1d5f
size 2239
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:eddd165d1c76b11306f27ec5e8c6e101467bd9424f7aa8a8ec0a0e76105a45af
size 2278
oid sha256:f2129ac69bc0dc33ffa31ef0d120b3bb391554c21adcce61addca6f7360643e7
size 2267
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5fa0d4ce2f4e2b64386589162341e400897c6130bec18b0d3b2dde2e1dcd6aba
size 2666
oid sha256:93158649d87644922b9a7375c192bdc4b7540f31e59a30cb17834daf1d5a55ec
size 2657
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6ca3197c0b19b991d5d12005c43b95b5e204fb560bc0ca981eacb4ac5b822bed
oid sha256:5e04668069634abc56eee0e0b7a77f946ced831e69523187e8ada96efdeb2a48
size 2250
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:da4bbd1d5e64e58c65fca1b5dfd04477aab5c54c051df1aaf2162e56aed32b67
size 2309
oid sha256:5c79da2e7092d11344102f8cf54512054f3bbc02677101eb84a33f4fb94eb55d
size 2315
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:307abeb00907e24a912d94f314afce46d65cc6d911575395a9292c277679717c
size 1483
oid sha256:bab01b494aa47814db9031cf57d0a6ba8934f46d735b6c458e754bf5414ceb4c
size 1467
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:664d774396c5cae6fc0928519e97aa445020796d61399769b6675296a7b33383
size 1880
oid sha256:836dda9a821131c24b2c1d3c8234ab64bfb3bc122f3b441e4b802f6bae4f79a4
size 1853
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5159923f3a02901e6df79b3f252cb0bca0bd01edbd6ce4f3e8169182f9824ffd
size 1796
oid sha256:21cae0e4b92b551d201d8d8fd9ee4df5d94c1a0840dd00ba1837293120e9c1da
size 1716
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:71d7cf950126465aa41e9938b8a31a4c9437fd1b26b4776c7f360dd7b5ccbdb9
size 1466
oid sha256:a0b5a988b911ed2595c38e95e29dab13355056e718bfbfda3a7c78ebdaa880e8
size 1453
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f72f6283b187acc3f3b4b46dbcc8be82472d570bc3968d4973c4193a1b3dd456
size 1658
oid sha256:7ecf0527acd0c9fd7bd3a45ea07cb782f430e21d87ee4d6966ab92c497858ddf
size 1630
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:fff90725c6f1a009486a92a02411f90c0dc56e8bf67990bc67510d1a18539efa
size 1299
oid sha256:6c116173dd9ae74716698d617cf100220a31c0cc9c8fd90abdf1fdf4ffef7639
size 1353
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:8785d23edaaa03e3313b046c3b1d0bc4c75808bbb5264d9b217294769083f502
size 1355
oid sha256:35042645a999092607ac661c917793061e49f8359f2cc6ccd79ffe78fb959dee
size 1440
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:dbd6f802b14028db6b5d5cf728002b127f3b7f9d1782edbeea558e8a7270dabb
size 6473
oid sha256:5cb7b658580ab1f09ae27673af8e63d7f4d4a6faa3324961bb7f383fb62b96a8
size 8631
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:bea2138b03dc374c4cda3e7131f3a57a2d95e0598d143d8dae86d766da10cea2
size 2058
oid sha256:257d2585acad98a71b8496dcea80402d5cfd2727f0b444bf242369c55fabc31b
size 2466
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:40f091d107a43682bd3e073b69f007800d7078a855149548b5996ac54352880d
size 1761
oid sha256:15d94034b28feec1a2ff63cf08d2a30acebc404febb162a5296bf85cc0552140
size 2117
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ef79c54dcaf5820d4f9cb9ec377563a4631168ab2ed708e050e5dc99fc3e0f37
size 1746
oid sha256:59091c8deaef34fa6075d628f0f0fbfb61afbc8353520c7db0a84cb67c316c9d
size 2276
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:96d144668c6eabcac120fda7eef04c8768ddc0fb054f74560c9f4b0b958c6749
size 1690
oid sha256:e7b07e5851a51d54f9426912629eb97bd512dd567dda42707874751b000614a8
size 2236
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1823a6ce12ddba0e9072403acb195235e5aae61817ef0267f35bb340d173c136
size 3927
oid sha256:4c1298ef4265ac975adb96750df19f5f1a0b41e6211c9fcae38244207583326e
size 4376
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:89538e969778659b039abf926d1c9b81aa233d799d88f8d32957a2d0fbeb443b
size 19685
oid sha256:59ae3ae25ea2f50a33e4ed42a98d287ebe6d1f0bc5ece0ea12b650c30dfcdce2
size 19623
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:8fe133ce58b8beedf535c8929b3cf483aa470dda2892d854dd131116d51056a0
size 3670
oid sha256:8910f31e98d88f54103b2dc961794262563f73f2125d13fb6ed5cbe55a523f20
size 3545
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:192408b0435322159b8ffcfa8eb312d7504e6f0cf71b5649b266ecb13006b1f3
size 3719
oid sha256:85fd27034cbf1d13163212f7e358c8f8e4739838faf7a9a69e8efbdeced0f808
size 3875
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a82f82b2539df8f5d1ac643e0cc088ad3fa64d50332583fa4119468afb52765e
size 3909
oid sha256:a8b3a91a3a4a139bf41367c067a7d452cce6cda8e5afc41f260fcd7ecae669cb
size 3861
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:53bfaead2891c6606f2b378778531acd5d2f4576efe74e2c3583452b7aedf18e
size 3844
oid sha256:96b6e3cdeaa92ae4f14693f469f5985117fbfc25a40dff65c817005fc50f5d34
size 3812
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9ee5c41c2be7f188d1c158ae651a8bda1eb0ecc0880133c0e010a4e95e930b01
size 12542
oid sha256:4007057159ecfaa3250280525d36827983c563857a1182c85f2e40ab279bb67a
size 13314
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:eb4a4dee2489bc3bd9d5a13f017e351ad1c3a569206573533dc658dd4bb67fc1
size 3556
oid sha256:c133f3aa2fb97f7afd733348380aed9e0e0f14c327f56725a28e8e7192a470e1
size 3744
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6cf1a4ae471333675e699f1125fbf667d87121353aeda3ae602a3402934124bc
size 4889
oid sha256:18d727d85ea1babebb5f9b05ace30276ca332dc909d0442a38fb19f5b39a03db
size 4974
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:94963acc0066dd9cfd1e34cc7fb5e5996ffea0b367d11b3b8deb7a0a4a5a8b45
size 2732
oid sha256:1254fd7bc388c49c01fda8a72414acef08f5e0ec28988a48ed89624795ce8f6c
size 2940
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1759944d91d6206b8718931133e52c5e12d7a6a94f9b7cb8f264132c8733a78b
size 3349
oid sha256:f7fe3824fd8018ebf1b1a44d95c606e1faf2be2e1b7d50a770dc18a48227c23e
size 3428
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1427f7a5fa49ab30339b4cd43fd49a713dc93ab8556e403d16282ceffbb7cdcc
size 1297
oid sha256:83270ea01bf2f4bfc71abb10f6b61359afd35cd4c96357f0ccb3254966a75d79
size 1244
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:12b21c1f1ed66f72fd3590a29c5825238f77a2794b6d34dff0ba772ba9c7ca57
size 4001
oid sha256:54428af715d66a065341dc6051c560c3cf8de72f48a4548567124148ffaa4938
size 3999
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2603dbbcfc6b16505dafe5514444f9055c5fecf58862171e39ff46d258270425
size 4050
oid sha256:ff29e1cb478f40d8159efa7a4e1a7bef7627455634cae3a74fe402c11eee0117
size 4119
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:895a727758d5cc2d48b99d44d1659ae66393ba54149ff62a94b1bdb33ff393f3
size 2006
oid sha256:3227712639d2bb9cfa46b38b29d7e02f8b56bbcc9c5cccef5bd8c0893dd46d24
size 2139
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:63729e68e574e3e23a97791d4da76e7d7a44b93a216e858cd9b78bdf8e2d059c
size 3183
oid sha256:9eba5d5632640832e389acfaf3befdc1227f2762e5d2abd4d25f93cc05e9807d
size 3217
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:abd3879f2d1b210dcf5a4a7e910b1fb23d83196386eda6d452b01c5aab377016
size 1658
oid sha256:a4b06a60ff81be29d0e86c542857179185a1a4f874abb0457bfa9b579e41ba7f
size 1643
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e103e96177f5dd983a0bbc43aaaabaa30d50f2deec6dcb7fc8f82bac809e57ba
size 1824
oid sha256:ee72870afdcd35bcc9cd4dfabd2c106a52d359d3470c87ec8e1e6c1d91efc36c
size 1808
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:15db7ba1aa8d06b71f7e703bfad58b5fd04ee14be99b423f629cad6b0d77697b
size 2347
oid sha256:d9e492e963b1780117a5a59c7d4577b82edb3ef19d48e03de13786943265032b
size 2336
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:8d58f9f9f4a079a76bab0580f56e9e0fe3dd6232c314b67f83417431bec99180
size 2470
oid sha256:97c58927378a10ddef0d710844ff83e58fcdfce992f35903d80486a92b2310e4
size 2459
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:47a2d16c980cba0fcd5894b52f8f88308985f3bf11f6d2255e0507ff3fbd1ca3
size 2575
oid sha256:1f1fa635b3636c457692bc13372482848ed4d5a2dc1c544ada20e35e40c2e1e1
size 2562
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1a6dff4d9aaf5653fe7dfffe1c2df43852ef0a57307755aa0387456078326180
size 2235
oid sha256:81d83e58db4b0dcf5e1ca7331463cab3fa3a9c55836b4e85089b9e2844ab7c31
size 2223
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:52c8c7003351b230870805837b37c43fdeb65dcd4853d1e1d1abaf80b7cfea58
size 1092
oid sha256:1e470af745989d3f5cd1dfc63a6790ff12b06027f253d66fc7848c63c4127730
size 1080
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:56e5565bd5a44500c8acd26f0e3d9752b3424e16190374aa0567b23790b69ca3
size 2073
oid sha256:d59c5c23953d68593619b339170ae2368d53cbcc598334bc9e9ab6856ae4fc28
size 2122
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:084546376f16728b406c2e12ffb4a794583c5e6b5bde67f04636920a9787dc81
size 6688
oid sha256:54dc125447d42908429f547a6350ce81661e60df5699cadda31b290db83be570
size 7030
+1 -1
View File
@@ -2016,7 +2016,7 @@ export class KiloProvider implements vscode.WebviewViewProvider, TelemetryProper
iconsBaseUri: webview.asWebviewUri(vscode.Uri.joinPath(this.extensionUri, "assets", "icons")),
title: "Kilo Code",
port: this.connectionService.getServerInfo()?.port,
extraStyles: `.container { height: 100%; display: flex; flex-direction: column; height: 100vh; }`,
extraStyles: `.container { height: 100%; display: flex; flex-direction: column; height: 100vh; border-right: 1px solid var(--border-weak-base); }`,
})
}
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f0c06ab1220743bf5ef3b0c16f40de6cf7915aa224635592aeaa584d6586a160
size 19479
oid sha256:db0467fd219dfc19b4b27e32ff29c7f81e68091c58bb6b9209e6baa4e5f396ac
size 19507
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e6ae4436d14f3b4c2fb3f0ecff3c5f6b456c3b23b35103fa5dab46a24a3750b8
size 25233
oid sha256:04d857626cd157bf7f3325f50f48f5c9f95302a836f873cd9249aabbb6b22c8e
size 25422
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:04332222bf7bf3680954f967414f93e9e3d03747961fada79cd32d4a5e2a1431
size 10279
oid sha256:b6cbba3354994879f21489539615bbeeb71cb944980c642d502fdab3c4500e73
size 11000
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b1c5266bca40764f48d0cdefa3398083708ed7deb354acf8a5a296f9f9e0b2a6
size 9005
oid sha256:bcb19f99cbd4cbaf403e2224139ff47318c2618457975d4f957b481962031836
size 9735
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e92994ecc3e78cc5dd1a465b93a049e877ca30cc00a285deb4628cff287eba7b
size 28275
oid sha256:22e44ea6da3326afe29e5eba35c3df0602ee84506f91d4d449c8cf770cd741b4
size 28468
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:fa7bddaa15cf80565ef5b639bfe2de8d2f373019da4b72210c8ea82aaf47913f
size 10384
oid sha256:36abb08cb4cc89b797d49ce2639c6f6e1086d83a6d373bf7821c1035253018b7
size 11181
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3149642961d81ad2ce327cde45c702c143484602a0a51ff1801a6c469afb57ed
size 4490
oid sha256:e2633d0a45f011cc42daa50569e34f97fe766ab93b0570b9c406886d477aafbc
size 4551
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:da8a087a227ff2d10a4e63208499e563d74e50415ce2ae037479f69dddf2c73c
size 5332
oid sha256:27a3f610eb985634f746179140b4f49590baf77654a5ced045a2c8345a053986
size 5575
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:27383118522850a8d49f40b9e92e1030127840cdef344175cdd3a548670d163a
size 6453
oid sha256:db0dc25fbfb187c6700d9f6cdfb3ae87594cf1bce228d4e95c2f8cb55a5ad79c
size 6737
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:136362f99c47a4b3c850f659d9c9c69935908053591aa1fd54c241cf2ef69b6f
size 26901
oid sha256:5debe43731dd71da23ad462caad112b5af6e588d1b2ebf5b151ed66d87e5d477
size 29253
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:da39896ddff095f6eebb3de8215c581fd384633ea35fcea9c9e5531c6eeb36dc
size 52821
oid sha256:9b782a2ce193e54bd4fdd2ebc1490ac9674325a806ccabd56a7d3ff20c87e423
size 39285
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:da2d65474a3e1e71a1a3c3c7ee1fb2213dfe9897dbe5aa600e8d5f92826c6d88
size 1074
oid sha256:56517eed0845a01559a613124e5cf8f48945bbfc6f0fb6e3274ca5607954cb0c
size 1293
@@ -430,7 +430,7 @@ export const PromptInput: Component = () => {
fallback={
<Tooltip value={language.t("prompt.action.send")} placement="top">
<Button
variant="primary"
variant="ghost"
size="small"
onClick={handleSend}
disabled={!canSend()}
@@ -182,19 +182,24 @@ const AgentBehaviourTab: Component = () => {
</SettingsRow>
</Card>
{/* Agent selector */}
<div style={{ "margin-bottom": "12px" }}>
<Select
options={agentSelectorOptions()}
current={agentSelectorOptions().find((o) => o.value === selectedAgent())}
value={(o) => o.value}
label={(o) => o.label}
onSelect={(o) => o && setSelectedAgent(o.value)}
variant="secondary"
size="small"
triggerVariant="settings"
/>
</div>
<Card style={{ "margin-bottom": "12px" }}>
<SettingsRow
title={language.t("settings.agentBehaviour.selectAgent.title")}
description={language.t("settings.agentBehaviour.selectAgent.description")}
last
>
<Select
options={agentSelectorOptions()}
current={agentSelectorOptions().find((o) => o.value === selectedAgent())}
value={(o) => o.value}
label={(o) => o.label}
onSelect={(o) => o && setSelectedAgent(o.value)}
variant="secondary"
size="small"
triggerVariant="settings"
/>
</SettingsRow>
</Card>
<Show when={selectedAgent()}>
<Card>
@@ -313,7 +318,7 @@ const AgentBehaviourTab: Component = () => {
<div style={{ "font-weight": "500" }}>{name}</div>
<div
style={{
"font-size": "11px",
"font-size": "12px",
color: "var(--text-weak-base, var(--vscode-descriptionForeground))",
"margin-top": "4px",
"font-family": "var(--vscode-editor-font-family, monospace)",
@@ -361,7 +366,7 @@ const AgentBehaviourTab: Component = () => {
}}
/>
</div>
<Button size="small" onClick={addSkillPath}>
<Button variant="secondary" onClick={addSkillPath}>
{language.t("common.add")}
</Button>
</div>
@@ -412,7 +417,7 @@ const AgentBehaviourTab: Component = () => {
}}
/>
</div>
<Button size="small" onClick={addSkillUrl}>
<Button variant="secondary" onClick={addSkillUrl}>
{language.t("common.add")}
</Button>
</div>
@@ -455,7 +460,7 @@ const AgentBehaviourTab: Component = () => {
<div style={{ "font-weight": "500" }}>{language.t("settings.agentBehaviour.instructionFiles")}</div>
<div
style={{
"font-size": "11px",
"font-size": "12px",
color: "var(--text-weak-base, var(--vscode-descriptionForeground))",
"margin-top": "2px",
}}
@@ -484,7 +489,7 @@ const AgentBehaviourTab: Component = () => {
}}
/>
</div>
<Button size="small" onClick={addInstruction}>
<Button variant="secondary" onClick={addInstruction}>
{language.t("common.add")}
</Button>
</div>
@@ -102,13 +102,14 @@ const AutoApproveTab: Component = () => {
style={{
"font-family": "var(--vscode-editor-font-family, monospace)",
"font-size": "12px",
"text-transform": "capitalize",
}}
>
{tool}
</div>
<div
style={{
"font-size": "11px",
"font-size": "12px",
color: "var(--text-weak-base, var(--vscode-descriptionForeground))",
"margin-top": "2px",
}}
@@ -69,7 +69,7 @@ const ContextTab: Component = () => {
<Card>
<div
style={{
"font-size": "11px",
"font-size": "12px",
color: "var(--text-weak-base, var(--vscode-descriptionForeground))",
"padding-bottom": "8px",
"border-bottom": patterns().length > 0 || newPattern() ? "1px solid var(--border-weak-base)" : "none",
@@ -98,7 +98,7 @@ const ContextTab: Component = () => {
}}
/>
</div>
<Button size="small" onClick={addPattern}>
<Button variant="secondary" onClick={addPattern}>
{language.t("common.add")}
</Button>
</div>
@@ -104,7 +104,7 @@ const ProvidersTab: Component = () => {
<Card>
<div
style={{
"font-size": "11px",
"font-size": "12px",
color: "var(--text-weak-base, var(--vscode-descriptionForeground))",
"padding-bottom": "8px",
"border-bottom": "1px solid var(--border-weak-base)",
@@ -129,13 +129,12 @@ const ProvidersTab: Component = () => {
label={(o) => o.label}
onSelect={(o) => setNewDisabled(o)}
variant="secondary"
size="small"
triggerVariant="settings"
placeholder="Select provider…"
/>
</div>
<Button
size="small"
variant="secondary"
onClick={() => {
if (newDisabled()) {
addToList("disabled_providers", newDisabled()!.value)
@@ -159,12 +158,7 @@ const ProvidersTab: Component = () => {
}}
>
<span style={{ "font-size": "12px" }}>{id}</span>
<IconButton
size="small"
variant="ghost"
icon="close"
onClick={() => removeFromList("disabled_providers", index())}
/>
<IconButton variant="ghost" icon="close" onClick={() => removeFromList("disabled_providers", index())} />
</div>
)}
</For>
@@ -175,7 +169,7 @@ const ProvidersTab: Component = () => {
<Card>
<div
style={{
"font-size": "11px",
"font-size": "12px",
color: "var(--text-weak-base, var(--vscode-descriptionForeground))",
"padding-bottom": "8px",
"border-bottom": "1px solid var(--border-weak-base)",
@@ -200,13 +194,12 @@ const ProvidersTab: Component = () => {
label={(o) => o.label}
onSelect={(o) => setNewEnabled(o)}
variant="secondary"
size="small"
triggerVariant="settings"
placeholder="Select provider…"
/>
</div>
<Button
size="small"
variant="secondary"
onClick={() => {
if (newEnabled()) {
addToList("enabled_providers", newEnabled()!.value)
@@ -229,12 +222,7 @@ const ProvidersTab: Component = () => {
}}
>
<span style={{ "font-size": "12px" }}>{id}</span>
<IconButton
size="small"
variant="ghost"
icon="close"
onClick={() => removeFromList("enabled_providers", index())}
/>
<IconButton variant="ghost" icon="close" onClick={() => removeFromList("enabled_providers", index())} />
</div>
)}
</For>
@@ -54,59 +54,59 @@ const Settings: Component<SettingsProps> = (props) => {
<Tabs.List>
<Tabs.Trigger value="providers">
<Icon name="providers" />
{language.t("settings.providers.title")}
<span class="label">{language.t("settings.providers.title")}</span>
</Tabs.Trigger>
<Tabs.Trigger value="agentBehaviour">
<Icon name="brain" />
{language.t("settings.agentBehaviour.title")}
<span class="label">{language.t("settings.agentBehaviour.title")}</span>
</Tabs.Trigger>
<Tabs.Trigger value="autoApprove">
<Icon name="checklist" />
{language.t("settings.autoApprove.title")}
<span class="label">{language.t("settings.autoApprove.title")}</span>
</Tabs.Trigger>
<Tabs.Trigger value="browser">
<Icon name="window-cursor" />
{language.t("settings.browser.title")}
<span class="label">{language.t("settings.browser.title")}</span>
</Tabs.Trigger>
<Tabs.Trigger value="checkpoints">
<Icon name="branch" />
{language.t("settings.checkpoints.title")}
<span class="label">{language.t("settings.checkpoints.title")}</span>
</Tabs.Trigger>
<Tabs.Trigger value="display">
<Icon name="eye" />
{language.t("settings.display.title")}
<span class="label">{language.t("settings.display.title")}</span>
</Tabs.Trigger>
<Tabs.Trigger value="autocomplete">
<Icon name="code-lines" />
{language.t("settings.autocomplete.title")}
<span class="label">{language.t("settings.autocomplete.title")}</span>
</Tabs.Trigger>
<Tabs.Trigger value="notifications">
<Icon name="circle-check" />
{language.t("settings.notifications.title")}
<span class="label">{language.t("settings.notifications.title")}</span>
</Tabs.Trigger>
<Tabs.Trigger value="context">
<Icon name="server" />
{language.t("settings.context.title")}
<span class="label">{language.t("settings.context.title")}</span>
</Tabs.Trigger>
<Tabs.Trigger value="terminal">
<Icon name="console" />
{language.t("settings.terminal.title")}
<span class="label">{language.t("settings.terminal.title")}</span>
</Tabs.Trigger>
<Tabs.Trigger value="prompts">
<Icon name="comment" />
{language.t("settings.prompts.title")}
<span class="label">{language.t("settings.prompts.title")}</span>
</Tabs.Trigger>
<Tabs.Trigger value="experimental">
<Icon name="settings-gear" />
{language.t("settings.experimental.title")}
<span class="label">{language.t("settings.experimental.title")}</span>
</Tabs.Trigger>
<Tabs.Trigger value="language">
<Icon name="speech-bubble" />
{language.t("settings.language.title")}
<span class="label">{language.t("settings.language.title")}</span>
</Tabs.Trigger>
<Tabs.Trigger value="aboutKiloCode">
<Icon name="help" />
{language.t("settings.aboutKiloCode.title")}
<span class="label">{language.t("settings.aboutKiloCode.title")}</span>
</Tabs.Trigger>
</Tabs.List>
@@ -6,22 +6,16 @@ const SettingsRow: Component<{ title: string; description: string; last?: boolea
<div
data-slot="settings-row"
style={{
display: "flex",
"flex-wrap": "wrap",
"align-items": "center",
"justify-content": "space-between",
padding: "12px 0",
gap: "8px",
"margin-bottom": props.last ? "0" : "8px",
"padding-bottom": props.last ? "0" : "8px",
"border-bottom": props.last ? "none" : "1px solid var(--border-weak-base)",
}}
>
<div style={{ "min-width": "150px", flex: "1 1 200px" }}>
<div style={{ "font-weight": "500" }}>{props.title}</div>
<div style={{ "font-size": "11px", color: "var(--text-weak-base, var(--vscode-descriptionForeground))" }}>
{props.description}
</div>
<div data-slot="settings-row-label">
<div data-slot="settings-row-label-title">{props.title}</div>
<div data-slot="settings-row-label-subtitle">{props.description}</div>
</div>
{props.children}
<div data-slot="settings-row-input">{props.children}</div>
</div>
)
@@ -190,8 +190,8 @@ export const ModelSelectorBase: Component<ModelSelectorBaseProps> = (props) => {
onOpenChange={setOpen}
triggerAs={Button}
triggerProps={{
variant: "ghost",
size: "small",
variant: "secondary",
size: "normal",
disabled: !hasProviders(),
title: selectedModel()?.id,
}}
@@ -924,7 +924,8 @@ export const dict = {
"settings.agentBehaviour.defaultAgent.title": "Default Agent",
"settings.agentBehaviour.defaultAgent.description": "Agent to use when none is specified",
"settings.agentBehaviour.selectAgent": "Select an agent to configure…",
"settings.agentBehaviour.selectAgent.title": "Agent",
"settings.agentBehaviour.selectAgent.description": "Select an agent to configure…",
"settings.agentBehaviour.modelOverride.title": "Model Override",
"settings.agentBehaviour.modelOverride.description": "Override the default model for this agent",
"settings.agentBehaviour.prompt.title": "Custom Prompt",
@@ -998,7 +999,6 @@ export const dict = {
// Agent Manager strings live in webview-ui/agent-manager/i18n/en.ts
"question.summary": "{{n}} of {{total}} questions",
"common.review": "Review",
@@ -1221,3 +1221,37 @@
.enhance-spinner {
animation: enhance-spin 1s linear infinite;
}
[data-slot="settings-row"] {
display: flex;
flex-wrap: wrap;
align-items: flex-start;
justify-content: space-between;
gap: 16px;
[data-slot="settings-row-label"] {
flex: 1 1 0%;
min-width: 150px;
[data-slot="settings-row-label-title"] {
font-weight: 500;
min-height: 16px;
margin-bottom: 4px;
}
[data-slot="settings-row-label-subtitle"] {
font-size: 12px;
min-height: 14px;
color: var(--text-weak-base, var(--vscode-descriptionForeground));
}
}
[data-slot="settings-row-input"] {
flex: 0 0 auto;
max-width: 160px;
& > * {
max-width: 100%;
}
}
}
@@ -251,54 +251,10 @@ export namespace ProviderTransform {
})
}
// kilocode_change - function added
function fixDuplicateReasoning(msgs: ModelMessage[], model: Provider.Model) {
for (const msg of msgs) {
if (msg.role !== "assistant" || !Array.isArray(msg.content)) {
continue
}
const set = new Set<string>()
for (const part of msg.content) {
const openrouterProviderOptions = part.providerOptions?.openrouter as
| {
reasoning_details?: { data?: string; text?: string; signature?: string }[]
}
| undefined
if (!openrouterProviderOptions || !openrouterProviderOptions.reasoning_details) {
continue
}
openrouterProviderOptions.reasoning_details = openrouterProviderOptions.reasoning_details.filter((rd) => {
if (rd.data) {
if (!set.has(rd.data)) {
set.add(rd.data)
return true
}
return false
}
if (rd.text) {
if ((model.family === "claude" || model.id.includes("claude")) && !rd.signature) return false
if (!set.has(rd.text)) {
set.add(rd.text)
return true
}
return false
}
return true
})
}
}
}
export function message(msgs: ModelMessage[], model: Provider.Model, options: Record<string, unknown>) {
msgs = unsupportedParts(msgs, model)
msgs = normalizeMessages(msgs, model, options)
// kilocode_change - workaround for @openrouter/ai-sdk-provider v1 duplicating reasoning
// fixed in https://github.com/OpenRouterTeam/ai-sdk-provider/pull/344/
if (model.api.npm === "@kilocode/kilo-gateway") {
fixDuplicateReasoning(msgs, model)
}
if (
(model.providerID === "anthropic" ||
model.api.id.includes("anthropic") ||