rterm-backend 2.9.10 → 2.9.12

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 +32 -1
  2. package/package.json +2 -4
package/bin/gybackend.cjs CHANGED
@@ -346913,6 +346913,10 @@ ${body}`;
346913
346913
  fireCount: 0
346914
346914
  };
346915
346915
  m.upsertTrigger(entry);
346916
+ try {
346917
+ engine?.upsert?.(entry);
346918
+ } catch {
346919
+ }
346916
346920
  const msg2 = `Created trigger "${entry.name}" (${entry.id}) [${entry.kind}] \u2192 ${entry.action} ${entry.playbookId}.`;
346917
346921
  emit8(context2, "manage_trigger", args, msg2);
346918
346922
  return msg2;
@@ -346945,6 +346949,10 @@ ${body}`;
346945
346949
  ...args.cooldownSeconds !== void 0 ? { cooldownSeconds: args.cooldownSeconds } : {}
346946
346950
  };
346947
346951
  m.upsertTrigger(merged);
346952
+ try {
346953
+ engine?.upsert?.(merged);
346954
+ } catch {
346955
+ }
346948
346956
  const msg2 = `Updated trigger "${merged.name}" (${merged.id}).`;
346949
346957
  emit8(context2, "manage_trigger", args, msg2);
346950
346958
  return msg2;
@@ -346957,6 +346965,12 @@ ${body}`;
346957
346965
  return msg3;
346958
346966
  }
346959
346967
  const ok = m.deleteTrigger(key);
346968
+ if (ok) {
346969
+ try {
346970
+ engine?.remove?.(key);
346971
+ } catch {
346972
+ }
346973
+ }
346960
346974
  const msg2 = ok ? `Deleted trigger "${key}".` : `No trigger "${key}".`;
346961
346975
  emit8(context2, "manage_trigger", args, msg2);
346962
346976
  return msg2;
@@ -346969,6 +346983,13 @@ ${body}`;
346969
346983
  return msg3;
346970
346984
  }
346971
346985
  const ok = m.setTriggerEnabled(key, action === "enable");
346986
+ if (ok) {
346987
+ try {
346988
+ const t = m.listTriggers().find((x) => x.id === key || x.name === key);
346989
+ if (t) engine?.upsert?.({ ...t, enabled: action === "enable" });
346990
+ } catch {
346991
+ }
346992
+ }
346972
346993
  const msg2 = ok ? `Trigger "${key}" ${action}d.` : `No trigger "${key}".`;
346973
346994
  emit8(context2, "manage_trigger", args, msg2);
346974
346995
  return msg2;
@@ -347146,13 +347167,23 @@ async function manageRecording(args, context2) {
347146
347167
  if (!args.terminalId) {
347147
347168
  out = "start requires terminalId.";
347148
347169
  } else {
347149
- out = `Recording started: ${r.start(args.terminalId, { title: args.title })}`;
347170
+ const ts = context2.terminalService;
347171
+ const id = ts && typeof ts.startRecording === "function" ? ts.startRecording(args.terminalId, { title: args.title }) : r.start(args.terminalId, { title: args.title });
347172
+ out = `Recording started: ${id}`;
347150
347173
  }
347151
347174
  } else if (args.action === "stop") {
347152
347175
  if (!args.recordingId) {
347153
347176
  out = "stop requires recordingId.";
347154
347177
  } else {
347155
347178
  const rec = r.stop(args.recordingId);
347179
+ try {
347180
+ const ts = context2.terminalService;
347181
+ const termId = rec.terminalId ?? args.terminalId;
347182
+ if (termId && ts?.activeRecordings instanceof Map) {
347183
+ if (ts.activeRecordings.get(termId) === args.recordingId) ts.activeRecordings.delete(termId);
347184
+ }
347185
+ } catch {
347186
+ }
347156
347187
  out = `Recording ${args.recordingId} stopped (${rec.events.length} events).`;
347157
347188
  }
347158
347189
  } else if (args.action === "replay") {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "rterm-backend",
3
- "version": "2.9.10",
4
- "description": "rterm-backend \u2014 the headless AI-native backend for RTerm (dual-published as neuralOS). 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/Conductor durable-agent bridge). The RTerm desktop app stays RTerm; neuralOS is the standalone backend daemon. Dual-published as rterm-backend. v2.9.10: AgentSpan Phase 2 \u2014 export/register RTerm playbooks as Conductor workflows + durable task delegation (9 bridge tools, 7 plugins total).",
3
+ "version": "2.9.12",
4
+ "description": "rterm-backend \u2014 the headless AI-native backend for RTerm (dual-published as neuralOS). 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. v2.9.12: agent-created triggers fire immediately (live TriggerEngine sync).",
5
5
  "main": "bin/gybackend.cjs",
6
6
  "bin": {
7
7
  "gybackend": "bin/gybackend.cjs",
@@ -66,8 +66,6 @@
66
66
  "etw",
67
67
  "agentspan",
68
68
  "conductor",
69
- "durable-agents",
70
- "playbooks",
71
69
  "monitoring"
72
70
  ]
73
71
  }