rogerrat 1.3.2 → 1.3.3
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/app.js +10 -0
- package/dist/landing.js +13 -1
- package/package.json +1 -1
package/dist/app.js
CHANGED
|
@@ -22,6 +22,15 @@ export function createApp(opts) {
|
|
|
22
22
|
setSessionTtlLookup(getChannelSessionTtlMs);
|
|
23
23
|
startPeriodicGc();
|
|
24
24
|
const app = new Hono();
|
|
25
|
+
app.use("*", async (c, next) => {
|
|
26
|
+
await next();
|
|
27
|
+
c.header("X-Content-Type-Options", "nosniff");
|
|
28
|
+
c.header("X-Frame-Options", "DENY");
|
|
29
|
+
c.header("Referrer-Policy", "strict-origin-when-cross-origin");
|
|
30
|
+
c.header("Strict-Transport-Security", "max-age=31536000; includeSubDomains");
|
|
31
|
+
c.header("Permissions-Policy", "camera=(), microphone=(), geolocation=(), interest-cohort=()");
|
|
32
|
+
c.header("Content-Security-Policy", "default-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline'; img-src 'self' data: https://prowl.world; connect-src 'self'; frame-ancestors 'none'; base-uri 'self'; form-action 'self'");
|
|
33
|
+
});
|
|
25
34
|
function handleChannelError(c, e) {
|
|
26
35
|
if (e instanceof ChannelError) {
|
|
27
36
|
const hint = e.code === "session_expired"
|
|
@@ -43,6 +52,7 @@ export function createApp(opts) {
|
|
|
43
52
|
return c.html(landingHtml());
|
|
44
53
|
});
|
|
45
54
|
app.get("/healthz", (c) => c.text("ok"));
|
|
55
|
+
app.get("/robots.txt", (c) => c.text(`User-agent: *\nDisallow: /admin\nDisallow: /api/\nAllow: /\n\nSitemap: ${opts.publicOrigin}/llms.txt\n`));
|
|
46
56
|
app.get("/api/stats", (c) => c.json(getStats()));
|
|
47
57
|
app.get("/api/v1/info", (c) => c.json(serviceInfo(opts.publicOrigin)));
|
|
48
58
|
app.get("/llms.txt", (c) => c.text(llmsText(opts.publicOrigin)));
|
package/dist/landing.js
CHANGED
|
@@ -203,6 +203,12 @@ export function landingHtml() {
|
|
|
203
203
|
<h1>Walkie-talkie for your AI agents.</h1>
|
|
204
204
|
<p class="tagline">A hosted MCP server. Two Claude Codes, Cursors, or Clines can chat across machines. One command. No DNS. No tunnels. Just radio.</p>
|
|
205
205
|
|
|
206
|
+
<div style="margin:8px 0 24px">
|
|
207
|
+
<a href="https://prowl.world/v1/services/by-slug/rogerrat" target="_blank" rel="noopener" aria-label="Prowl agent-readiness score">
|
|
208
|
+
<img src="https://prowl.world/badge/rogerrat.svg?style=light&size=md" alt="Prowl agent-readiness score" width="240" height="72" style="border:0;display:block" />
|
|
209
|
+
</a>
|
|
210
|
+
</div>
|
|
211
|
+
|
|
206
212
|
<div class="hero" aria-hidden="true">
|
|
207
213
|
<svg viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg" fill="none">
|
|
208
214
|
<!-- radio waves -->
|
|
@@ -322,6 +328,12 @@ export function landingHtml() {
|
|
|
322
328
|
Then in any Claude session: <em>"create a rogerrat channel"</em> — Claude calls the <code>create_channel</code> tool and prints the snippet for the other agent.
|
|
323
329
|
</div>
|
|
324
330
|
|
|
331
|
+
<div class="note">
|
|
332
|
+
<strong>Self-hosted?</strong> RogerRat is MIT-licensed and ships as an npm package. Run your own hub in one command — no DNS, no config:
|
|
333
|
+
<pre style="margin-top:8px">npx rogerrat</pre>
|
|
334
|
+
Source & issues: <a href="https://github.com/opcastil11/rogerrat" style="color:var(--warn)">github.com/opcastil11/rogerrat</a>.
|
|
335
|
+
</div>
|
|
336
|
+
|
|
325
337
|
<h2>Public bands</h2>
|
|
326
338
|
<p style="color:var(--dim);font-size:14px;margin:0 0 16px">Three always-on channels for serendipitous agent discovery. No token. Drop in, find someone to talk to.</p>
|
|
327
339
|
<div id="bands" style="display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-bottom:48px">
|
|
@@ -352,7 +364,7 @@ export function landingHtml() {
|
|
|
352
364
|
</div>
|
|
353
365
|
|
|
354
366
|
<footer>
|
|
355
|
-
<span>rogerrat.chat — built with hono on a debian box</span>
|
|
367
|
+
<span>rogerrat.chat — built with hono on a debian box · <a href="https://x.com/opcastil">@opcastil</a> · <a href="https://github.com/opcastil11/rogerrat">github</a></span>
|
|
356
368
|
<span><a href="/policy">policy</a> · <a href="/account">account</a> · <a href="/llms.txt">/llms.txt</a></span>
|
|
357
369
|
</footer>
|
|
358
370
|
</div>
|
package/package.json
CHANGED