openryoko 2026.8.19 → 2026.8.21

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 (106) hide show
  1. package/dist/bin/jimmy.js +9 -0
  2. package/dist/bin/jimmy.js.map +1 -1
  3. package/dist/package.json +1 -1
  4. package/dist/src/cli/api.d.ts +24 -0
  5. package/dist/src/cli/api.d.ts.map +1 -0
  6. package/dist/src/cli/api.js +66 -0
  7. package/dist/src/cli/api.js.map +1 -0
  8. package/dist/src/cli/gateway-audit.d.ts +14 -0
  9. package/dist/src/cli/gateway-audit.d.ts.map +1 -0
  10. package/dist/src/cli/gateway-audit.js +120 -0
  11. package/dist/src/cli/gateway-audit.js.map +1 -0
  12. package/dist/src/cli/migrate.d.ts +1 -0
  13. package/dist/src/cli/migrate.d.ts.map +1 -1
  14. package/dist/src/cli/migrate.js +22 -0
  15. package/dist/src/cli/migrate.js.map +1 -1
  16. package/dist/src/cli/pair.d.ts.map +1 -1
  17. package/dist/src/cli/pair.js +1 -8
  18. package/dist/src/cli/pair.js.map +1 -1
  19. package/dist/src/cli/status.d.ts.map +1 -1
  20. package/dist/src/cli/status.js +16 -4
  21. package/dist/src/cli/status.js.map +1 -1
  22. package/dist/src/gateway/host-guard.d.ts.map +1 -1
  23. package/dist/src/gateway/host-guard.js +1 -1
  24. package/dist/src/gateway/host-guard.js.map +1 -1
  25. package/dist/src/gateway/server.d.ts.map +1 -1
  26. package/dist/src/gateway/server.js +45 -6
  27. package/dist/src/gateway/server.js.map +1 -1
  28. package/dist/src/jobs/notify.d.ts +2 -0
  29. package/dist/src/jobs/notify.d.ts.map +1 -1
  30. package/dist/src/jobs/notify.js +8 -1
  31. package/dist/src/jobs/notify.js.map +1 -1
  32. package/dist/src/sessions/context.d.ts.map +1 -1
  33. package/dist/src/sessions/context.js +27 -20
  34. package/dist/src/sessions/context.js.map +1 -1
  35. package/dist/src/shared/gateway-url.d.ts +26 -0
  36. package/dist/src/shared/gateway-url.d.ts.map +1 -0
  37. package/dist/src/shared/gateway-url.js +41 -0
  38. package/dist/src/shared/gateway-url.js.map +1 -0
  39. package/dist/web/__next._head.txt +6 -0
  40. package/dist/web/__next._index.txt +6 -0
  41. package/dist/web/_next/static/UDwWEfKiZ-eIOpfOIPKQr/_buildManifest.js +11 -0
  42. package/dist/web/_next/static/UDwWEfKiZ-eIOpfOIPKQr/_clientMiddlewareManifest.js +1 -0
  43. package/dist/web/_next/static/UDwWEfKiZ-eIOpfOIPKQr/_ssgManifest.js +1 -0
  44. package/dist/web/_next/static/chunks/012aakl34ff5a.js +5 -0
  45. package/dist/web/_next/static/chunks/03~yq9q893hmn.js +1 -0
  46. package/dist/web/_next/static/chunks/0a2uy1kw.~j~c.js +1 -0
  47. package/dist/web/_next/static/chunks/0agxgztb0b~.7.js +5 -0
  48. package/dist/web/_next/static/chunks/0dtbl8648b3u9.js +7 -0
  49. package/dist/web/_next/static/chunks/0e3pdjkorr5zl.js +2 -0
  50. package/dist/web/_next/static/chunks/0ewpxy-mzj3j3.js +1 -0
  51. package/dist/web/_next/static/chunks/0g6xt.91k~0bc.js +5 -0
  52. package/dist/web/_next/static/chunks/0jm3e~uc~qd~p.js +79 -0
  53. package/dist/web/_next/static/chunks/0jzw1gpuag8bc.js +5 -0
  54. package/dist/web/_next/static/chunks/0lkp92-ovteta.js +5 -0
  55. package/dist/web/_next/static/chunks/0lt7kv1k1jla0.js +1 -0
  56. package/dist/web/_next/static/chunks/0msmlzd_~uk0y.js +5 -0
  57. package/dist/web/_next/static/chunks/0ru56x83x4rkk.js +1 -0
  58. package/dist/web/_next/static/chunks/0tcvgwr3rcw29.js +1 -0
  59. package/dist/web/_next/static/chunks/0tf9kpygstdls.js +1 -0
  60. package/dist/web/_next/static/chunks/0y3dnnq~kxyz_.js +1 -0
  61. package/dist/web/_next/static/chunks/0~6m1p5hnsx2f.js +1 -0
  62. package/dist/web/_next/static/chunks/10-liamt-ipcu.js +1 -0
  63. package/dist/web/_next/static/chunks/103zsy0q9psfj.css +1 -0
  64. package/dist/web/_next/static/chunks/10l08hq.acixl.js +5 -0
  65. package/dist/web/_next/static/chunks/11rbefjn.e-3-.js +1 -0
  66. package/dist/web/_next/static/chunks/11rodb4s1x4of.js +1 -0
  67. package/dist/web/_next/static/chunks/12_uxtnrqhoo1.js +1 -0
  68. package/dist/web/_next/static/chunks/12m97bwrg1tuu.js +5 -0
  69. package/dist/web/_next/static/chunks/13juizw904g.e.js +1 -0
  70. package/dist/web/_next/static/chunks/14ge_q22f0n.f.js +1 -0
  71. package/dist/web/_next/static/chunks/17-u9c_weg12-.js +31 -0
  72. package/dist/web/_next/static/chunks/17oc2l.ekcs8b.css +1 -0
  73. package/dist/web/_next/static/chunks/turbopack-0dt987bw_1nyf.js +1 -0
  74. package/dist/web/_next/static/media/apple-icon.0.wpl4.d-5bkf.jpg +0 -0
  75. package/dist/web/_next/static/media/icon.0.wpl4.d-5bkf.jpg +0 -0
  76. package/dist/web/_not-found/__next._head.txt +6 -0
  77. package/dist/web/_not-found/__next._index.txt +6 -0
  78. package/dist/web/_not-found/__next._not-found.txt +5 -0
  79. package/dist/web/chat/__next._head.txt +6 -0
  80. package/dist/web/chat/__next._index.txt +6 -0
  81. package/dist/web/chat/__next.chat.txt +5 -0
  82. package/dist/web/cron/__next._head.txt +6 -0
  83. package/dist/web/cron/__next._index.txt +6 -0
  84. package/dist/web/cron/__next.cron.txt +5 -0
  85. package/dist/web/kanban/__next._head.txt +6 -0
  86. package/dist/web/kanban/__next._index.txt +6 -0
  87. package/dist/web/kanban/__next.kanban.txt +5 -0
  88. package/dist/web/logs/__next._head.txt +6 -0
  89. package/dist/web/logs/__next._index.txt +6 -0
  90. package/dist/web/logs/__next.logs.txt +5 -0
  91. package/dist/web/org/__next._head.txt +6 -0
  92. package/dist/web/org/__next._index.txt +6 -0
  93. package/dist/web/org/__next.org.txt +5 -0
  94. package/dist/web/sessions/__next._head.txt +6 -0
  95. package/dist/web/sessions/__next._index.txt +6 -0
  96. package/dist/web/sessions/__next.sessions.txt +5 -0
  97. package/dist/web/settings/__next._head.txt +6 -0
  98. package/dist/web/settings/__next._index.txt +6 -0
  99. package/dist/web/settings/__next.settings.txt +5 -0
  100. package/dist/web/skills/__next._head.txt +6 -0
  101. package/dist/web/skills/__next._index.txt +6 -0
  102. package/dist/web/skills/__next.skills.txt +5 -0
  103. package/package.json +1 -1
  104. package/template/config.default.yaml +4 -1
  105. package/template/migrations/2026.8.20/MIGRATION.md +46 -0
  106. package/template/skills/sync/SKILL.md +5 -5
