@ghostlytools/cli 1.3.10 → 1.4.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 (100) hide show
  1. package/README.md +13 -4
  2. package/SKILL.md +7 -4
  3. package/dist/assets/{api-Cp9GxjUO.js → api-BqLfti32.js} +2 -2
  4. package/dist/assets/{api-BCrwJ57L.js → api-JMkEO0RR.js} +130 -50
  5. package/dist/assets/api-JMkEO0RR.js.map +1 -0
  6. package/dist/assets/{apiKit-B4qhnLQT.js → apiKit-BpIUCwa-.js} +3 -3
  7. package/dist/assets/{apiKit-B4qhnLQT.js.map → apiKit-BpIUCwa-.js.map} +1 -1
  8. package/dist/assets/{apps-CpxENMgl.js → apps-BdfyGVZ1.js} +1 -1
  9. package/dist/assets/{apps-DOH1P_S0.js → apps-Bettj7WQ.js} +6 -6
  10. package/dist/assets/apps-Bettj7WQ.js.map +1 -0
  11. package/dist/assets/{arkade-Cyf5MGxG.js → arkade-CP4HvKaa.js} +2 -2
  12. package/dist/assets/{arkade-Cyf5MGxG.js.map → arkade-CP4HvKaa.js.map} +1 -1
  13. package/dist/assets/{backup-CqM-0-2v.js → backup-BbO2zLjx.js} +1 -1
  14. package/dist/assets/{backup-CTpFFQ-4.js → backup-BmBtta66.js} +7 -7
  15. package/dist/assets/{backup-CTpFFQ-4.js.map → backup-BmBtta66.js.map} +1 -1
  16. package/dist/assets/bark_ffi_wasm_bg-EY2uc0Bx.js.map +1 -1
  17. package/dist/assets/bitcoindevkit_bg-B-iLWrmX.js.map +1 -1
  18. package/dist/assets/blobFiles-B0rNnHlO.js +35 -0
  19. package/dist/assets/blobFiles-B0rNnHlO.js.map +1 -0
  20. package/dist/assets/{buttons-BtxwyM2l.js → buttons-YgijrprJ.js} +4 -4
  21. package/dist/assets/{buttons-BtxwyM2l.js.map → buttons-YgijrprJ.js.map} +1 -1
  22. package/dist/assets/buttons-_GBlxAti.js +2 -0
  23. package/dist/assets/{endpoint-BOTFMpfS.js → endpoint-Cl3cgAYl.js} +3 -2
  24. package/dist/assets/endpoint-Cl3cgAYl.js.map +1 -0
  25. package/dist/assets/{envelope-DW8TWKPD.js → envelope-C7vnmsJN.js} +2 -2
  26. package/dist/assets/{envelope-DW8TWKPD.js.map → envelope-C7vnmsJN.js.map} +1 -1
  27. package/dist/assets/{errors-B-zMxbcd.js → errors-BLSPp0tK.js} +3 -1
  28. package/dist/assets/errors-BLSPp0tK.js.map +1 -0
  29. package/dist/assets/{fileBytes-Di7VZtmU.js → fileBytes-B-fqGdEd.js} +3 -3
  30. package/dist/assets/{fileBytes-Di7VZtmU.js.map → fileBytes-B-fqGdEd.js.map} +1 -1
  31. package/dist/assets/{fileBytes-CgbibpbV.js → fileBytes-C2jycN_7.js} +1 -1
  32. package/dist/assets/{fileBytes-CfSXjTFa.js → fileBytes-D6fqFQEX.js} +6 -3
  33. package/dist/assets/fileBytes-D6fqFQEX.js.map +1 -0
  34. package/dist/assets/fileBytesIdb-DOxm_BKt.js +2 -0
  35. package/dist/assets/{fileBytesIdb-D5u6H8X_.js → fileBytesIdb-_HnxdacI.js} +3 -3
  36. package/dist/assets/{fileBytesIdb-D5u6H8X_.js.map → fileBytesIdb-_HnxdacI.js.map} +1 -1
  37. package/dist/assets/{fileBytesOpfs-Dd1N4ERH.js → fileBytesOpfs-p_CANncD.js} +3 -3
  38. package/dist/assets/{fileBytesOpfs-Dd1N4ERH.js.map → fileBytesOpfs-p_CANncD.js.map} +1 -1
  39. package/dist/assets/{groupFiles-uxa0U9_n.js → groupFiles-sIdGq4AV.js} +5 -5
  40. package/dist/assets/groupFiles-sIdGq4AV.js.map +1 -0
  41. package/dist/assets/{host-BbDWamRc.js → host-Drd-c4VO.js} +43 -20
  42. package/dist/assets/host-Drd-c4VO.js.map +1 -0
  43. package/dist/assets/{hyperdhtRelay-De5FT7Am.js → hyperdhtRelay-13aQ4KOf.js} +2 -2
  44. package/dist/assets/{hyperdhtRelay-De5FT7Am.js.map → hyperdhtRelay-13aQ4KOf.js.map} +1 -1
  45. package/dist/assets/{idb-B5L8wuOm.js → idb-CMVgtn2k.js} +59 -6
  46. package/dist/assets/idb-CMVgtn2k.js.map +1 -0
  47. package/dist/assets/{irohWeb-z5QDDWa-.js → irohWeb-DHCxSvHF.js} +2 -2
  48. package/dist/assets/{irohWeb-z5QDDWa-.js.map → irohWeb-DHCxSvHF.js.map} +1 -1
  49. package/dist/assets/{main-_q4Fgypp.js → main-BWAwKY4f.js} +476 -141
  50. package/dist/assets/main-BWAwKY4f.js.map +1 -0
  51. package/dist/assets/{mainline-Cld-bKeC.js → mainline-CsG-DdJ5.js} +2 -2
  52. package/dist/assets/{mainline-Cld-bKeC.js.map → mainline-CsG-DdJ5.js.map} +1 -1
  53. package/dist/assets/{networkReason-vUHo6A_C.js → networkReason-B91upMCb.js} +3 -3
  54. package/dist/assets/{networkReason-vUHo6A_C.js.map → networkReason-B91upMCb.js.map} +1 -1
  55. package/dist/assets/{nwc-zXpmd2FN.js → nwc-BFv67iSz.js} +3 -3
  56. package/dist/assets/{nwc-zXpmd2FN.js.map → nwc-BFv67iSz.js.map} +1 -1
  57. package/dist/assets/{nwcProvider-D482SQ1a.js → nwcProvider-BKNFdH9v.js} +2 -2
  58. package/dist/assets/{nwcProvider-D482SQ1a.js.map → nwcProvider-BKNFdH9v.js.map} +1 -1
  59. package/dist/assets/{profiles-gPCjLOQq.js → profiles-DSxPYdlU.js} +13 -3
  60. package/dist/assets/profiles-DSxPYdlU.js.map +1 -0
  61. package/dist/assets/{registry-CxsDR3c6.js → registry-CHPd_hf7.js} +1 -1
  62. package/dist/assets/{registry-OVx2kY3d.js → registry-qbnWmwCE.js} +3 -3
  63. package/dist/assets/registry-qbnWmwCE.js.map +1 -0
  64. package/dist/assets/{resolve-CPTAnu-9.js → resolve-B63_uSu7.js} +2 -2
  65. package/dist/assets/{resolve-CPTAnu-9.js.map → resolve-B63_uSu7.js.map} +1 -1
  66. package/dist/assets/{restoredRows-Db3oUTko.js → restoredRows-DeBImGRd.js} +2 -2
  67. package/dist/assets/{restoredRows-Db3oUTko.js.map → restoredRows-DeBImGRd.js.map} +1 -1
  68. package/dist/assets/{server-C-EkLCCt.js → server-Cd1dLOB8.js} +1456 -228
  69. package/dist/assets/server-Cd1dLOB8.js.map +1 -0
  70. package/dist/assets/{src-Dg1bvMNv.js → src-DzXL-GYu.js} +7277 -5975
  71. package/dist/assets/src-DzXL-GYu.js.map +1 -0
  72. package/dist/assets/turnRefs-BCtM10d3.js +357 -0
  73. package/dist/assets/turnRefs-BCtM10d3.js.map +1 -0
  74. package/dist/assets/{usdt-BY5OIIvG.js → usdt-B7JWDhQV.js} +3 -3
  75. package/dist/assets/{usdt-BY5OIIvG.js.map → usdt-B7JWDhQV.js.map} +1 -1
  76. package/dist/ghostly.mjs +1 -1
  77. package/package.json +7 -6
  78. package/skills/ghostly/README.md +41 -0
  79. package/skills/ghostly/SKILL.md +79 -0
  80. package/skills/ghostly/scripts/listen +67 -0
  81. package/skills/ghostly/scripts/react +25 -0
  82. package/skills/ghostly/scripts/say +44 -0
  83. package/skills/ghostly/scripts/status +27 -0
  84. package/dist/assets/api-BCrwJ57L.js.map +0 -1
  85. package/dist/assets/apps-DOH1P_S0.js.map +0 -1
  86. package/dist/assets/buttons-CJqNkG-Q.js +0 -2
  87. package/dist/assets/endpoint-BOTFMpfS.js.map +0 -1
  88. package/dist/assets/errors-B-zMxbcd.js.map +0 -1
  89. package/dist/assets/fileBytes-CfSXjTFa.js.map +0 -1
  90. package/dist/assets/fileBytesIdb-CFP-DSkZ.js +0 -2
  91. package/dist/assets/groupFiles-uxa0U9_n.js.map +0 -1
  92. package/dist/assets/host-BbDWamRc.js.map +0 -1
  93. package/dist/assets/idb-B5L8wuOm.js.map +0 -1
  94. package/dist/assets/main-_q4Fgypp.js.map +0 -1
  95. package/dist/assets/profiles-gPCjLOQq.js.map +0 -1
  96. package/dist/assets/registry-OVx2kY3d.js.map +0 -1
  97. package/dist/assets/server-C-EkLCCt.js.map +0 -1
  98. package/dist/assets/src-Dg1bvMNv.js.map +0 -1
  99. package/dist/assets/turnRefs-WnggXm2T.js +0 -323
  100. package/dist/assets/turnRefs-WnggXm2T.js.map +0 -1
