pith-ui 0.2.0-app.1 → 0.2.0-app.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/API.md +261 -261
- package/APP-API.md +123 -119
- package/APP.md +6 -2
- package/dist/app/settings.d.ts.map +1 -1
- package/dist/app/settings.js +12 -8
- package/dist/app/settings.js.map +1 -1
- package/dist/app/workspace.d.ts +4 -0
- package/dist/app/workspace.d.ts.map +1 -1
- package/dist/app/workspace.js +27 -16
- package/dist/app/workspace.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/app/workspace.ts"],"names":[],"mappings":"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","sourcesContent":["import type {ActionResult} from '../core.js';\nimport {createWorkspaceShell, type ComposerViewState, type WorkspaceShellState} from '../workspace.js';\nimport {createWorkspaceNavigation, createWorkspacePicker, createRenameConversation, type NavigationWorkspace, type WorkspacePickerState, type RenameConversationState, type RenameConversationDraft} from '../navigation/navigation.js';\nimport {createContextMenu, type ContextMenuItem} from '../navigation/context-menu.js';\nimport {createConversationView, type ConversationMessage, type ConversationAction, type ConversationActionAvailability} from '../content/conversation-view.js';\nimport {installConversationReader} from '../content/conversation-reader.js';\nimport {createWelcomeView, type WelcomeState} from '../content/welcome.js';\nimport type {LocalContentLink} from '../content/markdown.js';\nimport {createPendingMessages, createAttachments, createDropFeedback, type PendingMessagesState, type AttachmentsState} from '../composer.js';\nimport {createPermissionControl, createFullAccessConfirmation, createTaskFailure, type PermissionControlState, type FullAccessState, type TaskFailureState} from '../tasks/permission.js';\nimport {createApprovalPanel, type ApprovalPanelState} from '../tasks/approval.js';\nimport {createRuntimePanel, type RuntimePanelState} from '../tasks/runtime.js';\nimport {createCostLedger, createCompletionNotices, createCopyFeedback, historyStatusMarkup, type CostLedgerState, type CompletionNoticeDisplay} from '../files/systems.js';\nimport {createTextEditDialog, createConfirmDialog, type TextEditState, type TextEditBlock, type ConfirmBlock} from '../primitives.js';\nimport {createBranchHistory, type BranchHistoryState} from '../forms/history.js';\nimport type {AppEnvironment, HostResult, OwnedSurface} from './internal.js';\nimport type {ApplicationBrand} from './index.js';\n\nexport type {ComposerViewState, WorkspaceShellState, WelcomeState, PendingMessagesState, AttachmentsState, PermissionControlState, FullAccessState, TaskFailureState, ApprovalPanelState, RuntimePanelState, CostLedgerState, CompletionNoticeDisplay, ConversationMessage, ConversationAction, ConversationActionAvailability, WorkspacePickerState, RenameConversationState, RenameConversationDraft, BranchHistoryState};\nexport interface NavigationStatus {readonly kind: 'approval' | 'running' | 'unread' | 'idle'}\nexport interface ApplicationConversation {\n readonly id: string; readonly title?: string; readonly active: boolean; readonly status?: NavigationStatus;\n readonly actions?: {readonly rename?: boolean; readonly history?: boolean; readonly export?: boolean; readonly delete?: boolean};\n}\nexport interface ApplicationWorkspace {\n readonly id: string; readonly name: string; readonly path: string;\n readonly selected: boolean; readonly children: readonly ApplicationConversation[];\n readonly canRemove?: boolean;\n}\nexport interface NavigationState {readonly groups: readonly ApplicationWorkspace[]; readonly empty: 'workspaces' | 'search' | null; readonly disabled?: boolean}\nexport interface ConversationState {readonly id: string; readonly messages: readonly ConversationMessage[]; readonly working: boolean}\nexport interface ImageTarget {readonly conversationId: string; readonly messageId: string; readonly index: number}\nexport type WorkspaceAction = 'workspace' | 'resources' | 'connections' | 'settings' | 'model' | 'compact' | 'continue' | 'diagnostics';\nexport type ConversationNavigationAction = 'rename' | 'history' | 'export' | 'delete';\nexport interface WorkspaceCallbacks {\n onAction?(action: WorkspaceAction): HostResult;\n onSubmit?(text: string): HostResult;\n onStop?(): HostResult;\n onInput?(text: string): void;\n onBlur?(): void;\n onImages?(files: File[]): void;\n onThinkingChange?(value: string): void;\n onBusyAction?(key: string): void;\n onSearch?(query: string): void;\n onSelectConversation?(id: string): void;\n onSelectWorkspace?(id: string): void;\n onNewConversation?(workspaceId: string): void;\n onConversationAction?(action: ConversationNavigationAction, id: string): HostResult;\n onWorkspaceAction?(action: 'remove', id: string): HostResult;\n onMessageAction?(action: ConversationAction): HostResult;\n onCopyCode?(text: string): HostResult;\n resolveLocalLink?(href: string, conversationId: string): LocalContentLink | null;\n onLocalFile?(target: LocalContentLink): HostResult;\n onLoadImage?(target: ImageTarget): Promise<Blob | null>;\n onQueueAction?(action: 'edit' | 'delete' | 'steer', id: string): void;\n onRemoveAttachment?(id: string): void;\n onDropReferences?(input: {readonly paths: readonly string[]; readonly uris?: string}): void;\n onPermissionChange?(value: string): void;\n onApproval?(id: string, action: 'deny' | 'always' | 'allow'): void;\n onCompletionOpen?(id: string): void;\n onCompletionDismiss?(runId: string): void;\n onCostsChange?(): void;\n onError?(message: string): void;\n}\nexport interface SceneSession<State> {\n update(state: Readonly<State>): void;\n close(): void;\n isOpen(): boolean;\n fail(message: string): void;\n destroy(): void;\n}\nexport interface MessageEditorState {\n readonly title: string; readonly value: string; readonly description?: string; readonly note?: string;\n readonly submitLabel?: string; readonly disabled?: boolean; readonly pending?: boolean;\n readonly inputDisabled?: boolean; readonly error?: string;\n}\nexport interface MessageEditorSession extends SceneSession<MessageEditorState> {read(): string; reset(value: string): void; focus(): void}\nexport interface ConfirmationState {\n readonly title: string; readonly action: string;\n readonly description: {readonly before: string; readonly subject?: string; readonly after?: string};\n readonly hint?: string; readonly error?: string; readonly disabled?: boolean;\n}\nexport interface WorkspaceAvailability {readonly global?: boolean; readonly active?: boolean; readonly conversations?: readonly string[]; readonly workspaces?: readonly string[]}\nexport interface WorkspaceScene {\n updateShell(state: Readonly<WorkspaceShellState>): void;\n updateComposer(state: Readonly<ComposerViewState>): void;\n readDraft(): string;\n resetDraft(text: string): void;\n focusComposer(): void;\n pickImages(): void;\n insertReferences(paths: readonly string[]): void;\n receiveNativeDrop(input: {readonly paths: readonly string[]; readonly x: number; readonly y: number}): void;\n setDropPending(pending: boolean): void;\n updateNavigation(state: Readonly<NavigationState>): void;\n search(query: string): void;\n closeNavigationMenu(): void;\n setSidebarOpen(open: boolean): void;\n updateConversation(state: Readonly<ConversationState>): void;\n updateMessageAvailability(state: Readonly<ConversationActionAvailability>): void;\n pruneConversations(ids: readonly string[]): void;\n updateWelcome(state: Readonly<WelcomeState>): void;\n followLatest(): void;\n openFind(): void;\n closeFind(): void;\n updatePending(state: Readonly<PendingMessagesState>): void;\n updateAttachments(state: Readonly<AttachmentsState>): void;\n updateImageGuidance(message: string): void;\n updatePermission(state: Readonly<PermissionControlState>): void;\n updateApproval(state: Readonly<ApprovalPanelState>): void;\n updateFailure(state: Readonly<TaskFailureState>): void;\n updateRuntime(state: Readonly<RuntimePanelState>): void;\n updateTiming(value: {summary: string; duration: string; speed: string}): void;\n updateNotices(state: readonly CompletionNoticeDisplay[]): void;\n updateAvailability(state: Readonly<WorkspaceAvailability>): void;\n readCosts(): {readonly open: boolean; readonly runtimeOpen: boolean};\n updateCosts(state: {readonly visible: boolean; readonly report?: CostLedgerState; readonly loading?: boolean; readonly error?: string}): void;\n resetCosts(): void;\n openMessageEditor(state: MessageEditorState, callbacks?: {onSubmit?(text: string): ActionResult | Promise<ActionResult>; onInput?(text: string): void; onClose?(): void}): MessageEditorSession;\n openQueueEditor(state: MessageEditorState, callbacks?: {onSubmit?(text: string): ActionResult | Promise<ActionResult>; onInput?(text: string): void; onClose?(): void}): MessageEditorSession;\n openConfirmation(state: ConfirmationState, callbacks: {onConfirm(): ActionResult | Promise<ActionResult>; onClose?(): void}): SceneSession<ConfirmationState>;\n openWorkspacePicker(state: WorkspacePickerState, callbacks?: {onSubmit?(path: string): ActionResult | Promise<ActionResult>; onPick?(): Promise<{path?: string; error?: string}>; onSelect?(id: string): void; onClose?(): void}): SceneSession<WorkspacePickerState> & {read(): {path: string}; reset(path?: string): void; focus(): void};\n openRename(state: RenameConversationState, callbacks?: {onSubmit?(draft: RenameConversationDraft): ActionResult | Promise<ActionResult>; onClose?(): void}): SceneSession<RenameConversationState> & {read(): RenameConversationDraft; reset(state: RenameConversationState): void; focus(): void};\n openFullAccess(state: FullAccessState, callbacks: {onConfirm(): ActionResult | Promise<ActionResult>; onClose?(): void}): SceneSession<FullAccessState>;\n openHistory(state: BranchHistoryState, callbacks?: {onContinue?(nodeId: string): HostResult; onClose?(): void}): SceneSession<BranchHistoryState>;\n destroy(): void;\n}\n\nexport function createWorkspaceScene(env: AppEnvironment, shell: ReturnType<typeof createWorkspaceShell>, callbacks: WorkspaceCallbacks, brand: ApplicationBrand): WorkspaceScene {\n let destroyed = false, activeId = '', query = '', dropPending = false, attachmentsDisabled = false;\n let navigationState: NavigationState = {groups: [], empty: 'workspaces'};\n let navigationConversation = '';\n let composerState: ComposerViewState = {};\n let availability: WorkspaceAvailability = {};\n const abort = new AbortController();\n const folds = new Map<string, Map<string, boolean>>(), expanded = new Map<string, boolean>();\n const imageData = new Map<string, Promise<string | null>>();\n let requestedImages = new WeakSet<HTMLImageElement>();\n let currentMessages: readonly ConversationMessage[] = [];\n let imageGeneration = 0;\n const imageURLs = new Set<string>();\n const sessions = new Set<{close(): void}>();\n const fail = (error: unknown) => {if (!destroyed) callbacks.onError?.(error instanceof Error ? error.message : String(error));};\n const run = async (action: (() => HostResult) | undefined): Promise<void> => {\n if (!action || destroyed) return;\n try {const result = await action(); if (result && !result.ok) throw new Error(result.error);}\n catch (error) {fail(error);}\n };\n const copy = createCopyFeedback({status: env.part('copy-status'), isDisabled: button => !!availability.global || (button.hasAttribute('data-message-action') && !!availability.active), onError: fail});\n const copyAction = (button: HTMLButtonElement, action: () => HostResult, label: string) => copy.copy(button, async () => {const result = await action(); if (result && !result.ok) throw new Error(result.error);}, label);\n const messages = createConversationView({container: env.part('messages'), markdown: id => ({resolveLocalLink: href => callbacks.resolveLocalLink?.(href, id) ?? null}),\n onAction(action, button) {\n const target = Object.freeze({...action});\n if (target.action === 'copy') void copyAction(button, () => callbacks.onMessageAction ? callbacks.onMessageAction(target) : env.copyText(currentMessages.find(message => message.id === target.messageId)?.text || ''), 'Message copied');\n else void run(() => callbacks.onMessageAction?.(target));\n },\n onCopyCode(text, button) {void copyAction(button, () => callbacks.onCopyCode ? callbacks.onCopyCode(text) : env.copyText(text), 'Code copied');},\n });\n const reader = installConversationReader(env.part('chat-scroll'), env.part('messages'), env.part('conversation-find'), env.part<HTMLButtonElement>('back-to-latest'), {isKeyboardBlocked: env.hasModal});\n let logo: HTMLImageElement | undefined;\n if (brand.mark) {logo = document.createElement('img'); logo.className = 'pui-app-brand-image'; logo.src = env.brandMarkSource(); logo.alt = brand.mark.alt;}\n const welcome = createWelcomeView({container: env.part('welcome'), logo, onAction: action => {void run(() => callbacks.onAction?.(action));}, onPrompt: text => {shell.composer.reset(text); callbacks.onInput?.(text); shell.composer.focus();}});\n const menu = createContextMenu({element: env.part('conversation-menu'), onDismiss: () => {menuTarget = undefined; renderNavigation();}, onAction(item) {\n const target = menuTarget; closeMenu(); if (!target) return;\n if (target.kind === 'conversation') void run(() => callbacks.onConversationAction?.(item.action as ConversationNavigationAction, target.id));\n else void run(() => callbacks.onWorkspaceAction?.('remove', target.id));\n }});\n let menuTarget: {kind: 'workspace' | 'conversation'; id: string} | undefined;\n const navigation = createWorkspaceNavigation({groups: [], empty: 'workspaces'}, {element: env.part('history-list'), idPrefix: env.idPrefix,\n onToggle(id) {const group = navigationState.groups.find(group => group.id === id); if (!group) return; const open = !(expanded.get(id) ?? group.selected); expanded.set(id, open); if (open) callbacks.onSelectWorkspace?.(id); renderNavigation();},\n onSelect(id) {closeMenu(); shell.setSidebarOpen(false); callbacks.onSelectConversation?.(id);},\n onAction(action) {\n if (action.action === 'add-workspace') {void run(() => callbacks.onAction?.('workspace')); return;}\n if (action.action === 'new-conversation') {closeMenu(); callbacks.onNewConversation?.(action.workspaceId); return;}\n const target = action.action === 'conversation-menu' ? {kind: 'conversation' as const, id: action.conversationId} : {kind: 'workspace' as const, id: action.workspaceId};\n if (menuTarget?.kind === target.kind && menuTarget.id === target.id) {closeMenu(); return;}\n closeMenu(); menuTarget = target;\n menu.open(action.trigger, {label: target.kind === 'conversation' ? 'Conversation actions' : 'Workspace actions', items: menuItems(target)}); renderNavigation();\n },\n });\n function closeMenu(): void {menu.close(); menuTarget = undefined; renderNavigation();}\n function menuItems(target: {kind: 'workspace' | 'conversation'; id: string}): ContextMenuItem[] {\n if (target.kind === 'workspace') {\n const group = navigationState.groups.find(group => group.id === target.id);\n return [{id: 'remove', label: 'Remove workspace', action: 'remove', danger: true, disabled: !!navigationState.disabled || !!availability.global || availability.workspaces?.includes(target.id) || group?.canRemove === false}];\n }\n const entry = navigationState.groups.flatMap(group => group.children).find(item => item.id === target.id);\n return ([['rename', 'Rename conversation'], ['history', 'Conversation branches'], ['export', 'Export conversation'], ['delete', 'Delete conversation']] as const)\n .filter(([action]) => action !== 'history' || entry?.active)\n .map(([action, label]) => ({id: action, action, label, danger: action === 'delete', disabled: !!navigationState.disabled || !!availability.global || availability.conversations?.includes(target.id) || entry?.actions?.[action] === false}));\n }\n function renderNavigation(): void {\n if (destroyed) return;\n const searched = query.trim().toLocaleLowerCase();\n const groups: NavigationWorkspace[] = navigationState.groups.map(group => ({...group, menuOpen: menuTarget?.kind === 'workspace' && menuTarget.id === group.id,\n expanded: searched ? true : expanded.get(group.id) ?? group.selected,\n children: group.children.filter(item => !searched || (item.title || '').toLocaleLowerCase().includes(searched)).map(item => {\n let status: Node | undefined;\n if (item.status) {const template = document.createElement('template'); template.innerHTML = historyStatusMarkup(item.status.kind); status = template.content;}\n return {...item, status, menuOpen: menuTarget?.kind === 'conversation' && menuTarget.id === item.id};\n }),\n })).filter(group => !searched || group.children.length > 0);\n navigation.update({groups, empty: searched && !groups.length ? 'search' : navigationState.empty, disabled: navigationState.disabled});\n if (menuTarget) menu.update({label: menuTarget.kind === 'conversation' ? 'Conversation actions' : 'Workspace actions', items: menuItems(menuTarget)});\n }\n const pending = createPendingMessages({container: env.part('queued-messages'), onAction: callbacks.onQueueAction});\n const attachments = createAttachments({container: env.part('draft-images'), onRemove: callbacks.onRemoveAttachment, onOpen: env.openImage});\n const drop = createDropFeedback({container: shell.composer.element});\n const permission = createPermissionControl({mode: 'ask', description: ''}, {element: env.part('permission-control'), descriptionElement: env.part('permission-description'), onChange: callbacks.onPermissionChange});\n const approval = createApprovalPanel({approval: null}, {element: env.part('approval'), idPrefix: env.idPrefix, onAction: callbacks.onApproval});\n const failure = createTaskFailure({visible: false, message: '', advice: '', canContinue: false}, {element: env.part('task-failure'), onContinue: () => {void run(() => callbacks.onAction?.('continue'));}, onSettings: () => {void run(() => callbacks.onAction?.('settings'));}, onDiagnostics: () => {void run(() => callbacks.onAction?.('diagnostics'));}});\n const runtime = createRuntimePanel({visible: false, summary: '', duration: '', speed: '', inputTokens: '', outputTokens: '', cacheRead: '', cacheWrite: '', contextTokens: '', contextWindow: '', compactions: '', toolFailures: '', recordedCost: '', latestCost: ''}, {element: env.part('run-status'), idPrefix: ''});\n const ledger = createCostLedger({container: env.part('cost-ledger')});\n const costs = env.part<HTMLDetailsElement>('cost-requests'), runDetails = env.part<HTMLDetailsElement>('run-status');\n const costsChanged = () => callbacks.onCostsChange?.(); costs.addEventListener('toggle', costsChanged, {signal: abort.signal}); runDetails.addEventListener('toggle', costsChanged, {signal: abort.signal});\n const notices = createCompletionNotices({container: env.part('completion-notices'), onOpen: callbacks.onCompletionOpen, onDismiss: callbacks.onCompletionDismiss});\n shell.element.addEventListener('click', event => {\n const target = (event.target as Element).closest<HTMLElement>('[data-action], [data-sdk=\"compact\"], a[data-download-path]');\n if (!target || target instanceof HTMLButtonElement && target.disabled) return;\n if (target.matches('a[data-download-path]')) {event.preventDefault(); const link = Object.freeze({conversationId: target.dataset.downloadConversation!, path: target.dataset.downloadPath!}); void run(() => callbacks.onLocalFile?.(link)); return;}\n const action = target.dataset.sdk === 'compact' ? 'compact' : target.dataset.action;\n if (action && ['workspace', 'resources', 'connections', 'settings'].includes(action) || action === 'compact') {event.stopPropagation(); void run(() => callbacks.onAction?.(action as WorkspaceAction));}\n }, {signal: abort.signal});\n const input = shell.composer.input, form = shell.composer.element;\n input.addEventListener('blur', () => callbacks.onBlur?.(), {signal: abort.signal});\n input.addEventListener('paste', event => {const files = [...event.clipboardData?.items || []].filter(item => item.type.startsWith('image/')).map(item => item.getAsFile()).filter((file): file is File => !!file); if (files.length) {event.preventDefault(); callbacks.onImages?.(files);}}, {signal: abort.signal});\n const dropUnavailable = () => destroyed || !!composerState.disabled || !!composerState.readOnly || dropPending || env.hasModal();\n form.addEventListener('dragover', event => {if (dropUnavailable()) return; event.preventDefault(); drop.update({active: true});}, {signal: abort.signal});\n form.addEventListener('dragleave', event => {if (!form.contains(event.relatedTarget as Node | null)) drop.update({active: false});}, {signal: abort.signal});\n form.addEventListener('drop', event => {\n event.preventDefault(); drop.update({active: false}); if (dropUnavailable()) return;\n const files = [...event.dataTransfer?.files || []];\n const isImage = (file: File) => ['image/png', 'image/jpeg', 'image/gif', 'image/webp'].includes(file.type) || !file.type && /\\.(?:png|jpe?g|gif|webp)$/i.test(file.name);\n const images = files.filter(isImage), uris = event.dataTransfer?.getData('text/uri-list') || '';\n if (images.length) callbacks.onImages?.(images);\n if (uris || files.some(file => !isImage(file))) callbacks.onDropReferences?.({paths: [], uris});\n }, {signal: abort.signal});\n const collectFolds = () => {if (!activeId) return; const map = new Map<string, boolean>(); for (const item of env.part('messages').querySelectorAll<HTMLDetailsElement>('[data-tool-fold]')) map.set(item.dataset.toolFold!, item.open); folds.set(activeId, map);};\n const clearImages = () => {imageGeneration++; imageData.clear(); requestedImages = new WeakSet(); for (const url of imageURLs) URL.revokeObjectURL(url); imageURLs.clear();};\n function loadImages(): void {\n const generation = imageGeneration, id = activeId;\n for (const image of messages.images()) {\n if (requestedImages.has(image)) continue;\n requestedImages.add(image);\n const target: ImageTarget = Object.freeze({conversationId: id, messageId: image.dataset.messageId!, index: Number(image.dataset.imageIndex)});\n const key = JSON.stringify([target.conversationId, target.messageId, target.index]);\n let pending = imageData.get(key);\n if (!pending) {\n pending = Promise.resolve().then(() => callbacks.onLoadImage?.(target)).then(blob => {\n if (!blob || !['image/png', 'image/jpeg', 'image/gif', 'image/webp'].includes(blob.type) || generation !== imageGeneration || destroyed) return null;\n const url = URL.createObjectURL(blob); imageURLs.add(url); return url;\n }).catch(() => null); imageData.set(key, pending);\n }\n void pending.then(src => {\n if (!destroyed && generation === imageGeneration && id === activeId) {\n if (!src) {requestedImages.delete(image); if (imageData.get(key) === pending) imageData.delete(key);}\n messages.setImageState(image, src ? {status: 'ready', src} : {status: 'unavailable'});\n }\n });\n }\n }\n const editorSlots = new Map<'message' | 'queue', {close(): void}>();\n function openEditor(kind: 'message' | 'queue', state: MessageEditorState, actions: Parameters<WorkspaceScene['openMessageEditor']>[1] = {}): MessageEditorSession {\n editorSlots.get(kind)?.close();\n let alive = !destroyed, current = state, savedDraft = state.value, block: TextEditBlock;\n const release = () => {if (!alive) return; alive = false; savedDraft = block.getValue(); block.destroy(); sessions.delete(session); if (editorSlots.get(kind) === session) editorSlots.delete(kind); env.notifyClose(actions.onClose); env.changed();};\n block = createTextEditDialog({title: state.title, submitLabel: state.submitLabel, label: kind === 'message' ? 'Message' : 'Pending message', onInput: actions.onInput, onSubmit: value => actions.onSubmit?.(value) ?? {ok: true}, onClose: release});\n block.control.rows = kind === 'message' ? 8 : 5;\n shell.element.append(block.element);\n const isOpen = () => alive && !destroyed && block.element.open;\n const session: MessageEditorSession = {isOpen, close: release, destroy: release, read: () => alive ? block.getValue() : savedDraft,\n update(next) {if (isOpen()) {current = next; block.update(next as TextEditState);}},\n reset(value) {if (isOpen()) {current = {...current, value}; block.open(current);}}, focus() {if (isOpen()) block.focus();}, fail(message) {if (isOpen()) block.update({...current, error: message});},\n };\n editorSlots.set(kind, session); sessions.add(session);\n if (alive) {block.update(state); block.open(state); env.changed();} else block.destroy();\n return session;\n }\n let confirmation: SceneSession<ConfirmationState> | undefined;\n function openConfirmation(state: ConfirmationState, actions: Parameters<WorkspaceScene['openConfirmation']>[1]): SceneSession<ConfirmationState> {\n confirmation?.close();\n let alive = !destroyed, current = state, block: ConfirmBlock;\n const message = (value: ConfirmationState) => {const fragment = document.createDocumentFragment(); fragment.append(value.description.before); if (value.description.subject) {const strong = document.createElement('strong'); strong.textContent = value.description.subject; fragment.append(strong);} fragment.append(value.description.after || ''); return fragment;};\n const release = () => {if (!alive) return; alive = false; block.destroy(); sessions.delete(session); env.notifyClose(actions.onClose); env.changed();};\n const presentation = (value: ConfirmationState) => ({title: value.title, hint: value.hint, error: value.error, disabled: value.disabled, message: message(value), confirmLabel: value.action});\n block = createConfirmDialog({...presentation(state), onConfirm: actions.onConfirm, onClose: release}); shell.element.append(block.element);\n const session: SceneSession<ConfirmationState> = {isOpen: () => alive && !destroyed && block.element.open, close: release, destroy: release,\n update(next) {if (!session.isOpen()) return; current = next; block.update(presentation(next));}, fail(error) {session.update({...current, error});},\n };\n confirmation = session; sessions.add(session); if (alive) {block.open(); env.changed();} else block.destroy(); return session;\n }\n return {\n updateShell: state => {if (!destroyed) shell.update(state);},\n updateComposer(state) {if (!destroyed) {composerState = state; shell.composer.update(state); drop.update({active: false, disabled: dropUnavailable()});}},\n readDraft: () => shell.composer.getValue(), resetDraft: text => {if (!destroyed) shell.composer.reset(text);}, focusComposer: shell.composer.focus,\n pickImages() {if (!dropUnavailable() && !attachmentsDisabled) shell.composer.pickImages();},\n insertReferences(paths) {\n if (dropUnavailable() || !paths.length) return;\n const reference = paths.map(path => {const ticks = Math.max(0, ...[...path.matchAll(/`+/g)].map(match => match[0].length)) + 1; const delimiter = '`'.repeat(ticks); return delimiter + (/^`|`$|^ | $/.test(path) ? ' ' + path + ' ' : path) + delimiter;}).join(' ');\n const value = input.value, start = input.selectionStart, end = input.selectionEnd;\n const before = value.slice(0, start), after = value.slice(end), inserted = (before && !/\\s$/.test(before) ? ' ' : '') + reference + (after && !/^\\s/.test(after) ? ' ' : '');\n shell.composer.reset(before + inserted + after); input.setSelectionRange(before.length + inserted.length, before.length + inserted.length); shell.composer.focus(); callbacks.onInput?.(input.value);\n },\n receiveNativeDrop({paths, x, y}) {if (dropUnavailable() || !Number.isFinite(x) || !Number.isFinite(y) || !form.contains(document.elementFromPoint(x, y))) return; callbacks.onDropReferences?.({paths: [...paths]});},\n setDropPending(value) {dropPending = value; if (value) drop.update({active: false});},\n updateNavigation(state) {navigationState = state; const active = state.groups.flatMap(group => group.children.filter(item => item.active).map(item => ({workspace: group.id, conversation: item.id})))[0]; if (active && active.conversation !== navigationConversation) expanded.set(active.workspace, true); navigationConversation = active?.conversation || ''; const ids = new Set(state.groups.map(group => group.id)); for (const id of expanded.keys()) if (!ids.has(id)) expanded.delete(id); if (menuTarget && !state.groups.some(group => menuTarget!.kind === 'workspace' ? group.id === menuTarget!.id : group.children.some(item => item.id === menuTarget!.id))) closeMenu(); renderNavigation();},\n search(value) {query = value; renderNavigation(); callbacks.onSearch?.(value);}, closeNavigationMenu: closeMenu, setSidebarOpen: shell.setSidebarOpen,\n updateConversation(state) {\n if (destroyed) return; collectFolds();\n if (state.id !== activeId) {env.closeImage(); clearImages(); costs.open = false; ledger.clear();}\n activeId = state.id; currentMessages = state.messages; reader.beforeRender(state.id);\n env.part('welcome').hidden = state.messages.length > 0; env.part('messages').hidden = !state.messages.length;\n messages.update({...state, folds: folds.get(state.id)}); loadImages(); reader.afterRender();\n },\n updateMessageAvailability: messages.updateActionAvailability,\n pruneConversations(ids) {const keep = new Set(ids); for (const id of folds.keys()) if (!keep.has(id)) folds.delete(id); reader.prune([...ids]);},\n updateWelcome(state) {if (destroyed) return; if (logo) logo.src = env.brandMarkSource(); welcome.update(state);}, followLatest: reader.followLatest, openFind: reader.openFind, closeFind: reader.closeFind,\n updatePending: pending.update,\n updateAttachments(state) {if (!destroyed) {attachmentsDisabled = !!state.disabled; attachments.update(state);}},\n updateImageGuidance(message) {const element = env.part('image-guidance'); element.textContent = message; element.hidden = !message;},\n updatePermission: permission.update, updateApproval: approval.update, updateFailure: failure.update, updateRuntime: runtime.update, updateTiming: runtime.updateTiming, updateNotices: notices.update,\n updateAvailability(state) {if (destroyed) return; availability = state; const conversations = new Set(state.conversations), workspaces = new Set(state.workspaces); shell.updateActionAvailability(scope => !!state.global || (scope.kind === 'conversation' ? conversations.has(scope.id || '') : scope.kind === 'workspace' ? workspaces.has(scope.id || '') : scope.kind === 'active' ? !!state.active : false)); renderNavigation();},\n readCosts: () => ({open: costs.open, runtimeOpen: runDetails.open}),\n updateCosts(state) {if (destroyed) return; costs.hidden = !state.visible; if (state.error) ledger.setError(state.error); else if (state.loading) ledger.loading(); else if (state.report) ledger.update(state.report);},\n resetCosts() {costs.open = false; ledger.clear();},\n openMessageEditor: (state, actions) => openEditor('message', state, actions), openQueueEditor: (state, actions) => openEditor('queue', state, actions), openConfirmation,\n openWorkspacePicker(state, actions = {}) {\n let surface: OwnedSurface; const block = createWorkspacePicker(state, {idPrefix: env.idPrefix, onSubmit: actions.onSubmit, onPick: actions.onPick, onSelect: actions.onSelect, onSubmitted: () => surface.close(), onCancel: () => surface.close()});\n surface = env.openDialog('workspace', block, actions.onClose); block.focus();\n return {isOpen: surface.isOpen, close: surface.close, destroy: surface.destroy, fail: surface.fail, read: block.read, update(next) {if (surface.isOpen()) block.update(next);}, reset(path) {if (surface.isOpen()) block.reset(path);}, focus() {if (surface.isOpen()) block.focus();}};\n },\n openRename(state, actions = {}) {\n let surface: OwnedSurface; const block = createRenameConversation(state, {idPrefix: env.idPrefix, onSubmit: actions.onSubmit, onSubmitted: () => surface.close(), onCancel: () => surface.close()});\n surface = env.openDialog('rename', block, actions.onClose); block.focus();\n return {isOpen: surface.isOpen, close: surface.close, destroy: surface.destroy, fail: surface.fail, read: block.read, update(next) {if (surface.isOpen()) block.update(next);}, reset(next) {if (surface.isOpen()) block.reset(next);}, focus() {if (surface.isOpen()) block.focus();}};\n },\n openFullAccess(state, actions) {\n let surface: OwnedSurface; const block = createFullAccessConfirmation(state, {idPrefix: env.idPrefix, onConfirm: async () => {const result = await actions.onConfirm(); if (result.ok && surface.isOpen()) surface.close(); return result;}});\n surface = env.openDialog('permissions', block, actions.onClose);\n return {isOpen: surface.isOpen, close: surface.close, destroy: surface.destroy, fail: surface.fail, update(next) {if (surface.isOpen()) block.update(next);}};\n },\n openHistory(state, actions = {}) {\n let surface: OwnedSurface; const block = createBranchHistory(state, {onContinue: async id => {const result = await actions.onContinue?.(id); if (result && !result.ok) throw new Error(result.error); if (surface.isOpen()) surface.close();}});\n surface = env.openFeature('Conversation branches', block, actions.onClose);\n return {isOpen: surface.isOpen, close: surface.close, destroy: surface.destroy, fail: surface.fail, update(next) {if (surface.isOpen()) block.update(next);}};\n },\n destroy() {if (destroyed) return; destroyed = true; abort.abort(); for (const session of [...sessions]) session.close(); sessions.clear(); clearImages(); folds.clear(); expanded.clear(); menu.destroy(); navigation.destroy(); copy.destroy(); reader.destroy(); messages.destroy(); welcome.destroy(); pending.destroy(); attachments.destroy(); drop.destroy(); permission.destroy(); approval.destroy(); failure.destroy(); runtime.destroy(); ledger.destroy(); notices.destroy();},\n };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/app/workspace.ts"],"names":[],"mappings":"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","sourcesContent":["import type {ActionResult} from '../core.js';\nimport {adoptAction} from '../foundations.js';\nimport {createWorkspaceShell, type ComposerViewState, type WorkspaceShellState} from '../workspace.js';\nimport {createWorkspaceNavigation, createWorkspacePicker, createRenameConversation, type NavigationWorkspace, type WorkspacePickerState, type RenameConversationState, type RenameConversationDraft} from '../navigation/navigation.js';\nimport {createContextMenu, type ContextMenuItem} from '../navigation/context-menu.js';\nimport {createConversationView, type ConversationMessage, type ConversationAction, type ConversationActionAvailability} from '../content/conversation-view.js';\nimport {installConversationReader} from '../content/conversation-reader.js';\nimport {createWelcomeView, type WelcomeState} from '../content/welcome.js';\nimport type {LocalContentLink} from '../content/markdown.js';\nimport {createPendingMessages, createAttachments, createDropFeedback, type PendingMessagesState, type AttachmentsState} from '../composer.js';\nimport {createPermissionControl, createFullAccessConfirmation, createTaskFailure, type PermissionControlState, type FullAccessState, type TaskFailureState} from '../tasks/permission.js';\nimport {createApprovalPanel, type ApprovalPanelState} from '../tasks/approval.js';\nimport {createRuntimePanel, type RuntimePanelState} from '../tasks/runtime.js';\nimport {createCostLedger, createCompletionNotices, createCopyFeedback, historyStatusMarkup, type CostLedgerState, type CompletionNoticeDisplay} from '../files/systems.js';\nimport {createTextEditDialog, createConfirmDialog, type TextEditState, type TextEditBlock, type ConfirmBlock} from '../primitives.js';\nimport {createBranchHistory, type BranchHistoryState} from '../forms/history.js';\nimport type {AppEnvironment, HostResult, OwnedSurface} from './internal.js';\nimport type {ApplicationBrand} from './index.js';\n\nexport type {ComposerViewState, WorkspaceShellState, WelcomeState, PendingMessagesState, AttachmentsState, PermissionControlState, FullAccessState, TaskFailureState, ApprovalPanelState, RuntimePanelState, CostLedgerState, CompletionNoticeDisplay, ConversationMessage, ConversationAction, ConversationActionAvailability, WorkspacePickerState, RenameConversationState, RenameConversationDraft, BranchHistoryState};\nexport interface NavigationStatus {readonly kind: 'approval' | 'running' | 'unread' | 'idle'}\nexport interface ApplicationConversation {\n readonly id: string; readonly title?: string; readonly active: boolean; readonly status?: NavigationStatus;\n readonly actions?: {readonly rename?: boolean; readonly history?: boolean; readonly export?: boolean; readonly delete?: boolean};\n}\nexport interface ApplicationWorkspace {\n readonly id: string; readonly name: string; readonly path: string;\n readonly selected: boolean; readonly children: readonly ApplicationConversation[];\n readonly canRemove?: boolean;\n}\nexport interface NavigationState {readonly groups: readonly ApplicationWorkspace[]; readonly empty: 'workspaces' | 'search' | null; readonly disabled?: boolean}\nexport interface ConversationState {readonly id: string; readonly messages: readonly ConversationMessage[]; readonly working: boolean}\nexport interface ImageTarget {readonly conversationId: string; readonly messageId: string; readonly index: number}\nexport type WorkspaceAction = 'workspace' | 'resources' | 'connections' | 'settings' | 'model' | 'compact' | 'continue' | 'diagnostics';\nexport type ConversationNavigationAction = 'rename' | 'history' | 'export' | 'delete';\nexport interface WorkspaceCallbacks {\n onAction?(action: WorkspaceAction): HostResult;\n onSubmit?(text: string): HostResult;\n onStop?(): HostResult;\n onInput?(text: string): void;\n onBlur?(): void;\n onImages?(files: File[]): void;\n onThinkingChange?(value: string): void;\n onBusyAction?(key: string): void;\n onSearch?(query: string): void;\n onSelectConversation?(id: string): void;\n onSelectWorkspace?(id: string): void;\n onNewConversation?(workspaceId: string): void;\n onConversationAction?(action: ConversationNavigationAction, id: string): HostResult;\n onWorkspaceAction?(action: 'remove', id: string): HostResult;\n onMessageAction?(action: ConversationAction): HostResult;\n onCopyCode?(text: string): HostResult;\n resolveLocalLink?(href: string, conversationId: string): LocalContentLink | null;\n onLocalFile?(target: LocalContentLink): HostResult;\n onLoadImage?(target: ImageTarget): Promise<Blob | null>;\n onQueueAction?(action: 'edit' | 'delete' | 'steer', id: string): void;\n onRemoveAttachment?(id: string): void;\n onDropReferences?(input: {readonly paths: readonly string[]; readonly uris?: string; readonly hasUnidentifiedFiles: boolean}): void;\n onPermissionChange?(value: string): void;\n onApproval?(id: string, action: 'deny' | 'always' | 'allow'): void;\n onCompletionOpen?(id: string): void;\n onCompletionDismiss?(runId: string): void;\n onCostsChange?(): void;\n onError?(message: string): void;\n}\nexport interface SceneSession<State> {\n update(state: Readonly<State>): void;\n close(): void;\n isOpen(): boolean;\n fail(message: string): void;\n destroy(): void;\n}\nexport interface MessageEditorState {\n readonly title: string; readonly value: string; readonly description?: string; readonly note?: string;\n readonly submitLabel?: string; readonly disabled?: boolean; readonly pending?: boolean;\n readonly inputDisabled?: boolean; readonly error?: string;\n}\nexport interface MessageEditorSession extends SceneSession<MessageEditorState> {read(): string; reset(value: string): void; focus(): void}\nexport interface ConfirmationState {\n readonly title: string; readonly action: string;\n readonly description: {readonly before: string; readonly subject?: string; readonly after?: string};\n readonly hint?: string; readonly error?: string; readonly disabled?: boolean;\n}\nexport interface WorkspaceAvailability {\n /** A host mutation blocks actions in every scope. A running task is scoped below. */\n readonly busy?: boolean;\n /** Global actions only; unrelated inactive targets keep their own availability. */\n readonly global?: boolean;\n readonly active?: boolean; readonly conversations?: readonly string[]; readonly workspaces?: readonly string[];\n}\nexport interface WorkspaceScene {\n updateShell(state: Readonly<WorkspaceShellState>): void;\n updateComposer(state: Readonly<ComposerViewState>): void;\n readDraft(): string;\n resetDraft(text: string): void;\n focusComposer(): void;\n pickImages(): void;\n insertReferences(paths: readonly string[]): void;\n receiveNativeDrop(input: {readonly paths: readonly string[]; readonly x: number; readonly y: number}): void;\n setDropPending(pending: boolean): void;\n updateNavigation(state: Readonly<NavigationState>): void;\n search(query: string): void;\n closeNavigationMenu(): void;\n setSidebarOpen(open: boolean): void;\n updateConversation(state: Readonly<ConversationState>): void;\n updateMessageAvailability(state: Readonly<ConversationActionAvailability>): void;\n pruneConversations(ids: readonly string[]): void;\n updateWelcome(state: Readonly<WelcomeState>): void;\n followLatest(): void;\n openFind(): void;\n closeFind(): void;\n updatePending(state: Readonly<PendingMessagesState>): void;\n updateAttachments(state: Readonly<AttachmentsState>): void;\n updateImageGuidance(message: string): void;\n updatePermission(state: Readonly<PermissionControlState>): void;\n updateApproval(state: Readonly<ApprovalPanelState>): void;\n updateFailure(state: Readonly<TaskFailureState>): void;\n updateRuntime(state: Readonly<RuntimePanelState>): void;\n updateTiming(value: {summary: string; duration: string; speed: string}): void;\n updateNotices(state: readonly CompletionNoticeDisplay[]): void;\n updateAvailability(state: Readonly<WorkspaceAvailability>): void;\n readCosts(): {readonly open: boolean; readonly runtimeOpen: boolean};\n updateCosts(state: {readonly visible: boolean; readonly report?: CostLedgerState; readonly loading?: boolean; readonly error?: string}): void;\n resetCosts(): void;\n openMessageEditor(state: MessageEditorState, callbacks?: {onSubmit?(text: string): ActionResult | Promise<ActionResult>; onInput?(text: string): void; onClose?(): void}): MessageEditorSession;\n openQueueEditor(state: MessageEditorState, callbacks?: {onSubmit?(text: string): ActionResult | Promise<ActionResult>; onInput?(text: string): void; onClose?(): void}): MessageEditorSession;\n openConfirmation(state: ConfirmationState, callbacks: {onConfirm(): ActionResult | Promise<ActionResult>; onClose?(): void}): SceneSession<ConfirmationState>;\n openWorkspacePicker(state: WorkspacePickerState, callbacks?: {onSubmit?(path: string): ActionResult | Promise<ActionResult>; onPick?(): Promise<{path?: string; error?: string}>; onSelect?(id: string): void; onClose?(): void}): SceneSession<WorkspacePickerState> & {read(): {path: string}; reset(path?: string): void; focus(): void};\n openRename(state: RenameConversationState, callbacks?: {onSubmit?(draft: RenameConversationDraft): ActionResult | Promise<ActionResult>; onClose?(): void}): SceneSession<RenameConversationState> & {read(): RenameConversationDraft; reset(state: RenameConversationState): void; focus(): void};\n openFullAccess(state: FullAccessState, callbacks: {onConfirm(): ActionResult | Promise<ActionResult>; onClose?(): void}): SceneSession<FullAccessState>;\n openHistory(state: BranchHistoryState, callbacks?: {onContinue?(nodeId: string): HostResult; onClose?(): void}): SceneSession<BranchHistoryState>;\n destroy(): void;\n}\n\nexport function createWorkspaceScene(env: AppEnvironment, shell: ReturnType<typeof createWorkspaceShell>, callbacks: WorkspaceCallbacks, brand: ApplicationBrand): WorkspaceScene {\n let destroyed = false, activeId = '', query = '', dropPending = false, attachmentsDisabled = false;\n let navigationState: NavigationState = {groups: [], empty: 'workspaces'};\n let navigationConversation = '';\n let composerState: ComposerViewState = {};\n let availability: WorkspaceAvailability = {};\n let messageAvailability: ConversationActionAvailability = {};\n const composerUnavailable = () => destroyed || !!composerState.disabled || !!composerState.readOnly || !!availability.busy || env.hasModal();\n const abort = new AbortController();\n const folds = new Map<string, Map<string, boolean>>(), expanded = new Map<string, boolean>();\n const imageData = new Map<string, Promise<string | null>>();\n let requestedImages = new WeakSet<HTMLImageElement>();\n let currentMessages: readonly ConversationMessage[] = [];\n let imageGeneration = 0;\n const imageURLs = new Set<string>();\n const sessions = new Set<{close(): void}>();\n const fail = (error: unknown) => {if (!destroyed) callbacks.onError?.(error instanceof Error ? error.message : String(error));};\n const run = async (action: (() => HostResult) | undefined): Promise<void> => {\n if (!action || destroyed) return;\n try {const result = await action(); if (result && !result.ok) throw new Error(result.error);}\n catch (error) {fail(error);}\n };\n const copy = createCopyFeedback({status: env.part('copy-status'), isDisabled: button => !!availability.busy || (button.hasAttribute('data-message-action') && !!messageAvailability[button.dataset.messageAction as ConversationAction['action']]), onError: fail});\n const copyAction = (button: HTMLButtonElement, action: () => HostResult, label: string) => copy.copy(button, async () => {const result = await action(); if (result && !result.ok) throw new Error(result.error);}, label);\n const messages = createConversationView({container: env.part('messages'), markdown: id => ({resolveLocalLink: href => callbacks.resolveLocalLink?.(href, id) ?? null}),\n onAction(action, button) {\n const target = Object.freeze({...action});\n if (target.action === 'copy') void copyAction(button, () => callbacks.onMessageAction ? callbacks.onMessageAction(target) : env.copyText(currentMessages.find(message => message.id === target.messageId)?.text || ''), 'Message copied');\n else void run(() => callbacks.onMessageAction?.(target));\n },\n onCopyCode(text, button) {void copyAction(button, () => callbacks.onCopyCode ? callbacks.onCopyCode(text) : env.copyText(text), 'Code copied');},\n });\n const reader = installConversationReader(env.part('chat-scroll'), env.part('messages'), env.part('conversation-find'), env.part<HTMLButtonElement>('back-to-latest'), {isKeyboardBlocked: env.hasModal});\n let logo: HTMLImageElement | undefined;\n if (brand.mark) {logo = document.createElement('img'); logo.className = 'pui-app-brand-image'; logo.src = env.brandMarkSource(); logo.alt = brand.mark.alt;}\n const welcome = createWelcomeView({container: env.part('welcome'), logo, onAction: action => {void run(() => callbacks.onAction?.(action));}, onPrompt: text => {if (composerUnavailable()) return; shell.composer.reset(text); callbacks.onInput?.(text); shell.composer.focus();}});\n const menu = createContextMenu({element: env.part('conversation-menu'), onDismiss: () => {menuTarget = undefined; renderNavigation();}, onAction(item) {\n const target = menuTarget; closeMenu(); if (!target) return;\n if (target.kind === 'conversation') void run(() => callbacks.onConversationAction?.(item.action as ConversationNavigationAction, target.id));\n else void run(() => callbacks.onWorkspaceAction?.('remove', target.id));\n }});\n let menuTarget: {kind: 'workspace' | 'conversation'; id: string} | undefined;\n const navigation = createWorkspaceNavigation({groups: [], empty: 'workspaces'}, {element: env.part('history-list'), idPrefix: env.idPrefix,\n onToggle(id) {const group = navigationState.groups.find(group => group.id === id); if (!group) return; const open = !(expanded.get(id) ?? group.selected); expanded.set(id, open); if (open) callbacks.onSelectWorkspace?.(id); renderNavigation();},\n onSelect(id) {closeMenu(); shell.setSidebarOpen(false); callbacks.onSelectConversation?.(id);},\n onAction(action) {\n if (action.action === 'add-workspace') {void run(() => callbacks.onAction?.('workspace')); return;}\n if (action.action === 'new-conversation') {closeMenu(); callbacks.onNewConversation?.(action.workspaceId); return;}\n const target = action.action === 'conversation-menu' ? {kind: 'conversation' as const, id: action.conversationId} : {kind: 'workspace' as const, id: action.workspaceId};\n if (menuTarget?.kind === target.kind && menuTarget.id === target.id) {closeMenu(); return;}\n closeMenu(); menuTarget = target;\n menu.open(action.trigger, {label: target.kind === 'conversation' ? 'Conversation actions' : 'Workspace actions', items: menuItems(target)}); renderNavigation();\n },\n });\n function closeMenu(): void {menu.close(); menuTarget = undefined; renderNavigation();}\n function menuItems(target: {kind: 'workspace' | 'conversation'; id: string}): ContextMenuItem[] {\n if (target.kind === 'workspace') {\n const group = navigationState.groups.find(group => group.id === target.id);\n return [{id: 'remove', label: 'Remove workspace', action: 'remove', danger: true, disabled: !!navigationState.disabled || !!availability.busy || availability.workspaces?.includes(target.id) || group?.canRemove === false}];\n }\n const entry = navigationState.groups.flatMap(group => group.children).find(item => item.id === target.id);\n return ([['rename', 'Rename'], ['history', 'Conversation branches'], ['export', 'Export Markdown'], ['delete', 'Delete conversation']] as const)\n .filter(([action]) => action !== 'history' || entry?.active)\n .map(([action, label]) => ({id: action, action, label, danger: action === 'delete', disabled: !!navigationState.disabled || !!availability.busy || availability.conversations?.includes(target.id) || entry?.actions?.[action] === false}));\n }\n function renderNavigation(): void {\n if (destroyed) return;\n const searched = query.trim().toLocaleLowerCase();\n const groups: NavigationWorkspace[] = navigationState.groups.map(group => ({...group, menuOpen: menuTarget?.kind === 'workspace' && menuTarget.id === group.id,\n expanded: searched ? true : expanded.get(group.id) ?? group.selected,\n children: group.children.filter(item => !searched || (item.title || '').toLocaleLowerCase().includes(searched)).map(item => {\n let status: Node | undefined;\n if (item.status) {const template = document.createElement('template'); template.innerHTML = historyStatusMarkup(item.status.kind); status = template.content;}\n return {...item, status, menuOpen: menuTarget?.kind === 'conversation' && menuTarget.id === item.id};\n }),\n })).filter(group => !searched || group.children.length > 0);\n navigation.update({groups, empty: searched && !groups.length ? 'search' : navigationState.empty, disabled: navigationState.disabled});\n if (menuTarget) menu.update({label: menuTarget.kind === 'conversation' ? 'Conversation actions' : 'Workspace actions', items: menuItems(menuTarget)});\n }\n const pending = createPendingMessages({container: env.part('queued-messages'), onAction: callbacks.onQueueAction});\n const attachments = createAttachments({container: env.part('draft-images'), onRemove: callbacks.onRemoveAttachment, onOpen: env.openImage});\n const drop = createDropFeedback({container: shell.composer.element});\n const permission = createPermissionControl({mode: 'ask', description: ''}, {element: env.part('permission-control'), descriptionElement: env.part('permission-description'), onChange: callbacks.onPermissionChange});\n const approval = createApprovalPanel({approval: null}, {element: env.part('approval'), idPrefix: env.idPrefix, onAction: callbacks.onApproval});\n const failure = createTaskFailure({visible: false, message: '', advice: '', canContinue: false}, {element: env.part('task-failure'), onContinue: () => {void run(() => callbacks.onAction?.('continue'));}, onSettings: () => {void run(() => callbacks.onAction?.('settings'));}, onDiagnostics: () => {void run(() => callbacks.onAction?.('diagnostics'));}});\n const runtime = createRuntimePanel({visible: false, summary: '', duration: '', speed: '', inputTokens: '', outputTokens: '', cacheRead: '', cacheWrite: '', contextTokens: '', contextWindow: '', compactions: '', toolFailures: '', recordedCost: '', latestCost: ''}, {element: env.part('run-status'), idPrefix: ''});\n const ledger = createCostLedger({container: env.part('cost-ledger')});\n const costs = env.part<HTMLDetailsElement>('cost-requests'), runDetails = env.part<HTMLDetailsElement>('run-status');\n const costsChanged = () => callbacks.onCostsChange?.(); costs.addEventListener('toggle', costsChanged, {signal: abort.signal}); runDetails.addEventListener('toggle', costsChanged, {signal: abort.signal});\n const notices = createCompletionNotices({container: env.part('completion-notices'), onOpen: callbacks.onCompletionOpen, onDismiss: callbacks.onCompletionDismiss});\n shell.element.addEventListener('click', event => {\n const target = (event.target as Element).closest<HTMLElement>('[data-action], [data-sdk=\"compact\"], a[data-download-path]');\n if (!target || target instanceof HTMLButtonElement && target.disabled) return;\n if (target.matches('a[data-download-path]')) {event.preventDefault(); const link = Object.freeze({conversationId: target.dataset.downloadConversation!, path: target.dataset.downloadPath!}); void run(() => callbacks.onLocalFile?.(link)); return;}\n const action = target.dataset.sdk === 'compact' ? 'compact' : target.dataset.action;\n if (action && ['workspace', 'resources', 'connections', 'settings'].includes(action) || action === 'compact') {event.stopPropagation(); void run(() => callbacks.onAction?.(action as WorkspaceAction));}\n }, {signal: abort.signal});\n const input = shell.composer.input, form = shell.composer.element;\n const attachmentAction = adoptAction(env.part<HTMLButtonElement>('attach-images'));\n const syncAttachment = () => attachmentAction.update({disabled: attachmentsDisabled || !!composerState.disabled || !!composerState.readOnly || !!availability.busy});\n input.addEventListener('blur', () => callbacks.onBlur?.(), {signal: abort.signal});\n input.addEventListener('paste', event => {const files = [...event.clipboardData?.items || []].filter(item => item.type.startsWith('image/')).map(item => item.getAsFile()).filter((file): file is File => !!file); if (files.length) {event.preventDefault(); callbacks.onImages?.(files);}}, {signal: abort.signal});\n const dropUnavailable = () => composerUnavailable() || dropPending;\n form.addEventListener('dragover', event => {if (dropUnavailable()) return; event.preventDefault(); drop.update({active: true});}, {signal: abort.signal});\n form.addEventListener('dragleave', event => {if (!form.contains(event.relatedTarget as Node | null)) drop.update({active: false});}, {signal: abort.signal});\n form.addEventListener('drop', event => {\n event.preventDefault(); drop.update({active: false}); if (composerUnavailable()) return;\n const files = [...event.dataTransfer?.files || []];\n const isImage = (file: File) => ['image/png', 'image/jpeg', 'image/gif', 'image/webp'].includes(file.type) || !file.type && /\\.(?:png|jpe?g|gif|webp)$/i.test(file.name);\n const images = files.filter(isImage), uris = event.dataTransfer?.getData('text/uri-list') || '';\n if (images.length && !attachmentsDisabled) callbacks.onImages?.(images);\n if (dropPending) return;\n const hasUnidentifiedFiles = files.some(file => !isImage(file));\n if (uris || hasUnidentifiedFiles) callbacks.onDropReferences?.({paths: [], uris, hasUnidentifiedFiles});\n }, {signal: abort.signal});\n const collectFolds = () => {if (!activeId) return; const map = new Map<string, boolean>(); for (const item of env.part('messages').querySelectorAll<HTMLDetailsElement>('[data-tool-fold]')) map.set(item.dataset.toolFold!, item.open); folds.set(activeId, map);};\n const clearImages = () => {imageGeneration++; imageData.clear(); requestedImages = new WeakSet(); for (const url of imageURLs) URL.revokeObjectURL(url); imageURLs.clear();};\n function loadImages(): void {\n const generation = imageGeneration, id = activeId;\n for (const image of messages.images()) {\n if (requestedImages.has(image)) continue;\n requestedImages.add(image);\n const target: ImageTarget = Object.freeze({conversationId: id, messageId: image.dataset.messageId!, index: Number(image.dataset.imageIndex)});\n const key = JSON.stringify([target.conversationId, target.messageId, target.index]);\n let pending = imageData.get(key);\n if (!pending) {\n pending = Promise.resolve().then(() => callbacks.onLoadImage?.(target)).then(blob => {\n if (!blob || !['image/png', 'image/jpeg', 'image/gif', 'image/webp'].includes(blob.type) || generation !== imageGeneration || destroyed) return null;\n const url = URL.createObjectURL(blob); imageURLs.add(url); return url;\n }).catch(() => null); imageData.set(key, pending);\n }\n void pending.then(src => {\n if (!destroyed && generation === imageGeneration && id === activeId) {\n if (!src) {requestedImages.delete(image); if (imageData.get(key) === pending) imageData.delete(key);}\n messages.setImageState(image, src ? {status: 'ready', src} : {status: 'unavailable'});\n }\n });\n }\n }\n const editorSlots = new Map<'message' | 'queue', {close(): void}>();\n function openEditor(kind: 'message' | 'queue', state: MessageEditorState, actions: Parameters<WorkspaceScene['openMessageEditor']>[1] = {}): MessageEditorSession {\n editorSlots.get(kind)?.close();\n let alive = !destroyed, current = state, savedDraft = state.value, block: TextEditBlock;\n const release = () => {if (!alive) return; alive = false; savedDraft = block.getValue(); block.destroy(); sessions.delete(session); if (editorSlots.get(kind) === session) editorSlots.delete(kind); env.notifyClose(actions.onClose); env.changed();};\n block = createTextEditDialog({title: state.title, submitLabel: state.submitLabel, label: kind === 'message' ? 'Message' : 'Pending message', onInput: actions.onInput, onSubmit: value => actions.onSubmit?.(value) ?? {ok: true}, onClose: release});\n block.control.rows = kind === 'message' ? 8 : 5;\n shell.element.append(block.element);\n const isOpen = () => alive && !destroyed && block.element.open;\n const session: MessageEditorSession = {isOpen, close: release, destroy: release, read: () => alive ? block.getValue() : savedDraft,\n update(next) {if (isOpen()) {current = next; block.update(next as TextEditState);}},\n reset(value) {if (isOpen()) {current = {...current, value}; block.open(current);}}, focus() {if (isOpen()) block.focus();}, fail(message) {if (isOpen()) block.update({...current, error: message});},\n };\n editorSlots.set(kind, session); sessions.add(session);\n if (alive) {block.update(state); block.open(state); env.changed();} else block.destroy();\n return session;\n }\n let confirmation: SceneSession<ConfirmationState> | undefined;\n function openConfirmation(state: ConfirmationState, actions: Parameters<WorkspaceScene['openConfirmation']>[1]): SceneSession<ConfirmationState> {\n confirmation?.close();\n let alive = !destroyed, current = state, block: ConfirmBlock;\n const message = (value: ConfirmationState) => {const fragment = document.createDocumentFragment(); fragment.append(value.description.before); if (value.description.subject) {const strong = document.createElement('strong'); strong.textContent = value.description.subject; fragment.append(strong);} fragment.append(value.description.after || ''); return fragment;};\n const release = () => {if (!alive) return; alive = false; block.destroy(); sessions.delete(session); env.notifyClose(actions.onClose); env.changed();};\n const presentation = (value: ConfirmationState) => ({title: value.title, hint: value.hint, error: value.error, disabled: value.disabled, message: message(value), confirmLabel: value.action});\n block = createConfirmDialog({...presentation(state), onConfirm: actions.onConfirm, onClose: release}); shell.element.append(block.element);\n const session: SceneSession<ConfirmationState> = {isOpen: () => alive && !destroyed && block.element.open, close: release, destroy: release,\n update(next) {if (!session.isOpen()) return; current = next; block.update(presentation(next));}, fail(error) {session.update({...current, error});},\n };\n confirmation = session; sessions.add(session); if (alive) {block.open(); env.changed();} else block.destroy(); return session;\n }\n return {\n updateShell: state => {if (!destroyed) shell.update(state);},\n updateComposer(state) {if (!destroyed) {composerState = state; shell.composer.update(state); syncAttachment(); drop.update({active: false, disabled: dropUnavailable()});}},\n readDraft: () => shell.composer.getValue(), resetDraft: text => {if (!destroyed) shell.composer.reset(text);}, focusComposer: shell.composer.focus,\n pickImages() {if (!composerUnavailable() && !attachmentsDisabled) shell.composer.pickImages();},\n insertReferences(paths) {\n if (dropUnavailable() || !paths.length) return;\n const reference = paths.map(path => {const ticks = Math.max(0, ...[...path.matchAll(/`+/g)].map(match => match[0].length)) + 1; const delimiter = '`'.repeat(ticks); return delimiter + (/^`|`$|^ | $/.test(path) && !/^ +$/.test(path) ? ' ' + path + ' ' : path) + delimiter;}).join(' ');\n const value = input.value, start = input.selectionStart, end = input.selectionEnd;\n const before = value.slice(0, start), after = value.slice(end), inserted = (before && !/\\s$/.test(before) ? ' ' : '') + reference + (after && !/^\\s/.test(after) ? ' ' : '');\n shell.composer.reset(before + inserted + after); input.setSelectionRange(before.length + inserted.length, before.length + inserted.length); shell.composer.focus(); callbacks.onInput?.(input.value);\n },\n receiveNativeDrop({paths, x, y}) {if (dropUnavailable() || !Number.isFinite(x) || !Number.isFinite(y) || !form.contains(document.elementFromPoint(x, y))) return; callbacks.onDropReferences?.({paths: [...paths], hasUnidentifiedFiles: false});},\n setDropPending(value) {dropPending = value; if (value) drop.update({active: false});},\n updateNavigation(state) {navigationState = state; const active = state.groups.flatMap(group => group.children.filter(item => item.active).map(item => ({workspace: group.id, conversation: item.id})))[0]; if (active && active.conversation !== navigationConversation) expanded.set(active.workspace, true); navigationConversation = active?.conversation || ''; const ids = new Set(state.groups.map(group => group.id)); for (const id of expanded.keys()) if (!ids.has(id)) expanded.delete(id); if (menuTarget && !state.groups.some(group => menuTarget!.kind === 'workspace' ? group.id === menuTarget!.id : group.children.some(item => item.id === menuTarget!.id))) closeMenu(); renderNavigation();},\n search(value) {query = value; renderNavigation(); callbacks.onSearch?.(value);}, closeNavigationMenu: closeMenu, setSidebarOpen: shell.setSidebarOpen,\n updateConversation(state) {\n if (destroyed) return; collectFolds();\n if (state.id !== activeId) {env.closeImage(); clearImages(); costs.open = false; ledger.clear();}\n activeId = state.id; currentMessages = state.messages; reader.beforeRender(state.id);\n env.part('welcome').hidden = state.messages.length > 0; env.part('messages').hidden = !state.messages.length;\n messages.update({...state, folds: folds.get(state.id)}); loadImages(); reader.afterRender();\n },\n updateMessageAvailability(state) {messageAvailability = state; messages.updateActionAvailability(state);},\n pruneConversations(ids) {const keep = new Set(ids); for (const id of folds.keys()) if (!keep.has(id)) folds.delete(id); reader.prune([...ids]);},\n updateWelcome(state) {if (destroyed) return; if (logo) logo.src = env.brandMarkSource(); welcome.update(state);}, followLatest: reader.followLatest, openFind: reader.openFind, closeFind: reader.closeFind,\n updatePending: pending.update,\n updateAttachments(state) {if (!destroyed) {attachmentsDisabled = !!state.disabled; attachments.update(state); syncAttachment();}},\n updateImageGuidance(message) {const element = env.part('image-guidance'); element.textContent = message; element.hidden = !message;},\n updatePermission: permission.update, updateApproval: approval.update, updateFailure: failure.update, updateRuntime: runtime.update, updateTiming: runtime.updateTiming, updateNotices: notices.update,\n updateAvailability(state) {if (destroyed) return; availability = state; const conversations = new Set(state.conversations), workspaces = new Set(state.workspaces); shell.updateActionAvailability(scope => !!state.busy || (scope.kind === 'global' ? !!state.global : scope.kind === 'conversation' ? conversations.has(scope.id || '') : scope.kind === 'workspace' ? workspaces.has(scope.id || '') : !!state.active)); syncAttachment(); renderNavigation();},\n readCosts: () => ({open: costs.open, runtimeOpen: runDetails.open}),\n updateCosts(state) {if (destroyed) return; costs.hidden = !state.visible; if (state.error) ledger.setError(state.error); else if (state.loading) ledger.loading(); else if (state.report) ledger.update(state.report);},\n resetCosts() {costs.open = false; ledger.clear();},\n openMessageEditor: (state, actions) => openEditor('message', state, actions), openQueueEditor: (state, actions) => openEditor('queue', state, actions), openConfirmation,\n openWorkspacePicker(state, actions = {}) {\n let surface: OwnedSurface; const block = createWorkspacePicker(state, {idPrefix: env.idPrefix, onSubmit: actions.onSubmit, onPick: actions.onPick, onSelect: actions.onSelect, onSubmitted: () => surface.close(), onCancel: () => surface.close()});\n surface = env.openDialog('workspace', block, actions.onClose); block.focus();\n return {isOpen: surface.isOpen, close: surface.close, destroy: surface.destroy, fail: surface.fail, read: block.read, update(next) {if (surface.isOpen()) block.update(next);}, reset(path) {if (surface.isOpen()) block.reset(path);}, focus() {if (surface.isOpen()) block.focus();}};\n },\n openRename(state, actions = {}) {\n let surface: OwnedSurface; const block = createRenameConversation(state, {idPrefix: env.idPrefix, onSubmit: actions.onSubmit, onSubmitted: () => surface.close(), onCancel: () => surface.close()});\n surface = env.openDialog('rename', block, actions.onClose); block.focus();\n return {isOpen: surface.isOpen, close: surface.close, destroy: surface.destroy, fail: surface.fail, read: block.read, update(next) {if (surface.isOpen()) block.update(next);}, reset(next) {if (surface.isOpen()) block.reset(next);}, focus() {if (surface.isOpen()) block.focus();}};\n },\n openFullAccess(state, actions) {\n let surface: OwnedSurface; const block = createFullAccessConfirmation(state, {idPrefix: env.idPrefix, onConfirm: async () => {const result = await actions.onConfirm(); if (result.ok && surface.isOpen()) surface.close(); return result;}});\n surface = env.openDialog('permissions', block, actions.onClose);\n return {isOpen: surface.isOpen, close: surface.close, destroy: surface.destroy, fail: surface.fail, update(next) {if (surface.isOpen()) block.update(next);}};\n },\n openHistory(state, actions = {}) {\n let surface: OwnedSurface; const block = createBranchHistory(state, {onContinue: async id => {const result = await actions.onContinue?.(id); if (result && !result.ok) throw new Error(result.error); if (surface.isOpen()) surface.close();}});\n surface = env.openFeature('Conversation branches', block, actions.onClose);\n return {isOpen: surface.isOpen, close: surface.close, destroy: surface.destroy, fail: surface.fail, update(next) {if (surface.isOpen()) block.update(next);}};\n },\n destroy() {if (destroyed) return; destroyed = true; abort.abort(); for (const session of [...sessions]) session.close(); sessions.clear(); clearImages(); folds.clear(); expanded.clear(); menu.destroy(); navigation.destroy(); copy.destroy(); reader.destroy(); messages.destroy(); welcome.destroy(); pending.destroy(); attachments.destroy(); attachmentAction.destroy(); drop.destroy(); permission.destroy(); approval.destroy(); failure.destroy(); runtime.destroy(); ledger.destroy(); notices.destroy();},\n };\n}\n"]}
|
package/package.json
CHANGED