@epam/ai-dial-chat-hooks 1.3.0-dev.358 → 1.3.0-dev.364

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.
Files changed (35) hide show
  1. package/catalog/resource-name-conflict.d.ts +22 -0
  2. package/catalog/resource-name-conflict.d.ts.map +1 -0
  3. package/catalog/resource-name-conflict.js +32 -0
  4. package/catalog.js +6 -5
  5. package/conversation/create-chat-stream-api.d.ts +2 -0
  6. package/conversation/create-chat-stream-api.d.ts.map +1 -1
  7. package/conversation/create-chat-stream-api.js +33 -33
  8. package/conversation/useConversationStream/conversation-stream.types.d.ts +6 -0
  9. package/conversation/useConversationStream/conversation-stream.types.d.ts.map +1 -1
  10. package/conversation/useConversationStream/generation-resume.d.ts +10 -1
  11. package/conversation/useConversationStream/generation-resume.d.ts.map +1 -1
  12. package/conversation/useConversationStream/generation-resume.js +110 -92
  13. package/conversation/useConversationStream/useConversationStream.d.ts +1 -1
  14. package/conversation/useConversationStream/useConversationStream.d.ts.map +1 -1
  15. package/conversation/useConversationStream/useConversationStream.js +106 -101
  16. package/conversation.js +43 -43
  17. package/entry-points/catalog.d.ts +1 -0
  18. package/entry-points/catalog.d.ts.map +1 -1
  19. package/index.d.ts +1 -0
  20. package/index.d.ts.map +1 -1
  21. package/index.js +178 -177
  22. package/package.json +17 -17
  23. package/project/project-file-preview.d.ts +4 -0
  24. package/project/project-file-preview.d.ts.map +1 -1
  25. package/project/project-file-preview.js +15 -10
  26. package/project/projects-api-client.d.ts +7 -1
  27. package/project/projects-api-client.d.ts.map +1 -1
  28. package/project/projects-api-client.js +1 -0
  29. package/project/use-project-conversations.d.ts +2 -1
  30. package/project/use-project-conversations.d.ts.map +1 -1
  31. package/project/use-project-conversations.js +11 -7
  32. package/project/use-project-file-preview.d.ts +6 -1
  33. package/project/use-project-file-preview.d.ts.map +1 -1
  34. package/project/use-project-file-preview.js +35 -31
  35. package/project.js +16 -16
@@ -11,6 +11,8 @@ export interface ProjectFileCard {
11
11
  }
12
12
  /** Builds the locator a canvas content resolver fetches for a project file, from the project id and the file name. The host owns the scheme. */
13
13
  export type ProjectFileLocatorBuilder = (projectId: string, name: string) => string;
14
+ /** Resolves a project file locator to the URL that downloads it, or `undefined` when the host serves no download for it. The host owns the endpoints. */
15
+ export type ProjectFileDownloadUrlResolver = (locator: string) => string | undefined;
14
16
  /** Returns the canvas key of a project file, `{scope}::{id}`; the scope keeps one file name in two projects apart. */
15
17
  export declare const toProjectPreviewKey: (scope: string, id: string) => string;
16
18
  /** Returns the card id behind a canvas key, or `undefined` when the key belongs to another scope or is not a project key. */
