@ghostlytools/cli 1.3.6 → 1.3.8
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/README.md +15 -6
- package/SKILL.md +2 -0
- package/dist/assets/{api-Br3msjtR.js → api-CYG-sByy.js} +2 -2
- package/dist/assets/{api-z9mlywrn.js → api-Q6QZ0oIy.js} +51 -25
- package/dist/assets/api-Q6QZ0oIy.js.map +1 -0
- package/dist/assets/{apiKit-lX3Xx_hY.js → apiKit-C9lLXQwt.js} +2 -2
- package/dist/assets/{apiKit-lX3Xx_hY.js.map → apiKit-C9lLXQwt.js.map} +1 -1
- package/dist/assets/{apps-Dn7rCafG.js → apps-Bs8xpLGv.js} +1 -1
- package/dist/assets/{apps-BUK6bEKW.js → apps-tcynvhlC.js} +2 -2
- package/dist/assets/{apps-BUK6bEKW.js.map → apps-tcynvhlC.js.map} +1 -1
- package/dist/assets/{arkade-uqAXA5BT.js → arkade-BgmB0fUk.js} +2 -2
- package/dist/assets/{arkade-uqAXA5BT.js.map → arkade-BgmB0fUk.js.map} +1 -1
- package/dist/assets/{backup-_JnqeFZb.js → backup-OlEHNkqQ.js} +1 -1
- package/dist/assets/{backup-CJQK5Miu.js → backup-XtMACsQ0.js} +4 -4
- package/dist/assets/{backup-CJQK5Miu.js.map → backup-XtMACsQ0.js.map} +1 -1
- package/dist/assets/buttons-BoGOYSHb.js +2 -0
- package/dist/assets/{buttons-DDvTuViY.js → buttons-mdl2Gol2.js} +3 -3
- package/dist/assets/{buttons-DDvTuViY.js.map → buttons-mdl2Gol2.js.map} +1 -1
- package/dist/assets/daemonProof-B53VnZ1Z.js +100 -0
- package/dist/assets/daemonProof-B53VnZ1Z.js.map +1 -0
- package/dist/assets/{envelope-BqvBb6hC.js → envelope-DHf3mrHv.js} +2 -2
- package/dist/assets/{envelope-BqvBb6hC.js.map → envelope-DHf3mrHv.js.map} +1 -1
- package/dist/assets/{groupFiles-B1lL6wch.js → groupFiles-CqrujNN1.js} +7 -4
- package/dist/assets/groupFiles-CqrujNN1.js.map +1 -0
- package/dist/assets/{host-DFzlKU3P.js → host-Mz74S9cM.js} +50 -12
- package/dist/assets/host-Mz74S9cM.js.map +1 -0
- package/dist/assets/{hyperdhtRelay-DwlOY6aD.js → hyperdhtRelay-BnqdXvmv.js} +2 -2
- package/dist/assets/{hyperdhtRelay-DwlOY6aD.js.map → hyperdhtRelay-BnqdXvmv.js.map} +1 -1
- package/dist/assets/{irohWeb-DZDCyL9b.js → irohWeb-C8iKFl8d.js} +2 -2
- package/dist/assets/{irohWeb-DZDCyL9b.js.map → irohWeb-C8iKFl8d.js.map} +1 -1
- package/dist/assets/{main-DgbdDDif.js → main-BXwlJall.js} +149 -52
- package/dist/assets/main-BXwlJall.js.map +1 -0
- package/dist/assets/{mainline-BHE5-R3A.js → mainline-CbrPHUrZ.js} +2 -2
- package/dist/assets/{mainline-BHE5-R3A.js.map → mainline-CbrPHUrZ.js.map} +1 -1
- package/dist/assets/{networkReason-Btv4b2C4.js → networkReason-CrrB031Y.js} +2 -2
- package/dist/assets/{networkReason-Btv4b2C4.js.map → networkReason-CrrB031Y.js.map} +1 -1
- package/dist/assets/{nwc-z0pa5zql.js → nwc-Cu5zwrE8.js} +3 -3
- package/dist/assets/{nwc-z0pa5zql.js.map → nwc-Cu5zwrE8.js.map} +1 -1
- package/dist/assets/{nwcProvider-C1AhPoFW.js → nwcProvider-BVVFfJM5.js} +2 -2
- package/dist/assets/{nwcProvider-C1AhPoFW.js.map → nwcProvider-BVVFfJM5.js.map} +1 -1
- package/dist/assets/{registry-JrnwUWmh.js → registry-BKm8N_TI.js} +3 -3
- package/dist/assets/{registry-JrnwUWmh.js.map → registry-BKm8N_TI.js.map} +1 -1
- package/dist/assets/{registry-C09xXyx-.js → registry-CshC1EyV.js} +1 -1
- package/dist/assets/{resolve-Ssq1nDy4.js → resolve-DKGaPeMz.js} +2 -2
- package/dist/assets/{resolve-Ssq1nDy4.js.map → resolve-DKGaPeMz.js.map} +1 -1
- package/dist/assets/{server-D6FSznK5.js → server-CaDVxJKy.js} +53 -21
- package/dist/assets/{server-D6FSznK5.js.map → server-CaDVxJKy.js.map} +1 -1
- package/dist/assets/{src-XhjSWnp-.js → src-CVYir6mP.js} +152 -18
- package/dist/assets/src-CVYir6mP.js.map +1 -0
- package/dist/assets/{turnRefs-Cle33IoV.js → turnRefs-BeWsTX0o.js} +2 -2
- package/dist/assets/{turnRefs-Cle33IoV.js.map → turnRefs-BeWsTX0o.js.map} +1 -1
- package/dist/assets/{usdt-DO86yko2.js → usdt-C5Q0BWHr.js} +3 -3
- package/dist/assets/{usdt-DO86yko2.js.map → usdt-C5Q0BWHr.js.map} +1 -1
- package/dist/ghostly.mjs +1 -1
- package/package.json +1 -1
- package/dist/assets/api-z9mlywrn.js.map +0 -1
- package/dist/assets/buttons-DDB9Xdha.js +0 -2
- package/dist/assets/groupFiles-B1lL6wch.js.map +0 -1
- package/dist/assets/host-DFzlKU3P.js.map +0 -1
- package/dist/assets/main-DgbdDDif.js.map +0 -1
- package/dist/assets/privateFolder-Bk9C9oFv.js +0 -38
- package/dist/assets/privateFolder-Bk9C9oFv.js.map +0 -1
- package/dist/assets/src-XhjSWnp-.js.map +0 -1
|
@@ -1,10 +1,10 @@
|
|
|
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-
|
|
2
|
-
import { a as fedimintSdkOn, r as irohRelayProblem } from "./irohWeb-
|
|
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-CVYir6mP.js";
|
|
2
|
+
import { a as fedimintSdkOn, r as irohRelayProblem } from "./irohWeb-C8iKFl8d.js";
|
|
3
3
|
import { r as asCliError, t as CliError } from "./errors-B-zMxbcd.js";
|
|
4
|
-
import { a as findChat } from "./apiKit-
|
|
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-
|
|
4
|
+
import { a as findChat } from "./apiKit-C9lLXQwt.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-Q6QZ0oIy.js";
|
|
6
6
|
import { n as RESTORED_MARK, r as acquireLock } from "./profiles-gPCjLOQq.js";
|
|
7
|
-
import {
|
|
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";
|
|
10
10
|
import { readFile } from "node:fs/promises";
|
|
@@ -1877,10 +1877,30 @@ var EventHub = class {
|
|
|
1877
1877
|
} catch (error) {
|
|
1878
1878
|
process.stderr.write(`ghostly: event journal error: ${error instanceof Error ? error.message : String(error)}\n`);
|
|
1879
1879
|
}
|
|
1880
|
+
this.tell(event);
|
|
1881
|
+
return event;
|
|
1882
|
+
}
|
|
1883
|
+
/**
|
|
1884
|
+
* An event for the listeners only, never the journal: a contact's app frames, live only (WISP 1200), which at the
|
|
1885
|
+
* receiver's rate would push every other chat's events out of it in seconds. It takes no seq of its own but the last
|
|
1886
|
+
* event's (as an `agent.turn` takes its source's): a cursor that handled it resumes after that event, a replay never
|
|
1887
|
+
* gives it, and a restart never numbers an event again.
|
|
1888
|
+
*/
|
|
1889
|
+
emitLive(type, id, fields = {}) {
|
|
1890
|
+
const event = {
|
|
1891
|
+
seq: this.seq,
|
|
1892
|
+
id,
|
|
1893
|
+
type,
|
|
1894
|
+
at: this.now(),
|
|
1895
|
+
...fields
|
|
1896
|
+
};
|
|
1897
|
+
this.tell(event);
|
|
1898
|
+
return event;
|
|
1899
|
+
}
|
|
1900
|
+
tell(event) {
|
|
1880
1901
|
for (const listener of this.listeners) try {
|
|
1881
1902
|
listener(event);
|
|
1882
1903
|
} catch {}
|
|
1883
|
-
return event;
|
|
1884
1904
|
}
|
|
1885
1905
|
/** Keeps the last `JOURNAL_KEEP` events, and of them no more than `JOURNAL_KEEP_BYTES`. */
|
|
1886
1906
|
trimJournal() {
|
|
@@ -4581,14 +4601,14 @@ async function startRuntime(paths, options = {}) {
|
|
|
4581
4601
|
(await import("./ghostly_iroh_web-BsAEFIjl.js")).initSync({ module: irohWasmBytes() });
|
|
4582
4602
|
const [{ registerFileBytes }, { NodeFileBytes }] = await Promise.all([import("./fileBytes-CgbibpbV.js"), import("./fileBytes-CfSXjTFa.js")]);
|
|
4583
4603
|
registerFileBytes("native", async () => new NodeFileBytes(paths.files), true);
|
|
4584
|
-
const [{ EngineServer }, { createHyperEndpoint }] = await Promise.all([import("./server-
|
|
4604
|
+
const [{ EngineServer }, { createHyperEndpoint }] = await Promise.all([import("./server-CaDVxJKy.js"), import("./endpoint-BOTFMpfS.js")]);
|
|
4585
4605
|
const network = hyperdhtNetwork();
|
|
4586
4606
|
const dht = mainlineNetwork();
|
|
4587
|
-
const mainline = dht.off ? null : new (await (import("./mainline-
|
|
4607
|
+
const mainline = dht.off ? null : new (await (import("./mainline-CbrPHUrZ.js"))).Mainline({
|
|
4588
4608
|
bootstrap: dht.bootstrap,
|
|
4589
4609
|
host: dht.host
|
|
4590
4610
|
});
|
|
4591
|
-
const transport = mainline || pinned ? new (await (import("./mainline-
|
|
4611
|
+
const transport = mainline || pinned ? new (await (import("./mainline-CbrPHUrZ.js"))).RelaysAndDht(mainline, pinned ? { relays: pinned } : {}, !!pinned) : null;
|
|
4592
4612
|
const apps = servedApps(paths.dir).length > 0;
|
|
4593
4613
|
const server = new EngineServer({
|
|
4594
4614
|
...transport ? { transport } : {},
|
|
@@ -4734,11 +4754,12 @@ async function serve(host) {
|
|
|
4734
4754
|
else ownFolder(ctx.runtime.paths.dir, "the daemon will not put its socket there");
|
|
4735
4755
|
}
|
|
4736
4756
|
if (existsSync(path)) rmSync(path, { force: true });
|
|
4757
|
+
const secret = newDaemonSecret(ctx.runtime.paths.dir);
|
|
4737
4758
|
const sockets = /* @__PURE__ */ new Set();
|
|
4738
4759
|
const server = createServer((socket) => {
|
|
4739
4760
|
sockets.add(socket);
|
|
4740
4761
|
socket.on("close", () => sockets.delete(socket));
|
|
4741
|
-
connection(ctx, socket);
|
|
4762
|
+
connection(ctx, socket, secret);
|
|
4742
4763
|
});
|
|
4743
4764
|
await new Promise((resolve, reject) => {
|
|
4744
4765
|
server.once("error", reject);
|
|
@@ -4802,7 +4823,9 @@ function ownerOnlyUmask() {
|
|
|
4802
4823
|
return null;
|
|
4803
4824
|
}
|
|
4804
4825
|
}
|
|
4805
|
-
|
|
4826
|
+
/** A client's nonce: 16 to 64 bytes as lowercase hex, so the proof is over nothing but a nonce. */
|
|
4827
|
+
var NONCE = /^(?:[0-9a-f]{2}){16,64}$/;
|
|
4828
|
+
function connection(ctx, socket, secret) {
|
|
4806
4829
|
const unsubscribes = [];
|
|
4807
4830
|
let limit = MAX_UNREAD;
|
|
4808
4831
|
const unsubscribe = () => {
|
|
@@ -4852,6 +4875,21 @@ function connection(ctx, socket) {
|
|
|
4852
4875
|
});
|
|
4853
4876
|
return;
|
|
4854
4877
|
}
|
|
4878
|
+
if (request.method === "daemon.hello") {
|
|
4879
|
+
const nonce = request.params?.nonce;
|
|
4880
|
+
if (typeof nonce !== "string" || !NONCE.test(nonce)) {
|
|
4881
|
+
write({
|
|
4882
|
+
id,
|
|
4883
|
+
error: new CliError("bad_request", "daemon.hello takes a nonce: 16 to 64 bytes as lowercase hex").toJSON()
|
|
4884
|
+
});
|
|
4885
|
+
return;
|
|
4886
|
+
}
|
|
4887
|
+
write({
|
|
4888
|
+
id,
|
|
4889
|
+
result: { proof: proof(secret, "daemon", nonce) }
|
|
4890
|
+
});
|
|
4891
|
+
return;
|
|
4892
|
+
}
|
|
4855
4893
|
if (request.method === "events.subscribe") {
|
|
4856
4894
|
if (unsubscribes.length) {
|
|
4857
4895
|
write({
|
|
@@ -4907,4 +4945,4 @@ function connection(ctx, socket) {
|
|
|
4907
4945
|
//#endregion
|
|
4908
4946
|
export { BASELINE_NEWEST, MAX_LINE, MAX_UNREAD, keepServing, openHost, serve };
|
|
4909
4947
|
|
|
4910
|
-
//# sourceMappingURL=host-
|
|
4948
|
+
//# sourceMappingURL=host-Mz74S9cM.js.map
|