hex-audit 0.4.5 → 0.5.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.
Files changed (77) hide show
  1. package/DEMO.md +12 -11
  2. package/README.md +38 -37
  3. package/dashboard/.next/BUILD_ID +1 -1
  4. package/dashboard/.next/app-build-manifest.json +13 -13
  5. package/dashboard/.next/app-path-routes-manifest.json +1 -1
  6. package/dashboard/.next/build-manifest.json +2 -2
  7. package/dashboard/.next/next-server.js.nft.json +1 -1
  8. package/dashboard/.next/prerender-manifest.json +1 -1
  9. package/dashboard/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  10. package/dashboard/.next/server/app/_not-found.html +1 -1
  11. package/dashboard/.next/server/app/_not-found.rsc +4 -4
  12. package/dashboard/.next/server/app/access/page_client-reference-manifest.js +1 -1
  13. package/dashboard/.next/server/app/api/issues/[id]/move/route.js +1 -1
  14. package/dashboard/.next/server/app/api/issues/[id]/route.js +1 -1
  15. package/dashboard/.next/server/app/calls/page_client-reference-manifest.js +1 -1
  16. package/dashboard/.next/server/app/conformance/page_client-reference-manifest.js +1 -1
  17. package/dashboard/.next/server/app/diagram/page_client-reference-manifest.js +1 -1
  18. package/dashboard/.next/server/app/diagram.html +1 -1
  19. package/dashboard/.next/server/app/diagram.rsc +4 -4
  20. package/dashboard/.next/server/app/flows/page_client-reference-manifest.js +1 -1
  21. package/dashboard/.next/server/app/flows.html +1 -1
  22. package/dashboard/.next/server/app/flows.rsc +4 -4
  23. package/dashboard/.next/server/app/functions/page_client-reference-manifest.js +1 -1
  24. package/dashboard/.next/server/app/issues/page.js +2 -2
  25. package/dashboard/.next/server/app/issues/page_client-reference-manifest.js +1 -1
  26. package/dashboard/.next/server/app/overleaf/page_client-reference-manifest.js +1 -1
  27. package/dashboard/.next/server/app/page_client-reference-manifest.js +1 -1
  28. package/dashboard/.next/server/app/progress/page_client-reference-manifest.js +1 -1
  29. package/dashboard/.next/server/app/stats/page_client-reference-manifest.js +1 -1
  30. package/dashboard/.next/server/app-paths-manifest.json +7 -7
  31. package/dashboard/.next/server/chunks/431.js +1 -1
  32. package/dashboard/.next/server/functions-config-manifest.json +1 -1
  33. package/dashboard/.next/server/middleware-build-manifest.js +1 -1
  34. package/dashboard/.next/server/pages/404.html +1 -1
  35. package/dashboard/.next/server/pages/500.html +1 -1
  36. package/dashboard/.next/server/server-reference-manifest.js +1 -1
  37. package/dashboard/.next/server/server-reference-manifest.json +1 -1
  38. package/dashboard/.next/static/chunks/app/issues/page-2bb52a36f20497fe.js +1 -0
  39. package/dashboard/.next/static/chunks/app/{layout-cde7d75ea6df4f81.js → layout-9c3c84993dd895f6.js} +1 -1
  40. package/dashboard/.next/static/css/{36c6bb859d4545fd.css → 9c84313d0484b74f.css} +1 -1
  41. package/dashboard/app/issues/IssuesBoardClient.tsx +55 -24
  42. package/dashboard/app/issues/page.tsx +6 -3
  43. package/dashboard/components/DashboardLayout.tsx +1 -1
  44. package/dashboard/lib/finding-markdown.ts +53 -2
  45. package/dist/commands/dashboard.d.ts.map +1 -1
  46. package/dist/commands/dashboard.js +12 -3
  47. package/dist/commands/dashboard.js.map +1 -1
  48. package/dist/commands/init.d.ts.map +1 -1
  49. package/dist/commands/init.js +2 -0
  50. package/dist/commands/init.js.map +1 -1
  51. package/dist/commands/issue.d.ts.map +1 -1
  52. package/dist/commands/issue.js +85 -5
  53. package/dist/commands/issue.js.map +1 -1
  54. package/dist/core/config.d.ts +1 -0
  55. package/dist/core/config.d.ts.map +1 -1
  56. package/dist/core/config.js +10 -0
  57. package/dist/core/config.js.map +1 -1
  58. package/dist/core/issues.d.ts +49 -12
  59. package/dist/core/issues.d.ts.map +1 -1
  60. package/dist/core/issues.js +174 -24
  61. package/dist/core/issues.js.map +1 -1
  62. package/dist/core/schema.d.ts +24 -8
  63. package/dist/core/schema.d.ts.map +1 -1
  64. package/dist/core/schema.js +12 -1
  65. package/dist/core/schema.js.map +1 -1
  66. package/dist/index.js +1 -1
  67. package/dist/skills/generate-overleaf.md +18 -10
  68. package/dist/skills/ingest-aa-report.md +15 -19
  69. package/dist/skills/init-audit.md +13 -20
  70. package/dist/skills/sync-issues.md +87 -179
  71. package/dist/skills/validate-all-findings.md +50 -0
  72. package/dist/skills/validate-issue.md +3 -3
  73. package/dist/skills/write-finding.md +23 -28
  74. package/package.json +1 -1
  75. package/dashboard/.next/static/chunks/app/issues/page-30f7bcde0f4f6ddb.js +0 -1
  76. /package/dashboard/.next/static/{4HWoeGmBSZi6iGcKL3VWA → NrFPHIFHWQ5jNF62Px_X8}/_buildManifest.js +0 -0
  77. /package/dashboard/.next/static/{4HWoeGmBSZi6iGcKL3VWA → NrFPHIFHWQ5jNF62Px_X8}/_ssgManifest.js +0 -0
package/DEMO.md CHANGED
@@ -58,7 +58,7 @@ Key pages:
58
58
  - `/functions` — Aggregated function view.
59
59
  - `/diagram` and `/flows` — Full-bleed Mermaid canvas with auto-fit zoom and legend overlay.
60
60
  - `/conformance` — Conformance check results, deviations first, clickable spec links.
61
- - `/issues` — **The board.** Four columns: Potential / Verified / Invalid / Duplicate. Cards with severity, source badge, GitHub sync chip, duplicate signals. Drag a card to change column. Click to open a modal that edits severity, description, recommendation, resolution, and client update, or copies the finding as HackMD markdown.
61
+ - `/issues` — **The board.** Five columns: Potential / Verified / Synced / Invalid / Duplicate. Uniform `H-NNN` ids with a source badge. Drag cards between the editable columns; click to edit, or copy as HackMD. The **Synced** column is reached only via `/sync-issues` and is read-only (edit on GitHub).
62
62
  - `/overleaf` — The four LaTeX report sections from `/generate-overleaf`, each with a copy button. Only populated after you run the skill.
63
63
 
64
64
  ### Phase 2 — Manual review + `/write-finding`
@@ -77,13 +77,15 @@ When you have something concrete, point Claude at it:
77
77
 
78
78
  #### `/validate-issue` for any potential issue
79
79
 
80
- `/validate-issue` is source-agnostic. Pass an id (`F003`, `SC-007`, `AA-N002`, `github-42`) or a free-text reference:
80
+ `/validate-issue` is source-agnostic. Pass a uniform id (`H-003`) or a free-text reference:
81
81
 
82
82
  ```
83
- /validate-issue F003
83
+ /validate-issue H-003
84
84
  /validate-issue for the rounding issue
85
85
  ```
86
86
 
87
+ To validate the whole Potential backlog in one interactive pass, run `/validate-all-findings`.
88
+
87
89
  Claude traces the attack path in the code, writes a validation memo (always), and asks per-issue whether you want a PoC or memo-only. On valid → tracking entry promotes to `verified` and the card moves to Verified on the board. On invalid → tracking entry becomes `rejected` and the card moves to Invalid.
88
90
 
89
91
  #### `/ingest-aa-report` — Nethermind AuditAgent only
@@ -100,19 +102,18 @@ When complete, the skill fetches findings, materializes them as Potential cards
100
102
 
101
103
  #### `/sync-issues` — team mode via GitHub Issues
102
104
 
103
- If `settings.github.repo` is configured in `.hex/config.json` (e.g. `nethermind/audit-vaultx`) and `gh auth login` has been run:
105
+ If a repo is configured (`hex init --github-repo <owner/repo>`, or `settings.github.repo`) and `gh auth login` has been run:
104
106
 
105
107
  ```
106
108
  /sync-issues
107
109
  ```
108
110
 
109
- One run does both directions:
111
+ GitHub is the source of truth; **identity is the issue number `#N`** (no hidden footer). One run does both directions:
110
112
 
111
- - **Pulls** every issue with the `hex` label. Issues with the round-trip footer `<!-- hex-finding-id: F<NNN> -->` link back to local findings; issues without the footer are teammate findings, materialized as new tracking entries (`source: "github"`).
112
- - **Inline dedup, GitHub-canonical.** If a pulled GitHub issue matches a local potential, **the local entry becomes the duplicate** (`status: "duplicate"`, `duplicate_of: "github-<num>"`). Reason: a teammate has already filed it — your in-progress card is redundant.
113
- - **Pushes** local findings whose tracking status is in `settings.github.publish_status` (default `["verified"]`). Updates existing issues by `github.issue_number`, never creates labels.
113
+ - **Pulls every issue** in the repo (no label filter). Title + the five-field body are parsed back into the local finding; issues already linked by `#N` are refreshed, new ones become local findings. All land in the **Synced** column (read-only).
114
+ - **Pushes** verified findings not yet on GitHub. Body is exactly the five fields (no labels, no footer). The returned `#N` is stored, locking the card into Synced.
114
115
 
115
- GitHub-sync state shows as a chip on each card on the board.
116
+ Once synced, edit on GitHub and re-run `/sync-issues` to pull changes back. GitHub-sync state shows as a chip on each verified/synced card.
116
117
 
117
118
  ### Phase 4 — Final deliverable (`/generate-overleaf`)
118
119
 
@@ -135,8 +136,8 @@ Only `verified` findings make the cut. Duplicates, rejected, and pending entries
135
136
 
136
137
  - `/init-audit` is now a single skill that runs everything pre-manual-review.
137
138
  - The board (`/issues`) is the only findings page. Cards are interactive: drag to change column, click to edit.
138
- - `/write-finding` records Potential issues — promote them via `/validate-issue` or by dragging on the board.
139
+ - `/write-finding` records Potential issues (uniform `H-NNN` ids, no in-code comments) — promote via `/validate-issue`, `/validate-all-findings`, or by dragging on the board.
139
140
  - `/ingest-aa-report` takes a scan ID, never starts a scan.
140
- - `/sync-issues` treats GitHub as the source of truth — your local entry is the duplicate on a match.
141
+ - `/sync-issues` treats GitHub as the source of truth — synced issues are read-only in Hex and identified by issue number; `/generate-overleaf` reports only from synced issues.
141
142
  - `/generate-overleaf` is the final handoff to the LaTeX report.
142
143
  - `hex update` upgrades the package and prompts to re-sync skills in one shot; `hex update-skills` re-syncs skills only.
