@rsaglobaltech/specgate 0.11.0 → 0.12.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/CHANGELOG.md +27 -0
- package/README.md +1 -1
- package/dist/scripts/agents/commands.js +58 -38
- package/dist/scripts/agents/commands.js.map +1 -1
- package/dist/scripts/agents/init.js +2 -2
- package/dist/scripts/plugin/gate-hook.js +7 -0
- package/dist/scripts/plugin/gate-hook.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -8,6 +8,33 @@ The release process is in [`docs/release-process.md`](docs/release-process.md).
|
|
|
8
8
|
|
|
9
9
|
## [Unreleased]
|
|
10
10
|
|
|
11
|
+
## [0.12.0] — 2026-10-07
|
|
12
|
+
|
|
13
|
+
**The agent works the same loop as the team.** The slash commands `agents init`
|
|
14
|
+
writes are now the daily loop — `/specgate:explore`, `new`, `apply`, `verify`,
|
|
15
|
+
`done` — and teach that naming `REQ-NNN` in a test or in the code is the link.
|
|
16
|
+
The Claude plugin's gate hook regenerates the matrix before it judges. The
|
|
17
|
+
documentation enters through `init` and five commands. Run `specgate update`
|
|
18
|
+
once to refresh agent files generated by an earlier version.
|
|
19
|
+
|
|
20
|
+
### Changed
|
|
21
|
+
|
|
22
|
+
- **The documentation teaches one way in.** `getting-started` starts with
|
|
23
|
+
`init` and a five-command first requirement; `quickstart`, `writing-specs`,
|
|
24
|
+
`tutorial` and `comparisons` stop teaching `onboard`, `adopt`, `req link` and
|
|
25
|
+
`plan` as the main path (all of them still work and are documented).
|
|
26
|
+
|
|
27
|
+
- **The agent's commands are the daily loop.** `agents init` writes
|
|
28
|
+
`/specgate:explore` (status), `/specgate:new`, `/specgate:apply`,
|
|
29
|
+
`/specgate:verify` (now `check`) and `/specgate:done`, plus
|
|
30
|
+
`/specgate:propose` and `/specgate:archive` for requirements that already
|
|
31
|
+
shipped and `/specgate:onboard` (now `init`). The existing names are kept, so
|
|
32
|
+
`specgate update` refreshes them in place. The project rules teach that a
|
|
33
|
+
test or source file naming `REQ-NNN` is the link, instead of `req link`.
|
|
34
|
+
- **The Claude plugin's `Stop` hook regenerates a generated matrix before
|
|
35
|
+
judging**, so a test the agent just wrote is evidence rather than a
|
|
36
|
+
`matrix_stale` block.
|
|
37
|
+
|
|
11
38
|
## [0.11.0] — 2026-10-07
|
|
12
39
|
|
|
13
40
|
**A matrix nobody edits.** The traceability matrix is now generated for every
|
package/README.md
CHANGED
|
@@ -105,7 +105,7 @@ reports what has drifted, with a fix per finding.
|
|
|
105
105
|
| Traceability matrix + CI gate | ✅ | ❌ | ⚠️ | ❌ | ❌ |
|
|
106
106
|
| Agent JSON contract | ✅ | ✅ | ❌ | ❌ | ❌ |
|
|
107
107
|
| Vendor-neutral | ✅ | ✅ | ✅ | ❌ | ✅ |
|
|
108
|
-
| Smaller surface to learn |
|
|
108
|
+
| Smaller surface to learn | ⚠️ five daily verbs | ✅ | ✅ | ✅ | ✅ |
|
|
109
109
|
|
|
110
110
|
OpenSpec is the closest tool and the honest comparison: if you want the change
|
|
111
111
|
loop without versioned packs or an enforced matrix, theirs is the better fit.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* The
|
|
3
|
+
* The steps of the spec-driven loop, defined once.
|
|
4
4
|
*
|
|
5
|
-
* Every agent tool gets the same
|
|
5
|
+
* Every agent tool gets the same steps; only the file format differs. Writing
|
|
6
6
|
* them per tool would guarantee that Cursor and Claude drift apart the first
|
|
7
7
|
* time one is edited — which is the same failure this repository has been
|
|
8
8
|
* fixing everywhere else.
|
|
@@ -16,83 +16,103 @@ exports.PROJECT_RULES = exports.STEPS = void 0;
|
|
|
16
16
|
exports.STEPS = [
|
|
17
17
|
{
|
|
18
18
|
name: "explore",
|
|
19
|
-
summary: "
|
|
20
|
-
when: "Starting work
|
|
21
|
-
run: ["specgate status --json"
|
|
19
|
+
summary: "See what is left, and the one command to run next.",
|
|
20
|
+
when: "Starting work, or unsure what to do next.",
|
|
21
|
+
run: ["specgate status --json"],
|
|
22
22
|
guidance: [
|
|
23
23
|
"Read `spec.md` and `AI_RULES.md` first — `AI_RULES.md` is binding, not advisory.",
|
|
24
|
-
"`
|
|
25
|
-
"Do not
|
|
24
|
+
"`requirements` lists each one with what it still needs; `nextCommand` names the step.",
|
|
25
|
+
"Do not start on a requirement until you can say which `REQ-NNN` it is.",
|
|
26
26
|
],
|
|
27
27
|
},
|
|
28
28
|
{
|
|
29
|
-
name: "
|
|
30
|
-
summary: "
|
|
31
|
-
when: "
|
|
32
|
-
run: [
|
|
33
|
-
|
|
34
|
-
"
|
|
35
|
-
"
|
|
29
|
+
name: "new",
|
|
30
|
+
summary: "Add a requirement: its prose, its scenario and its row, in one step.",
|
|
31
|
+
when: "The user asks for a behaviour that no requirement covers yet.",
|
|
32
|
+
run: ['specgate new "<what the system must do>" --json'],
|
|
33
|
+
guidance: [
|
|
34
|
+
"It writes a draft `## REQ-NNN` section in `spec.md` and a scenario of `<placeholder>` steps under `features/`.",
|
|
35
|
+
"Rewrite the obligation and the placeholders with the user before implementing — they are questions, not answers. The gate refuses them on delivery.",
|
|
36
|
+
"Do not edit the matrix: it is generated.",
|
|
36
37
|
],
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
name: "apply",
|
|
41
|
+
summary: "Implement one requirement: the test first, then the code.",
|
|
42
|
+
when: "A requirement has a real scenario and no implementation yet.",
|
|
43
|
+
run: ["specgate status --json", "specgate change instructions apply --json"],
|
|
37
44
|
guidance: [
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
"
|
|
45
|
+
"One requirement at a time — `status` is the queue.",
|
|
46
|
+
"Write the test first and **name the requirement in it** (`REQ-007` in a comment or the test name). That mention is the link: no `req link`, no matrix edit.",
|
|
47
|
+
"Mention the requirement in the code that implements it too, so its row points at the code.",
|
|
48
|
+
"Never change `spec.md` or a `.feature` to make a test pass.",
|
|
41
49
|
],
|
|
42
50
|
},
|
|
43
51
|
{
|
|
44
52
|
name: "verify",
|
|
45
|
-
summary: "
|
|
46
|
-
when: "After
|
|
47
|
-
run: ["specgate
|
|
53
|
+
summary: "Run the gate: specs, links, coverage and the project's tests.",
|
|
54
|
+
when: "After every change, and before saying the work is done.",
|
|
55
|
+
run: ["specgate check --json"],
|
|
48
56
|
guidance: [
|
|
49
57
|
"Every diagnostic carries a `fix`. Apply it rather than guessing.",
|
|
50
58
|
"Branch on `code`, never on `message` — the message is prose and may be reworded.",
|
|
51
|
-
"`
|
|
59
|
+
"`tests_not_configured` means nothing executed the suite: say so, do not report success.",
|
|
52
60
|
],
|
|
53
61
|
},
|
|
54
62
|
{
|
|
55
|
-
name: "
|
|
56
|
-
summary: "
|
|
57
|
-
when: "
|
|
58
|
-
run: ["specgate
|
|
63
|
+
name: "done",
|
|
64
|
+
summary: "Close a requirement through the gate.",
|
|
65
|
+
when: "Its scenario is real, its test names it and `check` is green.",
|
|
66
|
+
run: ["specgate done <REQ-NNN> --strict --json"],
|
|
59
67
|
guidance: [
|
|
60
|
-
"
|
|
61
|
-
"
|
|
62
|
-
|
|
68
|
+
"`--strict` runs the whole gate for this requirement before recording anything; a refusal changes nothing.",
|
|
69
|
+
"The status is written into `spec.md`; the matrix is regenerated from it.",
|
|
70
|
+
],
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
name: "propose",
|
|
74
|
+
summary: "Change a requirement that already shipped, as a reviewable delta.",
|
|
75
|
+
when: "Rewording, extending or retiring something delivered — not for new work, use `new`.",
|
|
76
|
+
run: [
|
|
77
|
+
"specgate change new <change-id>",
|
|
78
|
+
"specgate change instructions proposal --json",
|
|
79
|
+
"specgate change instructions specs --json",
|
|
80
|
+
],
|
|
81
|
+
guidance: [
|
|
82
|
+
"`change instructions` returns the template, the rules the validator enforces, and the project's declared stack. Follow it rather than guessing the format.",
|
|
83
|
+
"A delta states only what changes. It is not a copy of the spec.",
|
|
84
|
+
"Every requirement body needs SHALL / MUST / SHOULD / MAY, and every scenario needs plain `- GIVEN` / `- WHEN` / `- THEN` bullets.",
|
|
63
85
|
],
|
|
64
86
|
},
|
|
65
87
|
{
|
|
66
88
|
name: "archive",
|
|
67
|
-
summary: "Merge
|
|
68
|
-
when: "The
|
|
89
|
+
summary: "Merge an accepted change into the spec tree.",
|
|
90
|
+
when: "The change is implemented and every task is checked.",
|
|
69
91
|
run: [
|
|
70
92
|
"specgate change instructions archive --json",
|
|
71
93
|
"specgate change archive <change-id> --dry-run",
|
|
72
94
|
"specgate change archive <change-id> --json",
|
|
73
95
|
],
|
|
74
96
|
guidance: [
|
|
75
|
-
"Preview with `--dry-run` first: it lists the specs
|
|
76
|
-
"Archiving
|
|
77
|
-
"After archiving, `specgate plan` lists the requirement as pending work.",
|
|
97
|
+
"Preview with `--dry-run` first: it lists the specs that will move.",
|
|
98
|
+
"Archiving writes the specs and materialises the feature files; the matrix follows on its own.",
|
|
78
99
|
],
|
|
79
100
|
},
|
|
80
101
|
{
|
|
81
102
|
name: "onboard",
|
|
82
103
|
summary: "Install spec-driven development on a repository that lacks it.",
|
|
83
104
|
when: "The repository has code but no `spec.md`.",
|
|
84
|
-
run: ["specgate
|
|
105
|
+
run: ["specgate init", "specgate check --json"],
|
|
85
106
|
guidance: [
|
|
86
|
-
"`specgate
|
|
87
|
-
"
|
|
88
|
-
"`specgate doctor` reports a concrete fix per finding — work through them before adding the CI gate.",
|
|
107
|
+
"`specgate init` adopts a repository that has code: it never overwrites a file and never touches source.",
|
|
108
|
+
"Then add real requirements one at a time with `specgate new`, starting with what the team is changing now.",
|
|
89
109
|
],
|
|
90
110
|
},
|
|
91
111
|
];
|
|
92
112
|
/** The rules every tool's instruction file repeats, in its own format. */
|
|
93
113
|
exports.PROJECT_RULES = [
|
|
94
114
|
"`spec.md`, `AI_RULES.md` and `features/**/*.feature` are the source of truth. Do not edit them to make a test pass.",
|
|
95
|
-
"`docs/specs/traceability.md` is
|
|
115
|
+
"`docs/specs/traceability.md` is generated — never edit it. A test or source file that names `REQ-NNN` is linked to that requirement; that is how work is traced.",
|
|
96
116
|
"Every command takes `--json`. Use it: one document on stdout, diagnostics in `status`, each with a `fix`.",
|
|
97
117
|
"Exit codes are a contract: 0 success, 1 failure or gate finding, 2 usage error.",
|
|
98
118
|
"When you do not know the format of an artefact, run `specgate change instructions <artifact> --json` instead of guessing.",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../../scripts/agents/commands.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;AAEU,QAAA,KAAK,GAAG;IACnB;QACE,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../../scripts/agents/commands.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;AAEU,QAAA,KAAK,GAAG;IACnB;QACE,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,oDAAoD;QAC7D,IAAI,EAAE,2CAA2C;QACjD,GAAG,EAAE,CAAC,wBAAwB,CAAC;QAC/B,QAAQ,EAAE;YACR,kFAAkF;YAClF,uFAAuF;YACvF,wEAAwE;SACzE;KACF;IACD;QACE,IAAI,EAAE,KAAK;QACX,OAAO,EAAE,sEAAsE;QAC/E,IAAI,EAAE,+DAA+D;QACrE,GAAG,EAAE,CAAC,iDAAiD,CAAC;QACxD,QAAQ,EAAE;YACR,gHAAgH;YAChH,qJAAqJ;YACrJ,0CAA0C;SAC3C;KACF;IACD;QACE,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,2DAA2D;QACpE,IAAI,EAAE,8DAA8D;QACpE,GAAG,EAAE,CAAC,wBAAwB,EAAE,2CAA2C,CAAC;QAC5E,QAAQ,EAAE;YACR,oDAAoD;YACpD,6JAA6J;YAC7J,4FAA4F;YAC5F,6DAA6D;SAC9D;KACF;IACD;QACE,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,+DAA+D;QACxE,IAAI,EAAE,yDAAyD;QAC/D,GAAG,EAAE,CAAC,uBAAuB,CAAC;QAC9B,QAAQ,EAAE;YACR,kEAAkE;YAClE,kFAAkF;YAClF,yFAAyF;SAC1F;KACF;IACD;QACE,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,uCAAuC;QAChD,IAAI,EAAE,+DAA+D;QACrE,GAAG,EAAE,CAAC,yCAAyC,CAAC;QAChD,QAAQ,EAAE;YACR,2GAA2G;YAC3G,0EAA0E;SAC3E;KACF;IACD;QACE,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,mEAAmE;QAC5E,IAAI,EAAE,qFAAqF;QAC3F,GAAG,EAAE;YACH,iCAAiC;YACjC,8CAA8C;YAC9C,2CAA2C;SAC5C;QACD,QAAQ,EAAE;YACR,4JAA4J;YAC5J,iEAAiE;YACjE,mIAAmI;SACpI;KACF;IACD;QACE,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,8CAA8C;QACvD,IAAI,EAAE,sDAAsD;QAC5D,GAAG,EAAE;YACH,6CAA6C;YAC7C,+CAA+C;YAC/C,4CAA4C;SAC7C;QACD,QAAQ,EAAE;YACR,oEAAoE;YACpE,+FAA+F;SAChG;KACF;IACD;QACE,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,gEAAgE;QACzE,IAAI,EAAE,2CAA2C;QACjD,GAAG,EAAE,CAAC,eAAe,EAAE,uBAAuB,CAAC;QAC/C,QAAQ,EAAE;YACR,yGAAyG;YACzG,4GAA4G;SAC7G;KACF;CACF,CAAC;AAEF,0EAA0E;AAC7D,QAAA,aAAa,GAAG;IAC3B,qHAAqH;IACrH,kKAAkK;IAClK,2GAA2G;IAC3G,iFAAiF;IACjF,2HAA2H;CAC5H,CAAC"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* `specgate agents init --tool <names>` — wire the spec-driven loop into the agent
|
|
5
5
|
* tools a team already uses.
|
|
6
6
|
*
|
|
7
|
-
* One definition of the
|
|
7
|
+
* One definition of the steps (`./commands`), rendered into each tool's
|
|
8
8
|
* own convention. The generated files are thin on purpose: they tell the agent
|
|
9
9
|
* to run `specgate change instructions`, they do not restate the rules. A markdown
|
|
10
10
|
* file that copies the delta grammar is out of date the moment the grammar
|
|
@@ -158,7 +158,7 @@ function cliVersion() {
|
|
|
158
158
|
}
|
|
159
159
|
}
|
|
160
160
|
/**
|
|
161
|
-
* The Claude Code plugin: the
|
|
161
|
+
* The Claude Code plugin: the steps as slash commands, the MCP server, and
|
|
162
162
|
* the gate as a `Stop` hook.
|
|
163
163
|
*
|
|
164
164
|
* The hook is the part no other target can offer. Every other tool here gets
|
|
@@ -130,6 +130,13 @@ function decide(input, runValidate, blockedAlready) {
|
|
|
130
130
|
function runValidate(cwd) {
|
|
131
131
|
if (!fs.existsSync(path.join(cwd, "spec.md")))
|
|
132
132
|
throw new Error("not a spec-driven project");
|
|
133
|
+
// The agent's tests are new evidence for a generated matrix: regenerate it
|
|
134
|
+
// first, or the hook would block the session over a stale cache instead of
|
|
135
|
+
// judging the work. A no-op on a hand-kept matrix.
|
|
136
|
+
(0, node_child_process_1.spawnSync)("npx", ["--no-install", "specgate", "matrix", "--project-dir", cwd], {
|
|
137
|
+
encoding: "utf8",
|
|
138
|
+
timeout: 60_000,
|
|
139
|
+
});
|
|
133
140
|
const r = (0, node_child_process_1.spawnSync)("npx", ["--no-install", "specgate", "validate", cwd, "--strict", "--json"], {
|
|
134
141
|
encoding: "utf8",
|
|
135
142
|
timeout: 120_000,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate-hook.js","sourceRoot":"","sources":["../../../scripts/plugin/gate-hook.ts"],"names":[],"mappings":";;AAEA;;;;;;;;;;;;;;;;;;;;;;GAsBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCH,wCAaC;AAGD,wCASC;AAOD,wBAsBC;
|
|
1
|
+
{"version":3,"file":"gate-hook.js","sourceRoot":"","sources":["../../../scripts/plugin/gate-hook.ts"],"names":[],"mappings":";;AAEA;;;;;;;;;;;;;;;;;;;;;;GAsBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCH,wCAaC;AAGD,wCASC;AAOD,wBAsBC;AA+BD,oBAWC;AAjID,4CAA8B;AAC9B,4CAA8B;AAC9B,gDAAkC;AAClC,2DAA+C;AAqB/C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,gBAAgB,CAAC,CAAC;AAE5D;;;;;;GAMG;AACH,SAAgB,cAAc,CAAC,QAAgB;IAC7C,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC;IACnF,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,IAAI,CAAC;QACH,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,4EAA4E;QAC5E,2EAA2E;QAC3E,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,2EAA2E;AAC3E,SAAgB,cAAc,CAAC,WAA6B;IAC1D,MAAM,KAAK,GAAG,CAAC,yDAAyD,EAAE,EAAE,CAAC,CAAC;IAC9E,KAAK,MAAM,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;QACzC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,IAAI,OAAO,KAAK,CAAC,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,CAAC,GAAG;YAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,WAAW,CAAC,MAAM,GAAG,EAAE;QAAE,KAAK,CAAC,IAAI,CAAC,WAAW,WAAW,CAAC,MAAM,GAAG,EAAE,QAAQ,CAAC,CAAC;IACpF,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,sDAAsD,CAAC,CAAC;IACvE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;;;GAIG;AACH,SAAgB,MAAM,CACpB,KAAoB,EACpB,WAA4E,EAC5E,cAA6C;IAE7C,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAEvC,IAAI,IAAI,CAAC;IACT,IAAI,CAAC;QACH,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,6DAA6D;QAC7D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACvC,CAAC;IACD,IAAI,IAAI,CAAC,EAAE;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAElD,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAClD,IAAI,cAAc,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC;QAC1C,uEAAuE;QACvE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;IAC7C,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAC5C,CAAC;AAED,SAAS,WAAW,CAAC,GAAW;IAC9B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAE5F,2EAA2E;IAC3E,2EAA2E;IAC3E,mDAAmD;IACnD,IAAA,8BAAS,EAAC,KAAK,EAAE,CAAC,cAAc,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,CAAC,EAAE;QAC7E,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE,MAAM;KAChB,CAAC,CAAC;IACH,MAAM,CAAC,GAAG,IAAA,8BAAS,EAAC,KAAK,EAAE,CAAC,cAAc,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE;QAC9F,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE,OAAO;QAChB,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;KAC5B,CAAC,CAAC;IACH,IAAI,CAAC,CAAC,KAAK,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAEvF,IAAI,MAAqC,CAAC;IAC1C,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,WAAW,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,CAC9C,CAAC,CAAC,EAAE,EAAE,CAAE,CAA2B,CAAC,QAAQ,KAAK,OAAO,CACzD,CAAC;IACF,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;AAC7C,CAAC;AAED,SAAgB,IAAI,CAAC,GAAW;IAC9B,IAAI,KAAoB,CAAC;IACzB,IAAI,CAAC;QACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;IAC5D,IAAI,QAAQ,CAAC,OAAO;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;IACpE,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC,CAAC;AAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE;QAC7B,GAAG,IAAI,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACzD,CAAC"}
|
package/package.json
CHANGED