@trohde/earos 1.1.1 → 1.2.0
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/README.md +1 -1
- package/assets/init/.agents/skills/earos-assess/SKILL.md +2 -2
- package/assets/init/.agents/skills/earos-assess/references/output-templates.md +61 -67
- package/assets/init/.agents/skills/earos-calibrate/SKILL.md +1 -1
- package/assets/init/.agents/skills/earos-calibrate/references/calibration-protocol.md +1 -1
- package/assets/init/.agents/skills/earos-create/references/validation-checklist.md +2 -2
- package/assets/init/.agents/skills/earos-profile-author/SKILL.md +1 -1
- package/assets/init/CLAUDE.md +46 -8
- package/assets/init/README.md +5 -6
- package/assets/init/core/core-meta-rubric.yaml +1 -1
- package/assets/init/docs/getting-started.md +20 -42
- package/assets/init/docs/onboarding/agent-assisted.md +2 -2
- package/assets/init/docs/onboarding/first-assessment.md +10 -4
- package/assets/init/docs/onboarding/governed-review.md +26 -16
- package/assets/init/docs/onboarding/overview.md +1 -49
- package/assets/init/docs/onboarding/scaling-optimization.md +2 -2
- package/assets/init/docs/profile-authoring-guide.md +6 -10
- package/assets/init/docs/terminology.md +4 -4
- package/assets/init/profiles/reference-architecture.yaml +1 -1
- package/assets/init/standard/EAROS.md +6 -16
- package/bin.js +1 -1
- package/dist/assets/{_basePickBy-BVu6YmSW.js → _basePickBy-PmSUrUsK.js} +1 -1
- package/dist/assets/{_baseUniq-CWRzQDz_.js → _baseUniq-HuZouVIz.js} +1 -1
- package/dist/assets/{arc-CyDBhtDM.js → arc-CJFxtF3d.js} +1 -1
- package/dist/assets/{architectureDiagram-2XIMDMQ5-BH6O4dvN.js → architectureDiagram-2XIMDMQ5-XA-oU2UG.js} +1 -1
- package/dist/assets/{blockDiagram-WCTKOSBZ-2xmwdjpg.js → blockDiagram-WCTKOSBZ-Oxp-wAST.js} +1 -1
- package/dist/assets/{c4Diagram-IC4MRINW-BNmPRFJF.js → c4Diagram-IC4MRINW-D8m5hQH9.js} +1 -1
- package/dist/assets/channel-SoktpVBQ.js +1 -0
- package/dist/assets/{chunk-4BX2VUAB-DGQTvirp.js → chunk-4BX2VUAB-D2kBTn2O.js} +1 -1
- package/dist/assets/{chunk-55IACEB6-DNMAQAC_.js → chunk-55IACEB6-Dxqrf5oZ.js} +1 -1
- package/dist/assets/{chunk-FMBD7UC4-BJbVTQ5o.js → chunk-FMBD7UC4-DoOEFFQC.js} +1 -1
- package/dist/assets/{chunk-JSJVCQXG-BCxUL74A.js → chunk-JSJVCQXG-BerphV2K.js} +1 -1
- package/dist/assets/{chunk-KX2RTZJC-H7wWZOfz.js → chunk-KX2RTZJC-CxUAqT05.js} +1 -1
- package/dist/assets/{chunk-NQ4KR5QH-BK4RlTQF.js → chunk-NQ4KR5QH-fCqZgFkU.js} +1 -1
- package/dist/assets/{chunk-QZHKN3VN-0chxDV5g.js → chunk-QZHKN3VN-HlpHnJEy.js} +1 -1
- package/dist/assets/{chunk-WL4C6EOR-DexfQ-AV.js → chunk-WL4C6EOR-D9yxAHyd.js} +1 -1
- package/dist/assets/classDiagram-VBA2DB6C-BT2AdZTe.js +1 -0
- package/dist/assets/classDiagram-v2-RAHNMMFH-BT2AdZTe.js +1 -0
- package/dist/assets/clone-DOjIfi5r.js +1 -0
- package/dist/assets/{cose-bilkent-S5V4N54A-DS2IOCfZ.js → cose-bilkent-S5V4N54A-F5xOBvqW.js} +1 -1
- package/dist/assets/{dagre-KLK3FWXG-BbSoTTa3.js → dagre-KLK3FWXG-CD3BTpHv.js} +1 -1
- package/dist/assets/{diagram-E7M64L7V-C9TvYgv0.js → diagram-E7M64L7V-C3D9MCay.js} +1 -1
- package/dist/assets/{diagram-IFDJBPK2-DowUMWrg.js → diagram-IFDJBPK2-zJBVM-GK.js} +1 -1
- package/dist/assets/{diagram-P4PSJMXO-BL6nrnQF.js → diagram-P4PSJMXO-BrmFZOLB.js} +1 -1
- package/dist/assets/{erDiagram-INFDFZHY-rXPRl8VM.js → erDiagram-INFDFZHY-aSMhKiV2.js} +1 -1
- package/dist/assets/{flowDiagram-PKNHOUZH-DBRM99-W.js → flowDiagram-PKNHOUZH-DwgX7l8F.js} +1 -1
- package/dist/assets/{ganttDiagram-A5KZAMGK-INcWFsBT.js → ganttDiagram-A5KZAMGK-C57Hz6QW.js} +1 -1
- package/dist/assets/{gitGraphDiagram-K3NZZRJ6-DMwpfE91.js → gitGraphDiagram-K3NZZRJ6-CuchqqGh.js} +1 -1
- package/dist/assets/{graph-DLQn37b-.js → graph-CPFGBV5J.js} +1 -1
- package/dist/assets/{index-BFFITMT8.js → index-DMt1cpG6.js} +124 -124
- package/dist/assets/{infoDiagram-LFFYTUFH-B0f4TWRM.js → infoDiagram-LFFYTUFH-Dd_5tfX7.js} +1 -1
- package/dist/assets/{ishikawaDiagram-PHBUUO56-CsU6XimZ.js → ishikawaDiagram-PHBUUO56-DwosSEvT.js} +1 -1
- package/dist/assets/{journeyDiagram-4ABVD52K-CQ7ibNib.js → journeyDiagram-4ABVD52K-BuCxcsX0.js} +1 -1
- package/dist/assets/{kanban-definition-K7BYSVSG-DzEN7THt.js → kanban-definition-K7BYSVSG-DF_1UCkW.js} +1 -1
- package/dist/assets/{layout-C0dvb42R.js → layout-DIcS6m1g.js} +1 -1
- package/dist/assets/{linear-j4a8mGj7.js → linear-BXkwBhoJ.js} +1 -1
- package/dist/assets/{mindmap-definition-YRQLILUH-DP8iEuCf.js → mindmap-definition-YRQLILUH-DcDvYagd.js} +1 -1
- package/dist/assets/{pieDiagram-SKSYHLDU-BpIAXgAm.js → pieDiagram-SKSYHLDU-BmeDeWDM.js} +1 -1
- package/dist/assets/{quadrantDiagram-337W2JSQ-DrpXn5Eg.js → quadrantDiagram-337W2JSQ-3zfjULUM.js} +1 -1
- package/dist/assets/{requirementDiagram-Z7DCOOCP-Bg7EwHlG.js → requirementDiagram-Z7DCOOCP-B2wQMJpq.js} +1 -1
- package/dist/assets/{sankeyDiagram-WA2Y5GQK-BWagRs1F.js → sankeyDiagram-WA2Y5GQK-__kKlCTq.js} +1 -1
- package/dist/assets/{sequenceDiagram-2WXFIKYE-q5jwhivG.js → sequenceDiagram-2WXFIKYE-B7O81Vih.js} +1 -1
- package/dist/assets/{stateDiagram-RAJIS63D-B_J9pE-2.js → stateDiagram-RAJIS63D-CcJaDrAK.js} +1 -1
- package/dist/assets/stateDiagram-v2-FVOUBMTO-B2goOPt-.js +1 -0
- package/dist/assets/{timeline-definition-YZTLITO2-dv0jgQ0z.js → timeline-definition-YZTLITO2-DSaQQqIU.js} +1 -1
- package/dist/assets/treemap-KZPCXAKY-9Hcrd8XD.js +162 -0
- package/dist/assets/{vennDiagram-LZ73GAT5-BdO5RgRZ.js → vennDiagram-LZ73GAT5-BqHNyca2.js} +1 -1
- package/dist/assets/{xychartDiagram-JWTSCODW-CpDVe-8v.js → xychartDiagram-JWTSCODW-BqeYf6Fk.js} +1 -1
- package/dist/index.html +1 -1
- package/package.json +1 -1
- package/dist/assets/channel-CiySTNoJ.js +0 -1
- package/dist/assets/classDiagram-VBA2DB6C-D7luWJQn.js +0 -1
- package/dist/assets/classDiagram-v2-RAHNMMFH-D7luWJQn.js +0 -1
- package/dist/assets/clone-ylgRbd3D.js +0 -1
- package/dist/assets/stateDiagram-v2-FVOUBMTO-Q_1GcybB.js +0 -1
- package/dist/assets/treemap-KZPCXAKY-Dt1dkIE7.js +0 -162
|
@@ -35,11 +35,13 @@ This creates a complete EAROS workspace with rubric files, JSON schemas, agent s
|
|
|
35
35
|
|
|
36
36
|
## Understanding the Workspace
|
|
37
37
|
|
|
38
|
+