package/README.md CHANGED
@@ -110,7 +110,7 @@ When you have something concrete, file it as a Potential issue:
110
110
  /write-finding for the rounding error in src/Vault.sol
111
111
  ```
112
112
 
113
- `/write-finding` writes the finding to `findings.json` with the next sequential `F<NNN>` ID. The corresponding tracking entry has `status: "pending_validation"` and `source: "manual"`, so the card lands in the **Potential** column on the dashboard board.
113
+ `/write-finding` allocates a uniform `H-NNN` id (all issues share one scheme regardless of origin; `source` is a separate field) and records the finding with `status: "pending_validation"` and `source: "manual"`, so the card lands in the **Potential** column. It does not write `@audit-issue` comments into the source — the board is the only place the issue lives.
114
114
 
115
115
  Phase 2 is where Hex gets out of your way. You think; the toolkit just gives you a place to record what you find.
116
116
 
@@ -126,19 +126,17 @@ Phase 2 is where Hex gets out of your way. You think; the toolkit just gives you
126
126
  - GitHub teammate entries materialized by `/sync-issues`.
127
127
 
128
128
  ```
129
- /validate-issue F003
130
- /validate-issue SC-007
131
- /validate-issue AA-N002
129
+ /validate-issue H-003
132
130
  /validate-issue for the rounding issue in Vault.sol
133
131
  ```
134
132
 
135
- Claude reads the relevant source-of-truth (findings.json | ai-results/auditagent/findings.json | spec-conformance.json | external/github/findings.json), traces the attack path in the code, and writes a validation memo to `.hex/validations/<id>_memo.md`. Then it asks per issue:
133
+ Claude reads the relevant source record, traces the attack path in the code, and writes a validation memo to `.hex/validations/<id>_memo.md`. Then it asks per issue:
136
134
 
137
135
  > The issue appears valid. PoC or memo-only?
138
136
 
139
137
  If PoC: invokes `/generate-poc` to produce a runnable test and iterates until it passes. If memo-only: skips PoC, just records the validation reasoning.
140
138
 
141
- Valid → tracking entry promotes to `verified` (the card moves to Verified). Invalid → tracking entry becomes `rejected` (the card moves to Invalid). Severity adjustment is offered after promotion.
139
+ Valid → the card moves to Verified (`hex issue move`). Invalid → it moves to Invalid. Severity adjustment is offered after promotion. To clear a whole backlog, **`/validate-all-findings`** runs this same flow over every Potential card, one at a time.
142
140
 
143
141
  #### Ingest a Nethermind AuditAgent scan (`/ingest-aa-report`)
144
142
 
@@ -157,25 +155,24 @@ The skill:
157
155
 
158
156
  #### Team mode (`/sync-issues`)
159
157
 
160
- When two or three auditors share an engagement, sync findings through a shared GitHub repo. Set `settings.github.repo` in `.hex/config.json` (the firm's internal repo, e.g. `nethermind/audit-vaultx`) and authenticate the `gh` CLI once:
158
+ GitHub is the source of truth for an audit's findings. Set the repo at init time with `hex init --github-repo <owner/repo>` (or `settings.github.repo` in `.hex/config.json`) — the firm's internal repo, e.g. `nethermind/audit-vaultx` — and authenticate the `gh` CLI once:
161
159
 
162
160
  ```bash
163
161
  gh auth login
164
162
  ```
165
163
 
166
- Hex itself never stores GitHub credentials — `/sync-issues` drives the `gh` CLI directly. Then:
164
+ Hex never stores GitHub credentials — `/sync-issues` drives the `gh` CLI directly. Then:
167
165
 
168
166
  ```
169
167
  /sync-issues
170
168
  ```
171
169
 
172
- One invocation does both directions:
170
+ One invocation does both directions. **Identity is the GitHub issue number `#N`** — there is no hidden footer in the issue body (auditors create issues by hand), so reconciliation matches a local finding to the issue number it has stored.
173
171
 
174
- - **Pull** every issue with the configured labels. Issues with a hidden footer `<!-- hex-finding-id: F<NNN> -->` link back to local findings. Issues without the footer become teammate findings (`source: "github"`, status `pending_validation`).
175
- - **Inline dedup, GitHub-canonical.** When a pulled GitHub issue matches a local potential entry, **the local entry becomes the duplicate** (`status: "duplicate"`, `duplicate_of: "github-<num>"`). Rationale: a teammate already filed it, so your in-progress local card is redundant. This is the opposite of the auditagent dedup direction, which flips the auditagent entry to duplicate.
176
- - **Push** every local finding whose tracking status is in `settings.github.publish_status` (default `["verified"]`). The issue body is a fixed minimal template (File(s), Description, Recommendation(s), Status, Update from the client) plus a hidden `<!-- hex-finding-id -->` footer for round-trip dedup. **No labels are applied** — the target repo's label set is the repo owner's concern, so Hex never assumes labels exist. Existing issues are updated by their `github.issue_number`.
172
+ - **Pull every issue** in the repo (no label filter — audit repos contain only findings). Each issue's title (`[Severity] Title`) and five-field body are parsed back into the local finding. If a body is blatantly not in the Hex format it's skipped with a warning. Issues already linked by `#N` are refreshed from GitHub; new ones become local findings. All pulled issues land in the **Synced** column.
173
+ - **Push** every local finding whose tracking status is in `settings.github.publish_status` (default `["verified"]`) and that isn't already on GitHub. The body is exactly the five-field template (File(s), Description, Recommendation(s), Status, Update from the client) — no labels, no footer. The returned issue number is stored on the finding, which locks it into Synced.
177
174
 
178
- The dashboard's `/issues` page surfaces GitHub-sync state as a chip on each verified card: `GH unsynced` (never pushed), `GH #N open` / `GH #N closed` (linked to the issue), or `GH conflict`.
175
+ **Once synced, an issue is read-only in Hex.** Edit it on GitHub (severity, description, recommendation, status), then re-run `/sync-issues` to pull the changes back. `/generate-overleaf` reports only from synced issues. The board's `/issues` page surfaces sync state as a chip: `GH unsynced` (verified, not pushed), `GH #N open` / `GH #N closed`, or `GH conflict`.
179
176
 
180
177
  Comments stay on GitHub — Hex never posts, edits, or deletes comments. Auditors discuss inside GitHub itself.
181
178
 
@@ -202,15 +199,16 @@ Upload these into the Nethermind Overleaf template's matching slots. Only `verif
202
199
 
203
200
  Each skill has a recommended model — switch your Claude Code model before invoking skills that recommend Opus.
204
201
 
205
- | Skill | Phase | Recommended Model | What it does |
206
- | ------------------- | ----- | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
207
- | `init-audit` | 1 | Opus | Dependency-safety → `hex analyze` → overview → diagram → flows → spec conformance → materialize DEVIATES/PARTIAL items as Potential cards |
208
- | `write-finding` | 2 | Sonnet | Records a manual issue to `findings.json` as a Potential card (`status: pending_validation`, `source: manual`) |
209
- | `validate-issue` | 3 | Opus | Validates any Potential card (manual / auditagent / conformance / github); per-issue choice of PoC vs memo-only; promotes to Verified or Invalid |
210
- | `generate-poc` | 3 | Opus | Generates and runs a PoC test (invoked by `/validate-issue`) |
211
- | `ingest-aa-report` | 3 | Sonnet | Ingests a completed Nethermind AuditAgent scan by ID; materializes findings + inline dedup |
212
- | `sync-issues` | 3 | Sonnet | Two-way GitHub Issues sync with GitHub-canonical inline dedup |
213
- | `generate-overleaf` | 4 | Sonnet | Writes the four LaTeX section files for the final report |
202
+ | Skill | Phase | Recommended Model | What it does |
203
+ | ----------------------- | ----- | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
204
+ | `init-audit` | 1 | Opus | Dependency-safety → `hex analyze` → overview → diagram → flows → spec conformance → materialize DEVIATES/PARTIAL items as Potential cards |
205
+ | `write-finding` | 2 | Sonnet | Records a manual issue to `findings.json` as a Potential card (`status: pending_validation`, `source: manual`) |
206
+ | `validate-issue` | 3 | Opus | Validates any Potential card (manual / auditagent / conformance / github); per-issue choice of PoC vs memo-only; promotes to Verified or Invalid |
207
+ | `validate-all-findings` | 3 | Opus | Runs the `/validate-issue` flow over every Potential card, one at a time |
208
+ | `generate-poc` | 3 | Opus | Generates and runs a PoC test (invoked by `/validate-issue`) |
209
+ | `ingest-aa-report` | 3 | Sonnet | Ingests a completed Nethermind AuditAgent scan by ID; materializes findings + inline dedup |
210
+ | `sync-issues` | 3 | Sonnet | Two-way GitHub Issues sync; GitHub is the source of truth (issue number is identity, synced issues are read-only) |
211
+ | `generate-overleaf` | 4 | Sonnet | Writes the four LaTeX section files for the final report (from synced issues) |
214
212
 
215
213
  ### Where Skills Live
216
214
 
@@ -221,6 +219,7 @@ Skills use Claude Code's native skill format, stored in `.claude/skills/<name>/S
221
219
  ├── init-audit/SKILL.md
222
220
  ├── write-finding/SKILL.md
223
221
  ├── validate-issue/SKILL.md
222
+ ├── validate-all-findings/SKILL.md
224
223
  ├── generate-poc/SKILL.md
225
224
  ├── ingest-aa-report/SKILL.md
226
225
  ├── sync-issues/SKILL.md
@@ -248,20 +247,20 @@ hex update-skills --keep-custom # skip existing skill files to preserve per-pro
248
247
 
249
248
  The dashboard runs locally at `http://localhost:3000` and auto-refreshes when output files change. A live "Updated Ns ago" indicator in the sidebar footer tells you the watcher is connected.
250
249
 
