@raidiant/notifai 14.2.0-beta.1 → 14.2.0-beta.2
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 +3 -1
- package/bin/notifai.mjs +55 -3
- package/data/release.json +1 -1
- package/inventory.json +1 -1
- package/npm-adapter-files.json +10 -10
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -8,7 +8,7 @@ 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
|
-
## [14.2.0-beta.
|
|
11
|
+
## [14.2.0-beta.2](https://github.com/Raidiant-io/notifai/compare/v14.1.1...v14.2.0-beta.2) (2026-10-24)
|
|
12
12
|
|
|
13
13
|
### Harness support
|
|
14
14
|
|
|
@@ -18,6 +18,8 @@ and [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/).
|
|
|
18
18
|
|
|
19
19
|
### Release reliability
|
|
20
20
|
|
|
21
|
+
* Capture failed macOS notarization checks and retry only evidenced lookup failures; rejection and unknown errors remain fatal.
|
|
22
|
+
|
|
21
23
|
* Vendor verified Bun license materials so native packaging does not depend on fetching them.
|
|
22
24
|
* Bound npm-adapter verification phases with timeouts and process diagnostics.
|
|
23
25
|
* Check agent guidance before builds and tests, and retain focused contract and routing regressions.
|
package/bin/notifai.mjs
CHANGED
|
@@ -11283,9 +11283,61 @@ async function runNpmAdapter(args, { locator, platform, distribution, verify: ve
|
|
|
11283
11283
|
return platform.execute(stable, args);
|
|
11284
11284
|
}
|
|
11285
11285
|
|
|
11286
|
+
// apps/cli/npm/notarization.mjs
|
|
11287
|
+
import { spawnSync } from "node:child_process";
|
|
11288
|
+
var backoff = [5e3, 15e3];
|
|
11289
|
+
var pause = (ms) => Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, ms);
|
|
11290
|
+
var rejected = (text) => /revoked|CSSMERR_TP_|invalid signature|code or signature have been modified|\brejected\b/i.test(text);
|
|
11291
|
+
var unavailable = (text) => /NSURLErrorDomain\s+Code=-(?:1001|1003|1004|1005|1006|1009)\b/.test(text);
|
|
11292
|
+
var snapshot = (result) => ({
|
|
11293
|
+
status: result.status,
|
|
11294
|
+
signal: result.signal ?? null,
|
|
11295
|
+
error: result.error?.code ?? null,
|
|
11296
|
+
stdout: String(result.stdout ?? ""),
|
|
11297
|
+
stderr: String(result.stderr ?? "")
|
|
11298
|
+
});
|
|
11299
|
+
function verifyNotarization(file, {
|
|
11300
|
+
run = spawnSync,
|
|
11301
|
+
pause: wait = pause,
|
|
11302
|
+
report = (entry) => console.error(`notifai-notarization: ${JSON.stringify(entry)}`)
|
|
11303
|
+
} = {}) {
|
|
11304
|
+
const history = [];
|
|
11305
|
+
for (let attempt = 1; attempt <= backoff.length + 1; attempt += 1) {
|
|
11306
|
+
const options = { encoding: "utf8", timeout: 6e4, maxBuffer: 256 * 1024, stdio: ["ignore", "pipe", "pipe"] };
|
|
11307
|
+
const codesign = snapshot(run("/usr/bin/codesign", ["-vvvv", "-R=notarized", "--check-notarization", file], options));
|
|
11308
|
+
if (codesign.status === 0 && !codesign.error && !codesign.signal) {
|
|
11309
|
+
return { stdout: codesign.stdout, stderr: codesign.stderr, attempts: attempt, failures: history };
|
|
11310
|
+
}
|
|
11311
|
+
let classification = "rejected-or-unknown", assessment;
|
|
11312
|
+
const diagnostic = codesign.stderr + codesign.stdout;
|
|
11313
|
+
if (!codesign.error && !codesign.signal && !rejected(diagnostic)) {
|
|
11314
|
+
if (unavailable(diagnostic)) classification = "lookup-unavailable";
|
|
11315
|
+
else if (diagnostic.includes("code failed to satisfy specified code requirement(s)")) {
|
|
11316
|
+
assessment = snapshot(run("/usr/sbin/spctl", ["-a", "-vvv", "-t", "install", file], options));
|
|
11317
|
+
const detail = assessment.stderr + assessment.stdout;
|
|
11318
|
+
if (!assessment.error && !assessment.signal && !rejected(detail)) {
|
|
11319
|
+
if (assessment.status === 0 && /^source=Notarized Developer ID\s*$/m.test(detail) && /: accepted\s*$/m.test(detail)) {
|
|
11320
|
+
classification = "lookup-inconsistent";
|
|
11321
|
+
} else if (unavailable(detail)) classification = "lookup-unavailable";
|
|
11322
|
+
}
|
|
11323
|
+
}
|
|
11324
|
+
}
|
|
11325
|
+
const entry = { attempt, classification, codesign, ...assessment ? { assessment } : {} };
|
|
11326
|
+
history.push(entry);
|
|
11327
|
+
report(entry);
|
|
11328
|
+
if (classification === "rejected-or-unknown" || attempt > backoff.length) {
|
|
11329
|
+
const error = new Error(`Apple notarization verification failed (${classification}, attempt ${attempt}): ${JSON.stringify(history)}`);
|
|
11330
|
+
error.code = "NOTARIZATION_VERIFICATION_FAILED";
|
|
11331
|
+
error.attempts = history;
|
|
11332
|
+
throw error;
|
|
11333
|
+
}
|
|
11334
|
+
wait(backoff[attempt - 1]);
|
|
11335
|
+
}
|
|
11336
|
+
}
|
|
11337
|
+
|
|
11286
11338
|
// apps/cli/npm/platform.mjs
|
|
11287
11339
|
import assert3 from "node:assert/strict";
|
|
11288
|
-
import { execFileSync, spawn, spawnSync } from "node:child_process";
|
|
11340
|
+
import { execFileSync, spawn, spawnSync as spawnSync2 } from "node:child_process";
|
|
11289
11341
|
import { randomUUID } from "node:crypto";
|
|
11290
11342
|
import { lstatSync as lstatSync5, mkdtempSync as mkdtempSync2, readFileSync as readFileSync4, readdirSync as readdirSync2 } from "node:fs";
|
|
11291
11343
|
import os from "node:os";
|
|
@@ -11462,7 +11514,7 @@ function nativePlatform() {
|
|
|
11462
11514
|
if (windows) return powershell("Get-NotifaiWindowsTarget");
|
|
11463
11515
|
let arch = process.arch;
|
|
11464
11516
|
if (process.platform === "darwin") {
|
|
11465
|
-
const result =
|
|
11517
|
+
const result = spawnSync2("/usr/sbin/sysctl", ["-n", "hw.optional.arm64"], { encoding: "utf8", timeout: 5e3 });
|
|
11466
11518
|
if (result.status === 0 && result.stdout.trim() === "1") arch = "arm64";
|
|
11467
11519
|
} else {
|
|
11468
11520
|
const report = process.report.getReport();
|
|
@@ -11487,7 +11539,7 @@ function nativePlatform() {
|
|
|
11487
11539
|
for (const name of ["notifai", "notifai-runtime"]) {
|
|
11488
11540
|
const executable = path6.join(directory, name);
|
|
11489
11541
|
execFileSync("/usr/bin/codesign", ["--verify", "--strict", executable], { timeout: 3e4, stdio: ["ignore", "ignore", "pipe"] });
|
|
11490
|
-
|
|
11542
|
+
verifyNotarization(executable);
|
|
11491
11543
|
}
|
|
11492
11544
|
},
|
|
11493
11545
|
execute: (executable, args) => executeNative(executable, args, { env: childEnvironment }),
|
package/data/release.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"14.2.0-beta.
|
|
1
|
+
{"version":"14.2.0-beta.2","source_revision":"048c2129dff26bc472b4580466604eb8782b6bb7"}
|
package/inventory.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"key_id":"notifai-release-2026-10","payload":"eyJzY2hlbWEiOjIsInZlcnNpb24iOiIxNC4yLjAtYmV0YS4xIiwic291cmNlX3JldmlzaW9uIjoiZmFhMzM5ZjI2MTk4OTlmM2Y4MmUxMzA3MmU2MGFhYzMxZGI1YjdiMSIsImxvY2FsX2NvbnRpbnVpdHkiOnsiY29udHJhY3QiOiJub3RpZmFpLXNlc3Npb24tc3RhdGUtdjIiLCJjb21wYXRpYmxlIjp7Im5vdGlmYWktc2Vzc2lvbi1zdGF0ZS12MSI6WyJidW4tZGFyd2luLWFybTY0IiwiYnVuLWRhcndpbi14NjQiLCJidW4td2luZG93cy1hcm02NCIsImJ1bi13aW5kb3dzLXg2NCJdfX0sInN0b3JlX3NjaGVtYSI6MiwibGF1bmNoZXJfc2NoZW1hIjoxLCJhcnRpZmFjdHMiOlt7InRhcmdldCI6ImJ1bi1kYXJ3aW4tYXJtNjQiLCJmaWxlbmFtZSI6Im5vdGlmYWktMTQuMi4wLWJldGEuMS1kYXJ3aW4tYXJtNjQudGFyLmd6IiwiYnl0ZXMiOjI4MDc0MDQ4LCJzaGEyNTYiOiI4ZTVkNDQ0MTYwNzhjMTE5NGU3ZWI1MDUzMzcyNDVkMmU2OTAyMTgzNzc4M2NhZmY0MmE3ODk2ZGEyYTE1NzM0IiwicnVudGltZV9zaGEyNTYiOiI1MTAyOTZkMmY5OWIzODhhNjEzN2U5YmI2ZmFkODA1M2RjM2FhZjQ5N2I5MDJmOGIwMThhOTNjODYwYzFmZDgzIiwibGF1bmNoZXJfc2hhMjU2IjoiZGFjMTY2ZDEzZGM3YmRhNGJiYjVkMjJiMDE4N2QzZWIzMzhmM2M2MzgzY2JiYzU2OTU5MmQyNjk4ZDRhM2Q5NCIsIm1hdGVyaWFscyI6W3sicGF0aCI6IkJVTi1MSUNFTlNFLm1kIiwiYnl0ZXMiOjU2MTMsInNoYTI1NiI6ImI5Y2FmNTI3Mjg2OTFiNDA1N2UzNzEyMzJjMjIxYTEzMjg4MzE5OGJlMmYzZDJkZGY5MmM5MDQwNGM5ODRiMWEifSx7InBhdGgiOiJDT1JSRVNQT05ESU5HLVNPVVJDRVMuanNvbiIsImJ5dGVzIjoyMDIwLCJzaGEyNTYiOiJmYTRjMzQ0ODAxMTU0ODcyZDYxNzllZTJlZjQ5OTIzZGM5Zjg5MDllZjAxZTUzYjg2ZThmNTdjNjI1ODIzMjc0In0seyJwYXRoIjoiTElDRU5TRS50eHQiLCJieXRlcyI6MTEzNDYsInNoYTI1NiI6Ijk0NGMxM2ZmMGZlNzk1ZTI5MWZkMWM0OTQ3M2Y5OGQ0ZmRmMWY3NDYzOGUwMWY4ODI3NjljZDRjYWU3OGI3M2QifSx7InBhdGgiOiJOT1RJQ0UtUFJPVkVOQU5DRS5qc29uIiwiYnl0ZXMiOjQ1MDI2NCwic2hhMjU2IjoiNTM0ZGQ1OWZkNGMxNWRkMTM4MmU4MjdmMGI4NWMxOWY3YzY5OGUyMzVmOTI5OWVhYTIwMmRiNTQwMDgzNDI4OCJ9LHsicGF0aCI6Ik5PVElDRS50eHQiLCJieXRlcyI6NjI2LCJzaGEyNTYiOiIxZGZiZjQ0OThkYzAyNmIyMDU5YzBiMGI1ZWI1ZmExZDgyYWUzMzRlNThmZjExZTdjMjk3MzMzMjdmMjVjNGViIn0seyJwYXRoIjoiUkVCVUlMRElORy5tZCIsImJ5dGVzIjozODQyLCJzaGEyNTYiOiJjZTYwNWI1ZmRiMDMxOTMzOWY5ZjgzZjJmZTdjY2NiYzdlNTcyNmZkZjQ5NGRhNmUyODQzM2JlZjgyOWViMGJlIn0seyJwYXRoIjoiU09VUkNFLU5PVElDRVMudHh0IiwiYnl0ZXMiOjkwMTc3NzEsInNoYTI1NiI6Ijg5OTc2YmVjYzI1NjU0MGU2ZDJlODA3YjQ3YTRlMDVlODg5OTgyYzA2MjJmYzA0NDEzYTdiZjdlNzdhNzdlMzcifSx7InBhdGgiOiJUSElSRC1QQVJUWS1OT1RJQ0VTLnR4dCIsImJ5dGVzIjoyNDkxNDk2LCJzaGEyNTYiOiIxMTY0NDdlZmY3Nzg5MzUxMTc5N2VmNDc2MDExZGVjODAwMjI0ZjkxZTMzNDJlM2Q2NTcwNzA4NzEyYjRiNzcyIn0seyJwYXRoIjoibGljZW5zZXMvbnBtLWNtZC1zaGltLnR4dCIsImJ5dGVzIjo4MTMsInNoYTI1NiI6ImFmZmZkZjEyMDgxMTIyNzQ5YzRiNzFjNWIxYzExYmM2NTlkNzkyNDJkMTllMThmNWU4ZGJhYjA0YTQ1ZTM2YmIifSx7InBhdGgiOiJucG0tYWRhcHRlci1maWxlcy5qc29uIiwiYnl0ZXMiOjE2NjYsInNoYTI1NiI6IjMwNDQyNzg3ZWI0YmVhZDExODJjZGUwYmJiZjc5ZjU1Mzk0ZDQ5Y2ZjNzEzNWI4YjU4YmQ5NGE1MGJlMWRjYjUifV19LHsidGFyZ2V0IjoiYnVuLWRhcndpbi14NjQiLCJmaWxlbmFtZSI6Im5vdGlmYWktMTQuMi4wLWJldGEuMS1kYXJ3aW4teDY0LnRhci5neiIsImJ5dGVzIjozMDMxOTE1Mywic2hhMjU2IjoiYmRiZTM0YzBlZWYzMmIzOGIyODgzNzRjOTcxZDdlYmNlYTlkODExOGFkNTljMzc0YTUwMzgzNTBhMWRmOGUwYyIsInJ1bnRpbWVfc2hhMjU2IjoiNDlhMjUyNzY0NDA5MjNkYTRjNGYwZmU2ZTIxZjBlYTE0YzM0OTRlYjYzOTkzMDNkMDZhNDM5MWJhZTBmODU0NiIsImxhdW5jaGVyX3NoYTI1NiI6IjZkYWM4ZWZhOWFkY2RhMGQ1NjU3ZTA5NTNjYzE5ZmEzYjA2MjAwYjMwNzk0OTIwYWVkYWQ0Njg0ZDc2YjJlNmQiLCJtYXRlcmlhbHMiOlt7InBhdGgiOiJCVU4tTElDRU5TRS5tZCIsImJ5dGVzIjo1NjEzLCJzaGEyNTYiOiJiOWNhZjUyNzI4NjkxYjQwNTdlMzcxMjMyYzIyMWExMzI4ODMxOThiZTJmM2QyZGRmOTJjOTA0MDRjOTg0YjFhIn0seyJwYXRoIjoiQ09SUkVTUE9ORElORy1TT1VSQ0VTLmpzb24iLCJieXRlcyI6MjAyMCwic2hhMjU2IjoiZmE0YzM0NDgwMTE1NDg3MmQ2MTc5ZWUyZWY0OTkyM2RjOWY4OTA5ZWYwMWU1M2I4NmU4ZjU3YzYyNTgyMzI3NCJ9LHsicGF0aCI6IkxJQ0VOU0UudHh0IiwiYnl0ZXMiOjExMzQ2LCJzaGEyNTYiOiI5NDRjMTNmZjBmZTc5NWUyOTFmZDFjNDk0NzNmOThkNGZkZjFmNzQ2MzhlMDFmODgyNzY5Y2Q0Y2FlNzhiNzNkIn0seyJwYXRoIjoiTk9USUNFLVBST1ZFTkFOQ0UuanNvbiIsImJ5dGVzIjo0NTAyNjQsInNoYTI1NiI6IjUzNGRkNTlmZDRjMTVkZDEzODJlODI3ZjBiODVjMTlmN2M2OThlMjM1ZjkyOTllYWEyMDJkYjU0MDA4MzQyODgifSx7InBhdGgiOiJOT1RJQ0UudHh0IiwiYnl0ZXMiOjYyNiwic2hhMjU2IjoiMWRmYmY0NDk4ZGMwMjZiMjA1OWMwYjBiNWViNWZhMWQ4MmFlMzM0ZTU4ZmYxMWU3YzI5NzMzMzI3ZjI1YzRlYiJ9LHsicGF0aCI6IlJFQlVJTERJTkcubWQiLCJieXRlcyI6Mzg0Miwic2hhMjU2IjoiY2U2MDViNWZkYjAzMTkzMzlmOWY4M2YyZmU3Y2NjYmM3ZTU3MjZmZGY0OTRkYTZlMjg0MzNiZWY4MjllYjBiZSJ9LHsicGF0aCI6IlNPVVJDRS1OT1RJQ0VTLnR4dCIsImJ5dGVzIjo5MDE3NzcxLCJzaGEyNTYiOiI4OTk3NmJlY2MyNTY1NDBlNmQyZTgwN2I0N2E0ZTA1ZTg4OTk4MmMwNjIyZmMwNDQxM2E3YmY3ZTc3YTc3ZTM3In0seyJwYXRoIjoiVEhJUkQtUEFSVFktTk9USUNFUy50eHQiLCJieXRlcyI6MjQ5MTQ5Niwic2hhMjU2IjoiMTE2NDQ3ZWZmNzc4OTM1MTE3OTdlZjQ3NjAxMWRlYzgwMDIyNGY5MWUzMzQyZTNkNjU3MDcwODcxMmI0Yjc3MiJ9LHsicGF0aCI6ImxpY2Vuc2VzL25wbS1jbWQtc2hpbS50eHQiLCJieXRlcyI6ODEzLCJzaGEyNTYiOiJhZmZmZGYxMjA4MTEyMjc0OWM0YjcxYzViMWMxMWJjNjU5ZDc5MjQyZDE5ZTE4ZjVlOGRiYWIwNGE0NWUzNmJiIn0seyJwYXRoIjoibnBtLWFkYXB0ZXItZmlsZXMuanNvbiIsImJ5dGVzIjoxNjY2LCJzaGEyNTYiOiIzMDQ0Mjc4N2ViNGJlYWQxMTgyY2RlMGJiYmY3OWY1NTM5NGQ0OWNmYzcxMzViOGI1OGJkOTRhNTBiZTFkY2I1In1dfSx7InRhcmdldCI6ImJ1bi1saW51eC1hcm02NCIsImZpbGVuYW1lIjoibm90aWZhaS0xNC4yLjAtYmV0YS4xLWxpbnV4LWFybTY0LnRhci5neiIsImJ5dGVzIjozOTYzNTcyMywic2hhMjU2IjoiZTdmYWU0M2JhYjU5NzFhY2EyYTcyYjM4YTYzN2UxYjQ2MjcxYTVmMWNlZjY0MjJiNzkzYTE5ZTg5NGI2ZGJkOCIsInJ1bnRpbWVfc2hhMjU2IjoiNGU5YmFmM2U2MWViYThjZjVhMDc4MjdlMzEwN2JmMjRiM2ZmYjc5NjAyYjM2ZmEzYTczZTIzOWUwNzg4MGZmNSIsImxhdW5jaGVyX3NoYTI1NiI6ImMyYWI1ZjgwOTBjMTNmMDcwYjg3Yzg2NThiODAwM2MyYjg3OGMwYThjNWNjZGJmNWI5NDJjMTU3OTFlOGFkNzYiLCJtYXRlcmlhbHMiOlt7InBhdGgiOiJCVU4tTElDRU5TRS5tZCIsImJ5dGVzIjo1NjEzLCJzaGEyNTYiOiJiOWNhZjUyNzI4NjkxYjQwNTdlMzcxMjMyYzIyMWExMzI4ODMxOThiZTJmM2QyZGRmOTJjOTA0MDRjOTg0YjFhIn0seyJwYXRoIjoiQ09SUkVTUE9ORElORy1TT1VSQ0VTLmpzb24iLCJieXRlcyI6MjAyMCwic2hhMjU2IjoiZmE0YzM0NDgwMTE1NDg3MmQ2MTc5ZWUyZWY0OTkyM2RjOWY4OTA5ZWYwMWU1M2I4NmU4ZjU3YzYyNTgyMzI3NCJ9LHsicGF0aCI6IkxJQ0VOU0UudHh0IiwiYnl0ZXMiOjExMzQ2LCJzaGEyNTYiOiI5NDRjMTNmZjBmZTc5NWUyOTFmZDFjNDk0NzNmOThkNGZkZjFmNzQ2MzhlMDFmODgyNzY5Y2Q0Y2FlNzhiNzNkIn0seyJwYXRoIjoiTk9USUNFLVBST1ZFTkFOQ0UuanNvbiIsImJ5dGVzIjo0NTAyNjQsInNoYTI1NiI6IjUzNGRkNTlmZDRjMTVkZDEzODJlODI3ZjBiODVjMTlmN2M2OThlMjM1ZjkyOTllYWEyMDJkYjU0MDA4MzQyODgifSx7InBhdGgiOiJOT1RJQ0UudHh0IiwiYnl0ZXMiOjYyNiwic2hhMjU2IjoiMWRmYmY0NDk4ZGMwMjZiMjA1OWMwYjBiNWViNWZhMWQ4MmFlMzM0ZTU4ZmYxMWU3YzI5NzMzMzI3ZjI1YzRlYiJ9LHsicGF0aCI6IlJFQlVJTERJTkcubWQiLCJieXRlcyI6Mzg0Miwic2hhMjU2IjoiY2U2MDViNWZkYjAzMTkzMzlmOWY4M2YyZmU3Y2NjYmM3ZTU3MjZmZGY0OTRkYTZlMjg0MzNiZWY4MjllYjBiZSJ9LHsicGF0aCI6IlNPVVJDRS1OT1RJQ0VTLnR4dCIsImJ5dGVzIjo5MDE3NzcxLCJzaGEyNTYiOiI4OTk3NmJlY2MyNTY1NDBlNmQyZTgwN2I0N2E0ZTA1ZTg4OTk4MmMwNjIyZmMwNDQxM2E3YmY3ZTc3YTc3ZTM3In0seyJwYXRoIjoiVEhJUkQtUEFSVFktTk9USUNFUy50eHQiLCJieXRlcyI6MjQ5MTQ5Niwic2hhMjU2IjoiMTE2NDQ3ZWZmNzc4OTM1MTE3OTdlZjQ3NjAxMWRlYzgwMDIyNGY5MWUzMzQyZTNkNjU3MDcwODcxMmI0Yjc3MiJ9LHsicGF0aCI6ImxpY2Vuc2VzL25wbS1jbWQtc2hpbS50eHQiLCJieXRlcyI6ODEzLCJzaGEyNTYiOiJhZmZmZGYxMjA4MTEyMjc0OWM0YjcxYzViMWMxMWJjNjU5ZDc5MjQyZDE5ZTE4ZjVlOGRiYWIwNGE0NWUzNmJiIn0seyJwYXRoIjoibnBtLWFkYXB0ZXItZmlsZXMuanNvbiIsImJ5dGVzIjoxNjY2LCJzaGEyNTYiOiIzMDQ0Mjc4N2ViNGJlYWQxMTgyY2RlMGJiYmY3OWY1NTM5NGQ0OWNmYzcxMzViOGI1OGJkOTRhNTBiZTFkY2I1In1dfSx7InRhcmdldCI6ImJ1bi1saW51eC14NjQiLCJmaWxlbmFtZSI6Im5vdGlmYWktMTQuMi4wLWJldGEuMS1saW51eC14NjQudGFyLmd6IiwiYnl0ZXMiOjM5MTk5NDEzLCJzaGEyNTYiOiI3ZDA4NDg0MmUxZWM4ZDJmYjZkZDQwNTUwZTY1YTA5Njk0Y2M4NzllMGRmMTA1N2Y4N2ZhZjE2M2UwYmVhZWU5IiwicnVudGltZV9zaGEyNTYiOiIyZTYzOWQzNDZjNzYxZDkyNjRjZDM4MWNlNDdkNDFkYmVjZWYwMjg5N2Y3OTQxYmY3YjY3MzgwYzQzNDYxMmM1IiwibGF1bmNoZXJfc2hhMjU2IjoiODNmM2Y5NWVhNzZhMTNjYTU2YmFmM2ZjM2EwMzYyOTdjZTkwZDk1NjAzZjliNDhkMDg5ZDAzMDM3N2JhZTM5ZSIsIm1hdGVyaWFscyI6W3sicGF0aCI6IkJVTi1MSUNFTlNFLm1kIiwiYnl0ZXMiOjU2MTMsInNoYTI1NiI6ImI5Y2FmNTI3Mjg2OTFiNDA1N2UzNzEyMzJjMjIxYTEzMjg4MzE5OGJlMmYzZDJkZGY5MmM5MDQwNGM5ODRiMWEifSx7InBhdGgiOiJDT1JSRVNQT05ESU5HLVNPVVJDRVMuanNvbiIsImJ5dGVzIjoyMDIwLCJzaGEyNTYiOiJmYTRjMzQ0ODAxMTU0ODcyZDYxNzllZTJlZjQ5OTIzZGM5Zjg5MDllZjAxZTUzYjg2ZThmNTdjNjI1ODIzMjc0In0seyJwYXRoIjoiTElDRU5TRS50eHQiLCJieXRlcyI6MTEzNDYsInNoYTI1NiI6Ijk0NGMxM2ZmMGZlNzk1ZTI5MWZkMWM0OTQ3M2Y5OGQ0ZmRmMWY3NDYzOGUwMWY4ODI3NjljZDRjYWU3OGI3M2QifSx7InBhdGgiOiJOT1RJQ0UtUFJPVkVOQU5DRS5qc29uIiwiYnl0ZXMiOjQ1MDI2NCwic2hhMjU2IjoiNTM0ZGQ1OWZkNGMxNWRkMTM4MmU4MjdmMGI4NWMxOWY3YzY5OGUyMzVmOTI5OWVhYTIwMmRiNTQwMDgzNDI4OCJ9LHsicGF0aCI6Ik5PVElDRS50eHQiLCJieXRlcyI6NjI2LCJzaGEyNTYiOiIxZGZiZjQ0OThkYzAyNmIyMDU5YzBiMGI1ZWI1ZmExZDgyYWUzMzRlNThmZjExZTdjMjk3MzMzMjdmMjVjNGViIn0seyJwYXRoIjoiUkVCVUlMRElORy5tZCIsImJ5dGVzIjozODQyLCJzaGEyNTYiOiJjZTYwNWI1ZmRiMDMxOTMzOWY5ZjgzZjJmZTdjY2NiYzdlNTcyNmZkZjQ5NGRhNmUyODQzM2JlZjgyOWViMGJlIn0seyJwYXRoIjoiU09VUkNFLU5PVElDRVMudHh0IiwiYnl0ZXMiOjkwMTc3NzEsInNoYTI1NiI6Ijg5OTc2YmVjYzI1NjU0MGU2ZDJlODA3YjQ3YTRlMDVlODg5OTgyYzA2MjJmYzA0NDEzYTdiZjdlNzdhNzdlMzcifSx7InBhdGgiOiJUSElSRC1QQVJUWS1OT1RJQ0VTLnR4dCIsImJ5dGVzIjoyNDkxNDk2LCJzaGEyNTYiOiIxMTY0NDdlZmY3Nzg5MzUxMTc5N2VmNDc2MDExZGVjODAwMjI0ZjkxZTMzNDJlM2Q2NTcwNzA4NzEyYjRiNzcyIn0seyJwYXRoIjoibGljZW5zZXMvbnBtLWNtZC1zaGltLnR4dCIsImJ5dGVzIjo4MTMsInNoYTI1NiI6ImFmZmZkZjEyMDgxMTIyNzQ5YzRiNzFjNWIxYzExYmM2NTlkNzkyNDJkMTllMThmNWU4ZGJhYjA0YTQ1ZTM2YmIifSx7InBhdGgiOiJucG0tYWRhcHRlci1maWxlcy5qc29uIiwiYnl0ZXMiOjE2NjYsInNoYTI1NiI6IjMwNDQyNzg3ZWI0YmVhZDExODJjZGUwYmJiZjc5ZjU1Mzk0ZDQ5Y2ZjNzEzNWI4YjU4YmQ5NGE1MGJlMWRjYjUifV19LHsidGFyZ2V0IjoiYnVuLXdpbmRvd3MtYXJtNjQiLCJmaWxlbmFtZSI6Im5vdGlmYWktMTQuMi4wLWJldGEuMS13aW5kb3dzLWFybTY0LnppcCIsImJ5dGVzIjozODk4NDQzMCwic2hhMjU2IjoiMWI5NmRhZGI5MjFmNmYxOGNhMjA4OThmNmJiMGZhYTA2YmM3NGE1MTE3NjUxODMyODYzMmQ2ZDI4ZjJkZGM1ZCIsInJ1bnRpbWVfc2hhMjU2IjoiY2EwYjg4M2UyMzk4MDk0MDNmYjQwYWFlM2FiZjQzYjAzMDc4OWRiOThmZDYxN2IwMDJlYWNlNTBhMDNlMDY2YSIsImxhdW5jaGVyX3NoYTI1NiI6IjJmYWRlNmRhODdmNzBmN2QwNjBkNDA5NzQ3ZDYyNWUwMDUyNjNkNGRkNDI1ZGQxMjhmZjBhNTJkNGQxMDkzODUiLCJtYXRlcmlhbHMiOlt7InBhdGgiOiJCVU4tTElDRU5TRS5tZCIsImJ5dGVzIjo1NjEzLCJzaGEyNTYiOiJiOWNhZjUyNzI4NjkxYjQwNTdlMzcxMjMyYzIyMWExMzI4ODMxOThiZTJmM2QyZGRmOTJjOTA0MDRjOTg0YjFhIn0seyJwYXRoIjoiQ09SUkVTUE9ORElORy1TT1VSQ0VTLmpzb24iLCJieXRlcyI6MjAyMCwic2hhMjU2IjoiZmE0YzM0NDgwMTE1NDg3MmQ2MTc5ZWUyZWY0OTkyM2RjOWY4OTA5ZWYwMWU1M2I4NmU4ZjU3YzYyNTgyMzI3NCJ9LHsicGF0aCI6IkxJQ0VOU0UudHh0IiwiYnl0ZXMiOjExMzQ2LCJzaGEyNTYiOiI5NDRjMTNmZjBmZTc5NWUyOTFmZDFjNDk0NzNmOThkNGZkZjFmNzQ2MzhlMDFmODgyNzY5Y2Q0Y2FlNzhiNzNkIn0seyJwYXRoIjoiTk9USUNFLVBST1ZFTkFOQ0UuanNvbiIsImJ5dGVzIjo0NTAyNjQsInNoYTI1NiI6IjUzNGRkNTlmZDRjMTVkZDEzODJlODI3ZjBiODVjMTlmN2M2OThlMjM1ZjkyOTllYWEyMDJkYjU0MDA4MzQyODgifSx7InBhdGgiOiJOT1RJQ0UudHh0IiwiYnl0ZXMiOjYyNiwic2hhMjU2IjoiMWRmYmY0NDk4ZGMwMjZiMjA1OWMwYjBiNWViNWZhMWQ4MmFlMzM0ZTU4ZmYxMWU3YzI5NzMzMzI3ZjI1YzRlYiJ9LHsicGF0aCI6IlJFQlVJTERJTkcubWQiLCJieXRlcyI6Mzg0Miwic2hhMjU2IjoiY2U2MDViNWZkYjAzMTkzMzlmOWY4M2YyZmU3Y2NjYmM3ZTU3MjZmZGY0OTRkYTZlMjg0MzNiZWY4MjllYjBiZSJ9LHsicGF0aCI6IlNPVVJDRS1OT1RJQ0VTLnR4dCIsImJ5dGVzIjo5MDE3NzcxLCJzaGEyNTYiOiI4OTk3NmJlY2MyNTY1NDBlNmQyZTgwN2I0N2E0ZTA1ZTg4OTk4MmMwNjIyZmMwNDQxM2E3YmY3ZTc3YTc3ZTM3In0seyJwYXRoIjoiVEhJUkQtUEFSVFktTk9USUNFUy50eHQiLCJieXRlcyI6MjQ5MTQ5Niwic2hhMjU2IjoiMTE2NDQ3ZWZmNzc4OTM1MTE3OTdlZjQ3NjAxMWRlYzgwMDIyNGY5MWUzMzQyZTNkNjU3MDcwODcxMmI0Yjc3MiJ9LHsicGF0aCI6ImxpY2Vuc2VzL25wbS1jbWQtc2hpbS50eHQiLCJieXRlcyI6ODEzLCJzaGEyNTYiOiJhZmZmZGYxMjA4MTEyMjc0OWM0YjcxYzViMWMxMWJjNjU5ZDc5MjQyZDE5ZTE4ZjVlOGRiYWIwNGE0NWUzNmJiIn0seyJwYXRoIjoibnBtLWFkYXB0ZXItZmlsZXMuanNvbiIsImJ5dGVzIjoxNjY2LCJzaGEyNTYiOiIzMDQ0Mjc4N2ViNGJlYWQxMTgyY2RlMGJiYmY3OWY1NTM5NGQ0OWNmYzcxMzViOGI1OGJkOTRhNTBiZTFkY2I1In1dfSx7InRhcmdldCI6ImJ1bi13aW5kb3dzLXg2NCIsImZpbGVuYW1lIjoibm90aWZhaS0xNC4yLjAtYmV0YS4xLXdpbmRvd3MteDY0LnppcCIsImJ5dGVzIjo0MjEzMTA5OCwic2hhMjU2IjoiYjQwZWUwZjA1NzdjNDgwYzc0ZTViOWYyZDE0ZjE2OGYyM2ZiNWRmYWYxMDQwYWViNjg1Nzc5NGVhOTRmYTA5NSIsInJ1bnRpbWVfc2hhMjU2IjoiM2RhZTQ4NjIzODA2ZWU3ODQ2M2IzMWZlMTM5MTU3ZWIwZDY2ZTA2NjlkMDVlZmJlN2NiNGMwNzgwMGZiMTIyZiIsImxhdW5jaGVyX3NoYTI1NiI6IjdmOTgwMmJlZGQzMDA2ZmY0Zjg3OGIzZDQ4OGI0MzUyNmM5OWM5MWE2NTdlYzI0ZjU5Yzc3MDE5ZjVlMzBiZjAiLCJtYXRlcmlhbHMiOlt7InBhdGgiOiJCVU4tTElDRU5TRS5tZCIsImJ5dGVzIjo1NjEzLCJzaGEyNTYiOiJiOWNhZjUyNzI4NjkxYjQwNTdlMzcxMjMyYzIyMWExMzI4ODMxOThiZTJmM2QyZGRmOTJjOTA0MDRjOTg0YjFhIn0seyJwYXRoIjoiQ09SUkVTUE9ORElORy1TT1VSQ0VTLmpzb24iLCJieXRlcyI6MjAyMCwic2hhMjU2IjoiZmE0YzM0NDgwMTE1NDg3MmQ2MTc5ZWUyZWY0OTkyM2RjOWY4OTA5ZWYwMWU1M2I4NmU4ZjU3YzYyNTgyMzI3NCJ9LHsicGF0aCI6IkxJQ0VOU0UudHh0IiwiYnl0ZXMiOjExMzQ2LCJzaGEyNTYiOiI5NDRjMTNmZjBmZTc5NWUyOTFmZDFjNDk0NzNmOThkNGZkZjFmNzQ2MzhlMDFmODgyNzY5Y2Q0Y2FlNzhiNzNkIn0seyJwYXRoIjoiTk9USUNFLVBST1ZFTkFOQ0UuanNvbiIsImJ5dGVzIjo0NTAyNjQsInNoYTI1NiI6IjUzNGRkNTlmZDRjMTVkZDEzODJlODI3ZjBiODVjMTlmN2M2OThlMjM1ZjkyOTllYWEyMDJkYjU0MDA4MzQyODgifSx7InBhdGgiOiJOT1RJQ0UudHh0IiwiYnl0ZXMiOjYyNiwic2hhMjU2IjoiMWRmYmY0NDk4ZGMwMjZiMjA1OWMwYjBiNWViNWZhMWQ4MmFlMzM0ZTU4ZmYxMWU3YzI5NzMzMzI3ZjI1YzRlYiJ9LHsicGF0aCI6IlJFQlVJTERJTkcubWQiLCJieXRlcyI6Mzg0Miwic2hhMjU2IjoiY2U2MDViNWZkYjAzMTkzMzlmOWY4M2YyZmU3Y2NjYmM3ZTU3MjZmZGY0OTRkYTZlMjg0MzNiZWY4MjllYjBiZSJ9LHsicGF0aCI6IlNPVVJDRS1OT1RJQ0VTLnR4dCIsImJ5dGVzIjo5MDE3NzcxLCJzaGEyNTYiOiI4OTk3NmJlY2MyNTY1NDBlNmQyZTgwN2I0N2E0ZTA1ZTg4OTk4MmMwNjIyZmMwNDQxM2E3YmY3ZTc3YTc3ZTM3In0seyJwYXRoIjoiVEhJUkQtUEFSVFktTk9USUNFUy50eHQiLCJieXRlcyI6MjQ5MTQ5Niwic2hhMjU2IjoiMTE2NDQ3ZWZmNzc4OTM1MTE3OTdlZjQ3NjAxMWRlYzgwMDIyNGY5MWUzMzQyZTNkNjU3MDcwODcxMmI0Yjc3MiJ9LHsicGF0aCI6ImxpY2Vuc2VzL25wbS1jbWQtc2hpbS50eHQiLCJieXRlcyI6ODEzLCJzaGEyNTYiOiJhZmZmZGYxMjA4MTEyMjc0OWM0YjcxYzViMWMxMWJjNjU5ZDc5MjQyZDE5ZTE4ZjVlOGRiYWIwNGE0NWUzNmJiIn0seyJwYXRoIjoibnBtLWFkYXB0ZXItZmlsZXMuanNvbiIsImJ5dGVzIjoxNjY2LCJzaGEyNTYiOiIzMDQ0Mjc4N2ViNGJlYWQxMTgyY2RlMGJiYmY3OWY1NTM5NGQ0OWNmYzcxMzViOGI1OGJkOTRhNTBiZTFkY2I1In1dfV19","signature":"hs2nOAWQbWN+L+duzbdKEHJ7cOhULzbzsoixUqi40rtWB4GVu7tmO7fe1DOPo1M3V+foRZEWa7jYN637mIkkCQ=="}
|
|
1
|
+
{"key_id":"notifai-release-2026-10","payload":"eyJzY2hlbWEiOjIsInZlcnNpb24iOiIxNC4yLjAtYmV0YS4yIiwic291cmNlX3JldmlzaW9uIjoiMDQ4YzIxMjlkZmYyNmJjNDcyYjQ1ODA0NjY2MDRlYjg3ODJiNmJiNyIsImxvY2FsX2NvbnRpbnVpdHkiOnsiY29udHJhY3QiOiJub3RpZmFpLXNlc3Npb24tc3RhdGUtdjIiLCJjb21wYXRpYmxlIjp7Im5vdGlmYWktc2Vzc2lvbi1zdGF0ZS12MSI6WyJidW4tZGFyd2luLWFybTY0IiwiYnVuLWRhcndpbi14NjQiLCJidW4td2luZG93cy1hcm02NCIsImJ1bi13aW5kb3dzLXg2NCJdfX0sInN0b3JlX3NjaGVtYSI6MiwibGF1bmNoZXJfc2NoZW1hIjoxLCJhcnRpZmFjdHMiOlt7InRhcmdldCI6ImJ1bi1kYXJ3aW4tYXJtNjQiLCJmaWxlbmFtZSI6Im5vdGlmYWktMTQuMi4wLWJldGEuMi1kYXJ3aW4tYXJtNjQudGFyLmd6IiwiYnl0ZXMiOjI4MDc0MTI2LCJzaGEyNTYiOiJkN2FlNTUwYzJjZjM2N2U1ZGNjMTg2MjhjMTFkMDY4MzIwNzVlMTMxOTc0ZDUzNjA3NjYyZDk5YzAxZWRmYjcxIiwicnVudGltZV9zaGEyNTYiOiI2NGNkNjFkYzI5N2Y2MGZhMzNkMzBhZmI3Yzc3MzFjMjRlYzg5ZjMyNjU1NDA1N2RjNmY5ZTgxNjliZWM0OWU4IiwibGF1bmNoZXJfc2hhMjU2IjoiMjAwMDU0N2Y1NjViYWQ5MDgwZWEyZWNiZWRjZjMxZTBmZDA1MzZkYWYxZTI4YTk3ZDQ5ZjBmZTBkMGRiNmNmNCIsIm1hdGVyaWFscyI6W3sicGF0aCI6IkJVTi1MSUNFTlNFLm1kIiwiYnl0ZXMiOjU2MTMsInNoYTI1NiI6ImI5Y2FmNTI3Mjg2OTFiNDA1N2UzNzEyMzJjMjIxYTEzMjg4MzE5OGJlMmYzZDJkZGY5MmM5MDQwNGM5ODRiMWEifSx7InBhdGgiOiJDT1JSRVNQT05ESU5HLVNPVVJDRVMuanNvbiIsImJ5dGVzIjoyMDIwLCJzaGEyNTYiOiJmYTRjMzQ0ODAxMTU0ODcyZDYxNzllZTJlZjQ5OTIzZGM5Zjg5MDllZjAxZTUzYjg2ZThmNTdjNjI1ODIzMjc0In0seyJwYXRoIjoiTElDRU5TRS50eHQiLCJieXRlcyI6MTEzNDYsInNoYTI1NiI6Ijk0NGMxM2ZmMGZlNzk1ZTI5MWZkMWM0OTQ3M2Y5OGQ0ZmRmMWY3NDYzOGUwMWY4ODI3NjljZDRjYWU3OGI3M2QifSx7InBhdGgiOiJOT1RJQ0UtUFJPVkVOQU5DRS5qc29uIiwiYnl0ZXMiOjQ1MDI2NCwic2hhMjU2IjoiNTM0ZGQ1OWZkNGMxNWRkMTM4MmU4MjdmMGI4NWMxOWY3YzY5OGUyMzVmOTI5OWVhYTIwMmRiNTQwMDgzNDI4OCJ9LHsicGF0aCI6Ik5PVElDRS50eHQiLCJieXRlcyI6NjI2LCJzaGEyNTYiOiIxZGZiZjQ0OThkYzAyNmIyMDU5YzBiMGI1ZWI1ZmExZDgyYWUzMzRlNThmZjExZTdjMjk3MzMzMjdmMjVjNGViIn0seyJwYXRoIjoiUkVCVUlMRElORy5tZCIsImJ5dGVzIjozODQyLCJzaGEyNTYiOiJjZTYwNWI1ZmRiMDMxOTMzOWY5ZjgzZjJmZTdjY2NiYzdlNTcyNmZkZjQ5NGRhNmUyODQzM2JlZjgyOWViMGJlIn0seyJwYXRoIjoiU09VUkNFLU5PVElDRVMudHh0IiwiYnl0ZXMiOjkwMTc3NzEsInNoYTI1NiI6Ijg5OTc2YmVjYzI1NjU0MGU2ZDJlODA3YjQ3YTRlMDVlODg5OTgyYzA2MjJmYzA0NDEzYTdiZjdlNzdhNzdlMzcifSx7InBhdGgiOiJUSElSRC1QQVJUWS1OT1RJQ0VTLnR4dCIsImJ5dGVzIjoyNDkxNDk2LCJzaGEyNTYiOiIxMTY0NDdlZmY3Nzg5MzUxMTc5N2VmNDc2MDExZGVjODAwMjI0ZjkxZTMzNDJlM2Q2NTcwNzA4NzEyYjRiNzcyIn0seyJwYXRoIjoibGljZW5zZXMvbnBtLWNtZC1zaGltLnR4dCIsImJ5dGVzIjo4MTMsInNoYTI1NiI6ImFmZmZkZjEyMDgxMTIyNzQ5YzRiNzFjNWIxYzExYmM2NTlkNzkyNDJkMTllMThmNWU4ZGJhYjA0YTQ1ZTM2YmIifSx7InBhdGgiOiJucG0tYWRhcHRlci1maWxlcy5qc29uIiwiYnl0ZXMiOjE2NjYsInNoYTI1NiI6IjBmOGFkYjIxODYzYTMzMDc1MTkxYWI2YWM3YWYyYzYzNWZmYTU2NDg4OGVhMzg5MDljN2U0NzcxM2NjYzcxZTkifV19LHsidGFyZ2V0IjoiYnVuLWRhcndpbi14NjQiLCJmaWxlbmFtZSI6Im5vdGlmYWktMTQuMi4wLWJldGEuMi1kYXJ3aW4teDY0LnRhci5neiIsImJ5dGVzIjozMDMxOTIxMSwic2hhMjU2IjoiYTc1M2RhZTQxMzA0ZTFmODYwODNlNzU4MjljNGM0NTk0OTQ3ZDE2NmM4NWJlMDNhNzY5NWY2MWI2NmJhMDI5ZiIsInJ1bnRpbWVfc2hhMjU2IjoiYWQ0NDE1NDFhMDllODAzZDkzMWE0YjM5N2E5OGU5NmZkNzA4OGNmMTY1YzBkZTYwNGQxYTJiOTExZWI4ZGU5NSIsImxhdW5jaGVyX3NoYTI1NiI6IjFjY2IwNTNjMTllNjk5NzM5Zjk5MGYyYmExMGI2YmQ1YWM4ZDJlZWMzZjExMmY4MGJlZDdmZGE1OWNhOTE1MzAiLCJtYXRlcmlhbHMiOlt7InBhdGgiOiJCVU4tTElDRU5TRS5tZCIsImJ5dGVzIjo1NjEzLCJzaGEyNTYiOiJiOWNhZjUyNzI4NjkxYjQwNTdlMzcxMjMyYzIyMWExMzI4ODMxOThiZTJmM2QyZGRmOTJjOTA0MDRjOTg0YjFhIn0seyJwYXRoIjoiQ09SUkVTUE9ORElORy1TT1VSQ0VTLmpzb24iLCJieXRlcyI6MjAyMCwic2hhMjU2IjoiZmE0YzM0NDgwMTE1NDg3MmQ2MTc5ZWUyZWY0OTkyM2RjOWY4OTA5ZWYwMWU1M2I4NmU4ZjU3YzYyNTgyMzI3NCJ9LHsicGF0aCI6IkxJQ0VOU0UudHh0IiwiYnl0ZXMiOjExMzQ2LCJzaGEyNTYiOiI5NDRjMTNmZjBmZTc5NWUyOTFmZDFjNDk0NzNmOThkNGZkZjFmNzQ2MzhlMDFmODgyNzY5Y2Q0Y2FlNzhiNzNkIn0seyJwYXRoIjoiTk9USUNFLVBST1ZFTkFOQ0UuanNvbiIsImJ5dGVzIjo0NTAyNjQsInNoYTI1NiI6IjUzNGRkNTlmZDRjMTVkZDEzODJlODI3ZjBiODVjMTlmN2M2OThlMjM1ZjkyOTllYWEyMDJkYjU0MDA4MzQyODgifSx7InBhdGgiOiJOT1RJQ0UudHh0IiwiYnl0ZXMiOjYyNiwic2hhMjU2IjoiMWRmYmY0NDk4ZGMwMjZiMjA1OWMwYjBiNWViNWZhMWQ4MmFlMzM0ZTU4ZmYxMWU3YzI5NzMzMzI3ZjI1YzRlYiJ9LHsicGF0aCI6IlJFQlVJTERJTkcubWQiLCJieXRlcyI6Mzg0Miwic2hhMjU2IjoiY2U2MDViNWZkYjAzMTkzMzlmOWY4M2YyZmU3Y2NjYmM3ZTU3MjZmZGY0OTRkYTZlMjg0MzNiZWY4MjllYjBiZSJ9LHsicGF0aCI6IlNPVVJDRS1OT1RJQ0VTLnR4dCIsImJ5dGVzIjo5MDE3NzcxLCJzaGEyNTYiOiI4OTk3NmJlY2MyNTY1NDBlNmQyZTgwN2I0N2E0ZTA1ZTg4OTk4MmMwNjIyZmMwNDQxM2E3YmY3ZTc3YTc3ZTM3In0seyJwYXRoIjoiVEhJUkQtUEFSVFktTk9USUNFUy50eHQiLCJieXRlcyI6MjQ5MTQ5Niwic2hhMjU2IjoiMTE2NDQ3ZWZmNzc4OTM1MTE3OTdlZjQ3NjAxMWRlYzgwMDIyNGY5MWUzMzQyZTNkNjU3MDcwODcxMmI0Yjc3MiJ9LHsicGF0aCI6ImxpY2Vuc2VzL25wbS1jbWQtc2hpbS50eHQiLCJieXRlcyI6ODEzLCJzaGEyNTYiOiJhZmZmZGYxMjA4MTEyMjc0OWM0YjcxYzViMWMxMWJjNjU5ZDc5MjQyZDE5ZTE4ZjVlOGRiYWIwNGE0NWUzNmJiIn0seyJwYXRoIjoibnBtLWFkYXB0ZXItZmlsZXMuanNvbiIsImJ5dGVzIjoxNjY2LCJzaGEyNTYiOiIwZjhhZGIyMTg2M2EzMzA3NTE5MWFiNmFjN2FmMmM2MzVmZmE1NjQ4ODhlYTM4OTA5YzdlNDc3MTNjY2M3MWU5In1dfSx7InRhcmdldCI6ImJ1bi1saW51eC1hcm02NCIsImZpbGVuYW1lIjoibm90aWZhaS0xNC4yLjAtYmV0YS4yLWxpbnV4LWFybTY0LnRhci5neiIsImJ5dGVzIjozOTYzNTc4Miwic2hhMjU2IjoiYmU1OTE3MWQ3ZmRjNDE4MDJmYWJhYmVmNzMzMmJhMGIwNjlkZDkyZjlhZTQxZGUwM2U4YjM0MzE5MDcxZDQ2MCIsInJ1bnRpbWVfc2hhMjU2IjoiMzllOGQ3NWFjZWNhZjkwYTFhMjZmYTE1NjcyMjYwMDdjMzczMDA1NTQ0NWQwYTQyODgyZGJhYzFkMjM5YTc0ZiIsImxhdW5jaGVyX3NoYTI1NiI6ImMyYWI1ZjgwOTBjMTNmMDcwYjg3Yzg2NThiODAwM2MyYjg3OGMwYThjNWNjZGJmNWI5NDJjMTU3OTFlOGFkNzYiLCJtYXRlcmlhbHMiOlt7InBhdGgiOiJCVU4tTElDRU5TRS5tZCIsImJ5dGVzIjo1NjEzLCJzaGEyNTYiOiJiOWNhZjUyNzI4NjkxYjQwNTdlMzcxMjMyYzIyMWExMzI4ODMxOThiZTJmM2QyZGRmOTJjOTA0MDRjOTg0YjFhIn0seyJwYXRoIjoiQ09SUkVTUE9ORElORy1TT1VSQ0VTLmpzb24iLCJieXRlcyI6MjAyMCwic2hhMjU2IjoiZmE0YzM0NDgwMTE1NDg3MmQ2MTc5ZWUyZWY0OTkyM2RjOWY4OTA5ZWYwMWU1M2I4NmU4ZjU3YzYyNTgyMzI3NCJ9LHsicGF0aCI6IkxJQ0VOU0UudHh0IiwiYnl0ZXMiOjExMzQ2LCJzaGEyNTYiOiI5NDRjMTNmZjBmZTc5NWUyOTFmZDFjNDk0NzNmOThkNGZkZjFmNzQ2MzhlMDFmODgyNzY5Y2Q0Y2FlNzhiNzNkIn0seyJwYXRoIjoiTk9USUNFLVBST1ZFTkFOQ0UuanNvbiIsImJ5dGVzIjo0NTAyNjQsInNoYTI1NiI6IjUzNGRkNTlmZDRjMTVkZDEzODJlODI3ZjBiODVjMTlmN2M2OThlMjM1ZjkyOTllYWEyMDJkYjU0MDA4MzQyODgifSx7InBhdGgiOiJOT1RJQ0UudHh0IiwiYnl0ZXMiOjYyNiwic2hhMjU2IjoiMWRmYmY0NDk4ZGMwMjZiMjA1OWMwYjBiNWViNWZhMWQ4MmFlMzM0ZTU4ZmYxMWU3YzI5NzMzMzI3ZjI1YzRlYiJ9LHsicGF0aCI6IlJFQlVJTERJTkcubWQiLCJieXRlcyI6Mzg0Miwic2hhMjU2IjoiY2U2MDViNWZkYjAzMTkzMzlmOWY4M2YyZmU3Y2NjYmM3ZTU3MjZmZGY0OTRkYTZlMjg0MzNiZWY4MjllYjBiZSJ9LHsicGF0aCI6IlNPVVJDRS1OT1RJQ0VTLnR4dCIsImJ5dGVzIjo5MDE3NzcxLCJzaGEyNTYiOiI4OTk3NmJlY2MyNTY1NDBlNmQyZTgwN2I0N2E0ZTA1ZTg4OTk4MmMwNjIyZmMwNDQxM2E3YmY3ZTc3YTc3ZTM3In0seyJwYXRoIjoiVEhJUkQtUEFSVFktTk9USUNFUy50eHQiLCJieXRlcyI6MjQ5MTQ5Niwic2hhMjU2IjoiMTE2NDQ3ZWZmNzc4OTM1MTE3OTdlZjQ3NjAxMWRlYzgwMDIyNGY5MWUzMzQyZTNkNjU3MDcwODcxMmI0Yjc3MiJ9LHsicGF0aCI6ImxpY2Vuc2VzL25wbS1jbWQtc2hpbS50eHQiLCJieXRlcyI6ODEzLCJzaGEyNTYiOiJhZmZmZGYxMjA4MTEyMjc0OWM0YjcxYzViMWMxMWJjNjU5ZDc5MjQyZDE5ZTE4ZjVlOGRiYWIwNGE0NWUzNmJiIn0seyJwYXRoIjoibnBtLWFkYXB0ZXItZmlsZXMuanNvbiIsImJ5dGVzIjoxNjY2LCJzaGEyNTYiOiIwZjhhZGIyMTg2M2EzMzA3NTE5MWFiNmFjN2FmMmM2MzVmZmE1NjQ4ODhlYTM4OTA5YzdlNDc3MTNjY2M3MWU5In1dfSx7InRhcmdldCI6ImJ1bi1saW51eC14NjQiLCJmaWxlbmFtZSI6Im5vdGlmYWktMTQuMi4wLWJldGEuMi1saW51eC14NjQudGFyLmd6IiwiYnl0ZXMiOjM5MTk5NDg1LCJzaGEyNTYiOiJmYTU0MDhlYmZhOTEyN2I0ZGU3Zjk5ZDI1MDE1YWVhODVkOGYxZGRlNjJmMWI2NzVjNzYxODdhNjU5NDg4Nzg0IiwicnVudGltZV9zaGEyNTYiOiJlOTYxMDViYjlkZmJjZjc0NzRlNDAwNjQ0NzAzN2UyNjY3NGFlNDIyNmJlNmYwZjJlZTgwZGUzMzllOWExNjk4IiwibGF1bmNoZXJfc2hhMjU2IjoiODNmM2Y5NWVhNzZhMTNjYTU2YmFmM2ZjM2EwMzYyOTdjZTkwZDk1NjAzZjliNDhkMDg5ZDAzMDM3N2JhZTM5ZSIsIm1hdGVyaWFscyI6W3sicGF0aCI6IkJVTi1MSUNFTlNFLm1kIiwiYnl0ZXMiOjU2MTMsInNoYTI1NiI6ImI5Y2FmNTI3Mjg2OTFiNDA1N2UzNzEyMzJjMjIxYTEzMjg4MzE5OGJlMmYzZDJkZGY5MmM5MDQwNGM5ODRiMWEifSx7InBhdGgiOiJDT1JSRVNQT05ESU5HLVNPVVJDRVMuanNvbiIsImJ5dGVzIjoyMDIwLCJzaGEyNTYiOiJmYTRjMzQ0ODAxMTU0ODcyZDYxNzllZTJlZjQ5OTIzZGM5Zjg5MDllZjAxZTUzYjg2ZThmNTdjNjI1ODIzMjc0In0seyJwYXRoIjoiTElDRU5TRS50eHQiLCJieXRlcyI6MTEzNDYsInNoYTI1NiI6Ijk0NGMxM2ZmMGZlNzk1ZTI5MWZkMWM0OTQ3M2Y5OGQ0ZmRmMWY3NDYzOGUwMWY4ODI3NjljZDRjYWU3OGI3M2QifSx7InBhdGgiOiJOT1RJQ0UtUFJPVkVOQU5DRS5qc29uIiwiYnl0ZXMiOjQ1MDI2NCwic2hhMjU2IjoiNTM0ZGQ1OWZkNGMxNWRkMTM4MmU4MjdmMGI4NWMxOWY3YzY5OGUyMzVmOTI5OWVhYTIwMmRiNTQwMDgzNDI4OCJ9LHsicGF0aCI6Ik5PVElDRS50eHQiLCJieXRlcyI6NjI2LCJzaGEyNTYiOiIxZGZiZjQ0OThkYzAyNmIyMDU5YzBiMGI1ZWI1ZmExZDgyYWUzMzRlNThmZjExZTdjMjk3MzMzMjdmMjVjNGViIn0seyJwYXRoIjoiUkVCVUlMRElORy5tZCIsImJ5dGVzIjozODQyLCJzaGEyNTYiOiJjZTYwNWI1ZmRiMDMxOTMzOWY5ZjgzZjJmZTdjY2NiYzdlNTcyNmZkZjQ5NGRhNmUyODQzM2JlZjgyOWViMGJlIn0seyJwYXRoIjoiU09VUkNFLU5PVElDRVMudHh0IiwiYnl0ZXMiOjkwMTc3NzEsInNoYTI1NiI6Ijg5OTc2YmVjYzI1NjU0MGU2ZDJlODA3YjQ3YTRlMDVlODg5OTgyYzA2MjJmYzA0NDEzYTdiZjdlNzdhNzdlMzcifSx7InBhdGgiOiJUSElSRC1QQVJUWS1OT1RJQ0VTLnR4dCIsImJ5dGVzIjoyNDkxNDk2LCJzaGEyNTYiOiIxMTY0NDdlZmY3Nzg5MzUxMTc5N2VmNDc2MDExZGVjODAwMjI0ZjkxZTMzNDJlM2Q2NTcwNzA4NzEyYjRiNzcyIn0seyJwYXRoIjoibGljZW5zZXMvbnBtLWNtZC1zaGltLnR4dCIsImJ5dGVzIjo4MTMsInNoYTI1NiI6ImFmZmZkZjEyMDgxMTIyNzQ5YzRiNzFjNWIxYzExYmM2NTlkNzkyNDJkMTllMThmNWU4ZGJhYjA0YTQ1ZTM2YmIifSx7InBhdGgiOiJucG0tYWRhcHRlci1maWxlcy5qc29uIiwiYnl0ZXMiOjE2NjYsInNoYTI1NiI6IjBmOGFkYjIxODYzYTMzMDc1MTkxYWI2YWM3YWYyYzYzNWZmYTU2NDg4OGVhMzg5MDljN2U0NzcxM2NjYzcxZTkifV19LHsidGFyZ2V0IjoiYnVuLXdpbmRvd3MtYXJtNjQiLCJmaWxlbmFtZSI6Im5vdGlmYWktMTQuMi4wLWJldGEuMi13aW5kb3dzLWFybTY0LnppcCIsImJ5dGVzIjozODk4NDQ4Nywic2hhMjU2IjoiZGJhZWY5NzVjMzAxOTUxMjc3YjFhODQ4OWFiZTcxZDMzYWY3MWI0NDMyOGIwOGM3Zjc5ZjVmYmVhODQyYzYyNCIsInJ1bnRpbWVfc2hhMjU2IjoiMjdjZDQ5MGIwZTg3ZGJkOWQ2YmMzMzFjODE3YjNjMDhjNTQ5ODMzNjRkZjBiYjEyMzhlYzNiNjNlZmQ2M2YwZiIsImxhdW5jaGVyX3NoYTI1NiI6Ijc4YzA2MDg3YmQ2NGZjYjg5YjlhODU5NzcxMGY4MDE5OWQ3YWZiZTAyZjBhMjY5MGVhNTI5YjM4OWFhYjc1MzYiLCJtYXRlcmlhbHMiOlt7InBhdGgiOiJCVU4tTElDRU5TRS5tZCIsImJ5dGVzIjo1NjEzLCJzaGEyNTYiOiJiOWNhZjUyNzI4NjkxYjQwNTdlMzcxMjMyYzIyMWExMzI4ODMxOThiZTJmM2QyZGRmOTJjOTA0MDRjOTg0YjFhIn0seyJwYXRoIjoiQ09SUkVTUE9ORElORy1TT1VSQ0VTLmpzb24iLCJieXRlcyI6MjAyMCwic2hhMjU2IjoiZmE0YzM0NDgwMTE1NDg3MmQ2MTc5ZWUyZWY0OTkyM2RjOWY4OTA5ZWYwMWU1M2I4NmU4ZjU3YzYyNTgyMzI3NCJ9LHsicGF0aCI6IkxJQ0VOU0UudHh0IiwiYnl0ZXMiOjExMzQ2LCJzaGEyNTYiOiI5NDRjMTNmZjBmZTc5NWUyOTFmZDFjNDk0NzNmOThkNGZkZjFmNzQ2MzhlMDFmODgyNzY5Y2Q0Y2FlNzhiNzNkIn0seyJwYXRoIjoiTk9USUNFLVBST1ZFTkFOQ0UuanNvbiIsImJ5dGVzIjo0NTAyNjQsInNoYTI1NiI6IjUzNGRkNTlmZDRjMTVkZDEzODJlODI3ZjBiODVjMTlmN2M2OThlMjM1ZjkyOTllYWEyMDJkYjU0MDA4MzQyODgifSx7InBhdGgiOiJOT1RJQ0UudHh0IiwiYnl0ZXMiOjYyNiwic2hhMjU2IjoiMWRmYmY0NDk4ZGMwMjZiMjA1OWMwYjBiNWViNWZhMWQ4MmFlMzM0ZTU4ZmYxMWU3YzI5NzMzMzI3ZjI1YzRlYiJ9LHsicGF0aCI6IlJFQlVJTERJTkcubWQiLCJieXRlcyI6Mzg0Miwic2hhMjU2IjoiY2U2MDViNWZkYjAzMTkzMzlmOWY4M2YyZmU3Y2NjYmM3ZTU3MjZmZGY0OTRkYTZlMjg0MzNiZWY4MjllYjBiZSJ9LHsicGF0aCI6IlNPVVJDRS1OT1RJQ0VTLnR4dCIsImJ5dGVzIjo5MDE3NzcxLCJzaGEyNTYiOiI4OTk3NmJlY2MyNTY1NDBlNmQyZTgwN2I0N2E0ZTA1ZTg4OTk4MmMwNjIyZmMwNDQxM2E3YmY3ZTc3YTc3ZTM3In0seyJwYXRoIjoiVEhJUkQtUEFSVFktTk9USUNFUy50eHQiLCJieXRlcyI6MjQ5MTQ5Niwic2hhMjU2IjoiMTE2NDQ3ZWZmNzc4OTM1MTE3OTdlZjQ3NjAxMWRlYzgwMDIyNGY5MWUzMzQyZTNkNjU3MDcwODcxMmI0Yjc3MiJ9LHsicGF0aCI6ImxpY2Vuc2VzL25wbS1jbWQtc2hpbS50eHQiLCJieXRlcyI6ODEzLCJzaGEyNTYiOiJhZmZmZGYxMjA4MTEyMjc0OWM0YjcxYzViMWMxMWJjNjU5ZDc5MjQyZDE5ZTE4ZjVlOGRiYWIwNGE0NWUzNmJiIn0seyJwYXRoIjoibnBtLWFkYXB0ZXItZmlsZXMuanNvbiIsImJ5dGVzIjoxNjY2LCJzaGEyNTYiOiIwZjhhZGIyMTg2M2EzMzA3NTE5MWFiNmFjN2FmMmM2MzVmZmE1NjQ4ODhlYTM4OTA5YzdlNDc3MTNjY2M3MWU5In1dfSx7InRhcmdldCI6ImJ1bi13aW5kb3dzLXg2NCIsImZpbGVuYW1lIjoibm90aWZhaS0xNC4yLjAtYmV0YS4yLXdpbmRvd3MteDY0LnppcCIsImJ5dGVzIjo0MjEzMTE1NSwic2hhMjU2IjoiNmQyYThmMGYwZTRhODVlMjA3MDY3ZjQxOGJkMTE4NTgxOTA1NDk1ZTdkNzc5MTY2NDk4YjJlODUyYTIwY2JlNyIsInJ1bnRpbWVfc2hhMjU2IjoiMWJiZWQwNWUxNzYyZTdiYTRjNjg0YTJjZjc1YTc1MzYwZWI4YTJjMTA3ZDFmOWU1MjBjMTAwYTczZDJhYjJkMiIsImxhdW5jaGVyX3NoYTI1NiI6ImEyNWI3OGJmOTdkZGU1MGRmNjViZjkyNTNkMjI5OGU3MjcxNjI4N2RmYWNkODdjOTM4OWE2MjVhYzc2Yjk3MTkiLCJtYXRlcmlhbHMiOlt7InBhdGgiOiJCVU4tTElDRU5TRS5tZCIsImJ5dGVzIjo1NjEzLCJzaGEyNTYiOiJiOWNhZjUyNzI4NjkxYjQwNTdlMzcxMjMyYzIyMWExMzI4ODMxOThiZTJmM2QyZGRmOTJjOTA0MDRjOTg0YjFhIn0seyJwYXRoIjoiQ09SUkVTUE9ORElORy1TT1VSQ0VTLmpzb24iLCJieXRlcyI6MjAyMCwic2hhMjU2IjoiZmE0YzM0NDgwMTE1NDg3MmQ2MTc5ZWUyZWY0OTkyM2RjOWY4OTA5ZWYwMWU1M2I4NmU4ZjU3YzYyNTgyMzI3NCJ9LHsicGF0aCI6IkxJQ0VOU0UudHh0IiwiYnl0ZXMiOjExMzQ2LCJzaGEyNTYiOiI5NDRjMTNmZjBmZTc5NWUyOTFmZDFjNDk0NzNmOThkNGZkZjFmNzQ2MzhlMDFmODgyNzY5Y2Q0Y2FlNzhiNzNkIn0seyJwYXRoIjoiTk9USUNFLVBST1ZFTkFOQ0UuanNvbiIsImJ5dGVzIjo0NTAyNjQsInNoYTI1NiI6IjUzNGRkNTlmZDRjMTVkZDEzODJlODI3ZjBiODVjMTlmN2M2OThlMjM1ZjkyOTllYWEyMDJkYjU0MDA4MzQyODgifSx7InBhdGgiOiJOT1RJQ0UudHh0IiwiYnl0ZXMiOjYyNiwic2hhMjU2IjoiMWRmYmY0NDk4ZGMwMjZiMjA1OWMwYjBiNWViNWZhMWQ4MmFlMzM0ZTU4ZmYxMWU3YzI5NzMzMzI3ZjI1YzRlYiJ9LHsicGF0aCI6IlJFQlVJTERJTkcubWQiLCJieXRlcyI6Mzg0Miwic2hhMjU2IjoiY2U2MDViNWZkYjAzMTkzMzlmOWY4M2YyZmU3Y2NjYmM3ZTU3MjZmZGY0OTRkYTZlMjg0MzNiZWY4MjllYjBiZSJ9LHsicGF0aCI6IlNPVVJDRS1OT1RJQ0VTLnR4dCIsImJ5dGVzIjo5MDE3NzcxLCJzaGEyNTYiOiI4OTk3NmJlY2MyNTY1NDBlNmQyZTgwN2I0N2E0ZTA1ZTg4OTk4MmMwNjIyZmMwNDQxM2E3YmY3ZTc3YTc3ZTM3In0seyJwYXRoIjoiVEhJUkQtUEFSVFktTk9USUNFUy50eHQiLCJieXRlcyI6MjQ5MTQ5Niwic2hhMjU2IjoiMTE2NDQ3ZWZmNzc4OTM1MTE3OTdlZjQ3NjAxMWRlYzgwMDIyNGY5MWUzMzQyZTNkNjU3MDcwODcxMmI0Yjc3MiJ9LHsicGF0aCI6ImxpY2Vuc2VzL25wbS1jbWQtc2hpbS50eHQiLCJieXRlcyI6ODEzLCJzaGEyNTYiOiJhZmZmZGYxMjA4MTEyMjc0OWM0YjcxYzViMWMxMWJjNjU5ZDc5MjQyZDE5ZTE4ZjVlOGRiYWIwNGE0NWUzNmJiIn0seyJwYXRoIjoibnBtLWFkYXB0ZXItZmlsZXMuanNvbiIsImJ5dGVzIjoxNjY2LCJzaGEyNTYiOiIwZjhhZGIyMTg2M2EzMzA3NTE5MWFiNmFjN2FmMmM2MzVmZmE1NjQ4ODhlYTM4OTA5YzdlNDc3MTNjY2M3MWU5In1dfV19","signature":"k6ef3UHUydDrGfgdqSepkoe0hcj+pb2EkJim325ec/Zy2EZcjfaEG7/hVoFa2iGujP1VlIjf2+Ox+qJhmrm4CA=="}
|
package/npm-adapter-files.json
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema": 1,
|
|
3
3
|
"package": "@raidiant/notifai",
|
|
4
|
-
"adapter_version": "14.2.0-beta.
|
|
4
|
+
"adapter_version": "14.2.0-beta.2",
|
|
5
5
|
"native": {
|
|
6
|
-
"version": "14.2.0-beta.
|
|
7
|
-
"source_revision": "
|
|
8
|
-
"inventory_url": "https://github.com/Raidiant-io/notifai/releases/download/v14.2.0-beta.
|
|
6
|
+
"version": "14.2.0-beta.2",
|
|
7
|
+
"source_revision": "048c2129dff26bc472b4580466604eb8782b6bb7",
|
|
8
|
+
"inventory_url": "https://github.com/Raidiant-io/notifai/releases/download/v14.2.0-beta.2/inventory.json"
|
|
9
9
|
},
|
|
10
10
|
"files": [
|
|
11
11
|
{
|
|
12
12
|
"path": "CHANGELOG.md",
|
|
13
|
-
"bytes":
|
|
14
|
-
"sha256": "
|
|
13
|
+
"bytes": 89170,
|
|
14
|
+
"sha256": "03a6728661346b1bc3b0137b7f63e56fd93bc6e127d9aa77e1cbd7ed47c85a25"
|
|
15
15
|
},
|
|
16
16
|
{
|
|
17
17
|
"path": "LICENSE",
|
|
@@ -35,8 +35,8 @@
|
|
|
35
35
|
},
|
|
36
36
|
{
|
|
37
37
|
"path": "bin/notifai.mjs",
|
|
38
|
-
"bytes":
|
|
39
|
-
"sha256": "
|
|
38
|
+
"bytes": 527528,
|
|
39
|
+
"sha256": "0153079e239cd714d9b9b83a1b4961475a03fefd40e87c50cb35e9b63ecd6b8d"
|
|
40
40
|
},
|
|
41
41
|
{
|
|
42
42
|
"path": "data/install.ps1",
|
|
@@ -46,12 +46,12 @@
|
|
|
46
46
|
{
|
|
47
47
|
"path": "data/release.json",
|
|
48
48
|
"bytes": 89,
|
|
49
|
-
"sha256": "
|
|
49
|
+
"sha256": "936eac5fa2d264990b45e6f33e9f275195119a9b527bc50aac933aa46a294856"
|
|
50
50
|
},
|
|
51
51
|
{
|
|
52
52
|
"path": "package.json",
|
|
53
53
|
"bytes": 1315,
|
|
54
|
-
"sha256": "
|
|
54
|
+
"sha256": "ab87f826468fc07f45a6635f3b878e50b367941dc93fd1da7fe9d7c3ea8abd83"
|
|
55
55
|
}
|
|
56
56
|
]
|
|
57
57
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@raidiant/notifai",
|
|
3
|
-
"version": "14.2.0-beta.
|
|
3
|
+
"version": "14.2.0-beta.2",
|
|
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": [
|