@@ -1,9 +1,9 @@
1
- import { $o as extractParamsFromSdp, Ai as isPublicAddress, Jo as RTC_CONFIG, Qo as callSignalHeardAt, Xo as buildSdpFromSignal, Yo as answersOffer, Zo as callRtcConfig, es as parseCallSignal, oi as checkPushEndpoint, qo as CALL_SIGNAL_MAX_AGE_MS, tl as setLinkTraceSink, ts as signalHasVideo, xl as fromBase64Url } from "./src-Dg1bvMNv.js";
2
- import { a as fedimintSdkOn, r as irohRelayProblem } from "./irohWeb-z5QDDWa-.js";
3
- import { r as asCliError, t as CliError } from "./errors-B-zMxbcd.js";
4
- import { a as findChat } from "./apiKit-B4qhnLQT.js";
5
- import { _ as flushCardUpdates, c as paymentJson, d as nodeLocalFetch, f as chatJson, g as resumeHolds, h as groupMessageJson, l as reportAppFrames, m as groupJson, p as chatMessageJson, r as callApi, u as servedApps } from "./api-BCrwJ57L.js";
6
- import { n as RESTORED_MARK, r as acquireLock } from "./profiles-gPCjLOQq.js";
1
+ import { Ao as signalHasVideo, Co as RTC_CONFIG, Do as callSignalHeardAt, Eo as callRtcConfig, Oo as extractParamsFromSdp, So as CALL_SIGNAL_MAX_AGE_MS, To as buildSdpFromSignal, Xr as checkPushEndpoint, Zl as fromBase64Url, bi as isPublicAddress, jl as setLinkTraceSink, ko as parseCallSignal, wo as answersOffer } from "./src-DzXL-GYu.js";
2
+ import { a as fedimintSdkOn, r as irohRelayProblem } from "./irohWeb-DHCxSvHF.js";
3
+ import { r as asCliError, t as CliError } from "./errors-BLSPp0tK.js";
4
+ import { a as findChat } from "./apiKit-BpIUCwa-.js";
5
+ import { _ as flushCardUpdates, c as paymentJson, d as nodeLocalFetch, f as chatJson, g as resumeHolds, h as groupMessageJson, l as reportAppFrames, m as groupJson, p as chatMessageJson, r as callApi, u as servedApps } from "./api-JMkEO0RR.js";
6
+ import { n as RESTORED_MARK, r as acquireLock } from "./profiles-DSxPYdlU.js";
7
7
  import { i as proof, l as privateFolder, n as newDaemonSecret, s as ownFolder } from "./daemonProof-B53VnZ1Z.js";
