@raidiant/notifai 13.0.0 → 13.1.0-beta.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/CHANGELOG.md CHANGED
@@ -8,6 +8,25 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
8
8
  This project follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html)
9
9
  and [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/).
10
10
 
11
+ ## [13.1.0-beta.3](https://github.com/Raidiant-io/notifai/compare/v13.0.0...v13.1.0-beta.3) (2026-10-20)
12
+
13
+ ### Features
14
+
15
+ * Each Claude Code and Codex session on macOS and Linux is now kept by a small native session helper, with one shared hub per user that talks to the service for all of them. At 25 sessions memory drops from about 600 MB to about 55 MB, the per-session process launches and credential reads every few seconds are gone, and a closed session's questions expire within one to two seconds. Windows keeps the existing session attendant.
16
+ * Claude Code hooks run in exec form on Claude Code 2.1.139 and newer, and stay in shell form on older versions; `notifai doctor` reports the hook form and the shared hub.
17
+ * Closing an Agent Session ends its questions: they expire on every device at once, and an answer the agent had not read yet is dropped instead of being delivered later. The session's end record names any dropped answers.
18
+ * Let Codex run Notifai commands outside its sandbox on the User's yes: `notifai init --codex-commands` writes a Codex rule that allows only the everyday Notifai commands, `notifai doctor` reports `codex-commands` readiness, and `notifai hooks uninstall --harness codex` removes the rule.
19
+ * Codex question cards link to devices only with Codex app-server 0.163.0 or newer; older Codex falls back to an ordinary question, and a daily canary checks that card linking still works.
20
+
21
+ ### Bug Fixes
22
+
23
+ * Lay out interactive screens on a terminal that reports zero width.
24
+ * Never revive a closed session. Claude Code cold resume (`claude -p --resume`) is removed; idle but open sessions still receive their answers, and the delivery contracts shown by `doctor` say so.
25
+ * Keep every hook inside its own timeout: credential reads happen only when a hook actually calls the service, nested steps get a budget derived from the hook's declared timeout, and session pruning and update checks run in a detached daily maintenance process instead of on the prompt path.
26
+ * Register Codex questions from the native question card itself, so an answered card no longer leaves a separately copied question pending.
27
+ * Report integration health only for the active native build, so a retained older runtime can no longer surface stale CLI or skill faults in current hooks.
28
+ * Beta updates always choose the newer of the beta and stable releases.
29
+
11
30
  ## [13.0.0](https://github.com/Raidiant-io/notifai/compare/v12.1.1...v13.0.0) (2026-10-18)
12
31
 
13
32
 
