hanoman 0.1.53 → 0.1.54

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.
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.1.53",
3
- "sha": "b9082276",
4
- "builtAt": "2026-08-20T22:42:53.323Z"
2
+ "version": "0.1.54",
3
+ "sha": "60388865",
4
+ "builtAt": "2026-08-21T02:07:30.384Z"
5
5
  }
package/dist/cli.js CHANGED
@@ -7284,6 +7284,28 @@ var init_terminal_workspace = __esm({
7284
7284
  }
7285
7285
  });
7286
7286
 
7287
+ // ../shared/src/terminal-io.ts
7288
+ var TERMINAL_RESPONSE;
7289
+ var init_terminal_io = __esm({
7290
+ "../shared/src/terminal-io.ts"() {
7291
+ "use strict";
7292
+ TERMINAL_RESPONSE = new RegExp([
7293
+ "\\x1b\\[[?>][0-9;]*c",
7294
+ // balasan DA
7295
+ "\\x1b\\[\\??[0-9]+;[0-9]+R",
7296
+ // CPR / DECXCPR
7297
+ "\\x1b\\[\\??[0-9;]*n",
7298
+ // balasan DSR
7299
+ "\\x1b\\[\\??[0-9;]*\\$y",
7300
+ // DECRPM
7301
+ "\\x1b\\][0-9][0-9;]*;[^\\x07\\x1b]*(?:\\x07|\\x1b\\\\)",
7302
+ // balasan warna OSC
7303
+ "\\x1bP[0-9]*[$+>][a-z|][^\\x1b]*\\x1b\\\\"
7304
+ // DECRPSS / XTGETTCAP / XTVERSION
7305
+ ].join("|"), "g");
7306
+ }
7307
+ });
7308
+
7287
7309
  // ../shared/src/index.ts
