@hydra-acp/browser 0.1.8 → 0.1.10

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.
package/dist/hydra/ws.js CHANGED
@@ -170,7 +170,7 @@ export class UpstreamConnection extends EventEmitter {
170
170
  }
171
171
  }
172
172
  export async function runInitialize(conn, opts = {}) {
173
- await conn.request("initialize", {
173
+ return await conn.request("initialize", {
174
174
  protocolVersion: opts.protocolVersion ?? ACP_PROTOCOL_VERSION,
175
175
  clientCapabilities: opts.clientCapabilities ?? {
176
176
  fs: { readTextFile: false, writeTextFile: false },
@@ -1 +1 @@
1
- {"version":3,"file":"ws.js","sourceRoot":"","sources":["../../src/hydra/ws.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ws.js","sourceRoot":"","sources":["../../src/hydra/ws.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,10 @@ const ALLOWED_BROWSER_REQUEST_METHODS = new Set([
19
19
  // result.
20
20
  "hydra-acp/cancel_prompt",
21
21
  "hydra-acp/update_prompt",
22
+ // Amend the in-flight head with a replacement prompt. Hydra
23
+ // rejects unknown/closed/already-running targets with a typed
24
+ // result, so it's safe to forward.
25
+ "hydra-acp/amend_prompt",
22
26
  ]);
23
27
  const ALLOWED_BROWSER_NOTIFICATION_METHODS = new Set([
24
28
  "session/cancel",
@@ -264,7 +268,18 @@ function handleConnection(browserWs, _req, ctx, sessionId, sessionToken, load) {
264
268
  sendBrowserFrame(resp);
265
269
  }
266
270
  async function doHandshake() {
267
- await runInitialize(upstream);
271
+ const initResp = (await runInitialize(upstream));
272
+ // Pluck the daemon's hydra-acp capability flags out of the
273
+ // initialize response _meta so we can pass them through to the
274
+ // browser. promptAmending is the gate for the Amend button —
275
+ // older daemons that don't advertise it should not show one.
276
+ let initHydraMeta;
277
+ if (initResp?._meta && typeof initResp._meta === "object") {
278
+ const hm = initResp._meta["hydra-acp"];
279
+ if (hm && typeof hm === "object") {
280
+ initHydraMeta = hm;
281
+ }
282
+ }
268
283
  if (load) {
269
284
  try {
270
285
  await upstream.request("session/load", { sessionId });
@@ -292,6 +307,17 @@ function handleConnection(browserWs, _req, ctx, sessionId, sessionToken, load) {
292
307
  if (attachResp?._meta && typeof attachResp._meta === "object") {
293
308
  readyParams._meta = attachResp._meta;
294
309
  }
310
+ // Merge the initialize-response hydra-acp capability flags into
311
+ // readyParams._meta["hydra-acp"] so the browser sees them in one
312
+ // place alongside the attach-response queue snapshot.
313
+ if (initHydraMeta !== undefined) {
314
+ const existingMeta = readyParams._meta ?? {};
315
+ const existingHydra = existingMeta["hydra-acp"] ?? {};
316
+ readyParams._meta = {
317
+ ...existingMeta,
318
+ "hydra-acp": { ...initHydraMeta, ...existingHydra },
319
+ };
320
+ }
295
321
  sendBrowserFrame({
296
322
  jsonrpc: "2.0",
297
323
  method: "bridge/ready",
@@ -1 +1 @@
1
- {"version":3,"file":"ws-bridge.js","sourceRoot":"","sources":["../../src/server/ws-bridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ws-bridge.js","sourceRoot":"","sources":["../../src/server/ws-bridge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,SAAS,EACT,UAAU,EACV,aAAa,GAKd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,WAAW,EACX,YAAY,GACb,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAGrD,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AAEhC,MAAM,+BAA+B,GAAG,IAAI,GAAG,CAAS;IACtD,gBAAgB;IAChB,qEAAqE;IACrE,sEAAsE;IACtE,oEAAoE;IACpE,gBAAgB;IAChB,kBAAkB;IAClB,mBAAmB;IACnB,+DAA+D;IAC/D,mEAAmE;IACnE,kEAAkE;IAClE,kEAAkE;IAClE,UAAU;IACV,yBAAyB;IACzB,yBAAyB;IACzB,4DAA4D;IAC5D,8DAA8D;IAC9D,mCAAmC;IACnC,wBAAwB;CACzB,CAAC,CAAC;AAEH,MAAM,oCAAoC,GAAG,IAAI,GAAG,CAAS;IAC3D,gBAAgB;CACjB,CAAC,CAAC;AAEH,MAAM,mCAAmC,GAAG,IAAI,GAAG,CAAS;IAC1D,mBAAmB;IACnB,oBAAoB;CACrB,CAAC,CAAC;AAEH,MAAM,UAAU,cAAc,CAC5B,UAAsB,EACtB,GAAkB;IAElB,MAAM,GAAG,GAAG,IAAI,eAAe,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAEpD,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;QACjD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,EAAE,oBAAoB,CAAC,CAAC;QAC9D,IAAI,GAAG,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YAC3B,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QACD,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,IAAI,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC;QAClE,IAAI,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;YAClC,MAAM,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;YACvD,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QACD,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAC/D,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,UAAU,CAAC,CAAC;YAC/D,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QACD,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACrD,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC9C,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/C,GAAG,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YAClC,MAAM,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;YAClD,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QACD,MAAM,SAAS,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC;QACrD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;YACjD,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QACD,GAAG,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,EAAE;YACrD,gBAAgB,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,gBAAgB,CACvB,SAAoB,EACpB,IAAqB,EACrB,GAAkB,EAClB,SAAiB,EACjB,YAAoB,EACpB,IAAa;IAEb,GAAG,CAAC,IAAI,CAAC,uBAAuB,SAAS,SAAS,IAAI,EAAE,CAAC,CAAC;IAE1D,MAAM,QAAQ,GAAG,IAAI,kBAAkB,CAAC;QACtC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,UAAU;QAClC,KAAK,EAAE,YAAY;KACpB,CAAC,CAAC;IAEH,wEAAwE;IACxE,oEAAoE;IACpE,iEAAiE;IACjE,wBAAwB;IACxB,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAAU,CAAC;IAElD,yEAAyE;IACzE,yEAAyE;IACzE,wEAAwE;IACxE,wEAAwE;IACxE,4DAA4D;IAC5D,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAA0B,CAAC;IAClE,MAAM,iBAAiB,GAAG,GAAG,CAAC,MAAM,CAAC,wBAAwB,CAAC;IAE9D,IAAI,aAAa,GAAG,KAAK,CAAC;IAC1B,uEAAuE;IACvE,uDAAuD;IACvD,MAAM,aAAa,GAAqB,EAAE,CAAC;IAE3C,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;QACvB,KAAK,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;YACxC,GAAG,CAAC,IAAI,CACN,wBAAwB,SAAS,KAAM,GAAa,CAAC,OAAO,EAAE,CAC/D,CAAC;YACF,gBAAgB,CAAC,kBAAkB,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;YAC7D,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE;QAChC,gEAAgE;QAChE,gEAAgE;QAChE,iEAAiE;QACjE,uBAAuB;QACvB,IAAI,CAAC,CAAC,MAAM,KAAK,gBAAgB,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAyB,CAAC;YACxD,MAAM,MAAM,GAAG,MAAM,CAAC,MAET,CAAC;YACd,IACE,MAAM,EAAE,aAAa,KAAK,qBAAqB;gBAC/C,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,EACrC,CAAC;gBACD,MAAM,KAAK,GAAG,uBAAuB,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBAC7D,IAAI,KAAK,EAAE,CAAC;oBACV,YAAY,CAAC,KAAK,CAAC,CAAC;oBACpB,uBAAuB,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;oBAClD,GAAG,CAAC,KAAK,CACP,0CAA0C,SAAS,eAAe,MAAM,CAAC,UAAU,EAAE,CACtF,CAAC;oBACF,OAAO;gBACT,CAAC;YACH,CAAC;QACH,CAAC;QACD,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;QAC3B,IAAI,mCAAmC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YACtD,gEAAgE;YAChE,yDAAyD;YACzD,QAAQ,CAAC,UAAU,CACjB,CAAC,CAAC,EAAE,EACJ,CAAC,KAAK,EACN,yBAAyB,CAAC,CAAC,MAAM,EAAE,CACpC,CAAC;YACF,OAAO;QACT,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,KAAK,4BAA4B,IAAI,iBAAiB,GAAG,CAAC,EAAE,CAAC;YACvE,gEAAgE;YAChE,8DAA8D;YAC9D,8DAA8D;YAC9D,8DAA8D;YAC9D,8DAA8D;YAC9D,8BAA8B;YAC9B,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAE7B,CAAC;YACF,MAAM,UAAU,GACd,OAAO,MAAM,CAAC,QAAQ,EAAE,UAAU,KAAK,QAAQ;gBAC7C,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU;gBAC5B,CAAC,CAAC,SAAS,CAAC;YAChB,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;oBAC5B,uBAAuB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;oBAC3C,uBAAuB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC1C,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBACtB,CAAC,EAAE,iBAAiB,CAAC,CAAC;gBACtB,uBAAuB,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;gBAC/C,OAAO;YACT,CAAC;QACH,CAAC;QACD,uBAAuB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1C,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE;QAC5B,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE;QACxC,GAAG,CAAC,IAAI,CAAC,2BAA2B,SAAS,SAAS,IAAI,WAAW,MAAM,EAAE,CAAC,CAAC;QAC/E,IAAI,CAAC;YACH,SAAS,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;QAAC,MAAM,CAAC;YACP,KAAK,CAAC,CAAC;QACT,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;QAC3B,GAAG,CAAC,IAAI,CAAC,0BAA0B,SAAS,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE;QACzC,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QACD,IAAI,MAAsB,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAmB,CAAC;QAC/D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,IAAI,CAAC,wBAAyB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YAC3D,OAAO;QACT,CAAC;QACD,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACzB,GAAG,CAAC,IAAI,CAAC,0BAA0B,SAAS,EAAE,CAAC,CAAC;QAChD,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;QAC5B,GAAG,CAAC,IAAI,CAAC,yBAAyB,SAAS,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,KAAK,EAAE,CAAC;IAEjB,SAAS,kBAAkB,CAAC,GAAmB;QAC7C,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACxB,OAAO;QACT,CAAC;QACD,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,SAAS,mBAAmB,CAAC,GAAmB;QAC9C,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,+BAA+B,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBACrD,GAAG,CAAC,IAAI,CAAC,iCAAiC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;gBACxD,wBAAwB,CACtB,GAAG,CAAC,EAAE,EACN,CAAC,KAAK,EACN,uBAAuB,GAAG,CAAC,MAAM,EAAE,CACpC,CAAC;gBACF,OAAO;YACT,CAAC;YACD,2DAA2D;YAC3D,gEAAgE;YAChE,mBAAmB;YACnB,MAAM,MAAM,GACV,GAAG,CAAC,MAAM,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ;gBAC1C,CAAC,CAAC,EAAE,GAAI,GAAG,CAAC,MAAkC,EAAE,SAAS,EAAE;gBAC3D,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;YACpB,QAAQ,CAAC,OAAO,CAAC;gBACf,OAAO,EAAE,KAAK;gBACd,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,MAAM;aACP,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC7B,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxC,GAAG,CAAC,IAAI,CAAC,0CAA0C,KAAK,EAAE,CAAC,CAAC;gBAC5D,OAAO;YACT,CAAC;YACD,uBAAuB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACtC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACtB,OAAO;QACT,CAAC;QACD,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,oCAAoC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1D,GAAG,CAAC,KAAK,CAAC,sCAAsC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC9D,OAAO;YACT,CAAC;YACD,mEAAmE;YACnE,oEAAoE;YACpE,MAAM,MAAM,GACV,GAAG,CAAC,MAAM,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ;gBAC1C,CAAC,CAAC,EAAE,GAAI,GAAG,CAAC,MAAkC,EAAE,SAAS,EAAE;gBAC3D,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;YACpB,QAAQ,CAAC,OAAO,CAAC;gBACf,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,MAAM;aACP,CAAC,CAAC;YACH,OAAO;QACT,CAAC;IACH,CAAC;IAED,SAAS,gBAAgB,CAAC,GAAmB;QAC3C,IAAI,SAAS,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;YAC5C,OAAO;QACT,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,SAAS,gBAAgB,CAAC,IAAY,EAAE,OAAe;QACrD,gBAAgB,CAAC;YACf,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,cAAc;YACtB,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;SAC1B,CAAC,CAAC;IACL,CAAC;IAED,SAAS,wBAAwB,CAC/B,EAAa,EACb,IAAY,EACZ,OAAe;QAEf,MAAM,IAAI,GAAoB;YAC5B,OAAO,EAAE,KAAK;YACd,EAAE;YACF,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;SACzB,CAAC;QACF,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,KAAK,UAAU,WAAW;QACxB,MAAM,QAAQ,GAAG,CAAC,MAAM,aAAa,CAAC,QAAQ,CAAC,CAElC,CAAC;QACd,2DAA2D;QAC3D,+DAA+D;QAC/D,6DAA6D;QAC7D,6DAA6D;QAC7D,IAAI,aAAkD,CAAC;QACvD,IAAI,QAAQ,EAAE,KAAK,IAAI,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC1D,MAAM,EAAE,GAAI,QAAQ,CAAC,KAAiC,CAAC,WAAW,CAAC,CAAC;YACpE,IAAI,EAAE,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;gBACjC,aAAa,GAAG,EAA6B,CAAC;YAChD,CAAC;QACH,CAAC;QACD,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC;gBACH,MAAM,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;YACxD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,GAAG,CAAC,IAAI,CACN,2BAA2B,SAAS,KAAM,GAAa,CAAC,OAAO,8BAA8B,CAC9F,CAAC;YACJ,CAAC;QACH,CAAC;QACD,MAAM,UAAU,GAAG,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EAAE;YAC3D,SAAS;YACT,aAAa,EAAE,MAAM;YACrB,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ,CAAC,UAAU;gBACzB,OAAO,EAAE,QAAQ,CAAC,aAAa;aAChC;SACF,CAAC,CAID,CAAC;QACF,kEAAkE;QAClE,kEAAkE;QAClE,+DAA+D;QAC/D,8CAA8C;QAC9C,MAAM,WAAW,GAA4B,EAAE,SAAS,EAAE,CAAC;QAC3D,IAAI,OAAO,UAAU,EAAE,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC7C,WAAW,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;QAC7C,CAAC;QACD,IAAI,UAAU,EAAE,KAAK,IAAI,OAAO,UAAU,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9D,WAAW,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;QACvC,CAAC;QACD,gEAAgE;QAChE,iEAAiE;QACjE,sDAAsD;QACtD,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,YAAY,GAAI,WAAW,CAAC,KAAiC,IAAI,EAAE,CAAC;YAC1E,MAAM,aAAa,GAChB,YAAY,CAAC,WAAW,CAA6B,IAAI,EAAE,CAAC;YAC/D,WAAW,CAAC,KAAK,GAAG;gBAClB,GAAG,YAAY;gBACf,WAAW,EAAE,EAAE,GAAG,aAAa,EAAE,GAAG,aAAa,EAAE;aACpD,CAAC;QACJ,CAAC;QACD,gBAAgB,CAAC;YACf,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,cAAc;YACtB,MAAM,EAAE,WAAW;SACpB,CAAC,CAAC;QACH,aAAa,GAAG,IAAI,CAAC;QACrB,OAAO,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,EAAG,CAAC;YACpC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,SAAS,OAAO;QACd,QAAQ,CAAC,IAAI,EAAE,CAAC;QAChB,KAAK,MAAM,KAAK,IAAI,uBAAuB,CAAC,MAAM,EAAE,EAAE,CAAC;YACrD,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;QACD,uBAAuB,CAAC,KAAK,EAAE,CAAC;QAChC,IAAI,SAAS,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;YAC5C,IAAI,CAAC;gBACH,SAAS,CAAC,KAAK,EAAE,CAAC;YACpB,CAAC;YAAC,MAAM,CAAC;gBACP,KAAK,CAAC,CAAC;YACT,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,sBAAsB;AACtB,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,+BAA+B;IAC/B,oCAAoC;IACpC,mCAAmC;CACpC,CAAC"}
@@ -137,6 +137,13 @@ pre code { background: transparent; padding: 0; }
137
137
  .queue-processing { color: var(--accent); border: 1px solid var(--accent); background: rgba(110,168,254,0.1); }
138
138
  .queue-cancelled { color: var(--muted); border: 1px solid var(--border); background: var(--panel-2); }
139
139
  .queue-editing { color: var(--accent); border: 1px solid var(--accent); background: rgba(110,168,254,0.1); }
140
+ /* Amend markup. The M2 (replacement) bubble gets a "+" badge in the
141
+ top-right corner; the M1 (superseded) bubble dims with a small
142
+ "amended ↓" chip pointing at its replacement. */
143
+ .msg.user { position: relative; }
144
+ .amend-badge { position: absolute; top: -0.45rem; right: -0.45rem; width: 1.25rem; height: 1.25rem; border-radius: 999px; background: var(--accent); color: #0a0d12; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; font-size: 0.8rem; line-height: 1; border: 2px solid var(--bg); cursor: help; }
145
+ .msg.user.amended-target { opacity: 0.55; }
146
+ .queue-amended { color: var(--accent); border: 1px solid var(--accent); background: rgba(110,168,254,0.08); }
140
147
  .queue-cancel, .queue-edit { padding: 0; border: none; color: inherit; font-size: 0.95rem; line-height: 1; cursor: pointer; background: transparent; opacity: 0.7; }
141
148
  .queue-cancel:hover, .queue-edit:hover { opacity: 1; background: transparent; }
142
149
  .queue-editor { margin-bottom: 0.3rem; }
@@ -10517,6 +10524,25 @@ pre code { background: transparent; padding: 0; }
10517
10524
  if (!state.current) return;
10518
10525
  state.current.log.push(item);
10519
10526
  }
10527
+ function isWaitingQueuedBubble(item) {
10528
+ if (item.kind !== "stream" || item.role !== "user" || !item.queueEntry) {
10529
+ return false;
10530
+ }
10531
+ const s = item.queueEntry.status;
10532
+ return s === "queued" || s === "editing";
10533
+ }
10534
+ function queuedBoundary() {
10535
+ if (!state.current) return 0;
10536
+ const log = state.current.log;
10537
+ for (let i = 0; i < log.length; i++) {
10538
+ if (isWaitingQueuedBubble(log[i])) return i;
10539
+ }
10540
+ return log.length;
10541
+ }
10542
+ function insertAboveQueued(item) {
10543
+ if (!state.current) return;
10544
+ state.current.log.splice(queuedBoundary(), 0, item);
10545
+ }
10520
10546
  function markActive() {
10521
10547
  if (!state.current) return;
10522
10548
  state.current.inTurn = true;
@@ -10537,9 +10563,11 @@ pre code { background: transparent; padding: 0; }
10537
10563
  if (!state.current) return;
10538
10564
  const text = contentToText(content);
10539
10565
  if (!text) return;
10566
+ const log = state.current.log;
10567
+ const boundary = queuedBoundary();
10540
10568
  let last;
10541
- for (let i = state.current.log.length - 1; i >= 0; i--) {
10542
- const e = state.current.log[i];
10569
+ for (let i = boundary - 1; i >= 0; i--) {
10570
+ const e = log[i];
10543
10571
  if (e.kind !== "spinner") {
10544
10572
  last = e;
10545
10573
  break;
@@ -10549,13 +10577,13 @@ pre code { background: transparent; padding: 0; }
10549
10577
  last.text += text;
10550
10578
  return;
10551
10579
  }
10552
- state.current.log.push({ kind: "stream", role, text });
10580
+ log.splice(boundary, 0, { kind: "stream", role, text });
10553
10581
  }
10554
10582
  function closeOpenStream() {
10555
10583
  if (!state.current) return;
10556
10584
  for (let i = state.current.log.length - 1; i >= 0; i--) {
10557
10585
  const e = state.current.log[i];
10558
- if (e.kind === "stream") {
10586
+ if (e.kind === "stream" && !e.closed) {
10559
10587
  e.closed = true;
10560
10588
  return;
10561
10589
  }
@@ -10596,12 +10624,12 @@ pre code { background: transparent; padding: 0; }
10596
10624
  const c2 = state.current;
10597
10625
  if (c2.spinner) {
10598
10626
  if (!c2.log.some((e) => e.kind === "spinner")) {
10599
- c2.log.push({ kind: "spinner", spinner: c2.spinner });
10627
+ insertAboveQueued({ kind: "spinner", spinner: c2.spinner });
10600
10628
  }
10601
10629
  return;
10602
10630
  }
10603
10631
  c2.spinner = { toolCallIds: [], expanded: false };
10604
- c2.log.push({ kind: "spinner", spinner: c2.spinner });
10632
+ insertAboveQueued({ kind: "spinner", spinner: c2.spinner });
10605
10633
  }
10606
10634
  function onToolCall(update) {
10607
10635
  if (!state.current) return;
@@ -10636,7 +10664,13 @@ pre code { background: transparent; padding: 0; }
10636
10664
  state.current.spinner = null;
10637
10665
  state.current.log = state.current.log.filter((e) => e.kind !== "spinner");
10638
10666
  closeOpenStream();
10667
+ for (const entry of state.current.promptQueue) {
10668
+ if (entry.status === "processing") {
10669
+ entry.status = "done";
10670
+ }
10671
+ }
10639
10672
  state.current.currentPlanEntry = null;
10673
+ state.current.currentHeadMessageId = void 0;
10640
10674
  markIdleAndDrain();
10641
10675
  }
10642
10676
  function onPromptReceived(update) {
@@ -10652,7 +10686,7 @@ pre code { background: transparent; padding: 0; }
10652
10686
  return;
10653
10687
  }
10654
10688
  closeOpenStream();
10655
- state.current.log.push({
10689
+ insertAboveQueued({
10656
10690
  kind: "stream",
10657
10691
  role: "user",
10658
10692
  text,
@@ -10700,6 +10734,9 @@ pre code { background: transparent; padding: 0; }
10700
10734
  if (!state.current) return;
10701
10735
  const messageId = typeof params.messageId === "string" ? params.messageId : "";
10702
10736
  if (!messageId) return;
10737
+ const meta = params._meta ?? {};
10738
+ const hydraMeta = meta["hydra-acp"] ?? {};
10739
+ const amendingTarget = typeof hydraMeta.amending === "string" ? hydraMeta.amending : void 0;
10703
10740
  const originator = params.originator ?? {};
10704
10741
  const originatorClientId = typeof originator.clientId === "string" ? originator.clientId : "";
10705
10742
  const isOwn = !!state.current.ownClientId && originatorClientId === state.current.ownClientId;
@@ -10712,7 +10749,12 @@ pre code { background: transparent; padding: 0; }
10712
10749
  }
10713
10750
  unbound.messageId = messageId;
10714
10751
  state.current.queueByMessageId.set(messageId, unbound);
10752
+ if (amendingTarget !== void 0) {
10753
+ unbound.amendsMessageId = amendingTarget;
10754
+ tagAmendedM1(amendingTarget, messageId);
10755
+ }
10715
10756
  const position2 = typeof params.position === "number" ? params.position : 1;
10757
+ unbound.aheadAtEnqueue = Math.max(0, position2);
10716
10758
  if (position2 === 0) {
10717
10759
  unbound.status = "processing";
10718
10760
  } else if (unbound.status === "pending") {
@@ -10742,15 +10784,24 @@ pre code { background: transparent; padding: 0; }
10742
10784
  aheadAtEnqueue: Math.max(0, position),
10743
10785
  messageId
10744
10786
  };
10787
+ if (amendingTarget !== void 0) {
10788
+ entry.amendsMessageId = amendingTarget;
10789
+ tagAmendedM1(amendingTarget, messageId);
10790
+ }
10745
10791
  state.current.queueByMessageId.set(messageId, entry);
10746
10792
  closeOpenStream();
10747
- state.current.log.push({
10793
+ const peerBubble = {
10748
10794
  kind: "stream",
10749
10795
  role: "user",
10750
10796
  text,
10751
10797
  closed: true,
10752
10798
  queueEntry: entry
10753
- });
10799
+ };
10800
+ if (position === 0) {
10801
+ insertAboveQueued(peerBubble);
10802
+ } else {
10803
+ state.current.log.push(peerBubble);
10804
+ }
10754
10805
  }
10755
10806
  function onPromptQueueUpdated(params) {
10756
10807
  if (!state.current) return;
@@ -10781,16 +10832,43 @@ pre code { background: transparent; padding: 0; }
10781
10832
  if (!state.current) return;
10782
10833
  const messageId = typeof params.messageId === "string" ? params.messageId : "";
10783
10834
  if (!messageId) return;
10835
+ const reason = typeof params.reason === "string" ? params.reason : "";
10836
+ if (reason === "started") {
10837
+ state.current.currentHeadMessageId = messageId;
10838
+ }
10784
10839
  const entry = state.current.queueByMessageId.get(messageId);
10785
10840
  if (!entry) return;
10786
- const reason = typeof params.reason === "string" ? params.reason : "";
10787
10841
  if (reason === "started") {
10788
10842
  entry.status = "processing";
10789
10843
  } else if (reason === "cancelled" || reason === "abandoned") {
10790
- entry.status = "cancelled";
10844
+ if (entry.amendedByMessageId !== void 0) {
10845
+ entry.status = "amended";
10846
+ } else {
10847
+ entry.status = "cancelled";
10848
+ }
10791
10849
  state.current.queueByMessageId.delete(messageId);
10792
10850
  }
10793
10851
  }
10852
+ function onPromptAmended(params) {
10853
+ if (!state.current) return;
10854
+ const cancelledId = typeof params.cancelledMessageId === "string" ? params.cancelledMessageId : "";
10855
+ const newId = typeof params.newMessageId === "string" ? params.newMessageId : "";
10856
+ if (!cancelledId || !newId) return;
10857
+ tagAmendedM1(cancelledId, newId);
10858
+ const m2 = state.current.queueByMessageId.get(newId);
10859
+ if (m2 && m2.amendsMessageId === void 0) {
10860
+ m2.amendsMessageId = cancelledId;
10861
+ }
10862
+ }
10863
+ function tagAmendedM1(m1MessageId, m2MessageId) {
10864
+ if (!state.current) return;
10865
+ const m1 = state.current.queueByMessageId.get(m1MessageId) ?? state.current.promptQueue.find((e) => e.messageId === m1MessageId);
10866
+ if (!m1) return;
10867
+ m1.amendedByMessageId = m2MessageId;
10868
+ if (m1.status === "cancelled") {
10869
+ m1.status = "amended";
10870
+ }
10871
+ }
10794
10872
  function onPlanUpdate(update) {
10795
10873
  if (!state.current) return;
10796
10874
  const entries = update.entries ?? update.plan ?? null;
@@ -10800,7 +10878,7 @@ pre code { background: transparent; padding: 0; }
10800
10878
  return;
10801
10879
  }
10802
10880
  const item = { kind: "plan", entries };
10803
- state.current.log.push(item);
10881
+ insertAboveQueued(item);
10804
10882
  state.current.currentPlanEntry = item;
10805
10883
  }
10806
10884
  function onPermissionResolved(update) {
@@ -10837,6 +10915,10 @@ pre code { background: transparent; padding: 0; }
10837
10915
  onPromptQueueRemoved(frame.params ?? {});
10838
10916
  return;
10839
10917
  }
10918
+ if (frame.method === "hydra-acp/prompt_amended") {
10919
+ onPromptAmended(frame.params ?? {});
10920
+ return;
10921
+ }
10840
10922
  if (frame.method !== "session/update") return;
10841
10923
  const update = frame.params?.update ?? null;
10842
10924
  if (!update || typeof update !== "object") return;
@@ -10922,9 +11004,20 @@ pre code { background: transparent; padding: 0; }
10922
11004
  onPromptReceived(update);
10923
11005
  break;
10924
11006
  case "stop":
10925
- case "turn_complete":
11007
+ case "turn_complete": {
11008
+ const meta = update._meta ?? {};
11009
+ const hydraMeta = meta["hydra-acp"] ?? {};
11010
+ const amended = hydraMeta.amended;
11011
+ if (amended) {
11012
+ const cancelledId = typeof amended.cancelledMessageId === "string" ? amended.cancelledMessageId : "";
11013
+ const newId = typeof amended.newMessageId === "string" ? amended.newMessageId : "";
11014
+ if (cancelledId && newId) {
11015
+ tagAmendedM1(cancelledId, newId);
11016
+ }
11017
+ }
10926
11018
  finalizeTurn();
10927
11019
  break;
11020
+ }
10928
11021
  case "session_info_update":
10929
11022
  if (state.current && typeof update.title === "string") {
10930
11023
  state.current.title = update.title;
@@ -10986,7 +11079,11 @@ pre code { background: transparent; padding: 0; }
10986
11079
  render();
10987
11080
  return;
10988
11081
  }
10989
- const ahead = c2.promptQueue.length + (c2.inTurn ? 1 : 0);
11082
+ const ownActive = c2.promptQueue.filter(
11083
+ (e) => e.status === "queued" || e.status === "pending" || e.status === "processing"
11084
+ ).length;
11085
+ const peerInFlight = c2.inTurn && !c2.promptQueue.some((e) => e.status === "processing");
11086
+ const ahead = ownActive + (peerInFlight ? 1 : 0);
10990
11087
  const entry = {
10991
11088
  id: "p_" + Math.random().toString(36).slice(2, 10),
10992
11089
  text,
@@ -11016,9 +11113,21 @@ pre code { background: transparent; padding: 0; }
11016
11113
  c2.ownPromptIds.add(String(promptId));
11017
11114
  }
11018
11115
  ensureSpinner();
11116
+ pushHistory(c2, text);
11019
11117
  c2.composerValue = "";
11020
11118
  render();
11021
11119
  }
11120
+ var HISTORY_MAX = 100;
11121
+ function pushHistory(c2, text) {
11122
+ if (c2.history[0] !== text) {
11123
+ c2.history.unshift(text);
11124
+ if (c2.history.length > HISTORY_MAX) {
11125
+ c2.history.length = HISTORY_MAX;
11126
+ }
11127
+ }
11128
+ c2.historyIndex = null;
11129
+ c2.historyDraft = null;
11130
+ }
11022
11131
  function cancelQueuedPrompt(entry) {
11023
11132
  const c2 = state.current;
11024
11133
  if (!c2) return;
@@ -11048,6 +11157,105 @@ pre code { background: transparent; padding: 0; }
11048
11157
  prompt: [{ type: "text", text: trimmed }]
11049
11158
  });
11050
11159
  }
11160
+ function amendPrompt() {
11161
+ const c2 = state.current;
11162
+ if (!c2) return;
11163
+ const text = c2.composerValue.trim();
11164
+ if (!text) return;
11165
+ if (!c2.ws || c2.ws.readyState !== WebSocket.OPEN) {
11166
+ c2.log.push({
11167
+ kind: "error",
11168
+ text: "Not connected to session \u2014 prompt not sent."
11169
+ });
11170
+ c2.composerValue = "";
11171
+ render();
11172
+ return;
11173
+ }
11174
+ if (!c2.daemonSupportsAmend || c2.currentHeadMessageId === void 0) {
11175
+ sendPrompt();
11176
+ return;
11177
+ }
11178
+ const target = c2.currentHeadMessageId;
11179
+ const draft = c2.composerValue;
11180
+ c2.composerValue = "";
11181
+ pushHistory(c2, text);
11182
+ const entry = {
11183
+ id: "p_" + Math.random().toString(36).slice(2, 10),
11184
+ text,
11185
+ status: "pending",
11186
+ aheadAtEnqueue: 0,
11187
+ amendsMessageId: target
11188
+ };
11189
+ c2.promptQueue.push(entry);
11190
+ c2.log.push({
11191
+ kind: "stream",
11192
+ role: "user",
11193
+ text,
11194
+ closed: true,
11195
+ queueEntry: entry
11196
+ });
11197
+ c2.recentOwnPrompts.push({ text, at: Date.now() });
11198
+ const cutoff = Date.now() - 6e4;
11199
+ c2.recentOwnPrompts = c2.recentOwnPrompts.filter((p) => p.at >= cutoff).slice(-16);
11200
+ const id = send("hydra-acp/amend_prompt", {
11201
+ sessionId: c2.sessionId,
11202
+ targetMessageId: target,
11203
+ prompt: [{ type: "text", text }]
11204
+ });
11205
+ if (id !== void 0) {
11206
+ c2.responseHandlers.set(String(id), (frame) => {
11207
+ onAmendResponse(entry, draft, frame);
11208
+ });
11209
+ }
11210
+ ensureSpinner();
11211
+ render();
11212
+ }
11213
+ function onAmendResponse(entry, draftText, frame) {
11214
+ const c2 = state.current;
11215
+ if (!c2) return;
11216
+ if (frame.error) {
11217
+ rollbackAmend(c2, entry, draftText);
11218
+ setState({
11219
+ banner: {
11220
+ kind: "bad",
11221
+ text: `amend failed: ${tryGetErrorMessage(frame.error)}`
11222
+ }
11223
+ });
11224
+ return;
11225
+ }
11226
+ const res = frame.result ?? {};
11227
+ if (res.amended && res.reason === "ok") {
11228
+ return;
11229
+ }
11230
+ rollbackAmend(c2, entry, draftText);
11231
+ let msg = "amend rejected";
11232
+ if (res.reason === "target_completed") {
11233
+ msg = "previous response finished \u2014 press Send to send as a new turn";
11234
+ } else if (res.reason === "target_cancelled") {
11235
+ msg = "amend skipped \u2014 previous turn was cancelled";
11236
+ } else if (res.reason === "target_not_found") {
11237
+ msg = "amend skipped \u2014 no matching prompt";
11238
+ }
11239
+ setState({ banner: { kind: "warn", text: msg } });
11240
+ }
11241
+ function rollbackAmend(c2, entry, draftText) {
11242
+ const idx = c2.promptQueue.indexOf(entry);
11243
+ if (idx >= 0) {
11244
+ c2.promptQueue.splice(idx, 1);
11245
+ }
11246
+ c2.log = c2.log.filter(
11247
+ (e) => !(e.kind === "stream" && e.role === "user" && e.queueEntry === entry)
11248
+ );
11249
+ c2.composerValue = draftText;
11250
+ render();
11251
+ }
11252
+ function tryGetErrorMessage(err) {
11253
+ if (err && typeof err === "object" && "message" in err) {
11254
+ const m = err.message;
11255
+ if (typeof m === "string") return m;
11256
+ }
11257
+ return "unknown error";
11258
+ }
11051
11259
  function cancelProcessingPrompt() {
11052
11260
  const c2 = state.current;
11053
11261
  if (!c2 || !c2.inTurn) return;
@@ -11129,6 +11337,9 @@ pre code { background: transparent; padding: 0; }
11129
11337
  if (Array.isArray(snapshot)) {
11130
11338
  hydrateQueueFromSnapshot(snapshot);
11131
11339
  }
11340
+ if (hydraMeta && hydraMeta.promptAmending === true) {
11341
+ state.current.daemonSupportsAmend = true;
11342
+ }
11132
11343
  const listeners = state.current.readyListeners;
11133
11344
  state.current.readyListeners = [];
11134
11345
  for (const fn of listeners) {
@@ -11174,6 +11385,14 @@ pre code { background: transparent; padding: 0; }
11174
11385
  state.current.ownPromptIds.delete(String(frame.id));
11175
11386
  finalizeTurn();
11176
11387
  render();
11388
+ return;
11389
+ }
11390
+ if ("id" in frame && frame.id !== void 0) {
11391
+ const handler = state.current.responseHandlers.get(String(frame.id));
11392
+ if (handler) {
11393
+ state.current.responseHandlers.delete(String(frame.id));
11394
+ handler({ result: frame.result, error: frame.error });
11395
+ }
11177
11396
  }
11178
11397
  }
11179
11398
  function respondPermission(toolCallId, optionId) {
@@ -11250,6 +11469,7 @@ pre code { background: transparent; padding: 0; }
11250
11469
  toolCalls: /* @__PURE__ */ new Map(),
11251
11470
  pendingPermissions: /* @__PURE__ */ new Map(),
11252
11471
  pendingRequestById: /* @__PURE__ */ new Map(),
11472
+ responseHandlers: /* @__PURE__ */ new Map(),
11253
11473
  spinner: null,
11254
11474
  plan: null,
11255
11475
  mode: null,
@@ -11263,6 +11483,9 @@ pre code { background: transparent; padding: 0; }
11263
11483
  composerValue: "",
11264
11484
  busy: false,
11265
11485
  recentOwnPrompts: [],
11486
+ history: [],
11487
+ historyIndex: null,
11488
+ historyDraft: null,
11266
11489
  _lastMetaFp: session ? `${session.title}|${session.cwd}|${session.agentId}` : "",
11267
11490
  promptQueue: [],
11268
11491
  queueByMessageId: /* @__PURE__ */ new Map(),
@@ -11270,7 +11493,8 @@ pre code { background: transparent; padding: 0; }
11270
11493
  inTurn: false,
11271
11494
  idleListeners: [],
11272
11495
  readyListeners: [],
11273
- currentPlanEntry: null
11496
+ currentPlanEntry: null,
11497
+ daemonSupportsAmend: false
11274
11498
  };
11275
11499
  state.current = initial;
11276
11500
  setState({ view: "chat" });
@@ -11932,21 +12156,52 @@ Replace it? (Any live attach will be closed.)`
11932
12156
  for (const item of c2.log) {
11933
12157
  body.appendChild(renderLogItem(item));
11934
12158
  }
12159
+ const autosize = (t) => {
12160
+ t.style.height = "auto";
12161
+ t.style.height = t.scrollHeight + "px";
12162
+ };
12163
+ const setComposer = (t, text) => {
12164
+ t.value = text;
12165
+ c2.composerValue = text;
12166
+ autosize(t);
12167
+ t.setSelectionRange(text.length, text.length);
12168
+ };
11935
12169
  const composerOnKey = (e) => {
11936
- if (e.key !== "Enter" || e.isComposing) return;
12170
+ if (e.isComposing) return;
12171
+ const t = e.target;
12172
+ if (e.key === "ArrowUp" && !e.shiftKey && !e.altKey && !e.ctrlKey && !e.metaKey && t.selectionStart === 0 && t.selectionEnd === 0 && c2.history.length > 0) {
12173
+ const nextIdx = c2.historyIndex === null ? 0 : Math.min(c2.history.length - 1, c2.historyIndex + 1);
12174
+ if (c2.historyIndex === null) {
12175
+ c2.historyDraft = c2.composerValue;
12176
+ }
12177
+ c2.historyIndex = nextIdx;
12178
+ e.preventDefault();
12179
+ setComposer(t, c2.history[nextIdx]);
12180
+ return;
12181
+ }
12182
+ if (e.key === "ArrowDown" && !e.shiftKey && !e.altKey && !e.ctrlKey && !e.metaKey && t.selectionStart === t.value.length && t.selectionEnd === t.value.length && c2.historyIndex !== null) {
12183
+ e.preventDefault();
12184
+ if (c2.historyIndex > 0) {
12185
+ c2.historyIndex -= 1;
12186
+ setComposer(t, c2.history[c2.historyIndex]);
12187
+ } else {
12188
+ const draft = c2.historyDraft ?? "";
12189
+ c2.historyIndex = null;
12190
+ c2.historyDraft = null;
12191
+ setComposer(t, draft);
12192
+ }
12193
+ return;
12194
+ }
12195
+ if (e.key !== "Enter") return;
11937
12196
  if (e.shiftKey) return;
11938
12197
  if (e.altKey || e.ctrlKey || e.metaKey) {
11939
12198
  e.preventDefault();
11940
- insertAtCaret(e.target, "\n");
12199
+ insertAtCaret(t, "\n");
11941
12200
  return;
11942
12201
  }
11943
12202
  e.preventDefault();
11944
12203
  sendPrompt();
11945
12204
  };
11946
- const autosize = (t) => {
11947
- t.style.height = "auto";
11948
- t.style.height = t.scrollHeight + "px";
11949
- };
11950
12205
  const textarea = el(
11951
12206
  "textarea",
11952
12207
  {
@@ -11957,6 +12212,10 @@ Replace it? (Any live attach will be closed.)`
11957
12212
  oninput: (e) => {
11958
12213
  const t = e.target;
11959
12214
  c2.composerValue = t.value;
12215
+ if (c2.historyIndex !== null) {
12216
+ c2.historyIndex = null;
12217
+ c2.historyDraft = null;
12218
+ }
11960
12219
  autosize(t);
11961
12220
  }
11962
12221
  },
@@ -11965,12 +12224,42 @@ Replace it? (Any live attach will be closed.)`
11965
12224
  if (c2.composerValue && c2.composerValue.length > 0) {
11966
12225
  queueMicrotask(() => autosize(textarea));
11967
12226
  }
12227
+ const sendButtons = [];
12228
+ if (c2.inTurn) {
12229
+ if (c2.daemonSupportsAmend && c2.currentHeadMessageId !== void 0) {
12230
+ sendButtons.push(
12231
+ el(
12232
+ "button",
12233
+ {
12234
+ onclick: amendPrompt,
12235
+ title: "Cancel the current turn and replace its prompt"
12236
+ },
12237
+ "Amend"
12238
+ )
12239
+ );
12240
+ }
12241
+ sendButtons.push(
12242
+ el(
12243
+ "button",
12244
+ {
12245
+ class: "primary",
12246
+ onclick: sendPrompt,
12247
+ title: "Queue this prompt to run after the current turn"
12248
+ },
12249
+ "Enqueue"
12250
+ )
12251
+ );
12252
+ } else {
12253
+ sendButtons.push(
12254
+ el("button", { class: "primary", onclick: sendPrompt }, "Send")
12255
+ );
12256
+ }
11968
12257
  const composer = el(
11969
12258
  "div",
11970
12259
  { class: "composer" },
11971
12260
  textarea,
11972
12261
  el("button", { class: "stop", onclick: sendCancel, title: "Cancel current turn" }, "Stop"),
11973
- el("button", { class: "primary", onclick: sendPrompt }, "Send")
12262
+ ...sendButtons
11974
12263
  );
11975
12264
  return el("div", { class: "chat" }, header, body, composer);
11976
12265
  }
@@ -12003,9 +12292,24 @@ Replace it? (Any live attach will be closed.)`
12003
12292
  });
12004
12293
  }
12005
12294
  const qe = item.queueEntry;
12006
- if (qe && (qe.status === "queued" || qe.status === "pending" || qe.status === "cancelled" || qe.status === "editing")) {
12295
+ if (qe && qe.amendedByMessageId !== void 0 && qe.status === "amended") {
12296
+ node.classList.add("amended-target");
12297
+ }
12298
+ if (qe && (qe.status === "queued" || qe.status === "pending" || qe.status === "cancelled" || qe.status === "editing" || qe.status === "amended")) {
12007
12299
  node.appendChild(renderQueueChip(qe));
12008
12300
  }
12301
+ if (qe && qe.amendsMessageId !== void 0) {
12302
+ node.appendChild(
12303
+ el(
12304
+ "span",
12305
+ {
12306
+ class: "amend-badge",
12307
+ title: "Merged amend \u2014 replaces the previous, cancelled prompt"
12308
+ },
12309
+ "+"
12310
+ )
12311
+ );
12312
+ }
12009
12313
  if (qe && qe.status === "editing") {
12010
12314
  node.appendChild(
12011
12315
  renderQueueEditor(qe, (next) => {
@@ -12099,6 +12403,13 @@ Replace it? (Any live attach will be closed.)`
12099
12403
  el("span", null, "cancelled")
12100
12404
  );
12101
12405
  }
12406
+ if (entry.status === "amended") {
12407
+ return el(
12408
+ "div",
12409
+ { class: "queue-chip queue-amended" },
12410
+ el("span", null, "amended \u2014 merged into the next prompt")
12411
+ );
12412
+ }
12102
12413
  return document.createTextNode("");
12103
12414
  }
12104
12415
  function renderQueueEditor(entry, onCommit) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hydra-acp/browser",
3
- "version": "0.1.8",
3
+ "version": "0.1.10",
4
4
  "description": "Browser-based UI for hydra-acp sessions.",
5
5
  "license": "MIT",
6
6
  "type": "module",