reviewflow 3.28.0 → 3.30.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.
Files changed (139) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/dist/dashboard/index.html +74 -9
  3. package/dist/dashboard/modules/emberAvatar.d.ts +134 -0
  4. package/dist/dashboard/modules/emberAvatar.d.ts.map +1 -0
  5. package/dist/dashboard/modules/emberAvatar.js +192 -0
  6. package/dist/dashboard/modules/emberAvatar.js.map +1 -0
  7. package/dist/dashboard/modules/emberAvatarRenderer.d.ts +42 -0
  8. package/dist/dashboard/modules/emberAvatarRenderer.d.ts.map +1 -0
  9. package/dist/dashboard/modules/emberAvatarRenderer.js +119 -0
  10. package/dist/dashboard/modules/emberAvatarRenderer.js.map +1 -0
  11. package/dist/dashboard/modules/emberChat.d.ts +77 -0
  12. package/dist/dashboard/modules/emberChat.d.ts.map +1 -0
  13. package/dist/dashboard/modules/emberChat.js +175 -0
  14. package/dist/dashboard/modules/emberChat.js.map +1 -0
  15. package/dist/dashboard/styles.css +126 -0
  16. package/dist/main/routes.d.ts.map +1 -1
  17. package/dist/main/routes.js +32 -0
  18. package/dist/main/routes.js.map +1 -1
  19. package/dist/modules/ember-chat/entities/emberMessage/emberMessage.guard.d.ts +4 -0
  20. package/dist/modules/ember-chat/entities/emberMessage/emberMessage.guard.d.ts.map +1 -0
  21. package/dist/modules/ember-chat/entities/emberMessage/emberMessage.guard.js +4 -0
  22. package/dist/modules/ember-chat/entities/emberMessage/emberMessage.guard.js.map +1 -0
  23. package/dist/modules/ember-chat/entities/emberMessage/emberMessage.schema.d.ts +6 -0
  24. package/dist/modules/ember-chat/entities/emberMessage/emberMessage.schema.d.ts.map +1 -0
  25. package/dist/modules/ember-chat/entities/emberMessage/emberMessage.schema.js +5 -0
  26. package/dist/modules/ember-chat/entities/emberMessage/emberMessage.schema.js.map +1 -0
  27. package/dist/modules/ember-chat/entities/emberSession/emberSession.schema.d.ts +7 -0
  28. package/dist/modules/ember-chat/entities/emberSession/emberSession.schema.d.ts.map +1 -0
  29. package/dist/modules/ember-chat/entities/emberSession/emberSession.schema.js +3 -0
  30. package/dist/modules/ember-chat/entities/emberSession/emberSession.schema.js.map +1 -0
  31. package/dist/modules/ember-chat/entities/emberSession/emberSessionState.d.ts +13 -0
  32. package/dist/modules/ember-chat/entities/emberSession/emberSessionState.d.ts.map +1 -0
  33. package/dist/modules/ember-chat/entities/emberSession/emberSessionState.js +35 -0
  34. package/dist/modules/ember-chat/entities/emberSession/emberSessionState.js.map +1 -0
  35. package/dist/modules/ember-chat/entities/emberSession/emberSessionTransport.gateway.d.ts +26 -0
  36. package/dist/modules/ember-chat/entities/emberSession/emberSessionTransport.gateway.d.ts.map +1 -0
  37. package/dist/modules/ember-chat/entities/emberSession/emberSessionTransport.gateway.js +2 -0
  38. package/dist/modules/ember-chat/entities/emberSession/emberSessionTransport.gateway.js.map +1 -0
  39. package/dist/modules/ember-chat/entities/emberTool/emberTool.gateway.d.ts +11 -0
  40. package/dist/modules/ember-chat/entities/emberTool/emberTool.gateway.d.ts.map +1 -0
  41. package/dist/modules/ember-chat/entities/emberTool/emberTool.gateway.js +2 -0
  42. package/dist/modules/ember-chat/entities/emberTool/emberTool.gateway.js.map +1 -0
  43. package/dist/modules/ember-chat/interface-adapters/controllers/http/emberChat.routes.d.ts +15 -0
  44. package/dist/modules/ember-chat/interface-adapters/controllers/http/emberChat.routes.d.ts.map +1 -0
  45. package/dist/modules/ember-chat/interface-adapters/controllers/http/emberChat.routes.js +61 -0
  46. package/dist/modules/ember-chat/interface-adapters/controllers/http/emberChat.routes.js.map +1 -0
  47. package/dist/modules/ember-chat/interface-adapters/gateways/emberReadData.composite.gateway.d.ts +24 -0
  48. package/dist/modules/ember-chat/interface-adapters/gateways/emberReadData.composite.gateway.d.ts.map +1 -0
  49. package/dist/modules/ember-chat/interface-adapters/gateways/emberReadData.composite.gateway.js +19 -0
  50. package/dist/modules/ember-chat/interface-adapters/gateways/emberReadData.composite.gateway.js.map +1 -0
  51. package/dist/modules/ember-chat/interface-adapters/gateways/emberSessionTransport.claude.gateway.d.ts +13 -0
  52. package/dist/modules/ember-chat/interface-adapters/gateways/emberSessionTransport.claude.gateway.d.ts.map +1 -0
  53. package/dist/modules/ember-chat/interface-adapters/gateways/emberSessionTransport.claude.gateway.js +130 -0
  54. package/dist/modules/ember-chat/interface-adapters/gateways/emberSessionTransport.claude.gateway.js.map +1 -0
  55. package/dist/modules/ember-chat/interface-adapters/gateways/emberStreamJson.parser.d.ts +18 -0
  56. package/dist/modules/ember-chat/interface-adapters/gateways/emberStreamJson.parser.d.ts.map +1 -0
  57. package/dist/modules/ember-chat/interface-adapters/gateways/emberStreamJson.parser.js +33 -0
  58. package/dist/modules/ember-chat/interface-adapters/gateways/emberStreamJson.parser.js.map +1 -0
  59. package/dist/modules/ember-chat/interface-adapters/presenters/emberStatus.presenter.d.ts +20 -0
  60. package/dist/modules/ember-chat/interface-adapters/presenters/emberStatus.presenter.d.ts.map +1 -0
  61. package/dist/modules/ember-chat/interface-adapters/presenters/emberStatus.presenter.js +28 -0
  62. package/dist/modules/ember-chat/interface-adapters/presenters/emberStatus.presenter.js.map +1 -0
  63. package/dist/modules/ember-chat/services/emberSystemPrompt.d.ts +12 -0
  64. package/dist/modules/ember-chat/services/emberSystemPrompt.d.ts.map +1 -0
  65. package/dist/modules/ember-chat/services/emberSystemPrompt.js +29 -0
  66. package/dist/modules/ember-chat/services/emberSystemPrompt.js.map +1 -0
  67. package/dist/modules/ember-chat/usecases/askEmber/askEmber.usecase.d.ts +23 -0
  68. package/dist/modules/ember-chat/usecases/askEmber/askEmber.usecase.d.ts.map +1 -0
  69. package/dist/modules/ember-chat/usecases/askEmber/askEmber.usecase.js +23 -0
  70. package/dist/modules/ember-chat/usecases/askEmber/askEmber.usecase.js.map +1 -0
  71. package/dist/modules/ember-chat/usecases/emberSession/emberSessionRegistry.d.ts +36 -0
  72. package/dist/modules/ember-chat/usecases/emberSession/emberSessionRegistry.d.ts.map +1 -0
  73. package/dist/modules/ember-chat/usecases/emberSession/emberSessionRegistry.js +59 -0
  74. package/dist/modules/ember-chat/usecases/emberSession/emberSessionRegistry.js.map +1 -0
  75. package/dist/tests/acceptance/189-ember-readonly-review-chat.acceptance.test.d.ts +2 -0
  76. package/dist/tests/acceptance/189-ember-readonly-review-chat.acceptance.test.d.ts.map +1 -0
  77. package/dist/tests/acceptance/189-ember-readonly-review-chat.acceptance.test.js +124 -0
  78. package/dist/tests/acceptance/189-ember-readonly-review-chat.acceptance.test.js.map +1 -0
  79. package/dist/tests/factories/emberMessage.factory.d.ts +5 -0
  80. package/dist/tests/factories/emberMessage.factory.d.ts.map +1 -0
  81. package/dist/tests/factories/emberMessage.factory.js +9 -0
  82. package/dist/tests/factories/emberMessage.factory.js.map +1 -0
  83. package/dist/tests/stubs/emberReadData.stub.d.ts +20 -0
  84. package/dist/tests/stubs/emberReadData.stub.d.ts.map +1 -0
  85. package/dist/tests/stubs/emberReadData.stub.js +31 -0
  86. package/dist/tests/stubs/emberReadData.stub.js.map +1 -0
  87. package/dist/tests/stubs/emberSessionTransport.stub.d.ts +18 -0
  88. package/dist/tests/stubs/emberSessionTransport.stub.d.ts.map +1 -0
  89. package/dist/tests/stubs/emberSessionTransport.stub.js +75 -0
  90. package/dist/tests/stubs/emberSessionTransport.stub.js.map +1 -0
  91. package/dist/tests/units/dashboard/modules/emberAvatar.test.d.ts +2 -0
  92. package/dist/tests/units/dashboard/modules/emberAvatar.test.d.ts.map +1 -0
  93. package/dist/tests/units/dashboard/modules/emberAvatar.test.js +74 -0
  94. package/dist/tests/units/dashboard/modules/emberAvatar.test.js.map +1 -0
  95. package/dist/tests/units/dashboard/modules/emberAvatarRenderer.test.d.ts +2 -0
  96. package/dist/tests/units/dashboard/modules/emberAvatarRenderer.test.d.ts.map +1 -0
  97. package/dist/tests/units/dashboard/modules/emberAvatarRenderer.test.js +44 -0
  98. package/dist/tests/units/dashboard/modules/emberAvatarRenderer.test.js.map +1 -0
  99. package/dist/tests/units/dashboard/modules/emberChat.test.d.ts +2 -0
  100. package/dist/tests/units/dashboard/modules/emberChat.test.d.ts.map +1 -0
  101. package/dist/tests/units/dashboard/modules/emberChat.test.js +59 -0
  102. package/dist/tests/units/dashboard/modules/emberChat.test.js.map +1 -0
  103. package/dist/tests/units/modules/ember-chat/controllers/emberChat.routes.test.d.ts +2 -0
  104. package/dist/tests/units/modules/ember-chat/controllers/emberChat.routes.test.d.ts.map +1 -0
  105. package/dist/tests/units/modules/ember-chat/controllers/emberChat.routes.test.js +101 -0
  106. package/dist/tests/units/modules/ember-chat/controllers/emberChat.routes.test.js.map +1 -0
  107. package/dist/tests/units/modules/ember-chat/entities/emberMessage.guard.test.d.ts +2 -0
  108. package/dist/tests/units/modules/ember-chat/entities/emberMessage.guard.test.d.ts.map +1 -0
  109. package/dist/tests/units/modules/ember-chat/entities/emberMessage.guard.test.js +24 -0
  110. package/dist/tests/units/modules/ember-chat/entities/emberMessage.guard.test.js.map +1 -0
  111. package/dist/tests/units/modules/ember-chat/entities/emberSessionState.test.d.ts +2 -0
  112. package/dist/tests/units/modules/ember-chat/entities/emberSessionState.test.d.ts.map +1 -0
  113. package/dist/tests/units/modules/ember-chat/entities/emberSessionState.test.js +42 -0
  114. package/dist/tests/units/modules/ember-chat/entities/emberSessionState.test.js.map +1 -0
  115. package/dist/tests/units/modules/ember-chat/gateways/emberReadData.composite.gateway.test.d.ts +2 -0
  116. package/dist/tests/units/modules/ember-chat/gateways/emberReadData.composite.gateway.test.d.ts.map +1 -0
  117. package/dist/tests/units/modules/ember-chat/gateways/emberReadData.composite.gateway.test.js +75 -0
  118. package/dist/tests/units/modules/ember-chat/gateways/emberReadData.composite.gateway.test.js.map +1 -0
  119. package/dist/tests/units/modules/ember-chat/gateways/emberStreamJson.parser.test.d.ts +2 -0
  120. package/dist/tests/units/modules/ember-chat/gateways/emberStreamJson.parser.test.d.ts.map +1 -0
  121. package/dist/tests/units/modules/ember-chat/gateways/emberStreamJson.parser.test.js +52 -0
  122. package/dist/tests/units/modules/ember-chat/gateways/emberStreamJson.parser.test.js.map +1 -0
  123. package/dist/tests/units/modules/ember-chat/presenters/emberStatus.presenter.test.d.ts +2 -0
  124. package/dist/tests/units/modules/ember-chat/presenters/emberStatus.presenter.test.d.ts.map +1 -0
  125. package/dist/tests/units/modules/ember-chat/presenters/emberStatus.presenter.test.js +27 -0
  126. package/dist/tests/units/modules/ember-chat/presenters/emberStatus.presenter.test.js.map +1 -0
  127. package/dist/tests/units/modules/ember-chat/services/emberSystemPrompt.test.d.ts +2 -0
  128. package/dist/tests/units/modules/ember-chat/services/emberSystemPrompt.test.d.ts.map +1 -0
  129. package/dist/tests/units/modules/ember-chat/services/emberSystemPrompt.test.js +41 -0
  130. package/dist/tests/units/modules/ember-chat/services/emberSystemPrompt.test.js.map +1 -0
  131. package/dist/tests/units/modules/ember-chat/usecases/askEmber.usecase.test.d.ts +2 -0
  132. package/dist/tests/units/modules/ember-chat/usecases/askEmber.usecase.test.d.ts.map +1 -0
  133. package/dist/tests/units/modules/ember-chat/usecases/askEmber.usecase.test.js +46 -0
  134. package/dist/tests/units/modules/ember-chat/usecases/askEmber.usecase.test.js.map +1 -0
  135. package/dist/tests/units/modules/ember-chat/usecases/emberSessionRegistry.test.d.ts +2 -0
  136. package/dist/tests/units/modules/ember-chat/usecases/emberSessionRegistry.test.d.ts.map +1 -0
  137. package/dist/tests/units/modules/ember-chat/usecases/emberSessionRegistry.test.js +88 -0
  138. package/dist/tests/units/modules/ember-chat/usecases/emberSessionRegistry.test.js.map +1 -0
  139. package/package.json +1 -1