7288
7310
  var init_src = __esm({
7289
7311
  "../shared/src/index.ts"() {
@@ -7318,6 +7340,7 @@ var init_src = __esm({
7318
7340
  init_changelog();
7319
7341
  init_cron_expr();
7320
7342
  init_terminal_workspace();
7343
+ init_terminal_io();
7321
7344
  }
7322
7345
  });
7323
7346
 
package/dist/server.js CHANGED
@@ -7889,6 +7889,29 @@ var init_terminal_workspace = __esm({
7889
7889
  }
7890
7890
  });
7891
7891
 
7892
+ // ../shared/src/terminal-io.ts
7893
+ var TERMINAL_RESPONSE, isTerminalResponse;
7894
+ var init_terminal_io = __esm({
7895
+ "../shared/src/terminal-io.ts"() {
7896
+ "use strict";
7897
+ TERMINAL_RESPONSE = new RegExp([
7898
+ "\\x1b\\[[?>][0-9;]*c",
7899
+ // balasan DA
7900
+ "\\x1b\\[\\??[0-9]+;[0-9]+R",
7901
+ // CPR / DECXCPR
7902
+ "\\x1b\\[\\??[0-9;]*n",
7903
+ // balasan DSR
7904
+ "\\x1b\\[\\??[0-9;]*\\$y",
7905
+ // DECRPM
7906
+ "\\x1b\\][0-9][0-9;]*;[^\\x07\\x1b]*(?:\\x07|\\x1b\\\\)",
7907
+ // balasan warna OSC
7908
+ "\\x1bP[0-9]*[$+>][a-z|][^\\x1b]*\\x1b\\\\"
7909
+ // DECRPSS / XTGETTCAP / XTVERSION
7910
+ ].join("|"), "g");
7911
+ isTerminalResponse = (d) => d.length > 0 && d.replace(TERMINAL_RESPONSE, "") === "";
7912
+ }
7913
+ });
7914
+
7892
7915
  // ../shared/src/index.ts
7893
7916
  var init_src = __esm({
7894
7917
  "../shared/src/index.ts"() {
@@ -7923,6 +7946,7 @@ var init_src = __esm({
7923
7946
  init_changelog();
7924
7947
  init_cron_expr();
7925
7948
  init_terminal_workspace();
7949
+ init_terminal_io();
7926
7950
  }
7927
7951
  });
7928
7952
 
@@ -10736,7 +10760,7 @@ function spawnPty(...args) {
10736
10760
  );
10737
10761
  }
10738
10762
  }
10739
- var socket, PREFIX, MAX_SCROLLBACK, SCROLLBACK_SLACK, POLL_MS, markerFilled, attached, claudeBin, shellBin, codexBin, agentBin, rootBypassEnv, frame, name, promptFilePath, goalGatePath, goalStatePath, agentsFilePath, askpassDenyPath, ASKPASS_DENY, NO_SERVER, TmuxError, sq, idFor, FMT, listSessions, liveDecisions, getSession, hooks, emitBirth, emitDeath, customAgentSource, customAgentsFor, sleep, paneText, dialogIO, DIALOG_CAPTURE_LINES, GOAL_ARMED_MARKERS, goalArmed, COALESCE_MS, COALESCE_MAX_BYTES, trimScrollback, phaseKey, paneComplete, sessionFinished, poll, TERMINAL_QUERY, stripTerminalQueries, TERMINAL_RESPONSE, isTerminalResponse, detach;
10763
+ var socket, PREFIX, MAX_SCROLLBACK, SCROLLBACK_SLACK, POLL_MS, markerFilled, attached, claudeBin, shellBin, codexBin, agentBin, rootBypassEnv, frame, name, promptFilePath, goalGatePath, goalStatePath, agentsFilePath, askpassDenyPath, ASKPASS_DENY, NO_SERVER, TmuxError, sq, idFor, FMT, listSessions, liveDecisions, getSession, hooks, emitBirth, emitDeath, customAgentSource, customAgentsFor, sleep, paneText, dialogIO, DIALOG_CAPTURE_LINES, GOAL_ARMED_MARKERS, goalArmed, COALESCE_MS, COALESCE_MAX_BYTES, trimScrollback, phaseKey, paneComplete, sessionFinished, poll, TERMINAL_QUERY, stripTerminalQueries, detach;
10740
10764
  var init_pty = __esm({
10741
10765
  "src/services/pty.ts"() {
10742
10766
  "use strict";
@@ -10898,21 +10922,6 @@ exit 1
10898
10922
  // XTWINOPS laporan — berparameter TUNGGAL
10899
10923
  ].join("|"), "g");
10900
10924
  stripTerminalQueries = (s2) => s2.replace(TERMINAL_QUERY, "");
10901
- TERMINAL_RESPONSE = new RegExp([
10902
- "\\x1b\\[[?>][0-9;]*c",
10903
- // balasan DA
10904
- "\\x1b\\[\\??[0-9]+;[0-9]+R",
10905
- // CPR / DECXCPR
10906
- "\\x1b\\[\\??[0-9;]*n",
10907
- // balasan DSR
10908
- "\\x1b\\[\\??[0-9;]*\\$y",
10909
- // DECRPM
10910
- "\\x1b\\][0-9][0-9;]*;[^\\x07\\x1b]*(?:\\x07|\\x1b\\\\)",
10911
- // balasan warna OSC
10912
- "\\x1bP[0-9]*[$+>][a-z|][^\\x1b]*\\x1b\\\\"
10913
- // DECRPSS / XTGETTCAP / XTVERSION
10914
- ].join("|"), "g");
10915
- isTerminalResponse = (d) => d.length > 0 && d.replace(TERMINAL_RESPONSE, "") === "";
10916
10925
  detach = (id, c) => {
10917
10926
  attached.get(id)?.clients.delete(c);
10918
10927
  };
@@ -39595,8 +39604,10 @@ async function terminal_default(app2, opts) {
39595
39604
  } catch {
39596
39605
  return;
39597
39606
  }
39598
- if (m.t === "in" && typeof m.d === "string") writeTo(id, m.d, client);
39599
- else if (m.t === "resize" && m.cols && m.rows) resize(id, m.cols, m.rows);
39607
+ if (m.t === "in" && typeof m.d === "string") {
39608
+ writeTo(id, m.d, client);
39609
+ if (typeof m.seq === "number") socket2.send(JSON.stringify({ t: "ack", seq: m.seq }));
39610
+ } else if (m.t === "resize" && m.cols && m.rows) resize(id, m.cols, m.rows);
39600
39611
  });
39601
39612
  const revalidate = setInterval(() => {
39602
39613
  void revalidateWsPrincipal(req, principal).then((ok2) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hanoman",
3
- "version": "0.1.53",
3
+ "version": "0.1.54",
4
4
  "description": "Orchestrator + dashboard workflow docs-driven untuk sesi Claude Code / Codex",
5
5
  "type": "module",
6
6
  "repository": {