@bluelibs/runner-dev 5.1.0 → 5.3.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 (76) hide show
  1. package/AI.md +58 -6
  2. package/README.md +65 -6
  3. package/dist/generated/resolvers-types.d.ts +201 -0
  4. package/dist/index.d.ts +4 -0
  5. package/dist/resources/docs.generator.resource.d.ts +1 -0
  6. package/dist/resources/graphql-accumulator.resource.js +1 -0
  7. package/dist/resources/graphql-accumulator.resource.js.map +1 -1
  8. package/dist/resources/graphql.query.task.d.ts +2 -0
  9. package/dist/resources/introspector.cli.resource.js +27 -1
  10. package/dist/resources/introspector.cli.resource.js.map +1 -1
  11. package/dist/resources/introspector.resource.d.ts +1 -0
  12. package/dist/resources/introspector.resource.js +3 -2
  13. package/dist/resources/introspector.resource.js.map +1 -1
  14. package/dist/resources/live.resource.d.ts +3 -0
  15. package/dist/resources/live.resource.js +26 -0
  16. package/dist/resources/live.resource.js.map +1 -1
  17. package/dist/resources/models/Introspector.d.ts +33 -3
  18. package/dist/resources/models/Introspector.js +159 -2
  19. package/dist/resources/models/Introspector.js.map +1 -1
  20. package/dist/resources/models/durable.runtime.d.ts +1 -1
  21. package/dist/resources/models/durable.runtime.js +27 -2
  22. package/dist/resources/models/durable.runtime.js.map +1 -1
  23. package/dist/resources/models/initializeFromStore.js +75 -1
  24. package/dist/resources/models/initializeFromStore.js.map +1 -1
  25. package/dist/resources/models/initializeFromStore.utils.d.ts +5 -1
  26. package/dist/resources/models/initializeFromStore.utils.js +20 -1
  27. package/dist/resources/models/initializeFromStore.utils.js.map +1 -1
  28. package/dist/resources/routeHandlers/createLiveStreamHandler.d.ts +16 -0
  29. package/dist/resources/routeHandlers/createLiveStreamHandler.js +127 -0
  30. package/dist/resources/routeHandlers/createLiveStreamHandler.js.map +1 -0
  31. package/dist/resources/routeHandlers/registerHttpRoutes.hook.d.ts +2 -0
  32. package/dist/resources/routeHandlers/requestCorrelation.d.ts +11 -0
  33. package/dist/resources/routeHandlers/requestCorrelation.js +29 -0
  34. package/dist/resources/routeHandlers/requestCorrelation.js.map +1 -0
  35. package/dist/resources/server.resource.d.ts +2 -0
  36. package/dist/resources/server.resource.js +13 -1
  37. package/dist/resources/server.resource.js.map +1 -1
  38. package/dist/resources/swap.resource.d.ts +1 -0
  39. package/dist/schema/index.js +4 -0
  40. package/dist/schema/index.js.map +1 -1
  41. package/dist/schema/model.d.ts +23 -0
  42. package/dist/schema/model.js.map +1 -1
  43. package/dist/schema/query.js +23 -0
  44. package/dist/schema/query.js.map +1 -1
  45. package/dist/schema/types/AllType.js +8 -0
  46. package/dist/schema/types/AllType.js.map +1 -1
  47. package/dist/schema/types/BaseElementCommon.js +10 -0
  48. package/dist/schema/types/BaseElementCommon.js.map +1 -1
  49. package/dist/schema/types/InterceptorOwnersType.d.ts +2 -0
  50. package/dist/schema/types/InterceptorOwnersType.js +63 -0
  51. package/dist/schema/types/InterceptorOwnersType.js.map +1 -0
  52. package/dist/schema/types/LiveType.js +14 -76
  53. package/dist/schema/types/LiveType.js.map +1 -1
  54. package/dist/schema/types/ResourceType.js +5 -0
  55. package/dist/schema/types/ResourceType.js.map +1 -1
  56. package/dist/schema/types/RunOptionsType.d.ts +2 -0
  57. package/dist/schema/types/RunOptionsType.js +71 -0
  58. package/dist/schema/types/RunOptionsType.js.map +1 -0
  59. package/dist/schema/types/TaskType.js +15 -0
  60. package/dist/schema/types/TaskType.js.map +1 -1
  61. package/dist/schema/types/index.d.ts +2 -0
  62. package/dist/schema/types/index.js +5 -1
  63. package/dist/schema/types/index.js.map +1 -1
  64. package/dist/ui/.vite/manifest.json +2 -2
  65. package/dist/ui/assets/docs-BhRuaJ5l.css +1 -0
  66. package/dist/ui/assets/docs-H4oDZj7p.js +302 -0
  67. package/dist/ui/assets/docs-H4oDZj7p.js.map +1 -0
  68. package/dist/utils/healthCollectors.d.ts +37 -0
  69. package/dist/utils/healthCollectors.js +147 -0
  70. package/dist/utils/healthCollectors.js.map +1 -0
  71. package/dist/version.d.ts +1 -1
  72. package/dist/version.js +1 -1
  73. package/package.json +2 -4
  74. package/dist/ui/assets/docs-B_-zFz4-.css +0 -1
  75. package/dist/ui/assets/docs-Be-GHfZi.js +0 -353
  76. package/dist/ui/assets/docs-Be-GHfZi.js.map +0 -1