8
8
  import { createRequire } from "node:module";
9
9
  import { appendFileSync, chmodSync, closeSync, existsSync, fstatSync, fsyncSync, lstatSync, mkdirSync, openSync, readFileSync, readSync, readdirSync, renameSync, rmSync, statSync, writeFileSync, writeSync } from "node:fs";
@@ -313,7 +313,7 @@ var RtpWriter = class {
313
313
  return Buffer.concat([header, payload]);
314
314
  }
315
315
  };
316
- /** The most silence a gap in the packets becomes. */
316
+ /** The most frames a gap in the packets becomes (concealed by the decoder, see CallAudio). */
317
317
  var MAX_LOST_FRAMES = 3;
318
318
  /** Sequence numbers compared across the 16-bit wrap: positive when `a` comes after `b`. */
319
319
  function sequenceDelta(a, b) {
@@ -322,7 +322,7 @@ function sequenceDelta(a, b) {
322
322
  }
323
323
  /**
324
324
  * Puts packets back in order, holding at most `depth` of them for one that is late: a lost packet costs one frame
325
- * of silence (40 ms of waiting at most), a duplicate or a packet that came too late is dropped, and a new stream (its
325
+ * the decoder conceals (40 ms of waiting at most), a duplicate or a packet that came too late is dropped, and a new stream (its
326
326
  * SSRC changed, or its sequence jumped) starts over.
327
327
  */
328
328
  var ReorderBuffer = class {
@@ -380,6 +380,8 @@ var CallAudio = class {
380
380
  samples;
381
381
  silence;
382
382
  pending = Buffer.alloc(0);
383
+ /** What the decoder concealed for the current gap and is not handed on yet (see `conceal`). */
384
+ concealed = null;
383
385
  timer = null;
384
386
  startedAt = 0;
385
387
  ticks = 0;
@@ -474,15 +476,34 @@ var CallAudio = class {
474
476
  if (!rtp || rtp.payloadType !== this.options.payloadType) return;
475
477
  for (const item of this.reorder.push(rtp)) {
476
478
  let pcm;
477
- if ("lost" in item) pcm = this.silence;
478
- else try {
479
- pcm = this.options.decoder.decode(item.payload);
480
- } catch {
481
- pcm = this.silence;
479
+ if ("lost" in item) pcm = this.conceal();
480
+ else {
481
+ this.concealed = null;
482
+ try {
483
+ pcm = this.options.decoder.decode(item.payload);
484
+ } catch {
485
+ pcm = this.silence;
486
+ }
482
487
  }
483
488
  this.emit(pcm);
484
489
  }
485
490
  }
491
+ /**
492
+ * A frame for one that never came: the decoder's loss concealment (libopus PLC, what an empty packet decodes to), as
493
+ * the apps' WebRTC stacks do, not a frame of silence (a click). opusscript conceals 60 ms at a time (its largest
494
+ * frame), so one run of it serves the frames of a gap in turn (ReorderBuffer gives MAX_LOST_FRAMES at most).
495
+ */
496
+ conceal() {
497
+ if (!this.concealed || this.concealed.length < this.frame) try {
498
+ this.concealed = Buffer.from(this.options.decoder.decode(Buffer.alloc(0)));
499
+ } catch {
500
+ this.concealed = null;
501
+ }
502
+ if (!this.concealed || this.concealed.length < this.frame) return this.silence;
503
+ const pcm = this.concealed.subarray(0, this.frame);
504
+ this.concealed = this.concealed.subarray(this.frame);
505
+ return pcm;
506
+ }
486
507
  /** Hands decoded audio on in 20 ms frames, whatever the contact's packet length (10, 20, 40 or 60 ms). */
487
508
  emit(pcm) {
488
509
  let data = this.pending.length ? Buffer.concat([this.pending, pcm]) : pcm;
@@ -4679,7 +4700,7 @@ async function startRuntime(paths, options = {}) {
4679
4700
  const restored = join(paths.dir, RESTORED_MARK);
4680
4701
  if (existsSync(restored)) {
4681
4702
  try {
4682
- const rows = await import("./restoredRows-Db3oUTko.js");
4703
+ const rows = await import("./restoredRows-DeBImGRd.js");
4683
4704
  await rows.markRestoredWallet();
4684
4705
  await rows.markLeftOutFiles(leftOutIn(restored));
4685
4706
  await store.compact();
@@ -4698,16 +4719,17 @@ async function startRuntime(paths, options = {}) {
4698
4719
  await installEventSource();
4699
4720
  await preloadWalletModules();
4700
4721
  (await import("./ghostly_iroh_web-BsAEFIjl.js")).initSync({ module: irohWasmBytes() });
4701
- const [{ registerFileBytes }, { NodeFileBytes }] = await Promise.all([import("./fileBytes-CgbibpbV.js"), import("./fileBytes-CfSXjTFa.js")]);
4722
+ const [{ registerFileBytes }, { NodeFileBytes }] = await Promise.all([import("./fileBytes-C2jycN_7.js"), import("./fileBytes-D6fqFQEX.js")]);
4702
4723
  registerFileBytes("native", async () => new NodeFileBytes(paths.files), true);
4703
- const [{ EngineServer }, { createHyperEndpoint }] = await Promise.all([import("./server-C-EkLCCt.js"), import("./endpoint-BOTFMpfS.js")]);
4724
+ if (await (await import("./blobFiles-B0rNnHlO.js")).moveBlobFiles()) await store.compact();
4725
+ const [{ EngineServer }, { createHyperEndpoint }] = await Promise.all([import("./server-Cd1dLOB8.js"), import("./endpoint-Cl3cgAYl.js")]);
4704
4726
  const network = hyperdhtNetwork();
4705
4727
  const dht = mainlineNetwork();
4706
- const mainline = dht.off ? null : new (await (import("./mainline-Cld-bKeC.js"))).Mainline({
4728
+ const mainline = dht.off ? null : new (await (import("./mainline-CsG-DdJ5.js"))).Mainline({
4707
4729
  bootstrap: dht.bootstrap,
4708
4730
  host: dht.host
4709
4731
  });
4710
- const transport = mainline || pinned ? new (await (import("./mainline-Cld-bKeC.js"))).RelaysAndDht(mainline, pinned ? { relays: pinned } : {}, !!pinned) : null;
4732
+ const transport = mainline || pinned ? new (await (import("./mainline-CsG-DdJ5.js"))).RelaysAndDht(mainline, pinned ? { relays: pinned } : {}, !!pinned) : null;
4711
4733
  const apps = servedApps(paths.dir).length > 0;
4712
4734
  const server = new EngineServer({
4713
4735
  ...transport ? { transport } : {},
@@ -4744,7 +4766,7 @@ async function startRuntime(paths, options = {}) {
4744
4766
  callsUnavailable,
4745
4767
  apps,
4746
4768
  close: () => closing ??= (async () => {
4747
- await server.node.shutdown().catch(() => {});
4769
+ await server.node.shutdown({ quitting: true }).catch(() => {});
4748
4770
  await mainline?.destroy().catch(() => {});
4749
4771
  await store.close();
4750
4772
  })()
@@ -4948,6 +4970,7 @@ function connection(ctx, socket, secret) {
4948
4970
  input: socket,
4949
4971
  crlfDelay: Infinity
4950
4972
  });
4973
+ lines.on("error", () => {});
4951
4974
  let buffered = 0;
4952
4975
  socket.on("data", (chunk) => {
4953
4976
  buffered += chunk.length;
@@ -5044,4 +5067,4 @@ function connection(ctx, socket, secret) {
5044
5067
  //#endregion
5045
5068
  export { BASELINE_NEWEST, MAX_LINE, MAX_UNREAD, keepServing, openHost, serve };
5046
5069
 
5047
- //# sourceMappingURL=host-BbDWamRc.js.map
5070
+ //# sourceMappingURL=host-Drd-c4VO.js.map