251
- | Page | URL | What you see |
252
- | ---------------- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
253
- | Home | `/` | Project info, AI overview, key stats |
254
- | Progress | `/progress` | Weighted progress bar (70% nSLOC reviewed, 20% audit steps, 10% findings triage), contract review checklist |
255
- | Statistics | `/stats` | Per-contract metrics, test coverage, dependencies, ERCs |
256
- | System Diagram | `/diagram` | Mermaid architecture diagram with zoom/pan |
257
- | Flows | `/flows` | Mermaid flow charts with zoom/pan |
258
- | Access Control | `/access` | Role → function matrix with "Show unprotected only" and "Show inferred / unknown modifiers" toggles |
259
- | State Variables | `/state` | Variable inventory with reader/writer tracking and storage-collision warnings |
260
- | External Calls | `/calls` | Call surface with filterable Trust column |
261
- | Functions | `/functions` | Aggregated function view |
262
- | Spec Conformance | `/conformance` | Code vs spec check results, deviations first, clickable spec links |
263
- | **Issues** | `/issues` | **The board.** Four columns (Potential / Verified / Invalid / Duplicate). Drag cards to change column, click to edit (severity, description, recommendation, resolution, client update), or copy a finding as HackMD markdown. GitHub-sync chip per verified card. |
264
- | **Overleaf** | `/overleaf` | The four LaTeX report sections from `/generate-overleaf`, each with a copy-to-clipboard button — paste straight into the Nethermind Overleaf template. |
250
+ | Page | URL | What you see |
251
+ | ---------------- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
252
+ | Home | `/` | Project info, AI overview, key stats |
253
+ | Progress | `/progress` | Weighted progress bar (70% nSLOC reviewed, 20% audit steps, 10% findings triage), contract review checklist |
254
+ | Statistics | `/stats` | Per-contract metrics, test coverage, dependencies, ERCs |
255
+ | System Diagram | `/diagram` | Mermaid architecture diagram with zoom/pan |
256
+ | Flows | `/flows` | Mermaid flow charts with zoom/pan |
257
+ | Access Control | `/access` | Role → function matrix with "Show unprotected only" and "Show inferred / unknown modifiers" toggles |
258
+ | State Variables | `/state` | Variable inventory with reader/writer tracking and storage-collision warnings |
259
+ | External Calls | `/calls` | Call surface with filterable Trust column |
260
+ | Functions | `/functions` | Aggregated function view |
261
+ | Spec Conformance | `/conformance` | Code vs spec check results, deviations first, clickable spec links |
262
+ | **Issues** | `/issues` | **The board.** Five columns (Potential / Verified / Synced / Invalid / Duplicate). Drag cards between the editable columns, click to edit (severity, description, recommendation, resolution, client update), or copy a finding as HackMD markdown. The **Synced** column is reached only via `/sync-issues` and is read-only (edit on GitHub). GitHub-sync chip per verified/synced card. |
263
+ | **Overleaf** | `/overleaf` | The four LaTeX report sections from `/generate-overleaf`, each with a copy-to-clipboard button — paste straight into the Nethermind Overleaf template. |
265
264
 
266
265
  ---
267
266
 
@@ -355,7 +354,7 @@ All commands run from within the project directory (or with `--project /path/to/
355
354
  | --------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
356
355
  | `hex doctor` | Preflight check: node, forge, slither, solc, Claude Code, output-dir writability, project config |
357
356
  | `hex claude` | Copy skills to `.claude/skills/` for Claude Code discovery |
358
- | `hex init` | Initialise audit config — scope, commit, chain, docs URL (called by `/init-audit`) |
357
+ | `hex init` | Initialise audit config — scope, commit, chain, docs URL, `--github-repo` (called by `/init-audit`) |
359
358
  | `hex analyze` | Run all analysis commands in parallel (stats, deps, access, state, calls, patterns, constraints), then surface |
360
359
  | `hex stats` | Generate codebase statistics and test coverage |
361
360
  | `hex deps` | Build contract dependency graph |
@@ -377,6 +376,8 @@ All commands run from within the project directory (or with `--project /path/to/
377
376
  | `hex update-skills --keep-custom` | Skip existing skill files instead of overwriting |
378
377
  | `hex ai-status` | Show the latest status for AuditAgent scans |
379
378
  | `hex ai-status --watch` | Poll every 5 minutes until pending scans resolve (typical scan: 30-60 min) |
379
+ | `hex issue new --source <s> ...` | Allocate a uniform `H-NNN` id and create a board card (used by the skills) |
380
380
  | `hex issue move <id> --to <col>` | Move an issue between board columns (potential / verified / invalid / duplicate); materializes a finding on verify |
381
381
  | `hex issue patch <id> [...]` | Edit an issue's severity / resolution / description-file / recommendation-file / update-from-client / notes |
382
+ | `hex issue sync-set <id> ...` | Mark an issue synced to a GitHub issue number (used by `/sync-issues`) |
382
383
  | `hex issue show <id>` | Print the merged finding + tracking record for an issue |
@@ -1 +1 @@
1
- 4HWoeGmBSZi6iGcKL3VWA
1
+ NrFPHIFHWQ5jNF62Px_X8
@@ -12,23 +12,23 @@
12
12
  "static/chunks/618f8807-547c5614e1318888.js",
13
13
  "static/chunks/3205-728c260fbb4f89c6.js",
14
14
  "static/chunks/main-app-9d2f6b8a47133e9b.js",
15
- "static/css/36c6bb859d4545fd.css",
15
+ "static/css/9c84313d0484b74f.css",
16
16
  "static/chunks/7498-ea83cb9e30ec5491.js",
17
- "static/chunks/app/layout-cde7d75ea6df4f81.js"
17
+ "static/chunks/app/layout-9c3c84993dd895f6.js"
18
18
  ],