@@ -40,6 +40,7 @@ import { createDailyDatabaseBackup } from "../sessions/backup.js";
40
40
  import { getDiskSpaceStatus } from "../shared/storage-health.js";
41
41
  import { requestOriginAllowed } from "./request-origin.js";
42
42
  import { hostHeaderAllowed, localInterfaceHosts } from "./host-guard.js";
43
+ import { isWildcardBindHost, localGatewayUrl } from "../shared/gateway-url.js";
43
44
  import { staticPathWithinRoot } from "./static-path.js";
44
45
  const __filename = fileURLToPath(import.meta.url);
45
46
  const __dirname = path.dirname(__filename);
@@ -886,8 +887,34 @@ export async function startGateway(config) {
886
887
  // `Host` is not loopback, a local interface, or explicitly configured.
887
888
  const configuredHost = config.gateway.host || "127.0.0.1";
888
889
  const interfaceHosts = localInterfaceHosts();
889
- function hostIsAllowed(hostHeader) {
890
- return hostHeaderAllowed(hostHeader, configuredHost, currentConfig.gateway.allowedHosts, interfaceHosts);
890
+ const connectUrl = localGatewayUrl(configuredHost, config.gateway.port || 7777);
891
+ const configuredAllowedHosts = Array.isArray(currentConfig.gateway.allowedHosts) ? currentConfig.gateway.allowedHosts : [];
892
+ const ignoredWildcardAllowedHosts = configuredAllowedHosts.filter((host) => isWildcardBindHost(host));
893
+ if (ignoredWildcardAllowedHosts.length > 0) {
894
+ logger.warn(`Ignoring wildcard value(s) in gateway.allowedHosts (${ignoredWildcardAllowedHosts.join(", ")}). `
895
+ + `Wildcard bind addresses are never safe Host allowlist entries; connect to ${connectUrl} instead.`);
896
+ }
897
+ // Publish the *connectable* URL to every child process we spawn (engine CLIs
898
+ // inherit process.env via buildChildEnv). Skills and scripts should read
899
+ // $RYOKO_GATEWAY_URL rather than hard-coding a host they can get wrong.
900
+ process.env.RYOKO_GATEWAY_URL = connectUrl;
901
+ function hostIsAllowed(req) {
902
+ return hostHeaderAllowed(req.headers.host, configuredHost, currentConfig.gateway.allowedHosts, interfaceHosts);
903
+ }
904
+ // A silent 421 is how this guard bites: a cron script gets an empty body, the
905
+ // run is still recorded "success", and the Slack post just never happens. Say
906
+ // out loud what was rejected and what to use instead — but only once per
907
+ // distinct Host, so a hostile tab in a retry loop can't flood the log.
908
+ const warnedRejectedHosts = new Set();
909
+ function warnHostRejected(hostHeader) {
910
+ const key = (hostHeader || "<missing>").toLowerCase().replace(/[^\x20-\x7e]/g, "?").slice(0, 200);
911
+ if (warnedRejectedHosts.has(key))
912
+ return;
913
+ if (warnedRejectedHosts.size >= 50)
914
+ return;
915
+ warnedRejectedHosts.add(key);
916
+ logger.warn(`host_not_allowed: rejected Host="${key}". `
917
+ + `Connect to ${connectUrl} instead. Real proxy hostnames may be added to gateway.allowedHosts; wildcard bind addresses cannot.`);
891
918
  }
892
919
  // Create HTTP server
893
920
  const server = http.createServer((req, res) => {
@@ -895,9 +922,15 @@ export async function startGateway(config) {
895
922
  // Host header check before anything else — applies to both API and
896
923
  // static asset paths so a malicious cross-origin browser tab can't
897
924
  // pull session JSON either.
898
- if (!hostIsAllowed(req.headers.host)) {
925
+ if (!hostIsAllowed(req)) {
926
+ warnHostRejected(req.headers.host);
899
927
  res.writeHead(421, { "Content-Type": "application/json" });
900
- res.end(JSON.stringify({ error: "host_not_allowed" }));
928
+ res.end(JSON.stringify({
929
+ error: "host_not_allowed",
930
+ host: req.headers.host ?? null,
931
+ hint: `Use ${connectUrl} — "${configuredHost}" is the bind address, not a connectable host. `
932
+ + `Real proxy hostnames may be added to gateway.allowedHosts; wildcard bind addresses cannot.`,
933
+ }));
901
934
  return;
902
935
  }
903
936
  const origin = req.headers.origin;
@@ -968,7 +1001,8 @@ export async function startGateway(config) {
968
1001
  const reqUrl = req.url || "";
969
1002
  // DNS-rebinding / cross-host guard — mirror the HTTP request path so a WS
970
1003
  // upgrade can't bypass it. Applies to both /ws and /ws/pty.
971
- if (!hostIsAllowed(req.headers.host)) {
1004
+ if (!hostIsAllowed(req)) {
1005
+ warnHostRejected(req.headers.host);
972
1006
  socket.destroy();
973
1007
  return;
974
1008
  }
@@ -1112,7 +1146,12 @@ export async function startGateway(config) {
1112
1146
  reject(err);
1113
1147
  });
1114
1148
  server.listen(port, host, () => {
1115
- logger.info(`${gatewayName} gateway listening on http://${host}:${port} (boot ${bootId})`);
1149
+ logger.info(`${gatewayName} gateway listening on ${host}:${port} (boot ${bootId})`);
1150
+ if (isWildcardBindHost(host)) {
1151
+ // Wildcard/network binds are the case people get wrong: they copy the
1152
+ // bind address into a client URL and get 421'd by the guard above.
1153
+ logger.info(`Local clients must connect to ${localGatewayUrl(host, port)} — not http://${host}:${port}`);
1154
+ }
1116
1155
  resolve();
1117
1156
  });
1118
1157
  });
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/gateway/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/gateway/server.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,8 @@ export declare function assertLoopbackGatewayUrl(gatewayUrl: string): void;
9
9
  export interface NotifyDeps {
10
10
  fetchFn?: typeof fetch;
11
11
  sleep?: (ms: number) => Promise<void>;
12
+ /** Read on every attempt so a gateway restart can create or rotate the token. */
13
+ readAuthToken?: () => string | null;
12
14
  /** Retry delays in ms. Default spans ~10 minutes so a gateway restart is survived. */
13
15
  retryDelaysMs?: number[];
14
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"notify.d.ts","sourceRoot":"","sources":["../../../src/jobs/notify.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAe3C;yCACyC;AACzC,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAuB,GAAG,MAAM,CAkBtF;AAWD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAiC7E;AAED;mEACmE;AACnE,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAWjE;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IACvB,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,sFAAsF;IACtF,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAID;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,QAAQ,EACf,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,UAAe,GACpB,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CA4BtD"}
1
+ {"version":3,"file":"notify.d.ts","sourceRoot":"","sources":["../../../src/jobs/notify.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAe3C;yCACyC;AACzC,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAuB,GAAG,MAAM,CAkBtF;AAWD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAiC7E;AAED;mEACmE;AACnE,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAWjE;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IACvB,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,iFAAiF;IACjF,aAAa,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACpC,sFAAsF;IACtF,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAID;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,QAAQ,EACf,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,UAAe,GACpB,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAiCtD"}
@@ -1,4 +1,6 @@
1
1
  import fs from "node:fs";
2
+ import { readGatewayAuthToken } from "../gateway/auth.js";
3
+ import { JINN_HOME } from "../shared/paths.js";
2
4
  /**
3
5
  * Wake-up notification for a finished detached job.
4
6
  *
@@ -101,15 +103,20 @@ const DEFAULT_RETRY_DELAYS_MS = [5_000, 15_000, 60_000, 120_000, 180_000, 240_00
101
103
  export async function sendJobNotification(state, message, deps = {}) {
102
104
  const fetchFn = deps.fetchFn ?? fetch;
103
105
  const sleep = deps.sleep ?? ((ms) => new Promise((r) => setTimeout(r, ms)));
106
+ const readAuthToken = deps.readAuthToken ?? (() => readGatewayAuthToken(JINN_HOME));
104
107
  const delays = deps.retryDelaysMs ?? DEFAULT_RETRY_DELAYS_MS;
105
108
  assertLoopbackGatewayUrl(state.gatewayUrl);
106
109
  const url = `${state.gatewayUrl.replace(/\/$/, "")}/api/sessions/${state.sessionId}/message`;
107
110
  let lastError = "unknown";
108
111
  for (let attempt = 0; attempt <= delays.length; attempt++) {
109
112
  try {
113
+ const token = readAuthToken();
110
114
  const res = await fetchFn(url, {
111
115
  method: "POST",
112
- headers: { "Content-Type": "application/json" },
116
+ headers: {
117
+ "Content-Type": "application/json",
118
+ ...(token ? { Authorization: `Bearer ${token}` } : {}),
119
+ },
113
120
  // dedupeKey: if the gateway accepted an earlier attempt but the
114
121
  // response was lost, the retry must not enqueue a second turn.
115
122
  body: JSON.stringify({ message, role: "notification", dedupeKey: `job:${state.id}` }),
@@ -1 +1 @@
1
- {"version":3,"file":"notify.js","sourceRoot":"","sources":["../../../src/jobs/notify.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"notify.js","sourceRoot":"","sources":["../../../src/jobs/notify.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/sessions/context.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAwC/D;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8CAA8C;IAC9C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yCAAyC;IACzC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,2CAA2C;IAC3C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uDAAuD;IACvD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,+CAA+C;IAC/C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IAC5C,SAAS,CAAC,EAAE,OAAO,oBAAoB,EAAE,YAAY,CAAC;CACvD,GAAG,MAAM,CA+LT;AA+aD;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA8B5F"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/sessions/context.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAyC/D;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8CAA8C;IAC9C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yCAAyC;IACzC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,2CAA2C;IAC3C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uDAAuD;IACvD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,+CAA+C;IAC/C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IAC5C,SAAS,CAAC,EAAE,OAAO,oBAAoB,EAAE,YAAY,CAAC;CACvD,GAAG,MAAM,CAgMT;AA+aD;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA8B5F"}
@@ -1,5 +1,6 @@
1
1
  import fs from "node:fs";
2
2
  import path from "node:path";
3
+ import { gatewayUrlFromConfig } from "../shared/gateway-url.js";
3
4
  import { JINN_HOME, ORG_DIR, CRON_JOBS, DOCS_DIR } from "../shared/paths.js";
4
5
  import { isOperatorSpeaker } from "../shared/operator-match.js";
5
6
  import { scanOrg } from "../gateway/org.js";
@@ -37,10 +38,11 @@ var Tier;
37
38
  export function buildContext(opts) {
38
39
  const maxChars = opts.config?.context?.maxChars ?? DEFAULT_MAX_CONTEXT_CHARS;
39
40
  const sections = [];
40
- // Compute gateway URL once — used by multiple sections
41
- const gatewayUrl = opts.config
42
- ? `http://${opts.config.gateway.host || "127.0.0.1"}:${opts.config.gateway.port || 7777}`
43
- : "http://127.0.0.1:7777";
41
+ // Compute gateway URL once — used by multiple sections.
42
+ // MUST go through gatewayUrlFromConfig: `gateway.host` is a *bind* address, and
43
+ // a wildcard bind (0.0.0.0) is not a connectable target — the host guard would
44
+ // 421 every curl example we bake into this prompt.
45
+ const gatewayUrl = gatewayUrlFromConfig(opts.config);
44
46
  // Resolve personalized names from config
45
47
  const portalName = opts.portalName || opts.config?.portal?.portalName || "Ryoko";
46
48
  const operatorName = opts.operatorName || opts.config?.portal?.operatorName;
@@ -128,7 +130,7 @@ export function buildContext(opts) {
128
130
  tier: Tier.STANDARD,
129
131
  marker: "## Available services",
130
132
  content: svcCtx,
131
- summary: `## Available services\nUse \`POST ${gatewayUrl}/api/org/cross-request\` to request services from other employees.`,
133
+ summary: "## Available services\nUse `ryoko api POST /api/org/cross-request --data '{...}'` to request services from other employees.",
132
134
  });
133
135
  }
134
136
  }
@@ -186,7 +188,7 @@ export function buildContext(opts) {
186
188
  tier: Tier.OPTIONAL,
187
189
  marker: "## Employee Delegation",
188
190
  content: buildDelegationProtocol(gatewayUrl, portalName, opts.config),
189
- summary: `## Employee Delegation Protocol\nDelegate via \`POST ${gatewayUrl}/api/sessions\` with \`{prompt, employee, parentSessionId}\`. Check children via \`GET /api/sessions/:id/children\`.`,
191
+ summary: "## Employee Delegation Protocol\nDelegate via `ryoko api POST /api/sessions --data '{...}'`. Check children via `ryoko api GET /api/sessions/:id/children`.",
190
192
  });
191
193
  }
192
194
  // ── STANDARD: Gateway API reference ─────────────────────────
@@ -276,7 +278,7 @@ function buildChainOfCommand(employee, portalName, node, hierarchy) {
276
278
  lines.push(`- **Escalation path**: ${unique.join(" → ")}`);
277
279
  return "\n" + lines.join("\n") + "\n";
278
280
  }
279
- function buildServicesContext(employee, gatewayUrl) {
281
+ function buildServicesContext(employee, _gatewayUrl) {
280
282
  try {
281
283
  const registry = scanOrg();
282
284
  const services = buildServiceRegistry(registry);
@@ -284,7 +286,7 @@ function buildServicesContext(employee, gatewayUrl) {
284
286
  return null;
285
287
  const lines = ["## Available services"];
286
288
  lines.push("Other employees provide the following services. To request one, use the cross-request API:");
287
- lines.push(`\`POST ${gatewayUrl}/api/org/cross-request\` with \`{"fromEmployee": "${employee.name}", "service": "<name>", "prompt": "<what you need>"}\``);
289
+ lines.push(`\`ryoko api POST /api/org/cross-request --data '{"fromEmployee": "${employee.name}", "service": "<name>", "prompt": "<what you need>"}'\``);
288
290
  lines.push("");
289
291
  for (const [svcName, entry] of services) {
290
292
  // Skip services from own department
@@ -610,7 +612,7 @@ export function buildDetachedJobsContext(sessionId, jobsDir) {
610
612
  lines.push(`Read each log, complete or recover the deferred work, then delete the job's state file under \`~/.ryoko/jobs/\` so this list clears.`);
611
613
  return lines.join("\n");
612
614
  }
613
- function buildConnectorContext(connectors, gatewayUrl, portalName) {
615
+ function buildConnectorContext(connectors, _gatewayUrl, portalName) {
614
616
  const lines = [`## Available connectors: ${connectors.join(", ")}`];
615
617
  lines.push(`You can send messages and interact with external services via the ${portalName} gateway API.`);
616
618
  lines.push("Use connector messaging only for proactive messages to a different channel or conversation.\n");
@@ -630,7 +632,7 @@ function buildConnectorContext(connectors, gatewayUrl, portalName) {
630
632
  lines.push(" `<!--RYOKO-DISPOSITION:v1:<base64url of {\"internal\":\"...\",\"react\":\":emoji:\",\"suppressPublic\":false}>-->`");
631
633
  lines.push(" The `internal` field is never posted publicly (saved for the operator). `react` makes the public reply a single emoji reaction; `suppressPublic` omits the public body.");
632
634
  lines.push("- When you are directly addressed (mentioned / asked), ALWAYS give a non-empty public reply. Use react-only for pure acknowledgments or social confirmations — never as the answer to a substantive question.");
633
- lines.push(`\n- **List all connectors**: \`curl ${gatewayUrl}/api/connectors\``);
635
+ lines.push("\n- **List all connectors**: `ryoko api GET /api/connectors`");
634
636
  lines.push(`- Channel IDs and connector config can be found in \`~/.jinn/config.yaml\``);
635
637
  return lines.join("\n");
636
638
  }
@@ -726,7 +728,7 @@ function buildEvolutionContext(portalName, config) {
726
728
  lines.push(`**Do NOT proactively pitch this on every turn.** Only suggest it when ALL of these hold:`);
727
729
  lines.push(`- The user just asked something that benefits from seeing live session state (e.g. "what is Ryoko doing right now?", "I want a dashboard of your work", "is there a way to see all the agents?")`);
728
730
  lines.push(`- OR the user just successfully connected Slack and is exploring what to do next.`);
729
- lines.push(`When you do bring it up, keep it to one sentence and point them to **Settings → Slack → Agents View Canvas** in the Web UI. The user can also delegate the toggling to you (Bash tool: \`curl -X PUT http://...:7777/api/config\`) if they ask.`);
731
+ lines.push(`When you do bring it up, keep it to one sentence and point them to **Settings → Slack → Agents View Canvas** in the Web UI. The user can also delegate the toggling to you (Bash tool: \`ryoko api PUT /api/config --data '{...}'\`) if they ask.`);
730
732
  }
731
733
  }
732
734
  return lines.join("\n");
@@ -735,7 +737,7 @@ function buildEvolutionContext(portalName, config) {
735
737
  * Delegation protocol: condensed version focusing on the essential API patterns.
736
738
  * Verbose examples and multi-paragraph explanations have been trimmed.
737
739
  */
738
- function buildDelegationProtocol(gatewayUrl, _portalName, config) {
740
+ function buildDelegationProtocol(_gatewayUrl, _portalName, config) {
739
741
  const defaultEngine = config?.engines.default || "claude";
740
742
  const engineConfig = defaultEngine === "codex"
741
743
  ? config?.engines.codex
@@ -756,7 +758,7 @@ You are the COO. You orchestrate employees by creating **linked child sessions**
756
758
 
757
759
  2. **Check for existing children first**:
758
760
  \`\`\`bash
759
- curl -s ${gatewayUrl}/api/sessions/<your-session-id>/children
761
+ ryoko api GET /api/sessions/<your-session-id>/children
760
762
  \`\`\`
761
763
  If a child exists for this employee, reuse it (skip to step 5).
762
764
 
@@ -764,16 +766,14 @@ If a child exists for this employee, reuse it (skip to step 5).
764
766
 
765
767
  4. **Spawn**:
766
768
  \`\`\`bash
767
- curl -s -X POST ${gatewayUrl}/api/sessions \\
768
- -H 'Content-Type: application/json' \\
769
- -d '{"prompt": "<brief>", "employee": "<name>", "parentSessionId": "<your-session-id>"}'
769
+ ryoko api POST /api/sessions \\
770
+ --data '{"prompt": "<brief>", "employee": "<name>", "parentSessionId": "<your-session-id>"}'
770
771
  \`\`\`
771
772
 
772
773
  5. **Follow up** (existing child):
773
774
  \`\`\`bash
774
- curl -s -X POST ${gatewayUrl}/api/sessions/<child-id>/message \\
775
- -H 'Content-Type: application/json' \\
776
- -d '{"message": "<follow-up>"}'
775
+ ryoko api POST /api/sessions/<child-id>/message \\
776
+ --data '{"message": "<follow-up>"}'
777
777
  \`\`\`
778
778
 
779
779
  6. **Respond immediately**: Tell the user you've delegated and will follow up when it's done. **Do NOT poll or wait** — end your turn now.
@@ -808,7 +808,14 @@ Your current session ID is in the "Current session" section above. Use it as \`p
808
808
  function buildApiReference(gatewayUrl, portalName) {
809
809
  return `## ${portalName} Gateway API (${gatewayUrl})
810
810
 
811
- You can call these endpoints with curl to inspect and manage the gateway:
811
+ Use \`ryoko api GET /api/status\` (or \`POST ... --data '{...}'\`) for local API calls.
812
+ It chooses a connectable loopback URL, adds the instance's bearer token, refuses external URLs,
813
+ and reports non-2xx responses instead of failing silently. For tools that cannot invoke the CLI,
814
+ the connectable URL is exported as \`$RYOKO_GATEWAY_URL\`; those callers must still add the bearer
815
+ token. Never turn the bind address from config (\`gateway.host\`) into a URL: a wildcard bind like
816
+ \`0.0.0.0\` is not a client destination and the gateway answers \`421 host_not_allowed\`.
817
+
818
+ You can call these endpoints with \`ryoko api\` to inspect and manage the gateway:
812
819
 
813
820
  | Endpoint | Method | Description |
814
821
  |----------|--------|-------------|