|
|
39
|
+
|
|
38
40
|
The `earos init` command creates a structured directory containing:
|
|
39
41
|
|
|
40
42
|
- **Rubric files** --- the core meta-rubric and all built-in profiles and overlays (YAML)
|
|
41
43
|
- **JSON schemas** --- for validating rubrics, evaluation records, and artifact documents
|
|
42
|
-
- **Agent skills** --- 10 pre-configured skills for AI-assisted evaluation (in `.
|
|
44
|
+
- **Agent skills** --- 10 pre-configured skills for AI-assisted evaluation (in `.agents/skills/`)
|
|
43
45
|
- **AGENTS.md** --- agent-agnostic instructions for AI tools like Cursor, Copilot, and Windsurf
|
|
44
46
|
- **Manifest** --- an inventory of all available rubrics
|
|
45
47
|
|
|
@@ -78,6 +80,8 @@ Every criterion uses the same ordinal scale:
|
|
|
78
80
|
|
|
79
81
|
## Walkthrough: Scoring Your First Artifact
|
|
80
82
|
|
|
83
|
+

|
|
84
|
+
|
|
81
85
|
Follow these steps for each of the 10 criteria:
|
|
82
86
|
|
|
83
87
|
1. **Read the criterion question and scoring guide.** Open the core rubric YAML and find the criterion. Read the `question`, the `description`, and all five levels of the `scoring_guide`.
|
|
@@ -96,13 +100,13 @@ Not all criteria are equal. Some have **gates** --- threshold controls that can
|
|
|
96
100
|
|
|
97
101
|
| Gate Severity | What Happens |
|
|
98
102
|
|---------------|-------------|
|
|
99
|
-
| **Critical** | If the score is below the gate threshold, the artifact is
|
|
103
|
+
| **Critical** | If the score is below the gate threshold, the artifact is blocked from passing. The `failure_effect` determines the outcome --- typically **Reject**, or **Not Reviewable** when evidence is too incomplete to score. |
|
|
100
104
|
| **Major** | A low score caps the maximum achievable status (e.g., cannot pass above Conditional Pass). |
|
|
101
105
|
| **Advisory** | A low score triggers a recommendation but does not block any status. |
|
|
102
106
|
|
|
103
|
-
In the core rubric, **SCP-01** (Scope and boundary clarity)
|
|
107
|
+
In the core rubric, two criteria have **critical** gates: **SCP-01** (Scope and boundary clarity) — if the scope is so unclear that the artifact cannot be reviewed (score < 2), the result is "Not Reviewable" regardless of all other scores; and **CMP-01** (Standards and policy compliance) — if mandatory control compliance cannot be determined, the result is "Reject". **STK-01** (Stakeholder and purpose fit) and **TRC-01** (Traceability) have **major** gates.
|
|
104
108
|
|
|
105
|
-
> **Rule: Gates before averages.** Always check gate criteria first. If a critical gate fails, stop --- the result is Reject. Only then compute the weighted average for the remaining status thresholds.
|
|
109
|
+
> **Rule: Gates before averages.** Always check gate criteria first. If a critical gate fails, stop --- the result is determined by the gate's `failure_effect` (Reject or Not Reviewable). Only then compute the weighted average for the remaining status thresholds.
|
|
106
110
|
|
|
107
111
|
## Interpreting Your Results
|
|
108
112
|
|
|
@@ -116,6 +120,8 @@ After scoring all criteria and checking gates, compute the weighted average acro
|
|
|
116
120
|
| **Reject** | Any critical gate failure, or mandatory control breach |
|
|
117
121
|
| **Not Reviewable** | Evidence too incomplete to score responsibly |
|
|
118
122
|
|
|
123
|
+

|
|
124
|
+
|
|
119
125
|
A Conditional Pass is not a failure --- it means the artifact is close but needs specific, named improvements before it is decision-ready. Record those improvements as actions in the evaluation record.
|
|
120
126
|
|
|
121
127
|
## Checkpoint: You Are at Level 2 When...
|
|
@@ -12,31 +12,37 @@ At Level 2, you used the core rubric and produced evidence-backed scores. At Lev
|
|
|
12
12
|
2. **Overlays** inject cross-cutting concerns (security, data governance, regulatory) based on context
|
|
13
13
|
3. **Calibration** ensures that different reviewers on your team produce substantially similar scores for the same artifact
|
|
14
14
|
|
|
15
|
+

|
|
16
|
+
|
|
15
17
|
## Choosing a Profile
|
|
16
18
|
|
|
17
|
-
The core meta-rubric's 10 criteria are universal --- they apply to every architecture artifact. But a reference architecture has different quality expectations than an ADR, and a capability map is evaluated differently than a roadmap. Profiles add
|
|
19
|
+
The core meta-rubric's 10 criteria are universal --- they apply to every architecture artifact. But a reference architecture has different quality expectations than an ADR, and a capability map is evaluated differently than a roadmap. Profiles add artifact-specific criteria on top of the core --- typically 3 to 9, depending on the artifact type.
|
|
20
|
+
|
|
21
|
+
| Profile | Artifact Type | Status | What It Adds |
|
|
22
|
+
|---------|--------------|--------|-------------|
|
|
23
|
+
| `solution-architecture.yaml` | Solution designs, HLDs, LLDs | Approved | Implementation specificity, integration patterns, deployment readiness |
|
|
24
|
+
| `reference-architecture.yaml` | Reference architectures, platform blueprints | Draft | Architectural views, pattern reusability, adoption guidance, evolution strategy |
|
|
25
|
+
| `adr.yaml` | Architecture Decision Records | Approved | Decision context, options analysis, consequence tracking, revisit triggers |
|
|
26
|
+
| `capability-map.yaml` | Capability maps, business architecture | Approved | Capability decomposition, business alignment, gap analysis |
|
|
27
|
+
| `roadmap.yaml` | Architecture roadmaps, transition plans | Draft | Sequencing, dependency management, milestone definition, risk on timeline |
|
|
18
28
|
|
|
19
|
-
|
|
20
|
-
|---------|--------------|-------------|
|
|
21
|
-
| `solution-architecture.yaml` | Solution designs, HLDs, LLDs | Implementation specificity, integration patterns, deployment readiness |
|
|
22
|
-
| `reference-architecture.yaml` | Reference architectures, platform blueprints | Architectural views, pattern reusability, adoption guidance, evolution strategy |
|
|
23
|
-
| `adr.yaml` | Architecture Decision Records | Decision context, options analysis, consequence tracking, revisit triggers |
|
|
24
|
-
| `capability-map.yaml` | Capability maps, business architecture | Capability decomposition, business alignment, gap analysis |
|
|
25
|
-
| `roadmap.yaml` | Architecture roadmaps, transition plans | Sequencing, dependency management, milestone definition, risk on timeline |
|
|
29
|
+
> **Status key:** *Approved* profiles have been calibrated and are ready for governed use. *Draft* profiles are usable but have not completed the full calibration process (see [Calibrating with Your Team](#calibrating-with-your-team)).
|
|
26
30
|
|
|
27
|
-
Every profile declares `inherits: [EAROS-CORE-002]`. This means when you evaluate a reference architecture, you score it against all 10 core criteria **plus** the profile's additional criteria ---
|
|
31
|
+
Every profile declares `inherits: [EAROS-CORE-002]`. This means when you evaluate a reference architecture, you score it against all 10 core criteria **plus** the profile's additional criteria --- 13--19 criteria total depending on the profile.
|
|
28
32
|
|
|
29
33
|
> **How to choose:** Match the profile to the artifact's declared type. If the artifact does not fit any built-in profile, use the core rubric alone. Creating custom profiles is covered in [Scaling and Optimization](scaling-optimization.md).
|
|
30
34
|
|
|
31
35
|
## Applying Overlays
|
|
32
36
|
|
|
37
|
+

|
|
38
|
+
|
|
33
39
|
Overlays inject cross-cutting concerns that apply across artifact types. Unlike profiles, overlays are applied **based on context**, not based on artifact type.
|
|
34
40
|
|
|
35
|
-
| Overlay | Apply When... |
|
|
36
|
-
|
|
37
|
-
| **Security** (`security.yaml`) | The design touches authentication, authorization, encryption, personal data, or network boundaries |
|
|
38
|
-
| **Data Governance** (`data-governance.yaml`) | The artifact describes data flows, data retention, data classification, or data lineage |
|
|
39
|
-
| **Regulatory** (`regulatory.yaml`) | The artifact operates in a regulated domain: payments, healthcare, financial reporting, privacy |
|
|
41
|
+
| Overlay | Status | Apply When... |
|
|
42
|
+
|---------|--------|--------------|
|
|
43
|
+
| **Security** (`security.yaml`) | Approved | The design touches authentication, authorization, encryption, personal data, or network boundaries |
|
|
44
|
+
| **Data Governance** (`data-governance.yaml`) | Approved | The artifact describes data flows, data retention, data classification, or data lineage |
|
|
45
|
+
| **Regulatory** (`regulatory.yaml`) | Draft | The artifact operates in a regulated domain: payments, healthcare, financial reporting, privacy |
|
|
40
46
|
|
|
41
47
|
Overlays are additive --- they append criteria to the base rubric (core + profile). They cannot remove or weaken gates from the base. An overlay's critical gate adds to the gate model; it does not replace it.
|
|
42
48
|
|
|
@@ -71,7 +77,7 @@ Observed evidence is always preferred. If you find yourself relying heavily on i
|
|
|
71
77
|
|
|
72
78
|
## The Three Evaluation Types
|
|
73
79
|
|
|
74
|
-
EAROS distinguishes three distinct judgment types that
|
|
80
|
+
EAROS distinguishes three distinct judgment types that should not be collapsed into a single opaque score:
|
|
75
81
|
|
|
76
82
|
| Type | Question It Answers | Example |
|
|
77
83
|
|------|-------------------|---------|
|
|
@@ -81,6 +87,10 @@ EAROS distinguishes three distinct judgment types that must never be merged into
|
|
|
81
87
|
|
|
82
88
|
These are related but distinct. A beautifully written, complete document can describe an architecturally unsound system. A technically excellent architecture can be documented in an unmaintainable artifact. Collapsing these into one score hides critical information.
|
|
83
89
|
|
|
90
|
+
In practice, EAROS criteria map to these three types through the dimension structure --- the narrative summary in the evaluation record should address all three perspectives. The rubric's criterion scores provide the evidence base; the narrative synthesizes them into these three distinct judgments.
|
|
91
|
+
|
|
92
|
+

|
|
93
|
+
|
|
84
94
|
## Calibrating with Your Team
|
|
85
95
|
|
|
86
96
|
Calibration is what transforms individual scoring into a team capability. Without it, "a score of 3" means something different to each reviewer.
|
|
@@ -119,7 +129,7 @@ For more on evaluation record structure, see the [Getting Started guide](../gett
|
|
|
119
129
|
- [ ] You have completed a calibration exercise with kappa > 0.70
|
|
120
130
|
- [ ] Overlays are applied based on context (not arbitrarily or never)
|
|
121
131
|
- [ ] Evaluation records are structured and conform to `evaluation.schema.json`
|
|
122
|
-
- [ ] The three
|
|
132
|
+
- [ ] The evaluation narrative addresses all three perspectives: artifact quality, architectural fitness, and governance fit
|
|
123
133
|
|
|
124
134
|
## Next Steps
|
|
125
135
|
|
|
@@ -23,8 +23,6 @@ No formal review process. Evaluation quality depends entirely on who happens to
|
|
|
23
23
|
- **EAROS capabilities:** None (this is the baseline state)
|
|
24
24
|
- **You are here when:** You recognize the problem --- reviews are inconsistent and reviewer-dependent
|
|
25
25
|
|
|
26
|
-
---
|
|
27
|
-
|
|
28
26
|
### Level 2 --- Rubric-Based
|
|
29
27
|
|
|
30
28
|
The core rubric is adopted. Every assessment uses the same 9 dimensions and 10 criteria with the 0--4 scoring scale. Evidence is cited for every score. Results are reproducible across reviewers.
|
|
@@ -35,8 +33,6 @@ The core rubric is adopted. Every assessment uses the same 9 dimensions and 10 c
|
|
|
35
33
|
|
|
36
34
|
> **Guide:** [Your First Assessment](first-assessment.md) walks you through this transition.
|
|
37
35
|
|
|
38
|
-
---
|
|
39
|
-
|
|
40
36
|
### Level 3 --- Governed
|
|
41
37
|
|
|
42
38
|
Artifact-specific profiles and context-driven overlays are in use. Teams are calibrated against reference examples. The RULERS protocol ensures evidence-anchored scoring. Evaluation records are structured and auditable.
|
|
@@ -47,8 +43,6 @@ Artifact-specific profiles and context-driven overlays are in use. Teams are cal
|
|
|
47
43
|
|
|
48
44
|
> **Guide:** [Governed Review](governed-review.md) walks you through this transition.
|
|
49
45
|
|
|
50
|
-
---
|
|
51
|
-
|
|
52
46
|
### Level 4 --- Hybrid
|
|
53
47
|
|
|
54
48
|
AI agents augment human reviewers. Both evaluate independently and reconcile disagreements against level descriptors. Metrics track inter-rater reliability between human and agent evaluators.
|
|
@@ -59,8 +53,6 @@ AI agents augment human reviewers. Both evaluate independently and reconcile dis
|
|
|
59
53
|
|
|
60
54
|
> **Guide:** [Agent-Assisted Evaluation](agent-assisted.md) walks you through this transition.
|
|
61
55
|
|
|
62
|
-
---
|
|
63
|
-
|
|
64
56
|
### Level 5 --- Optimized
|
|
65
57
|
|
|
66
58
|
Architecture evaluation is continuous and integrated into delivery workflows. Calibration happens automatically. Executive reporting provides portfolio-level quality visibility. Rubrics are governed assets with version control and change management.
|
|
@@ -71,49 +63,9 @@ Architecture evaluation is continuous and integrated into delivery workflows. Ca
|
|
|
71
63
|
|
|
72
64
|
> **Guide:** [Scaling and Optimization](scaling-optimization.md) walks you through this transition.
|
|
73
65
|
|
|
74
|
-
## Where Are You Today?
|
|
75
|
-
|
|
76
|
-
Use this self-assessment to identify your current level. Answer each question honestly --- the goal is to find your starting point, not to score well.
|
|
77
|
-
|
|
78
|
-
### Level 1 -- Ad Hoc (you are here if most answers are "no")
|
|
79
|
-
|
|
80
|
-
- [ ] Do you have a written set of criteria for architecture review?
|
|
81
|
-
- [ ] Do two reviewers produce substantially similar feedback on the same artifact?
|
|
82
|
-
- [ ] Can you explain what "good" looks like for an architecture artifact in your organization?
|
|
83
|
-
|
|
84
|
-
### Level 2 -- Rubric-Based (you are here if you can answer "yes" to these)
|
|
85
|
-
|
|
86
|
-
- [ ] You use a defined rubric with explicit criteria and scoring levels
|
|
87
|
-
- [ ] Every score has a cited evidence reference (not just "seems adequate")
|
|
88
|
-
- [ ] You can explain the difference between a score of 2 and 3 for any criterion
|
|
89
|
-
- [ ] You check gates before computing averages
|
|
90
|
-
|
|
91
|
-
### Level 3 -- Governed (you are here if you can answer "yes" to these)
|
|
92
|
-
|
|
93
|
-
- [ ] You select profiles matched to artifact types (not just the core rubric)
|
|
94
|
-
- [ ] You apply overlays based on context (security, data governance, regulatory)
|
|
95
|
-
- [ ] Your team has completed a calibration exercise with inter-rater agreement measured
|
|
96
|
-
- [ ] Evidence is classified as observed, inferred, or external
|
|
97
|
-
- [ ] Artifact quality, architectural fitness, and governance fit are reported separately
|
|
98
|
-
|
|
99
|
-
### Level 4 -- Hybrid (you are here if you can answer "yes" to these)
|
|
100
|
-
|
|
101
|
-
- [ ] AI agents evaluate artifacts using the full 8-step DAG evaluation flow
|
|
102
|
-
- [ ] Human and agent evaluations are compared and reconciled
|
|
103
|
-
- [ ] A challenge pass reviews the highest and lowest scores for every evaluation
|
|
104
|
-
- [ ] You track inter-rater reliability metrics between human and agent evaluators
|
|
105
|
-
|
|
106
|
-
### Level 5 -- Optimized (you are here if you can answer "yes" to these)
|
|
107
|
-
|
|
108
|
-
- [ ] Architecture evaluation is integrated into your CI/CD or delivery pipeline
|
|
109
|
-
- [ ] Calibration runs continuously, not just at setup time
|
|
110
|
-
- [ ] You create and maintain custom profiles for your organization's artifact types
|
|
111
|
-
- [ ] Executive reporting provides portfolio-level quality visibility
|
|
112
|
-
- [ ] Rubric changes follow a governed process with version bumps and re-calibration
|
|
113
|
-
|
|
114
66
|
## How to Use This Guide
|
|
115
67
|
|
|
116
|
-
The onboarding guide is organized as
|
|
68
|
+
The onboarding guide is organized as four transition guides, one for each level transition:
|
|
117
69
|
|
|
118
70
|
1. [Your First Assessment](first-assessment.md) --- Level 1 to 2: Ad Hoc to Rubric-Based
|
|
119
71
|
2. [Governed Review](governed-review.md) --- Level 2 to 3: Rubric-Based to Governed
|
|
@@ -46,7 +46,7 @@ The RULERS protocol uses the Wasserstein distance to measure how far an agent's
|
|
|
46
46
|
|
|
47
47
|
### Maintaining the gold set
|
|
48
48
|
|
|
49
|
-
The gold set (`calibration/gold-set/`)
|
|
49
|
+
The gold set (`calibration/gold-set/`) is where your organization places reference artifacts with known scores. Start with the benchmark in `examples/aws-event-driven-order-processing/` and add your own. As your standards evolve, the gold set must evolve too. Add new reference artifacts periodically and retire outdated ones. Every gold-set artifact needs scores from at least 2 calibrated human reviewers.
|
|
50
50
|
|
|
51
51
|
## Creating Custom Profiles
|
|
52
52
|
|
|
@@ -60,7 +60,7 @@ The five built-in profiles (solution-architecture, reference-architecture, adr,
|
|
|
60
60
|
|
|
61
61
|
3. **Start from the template.** Copy `templates/new-profile.template.yaml` and set the required fields: `kind: profile`, `inherits: [EAROS-CORE-002]`, and `design_method`.
|
|
62
62
|
|
|
63
|
-
4. **Write
|
|
63
|
+
4. **Write up to 12 criteria.** Each criterion needs all required fields: `question`, `description`, `scoring_guide` (all 5 levels), `required_evidence`, `anti_patterns`, `examples.good`, `examples.bad`, `decision_tree`, and `remediation_hints`.
|
|
64
64
|
|
|
65
65
|
5. **Calibrate before production.** Score 3--5 representative artifacts with 2+ reviewers. Target kappa > 0.70.
|
|
66
66
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# EaROS
|
|
1
|
+
# EaROS Profile Authoring Guide
|
|
2
2
|
|
|
3
3
|
## Overview
|
|
4
4
|
|
|
@@ -8,7 +8,7 @@ Profiles extend the Core Meta-Rubric for specific artifact types. This guide exp
|
|
|
8
8
|
|
|
9
9
|
1. Confirm the artifact type recurs enough to justify standardisation
|
|
10
10
|
2. Verify the Core Meta-Rubric alone is insufficient
|
|
11
|
-
3. Choose a design method (A-E) from EaROS
|
|
11
|
+
3. Choose a design method (A-E) from the EaROS standard (Section 15)
|
|
12
12
|
4. Gather 3-5 representative artifacts for calibration
|
|
13
13
|
|
|
14
14
|
## Profile Design Methods
|
|
@@ -24,23 +24,19 @@ Profiles extend the Core Meta-Rubric for specific artifact types. This guide exp
|
|
|
24
24
|
## Profile Rules
|
|
25
25
|
|
|
26
26
|
- Inherit the core scale (0-4) and status model unless approved exception
|
|
27
|
-
- Add no more than
|
|
27
|
+
- Add no more than 12 specific criteria (most built-in profiles use 3–9)
|
|
28
28
|
- Map every criterion to a dimension
|
|
29
29
|
- Define evidence anchors, gate types, and applicability rules
|
|
30
|
-
- Include examples
|
|
31
|
-
- Include at least one calibration artifact before approval
|
|
32
|
-
|
|
33
|
-
## v2.0 Additions
|
|
34
|
-
|
|
35
|
-
- Include `examples.good` and `examples.bad` for AI disambiguation
|
|
30
|
+
- Include `examples.good`, `examples.bad`, anti-patterns, and remediation hints
|
|
36
31
|
- Add `decision_tree` for ambiguous criteria
|
|
37
32
|
- Specify `design_method` in metadata
|
|
38
33
|
- Set `reliability_targets` for agent evaluation
|
|
39
34
|
- Document `agent_scale` if collapsing to 0-3 for agent mode
|
|
35
|
+
- Include at least one calibration artifact before approval
|
|
40
36
|
|
|
41
37
|
## Workflow
|
|
42
38
|
|
|
43
|
-
1. Create proposal (see EaROS Section 16)
|
|
39
|
+
1. Create proposal (see EaROS standard, Section 16)
|
|
44
40
|
2. Classify as profile or overlay
|
|
45
41
|
3. Choose design method (A-E)
|
|
46
42
|
4. Draft using `templates/new-profile.template.yaml`
|
|
@@ -41,13 +41,13 @@ The rule that disagreements of exactly one score level (e.g., 3 vs. 4) are treat
|
|
|
41
41
|
The universal evaluation foundation (`core/core-meta-rubric.yaml`, `rubric_id: EAROS-CORE-002`) defining nine dimensions and ten criteria applied to every architecture artifact regardless of type. All profiles inherit from the core. Used in: Section 5.1, all profile `inherits` fields.
|
|
42
42
|
|
|
43
43
|
**Profile**
|
|
44
|
-
An artifact-type extension that inherits the core meta-rubric and adds
|
|
44
|
+
An artifact-type extension that inherits the core meta-rubric and adds criteria specific to a particular artifact type (e.g., solution architecture, reference architecture, ADR). Profiles use `kind: profile` and must declare `inherits: [EAROS-CORE-002]`. Used in: Section 5.2, `profiles/` directory.
|
|
45
45
|
|
|
46
46
|
**Overlay**
|
|
47
47
|
A set of cross-cutting criteria injected on top of any core+profile combination, independent of artifact type. Overlays address concerns that recur across artifact types (security, data governance, regulatory compliance). They use `kind: overlay`, `artifact_type: any`, and `scoring.method: append_to_base_rubric`. Applied by context, not artifact type; they cannot remove or weaken base gates. Used in: Section 5.3, `overlays/` directory.
|
|
48
48
|
|
|
49
49
|
**Gate**
|
|
50
|
-
A criterion-level enforcement mechanism that prevents a poor score on a critical criterion being masked by high scores elsewhere. Gates are evaluated before any weighted average is computed. Gate severities: `none`, `advisory`, `major`, `critical` — a critical gate failure
|
|
50
|
+
A criterion-level enforcement mechanism that prevents a poor score on a critical criterion being masked by high scores elsewhere. Gates are evaluated before any weighted average is computed. Gate severities: `none`, `advisory`, `major`, `critical` — a critical gate failure blocks a passing status regardless of the average --- the specific outcome (`Reject` or `Not Reviewable`) depends on the criterion's `failure_effect`. Used in: Section 7.3, all rubric YAML `gate` fields.
|
|
51
51
|
|
|
52
52
|
**Evidence anchor**
|
|
53
53
|
A direct pointer to the specific excerpt, diagram, section, or reference in the artifact that supports a score. Required for every scored criterion under the RULERS protocol. Anchors are classified as `observed`, `inferred`, or `external`. "The artifact seems to address this" is not a valid evidence anchor. Used in: Section 10.1, all evaluation record `evidence_anchor` fields.
|
|
@@ -56,7 +56,7 @@ A direct pointer to the specific excerpt, diagram, section, or reference in the
|
|
|
56
56
|
The type of evidence behind a score: `observed` (directly quoted from the artifact), `inferred` (reasonably interpreted but not explicitly stated), or `external` (based on a standard or policy outside the artifact). Observed > inferred > external in credibility. Evidence class is mandatory in every evaluation record. Used in: Section 10.3, `outputs.require_evidence_class`.
|
|
57
57
|
|
|
58
58
|
**RULERS protocol**
|
|
59
|
-
An evidence-anchoring scoring procedure from the RULERS framework (2026) that requires extracting a direct quote or reference from the artifact before assigning any score. If no evidence can be found, the criterion is
|
|
59
|
+
An evidence-anchoring scoring procedure from the RULERS framework (2026) that requires extracting a direct quote or reference from the artifact before assigning any score. If no evidence can be found, the criterion is scored 0 (Absent) — never scored from impression alone. N/A is reserved for criteria that genuinely do not apply (see **N/A policy**). Addresses three LLM evaluation failure modes: instability under prompt variations, unverifiable reasoning, and distributional misalignment. Used in: Section 7 (agent mode), `earos-assess` skill.
|
|
60
60
|
|
|
61
61
|
**DAG evaluation flow**
|
|
62
62
|
The directed acyclic graph of eight ordered steps that agents must follow when evaluating an artifact: `structural_validation → content_extraction → criterion_scoring → cross_reference_validation → dimension_aggregation → challenge_pass → calibration → status_determination`. Steps cannot be skipped or reordered. Used in: Section 15 (agent operating pattern), `earos-assess` skill.
|
|
@@ -80,7 +80,7 @@ The authoritative inventory at the repo root listing every core rubric, profile,
|
|
|
80
80
|
The five possible outcomes of an EaROS evaluation: `Pass` (no critical gate failure, overall ≥ 3.2, no dimension < 2.0), `Conditional Pass` (overall 2.4–3.19), `Rework Required` (overall < 2.4 or repeated weak dimensions), `Reject` (critical gate failure or mandatory control breach), `Not Reviewable` (insufficient evidence to score). Gates are evaluated first; averages are computed second. Used in: Section 7.4.
|
|
81
81
|
|
|
82
82
|
**Three evaluation types**
|
|
83
|
-
The three distinct
|
|
83
|
+
The three distinct evaluation perspectives that should not be collapsed into a single opaque score: (1) **artifact quality** — is the artifact complete, coherent, and fit for purpose? (2) **architectural fitness** — does the described architecture appear sound relative to business drivers and quality attributes? (3) **governance fit** — does it comply with mandatory standards and controls? A complete, well-written artifact can describe an architecturally unsound system. These perspectives are addressed in the evaluation narrative (`decision_summary`) rather than as separately scored structured fields. Used in: Section 1 (Purpose), evaluation narratives.
|
|
84
84
|
|
|
85
85
|
**N/A policy**
|
|
86
86
|
The rule that a criterion may be scored N/A only when it genuinely does not apply in the artifact's scope or context, and that every N/A must be accompanied by a written justification. N/A criteria are excluded from the score denominator. N/A cannot be used to avoid a hard criterion. Used in: Section 7.1, all evaluation records.
|
|
@@ -420,7 +420,7 @@ change_log:
|
|
|
420
420
|
date: "2026-03-18"
|
|
421
421
|
author: "Thomas Rohde"
|
|
422
422
|
changes:
|
|
423
|
-
- Initial reference architecture profile
|
|
423
|
+
- Initial reference architecture profile
|
|
424
424
|
- 9 criteria across 6 dimensions (19 total when combined with the 10 core criteria)
|
|
425
425
|
- Designed using pattern_library method
|
|
426
426
|
- Incorporates golden path, diagram-as-code, and operational readiness research
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
# Enterprise Architecture Rubric Operational Standard (EAROS)
|
|
2
2
|
|
|
3
|
-
*
|
|
4
|
-
Status: Draft for review
|
|
3
|
+
*Status: Draft for review
|
|
5
4
|
Audience: Enterprise architects, architecture boards, design authorities, reviewers, and LLM/automation teams*
|
|
6
5
|
|
|
7
6
|
> See [docs/terminology.md](../docs/terminology.md) for definitions of all technical terms used in this standard.
|
|
@@ -29,18 +28,9 @@ This standard assumes a simple but important distinction:
|
|
|
29
28
|
These must not be collapsed into one opaque score. They are related but distinct judgments.
|
|
30
29
|
|
|
31
30
|
|
|
32
|
-
###
|
|
31
|
+
### Research foundations
|
|
33
32
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
1. **Strengthened design foundations** with explicit alignment to Microsoft's LLM-Rubric (ACL 2024), the RULERS framework (2026), and the CARO confusion-aware rubric optimization approach.
|
|
37
|
-
2. **New principle on artifact machine-readability** (Principle 8), establishing requirements for structured, parseable artifact formats.
|
|
38
|
-
3. **Expanded scoring guidance** with discussion of the 0–3 vs 0–4 scale tradeoff based on empirical evidence.
|
|
39
|
-
4. **Enhanced agentic operating pattern** with DAG-based evaluation flow, the RULERS evidence-anchoring protocol, and calibrated aggregation.
|
|
40
|
-
5. **New section on artifact format requirements** (Section 12) covering ArchiMate exchange format, ADR machine-readable formats, diagram-as-code, and metadata conventions.
|
|
41
|
-
6. **Expanded calibration methodology** with explicit inter-rater reliability targets and weighted kappa benchmarks.
|
|
42
|
-
7. **New section on rubric design for AI agents** (Section 13) with seven empirically grounded design principles.
|
|
43
|
-
8. **Updated references** with 63 additional sources.
|
|
33
|
+
This standard incorporates findings from a comprehensive research programme covering 63 sources across academic literature, industry frameworks, and emerging AI evaluation methods. Key foundations include alignment to Microsoft's LLM-Rubric (ACL 2024), the RULERS framework, and the CARO confusion-aware rubric optimization approach.
|
|
44
34
|
|
|
45
35
|
## 2. Design foundations
|
|
46
36
|
|
|
@@ -292,7 +282,7 @@ Do **not** multiply score by confidence. A low-confidence evaluation and a poor
|
|
|
292
282
|
|
|
293
283
|
Empirical research on LLM-based evaluation suggests that smaller scales (0–3) produce higher inter-rater reliability between AI agents and human reviewers. The 0–3 scale reduces the ambiguous middle zone that plagues wider scales.
|
|
294
284
|
|
|
295
|
-
However, the 0–4 scale
|
|
285
|
+
However, the 0–4 scale was chosen deliberately to distinguish between "good" (adequate with minor gaps) and "strong" (fully addressed and decision-ready). This distinction matters in architecture governance because the gap between "adequate" and "excellent" is precisely where reviewer judgment adds most value.
|
|
296
286
|
|
|
297
287
|
**Recommended approach:** Retain the 0–4 scale for human and hybrid evaluation modes. For fully agentic evaluation, organisations may optionally collapse to a 0–3 scale by merging levels 3 and 4, provided the rubric profiles define the mapping explicitly. Any scale collapse must be recorded in the evaluation metadata.
|
|
298
288
|
|
|
@@ -1187,9 +1177,9 @@ The enterprise standard should be:
|
|
|
1187
1177
|
|
|
1188
1178
|
All architecture rubrics shall be managed as governed, versioned, evidence-based evaluation assets composed from a common core meta-rubric, artifact-specific profiles, and context overlays. All scoring shall be explainable, evidence-linked, calibrated, and suitable for both human and agent-assisted application.
|
|
1189
1179
|
|
|
1190
|
-
## 33. Recommended next deliverables
|
|
1180
|
+
## 33. Recommended next deliverables
|
|
1191
1181
|
|
|
1192
|
-
To operationalize this standard, create these next
|
|
1182
|
+
To operationalize this standard, create these next:
|
|
1193
1183
|
|
|
1194
1184
|
1. core-meta-rubric.yaml
|
|
1195
1185
|
2. solution-architecture.yaml
|
package/bin.js
CHANGED
|
@@ -84,7 +84,7 @@ Usage:
|
|
|
84
84
|
earos Open the editor in your browser
|
|
85
85
|
earos <file.yaml> Open the editor with a file pre-loaded
|
|
86
86
|
earos init [dir] [--icons] Scaffold a new EAROS workspace (default: current dir)
|
|
87
|
-
earos validate <file.yaml> Validate
|
|
87
|
+
earos validate <file.yaml> Validate any EAROS YAML — rubric, evaluation, or artifact (exit 0/1)
|
|
88
88
|
earos export <file.yaml> Export artifact YAML as Word document (.docx)
|
|
89
89
|
earos manifest Regenerate earos.manifest.yaml
|
|
90
90
|
earos manifest add <file> Add a file to the manifest
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{e as x,c as O,g as m,k as P,h as p,j as w,l as c,m as A,n as I,t as N,o as _}from"./_baseUniq-
|
|
1
|
+
import{e as x,c as O,g as m,k as P,h as p,j as w,l as c,m as A,n as I,t as N,o as _}from"./_baseUniq-HuZouVIz.js";import{aV as g,aC as $,aW as E,aX as F,aY as M,aZ as b,a_ as B,a$ as T,b0 as y,b1 as S}from"./index-DMt1cpG6.js";var C=/\s/;function G(n){for(var r=n.length;r--&&C.test(n.charAt(r)););return r}var H=/^\s+/;function L(n){return n&&n.slice(0,G(n)+1).replace(H,"")}var o=NaN,R=/^[-+]0x[0-9a-f]+$/i,W=/^0b[01]+$/i,X=/^0o[0-7]+$/i,Y=parseInt;function q(n){if(typeof n=="number")return n;if(x(n))return o;if(g(n)){var r=typeof n.valueOf=="function"?n.valueOf():n;n=g(r)?r+"":r}if(typeof n!="string")return n===0?n:+n;n=L(n);var t=W.test(n);return t||X.test(n)?Y(n.slice(2),t?2:8):R.test(n)?o:+n}var v=1/0,z=17976931348623157e292;function K(n){if(!n)return n===0?n:0;if(n=q(n),n===v||n===-v){var r=n<0?-1:1;return r*z}return n===n?n:0}function Z(n){var r=K(n),t=r%1;return r===r?t?r-t:r:0}function fn(n){var r=n==null?0:n.length;return r?O(n):[]}var l=Object.prototype,D=l.hasOwnProperty,dn=$(function(n,r){n=Object(n);var t=-1,i=r.length,a=i>2?r[2]:void 0;for(a&&E(r[0],r[1],a)&&(i=1);++t<i;)for(var f=r[t],e=F(f),s=-1,d=e.length;++s<d;){var u=e[s],h=n[u];(h===void 0||M(h,l[u])&&!D.call(n,u))&&(n[u]=f[u])}return n});function un(n){var r=n==null?0:n.length;return r?n[r-1]:void 0}function J(n){return function(r,t,i){var a=Object(r);if(!b(r)){var f=m(t);r=P(r),t=function(s){return f(a[s],s,a)}}var e=n(r,t,i);return e>-1?a[f?r[e]:e]:void 0}}var Q=Math.max;function U(n,r,t){var i=n==null?0:n.length;if(!i)return-1;var a=t==null?0:Z(t);return a<0&&(a=Q(i+a,0)),p(n,m(r),a)}var hn=J(U);function V(n,r){var t=-1,i=b(n)?Array(n.length):[];return w(n,function(a,f,e){i[++t]=r(a,f,e)}),i}function gn(n,r){var t=B(n)?c:V;return t(n,m(r))}var j=Object.prototype,k=j.hasOwnProperty;function nn(n,r){return n!=null&&k.call(n,r)}function mn(n,r){return n!=null&&A(n,r,nn)}function rn(n,r){return n<r}function tn(n,r,t){for(var i=-1,a=n.length;++i<a;){var f=n[i],e=r(f);if(e!=null&&(s===void 0?e===e&&!x(e):t(e,s)))var s=e,d=f}return d}function on(n){return n&&n.length?tn(n,T,rn):void 0}function an(n,r,t,i){if(!g(n))return n;r=I(r,n);for(var a=-1,f=r.length,e=f-1,s=n;s!=null&&++a<f;){var d=N(r[a]),u=t;if(d==="__proto__"||d==="constructor"||d==="prototype")return n;if(a!=e){var h=s[d];u=void 0,u===void 0&&(u=g(h)?h:y(r[a+1])?[]:{})}S(s,d,u),s=s[d]}return n}function vn(n,r,t){for(var i=-1,a=r.length,f={};++i<a;){var e=r[i],s=_(n,e);t(s,e)&&an(f,I(e,n),s)}return f}export{rn as a,tn as b,V as c,vn as d,on as e,fn as f,hn as g,mn as h,dn as i,Z as j,un as l,gn as m,K as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{bi as E,bj as Rn,a_ as T,bk as w,aZ as sn,bl as xn,bm as mn,bn as Cn,bo as un,bp as x,aX as B,bq as Mn,br as on,bs as Fn,bt as S,bg as gn,bu as R,aV as ln,bv as Dn,bw as D,bx as Gn,by as Bn,bz as _,b1 as Un,bA as Nn,aY as Kn,bB as X,bC as jn,bD as Hn,b0 as qn,a$ as cn,be as Yn,bE as C}from"./index-BFFITMT8.js";var Zn="[object Symbol]";function U(n){return typeof n=="symbol"||E(n)&&Rn(n)==Zn}function bn(n,r){for(var e=-1,t=n==null?0:n.length,f=Array(t);++e<t;)f[e]=r(n[e],e,n);return f}var J=w?w.prototype:void 0,Q=J?J.toString:void 0;function dn(n){if(typeof n=="string")return n;if(T(n))return bn(n,dn)+"";if(U(n))return Q?Q.call(n):"";var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function Xn(){}function pn(n,r){for(var e=-1,t=n==null?0:n.length;++e<t&&r(n[e],e,n)!==!1;);return n}function Jn(n,r,e,t){for(var f=n.length,i=e+-1;++i<f;)if(r(n[i],i,n))return i;return-1}function Qn(n){return n!==n}function Wn(n,r,e){for(var t=e-1,f=n.length;++t<f;)if(n[t]===r)return t;return-1}function zn(n,r,e){return r===r?Wn(n,r,e):Jn(n,Qn,e)}function Vn(n,r){var e=n==null?0:n.length;return!!e&&zn(n,r,0)>-1}function $(n){return sn(n)?xn(n):mn(n)}var kn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,nr=/^\w*$/;function N(n,r){if(T(n))return!1;var e=typeof n;return e=="number"||e=="symbol"||e=="boolean"||n==null||U(n)?!0:nr.test(n)||!kn.test(n)||r!=null&&n in Object(r)}var rr=500;function er(n){var r=Cn(n,function(t){return e.size===rr&&e.clear(),t}),e=r.cache;return r}var tr=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ir=/\\(\\)?/g,fr=er(function(n){var r=[];return n.charCodeAt(0)===46&&r.push(""),n.replace(tr,function(e,t,f,i){r.push(f?i.replace(ir,"$1"):t||e)}),r});function ar(n){return n==null?"":dn(n)}function An(n,r){return T(n)?n:N(n,r)?[n]:fr(ar(n))}function m(n){if(typeof n=="string"||U(n))return n;var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function yn(n,r){r=An(r,n);for(var e=0,t=r.length;n!=null&&e<t;)n=n[m(r[e++])];return e&&e==t?n:void 0}function sr(n,r,e){var t=n==null?void 0:yn(n,r);return t===void 0?e:t}function K(n,r){for(var e=-1,t=r.length,f=n.length;++e<t;)n[f+e]=r[e];return n}var W=w?w.isConcatSpreadable:void 0;function ur(n){return T(n)||un(n)||!!(W&&n&&n[W])}function Ot(n,r,e,t,f){var i=-1,a=n.length;for(e||(e=ur),f||(f=[]);++i<a;){var s=n[i];e(s)?K(f,s):t||(f[f.length]=s)}return f}function or(n,r,e,t){var f=-1,i=n==null?0:n.length;for(t&&i&&(e=n[++f]);++f<i;)e=r(e,n[f],f,n);return e}function gr(n,r){return n&&x(r,$(r),n)}function lr(n,r){return n&&x(r,B(r),n)}function Tn(n,r){for(var e=-1,t=n==null?0:n.length,f=0,i=[];++e<t;){var a=n[e];r(a,e,n)&&(i[f++]=a)}return i}function hn(){return[]}var cr=Object.prototype,br=cr.propertyIsEnumerable,z=Object.getOwnPropertySymbols,j=z?function(n){return n==null?[]:(n=Object(n),Tn(z(n),function(r){return br.call(n,r)}))}:hn;function dr(n,r){return x(n,j(n),r)}var pr=Object.getOwnPropertySymbols,wn=pr?function(n){for(var r=[];n;)K(r,j(n)),n=Mn(n);return r}:hn;function Ar(n,r){return x(n,wn(n),r)}function On(n,r,e){var t=r(n);return T(n)?t:K(t,e(n))}function G(n){return On(n,$,j)}function yr(n){return On(n,B,wn)}var Tr=Object.prototype,hr=Tr.hasOwnProperty;function wr(n){var r=n.length,e=new n.constructor(r);return r&&typeof n[0]=="string"&&hr.call(n,"index")&&(e.index=n.index,e.input=n.input),e}function Or(n,r){var e=r?on(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.byteLength)}var $r=/\w*$/;function _r(n){var r=new n.constructor(n.source,$r.exec(n));return r.lastIndex=n.lastIndex,r}var V=w?w.prototype:void 0,k=V?V.valueOf:void 0;function Er(n){return k?Object(k.call(n)):{}}var Sr="[object Boolean]",Ir="[object Date]",Pr="[object Map]",vr="[object Number]",Lr="[object RegExp]",Rr="[object Set]",xr="[object String]",mr="[object Symbol]",Cr="[object ArrayBuffer]",Mr="[object DataView]",Fr="[object Float32Array]",Dr="[object Float64Array]",Gr="[object Int8Array]",Br="[object Int16Array]",Ur="[object Int32Array]",Nr="[object Uint8Array]",Kr="[object Uint8ClampedArray]",jr="[object Uint16Array]",Hr="[object Uint32Array]";function qr(n,r,e){var t=n.constructor;switch(r){case Cr:return on(n);case Sr:case Ir:return new t(+n);case Mr:return Or(n,e);case Fr:case Dr:case Gr:case Br:case Ur:case Nr:case Kr:case jr:case Hr:return Fn(n,e);case Pr:return new t;case vr:case xr:return new t(n);case Lr:return _r(n);case Rr:return new t;case mr:return Er(n)}}var Yr="[object Map]";function Zr(n){return E(n)&&S(n)==Yr}var nn=R&&R.isMap,Xr=nn?gn(nn):Zr,Jr="[object Set]";function Qr(n){return E(n)&&S(n)==Jr}var rn=R&&R.isSet,Wr=rn?gn(rn):Qr,zr=1,Vr=2,kr=4,$n="[object Arguments]",ne="[object Array]",re="[object Boolean]",ee="[object Date]",te="[object Error]",_n="[object Function]",ie="[object GeneratorFunction]",fe="[object Map]",ae="[object Number]",En="[object Object]",se="[object RegExp]",ue="[object Set]",oe="[object String]",ge="[object Symbol]",le="[object WeakMap]",ce="[object ArrayBuffer]",be="[object DataView]",de="[object Float32Array]",pe="[object Float64Array]",Ae="[object Int8Array]",ye="[object Int16Array]",Te="[object Int32Array]",he="[object Uint8Array]",we="[object Uint8ClampedArray]",Oe="[object Uint16Array]",$e="[object Uint32Array]",g={};g[$n]=g[ne]=g[ce]=g[be]=g[re]=g[ee]=g[de]=g[pe]=g[Ae]=g[ye]=g[Te]=g[fe]=g[ae]=g[En]=g[se]=g[ue]=g[oe]=g[ge]=g[he]=g[we]=g[Oe]=g[$e]=!0;g[te]=g[_n]=g[le]=!1;function M(n,r,e,t,f,i){var a,s=r&zr,u=r&Vr,b=r&kr;if(a!==void 0)return a;if(!ln(n))return n;var l=T(n);if(l){if(a=wr(n),!s)return Dn(n,a)}else{var o=S(n),c=o==_n||o==ie;if(D(n))return Gn(n,s);if(o==En||o==$n||c&&!f){if(a=u||c?{}:Bn(n),!s)return u?Ar(n,lr(a,n)):dr(n,gr(a,n))}else{if(!g[o])return f?n:{};a=qr(n,o,s)}}i||(i=new _);var h=i.get(n);if(h)return h;i.set(n,a),Wr(n)?n.forEach(function(d){a.add(M(d,r,e,d,n,i))}):Xr(n)&&n.forEach(function(d,p){a.set(p,M(d,r,e,p,n,i))});var A=b?u?yr:G:u?B:$,y=l?void 0:A(n);return pn(y||n,function(d,p){y&&(p=d,d=n[p]),Un(a,p,M(d,r,e,p,n,i))}),a}var _e="__lodash_hash_undefined__";function Ee(n){return this.__data__.set(n,_e),this}function Se(n){return this.__data__.has(n)}function I(n){var r=-1,e=n==null?0:n.length;for(this.__data__=new Nn;++r<e;)this.add(n[r])}I.prototype.add=I.prototype.push=Ee;I.prototype.has=Se;function Ie(n,r){for(var e=-1,t=n==null?0:n.length;++e<t;)if(r(n[e],e,n))return!0;return!1}function Sn(n,r){return n.has(r)}var Pe=1,ve=2;function In(n,r,e,t,f,i){var a=e&Pe,s=n.length,u=r.length;if(s!=u&&!(a&&u>s))return!1;var b=i.get(n),l=i.get(r);if(b&&l)return b==r&&l==n;var o=-1,c=!0,h=e&ve?new I:void 0;for(i.set(n,r),i.set(r,n);++o<s;){var A=n[o],y=r[o];if(t)var d=a?t(y,A,o,r,n,i):t(A,y,o,n,r,i);if(d!==void 0){if(d)continue;c=!1;break}if(h){if(!Ie(r,function(p,O){if(!Sn(h,O)&&(A===p||f(A,p,e,t,i)))return h.push(O)})){c=!1;break}}else if(!(A===y||f(A,y,e,t,i))){c=!1;break}}return i.delete(n),i.delete(r),c}function Le(n){var r=-1,e=Array(n.size);return n.forEach(function(t,f){e[++r]=[f,t]}),e}function H(n){var r=-1,e=Array(n.size);return n.forEach(function(t){e[++r]=t}),e}var Re=1,xe=2,me="[object Boolean]",Ce="[object Date]",Me="[object Error]",Fe="[object Map]",De="[object Number]",Ge="[object RegExp]",Be="[object Set]",Ue="[object String]",Ne="[object Symbol]",Ke="[object ArrayBuffer]",je="[object DataView]",en=w?w.prototype:void 0,F=en?en.valueOf:void 0;function He(n,r,e,t,f,i,a){switch(e){case je:if(n.byteLength!=r.byteLength||n.byteOffset!=r.byteOffset)return!1;n=n.buffer,r=r.buffer;case Ke:return!(n.byteLength!=r.byteLength||!i(new X(n),new X(r)));case me:case Ce:case De:return Kn(+n,+r);case Me:return n.name==r.name&&n.message==r.message;case Ge:case Ue:return n==r+"";case Fe:var s=Le;case Be:var u=tℜif(s||(s=H),n.size!=r.size&&!u)return!1;var b=a.get(n);if(b)return b==r;t|=xe,a.set(n,r);var l=In(s(n),s(r),t,f,i,a);return a.delete(n),l;case Ne:if(F)return F.call(n)==F.call(r)}return!1}var qe=1,Ye=Object.prototype,Ze=Ye.hasOwnProperty;function Xe(n,r,e,t,f,i){var a=e&qe,s=G(n),u=s.length,b=G(r),l=b.length;if(u!=l&&!a)return!1;for(var o=u;o--;){var c=s[o];if(!(a?c in r:Ze.call(r,c)))return!1}var h=i.get(n),A=i.get(r);if(h&&A)return h==r&&A==n;var y=!0;i.set(n,r),i.set(r,n);for(var d=a;++o<u;){c=s[o];var p=n[c],O=r[c];if(t)var Z=a?t(O,p,c,r,n,i):t(p,O,c,n,r,i);if(!(Z===void 0?p===O||f(p,O,e,t,i):Z)){y=!1;break}d||(d=c=="constructor")}if(y&&!d){var P=n.constructor,v=r.constructor;P!=v&&"constructor"in n&&"constructor"in r&&!(typeof P=="function"&&P instanceof P&&typeof v=="function"&&v instanceof v)&&(y=!1)}return i.delete(n),i.delete(r),y}var Je=1,tn="[object Arguments]",fn="[object Array]",L="[object Object]",Qe=Object.prototype,an=Qe.hasOwnProperty;function We(n,r,e,t,f,i){var a=T(n),s=T(r),u=a?fn:S(n),b=s?fn:S(r);u=u==tn?L:u,b=b==tn?L:b;var l=u==L,o=b==L,c=u==b;if(c&&D(n)){if(!D(r))return!1;a=!0,l=!1}if(c&&!l)return i||(i=new _),a||jn(n)?In(n,r,e,t,f,i):He(n,r,u,e,t,f,i);if(!(e&Je)){var h=l&&an.call(n,"__wrapped__"),A=o&&an.call(r,"__wrapped__");if(h||A){var y=h?n.value():n,d=A?r.value():r;return i||(i=new _),f(y,d,e,t,i)}}return c?(i||(i=new _),Xe(n,r,e,t,f,i)):!1}function q(n,r,e,t,f){return n===r?!0:n==null||r==null||!E(n)&&!E(r)?n!==n&&r!==r:We(n,r,e,t,q,f)}var ze=1,Ve=2;function ke(n,r,e,t){var f=e.length,i=f;if(n==null)return!i;for(n=Object(n);f--;){var a=e[f];if(a[2]?a[1]!==n[a[0]]:!(a[0]in n))return!1}for(;++f<i;){a=e[f];var s=a[0],u=n[s],b=a[1];if(a[2]){if(u===void 0&&!(s in n))return!1}else{var l=new _,o;if(!(o===void 0?q(b,u,ze|Ve,t,l):o))return!1}}return!0}function Pn(n){return n===n&&!ln(n)}function nt(n){for(var r=$(n),e=r.length;e--;){var t=r[e],f=n[t];r[e]=[t,f,Pn(f)]}return r}function vn(n,r){return function(e){return e==null?!1:e[n]===r&&(r!==void 0||n in Object(e))}}function rt(n){var r=nt(n);return r.length==1&&r[0][2]?vn(r[0][0],r[0][1]):function(e){return e===n||ke(e,n,r)}}function et(n,r){return n!=null&&r in Object(n)}function tt(n,r,e){r=An(r,n);for(var t=-1,f=r.length,i=!1;++t<f;){var a=m(r[t]);if(!(i=n!=null&&e(n,a)))break;n=n[a]}return i||++t!=f?i:(f=n==null?0:n.length,!!f&&Hn(f)&&qn(a,f)&&(T(n)||un(n)))}function it(n,r){return n!=null&&tt(n,r,et)}var ft=1,at=2;function st(n,r){return N(n)&&Pn(r)?vn(m(n),r):function(e){var t=sr(e,n);return t===void 0&&t===r?it(e,n):q(r,t,ft|at)}}function ut(n){return function(r){return r==null?void 0:r[n]}}function ot(n){return function(r){return yn(r,n)}}function gt(n){return N(n)?ut(m(n)):ot(n)}function Ln(n){return typeof n=="function"?n:n==null?cn:typeof n=="object"?T(n)?st(n[0],n[1]):rt(n):gt(n)}function lt(n,r){return n&&Yn(n,r,$)}function ct(n,r){return function(e,t){if(e==null)return e;if(!sn(e))return n(e,t);for(var f=e.length,i=-1,a=Object(e);++i<f&&t(a[i],i,a)!==!1;);return e}}var Y=ct(lt);function bt(n){return typeof n=="function"?n:cn}function $t(n,r){var e=T(n)?pn:Y;return e(n,bt(r))}function dt(n,r){var e=[];return Y(n,function(t,f,i){r(t,f,i)&&e.push(t)}),e}function _t(n,r){var e=T(n)?Tn:dt;return e(n,Ln(r))}function pt(n,r){return bn(r,function(e){return n[e]})}function Et(n){return n==null?[]:pt(n,$(n))}function St(n){return n===void 0}function At(n,r,e,t,f){return f(n,function(i,a,s){e=t?(t=!1,i):r(e,i,a,s)}),e}function It(n,r,e){var t=T(n)?or:At,f=arguments.length<3;return t(n,Ln(r),e,f,Y)}var yt=1/0,Tt=C&&1/H(new C([,-0]))[1]==yt?function(n){return new C(n)}:Xn,ht=200;function Pt(n,r,e){var t=-1,f=Vn,i=n.length,a=!0,s=[],u=s;if(i>=ht){var b=r?null:Tt(n);if(b)return H(b);a=!1,f=Sn,u=new I}else u=r?[]:s;n:for(;++t<i;){var l=n[t],o=r?r(l):l;if(l=l!==0?l:0,a&&o===o){for(var c=u.length;c--;)if(u[c]===o)continue n;r&&u.push(o),s.push(l)}else f(u,o,e)||(u!==s&&u.push(o),s.push(l))}return s}export{Tn as A,dt as B,Ie as C,Xn as D,I as S,Pt as a,M as b,Ot as c,$t as d,U as e,_t as f,Ln as g,Jn as h,St as i,Y as j,$ as k,bn as l,tt as m,An as n,yn as o,bt as p,lt as q,It as r,it as s,m as t,ar as u,Et as v,Vn as w,Sn as x,zn as y,yr as z};
|
|
1
|
+
import{bi as E,bj as Rn,a_ as T,bk as w,aZ as sn,bl as xn,bm as mn,bn as Cn,bo as un,bp as x,aX as B,bq as Mn,br as on,bs as Fn,bt as S,bg as gn,bu as R,aV as ln,bv as Dn,bw as D,bx as Gn,by as Bn,bz as _,b1 as Un,bA as Nn,aY as Kn,bB as X,bC as jn,bD as Hn,b0 as qn,a$ as cn,be as Yn,bE as C}from"./index-DMt1cpG6.js";var Zn="[object Symbol]";function U(n){return typeof n=="symbol"||E(n)&&Rn(n)==Zn}function bn(n,r){for(var e=-1,t=n==null?0:n.length,f=Array(t);++e<t;)f[e]=r(n[e],e,n);return f}var J=w?w.prototype:void 0,Q=J?J.toString:void 0;function dn(n){if(typeof n=="string")return n;if(T(n))return bn(n,dn)+"";if(U(n))return Q?Q.call(n):"";var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function Xn(){}function pn(n,r){for(var e=-1,t=n==null?0:n.length;++e<t&&r(n[e],e,n)!==!1;);return n}function Jn(n,r,e,t){for(var f=n.length,i=e+-1;++i<f;)if(r(n[i],i,n))return i;return-1}function Qn(n){return n!==n}function Wn(n,r,e){for(var t=e-1,f=n.length;++t<f;)if(n[t]===r)return t;return-1}function zn(n,r,e){return r===r?Wn(n,r,e):Jn(n,Qn,e)}function Vn(n,r){var e=n==null?0:n.length;return!!e&&zn(n,r,0)>-1}function $(n){return sn(n)?xn(n):mn(n)}var kn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,nr=/^\w*$/;function N(n,r){if(T(n))return!1;var e=typeof n;return e=="number"||e=="symbol"||e=="boolean"||n==null||U(n)?!0:nr.test(n)||!kn.test(n)||r!=null&&n in Object(r)}var rr=500;function er(n){var r=Cn(n,function(t){return e.size===rr&&e.clear(),t}),e=r.cache;return r}var tr=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ir=/\\(\\)?/g,fr=er(function(n){var r=[];return n.charCodeAt(0)===46&&r.push(""),n.replace(tr,function(e,t,f,i){r.push(f?i.replace(ir,"$1"):t||e)}),r});function ar(n){return n==null?"":dn(n)}function An(n,r){return T(n)?n:N(n,r)?[n]:fr(ar(n))}function m(n){if(typeof n=="string"||U(n))return n;var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function yn(n,r){r=An(r,n);for(var e=0,t=r.length;n!=null&&e<t;)n=n[m(r[e++])];return e&&e==t?n:void 0}function sr(n,r,e){var t=n==null?void 0:yn(n,r);return t===void 0?e:t}function K(n,r){for(var e=-1,t=r.length,f=n.length;++e<t;)n[f+e]=r[e];return n}var W=w?w.isConcatSpreadable:void 0;function ur(n){return T(n)||un(n)||!!(W&&n&&n[W])}function Ot(n,r,e,t,f){var i=-1,a=n.length;for(e||(e=ur),f||(f=[]);++i<a;){var s=n[i];e(s)?K(f,s):t||(f[f.length]=s)}return f}function or(n,r,e,t){var f=-1,i=n==null?0:n.length;for(t&&i&&(e=n[++f]);++f<i;)e=r(e,n[f],f,n);return e}function gr(n,r){return n&&x(r,$(r),n)}function lr(n,r){return n&&x(r,B(r),n)}function Tn(n,r){for(var e=-1,t=n==null?0:n.length,f=0,i=[];++e<t;){var a=n[e];r(a,e,n)&&(i[f++]=a)}return i}function hn(){return[]}var cr=Object.prototype,br=cr.propertyIsEnumerable,z=Object.getOwnPropertySymbols,j=z?function(n){return n==null?[]:(n=Object(n),Tn(z(n),function(r){return br.call(n,r)}))}:hn;function dr(n,r){return x(n,j(n),r)}var pr=Object.getOwnPropertySymbols,wn=pr?function(n){for(var r=[];n;)K(r,j(n)),n=Mn(n);return r}:hn;function Ar(n,r){return x(n,wn(n),r)}function On(n,r,e){var t=r(n);return T(n)?t:K(t,e(n))}function G(n){return On(n,$,j)}function yr(n){return On(n,B,wn)}var Tr=Object.prototype,hr=Tr.hasOwnProperty;function wr(n){var r=n.length,e=new n.constructor(r);return r&&typeof n[0]=="string"&&hr.call(n,"index")&&(e.index=n.index,e.input=n.input),e}function Or(n,r){var e=r?on(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.byteLength)}var $r=/\w*$/;function _r(n){var r=new n.constructor(n.source,$r.exec(n));return r.lastIndex=n.lastIndex,r}var V=w?w.prototype:void 0,k=V?V.valueOf:void 0;function Er(n){return k?Object(k.call(n)):{}}var Sr="[object Boolean]",Ir="[object Date]",Pr="[object Map]",vr="[object Number]",Lr="[object RegExp]",Rr="[object Set]",xr="[object String]",mr="[object Symbol]",Cr="[object ArrayBuffer]",Mr="[object DataView]",Fr="[object Float32Array]",Dr="[object Float64Array]",Gr="[object Int8Array]",Br="[object Int16Array]",Ur="[object Int32Array]",Nr="[object Uint8Array]",Kr="[object Uint8ClampedArray]",jr="[object Uint16Array]",Hr="[object Uint32Array]";function qr(n,r,e){var t=n.constructor;switch(r){case Cr:return on(n);case Sr:case Ir:return new t(+n);case Mr:return Or(n,e);case Fr:case Dr:case Gr:case Br:case Ur:case Nr:case Kr:case jr:case Hr:return Fn(n,e);case Pr:return new t;case vr:case xr:return new t(n);case Lr:return _r(n);case Rr:return new t;case mr:return Er(n)}}var Yr="[object Map]";function Zr(n){return E(n)&&S(n)==Yr}var nn=R&&R.isMap,Xr=nn?gn(nn):Zr,Jr="[object Set]";function Qr(n){return E(n)&&S(n)==Jr}var rn=R&&R.isSet,Wr=rn?gn(rn):Qr,zr=1,Vr=2,kr=4,$n="[object Arguments]",ne="[object Array]",re="[object Boolean]",ee="[object Date]",te="[object Error]",_n="[object Function]",ie="[object GeneratorFunction]",fe="[object Map]",ae="[object Number]",En="[object Object]",se="[object RegExp]",ue="[object Set]",oe="[object String]",ge="[object Symbol]",le="[object WeakMap]",ce="[object ArrayBuffer]",be="[object DataView]",de="[object Float32Array]",pe="[object Float64Array]",Ae="[object Int8Array]",ye="[object Int16Array]",Te="[object Int32Array]",he="[object Uint8Array]",we="[object Uint8ClampedArray]",Oe="[object Uint16Array]",$e="[object Uint32Array]",g={};g[$n]=g[ne]=g[ce]=g[be]=g[re]=g[ee]=g[de]=g[pe]=g[Ae]=g[ye]=g[Te]=g[fe]=g[ae]=g[En]=g[se]=g[ue]=g[oe]=g[ge]=g[he]=g[we]=g[Oe]=g[$e]=!0;g[te]=g[_n]=g[le]=!1;function M(n,r,e,t,f,i){var a,s=r&zr,u=r&Vr,b=r&kr;if(a!==void 0)return a;if(!ln(n))return n;var l=T(n);if(l){if(a=wr(n),!s)return Dn(n,a)}else{var o=S(n),c=o==_n||o==ie;if(D(n))return Gn(n,s);if(o==En||o==$n||c&&!f){if(a=u||c?{}:Bn(n),!s)return u?Ar(n,lr(a,n)):dr(n,gr(a,n))}else{if(!g[o])return f?n:{};a=qr(n,o,s)}}i||(i=new _);var h=i.get(n);if(h)return h;i.set(n,a),Wr(n)?n.forEach(function(d){a.add(M(d,r,e,d,n,i))}):Xr(n)&&n.forEach(function(d,p){a.set(p,M(d,r,e,p,n,i))});var A=b?u?yr:G:u?B:$,y=l?void 0:A(n);return pn(y||n,function(d,p){y&&(p=d,d=n[p]),Un(a,p,M(d,r,e,p,n,i))}),a}var _e="__lodash_hash_undefined__";function Ee(n){return this.__data__.set(n,_e),this}function Se(n){return this.__data__.has(n)}function I(n){var r=-1,e=n==null?0:n.length;for(this.__data__=new Nn;++r<e;)this.add(n[r])}I.prototype.add=I.prototype.push=Ee;I.prototype.has=Se;function Ie(n,r){for(var e=-1,t=n==null?0:n.length;++e<t;)if(r(n[e],e,n))return!0;return!1}function Sn(n,r){return n.has(r)}var Pe=1,ve=2;function In(n,r,e,t,f,i){var a=e&Pe,s=n.length,u=r.length;if(s!=u&&!(a&&u>s))return!1;var b=i.get(n),l=i.get(r);if(b&&l)return b==r&&l==n;var o=-1,c=!0,h=e&ve?new I:void 0;for(i.set(n,r),i.set(r,n);++o<s;){var A=n[o],y=r[o];if(t)var d=a?t(y,A,o,r,n,i):t(A,y,o,n,r,i);if(d!==void 0){if(d)continue;c=!1;break}if(h){if(!Ie(r,function(p,O){if(!Sn(h,O)&&(A===p||f(A,p,e,t,i)))return h.push(O)})){c=!1;break}}else if(!(A===y||f(A,y,e,t,i))){c=!1;break}}return i.delete(n),i.delete(r),c}function Le(n){var r=-1,e=Array(n.size);return n.forEach(function(t,f){e[++r]=[f,t]}),e}function H(n){var r=-1,e=Array(n.size);return n.forEach(function(t){e[++r]=t}),e}var Re=1,xe=2,me="[object Boolean]",Ce="[object Date]",Me="[object Error]",Fe="[object Map]",De="[object Number]",Ge="[object RegExp]",Be="[object Set]",Ue="[object String]",Ne="[object Symbol]",Ke="[object ArrayBuffer]",je="[object DataView]",en=w?w.prototype:void 0,F=en?en.valueOf:void 0;function He(n,r,e,t,f,i,a){switch(e){case je:if(n.byteLength!=r.byteLength||n.byteOffset!=r.byteOffset)return!1;n=n.buffer,r=r.buffer;case Ke:return!(n.byteLength!=r.byteLength||!i(new X(n),new X(r)));case me:case Ce:case De:return Kn(+n,+r);case Me:return n.name==r.name&&n.message==r.message;case Ge:case Ue:return n==r+"";case Fe:var s=Le;case Be:var u=tℜif(s||(s=H),n.size!=r.size&&!u)return!1;var b=a.get(n);if(b)return b==r;t|=xe,a.set(n,r);var l=In(s(n),s(r),t,f,i,a);return a.delete(n),l;case Ne:if(F)return F.call(n)==F.call(r)}return!1}var qe=1,Ye=Object.prototype,Ze=Ye.hasOwnProperty;function Xe(n,r,e,t,f,i){var a=e&qe,s=G(n),u=s.length,b=G(r),l=b.length;if(u!=l&&!a)return!1;for(var o=u;o--;){var c=s[o];if(!(a?c in r:Ze.call(r,c)))return!1}var h=i.get(n),A=i.get(r);if(h&&A)return h==r&&A==n;var y=!0;i.set(n,r),i.set(r,n);for(var d=a;++o<u;){c=s[o];var p=n[c],O=r[c];if(t)var Z=a?t(O,p,c,r,n,i):t(p,O,c,n,r,i);if(!(Z===void 0?p===O||f(p,O,e,t,i):Z)){y=!1;break}d||(d=c=="constructor")}if(y&&!d){var P=n.constructor,v=r.constructor;P!=v&&"constructor"in n&&"constructor"in r&&!(typeof P=="function"&&P instanceof P&&typeof v=="function"&&v instanceof v)&&(y=!1)}return i.delete(n),i.delete(r),y}var Je=1,tn="[object Arguments]",fn="[object Array]",L="[object Object]",Qe=Object.prototype,an=Qe.hasOwnProperty;function We(n,r,e,t,f,i){var a=T(n),s=T(r),u=a?fn:S(n),b=s?fn:S(r);u=u==tn?L:u,b=b==tn?L:b;var l=u==L,o=b==L,c=u==b;if(c&&D(n)){if(!D(r))return!1;a=!0,l=!1}if(c&&!l)return i||(i=new _),a||jn(n)?In(n,r,e,t,f,i):He(n,r,u,e,t,f,i);if(!(e&Je)){var h=l&&an.call(n,"__wrapped__"),A=o&&an.call(r,"__wrapped__");if(h||A){var y=h?n.value():n,d=A?r.value():r;return i||(i=new _),f(y,d,e,t,i)}}return c?(i||(i=new _),Xe(n,r,e,t,f,i)):!1}function q(n,r,e,t,f){return n===r?!0:n==null||r==null||!E(n)&&!E(r)?n!==n&&r!==r:We(n,r,e,t,q,f)}var ze=1,Ve=2;function ke(n,r,e,t){var f=e.length,i=f;if(n==null)return!i;for(n=Object(n);f--;){var a=e[f];if(a[2]?a[1]!==n[a[0]]:!(a[0]in n))return!1}for(;++f<i;){a=e[f];var s=a[0],u=n[s],b=a[1];if(a[2]){if(u===void 0&&!(s in n))return!1}else{var l=new _,o;if(!(o===void 0?q(b,u,ze|Ve,t,l):o))return!1}}return!0}function Pn(n){return n===n&&!ln(n)}function nt(n){for(var r=$(n),e=r.length;e--;){var t=r[e],f=n[t];r[e]=[t,f,Pn(f)]}return r}function vn(n,r){return function(e){return e==null?!1:e[n]===r&&(r!==void 0||n in Object(e))}}function rt(n){var r=nt(n);return r.length==1&&r[0][2]?vn(r[0][0],r[0][1]):function(e){return e===n||ke(e,n,r)}}function et(n,r){return n!=null&&r in Object(n)}function tt(n,r,e){r=An(r,n);for(var t=-1,f=r.length,i=!1;++t<f;){var a=m(r[t]);if(!(i=n!=null&&e(n,a)))break;n=n[a]}return i||++t!=f?i:(f=n==null?0:n.length,!!f&&Hn(f)&&qn(a,f)&&(T(n)||un(n)))}function it(n,r){return n!=null&&tt(n,r,et)}var ft=1,at=2;function st(n,r){return N(n)&&Pn(r)?vn(m(n),r):function(e){var t=sr(e,n);return t===void 0&&t===r?it(e,n):q(r,t,ft|at)}}function ut(n){return function(r){return r==null?void 0:r[n]}}function ot(n){return function(r){return yn(r,n)}}function gt(n){return N(n)?ut(m(n)):ot(n)}function Ln(n){return typeof n=="function"?n:n==null?cn:typeof n=="object"?T(n)?st(n[0],n[1]):rt(n):gt(n)}function lt(n,r){return n&&Yn(n,r,$)}function ct(n,r){return function(e,t){if(e==null)return e;if(!sn(e))return n(e,t);for(var f=e.length,i=-1,a=Object(e);++i<f&&t(a[i],i,a)!==!1;);return e}}var Y=ct(lt);function bt(n){return typeof n=="function"?n:cn}function $t(n,r){var e=T(n)?pn:Y;return e(n,bt(r))}function dt(n,r){var e=[];return Y(n,function(t,f,i){r(t,f,i)&&e.push(t)}),e}function _t(n,r){var e=T(n)?Tn:dt;return e(n,Ln(r))}function pt(n,r){return bn(r,function(e){return n[e]})}function Et(n){return n==null?[]:pt(n,$(n))}function St(n){return n===void 0}function At(n,r,e,t,f){return f(n,function(i,a,s){e=t?(t=!1,i):r(e,i,a,s)}),e}function It(n,r,e){var t=T(n)?or:At,f=arguments.length<3;return t(n,Ln(r),e,f,Y)}var yt=1/0,Tt=C&&1/H(new C([,-0]))[1]==yt?function(n){return new C(n)}:Xn,ht=200;function Pt(n,r,e){var t=-1,f=Vn,i=n.length,a=!0,s=[],u=s;if(i>=ht){var b=r?null:Tt(n);if(b)return H(b);a=!1,f=Sn,u=new I}else u=r?[]:s;n:for(;++t<i;){var l=n[t],o=r?r(l):l;if(l=l!==0?l:0,a&&o===o){for(var c=u.length;c--;)if(u[c]===o)continue n;r&&u.push(o),s.push(l)}else f(u,o,e)||(u!==s&&u.push(o),s.push(l))}return s}export{Tn as A,dt as B,Ie as C,Xn as D,I as S,Pt as a,M as b,Ot as c,$t as d,U as e,_t as f,Ln as g,Jn as h,St as i,Y as j,$ as k,bn as l,tt as m,An as n,yn as o,bt as p,lt as q,It as r,it as s,m as t,ar as u,Et as v,Vn as w,Sn as x,zn as y,yr as z};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a0 as ln,a1 as an,a2 as y,a3 as tn,a4 as H,a5 as q,a6 as _,a7 as un,a8 as rn,a9 as L,aa as o,ab as B,ac as sn,ad as on,ae as fn}from"./index-
|
|
1
|
+
import{a0 as ln,a1 as an,a2 as y,a3 as tn,a4 as H,a5 as q,a6 as _,a7 as un,a8 as rn,a9 as L,aa as o,ab as B,ac as sn,ad as on,ae as fn}from"./index-DMt1cpG6.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function dn(l){return l.endAngle}function mn(l){return l&&l.padAngle}function pn(l,h,I,D,v,A,C,a){var O=I-l,i=D-h,n=C-v,d=a-A,u=d*O-n*i;if(!(u*u<y))return u=(n*(h-A)-d*(l-v))/u,[l+u*O,h+u*i]}function W(l,h,I,D,v,A,C){var a=l-I,O=h-D,i=(C?A:-A)/L(a*a+O*O),n=i*O,d=-i*a,u=l+n,s=h+d,f=I+n,c=D+d,F=(u+f)/2,t=(s+c)/2,m=f-u,g=c-s,R=m*m+g*g,T=v-A,P=u*c-f*s,S=(g<0?-1:1)*L(fn(0,T*T*R-P*P)),j=(P*g-m*S)/R,z=(-P*m-g*S)/R,w=(P*g+m*S)/R,p=(-P*m+g*S)/R,x=j-F,e=z-t,r=w-F,G=p-t;return x*x+e*e>r*r+G*G&&(j=w,z=p),{cx:j,cy:z,x01:-n,y01:-d,x11:j*(v/T-1),y11:z*(v/T-1)}}function hn(){var l=cn,h=yn,I=B(0),D=null,v=gn,A=dn,C=mn,a=null,O=ln(i);function i(){var n,d,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-an,c=A.apply(this,arguments)-an,F=un(c-f),t=c>f;if(a||(a=n=O()),s<u&&(d=s,s=u,u=d),!(s>y))a.moveTo(0,0);else if(F>tn-y)a.moveTo(s*H(f),s*q(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*H(c),u*q(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,R=f,T=c,P=F,S=F,j=C.apply(this,arguments)/2,z=j>y&&(D?+D.apply(this,arguments):L(u*u+s*s)),w=_(un(s-u)/2,+I.apply(this,arguments)),p=w,x=w,e,r;if(z>y){var G=sn(z/u*q(j)),M=sn(z/s*q(j));(P-=G*2)>y?(G*=t?1:-1,R+=G,T-=G):(P=0,R=T=(f+c)/2),(S-=M*2)>y?(M*=t?1:-1,m+=M,g-=M):(S=0,m=g=(f+c)/2)}var J=s*H(m),K=s*q(m),N=u*H(T),Q=u*q(T);if(w>y){var U=s*H(g),V=s*q(g),X=u*H(R),Y=u*q(R),E;if(F<rn)if(E=pn(J,K,X,Y,U,V,N,Q)){var Z=J-E[0],$=K-E[1],b=U-E[0],k=V-E[1],nn=1/q(on((Z*b+$*k)/(L(Z*Z+$*$)*L(b*b+k*k)))/2),en=L(E[0]*E[0]+E[1]*E[1]);p=_(w,(u-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}S>y?x>y?(e=W(X,Y,J,K,s,x,t),r=W(U,V,N,Q,s,x,t),a.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,s,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),a.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(a.moveTo(J,K),a.arc(0,0,s,m,g,!t)):a.moveTo(J,K),!(u>y)||!(P>y)?a.lineTo(N,Q):p>y?(e=W(N,Q,U,V,u,-p,t),r=W(J,K,X,Y,u,-p,t),a.lineTo(e.cx+e.x01,e.cy+e.y01),p<w?a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,u,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),a.arc(r.cx,r.cy,p,o(r.y11,r.x11),o(r.y01,r.x01),!t))):a.arc(0,0,u,T,R,t)}if(a.closePath(),n)return a=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,d=(+v.apply(this,arguments)+ +A.apply(this,arguments))/2-rn/2;return[H(d)*n,q(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:B(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:B(+n),i):h},i.cornerRadius=function(n){return arguments.length?(I=typeof n=="function"?n:B(+n),i):I},i.padRadius=function(n){return arguments.length?(D=n==null?null:typeof n=="function"?n:B(+n),i):D},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:B(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:B(+n),i):A},i.padAngle=function(n){return arguments.length?(C=typeof n=="function"?n:B(+n),i):C},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};
|