@@ -25,4 +27,6 @@ export declare const toStoredProjectFileAttachment: ({ id, name, contentType }:
25
27
  export declare const toProjectOutputAttachment: ({ name, contentType }: ProjectOutputItem, projectId: string, toLocator: ProjectFileLocatorBuilder) => DisplayAttachment;
26
28
  /** Returns the attachment a project form opens in the canvas for one of its cards: a file added in this session is its own attachment (it carries the `File`), a stored one is built from its project, and a stored file with no project yields `undefined`. */
27
29
  export declare const toProjectContextFileAttachment: (file: ProjectContextFile, projectId: string | null, toLocator: ProjectFileLocatorBuilder) => DisplayAttachment | undefined;
30
+ /** Downloads a project file attachment, a file added in this session from its own `File` and a stored one from the URL the host resolves for its locator; returns whether a download started. */
31
+ export declare const downloadProjectFileAttachment: (attachment: DisplayAttachment, resolveDownloadUrl: ProjectFileDownloadUrlResolver | undefined) => boolean;
28
32
  //# sourceMappingURL=project-file-preview.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"project-file-preview.d.ts","sourceRoot":"","sources":["../../src/project/project-file-preview.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EAGvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACvB,MAAM,wBAAwB,CAAC;AAMhC,yFAAyF;AACzF,MAAM,WAAW,eAAe;IAC9B,0DAA0D;IAC1D,EAAE,EAAE,MAAM,CAAC;IACX,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,gJAAgJ;AAChJ,MAAM,MAAM,yBAAyB,GAAG,CACtC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,KACT,MAAM,CAAC;AAEZ,sHAAsH;AACtH,eAAO,MAAM,mBAAmB,GAAI,OAAO,MAAM,EAAE,IAAI,MAAM,KAAG,MACvB,CAAC;AAE1C,6HAA6H;AAC7H,eAAO,MAAM,qBAAqB,GAChC,OAAO,MAAM,EACb,KAAK,MAAM,GAAG,SAAS,KACtB,MAAM,GAAG,SAGX,CAAC;AAEF,qFAAqF;AACrF,eAAO,MAAM,qBAAqB,GAAI,MAAM,MAAM,KAAG,MAClB,CAAC;AAEpC,+FAA+F;AAC/F,eAAO,MAAM,uBAAuB,GAClC,QAAQ,MAAM,GAAG,SAAS,KACzB,MAAM,GAAG,SAGG,CAAC;AAEhB,wJAAwJ;AACxJ,eAAO,MAAM,6BAA6B,GACxC,2BAA2B,eAAe,EAC1C,WAAW,MAAM,EACjB,WAAW,yBAAyB,KACnC,iBAOD,CAAC;AAEH,sIAAsI;AACtI,eAAO,MAAM,yBAAyB,GACpC,uBAAuB,iBAAiB,EACxC,WAAW,MAAM,EACjB,WAAW,yBAAyB,KACnC,iBAKA,CAAC;AAEJ,gQAAgQ;AAChQ,eAAO,MAAM,8BAA8B,GACzC,MAAM,kBAAkB,EACxB,WAAW,MAAM,GAAG,IAAI,EACxB,WAAW,yBAAyB,KACnC,iBAAiB,GAAG,SAKtB,CAAC"}
1
+ {"version":3,"file":"project-file-preview.d.ts","sourceRoot":"","sources":["../../src/project/project-file-preview.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EAMvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACvB,MAAM,wBAAwB,CAAC;AAMhC,yFAAyF;AACzF,MAAM,WAAW,eAAe;IAC9B,0DAA0D;IAC1D,EAAE,EAAE,MAAM,CAAC;IACX,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,gJAAgJ;AAChJ,MAAM,MAAM,yBAAyB,GAAG,CACtC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,KACT,MAAM,CAAC;AAEZ,yJAAyJ;AACzJ,MAAM,MAAM,8BAA8B,GAAG,CAC3C,OAAO,EAAE,MAAM,KACZ,MAAM,GAAG,SAAS,CAAC;AAExB,sHAAsH;AACtH,eAAO,MAAM,mBAAmB,GAAI,OAAO,MAAM,EAAE,IAAI,MAAM,KAAG,MACvB,CAAC;AAE1C,6HAA6H;AAC7H,eAAO,MAAM,qBAAqB,GAChC,OAAO,MAAM,EACb,KAAK,MAAM,GAAG,SAAS,KACtB,MAAM,GAAG,SAGX,CAAC;AAEF,qFAAqF;AACrF,eAAO,MAAM,qBAAqB,GAAI,MAAM,MAAM,KAAG,MAClB,CAAC;AAEpC,+FAA+F;AAC/F,eAAO,MAAM,uBAAuB,GAClC,QAAQ,MAAM,GAAG,SAAS,KACzB,MAAM,GAAG,SAGG,CAAC;AAEhB,wJAAwJ;AACxJ,eAAO,MAAM,6BAA6B,GACxC,2BAA2B,eAAe,EAC1C,WAAW,MAAM,EACjB,WAAW,yBAAyB,KACnC,iBAOD,CAAC;AAEH,sIAAsI;AACtI,eAAO,MAAM,yBAAyB,GACpC,uBAAuB,iBAAiB,EACxC,WAAW,MAAM,EACjB,WAAW,yBAAyB,KACnC,iBAKA,CAAC;AAEJ,gQAAgQ;AAChQ,eAAO,MAAM,8BAA8B,GACzC,MAAM,kBAAkB,EACxB,WAAW,MAAM,GAAG,IAAI,EACxB,WAAW,yBAAyB,KACnC,iBAAiB,GAAG,SAKtB,CAAC;AAEF,iMAAiM;AACjM,eAAO,MAAM,6BAA6B,GACxC,YAAY,iBAAiB,EAC7B,oBAAoB,8BAA8B,GAAG,SAAS,KAC7D,OAeF,CAAC"}
@@ -1,20 +1,25 @@
1
- import { RequestStatus as e, getAttachmentTypeFromMime as t } from "@epam/ai-dial-chat-shared";
2
- import { isStoredContextFile as n } from "@epam/ai-dial-projects";
1
+ import { RequestStatus as e, ensureDownloadFilename as t, getAttachmentTypeFromMime as n, triggerAnchorDownload as r, triggerBlobDownload as i } from "@epam/ai-dial-chat-shared";
2
+ import { isStoredContextFile as a } from "@epam/ai-dial-projects";
3
3
  //#region src/project/project-file-preview.ts
4
- var r = "::", i = "artifacts/", a = (e, t) => `${e}${r}${t}`, o = (e, t) => {
5
- let n = `${e}${r}`;
4
+ var o = "::", s = "artifacts/", c = (e, t) => `${e}${o}${t}`, l = (e, t) => {
5
+ let n = `${e}${o}`;
6
6
  return t?.startsWith(n) ? t.slice(n.length) : void 0;
7
- }, s = (e) => `${i}${e}`, c = (e) => e?.startsWith(i) ? e.slice(10) : void 0, l = ({ id: n, name: r, contentType: i }, a, o) => ({
8
- id: n,
7
+ }, u = (e) => `${s}${e}`, d = (e) => e?.startsWith(s) ? e.slice(10) : void 0, f = ({ id: t, name: r, contentType: i }, a, o) => ({
8
+ id: t,
9
9
  name: r,
10
10
  contentType: i,
11
- type: t(i),
11
+ type: n(i),
12
12
  status: e.Idle,
13
13
  url: o(a, r)
14
- }), u = ({ name: e, contentType: t }, n, r) => l({
14
+ }), p = ({ name: e, contentType: t }, n, r) => f({
15
15
  id: e,
16
16
  name: e,
17
17
  contentType: t
18
- }, n, r), d = (e, t, r) => n(e) ? t == null ? void 0 : l(e, t, r) : e;
18
+ }, n, r), m = (e, t, n) => a(e) ? t == null ? void 0 : f(e, t, n) : e, h = (e, n) => {
19
+ let { name: a, url: o, contentType: s } = e, c = t(a, o, s);
20
+ if ("file" in e && e.file instanceof Blob) return i(e.file, c), !0;
21
+ let l = o == null ? void 0 : n?.(o);
22
+ return l != null && (r(l, c), !0);
23
+ };
19
24
  //#endregion
20
- export { c as fromProjectOutputCardId, o as fromProjectPreviewKey, d as toProjectContextFileAttachment, u as toProjectOutputAttachment, s as toProjectOutputCardId, a as toProjectPreviewKey, l as toStoredProjectFileAttachment };
25
+ export { h as downloadProjectFileAttachment, d as fromProjectOutputCardId, l as fromProjectPreviewKey, m as toProjectContextFileAttachment, p as toProjectOutputAttachment, u as toProjectOutputCardId, c as toProjectPreviewKey, f as toStoredProjectFileAttachment };
@@ -1,4 +1,4 @@
1
- import { AttachmentDto, ConversationResponseDto, CreateConversationDto, CreateProjectResponseDto, ListProjectsResponseDto, ProjectArtifactListResponseDto, ProjectConversationListResponseDto, ProjectConversationTitlesResponseDto, ProjectDetailsDto, RenameConversationResponseDto, UpdateProjectResponseDto } from '@epam/ai-dial-chat-api-client';
1
+ import { AttachmentDto, ConversationResponseDto, CreateConversationDto, CreateProjectResponseDto, ListProjectsResponseDto, ProjectArtifactListResponseDto, ProjectConversationListResponseDto, ProjectConversationTitlesResponseDto, ProjectDetailsDto, GenerateTitleResponseDto, RenameConversationResponseDto, UpdateProjectResponseDto } from '@epam/ai-dial-chat-api-client';
2
2
  import { RequestSkill } from '@epam/ai-dial-chat-shared';
3
3
  /** A generated-client `Raw` answer, of which only the native response is read. */
4
4
  interface RawApiResponse {
@@ -72,6 +72,10 @@ export interface ProjectsConfiguredClient {
72
72
  newTitle: string;
73
73
  };
74
74
  }) => Promise<RenameConversationResponseDto>;
75
+ generateProjectConversationTitle: (request: {
76
+ id: string;
77
+ conversationName: string;
78
+ }) => Promise<GenerateTitleResponseDto>;
75
79
  deleteProjectConversation: (request: {
76
80
  id: string;
77
81
  conversationName: string;
@@ -146,6 +150,8 @@ export interface ProjectsApiClient {
146
150
  getProjectConversation: (conversationId: string, signal?: AbortSignal) => Promise<ConversationResponseDto>;
147
151
  saveProjectConversation: (conversationId: string, conversation: ConversationResponseDto) => Promise<ConversationResponseDto>;
148
152
  renameProjectConversation: (conversationId: string, newTitle: string) => Promise<RenameConversationResponseDto>;
153
+ /** Suggests a title for the conversation without saving it. */
154
+ generateProjectConversationTitle: (conversationId: string) => Promise<GenerateTitleResponseDto>;
149
155
  deleteProjectConversation: (conversationId: string) => Promise<void>;
150
156
  /** Records that the caller has seen the conversation's current version; a host without it keeps no read state. */
151
157
  markProjectConversationViewed?: (conversationId: string) => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"projects-api-client.d.ts","sourceRoot":"","sources":["../../src/project/projects-api-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"projects-api-client.d.ts","sourceRoot":"","sources":["../../src/project/projects-api-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,uBAAuB,EACvB,qBAAqB,EACrB,wBAAwB,EACxB,uBAAuB,EACvB,8BAA8B,EAC9B,kCAAkC,EAClC,oCAAoC,EACpC,iBAAiB,EACjB,wBAAwB,EACxB,6BAA6B,EAC7B,wBAAwB,EACzB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,kFAAkF;AAClF,UAAU,cAAc;IACtB,GAAG,EAAE,QAAQ,CAAC;CACf;AAED,4FAA4F;AAC5F,MAAM,WAAW,wBAAwB;IACvC,YAAY,EAAE,CAAC,OAAO,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAC1E,UAAU,EAAE,CACV,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,EACvB,OAAO,CAAC,EAAE,WAAW,KAClB,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAChC,aAAa,EAAE,CACb,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;KAChB,EACD,OAAO,CAAC,EAAE,WAAW,KAClB,OAAO,CAAC,wBAAwB,CAAC,CAAC;IACvC,aAAa,EAAE,CACb,OAAO,EAAE;QACP,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;KAChB,EACD,OAAO,CAAC,EAAE,WAAW,KAClB,OAAO,CAAC,wBAAwB,CAAC,CAAC;IACvC,aAAa,EAAE,CAAC,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3E,kBAAkB,EAAE,CAClB,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,EACvB,OAAO,CAAC,EAAE,WAAW,KAClB,OAAO,CAAC,cAAc,CAAC,CAAC;IAC7B,sBAAsB,EAAE,CACtB,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EACzC,OAAO,CAAC,EAAE,WAAW,KAClB,OAAO,CAAC,cAAc,CAAC,CAAC;IAC7B,wBAAwB,EAAE,CACxB,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,EACvB,OAAO,CAAC,EAAE,WAAW,KAClB,OAAO,CAAC,kCAAkC,CAAC,CAAC;IACjD,4BAA4B,EAAE,CAC5B,OAAO,EAAE;QACP,EAAE,EAAE,MAAM,CAAC;QACX,gCAAgC,EAAE;YAAE,KAAK,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC;KACvD,EACD,OAAO,CAAC,EAAE,WAAW,KAClB,OAAO,CAAC,oCAAoC,CAAC,CAAC;IACnD,oBAAoB,EAAE,CACpB,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,EACvB,OAAO,CAAC,EAAE,WAAW,KAClB,OAAO,CAAC,8BAA8B,CAAC,CAAC;IAC7C,yBAAyB,EAAE,CAAC,OAAO,EAAE;QACnC,EAAE,EAAE,MAAM,CAAC;QACX,qBAAqB,EAAE,qBAAqB,CAAC;KAC9C,KAAK,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACvC,sBAAsB,EAAE,CACtB,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAA;KAAE,EACjD,OAAO,CAAC,EAAE,WAAW,KAClB,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACtC,uBAAuB,EAAE,CAAC,OAAO,EAAE;QACjC,EAAE,EAAE,MAAM,CAAC;QACX,gBAAgB,EAAE,MAAM,CAAC;QACzB,uBAAuB,EAAE;YAAE,YAAY,EAAE,uBAAuB,CAAA;SAAE,CAAC;KACpE,KAAK,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACvC,yBAAyB,EAAE,CAAC,OAAO,EAAE;QACnC,EAAE,EAAE,MAAM,CAAC;QACX,gBAAgB,EAAE,MAAM,CAAC;QACzB,yBAAyB,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAC;KACjD,KAAK,OAAO,CAAC,6BAA6B,CAAC,CAAC;IAC7C,gCAAgC,EAAE,CAAC,OAAO,EAAE;QAC1C,EAAE,EAAE,MAAM,CAAC;QACX,gBAAgB,EAAE,MAAM,CAAC;KAC1B,KAAK,OAAO,CAAC,wBAAwB,CAAC,CAAC;IACxC,yBAAyB,EAAE,CAAC,OAAO,EAAE;QACnC,EAAE,EAAE,MAAM,CAAC;QACX,gBAAgB,EAAE,MAAM,CAAC;KAC1B,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpB,6BAA6B,EAAE,CAAC,OAAO,EAAE;QACvC,EAAE,EAAE,MAAM,CAAC;QACX,gBAAgB,EAAE,MAAM,CAAC;KAC1B,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpB,4BAA4B,EAAE,CAC5B,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,mBAAmB,EAAE;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,EAC9D,OAAO,CAAC,EAAE,WAAW,KAClB,OAAO,CAAC,cAAc,CAAC,CAAC;IAC7B,gBAAgB,EAAE,CAChB,OAAO,EAAE;QAAE,oBAAoB,EAAE;YAAE,GAAG,EAAE,MAAM,EAAE,CAAA;SAAE,CAAA;KAAE,EACpD,OAAO,CAAC,EAAE,WAAW,KAClB,OAAO,CAAC,cAAc,CAAC,CAAC;CAC9B;AAED,uDAAuD;AACvD,MAAM,WAAW,aAAa;IAC5B,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8DAA8D;IAC9D,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,2GAA2G;AAC3G,MAAM,WAAW,oBAAoB;IACnC,6BAA6B;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,8BAA8B;IAC9B,MAAM,EAAE,aAAa,CAAC;IACtB,gCAAgC;IAChC,QAAQ,EAAE,IAAI,EAAE,CAAC;IACjB,mDAAmD;IACnD,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,kGAAkG;IAClG,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,oEAAoE;AACpE,MAAM,WAAW,yBAAyB;IACxC,8BAA8B;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,yDAAyD;IACzD,YAAY,EAAE,MAAM,CAAC;IACrB,wCAAwC;IACxC,WAAW,CAAC,EAAE,aAAa,EAAE,CAAC;IAC9B,+CAA+C;IAC/C,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7C,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,+CAA+C;IAC/C,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC;CACzB;AAED,wEAAwE;AACxE,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,CAAC,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACzE,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC7E,aAAa,EAAE,CACb,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,IAAI,EAAE,EACb,MAAM,CAAC,EAAE,WAAW,KACjB,OAAO,CAAC,wBAAwB,CAAC,CAAC;IACvC,aAAa,EAAE,CACb,OAAO,EAAE,oBAAoB,EAC7B,MAAM,CAAC,EAAE,WAAW,KACjB,OAAO,CAAC,wBAAwB,CAAC,CAAC;IACvC,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,sBAAsB,EAAE,CACtB,EAAE,EAAE,MAAM,EACV,MAAM,CAAC,EAAE,WAAW,KACjB,OAAO,CAAC,QAAQ,CAAC,CAAC;IACvB,0BAA0B,EAAE,CAC1B,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,WAAW,KACjB,OAAO,CAAC,QAAQ,CAAC,CAAC;IACvB,8FAA8F;IAC9F,oBAAoB,EAAE,CACpB,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,WAAW,KACjB,OAAO,CAAC,8BAA8B,CAAC,CAAC;IAC7C,wBAAwB,EAAE,CACxB,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,WAAW,KACjB,OAAO,CAAC,kCAAkC,CAAC,CAAC;IACjD,4BAA4B,EAAE,CAC5B,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EAAE,EACf,MAAM,CAAC,EAAE,WAAW,KACjB,OAAO,CAAC,oCAAoC,CAAC,CAAC;IACnD,yBAAyB,EAAE,CACzB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,yBAAyB,KAC/B,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACtC,sBAAsB,EAAE,CACtB,cAAc,EAAE,MAAM,EACtB,MAAM,CAAC,EAAE,WAAW,KACjB,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACtC,uBAAuB,EAAE,CACvB,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,uBAAuB,KAClC,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACtC,yBAAyB,EAAE,CACzB,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,MAAM,KACb,OAAO,CAAC,6BAA6B,CAAC,CAAC;IAC5C,+DAA+D;IAC/D,gCAAgC,EAAE,CAChC,cAAc,EAAE,MAAM,KACnB,OAAO,CAAC,wBAAwB,CAAC,CAAC;IACvC,yBAAyB,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,kHAAkH;IAClH,6BAA6B,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1E,yBAAyB,EAAE,CACzB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,WAAW,KACjB,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;IACzC,qGAAqG;IACrG,aAAa,CAAC,EAAE,CACd,GAAG,EAAE,MAAM,EAAE,EACb,MAAM,CAAC,EAAE,WAAW,KACjB,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;CAC1C;AAKD;;;GAGG;AACH,eAAO,MAAM,0BAA0B,GACrC,gBAAgB,MAAM,KACrB;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAE,GAAG,IAapD,CAAC;AAYF,4GAA4G;AAC5G,eAAO,MAAM,0BAA0B,GAAI,qFAOxC,yBAAyB,KAAG,qBAe7B,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,GAClC,QAAQ,wBAAwB,KAC/B,QAAQ,CAAC,iBAAiB,CAiG3B,CAAC"}
@@ -69,6 +69,7 @@ var e = (e) => {
69
69
  ...t(n),
70
70
  renameConversationBodyDto: { newTitle: r }
71
71
  }),
72
+ generateProjectConversationTitle: (n) => e.generateProjectConversationTitle(t(n)),
72
73
  deleteProjectConversation: (n) => e.deleteProjectConversation(t(n)),
73
74
  markProjectConversationViewed: (n) => e.markProjectConversationViewed(t(n)),
74
75
  attachToProjectGeneration: async (t, r, i) => {
@@ -13,7 +13,7 @@ import { ProjectsApiClient } from './projects-api-client';
13
13
  * @param client - Configured project requests, from `createProjectsApiClient`; it must be referentially stable, because a new object reloads the list.
14
14
  * @param projectId - The project's DIAL id, or `null` while none is known.
15
15
  */
16
- export declare const useProjectConversations: (client: Pick<ProjectsApiClient, "listProjectConversations" | "getProjectConversationTitles" | "renameProjectConversation" | "deleteProjectConversation" | "markProjectConversationViewed">, projectId: string | null) => {
16
+ export declare const useProjectConversations: (client: Pick<ProjectsApiClient, "listProjectConversations" | "getProjectConversationTitles" | "renameProjectConversation" | "generateProjectConversationTitle" | "deleteProjectConversation" | "markProjectConversationViewed">, projectId: string | null) => {
17
17
  items: ProjectConversationListItem[];
18
18
  isLoading: boolean;
19
19
  hasError: boolean;
@@ -24,6 +24,7 @@ export declare const useProjectConversations: (client: Pick<ProjectsApiClient, "
24
24
  retry: () => void;
25
25
  loadMore: () => Promise<void>;
26
26
  rename: (id: string, newTitle: string) => Promise<void>;
27
+ generateTitle: (id: string) => Promise<string>;
27
28
  remove: (id: string) => Promise<void>;
28
29
  refresh: () => Promise<void>;
29
30
  markViewed: (id: string) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"use-project-conversations.d.ts","sourceRoot":"","sources":["../../src/project/use-project-conversations.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAG1E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AA8E/D;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,uBAAuB,GAClC,QAAQ,IAAI,CACV,iBAAiB,EACf,0BAA0B,GAC1B,8BAA8B,GAC9B,2BAA2B,GAC3B,2BAA2B,GAC3B,+BAA+B,CAClC,EACD,WAAW,MAAM,GAAG,IAAI;;;;IA6NtB,8CAA8C;;IAE9C,2DAA2D;;;;iBA1ChD,MAAM,YAAY,MAAM;iBAaxB,MAAM;;qBAlCZ,MAAM;CAwEd,CAAC"}
1
+ {"version":3,"file":"use-project-conversations.d.ts","sourceRoot":"","sources":["../../src/project/use-project-conversations.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAG1E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AA8E/D;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,uBAAuB,GAClC,QAAQ,IAAI,CACV,iBAAiB,EACf,0BAA0B,GAC1B,8BAA8B,GAC9B,2BAA2B,GAC3B,kCAAkC,GAClC,2BAA2B,GAC3B,+BAA+B,CAClC,EACD,WAAW,MAAM,GAAG,IAAI;;;;IAqOtB,8CAA8C;;IAE9C,2DAA2D;;;;iBAlDhD,MAAM,YAAY,MAAM;wBAaxB,MAAM;iBAQN,MAAM;;qBA1CZ,MAAM;CAiFd,CAAC"}
@@ -169,6 +169,9 @@ var o = 20, s = 100, c = {
169
169
  } : e)
170
170
  }));
171
171
  }, [e]), M = t(async (t) => {
172
+ let { name: n } = await e.generateProjectConversationTitle(t);
173
+ return n;
174
+ }, [e]), N = t(async (t) => {
172
175
  await e.deleteProjectConversation(t);
173
176
  let { rows: n, visibleCount: r } = C.current, i = n.filter((e) => e.id !== t);
174
177
  h((e) => ({
@@ -177,17 +180,18 @@ var o = 20, s = 100, c = {
177
180
  }));
178
181
  let a = v.current;
179
182
  a != null && E(i, r, a.signal);
180
- }, [e, E]), { rows: N, visibleCount: P, isLoading: F, hasError: I, isLoadingMore: L } = m;
183
+ }, [e, E]), { rows: P, visibleCount: F, isLoading: I, hasError: L, isLoadingMore: R } = m;
181
184
  return {
182
- items: r(() => N.slice(0, P).map(f), [N, P]),
183
- isLoading: F,
184
- hasError: I,
185
- hasMore: P < N.length,
186
- isLoadingMore: L,
185
+ items: r(() => P.slice(0, F).map(f), [P, F]),
186
+ isLoading: I,
187
+ hasError: L,
188
+ hasMore: F < P.length,
189
+ isLoadingMore: R,
187
190
  retry: D,
188
191
  loadMore: O,
189
192
  rename: j,
190
- remove: M,
193
+ generateTitle: M,
194
+ remove: N,
191
195
  refresh: k,
192
196
  markViewed: A
193
197
  };
@@ -1,4 +1,5 @@
1
1
  import { DisplayAttachment } from '@epam/ai-dial-chat-shared';
2
+ import { ProjectFileDownloadUrlResolver } from './project-file-preview';
2
3
  /** Tells whether the request that produced a result may still show it; `false` once a newer request superseded it. */
3
4
  export type ProjectPreviewCommitGuard = () => boolean;
4
5
  /** Opens an attachment in the host's canvas under a key, showing it only while the guard allows; the host's `openAttachmentCanvas` fits. */
@@ -19,6 +20,8 @@ export interface UseProjectFilePreviewOptions {
19
20
  resolveContextAttachment: (cardId: string) => DisplayAttachment | undefined;
20
21
  /** Returns the attachment to open for an output name; omit it where outputs are not shown. */
21
22
  resolveOutputAttachment?: (name: string) => DisplayAttachment | undefined;
23
+ /** Resolves a stored file's locator to its download URL; when omitted, only files added in this session download. */
24
+ resolveDownloadUrl?: ProjectFileDownloadUrlResolver;
22
25
  }
23
26
  /** Selection state and stable card callbacks of the project file preview. */
24
27
  export interface UseProjectFilePreviewResult {
@@ -32,11 +35,13 @@ export interface UseProjectFilePreviewResult {
32
35
  onContextFileClick: (cardId: string) => void;
33
36
  /** Opens an output, or closes the canvas when that output is already open. */
34
37
  onOutputClick: (name: string) => void;
38
+ /** Downloads a context card's file without opening it in the canvas. */
39
+ onContextFileDownload: (cardId: string) => void;
35
40
  /** Closes the canvas when the open context card is no longer among the page's cards. */
36
41
  closeIfRemoved: (cards: readonly {
37
42
  id: string;
38
43
  }[]) => void;
39
44
  }
40
45
  /** Opens project files in the host's attachment canvas for the New project, Edit project and project view pages, deriving the selected card from the canvas. */
41
- export declare const useProjectFilePreview: ({ scope, attachmentId, openAttachment, closeCanvas, startRequest, resolveContextAttachment, resolveOutputAttachment, }: UseProjectFilePreviewOptions) => UseProjectFilePreviewResult;
46
+ export declare const useProjectFilePreview: ({ scope, attachmentId, openAttachment, closeCanvas, startRequest, resolveContextAttachment, resolveOutputAttachment, resolveDownloadUrl, }: UseProjectFilePreviewOptions) => UseProjectFilePreviewResult;
42
47
  //# sourceMappingURL=use-project-file-preview.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-project-file-preview.d.ts","sourceRoot":"","sources":["../../src/project/use-project-file-preview.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AASnE,sHAAsH;AACtH,MAAM,MAAM,yBAAyB,GAAG,MAAM,OAAO,CAAC;AAEtD,4IAA4I;AAC5I,MAAM,MAAM,4BAA4B,GAAG,CACzC,UAAU,EAAE,iBAAiB,EAC7B,kBAAkB,EAAE,MAAM,EAC1B,YAAY,EAAE,yBAAyB,KACpC,OAAO,CAAC;AAEb,4EAA4E;AAC5E,MAAM,WAAW,4BAA4B;IAC3C,yHAAyH;IACzH,KAAK,EAAE,MAAM,CAAC;IACd,mFAAmF;IACnF,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,qDAAqD;IACrD,cAAc,EAAE,4BAA4B,CAAC;IAC7C,yBAAyB;IACzB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,8FAA8F;IAC9F,YAAY,EAAE,MAAM,yBAAyB,CAAC;IAC9C,yKAAyK;IACzK,wBAAwB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,iBAAiB,GAAG,SAAS,CAAC;IAC5E,8FAA8F;IAC9F,uBAAuB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,iBAAiB,GAAG,SAAS,CAAC;CAC3E;AAED,6EAA6E;AAC7E,MAAM,WAAW,2BAA2B;IAC1C,sHAAsH;IACtH,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,wFAAwF;IACxF,qBAAqB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,oFAAoF;IACpF,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,iFAAiF;IACjF,kBAAkB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,8EAA8E;IAC9E,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,wFAAwF;IACxF,cAAc,EAAE,CAAC,KAAK,EAAE,SAAS;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE,KAAK,IAAI,CAAC;CAC5D;AAED,gKAAgK;AAChK,eAAO,MAAM,qBAAqB,GAAI,wHAQnC,4BAA4B,KAAG,2BA6EjC,CAAC"}
1
+ {"version":3,"file":"use-project-file-preview.d.ts","sourceRoot":"","sources":["../../src/project/use-project-file-preview.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,OAAO,EAIL,KAAK,8BAA8B,EAGpC,MAAM,wBAAwB,CAAC;AAEhC,sHAAsH;AACtH,MAAM,MAAM,yBAAyB,GAAG,MAAM,OAAO,CAAC;AAEtD,4IAA4I;AAC5I,MAAM,MAAM,4BAA4B,GAAG,CACzC,UAAU,EAAE,iBAAiB,EAC7B,kBAAkB,EAAE,MAAM,EAC1B,YAAY,EAAE,yBAAyB,KACpC,OAAO,CAAC;AAEb,4EAA4E;AAC5E,MAAM,WAAW,4BAA4B;IAC3C,yHAAyH;IACzH,KAAK,EAAE,MAAM,CAAC;IACd,mFAAmF;IACnF,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,qDAAqD;IACrD,cAAc,EAAE,4BAA4B,CAAC;IAC7C,yBAAyB;IACzB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,8FAA8F;IAC9F,YAAY,EAAE,MAAM,yBAAyB,CAAC;IAC9C,yKAAyK;IACzK,wBAAwB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,iBAAiB,GAAG,SAAS,CAAC;IAC5E,8FAA8F;IAC9F,uBAAuB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,iBAAiB,GAAG,SAAS,CAAC;IAC1E,qHAAqH;IACrH,kBAAkB,CAAC,EAAE,8BAA8B,CAAC;CACrD;AAED,6EAA6E;AAC7E,MAAM,WAAW,2BAA2B;IAC1C,sHAAsH;IACtH,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,wFAAwF;IACxF,qBAAqB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,oFAAoF;IACpF,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,iFAAiF;IACjF,kBAAkB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,8EAA8E;IAC9E,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,wEAAwE;IACxE,qBAAqB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,wFAAwF;IACxF,cAAc,EAAE,CAAC,KAAK,EAAE,SAAS;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE,KAAK,IAAI,CAAC;CAC5D;AAED,gKAAgK;AAChK,eAAO,MAAM,qBAAqB,GAAI,4IASnC,4BAA4B,KAAG,2BAuFjC,CAAC"}
@@ -1,46 +1,50 @@
1
- import { fromProjectOutputCardId as e, fromProjectPreviewKey as t, toProjectOutputCardId as n, toProjectPreviewKey as r } from "./project-file-preview.js";
2
- import { useCallback as i } from "react";
1
+ import { downloadProjectFileAttachment as e, fromProjectOutputCardId as t, fromProjectPreviewKey as n, toProjectOutputCardId as r, toProjectPreviewKey as i } from "./project-file-preview.js";
2
+ import { useCallback as a } from "react";
3
3
  //#region src/project/use-project-file-preview.ts
4
- var a = ({ scope: a, attachmentId: o, openAttachment: s, closeCanvas: c, startRequest: l, resolveContextAttachment: u, resolveOutputAttachment: d }) => {
5
- let f = t(a, o), p = e(f), m = p == null ? f : void 0;
4
+ var o = ({ scope: o, attachmentId: s, openAttachment: c, closeCanvas: l, startRequest: u, resolveContextAttachment: d, resolveOutputAttachment: f, resolveDownloadUrl: p }) => {
5
+ let m = n(o, s), h = t(m), g = h == null ? m : void 0;
6
6
  return {
7
- selectedCardId: f,
8
- selectedContextFileId: m,
9
- selectedOutputName: p,
10
- onContextFileClick: i((e) => {
11
- if (e === m) {
12
- c();
7
+ selectedCardId: m,
8
+ selectedContextFileId: g,
9
+ selectedOutputName: h,
10
+ onContextFileClick: a((e) => {
11
+ if (e === g) {
12
+ l();
13
13
  return;
14
14
  }
15
- let t = u(e);
16
- t && s(t, r(a, e), l());
15
+ let t = d(e);
16
+ t && c(t, i(o, e), u());
17
17
  }, [
18
+ l,
18
19
  c,
19
- s,
20
- u,
21
- a,
22
- m,
23
- l
20
+ d,
21
+ o,
22
+ g,
23
+ u
24
24
  ]),
25
- onOutputClick: i((e) => {
26
- if (e === p) {
27
- c();
25
+ onOutputClick: a((e) => {
26
+ if (e === h) {
27
+ l();
28
28
  return;
29
29
  }
30
- let t = d?.(e);
31
- t && s(t, r(a, n(e)), l());
30
+ let t = f?.(e);
31
+ t && c(t, i(o, r(e)), u());
32
32
  }, [
33
+ l,
33
34
  c,
34
- s,
35
- d,
36
- a,
37
- p,
38
- l
35
+ f,
36
+ o,
37
+ h,
38
+ u
39
39
  ]),
40
- closeIfRemoved: i((e) => {
41
- m != null && !e.some((e) => e.id === m) && c();
42
- }, [c, m])
40
+ onContextFileDownload: a((t) => {
41
+ let n = d(t);
42
+ n && e(n, p);
43
+ }, [d, p]),
44
+ closeIfRemoved: a((e) => {
45
+ g != null && !e.some((e) => e.id === g) && l();
46
+ }, [l, g])
43
47
  };
44
48
  };
45
49
  //#endregion
46
- export { a as useProjectFilePreview };
50
+ export { o as useProjectFilePreview };
package/project.js CHANGED
@@ -2,19 +2,19 @@ import { buildCreateConversationDto as e, createProjectsApiClient as t, splitPro
2
2
  import { mapProjectArtifactsToOutputs as r, mapProjectDetailsToViewModel as i, mapProjectDtoToItem as a, mapProjectSource as o, mapProjectSourceToFilterTab as s, mapStoredContextFiles as c } from "./project/project-mapping.js";
3
3
  import { DEFAULT_PROJECT_CONTEXT_ALLOWED_EXTENSIONS as l, DEFAULT_PROJECT_CONTEXT_FILE_MAX_BYTES as u, DEFAULT_PROJECT_CONTEXT_TOTAL_MAX_BYTES as d, getMimeTypesForExtensions as f, resolveByteLimit as p, resolveExtensionList as m } from "./project/project-limits.js";
4
4
  import { ProjectFormErrorField as h, ProjectFormErrorReason as g, getProjectFormError as _ } from "./project/project-form-errors.js";
5
- import { fromProjectOutputCardId as v, fromProjectPreviewKey as y, toProjectContextFileAttachment as b, toProjectOutputAttachment as x, toProjectOutputCardId as S, toProjectPreviewKey as C, toStoredProjectFileAttachment as w } from "./project/project-file-preview.js";
6
- import { useProjectFilePreview as T } from "./project/use-project-file-preview.js";
7
- import { ProjectDraftMode as E, useProjectDraft as D } from "./project/use-project-draft.js";
8
- import { ProjectChatCreateFailure as O, classifyProjectChatCreateError as k, createProjectChat as A } from "./project/create-project-chat.js";
9
- import { createProjectConversationDataSource as j } from "./project/project-conversation-data-source.js";
10
- import { useProjects as M } from "./project/use-projects.js";
11
- import { ProjectRefreshOutcome as N } from "./project/project-refresh.js";
12
- import { useProject as P } from "./project/use-project.js";
13
- import { useProjectWatch as F } from "./project/use-project-watch.js";
14
- import { useCreateProject as I, useSaveProject as L } from "./project/use-project-submit.js";
15
- import { useProjectConversations as R } from "./project/use-project-conversations.js";
16
- import { PINNED_PROJECT_CHATS_LIMIT as z, usePinnedProjectChats as B } from "./project/use-pinned-project-chats.js";
17
- import { useProjectArtifacts as V } from "./project/use-project-artifacts.js";
18
- import { ProjectActionError as H, useProjectActions as U } from "./project/use-project-actions.js";
19
- import { createSerializedKeyedWriter as W } from "./shared/serialized-writer.js";
20
- export { l as DEFAULT_PROJECT_CONTEXT_ALLOWED_EXTENSIONS, u as DEFAULT_PROJECT_CONTEXT_FILE_MAX_BYTES, d as DEFAULT_PROJECT_CONTEXT_TOTAL_MAX_BYTES, z as PINNED_PROJECT_CHATS_LIMIT, H as ProjectActionError, O as ProjectChatCreateFailure, E as ProjectDraftMode, h as ProjectFormErrorField, g as ProjectFormErrorReason, N as ProjectRefreshOutcome, e as buildCreateConversationDto, k as classifyProjectChatCreateError, A as createProjectChat, j as createProjectConversationDataSource, t as createProjectsApiClient, W as createSerializedKeyedWriter, v as fromProjectOutputCardId, y as fromProjectPreviewKey, f as getMimeTypesForExtensions, _ as getProjectFormError, r as mapProjectArtifactsToOutputs, i as mapProjectDetailsToViewModel, a as mapProjectDtoToItem, o as mapProjectSource, s as mapProjectSourceToFilterTab, c as mapStoredContextFiles, p as resolveByteLimit, m as resolveExtensionList, n as splitProjectConversationId, b as toProjectContextFileAttachment, x as toProjectOutputAttachment, S as toProjectOutputCardId, C as toProjectPreviewKey, w as toStoredProjectFileAttachment, I as useCreateProject, B as usePinnedProjectChats, P as useProject, U as useProjectActions, V as useProjectArtifacts, R as useProjectConversations, D as useProjectDraft, T as useProjectFilePreview, F as useProjectWatch, M as useProjects, L as useSaveProject };
5
+ import { downloadProjectFileAttachment as v, fromProjectOutputCardId as y, fromProjectPreviewKey as b, toProjectContextFileAttachment as x, toProjectOutputAttachment as S, toProjectOutputCardId as C, toProjectPreviewKey as w, toStoredProjectFileAttachment as T } from "./project/project-file-preview.js";
6
+ import { useProjectFilePreview as E } from "./project/use-project-file-preview.js";
7
+ import { ProjectDraftMode as D, useProjectDraft as O } from "./project/use-project-draft.js";
8
+ import { ProjectChatCreateFailure as k, classifyProjectChatCreateError as A, createProjectChat as j } from "./project/create-project-chat.js";
9
+ import { createProjectConversationDataSource as M } from "./project/project-conversation-data-source.js";
10
+ import { useProjects as N } from "./project/use-projects.js";
11
+ import { ProjectRefreshOutcome as P } from "./project/project-refresh.js";
12
+ import { useProject as F } from "./project/use-project.js";
13
+ import { useProjectWatch as I } from "./project/use-project-watch.js";
14
+ import { useCreateProject as L, useSaveProject as R } from "./project/use-project-submit.js";
15
+ import { useProjectConversations as z } from "./project/use-project-conversations.js";
16
+ import { PINNED_PROJECT_CHATS_LIMIT as B, usePinnedProjectChats as V } from "./project/use-pinned-project-chats.js";
17
+ import { useProjectArtifacts as H } from "./project/use-project-artifacts.js";
18
+ import { ProjectActionError as U, useProjectActions as W } from "./project/use-project-actions.js";
19
+ import { createSerializedKeyedWriter as G } from "./shared/serialized-writer.js";
20
+ export { l as DEFAULT_PROJECT_CONTEXT_ALLOWED_EXTENSIONS, u as DEFAULT_PROJECT_CONTEXT_FILE_MAX_BYTES, d as DEFAULT_PROJECT_CONTEXT_TOTAL_MAX_BYTES, B as PINNED_PROJECT_CHATS_LIMIT, U as ProjectActionError, k as ProjectChatCreateFailure, D as ProjectDraftMode, h as ProjectFormErrorField, g as ProjectFormErrorReason, P as ProjectRefreshOutcome, e as buildCreateConversationDto, A as classifyProjectChatCreateError, j as createProjectChat, M as createProjectConversationDataSource, t as createProjectsApiClient, G as createSerializedKeyedWriter, v as downloadProjectFileAttachment, y as fromProjectOutputCardId, b as fromProjectPreviewKey, f as getMimeTypesForExtensions, _ as getProjectFormError, r as mapProjectArtifactsToOutputs, i as mapProjectDetailsToViewModel, a as mapProjectDtoToItem, o as mapProjectSource, s as mapProjectSourceToFilterTab, c as mapStoredContextFiles, p as resolveByteLimit, m as resolveExtensionList, n as splitProjectConversationId, x as toProjectContextFileAttachment, S as toProjectOutputAttachment, C as toProjectOutputCardId, w as toProjectPreviewKey, T as toStoredProjectFileAttachment, L as useCreateProject, V as usePinnedProjectChats, F as useProject, W as useProjectActions, H as useProjectArtifacts, z as useProjectConversations, O as useProjectDraft, E as useProjectFilePreview, I as useProjectWatch, N as useProjects, R as useSaveProject };