@@ -0,0 +1,37 @@
1
+ /** Mean event‐loop delay in nanoseconds. */
2
+ export declare function getEventLoopMeanNs(): number;
3
+ /** Reset the event‐loop delay histogram (for the optional `reset` arg). */
4
+ export declare function resetEventLoopHistogram(): void;
5
+ /** Total GC collections observed since process start. */
6
+ export declare let gcTotalCollections: number;
7
+ /** Total GC pause duration (ms) since process start. */
8
+ export declare let gcTotalDurationMs: number;
9
+ /** Return GC stats within a sliding time window. */
10
+ export declare function getGcWindow(windowMs: number): {
11
+ collections: number;
12
+ duration: number;
13
+ };
14
+ export declare function getCpuEluUtilization(): number;
15
+ export interface HealthSnapshot {
16
+ memory: {
17
+ heapUsed: number;
18
+ heapTotal: number;
19
+ rss: number;
20
+ };
21
+ cpu: {
22
+ usage: number;
23
+ loadAverage: number;
24
+ };
25
+ eventLoop: {
26
+ lag: number;
27
+ };
28
+ gc: {
29
+ collections: number;
30
+ duration: number;
31
+ };
32
+ }
33
+ export declare function getHealthSnapshot(gcWindowMs?: number): HealthSnapshot;
34
+ /** Extract the latest `timestampMs` from one or more arrays of timestamped entries. */
35
+ export declare function latestTimestamp(...arrays: Array<{
36
+ timestampMs: number;
37
+ }[]>): number | undefined;
@@ -0,0 +1,147 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.gcTotalDurationMs = exports.gcTotalCollections = void 0;
27
+ exports.getEventLoopMeanNs = getEventLoopMeanNs;
28
+ exports.resetEventLoopHistogram = resetEventLoopHistogram;
29
+ exports.getGcWindow = getGcWindow;
30
+ exports.getCpuEluUtilization = getCpuEluUtilization;
31
+ exports.getHealthSnapshot = getHealthSnapshot;
32
+ exports.latestTimestamp = latestTimestamp;
33
+ /**
34
+ * Shared system health collectors used by both the GraphQL live resolvers
35
+ * and the SSE stream handler. Centralises event‐loop delay, GC tracking,
36
+ * and CPU ELU measurement so only one set of observers exists per process.
37
+ */
38
+ const os = __importStar(require("node:os"));
39
+ const node_perf_hooks_1 = require("node:perf_hooks");
40
+ // ---------------------------------------------------------------------------
41
+ // Event‐loop delay histogram
42
+ // ---------------------------------------------------------------------------
43
+ let histogram;
44
+ try {
45
+ histogram = (0, node_perf_hooks_1.monitorEventLoopDelay)({ resolution: 10 });
46
+ histogram.enable();
47
+ }
48
+ catch {
49
+ // Unsupported runtime (e.g. older Node or non‐Node)
50
+ }
51
+ /** Mean event‐loop delay in nanoseconds. */
52
+ function getEventLoopMeanNs() {
53
+ return histogram?.mean ?? 0;
54
+ }
55
+ /** Reset the event‐loop delay histogram (for the optional `reset` arg). */
56
+ function resetEventLoopHistogram() {
57
+ try {
58
+ histogram?.reset();
59
+ }
60
+ catch {
61
+ // ignore
62
+ }
63
+ }
64
+ // ---------------------------------------------------------------------------
65
+ // GC tracking — both lifetime totals and a windowed ring buffer
66
+ // ---------------------------------------------------------------------------
67
+ /** Total GC collections observed since process start. */
68
+ exports.gcTotalCollections = 0;
69
+ /** Total GC pause duration (ms) since process start. */
70
+ exports.gcTotalDurationMs = 0;
71
+ const gcEvents = [];
72
+ const GC_EVENTS_MAX = 10_000;
73
+ function pushGcEvent(duration) {
74
+ gcEvents.push({ ts: Date.now(), duration });
75
+ if (gcEvents.length > GC_EVENTS_MAX) {
76
+ gcEvents.splice(0, Math.floor(GC_EVENTS_MAX * 0.1));
77
+ }
78
+ }
79
+ try {
80
+ const obs = new node_perf_hooks_1.PerformanceObserver((list) => {
81
+ for (const entry of list.getEntries()) {
82
+ exports.gcTotalCollections += 1;
83
+ exports.gcTotalDurationMs += entry.duration;
84
+ pushGcEvent(entry.duration);
85
+ }
86
+ });
87
+ obs.observe({ entryTypes: ["gc"], buffered: true });
88
+ }
89
+ catch {
90
+ // noop — GC observation not available
91
+ }
92
+ /** Return GC stats within a sliding time window. */
93
+ function getGcWindow(windowMs) {
94
+ const since = Date.now() - windowMs;
95
+ let collections = 0;
96
+ let duration = 0;
97
+ for (let i = gcEvents.length - 1; i >= 0; i--) {
98
+ if (gcEvents[i].ts < since)
99
+ break;
100
+ collections += 1;
101
+ duration += gcEvents[i].duration;
102
+ }
103
+ return { collections, duration };
104
+ }
105
+ // ---------------------------------------------------------------------------
106
+ // CPU utilisation via Event Loop Utilisation (ELU)
107
+ // ---------------------------------------------------------------------------
108
+ let prevElu;
109
+ function getCpuEluUtilization() {
110
+ try {
111
+ const current = prevElu
112
+ ? node_perf_hooks_1.performance.eventLoopUtilization(prevElu)
113
+ : node_perf_hooks_1.performance.eventLoopUtilization();
114
+ prevElu = current;
115
+ return Number.isFinite(current.utilization) ? current.utilization : 0;
116
+ }
117
+ catch {
118
+ return 0;
119
+ }
120
+ }
121
+ function getHealthSnapshot(gcWindowMs = 30_000) {
122
+ const m = process.memoryUsage();
123
+ const meanNs = getEventLoopMeanNs();
124
+ const gc = getGcWindow(gcWindowMs);
125
+ return {
126
+ memory: { heapUsed: m.heapUsed, heapTotal: m.heapTotal, rss: m.rss },
127
+ cpu: { usage: getCpuEluUtilization(), loadAverage: os.loadavg()[0] ?? 0 },
128
+ eventLoop: { lag: Number.isFinite(meanNs) ? meanNs / 1e6 : 0 },
129
+ gc,
130
+ };
131
+ }
132
+ // ---------------------------------------------------------------------------
133
+ // Timestamp helpers
134
+ // ---------------------------------------------------------------------------
135
+ /** Extract the latest `timestampMs` from one or more arrays of timestamped entries. */
136
+ function latestTimestamp(...arrays) {
137
+ let max;
138
+ for (const arr of arrays) {
139
+ for (const entry of arr) {
140
+ if (max === undefined || entry.timestampMs > max) {
141
+ max = entry.timestampMs;
142
+ }
143
+ }
144
+ }
145
+ return max;
146
+ }
147
+ //# sourceMappingURL=healthCollectors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"healthCollectors.js","sourceRoot":"","sources":["../../src/utils/healthCollectors.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AA2BA,gDAEC;AAGD,0DAMC;AAmCD,kCAaC;AAQD,oDAUC;AAaD,8CAWC;AAOD,0CAYC;AAnJD;;;;GAIG;AACH,4CAA8B;AAC9B,qDAMyB;AAEzB,8EAA8E;AAC9E,6BAA6B;AAC7B,8EAA8E;AAE9E,IAAI,SAAwC,CAAC;AAC7C,IAAI,CAAC;IACH,SAAS,GAAG,IAAA,uCAAqB,EAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;IACtD,SAAS,CAAC,MAAM,EAAE,CAAC;AACrB,CAAC;AAAC,MAAM,CAAC;IACP,oDAAoD;AACtD,CAAC;AAED,4CAA4C;AAC5C,SAAgB,kBAAkB;IAChC,OAAO,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED,2EAA2E;AAC3E,SAAgB,uBAAuB;IACrC,IAAI,CAAC;QACH,SAAS,EAAE,KAAK,EAAE,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,SAAS;IACX,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,gEAAgE;AAChE,8EAA8E;AAE9E,yDAAyD;AAC9C,QAAA,kBAAkB,GAAG,CAAC,CAAC;AAClC,wDAAwD;AAC7C,QAAA,iBAAiB,GAAG,CAAC,CAAC;AAEjC,MAAM,QAAQ,GAAuC,EAAE,CAAC;AACxD,MAAM,aAAa,GAAG,MAAM,CAAC;AAE7B,SAAS,WAAW,CAAC,QAAgB;IACnC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC5C,IAAI,QAAQ,CAAC,MAAM,GAAG,aAAa,EAAE,CAAC;QACpC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,GAAG,CAAC,CAAC,CAAC;IACtD,CAAC;AACH,CAAC;AAED,IAAI,CAAC;IACH,MAAM,GAAG,GAAG,IAAI,qCAAmB,CAAC,CAAC,IAAI,EAAE,EAAE;QAC3C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;YACtC,0BAAkB,IAAI,CAAC,CAAC;YACxB,yBAAiB,IAAI,KAAK,CAAC,QAAQ,CAAC;YACpC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CAAC,CAAC;IACH,GAAG,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AACtD,CAAC;AAAC,MAAM,CAAC;IACP,sCAAsC;AACxC,CAAC;AAED,oDAAoD;AACpD,SAAgB,WAAW,CAAC,QAAgB;IAI1C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC;IACpC,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK;YAAE,MAAM;QAClC,WAAW,IAAI,CAAC,CAAC;QACjB,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IACnC,CAAC;IACD,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;AACnC,CAAC;AAED,8EAA8E;AAC9E,mDAAmD;AACnD,8EAA8E;AAE9E,IAAI,OAAyC,CAAC;AAE9C,SAAgB,oBAAoB;IAClC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,OAAO;YACrB,CAAC,CAAC,6BAAW,CAAC,oBAAoB,CAAC,OAAO,CAAC;YAC3C,CAAC,CAAC,6BAAW,CAAC,oBAAoB,EAAE,CAAC;QACvC,OAAO,GAAG,OAAO,CAAC;QAClB,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IACxE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AAaD,SAAgB,iBAAiB,CAAC,UAAU,GAAG,MAAM;IACnD,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAChC,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;IACpC,MAAM,EAAE,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;IAEnC,OAAO;QACL,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE;QACpE,GAAG,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAAE,WAAW,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;QACzE,SAAS,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;QAC9D,EAAE;KACH,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,oBAAoB;AACpB,8EAA8E;AAE9E,uFAAuF;AACvF,SAAgB,eAAe,CAC7B,GAAG,MAAwC;IAE3C,IAAI,GAAuB,CAAC;IAC5B,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;YACxB,IAAI,GAAG,KAAK,SAAS,IAAI,KAAK,CAAC,WAAW,GAAG,GAAG,EAAE,CAAC;gBACjD,GAAG,GAAG,KAAK,CAAC,WAAW,CAAC;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- declare const v = "5.1.0";
1
+ declare const v = "5.3.0";
2
2
  export default v;
