@haibun/core 3.0.3 → 3.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.
Files changed (209) hide show
  1. package/build/currentVersion.d.ts +1 -1
  2. package/build/currentVersion.js +1 -2
  3. package/build/lib/EventLogger.d.ts +22 -0
  4. package/build/lib/EventLogger.d.ts.map +1 -0
  5. package/build/lib/EventLogger.js +95 -0
  6. package/build/lib/EventLogger.js.map +1 -0
  7. package/build/lib/Logger.d.ts.map +1 -1
  8. package/build/lib/Logger.js +2 -1
  9. package/build/lib/Logger.js.map +1 -1
  10. package/build/lib/astepper.d.ts +11 -1
  11. package/build/lib/astepper.d.ts.map +1 -1
  12. package/build/lib/astepper.js +8 -0
  13. package/build/lib/astepper.js.map +1 -1
  14. package/build/lib/core/flow-runner.d.ts +25 -0
  15. package/build/lib/core/flow-runner.d.ts.map +1 -0
  16. package/build/lib/core/flow-runner.js +128 -0
  17. package/build/lib/core/flow-runner.js.map +1 -0
  18. package/build/lib/core/protocol.d.ts +58 -0
  19. package/build/lib/core/protocol.d.ts.map +1 -0
  20. package/build/lib/core/protocol.js +18 -0
  21. package/build/lib/core/protocol.js.map +1 -0
  22. package/build/lib/core-domains.d.ts +2 -16
  23. package/build/lib/core-domains.d.ts.map +1 -1
  24. package/build/lib/core-domains.js +46 -27
  25. package/build/lib/core-domains.js.map +1 -1
  26. package/build/lib/defs.d.ts +42 -11
  27. package/build/lib/defs.d.ts.map +1 -1
  28. package/build/lib/defs.js +6 -1
  29. package/build/lib/defs.js.map +1 -1
  30. package/build/lib/domain-types.d.ts +12 -1
  31. package/build/lib/domain-types.d.ts.map +1 -1
  32. package/build/lib/domain-types.js +63 -3
  33. package/build/lib/domain-types.js.map +1 -1
  34. package/build/lib/event-bridge.d.ts +28 -0
  35. package/build/lib/event-bridge.d.ts.map +1 -0
  36. package/build/lib/event-bridge.js +114 -0
  37. package/build/lib/event-bridge.js.map +1 -0
  38. package/build/lib/feature-variables.d.ts +14 -0
  39. package/build/lib/feature-variables.d.ts.map +1 -1
  40. package/build/lib/feature-variables.js +128 -6
  41. package/build/lib/feature-variables.js.map +1 -1
  42. package/build/lib/interfaces/logger.d.ts +19 -3
  43. package/build/lib/interfaces/logger.d.ts.map +1 -1
  44. package/build/lib/interfaces/logger.js +11 -1
  45. package/build/lib/interfaces/logger.js.map +1 -1
  46. package/build/lib/namedVars.d.ts.map +1 -1
  47. package/build/lib/namedVars.js +18 -10
  48. package/build/lib/namedVars.js.map +1 -1
  49. package/build/lib/populateActionArgs.d.ts +1 -1
  50. package/build/lib/populateActionArgs.d.ts.map +1 -1
  51. package/build/lib/populateActionArgs.js +11 -49
  52. package/build/lib/populateActionArgs.js.map +1 -1
  53. package/build/lib/test/TestSteps.d.ts +1 -0
  54. package/build/lib/test/TestSteps.d.ts.map +1 -1
  55. package/build/lib/test/TestStepsWithOptions.d.ts +1 -0
  56. package/build/lib/test/TestStepsWithOptions.d.ts.map +1 -1
  57. package/build/lib/test/lib.d.ts.map +1 -1
  58. package/build/lib/test/lib.js +2 -0
  59. package/build/lib/test/lib.js.map +1 -1
  60. package/build/lib/util/actualURI.js +1 -1
  61. package/build/lib/util/actualURI.js.map +1 -1
  62. package/build/lib/util/index.d.ts +11 -2
  63. package/build/lib/util/index.d.ts.map +1 -1
  64. package/build/lib/util/index.js +46 -2
  65. package/build/lib/util/index.js.map +1 -1
  66. package/build/lib/util/variables.d.ts +9 -0
  67. package/build/lib/util/variables.d.ts.map +1 -0
  68. package/build/lib/util/variables.js +40 -0
  69. package/build/lib/util/variables.js.map +1 -0
  70. package/build/lib/util/workspace-lib.d.ts.map +1 -1
  71. package/build/lib/util/workspace-lib.js +30 -3
  72. package/build/lib/util/workspace-lib.js.map +1 -1
  73. package/build/monitor/browser-stubs.d.ts +12 -0
  74. package/build/monitor/browser-stubs.d.ts.map +1 -0
  75. package/build/monitor/browser-stubs.js +20 -0
  76. package/build/monitor/browser-stubs.js.map +1 -0
  77. package/build/monitor/constants.d.ts +9 -0
  78. package/build/monitor/constants.d.ts.map +1 -0
  79. package/build/monitor/constants.js +9 -0
  80. package/build/monitor/constants.js.map +1 -0
  81. package/build/monitor/event-view.d.ts +40 -0
  82. package/build/monitor/event-view.d.ts.map +1 -0
  83. package/build/monitor/event-view.js +104 -0
  84. package/build/monitor/event-view.js.map +1 -0
  85. package/build/monitor/filters.d.ts +17 -0
  86. package/build/monitor/filters.d.ts.map +1 -0
  87. package/build/monitor/filters.js +32 -0
  88. package/build/monitor/filters.js.map +1 -0
  89. package/build/monitor/formatters.d.ts +27 -0
  90. package/build/monitor/formatters.d.ts.map +1 -0
  91. package/build/monitor/formatters.js +89 -0
  92. package/build/monitor/formatters.js.map +1 -0
  93. package/build/monitor/index.d.ts +11 -0
  94. package/build/monitor/index.d.ts.map +1 -0
  95. package/build/monitor/index.js +15 -0
  96. package/build/monitor/index.js.map +1 -0
  97. package/build/monitor/jit-serialization.d.ts +9 -0
  98. package/build/monitor/jit-serialization.d.ts.map +1 -0
  99. package/build/monitor/jit-serialization.js +73 -0
  100. package/build/monitor/jit-serialization.js.map +1 -0
  101. package/build/monitor/monitor-types.d.ts +119 -0
  102. package/build/monitor/monitor-types.d.ts.map +1 -0
  103. package/build/monitor/monitor-types.js +43 -0
  104. package/build/monitor/monitor-types.js.map +1 -0
  105. package/build/monitor/speculative-tracker.d.ts +20 -0
  106. package/build/monitor/speculative-tracker.d.ts.map +1 -0
  107. package/build/monitor/speculative-tracker.js +38 -0
  108. package/build/monitor/speculative-tracker.js.map +1 -0
  109. package/build/monitor/state.d.ts +31 -0
  110. package/build/monitor/state.d.ts.map +1 -0
  111. package/build/monitor/state.js +110 -0
  112. package/build/monitor/state.js.map +1 -0
  113. package/build/monitor/timer.d.ts +11 -0
  114. package/build/monitor/timer.d.ts.map +1 -0
  115. package/build/monitor/timer.js +13 -0
  116. package/build/monitor/timer.js.map +1 -0
  117. package/build/monitor/tree-builder.d.ts +25 -0
  118. package/build/monitor/tree-builder.d.ts.map +1 -0
  119. package/build/monitor/tree-builder.js +36 -0
  120. package/build/monitor/tree-builder.js.map +1 -0
  121. package/build/phases/Executor.d.ts.map +1 -1
  122. package/build/phases/Executor.js +102 -43
  123. package/build/phases/Executor.js.map +1 -1
  124. package/build/phases/Resolver.d.ts +2 -1
  125. package/build/phases/Resolver.d.ts.map +1 -1
  126. package/build/phases/Resolver.js +64 -1
  127. package/build/phases/Resolver.js.map +1 -1
  128. package/build/runner.d.ts.map +1 -1
  129. package/build/runner.js +5 -0
  130. package/build/runner.js.map +1 -1
  131. package/build/schema/events.d.ts +174 -0
  132. package/build/schema/events.d.ts.map +1 -0
  133. package/build/schema/events.js +55 -0
  134. package/build/schema/events.js.map +1 -0
  135. package/build/steps/activities-stepper.d.ts +55 -20
  136. package/build/steps/activities-stepper.d.ts.map +1 -1
  137. package/build/steps/activities-stepper.js +342 -207
  138. package/build/steps/activities-stepper.js.map +1 -1
  139. package/build/steps/conformance.d.ts +1 -0
  140. package/build/steps/conformance.d.ts.map +1 -1
  141. package/build/steps/console-monitor-stepper.d.ts +44 -0
  142. package/build/steps/console-monitor-stepper.d.ts.map +1 -0
  143. package/build/steps/console-monitor-stepper.js +106 -0
  144. package/build/steps/console-monitor-stepper.js.map +1 -0
  145. package/build/steps/debugger-stepper.d.ts +5 -3
  146. package/build/steps/debugger-stepper.d.ts.map +1 -1
  147. package/build/steps/debugger-stepper.js +35 -11
  148. package/build/steps/debugger-stepper.js.map +1 -1
  149. package/build/steps/haibun.d.ts +11 -18
  150. package/build/steps/haibun.d.ts.map +1 -1
  151. package/build/steps/haibun.js +51 -55
  152. package/build/steps/haibun.js.map +1 -1
  153. package/build/steps/lib/tts.d.ts.map +1 -1
  154. package/build/steps/lib/tts.js +2 -1
  155. package/build/steps/lib/tts.js.map +1 -1
  156. package/build/steps/logic-stepper.d.ts +42 -0
  157. package/build/steps/logic-stepper.d.ts.map +1 -0
  158. package/build/steps/logic-stepper.js +143 -0
  159. package/build/steps/logic-stepper.js.map +1 -0
  160. package/build/steps/narrator.d.ts.map +1 -1
  161. package/build/steps/narrator.js +1 -1
  162. package/build/steps/narrator.js.map +1 -1
  163. package/build/steps/parse.d.ts +1 -0
  164. package/build/steps/parse.d.ts.map +1 -1
  165. package/build/steps/variables-stepper.d.ts +11 -71
  166. package/build/steps/variables-stepper.d.ts.map +1 -1
  167. package/build/steps/variables-stepper.js +534 -84
  168. package/build/steps/variables-stepper.js.map +1 -1
  169. package/package.json +16 -3
  170. package/build/applyEffectFeatures.d.ts +0 -4
  171. package/build/applyEffectFeatures.d.ts.map +0 -1
  172. package/build/applyEffectFeatures.js +0 -31
  173. package/build/applyEffectFeatures.js.map +0 -1
  174. package/build/jsprolog/converter.d.ts +0 -9
  175. package/build/jsprolog/converter.d.ts.map +0 -1
  176. package/build/jsprolog/converter.js +0 -42
  177. package/build/jsprolog/converter.js.map +0 -1
  178. package/build/jsprolog/stepper-utils.d.ts +0 -8
  179. package/build/jsprolog/stepper-utils.d.ts.map +0 -1
  180. package/build/jsprolog/stepper-utils.js +0 -8
  181. package/build/jsprolog/stepper-utils.js.map +0 -1
  182. package/build/jsprolog/test.jsprolog.d.ts +0 -4
  183. package/build/jsprolog/test.jsprolog.d.ts.map +0 -1
  184. package/build/jsprolog/test.jsprolog.js +0 -19
  185. package/build/jsprolog/test.jsprolog.js.map +0 -1
  186. package/build/jsprolog/test.kireji.d.ts +0 -4
  187. package/build/jsprolog/test.kireji.d.ts.map +0 -1
  188. package/build/jsprolog/test.kireji.js +0 -19
  189. package/build/jsprolog/test.kireji.js.map +0 -1
  190. package/build/jsprolog/withAction.d.ts +0 -32
  191. package/build/jsprolog/withAction.d.ts.map +0 -1
  192. package/build/jsprolog/withAction.js +0 -65
  193. package/build/jsprolog/withAction.js.map +0 -1
  194. package/build/kireji/test.kireji.d.ts +0 -4
  195. package/build/kireji/test.kireji.d.ts.map +0 -1
  196. package/build/kireji/test.kireji.js +0 -19
  197. package/build/kireji/test.kireji.js.map +0 -1
  198. package/build/lib/errors.d.ts +0 -13
  199. package/build/lib/errors.d.ts.map +0 -1
  200. package/build/lib/errors.js +0 -18
  201. package/build/lib/errors.js.map +0 -1
  202. package/build/lib/util/featureStep-executor.d.ts +0 -7
  203. package/build/lib/util/featureStep-executor.d.ts.map +0 -1
  204. package/build/lib/util/featureStep-executor.js +0 -63
  205. package/build/lib/util/featureStep-executor.js.map +0 -1
  206. package/build/steps/conditions-stepper.d.ts +0 -27
  207. package/build/steps/conditions-stepper.d.ts.map +0 -1
  208. package/build/steps/conditions-stepper.js +0 -99
  209. package/build/steps/conditions-stepper.js.map +0 -1
