@prestyj/cli 5.32.0 → 5.32.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -2
- package/assets/skills/task-list/SKILL.md +39 -0
- package/dist/app-sidecar/app-settings.js +11 -5
- package/dist/app-sidecar/app-settings.js.map +1 -1
- package/dist/app-sidecar/auth-routes.js +10 -3
- package/dist/app-sidecar/auth-routes.js.map +1 -1
- package/dist/app-sidecar/git-target.d.ts +15 -2
- package/dist/app-sidecar/git-target.js +24 -10
- package/dist/app-sidecar/git-target.js.map +1 -1
- package/dist/app-sidecar/goal-routes.js +8 -0
- package/dist/app-sidecar/goal-routes.js.map +1 -1
- package/dist/app-sidecar/history-routes.js +7 -0
- package/dist/app-sidecar/history-routes.js.map +1 -1
- package/dist/app-sidecar/history.d.ts +5 -0
- package/dist/app-sidecar/history.js.map +1 -1
- package/dist/app-sidecar/integration-routes.js +4 -0
- package/dist/app-sidecar/integration-routes.js.map +1 -1
- package/dist/app-sidecar/mcp-routes.js +1 -0
- package/dist/app-sidecar/mcp-routes.js.map +1 -1
- package/dist/app-sidecar/mcp-rows.d.ts +2 -0
- package/dist/app-sidecar/mcp-rows.js +4 -1
- package/dist/app-sidecar/mcp-rows.js.map +1 -1
- package/dist/app-sidecar/prompt-routes.js +67 -1
- package/dist/app-sidecar/prompt-routes.js.map +1 -1
- package/dist/app-sidecar/route-context.d.ts +2 -0
- package/dist/app-sidecar/run-control-routes.js +43 -3
- package/dist/app-sidecar/run-control-routes.js.map +1 -1
- package/dist/app-sidecar/session-routes.js +10 -0
- package/dist/app-sidecar/session-routes.js.map +1 -1
- package/dist/app-sidecar/task-routes.js +2 -0
- package/dist/app-sidecar/task-routes.js.map +1 -1
- package/dist/app-sidecar/trophy-manager.d.ts +15 -0
- package/dist/app-sidecar/trophy-manager.js +71 -0
- package/dist/app-sidecar/trophy-manager.js.map +1 -0
- package/dist/app-sidecar/workspace-routes.js +1 -0
- package/dist/app-sidecar/workspace-routes.js.map +1 -1
- package/dist/app-sidecar.js +157 -30
- package/dist/app-sidecar.js.map +1 -1
- package/dist/cli/auth.js +22 -1
- package/dist/cli/auth.js.map +1 -1
- package/dist/cli/mcp.js +6 -1
- package/dist/cli/mcp.js.map +1 -1
- package/dist/cli.js +13 -9
- package/dist/cli.js.map +1 -1
- package/dist/config.js +4 -2
- package/dist/config.js.map +1 -1
- package/dist/core/action-threats.d.ts +68 -0
- package/dist/core/action-threats.js +894 -0
- package/dist/core/action-threats.js.map +1 -0
- package/dist/core/agent-notifications.d.ts +18 -0
- package/dist/core/agent-notifications.js +35 -2
- package/dist/core/agent-notifications.js.map +1 -1
- package/dist/core/agent-session/verification-tracker.d.ts +21 -0
- package/dist/core/agent-session/verification-tracker.js +39 -1
- package/dist/core/agent-session/verification-tracker.js.map +1 -1
- package/dist/core/agent-session.d.ts +168 -2
- package/dist/core/agent-session.js +486 -23
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/blocked-packages-file.d.ts +33 -0
- package/dist/core/blocked-packages-file.js +274 -0
- package/dist/core/blocked-packages-file.js.map +1 -0
- package/dist/core/compaction/policy.d.ts +2 -2
- package/dist/core/compaction/policy.js +86 -43
- package/dist/core/compaction/policy.js.map +1 -1
- package/dist/core/compaction/token-estimator.d.ts +4 -1
- package/dist/core/compaction/token-estimator.js +5 -2
- package/dist/core/compaction/token-estimator.js.map +1 -1
- package/dist/core/event-bus.d.ts +10 -0
- package/dist/core/event-bus.js +2 -0
- package/dist/core/event-bus.js.map +1 -1
- package/dist/core/idle-wake.d.ts +62 -0
- package/dist/core/idle-wake.js +103 -0
- package/dist/core/idle-wake.js.map +1 -0
- package/dist/core/injection-detect.d.ts +2 -1
- package/dist/core/injection-detect.js +13 -4
- package/dist/core/injection-detect.js.map +1 -1
- package/dist/core/installed-threats.d.ts +23 -0
- package/dist/core/installed-threats.js +71 -0
- package/dist/core/installed-threats.js.map +1 -0
- package/dist/core/mcp/catalog-cache.d.ts +2 -0
- package/dist/core/mcp/catalog-cache.js +4 -0
- package/dist/core/mcp/catalog-cache.js.map +1 -1
- package/dist/core/mcp/client.d.ts +8 -0
- package/dist/core/mcp/client.js +37 -3
- package/dist/core/mcp/client.js.map +1 -1
- package/dist/core/mcp/deferred-catalog.d.ts +12 -1
- package/dist/core/mcp/deferred-catalog.js +37 -10
- package/dist/core/mcp/deferred-catalog.js.map +1 -1
- package/dist/core/mcp/index.d.ts +2 -0
- package/dist/core/mcp/index.js +1 -0
- package/dist/core/mcp/index.js.map +1 -1
- package/dist/core/mcp/tool-guard.d.ts +58 -0
- package/dist/core/mcp/tool-guard.js +215 -0
- package/dist/core/mcp/tool-guard.js.map +1 -0
- package/dist/core/network-guard.d.ts +0 -20
- package/dist/core/network-guard.js +6 -0
- package/dist/core/network-guard.js.map +1 -1
- package/dist/core/package-cooldown.d.ts +71 -0
- package/dist/core/package-cooldown.js +301 -0
- package/dist/core/package-cooldown.js.map +1 -0
- package/dist/core/package-threats.d.ts +77 -3
- package/dist/core/package-threats.js +1250 -78
- package/dist/core/package-threats.js.map +1 -1
- package/dist/core/process-manager.d.ts +54 -12
- package/dist/core/process-manager.js +233 -56
- package/dist/core/process-manager.js.map +1 -1
- package/dist/core/project-files.d.ts +15 -0
- package/dist/core/project-files.js +37 -0
- package/dist/core/project-files.js.map +1 -0
- package/dist/core/prompt-commands.js +1 -0
- package/dist/core/prompt-commands.js.map +1 -1
- package/dist/core/session-manager.d.ts +3 -1
- package/dist/core/session-manager.js +2 -1
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/settings-manager.d.ts +1 -0
- package/dist/core/settings-manager.js +4 -0
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/shell-threats.d.ts +14 -1
- package/dist/core/shell-threats.js +73 -24
- package/dist/core/shell-threats.js.map +1 -1
- package/dist/core/skill-scan.d.ts +112 -0
- package/dist/core/skill-scan.js +781 -0
- package/dist/core/skill-scan.js.map +1 -0
- package/dist/core/skills.d.ts +33 -0
- package/dist/core/skills.js +87 -16
- package/dist/core/skills.js.map +1 -1
- package/dist/core/slash-commands.d.ts +5 -1
- package/dist/core/slash-commands.js +24 -9
- package/dist/core/slash-commands.js.map +1 -1
- package/dist/core/steering.d.ts +7 -0
- package/dist/core/steering.js +13 -0
- package/dist/core/steering.js.map +1 -1
- package/dist/core/style-packs/index.js +1 -1
- package/dist/core/style-packs/index.js.map +1 -1
- package/dist/core/style-packs/packs.js +2 -2
- package/dist/core/subagent-manager.js +5 -4
- package/dist/core/subagent-manager.js.map +1 -1
- package/dist/core/threat-feed.d.ts +65 -0
- package/dist/core/threat-feed.js +335 -0
- package/dist/core/threat-feed.js.map +1 -0
- package/dist/core/trophies/catalog-more.d.ts +2 -0
- package/dist/core/trophies/catalog-more.js +857 -0
- package/dist/core/trophies/catalog-more.js.map +1 -0
- package/dist/core/trophies/catalog.d.ts +4 -0
- package/dist/core/trophies/catalog.js +649 -0
- package/dist/core/trophies/catalog.js.map +1 -0
- package/dist/core/trophies/engine.d.ts +70 -0
- package/dist/core/trophies/engine.js +351 -0
- package/dist/core/trophies/engine.js.map +1 -0
- package/dist/core/trophies/store.d.ts +17 -0
- package/dist/core/trophies/store.js +113 -0
- package/dist/core/trophies/store.js.map +1 -0
- package/dist/core/trophies/types.d.ts +119 -0
- package/dist/core/trophies/types.js +78 -0
- package/dist/core/trophies/types.js.map +1 -0
- package/dist/core/verification-evidence.d.ts +10 -6
- package/dist/core/verification-evidence.js +190 -11
- package/dist/core/verification-evidence.js.map +1 -1
- package/dist/goals-agent/goals-agent.js +3 -2
- package/dist/goals-agent/goals-agent.js.map +1 -1
- package/dist/interactive.js +16 -5
- package/dist/interactive.js.map +1 -1
- package/dist/modes/acp-mode.js +8 -1
- package/dist/modes/acp-mode.js.map +1 -1
- package/dist/modes/agent-home-mode.js +13 -1
- package/dist/modes/agent-home-mode.js.map +1 -1
- package/dist/modes/rpc-mode.d.ts +2 -1
- package/dist/modes/rpc-mode.js +15 -3
- package/dist/modes/rpc-mode.js.map +1 -1
- package/dist/modes/serve-mode.js +13 -1
- package/dist/modes/serve-mode.js.map +1 -1
- package/dist/system-prompt.d.ts +8 -0
- package/dist/system-prompt.js +34 -13
- package/dist/system-prompt.js.map +1 -1
- package/dist/test-support/slow-git.d.ts +1 -0
- package/dist/test-support/slow-git.js +21 -0
- package/dist/test-support/slow-git.js.map +1 -0
- package/dist/tools/background-watch-lint.d.ts +18 -0
- package/dist/tools/background-watch-lint.js +102 -0
- package/dist/tools/background-watch-lint.js.map +1 -0
- package/dist/tools/bash.d.ts +15 -4
- package/dist/tools/bash.js +75 -47
- package/dist/tools/bash.js.map +1 -1
- package/dist/tools/checklist.d.ts +3 -3
- package/dist/tools/compress.js +45 -0
- package/dist/tools/compress.js.map +1 -1
- package/dist/tools/edit.js +5 -0
- package/dist/tools/edit.js.map +1 -1
- package/dist/tools/generate-image.d.ts +29 -6
- package/dist/tools/generate-image.js +325 -151
- package/dist/tools/generate-image.js.map +1 -1
- package/dist/tools/grep.d.ts +14 -0
- package/dist/tools/grep.js +36 -2
- package/dist/tools/grep.js.map +1 -1
- package/dist/tools/index.d.ts +5 -1
- package/dist/tools/index.js +7 -4
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/prompt-hints.d.ts +8 -1
- package/dist/tools/prompt-hints.js +22 -2
- package/dist/tools/prompt-hints.js.map +1 -1
- package/dist/tools/routine-output.d.ts +30 -0
- package/dist/tools/routine-output.js +203 -0
- package/dist/tools/routine-output.js.map +1 -0
- package/dist/tools/skill.d.ts +2 -2
- package/dist/tools/skill.js +8 -1
- package/dist/tools/skill.js.map +1 -1
- package/dist/tools/subagent-shared.js +4 -1
- package/dist/tools/subagent-shared.js.map +1 -1
- package/dist/tools/task-output.js +11 -1
- package/dist/tools/task-output.js.map +1 -1
- package/dist/tools/write.js +8 -0
- package/dist/tools/write.js.map +1 -1
- package/dist/ui/components/ModelSelector.d.ts +10 -0
- package/dist/ui/components/ModelSelector.js +51 -5
- package/dist/ui/components/ModelSelector.js.map +1 -1
- package/dist/ui/components/ToolExecution.js +2 -2
- package/dist/ui/components/ToolExecution.js.map +1 -1
- package/dist/ui/mcp.d.ts +2 -0
- package/dist/ui/mcp.js.map +1 -1
- package/dist/ui/terminal-history.js +2 -1
- package/dist/ui/terminal-history.js.map +1 -1
- package/dist/ui/tool-line-summary.js +3 -1
- package/dist/ui/tool-line-summary.js.map +1 -1
- package/dist/utils/git.d.ts +12 -3
- package/dist/utils/git.js +21 -8
- package/dist/utils/git.js.map +1 -1
- package/dist/utils/image.d.ts +14 -0
- package/dist/utils/image.js +23 -0
- package/dist/utils/image.js.map +1 -1
- package/package.json +5 -5
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog-more.js","sourceRoot":"","sources":["../../../src/core/trophies/catalog-more.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,+EAA+E;AAC/E,wEAAwE;AACxE,+EAA+E;AAC/E,yEAAyE;AACzE,EAAE;AACF,iFAAiF;AACjF,+CAA+C;AAI/C,MAAM,KAAK,GAAG,CAAC,GAAyD,EAAE,EAAE,CAC1E,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAU,CAAC;AACpC,MAAM,QAAQ,GAAG,CAAC,GAA4D,EAAE,EAAE,CAChF,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,CAAU,CAAC;AACvC,MAAM,QAAQ,GAAG,CAAC,GAA4D,EAAE,EAAE,CAChF,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,CAAU,CAAC;AAEvC,MAAM,CAAC,MAAM,aAAa,GAAyB;IACjD,wBAAwB;IACxB;QACE,EAAE,EAAE,MAAM;QACV,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,OAAO;QACjB,WAAW,EACT,yGAAyG;QAC3G,IAAI,EAAE,6CAA6C;QACnD,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;QACtB,IAAI,EAAE,CAAC;KACR;IACD;QACE,EAAE,EAAE,SAAS;QACb,KAAK,EAAE,YAAY;QACnB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,OAAO;QACjB,WAAW,EACT,gHAAgH;QAClH,IAAI,EAAE,oEAAoE;QAC1E,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC;QAC3B,IAAI,EAAE,CAAC;KACR;IACD;QACE,EAAE,EAAE,cAAc;QAClB,KAAK,EAAE,qBAAqB;QAC5B,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,OAAO;QACjB,WAAW,EACT,8GAA8G;QAChH,IAAI,EAAE,6CAA6C;QACnD,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC;QAC1B,IAAI,EAAE,CAAC;KACR;IACD;QACE,EAAE,EAAE,OAAO;QACX,KAAK,EAAE,UAAU;QACjB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,mEAAmE;QAChF,IAAI,EAAE,mDAAmD;QACzD,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC;QACzB,IAAI,EAAE,CAAC;KACR;IACD;QACE,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,eAAe;QACtB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,oDAAoD;QACjE,IAAI,EAAE,wBAAwB;QAC9B,IAAI,EAAE,KAAK,CAAC,eAAe,CAAC;QAC5B,IAAI,EAAE,EAAE;KACT;IACD;QACE,EAAE,EAAE,YAAY;QAChB,KAAK,EAAE,WAAW;QAClB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,wDAAwD;QACrE,IAAI,EAAE,0CAA0C;QAChD,IAAI,EAAE,KAAK,CAAC,eAAe,CAAC;QAC5B,IAAI,EAAE,EAAE;KACT;IACD;QACE,EAAE,EAAE,YAAY;QAChB,KAAK,EAAE,kBAAkB;QACzB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,8EAA8E;QAC3F,IAAI,EAAE,0CAA0C;QAChD,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC;QAC1B,IAAI,EAAE,EAAE;KACT;IACD;QACE,EAAE,EAAE,YAAY;QAChB,KAAK,EAAE,YAAY;QACnB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,0DAA0D;QACvE,IAAI,EAAE,sCAAsC;QAC5C,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC;QAC3B,IAAI,EAAE,EAAE;KACT;IACD;QACE,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,kBAAkB;QACzB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,+DAA+D;QAC5E,IAAI,EAAE,uCAAuC;QAC7C,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC;QACrB,IAAI,EAAE,EAAE;KACT;IACD;QACE,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,WAAW;QAClB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,qEAAqE;QAClF,IAAI,EAAE,wBAAwB;QAC9B,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC;QAC1B,IAAI,EAAE,EAAE;KACT;IAED,wBAAwB;IACxB;QACE,EAAE,EAAE,SAAS;QACb,KAAK,EAAE,aAAa;QACpB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,MAAM;QAChB,WAAW,EACT,kGAAkG;QACpG,IAAI,EAAE,0DAA0D;QAChE,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC;QAC1B,IAAI,EAAE,CAAC;KACR;IACD;QACE,EAAE,EAAE,WAAW;QACf,KAAK,EAAE,mBAAmB;QAC1B,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,2EAA2E;QACxF,IAAI,EAAE,8BAA8B;QACpC,IAAI,EAAE,KAAK,CAAC,mBAAmB,CAAC;QAChC,IAAI,EAAE,EAAE;KACT;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,WAAW;QAClB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,0DAA0D;QACvE,IAAI,EAAE,kBAAkB;QACxB,IAAI,EAAE,KAAK,CAAC,eAAe,CAAC;QAC5B,IAAI,EAAE,CAAC;KACR;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,qBAAqB;QAC5B,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,+BAA+B;QAC5C,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,KAAK,CAAC,gBAAgB,CAAC;QAC7B,IAAI,EAAE,EAAE;KACT;IACD;QACE,EAAE,EAAE,SAAS;QACb,KAAK,EAAE,mBAAmB;QAC1B,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,MAAM;QAChB,WAAW,EACT,mGAAmG;QACrG,IAAI,EAAE,kDAAkD;QACxD,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC;QACxB,IAAI,EAAE,CAAC;KACR;IACD;QACE,EAAE,EAAE,aAAa;QACjB,KAAK,EAAE,mBAAmB;QAC1B,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,8CAA8C;QAC3D,IAAI,EAAE,8BAA8B;QACpC,IAAI,EAAE,KAAK,CAAC,kBAAkB,CAAC;QAC/B,IAAI,EAAE,CAAC;KACR;IACD;QACE,EAAE,EAAE,eAAe;QACnB,KAAK,EAAE,gBAAgB;QACvB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,MAAM;QAChB,WAAW,EACT,oHAAoH;QACtH,IAAI,EAAE,kDAAkD;QACxD,IAAI,EAAE,QAAQ,CAAC,mBAAmB,CAAC;QACnC,IAAI,EAAE,CAAC;KACR;IACD;QACE,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,gBAAgB;QACvB,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,2DAA2D;QACxE,IAAI,EAAE,oBAAoB;QAC1B,IAAI,EAAE,KAAK,CAAC,eAAe,CAAC;QAC5B,IAAI,EAAE,GAAG;KACV;IACD;QACE,EAAE,EAAE,eAAe;QACnB,KAAK,EAAE,eAAe;QACtB,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,4EAA4E;QACzF,IAAI,EAAE,gCAAgC;QACtC,IAAI,EAAE,KAAK,CAAC,kBAAkB,CAAC;QAC/B,IAAI,EAAE,GAAG;KACV;IACD;QACE,EAAE,EAAE,YAAY;QAChB,KAAK,EAAE,aAAa;QACpB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,2DAA2D;QACxE,IAAI,EAAE,uCAAuC;QAC7C,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC;QAC1B,IAAI,EAAE,EAAE;KACT;IAED,oBAAoB;IACpB;QACE,EAAE,EAAE,YAAY;QAChB,KAAK,EAAE,YAAY;QACnB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,uDAAuD;QACpE,IAAI,EAAE,uDAAuD;QAC7D,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC;QAC1B,IAAI,EAAE,CAAC;KACR;IACD;QACE,EAAE,EAAE,aAAa;QACjB,KAAK,EAAE,cAAc;QACrB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,4DAA4D;QACzE,IAAI,EAAE,8CAA8C;QACpD,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC;QAC3B,IAAI,EAAE,CAAC;KACR;IACD;QACE,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,kBAAkB;QACzB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,sEAAsE;QACnF,IAAI,EAAE,6DAA6D;QACnE,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC;QACvB,IAAI,EAAE,CAAC;KACR;IACD;QACE,EAAE,EAAE,MAAM;QACV,KAAK,EAAE,YAAY;QACnB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,+DAA+D;QAC5E,IAAI,EAAE,+DAA+D;QACrE,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC;QAC3B,IAAI,EAAE,CAAC;KACR;IACD;QACE,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,WAAW;QAClB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,2EAA2E;QACxF,IAAI,EAAE,gEAAgE;QACtE,IAAI,EAAE,KAAK,CAAC,eAAe,CAAC;QAC5B,IAAI,EAAE,CAAC;KACR;IACD;QACE,EAAE,EAAE,OAAO;QACX,KAAK,EAAE,YAAY;QACnB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,OAAO;QACjB,WAAW,EACT,qFAAqF;QACvF,IAAI,EAAE,iDAAiD;QACvD,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC;QACxB,IAAI,EAAE,CAAC;KACR;IACD;QACE,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,eAAe;QACtB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,iEAAiE;QAC9E,IAAI,EAAE,+CAA+C;QACrD,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC;QAC3B,IAAI,EAAE,CAAC;KACR;IACD;QACE,EAAE,EAAE,iBAAiB;QACrB,KAAK,EAAE,kBAAkB;QACzB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,8EAA8E;QAC3F,IAAI,EAAE,4CAA4C;QAClD,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC;QAChC,IAAI,EAAE,EAAE;KACT;IACD;QACE,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,YAAY;QACnB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,8EAA8E;QAC3F,IAAI,EAAE,8EAA8E;QACpF,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC;QAC5B,IAAI,EAAE,CAAC;KACR;IACD;QACE,EAAE,EAAE,SAAS;QACb,KAAK,EAAE,iBAAiB;QACxB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,wDAAwD;QACrE,IAAI,EAAE,4CAA4C;QAClD,IAAI,EAAE,KAAK,CAAC,iBAAiB,CAAC;QAC9B,IAAI,EAAE,CAAC;KACR;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,gBAAgB;QACvB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,oDAAoD;QACjE,IAAI,EAAE,gDAAgD;QACtD,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;QACtB,IAAI,EAAE,EAAE;KACT;IACD;QACE,EAAE,EAAE,SAAS;QACb,KAAK,EAAE,kBAAkB;QACzB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,sDAAsD;QACnE,IAAI,EAAE,gFAAgF;QACtF,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC;QAC3B,IAAI,EAAE,CAAC;KACR;IACD;QACE,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,uBAAuB;QAC9B,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,6EAA6E;QAC1F,IAAI,EAAE,6EAA6E;QACnF,IAAI,EAAE,KAAK,CAAC,gBAAgB,CAAC;QAC7B,IAAI,EAAE,CAAC;KACR;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,WAAW;QAClB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,OAAO;QACjB,WAAW,EACT,kGAAkG;QACpG,IAAI,EAAE,6EAA6E;QACnF,IAAI,EAAE,KAAK,CAAC,mBAAmB,CAAC;QAChC,IAAI,EAAE,CAAC;KACR;IACD;QACE,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,WAAW;QAClB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,gEAAgE;QAC7E,IAAI,EAAE,yDAAyD;QAC/D,IAAI,EAAE,KAAK,CAAC,gBAAgB,CAAC;QAC7B,IAAI,EAAE,CAAC;KACR;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,uBAAuB;QAC9B,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,gFAAgF;QAC7F,IAAI,EAAE,wCAAwC;QAC9C,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC;QAC3B,IAAI,EAAE,CAAC;KACR;IACD;QACE,EAAE,EAAE,aAAa;QACjB,KAAK,EAAE,iBAAiB;QACxB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,kDAAkD;QAC/D,IAAI,EAAE,oDAAoD;QAC1D,IAAI,EAAE,QAAQ,CAAC,eAAe,CAAC;QAC/B,IAAI,EAAE,CAAC;KACR;IACD;QACE,EAAE,EAAE,YAAY;QAChB,KAAK,EAAE,mBAAmB;QAC1B,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,yEAAyE;QACtF,IAAI,EAAE,yCAAyC;QAC/C,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC;QAC5B,IAAI,EAAE,EAAE;KACT;IACD;QACE,EAAE,EAAE,eAAe;QACnB,KAAK,EAAE,sBAAsB;QAC7B,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,oDAAoD;QACjE,IAAI,EAAE,6BAA6B;QACnC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC;QAChC,IAAI,EAAE,EAAE;KACT;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,YAAY;QACnB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,mCAAmC;QAChD,IAAI,EAAE,oDAAoD;QAC1D,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;QACtB,IAAI,EAAE,EAAE;KACT;IACD;QACE,EAAE,EAAE,YAAY;QAChB,KAAK,EAAE,WAAW;QAClB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,mDAAmD;QAChE,IAAI,EAAE,wCAAwC;QAC9C,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC;QAC3B,IAAI,EAAE,EAAE;KACT;IACD;QACE,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,uBAAuB;QAC9B,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,sCAAsC;QACnD,IAAI,EAAE,8DAA8D;QACpE,IAAI,EAAE,QAAQ,CAAC,WAAW,CAAC;QAC3B,IAAI,EAAE,EAAE;KACT;IACD;QACE,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,eAAe;QACtB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,mCAAmC;QAChD,IAAI,EAAE,kCAAkC;QACxC,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC;QACxB,IAAI,EAAE,EAAE;KACT;IAED,cAAc;IACd;QACE,EAAE,EAAE,YAAY;QAChB,KAAK,EAAE,eAAe;QACtB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,OAAO;QACjB,WAAW,EACT,mFAAmF;QACrF,IAAI,EAAE,uCAAuC;QAC7C,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC;QACzB,IAAI,EAAE,CAAC;KACR;IACD;QACE,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,WAAW;QAClB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,4BAA4B;QACzC,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC;QAC3B,IAAI,EAAE,EAAE;KACT;IACD;QACE,EAAE,EAAE,cAAc;QAClB,KAAK,EAAE,eAAe;QACtB,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,gDAAgD;QAC7D,IAAI,EAAE,wCAAwC;QAC9C,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC;QAC1B,IAAI,EAAE,IAAI;KACX;IAED,wBAAwB;IACxB;QACE,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,oBAAoB;QAC3B,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,OAAO;QACjB,WAAW,EACT,+FAA+F;QACjG,IAAI,EAAE,0DAA0D;QAChE,IAAI,EAAE,KAAK,CAAC,eAAe,CAAC;QAC5B,IAAI,EAAE,CAAC;KACR;IACD;QACE,EAAE,EAAE,MAAM;QACV,KAAK,EAAE,gBAAgB;QACvB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,+EAA+E;QAC5F,IAAI,EAAE,kDAAkD;QACxD,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC;QACxB,IAAI,EAAE,CAAC;KACR;IACD;QACE,EAAE,EAAE,SAAS;QACb,KAAK,EAAE,yBAAyB;QAChC,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,4EAA4E;QACzF,IAAI,EAAE,mEAAmE;QACzE,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC;QACvB,IAAI,EAAE,CAAC;KACR;IACD;QACE,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,cAAc;QACrB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,4BAA4B;QACzC,IAAI,EAAE,6BAA6B;QACnC,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC;QACvB,IAAI,EAAE,GAAG;KACV;IACD;QACE,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,UAAU;QACjB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,yBAAyB;QACtC,IAAI,EAAE,6BAA6B;QACnC,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC;QACzB,IAAI,EAAE,CAAC;KACR;IACD;QACE,EAAE,EAAE,YAAY;QAChB,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,oDAAoD;QACjE,IAAI,EAAE,+BAA+B;QACrC,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC;QACzB,IAAI,EAAE,GAAG;KACV;IAED,iBAAiB;IACjB;QACE,EAAE,EAAE,MAAM;QACV,KAAK,EAAE,cAAc;QACrB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,wEAAwE;QACrF,IAAI,EAAE,6BAA6B;QACnC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC;QACrB,IAAI,EAAE,CAAC;KACR;IACD;QACE,EAAE,EAAE,IAAI;QACR,KAAK,EAAE,kBAAkB;QACzB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,+EAA+E;QAC5F,IAAI,EAAE,6DAA6D;QACnE,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC;QAC3B,IAAI,EAAE,CAAC;KACR;IACD;QACE,EAAE,EAAE,YAAY;QAChB,KAAK,EAAE,iBAAiB;QACxB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,oCAAoC;QACjD,IAAI,EAAE,gDAAgD;QACtD,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;QACtB,IAAI,EAAE,CAAC;KACR;IACD;QACE,EAAE,EAAE,WAAW;QACf,KAAK,EAAE,eAAe;QACtB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,0CAA0C;QACvD,IAAI,EAAE,2CAA2C;QACjD,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC;QAC3B,IAAI,EAAE,GAAG;KACV;IACD;QACE,EAAE,EAAE,YAAY;QAChB,KAAK,EAAE,eAAe;QACtB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,4BAA4B;QACzC,IAAI,EAAE,kBAAkB;QACxB,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC;QACzB,IAAI,EAAE,EAAE;KACT;IACD;QACE,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,gBAAgB;QACvB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,+CAA+C;QAC5D,IAAI,EAAE,2BAA2B;QACjC,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC;QAC9B,IAAI,EAAE,IAAI;KACX;IACD;QACE,EAAE,EAAE,SAAS;QACb,KAAK,EAAE,iBAAiB;QACxB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,6CAA6C;QAC1D,IAAI,EAAE,yBAAyB;QAC/B,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC;QACrB,IAAI,EAAE,EAAE;KACT;IACD;QACE,EAAE,EAAE,OAAO;QACX,KAAK,EAAE,kBAAkB;QACzB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,yCAAyC;QACtD,IAAI,EAAE,+BAA+B;QACrC,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC;QAC3B,IAAI,EAAE,EAAE;KACT;IACD;QACE,EAAE,EAAE,aAAa;QACjB,KAAK,EAAE,UAAU;QACjB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,qCAAqC;QAClD,IAAI,EAAE,mBAAmB;QACzB,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC;QACzB,IAAI,EAAE,GAAG;KACV;IACD;QACE,EAAE,EAAE,YAAY;QAChB,KAAK,EAAE,gBAAgB;QACvB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,2CAA2C;QACxD,IAAI,EAAE,6CAA6C;QACnD,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC;QAC3B,IAAI,EAAE,IAAI;KACX;IACD;QACE,EAAE,EAAE,eAAe;QACnB,KAAK,EAAE,cAAc;QACrB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,uDAAuD;QACpE,IAAI,EAAE,oDAAoD;QAC1D,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;QACtB,IAAI,EAAE,EAAE;KACT;IACD;QACE,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,aAAa;QACpB,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,kDAAkD;QAC/D,IAAI,EAAE,+BAA+B;QACrC,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC;QAC9B,IAAI,EAAE,SAAS;KAChB;IAED,mBAAmB;IACnB;QACE,EAAE,EAAE,YAAY;QAChB,KAAK,EAAE,YAAY;QACnB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,oBAAoB;QACjC,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC;QACzB,IAAI,EAAE,EAAE;KACT;IACD;QACE,EAAE,EAAE,SAAS;QACb,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,0DAA0D;QACvE,IAAI,EAAE,mBAAmB;QACzB,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC;QACvB,IAAI,EAAE,CAAC;KACR;IACD;QACE,EAAE,EAAE,YAAY;QAChB,KAAK,EAAE,gBAAgB;QACvB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,gCAAgC;QAC7C,IAAI,EAAE,+CAA+C;QACrD,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC;QAC1B,IAAI,EAAE,CAAC;KACR;IACD;QACE,EAAE,EAAE,WAAW;QACf,KAAK,EAAE,WAAW;QAClB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,qDAAqD;QAClE,IAAI,EAAE,mBAAmB;QACzB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACxB,IAAI,EAAE,EAAE;KACT;IACD;QACE,EAAE,EAAE,WAAW;QACf,KAAK,EAAE,WAAW;QAClB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,qBAAqB;QAClC,IAAI,EAAE,gCAAgC;QACtC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACxB,IAAI,EAAE,EAAE;KACT;IACD;QACE,EAAE,EAAE,aAAa;QACjB,KAAK,EAAE,UAAU;QACjB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,6BAA6B;QAC1C,IAAI,EAAE,kBAAkB;QACxB,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC;QACzB,IAAI,EAAE,GAAG;KACV;IACD;QACE,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,UAAU;QACjB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,oBAAoB;QACjC,IAAI,EAAE,oBAAoB;QAC1B,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC;QACvB,IAAI,EAAE,EAAE;KACT;IACD;QACE,EAAE,EAAE,WAAW;QACf,KAAK,EAAE,aAAa;QACpB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,wBAAwB;QACrC,IAAI,EAAE,mBAAmB;QACzB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACxB,IAAI,EAAE,EAAE;KACT;IACD;QACE,EAAE,EAAE,WAAW;QACf,KAAK,EAAE,mBAAmB;QAC1B,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,sBAAsB;QACnC,IAAI,EAAE,gCAAgC;QACtC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACxB,IAAI,EAAE,EAAE;KACT;IACD;QACE,EAAE,EAAE,cAAc;QAClB,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,8BAA8B;QAC3C,IAAI,EAAE,oBAAoB;QAC1B,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC;QACzB,IAAI,EAAE,IAAI;KACX;IACD;QACE,EAAE,EAAE,aAAa;QACjB,KAAK,EAAE,YAAY;QACnB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,2BAA2B;QACxC,IAAI,EAAE,uCAAuC;QAC7C,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC;QAC1B,IAAI,EAAE,EAAE;KACT;IACD;QACE,EAAE,EAAE,WAAW;QACf,KAAK,EAAE,cAAc;QACrB,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,+BAA+B;QAC5C,IAAI,EAAE,mBAAmB;QACzB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACxB,IAAI,EAAE,EAAE;KACT;IACD;QACE,EAAE,EAAE,YAAY;QAChB,KAAK,EAAE,cAAc;QACrB,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,0DAA0D;QACvE,IAAI,EAAE,oCAAoC;QAC1C,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACxB,IAAI,EAAE,GAAG;KACV;IACD;QACE,EAAE,EAAE,WAAW;QACf,KAAK,EAAE,WAAW;QAClB,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,kEAAkE;QAC/E,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC;QACvB,IAAI,EAAE,GAAG;KACV;IAED,gBAAgB;IAChB;QACE,EAAE,EAAE,YAAY;QAChB,KAAK,EAAE,YAAY;QACnB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,QAAQ;QAClB,WAAW,EAAE,gDAAgD;QAC7D,IAAI,EAAE,kCAAkC;QACxC,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC;QACxB,IAAI,EAAE,CAAC;QACP,MAAM,EAAE,IAAI;KACb;IACD;QACE,EAAE,EAAE,SAAS;QACb,KAAK,EAAE,iBAAiB;QACxB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,QAAQ;QAClB,WAAW,EAAE,gCAAgC;QAC7C,IAAI,EAAE,yCAAyC;QAC/C,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC;QAC1B,IAAI,EAAE,EAAE;QACR,MAAM,EAAE,IAAI;KACb;IACD;QACE,EAAE,EAAE,IAAI;QACR,KAAK,EAAE,aAAa;QACpB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,QAAQ;QAClB,WAAW,EAAE,sCAAsC;QACnD,IAAI,EAAE,0CAA0C;QAChD,IAAI,EAAE,QAAQ,CAAC,eAAe,CAAC;QAC/B,IAAI,EAAE,EAAE;QACR,MAAM,EAAE,IAAI;KACb;IACD;QACE,EAAE,EAAE,WAAW;QACf,KAAK,EAAE,WAAW;QAClB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,QAAQ;QAClB,WAAW,EAAE,iFAAiF;QAC9F,IAAI,EAAE,2CAA2C;QACjD,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC;QACxB,IAAI,EAAE,EAAE;QACR,MAAM,EAAE,IAAI;KACb;IACD;QACE,EAAE,EAAE,eAAe;QACnB,KAAK,EAAE,eAAe;QACtB,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,QAAQ;QAClB,WAAW,EAAE,sDAAsD;QACnE,IAAI,EAAE,oDAAoD;QAC1D,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC;QACvB,IAAI,EAAE,EAAE;QACR,MAAM,EAAE,IAAI;KACb;CACF,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { TrophyCategory, TrophyCategoryView, TrophyDef } from "./types.js";
|
|
2
|
+
export declare const TROPHY_CATEGORIES: readonly TrophyCategoryView[];
|
|
3
|
+
export declare const TROPHIES: readonly TrophyDef[];
|
|
4
|
+
export declare const TROPHY_CATEGORY_IDS: readonly TrophyCategory[];
|
|
@@ -0,0 +1,649 @@
|
|
|
1
|
+
// The trophy catalog. Each trophy marks a real use of EZ Coder and says what
|
|
2
|
+
// the feature behind it does, so collecting them is a tour of the app. They
|
|
3
|
+
// start easy (send a message, run a slash command) and build to long-haul
|
|
4
|
+
// challenges (a 100-day streak, a thousand commits).
|
|
5
|
+
//
|
|
6
|
+
// Ids are stored in ~/.ezcoder/trophies.json: never rename or reuse one. Copy is
|
|
7
|
+
// shown in the app: plain words, no em dashes.
|
|
8
|
+
import { MORE_TROPHIES } from "./catalog-more.js";
|
|
9
|
+
export const TROPHY_CATEGORIES = [
|
|
10
|
+
{ id: "start", label: "Getting started" },
|
|
11
|
+
{ id: "flow", label: "Working with GG" },
|
|
12
|
+
{ id: "power", label: "Power tools" },
|
|
13
|
+
{ id: "goals", label: "Goals" },
|
|
14
|
+
{ id: "modes", label: "Chat and Motion" },
|
|
15
|
+
{ id: "ship", label: "Shipping" },
|
|
16
|
+
{ id: "habit", label: "Dedication" },
|
|
17
|
+
{ id: "secret", label: "Secrets" },
|
|
18
|
+
];
|
|
19
|
+
const count = (key) => ({ kind: "count", key });
|
|
20
|
+
const distinct = (key) => ({ kind: "distinct", key });
|
|
21
|
+
const progress = (key) => ({ kind: "progress", key });
|
|
22
|
+
const DEFS = [
|
|
23
|
+
// ── Getting started ──
|
|
24
|
+
{
|
|
25
|
+
id: "first-run",
|
|
26
|
+
title: "Hello, GG",
|
|
27
|
+
tier: "bronze",
|
|
28
|
+
category: "start",
|
|
29
|
+
description: "Every message starts a run: GG reads, plans, edits and checks until the job is done.",
|
|
30
|
+
hint: "Send GG a message and let it finish.",
|
|
31
|
+
stat: progress("prompts"),
|
|
32
|
+
goal: 1,
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
id: "slash",
|
|
36
|
+
title: "Shortcut",
|
|
37
|
+
tier: "bronze",
|
|
38
|
+
category: "start",
|
|
39
|
+
description: "Slash commands are ready-made workflows. Type / in the message box to find them, like /commit and /init.",
|
|
40
|
+
hint: "Type / in the message box and pick a command.",
|
|
41
|
+
stat: count("slashCommands"),
|
|
42
|
+
goal: 1,
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
id: "enhance",
|
|
46
|
+
title: "Say it better",
|
|
47
|
+
tier: "bronze",
|
|
48
|
+
category: "start",
|
|
49
|
+
description: "Enhance turns a rough request into a clear brief before GG starts work.",
|
|
50
|
+
hint: "Write a message, press Enhance, then send it.",
|
|
51
|
+
stat: count("enhancedSends"),
|
|
52
|
+
goal: 1,
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
id: "picture",
|
|
56
|
+
title: "Picture this",
|
|
57
|
+
tier: "bronze",
|
|
58
|
+
category: "start",
|
|
59
|
+
description: "GG can read images you send with a message: screenshots, mockups, error dialogs.",
|
|
60
|
+
hint: "Paste or drop a screenshot into the message box.",
|
|
61
|
+
stat: count("attachments"),
|
|
62
|
+
goal: 1,
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
id: "mention",
|
|
66
|
+
title: "Point at it",
|
|
67
|
+
tier: "bronze",
|
|
68
|
+
category: "start",
|
|
69
|
+
description: "Mention a file with @ and GG reads it first, so it starts in the right place.",
|
|
70
|
+
hint: "Type @ in the message box and choose a file.",
|
|
71
|
+
stat: count("fileMentions"),
|
|
72
|
+
goal: 1,
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
id: "steer",
|
|
76
|
+
title: "Change of plans",
|
|
77
|
+
tier: "bronze",
|
|
78
|
+
category: "start",
|
|
79
|
+
description: "A message sent while GG is working joins the run in progress, so you can steer without stopping it.",
|
|
80
|
+
hint: "Send a message while GG is still working.",
|
|
81
|
+
stat: count("steers"),
|
|
82
|
+
goal: 1,
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
id: "fresh",
|
|
86
|
+
title: "Clean slate",
|
|
87
|
+
tier: "bronze",
|
|
88
|
+
category: "start",
|
|
89
|
+
description: "A new session starts a fresh conversation, which keeps the context small and GG focused.",
|
|
90
|
+
hint: "Open the More menu and choose New session.",
|
|
91
|
+
stat: count("newSessions"),
|
|
92
|
+
goal: 1,
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
id: "model",
|
|
96
|
+
title: "Another brain",
|
|
97
|
+
tier: "bronze",
|
|
98
|
+
category: "start",
|
|
99
|
+
description: "Every model has its own strengths, speed and cost. The deck always shows which one is on.",
|
|
100
|
+
hint: "Click the model on the right of the deck and pick another.",
|
|
101
|
+
stat: count("modelSwitches"),
|
|
102
|
+
goal: 1,
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
id: "think",
|
|
106
|
+
title: "Think it through",
|
|
107
|
+
tier: "bronze",
|
|
108
|
+
category: "start",
|
|
109
|
+
description: "The thinking level sets how hard GG thinks. More thinking means slower, more careful answers to hard problems.",
|
|
110
|
+
hint: "Open the model panel and change the thinking level.",
|
|
111
|
+
stat: count("thinkingChanges"),
|
|
112
|
+
goal: 1,
|
|
113
|
+
},
|
|
114
|
+
// ── Working with GG ──
|
|
115
|
+
{
|
|
116
|
+
id: "ken",
|
|
117
|
+
title: "Second opinion",
|
|
118
|
+
tier: "bronze",
|
|
119
|
+
category: "flow",
|
|
120
|
+
description: "Nolan Grout is a mentor who reads along and gives advice without touching your code.",
|
|
121
|
+
hint: "Start a message with @Nolan.",
|
|
122
|
+
stat: count("nolanQuestions"),
|
|
123
|
+
goal: 1,
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
id: "answer",
|
|
127
|
+
title: "You tell me",
|
|
128
|
+
tier: "bronze",
|
|
129
|
+
category: "flow",
|
|
130
|
+
description: "When something is unclear, GG asks you instead of guessing, and waits for your answer.",
|
|
131
|
+
hint: "Answer a question GG asks you during a run.",
|
|
132
|
+
stat: count("questionsAnswered"),
|
|
133
|
+
goal: 1,
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
id: "plan",
|
|
137
|
+
title: "Measure twice",
|
|
138
|
+
tier: "silver",
|
|
139
|
+
category: "flow",
|
|
140
|
+
description: "In Plan mode GG researches and writes a plan first, and changes nothing until you approve it.",
|
|
141
|
+
hint: "Ask GG to plan a change before making it, then approve the plan.",
|
|
142
|
+
stat: count("plansApproved"),
|
|
143
|
+
goal: 1,
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
id: "autopilot",
|
|
147
|
+
title: "Hands free",
|
|
148
|
+
tier: "silver",
|
|
149
|
+
category: "flow",
|
|
150
|
+
description: "With Autopilot on, Nolan reviews GG's work after each run, and GG keeps going until it passes.",
|
|
151
|
+
hint: "Turn on Autopilot in the More menu, then give GG a task.",
|
|
152
|
+
stat: count("autopilotReviews"),
|
|
153
|
+
goal: 1,
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
id: "toolbelt",
|
|
157
|
+
title: "Toolbelt",
|
|
158
|
+
tier: "silver",
|
|
159
|
+
category: "flow",
|
|
160
|
+
description: "Each slash command is a workflow you never have to type out again. Five different ones earns this.",
|
|
161
|
+
hint: "Use 5 different slash commands.",
|
|
162
|
+
stat: distinct("slashCommandNames"),
|
|
163
|
+
goal: 5,
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
id: "architect",
|
|
167
|
+
title: "Architect",
|
|
168
|
+
tier: "gold",
|
|
169
|
+
category: "flow",
|
|
170
|
+
description: "Twenty-five approved plans. Thinking before building is a habit now.",
|
|
171
|
+
hint: "Approve 25 plans.",
|
|
172
|
+
stat: count("plansApproved"),
|
|
173
|
+
goal: 25,
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
id: "mentored",
|
|
177
|
+
title: "Mentored",
|
|
178
|
+
tier: "gold",
|
|
179
|
+
category: "flow",
|
|
180
|
+
description: "Fifty questions to Nolan Grout. You know where to go for a straight answer.",
|
|
181
|
+
hint: "Ask Nolan 50 times.",
|
|
182
|
+
stat: count("nolanQuestions"),
|
|
183
|
+
goal: 50,
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
id: "cruise",
|
|
187
|
+
title: "Cruise control",
|
|
188
|
+
tier: "gold",
|
|
189
|
+
category: "flow",
|
|
190
|
+
description: "Twenty-five Autopilot reviews. You hand over a task and come back to finished work.",
|
|
191
|
+
hint: "Let Autopilot review 25 runs.",
|
|
192
|
+
stat: count("autopilotReviews"),
|
|
193
|
+
goal: 25,
|
|
194
|
+
},
|
|
195
|
+
// ── Power tools ──
|
|
196
|
+
{
|
|
197
|
+
id: "web",
|
|
198
|
+
title: "Look it up",
|
|
199
|
+
tier: "bronze",
|
|
200
|
+
category: "power",
|
|
201
|
+
description: "GG can search the web: docs, error messages, anything newer than the model knows.",
|
|
202
|
+
hint: "Ask GG to look something up online.",
|
|
203
|
+
stat: count("webRuns"),
|
|
204
|
+
goal: 1,
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
id: "background",
|
|
208
|
+
title: "Multitasker",
|
|
209
|
+
tier: "bronze",
|
|
210
|
+
category: "power",
|
|
211
|
+
description: "GG can run things in the background, like a dev server or a watcher, and keep working while they run.",
|
|
212
|
+
hint: "Ask GG to start your dev server.",
|
|
213
|
+
stat: count("backgroundRuns"),
|
|
214
|
+
goal: 1,
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
id: "custom-command",
|
|
218
|
+
title: "Your own command",
|
|
219
|
+
tier: "silver",
|
|
220
|
+
category: "power",
|
|
221
|
+
description: "Save a prompt as a Markdown file in .ezcoder/commands and it becomes your own slash command.",
|
|
222
|
+
hint: "Add a file to .ezcoder/commands, then run it with /.",
|
|
223
|
+
stat: count("customCommands"),
|
|
224
|
+
goal: 1,
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
id: "tasks",
|
|
228
|
+
title: "Ticked off",
|
|
229
|
+
tier: "silver",
|
|
230
|
+
category: "power",
|
|
231
|
+
description: "Tasks is a to-do list for the project that GG can work through for you, one by one.",
|
|
232
|
+
hint: "Open Tasks from the More menu and run one.",
|
|
233
|
+
stat: count("tasksRun"),
|
|
234
|
+
goal: 1,
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
id: "checklist",
|
|
238
|
+
title: "Clean bill",
|
|
239
|
+
tier: "silver",
|
|
240
|
+
category: "power",
|
|
241
|
+
description: "The Checklist reviews tests, CI, security and more, and remembers every result.",
|
|
242
|
+
hint: "Open the Checklist from the More menu and run a check.",
|
|
243
|
+
stat: count("checklistRecords"),
|
|
244
|
+
goal: 1,
|
|
245
|
+
},
|
|
246
|
+
{
|
|
247
|
+
id: "skill",
|
|
248
|
+
title: "By the book",
|
|
249
|
+
tier: "silver",
|
|
250
|
+
category: "power",
|
|
251
|
+
description: "Skills are step-by-step methods GG follows for one kind of job, like a code review or tracking down a flaky bug.",
|
|
252
|
+
hint: "Ask GG for a code review or a test-first change.",
|
|
253
|
+
stat: count("skillRuns"),
|
|
254
|
+
goal: 1,
|
|
255
|
+
},
|
|
256
|
+
{
|
|
257
|
+
id: "helpers",
|
|
258
|
+
title: "Delegate",
|
|
259
|
+
tier: "silver",
|
|
260
|
+
category: "power",
|
|
261
|
+
description: "GG can send helper agents to work in parallel. Big jobs finish sooner when they're split up.",
|
|
262
|
+
hint: "Ask GG to split a big job between helpers.",
|
|
263
|
+
stat: count("subagentRuns"),
|
|
264
|
+
goal: 1,
|
|
265
|
+
},
|
|
266
|
+
{
|
|
267
|
+
id: "mcp",
|
|
268
|
+
title: "Plugged in",
|
|
269
|
+
tier: "silver",
|
|
270
|
+
category: "power",
|
|
271
|
+
description: "MCP servers connect GG to other apps and services, and give it their tools.",
|
|
272
|
+
hint: "Add an MCP server in Settings, then ask GG to use it.",
|
|
273
|
+
stat: count("mcpRuns"),
|
|
274
|
+
goal: 1,
|
|
275
|
+
},
|
|
276
|
+
{
|
|
277
|
+
id: "add-dir",
|
|
278
|
+
title: "Bigger picture",
|
|
279
|
+
tier: "silver",
|
|
280
|
+
category: "power",
|
|
281
|
+
description: "A workspace can hold more than one folder, so GG can work across several projects at once.",
|
|
282
|
+
hint: "Run /add-dir.",
|
|
283
|
+
stat: count("addDirs"),
|
|
284
|
+
goal: 1,
|
|
285
|
+
},
|
|
286
|
+
{
|
|
287
|
+
id: "export",
|
|
288
|
+
title: "For the record",
|
|
289
|
+
tier: "bronze",
|
|
290
|
+
category: "power",
|
|
291
|
+
description: "Any conversation can be saved as a Markdown file.",
|
|
292
|
+
hint: "Choose Export chat in the More menu.",
|
|
293
|
+
stat: count("exports"),
|
|
294
|
+
goal: 1,
|
|
295
|
+
},
|
|
296
|
+
{
|
|
297
|
+
id: "local",
|
|
298
|
+
title: "Off the grid",
|
|
299
|
+
tier: "silver",
|
|
300
|
+
category: "power",
|
|
301
|
+
description: "Local models run on your own computer, so your code never leaves it.",
|
|
302
|
+
hint: "Pick a local model (Ollama or LM Studio) and send a message.",
|
|
303
|
+
stat: count("localRuns"),
|
|
304
|
+
goal: 1,
|
|
305
|
+
},
|
|
306
|
+
{
|
|
307
|
+
id: "polyglot",
|
|
308
|
+
title: "Polyglot",
|
|
309
|
+
tier: "silver",
|
|
310
|
+
category: "power",
|
|
311
|
+
description: "Finished runs on three different models.",
|
|
312
|
+
hint: "Finish runs on 3 different models.",
|
|
313
|
+
stat: distinct("modelsUsed"),
|
|
314
|
+
goal: 3,
|
|
315
|
+
},
|
|
316
|
+
{
|
|
317
|
+
id: "model-zoo",
|
|
318
|
+
title: "Model zoo",
|
|
319
|
+
tier: "gold",
|
|
320
|
+
category: "power",
|
|
321
|
+
description: "Eight different models. You know which one to reach for.",
|
|
322
|
+
hint: "Finish runs on 8 different models.",
|
|
323
|
+
stat: distinct("modelsUsed"),
|
|
324
|
+
goal: 8,
|
|
325
|
+
},
|
|
326
|
+
{
|
|
327
|
+
id: "full-kit",
|
|
328
|
+
title: "Full kit",
|
|
329
|
+
tier: "gold",
|
|
330
|
+
category: "power",
|
|
331
|
+
description: "Twenty different tools used for you. That's most of what GG can do.",
|
|
332
|
+
hint: "Keep giving GG different kinds of work.",
|
|
333
|
+
stat: distinct("toolsUsed"),
|
|
334
|
+
goal: 20,
|
|
335
|
+
},
|
|
336
|
+
// ── Goals ──
|
|
337
|
+
{
|
|
338
|
+
id: "foreman",
|
|
339
|
+
title: "Foreman",
|
|
340
|
+
tier: "silver",
|
|
341
|
+
category: "goals",
|
|
342
|
+
description: "GG Goals breaks a big objective into tasks and sends workers out to do them.",
|
|
343
|
+
hint: "Create a Goal from the home screen and start it.",
|
|
344
|
+
stat: count("goalsStarted"),
|
|
345
|
+
goal: 1,
|
|
346
|
+
},
|
|
347
|
+
{
|
|
348
|
+
id: "crew",
|
|
349
|
+
title: "Full crew",
|
|
350
|
+
tier: "gold",
|
|
351
|
+
category: "goals",
|
|
352
|
+
description: "Twenty-five workers sent out by GG Goals.",
|
|
353
|
+
hint: "Let your Goals send out 25 workers.",
|
|
354
|
+
stat: count("goalWorkers"),
|
|
355
|
+
goal: 25,
|
|
356
|
+
},
|
|
357
|
+
{
|
|
358
|
+
id: "big-plans",
|
|
359
|
+
title: "Big plans",
|
|
360
|
+
tier: "gold",
|
|
361
|
+
category: "goals",
|
|
362
|
+
description: "Five Goals started. You think in objectives, not just tasks.",
|
|
363
|
+
hint: "Start 5 Goals.",
|
|
364
|
+
stat: count("goalsStarted"),
|
|
365
|
+
goal: 5,
|
|
366
|
+
},
|
|
367
|
+
{
|
|
368
|
+
id: "empire",
|
|
369
|
+
title: "Empire",
|
|
370
|
+
tier: "platinum",
|
|
371
|
+
category: "goals",
|
|
372
|
+
description: "Two hundred and fifty workers sent out across your Goals.",
|
|
373
|
+
hint: "Let your Goals send out 250 workers.",
|
|
374
|
+
stat: count("goalWorkers"),
|
|
375
|
+
goal: 250,
|
|
376
|
+
},
|
|
377
|
+
// ── Chat and Motion ──
|
|
378
|
+
{
|
|
379
|
+
id: "chat",
|
|
380
|
+
title: "Just talking",
|
|
381
|
+
tier: "bronze",
|
|
382
|
+
category: "modes",
|
|
383
|
+
description: "GG Chat is a place to think things through, away from code.",
|
|
384
|
+
hint: "Open GG Chat from the home screen.",
|
|
385
|
+
stat: count("chatRuns"),
|
|
386
|
+
goal: 1,
|
|
387
|
+
},
|
|
388
|
+
{
|
|
389
|
+
id: "minds",
|
|
390
|
+
title: "Many minds",
|
|
391
|
+
tier: "silver",
|
|
392
|
+
category: "modes",
|
|
393
|
+
description: "GG Chat has three agents: general, therapist and research. Talk to all three.",
|
|
394
|
+
hint: "Talk to each of the three chat agents in GG Chat.",
|
|
395
|
+
stat: distinct("chatAgents"),
|
|
396
|
+
goal: 3,
|
|
397
|
+
},
|
|
398
|
+
{
|
|
399
|
+
id: "motion",
|
|
400
|
+
title: "Director",
|
|
401
|
+
tier: "silver",
|
|
402
|
+
category: "modes",
|
|
403
|
+
description: "GG Motion turns a prompt into a video.",
|
|
404
|
+
hint: "Open GG Motion from the home screen.",
|
|
405
|
+
stat: count("motionRuns"),
|
|
406
|
+
goal: 1,
|
|
407
|
+
},
|
|
408
|
+
{
|
|
409
|
+
id: "studio",
|
|
410
|
+
title: "Studio",
|
|
411
|
+
tier: "gold",
|
|
412
|
+
category: "modes",
|
|
413
|
+
description: "Twenty-five runs in GG Motion. You've got a reel.",
|
|
414
|
+
hint: "Finish 25 runs in GG Motion.",
|
|
415
|
+
stat: count("motionRuns"),
|
|
416
|
+
goal: 25,
|
|
417
|
+
},
|
|
418
|
+
// ── Shipping ──
|
|
419
|
+
{
|
|
420
|
+
id: "commit",
|
|
421
|
+
title: "First commit",
|
|
422
|
+
tier: "bronze",
|
|
423
|
+
category: "ship",
|
|
424
|
+
description: "GG can commit for you. Commits made during a run earn extra XP.",
|
|
425
|
+
hint: "Ask GG to commit your changes, or run /commit.",
|
|
426
|
+
stat: progress("commits"),
|
|
427
|
+
goal: 1,
|
|
428
|
+
},
|
|
429
|
+
{
|
|
430
|
+
id: "shipper",
|
|
431
|
+
title: "Regular shipper",
|
|
432
|
+
tier: "silver",
|
|
433
|
+
category: "ship",
|
|
434
|
+
description: "Twenty-five commits with EZ Coder.",
|
|
435
|
+
hint: "Make 25 commits.",
|
|
436
|
+
stat: progress("commits"),
|
|
437
|
+
goal: 25,
|
|
438
|
+
},
|
|
439
|
+
{
|
|
440
|
+
id: "ship-it",
|
|
441
|
+
title: "Ship it",
|
|
442
|
+
tier: "gold",
|
|
443
|
+
category: "ship",
|
|
444
|
+
description: "One hundred commits with EZ Coder. That's a lot of shipping.",
|
|
445
|
+
hint: "Make 100 commits.",
|
|
446
|
+
stat: progress("commits"),
|
|
447
|
+
goal: 100,
|
|
448
|
+
},
|
|
449
|
+
{
|
|
450
|
+
id: "lines-10k",
|
|
451
|
+
title: "Ten thousand lines",
|
|
452
|
+
tier: "gold",
|
|
453
|
+
category: "ship",
|
|
454
|
+
description: "Ten thousand lines changed across your commits.",
|
|
455
|
+
hint: "Ship 10,000 changed lines.",
|
|
456
|
+
stat: progress("linesShipped"),
|
|
457
|
+
goal: 10_000,
|
|
458
|
+
},
|
|
459
|
+
{
|
|
460
|
+
id: "shipyard",
|
|
461
|
+
title: "Shipyard",
|
|
462
|
+
tier: "platinum",
|
|
463
|
+
category: "ship",
|
|
464
|
+
description: "A thousand commits. Few people get here.",
|
|
465
|
+
hint: "Make 1,000 commits.",
|
|
466
|
+
stat: progress("commits"),
|
|
467
|
+
goal: 1000,
|
|
468
|
+
},
|
|
469
|
+
{
|
|
470
|
+
id: "lines-100k",
|
|
471
|
+
title: "Novelist",
|
|
472
|
+
tier: "platinum",
|
|
473
|
+
category: "ship",
|
|
474
|
+
description: "A hundred thousand lines changed. That's a few novels' worth.",
|
|
475
|
+
hint: "Ship 100,000 changed lines.",
|
|
476
|
+
stat: progress("linesShipped"),
|
|
477
|
+
goal: 100_000,
|
|
478
|
+
},
|
|
479
|
+
// ── Dedication ──
|
|
480
|
+
{
|
|
481
|
+
id: "streak-3",
|
|
482
|
+
title: "Habit forming",
|
|
483
|
+
tier: "bronze",
|
|
484
|
+
category: "habit",
|
|
485
|
+
description: "Three days in a row with EZ Coder. Streaks boost the XP you earn.",
|
|
486
|
+
hint: "Use EZ Coder 3 days in a row.",
|
|
487
|
+
stat: { kind: "streak" },
|
|
488
|
+
goal: 3,
|
|
489
|
+
},
|
|
490
|
+
{
|
|
491
|
+
id: "streak-7",
|
|
492
|
+
title: "Regular",
|
|
493
|
+
tier: "silver",
|
|
494
|
+
category: "habit",
|
|
495
|
+
description: "A full week in a row.",
|
|
496
|
+
hint: "Use EZ Coder 7 days in a row.",
|
|
497
|
+
stat: { kind: "streak" },
|
|
498
|
+
goal: 7,
|
|
499
|
+
},
|
|
500
|
+
{
|
|
501
|
+
id: "prompts-100",
|
|
502
|
+
title: "Getting chatty",
|
|
503
|
+
tier: "silver",
|
|
504
|
+
category: "habit",
|
|
505
|
+
description: "One hundred finished runs.",
|
|
506
|
+
hint: "Finish 100 runs.",
|
|
507
|
+
stat: progress("prompts"),
|
|
508
|
+
goal: 100,
|
|
509
|
+
},
|
|
510
|
+
{
|
|
511
|
+
id: "projects-5",
|
|
512
|
+
title: "Explorer",
|
|
513
|
+
tier: "silver",
|
|
514
|
+
category: "habit",
|
|
515
|
+
description: "EZ Coder used in five different projects.",
|
|
516
|
+
hint: "Finish runs in 5 different projects.",
|
|
517
|
+
stat: distinct("projects"),
|
|
518
|
+
goal: 5,
|
|
519
|
+
},
|
|
520
|
+
{
|
|
521
|
+
id: "level-10",
|
|
522
|
+
title: "On the up",
|
|
523
|
+
tier: "silver",
|
|
524
|
+
category: "habit",
|
|
525
|
+
description: "Ten level-ups. Your level and rank are in the context key's panel.",
|
|
526
|
+
hint: "Level up 10 times.",
|
|
527
|
+
stat: progress("level"),
|
|
528
|
+
goal: 10,
|
|
529
|
+
},
|
|
530
|
+
{
|
|
531
|
+
id: "streak-30",
|
|
532
|
+
title: "Devoted",
|
|
533
|
+
tier: "gold",
|
|
534
|
+
category: "habit",
|
|
535
|
+
description: "Thirty days in a row. That's the biggest streak bonus there is.",
|
|
536
|
+
hint: "Use EZ Coder 30 days in a row.",
|
|
537
|
+
stat: { kind: "streak" },
|
|
538
|
+
goal: 30,
|
|
539
|
+
},
|
|
540
|
+
{
|
|
541
|
+
id: "prompts-1000",
|
|
542
|
+
title: "Fluent",
|
|
543
|
+
tier: "gold",
|
|
544
|
+
category: "habit",
|
|
545
|
+
description: "One thousand finished runs.",
|
|
546
|
+
hint: "Finish 1,000 runs.",
|
|
547
|
+
stat: progress("prompts"),
|
|
548
|
+
goal: 1000,
|
|
549
|
+
},
|
|
550
|
+
{
|
|
551
|
+
id: "projects-25",
|
|
552
|
+
title: "Globetrotter",
|
|
553
|
+
tier: "gold",
|
|
554
|
+
category: "habit",
|
|
555
|
+
description: "Twenty-five different projects.",
|
|
556
|
+
hint: "Finish runs in 25 different projects.",
|
|
557
|
+
stat: distinct("projects"),
|
|
558
|
+
goal: 25,
|
|
559
|
+
},
|
|
560
|
+
{
|
|
561
|
+
id: "level-25",
|
|
562
|
+
title: "High flyer",
|
|
563
|
+
tier: "gold",
|
|
564
|
+
category: "habit",
|
|
565
|
+
description: "Twenty-five level-ups.",
|
|
566
|
+
hint: "Level up 25 times.",
|
|
567
|
+
stat: progress("level"),
|
|
568
|
+
goal: 25,
|
|
569
|
+
},
|
|
570
|
+
{
|
|
571
|
+
id: "hunter",
|
|
572
|
+
title: "Trophy hunter",
|
|
573
|
+
tier: "gold",
|
|
574
|
+
category: "habit",
|
|
575
|
+
description: "Twenty-five trophies earned.",
|
|
576
|
+
hint: "Earn 25 trophies.",
|
|
577
|
+
stat: { kind: "earned" },
|
|
578
|
+
goal: 25,
|
|
579
|
+
},
|
|
580
|
+
{
|
|
581
|
+
id: "streak-100",
|
|
582
|
+
title: "Unbroken",
|
|
583
|
+
tier: "platinum",
|
|
584
|
+
category: "habit",
|
|
585
|
+
description: "One hundred days in a row.",
|
|
586
|
+
hint: "Use EZ Coder 100 days in a row.",
|
|
587
|
+
stat: { kind: "streak" },
|
|
588
|
+
goal: 100,
|
|
589
|
+
},
|
|
590
|
+
{
|
|
591
|
+
id: "prompts-10000",
|
|
592
|
+
title: "Conversationalist",
|
|
593
|
+
tier: "platinum",
|
|
594
|
+
category: "habit",
|
|
595
|
+
description: "Ten thousand finished runs.",
|
|
596
|
+
hint: "Finish 10,000 runs.",
|
|
597
|
+
stat: progress("prompts"),
|
|
598
|
+
goal: 10_000,
|
|
599
|
+
},
|
|
600
|
+
{
|
|
601
|
+
id: "level-50",
|
|
602
|
+
title: "Legend",
|
|
603
|
+
tier: "platinum",
|
|
604
|
+
category: "habit",
|
|
605
|
+
description: "Fifty level-ups.",
|
|
606
|
+
hint: "Level up 50 times.",
|
|
607
|
+
stat: progress("level"),
|
|
608
|
+
goal: 50,
|
|
609
|
+
},
|
|
610
|
+
// ── Secrets ──
|
|
611
|
+
{
|
|
612
|
+
id: "night-owl",
|
|
613
|
+
title: "Night owl",
|
|
614
|
+
tier: "bronze",
|
|
615
|
+
category: "secret",
|
|
616
|
+
description: "A run finished between midnight and 5 am. Get some sleep.",
|
|
617
|
+
hint: "Finish a run between midnight and 5 am.",
|
|
618
|
+
stat: count("nightRuns"),
|
|
619
|
+
goal: 1,
|
|
620
|
+
secret: true,
|
|
621
|
+
},
|
|
622
|
+
{
|
|
623
|
+
id: "marathon",
|
|
624
|
+
title: "Marathon",
|
|
625
|
+
tier: "gold",
|
|
626
|
+
category: "secret",
|
|
627
|
+
description: "One run kept working for over 30 minutes.",
|
|
628
|
+
hint: "Finish a single run that works for over 30 minutes.",
|
|
629
|
+
stat: count("longRuns"),
|
|
630
|
+
goal: 1,
|
|
631
|
+
secret: true,
|
|
632
|
+
},
|
|
633
|
+
];
|
|
634
|
+
/** Both halves of the catalog, in category order so the panel groups them. */
|
|
635
|
+
const ALL = TROPHY_CATEGORIES.flatMap((category) => [...DEFS, ...MORE_TROPHIES].filter((t) => t.category === category.id));
|
|
636
|
+
/** Earn every other trophy. Last, so its goal counts the rest. */
|
|
637
|
+
const COMPLETIONIST = {
|
|
638
|
+
id: "completionist",
|
|
639
|
+
title: "Completionist",
|
|
640
|
+
tier: "platinum",
|
|
641
|
+
category: "habit",
|
|
642
|
+
description: "Every other trophy, earned. You know EZ Coder inside out.",
|
|
643
|
+
hint: "Earn every other trophy.",
|
|
644
|
+
stat: { kind: "earned" },
|
|
645
|
+
goal: ALL.length,
|
|
646
|
+
};
|
|
647
|
+
export const TROPHIES = [...ALL, COMPLETIONIST];
|
|
648
|
+
export const TROPHY_CATEGORY_IDS = TROPHY_CATEGORIES.map((c) => c.id);
|
|
649
|
+
//# sourceMappingURL=catalog.js.map
|