@sourcegraph/cody-web 0.8.0 → 0.8.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{agent.worker-CpzEAjEs.mjs → agent.worker-DwbwPMEN.mjs} +2155 -2123
- package/dist/agent.worker.js +2 -2
- package/dist/{browser-7p2xtDk0.mjs → browser-BOPUs1B6.mjs} +3548 -3618
- package/dist/{git-log-C_pMreBK.mjs → git-log-I_XFP7Ys.mjs} +2 -2
- package/dist/{index-BY36TK4z.mjs → index-Cn5rZvtV.mjs} +2 -2
- package/dist/index.js +127 -59
- package/dist/lib/agent/agent.client.d.ts.map +1 -1
- package/dist/{shell-Ct82N9eV.mjs → shell-BJpPLvT9.mjs} +3 -4
- package/dist/style.css +27 -25
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/dist/util-DHv3aBr3.mjs +0 -28
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { p as path, U as Uri, s as spawn } from "./agent.worker-
|
|
2
|
-
import { w as wrapInActiveSpan, C as ContextItemSource } from "./browser-
|
|
1
|
+
import { p as path, U as Uri, s as spawn } from "./agent.worker-DwbwPMEN.mjs";
|
|
2
|
+
import { w as wrapInActiveSpan, C as ContextItemSource } from "./browser-BOPUs1B6.mjs";
|
|
3
3
|
async function getContextFileFromGitLog(file, options) {
|
|
4
4
|
return wrapInActiveSpan("commands.context.git-log", async (span) => {
|
|
5
5
|
const cwd = path.dirname(file.fsPath);
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
var __defProp = Object.defineProperty;
|
|
2
2
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
3
|
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
4
|
-
import { U as Uri, P as Position, R as Range, w as window, D as DiagnosticSeverity, b as workspace,
|
|
5
|
-
import { t as telemetryRecorder, p as ps, d as dedent } from "./browser-
|
|
4
|
+
import { U as Uri, P as Position, R as Range, w as window, D as DiagnosticSeverity, b as workspace, c as updateRangeMultipleChanges, d as commands, f as executeEdit, T as TERMINAL_EDIT_STATES, g as ThemeColor, h as languages, C as CodeLens, i as setTutorialUri, j as logSidebarClick, k as Disposable } from "./agent.worker-DwbwPMEN.mjs";
|
|
5
|
+
import { t as telemetryRecorder, p as ps, d as dedent } from "./browser-BOPUs1B6.mjs";
|
|
6
6
|
const EMOJI_SVG_TEMPLATE = `<svg width="32" height="32" xmlns="http://www.w3.org/2000/svg">
|
|
7
7
|
<text x="50%" y="50%" dominant-baseline="middle" text-anchor="middle" font-family="Arial" font-size="24px">{emoji}</text>
|
|
8
8
|
</svg>`;
|
package/dist/index.js
CHANGED
|
@@ -2,7 +2,7 @@ var __defProp = Object.defineProperty;
|
|
|
2
2
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
3
|
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
4
4
|
import { jsx, jsxs, Fragment } from "react/jsx-runtime";
|
|
5
|
-
import { g as getDefaultExportFromCjs, L as Ls, k as ke$1, a as ks, F as Fi$1, _ as _s, b as ds, c as bs, i as ii$1, q as qe$1, y as ys, x as xi$1, K as K$2, J as J$2, R as R$3, e as ws, B as B$2, f as g$5, h as h$4, j as _i, S as Ss, l as Br, m as ln, n as bi$1, v as vn, o as xn, N as Nn, r as mn, s as li$1, u as n$1, z as ns, M as M$4, D as Ds, A as le$2, E as c$4, G as oe$1, H as z$1, I as yi$1, W as W$2, U as Ue$1, O as I$2, P as Se$2, Q as O$2, V as F$1, X as Ni$1, Y as ee$1, Z as we$2, $ as b$2, a0 as T$3, a1 as s$2, a2 as o$4, a3 as w$3, a4 as i$1, a5 as k$3, a6 as D$5, a7 as p$8, a8 as m$7, a9 as S$4, aa as v$4, ab as P$2, ac as E$6, ad as Wi$1, ae as L$3, af as d$2, ag as a$3, ah as l$2, ai as f$2, aj as u$6, ak as r$6, al as t$2, am as FILE_CONTEXT_MENTION_PROVIDER, an as SYMBOL_CONTEXT_MENTION_PROVIDER, ao as REMOTE_REPOSITORY_PROVIDER_URI, ap as REMOTE_FILE_PROVIDER_URI, aq as REMOTE_DIRECTORY_PROVIDER_URI, ar as WEB_PROVIDER_URI, as as displayPath, at as displayLineRange, au as displayPathDirname, av as displayPathBasename, aw as IGNORED_FILE_WARNING_LABEL, ax as LARGE_FILE_WARNING_LABEL, ay as Ei$1, az as xe$2, aA as V$2, aB as Es, aC as U$2, aD as e, aE as Ns, aF as an, aG as gs, aH as serializeContextItem, aI as CONTEXT_ITEM_MENTION_NODE_TYPE, aJ as contextItemMentionNodeDisplayText, C as ContextItemSource, aK as URI, aL as qr, aM as _$2, aN as TEMPLATE_INPUT_NODE_TYPE, aO as N$2, aP as parseMentionQuery, aQ as NO_SYMBOL_MATCHES_HELP_LABEL, aR as FILE_RANGE_TOOLTIP_LABEL, aS as createExtensionAPI, aT as createMessageAPIForWebview, aU as lodashExports, aV as memoizeLastValue, aW as toSerializedPromptEditorValue, aX as ri$1, aY as scanForMentionTriggerInUserTextInput, aZ as fs, a_ as Ts, a$ as ps, b0 as hydrateAfterPostMessage, b1 as isCodyProUser, b2 as CodyIDE, b3 as webviewOpenURIForContextItem, b4 as commonjsGlobal, b5 as CodyTaskState, b6 as cryptoJsExports, b7 as isError, b8 as RateLimitError, b9 as CODY_FEEDBACK_URL, ba as isDefined, bb as reformatBotMessageForChat, p as ps$1, bc as isAbortErrorOrSocketHangUp, bd as
|
|
5
|
+
import { g as getDefaultExportFromCjs, L as Ls, k as ke$1, a as ks, F as Fi$1, _ as _s, b as ds, c as bs, i as ii$1, q as qe$1, y as ys, x as xi$1, K as K$2, J as J$2, R as R$3, e as ws, B as B$2, f as g$5, h as h$4, j as _i, S as Ss, l as Br, m as ln, n as bi$1, v as vn, o as xn, N as Nn, r as mn, s as li$1, u as n$1, z as ns, M as M$4, D as Ds, A as le$2, E as c$4, G as oe$1, H as z$1, I as yi$1, W as W$2, U as Ue$1, O as I$2, P as Se$2, Q as O$2, V as F$1, X as Ni$1, Y as ee$1, Z as we$2, $ as b$2, a0 as T$3, a1 as s$2, a2 as o$4, a3 as w$3, a4 as i$1, a5 as k$3, a6 as D$5, a7 as p$8, a8 as m$7, a9 as S$4, aa as v$4, ab as P$2, ac as E$6, ad as Wi$1, ae as L$3, af as d$2, ag as a$3, ah as l$2, ai as f$2, aj as u$6, ak as r$6, al as t$2, am as FILE_CONTEXT_MENTION_PROVIDER, an as SYMBOL_CONTEXT_MENTION_PROVIDER, ao as REMOTE_REPOSITORY_PROVIDER_URI, ap as REMOTE_FILE_PROVIDER_URI, aq as REMOTE_DIRECTORY_PROVIDER_URI, ar as WEB_PROVIDER_URI, as as displayPath, at as displayLineRange, au as displayPathDirname, av as displayPathBasename, aw as IGNORED_FILE_WARNING_LABEL, ax as LARGE_FILE_WARNING_LABEL, ay as Ei$1, az as xe$2, aA as V$2, aB as Es, aC as U$2, aD as e, aE as Ns, aF as an, aG as gs, aH as serializeContextItem, aI as CONTEXT_ITEM_MENTION_NODE_TYPE, aJ as contextItemMentionNodeDisplayText, C as ContextItemSource, aK as URI, aL as qr, aM as _$2, aN as TEMPLATE_INPUT_NODE_TYPE, aO as N$2, aP as parseMentionQuery, aQ as NO_SYMBOL_MATCHES_HELP_LABEL, aR as FILE_RANGE_TOOLTIP_LABEL, aS as createExtensionAPI, aT as createMessageAPIForWebview, aU as lodashExports, aV as memoizeLastValue, aW as toSerializedPromptEditorValue, aX as ri$1, aY as scanForMentionTriggerInUserTextInput, aZ as fs, a_ as Ts, a$ as ps, b0 as hydrateAfterPostMessage, b1 as isCodyProUser, b2 as CodyIDE, b3 as webviewOpenURIForContextItem, b4 as commonjsGlobal, b5 as CodyTaskState, b6 as cryptoJsExports, b7 as isError, b8 as RateLimitError, b9 as CODY_FEEDBACK_URL, ba as isDefined, bb as reformatBotMessageForChat, p as ps$1, bc as isAbortErrorOrSocketHangUp, bd as ModelTag, be as isEqual, bf as serializedPromptEditorStateFromChatMessage, bg as contextItemsFromPromptEditorValue, bh as filterContextItemsFromPromptEditorValue, bi as pluralize$1, bj as isCodyProModel, bk as isWaitlistModel, bl as CustomCommandType, bm as isMacOS, bn as textContentFromSerializedLexicalNode, bo as FAST_CHAT_INPUT_TOKEN_BUDGET, bp as inputTextWithoutContextChipsFromPromptEditorState, bq as deserializeContextItem, br as View, bs as truncateTextStart, bt as CHAT_INPUT_TOKEN_BUDGET, bu as ACCOUNT_USAGE_URL, bv as ACCOUNT_UPGRADE_URL, bw as getRelativeChatPeriod, bx as browser, by as isErrorLike, bz as setDisplayPathEnvInfo, bA as PromptString } from "./browser-BOPUs1B6.mjs";
|
|
6
6
|
import * as React from "react";
|
|
7
7
|
import React__default, { createContext, useContext, useMemo, useLayoutEffect, useEffect, forwardRef, useState, useCallback, useRef, Suspense, createElement, memo, useImperativeHandle, Children, isValidElement, cloneElement, Fragment as Fragment$1, useReducer } from "react";
|
|
8
8
|
var classnames = { exports: {} };
|
|
@@ -9256,7 +9256,7 @@ function getItemsHeading(parentItem, mentionQuery) {
|
|
|
9256
9256
|
}
|
|
9257
9257
|
if (parentItem.id === REMOTE_DIRECTORY_PROVIDER_URI) {
|
|
9258
9258
|
return /* @__PURE__ */ jsxs("div", { className: "tw-flex tw-flex-gap-2 tw-items-center tw-justify-between", children: [
|
|
9259
|
-
/* @__PURE__ */ jsx("div", { children: mentionQuery.text.includes(":") ? "Directory - Select a directory*" : "Directory - Select a repository*" }),
|
|
9259
|
+
/* @__PURE__ */ jsx("div", { children: mentionQuery.text.includes(":") ? "Directory - Select or search for a directory*" : "Directory - Select a repository*" }),
|
|
9260
9260
|
/* @__PURE__ */ jsx(
|
|
9261
9261
|
"div",
|
|
9262
9262
|
{
|
|
@@ -31247,22 +31247,22 @@ const CodeExcerpt = (props) => {
|
|
|
31247
31247
|
}, [highlightRanges, startLine, endLine, tableContainerElement, table2]);
|
|
31248
31248
|
return /* @__PURE__ */ jsx(Code, { className: clsx$1(styles$i.codeExcerpt, className), "data-code-excerpt": true, children: /* @__PURE__ */ jsx("div", { ref: setTableContainerElement, children: table2 }) });
|
|
31249
31249
|
};
|
|
31250
|
-
const resultContainer = "_result-
|
|
31251
|
-
const header$2 = "
|
|
31252
|
-
const headerTitle = "_header-
|
|
31253
|
-
const result = "
|
|
31254
|
-
const searchResultMatch = "_search-result-
|
|
31255
|
-
const horizontalDividerBetween = "_horizontal-divider-
|
|
31256
|
-
const focusableBlock = "_focusable-
|
|
31257
|
-
const clickable = "
|
|
31258
|
-
const dividerBetween = "_divider-
|
|
31259
|
-
const dividerVertical = "_divider-
|
|
31260
|
-
const divider = "
|
|
31261
|
-
const title = "
|
|
31262
|
-
const titleInner = "_title-
|
|
31263
|
-
const toggleMatchesButton = "_toggle-matches-
|
|
31264
|
-
const toggleMatchesButtonExpanded = "_toggle-matches-button--
|
|
31265
|
-
const toggleMatchesButtonText = "_toggle-matches-button-
|
|
31250
|
+
const resultContainer = "_result-container_1ojeo_12";
|
|
31251
|
+
const header$2 = "_header_1ojeo_35";
|
|
31252
|
+
const headerTitle = "_header-title_1ojeo_1";
|
|
31253
|
+
const result = "_result_1ojeo_12";
|
|
31254
|
+
const searchResultMatch = "_search-result-match_1ojeo_61";
|
|
31255
|
+
const horizontalDividerBetween = "_horizontal-divider-between_1ojeo_71";
|
|
31256
|
+
const focusableBlock = "_focusable-block_1ojeo_77";
|
|
31257
|
+
const clickable = "_clickable_1ojeo_83";
|
|
31258
|
+
const dividerBetween = "_divider-between_1ojeo_91";
|
|
31259
|
+
const dividerVertical = "_divider-vertical_1ojeo_101";
|
|
31260
|
+
const divider = "_divider_1ojeo_91";
|
|
31261
|
+
const title = "_title_1ojeo_113";
|
|
31262
|
+
const titleInner = "_title-inner_1ojeo_121";
|
|
31263
|
+
const toggleMatchesButton = "_toggle-matches-button_1ojeo_125";
|
|
31264
|
+
const toggleMatchesButtonExpanded = "_toggle-matches-button--expanded_1ojeo_1";
|
|
31265
|
+
const toggleMatchesButtonText = "_toggle-matches-button-text_1ojeo_1";
|
|
31266
31266
|
const styles$h = {
|
|
31267
31267
|
resultContainer,
|
|
31268
31268
|
header: header$2,
|
|
@@ -32530,19 +32530,20 @@ const CodyLogoBW = ({ size: size2, ...props }) => /* @__PURE__ */ jsxs(
|
|
|
32530
32530
|
}
|
|
32531
32531
|
);
|
|
32532
32532
|
function chatModelIconComponent(model) {
|
|
32533
|
-
|
|
32533
|
+
model = model.toLowerCase();
|
|
32534
|
+
if (model.startsWith("openai") || model.includes("gpt")) {
|
|
32534
32535
|
return OpenAILogo;
|
|
32535
32536
|
}
|
|
32536
|
-
if (model.
|
|
32537
|
+
if (model.includes("anthropic")) {
|
|
32537
32538
|
return AnthropicLogo;
|
|
32538
32539
|
}
|
|
32539
|
-
if (model.startsWith("google")) {
|
|
32540
|
+
if (model.startsWith("google") || model.includes("gemini")) {
|
|
32540
32541
|
return GeminiLogo;
|
|
32541
32542
|
}
|
|
32542
|
-
if (model.
|
|
32543
|
+
if (model.includes("ollama")) {
|
|
32543
32544
|
return OllamaLogo;
|
|
32544
32545
|
}
|
|
32545
|
-
if (model.
|
|
32546
|
+
if (model.includes("mistral") || model.includes("mixtral")) {
|
|
32546
32547
|
return MistralLogo;
|
|
32547
32548
|
}
|
|
32548
32549
|
return CodyLogoBW;
|
|
@@ -73439,7 +73440,7 @@ const BaseMessageCell = ({ speakerIcon, speakerTitle, cellAction, content: conte
|
|
|
73439
73440
|
}
|
|
73440
73441
|
);
|
|
73441
73442
|
const MESSAGE_CELL_AVATAR_SIZE = 20;
|
|
73442
|
-
const ContextFocusActions = ({ humanMessage, className }) => {
|
|
73443
|
+
const ContextFocusActions = ({ humanMessage, longResponseTime, className }) => {
|
|
73443
73444
|
const telemetryRecorder = useTelemetryRecorder();
|
|
73444
73445
|
const initialContextEventMetadata = {
|
|
73445
73446
|
hasInitialContextRepositories: humanMessage.hasInitialContext.repositories ? 1 : 0,
|
|
@@ -73487,7 +73488,16 @@ const ContextFocusActions = ({ humanMessage, className }) => {
|
|
|
73487
73488
|
humanMessage.rerunWithDifferentContext(options);
|
|
73488
73489
|
}
|
|
73489
73490
|
} : null,
|
|
73490
|
-
{
|
|
73491
|
+
longResponseTime ? {
|
|
73492
|
+
label: "Try again with a different model",
|
|
73493
|
+
tooltip: "A new window will open with a copy of the current conversation where you can resubmit your request with a different model",
|
|
73494
|
+
onClick: () => {
|
|
73495
|
+
getVSCodeAPI().postMessage({
|
|
73496
|
+
command: "chatSession",
|
|
73497
|
+
action: "duplicate"
|
|
73498
|
+
});
|
|
73499
|
+
}
|
|
73500
|
+
} : {
|
|
73491
73501
|
label: "Add context...",
|
|
73492
73502
|
tooltip: "Add relevant content to improve the response",
|
|
73493
73503
|
onClick: () => {
|
|
@@ -73502,7 +73512,13 @@ const ContextFocusActions = ({ humanMessage, className }) => {
|
|
|
73502
73512
|
}
|
|
73503
73513
|
}
|
|
73504
73514
|
].flat().filter(isDefined),
|
|
73505
|
-
[
|
|
73515
|
+
[
|
|
73516
|
+
humanMessage,
|
|
73517
|
+
telemetryRecorder,
|
|
73518
|
+
logRerunWithDifferentContext,
|
|
73519
|
+
initialContextEventMetadata,
|
|
73520
|
+
longResponseTime
|
|
73521
|
+
]
|
|
73506
73522
|
);
|
|
73507
73523
|
return actions2.length > 0 ? /* @__PURE__ */ jsx(
|
|
73508
73524
|
"menu",
|
|
@@ -73511,7 +73527,7 @@ const ContextFocusActions = ({ humanMessage, className }) => {
|
|
|
73511
73527
|
role: "group",
|
|
73512
73528
|
"aria-label": "Try again with different context",
|
|
73513
73529
|
children: /* @__PURE__ */ jsxs("div", { className: "tw-flex tw-flex-wrap tw-items-center tw-gap-x-4 tw-gap-y-2", children: [
|
|
73514
|
-
/* @__PURE__ */ jsx("h3", { className: "tw-flex tw-items-center tw-gap-3", children: "Try again with different context" }),
|
|
73530
|
+
!longResponseTime && /* @__PURE__ */ jsx("h3", { className: "tw-flex tw-items-center tw-gap-3", children: "Try again with different context" }),
|
|
73515
73531
|
/* @__PURE__ */ jsx("ul", { className: "tw-whitespace-nowrap tw-flex tw-gap-2 tw-flex-wrap", children: actions2.map(({ label, tooltip, onClick }) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs(Tooltip, { children: [
|
|
73516
73532
|
/* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
|
|
73517
73533
|
Button3,
|
|
@@ -73546,6 +73562,7 @@ const AssistantMessageCell = memo(
|
|
|
73546
73562
|
smartApply,
|
|
73547
73563
|
smartApplyEnabled
|
|
73548
73564
|
}) => {
|
|
73565
|
+
var _a;
|
|
73549
73566
|
const displayMarkdown = useMemo(
|
|
73550
73567
|
() => reformatBotMessageForChat(message2.text ?? ps$1``).toString(),
|
|
73551
73568
|
[message2]
|
|
@@ -73553,6 +73570,7 @@ const AssistantMessageCell = memo(
|
|
|
73553
73570
|
const chatModel = useChatModelByID(message2.model);
|
|
73554
73571
|
const ModelIcon = chatModel ? chatModelIconComponent(chatModel.id) : null;
|
|
73555
73572
|
const isAborted = isAbortErrorOrSocketHangUp(message2.error);
|
|
73573
|
+
const hasLongerResponseTime = (_a = chatModel == null ? void 0 : chatModel.tags) == null ? void 0 : _a.includes(ModelTag.StreamDisabled);
|
|
73556
73574
|
return /* @__PURE__ */ jsx(
|
|
73557
73575
|
BaseMessageCell,
|
|
73558
73576
|
{
|
|
@@ -73580,7 +73598,10 @@ const AssistantMessageCell = memo(
|
|
|
73580
73598
|
smartApply,
|
|
73581
73599
|
userInfo
|
|
73582
73600
|
}
|
|
73583
|
-
) : isLoading && /* @__PURE__ */
|
|
73601
|
+
) : isLoading && /* @__PURE__ */ jsxs("div", { children: [
|
|
73602
|
+
hasLongerResponseTime && /* @__PURE__ */ jsx("p", { className: "tw-m-4 tw-mt-0 tw-text-muted-foreground", children: "This model may take longer to response." }),
|
|
73603
|
+
/* @__PURE__ */ jsx(LoadingDots, {})
|
|
73604
|
+
] })
|
|
73584
73605
|
] }),
|
|
73585
73606
|
footer: chatEnabled && humanMessage && /* @__PURE__ */ jsxs("div", { className: "tw-py-3 tw-flex tw-flex-col tw-gap-2", children: [
|
|
73586
73607
|
isAborted && /* @__PURE__ */ jsx("div", { className: "tw-text-sm tw-text-muted-foreground tw-mt-4", children: "Output stream stopped" }),
|
|
@@ -73596,6 +73617,7 @@ const AssistantMessageCell = memo(
|
|
|
73596
73617
|
ContextFocusActions,
|
|
73597
73618
|
{
|
|
73598
73619
|
humanMessage,
|
|
73620
|
+
longResponseTime: hasLongerResponseTime,
|
|
73599
73621
|
className: showFeedbackButtons && feedbackButtonsOnSubmit ? "tw-pl-5" : void 0
|
|
73600
73622
|
}
|
|
73601
73623
|
)
|
|
@@ -73653,7 +73675,8 @@ function useChatModelByID(model) {
|
|
|
73653
73675
|
return (chatModels == null ? void 0 : chatModels.find((m2) => m2.id === model)) ?? (model ? {
|
|
73654
73676
|
id: model,
|
|
73655
73677
|
title: model,
|
|
73656
|
-
provider: "unknown"
|
|
73678
|
+
provider: "unknown",
|
|
73679
|
+
tags: []
|
|
73657
73680
|
} : void 0);
|
|
73658
73681
|
}
|
|
73659
73682
|
const contextItem = "_context-item_911i8_1";
|
|
@@ -74355,11 +74378,12 @@ const ModelSelectField = ({
|
|
|
74355
74378
|
});
|
|
74356
74379
|
return;
|
|
74357
74380
|
}
|
|
74358
|
-
|
|
74359
|
-
|
|
74360
|
-
|
|
74361
|
-
|
|
74362
|
-
|
|
74381
|
+
if (isWaitlistModel(model)) {
|
|
74382
|
+
getVSCodeAPI().postMessage({
|
|
74383
|
+
command: "links",
|
|
74384
|
+
value: "waitlist"
|
|
74385
|
+
});
|
|
74386
|
+
}
|
|
74363
74387
|
parentOnModelSelect(model);
|
|
74364
74388
|
},
|
|
74365
74389
|
[telemetryRecorder.recordEvent, showCodyProBadge, parentOnModelSelect, isCodyProUser2]
|
|
@@ -74405,7 +74429,7 @@ const ModelSelectField = ({
|
|
|
74405
74429
|
// be taken to the upgrade page.
|
|
74406
74430
|
disabled: !["available", "needs-cody-pro"].includes(availability),
|
|
74407
74431
|
group: getModelDropDownUIGroup(m2),
|
|
74408
|
-
tooltip:
|
|
74432
|
+
tooltip: getTooltip(m2, availability)
|
|
74409
74433
|
};
|
|
74410
74434
|
}),
|
|
74411
74435
|
[models, userInfo, serverSentModelsEnabled]
|
|
@@ -74540,21 +74564,55 @@ function modelAvailability(userInfo, serverSentModelsEnabled, model) {
|
|
|
74540
74564
|
}
|
|
74541
74565
|
return "available";
|
|
74542
74566
|
}
|
|
74543
|
-
|
|
74544
|
-
|
|
74545
|
-
|
|
74546
|
-
className: clsx$1(styles$5.modelTitleWithIcon, {
|
|
74547
|
-
[styles$5.disabled]: modelAvailability2 !== "available"
|
|
74548
|
-
}),
|
|
74549
|
-
children: [
|
|
74550
|
-
showIcon && /* @__PURE__ */ jsx(ChatModelIcon, { model: model.provider, className: styles$5.modelIcon }),
|
|
74551
|
-
/* @__PURE__ */ jsx("span", { className: clsx$1("tw-flex-grow", styles$5.modelName), children: model.title }),
|
|
74552
|
-
modelAvailability2 === "needs-cody-pro" && /* @__PURE__ */ jsx(Badge3, { variant: "secondary", className: clsx$1(styles$5.badge, "tw-opacity-75"), children: "Cody Pro" }),
|
|
74553
|
-
model.tags.includes(ModelTag.Experimental) && /* @__PURE__ */ jsx(Badge3, { variant: "secondary", className: styles$5.badge, children: "Experimental" }),
|
|
74554
|
-
model.tags.includes(ModelTag.Recommended) && modelAvailability2 !== "needs-cody-pro" ? /* @__PURE__ */ jsx(Badge3, { variant: "secondary", className: styles$5.badge, children: "Recommended" }) : null
|
|
74555
|
-
]
|
|
74567
|
+
function getTooltip(model, availability) {
|
|
74568
|
+
if (model.tags.includes(ModelTag.Waitlist)) {
|
|
74569
|
+
return "Request access to this new model";
|
|
74556
74570
|
}
|
|
74557
|
-
)
|
|
74571
|
+
if (model.tags.includes(ModelTag.OnWaitlist)) {
|
|
74572
|
+
return "Request received, we will reach out with next steps";
|
|
74573
|
+
}
|
|
74574
|
+
switch (availability) {
|
|
74575
|
+
case "not-selectable-on-enterprise":
|
|
74576
|
+
return "Chat model set by your Sourcegraph Enterprise admin";
|
|
74577
|
+
case "needs-cody-pro":
|
|
74578
|
+
return `Upgrade to Cody Pro to use ${model.title} by ${model.provider}`;
|
|
74579
|
+
default:
|
|
74580
|
+
return `${model.title} by ${model.provider}`;
|
|
74581
|
+
}
|
|
74582
|
+
}
|
|
74583
|
+
const ModelTitleWithIcon = ({ model, showIcon, modelAvailability: modelAvailability2 }) => {
|
|
74584
|
+
const getBadgeText = (model2, modelAvailability3) => {
|
|
74585
|
+
if (modelAvailability3 === "needs-cody-pro") return "Cody Pro";
|
|
74586
|
+
if (model2.tags.includes(ModelTag.Experimental)) return "Experimental";
|
|
74587
|
+
if (model2.tags.includes(ModelTag.Waitlist)) return "Join Waitlist";
|
|
74588
|
+
if (model2.tags.includes(ModelTag.OnWaitlist)) return "On Waitlist";
|
|
74589
|
+
if (model2.tags.includes(ModelTag.EarlyAccess)) return "Early Access";
|
|
74590
|
+
if (model2.tags.includes(ModelTag.Recommended)) return "Recommended";
|
|
74591
|
+
return null;
|
|
74592
|
+
};
|
|
74593
|
+
return /* @__PURE__ */ jsxs(
|
|
74594
|
+
"span",
|
|
74595
|
+
{
|
|
74596
|
+
className: clsx$1(styles$5.modelTitleWithIcon, {
|
|
74597
|
+
[styles$5.disabled]: modelAvailability2 !== "available"
|
|
74598
|
+
}),
|
|
74599
|
+
children: [
|
|
74600
|
+
showIcon && /* @__PURE__ */ jsx(ChatModelIcon, { model: model.provider, className: styles$5.modelIcon }),
|
|
74601
|
+
/* @__PURE__ */ jsx("span", { className: clsx$1("tw-flex-grow", styles$5.modelName), children: model.title }),
|
|
74602
|
+
getBadgeText(model, modelAvailability2) && /* @__PURE__ */ jsx(
|
|
74603
|
+
Badge3,
|
|
74604
|
+
{
|
|
74605
|
+
variant: "secondary",
|
|
74606
|
+
className: clsx$1(styles$5.badge, {
|
|
74607
|
+
"tw-opacity-75": modelAvailability2 === "needs-cody-pro"
|
|
74608
|
+
}),
|
|
74609
|
+
children: getBadgeText(model, modelAvailability2)
|
|
74610
|
+
}
|
|
74611
|
+
)
|
|
74612
|
+
]
|
|
74613
|
+
}
|
|
74614
|
+
);
|
|
74615
|
+
};
|
|
74558
74616
|
const ChatModelIcon = ({
|
|
74559
74617
|
model,
|
|
74560
74618
|
className
|
|
@@ -75527,15 +75585,20 @@ const HumanMessageEditor = ({
|
|
|
75527
75585
|
[isSent]
|
|
75528
75586
|
)
|
|
75529
75587
|
);
|
|
75530
|
-
const
|
|
75588
|
+
const model = useCurrentChatModel();
|
|
75589
|
+
let initialContext = useClientState().initialContext;
|
|
75531
75590
|
useEffect(() => {
|
|
75591
|
+
var _a2;
|
|
75532
75592
|
if (initialContext && !isSent && isFirstMessage) {
|
|
75533
75593
|
const editor2 = editorRef.current;
|
|
75534
75594
|
if (editor2) {
|
|
75595
|
+
if ((_a2 = model == null ? void 0 : model.tags) == null ? void 0 : _a2.includes(ModelTag.StreamDisabled)) {
|
|
75596
|
+
initialContext = initialContext.filter((item2) => item2.type !== "tree");
|
|
75597
|
+
}
|
|
75535
75598
|
editor2.setInitialContextMentions(initialContext);
|
|
75536
75599
|
}
|
|
75537
75600
|
}
|
|
75538
|
-
}, [initialContext, isSent, isFirstMessage]);
|
|
75601
|
+
}, [initialContext, isSent, isFirstMessage, model]);
|
|
75539
75602
|
const focusEditor = useCallback(() => {
|
|
75540
75603
|
var _a2;
|
|
75541
75604
|
return (_a2 = editorRef.current) == null ? void 0 : _a2.setFocus(true);
|
|
@@ -75546,7 +75609,6 @@ const HumanMessageEditor = ({
|
|
|
75546
75609
|
}
|
|
75547
75610
|
}, [__storybook__focus, focusEditor]);
|
|
75548
75611
|
const focused2 = Boolean(isEditorFocused || isFocusWithin || __storybook__focus);
|
|
75549
|
-
const model = useCurrentChatModel();
|
|
75550
75612
|
const contextWindowSizeInTokens = ((_b = (_a = model == null ? void 0 : model.contextWindow) == null ? void 0 : _a.context) == null ? void 0 : _b.user) || ((_c = model == null ? void 0 : model.contextWindow) == null ? void 0 : _c.input) || FAST_CHAT_INPUT_TOKEN_BUDGET;
|
|
75551
75613
|
return (
|
|
75552
75614
|
// biome-ignore lint/a11y/useKeyWithClickEvents: only relevant to click areas
|
|
@@ -75833,7 +75895,9 @@ const TranscriptInteraction = memo((props) => {
|
|
|
75833
75895
|
if (editorValue.contextItems.find(
|
|
75834
75896
|
(contextItem2) => ["repository", "tree"].includes(contextItem2.type)
|
|
75835
75897
|
)) {
|
|
75836
|
-
extensionAPI.detectIntent(
|
|
75898
|
+
extensionAPI.detectIntent(
|
|
75899
|
+
inputTextWithoutContextChipsFromPromptEditorState(editorValue.editorState)
|
|
75900
|
+
).subscribe((value) => {
|
|
75837
75901
|
setIntent(value);
|
|
75838
75902
|
});
|
|
75839
75903
|
}
|
|
@@ -75892,7 +75956,7 @@ const TranscriptInteraction = memo((props) => {
|
|
|
75892
75956
|
},
|
|
75893
75957
|
humanMessage.index
|
|
75894
75958
|
),
|
|
75895
|
-
experimentalOneBoxEnabled && humanMessage.intent && /* @__PURE__ */ jsx(InfoMessage, { children: humanMessage.intent === "search" ? /* @__PURE__ */ jsxs("div", { className: "tw-flex tw-justify-between tw-gap-4", children: [
|
|
75959
|
+
experimentalOneBoxEnabled && humanMessage.intent && /* @__PURE__ */ jsx(InfoMessage, { children: humanMessage.intent === "search" ? /* @__PURE__ */ jsxs("div", { className: "tw-flex tw-justify-between tw-gap-4 tw-items-center", children: [
|
|
75896
75960
|
/* @__PURE__ */ jsx("span", { children: "Intent detection selected a code search response." }),
|
|
75897
75961
|
/* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsxs(
|
|
75898
75962
|
Button3,
|
|
@@ -75907,7 +75971,7 @@ const TranscriptInteraction = memo((props) => {
|
|
|
75907
75971
|
]
|
|
75908
75972
|
}
|
|
75909
75973
|
) })
|
|
75910
|
-
] }) : /* @__PURE__ */ jsxs("div", { className: "tw-flex tw-justify-between tw-gap-4", children: [
|
|
75974
|
+
] }) : /* @__PURE__ */ jsxs("div", { className: "tw-flex tw-justify-between tw-gap-4 tw-items-center", children: [
|
|
75911
75975
|
/* @__PURE__ */ jsx("span", { children: "Intent detection selected an LLM response." }),
|
|
75912
75976
|
/* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsxs(
|
|
75913
75977
|
Button3,
|
|
@@ -76779,7 +76843,7 @@ const TabContainer = React__default.forwardRef(({ className, ...props }, ref2) =
|
|
|
76779
76843
|
}
|
|
76780
76844
|
);
|
|
76781
76845
|
});
|
|
76782
|
-
const AccountTab = () => {
|
|
76846
|
+
const AccountTab = ({ setView }) => {
|
|
76783
76847
|
const userInfo = useUserAccountInfo();
|
|
76784
76848
|
const { user, isCodyProUser: isCodyProUser2, isDotComUser, ide } = userInfo;
|
|
76785
76849
|
const { displayName, username, primaryEmail, endpoint } = user;
|
|
@@ -76816,7 +76880,12 @@ const AccountTab = () => {
|
|
|
76816
76880
|
});
|
|
76817
76881
|
actions2.push({
|
|
76818
76882
|
text: "Sign Out",
|
|
76819
|
-
onClick: () =>
|
|
76883
|
+
onClick: () => {
|
|
76884
|
+
getVSCodeAPI().postMessage({ command: "auth", authKind: "signout" });
|
|
76885
|
+
if (ide === CodyIDE.JetBrains) {
|
|
76886
|
+
setView(View.Chat);
|
|
76887
|
+
}
|
|
76888
|
+
}
|
|
76820
76889
|
});
|
|
76821
76890
|
return /* @__PURE__ */ jsxs("div", { className: "tw-overflow-auto tw-flex-1 tw-flex tw-flex-col tw-items-start tw-w-full tw-px-8 tw-py-6 tw-gap-6", children: [
|
|
76822
76891
|
/* @__PURE__ */ jsx("h2", { children: "Account" }),
|
|
@@ -77343,7 +77412,7 @@ const CodyPanel = ({
|
|
|
77343
77412
|
}
|
|
77344
77413
|
),
|
|
77345
77414
|
view === View.Prompts && /* @__PURE__ */ jsx(PromptsTab, { setView }),
|
|
77346
|
-
view === View.Account && /* @__PURE__ */ jsx(AccountTab, {}),
|
|
77415
|
+
view === View.Account && /* @__PURE__ */ jsx(AccountTab, { setView }),
|
|
77347
77416
|
view === View.Settings && /* @__PURE__ */ jsx(SettingsTab, {})
|
|
77348
77417
|
] })
|
|
77349
77418
|
]
|
|
@@ -77437,7 +77506,6 @@ async function createAgentClient({
|
|
|
77437
77506
|
telemetryClientName,
|
|
77438
77507
|
customHeaders: customHeaders ?? {},
|
|
77439
77508
|
customConfiguration: {
|
|
77440
|
-
"cody.internal.onebox": true,
|
|
77441
77509
|
"cody.autocomplete.enabled": false,
|
|
77442
77510
|
"cody.experimental.urlContext": true,
|
|
77443
77511
|
"cody.web": true
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.client.d.ts","sourceRoot":"","sources":["../../../lib/agent/agent.client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAc,UAAU,EAAE,MAAM,oCAAoC,CAAA;AAChF,OAAO,EAGH,KAAK,iBAAiB,EAGzB,MAAM,wBAAwB,CAAA;AAG/B,UAAU,WAAW;IACjB,UAAU,EAAE,UAAU,CAAA;IACtB,GAAG,EAAE,iBAAiB,CAAA;IACtB,OAAO,IAAI,IAAI,CAAA;CAClB;AAED,UAAU,kBAAkB;IACxB,cAAc,EAAE,MAAM,CAAA;IACtB,WAAW,EAAE,MAAM,CAAA;IACnB,iBAAiB,EAAE,MAAM,MAAM,CAAA;IAC/B,gBAAgB,EAAE,MAAM,CAAA;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACtC,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,wBAAsB,iBAAiB,CAAC,EACpC,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,KAAY,EACZ,KAAa,GAChB,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"agent.client.d.ts","sourceRoot":"","sources":["../../../lib/agent/agent.client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAc,UAAU,EAAE,MAAM,oCAAoC,CAAA;AAChF,OAAO,EAGH,KAAK,iBAAiB,EAGzB,MAAM,wBAAwB,CAAA;AAG/B,UAAU,WAAW;IACjB,UAAU,EAAE,UAAU,CAAA;IACtB,GAAG,EAAE,iBAAiB,CAAA;IACtB,OAAO,IAAI,IAAI,CAAA;CAClB;AAED,UAAU,kBAAkB;IACxB,cAAc,EAAE,MAAM,CAAA;IACtB,WAAW,EAAE,MAAM,CAAA;IACnB,iBAAiB,EAAE,MAAM,MAAM,CAAA;IAC/B,gBAAgB,EAAE,MAAM,CAAA;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACtC,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,wBAAsB,iBAAiB,CAAC,EACpC,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,KAAY,EACZ,KAAa,GAChB,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,CAgE3C"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { e as exec, o as os, a as env, w as window, p as path, b as workspace, U as Uri, l as logError } from "./agent.worker-
|
|
2
|
-
import {
|
|
3
|
-
import { w as wrapInActiveSpan, T as TokenCounterUtils, C as ContextItemSource } from "./browser-7p2xtDk0.mjs";
|
|
1
|
+
import { u as util, e as exec, o as os, a as env, w as window, p as path, b as workspace, U as Uri, l as logError } from "./agent.worker-DwbwPMEN.mjs";
|
|
2
|
+
import { w as wrapInActiveSpan, T as TokenCounterUtils, C as ContextItemSource } from "./browser-BOPUs1B6.mjs";
|
|
4
3
|
var define_process_default = { env: {} };
|
|
5
|
-
const _exec =
|
|
4
|
+
const _exec = util.promisify(exec);
|
|
6
5
|
async function getContextFileFromShell(command) {
|
|
7
6
|
return wrapInActiveSpan("commands.context.command", async (span) => {
|
|
8
7
|
var _a, _b, _c;
|
package/dist/style.css
CHANGED
|
@@ -320,23 +320,22 @@ kbd {
|
|
|
320
320
|
--cody-chat-code-border-color: var(--vscode-widget-border);
|
|
321
321
|
--cody-chat-code-text-muted: var(--vscode-input-placeholderForeground);
|
|
322
322
|
--cody-chat-code-focus-border: var(--vscode-focusBorder);
|
|
323
|
-
|
|
324
|
-
--
|
|
325
|
-
--text-muted-highlighted: #566880;
|
|
323
|
+
--cody-chat-code-mark-background: #f8e688;
|
|
324
|
+
--cody-chat-code-text-highlighted: #566880;
|
|
326
325
|
}
|
|
327
326
|
|
|
328
|
-
._result-
|
|
327
|
+
._result-container_1ojeo_12 {
|
|
329
328
|
contain: paint;
|
|
330
329
|
border-radius: 4px;
|
|
331
330
|
border: solid 1px var(--cody-chat-code-border-color);
|
|
332
331
|
}
|
|
333
332
|
|
|
334
|
-
._result-
|
|
335
|
-
color: var(--text-
|
|
336
|
-
background-color: var(--mark-
|
|
333
|
+
._result-container_1ojeo_12 .match-highlight {
|
|
334
|
+
color: var(--cody-chat-code-text-highlighted);
|
|
335
|
+
background-color: var(--cody-chat-code-mark-background);
|
|
337
336
|
}
|
|
338
337
|
|
|
339
|
-
._result-
|
|
338
|
+
._result-container_1ojeo_12 .sr-only {
|
|
340
339
|
position: absolute;
|
|
341
340
|
width: 0.0625rem;
|
|
342
341
|
height: 0.0625rem;
|
|
@@ -348,7 +347,7 @@ kbd {
|
|
|
348
347
|
border: 0;
|
|
349
348
|
}
|
|
350
349
|
|
|
351
|
-
.
|
|
350
|
+
._header_1ojeo_35 {
|
|
352
351
|
padding: 0.45rem 0.5rem;
|
|
353
352
|
display: flex;
|
|
354
353
|
align-items: center;
|
|
@@ -364,17 +363,17 @@ kbd {
|
|
|
364
363
|
background-color: var(--cody-chat-code-header-background);
|
|
365
364
|
}
|
|
366
365
|
|
|
367
|
-
._header-
|
|
366
|
+
._header-title_1ojeo_1 {
|
|
368
367
|
flex: 1 1 auto;
|
|
369
368
|
display: flex;
|
|
370
369
|
flex-wrap: wrap;
|
|
371
370
|
}
|
|
372
371
|
|
|
373
|
-
.
|
|
372
|
+
._result_1ojeo_12 {
|
|
374
373
|
background-color: var(--cody-chat-code-background);
|
|
375
374
|
}
|
|
376
375
|
|
|
377
|
-
._search-result-
|
|
376
|
+
._search-result-match_1ojeo_61 {
|
|
378
377
|
/* Don't use cascading link style */
|
|
379
378
|
text-decoration: none;
|
|
380
379
|
display: flex;
|
|
@@ -384,24 +383,24 @@ kbd {
|
|
|
384
383
|
position: relative;
|
|
385
384
|
}
|
|
386
385
|
|
|
387
|
-
._horizontal-divider-
|
|
386
|
+
._horizontal-divider-between_1ojeo_71:not(:last-child) {
|
|
388
387
|
border-bottom: 1px solid var(--cody-chat-code-border-color);
|
|
389
388
|
}
|
|
390
389
|
|
|
391
|
-
._focusable-
|
|
390
|
+
._focusable-block_1ojeo_77:focus-visible {
|
|
392
391
|
box-shadow: inset 0 0 0 1px var(--cody-chat-code-focus-border);
|
|
393
392
|
}
|
|
394
393
|
|
|
395
|
-
.
|
|
394
|
+
._clickable_1ojeo_83 {
|
|
396
395
|
cursor: pointer;
|
|
397
396
|
}
|
|
398
397
|
|
|
399
|
-
.
|
|
398
|
+
._clickable_1ojeo_83:hover {
|
|
400
399
|
text-decoration: none;
|
|
401
400
|
background-color: var(--cody-chat-code-subtle-background);
|
|
402
401
|
}
|
|
403
402
|
|
|
404
|
-
._divider-
|
|
403
|
+
._divider-between_1ojeo_91 > *:not(:last-child)::after {
|
|
405
404
|
content: ' ';
|
|
406
405
|
height: 1rem;
|
|
407
406
|
margin: 0 0.75rem;
|
|
@@ -409,19 +408,19 @@ kbd {
|
|
|
409
408
|
display: block;
|
|
410
409
|
}
|
|
411
410
|
|
|
412
|
-
._divider-
|
|
411
|
+
._divider-vertical_1ojeo_101 {
|
|
413
412
|
border-bottom: 1px solid var(--cody-chat-code-border-color);
|
|
414
413
|
width: 100%;
|
|
415
414
|
margin: 0.5rem 0;
|
|
416
415
|
}
|
|
417
416
|
|
|
418
|
-
.
|
|
417
|
+
._divider_1ojeo_91 {
|
|
419
418
|
border-right: 1px solid var(--cody-chat-code-border-color);
|
|
420
419
|
height: 1rem;
|
|
421
420
|
margin: 0 0.5rem;
|
|
422
421
|
}
|
|
423
422
|
|
|
424
|
-
.
|
|
423
|
+
._title_1ojeo_113 {
|
|
425
424
|
display: flex;
|
|
426
425
|
align-items: center;
|
|
427
426
|
flex-grow: 1;
|
|
@@ -429,11 +428,11 @@ kbd {
|
|
|
429
428
|
flex-wrap: wrap;
|
|
430
429
|
}
|
|
431
430
|
|
|
432
|
-
._title-
|
|
431
|
+
._title-inner_1ojeo_121 {
|
|
433
432
|
overflow-wrap: anywhere;
|
|
434
433
|
}
|
|
435
434
|
|
|
436
|
-
._toggle-matches-
|
|
435
|
+
._toggle-matches-button_1ojeo_125 {
|
|
437
436
|
width: 100%;
|
|
438
437
|
text-align: left;
|
|
439
438
|
border: none;
|
|
@@ -443,16 +442,16 @@ kbd {
|
|
|
443
442
|
color: var(--cody-chat-code-text-muted);
|
|
444
443
|
}
|
|
445
444
|
|
|
446
|
-
._toggle-matches-
|
|
445
|
+
._toggle-matches-button_1ojeo_125:hover {
|
|
447
446
|
color: inherit;
|
|
448
447
|
}
|
|
449
448
|
|
|
450
|
-
._toggle-matches-button--
|
|
449
|
+
._toggle-matches-button--expanded_1ojeo_1 {
|
|
451
450
|
position: sticky;
|
|
452
451
|
bottom: 0;
|
|
453
452
|
}
|
|
454
453
|
|
|
455
|
-
._toggle-matches-button-
|
|
454
|
+
._toggle-matches-button-text_1ojeo_1 {
|
|
456
455
|
margin-left: 0.125rem;
|
|
457
456
|
}
|
|
458
457
|
|
|
@@ -1936,6 +1935,9 @@ imported in Sourcegraph shell.
|
|
|
1936
1935
|
.tw-col-span-4 {
|
|
1937
1936
|
grid-column: span 4 / span 4;
|
|
1938
1937
|
}
|
|
1938
|
+
.tw-m-4 {
|
|
1939
|
+
margin: 8px;
|
|
1940
|
+
}
|
|
1939
1941
|
.tw-m-5 {
|
|
1940
1942
|
margin: 10px;
|
|
1941
1943
|
}
|