package/dist/version.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  // Auto-generated by scripts/sync-version.ts. Do not edit manually.
4
- const v = "5.1.0";
4
+ const v = "5.3.0";
5
5
  exports.default = v;
6
6
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bluelibs/runner-dev",
3
- "version": "5.1.0",
3
+ "version": "5.3.0",
4
4
  "description": "BlueLibs Runner DevTools",
5
5
  "main": "dist/index.js",
6
6
  "repository": {
@@ -104,6 +104,7 @@
104
104
  "@adobe/jsonschema2md": "^8.0.5",
105
105
  "@apollo/server": "^5.0.0",
106
106
  "@as-integrations/express5": "^1.1.2",
107
+ "@bluelibs/runner": "^5.5.0",
107
108
  "@bluelibs/smart": "^2.2.1",
108
109
  "@modelcontextprotocol/sdk": "^1.17.2",
109
110
  "@types/prismjs": "^1.26.5",
@@ -117,9 +118,6 @@
117
118
  "zod": "3.25.76",
118
119
  "zod-to-json-schema": "^3.24.6"
119
120
  },
120
- "peerDependencies": {
121
- "@bluelibs/runner": "^5.3.0"
122
- },
123
121
  "overrides": {
124
122
  "react": "18.3.1",
125
123
  "react-dom": "18.3.1",