neuralos 3.0.3 → 3.0.4

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 (2) hide show
  1. package/bin/gybackend.cjs +27 -0
  2. package/package.json +2 -2
package/bin/gybackend.cjs CHANGED
@@ -347146,6 +347146,9 @@ function createObservabilityBridge(deps) {
347146
347146
  dashboardState: async () => requireObs(deps).dashboard.state(),
347147
347147
  /** dashboard summary line. */
347148
347148
  dashboardSummary: async () => requireObs(deps).dashboard.summary(),
347149
+ /** monitor-status diagnostic: why stats aren't displaying per terminal. */
347150
+ monitorStatus: async () => requireObs(deps).monitorStatus.report(),
347151
+ monitorStatusSummary: async () => ({ summary: requireObs(deps).monitorStatus.summary() }),
347149
347152
  // ── secrets vault (metadata only — never values) ────────────────────────
347150
347153
  secretsList: async (params) => requireObs(deps).secrets.list(params),
347151
347154
  secretsSet: async (params) => {
@@ -347291,6 +347294,8 @@ var OBSERVABILITY_METHODS = [
347291
347294
  "observability:metricsPrometheus",
347292
347295
  "observability:dashboardState",
347293
347296
  "observability:dashboardSummary",
347297
+ "observability:monitorStatus",
347298
+ "observability:monitorStatusSummary",
347294
347299
  "observability:secretsList",
347295
347300
  "observability:secretsSet",
347296
347301
  "observability:secretsDelete",
@@ -347678,6 +347683,21 @@ async function getCloudInventory(args, context2) {
347678
347683
  emit9(context2, "get_cloud_inventory", args, out);
347679
347684
  return out;
347680
347685
  }
347686
+ var getMonitorStatusSchema = external_exports.object({
347687
+ format: external_exports.enum(["report", "summary"]).optional().describe("'report' = full per-terminal JSON; 'summary' = compact text (default).")
347688
+ });
347689
+ async function getMonitorStatus(args, context2) {
347690
+ const { o, msg } = obs(context2, "get_monitor_status", args);
347691
+ if (!o) return msg;
347692
+ let out;
347693
+ if (args.format === "report") {
347694
+ out = JSON.stringify(o.monitorStatus.report(), null, 2);
347695
+ } else {
347696
+ out = o.monitorStatus.summary();
347697
+ }
347698
+ emit9(context2, "get_monitor_status", args, out);
347699
+ return out;
347700
+ }
347681
347701
  var getLiveDashboardSchema = external_exports.object({
347682
347702
  action: external_exports.enum(["state", "subscribers"]).describe("'state' = current dashboard state; 'subscribers' = connected client count.")
347683
347703
  });
@@ -348149,6 +348169,11 @@ function buildToolsForModel(readFileSupport) {
348149
348169
  description: "Cloud resource inventory (AWS/GCP/Azure) \u2014 summary counts by provider/state, query instances (filter by provider/state/region), or pull fresh inventory.",
348150
348170
  schema: getCloudInventorySchema
348151
348171
  },
348172
+ {
348173
+ name: "get_monitor_status",
348174
+ description: "Monitor-status diagnostic \u2014 reports why stats aren't displaying per terminal (publisher wired, session exists, collection stuck in-flight, platform, last-collect age).",
348175
+ schema: getMonitorStatusSchema
348176
+ },
348152
348177
  {
348153
348178
  name: "get_live_dashboard",
348154
348179
  description: "Live multi-client dashboard \u2014 read the current unified dashboard state/summary, or the number of connected dashboard subscribers.",
@@ -348232,6 +348257,7 @@ var toolImplementations = {
348232
348257
  manageGitops,
348233
348258
  managePlaybookVersion,
348234
348259
  getCloudInventory,
348260
+ getMonitorStatus,
348235
348261
  getLiveDashboard,
348236
348262
  ingestApmSpans,
348237
348263
  getApmSummary,
@@ -386868,6 +386894,7 @@ var ResourceMonitorService = class {
386868
386894
  }
386869
386895
  const sourceTerminalId = session.sourceTerminalId || terminalIds[0];
386870
386896
  const snapshot = await this.collectSnapshot(sourceTerminalId);
386897
+ session.lastCollectAt = Date.now();
386871
386898
  if (this.publisher) {
386872
386899
  terminalIds.forEach((terminalId) => {
386873
386900
  this.publisher?.(
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "neuralos",
3
- "version": "3.0.3",
4
- "description": "neuralOS — the headless AI-native backend for RTerm. run RTerm-as-a-service (AI agent, SSH/WinRM/Serial/local terminals, fleet orchestration, advanced automation, SRE observability, Netdata, AWS APerf, plugin system, governance/audit, Prometheus/OTel metrics export, secrets vault, on-call paging, AI cost budgets, GitOps, cloud inventory, APM/DEM/Infra/ETW ingestion, AgentSpan durable-agent bridge). The RTerm desktop app stays RTerm; neuralOS is the standalone backend daemon. Dual-published as rterm-backend. v3.0.3: fixes /dashboard \"Upgrade Required\" on the desktop app (Electron main now serves it too).",
3
+ "version": "3.0.4",
4
+ "description": "neuralOS — the headless AI-native backend for RTerm. run RTerm-as-a-service (AI agent, SSH/WinRM/Serial/local terminals, fleet orchestration, advanced automation, SRE observability, Netdata, AWS APerf, plugin system, governance/audit, Prometheus/OTel metrics export, secrets vault, on-call paging, AI cost budgets, GitOps, cloud inventory, APM/DEM/Infra/ETW ingestion, AgentSpan durable-agent bridge). The RTerm desktop app stays RTerm; neuralOS is the standalone backend daemon. Dual-published as rterm-backend. v3.0.4: monitor-status diagnostic over RPC + agent tool.",
5
5
  "main": "bin/gybackend.cjs",
6
6
  "bin": {
7
7
  "neuralos": "bin/gybackend.cjs",