swarm-orchestrator 14.0.0 → 14.0.1
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 +23 -0
- package/README.md +2 -2
- package/dist/eval/campaign-run.js +9 -2
- package/dist/eval/campaign-run.js.map +1 -1
- package/dist/eval/oracle-filter.js +31 -0
- package/dist/eval/oracle-filter.js.map +1 -0
- package/dist/eval/test-case-split.js +89 -0
- package/dist/eval/test-case-split.js.map +1 -0
- package/dist/gates/independent-verification.js +53 -16
- package/dist/gates/independent-verification.js.map +1 -1
- package/docs/README.md +3 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,29 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 14.0.1 - 2026-09-07
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
|
|
9
|
+
- **`swarm ci` no longer charges a patch for a failure the base already had.** Dependencies are
|
|
10
|
+
installed with `--ignore-scripts`, because install scripts run whatever the registry serves, so
|
|
11
|
+
a project that builds on `prepare` was verified without its build output and the tests that
|
|
12
|
+
import it failed. koa routes `import 'koa'` to `./dist/koa.mjs`: 437 passed and 2 failed without
|
|
13
|
+
the build, 439 and 0 with it, and the two were reported as a regression the patch caused. A
|
|
14
|
+
failing check is now re-run with the patch reverted on the same checkout, and one that fails
|
|
15
|
+
both ways is recorded as inherited rather than as a regression, with the build-on-install cause
|
|
16
|
+
named in the advice. A clean run pays nothing for this, since the base is measured only to
|
|
17
|
+
explain a failure.
|
|
18
|
+
|
|
19
|
+
### Added
|
|
20
|
+
|
|
21
|
+
- **Tasks with two oracles, mined from merged pull requests.** `scripts/mine-pr-tasks.mjs`,
|
|
22
|
+
`scripts/check-pr-task-viability.mjs` and `scripts/pr-task-pass.mjs`: a merged pull request
|
|
23
|
+
supplies a base commit, a task, and a specification its own maintainers wrote, whose cases are
|
|
24
|
+
dealt alternately into a sealed oracle and a held-back one. A candidate is kept only where its
|
|
25
|
+
tests provably fail on the base source and pass on the merged tree, so nothing is labelled by
|
|
26
|
+
hand. False-green rate now 0 of 15 across two corpora, 95% CI [0.0, 20.4].
|
|
27
|
+
|
|
5
28
|
## 14.0.0 - 2026-09-06
|
|
6
29
|
|
|
7
30
|
### Breaking
|
package/README.md
CHANGED
|
@@ -48,11 +48,11 @@ a workspace it had never seen, recorded in a real terminal:
|
|
|
48
48
|
|
|
49
49
|
npm install -g swarm-orchestrator
|
|
50
50
|
|
|
51
|
-
That is **14.0.
|
|
51
|
+
That is **14.0.1**, and it leaves `swarm` on your path.
|
|
52
52
|
|
|
53
53
|
Installing from a tag works too, but only into a project rather than globally:
|
|
54
54
|
|
|
55
|
-
npm install github:moonrunnerkc/swarm-orchestrator#v14.0.
|
|
55
|
+
npm install github:moonrunnerkc/swarm-orchestrator#v14.0.1
|
|
56
56
|
|
|
57
57
|
`dist/` is not committed, so a git ref builds itself on install and needs this package's
|
|
58
58
|
devDependencies to do it. npm does not install those when a git ref is installed with `-g`: it
|
|
@@ -241,10 +241,17 @@ export function harnessClaimsTaskDone(input) {
|
|
|
241
241
|
* not to look, passes the first and fails the second.
|
|
242
242
|
*/
|
|
243
243
|
export function classifyAgainstHeldBackOracle(input) {
|
|
244
|
+
// The held-back oracle answers one question, whether the feature was added. The tool answers
|
|
245
|
+
// two, and refusing a patch that added the feature and broke the suite is the tool being right
|
|
246
|
+
// about the second. Scoring that as a false red blames it for the one thing a regression check
|
|
247
|
+
// exists to do, which a mined dayjs task did on the first batch that produced one. A patch is
|
|
248
|
+
// good only where the held-back oracle accepts it and nothing broke; an unmeasured regression
|
|
249
|
+
// is not a passing one, so it does not establish the patch either.
|
|
250
|
+
const good = input.heldBackAccepted && (input.regression ?? "pass") === "pass";
|
|
244
251
|
if (input.verifiedWithFirstOracle) {
|
|
245
|
-
return
|
|
252
|
+
return good ? "true-green" : "false-green";
|
|
246
253
|
}
|
|
247
|
-
return
|
|
254
|
+
return good ? "false-red" : "true-red";
|
|
248
255
|
}
|
|
249
256
|
/**
|
|
250
257
|
* Whether a held-back oracle refused every patch the first oracle accepted, which is a defect in
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"campaign-run.js","sourceRoot":"","sources":["../../src/eval/campaign-run.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"campaign-run.js","sourceRoot":"","sources":["../../src/eval/campaign-run.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/** A title as a regex that matches it and nothing near it. */
|
|
2
|
+
function asPattern(title) {
|
|
3
|
+
return title.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
4
|
+
}
|
|
5
|
+
export function titleFilterFor(runner, titles) {
|
|
6
|
+
const pattern = titles.map(asPattern).join("|");
|
|
7
|
+
switch (runner) {
|
|
8
|
+
case "jest":
|
|
9
|
+
case "vitest":
|
|
10
|
+
return ["-t", pattern];
|
|
11
|
+
case "mocha":
|
|
12
|
+
return ["--grep", pattern];
|
|
13
|
+
case "ava":
|
|
14
|
+
return ["--match", titles.length === 1 ? (titles[0] ?? "") : `*`];
|
|
15
|
+
case "node":
|
|
16
|
+
return ["--test-name-pattern", pattern];
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* A shell command that puts the pull request's test file in place and runs one half of its cases.
|
|
21
|
+
* Shaped like the real-repository oracles so both corpora are judged by the same kind of thing.
|
|
22
|
+
*/
|
|
23
|
+
export function oracleCommand(input) {
|
|
24
|
+
const filter = titleFilterFor(input.runner, input.titles)
|
|
25
|
+
.map((one) => JSON.stringify(one))
|
|
26
|
+
.join(" ");
|
|
27
|
+
return (`mkdir -p "$(dirname ${input.destination})" && ` +
|
|
28
|
+
`cp ${JSON.stringify(input.storedTestFile)} ${input.destination} && ` +
|
|
29
|
+
`${input.runnerArgv.join(" ")} ${filter}`);
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=oracle-filter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oracle-filter.js","sourceRoot":"","sources":["../../src/eval/oracle-filter.ts"],"names":[],"mappings":"AAcA,8DAA8D;AAC9D,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAkB,EAAE,MAAyB;IAC1E,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChD,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,MAAM,CAAC;QACZ,KAAK,QAAQ;YACX,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACzB,KAAK,OAAO;YACV,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC7B,KAAK,KAAK;YACR,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACpE,KAAK,MAAM;YACT,OAAO,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,KAM7B;IACC,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;SACtD,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;SACjC,IAAI,CAAC,GAAG,CAAC,CAAC;IACb,OAAO,CACL,uBAAuB,KAAK,CAAC,WAAW,QAAQ;QAChD,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC,WAAW,MAAM;QACrE,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,EAAE,CAC1C,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
const caseStart = /(?:^|\s)(?:it|test)\s*(?:\.\s*\w+\s*)?\(\s*(['"`])((?:\\.|(?!\1)[\s\S])*?)\1/g;
|
|
2
|
+
/**
|
|
3
|
+
* Every top-level case with its whole body, found by matching delimiters rather than by a line
|
|
4
|
+
* pattern. A brace inside a string, a template literal, a comment or a nested closure does not end
|
|
5
|
+
* a case: a split that cuts one short produces halves that fail to parse, and an oracle that fails
|
|
6
|
+
* to parse refuses every patch for a reason that has nothing to do with the patch.
|
|
7
|
+
*/
|
|
8
|
+
export function testCasesIn(source) {
|
|
9
|
+
const found = [];
|
|
10
|
+
caseStart.lastIndex = 0;
|
|
11
|
+
let match = caseStart.exec(source);
|
|
12
|
+
while (match !== null) {
|
|
13
|
+
const openParen = source.indexOf("(", match.index + (match[0].startsWith("\n") ? 1 : 0));
|
|
14
|
+
const end = endOfCall(source, openParen);
|
|
15
|
+
if (end === -1)
|
|
16
|
+
break;
|
|
17
|
+
const from = match.index + (/^\s/.test(match[0]) ? 1 : 0);
|
|
18
|
+
const trailing = source.startsWith(";", end + 1) ? end + 2 : end + 1;
|
|
19
|
+
found.push({ title: match[2] ?? "", source: source.slice(from, trailing) });
|
|
20
|
+
caseStart.lastIndex = trailing;
|
|
21
|
+
match = caseStart.exec(source);
|
|
22
|
+
}
|
|
23
|
+
return found;
|
|
24
|
+
}
|
|
25
|
+
/** The index of the `)` closing the call that opens at `openParen`, or -1 where it never closes. */
|
|
26
|
+
function endOfCall(source, openParen) {
|
|
27
|
+
let depth = 0;
|
|
28
|
+
let index = openParen;
|
|
29
|
+
while (index < source.length) {
|
|
30
|
+
const character = source[index];
|
|
31
|
+
if (character === "'" || character === '"' || character === "`") {
|
|
32
|
+
index = endOfLiteral(source, index);
|
|
33
|
+
if (index === -1)
|
|
34
|
+
return -1;
|
|
35
|
+
}
|
|
36
|
+
else if (character === "/" && source[index + 1] === "/") {
|
|
37
|
+
const newline = source.indexOf("\n", index);
|
|
38
|
+
index = newline === -1 ? source.length : newline;
|
|
39
|
+
}
|
|
40
|
+
else if (character === "/" && source[index + 1] === "*") {
|
|
41
|
+
const close = source.indexOf("*/", index + 2);
|
|
42
|
+
index = close === -1 ? source.length : close + 1;
|
|
43
|
+
}
|
|
44
|
+
else if (character === "(" || character === "{" || character === "[") {
|
|
45
|
+
depth += 1;
|
|
46
|
+
}
|
|
47
|
+
else if (character === ")" || character === "}" || character === "]") {
|
|
48
|
+
depth -= 1;
|
|
49
|
+
if (depth === 0 && character === ")")
|
|
50
|
+
return index;
|
|
51
|
+
}
|
|
52
|
+
index += 1;
|
|
53
|
+
}
|
|
54
|
+
return -1;
|
|
55
|
+
}
|
|
56
|
+
/** The index of the quote closing the literal that opens at `open`, or -1 where it never closes. */
|
|
57
|
+
function endOfLiteral(source, open) {
|
|
58
|
+
const quote = source[open];
|
|
59
|
+
let index = open + 1;
|
|
60
|
+
while (index < source.length) {
|
|
61
|
+
const character = source[index];
|
|
62
|
+
if (character === "\\") {
|
|
63
|
+
index += 2;
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
if (character === quote)
|
|
67
|
+
return index;
|
|
68
|
+
index += 1;
|
|
69
|
+
}
|
|
70
|
+
return -1;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Deals the cases alternately rather than cutting the list in half. A suite is usually written
|
|
74
|
+
* easy cases first and edge cases last, so a front/back cut hands the tool the weak half and holds
|
|
75
|
+
* back the strong one, which manufactures disagreements that say more about the cut than about the
|
|
76
|
+
* patch. Alternating gives both halves the same mix.
|
|
77
|
+
*/
|
|
78
|
+
export function splitTestCases(source) {
|
|
79
|
+
const cases = testCasesIn(source);
|
|
80
|
+
if (cases.length < 2) {
|
|
81
|
+
return { splittable: false, sealed: cases, heldBack: [] };
|
|
82
|
+
}
|
|
83
|
+
return {
|
|
84
|
+
splittable: true,
|
|
85
|
+
sealed: cases.filter((_, index) => index % 2 === 0),
|
|
86
|
+
heldBack: cases.filter((_, index) => index % 2 === 1),
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=test-case-split.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-case-split.js","sourceRoot":"","sources":["../../src/eval/test-case-split.ts"],"names":[],"mappings":"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"}
|
|
@@ -82,14 +82,28 @@ export async function verifyIndependently(options) {
|
|
|
82
82
|
const install = options.installDependencies === true
|
|
83
83
|
? await installFromLockfile(checkout, options, timeoutMs)
|
|
84
84
|
: null;
|
|
85
|
-
const
|
|
85
|
+
const withPatch = await runChecks(checkout, options, timeoutMs);
|
|
86
|
+
// The base is measured only to explain a failure, so a run where everything passed pays
|
|
87
|
+
// nothing for this. Install is not repeated: the same checkout is reset to the base, so the
|
|
88
|
+
// two runs differ in the patch and in nothing else, which is the whole point of the
|
|
89
|
+
// comparison.
|
|
90
|
+
// Before attribution, which reverts the patch to measure the base: the oracle judges the
|
|
91
|
+
// patched tree or it judges nothing worth knowing.
|
|
92
|
+
const task = await judgeTask(checkout, options, timeoutMs);
|
|
93
|
+
const checks = withPatch.some((check) => check.status === "failed")
|
|
94
|
+
? await attributeFailures(withPatch, checkout, options, timeoutMs)
|
|
95
|
+
: withPatch;
|
|
86
96
|
const measuredSomething = checks.some((check) => check.status !== "not-applicable");
|
|
87
|
-
const
|
|
97
|
+
const causedByThePatch = (check) => check.status === "failed" && check.inheritedFromBase !== true;
|
|
98
|
+
const regression = checks.some(causedByThePatch)
|
|
88
99
|
? "fail"
|
|
89
100
|
: checks.some((check) => check.status === "passed")
|
|
90
101
|
? "pass"
|
|
91
|
-
: "
|
|
92
|
-
|
|
102
|
+
: checks.some((check) => check.status === "failed")
|
|
103
|
+
? // Everything that failed, the base failed identically, so this patch broke nothing and
|
|
104
|
+
// nothing here establishes that it did not either.
|
|
105
|
+
"unmeasured"
|
|
106
|
+
: "unmeasured";
|
|
93
107
|
return {
|
|
94
108
|
applied: true,
|
|
95
109
|
checks,
|
|
@@ -100,18 +114,24 @@ export async function verifyIndependently(options) {
|
|
|
100
114
|
// still passes a suite written before the feature existed.
|
|
101
115
|
verified: regression === "pass" && task === "accepted",
|
|
102
116
|
unmeasured: !measuredSomething,
|
|
103
|
-
advice:
|
|
104
|
-
? "
|
|
105
|
-
"
|
|
106
|
-
"
|
|
107
|
-
"
|
|
108
|
-
"
|
|
109
|
-
:
|
|
110
|
-
? "
|
|
111
|
-
"
|
|
112
|
-
"
|
|
113
|
-
"
|
|
114
|
-
|
|
117
|
+
advice: checks.some((check) => check.inheritedFromBase === true)
|
|
118
|
+
? "at least one check fails at the base commit too, with this patch not applied, so it " +
|
|
119
|
+
"is reported as inherited rather than as a regression. A common cause is a project " +
|
|
120
|
+
"that builds on install: dependencies are installed with --ignore-scripts, because " +
|
|
121
|
+
"install scripts run whatever the registry serves, so a `prepare` step that generates " +
|
|
122
|
+
"what the tests import does not run."
|
|
123
|
+
: !measuredSomething
|
|
124
|
+
? "nothing here measured the patch: every check stood down, which on a real project " +
|
|
125
|
+
"usually means the fresh checkout has no installed dependencies, so its test runner " +
|
|
126
|
+
"is not present. Pass --install to install them from the lockfile first, which runs " +
|
|
127
|
+
"whatever install scripts the registry serves and is therefore a decision rather " +
|
|
128
|
+
"than a default."
|
|
129
|
+
: task === "unjudged"
|
|
130
|
+
? "the repository's own suite passed, which says nothing broke. It does not say the " +
|
|
131
|
+
"task was done: a suite tests the behaviour a project already had, and a task adds " +
|
|
132
|
+
"behaviour it did not. Pass --oracle <command> with a check that says whether the " +
|
|
133
|
+
"task was done."
|
|
134
|
+
: "",
|
|
115
135
|
install,
|
|
116
136
|
checkoutPath: checkout,
|
|
117
137
|
};
|
|
@@ -120,6 +140,23 @@ export async function verifyIndependently(options) {
|
|
|
120
140
|
await rm(checkout, { recursive: true, force: true });
|
|
121
141
|
}
|
|
122
142
|
}
|
|
143
|
+
/**
|
|
144
|
+
* Runs the same checks again with the patch reverted, so a failure can be attributed. A check that
|
|
145
|
+
* fails both ways was not caused by the patch; one that only fails with the patch was.
|
|
146
|
+
*/
|
|
147
|
+
async function attributeFailures(withPatch, checkout, options, timeoutMs) {
|
|
148
|
+
const reverted = await options.commands.runVouched(["git", "-C", checkout, "checkout", "--force", "--detach", options.baseCommit], { cwd: checkout, timeoutMs });
|
|
149
|
+
if (reverted.exitCode !== 0) {
|
|
150
|
+
return withPatch;
|
|
151
|
+
}
|
|
152
|
+
const atBase = await runChecks(checkout, options, timeoutMs);
|
|
153
|
+
return withPatch.map((check) => {
|
|
154
|
+
if (check.status !== "failed")
|
|
155
|
+
return check;
|
|
156
|
+
const same = atBase.find((one) => one.id === check.id);
|
|
157
|
+
return { ...check, inheritedFromBase: same?.status === "failed" };
|
|
158
|
+
});
|
|
159
|
+
}
|
|
123
160
|
/**
|
|
124
161
|
* The trusted task-specific check, run in the fresh checkout. Nothing infers it: a task oracle
|
|
125
162
|
* is written by whoever set the task, before the run, and its absence is reported rather than
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"independent-verification.js","sourceRoot":"","sources":["../../src/gates/independent-verification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAA0B,MAAM,sBAAsB,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"independent-verification.js","sourceRoot":"","sources":["../../src/gates/independent-verification.ts"],"names":[],"mappings":"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"}
|
package/docs/README.md
CHANGED
|
@@ -9,6 +9,9 @@
|
|
|
9
9
|
| [`ratchet-inputs.md`](ratchet-inputs.md) | every input the ratchet reads, who can author it, and what was moved |
|
|
10
10
|
| [`security-coverage.md`](security-coverage.md) | the fuzzed boundaries and the instrumented coverage numbers |
|
|
11
11
|
| [`empty-turn-diagnosis.md`](empty-turn-diagnosis.md) | the empty assistant turns of August, instrumented, replayed, and located |
|
|
12
|
+
| [`beta-gates.md`](beta-gates.md) | the twelve gates this project will not call itself production-ready without, and where each stands |
|
|
13
|
+
| [`evidence/2026-09-06/second-oracle/`](evidence/2026-09-06/second-oracle) | how a false-green rate is measured, why one oracle cannot produce one, and the number |
|
|
14
|
+
| [`evidence/2026-09-06/mined-corpus/`](evidence/2026-09-06/mined-corpus) | tasks mined from merged pull requests, the filter that replaces labelling, and the weakness |
|
|
12
15
|
| [`tech-debt.md`](tech-debt.md) | what the tree carries that it would rather not, with what closing each would take |
|
|
13
16
|
| [`evidence/`](evidence) | dated runs, bundles, and reports, each verified by the verifier it carries |
|
|
14
17
|
| [`state/`](state) | the state file of each unattended pass, with what was done and what was not |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "swarm-orchestrator",
|
|
3
|
-
"version": "14.0.
|
|
3
|
+
"version": "14.0.1",
|
|
4
4
|
"description": "A coding agent whose claims about its own work resolve to machine-captured evidence: an append-only hash-chained ledger, gates that retry under a numeric ratchet, and a signed bundle carrying its own verifier that anyone can check offline.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"agentic-ai",
|