@fluxra-ai/fluxra-cli 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +274 -0
- package/bin/fluxra +6 -0
- package/dist/cli/command-context.d.ts +17 -0
- package/dist/cli/command-context.d.ts.map +1 -0
- package/dist/cli/command-context.js +26 -0
- package/dist/cli/command-context.js.map +1 -0
- package/dist/cli/commands/auth/index.d.ts +3 -0
- package/dist/cli/commands/auth/index.d.ts.map +1 -0
- package/dist/cli/commands/auth/index.js +165 -0
- package/dist/cli/commands/auth/index.js.map +1 -0
- package/dist/cli/commands/chat/index.d.ts +3 -0
- package/dist/cli/commands/chat/index.d.ts.map +1 -0
- package/dist/cli/commands/chat/index.js +1201 -0
- package/dist/cli/commands/chat/index.js.map +1 -0
- package/dist/cli/commands/config/index.d.ts +3 -0
- package/dist/cli/commands/config/index.d.ts.map +1 -0
- package/dist/cli/commands/config/index.js +66 -0
- package/dist/cli/commands/config/index.js.map +1 -0
- package/dist/cli/commands/help.d.ts +7 -0
- package/dist/cli/commands/help.d.ts.map +1 -0
- package/dist/cli/commands/help.js +106 -0
- package/dist/cli/commands/help.js.map +1 -0
- package/dist/cli/commands/local/doctor.d.ts +26 -0
- package/dist/cli/commands/local/doctor.d.ts.map +1 -0
- package/dist/cli/commands/local/doctor.js +265 -0
- package/dist/cli/commands/local/doctor.js.map +1 -0
- package/dist/cli/commands/local/export.d.ts +41 -0
- package/dist/cli/commands/local/export.d.ts.map +1 -0
- package/dist/cli/commands/local/export.js +83 -0
- package/dist/cli/commands/local/export.js.map +1 -0
- package/dist/cli/commands/local/index.d.ts +6 -0
- package/dist/cli/commands/local/index.d.ts.map +1 -0
- package/dist/cli/commands/local/index.js +116 -0
- package/dist/cli/commands/local/index.js.map +1 -0
- package/dist/cli/commands/local/inspect.d.ts +42 -0
- package/dist/cli/commands/local/inspect.d.ts.map +1 -0
- package/dist/cli/commands/local/inspect.js +125 -0
- package/dist/cli/commands/local/inspect.js.map +1 -0
- package/dist/cli/commands/mcp.d.ts +8 -0
- package/dist/cli/commands/mcp.d.ts.map +1 -0
- package/dist/cli/commands/mcp.js +253 -0
- package/dist/cli/commands/mcp.js.map +1 -0
- package/dist/cli/commands/profile/index.d.ts +3 -0
- package/dist/cli/commands/profile/index.d.ts.map +1 -0
- package/dist/cli/commands/profile/index.js +114 -0
- package/dist/cli/commands/profile/index.js.map +1 -0
- package/dist/cli/commands/schema.d.ts +7 -0
- package/dist/cli/commands/schema.d.ts.map +1 -0
- package/dist/cli/commands/schema.js +33 -0
- package/dist/cli/commands/schema.js.map +1 -0
- package/dist/cli/errors.d.ts +16 -0
- package/dist/cli/errors.d.ts.map +1 -0
- package/dist/cli/errors.js +15 -0
- package/dist/cli/errors.js.map +1 -0
- package/dist/cli/fluxra.d.ts +9 -0
- package/dist/cli/fluxra.d.ts.map +1 -0
- package/dist/cli/fluxra.js +55 -0
- package/dist/cli/fluxra.js.map +1 -0
- package/dist/cli/helpers.d.ts +13 -0
- package/dist/cli/helpers.d.ts.map +1 -0
- package/dist/cli/helpers.js +32 -0
- package/dist/cli/helpers.js.map +1 -0
- package/dist/cli/output.d.ts +14 -0
- package/dist/cli/output.d.ts.map +1 -0
- package/dist/cli/output.js +55 -0
- package/dist/cli/output.js.map +1 -0
- package/dist/cli/version.d.ts +6 -0
- package/dist/cli/version.d.ts.map +1 -0
- package/dist/cli/version.js +8 -0
- package/dist/cli/version.js.map +1 -0
- package/dist/core/auth/auth-service.d.ts +35 -0
- package/dist/core/auth/auth-service.d.ts.map +1 -0
- package/dist/core/auth/auth-service.js +116 -0
- package/dist/core/auth/auth-service.js.map +1 -0
- package/dist/core/config/global-config.d.ts +38 -0
- package/dist/core/config/global-config.d.ts.map +1 -0
- package/dist/core/config/global-config.js +75 -0
- package/dist/core/config/global-config.js.map +1 -0
- package/dist/core/errors/error-model.d.ts +48 -0
- package/dist/core/errors/error-model.d.ts.map +1 -0
- package/dist/core/errors/error-model.js +152 -0
- package/dist/core/errors/error-model.js.map +1 -0
- package/dist/core/filesystem/paths.d.ts +45 -0
- package/dist/core/filesystem/paths.d.ts.map +1 -0
- package/dist/core/filesystem/paths.js +77 -0
- package/dist/core/filesystem/paths.js.map +1 -0
- package/dist/core/http/auth-api.d.ts +71 -0
- package/dist/core/http/auth-api.d.ts.map +1 -0
- package/dist/core/http/auth-api.js +91 -0
- package/dist/core/http/auth-api.js.map +1 -0
- package/dist/core/http/block-api.d.ts +37 -0
- package/dist/core/http/block-api.d.ts.map +1 -0
- package/dist/core/http/block-api.js +36 -0
- package/dist/core/http/block-api.js.map +1 -0
- package/dist/core/http/chat-api.d.ts +41 -0
- package/dist/core/http/chat-api.d.ts.map +1 -0
- package/dist/core/http/chat-api.js +88 -0
- package/dist/core/http/chat-api.js.map +1 -0
- package/dist/core/http/conversation-management-api.d.ts +65 -0
- package/dist/core/http/conversation-management-api.d.ts.map +1 -0
- package/dist/core/http/conversation-management-api.js +59 -0
- package/dist/core/http/conversation-management-api.js.map +1 -0
- package/dist/core/http/directory-api.d.ts +32 -0
- package/dist/core/http/directory-api.d.ts.map +1 -0
- package/dist/core/http/directory-api.js +36 -0
- package/dist/core/http/directory-api.js.map +1 -0
- package/dist/core/http/directory-profile-api.d.ts +32 -0
- package/dist/core/http/directory-profile-api.d.ts.map +1 -0
- package/dist/core/http/directory-profile-api.js +39 -0
- package/dist/core/http/directory-profile-api.js.map +1 -0
- package/dist/core/http/http-client.d.ts +41 -0
- package/dist/core/http/http-client.d.ts.map +1 -0
- package/dist/core/http/http-client.js +127 -0
- package/dist/core/http/http-client.js.map +1 -0
- package/dist/core/http/message-api.d.ts +55 -0
- package/dist/core/http/message-api.d.ts.map +1 -0
- package/dist/core/http/message-api.js +64 -0
- package/dist/core/http/message-api.js.map +1 -0
- package/dist/core/http/rate-limit.d.ts +22 -0
- package/dist/core/http/rate-limit.d.ts.map +1 -0
- package/dist/core/http/rate-limit.js +66 -0
- package/dist/core/http/rate-limit.js.map +1 -0
- package/dist/core/http/token-lifecycle.d.ts +18 -0
- package/dist/core/http/token-lifecycle.d.ts.map +1 -0
- package/dist/core/http/token-lifecycle.js +73 -0
- package/dist/core/http/token-lifecycle.js.map +1 -0
- package/dist/core/locking/profile-lock.d.ts +32 -0
- package/dist/core/locking/profile-lock.d.ts.map +1 -0
- package/dist/core/locking/profile-lock.js +104 -0
- package/dist/core/locking/profile-lock.js.map +1 -0
- package/dist/core/profiles/profile-service.d.ts +35 -0
- package/dist/core/profiles/profile-service.d.ts.map +1 -0
- package/dist/core/profiles/profile-service.js +119 -0
- package/dist/core/profiles/profile-service.js.map +1 -0
- package/dist/core/profiles/profile-types.d.ts +28 -0
- package/dist/core/profiles/profile-types.d.ts.map +1 -0
- package/dist/core/profiles/profile-types.js +13 -0
- package/dist/core/profiles/profile-types.js.map +1 -0
- package/dist/core/secrets/secrets-service.d.ts +25 -0
- package/dist/core/secrets/secrets-service.d.ts.map +1 -0
- package/dist/core/secrets/secrets-service.js +67 -0
- package/dist/core/secrets/secrets-service.js.map +1 -0
- package/dist/core/secrets/secrets-types.d.ts +29 -0
- package/dist/core/secrets/secrets-types.d.ts.map +1 -0
- package/dist/core/secrets/secrets-types.js +33 -0
- package/dist/core/secrets/secrets-types.js.map +1 -0
- package/dist/core/sqlite/chat-schema.d.ts +14 -0
- package/dist/core/sqlite/chat-schema.d.ts.map +1 -0
- package/dist/core/sqlite/chat-schema.js +172 -0
- package/dist/core/sqlite/chat-schema.js.map +1 -0
- package/dist/core/sqlite/core-schema.d.ts +14 -0
- package/dist/core/sqlite/core-schema.d.ts.map +1 -0
- package/dist/core/sqlite/core-schema.js +54 -0
- package/dist/core/sqlite/core-schema.js.map +1 -0
- package/dist/core/sqlite/database.d.ts +40 -0
- package/dist/core/sqlite/database.d.ts.map +1 -0
- package/dist/core/sqlite/database.js +68 -0
- package/dist/core/sqlite/database.js.map +1 -0
- package/dist/core/sqlite/migrations.d.ts +22 -0
- package/dist/core/sqlite/migrations.d.ts.map +1 -0
- package/dist/core/sqlite/migrations.js +64 -0
- package/dist/core/sqlite/migrations.js.map +1 -0
- package/dist/modules/chat/inbox/conversation-service.d.ts +35 -0
- package/dist/modules/chat/inbox/conversation-service.d.ts.map +1 -0
- package/dist/modules/chat/inbox/conversation-service.js +54 -0
- package/dist/modules/chat/inbox/conversation-service.js.map +1 -0
- package/dist/modules/chat/inbox/history-service.d.ts +25 -0
- package/dist/modules/chat/inbox/history-service.d.ts.map +1 -0
- package/dist/modules/chat/inbox/history-service.js +57 -0
- package/dist/modules/chat/inbox/history-service.js.map +1 -0
- package/dist/modules/chat/inbox/index.d.ts +9 -0
- package/dist/modules/chat/inbox/index.d.ts.map +1 -0
- package/dist/modules/chat/inbox/index.js +9 -0
- package/dist/modules/chat/inbox/index.js.map +1 -0
- package/dist/modules/chat/inbox/read-service.d.ts +36 -0
- package/dist/modules/chat/inbox/read-service.d.ts.map +1 -0
- package/dist/modules/chat/inbox/read-service.js +91 -0
- package/dist/modules/chat/inbox/read-service.js.map +1 -0
- package/dist/modules/chat/inbox/search-service.d.ts +20 -0
- package/dist/modules/chat/inbox/search-service.d.ts.map +1 -0
- package/dist/modules/chat/inbox/search-service.js +23 -0
- package/dist/modules/chat/inbox/search-service.js.map +1 -0
- package/dist/modules/chat/inbox/unread-service.d.ts +38 -0
- package/dist/modules/chat/inbox/unread-service.d.ts.map +1 -0
- package/dist/modules/chat/inbox/unread-service.js +65 -0
- package/dist/modules/chat/inbox/unread-service.js.map +1 -0
- package/dist/modules/chat/render/message-render.d.ts +35 -0
- package/dist/modules/chat/render/message-render.d.ts.map +1 -0
- package/dist/modules/chat/render/message-render.js +129 -0
- package/dist/modules/chat/render/message-render.js.map +1 -0
- package/dist/modules/chat/send/conversation-service.d.ts +53 -0
- package/dist/modules/chat/send/conversation-service.d.ts.map +1 -0
- package/dist/modules/chat/send/conversation-service.js +110 -0
- package/dist/modules/chat/send/conversation-service.js.map +1 -0
- package/dist/modules/chat/send/directory-cache-service.d.ts +37 -0
- package/dist/modules/chat/send/directory-cache-service.d.ts.map +1 -0
- package/dist/modules/chat/send/directory-cache-service.js +49 -0
- package/dist/modules/chat/send/directory-cache-service.js.map +1 -0
- package/dist/modules/chat/send/send-service.d.ts +36 -0
- package/dist/modules/chat/send/send-service.d.ts.map +1 -0
- package/dist/modules/chat/send/send-service.js +113 -0
- package/dist/modules/chat/send/send-service.js.map +1 -0
- package/dist/modules/chat/store/conversation-repo.d.ts +53 -0
- package/dist/modules/chat/store/conversation-repo.d.ts.map +1 -0
- package/dist/modules/chat/store/conversation-repo.js +75 -0
- package/dist/modules/chat/store/conversation-repo.js.map +1 -0
- package/dist/modules/chat/store/directory-cache-repo.d.ts +41 -0
- package/dist/modules/chat/store/directory-cache-repo.d.ts.map +1 -0
- package/dist/modules/chat/store/directory-cache-repo.js +64 -0
- package/dist/modules/chat/store/directory-cache-repo.js.map +1 -0
- package/dist/modules/chat/store/job-repo.d.ts +72 -0
- package/dist/modules/chat/store/job-repo.d.ts.map +1 -0
- package/dist/modules/chat/store/job-repo.js +140 -0
- package/dist/modules/chat/store/job-repo.js.map +1 -0
- package/dist/modules/chat/store/message-repo.d.ts +98 -0
- package/dist/modules/chat/store/message-repo.d.ts.map +1 -0
- package/dist/modules/chat/store/message-repo.js +231 -0
- package/dist/modules/chat/store/message-repo.js.map +1 -0
- package/dist/modules/chat/store/outbox-repo.d.ts +73 -0
- package/dist/modules/chat/store/outbox-repo.d.ts.map +1 -0
- package/dist/modules/chat/store/outbox-repo.js +112 -0
- package/dist/modules/chat/store/outbox-repo.js.map +1 -0
- package/dist/modules/chat/store/read-state-repo.d.ts +83 -0
- package/dist/modules/chat/store/read-state-repo.d.ts.map +1 -0
- package/dist/modules/chat/store/read-state-repo.js +210 -0
- package/dist/modules/chat/store/read-state-repo.js.map +1 -0
- package/dist/modules/chat/store/sync-state-repo.d.ts +45 -0
- package/dist/modules/chat/store/sync-state-repo.d.ts.map +1 -0
- package/dist/modules/chat/store/sync-state-repo.js +67 -0
- package/dist/modules/chat/store/sync-state-repo.js.map +1 -0
- package/dist/modules/chat/sync/backfill.d.ts +13 -0
- package/dist/modules/chat/sync/backfill.d.ts.map +1 -0
- package/dist/modules/chat/sync/backfill.js +37 -0
- package/dist/modules/chat/sync/backfill.js.map +1 -0
- package/dist/modules/chat/sync/cron-manager.d.ts +50 -0
- package/dist/modules/chat/sync/cron-manager.d.ts.map +1 -0
- package/dist/modules/chat/sync/cron-manager.js +164 -0
- package/dist/modules/chat/sync/cron-manager.js.map +1 -0
- package/dist/modules/chat/sync/index.d.ts +8 -0
- package/dist/modules/chat/sync/index.d.ts.map +1 -0
- package/dist/modules/chat/sync/index.js +7 -0
- package/dist/modules/chat/sync/index.js.map +1 -0
- package/dist/modules/chat/sync/job-logger.d.ts +44 -0
- package/dist/modules/chat/sync/job-logger.d.ts.map +1 -0
- package/dist/modules/chat/sync/job-logger.js +139 -0
- package/dist/modules/chat/sync/job-logger.js.map +1 -0
- package/dist/modules/chat/sync/sync-service.d.ts +14 -0
- package/dist/modules/chat/sync/sync-service.d.ts.map +1 -0
- package/dist/modules/chat/sync/sync-service.js +174 -0
- package/dist/modules/chat/sync/sync-service.js.map +1 -0
- package/dist/modules/chat/sync/sync-status.d.ts +14 -0
- package/dist/modules/chat/sync/sync-status.d.ts.map +1 -0
- package/dist/modules/chat/sync/sync-status.js +77 -0
- package/dist/modules/chat/sync/sync-status.js.map +1 -0
- package/dist/modules/chat/sync/sync-types.d.ts +80 -0
- package/dist/modules/chat/sync/sync-types.d.ts.map +1 -0
- package/dist/modules/chat/sync/sync-types.js +5 -0
- package/dist/modules/chat/sync/sync-types.js.map +1 -0
- package/dist/modules/chat/sync/watch-mode.d.ts +45 -0
- package/dist/modules/chat/sync/watch-mode.d.ts.map +1 -0
- package/dist/modules/chat/sync/watch-mode.js +161 -0
- package/dist/modules/chat/sync/watch-mode.js.map +1 -0
- package/package.json +67 -0
- package/tool-schema.json +1039 -0
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Chat inbox module - public API
|
|
3
|
+
*/
|
|
4
|
+
export { getUnreadSummaryData, getUnreadPreview } from './unread-service.js';
|
|
5
|
+
export { peekMessages, readMessages, markAsRead } from './read-service.js';
|
|
6
|
+
export { getHistory, getHistoryWithContext } from './history-service.js';
|
|
7
|
+
export { searchLocalMessages } from './search-service.js';
|
|
8
|
+
export { listConversationsWithUnread, getConversationDetail } from './conversation-service.js';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/chat/inbox/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,2BAA2B,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Chat inbox module - public API
|
|
3
|
+
*/
|
|
4
|
+
export { getUnreadSummaryData, getUnreadPreview } from './unread-service.js';
|
|
5
|
+
export { peekMessages, readMessages, markAsRead } from './read-service.js';
|
|
6
|
+
export { getHistory, getHistoryWithContext } from './history-service.js';
|
|
7
|
+
export { searchLocalMessages } from './search-service.js';
|
|
8
|
+
export { listConversationsWithUnread, getConversationDetail } from './conversation-service.js';
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/chat/inbox/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,2BAA2B,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Read service - orchestrate read operations with safe mark-as-read
|
|
3
|
+
*/
|
|
4
|
+
import Database from 'better-sqlite3';
|
|
5
|
+
export interface ReadResult {
|
|
6
|
+
messages: Array<any>;
|
|
7
|
+
markedRead: number;
|
|
8
|
+
}
|
|
9
|
+
export interface MarkReadTarget {
|
|
10
|
+
type: 'global' | 'conversation' | 'messages';
|
|
11
|
+
id?: string;
|
|
12
|
+
messageIds?: string[];
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Peek at unread messages WITHOUT marking as read
|
|
16
|
+
*/
|
|
17
|
+
export declare function peekMessages(db: Database.Database, options?: {
|
|
18
|
+
conversationId?: string;
|
|
19
|
+
limit?: number;
|
|
20
|
+
mentionsOnly?: boolean;
|
|
21
|
+
}): ReadResult;
|
|
22
|
+
/**
|
|
23
|
+
* Read messages AND mark as read
|
|
24
|
+
*/
|
|
25
|
+
export declare function readMessages(db: Database.Database, options?: {
|
|
26
|
+
conversationId?: string;
|
|
27
|
+
limit?: number;
|
|
28
|
+
mentionsOnly?: boolean;
|
|
29
|
+
}): ReadResult;
|
|
30
|
+
/**
|
|
31
|
+
* Mark messages as read by target
|
|
32
|
+
*/
|
|
33
|
+
export declare function markAsRead(db: Database.Database, target: MarkReadTarget, options?: {
|
|
34
|
+
mentionsOnly?: boolean;
|
|
35
|
+
}): number;
|
|
36
|
+
//# sourceMappingURL=read-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read-service.d.ts","sourceRoot":"","sources":["../../../../src/modules/chat/inbox/read-service.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAItC,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,QAAQ,GAAG,cAAc,GAAG,UAAU,CAAC;IAC7C,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,OAAO,GAAE;IACP,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,OAAO,CAAC;CACnB,GACL,UAAU,CAmBZ;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,OAAO,GAAE;IACP,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,OAAO,CAAC;CACnB,GACL,UAAU,CAiCZ;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,MAAM,EAAE,cAAc,EACtB,OAAO,GAAE;IAAE,YAAY,CAAC,EAAE,OAAO,CAAA;CAAO,GACvC,MAAM,CA+BR"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Read service - orchestrate read operations with safe mark-as-read
|
|
3
|
+
*/
|
|
4
|
+
import { getUnreadMessages } from '../store/message-repo.js';
|
|
5
|
+
import { markConversationRead, markMessagesRead, getUnreadMentions } from '../store/read-state-repo.js';
|
|
6
|
+
/**
|
|
7
|
+
* Peek at unread messages WITHOUT marking as read
|
|
8
|
+
*/
|
|
9
|
+
export function peekMessages(db, options = {}) {
|
|
10
|
+
let messages;
|
|
11
|
+
if (options.mentionsOnly) {
|
|
12
|
+
messages = getUnreadMentions(db, {
|
|
13
|
+
conversationId: options.conversationId,
|
|
14
|
+
limit: options.limit,
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
messages = getUnreadMessages(db, {
|
|
19
|
+
conversationId: options.conversationId,
|
|
20
|
+
limit: options.limit,
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
return {
|
|
24
|
+
messages,
|
|
25
|
+
markedRead: 0, // Peek doesn't mark as read
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Read messages AND mark as read
|
|
30
|
+
*/
|
|
31
|
+
export function readMessages(db, options = {}) {
|
|
32
|
+
// First, fetch unread messages
|
|
33
|
+
let messages;
|
|
34
|
+
if (options.mentionsOnly) {
|
|
35
|
+
messages = getUnreadMentions(db, {
|
|
36
|
+
conversationId: options.conversationId,
|
|
37
|
+
limit: options.limit,
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
messages = getUnreadMessages(db, {
|
|
42
|
+
conversationId: options.conversationId,
|
|
43
|
+
limit: options.limit,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
if (messages.length === 0) {
|
|
47
|
+
return { messages: [], markedRead: 0 };
|
|
48
|
+
}
|
|
49
|
+
// Mark them as read in a transaction
|
|
50
|
+
const messageIds = messages.map((m) => m.message_id);
|
|
51
|
+
const transaction = db.transaction(() => {
|
|
52
|
+
return markMessagesRead(db, messageIds);
|
|
53
|
+
});
|
|
54
|
+
const markedRead = transaction();
|
|
55
|
+
return {
|
|
56
|
+
messages,
|
|
57
|
+
markedRead,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Mark messages as read by target
|
|
62
|
+
*/
|
|
63
|
+
export function markAsRead(db, target, options = {}) {
|
|
64
|
+
switch (target.type) {
|
|
65
|
+
case 'global':
|
|
66
|
+
// Mark all unread as read across all conversations
|
|
67
|
+
const allConversations = db.prepare(`
|
|
68
|
+
SELECT DISTINCT conversation_id FROM messages m
|
|
69
|
+
JOIN message_local_state ml ON m.message_id = ml.message_id
|
|
70
|
+
WHERE ml.is_read = 0 AND m.sender_id != 'me'
|
|
71
|
+
`).all();
|
|
72
|
+
let totalGlobal = 0;
|
|
73
|
+
for (const conv of allConversations) {
|
|
74
|
+
totalGlobal += markConversationRead(db, conv.conversation_id);
|
|
75
|
+
}
|
|
76
|
+
return totalGlobal;
|
|
77
|
+
case 'conversation':
|
|
78
|
+
if (!target.id) {
|
|
79
|
+
throw new Error('Conversation ID required for conversation-level read');
|
|
80
|
+
}
|
|
81
|
+
return markConversationRead(db, target.id);
|
|
82
|
+
case 'messages':
|
|
83
|
+
if (!target.messageIds || target.messageIds.length === 0) {
|
|
84
|
+
throw new Error('Message IDs required for message-level read');
|
|
85
|
+
}
|
|
86
|
+
return markMessagesRead(db, target.messageIds);
|
|
87
|
+
default:
|
|
88
|
+
throw new Error(`Invalid target type: ${target.type}`);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=read-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read-service.js","sourceRoot":"","sources":["../../../../src/modules/chat/inbox/read-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Search service - local cache search across messages
|
|
3
|
+
*/
|
|
4
|
+
import Database from 'better-sqlite3';
|
|
5
|
+
export interface SearchResult {
|
|
6
|
+
query: string;
|
|
7
|
+
results: Array<any>;
|
|
8
|
+
totalCount: number;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Search local messages
|
|
12
|
+
*/
|
|
13
|
+
export declare function searchLocalMessages(db: Database.Database, query: string, options?: {
|
|
14
|
+
conversationId?: string;
|
|
15
|
+
unreadOnly?: boolean;
|
|
16
|
+
limit?: number;
|
|
17
|
+
dateFrom?: string;
|
|
18
|
+
dateTo?: string;
|
|
19
|
+
}): SearchResult;
|
|
20
|
+
//# sourceMappingURL=search-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-service.d.ts","sourceRoot":"","sources":["../../../../src/modules/chat/inbox/search-service.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAGtC,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;IACP,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACZ,GACL,YAAY,CAgBd"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Search service - local cache search across messages
|
|
3
|
+
*/
|
|
4
|
+
import { searchMessages } from '../store/message-repo.js';
|
|
5
|
+
/**
|
|
6
|
+
* Search local messages
|
|
7
|
+
*/
|
|
8
|
+
export function searchLocalMessages(db, query, options = {}) {
|
|
9
|
+
if (!query || query.trim().length === 0) {
|
|
10
|
+
return {
|
|
11
|
+
query,
|
|
12
|
+
results: [],
|
|
13
|
+
totalCount: 0,
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
const results = searchMessages(db, query.trim(), options);
|
|
17
|
+
return {
|
|
18
|
+
query,
|
|
19
|
+
results,
|
|
20
|
+
totalCount: results.length,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=search-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-service.js","sourceRoot":"","sources":["../../../../src/modules/chat/inbox/search-service.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAQ1D;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,EAAqB,EACrB,KAAa,EACb,UAMI,EAAE;IAEN,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxC,OAAO;YACL,KAAK;YACL,OAAO,EAAE,EAAE;YACX,UAAU,EAAE,CAAC;SACd,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;IAE1D,OAAO;QACL,KAAK;QACL,OAAO;QACP,UAAU,EAAE,OAAO,CAAC,MAAM;KAC3B,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unread service - orchestrate unread summary operations
|
|
3
|
+
*/
|
|
4
|
+
import Database from 'better-sqlite3';
|
|
5
|
+
export interface UnreadSummaryResult {
|
|
6
|
+
totalUnread: number;
|
|
7
|
+
totalMentions: number;
|
|
8
|
+
byConversation: Array<{
|
|
9
|
+
conversationId: string;
|
|
10
|
+
conversationType: string;
|
|
11
|
+
conversationName: string | null;
|
|
12
|
+
unreadCount: number;
|
|
13
|
+
hasMention: boolean;
|
|
14
|
+
lastUnreadAt: string;
|
|
15
|
+
}>;
|
|
16
|
+
}
|
|
17
|
+
export interface UnreadPreviewResult {
|
|
18
|
+
messages: Array<any>;
|
|
19
|
+
hasHistory: boolean;
|
|
20
|
+
totalUnread: number;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Get comprehensive unread summary
|
|
24
|
+
*/
|
|
25
|
+
export declare function getUnreadSummaryData(db: Database.Database, options?: {
|
|
26
|
+
mentionsOnly?: boolean;
|
|
27
|
+
conversationId?: string;
|
|
28
|
+
}): UnreadSummaryResult;
|
|
29
|
+
/**
|
|
30
|
+
* Get unread messages preview with history context
|
|
31
|
+
*/
|
|
32
|
+
export declare function getUnreadPreview(db: Database.Database, options?: {
|
|
33
|
+
conversationId?: string;
|
|
34
|
+
limit?: number;
|
|
35
|
+
mentionsOnly?: boolean;
|
|
36
|
+
historyBefore?: number;
|
|
37
|
+
}): UnreadPreviewResult;
|
|
38
|
+
//# sourceMappingURL=unread-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unread-service.d.ts","sourceRoot":"","sources":["../../../../src/modules/chat/inbox/unread-service.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAStC,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,KAAK,CAAC;QACpB,cAAc,EAAE,MAAM,CAAC;QACvB,gBAAgB,EAAE,MAAM,CAAC;QACzB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;QAChC,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,OAAO,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,OAAO,GAAE;IAAE,YAAY,CAAC,EAAE,OAAO,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAO,GAChE,mBAAmB,CAoBrB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,OAAO,GAAE;IACP,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;CACnB,GACL,mBAAmB,CAsCrB"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unread service - orchestrate unread summary operations
|
|
3
|
+
*/
|
|
4
|
+
import { getUnreadSummary, getUnreadMentions, getUnreadCountByMention, getUnreadWithHistory, } from '../store/read-state-repo.js';
|
|
5
|
+
import { getUnreadMessages } from '../store/message-repo.js';
|
|
6
|
+
/**
|
|
7
|
+
* Get comprehensive unread summary
|
|
8
|
+
*/
|
|
9
|
+
export function getUnreadSummaryData(db, options = {}) {
|
|
10
|
+
const summary = getUnreadSummary(db);
|
|
11
|
+
const totalMentions = getUnreadCountByMention(db, options.conversationId);
|
|
12
|
+
const filtered = options.conversationId
|
|
13
|
+
? summary.filter(s => s.conversation_id === options.conversationId)
|
|
14
|
+
: summary;
|
|
15
|
+
return {
|
|
16
|
+
totalUnread: filtered.reduce((sum, s) => sum + s.unread_count, 0),
|
|
17
|
+
totalMentions,
|
|
18
|
+
byConversation: filtered.map(s => ({
|
|
19
|
+
conversationId: s.conversation_id,
|
|
20
|
+
conversationType: s.conversation_type,
|
|
21
|
+
conversationName: s.conversation_name,
|
|
22
|
+
unreadCount: s.unread_count,
|
|
23
|
+
hasMention: s.has_mention,
|
|
24
|
+
lastUnreadAt: s.last_unread_at,
|
|
25
|
+
})),
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Get unread messages preview with history context
|
|
30
|
+
*/
|
|
31
|
+
export function getUnreadPreview(db, options = {}) {
|
|
32
|
+
if (options.mentionsOnly) {
|
|
33
|
+
const mentions = getUnreadMentions(db, {
|
|
34
|
+
conversationId: options.conversationId,
|
|
35
|
+
limit: options.limit,
|
|
36
|
+
});
|
|
37
|
+
return {
|
|
38
|
+
messages: mentions,
|
|
39
|
+
hasHistory: false,
|
|
40
|
+
totalUnread: mentions.length,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
if (options.historyBefore) {
|
|
44
|
+
const withHistory = getUnreadWithHistory(db, {
|
|
45
|
+
conversationId: options.conversationId,
|
|
46
|
+
historyBefore: options.historyBefore,
|
|
47
|
+
limit: options.limit,
|
|
48
|
+
});
|
|
49
|
+
return {
|
|
50
|
+
messages: withHistory,
|
|
51
|
+
hasHistory: true,
|
|
52
|
+
totalUnread: withHistory.filter(m => m.is_read === 0).length,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
const messages = getUnreadMessages(db, {
|
|
56
|
+
conversationId: options.conversationId,
|
|
57
|
+
limit: options.limit,
|
|
58
|
+
});
|
|
59
|
+
return {
|
|
60
|
+
messages,
|
|
61
|
+
hasHistory: false,
|
|
62
|
+
totalUnread: messages.length,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=unread-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unread-service.js","sourceRoot":"","sources":["../../../../src/modules/chat/inbox/unread-service.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAqB7D;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAClC,EAAqB,EACrB,UAA+D,EAAE;IAEjE,MAAM,OAAO,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC;IACrC,MAAM,aAAa,GAAG,uBAAuB,CAAC,EAAE,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IAE1E,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc;QACrC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,KAAK,OAAO,CAAC,cAAc,CAAC;QACnE,CAAC,CAAC,OAAO,CAAC;IAEZ,OAAO;QACL,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC;QACjE,aAAa;QACb,cAAc,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACjC,cAAc,EAAE,CAAC,CAAC,eAAe;YACjC,gBAAgB,EAAE,CAAC,CAAC,iBAAiB;YACrC,gBAAgB,EAAE,CAAC,CAAC,iBAAiB;YACrC,WAAW,EAAE,CAAC,CAAC,YAAY;YAC3B,UAAU,EAAE,CAAC,CAAC,WAAW;YACzB,YAAY,EAAE,CAAC,CAAC,cAAc;SAC/B,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,EAAqB,EACrB,UAKI,EAAE;IAEN,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,iBAAiB,CAAC,EAAE,EAAE;YACrC,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC,CAAC;QAEH,OAAO;YACL,QAAQ,EAAE,QAAQ;YAClB,UAAU,EAAE,KAAK;YACjB,WAAW,EAAE,QAAQ,CAAC,MAAM;SAC7B,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;QAC1B,MAAM,WAAW,GAAG,oBAAoB,CAAC,EAAE,EAAE;YAC3C,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC,CAAC;QAEH,OAAO;YACL,QAAQ,EAAE,WAAW;YACrB,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM;SAC7D,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,iBAAiB,CAAC,EAAE,EAAE;QACrC,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC,CAAC;IAEH,OAAO;QACL,QAAQ;QACR,UAAU,EAAE,KAAK;QACjB,WAAW,EAAE,QAAQ,CAAC,MAAM;KAC7B,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Message rendering service - format messages for display
|
|
3
|
+
*/
|
|
4
|
+
import type { MessageRecord, MessageLocalState } from '../store/message-repo.js';
|
|
5
|
+
export interface RenderOptions {
|
|
6
|
+
showTimestamps?: boolean;
|
|
7
|
+
showReadStatus?: boolean;
|
|
8
|
+
showMentions?: boolean;
|
|
9
|
+
showStatus?: boolean;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Render a single message for plain-text display
|
|
13
|
+
*/
|
|
14
|
+
export declare function renderMessage(msg: MessageRecord & Partial<MessageLocalState> & {
|
|
15
|
+
conversation_name?: string | null;
|
|
16
|
+
}, options?: RenderOptions): string;
|
|
17
|
+
/**
|
|
18
|
+
* Render a list of messages
|
|
19
|
+
*/
|
|
20
|
+
export declare function renderMessageList(messages: Array<MessageRecord & Partial<MessageLocalState> & {
|
|
21
|
+
conversation_name?: string | null;
|
|
22
|
+
}>, options?: RenderOptions & {
|
|
23
|
+
groupByConversation?: boolean;
|
|
24
|
+
}): string;
|
|
25
|
+
/**
|
|
26
|
+
* Render a history block with optional unread marker
|
|
27
|
+
*/
|
|
28
|
+
export declare function renderHistoryBlock(messages: Array<MessageRecord & Partial<MessageLocalState>>, options?: {
|
|
29
|
+
unreadMarker?: string;
|
|
30
|
+
}): string;
|
|
31
|
+
/**
|
|
32
|
+
* Render message to JSON format
|
|
33
|
+
*/
|
|
34
|
+
export declare function renderMessageJSON(msg: MessageRecord & Partial<MessageLocalState>): object;
|
|
35
|
+
//# sourceMappingURL=message-render.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-render.d.ts","sourceRoot":"","sources":["../../../../src/modules/chat/render/message-render.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAEjF,MAAM,WAAW,aAAa;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AASD;;GAEG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC,GAAG;IAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EACvF,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAiCR;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,KAAK,CAAC,aAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC,GAAG;IAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,EACnG,OAAO,GAAE,aAAa,GAAG;IAAE,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAAO,GAC9D,MAAM,CAyBR;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,KAAK,CAAC,aAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,EAC3D,OAAO,GAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAA;CAAO,GACtC,MAAM,CA6BR;AAyBD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC,GAC9C,MAAM,CAcR"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Message rendering service - format messages for display
|
|
3
|
+
*/
|
|
4
|
+
const DEFAULT_OPTIONS = {
|
|
5
|
+
showTimestamps: true,
|
|
6
|
+
showReadStatus: true,
|
|
7
|
+
showMentions: true,
|
|
8
|
+
showStatus: true,
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Render a single message for plain-text display
|
|
12
|
+
*/
|
|
13
|
+
export function renderMessage(msg, options = {}) {
|
|
14
|
+
const opts = { ...DEFAULT_OPTIONS, ...options };
|
|
15
|
+
const lines = [];
|
|
16
|
+
// Status badge
|
|
17
|
+
if (opts.showStatus && msg.status !== 'sent') {
|
|
18
|
+
const badge = msg.status === 'edited' ? '[edited] ' :
|
|
19
|
+
msg.status === 'withdrawn' ? '[withdrawn] ' :
|
|
20
|
+
msg.status === 'deleted' ? '[deleted] ' : '';
|
|
21
|
+
lines.push(` ${badge}`);
|
|
22
|
+
}
|
|
23
|
+
// Timestamp + sender
|
|
24
|
+
const timestamp = opts.showTimestamps ? formatTime(msg.remote_created_at) : '';
|
|
25
|
+
const mention = opts.showMentions && msg.is_mentioned ? ' @' : '';
|
|
26
|
+
const sender = msg.sender_id;
|
|
27
|
+
lines.push(` ${timestamp}${mention}${sender}:`);
|
|
28
|
+
// Content
|
|
29
|
+
if (msg.content) {
|
|
30
|
+
lines.push(` ${msg.content}`);
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
lines.push(` <no content>`);
|
|
34
|
+
}
|
|
35
|
+
// Read status
|
|
36
|
+
if (opts.showReadStatus && msg.is_read !== undefined) {
|
|
37
|
+
const status = msg.is_read ? '✓' : '●';
|
|
38
|
+
lines.push(` [${status}]`);
|
|
39
|
+
}
|
|
40
|
+
return lines.join('\n');
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Render a list of messages
|
|
44
|
+
*/
|
|
45
|
+
export function renderMessageList(messages, options = {}) {
|
|
46
|
+
if (messages.length === 0) {
|
|
47
|
+
return 'No messages found.';
|
|
48
|
+
}
|
|
49
|
+
const lines = [];
|
|
50
|
+
let lastConvId = null;
|
|
51
|
+
for (const msg of messages) {
|
|
52
|
+
// Group separator
|
|
53
|
+
if (options.groupByConversation && msg.conversation_id !== lastConvId) {
|
|
54
|
+
if (lines.length > 0) {
|
|
55
|
+
lines.push('');
|
|
56
|
+
}
|
|
57
|
+
const convName = msg.conversation_name || msg.conversation_id.substring(0, 12);
|
|
58
|
+
lines.push(`Conversation: ${convName}`);
|
|
59
|
+
lines.push('─'.repeat(40));
|
|
60
|
+
lastConvId = msg.conversation_id;
|
|
61
|
+
}
|
|
62
|
+
lines.push(renderMessage(msg, options));
|
|
63
|
+
lines.push('');
|
|
64
|
+
}
|
|
65
|
+
return lines.join('\n');
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Render a history block with optional unread marker
|
|
69
|
+
*/
|
|
70
|
+
export function renderHistoryBlock(messages, options = {}) {
|
|
71
|
+
if (messages.length === 0) {
|
|
72
|
+
return 'No messages in history.';
|
|
73
|
+
}
|
|
74
|
+
const lines = [];
|
|
75
|
+
const unreadMarker = options.unreadMarker || '─── Unread messages below ───';
|
|
76
|
+
let markerShown = false;
|
|
77
|
+
// Sort by timestamp
|
|
78
|
+
const sorted = [...messages].sort((a, b) => new Date(a.remote_created_at).getTime() - new Date(b.remote_created_at).getTime());
|
|
79
|
+
for (const msg of sorted) {
|
|
80
|
+
// Insert marker before first unread message
|
|
81
|
+
if (!markerShown && msg.is_read === 0) {
|
|
82
|
+
lines.push('');
|
|
83
|
+
lines.push(unreadMarker);
|
|
84
|
+
lines.push('');
|
|
85
|
+
markerShown = true;
|
|
86
|
+
}
|
|
87
|
+
lines.push(renderMessage(msg, { showReadStatus: false }));
|
|
88
|
+
lines.push('');
|
|
89
|
+
}
|
|
90
|
+
return lines.join('\n');
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Format a timestamp for display
|
|
94
|
+
*/
|
|
95
|
+
function formatTime(isoString) {
|
|
96
|
+
const date = new Date(isoString);
|
|
97
|
+
const now = new Date();
|
|
98
|
+
const diff = now.getTime() - date.getTime();
|
|
99
|
+
// Today: show time only
|
|
100
|
+
if (diff < 24 * 60 * 60 * 1000) {
|
|
101
|
+
return date.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' }) + ' ';
|
|
102
|
+
}
|
|
103
|
+
// This week: show day + time
|
|
104
|
+
if (diff < 7 * 24 * 60 * 60 * 1000) {
|
|
105
|
+
return date.toLocaleDateString([], { weekday: 'short' }) + ' ' +
|
|
106
|
+
date.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' }) + ' ';
|
|
107
|
+
}
|
|
108
|
+
// Older: show date
|
|
109
|
+
return date.toLocaleDateString() + ' ';
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Render message to JSON format
|
|
113
|
+
*/
|
|
114
|
+
export function renderMessageJSON(msg) {
|
|
115
|
+
return {
|
|
116
|
+
messageId: msg.message_id,
|
|
117
|
+
conversationId: msg.conversation_id,
|
|
118
|
+
senderId: msg.sender_id,
|
|
119
|
+
content: msg.content,
|
|
120
|
+
type: msg.type,
|
|
121
|
+
status: msg.status,
|
|
122
|
+
inReplyTo: msg.in_reply_to,
|
|
123
|
+
mentions: msg.mentions ? JSON.parse(msg.mentions) : null,
|
|
124
|
+
createdAt: msg.remote_created_at,
|
|
125
|
+
isRead: msg.is_read === 1,
|
|
126
|
+
isMentioned: msg.is_mentioned === 1,
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=message-render.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-render.js","sourceRoot":"","sources":["../../../../src/modules/chat/render/message-render.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Conversation service - orchestrate conversation management with cache
|
|
3
|
+
*/
|
|
4
|
+
import Database from 'better-sqlite3';
|
|
5
|
+
export interface CreateResult {
|
|
6
|
+
conversationId: string;
|
|
7
|
+
cached: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface MemberResult {
|
|
10
|
+
agentId: string;
|
|
11
|
+
role: string;
|
|
12
|
+
cached: boolean;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Create a conversation and cache locally
|
|
16
|
+
*/
|
|
17
|
+
export declare function createConversation(db: Database.Database, accessToken: string, options: {
|
|
18
|
+
type: 'direct' | 'group';
|
|
19
|
+
name?: string;
|
|
20
|
+
members?: string[];
|
|
21
|
+
}): Promise<CreateResult>;
|
|
22
|
+
/**
|
|
23
|
+
* Invite a member and update cache
|
|
24
|
+
*/
|
|
25
|
+
export declare function inviteMember(db: Database.Database, accessToken: string, conversationId: string, agentId: string, role?: 'owner' | 'admin' | 'member'): Promise<MemberResult>;
|
|
26
|
+
/**
|
|
27
|
+
* Remove a member and update cache
|
|
28
|
+
*/
|
|
29
|
+
export declare function removeMember(db: Database.Database, accessToken: string, conversationId: string, agentId: string): Promise<{
|
|
30
|
+
agentId: string;
|
|
31
|
+
cached: boolean;
|
|
32
|
+
}>;
|
|
33
|
+
/**
|
|
34
|
+
* Update member role and update cache
|
|
35
|
+
*/
|
|
36
|
+
export declare function updateRole(db: Database.Database, accessToken: string, conversationId: string, agentId: string, role: 'owner' | 'admin' | 'member'): Promise<MemberResult>;
|
|
37
|
+
/**
|
|
38
|
+
* Leave a conversation and update cache
|
|
39
|
+
*/
|
|
40
|
+
export declare function leaveConversation(db: Database.Database, accessToken: string, conversationId: string): Promise<{
|
|
41
|
+
conversationId: string;
|
|
42
|
+
cached: boolean;
|
|
43
|
+
}>;
|
|
44
|
+
/**
|
|
45
|
+
* Update conversation and cache
|
|
46
|
+
*/
|
|
47
|
+
export declare function updateConversation(db: Database.Database, accessToken: string, conversationId: string, updates: {
|
|
48
|
+
name?: string;
|
|
49
|
+
}): Promise<{
|
|
50
|
+
conversationId: string;
|
|
51
|
+
cached: boolean;
|
|
52
|
+
}>;
|
|
53
|
+
//# sourceMappingURL=conversation-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversation-service.d.ts","sourceRoot":"","sources":["../../../../src/modules/chat/send/conversation-service.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAWtC,MAAM,WAAW,YAAY;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE;IACP,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB,GACA,OAAO,CAAC,YAAY,CAAC,CA6BvB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,OAAO,GAAG,OAAO,GAAG,QAAmB,GAC5C,OAAO,CAAC,YAAY,CAAC,CAcvB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC,CAU/C;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,GACjC,OAAO,CAAC,YAAY,CAAC,CAcvB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC,CAYtD;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GACzB,OAAO,CAAC;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC,CActD"}
|