package/bin/notifai.mjs CHANGED
@@ -7046,9 +7046,49 @@ function releaseMaterialPath(value) {
7046
7046
 
7047
7047
  // apps/cli/src/version.js
7048
7048
  var SEMVER = /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[A-Za-z-][0-9A-Za-z-]*)(?:\.(?:0|[1-9]\d*|\d*[A-Za-z-][0-9A-Za-z-]*))*))?(?:\+[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?$/;
7049
+ var NUMERIC_IDENTIFIER = /^\d+$/;
7049
7050
  function isSemVer(value) {
7050
7051
  return SEMVER.test(value);
7051
7052
  }
7053
+ function compareDigits(left, right) {
7054
+ if (left.length !== right.length) return left.length < right.length ? -1 : 1;
7055
+ return left === right ? 0 : left < right ? -1 : 1;
7056
+ }
7057
+ function comparePrerelease(left, right) {
7058
+ for (let index = 0; index < Math.max(left.length, right.length); index += 1) {
7059
+ const a = left[index];
7060
+ const b2 = right[index];
7061
+ if (a === void 0) return -1;
7062
+ if (b2 === void 0) return 1;
7063
+ const aNumeric = NUMERIC_IDENTIFIER.test(a);
7064
+ const bNumeric = NUMERIC_IDENTIFIER.test(b2);
7065
+ const order = aNumeric && bNumeric ? compareDigits(a, b2) : aNumeric !== bNumeric ? aNumeric ? -1 : 1 : a === b2 ? 0 : a < b2 ? -1 : 1;
7066
+ if (order !== 0) return order;
7067
+ }
7068
+ return 0;
7069
+ }
7070
+ function compareReleasePrecedence(left, right) {
7071
+ const a = SEMVER.exec(left);
7072
+ const b2 = SEMVER.exec(right);
7073
+ if (a === null || b2 === null) return "unparseable";
7074
+ for (let index = 1; index <= 3; index += 1) {
7075
+ const order2 = compareDigits(
7076
+ /** @type {string} */
7077
+ a[index],
7078
+ /** @type {string} */
7079
+ b2[index]
7080
+ );
7081
+ if (order2 !== 0) return order2 < 0 ? "before" : "after";
7082
+ }
7083
+ const aPrerelease = a[4];
7084
+ const bPrerelease = b2[4];
7085
+ if (aPrerelease === void 0 || bPrerelease === void 0) {
7086
+ if (aPrerelease === bPrerelease) return "equal";
7087
+ return aPrerelease === void 0 ? "after" : "before";
7088
+ }
7089
+ const order = comparePrerelease(aPrerelease.split("."), bPrerelease.split("."));
7090
+ return order === 0 ? "equal" : order < 0 ? "before" : "after";
7091
+ }
7052
7092
  function isPrerelease(value) {
7053
7093
  return SEMVER.exec(value)?.[4] !== void 0;
7054
7094
  }
@@ -7192,15 +7232,23 @@ var Distribution = class {
7192
7232
  async resolveRelease(options) {
7193
7233
  if (!["stable", "beta"].includes(options.channel)) throw new Error("Unknown release channel");
7194
7234
  if (!RELEASE_TARGETS.includes(options.target)) throw new Error("Unsupported release target");
7195
- const bytes = (await this.download(`https://raw.githubusercontent.com/${REPOSITORY}/release-metadata/${options.channel}.json`, MAX_METADATA)).toString("utf8");
7196
- const channel = this.verifyChannel(bytes, options.channel, options.seen);
7197
- options.acceptChannel?.(bytes);
7235
+ const records = [];
7236
+ const seen = {};
7237
+ for (const name of options.channel === "beta" ? ["beta", "stable"] : ["stable"]) {
7238
+ const bytes2 = (await this.download(`https://raw.githubusercontent.com/${REPOSITORY}/release-metadata/${name}.json`, MAX_METADATA)).toString("utf8");
7239
+ const record2 = this.verifyChannel(bytes2, name, options.seen?.[name]);
7240
+ options.acceptChannel?.(name, bytes2);
7241
+ seen[name] = Object.freeze({ sequence: record2.sequence, digest: sha256(bytes2) });
7242
+ records.push({ record: record2, bytes: bytes2 });
7243
+ }
7244
+ const chosen = records.reduce((best, next) => compareReleasePrecedence(next.record.version, best.record.version) === "after" ? next : best);
7245
+ const { record: channel, bytes } = chosen;
7198
7246
  const selected = options.version ?? channel.version;
7199
7247
  if (!version(selected)) throw new Error("Invalid exact release version");
7200
7248
  if (options.channel === "stable" && isPrerelease(selected)) throw new Error("Prerelease cannot enter the stable channel");
7201
- if (channel.withdrawn_versions.includes(selected)) throw new Error("This release has been withdrawn");
7249
+ if (records.some((entry) => entry.record.withdrawn_versions.includes(selected))) throw new Error("This release has been withdrawn");
7202
7250
  const signedInventory = (await this.download(releaseUrl(selected, "inventory.json"), MAX_METADATA)).toString("utf8");
7203
- if (selected === channel.version && sha256(signedInventory) !== channel.inventory_sha256) {
7251
+ if (records.some((entry) => selected === entry.record.version && sha256(signedInventory) !== entry.record.inventory_sha256)) {
7204
7252
  throw new Error("Release inventory integrity mismatch");
7205
7253
  }
7206
7254
  const inventory = this.verifyInventory(signedInventory);
@@ -7209,7 +7257,7 @@ var Distribution = class {
7209
7257
  if (!artifact) throw new Error("Release does not contain the requested target");
7210
7258
  return Object.freeze({
7211
7259
  channel: options.channel,
7212
- seen: Object.freeze({ sequence: channel.sequence, digest: sha256(bytes) }),
7260
+ seen: Object.freeze(seen),
7213
7261
  inventory,
7214
7262
  signedInventory,
7215
7263
  signedChannel: bytes,
package/data/release.json CHANGED
@@ -1 +1 @@
1
- {"version":"13.0.0","source_revision":"c79c9a0b14f401deb828b89e01534d6850e21094"}
1
+ {"version":"13.1.0-beta.3","source_revision":"886b49e8e7f8e52167e0711818e1a2205c4c1892"}
package/inventory.json CHANGED
@@ -1 +1 @@
1
- {"key_id":"notifai-release-2026-10","payload":"eyJzY2hlbWEiOjIsInZlcnNpb24iOiIxMy4wLjAiLCJzb3VyY2VfcmV2aXNpb24iOiJjNzljOWEwYjE0ZjQwMWRlYjgyOGI4OWUwMTUzNGQ2ODUwZTIxMDk0IiwibG9jYWxfY29udGludWl0eSI6eyJjb250cmFjdCI6Im5vdGlmYWktc2Vzc2lvbi1zdGF0ZS12MiIsImNvbXBhdGlibGUiOnsibm90aWZhaS1zZXNzaW9uLXN0YXRlLXYxIjpbImJ1bi1kYXJ3aW4tYXJtNjQiLCJidW4tZGFyd2luLXg2NCIsImJ1bi13aW5kb3dzLWFybTY0IiwiYnVuLXdpbmRvd3MteDY0Il19fSwic3RvcmVfc2NoZW1hIjoyLCJsYXVuY2hlcl9zY2hlbWEiOjEsImFydGlmYWN0cyI6W3sidGFyZ2V0IjoiYnVuLWRhcndpbi1hcm02NCIsImZpbGVuYW1lIjoibm90aWZhaS0xMy4wLjAtZGFyd2luLWFybTY0LnRhci5neiIsImJ5dGVzIjoyNzgzODExNCwic2hhMjU2IjoiNTIxNTgwNDQ4YjMxNDgyNTkxZDE3N2QyY2JmM2VjOTMwNTM2Nzg0YzcyNGZhMjc5N2I3OTRiZGI3NDQ5ODE2YyIsInJ1bnRpbWVfc2hhMjU2IjoiMjVhYzg1YTc4NjhhMzk1YzM0MWY0NGQxOTVlNzgwNDIyMTc3Nzk0YTdkZmJlYmUyMTI3MTZhZGM0M2M2NjI5YyIsImxhdW5jaGVyX3NoYTI1NiI6IjlhYThlZmRmNDU5ZmY1OTE4NDNkNzRhZjM3Y2Y3OTcyMzEzYjI2NGJiNTQ4NzI5Yzc1ZjQ2NzViMTVlZmFkMWQiLCJtYXRlcmlhbHMiOlt7InBhdGgiOiJCVU4tTElDRU5TRS5tZCIsImJ5dGVzIjo1NjEzLCJzaGEyNTYiOiJiOWNhZjUyNzI4NjkxYjQwNTdlMzcxMjMyYzIyMWExMzI4ODMxOThiZTJmM2QyZGRmOTJjOTA0MDRjOTg0YjFhIn0seyJwYXRoIjoiQ09SUkVTUE9ORElORy1TT1VSQ0VTLmpzb24iLCJieXRlcyI6MjAyMCwic2hhMjU2IjoiZmE0YzM0NDgwMTE1NDg3MmQ2MTc5ZWUyZWY0OTkyM2RjOWY4OTA5ZWYwMWU1M2I4NmU4ZjU3YzYyNTgyMzI3NCJ9LHsicGF0aCI6IkxJQ0VOU0UudHh0IiwiYnl0ZXMiOjExMzQ2LCJzaGEyNTYiOiI5NDRjMTNmZjBmZTc5NWUyOTFmZDFjNDk0NzNmOThkNGZkZjFmNzQ2MzhlMDFmODgyNzY5Y2Q0Y2FlNzhiNzNkIn0seyJwYXRoIjoiTk9USUNFLVBST1ZFTkFOQ0UuanNvbiIsImJ5dGVzIjo0NTAyNjQsInNoYTI1NiI6IjUzNGRkNTlmZDRjMTVkZDEzODJlODI3ZjBiODVjMTlmN2M2OThlMjM1ZjkyOTllYWEyMDJkYjU0MDA4MzQyODgifSx7InBhdGgiOiJOT1RJQ0UudHh0IiwiYnl0ZXMiOjYyNiwic2hhMjU2IjoiMWRmYmY0NDk4ZGMwMjZiMjA1OWMwYjBiNWViNWZhMWQ4MmFlMzM0ZTU4ZmYxMWU3YzI5NzMzMzI3ZjI1YzRlYiJ9LHsicGF0aCI6IlJFQlVJTERJTkcubWQiLCJieXRlcyI6Mzg0Miwic2hhMjU2IjoiY2U2MDViNWZkYjAzMTkzMzlmOWY4M2YyZmU3Y2NjYmM3ZTU3MjZmZGY0OTRkYTZlMjg0MzNiZWY4MjllYjBiZSJ9LHsicGF0aCI6IlNPVVJDRS1OT1RJQ0VTLnR4dCIsImJ5dGVzIjo5MDE3NzcxLCJzaGEyNTYiOiI4OTk3NmJlY2MyNTY1NDBlNmQyZTgwN2I0N2E0ZTA1ZTg4OTk4MmMwNjIyZmMwNDQxM2E3YmY3ZTc3YTc3ZTM3In0seyJwYXRoIjoiVEhJUkQtUEFSVFktTk9USUNFUy50eHQiLCJieXRlcyI6MjQ5MTQ5Niwic2hhMjU2IjoiMTE2NDQ3ZWZmNzc4OTM1MTE3OTdlZjQ3NjAxMWRlYzgwMDIyNGY5MWUzMzQyZTNkNjU3MDcwODcxMmI0Yjc3MiJ9LHsicGF0aCI6ImxpY2Vuc2VzL25wbS1jbWQtc2hpbS50eHQiLCJieXRlcyI6ODEzLCJzaGEyNTYiOiJhZmZmZGYxMjA4MTEyMjc0OWM0YjcxYzViMWMxMWJjNjU5ZDc5MjQyZDE5ZTE4ZjVlOGRiYWIwNGE0NWUzNmJiIn0seyJwYXRoIjoibnBtLWFkYXB0ZXItZmlsZXMuanNvbiIsImJ5dGVzIjoxNjQ1LCJzaGEyNTYiOiIyZDc1NjY3ZDUwMWRmNjlmYjJjMjIyMTgxZjMzNDI2MjBjN2IwMDkxOGZlMWI5M2FiNzYzNzNkYjFjMTc3MjU5In1dfSx7InRhcmdldCI6ImJ1bi1kYXJ3aW4teDY0IiwiZmlsZW5hbWUiOiJub3RpZmFpLTEzLjAuMC1kYXJ3aW4teDY0LnRhci5neiIsImJ5dGVzIjozMDA3NjI2Niwic2hhMjU2IjoiMGRlMWI4NTA0YTdhNjEyZTAxMGRkMzFjNWNhOTdiMjVmODQyNzVkNzAxMDhhYWViNTA1OWJkYmYyNmFkN2RkNCIsInJ1bnRpbWVfc2hhMjU2IjoiMzE5MTQzYjY1Y2UxYmFlZGY1ODY0MDdjOTU1NThhYWQyMTIzZTA0YjkwYjY3MzUyYzNmNTM5OTU3YjdlOWVkNyIsImxhdW5jaGVyX3NoYTI1NiI6IjViNmU0ZjBlOGFmZmJjOGM2ZDJlNzE1N2FmZTJkNmEyN2NmYWZjMGY2OTYxZDcxMDE2ZTc0MjAzMzkwNzZiNjkiLCJtYXRlcmlhbHMiOlt7InBhdGgiOiJCVU4tTElDRU5TRS5tZCIsImJ5dGVzIjo1NjEzLCJzaGEyNTYiOiJiOWNhZjUyNzI4NjkxYjQwNTdlMzcxMjMyYzIyMWExMzI4ODMxOThiZTJmM2QyZGRmOTJjOTA0MDRjOTg0YjFhIn0seyJwYXRoIjoiQ09SUkVTUE9ORElORy1TT1VSQ0VTLmpzb24iLCJieXRlcyI6MjAyMCwic2hhMjU2IjoiZmE0YzM0NDgwMTE1NDg3MmQ2MTc5ZWUyZWY0OTkyM2RjOWY4OTA5ZWYwMWU1M2I4NmU4ZjU3YzYyNTgyMzI3NCJ9LHsicGF0aCI6IkxJQ0VOU0UudHh0IiwiYnl0ZXMiOjExMzQ2LCJzaGEyNTYiOiI5NDRjMTNmZjBmZTc5NWUyOTFmZDFjNDk0NzNmOThkNGZkZjFmNzQ2MzhlMDFmODgyNzY5Y2Q0Y2FlNzhiNzNkIn0seyJwYXRoIjoiTk9USUNFLVBST1ZFTkFOQ0UuanNvbiIsImJ5dGVzIjo0NTAyNjQsInNoYTI1NiI6IjUzNGRkNTlmZDRjMTVkZDEzODJlODI3ZjBiODVjMTlmN2M2OThlMjM1ZjkyOTllYWEyMDJkYjU0MDA4MzQyODgifSx7InBhdGgiOiJOT1RJQ0UudHh0IiwiYnl0ZXMiOjYyNiwic2hhMjU2IjoiMWRmYmY0NDk4ZGMwMjZiMjA1OWMwYjBiNWViNWZhMWQ4MmFlMzM0ZTU4ZmYxMWU3YzI5NzMzMzI3ZjI1YzRlYiJ9LHsicGF0aCI6IlJFQlVJTERJTkcubWQiLCJieXRlcyI6Mzg0Miwic2hhMjU2IjoiY2U2MDViNWZkYjAzMTkzMzlmOWY4M2YyZmU3Y2NjYmM3ZTU3MjZmZGY0OTRkYTZlMjg0MzNiZWY4MjllYjBiZSJ9LHsicGF0aCI6IlNPVVJDRS1OT1RJQ0VTLnR4dCIsImJ5dGVzIjo5MDE3NzcxLCJzaGEyNTYiOiI4OTk3NmJlY2MyNTY1NDBlNmQyZTgwN2I0N2E0ZTA1ZTg4OTk4MmMwNjIyZmMwNDQxM2E3YmY3ZTc3YTc3ZTM3In0seyJwYXRoIjoiVEhJUkQtUEFSVFktTk9USUNFUy50eHQiLCJieXRlcyI6MjQ5MTQ5Niwic2hhMjU2IjoiMTE2NDQ3ZWZmNzc4OTM1MTE3OTdlZjQ3NjAxMWRlYzgwMDIyNGY5MWUzMzQyZTNkNjU3MDcwODcxMmI0Yjc3MiJ9LHsicGF0aCI6ImxpY2Vuc2VzL25wbS1jbWQtc2hpbS50eHQiLCJieXRlcyI6ODEzLCJzaGEyNTYiOiJhZmZmZGYxMjA4MTEyMjc0OWM0YjcxYzViMWMxMWJjNjU5ZDc5MjQyZDE5ZTE4ZjVlOGRiYWIwNGE0NWUzNmJiIn0seyJwYXRoIjoibnBtLWFkYXB0ZXItZmlsZXMuanNvbiIsImJ5dGVzIjoxNjQ1LCJzaGEyNTYiOiIyZDc1NjY3ZDUwMWRmNjlmYjJjMjIyMTgxZjMzNDI2MjBjN2IwMDkxOGZlMWI5M2FiNzYzNzNkYjFjMTc3MjU5In1dfSx7InRhcmdldCI6ImJ1bi1saW51eC1hcm02NCIsImZpbGVuYW1lIjoibm90aWZhaS0xMy4wLjAtbGludXgtYXJtNjQudGFyLmd6IiwiYnl0ZXMiOjM5MzgzOTY3LCJzaGEyNTYiOiJkMGRhYWFlYzBlMWU5YTI1MGNkZGY3YWQ2NzA3MGY5NmZiZGYwMmMwYzQ5YjUyYjEzZDA3YzM5MzE5YmRjZTdjIiwicnVudGltZV9zaGEyNTYiOiJlODAzYjViZjZhMTAxMzU2NGYxNDYwZTYzNTY2OWNkOWFhMGQ3NjI4ODI5ZjdmZjFhNGE5ZmMzNmI4YjNmYjNlIiwibGF1bmNoZXJfc2hhMjU2IjoiZjgwZmRiZjMzZmJhYTM5MDNjNTQ1MjZmMTk1NmM2MTlmMmY0NzAxZjk4NzE5MGM1YmEyYjRkNTc0YjQzMTBhNCIsIm1hdGVyaWFscyI6W3sicGF0aCI6IkJVTi1MSUNFTlNFLm1kIiwiYnl0ZXMiOjU2MTMsInNoYTI1NiI6ImI5Y2FmNTI3Mjg2OTFiNDA1N2UzNzEyMzJjMjIxYTEzMjg4MzE5OGJlMmYzZDJkZGY5MmM5MDQwNGM5ODRiMWEifSx7InBhdGgiOiJDT1JSRVNQT05ESU5HLVNPVVJDRVMuanNvbiIsImJ5dGVzIjoyMDIwLCJzaGEyNTYiOiJmYTRjMzQ0ODAxMTU0ODcyZDYxNzllZTJlZjQ5OTIzZGM5Zjg5MDllZjAxZTUzYjg2ZThmNTdjNjI1ODIzMjc0In0seyJwYXRoIjoiTElDRU5TRS50eHQiLCJieXRlcyI6MTEzNDYsInNoYTI1NiI6Ijk0NGMxM2ZmMGZlNzk1ZTI5MWZkMWM0OTQ3M2Y5OGQ0ZmRmMWY3NDYzOGUwMWY4ODI3NjljZDRjYWU3OGI3M2QifSx7InBhdGgiOiJOT1RJQ0UtUFJPVkVOQU5DRS5qc29uIiwiYnl0ZXMiOjQ1MDI2NCwic2hhMjU2IjoiNTM0ZGQ1OWZkNGMxNWRkMTM4MmU4MjdmMGI4NWMxOWY3YzY5OGUyMzVmOTI5OWVhYTIwMmRiNTQwMDgzNDI4OCJ9LHsicGF0aCI6Ik5PVElDRS50eHQiLCJieXRlcyI6NjI2LCJzaGEyNTYiOiIxZGZiZjQ0OThkYzAyNmIyMDU5YzBiMGI1ZWI1ZmExZDgyYWUzMzRlNThmZjExZTdjMjk3MzMzMjdmMjVjNGViIn0seyJwYXRoIjoiUkVCVUlMRElORy5tZCIsImJ5dGVzIjozODQyLCJzaGEyNTYiOiJjZTYwNWI1ZmRiMDMxOTMzOWY5ZjgzZjJmZTdjY2NiYzdlNTcyNmZkZjQ5NGRhNmUyODQzM2JlZjgyOWViMGJlIn0seyJwYXRoIjoiU09VUkNFLU5PVElDRVMudHh0IiwiYnl0ZXMiOjkwMTc3NzEsInNoYTI1NiI6Ijg5OTc2YmVjYzI1NjU0MGU2ZDJlODA3YjQ3YTRlMDVlODg5OTgyYzA2MjJmYzA0NDEzYTdiZjdlNzdhNzdlMzcifSx7InBhdGgiOiJUSElSRC1QQVJUWS1OT1RJQ0VTLnR4dCIsImJ5dGVzIjoyNDkxNDk2LCJzaGEyNTYiOiIxMTY0NDdlZmY3Nzg5MzUxMTc5N2VmNDc2MDExZGVjODAwMjI0ZjkxZTMzNDJlM2Q2NTcwNzA4NzEyYjRiNzcyIn0seyJwYXRoIjoibGljZW5zZXMvbnBtLWNtZC1zaGltLnR4dCIsImJ5dGVzIjo4MTMsInNoYTI1NiI6ImFmZmZkZjEyMDgxMTIyNzQ5YzRiNzFjNWIxYzExYmM2NTlkNzkyNDJkMTllMThmNWU4ZGJhYjA0YTQ1ZTM2YmIifSx7InBhdGgiOiJucG0tYWRhcHRlci1maWxlcy5qc29uIiwiYnl0ZXMiOjE2NDUsInNoYTI1NiI6IjJkNzU2NjdkNTAxZGY2OWZiMmMyMjIxODFmMzM0MjYyMGM3YjAwOTE4ZmUxYjkzYWI3NjM3M2RiMWMxNzcyNTkifV19LHsidGFyZ2V0IjoiYnVuLWxpbnV4LXg2NCIsImZpbGVuYW1lIjoibm90aWZhaS0xMy4wLjAtbGludXgteDY0LnRhci5neiIsImJ5dGVzIjozODk0NzQyOSwic2hhMjU2IjoiZjg4NDdlODk2NGVmNjBjYWMzMTQ5ZTYxMDRmYzkzNjFmOTdkN2UzZmZlZGIyYjllNjkxMTY2NzViYzQ1NjMyOCIsInJ1bnRpbWVfc2hhMjU2IjoiNjlhMWE1NjRhYWQ5YThkOTJjMTBmYzg5OGIyNTJkMWM5NThlMzNlZGU3ODczYTk5MzBlYmEyOTljNTAzZWRkNCIsImxhdW5jaGVyX3NoYTI1NiI6IjhiMWYwOTNlNDRjNmZkMzk4NDFlMzliZGU5N2IyNzE1MDQ4ZDM5NjNiNzA0ZjYyZjJhYmViNTkwMmM3ZmJiZTciLCJtYXRlcmlhbHMiOlt7InBhdGgiOiJCVU4tTElDRU5TRS5tZCIsImJ5dGVzIjo1NjEzLCJzaGEyNTYiOiJiOWNhZjUyNzI4NjkxYjQwNTdlMzcxMjMyYzIyMWExMzI4ODMxOThiZTJmM2QyZGRmOTJjOTA0MDRjOTg0YjFhIn0seyJwYXRoIjoiQ09SUkVTUE9ORElORy1TT1VSQ0VTLmpzb24iLCJieXRlcyI6MjAyMCwic2hhMjU2IjoiZmE0YzM0NDgwMTE1NDg3MmQ2MTc5ZWUyZWY0OTkyM2RjOWY4OTA5ZWYwMWU1M2I4NmU4ZjU3YzYyNTgyMzI3NCJ9LHsicGF0aCI6IkxJQ0VOU0UudHh0IiwiYnl0ZXMiOjExMzQ2LCJzaGEyNTYiOiI5NDRjMTNmZjBmZTc5NWUyOTFmZDFjNDk0NzNmOThkNGZkZjFmNzQ2MzhlMDFmODgyNzY5Y2Q0Y2FlNzhiNzNkIn0seyJwYXRoIjoiTk9USUNFLVBST1ZFTkFOQ0UuanNvbiIsImJ5dGVzIjo0NTAyNjQsInNoYTI1NiI6IjUzNGRkNTlmZDRjMTVkZDEzODJlODI3ZjBiODVjMTlmN2M2OThlMjM1ZjkyOTllYWEyMDJkYjU0MDA4MzQyODgifSx7InBhdGgiOiJOT1RJQ0UudHh0IiwiYnl0ZXMiOjYyNiwic2hhMjU2IjoiMWRmYmY0NDk4ZGMwMjZiMjA1OWMwYjBiNWViNWZhMWQ4MmFlMzM0ZTU4ZmYxMWU3YzI5NzMzMzI3ZjI1YzRlYiJ9LHsicGF0aCI6IlJFQlVJTERJTkcubWQiLCJieXRlcyI6Mzg0Miwic2hhMjU2IjoiY2U2MDViNWZkYjAzMTkzMzlmOWY4M2YyZmU3Y2NjYmM3ZTU3MjZmZGY0OTRkYTZlMjg0MzNiZWY4MjllYjBiZSJ9LHsicGF0aCI6IlNPVVJDRS1OT1RJQ0VTLnR4dCIsImJ5dGVzIjo5MDE3NzcxLCJzaGEyNTYiOiI4OTk3NmJlY2MyNTY1NDBlNmQyZTgwN2I0N2E0ZTA1ZTg4OTk4MmMwNjIyZmMwNDQxM2E3YmY3ZTc3YTc3ZTM3In0seyJwYXRoIjoiVEhJUkQtUEFSVFktTk9USUNFUy50eHQiLCJieXRlcyI6MjQ5MTQ5Niwic2hhMjU2IjoiMTE2NDQ3ZWZmNzc4OTM1MTE3OTdlZjQ3NjAxMWRlYzgwMDIyNGY5MWUzMzQyZTNkNjU3MDcwODcxMmI0Yjc3MiJ9LHsicGF0aCI6ImxpY2Vuc2VzL25wbS1jbWQtc2hpbS50eHQiLCJieXRlcyI6ODEzLCJzaGEyNTYiOiJhZmZmZGYxMjA4MTEyMjc0OWM0YjcxYzViMWMxMWJjNjU5ZDc5MjQyZDE5ZTE4ZjVlOGRiYWIwNGE0NWUzNmJiIn0seyJwYXRoIjoibnBtLWFkYXB0ZXItZmlsZXMuanNvbiIsImJ5dGVzIjoxNjQ1LCJzaGEyNTYiOiIyZDc1NjY3ZDUwMWRmNjlmYjJjMjIyMTgxZjMzNDI2MjBjN2IwMDkxOGZlMWI5M2FiNzYzNzNkYjFjMTc3MjU5In1dfSx7InRhcmdldCI6ImJ1bi13aW5kb3dzLWFybTY0IiwiZmlsZW5hbWUiOiJub3RpZmFpLTEzLjAuMC13aW5kb3dzLWFybTY0LnppcCIsImJ5dGVzIjozODc3OTc5MSwic2hhMjU2IjoiZTNkNGNkMThhOWQyYjk5MGNjNjBkOTFkOTVlMjQxNjE3YmMwNzhmZTE3YjdmMzAwODIxZWI2MWQwNWNiNWExMSIsInJ1bnRpbWVfc2hhMjU2IjoiNWYxZDRlMzM1MjdiMGY0YTBmMGQ3MjQwNWQ2OGZjNjE1ZDNjMmY2MjdkYzlkYTNiNDc2ZTBhNzRiYjA5NjQ5YiIsImxhdW5jaGVyX3NoYTI1NiI6IjFiZGM5ZTg0MmNmZmIwZmZlYjAzNDE4NDExYTU0MGQ0ODcwZjY0OTBjMjNhZmNkZGM2Yzk2NGYyNDA4YTg0ZGMiLCJtYXRlcmlhbHMiOlt7InBhdGgiOiJCVU4tTElDRU5TRS5tZCIsImJ5dGVzIjo1NjEzLCJzaGEyNTYiOiJiOWNhZjUyNzI4NjkxYjQwNTdlMzcxMjMyYzIyMWExMzI4ODMxOThiZTJmM2QyZGRmOTJjOTA0MDRjOTg0YjFhIn0seyJwYXRoIjoiQ09SUkVTUE9ORElORy1TT1VSQ0VTLmpzb24iLCJieXRlcyI6MjAyMCwic2hhMjU2IjoiZmE0YzM0NDgwMTE1NDg3MmQ2MTc5ZWUyZWY0OTkyM2RjOWY4OTA5ZWYwMWU1M2I4NmU4ZjU3YzYyNTgyMzI3NCJ9LHsicGF0aCI6IkxJQ0VOU0UudHh0IiwiYnl0ZXMiOjExMzQ2LCJzaGEyNTYiOiI5NDRjMTNmZjBmZTc5NWUyOTFmZDFjNDk0NzNmOThkNGZkZjFmNzQ2MzhlMDFmODgyNzY5Y2Q0Y2FlNzhiNzNkIn0seyJwYXRoIjoiTk9USUNFLVBST1ZFTkFOQ0UuanNvbiIsImJ5dGVzIjo0NTAyNjQsInNoYTI1NiI6IjUzNGRkNTlmZDRjMTVkZDEzODJlODI3ZjBiODVjMTlmN2M2OThlMjM1ZjkyOTllYWEyMDJkYjU0MDA4MzQyODgifSx7InBhdGgiOiJOT1RJQ0UudHh0IiwiYnl0ZXMiOjYyNiwic2hhMjU2IjoiMWRmYmY0NDk4ZGMwMjZiMjA1OWMwYjBiNWViNWZhMWQ4MmFlMzM0ZTU4ZmYxMWU3YzI5NzMzMzI3ZjI1YzRlYiJ9LHsicGF0aCI6IlJFQlVJTERJTkcubWQiLCJieXRlcyI6Mzg0Miwic2hhMjU2IjoiY2U2MDViNWZkYjAzMTkzMzlmOWY4M2YyZmU3Y2NjYmM3ZTU3MjZmZGY0OTRkYTZlMjg0MzNiZWY4MjllYjBiZSJ9LHsicGF0aCI6IlNPVVJDRS1OT1RJQ0VTLnR4dCIsImJ5dGVzIjo5MDE3NzcxLCJzaGEyNTYiOiI4OTk3NmJlY2MyNTY1NDBlNmQyZTgwN2I0N2E0ZTA1ZTg4OTk4MmMwNjIyZmMwNDQxM2E3YmY3ZTc3YTc3ZTM3In0seyJwYXRoIjoiVEhJUkQtUEFSVFktTk9USUNFUy50eHQiLCJieXRlcyI6MjQ5MTQ5Niwic2hhMjU2IjoiMTE2NDQ3ZWZmNzc4OTM1MTE3OTdlZjQ3NjAxMWRlYzgwMDIyNGY5MWUzMzQyZTNkNjU3MDcwODcxMmI0Yjc3MiJ9LHsicGF0aCI6ImxpY2Vuc2VzL25wbS1jbWQtc2hpbS50eHQiLCJieXRlcyI6ODEzLCJzaGEyNTYiOiJhZmZmZGYxMjA4MTEyMjc0OWM0YjcxYzViMWMxMWJjNjU5ZDc5MjQyZDE5ZTE4ZjVlOGRiYWIwNGE0NWUzNmJiIn0seyJwYXRoIjoibnBtLWFkYXB0ZXItZmlsZXMuanNvbiIsImJ5dGVzIjoxNjQ1LCJzaGEyNTYiOiIyZDc1NjY3ZDUwMWRmNjlmYjJjMjIyMTgxZjMzNDI2MjBjN2IwMDkxOGZlMWI5M2FiNzYzNzNkYjFjMTc3MjU5In1dfSx7InRhcmdldCI6ImJ1bi13aW5kb3dzLXg2NCIsImZpbGVuYW1lIjoibm90aWZhaS0xMy4wLjAtd2luZG93cy14NjQuemlwIiwiYnl0ZXMiOjQxOTI2MDk5LCJzaGEyNTYiOiJkYTA3NmZiNGVkN2JhMDZkMjMwYWY2OTRiZWUzYzU2NzIzOGU5ODc3NTg2ZDkzMDQyNDg3Zjk5NGQ3NWQ2MDMyIiwicnVudGltZV9zaGEyNTYiOiI2ZjkzZTVjZTQ0OTM1NTFhNGE1YTg3OTFiZGVlNjcwNzZlN2E3NDgwOTliNDhiN2UxMjQ4NjkzZTdkZWY4ODQyIiwibGF1bmNoZXJfc2hhMjU2IjoiM2UzMDI2YzUyM2IxODZkMjdhNGJhYTkxMjBhYzUwZTdhYzYxNGU1OWZmMTYwNmFmN2RmNTI0OWJjNDM2OWUzMCIsIm1hdGVyaWFscyI6W3sicGF0aCI6IkJVTi1MSUNFTlNFLm1kIiwiYnl0ZXMiOjU2MTMsInNoYTI1NiI6ImI5Y2FmNTI3Mjg2OTFiNDA1N2UzNzEyMzJjMjIxYTEzMjg4MzE5OGJlMmYzZDJkZGY5MmM5MDQwNGM5ODRiMWEifSx7InBhdGgiOiJDT1JSRVNQT05ESU5HLVNPVVJDRVMuanNvbiIsImJ5dGVzIjoyMDIwLCJzaGEyNTYiOiJmYTRjMzQ0ODAxMTU0ODcyZDYxNzllZTJlZjQ5OTIzZGM5Zjg5MDllZjAxZTUzYjg2ZThmNTdjNjI1ODIzMjc0In0seyJwYXRoIjoiTElDRU5TRS50eHQiLCJieXRlcyI6MTEzNDYsInNoYTI1NiI6Ijk0NGMxM2ZmMGZlNzk1ZTI5MWZkMWM0OTQ3M2Y5OGQ0ZmRmMWY3NDYzOGUwMWY4ODI3NjljZDRjYWU3OGI3M2QifSx7InBhdGgiOiJOT1RJQ0UtUFJPVkVOQU5DRS5qc29uIiwiYnl0ZXMiOjQ1MDI2NCwic2hhMjU2IjoiNTM0ZGQ1OWZkNGMxNWRkMTM4MmU4MjdmMGI4NWMxOWY3YzY5OGUyMzVmOTI5OWVhYTIwMmRiNTQwMDgzNDI4OCJ9LHsicGF0aCI6Ik5PVElDRS50eHQiLCJieXRlcyI6NjI2LCJzaGEyNTYiOiIxZGZiZjQ0OThkYzAyNmIyMDU5YzBiMGI1ZWI1ZmExZDgyYWUzMzRlNThmZjExZTdjMjk3MzMzMjdmMjVjNGViIn0seyJwYXRoIjoiUkVCVUlMRElORy5tZCIsImJ5dGVzIjozODQyLCJzaGEyNTYiOiJjZTYwNWI1ZmRiMDMxOTMzOWY5ZjgzZjJmZTdjY2NiYzdlNTcyNmZkZjQ5NGRhNmUyODQzM2JlZjgyOWViMGJlIn0seyJwYXRoIjoiU09VUkNFLU5PVElDRVMudHh0IiwiYnl0ZXMiOjkwMTc3NzEsInNoYTI1NiI6Ijg5OTc2YmVjYzI1NjU0MGU2ZDJlODA3YjQ3YTRlMDVlODg5OTgyYzA2MjJmYzA0NDEzYTdiZjdlNzdhNzdlMzcifSx7InBhdGgiOiJUSElSRC1QQVJUWS1OT1RJQ0VTLnR4dCIsImJ5dGVzIjoyNDkxNDk2LCJzaGEyNTYiOiIxMTY0NDdlZmY3Nzg5MzUxMTc5N2VmNDc2MDExZGVjODAwMjI0ZjkxZTMzNDJlM2Q2NTcwNzA4NzEyYjRiNzcyIn0seyJwYXRoIjoibGljZW5zZXMvbnBtLWNtZC1zaGltLnR4dCIsImJ5dGVzIjo4MTMsInNoYTI1NiI6ImFmZmZkZjEyMDgxMTIyNzQ5YzRiNzFjNWIxYzExYmM2NTlkNzkyNDJkMTllMThmNWU4ZGJhYjA0YTQ1ZTM2YmIifSx7InBhdGgiOiJucG0tYWRhcHRlci1maWxlcy5qc29uIiwiYnl0ZXMiOjE2NDUsInNoYTI1NiI6IjJkNzU2NjdkNTAxZGY2OWZiMmMyMjIxODFmMzM0MjYyMGM3YjAwOTE4ZmUxYjkzYWI3NjM3M2RiMWMxNzcyNTkifV19XX0=","signature":"kX2y1AFaeYFn+vPIDjTUYbbuChywqzJUZc13P2/v6eq+NQbXuEs0uFqTpWb28IoaIVQhmvo4pAAq9q2kEQvrDw=="}
1
+ {"key_id":"notifai-release-2026-10","payload":"eyJzY2hlbWEiOjIsInZlcnNpb24iOiIxMy4xLjAtYmV0YS4zIiwic291cmNlX3JldmlzaW9uIjoiODg2YjQ5ZThlN2Y4ZTUyMTY3ZTA3MTE4MThlMWEyMjA1YzRjMTg5MiIsImxvY2FsX2NvbnRpbnVpdHkiOnsiY29udHJhY3QiOiJub3RpZmFpLXNlc3Npb24tc3RhdGUtdjIiLCJjb21wYXRpYmxlIjp7Im5vdGlmYWktc2Vzc2lvbi1zdGF0ZS12MSI6WyJidW4tZGFyd2luLWFybTY0IiwiYnVuLWRhcndpbi14NjQiLCJidW4td2luZG93cy1hcm02NCIsImJ1bi13aW5kb3dzLXg2NCJdfX0sInN0b3JlX3NjaGVtYSI6MiwibGF1bmNoZXJfc2NoZW1hIjoxLCJhcnRpZmFjdHMiOlt7InRhcmdldCI6ImJ1bi1kYXJ3aW4tYXJtNjQiLCJmaWxlbmFtZSI6Im5vdGlmYWktMTMuMS4wLWJldGEuMy1kYXJ3aW4tYXJtNjQudGFyLmd6IiwiYnl0ZXMiOjI3ODkwMDgwLCJzaGEyNTYiOiI0YWExZWM1ZjkwNjc4OGYzMTk1NDdjYjdkYWI1OGU3OWFkNWVjZjI3ZTg1ZWJlOWZlNjY0ZTcyZWJiMGMzY2Y5IiwicnVudGltZV9zaGEyNTYiOiJlZGVhODc4ZTlmNDU2OTNkOTQwYWY1ZTczZDcwY2RhYzhlNjg5YWExY2RiMGE0YzRkNWU5Y2Q2ZmZlNzY4ZjgyIiwibGF1bmNoZXJfc2hhMjU2IjoiNTMyOWU5NjYyYjM4YzdiMWIyMWFlMWJkNTMzOGE0MDRmYjI1ZTYxNDMxNjhiZGMwZDEwZTdkM2I1NjExY2M3NiIsIm1hdGVyaWFscyI6W3sicGF0aCI6IkJVTi1MSUNFTlNFLm1kIiwiYnl0ZXMiOjU2MTMsInNoYTI1NiI6ImI5Y2FmNTI3Mjg2OTFiNDA1N2UzNzEyMzJjMjIxYTEzMjg4MzE5OGJlMmYzZDJkZGY5MmM5MDQwNGM5ODRiMWEifSx7InBhdGgiOiJDT1JSRVNQT05ESU5HLVNPVVJDRVMuanNvbiIsImJ5dGVzIjoyMDIwLCJzaGEyNTYiOiJmYTRjMzQ0ODAxMTU0ODcyZDYxNzllZTJlZjQ5OTIzZGM5Zjg5MDllZjAxZTUzYjg2ZThmNTdjNjI1ODIzMjc0In0seyJwYXRoIjoiTElDRU5TRS50eHQiLCJieXRlcyI6MTEzNDYsInNoYTI1NiI6Ijk0NGMxM2ZmMGZlNzk1ZTI5MWZkMWM0OTQ3M2Y5OGQ0ZmRmMWY3NDYzOGUwMWY4ODI3NjljZDRjYWU3OGI3M2QifSx7InBhdGgiOiJOT1RJQ0UtUFJPVkVOQU5DRS5qc29uIiwiYnl0ZXMiOjQ1MDI2NCwic2hhMjU2IjoiNTM0ZGQ1OWZkNGMxNWRkMTM4MmU4MjdmMGI4NWMxOWY3YzY5OGUyMzVmOTI5OWVhYTIwMmRiNTQwMDgzNDI4OCJ9LHsicGF0aCI6Ik5PVElDRS50eHQiLCJieXRlcyI6NjI2LCJzaGEyNTYiOiIxZGZiZjQ0OThkYzAyNmIyMDU5YzBiMGI1ZWI1ZmExZDgyYWUzMzRlNThmZjExZTdjMjk3MzMzMjdmMjVjNGViIn0seyJwYXRoIjoiUkVCVUlMRElORy5tZCIsImJ5dGVzIjozODQyLCJzaGEyNTYiOiJjZTYwNWI1ZmRiMDMxOTMzOWY5ZjgzZjJmZTdjY2NiYzdlNTcyNmZkZjQ5NGRhNmUyODQzM2JlZjgyOWViMGJlIn0seyJwYXRoIjoiU09VUkNFLU5PVElDRVMudHh0IiwiYnl0ZXMiOjkwMTc3NzEsInNoYTI1NiI6Ijg5OTc2YmVjYzI1NjU0MGU2ZDJlODA3YjQ3YTRlMDVlODg5OTgyYzA2MjJmYzA0NDEzYTdiZjdlNzdhNzdlMzcifSx7InBhdGgiOiJUSElSRC1QQVJUWS1OT1RJQ0VTLnR4dCIsImJ5dGVzIjoyNDkxNDk2LCJzaGEyNTYiOiIxMTY0NDdlZmY3Nzg5MzUxMTc5N2VmNDc2MDExZGVjODAwMjI0ZjkxZTMzNDJlM2Q2NTcwNzA4NzEyYjRiNzcyIn0seyJwYXRoIjoibGljZW5zZXMvbnBtLWNtZC1zaGltLnR4dCIsImJ5dGVzIjo4MTMsInNoYTI1NiI6ImFmZmZkZjEyMDgxMTIyNzQ5YzRiNzFjNWIxYzExYmM2NTlkNzkyNDJkMTllMThmNWU4ZGJhYjA0YTQ1ZTM2YmIifSx7InBhdGgiOiJucG0tYWRhcHRlci1maWxlcy5qc29uIiwiYnl0ZXMiOjE2NjYsInNoYTI1NiI6ImE4ODM4NGI3YzM4MGE5MjQ3MTU3NjE1MDhkZWMzNjNiNzcwMWRhY2EzZDI0YjUzZTI0MzFmOGViMTMzM2QzMjQifV19LHsidGFyZ2V0IjoiYnVuLWRhcndpbi14NjQiLCJmaWxlbmFtZSI6Im5vdGlmYWktMTMuMS4wLWJldGEuMy1kYXJ3aW4teDY0LnRhci5neiIsImJ5dGVzIjozMDEzNTc2NCwic2hhMjU2IjoiNDI4ZWQ2OGFiOWIzYWUzMDk0OGM1MmRiNzAxZGYzYWQ2YTc0ODA3YzI5ZjdiMDFjMTI0YjEwZTc4NmY3MzY3MCIsInJ1bnRpbWVfc2hhMjU2IjoiNjQ2ZmM2ZTBkMjQ0ZTFkMmFkYmExOGRhNzQ0NDQ4ODE0YmU0NTc0MWNlNjZiMTVhNGM0NTE0NDZjMzI4ZmE4OCIsImxhdW5jaGVyX3NoYTI1NiI6Ijk3NTJkZmY2ODA0ZjU2NDkzZjBjNWMwODM0MjU5NDMzM2VkMTNmMDlkZWI1YTQ4ZTJjN2NjYWYyN2ZmYWMyOWIiLCJtYXRlcmlhbHMiOlt7InBhdGgiOiJCVU4tTElDRU5TRS5tZCIsImJ5dGVzIjo1NjEzLCJzaGEyNTYiOiJiOWNhZjUyNzI4NjkxYjQwNTdlMzcxMjMyYzIyMWExMzI4ODMxOThiZTJmM2QyZGRmOTJjOTA0MDRjOTg0YjFhIn0seyJwYXRoIjoiQ09SUkVTUE9ORElORy1TT1VSQ0VTLmpzb24iLCJieXRlcyI6MjAyMCwic2hhMjU2IjoiZmE0YzM0NDgwMTE1NDg3MmQ2MTc5ZWUyZWY0OTkyM2RjOWY4OTA5ZWYwMWU1M2I4NmU4ZjU3YzYyNTgyMzI3NCJ9LHsicGF0aCI6IkxJQ0VOU0UudHh0IiwiYnl0ZXMiOjExMzQ2LCJzaGEyNTYiOiI5NDRjMTNmZjBmZTc5NWUyOTFmZDFjNDk0NzNmOThkNGZkZjFmNzQ2MzhlMDFmODgyNzY5Y2Q0Y2FlNzhiNzNkIn0seyJwYXRoIjoiTk9USUNFLVBST1ZFTkFOQ0UuanNvbiIsImJ5dGVzIjo0NTAyNjQsInNoYTI1NiI6IjUzNGRkNTlmZDRjMTVkZDEzODJlODI3ZjBiODVjMTlmN2M2OThlMjM1ZjkyOTllYWEyMDJkYjU0MDA4MzQyODgifSx7InBhdGgiOiJOT1RJQ0UudHh0IiwiYnl0ZXMiOjYyNiwic2hhMjU2IjoiMWRmYmY0NDk4ZGMwMjZiMjA1OWMwYjBiNWViNWZhMWQ4MmFlMzM0ZTU4ZmYxMWU3YzI5NzMzMzI3ZjI1YzRlYiJ9LHsicGF0aCI6IlJFQlVJTERJTkcubWQiLCJieXRlcyI6Mzg0Miwic2hhMjU2IjoiY2U2MDViNWZkYjAzMTkzMzlmOWY4M2YyZmU3Y2NjYmM3ZTU3MjZmZGY0OTRkYTZlMjg0MzNiZWY4MjllYjBiZSJ9LHsicGF0aCI6IlNPVVJDRS1OT1RJQ0VTLnR4dCIsImJ5dGVzIjo5MDE3NzcxLCJzaGEyNTYiOiI4OTk3NmJlY2MyNTY1NDBlNmQyZTgwN2I0N2E0ZTA1ZTg4OTk4MmMwNjIyZmMwNDQxM2E3YmY3ZTc3YTc3ZTM3In0seyJwYXRoIjoiVEhJUkQtUEFSVFktTk9USUNFUy50eHQiLCJieXRlcyI6MjQ5MTQ5Niwic2hhMjU2IjoiMTE2NDQ3ZWZmNzc4OTM1MTE3OTdlZjQ3NjAxMWRlYzgwMDIyNGY5MWUzMzQyZTNkNjU3MDcwODcxMmI0Yjc3MiJ9LHsicGF0aCI6ImxpY2Vuc2VzL25wbS1jbWQtc2hpbS50eHQiLCJieXRlcyI6ODEzLCJzaGEyNTYiOiJhZmZmZGYxMjA4MTEyMjc0OWM0YjcxYzViMWMxMWJjNjU5ZDc5MjQyZDE5ZTE4ZjVlOGRiYWIwNGE0NWUzNmJiIn0seyJwYXRoIjoibnBtLWFkYXB0ZXItZmlsZXMuanNvbiIsImJ5dGVzIjoxNjY2LCJzaGEyNTYiOiJhODgzODRiN2MzODBhOTI0NzE1NzYxNTA4ZGVjMzYzYjc3MDFkYWNhM2QyNGI1M2UyNDMxZjhlYjEzMzNkMzI0In1dfSx7InRhcmdldCI6ImJ1bi1saW51eC1hcm02NCIsImZpbGVuYW1lIjoibm90aWZhaS0xMy4xLjAtYmV0YS4zLWxpbnV4LWFybTY0LnRhci5neiIsImJ5dGVzIjozOTQ1OTQ3Miwic2hhMjU2IjoiZGJmZjY2NDE4YzUyMzQzZTllNGM4YjJiYzE3NjNjYmEwMjAxM2I0YzZhMGNhYmUyZWRlNDZhZjliMDEwMGMxZCIsInJ1bnRpbWVfc2hhMjU2IjoiNGU2NDJmOWZlYWEzYzBiYWYyMjMzOWRhNzQ2MjY4NTNhZjZlZWFkNjlmODcwMjU5NTdkOWYzNWI5YWM4ODIzOSIsImxhdW5jaGVyX3NoYTI1NiI6IjdmYTA1OTU2MDIzOTQzNDY4OWZjN2IwMmU4ZjJhMDc4N2YyZWJhZDc4ZWMxMTFjMDEwYzc3YmZmNzY4ZjkxZWMiLCJtYXRlcmlhbHMiOlt7InBhdGgiOiJCVU4tTElDRU5TRS5tZCIsImJ5dGVzIjo1NjEzLCJzaGEyNTYiOiJiOWNhZjUyNzI4NjkxYjQwNTdlMzcxMjMyYzIyMWExMzI4ODMxOThiZTJmM2QyZGRmOTJjOTA0MDRjOTg0YjFhIn0seyJwYXRoIjoiQ09SUkVTUE9ORElORy1TT1VSQ0VTLmpzb24iLCJieXRlcyI6MjAyMCwic2hhMjU2IjoiZmE0YzM0NDgwMTE1NDg3MmQ2MTc5ZWUyZWY0OTkyM2RjOWY4OTA5ZWYwMWU1M2I4NmU4ZjU3YzYyNTgyMzI3NCJ9LHsicGF0aCI6IkxJQ0VOU0UudHh0IiwiYnl0ZXMiOjExMzQ2LCJzaGEyNTYiOiI5NDRjMTNmZjBmZTc5NWUyOTFmZDFjNDk0NzNmOThkNGZkZjFmNzQ2MzhlMDFmODgyNzY5Y2Q0Y2FlNzhiNzNkIn0seyJwYXRoIjoiTk9USUNFLVBST1ZFTkFOQ0UuanNvbiIsImJ5dGVzIjo0NTAyNjQsInNoYTI1NiI6IjUzNGRkNTlmZDRjMTVkZDEzODJlODI3ZjBiODVjMTlmN2M2OThlMjM1ZjkyOTllYWEyMDJkYjU0MDA4MzQyODgifSx7InBhdGgiOiJOT1RJQ0UudHh0IiwiYnl0ZXMiOjYyNiwic2hhMjU2IjoiMWRmYmY0NDk4ZGMwMjZiMjA1OWMwYjBiNWViNWZhMWQ4MmFlMzM0ZTU4ZmYxMWU3YzI5NzMzMzI3ZjI1YzRlYiJ9LHsicGF0aCI6IlJFQlVJTERJTkcubWQiLCJieXRlcyI6Mzg0Miwic2hhMjU2IjoiY2U2MDViNWZkYjAzMTkzMzlmOWY4M2YyZmU3Y2NjYmM3ZTU3MjZmZGY0OTRkYTZlMjg0MzNiZWY4MjllYjBiZSJ9LHsicGF0aCI6IlNPVVJDRS1OT1RJQ0VTLnR4dCIsImJ5dGVzIjo5MDE3NzcxLCJzaGEyNTYiOiI4OTk3NmJlY2MyNTY1NDBlNmQyZTgwN2I0N2E0ZTA1ZTg4OTk4MmMwNjIyZmMwNDQxM2E3YmY3ZTc3YTc3ZTM3In0seyJwYXRoIjoiVEhJUkQtUEFSVFktTk9USUNFUy50eHQiLCJieXRlcyI6MjQ5MTQ5Niwic2hhMjU2IjoiMTE2NDQ3ZWZmNzc4OTM1MTE3OTdlZjQ3NjAxMWRlYzgwMDIyNGY5MWUzMzQyZTNkNjU3MDcwODcxMmI0Yjc3MiJ9LHsicGF0aCI6ImxpY2Vuc2VzL25wbS1jbWQtc2hpbS50eHQiLCJieXRlcyI6ODEzLCJzaGEyNTYiOiJhZmZmZGYxMjA4MTEyMjc0OWM0YjcxYzViMWMxMWJjNjU5ZDc5MjQyZDE5ZTE4ZjVlOGRiYWIwNGE0NWUzNmJiIn0seyJwYXRoIjoibnBtLWFkYXB0ZXItZmlsZXMuanNvbiIsImJ5dGVzIjoxNjY2LCJzaGEyNTYiOiJhODgzODRiN2MzODBhOTI0NzE1NzYxNTA4ZGVjMzYzYjc3MDFkYWNhM2QyNGI1M2UyNDMxZjhlYjEzMzNkMzI0In1dfSx7InRhcmdldCI6ImJ1bi1saW51eC14NjQiLCJmaWxlbmFtZSI6Im5vdGlmYWktMTMuMS4wLWJldGEuMy1saW51eC14NjQudGFyLmd6IiwiYnl0ZXMiOjM5MDE5OTcyLCJzaGEyNTYiOiJkMGVkNWE3YTI0ZWRiZWI3ZWRiOWVlYTNlMTAwMDAzOTYwMzQwYjllYzA0MDIwMGFiZTE5YzE0N2VkY2U5MzNhIiwicnVudGltZV9zaGEyNTYiOiJmNjMwZDVjYmZhODQ4ZWNhMTZkOTEzYTMxYWVkZTlmYTYzNmI0OWJjMTMxZDk0YmFmYjZiYzI1ZGQ3Yzk1NTFlIiwibGF1bmNoZXJfc2hhMjU2IjoiMGY1ZjYwMDU3ODRiNGZlMzgzMDVjODI4NTMzMGNkZmU5YzQ5NWYwNzUwOWRjNjNhOTg1ZjI2ZWYyZDQ0ZDkxMSIsIm1hdGVyaWFscyI6W3sicGF0aCI6IkJVTi1MSUNFTlNFLm1kIiwiYnl0ZXMiOjU2MTMsInNoYTI1NiI6ImI5Y2FmNTI3Mjg2OTFiNDA1N2UzNzEyMzJjMjIxYTEzMjg4MzE5OGJlMmYzZDJkZGY5MmM5MDQwNGM5ODRiMWEifSx7InBhdGgiOiJDT1JSRVNQT05ESU5HLVNPVVJDRVMuanNvbiIsImJ5dGVzIjoyMDIwLCJzaGEyNTYiOiJmYTRjMzQ0ODAxMTU0ODcyZDYxNzllZTJlZjQ5OTIzZGM5Zjg5MDllZjAxZTUzYjg2ZThmNTdjNjI1ODIzMjc0In0seyJwYXRoIjoiTElDRU5TRS50eHQiLCJieXRlcyI6MTEzNDYsInNoYTI1NiI6Ijk0NGMxM2ZmMGZlNzk1ZTI5MWZkMWM0OTQ3M2Y5OGQ0ZmRmMWY3NDYzOGUwMWY4ODI3NjljZDRjYWU3OGI3M2QifSx7InBhdGgiOiJOT1RJQ0UtUFJPVkVOQU5DRS5qc29uIiwiYnl0ZXMiOjQ1MDI2NCwic2hhMjU2IjoiNTM0ZGQ1OWZkNGMxNWRkMTM4MmU4MjdmMGI4NWMxOWY3YzY5OGUyMzVmOTI5OWVhYTIwMmRiNTQwMDgzNDI4OCJ9LHsicGF0aCI6Ik5PVElDRS50eHQiLCJieXRlcyI6NjI2LCJzaGEyNTYiOiIxZGZiZjQ0OThkYzAyNmIyMDU5YzBiMGI1ZWI1ZmExZDgyYWUzMzRlNThmZjExZTdjMjk3MzMzMjdmMjVjNGViIn0seyJwYXRoIjoiUkVCVUlMRElORy5tZCIsImJ5dGVzIjozODQyLCJzaGEyNTYiOiJjZTYwNWI1ZmRiMDMxOTMzOWY5ZjgzZjJmZTdjY2NiYzdlNTcyNmZkZjQ5NGRhNmUyODQzM2JlZjgyOWViMGJlIn0seyJwYXRoIjoiU09VUkNFLU5PVElDRVMudHh0IiwiYnl0ZXMiOjkwMTc3NzEsInNoYTI1NiI6Ijg5OTc2YmVjYzI1NjU0MGU2ZDJlODA3YjQ3YTRlMDVlODg5OTgyYzA2MjJmYzA0NDEzYTdiZjdlNzdhNzdlMzcifSx7InBhdGgiOiJUSElSRC1QQVJUWS1OT1RJQ0VTLnR4dCIsImJ5dGVzIjoyNDkxNDk2LCJzaGEyNTYiOiIxMTY0NDdlZmY3Nzg5MzUxMTc5N2VmNDc2MDExZGVjODAwMjI0ZjkxZTMzNDJlM2Q2NTcwNzA4NzEyYjRiNzcyIn0seyJwYXRoIjoibGljZW5zZXMvbnBtLWNtZC1zaGltLnR4dCIsImJ5dGVzIjo4MTMsInNoYTI1NiI6ImFmZmZkZjEyMDgxMTIyNzQ5YzRiNzFjNWIxYzExYmM2NTlkNzkyNDJkMTllMThmNWU4ZGJhYjA0YTQ1ZTM2YmIifSx7InBhdGgiOiJucG0tYWRhcHRlci1maWxlcy5qc29uIiwiYnl0ZXMiOjE2NjYsInNoYTI1NiI6ImE4ODM4NGI3YzM4MGE5MjQ3MTU3NjE1MDhkZWMzNjNiNzcwMWRhY2EzZDI0YjUzZTI0MzFmOGViMTMzM2QzMjQifV19LHsidGFyZ2V0IjoiYnVuLXdpbmRvd3MtYXJtNjQiLCJmaWxlbmFtZSI6Im5vdGlmYWktMTMuMS4wLWJldGEuMy13aW5kb3dzLWFybTY0LnppcCIsImJ5dGVzIjozODgxNDg4NSwic2hhMjU2IjoiOGE4NjIzMDNkMzg5NjY2ZGExMTU4Mjg1NmNmMjM3NzFhOTA2ODBhYjY4NmNjZWIwMGZlMGIzYzY1NGJiYjcyYyIsInJ1bnRpbWVfc2hhMjU2IjoiYmMyODc5NmViNjg4YjEwMGIzYTQ4MzBhYzQ2Y2Y0NzAyMTQzNWYyY2NhOWU5MmYzOGIzMDQxY2IzMjc5ZDdhOCIsImxhdW5jaGVyX3NoYTI1NiI6IjAxZGVkZGZkZWJjYzlmZjk2M2VlODZiMmUxYTZjMDk0YTI2MjUzMDNjZjk3YWM3ZWVkMDg3ODQ2ZThjNzk2ZmQiLCJtYXRlcmlhbHMiOlt7InBhdGgiOiJCVU4tTElDRU5TRS5tZCIsImJ5dGVzIjo1NjEzLCJzaGEyNTYiOiJiOWNhZjUyNzI4NjkxYjQwNTdlMzcxMjMyYzIyMWExMzI4ODMxOThiZTJmM2QyZGRmOTJjOTA0MDRjOTg0YjFhIn0seyJwYXRoIjoiQ09SUkVTUE9ORElORy1TT1VSQ0VTLmpzb24iLCJieXRlcyI6MjAyMCwic2hhMjU2IjoiZmE0YzM0NDgwMTE1NDg3MmQ2MTc5ZWUyZWY0OTkyM2RjOWY4OTA5ZWYwMWU1M2I4NmU4ZjU3YzYyNTgyMzI3NCJ9LHsicGF0aCI6IkxJQ0VOU0UudHh0IiwiYnl0ZXMiOjExMzQ2LCJzaGEyNTYiOiI5NDRjMTNmZjBmZTc5NWUyOTFmZDFjNDk0NzNmOThkNGZkZjFmNzQ2MzhlMDFmODgyNzY5Y2Q0Y2FlNzhiNzNkIn0seyJwYXRoIjoiTk9USUNFLVBST1ZFTkFOQ0UuanNvbiIsImJ5dGVzIjo0NTAyNjQsInNoYTI1NiI6IjUzNGRkNTlmZDRjMTVkZDEzODJlODI3ZjBiODVjMTlmN2M2OThlMjM1ZjkyOTllYWEyMDJkYjU0MDA4MzQyODgifSx7InBhdGgiOiJOT1RJQ0UudHh0IiwiYnl0ZXMiOjYyNiwic2hhMjU2IjoiMWRmYmY0NDk4ZGMwMjZiMjA1OWMwYjBiNWViNWZhMWQ4MmFlMzM0ZTU4ZmYxMWU3YzI5NzMzMzI3ZjI1YzRlYiJ9LHsicGF0aCI6IlJFQlVJTERJTkcubWQiLCJieXRlcyI6Mzg0Miwic2hhMjU2IjoiY2U2MDViNWZkYjAzMTkzMzlmOWY4M2YyZmU3Y2NjYmM3ZTU3MjZmZGY0OTRkYTZlMjg0MzNiZWY4MjllYjBiZSJ9LHsicGF0aCI6IlNPVVJDRS1OT1RJQ0VTLnR4dCIsImJ5dGVzIjo5MDE3NzcxLCJzaGEyNTYiOiI4OTk3NmJlY2MyNTY1NDBlNmQyZTgwN2I0N2E0ZTA1ZTg4OTk4MmMwNjIyZmMwNDQxM2E3YmY3ZTc3YTc3ZTM3In0seyJwYXRoIjoiVEhJUkQtUEFSVFktTk9USUNFUy50eHQiLCJieXRlcyI6MjQ5MTQ5Niwic2hhMjU2IjoiMTE2NDQ3ZWZmNzc4OTM1MTE3OTdlZjQ3NjAxMWRlYzgwMDIyNGY5MWUzMzQyZTNkNjU3MDcwODcxMmI0Yjc3MiJ9LHsicGF0aCI6ImxpY2Vuc2VzL25wbS1jbWQtc2hpbS50eHQiLCJieXRlcyI6ODEzLCJzaGEyNTYiOiJhZmZmZGYxMjA4MTEyMjc0OWM0YjcxYzViMWMxMWJjNjU5ZDc5MjQyZDE5ZTE4ZjVlOGRiYWIwNGE0NWUzNmJiIn0seyJwYXRoIjoibnBtLWFkYXB0ZXItZmlsZXMuanNvbiIsImJ5dGVzIjoxNjY2LCJzaGEyNTYiOiJhODgzODRiN2MzODBhOTI0NzE1NzYxNTA4ZGVjMzYzYjc3MDFkYWNhM2QyNGI1M2UyNDMxZjhlYjEzMzNkMzI0In1dfSx7InRhcmdldCI6ImJ1bi13aW5kb3dzLXg2NCIsImZpbGVuYW1lIjoibm90aWZhaS0xMy4xLjAtYmV0YS4zLXdpbmRvd3MteDY0LnppcCIsImJ5dGVzIjo0MTk2MTExOCwic2hhMjU2IjoiODhlM2JkMTkzMjcwNGJiNGI5NDQ3NmVhZGQwYzRmZWZlNmMwNDM4N2UxODZlYTYwNTE2ZGE5NmRkMGUxZDY4NiIsInJ1bnRpbWVfc2hhMjU2IjoiMTFhYjhmNjM1MjA3Nzk2YTg5NDlkYzNhNmE0MmNkODc4NjZkMThiMjc1NDUzNTRjNDg4N2E1ZDFjMDkyOTVlNSIsImxhdW5jaGVyX3NoYTI1NiI6ImVjMDYwNmNkYmQ5YWQ0YjhiNWRiOGE3M2Q0NmUwMDFjNjljNzI5MGQyN2UwNWIxNGViYWJlN2I0ZjU0M2JlZTkiLCJtYXRlcmlhbHMiOlt7InBhdGgiOiJCVU4tTElDRU5TRS5tZCIsImJ5dGVzIjo1NjEzLCJzaGEyNTYiOiJiOWNhZjUyNzI4NjkxYjQwNTdlMzcxMjMyYzIyMWExMzI4ODMxOThiZTJmM2QyZGRmOTJjOTA0MDRjOTg0YjFhIn0seyJwYXRoIjoiQ09SUkVTUE9ORElORy1TT1VSQ0VTLmpzb24iLCJieXRlcyI6MjAyMCwic2hhMjU2IjoiZmE0YzM0NDgwMTE1NDg3MmQ2MTc5ZWUyZWY0OTkyM2RjOWY4OTA5ZWYwMWU1M2I4NmU4ZjU3YzYyNTgyMzI3NCJ9LHsicGF0aCI6IkxJQ0VOU0UudHh0IiwiYnl0ZXMiOjExMzQ2LCJzaGEyNTYiOiI5NDRjMTNmZjBmZTc5NWUyOTFmZDFjNDk0NzNmOThkNGZkZjFmNzQ2MzhlMDFmODgyNzY5Y2Q0Y2FlNzhiNzNkIn0seyJwYXRoIjoiTk9USUNFLVBST1ZFTkFOQ0UuanNvbiIsImJ5dGVzIjo0NTAyNjQsInNoYTI1NiI6IjUzNGRkNTlmZDRjMTVkZDEzODJlODI3ZjBiODVjMTlmN2M2OThlMjM1ZjkyOTllYWEyMDJkYjU0MDA4MzQyODgifSx7InBhdGgiOiJOT1RJQ0UudHh0IiwiYnl0ZXMiOjYyNiwic2hhMjU2IjoiMWRmYmY0NDk4ZGMwMjZiMjA1OWMwYjBiNWViNWZhMWQ4MmFlMzM0ZTU4ZmYxMWU3YzI5NzMzMzI3ZjI1YzRlYiJ9LHsicGF0aCI6IlJFQlVJTERJTkcubWQiLCJieXRlcyI6Mzg0Miwic2hhMjU2IjoiY2U2MDViNWZkYjAzMTkzMzlmOWY4M2YyZmU3Y2NjYmM3ZTU3MjZmZGY0OTRkYTZlMjg0MzNiZWY4MjllYjBiZSJ9LHsicGF0aCI6IlNPVVJDRS1OT1RJQ0VTLnR4dCIsImJ5dGVzIjo5MDE3NzcxLCJzaGEyNTYiOiI4OTk3NmJlY2MyNTY1NDBlNmQyZTgwN2I0N2E0ZTA1ZTg4OTk4MmMwNjIyZmMwNDQxM2E3YmY3ZTc3YTc3ZTM3In0seyJwYXRoIjoiVEhJUkQtUEFSVFktTk9USUNFUy50eHQiLCJieXRlcyI6MjQ5MTQ5Niwic2hhMjU2IjoiMTE2NDQ3ZWZmNzc4OTM1MTE3OTdlZjQ3NjAxMWRlYzgwMDIyNGY5MWUzMzQyZTNkNjU3MDcwODcxMmI0Yjc3MiJ9LHsicGF0aCI6ImxpY2Vuc2VzL25wbS1jbWQtc2hpbS50eHQiLCJieXRlcyI6ODEzLCJzaGEyNTYiOiJhZmZmZGYxMjA4MTEyMjc0OWM0YjcxYzViMWMxMWJjNjU5ZDc5MjQyZDE5ZTE4ZjVlOGRiYWIwNGE0NWUzNmJiIn0seyJwYXRoIjoibnBtLWFkYXB0ZXItZmlsZXMuanNvbiIsImJ5dGVzIjoxNjY2LCJzaGEyNTYiOiJhODgzODRiN2MzODBhOTI0NzE1NzYxNTA4ZGVjMzYzYjc3MDFkYWNhM2QyNGI1M2UyNDMxZjhlYjEzMzNkMzI0In1dfV19","signature":"bR0ZKz4a3YzNP9IapmnQtdqr7asLWidLKcHepHOAADA0e+l2HV60ClONwwAfBkpK6Zb64YkZ92Wv92htGzq5BA=="}
@@ -1,17 +1,17 @@
1
1
  {
2
2
  "schema": 1,
3
3
  "package": "@raidiant/notifai",
4
- "adapter_version": "13.0.0",
4
+ "adapter_version": "13.1.0-beta.3",
5
5
  "native": {
6
- "version": "13.0.0",
7
- "source_revision": "c79c9a0b14f401deb828b89e01534d6850e21094",
8
- "inventory_url": "https://github.com/Raidiant-io/notifai/releases/download/v13.0.0/inventory.json"
6
+ "version": "13.1.0-beta.3",
7
+ "source_revision": "886b49e8e7f8e52167e0711818e1a2205c4c1892",
8
+ "inventory_url": "https://github.com/Raidiant-io/notifai/releases/download/v13.1.0-beta.3/inventory.json"
9
9
  },
10
10
  "files": [
11
11
  {
12
12
  "path": "CHANGELOG.md",
13
- "bytes": 66493,
14
- "sha256": "e25160f2566ea0f7db734c66bea5ece17998e7563d1597a99e42e44994daa072"
13
+ "bytes": 68859,
14
+ "sha256": "3927cc292b01e4a9c7328c6240a413fe02863c0a9541df97cf5afc986502bec5"
15
15
  },
16
16
  {
17
17
  "path": "LICENSE",
@@ -35,8 +35,8 @@
35
35
  },
36
36
  {
37
37
  "path": "bin/notifai.mjs",
38
- "bytes": 522895,
39
- "sha256": "b549cdbfd09c49fbe9ebc826b9be40467f2f27084f613392a22bfb418dd4e72c"
38
+ "bytes": 524921,
39
+ "sha256": "60846d8ae78e35fb00da350d08fa18633cdcd91c8155f8745d9be6372668462d"
40
40
  },
41
41
  {
42
42
  "path": "data/install.ps1",
@@ -45,13 +45,13 @@
45
45
  },
46
46
  {
47
47
  "path": "data/release.json",
48
- "bytes": 82,
49
- "sha256": "c3a4ab8088c4635dfc06820ff9e0ce44f03a325ce8933da37693d1b922e85331"
48
+ "bytes": 89,
49
+ "sha256": "ade1e626f83f4358433718c6398d789763ed8802289522a3cf3b0683f905a8ad"
50
50
  },
51
51
  {
52
52
  "path": "package.json",
53
- "bytes": 1308,
54
- "sha256": "1ff1cba83a0c37b7fbb39477ee9faa3c5eaefb5ed12bad877c971ce5f9c5cbe1"
53
+ "bytes": 1315,
54
+ "sha256": "fadf277198c1d04f31279927a3fee06e91f28be38370ec683fa0b010e133e889"
55
55
  }
56
56
  ]
57
57
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@raidiant/notifai",
3
- "version": "13.0.0",
3
+ "version": "13.1.0-beta.3",
4
4
  "type": "module",
5
5
  "description": "Notifications and questions from your coding agents to your phone. Your answer goes back to the exact session that asked. Claude Code, Codex, Cursor, OpenCode, OpenClaw, Hermes and Grok.",
6
6
  "keywords": [