@hazeljs/messaging 0.2.0-alpha.1

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 (123) hide show
  1. package/LICENSE +192 -0
  2. package/README.md +190 -0
  3. package/dist/adapters/slack.adapter.d.ts +20 -0
  4. package/dist/adapters/slack.adapter.d.ts.map +1 -0
  5. package/dist/adapters/slack.adapter.js +28 -0
  6. package/dist/adapters/slack.adapter.js.map +1 -0
  7. package/dist/adapters/slack.adapter.test.d.ts +2 -0
  8. package/dist/adapters/slack.adapter.test.d.ts.map +1 -0
  9. package/dist/adapters/slack.adapter.test.js +56 -0
  10. package/dist/adapters/slack.adapter.test.js.map +1 -0
  11. package/dist/adapters/teams.adapter.d.ts +20 -0
  12. package/dist/adapters/teams.adapter.d.ts.map +1 -0
  13. package/dist/adapters/teams.adapter.js +28 -0
  14. package/dist/adapters/teams.adapter.js.map +1 -0
  15. package/dist/adapters/teams.adapter.test.d.ts +2 -0
  16. package/dist/adapters/teams.adapter.test.d.ts.map +1 -0
  17. package/dist/adapters/teams.adapter.test.js +56 -0
  18. package/dist/adapters/teams.adapter.test.js.map +1 -0
  19. package/dist/adapters/telegram.adapter.d.ts +24 -0
  20. package/dist/adapters/telegram.adapter.d.ts.map +1 -0
  21. package/dist/adapters/telegram.adapter.js +70 -0
  22. package/dist/adapters/telegram.adapter.js.map +1 -0
  23. package/dist/adapters/telegram.adapter.test.d.ts +2 -0
  24. package/dist/adapters/telegram.adapter.test.d.ts.map +1 -0
  25. package/dist/adapters/telegram.adapter.test.js +154 -0
  26. package/dist/adapters/telegram.adapter.test.js.map +1 -0
  27. package/dist/adapters/viber.adapter.d.ts +29 -0
  28. package/dist/adapters/viber.adapter.d.ts.map +1 -0
  29. package/dist/adapters/viber.adapter.js +98 -0
  30. package/dist/adapters/viber.adapter.js.map +1 -0
  31. package/dist/adapters/viber.adapter.test.d.ts +2 -0
  32. package/dist/adapters/viber.adapter.test.d.ts.map +1 -0
  33. package/dist/adapters/viber.adapter.test.js +89 -0
  34. package/dist/adapters/viber.adapter.test.js.map +1 -0
  35. package/dist/adapters/whatsapp.adapter.d.ts +26 -0
  36. package/dist/adapters/whatsapp.adapter.d.ts.map +1 -0
  37. package/dist/adapters/whatsapp.adapter.js +87 -0
  38. package/dist/adapters/whatsapp.adapter.js.map +1 -0
  39. package/dist/adapters/whatsapp.adapter.test.d.ts +2 -0
  40. package/dist/adapters/whatsapp.adapter.test.d.ts.map +1 -0
  41. package/dist/adapters/whatsapp.adapter.test.js +198 -0
  42. package/dist/adapters/whatsapp.adapter.test.js.map +1 -0
  43. package/dist/index.d.ts +28 -0
  44. package/dist/index.d.ts.map +1 -0
  45. package/dist/index.js +31 -0
  46. package/dist/index.js.map +1 -0
  47. package/dist/messaging-kafka.bootstrap.d.ts +14 -0
  48. package/dist/messaging-kafka.bootstrap.d.ts.map +1 -0
  49. package/dist/messaging-kafka.bootstrap.js +42 -0
  50. package/dist/messaging-kafka.bootstrap.js.map +1 -0
  51. package/dist/messaging-kafka.bootstrap.test.d.ts +2 -0
  52. package/dist/messaging-kafka.bootstrap.test.d.ts.map +1 -0
  53. package/dist/messaging-kafka.bootstrap.test.js +34 -0
  54. package/dist/messaging-kafka.bootstrap.test.js.map +1 -0
  55. package/dist/messaging-kafka.consumer.d.ts +10 -0
  56. package/dist/messaging-kafka.consumer.d.ts.map +1 -0
  57. package/dist/messaging-kafka.consumer.js +80 -0
  58. package/dist/messaging-kafka.consumer.js.map +1 -0
  59. package/dist/messaging-kafka.consumer.test.d.ts +2 -0
  60. package/dist/messaging-kafka.consumer.test.d.ts.map +1 -0
  61. package/dist/messaging-kafka.consumer.test.js +129 -0
  62. package/dist/messaging-kafka.consumer.test.js.map +1 -0
  63. package/dist/messaging-kafka.types.d.ts +10 -0
  64. package/dist/messaging-kafka.types.d.ts.map +1 -0
  65. package/dist/messaging-kafka.types.js +5 -0
  66. package/dist/messaging-kafka.types.js.map +1 -0
  67. package/dist/messaging-kafka.types.test.d.ts +2 -0
  68. package/dist/messaging-kafka.types.test.d.ts.map +1 -0
  69. package/dist/messaging-kafka.types.test.js +12 -0
  70. package/dist/messaging-kafka.types.test.js.map +1 -0
  71. package/dist/messaging.controller.d.ts +27 -0
  72. package/dist/messaging.controller.d.ts.map +1 -0
  73. package/dist/messaging.controller.js +151 -0
  74. package/dist/messaging.controller.js.map +1 -0
  75. package/dist/messaging.controller.test.d.ts +2 -0
  76. package/dist/messaging.controller.test.d.ts.map +1 -0
  77. package/dist/messaging.controller.test.js +221 -0
  78. package/dist/messaging.controller.test.js.map +1 -0
  79. package/dist/messaging.module.d.ts +75 -0
  80. package/dist/messaging.module.d.ts.map +1 -0
  81. package/dist/messaging.module.js +160 -0
  82. package/dist/messaging.module.js.map +1 -0
  83. package/dist/messaging.module.test.d.ts +2 -0
  84. package/dist/messaging.module.test.d.ts.map +1 -0
  85. package/dist/messaging.module.test.js +147 -0
  86. package/dist/messaging.module.test.js.map +1 -0
  87. package/dist/messaging.service.d.ts +42 -0
  88. package/dist/messaging.service.d.ts.map +1 -0
  89. package/dist/messaging.service.js +109 -0
  90. package/dist/messaging.service.js.map +1 -0
  91. package/dist/messaging.service.test.d.ts +2 -0
  92. package/dist/messaging.service.test.d.ts.map +1 -0
  93. package/dist/messaging.service.test.js +163 -0
  94. package/dist/messaging.service.test.js.map +1 -0
  95. package/dist/store/conversation-context.interface.d.ts +17 -0
  96. package/dist/store/conversation-context.interface.d.ts.map +1 -0
  97. package/dist/store/conversation-context.interface.js +7 -0
  98. package/dist/store/conversation-context.interface.js.map +1 -0
  99. package/dist/store/memory-conversation-context.d.ts +11 -0
  100. package/dist/store/memory-conversation-context.d.ts.map +1 -0
  101. package/dist/store/memory-conversation-context.js +22 -0
  102. package/dist/store/memory-conversation-context.js.map +1 -0
  103. package/dist/store/memory-conversation-context.test.d.ts +2 -0
  104. package/dist/store/memory-conversation-context.test.d.ts.map +1 -0
  105. package/dist/store/memory-conversation-context.test.js +69 -0
  106. package/dist/store/memory-conversation-context.test.js.map +1 -0
  107. package/dist/store/redis-conversation-context.d.ts +24 -0
  108. package/dist/store/redis-conversation-context.d.ts.map +1 -0
  109. package/dist/store/redis-conversation-context.js +37 -0
  110. package/dist/store/redis-conversation-context.js.map +1 -0
  111. package/dist/store/redis-conversation-context.test.d.ts +2 -0
  112. package/dist/store/redis-conversation-context.test.d.ts.map +1 -0
  113. package/dist/store/redis-conversation-context.test.js +85 -0
  114. package/dist/store/redis-conversation-context.test.js.map +1 -0
  115. package/dist/types/message.types.d.ts +55 -0
  116. package/dist/types/message.types.d.ts.map +1 -0
  117. package/dist/types/message.types.js +7 -0
  118. package/dist/types/message.types.js.map +1 -0
  119. package/dist/types/response-handler.types.d.ts +47 -0
  120. package/dist/types/response-handler.types.d.ts.map +1 -0
  121. package/dist/types/response-handler.types.js +3 -0
  122. package/dist/types/response-handler.types.js.map +1 -0
  123. package/package.json +88 -0
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Response handler types - for Agent, RAG, and external integrations
3
+ */
4
+ import type { IncomingMessage } from './message.types';
5
+ import type { ConversationTurn } from '../store/conversation-context.interface';
6
+ /** Minimal RAG search interface - compatible with @hazeljs/rag RAGService */
7
+ export interface IRAGSearch {
8
+ search(query: string, options?: {
9
+ topK?: number;
10
+ minScore?: number;
11
+ }): Promise<Array<{
12
+ id?: string;
13
+ content: string;
14
+ score?: number;
15
+ metadata?: Record<string, unknown>;
16
+ }>>;
17
+ }
18
+ /** Result from agent/external handler - can include sources for citations */
19
+ export interface AgentHandlerResult {
20
+ response: string;
21
+ sources?: Array<{
22
+ id?: string;
23
+ content: string;
24
+ score?: number;
25
+ metadata?: Record<string, unknown>;
26
+ }>;
27
+ }
28
+ /** Input for agent handler - CSR-style integration */
29
+ export interface AgentHandlerInput {
30
+ message: IncomingMessage;
31
+ sessionId: string;
32
+ conversationTurns: ConversationTurn[];
33
+ }
34
+ /**
35
+ * Agent handler - wire your CSRService, AgentRuntime, or custom logic.
36
+ * Return response string or { response, sources }.
37
+ *
38
+ * @example
39
+ * ```ts
40
+ * agentHandler: async ({ message, sessionId }) => {
41
+ * const result = await csrService.chat(message.text, sessionId, message.userId);
42
+ * return { response: result.response, sources: result.sources };
43
+ * }
44
+ * ```
45
+ */
46
+ export type AgentHandler = (input: AgentHandlerInput) => Promise<string | AgentHandlerResult>;
47
+ //# sourceMappingURL=response-handler.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response-handler.types.d.ts","sourceRoot":"","sources":["../../src/types/response-handler.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAEhF,6EAA6E;AAC7E,MAAM,WAAW,UAAU;IACzB,MAAM,CACJ,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAC7C,OAAO,CACR,KAAK,CAAC;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,CAC5F,CAAC;CACH;AAED,6EAA6E;AAC7E,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,KAAK,CAAC;QACd,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACpC,CAAC,CAAC;CACJ;AAED,sDAAsD;AACtD,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,eAAe,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;CACvC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,iBAAiB,KAAK,OAAO,CAAC,MAAM,GAAG,kBAAkB,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=response-handler.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response-handler.types.js","sourceRoot":"","sources":["../../src/types/response-handler.types.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,88 @@
1
+ {
2
+ "name": "@hazeljs/messaging",
3
+ "version": "0.2.0-alpha.1",
4
+ "description": "Multichannel messaging for HazelJS - WhatsApp, Telegram, Viber with LLM-powered bot responses",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "files": [
8
+ "dist"
9
+ ],
10
+ "scripts": {
11
+ "build": "tsc --skipLibCheck",
12
+ "clean": "rm -rf dist",
13
+ "lint": "eslint src --ext .ts",
14
+ "lint:fix": "eslint src --ext .ts --fix",
15
+ "test": "jest --coverage --passWithNoTests",
16
+ "test:watch": "jest --watch"
17
+ },
18
+ "keywords": [
19
+ "hazeljs",
20
+ "messaging",
21
+ "whatsapp",
22
+ "telegram",
23
+ "viber",
24
+ "bot",
25
+ "llm",
26
+ "ai-chatbot"
27
+ ],
28
+ "author": "Muhammad Arslan <muhammad.arslan@hazeljs.com>",
29
+ "license": "Apache-2.0",
30
+ "bugs": {
31
+ "url": "https://github.com/hazeljs/hazel-js/issues"
32
+ },
33
+ "homepage": "https://hazeljs.com",
34
+ "dependencies": {
35
+ "reflect-metadata": "^0.2.1",
36
+ "telegraf": "^4.16.3"
37
+ },
38
+ "peerDependencies": {
39
+ "@hazeljs/ai": ">=0.2.0-beta.0",
40
+ "@hazeljs/core": ">=0.2.0-beta.0",
41
+ "@hazeljs/kafka": ">=0.2.0-beta.0",
42
+ "@hazeljs/rag": ">=0.2.0-beta.0",
43
+ "ioredis": ">=5.0.0",
44
+ "viber-bot": ">=1.0.0"
45
+ },
46
+ "peerDependenciesMeta": {
47
+ "@hazeljs/kafka": {
48
+ "optional": true,
49
+ "description": "Required for Kafka async processing - npm install @hazeljs/kafka"
50
+ },
51
+ "ioredis": {
52
+ "optional": true,
53
+ "description": "Required for Redis context store - npm install ioredis"
54
+ },
55
+ "viber-bot": {
56
+ "optional": true,
57
+ "description": "Required for Viber channel - npm install viber-bot"
58
+ },
59
+ "@hazeljs/agent": {
60
+ "optional": true,
61
+ "description": "Required for agent-based bot responses"
62
+ },
63
+ "@hazeljs/rag": {
64
+ "optional": true,
65
+ "description": "Required for RAG-enhanced responses"
66
+ },
67
+ "@hazeljs/queue": {
68
+ "optional": true,
69
+ "description": "Required for async message processing"
70
+ }
71
+ },
72
+ "devDependencies": {
73
+ "@types/jest": "^29.5.11",
74
+ "@types/node": "^20.17.50",
75
+ "jest": "^29.7.0",
76
+ "ts-jest": "^29.1.2",
77
+ "typescript": "^5.3.3"
78
+ },
79
+ "publishConfig": {
80
+ "access": "public"
81
+ },
82
+ "repository": {
83
+ "type": "git",
84
+ "url": "https://github.com/hazel-js/hazeljs.git",
85
+ "directory": "packages/messaging"
86
+ },
87
+ "gitHead": "cbc5ee2c12ced28fd0576faf13c5f078c1e8421e"
88
+ }