miclaw-app 0.2.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/build-manifest.json +6 -5
- package/.next/standalone/.next/server/app/_global-error/page/build-manifest.json +3 -2
- package/.next/standalone/.next/server/app/_global-error/page.js +6 -4
- package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_global-error.html +1 -1
- package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found/page/build-manifest.json +3 -2
- package/.next/standalone/.next/server/app/_not-found/page.js +6 -4
- package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +3 -3
- package/.next/standalone/.next/server/app/_not-found.rsc +10 -10
- package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +10 -10
- package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/agents/page/build-manifest.json +3 -2
- package/.next/standalone/.next/server/app/agents/page/server-reference-manifest.json +26 -1
- package/.next/standalone/.next/server/app/agents/page.js +10 -6
- package/.next/standalone/.next/server/app/agents/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/agents/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/agents.html +17 -10
- package/.next/standalone/.next/server/app/agents.rsc +19 -24
- package/.next/standalone/.next/server/app/agents.segments/_full.segment.rsc +19 -24
- package/.next/standalone/.next/server/app/agents.segments/_head.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/agents.segments/_index.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/agents.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +14 -19
- package/.next/standalone/.next/server/app/agents.segments/agents.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/commands/page/build-manifest.json +3 -2
- package/.next/standalone/.next/server/app/commands/page/server-reference-manifest.json +26 -1
- package/.next/standalone/.next/server/app/commands/page.js +10 -6
- package/.next/standalone/.next/server/app/commands/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/commands/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/commands.html +27 -15
- package/.next/standalone/.next/server/app/commands.rsc +166 -174
- package/.next/standalone/.next/server/app/commands.segments/_full.segment.rsc +166 -174
- package/.next/standalone/.next/server/app/commands.segments/_head.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/commands.segments/_index.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/commands.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/commands.segments/commands/__PAGE__.segment.rsc +161 -169
- package/.next/standalone/.next/server/app/commands.segments/commands.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/hooks/page/build-manifest.json +3 -2
- package/.next/standalone/.next/server/app/hooks/page.js +7 -5
- package/.next/standalone/.next/server/app/hooks/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/hooks/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/hooks.html +3 -3
- package/.next/standalone/.next/server/app/hooks.rsc +11 -11
- package/.next/standalone/.next/server/app/hooks.segments/_full.segment.rsc +11 -11
- package/.next/standalone/.next/server/app/hooks.segments/_head.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/hooks.segments/_index.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/hooks.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/hooks.segments/hooks/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/hooks.segments/hooks.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/index.html +18 -18
- package/.next/standalone/.next/server/app/index.rsc +12 -12
- package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +12 -12
- package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/mcp/page/build-manifest.json +3 -2
- package/.next/standalone/.next/server/app/mcp/page.js +7 -5
- package/.next/standalone/.next/server/app/mcp/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/mcp/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/mcp.html +3 -3
- package/.next/standalone/.next/server/app/mcp.rsc +12 -12
- package/.next/standalone/.next/server/app/mcp.segments/_full.segment.rsc +12 -12
- package/.next/standalone/.next/server/app/mcp.segments/_head.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/mcp.segments/_index.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/mcp.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/mcp.segments/mcp/__PAGE__.segment.rsc +7 -8
- package/.next/standalone/.next/server/app/mcp.segments/mcp.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/page/build-manifest.json +3 -2
- package/.next/standalone/.next/server/app/page.js +7 -5
- package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/projects/[slug]/page/build-manifest.json +3 -2
- package/.next/standalone/.next/server/app/projects/[slug]/page/server-reference-manifest.json +50 -1
- package/.next/standalone/.next/server/app/projects/[slug]/page.js +11 -7
- package/.next/standalone/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/rules/page/build-manifest.json +3 -2
- package/.next/standalone/.next/server/app/rules/page/server-reference-manifest.json +14 -1
- package/.next/standalone/.next/server/app/rules/page.js +10 -6
- package/.next/standalone/.next/server/app/rules/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/rules/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/rules.html +24 -12
- package/.next/standalone/.next/server/app/rules.rsc +23 -23
- package/.next/standalone/.next/server/app/rules.segments/_full.segment.rsc +23 -23
- package/.next/standalone/.next/server/app/rules.segments/_head.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/rules.segments/_index.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/rules.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/rules.segments/rules/__PAGE__.segment.rsc +15 -15
- package/.next/standalone/.next/server/app/rules.segments/rules.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/settings/page/build-manifest.json +3 -2
- package/.next/standalone/.next/server/app/settings/page.js +7 -5
- package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings.html +3 -50
- package/.next/standalone/.next/server/app/settings.rsc +44 -229
- package/.next/standalone/.next/server/app/settings.segments/_full.segment.rsc +44 -229
- package/.next/standalone/.next/server/app/settings.segments/_head.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/settings.segments/_index.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +34 -224
- package/.next/standalone/.next/server/app/settings.segments/settings.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/skills/page/build-manifest.json +3 -2
- package/.next/standalone/.next/server/app/skills/page/server-reference-manifest.json +26 -1
- package/.next/standalone/.next/server/app/skills/page.js +10 -6
- package/.next/standalone/.next/server/app/skills/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/skills.html +17 -10
- package/.next/standalone/.next/server/app/skills.rsc +22 -24
- package/.next/standalone/.next/server/app/skills.segments/_full.segment.rsc +22 -24
- package/.next/standalone/.next/server/app/skills.segments/_head.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/skills.segments/_index.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/skills.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/skills.segments/skills/__PAGE__.segment.rsc +17 -19
- package/.next/standalone/.next/server/app/skills.segments/skills.segment.rsc +3 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0.angw.._.js +19 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0.n_sm9._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__00-fvlp._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0xrk31o._.js → [root-of-the-server]__07-x3pk._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__09x1iac._.js → [root-of-the-server]__074ddak._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0762gzw._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0a6fhf4._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0cyn.yv._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0drsnbn._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0gs673v._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0hb8yr6._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0lvdgab._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0pi2cyu._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0pqmw9_._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0qau0oe._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0y_r~bl._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__13f6exv._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_0155~lj._.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/_019pxqf._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_04f1jnd._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_075l.9f._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_08ya7_7._.js +18 -0
- package/.next/standalone/.next/server/chunks/ssr/_0_s6zlf._.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/_0blw8hh._.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/_0d3amaq._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_0henl1i._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_0n0cdzu._.js +7 -0
- package/.next/standalone/.next/server/chunks/ssr/_0odsblc._.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/_0qj6zf~._.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/_0~-r05b._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_06ooq~z._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_x_06-w9xa.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_05~t7f3._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_060d1m.._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_0ve2ws3._.js +6 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_compiled_0wewlb4._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/src_components_OverviewClient_tsx_02hf4_.._.js +4 -6
- package/.next/standalone/.next/server/chunks/ssr/src_components_PermissionList_tsx_11auuo4._.js +3 -0
- package/.next/standalone/.next/server/middleware-build-manifest.js +6 -5
- package/.next/standalone/.next/server/pages/404.html +3 -3
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +98 -1
- package/.next/standalone/AGENTS.md +5 -0
- package/.next/standalone/CLAUDE.md +123 -0
- package/.next/standalone/README.md +80 -0
- package/.next/standalone/package.json +1 -1
- package/.next/static/chunks/04aem330ymbdp.js +1 -0
- package/.next/static/chunks/04oemklgq9z0h.js +2 -0
- package/.next/static/chunks/05aigtet4z44u.js +2 -0
- package/.next/static/chunks/07xsxgej4fv2x.js +2 -0
- package/.next/static/chunks/08fwcb._hc08b.js +2 -0
- package/.next/static/chunks/0_y~i1hg5~4wi.js +1 -0
- package/.next/static/chunks/0g_3.48-9emgq.js +2 -0
- package/.next/static/chunks/0lb3l2a8_251j.css +4 -0
- package/.next/static/chunks/0pokw498xojn-.js +5 -0
- package/.next/static/chunks/13dvyaeya8iqh.js +2 -0
- package/.next/static/chunks/14eh46s-dfy04.js +13 -0
- package/.next/static/chunks/turbopack-0vxtok8kx-1on.js +1 -0
- package/README.md +8 -3
- package/package.json +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0-h~dmy._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__03-xb~6._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__05bypkr._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0689aen._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__09jukbl._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__09z7o2x._.js +0 -19
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0beg-.s._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0bm8p5g._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0j~ozdd._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0m45oxh._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0o4fjuz._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0qk5gqw._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0u-t242._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0y_d026._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_09kkdgy._.js +0 -6
- package/.next/standalone/.next/server/chunks/ssr/_0g8yqoe._.js +0 -7
- package/.next/standalone/.next/server/chunks/ssr/_next-internal_server_app_agents_page_actions_07l1ss4.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_next-internal_server_app_commands_page_actions_0npst50.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_next-internal_server_app_projects_[slug]_page_actions_0xg3f7c.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_next-internal_server_app_rules_page_actions_0xcrbur.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_next-internal_server_app_skills_page_actions_0cxzzu-.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/node_modules_0sy8gnb._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/src_components_ExpandableBody_tsx_0-ivqwg._.js +0 -3
- package/.next/static/chunks/0hbcy8fff~.ks.js +0 -15
- package/.next/static/chunks/0mmpyn9fv2fjf.js +0 -2
- package/.next/static/chunks/0xlrze18so95w.css +0 -4
- package/.next/static/chunks/0y3~cortx~or~.js +0 -5
- package/.next/static/chunks/12p3iqtw2ohfq.js +0 -1
- package/.next/static/chunks/turbopack-06dy8k5p5cegf.js +0 -1
- /package/.next/static/{vFFhR9bZqGO0pHP7N7NNG → ykykNEJbtAXExgOj13bt9}/_buildManifest.js +0 -0
- /package/.next/static/{vFFhR9bZqGO0pHP7N7NNG → ykykNEJbtAXExgOj13bt9}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{vFFhR9bZqGO0pHP7N7NNG → ykykNEJbtAXExgOj13bt9}/_ssgManifest.js +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
1:"$Sreact.fragment"
|
|
2
|
-
2:I[
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
2:I[47258,["/_next/static/chunks/08fwcb._hc08b.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/04oemklgq9z0h.js"],"CommandScopeGroup"]
|
|
3
|
+
14:I[97367,["/_next/static/chunks/08fwcb._hc08b.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"OutletBoundary"]
|
|
4
|
+
15:"$Sreact.suspense"
|
|
5
5
|
3:T1810,# Infrastructure Security Audit
|
|
6
6
|
|
|
7
7
|
Scan all AWS infrastructure modules for security issues across four categories: IAM least-privilege, unprotected API routes, encryption, and factory module bypass.
|
|
@@ -114,8 +114,8 @@ Each sub-agent should write its report in this format:
|
|
|
114
114
|
|
|
115
115
|
After the aggregation agent completes, tell the user the full report is at `/tmp/infra-security-audit/SUMMARY.md` and output the brief summary.
|
|
116
116
|
|
|
117
|
-
Read the actual .tf files — don't guess based on module names. When a wildcard resource is found, check if it's a known AWS requirement before flagging.0:{"rsc":["$","$1","c",{"children":[["$","div",null,{"className":"mx-auto max-w-5xl px-8 py-10","children":[["$","div",null,{"className":"mb-8","children":[["$","div",null,{"className":"flex items-baseline gap-3","children":[["$","h1",null,{"className":"text-2xl font-medium tracking-tight","children":"Commands"}],["$","span",null,{"className":"text-sm text-text-
|
|
118
|
-
|
|
117
|
+
Read the actual .tf files — don't guess based on module names. When a wildcard resource is found, check if it's a known AWS requirement before flagging.0:{"rsc":["$","$1","c",{"children":[["$","div",null,{"className":"mx-auto max-w-5xl px-8 py-10","children":[["$","div",null,{"className":"mb-8","children":[["$","div",null,{"className":"flex items-baseline gap-3","children":[["$","h1",null,{"className":"text-2xl font-mono font-medium tracking-tight","children":"Commands"}],["$","span",null,{"className":"font-mono text-sm text-text-dim","children":12}]]}],["$","p",null,{"className":"mt-1 text-sm text-text-muted","children":"Procedural commands across projects"}]]}],[["$","div","/Users/gabry/Desktop/infrastructure",{"className":"mb-8","children":[["$","div",null,{"className":"flex items-center gap-2 mb-3","children":[["$","span",null,{"className":"font-mono text-xs text-text-dim","children":["[","INFRASTRUCTURE","]"]}],["$","span",null,{"className":"text-xs text-text-dim font-mono","children":"~/Desktop/infrastructure"}]]}],["$","$L2",null,{"commands":[{"name":"security-audit","body":"$3","filePath":"/Users/gabry/Desktop/infrastructure/.claude/commands/security-audit.md","scope":{"type":"project","projectName":"infrastructure","projectPath":"/Users/gabry/Desktop/infrastructure"}}],"scopePath":"/Users/gabry/Desktop/infrastructure"}]]}],"$L4","$L5","$L6"],false]}],["$L7"],"$L8"]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"ykykNEJbtAXExgOj13bt9"}
|
|
118
|
+
9:T368e,# Broken Access Control Scan
|
|
119
119
|
|
|
120
120
|
Scan ALL route handlers and Lambda handlers in platform-services for broken access control vulnerabilities beyond IDOR (which is covered by the separate `idor-scan` command).
|
|
121
121
|
|
|
@@ -341,152 +341,7 @@ Write the final report to `access-control-scan-results/SUMMARY.md` with:
|
|
|
341
341
|
|
|
342
342
|
Then output the summary to the user.
|
|
343
343
|
|
|
344
|
-
Be thorough. Read the actual code — don't guess based on function names alone. When checking for role validation, trace the full dependency chain. If a role check happens in a called function or middleware rather than at the route level, note it but don't flag it as a vulnerability.
|
|
345
|
-
12:T1605,# Investigate WGS Ingestion Failure
|
|
346
|
-
|
|
347
|
-
You are investigating a WGS ingestion Step Function failure in production. Follow each step. Do NOT ask for user input -- work autonomously.
|
|
348
|
-
|
|
349
|
-
## Input
|
|
350
|
-
|
|
351
|
-
$ARGUMENTS
|
|
352
|
-
|
|
353
|
-
## Step 1: Parse the Alert
|
|
354
|
-
|
|
355
|
-
Extract from the input text: `correlationId`, `wgsIngestionId`, `sfnError`, `sfnStatus`.
|
|
356
|
-
|
|
357
|
-
If the input is missing required fields, write a report noting the parse failure and stop.
|
|
358
|
-
|
|
359
|
-
## Step 2: Query Axiom
|
|
360
|
-
|
|
361
|
-
Use `mcp__axiom__queryDataset` with `startTime` = `now-24h` and `endTime` = `now`.
|
|
362
|
-
|
|
363
|
-
Trace the correlationId:
|
|
364
|
-
|
|
365
|
-
```apl
|
|
366
|
-
['bioscope-prod']
|
|
367
|
-
| where correlationId == "<correlationId>"
|
|
368
|
-
| order by _time asc
|
|
369
|
-
```
|
|
370
|
-
|
|
371
|
-
Search by wgsIngestionId:
|
|
372
|
-
|
|
373
|
-
```apl
|
|
374
|
-
['bioscope-prod']
|
|
375
|
-
| where data.wgsIngestionId == "<wgsIngestionId>" or message contains "<wgsIngestionId>"
|
|
376
|
-
| order by _time asc
|
|
377
|
-
```
|
|
378
|
-
|
|
379
|
-
Focus on ERROR-level entries. Record only the key log lines needed to explain the failure -- not the full trace.
|
|
380
|
-
|
|
381
|
-
## Step 3: Cross-Reference Code
|
|
382
|
-
|
|
383
|
-
Read the `PLATFORM_SERVICES_PATH` and `INFRASTRUCTURE_PATH` environment variables to locate the repos.
|
|
384
|
-
|
|
385
|
-
### Application code (platform-services)
|
|
386
|
-
|
|
387
|
-
1. `$PLATFORM_SERVICES_PATH/packages/wgs_ingestion_service/src/wgs_ingestion_service/handlers/handle_sfn_failure.py`
|
|
388
|
-
2. `$PLATFORM_SERVICES_PATH/packages/wgs_ingestion_service/src/wgs_ingestion_service/handlers/handle_initiate_ingestion.py`
|
|
389
|
-
3. `$PLATFORM_SERVICES_PATH/packages/bioscope_types/src/bioscope_types/dynamodb/wgs_ingestions.py`
|
|
390
|
-
|
|
391
|
-
### Infrastructure (Terraform)
|
|
392
|
-
|
|
393
|
-
If the error points to a Step Function state, Lambda config, IAM permissions, or resource limits, cross-reference these files:
|
|
394
|
-
|
|
395
|
-
1. `$INFRASTRUCTURE_PATH/modules/aws/wgs_ingestion/sfn.tf` -- Step Function state machine definition and pipeline flow
|
|
396
|
-
2. `$INFRASTRUCTURE_PATH/modules/aws/wgs_ingestion/lambda.tf` -- Lambda function configuration (memory, timeout, layers)
|
|
397
|
-
3. `$INFRASTRUCTURE_PATH/modules/aws/wgs_ingestion/iam.tf` -- IAM roles and policies for the pipeline
|
|
398
|
-
4. `$INFRASTRUCTURE_PATH/modules/aws/wgs_ingestion/eventbridge.tf` -- EventBridge rule that triggers on SFN failures
|
|
399
|
-
5. `$INFRASTRUCTURE_PATH/modules/aws/wgs_ingestion/dynamodb.tf` -- DynamoDB table and index definitions
|
|
400
|
-
|
|
401
|
-
The execution name format is `{wgs_ingestion_id}_{kit_id}_{timestamp}`.
|
|
402
|
-
|
|
403
|
-
## Step 4: Classify the Failure
|
|
404
|
-
|
|
405
|
-
**Default to Bug.** Only classify as Transient if you can point to specific evidence (see criteria below).
|
|
406
|
-
|
|
407
|
-
- **Bug**: Code error, unhandled exception, missing IAM permissions, missing config, infrastructure misconfiguration. Requires a code or infra fix. **This is the default classification when the root cause is unclear.**
|
|
408
|
-
- **Transient**: A failure that meets ALL of these criteria:
|
|
409
|
-
1. The error is a network timeout, AWS throttling, or a known transient pattern (see below)
|
|
410
|
-
2. There is no underlying code/config/IAM issue that caused it
|
|
411
|
-
3. A redrive would be expected to succeed WITHOUT any code or infrastructure changes
|
|
412
|
-
- **Data issue**: Bad input, missing files, malformed data. Requires manual intervention.
|
|
413
|
-
|
|
414
|
-
You MUST justify your classification in the Root Cause section. If classifying as Transient, explicitly state why a redrive would fix it without code changes.
|
|
415
|
-
|
|
416
|
-
### Example Transient Errors
|
|
417
|
-
|
|
418
|
-
These LOOK like data issues but are known transient -- classify as **Transient**:
|
|
419
|
-
|
|
420
|
-
- **`INTERSECT_VARIANTS` / `KeyError: 'CHR:POS:A0:A1'` / "No variants in intersection"**: Intermittent failure in `pgsc_calc` during PRS generation. Resolves on redrive.
|
|
421
|
-
|
|
422
|
-
### Example Bug Patterns
|
|
423
|
-
|
|
424
|
-
These may LOOK transient but are bugs -- classify as **Bug**:
|
|
425
|
-
|
|
426
|
-
- **S3 403 Forbidden on HeadObject/GetObject/PutObject**: Usually a missing IAM permission on the task role, not a temporary auth issue. Check the relevant IAM policy in infrastructure. Example: BIOENG-535 where `genomics-bam-subset-processor` was missing `s3:GetObject` on its output bucket.
|
|
427
|
-
- **S3 404 Not Found on expected files**: Could indicate a missing deployment artifact, misconfigured path, or a race condition in the pipeline -- not transient.
|
|
428
|
-
- **Persistent STS/credential errors on FARGATE_SPOT**: If the same error recurs on redrive or appears on non-spot tasks, it is an IAM issue, not credential expiration.
|
|
429
|
-
|
|
430
|
-
## Step 5: Write the Report
|
|
431
|
-
|
|
432
|
-
Write the report file as: `reports/YYYY-MM-DD_<first-8-chars-of-wgsIngestionId>.md`
|
|
433
|
-
|
|
434
|
-
The `reports/` directory is in the current working directory. Verify with `Glob` that the directory exists before writing. If it does not exist, create it.
|
|
435
|
-
|
|
436
|
-
Keep the report concise. Only include log lines that are directly relevant to explaining the failure cause.
|
|
437
|
-
|
|
438
|
-
```
|
|
439
|
-
# WGS Ingestion Failure Report
|
|
440
|
-
|
|
441
|
-
## Summary
|
|
442
|
-
|
|
443
|
-
| Field | Value |
|
|
444
|
-
|-------|-------|
|
|
445
|
-
| Date | YYYY-MM-DD HH:MM UTC |
|
|
446
|
-
| Correlation ID | ... |
|
|
447
|
-
| WGS Ingestion ID | ... |
|
|
448
|
-
| Execution Name | ... |
|
|
449
|
-
| SFN Error | ... |
|
|
450
|
-
| SFN Status | ... |
|
|
451
|
-
|
|
452
|
-
## Key Logs
|
|
453
|
-
|
|
454
|
-
Only the log lines that explain the failure (oldest first):
|
|
455
|
-
|
|
456
|
-
- `TIMESTAMP` [LEVEL] message (logGroup: ...)
|
|
457
|
-
|
|
458
|
-
## Root Cause
|
|
459
|
-
|
|
460
|
-
<1-3 sentences. What failed and why.>
|
|
461
|
-
|
|
462
|
-
## Classification
|
|
463
|
-
|
|
464
|
-
**<Transient | Bug | Data issue>**
|
|
465
|
-
|
|
466
|
-
## Recommended Action
|
|
467
|
-
|
|
468
|
-
<1-2 sentences.>
|
|
469
|
-
|
|
470
|
-
### Redrive JSON
|
|
471
|
-
|
|
472
|
-
If transient, include:
|
|
473
|
-
|
|
474
|
-
{
|
|
475
|
-
"executionIds": ["<execution-name>"]
|
|
476
|
-
}
|
|
477
|
-
|
|
478
|
-
Env-task name: `redrive-wgs-ingestion-execution`
|
|
479
|
-
```
|
|
480
|
-
|
|
481
|
-
## Rules
|
|
482
|
-
|
|
483
|
-
- Do NOT ask for user input. Work fully autonomously.
|
|
484
|
-
- Do NOT include PII/PHI. Only UUIDs, error codes, timestamps, status values.
|
|
485
|
-
- Do NOT use Bash commands. Use only Read, Glob, Grep, Write, and mcp__axiom__queryDataset.
|
|
486
|
-
- If Axiom queries fail, proceed with code analysis and note the gap in the report.5:["$","div","wgs-ingestion-bot",{"className":"mb-8","children":[["$","div",null,{"className":"flex items-center gap-2 mb-3","children":[["$","span",null,{"className":"inline-flex items-center px-2 py-0.5 text-xs font-medium rounded-sm bg-surface-raised text-text-dim","children":"WGS-INGESTION-BOT"}],["$","span",null,{"className":"text-xs text-text-dim font-mono","children":"~/Desktop/wgs-ingestion-bot/.claude/commands"}]]}],["$","div",null,{"className":"space-y-3","children":[["$","div","/Users/gabry/Desktop/wgs-ingestion-bot/.claude/commands/investigate-wgs-ingestion.md",{"id":"investigate-wgs-ingestion","className":"border border-border rounded-sm p-5 scroll-mt-4 ","children":[["$","h3",null,{"className":"text-sm font-medium","children":"investigate-wgs-ingestion"}],["$","$L2",null,{"content":"$12","previewLines":3}]]}]]}]]}]
|
|
487
|
-
6:["$","script","script-0",{"src":"/_next/static/chunks/12p3iqtw2ohfq.js","async":true}]
|
|
488
|
-
7:["$","$L13",null,{"children":["$","$14",null,{"name":"Next.MetadataOutlet","children":"$@15"}]}]
|
|
489
|
-
16:Tf1d,# Add a New Model to llm-proxy-service
|
|
344
|
+
Be thorough. Read the actual code — don't guess based on function names alone. When checking for role validation, trace the full dependency chain. If a role check happens in a called function or middleware rather than at the route level, note it but don't flag it as a vulnerability.a:Tf1d,# Add a New Model to llm-proxy-service
|
|
490
345
|
|
|
491
346
|
Add a new LLM model to `llm-proxy-service`, ensuring accurate cost reporting.
|
|
492
347
|
|
|
@@ -572,8 +427,7 @@ If the model requires additional env vars (vertex_ai, groq, or anthropic models)
|
|
|
572
427
|
|
|
573
428
|
1. Run `pnpm exec nx run bioscope-types:type-check` to verify the type is valid
|
|
574
429
|
2. Run `pnpm exec nx run llm-proxy-service:test` to verify tests pass
|
|
575
|
-
3. Run `pnpm exec nx run llm-proxy-service:lint` and `pnpm exec nx run llm-proxy-service:type-check`
|
|
576
|
-
17:T1c43,# IDOR & Authorization Vulnerability Scan
|
|
430
|
+
3. Run `pnpm exec nx run llm-proxy-service:lint` and `pnpm exec nx run llm-proxy-service:type-check`b:T1c43,# IDOR & Authorization Vulnerability Scan
|
|
577
431
|
|
|
578
432
|
Scan ALL route handlers in platform-services for IDOR (Insecure Direct Object Reference) and authorization vulnerabilities.
|
|
579
433
|
|
|
@@ -670,8 +524,7 @@ Write the final report to `/tmp/idor-scan-results/SUMMARY.md` with:
|
|
|
670
524
|
|
|
671
525
|
Then output the summary to the user.
|
|
672
526
|
|
|
673
|
-
Be thorough. Read the actual code — don't guess based on function names alone. When in doubt about whether a check exists, read the called functions to see if ownership validation happens deeper in the call chain. If validation happens in a called function rather than at the route level, note it but don't flag it as a vulnerability.
|
|
674
|
-
18:T2543,# PHI/PII Data Exposure Scan
|
|
527
|
+
Be thorough. Read the actual code — don't guess based on function names alone. When in doubt about whether a check exists, read the called functions to see if ownership validation happens deeper in the call chain. If validation happens in a called function rather than at the route level, note it but don't flag it as a vulnerability.c:T2543,# PHI/PII Data Exposure Scan
|
|
675
528
|
|
|
676
529
|
Scan ALL application code in platform-services for Protected Health Information (PHI) and Personally Identifiable Information (PII) exposure vulnerabilities. This covers logging, error responses, API over-fetching, and any other channel where sensitive data could leak.
|
|
677
530
|
|
|
@@ -842,8 +695,7 @@ Write the final report to `/tmp/phi-exposure-scan-results/SUMMARY.md` with:
|
|
|
842
695
|
|
|
843
696
|
Then output the summary to the user.
|
|
844
697
|
|
|
845
|
-
Be thorough. Read the actual code — don't guess based on function names alone. When checking log statements, look at what the `extra` dict actually contains. When checking for model dumps, trace the model class to see what fields it includes. If a model only contains safe fields (IDs, timestamps, statuses), it's not a PHI exposure even if it's logged via `model_dump()`.
|
|
846
|
-
19:T1b86,# Upgrade litellm in llm-proxy-service
|
|
698
|
+
Be thorough. Read the actual code — don't guess based on function names alone. When checking log statements, look at what the `extra` dict actually contains. When checking for model dumps, trace the model class to see what fields it includes. If a model only contains safe fields (IDs, timestamps, statuses), it's not a PHI exposure even if it's logged via `model_dump()`.d:T1b86,# Upgrade litellm in llm-proxy-service
|
|
847
699
|
|
|
848
700
|
Upgrade the `litellm` dependency in `llm-proxy-service` to a new version, validating that all supported models have correct pricing.
|
|
849
701
|
|
|
@@ -956,8 +808,8 @@ After presenting findings to the user and getting their approval:
|
|
|
956
808
|
4. Run `uv sync --all-packages` from the `platform-services/` directory to update the lock file
|
|
957
809
|
5. Run `pnpm exec nx run llm-proxy-service:test` to verify tests pass
|
|
958
810
|
6. Run `pnpm exec nx run llm-proxy-service:lint` and `pnpm exec nx run llm-proxy-service:type-check`
|
|
959
|
-
7. Run `pnpm exec nx run embedding-service:test`, `pnpm exec nx run embedding-service:lint`, and `pnpm exec nx run embedding-service:type-check`
|
|
960
|
-
|
|
811
|
+
7. Run `pnpm exec nx run embedding-service:test`, `pnpm exec nx run embedding-service:lint`, and `pnpm exec nx run embedding-service:type-check`4:["$","div","/Users/gabry/Desktop/platform-services",{"className":"mb-8","children":[["$","div",null,{"className":"flex items-center gap-2 mb-3","children":[["$","span",null,{"className":"font-mono text-xs text-text-dim","children":["[","PLATFORM-SERVICES","]"]}],["$","span",null,{"className":"text-xs text-text-dim font-mono","children":"~/Desktop/platform-services"}]]}],["$","$L2",null,{"commands":[{"name":"access-control-scan","body":"$9","filePath":"/Users/gabry/Desktop/platform-services/.claude/commands/access-control-scan.md","scope":{"type":"project","projectName":"platform-services","projectPath":"/Users/gabry/Desktop/platform-services"}},{"name":"add-llm-proxy-service-model","body":"$a","filePath":"/Users/gabry/Desktop/platform-services/.claude/commands/add-llm-proxy-service-model.md","scope":"$4:props:children:1:props:commands:0:scope"},{"name":"idor-scan","body":"$b","filePath":"/Users/gabry/Desktop/platform-services/.claude/commands/idor-scan.md","scope":"$4:props:children:1:props:commands:0:scope"},{"name":"phi-exposure-scan","body":"$c","filePath":"/Users/gabry/Desktop/platform-services/.claude/commands/phi-exposure-scan.md","scope":"$4:props:children:1:props:commands:0:scope"},{"name":"upgrade-litellm","body":"$d","filePath":"/Users/gabry/Desktop/platform-services/.claude/commands/upgrade-litellm.md","scope":"$4:props:children:1:props:commands:0:scope"}],"scopePath":"/Users/gabry/Desktop/platform-services"}]]}]
|
|
812
|
+
e:T368e,# Broken Access Control Scan
|
|
961
813
|
|
|
962
814
|
Scan ALL route handlers and Lambda handlers in platform-services for broken access control vulnerabilities beyond IDOR (which is covered by the separate `idor-scan` command).
|
|
963
815
|
|
|
@@ -1183,8 +1035,7 @@ Write the final report to `access-control-scan-results/SUMMARY.md` with:
|
|
|
1183
1035
|
|
|
1184
1036
|
Then output the summary to the user.
|
|
1185
1037
|
|
|
1186
|
-
Be thorough. Read the actual code — don't guess based on function names alone. When checking for role validation, trace the full dependency chain. If a role check happens in a called function or middleware rather than at the route level, note it but don't flag it as a vulnerability.
|
|
1187
|
-
1b:Tf1d,# Add a New Model to llm-proxy-service
|
|
1038
|
+
Be thorough. Read the actual code — don't guess based on function names alone. When checking for role validation, trace the full dependency chain. If a role check happens in a called function or middleware rather than at the route level, note it but don't flag it as a vulnerability.f:Tf1d,# Add a New Model to llm-proxy-service
|
|
1188
1039
|
|
|
1189
1040
|
Add a new LLM model to `llm-proxy-service`, ensuring accurate cost reporting.
|
|
1190
1041
|
|
|
@@ -1270,8 +1121,7 @@ If the model requires additional env vars (vertex_ai, groq, or anthropic models)
|
|
|
1270
1121
|
|
|
1271
1122
|
1. Run `pnpm exec nx run bioscope-types:type-check` to verify the type is valid
|
|
1272
1123
|
2. Run `pnpm exec nx run llm-proxy-service:test` to verify tests pass
|
|
1273
|
-
3. Run `pnpm exec nx run llm-proxy-service:lint` and `pnpm exec nx run llm-proxy-service:type-check`
|
|
1274
|
-
1c:T1c43,# IDOR & Authorization Vulnerability Scan
|
|
1124
|
+
3. Run `pnpm exec nx run llm-proxy-service:lint` and `pnpm exec nx run llm-proxy-service:type-check`10:T1c43,# IDOR & Authorization Vulnerability Scan
|
|
1275
1125
|
|
|
1276
1126
|
Scan ALL route handlers in platform-services for IDOR (Insecure Direct Object Reference) and authorization vulnerabilities.
|
|
1277
1127
|
|
|
@@ -1368,8 +1218,7 @@ Write the final report to `/tmp/idor-scan-results/SUMMARY.md` with:
|
|
|
1368
1218
|
|
|
1369
1219
|
Then output the summary to the user.
|
|
1370
1220
|
|
|
1371
|
-
Be thorough. Read the actual code — don't guess based on function names alone. When in doubt about whether a check exists, read the called functions to see if ownership validation happens deeper in the call chain. If validation happens in a called function rather than at the route level, note it but don't flag it as a vulnerability.
|
|
1372
|
-
1d:T2543,# PHI/PII Data Exposure Scan
|
|
1221
|
+
Be thorough. Read the actual code — don't guess based on function names alone. When in doubt about whether a check exists, read the called functions to see if ownership validation happens deeper in the call chain. If validation happens in a called function rather than at the route level, note it but don't flag it as a vulnerability.11:T2543,# PHI/PII Data Exposure Scan
|
|
1373
1222
|
|
|
1374
1223
|
Scan ALL application code in platform-services for Protected Health Information (PHI) and Personally Identifiable Information (PII) exposure vulnerabilities. This covers logging, error responses, API over-fetching, and any other channel where sensitive data could leak.
|
|
1375
1224
|
|
|
@@ -1540,8 +1389,7 @@ Write the final report to `/tmp/phi-exposure-scan-results/SUMMARY.md` with:
|
|
|
1540
1389
|
|
|
1541
1390
|
Then output the summary to the user.
|
|
1542
1391
|
|
|
1543
|
-
Be thorough. Read the actual code — don't guess based on function names alone. When checking log statements, look at what the `extra` dict actually contains. When checking for model dumps, trace the model class to see what fields it includes. If a model only contains safe fields (IDs, timestamps, statuses), it's not a PHI exposure even if it's logged via `model_dump()`.
|
|
1544
|
-
1e:T1b86,# Upgrade litellm in llm-proxy-service
|
|
1392
|
+
Be thorough. Read the actual code — don't guess based on function names alone. When checking log statements, look at what the `extra` dict actually contains. When checking for model dumps, trace the model class to see what fields it includes. If a model only contains safe fields (IDs, timestamps, statuses), it's not a PHI exposure even if it's logged via `model_dump()`.12:T1b86,# Upgrade litellm in llm-proxy-service
|
|
1545
1393
|
|
|
1546
1394
|
Upgrade the `litellm` dependency in `llm-proxy-service` to a new version, validating that all supported models have correct pricing.
|
|
1547
1395
|
|
|
@@ -1654,5 +1502,149 @@ After presenting findings to the user and getting their approval:
|
|
|
1654
1502
|
4. Run `uv sync --all-packages` from the `platform-services/` directory to update the lock file
|
|
1655
1503
|
5. Run `pnpm exec nx run llm-proxy-service:test` to verify tests pass
|
|
1656
1504
|
6. Run `pnpm exec nx run llm-proxy-service:lint` and `pnpm exec nx run llm-proxy-service:type-check`
|
|
1657
|
-
7. Run `pnpm exec nx run embedding-service:test`, `pnpm exec nx run embedding-service:lint`, and `pnpm exec nx run embedding-service:type-check`
|
|
1658
|
-
|
|
1505
|
+
7. Run `pnpm exec nx run embedding-service:test`, `pnpm exec nx run embedding-service:lint`, and `pnpm exec nx run embedding-service:type-check`5:["$","div","/Users/gabry/Desktop/ps-copy/platform-services",{"className":"mb-8","children":[["$","div",null,{"className":"flex items-center gap-2 mb-3","children":[["$","span",null,{"className":"font-mono text-xs text-text-dim","children":["[","PLATFORM-SERVICES","]"]}],["$","span",null,{"className":"text-xs text-text-dim font-mono","children":"~/Desktop/ps-copy/platform-services"}]]}],["$","$L2",null,{"commands":[{"name":"access-control-scan","body":"$e","filePath":"/Users/gabry/Desktop/ps-copy/platform-services/.claude/commands/access-control-scan.md","scope":{"type":"project","projectName":"platform-services","projectPath":"/Users/gabry/Desktop/ps-copy/platform-services"}},{"name":"add-llm-proxy-service-model","body":"$f","filePath":"/Users/gabry/Desktop/ps-copy/platform-services/.claude/commands/add-llm-proxy-service-model.md","scope":"$5:props:children:1:props:commands:0:scope"},{"name":"idor-scan","body":"$10","filePath":"/Users/gabry/Desktop/ps-copy/platform-services/.claude/commands/idor-scan.md","scope":"$5:props:children:1:props:commands:0:scope"},{"name":"phi-exposure-scan","body":"$11","filePath":"/Users/gabry/Desktop/ps-copy/platform-services/.claude/commands/phi-exposure-scan.md","scope":"$5:props:children:1:props:commands:0:scope"},{"name":"upgrade-litellm","body":"$12","filePath":"/Users/gabry/Desktop/ps-copy/platform-services/.claude/commands/upgrade-litellm.md","scope":"$5:props:children:1:props:commands:0:scope"}],"scopePath":"/Users/gabry/Desktop/ps-copy/platform-services"}]]}]
|
|
1506
|
+
13:T1605,# Investigate WGS Ingestion Failure
|
|
1507
|
+
|
|
1508
|
+
You are investigating a WGS ingestion Step Function failure in production. Follow each step. Do NOT ask for user input -- work autonomously.
|
|
1509
|
+
|
|
1510
|
+
## Input
|
|
1511
|
+
|
|
1512
|
+
$ARGUMENTS
|
|
1513
|
+
|
|
1514
|
+
## Step 1: Parse the Alert
|
|
1515
|
+
|
|
1516
|
+
Extract from the input text: `correlationId`, `wgsIngestionId`, `sfnError`, `sfnStatus`.
|
|
1517
|
+
|
|
1518
|
+
If the input is missing required fields, write a report noting the parse failure and stop.
|
|
1519
|
+
|
|
1520
|
+
## Step 2: Query Axiom
|
|
1521
|
+
|
|
1522
|
+
Use `mcp__axiom__queryDataset` with `startTime` = `now-24h` and `endTime` = `now`.
|
|
1523
|
+
|
|
1524
|
+
Trace the correlationId:
|
|
1525
|
+
|
|
1526
|
+
```apl
|
|
1527
|
+
['bioscope-prod']
|
|
1528
|
+
| where correlationId == "<correlationId>"
|
|
1529
|
+
| order by _time asc
|
|
1530
|
+
```
|
|
1531
|
+
|
|
1532
|
+
Search by wgsIngestionId:
|
|
1533
|
+
|
|
1534
|
+
```apl
|
|
1535
|
+
['bioscope-prod']
|
|
1536
|
+
| where data.wgsIngestionId == "<wgsIngestionId>" or message contains "<wgsIngestionId>"
|
|
1537
|
+
| order by _time asc
|
|
1538
|
+
```
|
|
1539
|
+
|
|
1540
|
+
Focus on ERROR-level entries. Record only the key log lines needed to explain the failure -- not the full trace.
|
|
1541
|
+
|
|
1542
|
+
## Step 3: Cross-Reference Code
|
|
1543
|
+
|
|
1544
|
+
Read the `PLATFORM_SERVICES_PATH` and `INFRASTRUCTURE_PATH` environment variables to locate the repos.
|
|
1545
|
+
|
|
1546
|
+
### Application code (platform-services)
|
|
1547
|
+
|
|
1548
|
+
1. `$PLATFORM_SERVICES_PATH/packages/wgs_ingestion_service/src/wgs_ingestion_service/handlers/handle_sfn_failure.py`
|
|
1549
|
+
2. `$PLATFORM_SERVICES_PATH/packages/wgs_ingestion_service/src/wgs_ingestion_service/handlers/handle_initiate_ingestion.py`
|
|
1550
|
+
3. `$PLATFORM_SERVICES_PATH/packages/bioscope_types/src/bioscope_types/dynamodb/wgs_ingestions.py`
|
|
1551
|
+
|
|
1552
|
+
### Infrastructure (Terraform)
|
|
1553
|
+
|
|
1554
|
+
If the error points to a Step Function state, Lambda config, IAM permissions, or resource limits, cross-reference these files:
|
|
1555
|
+
|
|
1556
|
+
1. `$INFRASTRUCTURE_PATH/modules/aws/wgs_ingestion/sfn.tf` -- Step Function state machine definition and pipeline flow
|
|
1557
|
+
2. `$INFRASTRUCTURE_PATH/modules/aws/wgs_ingestion/lambda.tf` -- Lambda function configuration (memory, timeout, layers)
|
|
1558
|
+
3. `$INFRASTRUCTURE_PATH/modules/aws/wgs_ingestion/iam.tf` -- IAM roles and policies for the pipeline
|
|
1559
|
+
4. `$INFRASTRUCTURE_PATH/modules/aws/wgs_ingestion/eventbridge.tf` -- EventBridge rule that triggers on SFN failures
|
|
1560
|
+
5. `$INFRASTRUCTURE_PATH/modules/aws/wgs_ingestion/dynamodb.tf` -- DynamoDB table and index definitions
|
|
1561
|
+
|
|
1562
|
+
The execution name format is `{wgs_ingestion_id}_{kit_id}_{timestamp}`.
|
|
1563
|
+
|
|
1564
|
+
## Step 4: Classify the Failure
|
|
1565
|
+
|
|
1566
|
+
**Default to Bug.** Only classify as Transient if you can point to specific evidence (see criteria below).
|
|
1567
|
+
|
|
1568
|
+
- **Bug**: Code error, unhandled exception, missing IAM permissions, missing config, infrastructure misconfiguration. Requires a code or infra fix. **This is the default classification when the root cause is unclear.**
|
|
1569
|
+
- **Transient**: A failure that meets ALL of these criteria:
|
|
1570
|
+
1. The error is a network timeout, AWS throttling, or a known transient pattern (see below)
|
|
1571
|
+
2. There is no underlying code/config/IAM issue that caused it
|
|
1572
|
+
3. A redrive would be expected to succeed WITHOUT any code or infrastructure changes
|
|
1573
|
+
- **Data issue**: Bad input, missing files, malformed data. Requires manual intervention.
|
|
1574
|
+
|
|
1575
|
+
You MUST justify your classification in the Root Cause section. If classifying as Transient, explicitly state why a redrive would fix it without code changes.
|
|
1576
|
+
|
|
1577
|
+
### Example Transient Errors
|
|
1578
|
+
|
|
1579
|
+
These LOOK like data issues but are known transient -- classify as **Transient**:
|
|
1580
|
+
|
|
1581
|
+
- **`INTERSECT_VARIANTS` / `KeyError: 'CHR:POS:A0:A1'` / "No variants in intersection"**: Intermittent failure in `pgsc_calc` during PRS generation. Resolves on redrive.
|
|
1582
|
+
|
|
1583
|
+
### Example Bug Patterns
|
|
1584
|
+
|
|
1585
|
+
These may LOOK transient but are bugs -- classify as **Bug**:
|
|
1586
|
+
|
|
1587
|
+
- **S3 403 Forbidden on HeadObject/GetObject/PutObject**: Usually a missing IAM permission on the task role, not a temporary auth issue. Check the relevant IAM policy in infrastructure. Example: BIOENG-535 where `genomics-bam-subset-processor` was missing `s3:GetObject` on its output bucket.
|
|
1588
|
+
- **S3 404 Not Found on expected files**: Could indicate a missing deployment artifact, misconfigured path, or a race condition in the pipeline -- not transient.
|
|
1589
|
+
- **Persistent STS/credential errors on FARGATE_SPOT**: If the same error recurs on redrive or appears on non-spot tasks, it is an IAM issue, not credential expiration.
|
|
1590
|
+
|
|
1591
|
+
## Step 5: Write the Report
|
|
1592
|
+
|
|
1593
|
+
Write the report file as: `reports/YYYY-MM-DD_<first-8-chars-of-wgsIngestionId>.md`
|
|
1594
|
+
|
|
1595
|
+
The `reports/` directory is in the current working directory. Verify with `Glob` that the directory exists before writing. If it does not exist, create it.
|
|
1596
|
+
|
|
1597
|
+
Keep the report concise. Only include log lines that are directly relevant to explaining the failure cause.
|
|
1598
|
+
|
|
1599
|
+
```
|
|
1600
|
+
# WGS Ingestion Failure Report
|
|
1601
|
+
|
|
1602
|
+
## Summary
|
|
1603
|
+
|
|
1604
|
+
| Field | Value |
|
|
1605
|
+
|-------|-------|
|
|
1606
|
+
| Date | YYYY-MM-DD HH:MM UTC |
|
|
1607
|
+
| Correlation ID | ... |
|
|
1608
|
+
| WGS Ingestion ID | ... |
|
|
1609
|
+
| Execution Name | ... |
|
|
1610
|
+
| SFN Error | ... |
|
|
1611
|
+
| SFN Status | ... |
|
|
1612
|
+
|
|
1613
|
+
## Key Logs
|
|
1614
|
+
|
|
1615
|
+
Only the log lines that explain the failure (oldest first):
|
|
1616
|
+
|
|
1617
|
+
- `TIMESTAMP` [LEVEL] message (logGroup: ...)
|
|
1618
|
+
|
|
1619
|
+
## Root Cause
|
|
1620
|
+
|
|
1621
|
+
<1-3 sentences. What failed and why.>
|
|
1622
|
+
|
|
1623
|
+
## Classification
|
|
1624
|
+
|
|
1625
|
+
**<Transient | Bug | Data issue>**
|
|
1626
|
+
|
|
1627
|
+
## Recommended Action
|
|
1628
|
+
|
|
1629
|
+
<1-2 sentences.>
|
|
1630
|
+
|
|
1631
|
+
### Redrive JSON
|
|
1632
|
+
|
|
1633
|
+
If transient, include:
|
|
1634
|
+
|
|
1635
|
+
{
|
|
1636
|
+
"executionIds": ["<execution-name>"]
|
|
1637
|
+
}
|
|
1638
|
+
|
|
1639
|
+
Env-task name: `redrive-wgs-ingestion-execution`
|
|
1640
|
+
```
|
|
1641
|
+
|
|
1642
|
+
## Rules
|
|
1643
|
+
|
|
1644
|
+
- Do NOT ask for user input. Work fully autonomously.
|
|
1645
|
+
- Do NOT include PII/PHI. Only UUIDs, error codes, timestamps, status values.
|
|
1646
|
+
- Do NOT use Bash commands. Use only Read, Glob, Grep, Write, and mcp__axiom__queryDataset.
|
|
1647
|
+
- If Axiom queries fail, proceed with code analysis and note the gap in the report.6:["$","div","/Users/gabry/Desktop/wgs-ingestion-bot",{"className":"mb-8","children":[["$","div",null,{"className":"flex items-center gap-2 mb-3","children":[["$","span",null,{"className":"font-mono text-xs text-text-dim","children":["[","WGS-INGESTION-BOT","]"]}],["$","span",null,{"className":"text-xs text-text-dim font-mono","children":"~/Desktop/wgs-ingestion-bot"}]]}],["$","$L2",null,{"commands":[{"name":"investigate-wgs-ingestion","body":"$13","filePath":"/Users/gabry/Desktop/wgs-ingestion-bot/.claude/commands/investigate-wgs-ingestion.md","scope":{"type":"project","projectName":"wgs-ingestion-bot","projectPath":"/Users/gabry/Desktop/wgs-ingestion-bot"}}],"scopePath":"/Users/gabry/Desktop/wgs-ingestion-bot"}]]}]
|
|
1648
|
+
7:["$","script","script-0",{"src":"/_next/static/chunks/04oemklgq9z0h.js","async":true}]
|
|
1649
|
+
8:["$","$L14",null,{"children":["$","$15",null,{"name":"Next.MetadataOutlet","children":"$@16"}]}]
|
|
1650
|
+
16:null
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
1:"$Sreact.fragment"
|
|
2
|
-
2:I[39756,["/_next/static/chunks/
|
|
3
|
-
3:I[37457,["/_next/static/chunks/
|
|
2
|
+
2:I[39756,["/_next/static/chunks/08fwcb._hc08b.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
|
|
3
|
+
3:I[37457,["/_next/static/chunks/08fwcb._hc08b.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
|
|
4
4
|
4:[]
|
|
5
|
-
0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"
|
|
5
|
+
0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"ykykNEJbtAXExgOj13bt9"}
|
|
@@ -7,9 +7,10 @@
|
|
|
7
7
|
"lowPriorityFiles": [],
|
|
8
8
|
"rootMainFiles": [
|
|
9
9
|
"static/chunks/0bzupvr5gt3k9.js",
|
|
10
|
-
"static/chunks/
|
|
10
|
+
"static/chunks/04aem330ymbdp.js",
|
|
11
11
|
"static/chunks/0bogtdbh.dcu1.js",
|
|
12
|
-
"static/chunks/
|
|
12
|
+
"static/chunks/0pokw498xojn-.js",
|
|
13
|
+
"static/chunks/turbopack-0vxtok8kx-1on.js"
|
|
13
14
|
],
|
|
14
15
|
"pages": {},
|
|
15
16
|
"ampFirstPages": []
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
var R=require("../../chunks/ssr/[turbopack]_runtime.js")("server/app/hooks/page.js")
|
|
2
|
-
R.c("server/chunks/ssr/[root-of-the-server]
|
|
2
|
+
R.c("server/chunks/ssr/[root-of-the-server]__0drsnbn._.js")
|
|
3
|
+
R.c("server/chunks/ssr/node_modules_next_dist_060d1m.._.js")
|
|
4
|
+
R.c("server/chunks/ssr/[root-of-the-server]__13f6exv._.js")
|
|
5
|
+
R.c("server/chunks/ssr/node_modules_06ooq~z._.js")
|
|
3
6
|
R.c("server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0dlz56b.js")
|
|
4
|
-
R.c("server/chunks/ssr/
|
|
5
|
-
R.c("server/chunks/ssr/[root-of-the-server]
|
|
6
|
-
R.c("server/chunks/ssr/
|
|
7
|
-
R.c("server/chunks/ssr/[root-of-the-server]__09z7o2x._.js")
|
|
7
|
+
R.c("server/chunks/ssr/[root-of-the-server]__0a6fhf4._.js")
|
|
8
|
+
R.c("server/chunks/ssr/[root-of-the-server]__0.angw.._.js")
|
|
9
|
+
R.c("server/chunks/ssr/node_modules_next_dist_compiled_0wewlb4._.js")
|
|
8
10
|
R.c("server/chunks/ssr/[root-of-the-server]__0dey16.._.js")
|
|
9
11
|
R.c("server/chunks/ssr/node_modules_next_dist_client_components_0inhx6q._.js")
|
|
10
12
|
R.c("server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0ghu-f7.js")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":1,"files":["../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../node_modules/@swc/helpers/package.json","../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../node_modules/next/dist/client/lib/console.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js","../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../node_modules/next/dist/compiled/ws/index.js","../../../../node_modules/next/dist/compiled/ws/package.json","../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../node_modules/next/dist/lib/constants.js","../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../node_modules/next/dist/lib/interop-default.js","../../../../node_modules/next/dist/lib/is-error.js","../../../../node_modules/next/dist/lib/picocolors.js","../../../../node_modules/next/dist/lib/scheduler.js","../../../../node_modules/next/dist/lib/semver-noop.js","../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../node_modules/next/dist/server/node-environment.js","../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../node_modules/next/dist/server/require-hook.js","../../../../node_modules/next/dist/server/response-cache/types.js","../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../node_modules/next/package.json","../../../../node_modules/react/cjs/react.development.js","../../../../node_modules/react/cjs/react.production.js","../../../../node_modules/react/index.js","../../../../node_modules/react/package.json","../../chunks/ssr/[root-of-the-server]
|
|
1
|
+
{"version":1,"files":["../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../node_modules/@swc/helpers/package.json","../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../node_modules/next/dist/client/lib/console.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js","../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../node_modules/next/dist/compiled/ws/index.js","../../../../node_modules/next/dist/compiled/ws/package.json","../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../node_modules/next/dist/lib/constants.js","../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../node_modules/next/dist/lib/interop-default.js","../../../../node_modules/next/dist/lib/is-error.js","../../../../node_modules/next/dist/lib/picocolors.js","../../../../node_modules/next/dist/lib/scheduler.js","../../../../node_modules/next/dist/lib/semver-noop.js","../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../node_modules/next/dist/server/node-environment.js","../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../node_modules/next/dist/server/require-hook.js","../../../../node_modules/next/dist/server/response-cache/types.js","../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../node_modules/next/package.json","../../../../node_modules/react/cjs/react.development.js","../../../../node_modules/react/cjs/react.production.js","../../../../node_modules/react/index.js","../../../../node_modules/react/package.json","../../chunks/ssr/[root-of-the-server]__0.angw.._.js","../../chunks/ssr/[root-of-the-server]__00-fvlp._.js","../../chunks/ssr/[root-of-the-server]__0a6fhf4._.js","../../chunks/ssr/[root-of-the-server]__0dey16.._.js","../../chunks/ssr/[root-of-the-server]__0drsnbn._.js","../../chunks/ssr/[root-of-the-server]__13f6exv._.js","../../chunks/ssr/[turbopack]_runtime.js","../../chunks/ssr/_0n0cdzu._.js","../../chunks/ssr/_next-internal_server_app_hooks_page_actions_0a_tx-6.js","../../chunks/ssr/node_modules_06ooq~z._.js","../../chunks/ssr/node_modules_09w7yel._.js","../../chunks/ssr/node_modules_next_dist_060d1m.._.js","../../chunks/ssr/node_modules_next_dist_0e1izl_._.js","../../chunks/ssr/node_modules_next_dist_client_components_0inhx6q._.js","../../chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0ghu-f7.js","../../chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0lgvd_..js","../../chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0cjv-23.js","../../chunks/ssr/node_modules_next_dist_compiled_0wewlb4._.js","../../chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0dlz56b.js","./page/react-loadable-manifest.json","./page_client-reference-manifest.js"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {};
|
|
2
|
-
globalThis.__RSC_MANIFEST["/hooks/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/node_modules/next/dist/esm/client/components/layout-router.js <module evaluation>":{"id":39756,"name":"*","chunks":["/_next/static/chunks/
|
|
2
|
+
globalThis.__RSC_MANIFEST["/hooks/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/node_modules/next/dist/esm/client/components/layout-router.js <module evaluation>":{"id":39756,"name":"*","chunks":["/_next/static/chunks/08fwcb._hc08b.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/layout-router.js":{"id":39756,"name":"*","chunks":["/_next/static/chunks/08fwcb._hc08b.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/render-from-template-context.js <module evaluation>":{"id":37457,"name":"*","chunks":["/_next/static/chunks/08fwcb._hc08b.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":37457,"name":"*","chunks":["/_next/static/chunks/08fwcb._hc08b.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-page.js <module evaluation>":{"id":47257,"name":"*","chunks":["/_next/static/chunks/08fwcb._hc08b.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-page.js":{"id":47257,"name":"*","chunks":["/_next/static/chunks/08fwcb._hc08b.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-segment.js <module evaluation>":{"id":92825,"name":"*","chunks":["/_next/static/chunks/08fwcb._hc08b.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-segment.js":{"id":92825,"name":"*","chunks":["/_next/static/chunks/08fwcb._hc08b.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js <module evaluation>":{"id":68017,"name":"*","chunks":["/_next/static/chunks/08fwcb._hc08b.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":68017,"name":"*","chunks":["/_next/static/chunks/08fwcb._hc08b.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/framework/boundary-components.js <module evaluation>":{"id":97367,"name":"*","chunks":["/_next/static/chunks/08fwcb._hc08b.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":97367,"name":"*","chunks":["/_next/static/chunks/08fwcb._hc08b.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js <module evaluation>":{"id":27201,"name":"*","chunks":["/_next/static/chunks/08fwcb._hc08b.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":27201,"name":"*","chunks":["/_next/static/chunks/08fwcb._hc08b.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"async":false},"[project]/src/components/Sidebar.tsx <module evaluation>":{"id":22140,"name":"*","chunks":["/_next/static/chunks/08fwcb._hc08b.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"async":false},"[project]/src/components/Sidebar.tsx":{"id":22140,"name":"*","chunks":["/_next/static/chunks/08fwcb._hc08b.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"async":false},"[project]/node_modules/next/dist/client/components/builtin/global-error.js <module evaluation>":{"id":68027,"name":"*","chunks":["/_next/static/chunks/08fwcb._hc08b.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"async":false},"[project]/node_modules/next/dist/client/components/builtin/global-error.js":{"id":68027,"name":"*","chunks":["/_next/static/chunks/08fwcb._hc08b.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"async":false}},"ssrModuleMapping":{"39756":{"*":{"id":2420,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__00-fvlp._.js","server/chunks/ssr/node_modules_next_dist_0e1izl_._.js","server/chunks/ssr/_0n0cdzu._.js"],"async":false}},"37457":{"*":{"id":24017,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__00-fvlp._.js","server/chunks/ssr/node_modules_next_dist_0e1izl_._.js","server/chunks/ssr/_0n0cdzu._.js"],"async":false}},"47257":{"*":{"id":77682,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__00-fvlp._.js","server/chunks/ssr/node_modules_next_dist_0e1izl_._.js","server/chunks/ssr/_0n0cdzu._.js"],"async":false}},"92825":{"*":{"id":97296,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__00-fvlp._.js","server/chunks/ssr/node_modules_next_dist_0e1izl_._.js","server/chunks/ssr/_0n0cdzu._.js"],"async":false}},"68017":{"*":{"id":61660,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__00-fvlp._.js","server/chunks/ssr/node_modules_next_dist_0e1izl_._.js","server/chunks/ssr/_0n0cdzu._.js"],"async":false}},"97367":{"*":{"id":90574,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__00-fvlp._.js","server/chunks/ssr/node_modules_next_dist_0e1izl_._.js","server/chunks/ssr/_0n0cdzu._.js"],"async":false}},"27201":{"*":{"id":60704,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__00-fvlp._.js","server/chunks/ssr/node_modules_next_dist_0e1izl_._.js","server/chunks/ssr/_0n0cdzu._.js"],"async":false}},"22140":{"*":{"id":45209,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__00-fvlp._.js","server/chunks/ssr/node_modules_next_dist_0e1izl_._.js","server/chunks/ssr/_0n0cdzu._.js"],"async":false}},"68027":{"*":{"id":40622,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__00-fvlp._.js","server/chunks/ssr/node_modules_next_dist_0e1izl_._.js","server/chunks/ssr/_0n0cdzu._.js","server/chunks/ssr/node_modules_09w7yel._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"39756":{"*":{"id":26768,"name":"*","chunks":[],"async":false}},"37457":{"*":{"id":17910,"name":"*","chunks":[],"async":false}},"47257":{"*":{"id":92977,"name":"*","chunks":[],"async":false}},"92825":{"*":{"id":48552,"name":"*","chunks":[],"async":false}},"68017":{"*":{"id":83919,"name":"*","chunks":[],"async":false}},"97367":{"*":{"id":24150,"name":"*","chunks":[],"async":false}},"27201":{"*":{"id":40771,"name":"*","chunks":[],"async":false}},"22140":{"*":{"id":17875,"name":"*","chunks":[],"async":false}},"68027":{"*":{"id":82509,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/src/app/layout":[{"path":"static/chunks/0lb3l2a8_251j.css","inlined":false}],"[project]/node_modules/next/dist/client/components/builtin/global-error":[{"path":"static/chunks/0lb3l2a8_251j.css","inlined":false}]},"entryJSFiles":{"[project]/src/app/layout":["static/chunks/08fwcb._hc08b.js","static/chunks/0d3shmwh5_nmn.js"],"[project]/node_modules/next/dist/client/components/builtin/global-error":["static/chunks/08fwcb._hc08b.js","static/chunks/0d3shmwh5_nmn.js"]}};
|
|
3
3
|
|