@jini-ai/chat 0.3.4 → 0.3.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/react/components/AttachmentPreviewModal.d.ts +7 -0
- package/dist/react/components/AttachmentPreviewModal.d.ts.map +1 -0
- package/dist/react/components/AttachmentPreviewModal.hooks.d.ts +70 -0
- package/dist/react/components/AttachmentPreviewModal.hooks.d.ts.map +1 -0
- package/dist/react/components/AttachmentPreviewModal.hooks.js +200 -0
- package/dist/react/components/AttachmentPreviewModal.hooks.js.map +1 -0
- package/dist/react/components/AttachmentPreviewModal.js +18 -0
- package/dist/react/components/AttachmentPreviewModal.js.map +1 -0
- package/dist/react/components/Composer.d.ts.map +1 -1
- package/dist/react/components/Composer.js +1 -1
- package/dist/react/components/Composer.js.map +1 -1
- package/dist/react/components/MessageRow.d.ts.map +1 -1
- package/dist/react/components/MessageRow.js +7 -2
- package/dist/react/components/MessageRow.js.map +1 -1
- package/dist/react/components/composer-discovery.js +1 -1
- package/dist/react/features/chat-pane/components/ChatPane.d.ts +1 -1
- package/dist/react/features/chat-pane/components/ChatPane.d.ts.map +1 -1
- package/dist/react/features/chat-pane/components/ChatPane.js +4 -2
- package/dist/react/features/chat-pane/components/ChatPane.js.map +1 -1
- package/dist/react/features/chat-pane/hooks/useChatPane.hooks.d.ts.map +1 -1
- package/dist/react/features/chat-pane/hooks/useChatPane.hooks.js +20 -3
- package/dist/react/features/chat-pane/hooks/useChatPane.hooks.js.map +1 -1
- package/dist/react/features/chat-pane/hooks/useChatPaneComposerPlaceholder.hooks.d.ts +10 -0
- package/dist/react/features/chat-pane/hooks/useChatPaneComposerPlaceholder.hooks.d.ts.map +1 -0
- package/dist/react/features/chat-pane/hooks/useChatPaneComposerPlaceholder.hooks.js +66 -0
- package/dist/react/features/chat-pane/hooks/useChatPaneComposerPlaceholder.hooks.js.map +1 -0
- package/dist/react/features/chat-pane/react/components/AgentRuntimePicker.d.ts +12 -0
- package/dist/react/features/chat-pane/react/components/AgentRuntimePicker.d.ts.map +1 -0
- package/dist/react/features/chat-pane/react/components/AgentRuntimePicker.js +102 -0
- package/dist/react/features/chat-pane/react/components/AgentRuntimePicker.js.map +1 -0
- package/dist/react/features/chat-pane/react/components/ChatPane.d.ts +10 -0
- package/dist/react/features/chat-pane/react/components/ChatPane.d.ts.map +1 -0
- package/dist/react/features/chat-pane/react/components/ChatPane.js +137 -0
- package/dist/react/features/chat-pane/react/components/ChatPane.js.map +1 -0
- package/dist/react/features/chat-pane/react/hooks/useAgentRuntimePicker.hooks.d.ts +133 -0
- package/dist/react/features/chat-pane/react/hooks/useAgentRuntimePicker.hooks.d.ts.map +1 -0
- package/dist/react/features/chat-pane/react/hooks/useAgentRuntimePicker.hooks.js +258 -0
- package/dist/react/features/chat-pane/react/hooks/useAgentRuntimePicker.hooks.js.map +1 -0
- package/dist/react/features/chat-pane/react/hooks/useChatPane.hooks.d.ts +66 -0
- package/dist/react/features/chat-pane/react/hooks/useChatPane.hooks.d.ts.map +1 -0
- package/dist/react/features/chat-pane/react/hooks/useChatPane.hooks.js +223 -0
- package/dist/react/features/chat-pane/react/hooks/useChatPane.hooks.js.map +1 -0
- package/dist/react/features/chat-pane/react/hooks/useChatPaneAgentControl.hooks.d.ts +38 -0
- package/dist/react/features/chat-pane/react/hooks/useChatPaneAgentControl.hooks.d.ts.map +1 -0
- package/dist/react/features/chat-pane/react/hooks/useChatPaneAgentControl.hooks.js +252 -0
- package/dist/react/features/chat-pane/react/hooks/useChatPaneAgentControl.hooks.js.map +1 -0
- package/dist/react/features/chat-pane/react/hooks/useChatPaneFileDrop.hooks.d.ts +26 -0
- package/dist/react/features/chat-pane/react/hooks/useChatPaneFileDrop.hooks.d.ts.map +1 -0
- package/dist/react/features/chat-pane/react/hooks/useChatPaneFileDrop.hooks.js +60 -0
- package/dist/react/features/chat-pane/react/hooks/useChatPaneFileDrop.hooks.js.map +1 -0
- package/dist/react/features/chat-pane/react/hooks/useChatPaneRuntimeInventory.hooks.d.ts +25 -0
- package/dist/react/features/chat-pane/react/hooks/useChatPaneRuntimeInventory.hooks.d.ts.map +1 -0
- package/dist/react/features/chat-pane/react/hooks/useChatPaneRuntimeInventory.hooks.js +83 -0
- package/dist/react/features/chat-pane/react/hooks/useChatPaneRuntimeInventory.hooks.js.map +1 -0
- package/dist/react/features/chat-pane/react/hooks/useChatPaneWorkingDirectory.hooks.d.ts +38 -0
- package/dist/react/features/chat-pane/react/hooks/useChatPaneWorkingDirectory.hooks.d.ts.map +1 -0
- package/dist/react/features/chat-pane/react/hooks/useChatPaneWorkingDirectory.hooks.js +184 -0
- package/dist/react/features/chat-pane/react/hooks/useChatPaneWorkingDirectory.hooks.js.map +1 -0
- package/dist/react/features/chat-pane/react/styles.d.ts +2 -0
- package/dist/react/features/chat-pane/react/styles.d.ts.map +1 -0
- package/dist/react/features/chat-pane/react/styles.js +863 -0
- package/dist/react/features/chat-pane/react/styles.js.map +1 -0
- package/dist/react/features/chat-pane/styles.d.ts +1 -1
- package/dist/react/features/chat-pane/styles.d.ts.map +1 -1
- package/dist/react/features/chat-pane/styles.js +139 -3
- package/dist/react/features/chat-pane/styles.js.map +1 -1
- package/dist/react/features/chat-pane/types.d.ts +8 -0
- package/dist/react/features/chat-pane/types.d.ts.map +1 -1
- package/dist/react/features/model-picker/react/components/CredentialStatusBadge.d.ts +7 -0
- package/dist/react/features/model-picker/react/components/CredentialStatusBadge.d.ts.map +1 -0
- package/dist/react/features/model-picker/react/components/CredentialStatusBadge.js +20 -0
- package/dist/react/features/model-picker/react/components/CredentialStatusBadge.js.map +1 -0
- package/dist/react/features/model-picker/react/components/ModelPicker.d.ts +9 -0
- package/dist/react/features/model-picker/react/components/ModelPicker.d.ts.map +1 -0
- package/dist/react/features/model-picker/react/components/ModelPicker.js +34 -0
- package/dist/react/features/model-picker/react/components/ModelPicker.js.map +1 -0
- package/dist/react/features/model-picker/react/hooks/useModelPicker.hooks.d.ts +27 -0
- package/dist/react/features/model-picker/react/hooks/useModelPicker.hooks.d.ts.map +1 -0
- package/dist/react/features/model-picker/react/hooks/useModelPicker.hooks.js +62 -0
- package/dist/react/features/model-picker/react/hooks/useModelPicker.hooks.js.map +1 -0
- package/dist/react/hooks/attachment-preview-cache.d.ts +47 -0
- package/dist/react/hooks/attachment-preview-cache.d.ts.map +1 -0
- package/dist/react/hooks/attachment-preview-cache.js +59 -0
- package/dist/react/hooks/attachment-preview-cache.js.map +1 -0
- package/dist/react/hooks/useComposer.d.ts.map +1 -1
- package/dist/react/hooks/useComposer.js +12 -0
- package/dist/react/hooks/useComposer.js.map +1 -1
- package/dist/react/poc-mcp-ui-official/create-poc-resource.d.ts +1 -1
- package/dist/react/poc-mcp-ui-official/create-poc-resource.js +1 -1
- package/dist/react/slots.d.ts +8 -0
- package/dist/react/slots.d.ts.map +1 -1
- package/package.json +4 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModelPicker.js","sourceRoot":"","sources":["../../../../../../src/react/features/model-picker/react/components/ModelPicker.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { RefObject } from 'react';
|
|
2
|
+
import type { CredentialStatus, ModelOption, ModelPickerGroup, ModelPickerSelection, ModelProvider } from '../../types.js';
|
|
3
|
+
export interface UseModelPickerOptions {
|
|
4
|
+
models: readonly ModelOption[];
|
|
5
|
+
providers: readonly ModelProvider[];
|
|
6
|
+
statusByProviderId: Readonly<Record<string, CredentialStatus>>;
|
|
7
|
+
value: string;
|
|
8
|
+
onChange: (modelId: string) => void;
|
|
9
|
+
/** When true, auto-selects the first available model whenever `value` doesn't match any model. Defaults to false. */
|
|
10
|
+
autoSelectFirst?: boolean;
|
|
11
|
+
minSearchableOptions?: number;
|
|
12
|
+
}
|
|
13
|
+
export interface ModelPickerController {
|
|
14
|
+
open: boolean;
|
|
15
|
+
query: string;
|
|
16
|
+
groups: ModelPickerGroup[];
|
|
17
|
+
filteredGroups: ModelPickerGroup[];
|
|
18
|
+
selection: ModelPickerSelection | null;
|
|
19
|
+
shouldShowSearch: boolean;
|
|
20
|
+
containerRef: RefObject<HTMLDivElement | null>;
|
|
21
|
+
setQuery: (query: string) => void;
|
|
22
|
+
toggle: () => void;
|
|
23
|
+
close: () => void;
|
|
24
|
+
select: (modelId: string) => void;
|
|
25
|
+
}
|
|
26
|
+
export declare function useModelPicker({ models, providers, statusByProviderId, value, onChange, autoSelectFirst, minSearchableOptions, }: UseModelPickerOptions): ModelPickerController;
|
|
27
|
+
//# sourceMappingURL=useModelPicker.hooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useModelPicker.hooks.d.ts","sourceRoot":"","sources":["../../../../../../src/react/features/model-picker/react/hooks/useModelPicker.hooks.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE3H,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,SAAS,WAAW,EAAE,CAAC;IAC/B,SAAS,EAAE,SAAS,aAAa,EAAE,CAAC;IACpC,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAC/D,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,qHAAqH;IACrH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,cAAc,EAAE,gBAAgB,EAAE,CAAC;IACnC,SAAS,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACvC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,YAAY,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC/C,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,SAAS,EACT,kBAAkB,EAClB,KAAK,EACL,QAAQ,EACR,eAAuB,EACvB,oBAAqD,GACtD,EAAE,qBAAqB,GAAG,qBAAqB,CAuD/C"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module useModelPicker
|
|
3
|
+
*
|
|
4
|
+
* Headless controller for the model-picker feature: open/query state,
|
|
5
|
+
* derived provider groups + current selection, and the outside-click/
|
|
6
|
+
* Escape dismissal that `InlineModelSwitcher.tsx`'s popover and
|
|
7
|
+
* `modelOptions.tsx`'s `SearchableModelSelect` both hand-roll. All grouping/
|
|
8
|
+
* filtering/selection logic is delegated to the pure `rules.ts` — this hook
|
|
9
|
+
* only owns React state and the DOM-subscription effect.
|
|
10
|
+
*/
|
|
11
|
+
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
12
|
+
import { DEFAULT_MIN_SEARCHABLE_OPTIONS } from '../../constants.js';
|
|
13
|
+
import { filterModelGroups, findSelectedModel, firstAvailableModelId, groupModelsByProvider } from '../../rules.js';
|
|
14
|
+
export function useModelPicker({ models, providers, statusByProviderId, value, onChange, autoSelectFirst = false, minSearchableOptions = DEFAULT_MIN_SEARCHABLE_OPTIONS, }) {
|
|
15
|
+
const [open, setOpen] = useState(false);
|
|
16
|
+
const [query, setQuery] = useState('');
|
|
17
|
+
const containerRef = useRef(null);
|
|
18
|
+
const groups = useMemo(() => groupModelsByProvider(models, providers, statusByProviderId), [models, providers, statusByProviderId]);
|
|
19
|
+
const filteredGroups = useMemo(() => filterModelGroups(groups, query), [groups, query]);
|
|
20
|
+
const selection = useMemo(() => findSelectedModel(groups, value), [groups, value]);
|
|
21
|
+
const totalOptionCount = useMemo(() => groups.reduce((count, group) => count + group.models.length, 0), [groups]);
|
|
22
|
+
const shouldShowSearch = totalOptionCount >= minSearchableOptions;
|
|
23
|
+
useEffect(() => {
|
|
24
|
+
if (!autoSelectFirst || selection)
|
|
25
|
+
return;
|
|
26
|
+
const fallbackId = firstAvailableModelId(groups);
|
|
27
|
+
if (fallbackId)
|
|
28
|
+
onChange(fallbackId);
|
|
29
|
+
}, [autoSelectFirst, groups, onChange, selection]);
|
|
30
|
+
const close = useCallback(() => {
|
|
31
|
+
setOpen(false);
|
|
32
|
+
setQuery('');
|
|
33
|
+
}, []);
|
|
34
|
+
const toggle = useCallback(() => {
|
|
35
|
+
setOpen((prev) => !prev);
|
|
36
|
+
}, []);
|
|
37
|
+
const select = useCallback((modelId) => {
|
|
38
|
+
onChange(modelId);
|
|
39
|
+
close();
|
|
40
|
+
}, [close, onChange]);
|
|
41
|
+
useEffect(() => {
|
|
42
|
+
if (!open)
|
|
43
|
+
return;
|
|
44
|
+
const onPointerDown = (event) => {
|
|
45
|
+
if (containerRef.current?.contains(event.target))
|
|
46
|
+
return;
|
|
47
|
+
close();
|
|
48
|
+
};
|
|
49
|
+
const onKeyDown = (event) => {
|
|
50
|
+
if (event.key === 'Escape')
|
|
51
|
+
close();
|
|
52
|
+
};
|
|
53
|
+
document.addEventListener('mousedown', onPointerDown);
|
|
54
|
+
document.addEventListener('keydown', onKeyDown);
|
|
55
|
+
return () => {
|
|
56
|
+
document.removeEventListener('mousedown', onPointerDown);
|
|
57
|
+
document.removeEventListener('keydown', onKeyDown);
|
|
58
|
+
};
|
|
59
|
+
}, [open, close]);
|
|
60
|
+
return { open, query, groups, filteredGroups, selection, shouldShowSearch, containerRef, setQuery, toggle, close, select };
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=useModelPicker.hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useModelPicker.hooks.js","sourceRoot":"","sources":["../../../../../../src/react/features/model-picker/react/hooks/useModelPicker.hooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module attachment-preview-cache
|
|
3
|
+
*
|
|
4
|
+
* Module-level cache from a `ChatAttachment.path` (the opaque `attachment:<uuid>` capability id
|
|
5
|
+
* `useComposer.ts`'s `addAttachments` receives back from `project.uploadFiles`) to the original
|
|
6
|
+
* browser `File` the operator picked. Exists so `AttachmentPreviewModal` can show a sent attachment
|
|
7
|
+
* again — image or text — without a round trip to the server.
|
|
8
|
+
*
|
|
9
|
+
* **Why this has to exist at all.** `@jini-ai/http-kit`'s attachment store
|
|
10
|
+
* (`packages/http-kit/src/attachments.ts`) has no read route: `register()`'s only output is an
|
|
11
|
+
* opaque capability id meant for `claim()`/`resolveForRun` (server-side, run-scoped reads), and
|
|
12
|
+
* `claim()` is one-shot. There is no `GET /api/attachments/:id` anywhere in this codebase, and
|
|
13
|
+
* `cleanupRun` deletes a run's claimed files once it ends — so once a browser has sent an
|
|
14
|
+
* attachment, the daemon can no longer hand its bytes back to that same browser even if asked.
|
|
15
|
+
* The browser already had the bytes for free, at the moment the operator picked the file, so this
|
|
16
|
+
* cache captures that one copy instead of trying to add a new authenticated download route to a
|
|
17
|
+
* shared HTTP package as a side effect of a chat-transcript UI fix.
|
|
18
|
+
*
|
|
19
|
+
* **Scope of what this fixes.** Only the CURRENT page session: a reload starts this Map empty
|
|
20
|
+
* again, same as `composer-draft-cache.ts`'s own module doc describes for drafts. That matches the
|
|
21
|
+
* reported gap ("this is in the chat but we can never see it again") - within one open
|
|
22
|
+
* conversation, not across a reload - and does not claim to solve the (separate, larger) problem of
|
|
23
|
+
* persisting attachment bytes for a conversation loaded from storage.
|
|
24
|
+
*
|
|
25
|
+
* Same module-level-singleton shape and tradeoffs as `composer-draft-cache.ts`: partitioned by
|
|
26
|
+
* `path`, which `http-kit` mints as a fresh `randomUUID()` per upload, so two unrelated attachments
|
|
27
|
+
* can never collide on the key. Bounded by `MAX_CACHED_ATTACHMENT_PREVIEWS`, oldest-inserted evicted
|
|
28
|
+
* first, so a long session attaching many files does not grow this map without limit.
|
|
29
|
+
*/
|
|
30
|
+
/** Cap on distinct attachments tracked at once; see the module doc. */
|
|
31
|
+
export declare const MAX_CACHED_ATTACHMENT_PREVIEWS = 50;
|
|
32
|
+
/**
|
|
33
|
+
* Records `file` as the original bytes behind `path`, evicting the oldest tracked attachment first
|
|
34
|
+
* if this would introduce a new entry past {@link MAX_CACHED_ATTACHMENT_PREVIEWS}.
|
|
35
|
+
* @complexity Time/space: O(1) amortized.
|
|
36
|
+
*/
|
|
37
|
+
export declare function cacheAttachmentPreviewSource(path: string, file: File): void;
|
|
38
|
+
/**
|
|
39
|
+
* Reads back the `File` cached for `path`, or `undefined` when this browser never staged it (a
|
|
40
|
+
* different session, a reload, or eviction past the cap) - the only signal a preview needs to fall
|
|
41
|
+
* back to an honest metadata view instead of pretending to render content it does not have.
|
|
42
|
+
* @complexity Time/space: O(1).
|
|
43
|
+
*/
|
|
44
|
+
export declare function getAttachmentPreviewSource(path: string): File | undefined;
|
|
45
|
+
/** Test-only: empties the module-level cache so test cases cannot leak attachments into each other. */
|
|
46
|
+
export declare function __resetAttachmentPreviewCacheForTests(): void;
|
|
47
|
+
//# sourceMappingURL=attachment-preview-cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attachment-preview-cache.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/attachment-preview-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,uEAAuE;AACvE,eAAO,MAAM,8BAA8B,KAAK,CAAC;AAIjD;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAM3E;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAEzE;AAED,uGAAuG;AACvG,wBAAgB,qCAAqC,IAAI,IAAI,CAE5D"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module attachment-preview-cache
|
|
3
|
+
*
|
|
4
|
+
* Module-level cache from a `ChatAttachment.path` (the opaque `attachment:<uuid>` capability id
|
|
5
|
+
* `useComposer.ts`'s `addAttachments` receives back from `project.uploadFiles`) to the original
|
|
6
|
+
* browser `File` the operator picked. Exists so `AttachmentPreviewModal` can show a sent attachment
|
|
7
|
+
* again — image or text — without a round trip to the server.
|
|
8
|
+
*
|
|
9
|
+
* **Why this has to exist at all.** `@jini-ai/http-kit`'s attachment store
|
|
10
|
+
* (`packages/http-kit/src/attachments.ts`) has no read route: `register()`'s only output is an
|
|
11
|
+
* opaque capability id meant for `claim()`/`resolveForRun` (server-side, run-scoped reads), and
|
|
12
|
+
* `claim()` is one-shot. There is no `GET /api/attachments/:id` anywhere in this codebase, and
|
|
13
|
+
* `cleanupRun` deletes a run's claimed files once it ends — so once a browser has sent an
|
|
14
|
+
* attachment, the daemon can no longer hand its bytes back to that same browser even if asked.
|
|
15
|
+
* The browser already had the bytes for free, at the moment the operator picked the file, so this
|
|
16
|
+
* cache captures that one copy instead of trying to add a new authenticated download route to a
|
|
17
|
+
* shared HTTP package as a side effect of a chat-transcript UI fix.
|
|
18
|
+
*
|
|
19
|
+
* **Scope of what this fixes.** Only the CURRENT page session: a reload starts this Map empty
|
|
20
|
+
* again, same as `composer-draft-cache.ts`'s own module doc describes for drafts. That matches the
|
|
21
|
+
* reported gap ("this is in the chat but we can never see it again") - within one open
|
|
22
|
+
* conversation, not across a reload - and does not claim to solve the (separate, larger) problem of
|
|
23
|
+
* persisting attachment bytes for a conversation loaded from storage.
|
|
24
|
+
*
|
|
25
|
+
* Same module-level-singleton shape and tradeoffs as `composer-draft-cache.ts`: partitioned by
|
|
26
|
+
* `path`, which `http-kit` mints as a fresh `randomUUID()` per upload, so two unrelated attachments
|
|
27
|
+
* can never collide on the key. Bounded by `MAX_CACHED_ATTACHMENT_PREVIEWS`, oldest-inserted evicted
|
|
28
|
+
* first, so a long session attaching many files does not grow this map without limit.
|
|
29
|
+
*/
|
|
30
|
+
/** Cap on distinct attachments tracked at once; see the module doc. */
|
|
31
|
+
export const MAX_CACHED_ATTACHMENT_PREVIEWS = 50;
|
|
32
|
+
const sources = new Map();
|
|
33
|
+
/**
|
|
34
|
+
* Records `file` as the original bytes behind `path`, evicting the oldest tracked attachment first
|
|
35
|
+
* if this would introduce a new entry past {@link MAX_CACHED_ATTACHMENT_PREVIEWS}.
|
|
36
|
+
* @complexity Time/space: O(1) amortized.
|
|
37
|
+
*/
|
|
38
|
+
export function cacheAttachmentPreviewSource(path, file) {
|
|
39
|
+
if (!sources.has(path) && sources.size >= MAX_CACHED_ATTACHMENT_PREVIEWS) {
|
|
40
|
+
const oldest = sources.keys().next().value;
|
|
41
|
+
if (oldest !== undefined)
|
|
42
|
+
sources.delete(oldest);
|
|
43
|
+
}
|
|
44
|
+
sources.set(path, file);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Reads back the `File` cached for `path`, or `undefined` when this browser never staged it (a
|
|
48
|
+
* different session, a reload, or eviction past the cap) - the only signal a preview needs to fall
|
|
49
|
+
* back to an honest metadata view instead of pretending to render content it does not have.
|
|
50
|
+
* @complexity Time/space: O(1).
|
|
51
|
+
*/
|
|
52
|
+
export function getAttachmentPreviewSource(path) {
|
|
53
|
+
return sources.get(path);
|
|
54
|
+
}
|
|
55
|
+
/** Test-only: empties the module-level cache so test cases cannot leak attachments into each other. */
|
|
56
|
+
export function __resetAttachmentPreviewCacheForTests() {
|
|
57
|
+
sources.clear();
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=attachment-preview-cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attachment-preview-cache.js","sourceRoot":"","sources":["../../../src/react/hooks/attachment-preview-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,uEAAuE;AACvE,MAAM,CAAC,MAAM,8BAA8B,GAAG,EAAE,CAAC;AAEjD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAgB,CAAC;AAExC;;;;GAIG;AACH,MAAM,UAAU,4BAA4B,CAAC,IAAY,EAAE,IAAU;IACnE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,IAAI,8BAA8B,EAAE,CAAC;QACzE,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;QAC3C,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CAAC,IAAY;IACrD,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED,uGAAuG;AACvG,MAAM,UAAU,qCAAqC;IACnD,OAAO,CAAC,KAAK,EAAE,CAAC;AAClB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useComposer.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/useComposer.ts"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"useComposer.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/useComposer.ts"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAG1D,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAErG,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,cAAc,CAAC;IAC9B,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,WAAW,CAAC,EAAE,wBAAwB,CAAC;IACvC;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,aAAa,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,+IAA+I;IAC/I,cAAc,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,aAAa,EAAE,CAAC,UAAU,EAAE,cAAc,KAAK,IAAI,CAAC;IACpD,gBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,KAAK,EAAE,cAAc,GAAG,SAAS,CAAC;IAClC,QAAQ,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IACzC,OAAO,EAAE,mBAAmB,CAAC;IAC7B,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,gHAAgH;IAChH,aAAa,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAC;IAC/C,yGAAyG;IACzG,SAAS,EAAE,OAAO,CAAC;IACnB,gFAAgF;IAChF,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAID,wBAAgB,WAAW,CAAC,OAAO,GAAE,kBAAuB,GAAG,iBAAiB,CA6H/E"}
|
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
*/
|
|
30
30
|
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
31
31
|
import { readCachedDraft, writeCachedDraft } from './composer-draft-cache.js';
|
|
32
|
+
import { cacheAttachmentPreviewSource } from './attachment-preview-cache.js';
|
|
32
33
|
const EMPTY_MENTION = { open: false, query: '', results: [] };
|
|
33
34
|
export function useComposer(options = {}) {
|
|
34
35
|
const { project, composerSlots, persistence, conversationId } = options;
|
|
@@ -66,6 +67,17 @@ export function useComposer(options = {}) {
|
|
|
66
67
|
}
|
|
67
68
|
const uploaded = await project.uploadFiles(files);
|
|
68
69
|
setAttachments((prev) => [...prev, ...uploaded]);
|
|
70
|
+
// `uploadFiles` resolves 1:1 with `files`, in order, on success (see
|
|
71
|
+
// `create-daemon-attachment-uploader.ts`'s "preserved order" doc) - any failure rejects the
|
|
72
|
+
// whole call instead of returning a short array, so this zip never pairs the wrong bytes with
|
|
73
|
+
// the wrong attachment. Caching the original `File` here, at the one moment this hook already
|
|
74
|
+
// holds it, is what lets `AttachmentPreviewModal` show it again later - see
|
|
75
|
+
// `attachment-preview-cache.ts`'s module doc for why the server cannot hand it back.
|
|
76
|
+
uploaded.forEach((a, i) => {
|
|
77
|
+
const file = files[i];
|
|
78
|
+
if (file)
|
|
79
|
+
cacheAttachmentPreviewSource(a.path, file);
|
|
80
|
+
});
|
|
69
81
|
for (const a of uploaded)
|
|
70
82
|
composerSlots?.onAttach?.(a);
|
|
71
83
|
}, [composerSlots, project]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useComposer.js","sourceRoot":"","sources":["../../../src/react/hooks/useComposer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE1E,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"useComposer.js","sourceRoot":"","sources":["../../../src/react/hooks/useComposer.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* of the MCP-UI resource shape) can build a `UIResource` end to end, per the owner's decision to
|
|
11
11
|
* evaluate replacing the hand-rolled client with the upstream package. See
|
|
12
12
|
* `poc-mcp-ui-official/__tests__/poc-mcp-ui-official.test.tsx` for the assertions this module
|
|
13
|
-
* exists to feed, and `ADS-memory/` (
|
|
13
|
+
* exists to feed, and `ADS-memory/` (the consuming product's own copy) / this session's final report for the CJS/ESM
|
|
14
14
|
* interop finding that shaped how this is imported (ESM only — `@mcp-ui/client`'s CJS build is
|
|
15
15
|
* broken in 7.1.1; `require('@mcp-ui/client')` throws / returns an empty object depending on Node
|
|
16
16
|
* version. `@mcp-ui/server`'s CJS build works fine in this same version, but this module still
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* of the MCP-UI resource shape) can build a `UIResource` end to end, per the owner's decision to
|
|
11
11
|
* evaluate replacing the hand-rolled client with the upstream package. See
|
|
12
12
|
* `poc-mcp-ui-official/__tests__/poc-mcp-ui-official.test.tsx` for the assertions this module
|
|
13
|
-
* exists to feed, and `ADS-memory/` (
|
|
13
|
+
* exists to feed, and `ADS-memory/` (the consuming product's own copy) / this session's final report for the CJS/ESM
|
|
14
14
|
* interop finding that shaped how this is imported (ESM only — `@mcp-ui/client`'s CJS build is
|
|
15
15
|
* broken in 7.1.1; `require('@mcp-ui/client')` throws / returns an empty object depending on Node
|
|
16
16
|
* version. `@mcp-ui/server`'s CJS build works fine in this same version, but this module still
|
package/dist/react/slots.d.ts
CHANGED
|
@@ -175,6 +175,14 @@ export interface ComposerSlots {
|
|
|
175
175
|
leadingAccessories?: ReactNode;
|
|
176
176
|
/** Host controls rendered before the send action, such as an agent/model picker. */
|
|
177
177
|
footerAccessories?: ReactNode;
|
|
178
|
+
/**
|
|
179
|
+
* Host controls rendered at the START of the footer row, immediately after the attach/discovery
|
|
180
|
+
* "+" trigger — for a control that belongs with the composer's other action-row buttons (e.g. a
|
|
181
|
+
* push-to-talk mic button) rather than in {@link leadingAccessories}'s pinned-context zone above
|
|
182
|
+
* the input, or in {@link footerAccessories}'s trailing slot (reserved for an agent/model picker
|
|
183
|
+
* and pushed to the row's far end via `margin-left: auto`).
|
|
184
|
+
*/
|
|
185
|
+
footerLeadingAccessory?: ReactNode;
|
|
178
186
|
onAttach?: (a: ChatAttachment) => void;
|
|
179
187
|
annotationAdapter?: AnnotationAdapter;
|
|
180
188
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slots.d.ts","sourceRoot":"","sources":["../../src/react/slots.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"slots.d.ts","sourceRoot":"","sources":["../../src/react/slots.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jini-ai/chat",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.6",
|
|
4
4
|
"description": "Jini's chat/artifact frontend, consolidated into one package with two subpaths: framework-free chat vocabulary and pure parsers in `/core`, headless hooks + presentational components + slots in `/react`. Import only the layer you need.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -62,10 +62,10 @@
|
|
|
62
62
|
"dependencies": {
|
|
63
63
|
"@mcp-ui/client": "7.1.1",
|
|
64
64
|
"@mcp-ui/server": "6.1.0",
|
|
65
|
+
"@jini-ai/protocol": "0.3.0",
|
|
65
66
|
"@jini-ai/agentic": "0.3.0",
|
|
66
|
-
"@jini-ai/
|
|
67
|
-
"@jini-ai/
|
|
68
|
-
"@jini-ai/ui": "0.3.4"
|
|
67
|
+
"@jini-ai/ui": "0.3.6",
|
|
68
|
+
"@jini-ai/platform": "0.3.0"
|
|
69
69
|
},
|
|
70
70
|
"peerDependencies": {
|
|
71
71
|
"react": "^18.3.0 || ^19.0.0",
|