@@ -0,0 +1,88 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { StubEmberSessionTransportGateway } from '../../../../../tests/stubs/emberSessionTransport.stub.js';
3
+ import { EmberSessionRegistry } from '../../../../../modules/ember-chat/usecases/emberSession/emberSessionRegistry.js';
4
+ const SYSTEM_PROMPT = 'you are ember';
5
+ const PROJECT_PATH = '/projects/alpha';
6
+ function drain(subscribe) {
7
+ return new Promise((resolve) => {
8
+ let answer = '';
9
+ const statuses = [];
10
+ subscribe({
11
+ onStatus: (state) => statuses.push(state),
12
+ onChunk: (text) => {
13
+ answer += text;
14
+ },
15
+ onDone: () => resolve({ answer, statuses }),
16
+ onError: () => resolve({ answer, statuses }),
17
+ });
18
+ });
19
+ }
20
+ describe('EmberSessionRegistry', () => {
21
+ it('reuses one transport handle across consecutive questions', async () => {
22
+ const transport = new StubEmberSessionTransportGateway();
23
+ let clock = new Date('2026-05-28T10:00:00Z');
24
+ const registry = new EmberSessionRegistry({
25
+ transport,
26
+ now: () => clock,
27
+ idleTimeoutMs: 60_000,
28
+ });
29
+ const first = registry.ask({ question: 'q1', systemPrompt: SYSTEM_PROMPT, projectPath: PROJECT_PATH });
30
+ if (first.status === 'streaming') {
31
+ await drain(first.subscribe);
32
+ }
33
+ clock = new Date('2026-05-28T10:00:10Z');
34
+ const second = registry.ask({ question: 'q2', systemPrompt: SYSTEM_PROMPT, projectPath: PROJECT_PATH });
35
+ if (second.status === 'streaming') {
36
+ await drain(second.subscribe);
37
+ }
38
+ expect(transport.spawnCount).toBe(1);
39
+ });
40
+ it('emits a working then idle status sequence for one question', async () => {
41
+ const transport = new StubEmberSessionTransportGateway();
42
+ const registry = new EmberSessionRegistry({
43
+ transport,
44
+ now: () => new Date('2026-05-28T10:00:00Z'),
45
+ idleTimeoutMs: 60_000,
46
+ });
47
+ const result = registry.ask({ question: 'q', systemPrompt: SYSTEM_PROMPT, projectPath: PROJECT_PATH });
48
+ expect(result.status).toBe('streaming');
49
+ if (result.status !== 'streaming') {
50
+ return;
51
+ }
52
+ const { statuses } = await drain(result.subscribe);
53
+ expect(statuses[0]).toBe('working');
54
+ expect(statuses.at(-1)).toBe('idle');
55
+ });
56
+ it('transparently revives with a fresh spawn after the idle timeout releases the session', async () => {
57
+ const transport = new StubEmberSessionTransportGateway();
58
+ let clock = new Date('2026-05-28T10:00:00Z');
59
+ const registry = new EmberSessionRegistry({
60
+ transport,
61
+ now: () => clock,
62
+ idleTimeoutMs: 60_000,
63
+ });
64
+ const first = registry.ask({ question: 'q1', systemPrompt: SYSTEM_PROMPT, projectPath: PROJECT_PATH });
65
+ if (first.status === 'streaming') {
66
+ await drain(first.subscribe);
67
+ }
68
+ clock = new Date('2026-05-28T10:05:00Z');
69
+ registry.onIdle(clock);
70
+ const second = registry.ask({ question: 'q2', systemPrompt: SYSTEM_PROMPT, projectPath: PROJECT_PATH });
71
+ if (second.status === 'streaming') {
72
+ await drain(second.subscribe);
73
+ }
74
+ expect(transport.spawnCount).toBe(2);
75
+ });
76
+ it('returns unavailable when the transport fails to spawn', () => {
77
+ const transport = new StubEmberSessionTransportGateway();
78
+ transport.failSpawn();
79
+ const registry = new EmberSessionRegistry({
80
+ transport,
81
+ now: () => new Date('2026-05-28T10:00:00Z'),
82
+ idleTimeoutMs: 60_000,
83
+ });
84
+ const result = registry.ask({ question: 'q', systemPrompt: SYSTEM_PROMPT, projectPath: PROJECT_PATH });
85
+ expect(result.status).toBe('unavailable');
86
+ });
87
+ });
88
+ //# sourceMappingURL=emberSessionRegistry.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emberSessionRegistry.test.js","sourceRoot":"","sources":["../../../../../../src/tests/units/modules/ember-chat/usecases/emberSessionRegistry.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "reviewflow",
3
- "version": "3.28.0",
3
+ "version": "3.30.0",
4
4
  "description": "AI-powered code review automation for GitLab/GitHub using Claude Code",
5
5
  "type": "module",
6
6
  "main": "dist/main/server.js",