cool-workflow 0.1.83 → 0.1.84
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/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/README.md +4 -0
- package/apps/architecture-review/app.json +1 -1
- package/apps/architecture-review-fast/app.json +1 -1
- package/apps/end-to-end-golden-path/app.json +1 -1
- package/apps/pr-review-fix-ci/app.json +1 -1
- package/apps/release-cut/app.json +1 -1
- package/apps/research-synthesis/app.json +1 -1
- package/dist/capability-registry.js +262 -0
- package/dist/cli/command-surface.js +1320 -0
- package/dist/cli.js +2 -1318
- package/dist/mcp-server.js +5 -1452
- package/dist/mcp-surface.js +1441 -0
- package/dist/version.js +1 -1
- package/dist/worker-accept/acceptance.js +114 -0
- package/dist/worker-accept/blackboard-fanout.js +80 -0
- package/dist/worker-accept/blackboard-linkage.js +19 -0
- package/dist/worker-accept/context.js +2 -0
- package/dist/worker-accept/telemetry-ledger.js +116 -0
- package/dist/worker-accept/validation.js +77 -0
- package/dist/worker-accept/verifier-completion.js +73 -0
- package/dist/worker-isolation.js +19 -444
- package/docs/agent-delegation-drive.7.md +4 -0
- package/docs/cli-mcp-parity.7.md +4 -0
- package/docs/contract-migration-tooling.7.md +4 -0
- package/docs/control-plane-scheduling.7.md +4 -0
- package/docs/durable-state-and-locking.7.md +4 -0
- package/docs/evidence-adoption-reasoning-chain.7.md +4 -0
- package/docs/execution-backends.7.md +4 -0
- package/docs/multi-agent-cli-mcp-surface.7.md +4 -0
- package/docs/multi-agent-eval-replay-harness.7.md +4 -0
- package/docs/multi-agent-operator-ux.7.md +4 -0
- package/docs/node-snapshot-diff-replay.7.md +4 -0
- package/docs/observability-cost-accounting.7.md +4 -0
- package/docs/project-index.md +11 -5
- package/docs/real-execution-backends.7.md +4 -0
- package/docs/release-and-migration.7.md +4 -0
- package/docs/release-tooling.7.md +14 -1
- package/docs/run-registry-control-plane.7.md +4 -0
- package/docs/run-retention-reclamation.7.md +4 -0
- package/docs/state-explosion-management.7.md +4 -0
- package/docs/team-collaboration.7.md +4 -0
- package/docs/web-desktop-workbench.7.md +4 -0
- package/manifest/plugin.manifest.json +1 -1
- package/package.json +1 -1
- package/scripts/bump-version.js +9 -1
- package/scripts/canonical-apps.js +4 -4
- package/scripts/dogfood-release.js +1 -1
- package/scripts/golden-path.js +4 -4
- package/scripts/parity-check.js +27 -57
- package/scripts/release-flow.js +7 -6
- package/scripts/sync-project-index.js +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cool-workflow",
|
|
3
3
|
"description": "A workflow control plane and run-time you are able to check: it sends out jobs in TypeScript, makes certain of work against facts before it goes through, puts state into fixed records, orders jobs by time, runs jobs again and again, gets a group of agents to do their parts together, and talks MCP. It gives the doing of the work to outside agents — it never runs the models itself.",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.84",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "COOLWHITE LLC"
|
|
7
7
|
},
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cool-workflow",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.84",
|
|
4
4
|
"description": "A workflow control plane and run-time you are able to check: it sends out jobs in TypeScript, makes certain of work against facts before it goes through, puts state into fixed records, orders jobs by time, runs jobs again and again, gets a group of agents to do their parts together, and talks MCP. It gives the doing of the work to outside agents — it never runs the models itself.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "COOLWHITE LLC"
|
package/README.md
CHANGED
|
@@ -706,3 +706,7 @@ _This documentation tracks Cool Workflow v0.1.82. See [CHANGELOG](../../CHANGELO
|
|
|
706
706
|
## Hardening and Onboarding (v0.1.83)
|
|
707
707
|
|
|
708
708
|
Loaders fail closed on corrupt state; store writes are made safe under more than one writer; a new cw doctor checks your setup; help lists every command; and the docs are put into Basic English.
|
|
709
|
+
|
|
710
|
+
## Privacy Release (v0.1.84)
|
|
711
|
+
|
|
712
|
+
This release removes local user path text from saved release review input and adds a scan that keeps those words out of tracked files.
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"id": "architecture-review",
|
|
4
4
|
"title": "Architecture Review",
|
|
5
5
|
"summary": "Map a repository architecture, assess risks, verify important findings, and synthesize an evidence-backed verdict.",
|
|
6
|
-
"version": "0.1.
|
|
6
|
+
"version": "0.1.84",
|
|
7
7
|
"author": "COOLWHITE LLC",
|
|
8
8
|
"inputs": [
|
|
9
9
|
{
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"id": "architecture-review-fast",
|
|
4
4
|
"title": "Architecture Review Fast",
|
|
5
5
|
"summary": "Run a shorter architecture review with parallel map and assess phases for faster first results.",
|
|
6
|
-
"version": "0.1.
|
|
6
|
+
"version": "0.1.84",
|
|
7
7
|
"author": "COOLWHITE LLC",
|
|
8
8
|
"inputs": [
|
|
9
9
|
{
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"id": "pr-review-fix-ci",
|
|
4
4
|
"title": "PR Review Fix CI",
|
|
5
5
|
"summary": "Review a pull request or branch, inspect CI failures, diagnose actionable issues, optionally patch, verify, and summarize with evidence.",
|
|
6
|
-
"version": "0.1.
|
|
6
|
+
"version": "0.1.84",
|
|
7
7
|
"author": "COOLWHITE LLC",
|
|
8
8
|
"inputs": [
|
|
9
9
|
{
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"id": "release-cut",
|
|
4
4
|
"title": "Release Cut",
|
|
5
5
|
"summary": "Prepare a release with checklist discipline: version checks, changelog, tests, packaging, release notes, and final verification.",
|
|
6
|
-
"version": "0.1.
|
|
6
|
+
"version": "0.1.84",
|
|
7
7
|
"author": "COOLWHITE LLC",
|
|
8
8
|
"inputs": [
|
|
9
9
|
{
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"id": "research-synthesis",
|
|
4
4
|
"title": "Research Synthesis",
|
|
5
5
|
"summary": "Split a research question into claims, investigate sources, cross-check evidence, verify claims, and synthesize a concise answer.",
|
|
6
|
-
"version": "0.1.
|
|
6
|
+
"version": "0.1.84",
|
|
7
7
|
"author": "COOLWHITE LLC",
|
|
8
8
|
"inputs": [
|
|
9
9
|
{
|
|
@@ -26,10 +26,17 @@
|
|
|
26
26
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
27
|
exports.CAPABILITY_REGISTRY = void 0;
|
|
28
28
|
exports.declaredMcpTools = declaredMcpTools;
|
|
29
|
+
exports.mcpCapabilityForTool = mcpCapabilityForTool;
|
|
30
|
+
exports.mcpCapabilityForId = mcpCapabilityForId;
|
|
31
|
+
exports.mcpRequiredArgsForTool = mcpRequiredArgsForTool;
|
|
32
|
+
exports.mcpToolDefinition = mcpToolDefinition;
|
|
29
33
|
exports.declaredCliTokens = declaredCliTokens;
|
|
30
34
|
exports.requiresReason = requiresReason;
|
|
31
35
|
exports.isPayloadProbeOptOut = isPayloadProbeOptOut;
|
|
32
36
|
exports.payloadIdenticalCapabilities = payloadIdenticalCapabilities;
|
|
37
|
+
exports.payloadProbeTargets = payloadProbeTargets;
|
|
38
|
+
exports.deferredPayloadProbeCapabilities = deferredPayloadProbeCapabilities;
|
|
39
|
+
exports.payloadProbePlan = payloadProbePlan;
|
|
33
40
|
exports.buildParityReport = buildParityReport;
|
|
34
41
|
// ---------------------------------------------------------------------------
|
|
35
42
|
// Builtin entries. Grouped to mirror the CLI dispatch and the MCP tool list.
|
|
@@ -412,12 +419,236 @@ const BUILTIN_CAPABILITIES = [
|
|
|
412
419
|
* silently-dead duplicate the way the old snapshot-then-register design allowed. */
|
|
413
420
|
exports.CAPABILITY_REGISTRY = Array.from(new Map(BUILTIN_CAPABILITIES.map((cap) => [cap.capability, cap])).values());
|
|
414
421
|
// ---------------------------------------------------------------------------
|
|
422
|
+
// Payload probe classification.
|
|
423
|
+
// ---------------------------------------------------------------------------
|
|
424
|
+
const GLOBAL_PAYLOAD_PROBE_CAPABILITIES = [
|
|
425
|
+
"list",
|
|
426
|
+
"app.list",
|
|
427
|
+
"topology.list",
|
|
428
|
+
"sandbox.list",
|
|
429
|
+
"backend.list",
|
|
430
|
+
"backend.agent.config.show",
|
|
431
|
+
"metrics.summary"
|
|
432
|
+
];
|
|
433
|
+
const RUN_PAYLOAD_PROBE_CAPABILITIES = [
|
|
434
|
+
"status",
|
|
435
|
+
"operator.status",
|
|
436
|
+
"operator.report",
|
|
437
|
+
"graph",
|
|
438
|
+
"report",
|
|
439
|
+
"next",
|
|
440
|
+
"state.check",
|
|
441
|
+
"contract.show",
|
|
442
|
+
"node.list",
|
|
443
|
+
"node.graph",
|
|
444
|
+
"worker.summary",
|
|
445
|
+
"candidate.summary",
|
|
446
|
+
"feedback.summary",
|
|
447
|
+
"commit.summary",
|
|
448
|
+
"audit.summary",
|
|
449
|
+
"multi-agent.summary",
|
|
450
|
+
"workbench.view",
|
|
451
|
+
"metrics.show",
|
|
452
|
+
"review.status",
|
|
453
|
+
"comment.list",
|
|
454
|
+
"run.drive",
|
|
455
|
+
"gc.plan",
|
|
456
|
+
"gc.verify"
|
|
457
|
+
];
|
|
458
|
+
const PAYLOAD_PROBE_DEFERRED_GROUPS = [
|
|
459
|
+
{
|
|
460
|
+
reason: "Not safe for the deterministic bootstrap parity probe yet: this capability needs extra target ids/files, mutates durable state, depends on external state, or needs a dedicated fixture beyond cwd/runId.",
|
|
461
|
+
capabilities: [
|
|
462
|
+
"init",
|
|
463
|
+
"plan",
|
|
464
|
+
"dispatch",
|
|
465
|
+
"result",
|
|
466
|
+
"app.show",
|
|
467
|
+
"app.validate",
|
|
468
|
+
"app.init",
|
|
469
|
+
"app.package",
|
|
470
|
+
"app.run",
|
|
471
|
+
"node.show",
|
|
472
|
+
"node.snapshot",
|
|
473
|
+
"node.diff",
|
|
474
|
+
"node.replay",
|
|
475
|
+
"node.replay.verify",
|
|
476
|
+
"migration.list",
|
|
477
|
+
"migration.check",
|
|
478
|
+
"migration.prove",
|
|
479
|
+
"topology.show",
|
|
480
|
+
"topology.validate",
|
|
481
|
+
"topology.apply",
|
|
482
|
+
"topology.summary",
|
|
483
|
+
"topology.graph",
|
|
484
|
+
"summary.refresh",
|
|
485
|
+
"summary.show",
|
|
486
|
+
"multi-agent.run",
|
|
487
|
+
"multi-agent.status",
|
|
488
|
+
"multi-agent.step",
|
|
489
|
+
"multi-agent.blackboard",
|
|
490
|
+
"multi-agent.score",
|
|
491
|
+
"multi-agent.select",
|
|
492
|
+
"multi-agent.summarize",
|
|
493
|
+
"multi-agent.graph",
|
|
494
|
+
"multi-agent.graph.compact",
|
|
495
|
+
"multi-agent.dependencies",
|
|
496
|
+
"multi-agent.failures",
|
|
497
|
+
"multi-agent.evidence",
|
|
498
|
+
"multi-agent.reasoning",
|
|
499
|
+
"multi-agent.reasoning.refresh",
|
|
500
|
+
"multi-agent.run.create",
|
|
501
|
+
"multi-agent.run.transition",
|
|
502
|
+
"multi-agent.run.show",
|
|
503
|
+
"multi-agent.role.create",
|
|
504
|
+
"multi-agent.role.show",
|
|
505
|
+
"multi-agent.group.create",
|
|
506
|
+
"multi-agent.group.show",
|
|
507
|
+
"multi-agent.membership.create",
|
|
508
|
+
"multi-agent.membership.show",
|
|
509
|
+
"multi-agent.fanout.create",
|
|
510
|
+
"multi-agent.fanout.show",
|
|
511
|
+
"multi-agent.fanin.collect",
|
|
512
|
+
"multi-agent.fanin.show",
|
|
513
|
+
"eval.snapshot",
|
|
514
|
+
"eval.replay",
|
|
515
|
+
"eval.compare",
|
|
516
|
+
"eval.score",
|
|
517
|
+
"eval.gate",
|
|
518
|
+
"eval.report",
|
|
519
|
+
"blackboard.summary",
|
|
520
|
+
"blackboard.summarize",
|
|
521
|
+
"blackboard.graph",
|
|
522
|
+
"blackboard.resolve",
|
|
523
|
+
"blackboard.topic.create",
|
|
524
|
+
"blackboard.message.post",
|
|
525
|
+
"blackboard.message.list",
|
|
526
|
+
"blackboard.context.put",
|
|
527
|
+
"blackboard.artifact.add",
|
|
528
|
+
"blackboard.artifact.list",
|
|
529
|
+
"blackboard.snapshot",
|
|
530
|
+
"coordinator.summary",
|
|
531
|
+
"coordinator.decision",
|
|
532
|
+
"audit.verify",
|
|
533
|
+
"audit.worker",
|
|
534
|
+
"audit.provenance",
|
|
535
|
+
"audit.multi-agent",
|
|
536
|
+
"audit.policy",
|
|
537
|
+
"audit.role",
|
|
538
|
+
"audit.blackboard",
|
|
539
|
+
"audit.judge",
|
|
540
|
+
"audit.attest",
|
|
541
|
+
"audit.decision",
|
|
542
|
+
"sandbox.show",
|
|
543
|
+
"sandbox.validate",
|
|
544
|
+
"sandbox.choose",
|
|
545
|
+
"sandbox.resolve",
|
|
546
|
+
"backend.show",
|
|
547
|
+
"backend.probe",
|
|
548
|
+
"worker.list",
|
|
549
|
+
"worker.show",
|
|
550
|
+
"worker.manifest",
|
|
551
|
+
"worker.output",
|
|
552
|
+
"worker.fail",
|
|
553
|
+
"worker.validate",
|
|
554
|
+
"candidate.list",
|
|
555
|
+
"candidate.show",
|
|
556
|
+
"candidate.register",
|
|
557
|
+
"candidate.score",
|
|
558
|
+
"candidate.rank",
|
|
559
|
+
"candidate.select",
|
|
560
|
+
"candidate.reject",
|
|
561
|
+
"feedback.list",
|
|
562
|
+
"feedback.show",
|
|
563
|
+
"feedback.collect",
|
|
564
|
+
"feedback.task",
|
|
565
|
+
"feedback.resolve",
|
|
566
|
+
"schedule.create",
|
|
567
|
+
"schedule.list",
|
|
568
|
+
"schedule.delete",
|
|
569
|
+
"schedule.due",
|
|
570
|
+
"schedule.complete",
|
|
571
|
+
"schedule.pause",
|
|
572
|
+
"schedule.resume",
|
|
573
|
+
"schedule.run-now",
|
|
574
|
+
"schedule.history",
|
|
575
|
+
"routine.create",
|
|
576
|
+
"routine.list",
|
|
577
|
+
"routine.delete",
|
|
578
|
+
"routine.fire",
|
|
579
|
+
"routine.events",
|
|
580
|
+
"registry.refresh",
|
|
581
|
+
"registry.show",
|
|
582
|
+
"run.search",
|
|
583
|
+
"run.list",
|
|
584
|
+
"run.show",
|
|
585
|
+
"run.resume",
|
|
586
|
+
"run.archive",
|
|
587
|
+
"run.rerun",
|
|
588
|
+
"run.export",
|
|
589
|
+
"run.import",
|
|
590
|
+
"run.verify-import",
|
|
591
|
+
"run.inspect-archive",
|
|
592
|
+
"queue.add",
|
|
593
|
+
"queue.list",
|
|
594
|
+
"queue.drain",
|
|
595
|
+
"queue.show",
|
|
596
|
+
"sched.plan",
|
|
597
|
+
"sched.lease",
|
|
598
|
+
"sched.release",
|
|
599
|
+
"sched.complete",
|
|
600
|
+
"sched.reclaim",
|
|
601
|
+
"sched.reset",
|
|
602
|
+
"sched.policy.show",
|
|
603
|
+
"sched.policy.set",
|
|
604
|
+
"telemetry.verify",
|
|
605
|
+
"history",
|
|
606
|
+
"approve",
|
|
607
|
+
"reject",
|
|
608
|
+
"comment.add",
|
|
609
|
+
"handoff",
|
|
610
|
+
"review.policy"
|
|
611
|
+
]
|
|
612
|
+
}
|
|
613
|
+
];
|
|
614
|
+
// ---------------------------------------------------------------------------
|
|
415
615
|
// Derivations + the fail-closed parity report builder.
|
|
416
616
|
// ---------------------------------------------------------------------------
|
|
417
617
|
/** The MCP tool names this registry declares. */
|
|
418
618
|
function declaredMcpTools() {
|
|
419
619
|
return exports.CAPABILITY_REGISTRY.filter((cap) => cap.mcp).map((cap) => cap.mcp.tool);
|
|
420
620
|
}
|
|
621
|
+
/** The descriptor for a registry-declared MCP tool name. */
|
|
622
|
+
function mcpCapabilityForTool(tool) {
|
|
623
|
+
return exports.CAPABILITY_REGISTRY.find((capability) => capability.mcp?.tool === tool);
|
|
624
|
+
}
|
|
625
|
+
/** The descriptor for a registry-declared capability id. */
|
|
626
|
+
function mcpCapabilityForId(capabilityId) {
|
|
627
|
+
const descriptor = exports.CAPABILITY_REGISTRY.find((capability) => capability.capability === capabilityId);
|
|
628
|
+
return descriptor?.mcp ? descriptor : undefined;
|
|
629
|
+
}
|
|
630
|
+
/** Required MCP argument groups for a registry-declared tool. */
|
|
631
|
+
function mcpRequiredArgsForTool(tool) {
|
|
632
|
+
return mcpCapabilityForTool(tool)?.mcp?.requiredArgs ?? [];
|
|
633
|
+
}
|
|
634
|
+
function mcpToolDefinition(capabilityId, descriptionOrProperties, maybeProperties) {
|
|
635
|
+
const descriptor = mcpCapabilityForId(capabilityId);
|
|
636
|
+
if (!descriptor?.mcp)
|
|
637
|
+
throw new Error(`MCP capability not declared: ${capabilityId}`);
|
|
638
|
+
const description = typeof descriptionOrProperties === "string" ? descriptionOrProperties : descriptor.summary;
|
|
639
|
+
const properties = typeof descriptionOrProperties === "string" ? maybeProperties : descriptionOrProperties;
|
|
640
|
+
if (!properties)
|
|
641
|
+
throw new Error(`MCP capability ${capabilityId} missing input schema properties.`);
|
|
642
|
+
return {
|
|
643
|
+
name: descriptor.mcp.tool,
|
|
644
|
+
description,
|
|
645
|
+
inputSchema: {
|
|
646
|
+
type: "object",
|
|
647
|
+
properties,
|
|
648
|
+
additionalProperties: true
|
|
649
|
+
}
|
|
650
|
+
};
|
|
651
|
+
}
|
|
421
652
|
/** The CLI `case` tokens this registry declares (deduped). */
|
|
422
653
|
function declaredCliTokens() {
|
|
423
654
|
const tokens = new Set();
|
|
@@ -460,6 +691,30 @@ function isPayloadProbeOptOut(cap) {
|
|
|
460
691
|
function payloadIdenticalCapabilities() {
|
|
461
692
|
return exports.CAPABILITY_REGISTRY.filter((cap) => cap.surface === "both" && cap.cli && cap.mcp && !isPayloadProbeOptOut(cap));
|
|
462
693
|
}
|
|
694
|
+
function payloadProbeTargets() {
|
|
695
|
+
return [
|
|
696
|
+
...GLOBAL_PAYLOAD_PROBE_CAPABILITIES.map((capability) => ({ capability, kind: "global" })),
|
|
697
|
+
...RUN_PAYLOAD_PROBE_CAPABILITIES.map((capability) => ({ capability, kind: "run" }))
|
|
698
|
+
];
|
|
699
|
+
}
|
|
700
|
+
function deferredPayloadProbeCapabilities() {
|
|
701
|
+
return PAYLOAD_PROBE_DEFERRED_GROUPS.flatMap((group) => group.capabilities.map((capability) => ({ capability, reason: group.reason })));
|
|
702
|
+
}
|
|
703
|
+
function payloadProbePlan() {
|
|
704
|
+
const candidateIds = new Set(payloadIdenticalCapabilities().map((cap) => cap.capability));
|
|
705
|
+
const counts = new Map();
|
|
706
|
+
const classified = [...payloadProbeTargets().map((entry) => entry.capability), ...deferredPayloadProbeCapabilities().map((entry) => entry.capability)];
|
|
707
|
+
for (const capability of classified)
|
|
708
|
+
counts.set(capability, (counts.get(capability) || 0) + 1);
|
|
709
|
+
const classifiedIds = new Set(classified);
|
|
710
|
+
return {
|
|
711
|
+
targets: payloadProbeTargets(),
|
|
712
|
+
deferred: deferredPayloadProbeCapabilities(),
|
|
713
|
+
unclassified: [...candidateIds].filter((capability) => !classifiedIds.has(capability)).sort(),
|
|
714
|
+
duplicateClassifications: [...counts.entries()].filter(([, count]) => count > 1).map(([capability]) => capability).sort(),
|
|
715
|
+
invalidClassifications: [...classifiedIds].filter((capability) => !candidateIds.has(capability)).sort()
|
|
716
|
+
};
|
|
717
|
+
}
|
|
463
718
|
function lintRegistry() {
|
|
464
719
|
const issues = [];
|
|
465
720
|
const seenCaps = new Set();
|
|
@@ -502,12 +757,16 @@ function buildParityReport(input) {
|
|
|
502
757
|
const reasonlessExceptions = exports.CAPABILITY_REGISTRY.filter((cap) => requiresReason(cap) && !(cap.reason && cap.reason.trim()))
|
|
503
758
|
.map((cap) => cap.capability)
|
|
504
759
|
.sort();
|
|
760
|
+
const payloadPlan = payloadProbePlan();
|
|
505
761
|
const registryLint = lintRegistry();
|
|
506
762
|
const ok = missingMcpTools.length === 0 &&
|
|
507
763
|
undeclaredMcpTools.length === 0 &&
|
|
508
764
|
missingCliTokens.length === 0 &&
|
|
509
765
|
undeclaredCliTokens.length === 0 &&
|
|
510
766
|
reasonlessExceptions.length === 0 &&
|
|
767
|
+
payloadPlan.unclassified.length === 0 &&
|
|
768
|
+
payloadPlan.duplicateClassifications.length === 0 &&
|
|
769
|
+
payloadPlan.invalidClassifications.length === 0 &&
|
|
511
770
|
registryLint.length === 0;
|
|
512
771
|
return {
|
|
513
772
|
ok,
|
|
@@ -517,6 +776,9 @@ function buildParityReport(input) {
|
|
|
517
776
|
missingCliTokens,
|
|
518
777
|
undeclaredCliTokens,
|
|
519
778
|
reasonlessExceptions,
|
|
779
|
+
payloadProbeUnclassified: payloadPlan.unclassified,
|
|
780
|
+
payloadProbeDuplicateClassifications: payloadPlan.duplicateClassifications,
|
|
781
|
+
payloadProbeInvalidClassifications: payloadPlan.invalidClassifications,
|
|
520
782
|
registryLint
|
|
521
783
|
};
|
|
522
784
|
}
|