@prestyj/cli 4.3.15 → 4.3.54
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 +4 -4
- package/dist/cli.js +529 -74
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +122 -3
- package/dist/config.js.map +1 -1
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +41 -23
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/auth-storage.d.ts.map +1 -1
- package/dist/core/auth-storage.js +14 -2
- package/dist/core/auth-storage.js.map +1 -1
- package/dist/core/auto-update.d.ts +24 -3
- package/dist/core/auto-update.d.ts.map +1 -1
- package/dist/core/auto-update.js +143 -55
- package/dist/core/auto-update.js.map +1 -1
- package/dist/core/auto-update.test.d.ts +2 -0
- package/dist/core/auto-update.test.d.ts.map +1 -0
- package/dist/core/auto-update.test.js +205 -0
- package/dist/core/auto-update.test.js.map +1 -0
- package/dist/core/compaction/compactor.d.ts +4 -0
- package/dist/core/compaction/compactor.d.ts.map +1 -1
- package/dist/core/compaction/compactor.js +17 -1
- package/dist/core/compaction/compactor.js.map +1 -1
- package/dist/core/compaction/compactor.test.js +44 -11
- package/dist/core/compaction/compactor.test.js.map +1 -1
- package/dist/core/compaction/token-estimator.d.ts.map +1 -1
- package/dist/core/compaction/token-estimator.js +14 -1
- package/dist/core/compaction/token-estimator.js.map +1 -1
- package/dist/core/compaction/token-estimator.test.js +1 -1
- package/dist/core/logger.d.ts +7 -2
- package/dist/core/logger.d.ts.map +1 -1
- package/dist/core/logger.js +48 -4
- package/dist/core/logger.js.map +1 -1
- package/dist/core/model-registry.d.ts.map +1 -1
- package/dist/core/model-registry.js +56 -21
- package/dist/core/model-registry.js.map +1 -1
- package/dist/core/prompt-commands.d.ts.map +1 -1
- package/dist/core/prompt-commands.js +356 -1
- package/dist/core/prompt-commands.js.map +1 -1
- package/dist/core/settings-manager.d.ts +1 -0
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +3 -1
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/skills.d.ts.map +1 -1
- package/dist/core/skills.js +29 -14
- package/dist/core/skills.js.map +1 -1
- package/dist/modes/agent-home-mode.d.ts +21 -0
- package/dist/modes/agent-home-mode.d.ts.map +1 -0
- package/dist/modes/agent-home-mode.js +553 -0
- package/dist/modes/agent-home-mode.js.map +1 -0
- package/dist/system-prompt.d.ts +5 -1
- package/dist/system-prompt.d.ts.map +1 -1
- package/dist/system-prompt.js +118 -82
- package/dist/system-prompt.js.map +1 -1
- package/dist/tools/bash.js +1 -1
- package/dist/tools/bash.js.map +1 -1
- package/dist/tools/edit.d.ts +4 -2
- package/dist/tools/edit.d.ts.map +1 -1
- package/dist/tools/edit.js +61 -33
- package/dist/tools/edit.js.map +1 -1
- package/dist/tools/edit.test.js +80 -20
- package/dist/tools/edit.test.js.map +1 -1
- package/dist/tools/grep.d.ts.map +1 -1
- package/dist/tools/grep.js +12 -0
- package/dist/tools/grep.js.map +1 -1
- package/dist/tools/plan-mode.test.js +22 -6
- package/dist/tools/plan-mode.test.js.map +1 -1
- package/dist/tools/prompt-hints.d.ts +10 -0
- package/dist/tools/prompt-hints.d.ts.map +1 -0
- package/dist/tools/prompt-hints.js +45 -0
- package/dist/tools/prompt-hints.js.map +1 -0
- package/dist/tools/read.d.ts.map +1 -1
- package/dist/tools/read.js +32 -6
- package/dist/tools/read.js.map +1 -1
- package/dist/tools/read.test.js +23 -4
- package/dist/tools/read.test.js.map +1 -1
- package/dist/tools/subagent.d.ts.map +1 -1
- package/dist/tools/subagent.js +20 -3
- package/dist/tools/subagent.js.map +1 -1
- package/dist/tools/write.test.js +13 -1
- package/dist/tools/write.test.js.map +1 -1
- package/dist/ui/App.d.ts +6 -1
- package/dist/ui/App.d.ts.map +1 -1
- package/dist/ui/App.js +195 -70
- package/dist/ui/App.js.map +1 -1
- package/dist/ui/components/ActivityIndicator.d.ts.map +1 -1
- package/dist/ui/components/ActivityIndicator.js +0 -1
- package/dist/ui/components/ActivityIndicator.js.map +1 -1
- package/dist/ui/components/EyesOverlay.d.ts +10 -0
- package/dist/ui/components/EyesOverlay.d.ts.map +1 -0
- package/dist/ui/components/EyesOverlay.js +220 -0
- package/dist/ui/components/EyesOverlay.js.map +1 -0
- package/dist/ui/components/Footer.d.ts.map +1 -1
- package/dist/ui/components/Footer.js +7 -6
- package/dist/ui/components/Footer.js.map +1 -1
- package/dist/ui/components/InputArea.d.ts +4 -1
- package/dist/ui/components/InputArea.d.ts.map +1 -1
- package/dist/ui/components/InputArea.js +6 -5
- package/dist/ui/components/InputArea.js.map +1 -1
- package/dist/ui/components/ModelSelector.d.ts.map +1 -1
- package/dist/ui/components/ModelSelector.js +2 -1
- package/dist/ui/components/ModelSelector.js.map +1 -1
- package/dist/ui/components/PlanOverlay.d.ts.map +1 -1
- package/dist/ui/components/PlanOverlay.js +7 -1
- package/dist/ui/components/PlanOverlay.js.map +1 -1
- package/dist/ui/components/SelectList.d.ts +3 -1
- package/dist/ui/components/SelectList.d.ts.map +1 -1
- package/dist/ui/components/SelectList.js +15 -2
- package/dist/ui/components/SelectList.js.map +1 -1
- package/dist/ui/components/SkillsOverlay.d.ts.map +1 -1
- package/dist/ui/components/SkillsOverlay.js +6 -59
- package/dist/ui/components/SkillsOverlay.js.map +1 -1
- package/dist/ui/components/SlashCommandMenu.d.ts.map +1 -1
- package/dist/ui/components/SlashCommandMenu.js +18 -8
- package/dist/ui/components/SlashCommandMenu.js.map +1 -1
- package/dist/ui/hooks/stall-retry-duplicate.test.d.ts +2 -0
- package/dist/ui/hooks/stall-retry-duplicate.test.d.ts.map +1 -0
- package/dist/ui/hooks/stall-retry-duplicate.test.js +94 -0
- package/dist/ui/hooks/stall-retry-duplicate.test.js.map +1 -0
- package/dist/ui/hooks/useAgentLoop.d.ts +1 -1
- package/dist/ui/hooks/useAgentLoop.d.ts.map +1 -1
- package/dist/ui/hooks/useAgentLoop.js +19 -0
- package/dist/ui/hooks/useAgentLoop.js.map +1 -1
- package/dist/ui/login.d.ts.map +1 -1
- package/dist/ui/login.js +6 -5
- package/dist/ui/login.js.map +1 -1
- package/dist/ui/stores/create-store.d.ts +15 -0
- package/dist/ui/stores/create-store.d.ts.map +1 -0
- package/dist/ui/stores/create-store.js +30 -0
- package/dist/ui/stores/create-store.js.map +1 -0
- package/dist/ui/stores/index.d.ts +3 -0
- package/dist/ui/stores/index.d.ts.map +1 -0
- package/dist/ui/stores/index.js +3 -0
- package/dist/ui/stores/index.js.map +1 -0
- package/dist/ui/stores/taskbar-store.d.ts +19 -0
- package/dist/ui/stores/taskbar-store.d.ts.map +1 -0
- package/dist/ui/stores/taskbar-store.js +59 -0
- package/dist/ui/stores/taskbar-store.js.map +1 -0
- package/dist/ui/utils/token-to-ansi.d.ts.map +1 -1
- package/dist/ui/utils/token-to-ansi.js +9 -1
- package/dist/ui/utils/token-to-ansi.js.map +1 -1
- package/dist/utils/image.d.ts +18 -1
- package/dist/utils/image.d.ts.map +1 -1
- package/dist/utils/image.js +80 -31
- package/dist/utils/image.js.map +1 -1
- package/dist/utils/session-title.js +1 -1
- package/package.json +13 -9
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-home-mode.js","sourceRoot":"","sources":["../../src/modes/agent-home-mode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,eAAe,EAAkC,MAAM,2BAA2B,CAAC;AAC5F,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,MAAM,CAAC,MAAM,oBAAoB,GAAG,yDAAyD,CAAC;AAa9F,8DAA8D;AAE9D,KAAK,UAAU,gBAAgB;IAC7B,MAAM,WAAW,GAAG,WAAW,EAAE,CAAC,WAAW,CAAC;IAC9C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YAC1C,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;gBACvB,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACpC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;oBAC5C,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACzB,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAcD,6DAA6D;AAE7D,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC;IAC/B,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,OAAO;IACP,KAAK;IACL,GAAG;IACH,GAAG;IACH,OAAO;CACR,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAA6B;IAClE,MAAM,aAAa,GAAG,IAAI,GAAG,EAAwB,CAAC;IACtD,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAiC,CAAC;IACtE,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC;IAC/B,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;IAClD,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC1D,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAAyB,CAAC;IAEhE,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;QACjC,QAAQ,EAAE,oBAAoB;QAC9B,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,KAAK;QAC9B,KAAK,EAAE;YACL,EAAE,EAAE,SAAS;YACb,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,qBAAqB,OAAO,CAAC,KAAK,EAAE;SAClD;KACF,CAAC,CAAC;IAEH,0DAA0D;IAE1D,gEAAgE;IAChE,SAAS,KAAK,CACZ,MAAqE,EACrE,IAAY,EACZ,YAAqB,EACrB,eAAuB;QAEvB,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC;QACnD,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAED,0DAA0D;IAE1D,SAAS,kBAAkB,CAAC,SAAkB;QAC5C,IAAI,SAAS,IAAI,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAChD,OAAO,eAAe,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC;QACzC,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,KAAK,UAAU,aAAa,CAAC,SAAiB,EAAE,GAAW;QACzD,MAAM,EAAE,GAAG,IAAI,eAAe,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC;YAC/B,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,GAAG;YACH,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,MAAM,EAAE,EAAE,CAAC,MAAM;SAClB,CAAC,CAAC;QAEH,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;QAC3B,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,wBAAwB,SAAS,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QAExE,MAAM,KAAK,GAAiB;YAC1B,SAAS;YACT,GAAG;YACH,OAAO;YACP,EAAE;YACF,UAAU,EAAE,EAAE;YACd,WAAW,EAAE,IAAI,GAAG,EAAE;YACtB,YAAY,EAAE,KAAK;SACpB,CAAC;QAEF,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,UAAU,kBAAkB,CAAC,SAAiB;QACjD,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC9C,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAE9B,MAAM,OAAO,GAAG,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACpD,IAAI,OAAO;YAAE,OAAO,OAAO,CAAC;QAE5B,MAAM,GAAG,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,aAAa,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAE9C,oBAAoB,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC;QACvB,CAAC;gBAAS,CAAC;YACT,oBAAoB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED,KAAK,UAAU,aAAa,CAAC,SAAiB,EAAE,WAAmB;QACjE,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC9C,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACjC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClC,CAAC;QACD,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAC5C,MAAM,aAAa,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAC9C,CAAC;IAED,SAAS,YAAY;QACnB,MAAM,IAAI,GAAgB,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACvE,EAAE,EAAE,CAAC,CAAC,SAAS;YACf,KAAK,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE;YAChE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC,CAAC,CAAC;QACJ,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,0DAA0D;IAE1D,KAAK,UAAU,aAAa,CAAC,SAAiB;QAC5C,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,UAAU,GAAG,KAAK,EAAE,GAAG,IAAI,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAC/D,MAAM,YAAY,GAAG,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC;QACtE,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,YAAY,CAAC,CAAC;QAE5D,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,IAAI,gBAAgB,CAAC;QACzB,IAAI,IAAI,cAAc,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,sBAAsB,SAAS,EAAE,IAAI,IAAI,YAAY,QAAQ,CAAC;QAE7G,IAAI,IAAI,gBAAgB,CAAC;QACzB,IAAI,IAAI,8BAA8B,CAAC;QACvC,IAAI,IAAI,mCAAmC,CAAC;QAC5C,IAAI,IAAI,+CAA+C,CAAC;QACxD,IAAI,IAAI,oCAAoC,CAAC;QAC7C,IAAI,IAAI,yCAAyC,CAAC;QAClD,IAAI,IAAI,mCAAmC,CAAC;QAE5C,IAAI,IAAI,eAAe,CAAC;QACxB,IAAI,IAAI,wCAAwC,CAAC;QACjD,IAAI,IAAI,iCAAiC,CAAC;QAC1C,IAAI,IAAI,qCAAqC,CAAC;QAC9C,IAAI,IAAI,wCAAwC,CAAC;QACjD,IAAI,IAAI,sCAAsC,CAAC;QAC/C,IAAI,IAAI,mCAAmC,CAAC;QAC5C,IAAI,IAAI,6CAA6C,CAAC;QAEtD,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,IAAI,IAAI,eAAe,CAAC;YACxB,KAAK,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;gBAClC,IAAI,IAAI,MAAM,GAAG,CAAC,IAAI,aAAa,GAAG,CAAC,WAAW,IAAI,CAAC;YACzD,CAAC;QACH,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,kBAAkB,CAAC,UAAU,CAAC,CAAC;QACxD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,IAAI,IAAI,gBAAgB,CAAC;YACzB,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;gBAC7B,IAAI,IAAI,MAAM,GAAG,CAAC,IAAI,aAAa,GAAG,CAAC,WAAW,IAAI,CAAC;YACzD,CAAC;QACH,CAAC;QAED,IAAI,IAAI,uCAAuC,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0DAA0D;IAE1D,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;QACzC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;QACvC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAE/B,IAAI,eAAuB,CAAC;QAC5B,IAAI,YAAY,GAAG,KAAK,CAAC;QAEzB,IAAI,SAAS,EAAE,CAAC;YACd,eAAe,GAAG,SAAS,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,eAAe,GAAG,WAAW,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAC1C,YAAY,GAAG,IAAI,CAAC;QACtB,CAAC;QAED,yDAAyD;QACzD,MAAM,eAAe,GAAG,qBAAqB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QACnE,IAAI,eAAe,EAAE,CAAC;YACpB,qBAAqB,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;YAC9C,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAClC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC;gBAC1D,KAAK,CACH,MAAM,EACN,+CAA+C,EAC/C,YAAY,EACZ,eAAe,CAChB,CAAC;gBACF,OAAO;YACT,CAAC;YACD,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,GAAG,CAAC,CAAE,CAAC;YAC3C,MAAM,aAAa,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;YAC/C,YAAY,EAAE,CAAC;YACf,KAAK,CACH,MAAM,EACN,wBAAwB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EACnD,YAAY,EACZ,eAAe,CAChB,CAAC;YACF,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,kBAAkB,eAAe,OAAO,QAAQ,EAAE,CAAC,CAAC;YAC9E,OAAO;QACT,CAAC;QAED,yDAAyD;QACzD,MAAM,aAAa,GAAG,sBAAsB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAClE,IAAI,aAAa,EAAE,CAAC;YAClB,sBAAsB,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;YAC/C,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAClC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC;gBACxD,KAAK,CAAC,MAAM,EAAE,4CAA4C,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;gBAC3F,OAAO;YACT,CAAC;YACD,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,GAAG,CAAC,CAAE,CAAC;YACzC,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,eAAe,CAAC,CAAC;YACxD,MAAM,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;YAChE,YAAY,EAAE,CAAC;YACf,KAAK,CAAC,MAAM,EAAE,wBAAwB,QAAQ,CAAC,IAAI,IAAI,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;YACxF,OAAO;QACT,CAAC;QAED,yDAAyD;QACzD,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACnC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAEtC,cAAc;YACd,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;gBACtC,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,eAAe,CAAC,CAAC;gBAClD,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;gBACnD,OAAO;YACT,CAAC;YAED,gBAAgB;YAChB,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;gBACrB,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;gBACjD,MAAM,UAAU,GAAG,KAAK,EAAE,GAAG,IAAI,kBAAkB,CAAC,eAAe,CAAC,CAAC;gBACrE,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gBAE9C,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,KAAK,CACH,MAAM,EACN,KAAK,WAAW,QAAQ;wBACtB,2BAA2B;wBAC3B,iCAAiC,EACnC,YAAY,EACZ,eAAe,CAChB,CAAC;oBACF,OAAO;gBACT,CAAC;gBAED,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;gBAC9C,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,YAAY,CAAC,KAAK,CAAC,CAAC;gBAClE,MAAM,aAAa,GAAG,gBAAgB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBAC3D,MAAM,aAAa,GAAG,0BAA0B,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;gBAC9E,MAAM,MAAM,GAAG,CAAC,aAAa,GAAG,aAAa,CAAC,GAAG,GAAG,CAAC;gBACrD,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;gBAEhF,KAAK,CACH,MAAM,EACN,KAAK,WAAW,QAAQ;oBACtB,oBAAoB;oBACpB,eAAe,SAAS,EAAE,IAAI,IAAI,YAAY,CAAC,KAAK,QAAQ;oBAC5D,gBAAgB,YAAY,CAAC,YAAY,MAAM;oBAC/C,eAAe,UAAU,OAAO;oBAChC,cAAc,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,IAAI,EAC9D,YAAY,EACZ,eAAe,CAChB,CAAC;gBACF,OAAO;YACT,CAAC;YAED,gBAAgB;YAChB,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;gBACrB,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;gBACjD,IAAI,KAAK,EAAE,YAAY,EAAE,CAAC;oBACxB,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;oBACjB,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;oBACpC,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC;oBACjB,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBACtC,KAAK,CAAC,MAAM,EAAE,mBAAmB,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;gBACpE,CAAC;qBAAM,CAAC;oBACN,KAAK,CAAC,MAAM,EAAE,sBAAsB,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;gBACvE,CAAC;gBACD,OAAO;YACT,CAAC;YAED,iBAAiB;YACjB,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;gBACjC,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,eAAe,CAAC,CAAC;gBACxD,MAAM,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;gBACjC,YAAY,EAAE,CAAC;gBACf,KAAK,CAAC,MAAM,EAAE,iCAAiC,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;gBAChF,OAAO;YACT,CAAC;YAED,mBAAmB;YACnB,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;gBACnC,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;gBACjD,MAAM,YAAY,GAAG,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC;gBAErD,IAAI,IAAI,EAAE,CAAC;oBACT,0DAA0D;oBAC1D,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBAC/B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;wBACpD,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,CAAE,CAAC;wBAClC,MAAM,CAAC,GAAG,MAAM,kBAAkB,CAAC,eAAe,CAAC,CAAC;wBACpD,MAAM,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;wBAC5D,YAAY,EAAE,CAAC;wBACf,KAAK,CAAC,MAAM,EAAE,wBAAwB,QAAQ,CAAC,IAAI,IAAI,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;wBACxF,OAAO;oBACT,CAAC;oBACD,gCAAgC;oBAChC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;oBACjC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CACvB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAClF,CAAC;oBACF,IAAI,KAAK,EAAE,CAAC;wBACV,MAAM,CAAC,GAAG,MAAM,kBAAkB,CAAC,eAAe,CAAC,CAAC;wBACpD,MAAM,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;wBACtD,YAAY,EAAE,CAAC;wBACf,KAAK,CAAC,MAAM,EAAE,wBAAwB,KAAK,CAAC,IAAI,IAAI,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;wBACrF,OAAO;oBACT,CAAC;oBACD,KAAK,CACH,MAAM,EACN,sBAAsB,IAAI,iCAAiC,EAC3D,YAAY,EACZ,eAAe,CAChB,CAAC;oBACF,OAAO;gBACT,CAAC;gBAED,+BAA+B;gBAC/B,IAAI,QAAQ,GAAG,gBAAgB,CAAC;gBAChC,MAAM,SAAS,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;gBAC9B,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oBACzB,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,KAAK,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;oBACtD,QAAQ,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC;gBAC/C,CAAC,CAAC,CAAC;gBAEH,sBAAsB,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;gBACvD,QAAQ,IAAI,oCAAoC,CAAC;gBACjD,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;gBACvD,OAAO;YACT,CAAC;YAED,cAAc;YACd,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;gBACnB,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;oBACzC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;oBAChC,MAAM,aAAa,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;oBAClD,YAAY,EAAE,CAAC;oBACf,KAAK,CACH,MAAM,EACN,wBAAwB,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,EACtD,YAAY,EACZ,eAAe,CAChB,CAAC;oBACF,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,kBAAkB,eAAe,OAAO,WAAW,EAAE,CAAC,CAAC;oBACjF,OAAO;gBACT,CAAC;gBAED,MAAM,QAAQ,GAAG,MAAM,gBAAgB,EAAE,CAAC;gBAC1C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC1B,KAAK,CACH,MAAM,EACN,4DAA4D,EAC5D,YAAY,EACZ,eAAe,CAChB,CAAC;oBACF,OAAO;gBACT,CAAC;gBAED,MAAM,UAAU,GACd,aAAa,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,GAAG,IAAI,kBAAkB,CAAC,eAAe,CAAC,CAAC;gBACjF,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oBAClC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAC9B,MAAM,MAAM,GAAG,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;oBACjD,OAAO,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC1C,CAAC,CAAC,CAAC;gBAEH,qBAAqB,CAAC,GAAG,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;gBACrD,KAAK,CACH,MAAM,EACN,mBAAmB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,kCAAkC,EACrE,YAAY,EACZ,eAAe,CAChB,CAAC;gBACF,OAAO;YACT,CAAC;YAED,gBAAgB;YAChB,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;gBACrB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC;oBAC1C,KAAK,CAAC,MAAM,EAAE,2CAA2C,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;oBAC1F,OAAO;gBACT,CAAC;gBACD,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;gBACpD,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;oBACjC,aAAa,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;gBACxC,CAAC;gBACD,eAAe,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;gBACxC,YAAY,EAAE,CAAC;gBACf,KAAK,CACH,MAAM,EACN,+BAA+B,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,EAC5D,YAAY,EACZ,eAAe,CAChB,CAAC;gBACF,OAAO;YACT,CAAC;YAED,2DAA2D;YAC3D,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/B,wCAAwC;YAC1C,CAAC;iBAAM,CAAC;gBACN,6CAA6C;gBAC7C,OAAO;YACT,CAAC;QACH,CAAC;QAED,wDAAwD;QACxD,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,eAAe,CAAC,CAAC;QAExD,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACvB,MAAM,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAC;YAC9E,OAAO;QACT,CAAC;QAED,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;QAC1B,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC;QACtB,KAAK,CAAC,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;QAE9B,MAAM,MAAM,GAAsB,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QAEnC,MAAM,CAAC,IAAI,CACT,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;YAChC,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC;YACzB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC,CAAC,CACH,CAAC;QAEF,MAAM,CAAC,IAAI,CACT,GAAG,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;YACjE,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QACrF,CAAC,CAAC,CACH,CAAC;QAEF,MAAM,CAAC,IAAI,CACT,GAAG,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE;YAC9D,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC/C,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACrC,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;gBAC3C,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtC,MAAM,QAAQ,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;gBAC5C,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClD,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,MAAM,IAAI,CAAC,IAAI,KAAK,QAAQ,MAAM,QAAQ,KAAK,CAAC,CAAC;YACzE,CAAC;QACH,CAAC,CAAC,CACH,CAAC;QAEF,MAAM,CAAC,IAAI,CACT,GAAG,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,EAAE;YACvD,MAAM,CAAC,KAAK,CAAC,0BAA0B,aAAa,WAAW,QAAQ,aAAa,CAAC,CAAC;QACxF,CAAC,CAAC,CACH,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAEpC,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,OAAO,CAAC;YAErD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC;YAC/C,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAChD,MAAM,aAAa,GAAG,0BAA0B,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;YAC9E,MAAM,aAAa,GAAG,CAAC,aAAa,GAAG,aAAa,CAAC,GAAG,GAAG,CAAC;YAC5D,MAAM,UAAU,GACd,aAAa,GAAG,CAAC,IAAI,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;YAEpF,MAAM,MAAM,GAAG,aAAa,UAAU,YAAY,CAAC;YAEnD,KAAK,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;YACjE,YAAY,EAAE,CAAC;QACjB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtB,KAAK,CAAC,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;YAC7D,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,KAAK,CAAC,UAAU,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,KAAK,MAAM,GAAG,IAAI,MAAM;gBAAE,GAAG,EAAE,CAAC;YAChC,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC;QAC7B,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,0DAA0D;IAE1D,MAAM,CAAC,eAAe,CAAC,CAAC,SAAS,EAAE,EAAE;QACnC,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACxB,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAChC,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAClC,qBAAqB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACxC,sBAAsB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC3C,CAAC;QACD,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,oBAAoB,SAAS,EAAE,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,0DAA0D;IAE1D,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE;QACpB,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,oBAAoB,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC;QACtE,YAAY,EAAE,CAAC;IACjB,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE;QACvB,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,+CAA+C,CAAC,CAAC;QAC3E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,4CAA4C,CAAC,CAAC,CAAC;IAClF,CAAC,CAAC,CAAC;IAEH,wDAAwD;IAExD,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAE7C,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC;QAC7D,MAAM,SAAS,GAAG,SAAS,EAAE,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC;QACnD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;QACpC,MAAM,WAAW,GACf,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;QAE5F,MAAM,IAAI,GAAG;YACX,oDAAoD;YACpD,0CAA0C;YAC1C,oDAAoD;SACrD,CAAC;QACF,MAAM,QAAQ,GAAG;YACf,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;SACV,CAAC;QAEF,SAAS,YAAY,CAAC,IAAY;YAChC,IAAI,QAAQ,GAAG,CAAC,CAAC;YACjB,OAAO,IAAI;iBACR,KAAK,CAAC,EAAE,CAAC;iBACT,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;gBACV,IAAI,EAAE,KAAK,GAAG;oBAAE,OAAO,EAAE,CAAC;gBAC1B,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAE,CAAC;gBACtD,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;YAC9B,CAAC,CAAC;iBACD,IAAI,CAAC,EAAE,CAAC,CAAC;QACd,CAAC;QAED,MAAM,GAAG,GAAG,KAAK,CAAC;QAClB,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CACT,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,GAAG,GAAG,EAAE;YACjC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;YACrC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC;YAC5C,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC;YACnC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAClC,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,GAAG,GAAG,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QACnF,OAAO,CAAC,GAAG,CAAC,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,GAAG,GAAG,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;QACrF,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC;YAClC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC;YAClC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC;YACxC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAC1B,CAAC;QACF,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;YAC1B,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YAClC,MAAM,CAAC,UAAU,EAAE,CAAC;YACpB,KAAK,MAAM,KAAK,IAAI,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC3C,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAChC,CAAC;YACD,WAAW,EAAE,CAAC;YACd,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC;QACF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC/B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAEhC,MAAM,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,oBAAoB,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1D,KAAK,MAAM,KAAK,IAAI,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC;YAC3C,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QAChC,CAAC;QACD,WAAW,EAAE,CAAC;QACd,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,6DAA6D;AAE7D,SAAS,UAAU,CAAC,IAA6B;IAC/C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACpC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC;IAClC,MAAM,GAAG,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACtE,OAAO,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;AAC1D,CAAC;AAED,SAAS,cAAc,CAAC,EAAU;IAChC,IAAI,EAAE,GAAG,IAAI;QAAE,OAAO,GAAG,EAAE,IAAI,CAAC;IAChC,OAAO,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;AACtC,CAAC"}
|
package/dist/system-prompt.d.ts
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { type Skill } from "./core/skills.js";
|
|
2
2
|
/**
|
|
3
3
|
* Build the system prompt dynamically based on cwd and context.
|
|
4
|
+
*
|
|
5
|
+
* @param toolNames — if provided, the Tools section only lists these tools.
|
|
6
|
+
* Pass `tools.map(t => t.name)` from the session so the prompt reflects
|
|
7
|
+
* exactly what the model can call. Defaults to the full built-in set.
|
|
4
8
|
*/
|
|
5
|
-
export declare function buildSystemPrompt(cwd: string, skills?: Skill[], planMode?: boolean, approvedPlanPath?: string): Promise<string>;
|
|
9
|
+
export declare function buildSystemPrompt(cwd: string, skills?: Skill[], planMode?: boolean, approvedPlanPath?: string, toolNames?: readonly string[]): Promise<string>;
|
|
6
10
|
//# sourceMappingURL=system-prompt.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../src/system-prompt.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../src/system-prompt.ts"],"names":[],"mappings":"AAGA,OAAO,EAAyB,KAAK,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAKrE;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,KAAK,EAAE,EAChB,QAAQ,CAAC,EAAE,OAAO,EAClB,gBAAgB,CAAC,EAAE,MAAM,EACzB,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,GAC5B,OAAO,CAAC,MAAM,CAAC,CAuKjB"}
|
package/dist/system-prompt.js
CHANGED
|
@@ -1,67 +1,52 @@
|
|
|
1
1
|
import fs from "node:fs/promises";
|
|
2
2
|
import path from "node:path";
|
|
3
|
+
import { isEyesActive, readJournal } from "@prestyj/ezcoder-eyes";
|
|
3
4
|
import { formatSkillsForPrompt } from "./core/skills.js";
|
|
5
|
+
import { TOOL_PROMPT_HINTS, DEFAULT_TOOL_NAMES } from "./tools/prompt-hints.js";
|
|
4
6
|
const CONTEXT_FILES = ["AGENTS.md", "CLAUDE.md", ".cursorrules", "CONVENTIONS.md"];
|
|
5
7
|
/**
|
|
6
8
|
* Build the system prompt dynamically based on cwd and context.
|
|
9
|
+
*
|
|
10
|
+
* @param toolNames — if provided, the Tools section only lists these tools.
|
|
11
|
+
* Pass `tools.map(t => t.name)` from the session so the prompt reflects
|
|
12
|
+
* exactly what the model can call. Defaults to the full built-in set.
|
|
7
13
|
*/
|
|
8
|
-
export async function buildSystemPrompt(cwd, skills, planMode, approvedPlanPath) {
|
|
14
|
+
export async function buildSystemPrompt(cwd, skills, planMode, approvedPlanPath, toolNames) {
|
|
9
15
|
const sections = [];
|
|
10
16
|
// 1. Identity
|
|
11
17
|
sections.push(`You are EZ Coder by Nolan Grout — a coding agent that works directly in the user's codebase. ` +
|
|
12
18
|
`You explore, understand, change, and verify code — completing tasks end-to-end ` +
|
|
13
19
|
`rather than just suggesting edits.`);
|
|
14
|
-
// 2. How to Work
|
|
20
|
+
// 2. How to Work (compressed)
|
|
15
21
|
sections.push(`## How to Work\n\n` +
|
|
16
|
-
|
|
17
|
-
`-
|
|
18
|
-
`-
|
|
19
|
-
`-
|
|
20
|
-
`-
|
|
21
|
-
`-
|
|
22
|
-
|
|
23
|
-
`-
|
|
24
|
-
`-
|
|
25
|
-
`-
|
|
26
|
-
`-
|
|
27
|
-
`### After making changes\n` +
|
|
28
|
-
`- Run the project's test suite, linter, and type-checker if available.\n` +
|
|
29
|
-
`- Check command output for errors — don't assume a clean compile means success.\n` +
|
|
30
|
-
`- If the project needs to be rebuilt for changes to take effect, rebuild it.\n` +
|
|
31
|
-
`- If a dev server is running and needs restarting, ask the user before killing processes.\n` +
|
|
32
|
-
`- Re-read complex edits to catch mistakes before reporting done.\n` +
|
|
33
|
-
`- **Just do it** — if the next logical step is running a command, building, migrating, or seeding data, do it yourself. Don't tell the user to run it and don't ask permission for routine follow-up actions.\n\n` +
|
|
34
|
-
`### Safety\n` +
|
|
35
|
-
`- **Ask before destructive actions**: deleting files/directories, force-pushing, dropping data, killing processes, or overwriting uncommitted work.\n` +
|
|
36
|
-
`- Don't use \`--force\`, \`--hard\`, or \`rm -rf\` without user confirmation.\n` +
|
|
37
|
-
`- If you encounter unexpected state (unfamiliar files, branches, locks), investigate before overwriting or deleting — it may be the user's in-progress work.`);
|
|
22
|
+
`- **Read before \`edit\`/\`write\`.** Check you've read the file this session *before* composing the call — a missed read wastes the whole payload.\n` +
|
|
23
|
+
`- Understand the task and surrounding code (\`find\`, \`grep\`, \`read\`) before changing it.\n` +
|
|
24
|
+
`- Honor project context files (CLAUDE.md, AGENTS.md) — they override defaults.\n` +
|
|
25
|
+
`- Follow existing conventions. Write code that fits in, not code that stands out.\n` +
|
|
26
|
+
`- Make incremental, focused edits. Plan multi-file changes before starting.\n` +
|
|
27
|
+
`- After changes: run tests/linter/type-checker, read output for errors, rebuild if needed.\n` +
|
|
28
|
+
`- **Just do it.** Routine follow-up (build, migrate, seed, re-run) — do it yourself, don't ask.\n` +
|
|
29
|
+
`- **Ask first for destructive actions**: deleting files, force-push, dropping data, killing processes, \`rm -rf\`, \`--hard\`, \`--force\`.\n` +
|
|
30
|
+
`- If you hit unexpected state (unfamiliar files, branches, locks), investigate — it may be the user's in-progress work.\n` +
|
|
31
|
+
`- **New files that shouldn't be tracked?** Add them to \`.gitignore\` — build artifacts, local configs, secrets, logs, scratch/test files, \`.env\`, caches.\n` +
|
|
32
|
+
`- **Responses: direct and short.** A few sentences. Say what you did and anything the user needs to do. No preamble, no recap, no filler. For questions, answer directly.`);
|
|
38
33
|
// 2b. Plan mode
|
|
39
34
|
if (planMode) {
|
|
40
35
|
sections.push(`## Plan Mode (ACTIVE)\n\n` +
|
|
41
36
|
`You are in PLAN MODE. Research and design an implementation plan before writing any code.\n\n` +
|
|
42
37
|
`### Workflow\n` +
|
|
43
|
-
`1. Explore:
|
|
44
|
-
`2. Research:
|
|
45
|
-
`3. Draft:
|
|
46
|
-
`4. Submit:
|
|
38
|
+
`1. Explore: read, grep, find, ls to understand the codebase\n` +
|
|
39
|
+
`2. Research: web_search + web_fetch for docs, mcp__grep__searchGitHub for real code samples\n` +
|
|
40
|
+
`3. Draft: write the plan to .ezcoder/plans/<name>.md\n` +
|
|
41
|
+
`4. Submit: call exit_plan with the plan path\n\n` +
|
|
47
42
|
`### Rules\n` +
|
|
48
|
-
`-
|
|
49
|
-
`- Be specific:
|
|
43
|
+
`- bash, edit, write (except to .ezcoder/plans/), and subagent are restricted\n` +
|
|
44
|
+
`- Be specific: exact file paths, function names, line numbers\n` +
|
|
50
45
|
`- Note risks and verification criteria\n\n` +
|
|
51
46
|
`### Plan Format\n` +
|
|
52
|
-
`
|
|
53
|
-
`
|
|
54
|
-
`
|
|
55
|
-
`source of truth for step tracking. Do NOT put numbered lists elsewhere in the plan. ` +
|
|
56
|
-
`Use bullets or sub-headings for other sections.\n\n` +
|
|
57
|
-
`Example:\n` +
|
|
58
|
-
"```\n" +
|
|
59
|
-
`## Steps\n` +
|
|
60
|
-
`1. Create protocol types package with shared interfaces\n` +
|
|
61
|
-
`2. Set up monorepo with pnpm workspaces\n` +
|
|
62
|
-
`3. Migrate Expo Router to file-based routing\n` +
|
|
63
|
-
`...\n` +
|
|
64
|
-
"```");
|
|
47
|
+
`Plan can have any structure, but it MUST end with a section titled exactly \`## Steps\` ` +
|
|
48
|
+
`containing a single flat numbered list. This section is parsed by the progress widget — ` +
|
|
49
|
+
`the ONLY source of truth for step tracking. Do NOT put numbered lists elsewhere.`);
|
|
65
50
|
}
|
|
66
51
|
// 2c. Approved plan — injected when a plan has been approved for implementation
|
|
67
52
|
if (approvedPlanPath && !planMode) {
|
|
@@ -74,48 +59,99 @@ export async function buildSystemPrompt(cwd, skills, planMode, approvedPlanPath)
|
|
|
74
59
|
}
|
|
75
60
|
if (planContent.trim()) {
|
|
76
61
|
sections.push(`## Approved Plan\n\n` +
|
|
77
|
-
`
|
|
78
|
-
`**Plan file:** ${approvedPlanPath}\n\n` +
|
|
62
|
+
`Follow this plan strictly. File: ${approvedPlanPath}\n\n` +
|
|
79
63
|
`<approved_plan>\n${planContent.trim()}\n</approved_plan>\n\n` +
|
|
80
|
-
|
|
81
|
-
`-
|
|
82
|
-
`- Do not deviate from the plan without user confirmation\n` +
|
|
83
|
-
`- If you encounter issues not covered by the plan, ask the user\n\n` +
|
|
84
|
-
`### Progress Tracking\n` +
|
|
85
|
-
`After completing each step from the plan's \`## Steps\` section, output \`[DONE:n]\` ` +
|
|
86
|
-
`(e.g. \`[DONE:1]\`, \`[DONE:2]\`) in your response to mark it as complete. ` +
|
|
87
|
-
`The step numbers correspond to the numbered list in the \`## Steps\` section. ` +
|
|
88
|
-
`This updates the progress widget shown to the user.`);
|
|
64
|
+
`- Follow step order. Don't deviate without user confirmation.\n` +
|
|
65
|
+
`- After each step from \`## Steps\`, output \`[DONE:n]\` (e.g. \`[DONE:1]\`) to update the progress widget.`);
|
|
89
66
|
}
|
|
90
67
|
}
|
|
91
|
-
// 3.
|
|
68
|
+
// 3. Research & Verification
|
|
69
|
+
sections.push(`## Research & Verification\n\n` +
|
|
70
|
+
`Your training data may be outdated. Do not assume — verify.\n\n` +
|
|
71
|
+
`- **Docs first**: \`web_search\` → \`web_fetch\`.\n` +
|
|
72
|
+
`- **Real code second**: \`mcp__grep__searchGitHub\` for patterns, UI, library usage, APIs.\n` +
|
|
73
|
+
`- Applies to everything — APIs, CLI flags, configs, versions. Not just "unfamiliar" code.`);
|
|
74
|
+
// 4. Code Quality
|
|
92
75
|
sections.push(`## Code Quality\n\n` +
|
|
93
|
-
`-
|
|
94
|
-
`-
|
|
95
|
-
`-
|
|
96
|
-
`-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
76
|
+
`- Descriptive names that reveal intent. Define types before implementation.\n` +
|
|
77
|
+
`- No dead code, no commented-out code. No stubs or placeholders unless asked.\n` +
|
|
78
|
+
`- Handle errors at I/O, user input, and external API boundaries.\n` +
|
|
79
|
+
`- Prefer existing dependencies. Don't refactor or reorganize unprompted.`);
|
|
80
|
+
// 5. Tools — filtered by active tool set
|
|
81
|
+
const activeTools = toolNames ?? DEFAULT_TOOL_NAMES;
|
|
82
|
+
const toolLines = [];
|
|
83
|
+
for (const name of activeTools) {
|
|
84
|
+
// In plan mode, hide enter_plan (already entered); outside plan mode, hide exit_plan.
|
|
85
|
+
if (planMode && name === "enter_plan")
|
|
86
|
+
continue;
|
|
87
|
+
if (!planMode && name === "exit_plan")
|
|
88
|
+
continue;
|
|
89
|
+
const hint = TOOL_PROMPT_HINTS[name];
|
|
90
|
+
if (hint)
|
|
91
|
+
toolLines.push(`- **${name}**: ${hint}`);
|
|
92
|
+
}
|
|
93
|
+
if (toolLines.length > 0) {
|
|
94
|
+
sections.push(`## Tools\n\n${toolLines.join("\n")}`);
|
|
95
|
+
}
|
|
96
|
+
// 6. Project context — walk from cwd to root looking for context files
|
|
97
|
+
const contextParts = [];
|
|
98
|
+
let dir = cwd;
|
|
99
|
+
const visited = new Set();
|
|
100
|
+
while (!visited.has(dir)) {
|
|
101
|
+
visited.add(dir);
|
|
102
|
+
for (const name of CONTEXT_FILES) {
|
|
103
|
+
const filePath = path.join(dir, name);
|
|
104
|
+
try {
|
|
105
|
+
const content = await fs.readFile(filePath, "utf-8");
|
|
106
|
+
const relPath = path.relative(cwd, filePath) || name;
|
|
107
|
+
contextParts.push(`### ${relPath}\n\n${content.trim()}`);
|
|
108
|
+
}
|
|
109
|
+
catch {
|
|
110
|
+
// File doesn't exist, skip
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
const parent = path.dirname(dir);
|
|
114
|
+
if (parent === dir)
|
|
115
|
+
break;
|
|
116
|
+
dir = parent;
|
|
117
|
+
}
|
|
118
|
+
if (contextParts.length > 0) {
|
|
119
|
+
sections.push(`## Project Context\n\n${contextParts.join("\n\n")}`);
|
|
120
|
+
}
|
|
121
|
+
// 7. Eyes — open improvement signals from past probe use (gated on .ezcoder/eyes/manifest.json)
|
|
122
|
+
if (isEyesActive(cwd)) {
|
|
123
|
+
const open = readJournal({ status: "open", order: "desc", limit: 10 }, cwd);
|
|
124
|
+
if (open.length > 0) {
|
|
125
|
+
const lines = open.map((e) => {
|
|
126
|
+
const probeTag = e.probe ? ` [${e.probe}]` : "";
|
|
127
|
+
const date = e.ts.slice(0, 10);
|
|
128
|
+
return `- ${date} · *${e.kind}*${probeTag}: ${e.reason}`;
|
|
129
|
+
});
|
|
130
|
+
sections.push(`## Eyes — Open Improvement Signals\n\n` +
|
|
131
|
+
`These are unresolved signals from past use of this project's perception probes ` +
|
|
132
|
+
`(\`.ezcoder/eyes/\`). Consider whether any bear on the current work. If a missing or ` +
|
|
133
|
+
`inadequate capability would force you to **guess, skip verification, or hand-wave**, ` +
|
|
134
|
+
`surface the tradeoff in conversation rather than working around it silently — give the ` +
|
|
135
|
+
`user the choice to fix the probe first.\n\n` +
|
|
136
|
+
lines.join("\n"));
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
// 9. Skills
|
|
140
|
+
if (skills && skills.length > 0) {
|
|
141
|
+
const skillsSection = formatSkillsForPrompt(skills);
|
|
142
|
+
if (skillsSection) {
|
|
143
|
+
sections.push(skillsSection);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
// 10. Environment (static — cacheable)
|
|
147
|
+
sections.push(`## Environment\n\n` + `- Working directory: ${cwd}\n` + `- Platform: ${process.platform}`);
|
|
148
|
+
// Dynamic section (uncached) — separated by marker so the transform layer
|
|
149
|
+
// can split the system prompt into cached + uncached blocks.
|
|
150
|
+
const today = new Date();
|
|
151
|
+
const day = today.getDate();
|
|
152
|
+
const month = today.toLocaleString("en-US", { month: "long" });
|
|
153
|
+
const year = today.getFullYear();
|
|
154
|
+
sections.push(`<!-- uncached -->\nToday's date: ${day} ${month} ${year}`);
|
|
155
|
+
return sections.join("\n\n");
|
|
120
156
|
}
|
|
121
157
|
//# sourceMappingURL=system-prompt.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../src/system-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,qBAAqB,EAAc,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../src/system-prompt.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/bash.js
CHANGED
|
@@ -48,7 +48,7 @@ const ENV_ALLOWLIST = new Set([
|
|
|
48
48
|
"RBENV_ROOT",
|
|
49
49
|
]);
|
|
50
50
|
function getSafeEnv() {
|
|
51
|
-
const env = { TERM: "dumb" };
|
|
51
|
+
const env = { TERM: "dumb", EZ_CODER: "true" };
|
|
52
52
|
for (const key of ENV_ALLOWLIST) {
|
|
53
53
|
if (process.env[key])
|
|
54
54
|
env[key] = process.env[key];
|
package/dist/tools/bash.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bash.js","sourceRoot":"","sources":["../../src/tools/bash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAuB,MAAM,iBAAiB,CAAC;AAEvE,MAAM,eAAe,GAAG,OAAO,CAAC,CAAC,cAAc;AAC/C,MAAM,gBAAgB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,6CAA6C;AAExF,4GAA4G;AAC5G,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;IAC5B,MAAM;IACN,MAAM;IACN,MAAM;IACN,SAAS;IACT,OAAO;IACP,MAAM;IACN,QAAQ;IACR,UAAU;IACV,QAAQ;IACR,iBAAiB;IACjB,eAAe;IACf,gBAAgB;IAChB,iBAAiB;IACjB,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,UAAU;IACV,gBAAgB;IAChB,UAAU;IACV,aAAa;IACb,yBAAyB;IACzB,WAAW;IACX,SAAS;IACT,mBAAmB;IACnB,WAAW;IACX,QAAQ;IACR,QAAQ;IACR,YAAY;IACZ,aAAa;IACb,YAAY;IACZ,aAAa;IACb,mBAAmB;IACnB,cAAc;IACd,WAAW;IACX,cAAc;IACd,kBAAkB;IAClB,cAAc;IACd,UAAU;IACV,YAAY;CACb,CAAC,CAAC;AAEH,SAAS,UAAU;IACjB,MAAM,GAAG,GAA2B,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"bash.js","sourceRoot":"","sources":["../../src/tools/bash.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/edit.d.ts
CHANGED
|
@@ -3,8 +3,10 @@ import type { AgentTool } from "@prestyj/agent";
|
|
|
3
3
|
import { type ToolOperations } from "./operations.js";
|
|
4
4
|
declare const EditParams: z.ZodObject<{
|
|
5
5
|
file_path: z.ZodString;
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
edits: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodArray<z.ZodObject<{
|
|
7
|
+
old_text: z.ZodString;
|
|
8
|
+
new_text: z.ZodString;
|
|
9
|
+
}, z.core.$strip>>>;
|
|
8
10
|
}, z.core.$strip>;
|
|
9
11
|
export declare function createEditTool(cwd: string, readFiles?: Set<string>, ops?: ToolOperations, planModeRef?: {
|
|
10
12
|
current: boolean;
|
package/dist/tools/edit.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../src/tools/edit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGhD,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../src/tools/edit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGhD,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAoBvE,QAAA,MAAM,UAAU;;;;;;iBAQd,CAAC;AAEH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,EACX,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,EACvB,GAAG,GAAE,cAAgC,EACrC,WAAW,CAAC,EAAE;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,GACjC,SAAS,CAAC,OAAO,UAAU,CAAC,CA2E9B"}
|
package/dist/tools/edit.js
CHANGED
|
@@ -3,18 +3,41 @@ import { z } from "zod";
|
|
|
3
3
|
import { resolvePath, rejectSymlink } from "./path-utils.js";
|
|
4
4
|
import { fuzzyFindText, countOccurrences, generateDiff } from "./edit-diff.js";
|
|
5
5
|
import { localOperations } from "./operations.js";
|
|
6
|
-
const
|
|
7
|
-
file_path: z.string().describe("The file path to edit"),
|
|
6
|
+
const EditItem = z.object({
|
|
8
7
|
old_text: z.string().describe("The exact text to find and replace"),
|
|
9
8
|
new_text: z.string().describe("The replacement text"),
|
|
10
9
|
});
|
|
10
|
+
// Some models (Opus 4.6, GLM-5.1) occasionally send `edits` as a JSON string
|
|
11
|
+
// instead of a real array, which trips Zod and makes the model fall back to
|
|
12
|
+
// sed/python. Coerce the string back into an array before validation.
|
|
13
|
+
const coerceStringifiedEdits = (v) => {
|
|
14
|
+
if (typeof v !== "string")
|
|
15
|
+
return v;
|
|
16
|
+
try {
|
|
17
|
+
const parsed = JSON.parse(v);
|
|
18
|
+
return Array.isArray(parsed) ? parsed : v;
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
return v;
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
const EditParams = z.object({
|
|
25
|
+
file_path: z.string().describe("The file path to edit"),
|
|
26
|
+
edits: z
|
|
27
|
+
.preprocess(coerceStringifiedEdits, z.array(EditItem).min(1))
|
|
28
|
+
.describe("One or more edits applied in order. Each edit operates on the result of the previous one. " +
|
|
29
|
+
"Every old_text must uniquely match exactly one location in the file at the time it is applied."),
|
|
30
|
+
});
|
|
11
31
|
export function createEditTool(cwd, readFiles, ops = localOperations, planModeRef) {
|
|
12
32
|
return {
|
|
13
33
|
name: "edit",
|
|
14
|
-
description: "Replace
|
|
15
|
-
"
|
|
34
|
+
description: "Replace one or more text strings in a file. The file must be read first before editing. " +
|
|
35
|
+
"Pass `edits` as an array of { old_text, new_text } pairs; edits are applied sequentially " +
|
|
36
|
+
"so each subsequent match runs against the result of the prior edits. " +
|
|
37
|
+
"Every old_text must uniquely match exactly one location in the file when applied. " +
|
|
38
|
+
"Returns a unified diff of the combined change.",
|
|
16
39
|
parameters: EditParams,
|
|
17
|
-
async execute({ file_path,
|
|
40
|
+
async execute({ file_path, edits }) {
|
|
18
41
|
if (planModeRef?.current) {
|
|
19
42
|
return "Error: edit is restricted in plan mode. Use read-only tools to explore the codebase, then write your plan to .ezcoder/plans/.";
|
|
20
43
|
}
|
|
@@ -23,38 +46,43 @@ export function createEditTool(cwd, readFiles, ops = localOperations, planModeRe
|
|
|
23
46
|
if (readFiles && !readFiles.has(resolved)) {
|
|
24
47
|
throw new Error("File must be read first before editing. Use the read tool first.");
|
|
25
48
|
}
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
49
|
+
const original = await ops.readFile(resolved);
|
|
50
|
+
const hasCRLF = original.includes("\r\n");
|
|
51
|
+
const originalNormalized = hasCRLF ? original.replace(/\r\n/g, "\n") : original;
|
|
52
|
+
let working = originalNormalized;
|
|
53
|
+
const fileName = path.basename(resolved);
|
|
54
|
+
for (let i = 0; i < edits.length; i++) {
|
|
55
|
+
const { old_text, new_text } = edits[i];
|
|
56
|
+
const normalizedOld = hasCRLF ? old_text.replace(/\r\n/g, "\n") : old_text;
|
|
57
|
+
const normalizedNew = hasCRLF ? new_text.replace(/\r\n/g, "\n") : new_text;
|
|
58
|
+
const label = edits.length > 1 ? ` (edit ${i + 1}/${edits.length})` : "";
|
|
59
|
+
const occurrences = countOccurrences(working, normalizedOld);
|
|
60
|
+
if (occurrences === 0) {
|
|
61
|
+
throw new Error(`old_text not found in ${fileName}${label}. ` +
|
|
62
|
+
"Text must match verbatim — do not paraphrase. Re-read the file if unsure.");
|
|
63
|
+
}
|
|
64
|
+
if (occurrences > 1) {
|
|
65
|
+
throw new Error(`old_text found ${occurrences} times in ${fileName}${label}. ` +
|
|
66
|
+
"Include more surrounding context to make the match unique.");
|
|
67
|
+
}
|
|
68
|
+
const match = fuzzyFindText(working, normalizedOld);
|
|
69
|
+
if (!match.found) {
|
|
70
|
+
throw new Error(`old_text not found in ${fileName}${label}.`);
|
|
71
|
+
}
|
|
72
|
+
working =
|
|
73
|
+
working.slice(0, match.index) +
|
|
74
|
+
normalizedNew +
|
|
75
|
+
working.slice(match.index + match.matchLength);
|
|
47
76
|
}
|
|
48
|
-
const
|
|
49
|
-
normalizedNew +
|
|
50
|
-
normalized.slice(match.index + match.matchLength);
|
|
51
|
-
// Restore line endings if needed
|
|
52
|
-
const finalContent = hasCRLF ? newContent.replace(/\n/g, "\r\n") : newContent;
|
|
77
|
+
const finalContent = hasCRLF ? working.replace(/\n/g, "\r\n") : working;
|
|
53
78
|
await ops.writeFile(resolved, finalContent);
|
|
54
79
|
const relPath = path.relative(cwd, resolved);
|
|
55
|
-
const diff = generateDiff(
|
|
80
|
+
const diff = generateDiff(originalNormalized, working, relPath);
|
|
81
|
+
const summary = edits.length > 1
|
|
82
|
+
? `Successfully applied ${edits.length} edits to ${relPath}.`
|
|
83
|
+
: `Successfully replaced text in ${relPath}.`;
|
|
56
84
|
return {
|
|
57
|
-
content:
|
|
85
|
+
content: summary,
|
|
58
86
|
details: { diff },
|
|
59
87
|
};
|
|
60
88
|
},
|
package/dist/tools/edit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edit.js","sourceRoot":"","sources":["../../src/tools/edit.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAuB,MAAM,iBAAiB,CAAC;AAEvE,MAAM,
|
|
1
|
+
{"version":3,"file":"edit.js","sourceRoot":"","sources":["../../src/tools/edit.ts"],"names":[],"mappings":"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"}
|