@qredence/fleet 0.6.4 → 0.6.5
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/CHANGELOG.md +12 -0
- package/dist/web/client/assets/{chat-command-palette-DdPlRVuL.js → chat-command-palette-AjGusIEp.js} +1 -1
- package/dist/web/client/assets/{create-project-dialog-CaXurRpm.js → create-project-dialog-zTSeGUup.js} +1 -1
- package/dist/web/client/assets/globals-BiAbxPQ2.css +2 -0
- package/dist/web/client/assets/{index-BJIGh8ag.js → index-NhnAdIsR.js} +2 -2
- package/dist/web/client/assets/{message-queue-CPYj2iaw.js → message-queue-BoNn57Po.js} +1 -1
- package/dist/web/client/assets/prompt-input-BhVQxoyh.js +1 -0
- package/dist/web/client/assets/{prompt-suggestions-ULqmPijZ.js → prompt-suggestions-BRFWFm5y.js} +1 -1
- package/dist/web/client/assets/right-panel-registry-gwgnEeUz.js +2 -0
- package/dist/web/client/assets/routes-umGEy_Ak.js +16 -0
- package/dist/web/client/assets/{settings-dialog-BRWheaBZ.js → settings-dialog-C8YN5D1V.js} +1 -1
- package/dist/web/client/assets/{subagent-chat-panel-B6d4Z3bV.js → subagent-chat-panel-BIsmzS45.js} +1 -1
- package/dist/web/client/assets/{subagent-transcript-CQuPs6N4.js → subagent-transcript-CEUBL9sF.js} +1 -1
- package/dist/web/client/assets/{subagents-panel-ajf--C_-.js → subagents-panel-CFxWpUT0.js} +1 -1
- package/dist/web/client/assets/{tokens-BcUIpW6Y.js → tokens-CtP2s1Y3.js} +1 -1
- package/dist/web/client/assets/types-D5hZ8IyV.js +1 -0
- package/dist/web/client/assets/virtualized-turn-list-DkJIWXFJ.js +6 -0
- package/dist/web/client/bundle-budget.json +6 -6
- package/dist/web/server/{_tanstack-start-manifest_v-BZR0i182-OLTGGEDQ.js → _tanstack-start-manifest_v-B3Gb4p5p-DO2GL5VM.js} +9 -10
- package/dist/web/server/{artifacts-panel-BySfu7im-AKBWHYJS.js → artifacts-panel-CGgpyc85-V3KXDVAX.js} +2 -2
- package/dist/web/server/{chat-command-palette-BLGKnp-w-OKFIKD3T.js → chat-command-palette-BMR7RsuI-U5S4X44U.js} +2 -2
- package/dist/web/server/{chunk-4B2PJSK5.js → chunk-5TXDGMCK.js} +14 -4
- package/dist/web/server/{chunk-ONWT54IL.js → chunk-BS4D5LRR.js} +5 -1
- package/dist/web/server/{chunk-JLGBOCFM.js → chunk-ELRLMFHT.js} +49 -33
- package/dist/web/server/{chunk-JZ2WBCIH.js → chunk-G6NMFFZX.js} +624 -624
- package/dist/web/server/{chunk-47TH5VUT.js → chunk-LBUHLBKK.js} +2 -2
- package/dist/web/server/{chunk-2GQATGF4.js → chunk-N47UN47Y.js} +3 -3
- package/dist/web/server/{chunk-CIE2PLNB.js → chunk-PX7B5BTI.js} +2 -2
- package/dist/web/server/{chunk-NHZRY22Z.js → chunk-SOZKLVNI.js} +59 -19
- package/dist/web/server/{create-project-dialog-CigfFgAj-QS27NAJH.js → create-project-dialog-xhTWmcx1-UQQU3MAT.js} +2 -2
- package/dist/web/server/{message-queue-BsrLcNPX-CUCBSF6U.js → message-queue-Dg2okv2L-SJTUUJS7.js} +4 -4
- package/dist/web/server/{openui-renderer-TbIFXEW2-BET2OXM2.js → openui-renderer-CiWvcD3p-N6I66FOC.js} +1 -1
- package/dist/web/server/{prompt-suggestions-D6RXFQF4-7WHYRNMN.js → prompt-suggestions-h17Gu7u1-BS5SU2FY.js} +2 -2
- package/dist/web/server/{router-RPObiwZR-AFMFSYSZ.js → router-DOPFvRSC-G7G75P7U.js} +84 -28
- package/dist/web/server/{routes-Dn-deuPY-MDXEQXRU.js → routes-i2Ai-ZwX-SMSFONDQ.js} +469 -352
- package/dist/web/server/server.js +2 -2
- package/dist/web/server/{settings-dialog-CzeangBl-YKL7CLPF.js → settings-dialog-C-xwPYy8-TFICZWEM.js} +7 -7
- package/dist/web/server/{subagent-chat-panel-Fa31QewE-YDPOKN74.js → subagent-chat-panel-VEVu0QXU-DPWJFCYR.js} +5 -4
- package/dist/web/server/{subagents-panel-DjOcQxp4-GZYOZOYC.js → subagents-panel-Cs3cBcsy-HTQBIYAS.js} +4 -3
- package/package.json +1 -1
- package/dist/web/client/assets/globals-B-fD_O7k.css +0 -2
- package/dist/web/client/assets/prompt-input-a7UP_MAw.js +0 -1
- package/dist/web/client/assets/right-panel-registry-BqtgZw7Z.js +0 -2
- package/dist/web/client/assets/routes-C37r2W1K.js +0 -16
- package/dist/web/client/assets/types-Cr5Z97oW.js +0 -1
- package/dist/web/client/assets/virtualized-turn-list-Bcq088gZ.js +0 -6
|
@@ -27,7 +27,7 @@ import "./chunk-FOMB2JR7.js";
|
|
|
27
27
|
import {
|
|
28
28
|
GenerativeTextRenderer,
|
|
29
29
|
OpenUIHtmlArtifactView
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-G6NMFFZX.js";
|
|
31
31
|
import {
|
|
32
32
|
UiErrorBoundary
|
|
33
33
|
} from "./chunk-2HOITUWV.js";
|
|
@@ -68,7 +68,7 @@ import "./chunk-UQVZJSZZ.js";
|
|
|
68
68
|
import "./chunk-L547YHC4.js";
|
|
69
69
|
import "./chunk-MLKGABMK.js";
|
|
70
70
|
|
|
71
|
-
// web/app/dist/server/assets/artifacts-panel-
|
|
71
|
+
// web/app/dist/server/assets/artifacts-panel-CGgpyc85.js
|
|
72
72
|
import { useEffect, useMemo, useRef, useState } from "react";
|
|
73
73
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
74
74
|
var __iconData = {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
RIGHT_PANEL_LAUNCHER_DEFINITIONS
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-N47UN47Y.js";
|
|
4
4
|
import {
|
|
5
5
|
Keyboard,
|
|
6
6
|
Monitor,
|
|
@@ -49,7 +49,7 @@ import "./chunk-RPWKCJHL.js";
|
|
|
49
49
|
import "./chunk-L547YHC4.js";
|
|
50
50
|
import "./chunk-MLKGABMK.js";
|
|
51
51
|
|
|
52
|
-
// web/app/dist/server/assets/chat-command-palette-
|
|
52
|
+
// web/app/dist/server/assets/chat-command-palette-BMR7RsuI.js
|
|
53
53
|
import { useState } from "react";
|
|
54
54
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
55
55
|
var __iconData = {
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
positiveIntSchema
|
|
11
11
|
} from "./chunk-3YYNG52U.js";
|
|
12
12
|
|
|
13
|
-
// web/app/dist/server/assets/composer-completion-
|
|
13
|
+
// web/app/dist/server/assets/composer-completion-Bjb1zW3r.js
|
|
14
14
|
function observeWebVitals(onVital) {
|
|
15
15
|
if (typeof window === "undefined" || typeof PerformanceObserver === "undefined") return () => {
|
|
16
16
|
};
|
|
@@ -336,11 +336,19 @@ var ChatCommandsResponseSchema = external_exports.object({
|
|
|
336
336
|
commands: external_exports.array(ChatSlashCommandInfoSchema),
|
|
337
337
|
diagnostics: external_exports.array(external_exports.string())
|
|
338
338
|
}).openapi({ description: "Chat slash commands response" });
|
|
339
|
+
var ComposerCompletionSourceSchema = external_exports.enum(["session", "corpus"]).openapi({ description: "Where a completion came from: this session or another session" });
|
|
340
|
+
external_exports.enum(["append", "replace"]).openapi({ description: "Whether accepting appends the completion or replaces the draft with it" });
|
|
339
341
|
var ComposerCompletionRequestSchema = external_exports.object({
|
|
340
342
|
text: nonEmptyStringSchema.max(2e3),
|
|
343
|
+
/** The session being typed in; its own prompts are preferred over the corpus. */
|
|
344
|
+
sessionId: nonEmptyStringSchema.max(200).optional(),
|
|
341
345
|
projectId: ProjectIdSchema.optional()
|
|
342
346
|
}).openapi({ description: "Composer ghost-text completion request" });
|
|
343
|
-
external_exports.object({
|
|
347
|
+
external_exports.object({
|
|
348
|
+
completion: external_exports.string().min(1).max(2e3).optional(),
|
|
349
|
+
confidence: external_exports.number().min(0).max(1).optional(),
|
|
350
|
+
source: ComposerCompletionSourceSchema.optional()
|
|
351
|
+
}).openapi({ description: "Composer ghost-text completion from history; a verbatim string that always extends the draft, never model prose" });
|
|
344
352
|
var ComposerIntentStatusSchema = external_exports.enum([
|
|
345
353
|
"unconfigured",
|
|
346
354
|
"unverified",
|
|
@@ -589,10 +597,11 @@ function composerCompletionIgnores(draft) {
|
|
|
589
597
|
function normalizeCompletionDraft(text) {
|
|
590
598
|
return text.trim().replace(/\s+/g, " ");
|
|
591
599
|
}
|
|
592
|
-
function composerCompletionGhost(draft, completion) {
|
|
600
|
+
function composerCompletionGhost(draft, completion, mode = "append") {
|
|
593
601
|
if (!completion) return void 0;
|
|
594
|
-
const normalizedDraft = normalizeCompletionDraft(draft);
|
|
595
602
|
const normalizedCompletion = normalizeCompletionDraft(completion);
|
|
603
|
+
if (mode === "replace") return normalizedCompletion.length > 0 ? normalizedCompletion : void 0;
|
|
604
|
+
const normalizedDraft = normalizeCompletionDraft(draft);
|
|
596
605
|
if (normalizedCompletion.length <= normalizedDraft.length) return void 0;
|
|
597
606
|
if (!normalizedCompletion.toLowerCase().startsWith(normalizedDraft.toLowerCase())) return void 0;
|
|
598
607
|
const suffix = normalizedCompletion.slice(normalizedDraft.length);
|
|
@@ -2932,6 +2941,7 @@ export {
|
|
|
2932
2941
|
ChatSettingsUpdateRequestSchema,
|
|
2933
2942
|
ChatSettingsResponseSchema,
|
|
2934
2943
|
composerCompletionIgnores,
|
|
2944
|
+
normalizeCompletionDraft,
|
|
2935
2945
|
composerCompletionGhost,
|
|
2936
2946
|
useQueryClient,
|
|
2937
2947
|
QueryClientProvider,
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
createLucideIcon
|
|
14
14
|
} from "./chunk-JVXQQYXB.js";
|
|
15
15
|
|
|
16
|
-
// web/app/dist/server/assets/types-
|
|
16
|
+
// web/app/dist/server/assets/types-aWCwh7xA.js
|
|
17
17
|
var __iconData$1 = {
|
|
18
18
|
name: "folder-plus",
|
|
19
19
|
size: 24,
|
|
@@ -59,6 +59,8 @@ var __iconData = {
|
|
|
59
59
|
__iconData.node;
|
|
60
60
|
var FolderTree = createLucideIcon(__iconData);
|
|
61
61
|
var DOCUMENTATION_URL = "https://docs.qredence.ai";
|
|
62
|
+
var TWITTER_URL = "https://x.com/zacharybydesign";
|
|
63
|
+
var DISCORD_URL = "https://discord.gg/ebgy7gtZHK";
|
|
62
64
|
var EXPANDED_PROJECTS_STORAGE_KEY = "fleet-prime:v1:sidebar-expanded-projects";
|
|
63
65
|
var EMPTY_PROJECTS = [];
|
|
64
66
|
var NEW_SESSION_PREFIX = "new-session:";
|
|
@@ -124,6 +126,8 @@ export {
|
|
|
124
126
|
FolderPlus,
|
|
125
127
|
FolderTree,
|
|
126
128
|
DOCUMENTATION_URL,
|
|
129
|
+
TWITTER_URL,
|
|
130
|
+
DISCORD_URL,
|
|
127
131
|
EXPANDED_PROJECTS_STORAGE_KEY,
|
|
128
132
|
EMPTY_PROJECTS,
|
|
129
133
|
NEW_SESSION_PREFIX,
|
|
@@ -49,7 +49,7 @@ import {
|
|
|
49
49
|
cn
|
|
50
50
|
} from "./chunk-JCK6B7ZW.js";
|
|
51
51
|
|
|
52
|
-
// web/app/dist/server/assets/virtualized-turn-list-
|
|
52
|
+
// web/app/dist/server/assets/virtualized-turn-list-BPXCnicM.js
|
|
53
53
|
import { Fragment, Suspense, cloneElement, createContext, lazy, memo, useCallback, useContext, useEffect, useEffectEvent, useId, useLayoutEffect, useMemo, useRef, useState } from "react";
|
|
54
54
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
55
55
|
import { createPortal } from "react-dom";
|
|
@@ -1338,13 +1338,25 @@ function getFileIconName(filename, isImage) {
|
|
|
1338
1338
|
function renderFileIcon(iconName) {
|
|
1339
1339
|
switch (iconName) {
|
|
1340
1340
|
case "image":
|
|
1341
|
-
return /* @__PURE__ */ jsx(Image, {
|
|
1341
|
+
return /* @__PURE__ */ jsx(Image, {
|
|
1342
|
+
"aria-hidden": "true",
|
|
1343
|
+
className: "size-4 text-muted-foreground"
|
|
1344
|
+
});
|
|
1342
1345
|
case "code":
|
|
1343
|
-
return /* @__PURE__ */ jsx(FileCode, {
|
|
1346
|
+
return /* @__PURE__ */ jsx(FileCode, {
|
|
1347
|
+
"aria-hidden": "true",
|
|
1348
|
+
className: "size-4 text-muted-foreground"
|
|
1349
|
+
});
|
|
1344
1350
|
case "data":
|
|
1345
|
-
return /* @__PURE__ */ jsx(FileBraces, {
|
|
1351
|
+
return /* @__PURE__ */ jsx(FileBraces, {
|
|
1352
|
+
"aria-hidden": "true",
|
|
1353
|
+
className: "size-4 text-muted-foreground"
|
|
1354
|
+
});
|
|
1346
1355
|
default:
|
|
1347
|
-
return /* @__PURE__ */ jsx(FileText, {
|
|
1356
|
+
return /* @__PURE__ */ jsx(FileText, {
|
|
1357
|
+
"aria-hidden": "true",
|
|
1358
|
+
className: "size-4 text-muted-foreground"
|
|
1359
|
+
});
|
|
1348
1360
|
}
|
|
1349
1361
|
}
|
|
1350
1362
|
function FileAttachment({ id, filename, size, isImage, url, onRemove, className, display = "chip", enableImagePreview = true }) {
|
|
@@ -1357,40 +1369,41 @@ function FileAttachment({ id, filename, size, isImage, url, onRemove, className,
|
|
|
1357
1369
|
event?.stopPropagation();
|
|
1358
1370
|
setIsLightboxOpen(true);
|
|
1359
1371
|
};
|
|
1372
|
+
const previewButtonClass = cn("shrink-0 overflow-hidden rounded-[calc(var(--chat-input-radius)-var(--chat-context-padding)-2px)]", canPreview && "cursor-pointer focus-visible:ring-2 focus-visible:ring-ring");
|
|
1360
1373
|
return /* @__PURE__ */ jsxs("div", {
|
|
1361
|
-
className: cn("relative rounded-[calc(var(--chat-input-radius)-var(--chat-context-padding))] bg-muted/50", isImageOnly ? "flex size-10 items-center justify-center" : "flex max-w-[
|
|
1374
|
+
className: cn("group relative rounded-[calc(var(--chat-input-radius)-var(--chat-context-padding))] bg-muted/50", isImageOnly ? "flex size-10 items-center justify-center" : "flex max-w-[min(12.5rem,100%)] min-w-0 items-center gap-2 py-1 ps-1 pe-2", className),
|
|
1362
1375
|
onMouseEnter: () => setIsHovered(true),
|
|
1363
1376
|
onMouseLeave: () => setIsHovered(false),
|
|
1364
1377
|
children: [
|
|
1365
|
-
isImageOnly ? /* @__PURE__ */ jsx("
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
|
|
1378
|
+
isImageOnly ? canPreview ? /* @__PURE__ */ jsx("button", {
|
|
1379
|
+
type: "button",
|
|
1380
|
+
className: cn(previewButtonClass, "size-8 border-0 bg-transparent p-0"),
|
|
1381
|
+
onClick: openLightbox,
|
|
1382
|
+
"aria-label": `Preview ${filename}`,
|
|
1383
|
+
children: /* @__PURE__ */ jsx("img", {
|
|
1384
|
+
src: url,
|
|
1385
|
+
alt: "",
|
|
1386
|
+
className: "h-full w-full object-cover"
|
|
1387
|
+
})
|
|
1388
|
+
}) : /* @__PURE__ */ jsx("div", {
|
|
1389
|
+
className: cn(previewButtonClass, "size-8"),
|
|
1377
1390
|
children: /* @__PURE__ */ jsx("img", {
|
|
1378
1391
|
src: url,
|
|
1379
1392
|
alt: filename,
|
|
1380
1393
|
className: "h-full w-full object-cover"
|
|
1381
1394
|
})
|
|
1382
|
-
}) : /* @__PURE__ */ jsxs(Fragment$1, { children: [isImage && url ? /* @__PURE__ */ jsx("
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1395
|
+
}) : /* @__PURE__ */ jsxs(Fragment$1, { children: [isImage && url ? canPreview ? /* @__PURE__ */ jsx("button", {
|
|
1396
|
+
type: "button",
|
|
1397
|
+
className: cn(previewButtonClass, "w-8 self-stretch border-0 bg-transparent p-0"),
|
|
1398
|
+
onClick: openLightbox,
|
|
1399
|
+
"aria-label": `Preview ${filename}`,
|
|
1400
|
+
children: /* @__PURE__ */ jsx("img", {
|
|
1401
|
+
src: url,
|
|
1402
|
+
alt: "",
|
|
1403
|
+
className: "aspect-square h-full w-full object-cover"
|
|
1404
|
+
})
|
|
1405
|
+
}) : /* @__PURE__ */ jsx("div", {
|
|
1406
|
+
className: cn(previewButtonClass, "w-8 self-stretch"),
|
|
1394
1407
|
children: /* @__PURE__ */ jsx("img", {
|
|
1395
1408
|
src: url,
|
|
1396
1409
|
alt: filename,
|
|
@@ -1416,9 +1429,12 @@ function FileAttachment({ id, filename, size, isImage, url, onRemove, className,
|
|
|
1416
1429
|
onRemove();
|
|
1417
1430
|
},
|
|
1418
1431
|
"aria-label": `Remove ${filename}`,
|
|
1419
|
-
className:
|
|
1432
|
+
className: cn("relative after:absolute after:top-1/2 after:left-1/2 after:size-10 after:-translate-x-1/2 after:-translate-y-1/2", "absolute -top-1.5 -end-1.5 z-10 flex size-6 items-center justify-center rounded-full border border-border bg-background text-muted-foreground transition-[opacity,transform] duration-150 ease-out hover:text-foreground focus-visible:opacity-100 focus-visible:ring-2 focus-visible:ring-ring active:scale-[0.97] group-hover:opacity-100 group-focus-within:opacity-100 [@media(hover:none)]:opacity-100", isHovered ? "opacity-100" : "opacity-0"),
|
|
1420
1433
|
type: "button",
|
|
1421
|
-
children: /* @__PURE__ */ jsx(X, {
|
|
1434
|
+
children: /* @__PURE__ */ jsx(X, {
|
|
1435
|
+
"aria-hidden": "true",
|
|
1436
|
+
className: "size-3"
|
|
1437
|
+
})
|
|
1422
1438
|
}),
|
|
1423
1439
|
canPreview && url && /* @__PURE__ */ jsx(ImageLightbox, {
|
|
1424
1440
|
open: isLightboxOpen,
|
|
@@ -1578,7 +1594,7 @@ function groupMessages(messages) {
|
|
|
1578
1594
|
if (current) turns.push(current);
|
|
1579
1595
|
return turns;
|
|
1580
1596
|
}
|
|
1581
|
-
var LazyGenerativeTextRenderer = lazy(() => import("./openui-renderer-
|
|
1597
|
+
var LazyGenerativeTextRenderer = lazy(() => import("./openui-renderer-CiWvcD3p-N6I66FOC.js").then((n) => n.n).then(({ GenerativeTextRenderer }) => ({ default: GenerativeTextRenderer })));
|
|
1582
1598
|
function PlainTextFallback({ className, content }) {
|
|
1583
1599
|
return /* @__PURE__ */ jsx("div", {
|
|
1584
1600
|
className: className ? `${className} whitespace-pre-wrap` : "whitespace-pre-wrap",
|