@@ -0,0 +1,89 @@
1
+ /**
2
+ * EventFormatter - Shared formatting for Haibun events.
3
+ * This module is browser-safe and uses only local imports.
4
+ */
5
+ import { Timer } from './timer.js';
6
+ import { CHECK_YES, CHECK_NO, MAYBE_CHECK_YES, MAYBE_CHECK_NO } from './constants.js';
7
+ export class EventFormatter {
8
+ static shouldDisplay(event) {
9
+ if (event.kind === 'lifecycle') {
10
+ if (event.type === 'step')
11
+ return event.stage === 'end';
12
+ if (event.type === 'feature' || event.type === 'scenario')
13
+ return event.stage === 'start';
14
+ return false;
15
+ }
16
+ if (event.kind === 'log') {
17
+ return ['info', 'warn', 'error'].includes(event.level);
18
+ }
19
+ return false;
20
+ }
21
+ static getDisplayLevel(event) {
22
+ if (event.kind === 'lifecycle') {
23
+ return event.type === 'step' ? 'log' : event.type;
24
+ }
25
+ if (event.kind === 'log') {
26
+ return event.level;
27
+ }
28
+ return 'event';
29
+ }
30
+ static getStatusIcon(event) {
31
+ const isSpeculative = event.intent?.mode === 'speculative';
32
+ if (event.status === 'completed')
33
+ return isSpeculative ? ` ${MAYBE_CHECK_YES}` : CHECK_YES;
34
+ if (event.status === 'failed')
35
+ return isSpeculative ? ` ${MAYBE_CHECK_NO}` : CHECK_NO;
36
+ if (event.status === 'running')
37
+ return '⏳';
38
+ return ' •';
39
+ }
40
+ static getIndication(event) {
41
+ const isSpeculative = event.intent?.mode === 'speculative';
42
+ if (event.status === 'completed')
43
+ return 'success';
44
+ if (event.status === 'failed')
45
+ return isSpeculative ? 'speculative-failure' : 'failure';
46
+ if (event.status === 'running')
47
+ return 'pending';
48
+ return 'neutral';
49
+ }
50
+ static formatLineElements(event, lastLevel) {
51
+ const time = (Timer.since() / 1000).toFixed(3);
52
+ const emitter = event.emitter || 'unknown';
53
+ const level = this.getDisplayLevel(event);
54
+ const showLevel = lastLevel === level ? level.charAt(0) : level;
55
+ let icon = '';
56
+ let id = '';
57
+ let message = '';
58
+ if (event.kind === 'lifecycle') {
59
+ if (event.type === 'feature') {
60
+ icon = '📄';
61
+ message = event.label || '';
62
+ }
63
+ else if (event.type === 'scenario') {
64
+ icon = '📋';
65
+ message = event.label || '';
66
+ }
67
+ else {
68
+ icon = this.getStatusIcon(event);
69
+ id = event.id;
70
+ message = event.label || '';
71
+ if (event.error)
72
+ message += ` (${event.error})`;
73
+ }
74
+ }
75
+ else if (event.kind === 'log') {
76
+ const levelIcons = { info: 'ℹ️', warn: '⚠️', error: '🚨' };
77
+ icon = levelIcons[event.level] || '•';
78
+ id = event.id;
79
+ message = event.message;
80
+ }
81
+ return { time, emitter, level, showLevel, icon, id, message };
82
+ }
83
+ static formatLine(event, lastLevel) {
84
+ const { time, emitter, level, showLevel, icon, id, message } = this.formatLineElements(event, lastLevel);
85
+ const prefix = showLevel.padStart(6) + ` █ ${time}:${emitter}`.padEnd(32) + ` | `;
86
+ return prefix + `${icon}${id} ${message}`;
87
+ }
88
+ }
89
+ //# sourceMappingURL=formatters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatters.js","sourceRoot":"","sources":["../../src/monitor/formatters.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Monitor utilities for Haibun.
3
+ * This module is browser-safe - all imports are from browser-compatible sources.
4
+ */
5
+ export { EventFormatter, type TIndication } from './formatters.js';
6
+ export { JITSerializer } from './jit-serialization.js';
7
+ export { Timer } from './timer.js';
8
+ export { CHECK_YES, CHECK_NO, MAYBE_CHECK_YES, MAYBE_CHECK_NO } from './constants.js';
9
+ export { type THaibunEvent } from '../schema/events.js';
10
+ export { LOG_LEVEL_NONE, LOG_LEVEL_DEBUG, LOG_LEVEL_TRACE, LOG_LEVEL_LOG, LOG_LEVEL_INFO, LOG_LEVEL_WARN, LOG_LEVEL_ERROR, LOG_LEVELS, type TLogLevel, type TLogArgs, EExecutionMessageType, type TMessageContext, type TArtifact, type TArtifactSpeech, type TArtifactVideo, type TArtifactVideoStart, type TArtifactImage, type TArtifactHTML, type TArtifactJSON, type TArtifactHTTPTrace, type TArtifactResolvedFeatures, type RegisteredOutcomeEntry, type TArtifactType, type THTTPTraceContent, type TPrompt, } from './monitor-types.js';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/monitor/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACtF,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGxD,OAAO,EAEL,cAAc,EACd,eAAe,EACf,eAAe,EACf,aAAa,EACb,cAAc,EACd,cAAc,EACd,eAAe,EACf,UAAU,EACV,KAAK,SAAS,EACd,KAAK,QAAQ,EAEb,qBAAqB,EAErB,KAAK,eAAe,EAEpB,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAC9B,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EAClB,KAAK,iBAAiB,EAEtB,KAAK,OAAO,GACb,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Monitor utilities for Haibun.
3
+ * This module is browser-safe - all imports are from browser-compatible sources.
4
+ */
5
+ export { EventFormatter } from './formatters.js';
6
+ export { JITSerializer } from './jit-serialization.js';
7
+ export { Timer } from './timer.js';
8
+ export { CHECK_YES, CHECK_NO, MAYBE_CHECK_YES, MAYBE_CHECK_NO } from './constants.js';
9
+ // Re-export browser-safe types from monitor-types
10
+ export {
11
+ // Log levels
12
+ LOG_LEVEL_NONE, LOG_LEVEL_DEBUG, LOG_LEVEL_TRACE, LOG_LEVEL_LOG, LOG_LEVEL_INFO, LOG_LEVEL_WARN, LOG_LEVEL_ERROR, LOG_LEVELS,
13
+ // Execution message types
14
+ EExecutionMessageType, } from './monitor-types.js';
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/monitor/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAoB,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGtF,kDAAkD;AAClD,OAAO;AACL,aAAa;AACb,cAAc,EACd,eAAe,EACf,eAAe,EACf,aAAa,EACb,cAAc,EACd,cAAc,EACd,eAAe,EACf,UAAU;AAGV,0BAA0B;AAC1B,qBAAqB,GAkBtB,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { THaibunEvent } from '../schema/events.js';
2
+ export declare class JITSerializer {
3
+ private schemas;
4
+ private nextSchemaId;
5
+ serialize(events: THaibunEvent[]): string;
6
+ deserialize(input: string): THaibunEvent[];
7
+ private getSchemaId;
8
+ }
9
+ //# sourceMappingURL=jit-serialization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jit-serialization.d.ts","sourceRoot":"","sources":["../../src/monitor/jit-serialization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAenD,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,YAAY,CAAK;IAEzB,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM;IA0BzC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,EAAE;IA2B1C,OAAO,CAAC,WAAW;CAuBpB"}
@@ -0,0 +1,73 @@
1
+ export class JITSerializer {
2
+ schemas = new Map();
3
+ nextSchemaId = 1;
4
+ serialize(events) {
5
+ const lines = [];
6
+ this.schemas.clear();
7
+ this.nextSchemaId = 1;
8
+ for (const event of events) {
9
+ const schemaId = this.getSchemaId(event);
10
+ const schemaFields = this.schemas.get(schemaId);
11
+ // If first use of this schema, emit definition
12
+ if (!lines.some(l => l.includes(`"_meta":"schema","id":"${schemaId}"`))) {
13
+ lines.push(JSON.stringify({
14
+ _meta: 'schema',
15
+ id: schemaId,
16
+ fields: schemaFields
17
+ }));
18
+ }
19
+ // Emit data
20
+ const validFields = schemaFields.map(f => event[f]);
21
+ lines.push(JSON.stringify({ s: schemaId, d: validFields }));
22
+ }
23
+ return lines.join('\n');
24
+ }
25
+ deserialize(input) {
26
+ const lines = input.split('\n').filter(Boolean);
27
+ const schemas = new Map();
28
+ const events = [];
29
+ for (const line of lines) {
30
+ try {
31
+ const obj = JSON.parse(line);
32
+ if (obj._meta === 'schema') {
33
+ schemas.set(obj.id, obj.fields);
34
+ }
35
+ else if (obj.s && obj.d) {
36
+ const fields = schemas.get(obj.s);
37
+ if (fields) {
38
+ const event = {};
39
+ fields.forEach((field, i) => {
40
+ event[field] = obj.d[i];
41
+ });
42
+ events.push(event);
43
+ }
44
+ }
45
+ }
46
+ catch (e) {
47
+ console.error('Failed to parse JIT line', line, e);
48
+ }
49
+ }
50
+ return events;
51
+ }
52
+ getSchemaId(event) {
53
+ // Determine schema based on event structure (keys)
54
+ const keys = Object.keys(event).sort();
55
+ const signature = keys.join(','); // Simple signature based on field presence
56
+ // Check if we have a schema for this signature
57
+ for (const [id, fields] of this.schemas.entries()) {
58
+ if (fields.join(',') === signature) {
59
+ return id;
60
+ }
61
+ }
62
+ // distinct schema names based on kind/type for readability (optional but nice)
63
+ const baseName = event.kind + (event.id ? '-v1' : '-simple-v1');
64
+ // We need unique IDs in the map. The map key is the ID.
65
+ // But here we need to find if the *fields* exist.
66
+ // My map logic above is reversed. Map should be ID -> Fields.
67
+ // But I need Signature -> ID for lookup.
68
+ const newId = `${event.kind}-${this.nextSchemaId++}`;
69
+ this.schemas.set(newId, keys);
70
+ return newId;
71
+ }
72
+ }
73
+ //# sourceMappingURL=jit-serialization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jit-serialization.js","sourceRoot":"","sources":["../../src/monitor/jit-serialization.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,119 @@
1
+ /**
2
+ * Browser-safe types and constants for Haibun monitor modules.
3
+ *
4
+ * This file re-exports types from the core library that are safe for browser use.
5
+ * It avoids importing from modules that have Node.js dependencies (defs.ts, prompter.ts, etc.)
6
+ *
7
+ * Import from '@haibun/core/monitor' in browser code instead of '@haibun/core/lib/interfaces/logger.js'
8
+ */
9
+ export declare const LOG_LEVEL_NONE: "none";
10
+ export declare const LOG_LEVEL_DEBUG: "debug";
11
+ export declare const LOG_LEVEL_TRACE: "trace";
12
+ export declare const LOG_LEVEL_LOG: "log";
13
+ export declare const LOG_LEVEL_INFO: "info";
14
+ export declare const LOG_LEVEL_WARN: "warn";
15
+ export declare const LOG_LEVEL_ERROR: "error";
16
+ export declare const LOG_LEVELS: readonly ["debug", "trace", "log", "info", "warn", "error"];
17
+ export type TLogLevel = 'none' | typeof LOG_LEVELS[number];
18
+ export type TLogArgs = string;
19
+ export declare enum EExecutionMessageType {
20
+ INIT = "INIT",
21
+ EXECUTION_START = "EXECUTION_START",
22
+ FEATURE_START = "FEATURE_START",
23
+ SCENARIO_START = "SCENARIO_START",
24
+ STEP_START = "STEP_START",
25
+ STEP_NEXT = "STEP_NEXT",
26
+ ACTION = "ACTION",
27
+ TRACE = "TRACE",
28
+ STEP_END = "STEP_END",
29
+ ENSURE_START = "ENSURE_START",
30
+ ENSURE_END = "ENSURE_END",
31
+ SCENARIO_END = "SCENARIO_END",
32
+ FEATURE_END = "FEATURE_END",
33
+ EXECUTION_END = "EXECUTION_END",
34
+ ON_FAILURE = "ON_FAILURE",
35
+ DEBUG = "DEBUG",
36
+ GRAPH_LINK = "GRAPH_LINK"
37
+ }
38
+ /**
39
+ * Simplified TMessageContext for browser use.
40
+ * Uses `unknown` instead of importing specific types that pull in Node.js deps.
41
+ */
42
+ export type TMessageContext = {
43
+ incident: EExecutionMessageType;
44
+ artifacts?: TArtifact[];
45
+ incidentDetails?: unknown;
46
+ tag?: unknown;
47
+ };
48
+ export type TArtifact = (TArtifactSpeech | TArtifactVideo | TArtifactResolvedFeatures | TArtifactVideoStart | TArtifactImage | TArtifactHTML | TArtifactJSON | TArtifactHTTPTrace);
49
+ export type TArtifactSpeech = {
50
+ artifactType: 'speech';
51
+ transcript: string;
52
+ durationS: number;
53
+ path: string;
54
+ };
55
+ export type RegisteredOutcomeEntry = {
56
+ proofStatements?: string[];
57
+ proofPath?: string;
58
+ isBackground?: boolean;
59
+ activityBlockSteps?: string[];
60
+ };
61
+ export type TArtifactResolvedFeatures = {
62
+ artifactType: 'resolvedFeatures';
63
+ resolvedFeatures: unknown[];
64
+ index?: number;
65
+ registeredOutcomes?: Record<string, RegisteredOutcomeEntry>;
66
+ };
67
+ export type TArtifactVideo = {
68
+ artifactType: 'video';
69
+ path: string;
70
+ };
71
+ export type TArtifactVideoStart = {
72
+ artifactType: 'video/start';
73
+ start: number;
74
+ };
75
+ export type TArtifactImage = {
76
+ artifactType: 'image';
77
+ path: string;
78
+ };
79
+ export type TArtifactHTML = TArtifactHTMLWithHtml | TArtifactHTMLWithPath;
80
+ type TArtifactHTMLWithHtml = {
81
+ artifactType: 'html';
82
+ html: string;
83
+ };
84
+ type TArtifactHTMLWithPath = {
85
+ artifactType: 'html';
86
+ path: string;
87
+ };
88
+ export type TArtifactJSON = {
89
+ artifactType: 'json';
90
+ json: object;
91
+ };
92
+ export type TArtifactHTTPTrace = {
93
+ artifactType: 'json/http/trace';
94
+ httpEvent: 'response' | 'request' | 'route';
95
+ trace: THTTPTraceContent;
96
+ };
97
+ export type TArtifactType = TArtifact['artifactType'];
98
+ export type THTTPTraceContent = {
99
+ frameURL?: string;
100
+ requestingPage?: string;
101
+ requestingURL?: string;
102
+ method?: string;
103
+ headers?: Record<string, string>;
104
+ postData?: unknown;
105
+ status?: number;
106
+ statusText?: string;
107
+ };
108
+ /**
109
+ * Browser-safe TPrompt type.
110
+ * The full Prompter class has Node.js dependencies, but this type is safe.
111
+ */
112
+ export type TPrompt = {
113
+ id: string;
114
+ message: string;
115
+ context?: unknown;
116
+ options?: string[];
117
+ };
118
+ export {};
119
+ //# sourceMappingURL=monitor-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monitor-types.d.ts","sourceRoot":"","sources":["../../src/monitor/monitor-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Browser-safe types and constants for Haibun monitor modules.
3
+ *
4
+ * This file re-exports types from the core library that are safe for browser use.
5
+ * It avoids importing from modules that have Node.js dependencies (defs.ts, prompter.ts, etc.)
6
+ *
7
+ * Import from '@haibun/core/monitor' in browser code instead of '@haibun/core/lib/interfaces/logger.js'
8
+ */
9
+ // ============================================================================
10
+ // Log Levels
11
+ // ============================================================================
12
+ export const LOG_LEVEL_NONE = 'none';
13
+ export const LOG_LEVEL_DEBUG = 'debug';
14
+ export const LOG_LEVEL_TRACE = 'trace';
15
+ export const LOG_LEVEL_LOG = 'log';
16
+ export const LOG_LEVEL_INFO = 'info';
17
+ export const LOG_LEVEL_WARN = 'warn';
18
+ export const LOG_LEVEL_ERROR = 'error';
19
+ export const LOG_LEVELS = [LOG_LEVEL_DEBUG, LOG_LEVEL_TRACE, LOG_LEVEL_LOG, LOG_LEVEL_INFO, LOG_LEVEL_WARN, LOG_LEVEL_ERROR];
20
+ // ============================================================================
21
+ // Execution Message Types
22
+ // ============================================================================
23
+ export var EExecutionMessageType;
24
+ (function (EExecutionMessageType) {
25
+ EExecutionMessageType["INIT"] = "INIT";
26
+ EExecutionMessageType["EXECUTION_START"] = "EXECUTION_START";
27
+ EExecutionMessageType["FEATURE_START"] = "FEATURE_START";
28
+ EExecutionMessageType["SCENARIO_START"] = "SCENARIO_START";
29
+ EExecutionMessageType["STEP_START"] = "STEP_START";
30
+ EExecutionMessageType["STEP_NEXT"] = "STEP_NEXT";
31
+ EExecutionMessageType["ACTION"] = "ACTION";
32
+ EExecutionMessageType["TRACE"] = "TRACE";
33
+ EExecutionMessageType["STEP_END"] = "STEP_END";
34
+ EExecutionMessageType["ENSURE_START"] = "ENSURE_START";
35
+ EExecutionMessageType["ENSURE_END"] = "ENSURE_END";
36
+ EExecutionMessageType["SCENARIO_END"] = "SCENARIO_END";
37
+ EExecutionMessageType["FEATURE_END"] = "FEATURE_END";
38
+ EExecutionMessageType["EXECUTION_END"] = "EXECUTION_END";
39
+ EExecutionMessageType["ON_FAILURE"] = "ON_FAILURE";
40
+ EExecutionMessageType["DEBUG"] = "DEBUG";
41
+ EExecutionMessageType["GRAPH_LINK"] = "GRAPH_LINK";
42
+ })(EExecutionMessageType || (EExecutionMessageType = {}));
43
+ //# sourceMappingURL=monitor-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monitor-types.js","sourceRoot":"","sources":["../../src/monitor/monitor-types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,+EAA+E;AAC/E,aAAa;AACb,+EAA+E;AAE/E,MAAM,CAAC,MAAM,cAAc,GAAG,MAAe,CAAC;AAC9C,MAAM,CAAC,MAAM,eAAe,GAAG,OAAgB,CAAC;AAChD,MAAM,CAAC,MAAM,eAAe,GAAG,OAAgB,CAAC;AAChD,MAAM,CAAC,MAAM,aAAa,GAAG,KAAc,CAAC;AAC5C,MAAM,CAAC,MAAM,cAAc,GAAG,MAAe,CAAC;AAC9C,MAAM,CAAC,MAAM,cAAc,GAAG,MAAe,CAAC;AAC9C,MAAM,CAAC,MAAM,eAAe,GAAG,OAAgB,CAAC;AAEhD,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,eAAe,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,CAAU,CAAC;AAKtI,+EAA+E;AAC/E,0BAA0B;AAC1B,+EAA+E;AAE/E,MAAM,CAAN,IAAY,qBAkBX;AAlBD,WAAY,qBAAqB;IAC/B,sCAAa,CAAA;IACb,4DAAmC,CAAA;IACnC,wDAA+B,CAAA;IAC/B,0DAAiC,CAAA;IACjC,kDAAyB,CAAA;IACzB,gDAAuB,CAAA;IACvB,0CAAiB,CAAA;IACjB,wCAAe,CAAA;IACf,8CAAqB,CAAA;IACrB,sDAA6B,CAAA;IAC7B,kDAAyB,CAAA;IACzB,sDAA6B,CAAA;IAC7B,oDAA2B,CAAA;IAC3B,wDAA+B,CAAA;IAC/B,kDAAyB,CAAA;IACzB,wCAAe,CAAA;IACf,kDAAyB,CAAA;AAC3B,CAAC,EAlBW,qBAAqB,KAArB,qBAAqB,QAkBhC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * SpeculativeTracker - Track speculative blocks and detect pass/fail.
3
+ */
4
+ import { THaibunEvent } from '../schema/events.js';
5
+ export type SpeculativeBlock = {
6
+ decisionSpanId: string;
7
+ events: THaibunEvent[];
8
+ passed: boolean | null;
9
+ };
10
+ /**
11
+ * SpeculativeTracker watches for speculative steps and groups them by decision span.
12
+ */
13
+ export declare class SpeculativeTracker {
14
+ private blocks;
15
+ trackEvent(event: THaibunEvent): void;
16
+ getBlocks(): Map<string, SpeculativeBlock>;
17
+ isBlockPassed(decisionSpanId: string): boolean;
18
+ clear(): void;
19
+ }
20
+ //# sourceMappingURL=speculative-tracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"speculative-tracker.d.ts","sourceRoot":"","sources":["../../src/monitor/speculative-tracker.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;CACxB,CAAC;AAEF;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAA4C;IAE1D,UAAU,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAqBrC,SAAS,IAAI,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAI1C,aAAa,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO;IAK9C,KAAK,IAAI,IAAI;CAGd"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * SpeculativeTracker - Track speculative blocks and detect pass/fail.
3
+ */
4
+ import { isSpeculative } from './event-view.js';
5
+ /**
6
+ * SpeculativeTracker watches for speculative steps and groups them by decision span.
7
+ */
8
+ export class SpeculativeTracker {
9
+ blocks = new Map();
10
+ trackEvent(event) {
11
+ if (!isSpeculative(event))
12
+ return;
13
+ // For now, use the event ID as block key
14
+ // TODO: Use decision span link when OTel integration complete
15
+ const blockId = event.id;
16
+ let block = this.blocks.get(blockId);
17
+ if (!block) {
18
+ block = { decisionSpanId: blockId, events: [], passed: null };
19
+ this.blocks.set(blockId, block);
20
+ }
21
+ block.events.push(event);
22
+ // Check if block is complete (has end event)
23
+ if (event.kind === 'lifecycle' && 'stage' in event && event.stage === 'end') {
24
+ block.passed = event.status === 'completed';
25
+ }
26
+ }
27
+ getBlocks() {
28
+ return this.blocks;
29
+ }
30
+ isBlockPassed(decisionSpanId) {
31
+ const block = this.blocks.get(decisionSpanId);
32
+ return block?.passed === true;
33
+ }
34
+ clear() {
35
+ this.blocks.clear();
36
+ }
37
+ }
38
+ //# sourceMappingURL=speculative-tracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"speculative-tracker.js","sourceRoot":"","sources":["../../src/monitor/speculative-tracker.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAQhD;;GAEG;AACH,MAAM,OAAO,kBAAkB;IACrB,MAAM,GAAkC,IAAI,GAAG,EAAE,CAAC;IAE1D,UAAU,CAAC,KAAmB;QAC5B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;YAAE,OAAO;QAElC,yCAAyC;QACzC,8DAA8D;QAC9D,MAAM,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC;QAEzB,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;YAC9D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAClC,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEzB,6CAA6C;QAC7C,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;YAC5E,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,KAAK,WAAW,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,aAAa,CAAC,cAAsB;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC9C,OAAO,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;CACF"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * MonitorState - Shared state management for monitors.
3
+ * Processes THaibunEvent streams into displayable state.
4
+ */
5
+ import { THaibunEvent } from '../schema/events.js';
6
+ export type TStepState = {
7
+ id: string;
8
+ label: string;
9
+ status: 'running' | 'completed' | 'failed';
10
+ error?: string;
11
+ isSpeculative: boolean;
12
+ type?: 'feature' | 'scenario' | 'step';
13
+ timestamp: number;
14
+ };
15
+ export type MonitorState = {
16
+ runningSteps: Map<string, TStepState>;
17
+ completedSteps: TStepState[];
18
+ currentFeature: string;
19
+ currentScenario: string;
20
+ finished: boolean;
21
+ };
22
+ /**
23
+ * Create initial empty monitor state.
24
+ */
25
+ export declare function createMonitorState(): MonitorState;
26
+ /**
27
+ * Process a single event and return updated state.
28
+ * This is a pure function - returns new state, doesn't mutate.
29
+ */
30
+ export declare function processEvent(state: MonitorState, event: THaibunEvent): MonitorState;
31
+ //# sourceMappingURL=state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/monitor/state.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;IACvC,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACtC,cAAc,EAAE,UAAU,EAAE,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,YAAY,CAQjD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,GAAG,YAAY,CAgDnF"}
@@ -0,0 +1,110 @@
1
+ /**
2
+ * MonitorState - Shared state management for monitors.
3
+ * Processes THaibunEvent streams into displayable state.
4
+ */
5
+ import { EventView, isSpeculative } from './event-view.js';
6
+ /**
7
+ * Create initial empty monitor state.
8
+ */
9
+ export function createMonitorState() {
10
+ return {
11
+ runningSteps: new Map(),
12
+ completedSteps: [],
13
+ currentFeature: '',
14
+ currentScenario: '',
15
+ finished: false,
16
+ };
17
+ }
18
+ /**
19
+ * Process a single event and return updated state.
20
+ * This is a pure function - returns new state, doesn't mutate.
21
+ */
22
+ export function processEvent(state, event) {
23
+ const view = new EventView(event);
24
+ if (event.kind === 'lifecycle') {
25
+ if (event.type === 'step') {
26
+ return processStepEvent(state, event, view);
27
+ }
28
+ else if (event.type === 'feature' && event.stage === 'start') {
29
+ return {
30
+ ...state,
31
+ currentFeature: event.label || '',
32
+ completedSteps: [...state.completedSteps, {
33
+ id: `feat-${event.timestamp}`,
34
+ label: `Feature: ${event.label}`,
35
+ status: 'completed',
36
+ isSpeculative: false,
37
+ type: 'feature',
38
+ timestamp: event.timestamp,
39
+ }],
40
+ };
41
+ }
42
+ else if (event.type === 'scenario' && event.stage === 'start') {
43
+ return {
44
+ ...state,
45
+ currentScenario: event.label || '',
46
+ completedSteps: [...state.completedSteps, {
47
+ id: `scen-${event.timestamp}`,
48
+ label: `Scenario: ${event.label}`,
49
+ status: 'completed',
50
+ isSpeculative: false,
51
+ type: 'scenario',
52
+ timestamp: event.timestamp,
53
+ }],
54
+ };
55
+ }
56
+ }
57
+ else if (event.kind === 'log') {
58
+ // Log events added to completed steps for display
59
+ return {
60
+ ...state,
61
+ completedSteps: [...state.completedSteps, {
62
+ id: `log-${event.timestamp}`,
63
+ label: event.message,
64
+ status: 'completed',
65
+ isSpeculative: false,
66
+ timestamp: event.timestamp,
67
+ }],
68
+ };
69
+ }
70
+ return state;
71
+ }
72
+ function processStepEvent(state, event, view) {
73
+ // event.type is already checked as 'step' before calling this function
74
+ const stepEvent = event;
75
+ const stepId = stepEvent.id;
76
+ const spec = isSpeculative(stepEvent);
77
+ if (event.stage === 'start') {
78
+ const newRunning = new Map(state.runningSteps);
79
+ newRunning.set(stepId, {
80
+ id: stepId,
81
+ label: event.label || '',
82
+ status: 'running',
83
+ isSpeculative: spec,
84
+ type: 'step',
85
+ timestamp: event.timestamp,
86
+ });
87
+ return { ...state, runningSteps: newRunning };
88
+ }
89
+ else if (event.stage === 'end') {
90
+ const newRunning = new Map(state.runningSteps);
91
+ newRunning.delete(stepId);
92
+ // For speculative steps, don't add to completedSteps (they're internal)
93
+ // unless they failed, to show what went wrong
94
+ if (spec && event.status === 'completed') {
95
+ return { ...state, runningSteps: newRunning };
96
+ }
97
+ const newCompleted = [...state.completedSteps, {
98
+ id: stepId,
99
+ label: event.label || '',
100
+ status: event.status,
101
+ error: event.error,
102
+ isSpeculative: spec,
103
+ type: 'step',
104
+ timestamp: event.timestamp,
105
+ }];
106
+ return { ...state, runningSteps: newRunning, completedSteps: newCompleted };
107
+ }
108
+ return state;
109
+ }
110
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/monitor/state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Browser-safe Timer for monitor modules.
3
+ * Duplicated from lib/Timer.ts to avoid pulling in transitive dependencies.
4
+ */
5
+ export declare class Timer {
6
+ static startTime: Date;
7
+ static key: string;
8
+ static START_TIME: number;
9
+ static since(): number;
10
+ }
11
+ //# sourceMappingURL=timer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timer.d.ts","sourceRoot":"","sources":["../../src/monitor/timer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,KAAK;IAChB,MAAM,CAAC,SAAS,OAAc;IAC9B,MAAM,CAAC,GAAG,SAAkC;IAC5C,MAAM,CAAC,UAAU,SAAc;IAE/B,MAAM,CAAC,KAAK;CAGb"}