gaunt-sloth 2.0.0-alpha.29 → 2.0.0-alpha.30
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/dist/commands/prDiscovery.js +6 -1
- package/dist/commands/prDiscovery.js.map +1 -1
- package/dist/tui/components/App.js +210 -45
- package/dist/tui/components/App.js.map +1 -1
- package/dist/tui/components/ApprovalPrompt.d.ts +31 -13
- package/dist/tui/components/ApprovalPrompt.js +108 -17
- package/dist/tui/components/ApprovalPrompt.js.map +1 -1
- package/dist/tui/components/ApprovalsPicker.d.ts +41 -0
- package/dist/tui/components/ApprovalsPicker.js +49 -0
- package/dist/tui/components/ApprovalsPicker.js.map +1 -0
- package/dist/tui/components/AttackBanner.d.ts +54 -0
- package/dist/tui/components/AttackBanner.js +65 -0
- package/dist/tui/components/AttackBanner.js.map +1 -0
- package/dist/tui/components/DebugPanel.js +7 -1
- package/dist/tui/components/DebugPanel.js.map +1 -1
- package/dist/tui/components/FramedLines.d.ts +25 -0
- package/dist/tui/components/FramedLines.js +24 -0
- package/dist/tui/components/FramedLines.js.map +1 -0
- package/dist/tui/components/SelectList.d.ts +16 -2
- package/dist/tui/components/SelectList.js +8 -4
- package/dist/tui/components/SelectList.js.map +1 -1
- package/dist/tui/components/StatusBar.js +1 -1
- package/dist/tui/components/StatusBar.js.map +1 -1
- package/dist/tui/keyBindings.d.ts +37 -0
- package/dist/tui/keyBindings.js +119 -0
- package/dist/tui/keyBindings.js.map +1 -0
- package/dist/tui/mouseStdin.d.ts +50 -2
- package/dist/tui/mouseStdin.js +148 -20
- package/dist/tui/mouseStdin.js.map +1 -1
- package/dist/tui/tuiSessionModule.js +59 -2
- package/dist/tui/tuiSessionModule.js.map +1 -1
- package/dist/tui/types.d.ts +23 -1
- package/package.json +5 -5
|
@@ -118,7 +118,12 @@ export async function runPrDiscovery(config) {
|
|
|
118
118
|
}
|
|
119
119
|
const runner = new GthAgentRunner(defaultStatusCallback, createPrDiscoveryResolvers(config, state));
|
|
120
120
|
try {
|
|
121
|
-
|
|
121
|
+
// `command` stays undefined so the discovery agent runs on the chat prompt and does NOT pick up
|
|
122
|
+
// `commands.pr`'s posture; `owningCommand` is label-only, so a notice about this run says "the
|
|
123
|
+
// pr command" rather than something the user cannot connect to what they typed (GS2-81).
|
|
124
|
+
await runner.init(undefined, getPrDiscoveryAgentConfig(config, discoveryConfig), undefined, {
|
|
125
|
+
owningCommand: 'pr',
|
|
126
|
+
});
|
|
122
127
|
await runner.processMessages([
|
|
123
128
|
...buildSystemMessages(config, readPrDiscoveryPrompt(config)),
|
|
124
129
|
new HumanMessage(buildPrDiscoveryUserMessage(state)),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prDiscovery.js","sourceRoot":"","sources":["../../src/commands/prDiscovery.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"prDiscovery.js","sourceRoot":"","sources":["../../src/commands/prDiscovery.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAC1E,OAAO,EACL,qBAAqB,EACrB,WAAW,EACX,cAAc,GACf,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAC1F,OAAO,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAA6C,IAAI,EAAE,MAAM,uBAAuB,CAAC;AACxF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,GAAG,IAAI,WAAW,EAAE,MAAM,+CAA+C,CAAC;AACnF,OAAO,EAAE,GAAG,IAAI,WAAW,EAAE,MAAM,+CAA+C,CAAC;AACnF,OAAO,EAAE,GAAG,IAAI,UAAU,EAAE,MAAM,8CAA8C,CAAC;AACjF,OAAO,EAAE,GAAG,IAAI,YAAY,EAAE,MAAM,gDAAgD,CAAC;AACrF,OAAO,EAAE,GAAG,IAAI,kBAAkB,EAAE,MAAM,sDAAsD,CAAC;AAGjG,MAAM,CAAC,MAAM,0BAA0B,GAAG,yBAAyB,CAAC;AAEpE,6FAA6F;AAC7F,iCAAiC;AACjC,MAAM,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AA+CzF;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAA+D;IAE/D,OAAO,cAAc,CACnB,0BAA0B,EAC1B,MAAM,CAAC,eAAe,EACtB,MAAM,CAAC,gBAAgB,EACvB,mBAAmB,CACpB,CAAC;AACJ,CAAC;AAWD,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;CACpF,CAAC,CAAC;AAEH,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;CACvF,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,qEAAqE,CAAC;CACnF,CAAC,CAAC;AAEH,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,qEAAqE,CAAC;CACnF,CAAC,CAAC;AAEH,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,CACP,uGAAuG,CACxG;CACJ,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAiB;IACpD,MAAM,eAAe,GAAG,MAAM,CAAC,QAAQ,EAAE,EAAE,EAAE,SAAS,CAAC;IACvD,MAAM,KAAK,GAAyB;QAClC,IAAI,EAAE,EAAE;QACR,YAAY,EAAE,EAAE;QAChB,UAAU,EAAE,EAAE;KACf,CAAC;IAEF,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,EAAE,EAAE,EAAE,aAAa,IAAI,MAAM,CAAC,aAAa,CAAC;IACjF,IAAI,eAAe,EAAE,iBAAiB,KAAK,KAAK,EAAE,CAAC;QACjD,IAAI,aAAa,KAAK,QAAQ,EAAE,CAAC;YAC/B,uFAAuF;YACvF,oFAAoF;YACpF,6EAA6E;YAC7E,QAAQ,CACN,0EAA0E,aAAa,kBAAkB,CAC1G,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,4BAA4B,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC;gBAChF,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;gBACxB,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;oBACf,WAAW,CAAC,2CAA2C,CAAC,CAAC;gBAC3D,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,cAAc,CACZ,gEAAgE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACzH,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,4BAA4B,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC;QACtF,KAAK,CAAC,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;QACpC,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACzD,WAAW,CACT,QAAQ;gBACN,CAAC,CAAC,gCAAgC,QAAQ,oBAAoB;gBAC9D,CAAC,CAAC,+CAA+C,CACpD,CAAC;YACF,KAAK,CAAC,YAAY,GAAG,MAAM,kCAAkC,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QAC1F,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,kDAAkD,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3H,uFAAuF;QACvF,uFAAuF;QACvF,0FAA0F;QAC1F,8EAA8E;QAC9E,IAAI,aAAa,KAAK,QAAQ,EAAE,CAAC;YAC/B,cAAc,CAAC,OAAO,CAAC,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,OAAO,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;QACnD,WAAW,CACT,wFAAwF,CACzF,CAAC;QACF,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;YACvB,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE;SACxC,CAAC;IACJ,CAAC;IAED,8FAA8F;IAC9F,0FAA0F;IAC1F,0GAA0G;IAC1G,qFAAqF;IACrF,IACE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;QAClB,eAAe,EAAE,YAAY;QAC7B,CAAC,eAAe,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC;QACjD,CAAC,eAAe,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,EAClD,CAAC;QACD,cAAc,CACZ,iNAAiN,CAClN,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,cAAc,CAC/B,qBAAqB,EACrB,0BAA0B,CAAC,MAAM,EAAE,KAAK,CAAC,CAC1C,CAAC;IACF,IAAI,CAAC;QACH,gGAAgG;QAChG,+FAA+F;QAC/F,yFAAyF;QACzF,MAAM,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,yBAAyB,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,SAAS,EAAE;YAC1F,aAAa,EAAE,IAAI;SACpB,CAAC,CAAC;QACH,MAAM,MAAM,CAAC,eAAe,CAAC;YAC3B,GAAG,mBAAmB,CAAC,MAAM,EAAE,qBAAqB,CAAC,MAAM,CAAC,CAAC;YAC7D,IAAI,YAAY,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAC;SACrD,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;IACzB,CAAC;IAED,mFAAmF;IACnF,yEAAyE;IACzE,WAAW,CAAC,EAAE,CAAC,CAAC;IAEhB,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;QACvB,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE;KACxC,CAAC;AACJ,CAAC;AAED,SAAS,yBAAyB,CAChC,MAAiB,EACjB,eAA8C;IAE9C,MAAM,SAAS,GAAG,eAAe,EAAE,KAAK,IAAI,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;IAC/D,MAAM,WAAW,GACf,eAAe,IAAI,aAAa,IAAI,eAAe;QACjD,CAAC,CAAC,eAAe,CAAC,WAAW;QAC7B,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;IACzB,OAAO;QACL,GAAG,MAAM;QACT,UAAU,EAAE,eAAe,EAAE,UAAU,IAAI,MAAM,CAAC,UAAU;QAC5D,YAAY,EAAE,eAAe,EAAE,YAAY,IAAI,MAAM,CAAC,YAAY;QAClE,WAAW,EAAE,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW;QAC5D,KAAK,EAAE,SAAS;QAChB,iFAAiF;QACjF,wFAAwF;QACxF,0FAA0F;QAC1F,oFAAoF;QACpF,sFAAsF;QACtF,kCAAkC;QAClC,YAAY,EAAE,eAAe,EAAE,YAAY;YACzC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,eAAe,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC,CAAC;YACrE,CAAC,CAAC,SAAS;KACd,CAAC;AACJ,CAAC;AAED,SAAS,0BAA0B,CACjC,MAAiB,EACjB,KAA2B;IAE3B,MAAM,aAAa,GAAG,eAAe,EAAE,CAAC;IACxC,OAAO;QACL,GAAG,aAAa;QAChB,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,EAAE;YAC/C,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY;gBAC1C,CAAC,CAAC,MAAM,aAAa,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC;gBAC5D,CAAC,CAAC,EAAE,CAAC;YACP,OAAO,CAAC,GAAG,SAAS,EAAE,GAAG,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QAClE,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAC7B,MAAiB,EACjB,KAA2B;IAE3B,MAAM,OAAO,GAAG,IAAI,CAClB,KAAK,EAAE,EAAE,IAAI,EAAqC,EAAmB,EAAE;QACrE,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;QAClB,OAAO,yBAAyB,CAAC;IACnC,CAAC,EACD;QACE,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,qEAAqE;QAClF,MAAM,EAAE,iBAAiB;KAC1B,CACF,CAAC;IAEF,MAAM,eAAe,GAAG,IAAI,CAC1B,KAAK,EAAE,EAAE,YAAY,EAA6C,EAAmB,EAAE;QACrF,KAAK,CAAC,YAAY,GAAG,YAAY,CAAC;QAClC,OAAO,iCAAiC,CAAC;IAC3C,CAAC,EACD;QACE,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,gEAAgE;QAC7E,MAAM,EAAE,yBAAyB;KAClC,CACF,CAAC;IAEF,MAAM,IAAI,GAAG,IAAI,CACf,KAAK,EAAE,EAAE,IAAI,EAAkC,EAAmB,EAAE;QAClE,IAAI,CAAC;YACH,OAAO,CAAC,MAAM,WAAW,CAAC,4BAA4B,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,wFAAwF;YACxF,uFAAuF;YACvF,iEAAiE;YACjE,OAAO,uCAAuC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QACzG,CAAC;IACH,CAAC,EACD;QACE,IAAI,EAAE,OAAO;QACb,WAAW,EACT,wIAAwI;QAC1I,MAAM,EAAE,cAAc;KACvB,CACF,CAAC;IAEF,MAAM,MAAM,GAAG,IAAI,CACjB,KAAK,EAAE,EAAE,IAAI,EAAoC,EAAmB,EAAE;QACpE,IAAI,IAAY,CAAC;QACjB,IAAI,CAAC;YACH,IAAI,GAAG,CAAC,MAAM,WAAW,CAAC,4BAA4B,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,yFAAyF;YACzF,mEAAmE;YACnE,OAAO,uCAAuC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,oCAAoC,CAAC;QAC3I,CAAC;QACD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,8EAA8E,CAAC;QACxF,CAAC;QACD,iFAAiF;QACjF,mFAAmF;QACnF,+EAA+E;QAC/E,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;QAClB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,OAAO,0BAA0B,IAAI,CAAC,MAAM,mFAAmF,OAAO,EAAE,CAAC;IAC3I,CAAC,EACD;QACE,IAAI,EAAE,SAAS;QACf,WAAW,EACT,mFAAmF;YACnF,oDAAoD;YACpD,gGAAgG;QAClG,MAAM,EAAE,gBAAgB;KACzB,CACF,CAAC;IAEF,MAAM,OAAO,GAAG,IAAI,CAClB,KAAK,EAAE,EAAE,OAAO,EAAqC,EAAmB,EAAE;QACxE,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,gCAAgC,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;QAClF,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,KAAK,CAAC;QACf,CAAC;QACD,gFAAgF;QAChF,uFAAuF;QACvF,qFAAqF;QACrF,qFAAqF;QACrF,OAAO,sCAAsC,OAAO,wJAAwJ,CAAC;IAC/M,CAAC,EACD;QACE,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,oDAAoD;QACjE,MAAM,EAAE,iBAAiB;KAC1B,CACF,CAAC;IAEF,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,eAAe,CAAC,MAAe;IACtC,OAAO,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAE,MAAyB,CAAC,CAAC,CAAC,IAAI,CAAC;AAClF,CAAC;AAED,SAAS,4BAA4B,CAAC,MAAiB;IACrD,OAAO,eAAe,CAAC,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,gCAAgC,CAAC,MAAiB;IACzD,OAAO,eAAe,CAAC,MAAM,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,8BAA8B,CAAC,MAAiB;IACvD,gGAAgG;IAChG,wFAAwF;IACxF,8FAA8F;IAC9F,wEAAwE;IACxE,OAAO,eAAe,CAAC,MAAM,CAAC,kBAAkB,EAAE,IAAI,IAAI,MAAM,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC;AAClG,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,kCAAkC,CAC/C,MAAiB,EACjB,UAAkB;IAElB,MAAM,iBAAiB,GAAG,MAAM,CAAC,QAAQ,EAAE,EAAE,EAAE,iBAAiB,IAAI,MAAM,CAAC,iBAAiB,CAAC;IAE7F,IAAI,iBAAiB,KAAK,MAAM,IAAI,iBAAiB,KAAK,aAAa,EAAE,CAAC;QACxE,MAAM,QAAQ,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,UAAU,GAAG,8BAA8B,CAAC,MAAM,CAAC,CAAC;QAC1D,IAAI,CAAC;YACH,MAAM,YAAY,GAChB,CAAC,iBAAiB,KAAK,aAAa;gBAClC,CAAC,CAAC,MAAM,kBAAkB,CAAC,UAAU,EAAE,QAAQ,CAAC;gBAChD,CAAC,CAAC,MAAM,YAAY,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;YACtD,IAAI,YAAY,EAAE,CAAC;gBACjB,WAAW,CACT,2CAA2C,QAAQ,gCAAgC,CACpF,CAAC;YACJ,CAAC;YACD,OAAO,YAAY,CAAC;QACtB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,+EAA+E;YAC/E,oFAAoF;YACpF,wFAAwF;YACxF,uEAAuE;YACvE,QAAQ,CACN,kDAAkD,QAAQ,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACxH,CAAC;YACF,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,MAAM,oBAAoB,GAAG,iCAAiC,CAAC,UAAU,CAAC,CAAC;IAC3E,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,YAAY,GAChB,CAAC,MAAM,UAAU,CAAC,gCAAgC,CAAC,MAAM,CAAC,EAAE,oBAAoB,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3F,IAAI,YAAY,EAAE,CAAC;QACjB,WAAW,CACT,6CAA6C,oBAAoB,CAAC,oBAAoB,CAAC,gCAAgC,CACxH,CAAC;IACJ,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,gGAAgG;AAChG,iGAAiG;AACjG,4FAA4F;AAC5F,MAAM,0BAA0B,GAAG,oBAAoB,CAAC;AACxD,2FAA2F;AAC3F,6FAA6F;AAC7F,MAAM,wBAAwB,GAAG,6DAA6D,CAAC;AAC/F,gIAAgI;AAChI,MAAM,8BAA8B,GAAG,2DAA2D,CAAC;AAEnG;;;;;GAKG;AACH,SAAS,oBAAoB,CAAC,UAAkB;IAC9C,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,gBAAgB,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,cAAc,CAAC,CAAC;IACnF,OAAO,gBAAgB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7F,CAAC;AAED;;;;;GAKG;AACH,SAAS,mBAAmB,CAAC,UAAkB;IAC7C,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,gBAAgB,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,cAAc,CAAC,CAAC;IACnF,OAAO,gBAAgB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5F,CAAC;AAED;;;;;GAKG;AACH,SAAS,iCAAiC,CAAC,UAAkB;IAC3D,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,UAAU,CAAC;SACtD,KAAK,CAAC,IAAI,CAAC;SACX,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAEzD,IAAI,gBAAgB,EAAE,CAAC;QACrB,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAClE,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,uBAAuB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,CAAC;QACD,MAAM,cAAc,GAAG,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACxD,IAAI,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxB,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,uFAAuF;IACvF,sFAAsF;IACtF,6FAA6F;IAC7F,0FAA0F;IAC1F,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IACtE,IAAI,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtB,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IAED,gFAAgF;IAChF,0FAA0F;IAC1F,4FAA4F;IAC5F,kFAAkF;IAClF,8FAA8F;IAC9F,MAAM,QAAQ,GAAG,IAAI,GAAG,CACtB,KAAK,CAAC,IAAI,CACR,oBAAoB,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC,CACtF,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CACpD,CAAC;IACF,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;IACxC,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,uBAAuB,CAAC,GAAW;IAC1C,4FAA4F;IAC5F,4FAA4F;IAC5F,yEAAyE;IACzE,MAAM,eAAe,GAAG,GAAG,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IACzD,OAAO,WAAW,eAAe;SAC9B,OAAO,CAAC,eAAe,EAAE,YAAY,CAAC;SACtC,OAAO,CAAC,aAAa,EAAE,UAAU,CAAC,EAAE,CAAC;AAC1C,CAAC;AAED,SAAS,oBAAoB,CAAC,GAAW;IACvC,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;AAC7C,CAAC;AAED,SAAS,qBAAqB,CAAC,UAAkB;IAC/C,+FAA+F;IAC/F,4FAA4F;IAC5F,8CAA8C;IAC9C,OAAO,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACzE,CAAC;AAED,uFAAuF;AACvF,0FAA0F;AAC1F,kEAAkE;AAClE,MAAM,sBAAsB,GAAG,6BAA6B,CAAC;AAC7D,6FAA6F;AAC7F,0FAA0F;AAC1F,kFAAkF;AAClF,MAAM,4BAA4B,GAAG,kDAAkD,CAAC;AAExF,SAAS,mBAAmB,CAAC,UAAkB;IAC7C,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,UAAU,CAAC;SACtD,KAAK,CAAC,IAAI,CAAC;SACX,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAEzD,IAAI,gBAAgB,EAAE,CAAC;QACrB,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QACtE,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClB,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACnC,CAAC;QACD,uEAAuE;QACvE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAChE,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClB,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAED,wFAAwF;IACxF,4FAA4F;IAC5F,iGAAiG;IACjG,MAAM,cAAc,GAAG,mBAAmB,CAAC,UAAU,CAAC;SACnD,KAAK,CAAC,IAAI,CAAC;SACX,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC;IACnD,MAAM,cAAc,GAAG,cAAc,EAAE,KAAK,CAAC,sBAAsB,CAAC,CAAC;IACrE,IAAI,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxB,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED,2FAA2F;IAC3F,0FAA0F;IAC1F,8FAA8F;IAC9F,4FAA4F;IAC5F,MAAM,QAAQ,GAAG,IAAI,GAAG,CACtB,KAAK,CAAC,IAAI,CACR,oBAAoB,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,4BAA4B,EAAE,IAAI,CAAC,CAAC,CAC1F,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CACzC,CAAC;IACF,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;IACxC,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,2BAA2B,CAAC,KAA2B;IAC9D,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI;QAC3B,CAAC,CAAC,mNAAmN;QACrN,CAAC,CAAC,sJAAsJ,CAAC;IAE3J,MAAM,kBAAkB,GAAG,KAAK,CAAC,YAAY;QAC3C,CAAC,CAAC,sLAAsL;QACxL,CAAC,CAAC,kJAAkJ,CAAC;IAEvJ,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU;QACtC,CAAC,CAAC,uEAAuE,KAAK,CAAC,UAAU,kBAAkB;QAC3G,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO,GAAG,UAAU,OAAO,kBAAkB,GAAG,eAAe;;kUAEiQ,CAAC;AACnU,CAAC"}
|
|
@@ -3,8 +3,10 @@ import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
|
3
3
|
import { Box, Text, useApp, useInput } from 'ink';
|
|
4
4
|
import { foldEvents, foldSubagentEvents, initialSubagentTree, initialTurnViewModel, } from '#src/tui/viewModel.js';
|
|
5
5
|
import { buildRejectionMessage } from '@gaunt-sloth/core/core/shell/rejection.js';
|
|
6
|
+
import { attackBannerCopy, grantsRunAnyway, } from '@gaunt-sloth/core/core/shell/escalationSeverity.js';
|
|
6
7
|
import { TranscriptViewport } from '#src/tui/components/TranscriptViewport.js';
|
|
7
8
|
import { ApprovalPrompt } from '#src/tui/components/ApprovalPrompt.js';
|
|
9
|
+
import { AttackBanner } from '#src/tui/components/AttackBanner.js';
|
|
8
10
|
import { LiveTurn, ChecklistPanel } from '#src/tui/components/LiveTurn.js';
|
|
9
11
|
import { extractActiveChecklist } from '#src/tui/viewModel.js';
|
|
10
12
|
import { StatusBar } from '#src/tui/components/StatusBar.js';
|
|
@@ -15,11 +17,13 @@ import { ClearBanner } from '#src/tui/components/ClearBanner.js';
|
|
|
15
17
|
import { LaunchBanner } from '#src/tui/components/LaunchBanner.js';
|
|
16
18
|
import { MouseProvider } from '#src/tui/useMouse.js';
|
|
17
19
|
import { DebugPanel, debugPanelLines, DEBUG_TABS, } from '#src/tui/components/DebugPanel.js';
|
|
18
|
-
import { approvalsRungNotice, approvalsStatusNotice, approvalsTrustNotice, createCommandRegistry, dispatchSlashCommand, parseSlashCommand, toolsToggleNotice, } from '@gaunt-sloth/agent/modules/slashCommands.js';
|
|
20
|
+
import { approvalPostureChoices, approvalsRungNotice, approvalsStatusNotice, approvalsTrustNotice, createCommandRegistry, dispatchSlashCommand, parseSlashCommand, toolsToggleNotice, } from '@gaunt-sloth/agent/modules/slashCommands.js';
|
|
21
|
+
import { ApprovalsPicker } from '#src/tui/components/ApprovalsPicker.js';
|
|
19
22
|
import { TerminalSizeProvider, useTerminalSize } from '#src/tui/useTerminalSize.js';
|
|
20
23
|
import { findMatches, scrollOffsetForLine, stepMatch } from '#src/tui/debugSearch.js';
|
|
21
24
|
import { useTranscriptScroll } from '#src/tui/useTranscriptScroll.js';
|
|
22
25
|
import { isComposingKeystroke, WHEEL_ROWS_PER_NOTCH } from '#src/tui/transcriptScroll.js';
|
|
26
|
+
import { TUI_HINT_SUFFIX, TUI_KEY_BINDINGS } from '#src/tui/keyBindings.js';
|
|
23
27
|
/** Rows of clipping viewport in the docked debug panel (default / restored size). */
|
|
24
28
|
const DEBUG_VIEWPORT_HEIGHT = 8;
|
|
25
29
|
/** Rows of chrome around the debug viewport we leave for when it is maximised (panel
|
|
@@ -85,6 +89,10 @@ export function App(props) {
|
|
|
85
89
|
// Mirror for the synchronous approval useInput handler, so `y` can read the current posture
|
|
86
90
|
// without a stale closure.
|
|
87
91
|
const approvalsRef = useRef(props.initialApprovals);
|
|
92
|
+
// CFG-39 — the open `/approvals` picker's rows, or null when no picker is showing. Transient
|
|
93
|
+
// chrome: unlike the status notice it is never committed to the transcript, and it owns the
|
|
94
|
+
// keyboard while mounted (the prompt is suspended below, as it is for a pending approval).
|
|
95
|
+
const [approvalsPicker, setApprovalsPicker] = useState(null);
|
|
88
96
|
// Whether to show the post-`/clear` "history cleared" banner. Hidden again the moment the next
|
|
89
97
|
// user turn starts so it doesn't linger above a fresh conversation.
|
|
90
98
|
const [clearedBanner, setClearedBanner] = useState(false);
|
|
@@ -96,6 +104,16 @@ export function App(props) {
|
|
|
96
104
|
// The head is the approval on screen AND the one that owns the keyboard. Deriving both from this
|
|
97
105
|
// single expression is what keeps those two facts from drifting apart.
|
|
98
106
|
const pendingApproval = approvalQueue[0] ?? null;
|
|
107
|
+
// [[TUI-C68]] §6.1 — attack halts, queued exactly as approvals are, and for the same reason: the
|
|
108
|
+
// head is what is on screen AND what owns the keyboard, from one expression.
|
|
109
|
+
const [attackQueue, setAttackQueue] = useState([]);
|
|
110
|
+
const pendingAttack = attackQueue[0] ?? null;
|
|
111
|
+
// What the human has typed into the banner. Held in a ref BESIDE the state because Ink dispatches
|
|
112
|
+
// every keypress parsed out of one stdin chunk in a synchronous loop: typing `run` can run the
|
|
113
|
+
// handler three times before a single re-render, and reading the state would give all three the
|
|
114
|
+
// pre-`r` value, leaving the buffer as `n`. Every write below sets both.
|
|
115
|
+
const [attackTyped, setAttackTyped] = useState('');
|
|
116
|
+
const attackTypedRef = useRef('');
|
|
99
117
|
// Mirror of toolsExpanded for the slash-command handler (memoized without it in deps), so
|
|
100
118
|
// /verbose can compute the next state without a stale closure or a side effect in the updater.
|
|
101
119
|
const toolsExpandedRef = useRef(false);
|
|
@@ -293,8 +311,13 @@ export function App(props) {
|
|
|
293
311
|
},
|
|
294
312
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
295
313
|
[agent]);
|
|
296
|
-
// CFG-26 — `/approvals` with no argument: DISPLAY the posture
|
|
297
|
-
//
|
|
314
|
+
// CFG-26/CFG-39 — `/approvals` with no argument: DISPLAY the posture, then OFFER the picker.
|
|
315
|
+
//
|
|
316
|
+
// Both halves, because they answer two different questions people ask at this moment: "what am I
|
|
317
|
+
// on right now" (the notice — with the rater profile, the grant counts and the deny count, none
|
|
318
|
+
// of which a picker row carries) and "what else could I be on" (the picker). The notice is
|
|
319
|
+
// committed to the transcript and stays; the picker is transient chrome that vanishes on Enter or
|
|
320
|
+
// Esc. Reading the posture never touches the runner's state — only a row selection does.
|
|
298
321
|
const showApprovals = useCallback(() => {
|
|
299
322
|
if (!agent.getApprovals) {
|
|
300
323
|
push({
|
|
@@ -307,8 +330,15 @@ export function App(props) {
|
|
|
307
330
|
const { approvals: current, allowlist, deny, grants, trust } = agent.getApprovals();
|
|
308
331
|
approvalsRef.current = current;
|
|
309
332
|
setApprovals(current);
|
|
310
|
-
|
|
333
|
+
// `interactive` suppresses the notice's TEXT copy of the mode list, because the picker below is
|
|
334
|
+
// about to render the same four rows. Every non-TTY surface leaves it unset and gets the text.
|
|
335
|
+
const { title, lines, tone } = approvalsStatusNotice(current, allowlist, deny, grants, trust, {
|
|
336
|
+
interactive: true,
|
|
337
|
+
});
|
|
311
338
|
push({ kind: 'notice', title, lines, tone: tone ?? 'info' });
|
|
339
|
+
// Only offer to CHANGE the mode when this session can actually apply one.
|
|
340
|
+
if (agent.setApprovalRung)
|
|
341
|
+
setApprovalsPicker(approvalPostureChoices(current.rung));
|
|
312
342
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
313
343
|
}, [agent]);
|
|
314
344
|
// EXT-70 §4.7.1 — `/approvals trust|untrust <server> <hint…>`: believe, or stop believing,
|
|
@@ -330,6 +360,29 @@ export function App(props) {
|
|
|
330
360
|
},
|
|
331
361
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
332
362
|
[agent]);
|
|
363
|
+
// [[TUI-C68]] §6.1 — answer the attack banner and dequeue it. `run-anyway` runs exactly one
|
|
364
|
+
// command, so it is the only answer that gets a notice: what a user cannot otherwise observe is
|
|
365
|
+
// the SCOPE of what they granted (the command running is visible; only this one running is not),
|
|
366
|
+
// and the wording is core's so neither surface can promise a persistence the runner never
|
|
367
|
+
// performs. `stop` gets none — the runner throws the halt, whose message is the whole
|
|
368
|
+
// explanation and already reaches the transcript through runTurn's catch.
|
|
369
|
+
const resolveAttack = (answer) => {
|
|
370
|
+
const head = pendingAttack;
|
|
371
|
+
if (!head)
|
|
372
|
+
return;
|
|
373
|
+
head.resolve(answer);
|
|
374
|
+
attackTypedRef.current = '';
|
|
375
|
+
setAttackTyped('');
|
|
376
|
+
setAttackQueue((q) => q.slice(1));
|
|
377
|
+
if (answer !== 'run-anyway')
|
|
378
|
+
return;
|
|
379
|
+
push({
|
|
380
|
+
kind: 'notice',
|
|
381
|
+
title: 'Running a command the rater called an attack',
|
|
382
|
+
lines: [attackBannerCopy().granted],
|
|
383
|
+
tone: 'warn',
|
|
384
|
+
});
|
|
385
|
+
};
|
|
333
386
|
// Resolve the currently-shown approval (the queue head) and commit a brief notice so the
|
|
334
387
|
// decision reads in the transcript (TUI-C14 notice conventions). Dequeues the head so the next
|
|
335
388
|
// queued approval (if any) surfaces. Approve carries the chosen scope; reject is fail-closed.
|
|
@@ -337,13 +390,19 @@ export function App(props) {
|
|
|
337
390
|
const head = pendingApproval;
|
|
338
391
|
if (!head)
|
|
339
392
|
return;
|
|
340
|
-
if (decision === 'reject') {
|
|
393
|
+
if (decision === 'reject' || decision === 'reject-always') {
|
|
394
|
+
// [[TUI-C26]] §6 — *always reject* is a rejection that is also REMEMBERED: the runner records
|
|
395
|
+
// a deny entry for this call, and the matcher consults it before anything else, so the next
|
|
396
|
+
// identical call never reaches a person. `once` is the ordinary refusal and the fallthrough
|
|
397
|
+
// every unbound key lands on.
|
|
398
|
+
const sticky = decision === 'reject-always';
|
|
341
399
|
// EXT-58 (§7): hand the model the moves it has (re-call with a justification, a different
|
|
342
400
|
// command, or ask the user) plus — when the rater named an already-granted alternative
|
|
343
401
|
// (§4.4) — that tool and the clause saying it will not interrupt the user. This is the
|
|
344
402
|
// message the MODEL sees; the on-screen notice below is unchanged.
|
|
345
403
|
head.resolve({
|
|
346
404
|
type: 'reject',
|
|
405
|
+
...(sticky ? { scope: 'session' } : {}),
|
|
347
406
|
message: buildRejectionMessage({
|
|
348
407
|
source: 'user',
|
|
349
408
|
toolName: head.pending.name,
|
|
@@ -352,38 +411,34 @@ export function App(props) {
|
|
|
352
411
|
});
|
|
353
412
|
push({
|
|
354
413
|
kind: 'notice',
|
|
355
|
-
title: 'Command rejected',
|
|
356
|
-
lines:
|
|
414
|
+
title: sticky ? 'Command refused for this session' : 'Command rejected',
|
|
415
|
+
lines: sticky
|
|
416
|
+
? [
|
|
417
|
+
// Exactly what it does, and no more. There is no persisted deny store, so a line
|
|
418
|
+
// implying one would be §6's "offered and then refused" with the evidence hidden —
|
|
419
|
+
// and the refusal itself is real, which is what makes the honest wording affordable.
|
|
420
|
+
// The call is deliberately NOT quoted here: a transcript notice is painted raw, and
|
|
421
|
+
// the command is the untrusted string this whole dialog frames.
|
|
422
|
+
'This call will be refused for the rest of this session, without asking again.',
|
|
423
|
+
'Nothing was saved to the project, so a new session will ask about it again.',
|
|
424
|
+
]
|
|
425
|
+
: ['The shell command was not run; the agent was told you declined.'],
|
|
357
426
|
tone: 'warn',
|
|
358
427
|
});
|
|
359
428
|
}
|
|
360
429
|
else {
|
|
361
430
|
const scope = decision;
|
|
362
431
|
head.resolve({ type: 'approve', scope });
|
|
363
|
-
// CFG-28 (§4.2) — a
|
|
364
|
-
//
|
|
365
|
-
//
|
|
366
|
-
//
|
|
367
|
-
//
|
|
368
|
-
//
|
|
369
|
-
//
|
|
370
|
-
//
|
|
371
|
-
//
|
|
372
|
-
// grant for that outcome), so the confirmation branches on WHAT WAS STORED rather than on the
|
|
373
|
-
// one outcome. Without that, a command that does not statically resolve — or a tool call
|
|
374
|
-
// nothing can attribute — was confirmed as remembered while the store stayed empty, which is
|
|
375
|
-
// the same failure the catastrophic clamp exists to prevent, one case further along.
|
|
376
|
-
const sticky = head.pending.grantPreview !== undefined;
|
|
377
|
-
const catastrophic = head.pending.safetyVerdict?.outcome === 'catastrophic';
|
|
378
|
-
const effectiveScope = sticky ? scope : 'once';
|
|
432
|
+
// CFG-28 (§4.2) / EXT-70 §6 — **a scope this dialog confirms is a scope the gate will
|
|
433
|
+
// honour.** A sticky approve is reachable only where `grantPreview` is present, which the
|
|
434
|
+
// runner attaches exactly where it would store something and withholds for a `catastrophic`
|
|
435
|
+
// verdict, a command it cannot statically resolve, and a call it cannot attribute. The keys
|
|
436
|
+
// are gated on the same value in `useInput`, so there is no keystroke that arrives here
|
|
437
|
+
// asking for a persistence the store will discard — which is why this says what the pressed
|
|
438
|
+
// scope means and needs no branch for a promise that could not be kept. **The gate is what
|
|
439
|
+
// carries that, not this text:** an honest confirmation does not make an approval the menu
|
|
440
|
+
// never offered safe, because the command runs either way.
|
|
379
441
|
const describe = () => {
|
|
380
|
-
if (!sticky && scope !== 'once') {
|
|
381
|
-
return catastrophic
|
|
382
|
-
? 'Approved this once — a command rated catastrophic is never remembered, so the next ' +
|
|
383
|
-
'one like it will ask again.'
|
|
384
|
-
: 'Approved this once — there is nothing about this call that can be remembered, so ' +
|
|
385
|
-
'the next one like it will ask again.';
|
|
386
|
-
}
|
|
387
442
|
// EXT-71 §3.1 — a grant is exactly the command the human saw, so the confirmation says
|
|
388
443
|
// that and not "this operation". A longer command that merely starts with it asks again.
|
|
389
444
|
if (scope === 'session')
|
|
@@ -394,7 +449,7 @@ export function App(props) {
|
|
|
394
449
|
};
|
|
395
450
|
push({
|
|
396
451
|
kind: 'notice',
|
|
397
|
-
title: `Command approved (${
|
|
452
|
+
title: `Command approved (${scope})`,
|
|
398
453
|
lines: [describe()],
|
|
399
454
|
tone: 'info',
|
|
400
455
|
});
|
|
@@ -451,6 +506,10 @@ export function App(props) {
|
|
|
451
506
|
transcript,
|
|
452
507
|
resolvedConfig: props.resolvedConfig,
|
|
453
508
|
dumpDebugSession: props.dumpDebugSession,
|
|
509
|
+
// TUI-C63 — this surface's own keyboard, for the `/help` bindings section. The readline
|
|
510
|
+
// session dispatches through the same registry and passes none, so its `/help` never
|
|
511
|
+
// grows keys it does not have (GS2-87).
|
|
512
|
+
keyBindings: TUI_KEY_BINDINGS,
|
|
454
513
|
}, { duringRun: running });
|
|
455
514
|
if (result.clearTranscript) {
|
|
456
515
|
setTranscript([]);
|
|
@@ -562,28 +621,119 @@ export function App(props) {
|
|
|
562
621
|
// 3. While the panel is focused → Tab/Shift+Tab cycle sections, ↑/↓ scroll one line,
|
|
563
622
|
// PageUp/PageDown page-step, m maximises, Esc unfocuses.
|
|
564
623
|
useInput((input, key) => {
|
|
624
|
+
// [[TUI-C68]] §6.1 — the ATTACK BANNER owns the keyboard ahead of everything, including a
|
|
625
|
+
// pending approval. The two are separate questions and the run is blocked on both, but this one
|
|
626
|
+
// is the irreversible one, so it is answered first and the approval prompt stands down (it is
|
|
627
|
+
// not even rendered while a banner is up).
|
|
628
|
+
//
|
|
629
|
+
// **The safe action is the FALLTHROUGH, and a buffer is what threatens it.** The approval menu
|
|
630
|
+
// grants only on an offered key and rejects every other keystroke; a buffer inverts that by
|
|
631
|
+
// accumulating keystrokes instead of rejecting them. It is restored structurally, not by
|
|
632
|
+
// hoping:
|
|
633
|
+
//
|
|
634
|
+
// - **Enter is the only commit, and it grants only on `grantsRunAnyway`** — core's matcher,
|
|
635
|
+
// the same one the readline surface answers with, so what the banner says is answerable and
|
|
636
|
+
// what this handler accepts cannot drift. A prefix, a near miss, a bare Enter and whatever a
|
|
637
|
+
// cat leaves in the buffer all take the one `stop` path.
|
|
638
|
+
// - **One shot.** Enter on anything else resolves the halt; it never re-asks. A re-prompt turns
|
|
639
|
+
// a typo into another chance at an irreversible action.
|
|
640
|
+
// - **`q` and `Esc` abort with text already typed**, so someone who starts typing and thinks
|
|
641
|
+
// better of it is not trapped. `q` costs nothing to bind — the phrase contains no `q`.
|
|
642
|
+
// Ctrl+C aborts too, but never arrives here: Ink claims it before any `useInput` subscriber
|
|
643
|
+
// and unmounts the app, which ends the session and is a blunter abort than these two.
|
|
644
|
+
//
|
|
645
|
+
// **A chord is declined, not blanked.** The approval branch below maps a modified key to the
|
|
646
|
+
// empty string so a chord cannot stand in for an approval key; here the equivalent is refusing
|
|
647
|
+
// to BUFFER it, because blanking would silently type nothing while the user believes they
|
|
648
|
+
// pressed something. `shift` is excluded from the test for the same reason it is there: it is
|
|
649
|
+
// how a capital is typed, not a different key.
|
|
650
|
+
if (pendingAttack) {
|
|
651
|
+
const chord = key.ctrl || key.meta || key.super || key.hyper;
|
|
652
|
+
if (key.return) {
|
|
653
|
+
resolveAttack(grantsRunAnyway(attackTypedRef.current) ? 'run-anyway' : 'stop');
|
|
654
|
+
return;
|
|
655
|
+
}
|
|
656
|
+
if (key.escape || (!chord && input.toLowerCase() === 'q')) {
|
|
657
|
+
resolveAttack('stop');
|
|
658
|
+
return;
|
|
659
|
+
}
|
|
660
|
+
if (key.backspace || key.delete) {
|
|
661
|
+
attackTypedRef.current = attackTypedRef.current.slice(0, -1);
|
|
662
|
+
setAttackTyped(attackTypedRef.current);
|
|
663
|
+
return;
|
|
664
|
+
}
|
|
665
|
+
// Only plain, printable text is buffered. `input` is empty for the navigation keys ink
|
|
666
|
+
// reports as names, and control characters are refused outright rather than escaped: this
|
|
667
|
+
// buffer is compared against one exact phrase, so anything it cannot match is better dropped
|
|
668
|
+
// than repaired — and neutralising is the framing renderer's job, not a text field's.
|
|
669
|
+
if (!chord && input.length > 0 && !/[\p{Cc}]/u.test(input)) {
|
|
670
|
+
attackTypedRef.current += input;
|
|
671
|
+
setAttackTyped(attackTypedRef.current);
|
|
672
|
+
}
|
|
673
|
+
return;
|
|
674
|
+
}
|
|
565
675
|
// Highest priority: a pending tool approval OWNS the keyboard (EXT-9 Phase B2). While one is
|
|
566
|
-
// shown, o
|
|
567
|
-
//
|
|
568
|
-
//
|
|
676
|
+
// shown, `o` approves once, `s`/`a` approve with the matching scope and `d` refuses for the
|
|
677
|
+
// session — each where that control is on offer — and anything else (n, Esc, Enter, …)
|
|
678
|
+
// resolves reject, fail-closed, mirroring the readline path. We swallow the key either way so
|
|
679
|
+
// it can't fall through to abort/debug handling or get typed into the prompt.
|
|
680
|
+
//
|
|
681
|
+
// **The safe action is the FALLTHROUGH, and no key may erode it.** Doing nothing in
|
|
682
|
+
// particular — Enter, a stray keystroke, a cat on the keyboard — refuses this one call and
|
|
683
|
+
// writes nothing. §1.1's property is that everything the menu does not offer is a refusal, and
|
|
684
|
+
// it has two halves that are easy to do one of:
|
|
685
|
+
//
|
|
686
|
+
// - **Every key is bound only where its control was OFFERED.** `grantPreview`/`denyPreview` are
|
|
687
|
+
// absent exactly where the runner would store nothing, and they are separate questions — so
|
|
688
|
+
// `s`/`a` need `canGrant` and `d` needs `canDeny`. On a reduced menu (every `catastrophic`
|
|
689
|
+
// verdict, a command that does not statically resolve, an unattributable tool call) an
|
|
690
|
+
// ungated `a` would approve and RUN a command the dialog never offered to approve, which is
|
|
691
|
+
// what the reduction exists to prevent; an ungated `d` would turn a mistyped grant into a
|
|
692
|
+
// standing refusal. Off-menu keys take the one-shot path like any other.
|
|
693
|
+
// - **A chord is not the key it carries.** Ink reports Ctrl+D as the bare letter `d` with
|
|
694
|
+
// `key.ctrl` set, so without this guard every control here has a hidden second spelling that
|
|
695
|
+
// nothing advertises — Ctrl+A writing an allow-list entry, Ctrl+D a session refusal — reached
|
|
696
|
+
// by the keystroke a user presses to mean *get me out of this*. Modified is unbound.
|
|
697
|
+
//
|
|
698
|
+
// **The enumeration is complete against ink's five modifier flags**, and completeness is the
|
|
699
|
+
// point: this is a disjunction, so a flag left out of it is a live approval path, not a
|
|
700
|
+
// cosmetic omission. Ink sets `ctrl`, `meta`, `shift`, `super` and `hyper` (`use-input.js`);
|
|
701
|
+
// `capsLock` and `numLock` sit on the same object and are deliberately NOT here — they are
|
|
702
|
+
// lock states rather than modifiers, and refusing every key pressed with CapsLock on would be
|
|
703
|
+
// a new bug rather than a guard. `shift` is the one modifier deliberately excluded: it is how
|
|
704
|
+
// a capital `D` is typed, not a different key.
|
|
569
705
|
//
|
|
570
|
-
//
|
|
571
|
-
//
|
|
572
|
-
//
|
|
573
|
-
//
|
|
574
|
-
//
|
|
706
|
+
// `super`/`hyper` reach `useInput` through the kitty keyboard protocol's CSI-u form, which
|
|
707
|
+
// ink's `parse-keypress` decodes whether or not the protocol was ever enabled — enabling it
|
|
708
|
+
// only makes a terminal SEND those bytes. Nothing here enables it, so the path is not
|
|
709
|
+
// reachable from a real terminal today; it is one option away from being reachable, and the
|
|
710
|
+
// spec drives it directly to prove each flag of this guard carries its own weight.
|
|
711
|
+
//
|
|
712
|
+
// There is no rung-switching key: §6's menu has no "turn the gate down from here" action, so
|
|
713
|
+
// binding one would have meant inventing it. §6's *ask to explain* is likewise unbound until it
|
|
714
|
+
// exists (EXT-104) — a key that does nothing is worse than an absent one.
|
|
575
715
|
if (pendingApproval) {
|
|
576
|
-
const ch = input.toLowerCase();
|
|
716
|
+
const ch = key.ctrl || key.meta || key.super || key.hyper ? '' : input.toLowerCase();
|
|
717
|
+
const canGrant = pendingApproval.pending.grantPreview !== undefined;
|
|
718
|
+
const canDeny = pendingApproval.pending.denyPreview !== undefined;
|
|
577
719
|
if (ch === 'o')
|
|
578
720
|
resolveApproval('once');
|
|
579
|
-
else if (ch === 's')
|
|
721
|
+
else if (ch === 's' && canGrant)
|
|
580
722
|
resolveApproval('session');
|
|
581
|
-
else if (ch === 'a')
|
|
723
|
+
else if (ch === 'a' && canGrant)
|
|
582
724
|
resolveApproval('always');
|
|
725
|
+
else if (ch === 'd' && canDeny)
|
|
726
|
+
resolveApproval('reject-always');
|
|
583
727
|
else
|
|
584
728
|
resolveApproval('reject');
|
|
585
729
|
return;
|
|
586
730
|
}
|
|
731
|
+
// CFG-39 — while the `/approvals` picker is open it OWNS the keyboard, exactly as a pending
|
|
732
|
+
// approval does. <SelectList> is a useInput subscriber too and Ink runs every subscriber, so
|
|
733
|
+
// without this the arrow keys would also scroll the transcript and Esc would both cancel the
|
|
734
|
+
// picker and jump to the newest output. Returning here leaves the picker the only claimant.
|
|
735
|
+
if (approvalsPicker)
|
|
736
|
+
return;
|
|
587
737
|
if (key.escape && runningRef.current) {
|
|
588
738
|
abortRef.current?.abort();
|
|
589
739
|
return;
|
|
@@ -835,18 +985,33 @@ export function App(props) {
|
|
|
835
985
|
});
|
|
836
986
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
837
987
|
}, []);
|
|
988
|
+
// [[TUI-C68]] §6.1 — attack halts bridged from the runner. Each one mounts the <AttackBanner>,
|
|
989
|
+
// which owns the keyboard until it is answered. Absent on the fixture path, where the runner
|
|
990
|
+
// halts on its own — an unsubscribed surface keeps the halt, which is what makes forgetting to
|
|
991
|
+
// wire this the safe failure.
|
|
992
|
+
useEffect(() => {
|
|
993
|
+
if (!props.subscribeAttackHalt)
|
|
994
|
+
return;
|
|
995
|
+
return props.subscribeAttackHalt((record) => {
|
|
996
|
+
setAttackQueue((q) => [...q, record]);
|
|
997
|
+
});
|
|
998
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
999
|
+
}, []);
|
|
838
1000
|
// The greeting is an intro, not a permanent fixture: show it only before the first
|
|
839
1001
|
// exchange, so it stops padding the bottom dock once the conversation is underway.
|
|
840
1002
|
const showIntro = !initialMessage && transcript.length === 0 && !live;
|
|
841
1003
|
// Extract active checklist items from live turn or transcript so it stays pinned at the bottom.
|
|
842
1004
|
const activeChecklist = useMemo(() => extractActiveChecklist(live, transcript), [live, transcript]);
|
|
843
|
-
return (_jsx(TerminalSizeProvider, { size: terminalSize, children: _jsx(MouseProvider, { subscribe: props.subscribeMouse, enabled: mouseEnabled, children: _jsxs(Box, { flexDirection: "column", height: terminalRows, children: [_jsxs(TranscriptViewport, { items: transcript, budgetRows: terminalRows, columns: terminalColumns, toolsExpanded: toolsExpanded, scroll: transcriptScroll, regionRows: transcriptRegionRows, geometry: transcriptGeometry, children: [clearedBanner ? _jsx(ClearBanner, {}) : null, showIntro && props.showLaunchBanner ? (_jsx(LaunchBanner, { model: modelDisplayName, provider: props.modelProviderType })) : null, showIntro ? _jsx(Text, { dimColor: true, children: readyMessage.trim() }) : null, live ? _jsx(LiveTurn, { turn: live, toolsExpanded: toolsExpanded, streaming: true }) : null] }), _jsxs(Box, { flexDirection: "column", flexShrink: 0, children: [debugVisible ? (_jsx(DebugPanel, { subagents: subagents, historyLines: debugHistory, systemLines: debugSystem, toolsLines: debugTools, mcpLines: debugMcp, responseLines: debugResponse, activeTab: debugTab, scrollOffset: debugScroll, focused: debugFocused, viewportHeight: debugViewport, maximized: debugMaximized, searchQuery: debugSearchQuery, searchActive: debugSearchInput, matchCount: debugMatches.length, currentMatchIndex: debugSearchCurrent, currentMatchLine: currentMatchLine })) : null, activeChecklist ? _jsx(ChecklistPanel, { items: activeChecklist }) : null,
|
|
1005
|
+
return (_jsx(TerminalSizeProvider, { size: terminalSize, children: _jsx(MouseProvider, { subscribe: props.subscribeMouse, enabled: mouseEnabled, children: _jsxs(Box, { flexDirection: "column", height: terminalRows, children: [_jsxs(TranscriptViewport, { items: transcript, budgetRows: terminalRows, columns: terminalColumns, toolsExpanded: toolsExpanded, scroll: transcriptScroll, regionRows: transcriptRegionRows, geometry: transcriptGeometry, children: [clearedBanner ? _jsx(ClearBanner, {}) : null, showIntro && props.showLaunchBanner ? (_jsx(LaunchBanner, { model: modelDisplayName, provider: props.modelProviderType })) : null, showIntro ? _jsx(Text, { dimColor: true, children: readyMessage.trim() }) : null, live ? _jsx(LiveTurn, { turn: live, toolsExpanded: toolsExpanded, streaming: true }) : null] }), _jsxs(Box, { flexDirection: "column", flexShrink: 0, children: [debugVisible ? (_jsx(DebugPanel, { subagents: subagents, historyLines: debugHistory, systemLines: debugSystem, toolsLines: debugTools, mcpLines: debugMcp, responseLines: debugResponse, activeTab: debugTab, scrollOffset: debugScroll, focused: debugFocused, viewportHeight: debugViewport, maximized: debugMaximized, searchQuery: debugSearchQuery, searchActive: debugSearchInput, matchCount: debugMatches.length, currentMatchIndex: debugSearchCurrent, currentMatchLine: currentMatchLine })) : null, activeChecklist ? _jsx(ChecklistPanel, { items: activeChecklist }) : null, pendingAttack ? _jsx(AttackBanner, { halt: pendingAttack.halt, typed: attackTyped }) : null, pendingApproval && !pendingAttack ? (_jsx(ApprovalPrompt, { pending: pendingApproval.pending })) : null, approvalsPicker && !pendingApproval && !pendingAttack ? (_jsx(ApprovalsPicker, { choices: approvalsPicker, onSelect: (rung) => {
|
|
1006
|
+
setApprovalsPicker(null);
|
|
1007
|
+
applyApprovalRung(rung);
|
|
1008
|
+
}, onCancel: () => setApprovalsPicker(null) })) : null, _jsx(Rule, {}), _jsx(NoticeBar, { advisories: props.advisories }), _jsx(McpFailureBar, { failures: props.mcpFailures }), _jsx(StatusBar, { running: running, mode: mode, modelDisplayName: modelDisplayName, turnCount: turnCount, debugHint: debugVisible && !debugFocused, approvals: approvals
|
|
844
1009
|
? {
|
|
845
1010
|
rung: approvals.rung,
|
|
846
1011
|
raterProfile: approvals.rater,
|
|
847
1012
|
}
|
|
848
|
-
: undefined }), !debugFocused && !pendingApproval ? (_jsx(PromptInput, { onSubmit: handleSubmit, commands: registry, onMenuStateChange: (active) => {
|
|
1013
|
+
: undefined }), !debugFocused && !pendingApproval && !pendingAttack && !approvalsPicker ? (_jsx(PromptInput, { onSubmit: handleSubmit, commands: registry, onMenuStateChange: (active) => {
|
|
849
1014
|
slashMenuActiveRef.current = active;
|
|
850
|
-
} })) : null, _jsx(Text, { dimColor: true, children: exitMessage.trim() }), _jsx(Rule, {})] })] }) }) }));
|
|
1015
|
+
} })) : null, _jsx(Text, { dimColor: true, children: `${exitMessage.trim()}${TUI_HINT_SUFFIX}` }), _jsx(Rule, {})] })] }) }) }));
|
|
851
1016
|
}
|
|
852
1017
|
//# sourceMappingURL=App.js.map
|