19
- "/flows/page": [
19
+ "/diagram/page": [
20
20
  "static/chunks/webpack-08869f2b18792e51.js",
21
21
  "static/chunks/618f8807-547c5614e1318888.js",
22
22
  "static/chunks/3205-728c260fbb4f89c6.js",
23
23
  "static/chunks/main-app-9d2f6b8a47133e9b.js",
24
- "static/chunks/app/flows/page-fa67783d8cd79cab.js"
24
+ "static/chunks/app/diagram/page-b228444265546495.js"
25
25
  ],
26
- "/diagram/page": [
26
+ "/flows/page": [
27
27
  "static/chunks/webpack-08869f2b18792e51.js",
28
28
  "static/chunks/618f8807-547c5614e1318888.js",
29
29
  "static/chunks/3205-728c260fbb4f89c6.js",
30
30
  "static/chunks/main-app-9d2f6b8a47133e9b.js",
31
- "static/chunks/app/diagram/page-b228444265546495.js"
31
+ "static/chunks/app/flows/page-fa67783d8cd79cab.js"
32
32
  ],
33
33
  "/access/page": [
34
34
  "static/chunks/webpack-08869f2b18792e51.js",
@@ -85,22 +85,22 @@
85
85
  "static/chunks/main-app-9d2f6b8a47133e9b.js",
86
86
  "static/chunks/app/progress/page-f07ac39d1d27b480.js"
87
87
  ],
88
- "/page": [
88
+ "/issues/page": [
89
89
  "static/chunks/webpack-08869f2b18792e51.js",
90
90
  "static/chunks/618f8807-547c5614e1318888.js",
91
91
  "static/chunks/3205-728c260fbb4f89c6.js",
92
92
  "static/chunks/main-app-9d2f6b8a47133e9b.js",
93
- "static/chunks/7498-ea83cb9e30ec5491.js",
94
- "static/chunks/7397-f6f4dddc7a20bfc1.js",
95
- "static/chunks/app/page-a0f25953d4457935.js"
93
+ "static/chunks/3924-4a05057b5450abe1.js",
94
+ "static/chunks/app/issues/page-2bb52a36f20497fe.js"
96
95
  ],
97
- "/issues/page": [
96
+ "/page": [
98
97
  "static/chunks/webpack-08869f2b18792e51.js",
99
98
  "static/chunks/618f8807-547c5614e1318888.js",
100
99
  "static/chunks/3205-728c260fbb4f89c6.js",
101
100
  "static/chunks/main-app-9d2f6b8a47133e9b.js",
102
- "static/chunks/3924-4a05057b5450abe1.js",
103
- "static/chunks/app/issues/page-30f7bcde0f4f6ddb.js"
101
+ "static/chunks/7498-ea83cb9e30ec5491.js",
102
+ "static/chunks/7397-f6f4dddc7a20bfc1.js",
103
+ "static/chunks/app/page-a0f25953d4457935.js"
104
104
  ]
105
105
  }
106
106
  }
@@ -1 +1 @@
1
- {"/_not-found/page":"/_not-found","/api/code/route":"/api/code","/api/progress/route":"/api/progress","/api/mermaid/route":"/api/mermaid","/flows/page":"/flows","/diagram/page":"/diagram","/icon.svg/route":"/icon.svg","/api/issues/[id]/move/route":"/api/issues/[id]/move","/api/github-status/route":"/api/github-status","/api/flows/route":"/api/flows","/api/issues/[id]/route":"/api/issues/[id]","/access/page":"/access","/api/watch/route":"/api/watch","/calls/page":"/calls","/overleaf/page":"/overleaf","/functions/page":"/functions","/conformance/page":"/conformance","/stats/page":"/stats","/progress/page":"/progress","/page":"/","/issues/page":"/issues"}
1
+ {"/_not-found/page":"/_not-found","/api/mermaid/route":"/api/mermaid","/api/code/route":"/api/code","/api/progress/route":"/api/progress","/diagram/page":"/diagram","/flows/page":"/flows","/icon.svg/route":"/icon.svg","/api/github-status/route":"/api/github-status","/api/issues/[id]/route":"/api/issues/[id]","/api/flows/route":"/api/flows","/api/issues/[id]/move/route":"/api/issues/[id]/move","/api/watch/route":"/api/watch","/access/page":"/access","/calls/page":"/calls","/overleaf/page":"/overleaf","/functions/page":"/functions","/conformance/page":"/conformance","/stats/page":"/stats","/progress/page":"/progress","/issues/page":"/issues","/page":"/"}
@@ -5,8 +5,8 @@
5
5
  "devFiles": [],
6
6
  "ampDevFiles": [],
7
7
  "lowPriorityFiles": [
8
- "static/4HWoeGmBSZi6iGcKL3VWA/_buildManifest.js",
9
- "static/4HWoeGmBSZi6iGcKL3VWA/_ssgManifest.js"
8
+ "static/NrFPHIFHWQ5jNF62Px_X8/_buildManifest.js",
9
+ "static/NrFPHIFHWQ5jNF62Px_X8/_ssgManifest.js"
10
10
  ],
11
11
  "rootMainFiles": [
12
12
  "static/chunks/webpack-08869f2b18792e51.js",
@@ -1 +1 @@
1
- {"version":1,"files":["../../node_modules/styled-jsx/index.js","../../node_modules/styled-jsx/package.json","../../node_modules/styled-jsx/dist/index/index.js","../../node_modules/react/package.json","../../node_modules/react/index.js","../../node_modules/client-only/package.json","../../node_modules/react/cjs/react.production.min.js","../../node_modules/client-only/index.js","../../node_modules/styled-jsx/style.js","../../node_modules/next/dist/server/next-server.js","../../node_modules/next/package.json","../../node_modules/next/dist/server/base-server.js","../../node_modules/next/dist/server/node-environment.js","../../node_modules/next/dist/server/require-hook.js","../../node_modules/next/dist/server/node-polyfill-crypto.js","../../node_modules/next/dist/lib/find-pages-dir.js","../../node_modules/next/dist/server/request-meta.js","../../node_modules/next/dist/server/send-payload.js","../../node_modules/next/dist/server/require.js","../../node_modules/next/dist/server/load-components.js","../../node_modules/next/dist/lib/is-error.js","../../node_modules/next/dist/server/body-streams.js","../../node_modules/next/dist/server/setup-http-agent-env.js","../../node_modules/next/dist/lib/constants.js","../../node_modules/next/dist/server/pipe-readable.js","../../node_modules/next/dist/server/load-manifest.js","../../node_modules/next/dist/lib/interop-default.js","../../node_modules/next/dist/lib/format-dynamic-import-path.js","../../node_modules/next/dist/lib/generate-interception-routes-rewrites.js","../../node_modules/next/dist/server/image-optimizer.js","../../node_modules/next/dist/server/serve-static.js","../../node_modules/next/dist/lib/format-server-error.js","../../node_modules/next/dist/lib/picocolors.js","../../node_modules/next/dist/shared/lib/utils.js","../../node_modules/next/dist/shared/lib/constants.js","../../node_modules/next/dist/server/base-http/node.js","../../node_modules/next/dist/build/output/log.js","../../node_modules/next/dist/server/web/utils.js","../../node_modules/next/dist/server/lib/node-fs-methods.js","../../node_modules/next/dist/server/lib/mock-request.js","../../node_modules/next/dist/client/components/app-router-headers.js","../../node_modules/next/dist/shared/lib/page-path/denormalize-page-path.js","../../node_modules/next/dist/shared/lib/page-path/normalize-page-path.js","../../node_modules/next/dist/server/future/route-matches/pages-api-route-match.js","../../node_modules/next/dist/server/lib/trace/tracer.js","../../node_modules/next/dist/server/lib/trace/constants.js","../../node_modules/next/dist/shared/lib/router/utils/route-matcher.js","../../node_modules/next/dist/shared/lib/router/utils/parse-url.js","../../node_modules/next/dist/shared/lib/router/utils/middleware-route-matcher.js","../../node_modules/next/dist/shared/lib/router/utils/querystring.js","../../node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js","../../node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js","../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../node_modules/next/dist/shared/lib/router/utils/route-regex.js","../../node_modules/next/dist/server/web/spec-extension/adapters/next-request.js","../../node_modules/next/dist/server/future/helpers/module-loader/route-module-loader.js","../../node_modules/next/dist/server/future/route-modules/app-page/module.render.js","../../node_modules/next/dist/server/future/route-modules/pages/module.render.js","../../node_modules/next/dist/server/api-utils/index.js","../../node_modules/next/dist/server/response-cache/index.js","../../node_modules/next/dist/compiled/next-server/pages.runtime.prod.js","../../node_modules/react/jsx-runtime.js","../../node_modules/next/dist/server/lib/incremental-cache/index.js","../../node_modules/next/dist/server/web/sandbox/index.js","../../node_modules/next/dist/client/components/request-async-storage.external.js","../../node_modules/next/dist/client/components/action-async-storage.external.js","../../node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../node_modules/next/dist/lib/wait.js","../../node_modules/next/dist/lib/detached-promise.js","../../node_modules/next/dist/server/client-component-renderer-logger.js","../../node_modules/@next/env/package.json","../../node_modules/next/dist/server/lib/etag.js","../../node_modules/next/dist/server/lib/revalidate.js","../../node_modules/next/dist/server/app-render/encryption-utils.js","../../node_modules/next/dist/server/app-render/action-utils.js","../../node_modules/next/dist/shared/lib/is-plain-object.js","../../node_modules/next/dist/shared/lib/image-blur-svg.js","../../node_modules/next/dist/shared/lib/match-remote-pattern.js","../../node_modules/next/dist/experimental/testmode/server.js","../../node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js","../../node_modules/next/dist/server/future/helpers/interception-routes.js","../../node_modules/next/dist/server/lib/squoosh/main.js","../../node_modules/next/dist/server/base-http/index.js","../../node_modules/next/dist/shared/lib/modern-browserslist-target.js","../../node_modules/next/dist/server/future/route-kind.js","../../node_modules/react/cjs/react-jsx-runtime.production.min.js","../../node_modules/next/dist/shared/lib/page-path/normalize-path-sep.js","../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../node_modules/@next/env/dist/index.js","../../node_modules/next/dist/shared/lib/segment.js","../../node_modules/next/dist/shared/lib/escape-regexp.js","../../node_modules/next/dist/lib/batcher.js","../../node_modules/next/dist/lib/scheduler.js","../../node_modules/next/dist/server/web/spec-extension/request.js","../../node_modules/next/dist/server/response-cache/types.js","../../node_modules/next/dist/server/response-cache/utils.js","../../node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js","../../node_modules/next/dist/shared/lib/router/utils/prepare-destination.js","../../node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js","../../node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js","../../node_modules/next/dist/server/future/helpers/module-loader/node-module-loader.js","../../node_modules/next/dist/server/future/route-modules/app-page/module.compiled.js","../../node_modules/next/dist/server/future/route-modules/pages/module.compiled.js","../../node_modules/next/dist/lib/is-edge-runtime.js","../../node_modules/next/dist/lib/redirect-status.js","../../node_modules/next/dist/server/utils.js","../../node_modules/next/dist/server/render-result.js","../../node_modules/next/dist/server/server-utils.js","../../node_modules/next/dist/server/send-response.js","../../node_modules/next/dist/server/internal-utils.js","../../node_modules/next/dist/server/web/spec-extension/adapters/headers.js","../../node_modules/next/dist/client/components/action-async-storage-instance.js","../../node_modules/next/dist/client/components/request-async-storage-instance.js","../../node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../node_modules/next/dist/server/lib/format-hostname.js","../../node_modules/next/dist/shared/lib/runtime-config.external.js","../../node_modules/next/dist/shared/lib/get-hostname.js","../../node_modules/next/dist/server/lib/match-next-data-pathname.js","../../node_modules/next/dist/server/app-render/strip-flight-headers.js","../../node_modules/next/dist/server/lib/server-action-request-meta.js","../../node_modules/next/dist/server/lib/incremental-cache/fetch-cache.js","../../node_modules/next/dist/shared/lib/isomorphic/path.js","../../node_modules/next/dist/server/lib/incremental-cache/file-system-cache.js","../../node_modules/next/dist/server/lib/server-ipc/request-utils.js","../../node_modules/next/dist/server/web/sandbox/sandbox.js","../../node_modules/next/dist/server/web/sandbox/context.js","../../node_modules/next/dist/server/future/normalizers/locale-route-normalizer.js","../../node_modules/next/dist/server/future/route-matcher-managers/default-route-matcher-manager.js","../../node_modules/next/dist/server/future/route-matcher-providers/app-page-route-matcher-provider.js","../../node_modules/next/dist/server/future/route-matcher-providers/pages-route-matcher-provider.js","../../node_modules/next/dist/server/future/route-matcher-providers/app-route-route-matcher-provider.js","../../node_modules/next/dist/server/future/route-matcher-providers/pages-api-route-matcher-provider.js","../../node_modules/next/dist/server/future/helpers/i18n-provider.js","../../node_modules/next/dist/server/future/route-modules/checks.js","../../node_modules/next/dist/server/api-utils/node/try-get-preview-data.js","../../node_modules/next/dist/shared/lib/router/utils/index.js","../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../node_modules/next/dist/shared/lib/router/utils/escape-path-delimiters.js","../../node_modules/next/dist/server/future/route-modules/helpers/response-handlers.js","../../node_modules/next/dist/shared/lib/router/utils/get-route-from-asset-path.js","../../node_modules/next/dist/server/future/normalizers/request/rsc.js","../../node_modules/next/dist/server/future/normalizers/request/postponed.js","../../node_modules/next/dist/server/future/normalizers/request/action.js","../../node_modules/next/dist/server/future/normalizers/request/prefetch-rsc.js","../../node_modules/next/dist/server/future/normalizers/request/next-data.js","../../node_modules/next/dist/server/future/route-matcher-providers/helpers/manifest-loaders/server-manifest-loader.js","../../node_modules/next/dist/experimental/testmode/fetch.js","../../node_modules/next/dist/experimental/testmode/context.js","../../node_modules/next/dist/experimental/testmode/httpget.js","../../node_modules/next/dist/compiled/ws/package.json","../../node_modules/next/dist/compiled/fresh/package.json","../../node_modules/next/dist/compiled/node-html-parser/package.json","../../node_modules/next/dist/compiled/lru-cache/package.json","../../node_modules/next/dist/compiled/content-disposition/package.json","../../node_modules/next/dist/compiled/image-size/package.json","../../node_modules/next/dist/compiled/get-orientation/package.json","../../node_modules/next/dist/compiled/is-animated/package.json","../../node_modules/next/dist/compiled/send/package.json","../../node_modules/next/dist/client/components/redirect-status-code.js","../../node_modules/next/dist/server/api-utils/get-cookie-parser.js","../../node_modules/next/dist/compiled/@hapi/accept/package.json","../../node_modules/next/dist/compiled/path-to-regexp/index.js","../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../node_modules/react-dom/package.json","../../node_modules/next/dist/compiled/ws/index.js","../../node_modules/next/dist/compiled/fresh/index.js","../../node_modules/next/dist/compiled/node-html-parser/index.js","../../node_modules/next/dist/compiled/lru-cache/index.js","../../node_modules/next/dist/server/web/next-url.js","../../node_modules/next/dist/server/web/error.js","../../node_modules/next/dist/compiled/content-disposition/index.js","../../node_modules/next/dist/compiled/image-size/index.js","../../node_modules/next/dist/compiled/get-orientation/index.js","../../node_modules/next/dist/compiled/is-animated/index.js","../../node_modules/next/dist/compiled/send/index.js","../../node_modules/react-dom/server.browser.js","../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../node_modules/next/dist/server/stream-utils/node-web-streams-helper.js","../../node_modules/next/dist/server/web/spec-extension/cookies.js","../../node_modules/@swc/helpers/package.json","../../node_modules/next/dist/compiled/cookie/package.json","../../node_modules/next/dist/compiled/@hapi/accept/index.js","../../node_modules/next/dist/lib/pick.js","../../node_modules/next/dist/client/components/async-local-storage.js","../../node_modules/next/dist/server/lib/is-ipv6.js","../../node_modules/next/dist/lib/is-app-page-route.js","../../node_modules/next/dist/lib/is-api-route.js","../../node_modules/next/dist/lib/is-app-route-route.js","../../node_modules/next/dist/server/crypto-utils.js","../../node_modules/next/dist/shared/lib/router/utils/path-match.js","../../node_modules/next/dist/shared/lib/error-source.js","../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../node_modules/next/dist/shared/lib/router/utils/parse-path.js","../../node_modules/next/dist/server/lib/server-ipc/invoke-request.js","../../node_modules/next/dist/server/web/sandbox/resource-managers.js","../../node_modules/next/dist/server/web/sandbox/fetch-inline-assets.js","../../node_modules/next/dist/server/future/route-matchers/locale-route-matcher.js","../../node_modules/next/dist/server/future/route-matchers/app-page-route-matcher.js","../../node_modules/next/dist/server/future/route-matcher-providers/manifest-route-matcher-provider.js","../../node_modules/next/dist/server/future/route-matchers/pages-route-matcher.js","../../node_modules/next/dist/server/future/route-matchers/app-route-route-matcher.js","../../node_modules/next/dist/server/future/route-matchers/pages-api-route-matcher.js","../../node_modules/next/dist/server/web/spec-extension/adapters/reflect.js","../../node_modules/next/dist/client/components/react-dev-overlay/server/middleware.js","../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../node_modules/next/dist/compiled/cookie/index.js","../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../node_modules/next/dist/shared/lib/router/utils/sorted-routes.js","../../node_modules/next/dist/shared/lib/router/utils/is-dynamic.js","../../node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.js","../../node_modules/next/dist/server/future/normalizers/request/suffix.js","../../node_modules/next/dist/server/future/normalizers/request/prefix.js","../../node_modules/next/dist/compiled/picomatch/package.json","../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.min.js","../../node_modules/react-dom/cjs/react-dom-server.browser.production.min.js","../../node_modules/next/dist/server/future/normalizers/built/app/index.js","../../node_modules/next/dist/server/future/normalizers/built/pages/index.js","../../node_modules/next/dist/compiled/picomatch/index.js","../../node_modules/next/dist/server/stream-utils/uint8array-helpers.js","../../node_modules/next/dist/server/stream-utils/encodedTags.js","../../node_modules/next/dist/shared/lib/i18n/detect-domain-locale.js","../../node_modules/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js","../../node_modules/next/dist/compiled/next-server/app-page-experimental.runtime.prod.js","../../node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js","../../node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js","../../node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js","../../node_modules/next/dist/server/future/route-modules/app-page/module.js","../../node_modules/next/dist/server/future/route-modules/pages/module.js","../../node_modules/next/dist/compiled/path-browserify/package.json","../../node_modules/next/dist/compiled/edge-runtime/package.json","../../node_modules/next/dist/server/lib/server-ipc/utils.js","../../node_modules/next/dist/server/future/route-matchers/route-matcher.js","../../node_modules/next/dist/server/future/route-matcher-providers/helpers/cached-route-matcher-provider.js","../../node_modules/next/dist/client/components/react-dev-overlay/server/shared.js","../../node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/getRawSourceMap.js","../../node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/launchEditor.js","../../node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/nodeStackFrames.js","../../node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/parseStack.js","../../node_modules/next/dist/compiled/path-browserify/index.js","../../node_modules/next/dist/compiled/edge-runtime/index.js","../../node_modules/next/dist/compiled/@mswjs/interceptors/ClientRequest/package.json","../../node_modules/next/dist/compiled/debug/package.json","../../node_modules/next/dist/server/future/normalizers/built/app/app-bundle-path-normalizer.js","../../node_modules/next/dist/server/future/normalizers/built/app/app-filename-normalizer.js","../../node_modules/next/dist/server/future/normalizers/built/app/app-page-normalizer.js","../../node_modules/next/dist/server/future/normalizers/built/app/app-pathname-normalizer.js","../../node_modules/next/dist/server/future/normalizers/built/pages/pages-bundle-path-normalizer.js","../../node_modules/next/dist/server/future/normalizers/built/pages/pages-filename-normalizer.js","../../node_modules/next/dist/server/future/normalizers/built/pages/pages-page-normalizer.js","../../node_modules/next/dist/server/future/normalizers/built/pages/pages-pathname-normalizer.js","../../node_modules/next/dist/server/render.js","../../node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js","../../node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js","../../node_modules/next/dist/shared/lib/router/utils/add-locale.js","../../node_modules/next/dist/compiled/@edge-runtime/cookies/package.json","../../node_modules/next/dist/compiled/@mswjs/interceptors/ClientRequest/index.js","../../node_modules/next/dist/server/app-render/app-render.js","../../node_modules/next/dist/lib/semver-noop.js","../../node_modules/next/dist/compiled/debug/index.js","../../node_modules/next/dist/server/future/route-modules/route-module.js","../../node_modules/next/dist/compiled/source-map08/package.json","../../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/entrypoints.js","../../node_modules/next/dist/server/future/route-modules/app-page/vendored/rsc/entrypoints.js","../../node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/entrypoints.js","../../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/entrypoints.js","../../node_modules/next/dist/compiled/@edge-runtime/cookies/index.js","../../node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/getSourceMapUrl.js","../../node_modules/next/dist/compiled/source-map08/source-map.js","../../node_modules/next/dist/lib/is-serializable-props.js","../../node_modules/next/dist/server/post-process.js","../../node_modules/next/dist/shared/lib/amp-mode.js","../../node_modules/next/dist/shared/lib/amp-context.shared-runtime.js","../../node_modules/next/dist/shared/lib/head.js","../../node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.js","../../node_modules/next/dist/shared/lib/loadable.shared-runtime.js","../../node_modules/next/dist/shared/lib/loadable-context.shared-runtime.js","../../node_modules/next/dist/shared/lib/router-context.shared-runtime.js","../../node_modules/next/dist/shared/lib/html-context.shared-runtime.js","../../node_modules/next/dist/shared/lib/image-config-context.shared-runtime.js","../../node_modules/next/dist/shared/lib/app-router-context.shared-runtime.js","../../node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.js","../../node_modules/next/dist/lib/page-types.js","../../node_modules/next/dist/shared/lib/router/adapters.js","../../node_modules/next/dist/client/components/match-segments.js","../../node_modules/next/dist/lib/metadata/metadata.js","../../node_modules/next/dist/server/async-storage/request-async-storage-wrapper.js","../../node_modules/next/dist/server/async-storage/static-generation-async-storage-wrapper.js","../../node_modules/next/dist/client/components/not-found.js","../../node_modules/next/dist/client/components/redirect.js","../../node_modules/next/dist/server/lib/patch-fetch.js","../../node_modules/next/dist/server/app-render/flight-render-result.js","../../node_modules/next/dist/server/app-render/create-error-handler.js","../../node_modules/next/dist/server/app-render/get-short-dynamic-param-type.js","../../node_modules/next/dist/server/app-render/get-segment-param.js","../../node_modules/next/dist/server/app-render/get-script-nonce-from-header.js","../../node_modules/next/dist/server/app-render/parse-and-validate-flight-router-state.js","../../node_modules/next/dist/server/app-render/validate-url.js","../../node_modules/next/dist/server/app-render/create-flight-router-state-from-loader-tree.js","../../node_modules/next/dist/server/app-render/action-handler.js","../../node_modules/next/dist/server/app-render/server-inserted-html.js","../../node_modules/next/dist/server/app-render/required-scripts.js","../../node_modules/next/dist/server/app-render/make-get-server-inserted-html.js","../../node_modules/next/dist/server/app-render/walk-tree-with-flight-router-state.js","../../node_modules/next/dist/server/app-render/create-component-tree.js","../../node_modules/next/dist/server/app-render/get-asset-query-string.js","../../node_modules/next/dist/client/components/hooks-server-context.js","../../node_modules/next/dist/server/app-render/use-flight-response.js","../../node_modules/next/dist/client/components/static-generation-bailout.js","../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../node_modules/next/dist/client/components/dev-root-not-found-boundary.js","../../node_modules/next/dist/server/future/normalizers/normalizers.js","../../node_modules/next/dist/server/future/normalizers/prefixing-normalizer.js","../../node_modules/next/dist/server/future/normalizers/absolute-filename-normalizer.js","../../node_modules/next/dist/server/future/normalizers/wrap-normalizer-fn.js","../../node_modules/next/dist/server/future/normalizers/underscore-normalizer.js","../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../node_modules/next/dist/server/app-render/static/static-renderer.js","../../node_modules/next/dist/compiled/babel/code-frame.js","../../node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.js","../../node_modules/next/dist/compiled/babel/package.json","../../node_modules/next/dist/lib/non-nullable.js","../../node_modules/next/dist/server/optimize-amp.js","../../node_modules/next/dist/compiled/data-uri-to-buffer/package.json","../../node_modules/next/dist/compiled/shell-quote/package.json","../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../node_modules/next/dist/shared/lib/side-effect.js","../../node_modules/next/dist/shared/lib/image-config.js","../../node_modules/next/dist/server/htmlescape.js","../../node_modules/next/dist/lib/client-reference.js","../../node_modules/next/dist/lib/url.js","../../node_modules/next/dist/compiled/strip-ansi/package.json","../../node_modules/next/dist/compiled/react-is/package.json","../../node_modules/next/dist/shared/lib/utils/warn-once.js","../../node_modules/next/dist/lib/metadata/resolve-metadata.js","../../node_modules/next/dist/lib/metadata/default-metadata.js","../../node_modules/next/dist/server/async-storage/draft-mode-provider.js","../../node_modules/next/dist/export/helpers/is-dynamic-usage-error.js","../../node_modules/next/dist/server/app-render/types.js","../../node_modules/next/dist/server/app-render/csrf-protection.js","../../node_modules/next/dist/server/app-render/react-server.node.js","../../node_modules/next/dist/shared/lib/encode-uri-path.js","../../node_modules/next/dist/server/app-render/get-css-inlined-link-tags.js","../../node_modules/next/dist/server/app-render/get-preloadable-fonts.js","../../node_modules/next/dist/server/app-render/parse-loader-tree.js","../../node_modules/next/dist/server/app-render/get-layer-assets.js","../../node_modules/next/dist/server/app-render/has-loading-component-in-tree.js","../../node_modules/next/dist/server/lib/app-dir-module.js","../../node_modules/next/dist/server/app-render/interop-default.js","../../node_modules/next/dist/server/app-render/create-component-styles-and-scripts.js","../../node_modules/next/dist/client/components/parallel-route-default.js","../../node_modules/next/dist/client/components/not-found-boundary.js","../../node_modules/next/dist/lib/metadata/generate/basic.js","../../node_modules/next/dist/lib/metadata/generate/icons.js","../../node_modules/next/dist/lib/metadata/generate/alternate.js","../../node_modules/next/dist/lib/metadata/generate/opengraph.js","../../node_modules/next/dist/lib/metadata/generate/meta.js","../../node_modules/next/dist/compiled/data-uri-to-buffer/index.js","../../node_modules/next/dist/compiled/shell-quote/index.js","../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../node_modules/next/dist/compiled/nanoid/package.json","../../node_modules/next/dist/shared/lib/router/utils/as-path-to-search-params.js","../../node_modules/next/dist/shared/lib/page-path/absolute-path-to-page.js","../../node_modules/next/dist/compiled/strip-ansi/index.js","../../node_modules/next/dist/compiled/react-is/index.js","../../node_modules/next/dist/compiled/babel/bundle.js","../../node_modules/next/dist/compiled/nanoid/index.cjs","../../node_modules/react/jsx-dev-runtime.js","../../node_modules/busboy/package.json","../../node_modules/react-dom/index.js","../../node_modules/@swc/helpers/_/_interop_require_wildcard/package.json","../../node_modules/next/dist/lib/metadata/clone-metadata.js","../../node_modules/next/dist/export/helpers/is-navigation-signal-error.js","../../node_modules/next/dist/client/components/navigation.js","../../node_modules/next/dist/lib/metadata/resolvers/resolve-title.js","../../node_modules/next/dist/lib/metadata/resolvers/resolve-opengraph.js","../../node_modules/next/dist/lib/metadata/generate/utils.js","../../node_modules/next/dist/lib/metadata/resolvers/resolve-basics.js","../../node_modules/next/dist/lib/metadata/resolvers/resolve-icons.js","../../node_modules/busboy/lib/index.js","../../node_modules/next/dist/lib/metadata/constants.js","../../node_modules/next/dist/compiled/string-hash/package.json","../../node_modules/next/dist/compiled/bytes/package.json","../../node_modules/next/dist/compiled/superstruct/package.json","../../node_modules/next/dist/lib/metadata/get-metadata-route.js","../../node_modules/react/cjs/react-jsx-dev-runtime.production.min.js","../../node_modules/next/dist/shared/lib/page-path/remove-page-path-tail.js","../../node_modules/next/dist/compiled/react-is/cjs/react-is.production.min.js","../../node_modules/next/dist/compiled/react-is/cjs/react-is.development.js","../../node_modules/next/dist/compiled/string-hash/index.js","../../node_modules/next/dist/compiled/bytes/index.js","../../node_modules/next/dist/compiled/superstruct/index.cjs","../../node_modules/react-dom/cjs/react-dom.production.min.js","../../node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs","../../node_modules/busboy/lib/utils.js","../../node_modules/busboy/lib/types/multipart.js","../../node_modules/busboy/lib/types/urlencoded.js","../../node_modules/next/dist/client/components/navigation.react-server.js","../../node_modules/next/dist/client/components/bailout-to-client-rendering.js","../../node_modules/next/dist/client/components/router-reducer/reducers/get-segment-value.js","../../node_modules/next/dist/lib/metadata/resolvers/resolve-url.js","../../node_modules/next/dist/lib/metadata/is-metadata-route.js","../../node_modules/next/dist/shared/lib/hash.js","../../node_modules/next/dist/compiled/babel-packages/package.json","../../node_modules/next/dist/compiled/browserslist/package.json","../../node_modules/next/dist/compiled/json5/package.json","../../node_modules/next/dist/compiled/semver/package.json","../../node_modules/next/dist/compiled/babel-packages/packages-bundle.js","../../node_modules/next/dist/compiled/browserslist/index.js","../../node_modules/next/dist/compiled/json5/index.js","../../node_modules/next/dist/compiled/semver/index.js","../../node_modules/scheduler/package.json","../../node_modules/scheduler/index.js","../../node_modules/streamsearch/package.json","../../node_modules/streamsearch/lib/sbmh.js","../../node_modules/scheduler/cjs/scheduler.production.min.js","../../node_modules/scheduler/cjs/scheduler.development.js","../../node_modules/caniuse-lite/dist/unpacker/feature.js","../../node_modules/caniuse-lite/dist/unpacker/agents.js","../../node_modules/caniuse-lite/dist/unpacker/region.js","../../node_modules/caniuse-lite/package.json","../../node_modules/next/dist/compiled/babel/traverse.js","../../node_modules/next/dist/compiled/babel/parser.js","../../node_modules/next/dist/compiled/babel/core.js","../../node_modules/next/dist/compiled/babel/types.js","../../node_modules/caniuse-lite/data/agents.js","../../node_modules/caniuse-lite/dist/lib/statuses.js","../../node_modules/caniuse-lite/dist/lib/supported.js","../../node_modules/caniuse-lite/dist/unpacker/browsers.js","../../node_modules/caniuse-lite/dist/unpacker/browserVersions.js","../../node_modules/caniuse-lite/data/browsers.js","../../node_modules/caniuse-lite/data/browserVersions.js","../../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/amp-context.js","../../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/app-router-context.js","../../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/head-manager-context.js","../../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/hooks-client-context.js","../../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/html-context.js","../../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/image-config-context.js","../../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/loadable-context.js","../../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/loadable.js","../../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/router-context.js","../../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/server-inserted-html.js","../../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/amp-context.js","../../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/app-router-context.js","../../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/head-manager-context.js","../../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/hooks-client-context.js","../../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/html-context.js","../../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/image-config-context.js","../../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/loadable-context.js","../../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/loadable.js","../../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/router-context.js","../../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/server-inserted-html.js"]}
1
+ {"version":1,"files":["../../node_modules/styled-jsx/index.js","../../node_modules/styled-jsx/package.json","../../node_modules/styled-jsx/dist/index/index.js","../../node_modules/react/package.json","../../node_modules/react/index.js","../../node_modules/client-only/package.json","../../node_modules/react/cjs/react.production.min.js","../../node_modules/client-only/index.js","../../node_modules/styled-jsx/style.js","../../node_modules/next/dist/server/next-server.js","../../node_modules/next/package.json","../../node_modules/next/dist/server/require-hook.js","../../node_modules/next/dist/server/base-server.js","../../node_modules/next/dist/server/node-environment.js","../../node_modules/next/dist/server/node-polyfill-crypto.js","../../node_modules/next/dist/server/request-meta.js","../../node_modules/next/dist/lib/find-pages-dir.js","../../node_modules/next/dist/server/send-payload.js","../../node_modules/next/dist/server/require.js","../../node_modules/next/dist/server/load-components.js","../../node_modules/next/dist/lib/is-error.js","../../node_modules/next/dist/server/body-streams.js","../../node_modules/next/dist/server/setup-http-agent-env.js","../../node_modules/next/dist/lib/constants.js","../../node_modules/next/dist/server/pipe-readable.js","../../node_modules/next/dist/server/load-manifest.js","../../node_modules/next/dist/lib/interop-default.js","../../node_modules/next/dist/lib/format-dynamic-import-path.js","../../node_modules/next/dist/lib/generate-interception-routes-rewrites.js","../../node_modules/next/dist/server/image-optimizer.js","../../node_modules/next/dist/server/serve-static.js","../../node_modules/next/dist/lib/format-server-error.js","../../node_modules/next/dist/lib/picocolors.js","../../node_modules/next/dist/shared/lib/utils.js","../../node_modules/next/dist/shared/lib/constants.js","../../node_modules/next/dist/server/base-http/node.js","../../node_modules/next/dist/build/output/log.js","../../node_modules/next/dist/server/web/utils.js","../../node_modules/next/dist/server/lib/node-fs-methods.js","../../node_modules/next/dist/server/lib/mock-request.js","../../node_modules/next/dist/client/components/app-router-headers.js","../../node_modules/next/dist/shared/lib/page-path/denormalize-page-path.js","../../node_modules/next/dist/shared/lib/page-path/normalize-page-path.js","../../node_modules/next/dist/server/future/route-matches/pages-api-route-match.js","../../node_modules/next/dist/server/lib/trace/tracer.js","../../node_modules/next/dist/server/lib/trace/constants.js","../../node_modules/next/dist/shared/lib/router/utils/route-matcher.js","../../node_modules/next/dist/shared/lib/router/utils/parse-url.js","../../node_modules/next/dist/shared/lib/router/utils/middleware-route-matcher.js","../../node_modules/next/dist/shared/lib/router/utils/querystring.js","../../node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js","../../node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js","../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../node_modules/next/dist/shared/lib/router/utils/route-regex.js","../../node_modules/next/dist/server/web/spec-extension/adapters/next-request.js","../../node_modules/next/dist/server/future/helpers/module-loader/route-module-loader.js","../../node_modules/next/dist/server/future/route-modules/app-page/module.render.js","../../node_modules/next/dist/server/future/route-modules/pages/module.render.js","../../node_modules/next/dist/server/api-utils/index.js","../../node_modules/next/dist/server/response-cache/index.js","../../node_modules/next/dist/compiled/next-server/pages.runtime.prod.js","../../node_modules/react/jsx-runtime.js","../../node_modules/next/dist/server/lib/incremental-cache/index.js","../../node_modules/next/dist/server/web/sandbox/index.js","../../node_modules/next/dist/client/components/action-async-storage.external.js","../../node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../node_modules/next/dist/client/components/request-async-storage.external.js","../../node_modules/next/dist/lib/wait.js","../../node_modules/next/dist/lib/detached-promise.js","../../node_modules/next/dist/server/client-component-renderer-logger.js","../../node_modules/@next/env/package.json","../../node_modules/next/dist/server/lib/etag.js","../../node_modules/next/dist/server/lib/revalidate.js","../../node_modules/next/dist/server/app-render/encryption-utils.js","../../node_modules/next/dist/server/app-render/action-utils.js","../../node_modules/next/dist/shared/lib/is-plain-object.js","../../node_modules/next/dist/shared/lib/image-blur-svg.js","../../node_modules/next/dist/shared/lib/match-remote-pattern.js","../../node_modules/next/dist/experimental/testmode/server.js","../../node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js","../../node_modules/next/dist/server/future/helpers/interception-routes.js","../../node_modules/next/dist/server/lib/squoosh/main.js","../../node_modules/next/dist/server/base-http/index.js","../../node_modules/next/dist/shared/lib/modern-browserslist-target.js","../../node_modules/next/dist/server/future/route-kind.js","../../node_modules/react/cjs/react-jsx-runtime.production.min.js","../../node_modules/next/dist/shared/lib/page-path/normalize-path-sep.js","../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../node_modules/@next/env/dist/index.js","../../node_modules/next/dist/shared/lib/segment.js","../../node_modules/next/dist/shared/lib/escape-regexp.js","../../node_modules/next/dist/lib/scheduler.js","../../node_modules/next/dist/lib/batcher.js","../../node_modules/next/dist/server/web/spec-extension/request.js","../../node_modules/next/dist/server/response-cache/types.js","../../node_modules/next/dist/server/response-cache/utils.js","../../node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js","../../node_modules/next/dist/shared/lib/router/utils/prepare-destination.js","../../node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js","../../node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js","../../node_modules/next/dist/server/future/helpers/module-loader/node-module-loader.js","../../node_modules/next/dist/server/future/route-modules/app-page/module.compiled.js","../../node_modules/next/dist/server/future/route-modules/pages/module.compiled.js","../../node_modules/next/dist/lib/redirect-status.js","../../node_modules/next/dist/lib/is-edge-runtime.js","../../node_modules/next/dist/server/utils.js","../../node_modules/next/dist/server/render-result.js","../../node_modules/next/dist/server/server-utils.js","../../node_modules/next/dist/server/send-response.js","../../node_modules/next/dist/server/internal-utils.js","../../node_modules/next/dist/server/web/spec-extension/adapters/headers.js","../../node_modules/next/dist/client/components/action-async-storage-instance.js","../../node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../node_modules/next/dist/client/components/request-async-storage-instance.js","../../node_modules/next/dist/server/lib/format-hostname.js","../../node_modules/next/dist/shared/lib/runtime-config.external.js","../../node_modules/next/dist/shared/lib/get-hostname.js","../../node_modules/next/dist/server/lib/match-next-data-pathname.js","../../node_modules/next/dist/server/app-render/strip-flight-headers.js","../../node_modules/next/dist/server/lib/server-action-request-meta.js","../../node_modules/next/dist/server/lib/incremental-cache/fetch-cache.js","../../node_modules/next/dist/server/lib/incremental-cache/file-system-cache.js","../../node_modules/next/dist/shared/lib/isomorphic/path.js","../../node_modules/next/dist/server/lib/server-ipc/request-utils.js","../../node_modules/next/dist/server/web/sandbox/context.js","../../node_modules/next/dist/server/web/sandbox/sandbox.js","../../node_modules/next/dist/server/future/normalizers/locale-route-normalizer.js","../../node_modules/next/dist/server/future/route-matcher-managers/default-route-matcher-manager.js","../../node_modules/next/dist/server/future/route-matcher-providers/app-page-route-matcher-provider.js","../../node_modules/next/dist/server/future/route-matcher-providers/app-route-route-matcher-provider.js","../../node_modules/next/dist/server/future/route-matcher-providers/pages-api-route-matcher-provider.js","../../node_modules/next/dist/server/future/route-matcher-providers/pages-route-matcher-provider.js","../../node_modules/next/dist/server/future/helpers/i18n-provider.js","../../node_modules/next/dist/server/future/route-modules/checks.js","../../node_modules/next/dist/server/api-utils/node/try-get-preview-data.js","../../node_modules/next/dist/shared/lib/router/utils/index.js","../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../node_modules/next/dist/shared/lib/router/utils/escape-path-delimiters.js","../../node_modules/next/dist/server/future/route-modules/helpers/response-handlers.js","../../node_modules/next/dist/shared/lib/router/utils/get-route-from-asset-path.js","../../node_modules/next/dist/server/future/normalizers/request/rsc.js","../../node_modules/next/dist/server/future/normalizers/request/postponed.js","../../node_modules/next/dist/server/future/normalizers/request/action.js","../../node_modules/next/dist/server/future/normalizers/request/next-data.js","../../node_modules/next/dist/server/future/normalizers/request/prefetch-rsc.js","../../node_modules/next/dist/server/future/route-matcher-providers/helpers/manifest-loaders/server-manifest-loader.js","../../node_modules/next/dist/experimental/testmode/context.js","../../node_modules/next/dist/experimental/testmode/fetch.js","../../node_modules/next/dist/experimental/testmode/httpget.js","../../node_modules/next/dist/compiled/ws/package.json","../../node_modules/next/dist/compiled/fresh/package.json","../../node_modules/next/dist/compiled/node-html-parser/package.json","../../node_modules/next/dist/compiled/lru-cache/package.json","../../node_modules/next/dist/compiled/send/package.json","../../node_modules/next/dist/compiled/get-orientation/package.json","../../node_modules/next/dist/compiled/content-disposition/package.json","../../node_modules/next/dist/compiled/is-animated/package.json","../../node_modules/next/dist/compiled/image-size/package.json","../../node_modules/next/dist/client/components/redirect-status-code.js","../../node_modules/next/dist/server/api-utils/get-cookie-parser.js","../../node_modules/next/dist/compiled/@hapi/accept/package.json","../../node_modules/next/dist/compiled/path-to-regexp/index.js","../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../node_modules/react-dom/package.json","../../node_modules/next/dist/compiled/ws/index.js","../../node_modules/next/dist/compiled/fresh/index.js","../../node_modules/next/dist/compiled/node-html-parser/index.js","../../node_modules/next/dist/compiled/lru-cache/index.js","../../node_modules/next/dist/server/web/next-url.js","../../node_modules/next/dist/server/web/error.js","../../node_modules/next/dist/compiled/send/index.js","../../node_modules/next/dist/compiled/get-orientation/index.js","../../node_modules/next/dist/compiled/content-disposition/index.js","../../node_modules/next/dist/compiled/is-animated/index.js","../../node_modules/next/dist/compiled/image-size/index.js","../../node_modules/react-dom/server.browser.js","../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../node_modules/next/dist/server/stream-utils/node-web-streams-helper.js","../../node_modules/next/dist/server/web/spec-extension/cookies.js","../../node_modules/@swc/helpers/package.json","../../node_modules/next/dist/compiled/cookie/package.json","../../node_modules/next/dist/compiled/@hapi/accept/index.js","../../node_modules/next/dist/lib/pick.js","../../node_modules/next/dist/client/components/async-local-storage.js","../../node_modules/next/dist/server/lib/is-ipv6.js","../../node_modules/next/dist/lib/is-app-page-route.js","../../node_modules/next/dist/lib/is-app-route-route.js","../../node_modules/next/dist/lib/is-api-route.js","../../node_modules/next/dist/server/crypto-utils.js","../../node_modules/next/dist/shared/lib/router/utils/path-match.js","../../node_modules/next/dist/shared/lib/error-source.js","../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../node_modules/next/dist/shared/lib/router/utils/parse-path.js","../../node_modules/next/dist/server/lib/server-ipc/invoke-request.js","../../node_modules/next/dist/server/web/sandbox/fetch-inline-assets.js","../../node_modules/next/dist/server/web/sandbox/resource-managers.js","../../node_modules/next/dist/server/future/route-matchers/locale-route-matcher.js","../../node_modules/next/dist/server/future/route-matchers/app-page-route-matcher.js","../../node_modules/next/dist/server/future/route-matcher-providers/manifest-route-matcher-provider.js","../../node_modules/next/dist/server/future/route-matchers/app-route-route-matcher.js","../../node_modules/next/dist/server/future/route-matchers/pages-api-route-matcher.js","../../node_modules/next/dist/server/future/route-matchers/pages-route-matcher.js","../../node_modules/next/dist/server/web/spec-extension/adapters/reflect.js","../../node_modules/next/dist/client/components/react-dev-overlay/server/middleware.js","../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../node_modules/next/dist/compiled/cookie/index.js","../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../node_modules/next/dist/shared/lib/router/utils/sorted-routes.js","../../node_modules/next/dist/shared/lib/router/utils/is-dynamic.js","../../node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.js","../../node_modules/next/dist/server/future/normalizers/request/suffix.js","../../node_modules/next/dist/server/future/normalizers/request/prefix.js","../../node_modules/next/dist/compiled/picomatch/package.json","../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.min.js","../../node_modules/react-dom/cjs/react-dom-server.browser.production.min.js","../../node_modules/next/dist/server/future/normalizers/built/app/index.js","../../node_modules/next/dist/server/future/normalizers/built/pages/index.js","../../node_modules/next/dist/compiled/picomatch/index.js","../../node_modules/next/dist/server/stream-utils/encodedTags.js","../../node_modules/next/dist/server/stream-utils/uint8array-helpers.js","../../node_modules/next/dist/shared/lib/i18n/detect-domain-locale.js","../../node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js","../../node_modules/next/dist/compiled/next-server/app-page-experimental.runtime.prod.js","../../node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js","../../node_modules/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js","../../node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js","../../node_modules/next/dist/server/future/route-modules/pages/module.js","../../node_modules/next/dist/server/future/route-modules/app-page/module.js","../../node_modules/next/dist/compiled/path-browserify/package.json","../../node_modules/next/dist/compiled/edge-runtime/package.json","../../node_modules/next/dist/server/lib/server-ipc/utils.js","../../node_modules/next/dist/server/future/route-matchers/route-matcher.js","../../node_modules/next/dist/server/future/route-matcher-providers/helpers/cached-route-matcher-provider.js","../../node_modules/next/dist/client/components/react-dev-overlay/server/shared.js","../../node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/getRawSourceMap.js","../../node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/launchEditor.js","../../node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/nodeStackFrames.js","../../node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/parseStack.js","../../node_modules/next/dist/compiled/path-browserify/index.js","../../node_modules/next/dist/compiled/edge-runtime/index.js","../../node_modules/next/dist/compiled/@mswjs/interceptors/ClientRequest/package.json","../../node_modules/next/dist/compiled/debug/package.json","../../node_modules/next/dist/server/future/normalizers/built/app/app-bundle-path-normalizer.js","../../node_modules/next/dist/server/future/normalizers/built/app/app-filename-normalizer.js","../../node_modules/next/dist/server/future/normalizers/built/app/app-page-normalizer.js","../../node_modules/next/dist/server/future/normalizers/built/app/app-pathname-normalizer.js","../../node_modules/next/dist/server/future/normalizers/built/pages/pages-bundle-path-normalizer.js","../../node_modules/next/dist/server/future/normalizers/built/pages/pages-filename-normalizer.js","../../node_modules/next/dist/server/future/normalizers/built/pages/pages-pathname-normalizer.js","../../node_modules/next/dist/server/future/normalizers/built/pages/pages-page-normalizer.js","../../node_modules/next/dist/server/render.js","../../node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js","../../node_modules/next/dist/shared/lib/router/utils/add-locale.js","../../node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js","../../node_modules/next/dist/compiled/@edge-runtime/cookies/package.json","../../node_modules/next/dist/compiled/@mswjs/interceptors/ClientRequest/index.js","../../node_modules/next/dist/server/app-render/app-render.js","../../node_modules/next/dist/lib/semver-noop.js","../../node_modules/next/dist/compiled/debug/index.js","../../node_modules/next/dist/server/future/route-modules/route-module.js","../../node_modules/next/dist/compiled/source-map08/package.json","../../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/entrypoints.js","../../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/entrypoints.js","../../node_modules/next/dist/server/future/route-modules/app-page/vendored/rsc/entrypoints.js","../../node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/entrypoints.js","../../node_modules/next/dist/compiled/@edge-runtime/cookies/index.js","../../node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/getSourceMapUrl.js","../../node_modules/next/dist/compiled/source-map08/source-map.js","../../node_modules/next/dist/lib/is-serializable-props.js","../../node_modules/next/dist/server/post-process.js","../../node_modules/next/dist/shared/lib/amp-mode.js","../../node_modules/next/dist/shared/lib/amp-context.shared-runtime.js","../../node_modules/next/dist/shared/lib/head.js","../../node_modules/next/dist/shared/lib/loadable.shared-runtime.js","../../node_modules/next/dist/shared/lib/loadable-context.shared-runtime.js","../../node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.js","../../node_modules/next/dist/shared/lib/router-context.shared-runtime.js","../../node_modules/next/dist/shared/lib/html-context.shared-runtime.js","../../node_modules/next/dist/shared/lib/image-config-context.shared-runtime.js","../../node_modules/next/dist/shared/lib/app-router-context.shared-runtime.js","../../node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.js","../../node_modules/next/dist/lib/page-types.js","../../node_modules/next/dist/shared/lib/router/adapters.js","../../node_modules/next/dist/client/components/match-segments.js","../../node_modules/next/dist/lib/metadata/metadata.js","../../node_modules/next/dist/server/async-storage/request-async-storage-wrapper.js","../../node_modules/next/dist/server/async-storage/static-generation-async-storage-wrapper.js","../../node_modules/next/dist/client/components/not-found.js","../../node_modules/next/dist/client/components/redirect.js","../../node_modules/next/dist/server/lib/patch-fetch.js","../../node_modules/next/dist/server/app-render/flight-render-result.js","../../node_modules/next/dist/server/app-render/get-short-dynamic-param-type.js","../../node_modules/next/dist/server/app-render/create-error-handler.js","../../node_modules/next/dist/server/app-render/get-segment-param.js","../../node_modules/next/dist/server/app-render/get-script-nonce-from-header.js","../../node_modules/next/dist/server/app-render/parse-and-validate-flight-router-state.js","../../node_modules/next/dist/server/app-render/validate-url.js","../../node_modules/next/dist/server/app-render/create-flight-router-state-from-loader-tree.js","../../node_modules/next/dist/server/app-render/action-handler.js","../../node_modules/next/dist/server/app-render/server-inserted-html.js","../../node_modules/next/dist/server/app-render/required-scripts.js","../../node_modules/next/dist/server/app-render/make-get-server-inserted-html.js","../../node_modules/next/dist/server/app-render/walk-tree-with-flight-router-state.js","../../node_modules/next/dist/server/app-render/create-component-tree.js","../../node_modules/next/dist/server/app-render/get-asset-query-string.js","../../node_modules/next/dist/client/components/hooks-server-context.js","../../node_modules/next/dist/server/app-render/use-flight-response.js","../../node_modules/next/dist/client/components/static-generation-bailout.js","../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../node_modules/next/dist/client/components/dev-root-not-found-boundary.js","../../node_modules/next/dist/server/future/normalizers/normalizers.js","../../node_modules/next/dist/server/future/normalizers/prefixing-normalizer.js","../../node_modules/next/dist/server/future/normalizers/absolute-filename-normalizer.js","../../node_modules/next/dist/server/future/normalizers/wrap-normalizer-fn.js","../../node_modules/next/dist/server/future/normalizers/underscore-normalizer.js","../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../node_modules/next/dist/server/app-render/static/static-renderer.js","../../node_modules/next/dist/compiled/babel/code-frame.js","../../node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.js","../../node_modules/next/dist/compiled/babel/package.json","../../node_modules/next/dist/lib/non-nullable.js","../../node_modules/next/dist/server/optimize-amp.js","../../node_modules/next/dist/compiled/data-uri-to-buffer/package.json","../../node_modules/next/dist/compiled/shell-quote/package.json","../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../node_modules/next/dist/shared/lib/side-effect.js","../../node_modules/next/dist/shared/lib/image-config.js","../../node_modules/next/dist/server/htmlescape.js","../../node_modules/next/dist/lib/client-reference.js","../../node_modules/next/dist/lib/url.js","../../node_modules/next/dist/compiled/strip-ansi/package.json","../../node_modules/next/dist/compiled/react-is/package.json","../../node_modules/next/dist/shared/lib/utils/warn-once.js","../../node_modules/next/dist/lib/metadata/resolve-metadata.js","../../node_modules/next/dist/lib/metadata/default-metadata.js","../../node_modules/next/dist/server/async-storage/draft-mode-provider.js","../../node_modules/next/dist/export/helpers/is-dynamic-usage-error.js","../../node_modules/next/dist/server/app-render/types.js","../../node_modules/next/dist/server/app-render/csrf-protection.js","../../node_modules/next/dist/server/app-render/react-server.node.js","../../node_modules/next/dist/shared/lib/encode-uri-path.js","../../node_modules/next/dist/server/app-render/get-css-inlined-link-tags.js","../../node_modules/next/dist/server/app-render/get-preloadable-fonts.js","../../node_modules/next/dist/server/app-render/get-layer-assets.js","../../node_modules/next/dist/server/app-render/parse-loader-tree.js","../../node_modules/next/dist/server/app-render/has-loading-component-in-tree.js","../../node_modules/next/dist/server/lib/app-dir-module.js","../../node_modules/next/dist/server/app-render/interop-default.js","../../node_modules/next/dist/server/app-render/create-component-styles-and-scripts.js","../../node_modules/next/dist/client/components/parallel-route-default.js","../../node_modules/next/dist/client/components/not-found-boundary.js","../../node_modules/next/dist/lib/metadata/generate/basic.js","../../node_modules/next/dist/lib/metadata/generate/alternate.js","../../node_modules/next/dist/lib/metadata/generate/opengraph.js","../../node_modules/next/dist/lib/metadata/generate/icons.js","../../node_modules/next/dist/lib/metadata/generate/meta.js","../../node_modules/next/dist/compiled/data-uri-to-buffer/index.js","../../node_modules/next/dist/compiled/shell-quote/index.js","../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../node_modules/next/dist/compiled/nanoid/package.json","../../node_modules/next/dist/shared/lib/router/utils/as-path-to-search-params.js","../../node_modules/next/dist/shared/lib/page-path/absolute-path-to-page.js","../../node_modules/next/dist/compiled/strip-ansi/index.js","../../node_modules/next/dist/compiled/react-is/index.js","../../node_modules/next/dist/compiled/babel/bundle.js","../../node_modules/next/dist/compiled/nanoid/index.cjs","../../node_modules/react/jsx-dev-runtime.js","../../node_modules/busboy/package.json","../../node_modules/react-dom/index.js","../../node_modules/@swc/helpers/_/_interop_require_wildcard/package.json","../../node_modules/next/dist/lib/metadata/clone-metadata.js","../../node_modules/next/dist/export/helpers/is-navigation-signal-error.js","../../node_modules/next/dist/client/components/navigation.js","../../node_modules/next/dist/lib/metadata/resolvers/resolve-opengraph.js","../../node_modules/next/dist/lib/metadata/generate/utils.js","../../node_modules/next/dist/lib/metadata/resolvers/resolve-title.js","../../node_modules/next/dist/lib/metadata/resolvers/resolve-basics.js","../../node_modules/next/dist/lib/metadata/resolvers/resolve-icons.js","../../node_modules/busboy/lib/index.js","../../node_modules/next/dist/lib/metadata/constants.js","../../node_modules/next/dist/compiled/string-hash/package.json","../../node_modules/next/dist/compiled/superstruct/package.json","../../node_modules/next/dist/compiled/bytes/package.json","../../node_modules/next/dist/lib/metadata/get-metadata-route.js","../../node_modules/react/cjs/react-jsx-dev-runtime.production.min.js","../../node_modules/next/dist/shared/lib/page-path/remove-page-path-tail.js","../../node_modules/next/dist/compiled/react-is/cjs/react-is.development.js","../../node_modules/next/dist/compiled/react-is/cjs/react-is.production.min.js","../../node_modules/next/dist/compiled/string-hash/index.js","../../node_modules/next/dist/compiled/superstruct/index.cjs","../../node_modules/next/dist/compiled/bytes/index.js","../../node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs","../../node_modules/react-dom/cjs/react-dom.production.min.js","../../node_modules/busboy/lib/utils.js","../../node_modules/busboy/lib/types/multipart.js","../../node_modules/busboy/lib/types/urlencoded.js","../../node_modules/next/dist/client/components/navigation.react-server.js","../../node_modules/next/dist/client/components/bailout-to-client-rendering.js","../../node_modules/next/dist/client/components/router-reducer/reducers/get-segment-value.js","../../node_modules/next/dist/lib/metadata/resolvers/resolve-url.js","../../node_modules/next/dist/lib/metadata/is-metadata-route.js","../../node_modules/next/dist/shared/lib/hash.js","../../node_modules/next/dist/compiled/browserslist/package.json","../../node_modules/next/dist/compiled/babel-packages/package.json","../../node_modules/next/dist/compiled/json5/package.json","../../node_modules/next/dist/compiled/semver/package.json","../../node_modules/next/dist/compiled/browserslist/index.js","../../node_modules/next/dist/compiled/babel-packages/packages-bundle.js","../../node_modules/next/dist/compiled/json5/index.js","../../node_modules/next/dist/compiled/semver/index.js","../../node_modules/scheduler/package.json","../../node_modules/scheduler/index.js","../../node_modules/streamsearch/package.json","../../node_modules/streamsearch/lib/sbmh.js","../../node_modules/scheduler/cjs/scheduler.development.js","../../node_modules/scheduler/cjs/scheduler.production.min.js","../../node_modules/caniuse-lite/dist/unpacker/region.js","../../node_modules/caniuse-lite/dist/unpacker/agents.js","../../node_modules/caniuse-lite/dist/unpacker/feature.js","../../node_modules/caniuse-lite/package.json","../../node_modules/next/dist/compiled/babel/types.js","../../node_modules/next/dist/compiled/babel/core.js","../../node_modules/next/dist/compiled/babel/parser.js","../../node_modules/next/dist/compiled/babel/traverse.js","../../node_modules/caniuse-lite/data/agents.js","../../node_modules/caniuse-lite/dist/unpacker/browsers.js","../../node_modules/caniuse-lite/dist/unpacker/browserVersions.js","../../node_modules/caniuse-lite/dist/lib/supported.js","../../node_modules/caniuse-lite/dist/lib/statuses.js","../../node_modules/caniuse-lite/data/browsers.js","../../node_modules/caniuse-lite/data/browserVersions.js","../../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/amp-context.js","../../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/app-router-context.js","../../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/head-manager-context.js","../../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/hooks-client-context.js","../../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/html-context.js","../../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/image-config-context.js","../../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/loadable-context.js","../../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/loadable.js","../../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/router-context.js","../../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/server-inserted-html.js","../../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/amp-context.js","../../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/app-router-context.js","../../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/head-manager-context.js","../../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/hooks-client-context.js","../../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/html-context.js","../../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/image-config-context.js","../../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/loadable-context.js","../../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/loadable.js","../../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/router-context.js","../../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/server-inserted-html.js"]}
@@ -1 +1 @@
1
- {"version":4,"routes":{"/diagram":{"experimentalBypassFor":[{"type":"header","key":"Next-Action"},{"type":"header","key":"content-type","value":"multipart/form-data;.*"}],"initialRevalidateSeconds":false,"srcRoute":"/diagram","dataRoute":"/diagram.rsc"},"/flows":{"experimentalBypassFor":[{"type":"header","key":"Next-Action"},{"type":"header","key":"content-type","value":"multipart/form-data;.*"}],"initialRevalidateSeconds":false,"srcRoute":"/flows","dataRoute":"/flows.rsc"},"/icon.svg":{"initialHeaders":{"cache-control":"public, immutable, no-transform, max-age=31536000","content-type":"image/svg+xml","x-next-cache-tags":"_N_T_/layout,_N_T_/icon.svg/layout,_N_T_/icon.svg/route,_N_T_/icon.svg"},"experimentalBypassFor":[{"type":"header","key":"Next-Action"},{"type":"header","key":"content-type","value":"multipart/form-data;.*"}],"initialRevalidateSeconds":false,"srcRoute":"/icon.svg","dataRoute":null}},"dynamicRoutes":{},"notFoundRoutes":[],"preview":{"previewModeId":"c94663e1c55ae9cbde3f7a20132c1240","previewModeSigningKey":"b51cfe6004601a7fad0d9fb5969cedcdf6fc3facc1e0ef511fda86a4d25faef2","previewModeEncryptionKey":"db3d77f491c1d4c4d2856c0b14e8b8989812a9cb2be5975181937e45c15b0623"}}
1
+ {"version":4,"routes":{"/diagram":{"experimentalBypassFor":[{"type":"header","key":"Next-Action"},{"type":"header","key":"content-type","value":"multipart/form-data;.*"}],"initialRevalidateSeconds":false,"srcRoute":"/diagram","dataRoute":"/diagram.rsc"},"/flows":{"experimentalBypassFor":[{"type":"header","key":"Next-Action"},{"type":"header","key":"content-type","value":"multipart/form-data;.*"}],"initialRevalidateSeconds":false,"srcRoute":"/flows","dataRoute":"/flows.rsc"},"/icon.svg":{"initialHeaders":{"cache-control":"public, immutable, no-transform, max-age=31536000","content-type":"image/svg+xml","x-next-cache-tags":"_N_T_/layout,_N_T_/icon.svg/layout,_N_T_/icon.svg/route,_N_T_/icon.svg"},"experimentalBypassFor":[{"type":"header","key":"Next-Action"},{"type":"header","key":"content-type","value":"multipart/form-data;.*"}],"initialRevalidateSeconds":false,"srcRoute":"/icon.svg","dataRoute":null}},"dynamicRoutes":{},"notFoundRoutes":[],"preview":{"previewModeId":"4a4c0bd816008b13cea931f5330a8dda","previewModeSigningKey":"c20d68cebba886f2fb1df17ad7c2b481ce0eaad572e2b4cc4d9a5a09c12e32e0","previewModeEncryptionKey":"80525955235c5dd1411c5bfabe27ee6008b89689f1d12669fb49b535e0a5e4a8"}}