@alivault/pico 0.1.6 → 0.2.0
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/.output/nitro.json +1 -1
- package/.output/public/assets/{index-Cea7QwXW.js → index-BTAh2ZbA.js} +8 -8
- package/.output/public/assets/routes-rD8LJ5B7.js +2150 -0
- package/.output/server/_ssr/{router-TRfB0YMJ.mjs → router-BDJ6CDfq.mjs} +22 -8
- package/.output/server/_ssr/{routes-h_J1DAp5.mjs → routes-C7FEKcrl.mjs} +7 -3
- package/.output/server/_ssr/{routes-Cmw5XPYv.mjs → routes-D0o-mw7d.mjs} +277 -42
- package/.output/server/_ssr/ssr.mjs +2 -2
- package/.output/server/{_tanstack-start-manifest_v-hzhfVHZ4.mjs → _tanstack-start-manifest_v-Bgeq0HT6.mjs} +4 -4
- package/.output/server/index.mjs +428 -428
- package/README.md +6 -0
- package/bin/pico.mjs +103 -7
- package/package.json +1 -1
- package/.output/public/assets/routes-Bb61eCk_.js +0 -2147
|
@@ -2,7 +2,7 @@ import { i as __toESM } from "../_runtime.mjs";
|
|
|
2
2
|
import { X as require_react, Y as require_jsx_runtime } from "../_libs/@base-ui/react+[...].mjs";
|
|
3
3
|
import { a as createRouter, c as createRootRoute, n as Scripts, r as HeadContent, s as createFileRoute } from "../_libs/@tanstack/react-router+[...].mjs";
|
|
4
4
|
import { h as OctagonX, i as TriangleAlert, k as CircleCheck, v as Info } from "../_libs/lucide-react.mjs";
|
|
5
|
-
import {
|
|
5
|
+
import { C as TooltipProvider, D as buildItemsFromSync, E as assistantBlocksFromMessage, L as mergeAssistantBlocksForStreaming, M as extractMessageImages, N as extractMessageText$1, P as extractToolText, k as createCompactionSummaryItem, m as Route$46, st as toolCategoryFromTool, v as Spinner, y as THEME_STORAGE_KEY } from "./routes-C7FEKcrl.mjs";
|
|
6
6
|
import { t as QueryClient } from "../_libs/tanstack__query-core.mjs";
|
|
7
7
|
import { t as setupRouterSsrQueryIntegration } from "../_libs/@tanstack/react-router-ssr-query+[...].mjs";
|
|
8
8
|
import { n as HotkeysProvider } from "../_libs/tanstack__react-hotkeys.mjs";
|
|
@@ -20,7 +20,7 @@ import os, { homedir } from "node:os";
|
|
|
20
20
|
import { performance } from "node:perf_hooks";
|
|
21
21
|
import { isMainThread } from "node:worker_threads";
|
|
22
22
|
import { execSync, spawn } from "node:child_process";
|
|
23
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/router-
|
|
23
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/router-BDJ6CDfq.js
|
|
24
24
|
var import_react = /* @__PURE__ */ __toESM(require_react());
|
|
25
25
|
var import_jsx_runtime = require_jsx_runtime();
|
|
26
26
|
var Toaster$1 = ({ ...props }) => {
|
|
@@ -513,7 +513,7 @@ async function clearContextDraft(options) {
|
|
|
513
513
|
await disposeDraftIfUnused(draftEntry);
|
|
514
514
|
}
|
|
515
515
|
async function resolveRequestedEntry(options) {
|
|
516
|
-
const { url, context, getSessionEntryByKey, ensureSessionEntryById, getActiveEntry, getOrCreateDraftEntry, activateContextSession, notifyOnActivate = true } = options;
|
|
516
|
+
const { url, context, getSessionEntryByKey, ensureSessionEntryById, getActiveEntry, isDraftEntry, getOrCreateDraftEntry, activateContextSession, notifyOnActivate = true, preferActiveDraft = false } = options;
|
|
517
517
|
const activateRequestedEntry = async (entry) => {
|
|
518
518
|
await activateContextSession(context, entry, { notify: notifyOnActivate });
|
|
519
519
|
return entry;
|
|
@@ -523,6 +523,10 @@ async function resolveRequestedEntry(options) {
|
|
|
523
523
|
const requestedEntry = getSessionEntryByKey(requestedSessionKey);
|
|
524
524
|
if (requestedEntry) return await activateRequestedEntry(requestedEntry);
|
|
525
525
|
}
|
|
526
|
+
if (preferActiveDraft && context.draftKey) {
|
|
527
|
+
const draftEntry = getSessionEntryByKey(context.draftKey);
|
|
528
|
+
if (draftEntry && isDraftEntry(draftEntry)) return await activateRequestedEntry(draftEntry);
|
|
529
|
+
}
|
|
526
530
|
const requestedSessionId = url.searchParams.get("session");
|
|
527
531
|
if (requestedSessionId) {
|
|
528
532
|
const requestedEntry = await ensureSessionEntryById(requestedSessionId);
|
|
@@ -4161,9 +4165,11 @@ var PicoRuntime = class {
|
|
|
4161
4165
|
getSessionEntryByKey: (key) => this.sessionEntries.get(key),
|
|
4162
4166
|
ensureSessionEntryById: async (sessionId) => await this.ensureSessionEntryById(sessionId),
|
|
4163
4167
|
getActiveEntry: (activeContext) => this.getActiveEntry(activeContext),
|
|
4168
|
+
isDraftEntry: (entry) => this.isDraftEntry(entry),
|
|
4164
4169
|
getOrCreateDraftEntry: async (activeContext) => await this.getOrCreateDraftEntry(activeContext),
|
|
4165
4170
|
activateContextSession: async (activeContext, entry, activateOptions) => await this.activateContextSession(activeContext, entry, activateOptions),
|
|
4166
|
-
notifyOnActivate: options?.notifyOnActivate
|
|
4171
|
+
notifyOnActivate: options?.notifyOnActivate,
|
|
4172
|
+
preferActiveDraft: options?.preferActiveDraft
|
|
4167
4173
|
});
|
|
4168
4174
|
}
|
|
4169
4175
|
async resolveRequest(request, options) {
|
|
@@ -4180,7 +4186,10 @@ var PicoRuntime = class {
|
|
|
4180
4186
|
scope: context.sessionScope
|
|
4181
4187
|
});
|
|
4182
4188
|
try {
|
|
4183
|
-
const activeEntry = await this.resolveRequestedEntry(url, context, {
|
|
4189
|
+
const activeEntry = await this.resolveRequestedEntry(url, context, {
|
|
4190
|
+
notifyOnActivate: options?.notifyOnActivate ?? false,
|
|
4191
|
+
preferActiveDraft: options?.preferActiveDraft ?? true
|
|
4192
|
+
});
|
|
4184
4193
|
this.logSessionLoadDebug("request_resolve:done", {
|
|
4185
4194
|
pathname: url.pathname,
|
|
4186
4195
|
contextId: context.id,
|
|
@@ -4564,6 +4573,9 @@ var PicoRuntime = class {
|
|
|
4564
4573
|
await this.broadcastEntryState(entry);
|
|
4565
4574
|
return entry.pendingUserMessages;
|
|
4566
4575
|
}
|
|
4576
|
+
refreshRetainedConversationItems(entry) {
|
|
4577
|
+
entry.retainedConversationItems = createRetainedConversationState(entry.session.messages.map((message) => sanitizeSessionMessage(message))).items;
|
|
4578
|
+
}
|
|
4567
4579
|
async bindSessionEntry(entry) {
|
|
4568
4580
|
const startedAt = performance.now();
|
|
4569
4581
|
const unsubscribeStartedAt = performance.now();
|
|
@@ -4573,7 +4585,7 @@ var PicoRuntime = class {
|
|
|
4573
4585
|
...this.sessionDebugDetails(entry)
|
|
4574
4586
|
});
|
|
4575
4587
|
const session = entry.session;
|
|
4576
|
-
|
|
4588
|
+
this.refreshRetainedConversationItems(entry);
|
|
4577
4589
|
const viewers = () => [...this.contexts.values()].filter((context) => context.activeKey === entry.key);
|
|
4578
4590
|
const uiRequestBridge = createUiRequestBridge({
|
|
4579
4591
|
entryKey: entry.key,
|
|
@@ -4696,6 +4708,7 @@ var PicoRuntime = class {
|
|
|
4696
4708
|
},
|
|
4697
4709
|
navigateTree: async (targetId, navigateOptions) => {
|
|
4698
4710
|
const result = await session.navigateTree(targetId, navigateOptions);
|
|
4711
|
+
this.refreshRetainedConversationItems(entry);
|
|
4699
4712
|
if (result.editorText != null) entry.uiState.editorText = result.editorText;
|
|
4700
4713
|
await this.broadcastEntryState(entry);
|
|
4701
4714
|
if (result.summaryEntry) {
|
|
@@ -4864,7 +4877,7 @@ var PicoRuntime = class {
|
|
|
4864
4877
|
}
|
|
4865
4878
|
async createEventsResponse(request) {
|
|
4866
4879
|
const startedAt = performance.now();
|
|
4867
|
-
const { url, context, activeEntry } = await this.resolveRequest(request);
|
|
4880
|
+
const { url, context, activeEntry } = await this.resolveRequest(request, { preferActiveDraft: false });
|
|
4868
4881
|
context.sidebarBootstrapDirectories = normalizeRequestedDirectories(url.searchParams.getAll("sidebarDirectory"));
|
|
4869
4882
|
this.logSessionLoadDebug("events_response:create", {
|
|
4870
4883
|
contextId: context.id,
|
|
@@ -4943,7 +4956,7 @@ var PicoRuntime = class {
|
|
|
4943
4956
|
}
|
|
4944
4957
|
}
|
|
4945
4958
|
async prompt(request, body) {
|
|
4946
|
-
const { context, activeEntry } = await this.resolveRequest(request);
|
|
4959
|
+
const { context, activeEntry } = await this.resolveRequest(request, { preferActiveDraft: true });
|
|
4947
4960
|
const message = typeof body.message === "string" ? body.message : "";
|
|
4948
4961
|
const images = normalizePromptImages(body.images);
|
|
4949
4962
|
if (!message.trim() && images.length === 0) throw new Error("message or image is required");
|
|
@@ -5271,6 +5284,7 @@ var PicoRuntime = class {
|
|
|
5271
5284
|
replaceInstructions: Boolean(body.replaceInstructions),
|
|
5272
5285
|
label: typeof body.label === "string" ? body.label : void 0
|
|
5273
5286
|
});
|
|
5287
|
+
this.refreshRetainedConversationItems(activeEntry);
|
|
5274
5288
|
if (result.editorText != null) activeEntry.uiState.editorText = result.editorText;
|
|
5275
5289
|
if (result.summaryEntry) {
|
|
5276
5290
|
this.touchSessionEntry(activeEntry);
|
|
@@ -5,7 +5,7 @@ import { n as clsx } from "../_libs/class-variance-authority+clsx.mjs";
|
|
|
5
5
|
import { t as twMerge } from "../_libs/tailwind-merge.mjs";
|
|
6
6
|
import { B as ArrowDown, I as ArrowUp, M as ChevronUp, O as Command, R as ArrowRight, V as ArrowBigUp, m as Option, z as ArrowLeft } from "../_libs/lucide-react.mjs";
|
|
7
7
|
import { n as string, t as object } from "../_libs/zod.mjs";
|
|
8
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/routes-
|
|
8
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/routes-C7FEKcrl.js
|
|
9
9
|
var import_react = /* @__PURE__ */ __toESM(require_react());
|
|
10
10
|
var import_jsx_runtime = require_jsx_runtime();
|
|
11
11
|
function cn(...inputs) {
|
|
@@ -265,6 +265,10 @@ var HIDE_TOOL_BLOCKS_STORAGE_KEY = "pico-hide-tools";
|
|
|
265
265
|
var CENTER_MESSAGES_STORAGE_KEY = "pico-center-messages";
|
|
266
266
|
var AUTO_SCROLL_ENABLED_STORAGE_KEY = "pico-auto-scroll";
|
|
267
267
|
var RIGHT_SIDEBAR_OPEN_STORAGE_KEY = "pico-right-sidebar-open";
|
|
268
|
+
var RIGHT_SIDEBAR_ACTIVE_TAB_STORAGE_KEY = "pico-right-sidebar-active-tab";
|
|
269
|
+
var RIGHT_SIDEBAR_WIDTHS_STORAGE_KEY = "pico-right-sidebar-widths";
|
|
270
|
+
var RIGHT_SIDEBAR_FILE_TREE_WIDTH_STORAGE_KEY = "pico-right-sidebar-file-tree-width";
|
|
271
|
+
var RIGHT_SIDEBAR_HISTORY_HEIGHT_STORAGE_KEY = "pico-right-sidebar-history-height";
|
|
268
272
|
var PROMPT_DRAFTS_STORAGE_KEY = "pico-prompt-drafts";
|
|
269
273
|
var VIEWER_CONTEXT_STORAGE_KEY = "pico-context-id";
|
|
270
274
|
function createContextId() {
|
|
@@ -1265,11 +1269,11 @@ function getSessionTitle(summary) {
|
|
|
1265
1269
|
if (summary?.name?.trim()) return summary.name.trim();
|
|
1266
1270
|
return "New session";
|
|
1267
1271
|
}
|
|
1268
|
-
var $$splitComponentImporter = () => import("./routes-
|
|
1272
|
+
var $$splitComponentImporter = () => import("./routes-D0o-mw7d.mjs");
|
|
1269
1273
|
var indexSearchSchema = object({ session: string().optional() });
|
|
1270
1274
|
var Route = createFileRoute("/")({
|
|
1271
1275
|
validateSearch: indexSearchSchema,
|
|
1272
1276
|
component: lazyRouteComponent($$splitComponentImporter, "component")
|
|
1273
1277
|
});
|
|
1274
1278
|
//#endregion
|
|
1275
|
-
export {
|
|
1279
|
+
export { readStoredSessionDoneSoundEnabled as $, createContextId as A, normalizeStoredDirectoryList as B, TooltipProvider as C, buildItemsFromSync as D, assistantBlocksFromMessage as E, flattenTree as F, readStoredCenterMessages as G, previewUrlForImage as H, getSessionTitle as I, readStoredHideToolBlocks as J, readStoredCollapsedDirectories as K, mergeAssistantBlocksForStreaming as L, extractMessageImages as M, extractMessageText as N, cn as O, extractToolText as P, readStoredSessionDoneDesktopNotificationsEnabled as Q, normalizePromptImage as R, TooltipContent as S, VIEWER_CONTEXT_STORAGE_KEY as T, promptDraftKey as U, normalizeThemeMode as V, readStoredAutoScrollEnabled as W, readStoredRecentDirectories as X, readStoredPromptDraft as Y, readStoredRightSidebarOpen as Z, SIDEBAR_DIRECTORIES_STORAGE_KEY as _, HIDE_TOOL_BLOCKS_STORAGE_KEY as a, sessionListEntryKey as at, TitleTooltip as b, RECENT_DIRECTORIES_STORAGE_KEY as c, RIGHT_SIDEBAR_HISTORY_HEIGHT_STORAGE_KEY as d, readStoredSidebarDirectories as et, RIGHT_SIDEBAR_OPEN_STORAGE_KEY as f, SESSION_DONE_SOUND_ENABLED_STORAGE_KEY as g, SESSION_DONE_DESKTOP_NOTIFICATIONS_ENABLED_STORAGE_KEY as h, DRAFT_DIRECTORY_STORAGE_KEY as i, sameContextUsage as it, createInitialSessionState as j, createCompactionSummaryItem as k, RIGHT_SIDEBAR_ACTIVE_TAB_STORAGE_KEY as l, Route as m, CENTER_MESSAGES_STORAGE_KEY as n, safeLocalStorageGetItem as nt, Kbd as o, thinkingSummaryText as ot, RIGHT_SIDEBAR_WIDTHS_STORAGE_KEY as p, readStoredDraftDirectory as q, COLLAPSED_DIRECTORIES_STORAGE_KEY as r, safeLocalStorageSetItem as rt, KeyboardShortcutContent as s, toolCategoryFromTool as st, AUTO_SCROLL_ENABLED_STORAGE_KEY as t, rememberStoredPromptDraft as tt, RIGHT_SIDEBAR_FILE_TREE_WIDTH_STORAGE_KEY as u, Spinner as v, TooltipTrigger as w, Tooltip$1 as x, THEME_STORAGE_KEY as y, normalizeSessionSelectionKeys as z };
|