@sigil0/looking-glass 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +572 -0
- package/dist/agents/coordinator.d.ts +21 -0
- package/dist/agents/coordinator.d.ts.map +1 -0
- package/dist/agents/coordinator.js +171 -0
- package/dist/agents/coordinator.js.map +1 -0
- package/dist/app.d.ts +44 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js +215 -0
- package/dist/app.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +419 -0
- package/dist/cli.js.map +1 -0
- package/dist/config.d.ts +4 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +132 -0
- package/dist/config.js.map +1 -0
- package/dist/engine/context.d.ts +6 -0
- package/dist/engine/context.d.ts.map +1 -0
- package/dist/engine/context.js +65 -0
- package/dist/engine/context.js.map +1 -0
- package/dist/engine/engine.d.ts +74 -0
- package/dist/engine/engine.d.ts.map +1 -0
- package/dist/engine/engine.js +573 -0
- package/dist/engine/engine.js.map +1 -0
- package/dist/engine/types.d.ts +35 -0
- package/dist/engine/types.d.ts.map +1 -0
- package/dist/engine/types.js +2 -0
- package/dist/engine/types.js.map +1 -0
- package/dist/instructions.d.ts +8 -0
- package/dist/instructions.d.ts.map +1 -0
- package/dist/instructions.js +60 -0
- package/dist/instructions.js.map +1 -0
- package/dist/model/codex-lb.d.ts +141 -0
- package/dist/model/codex-lb.d.ts.map +1 -0
- package/dist/model/codex-lb.js +471 -0
- package/dist/model/codex-lb.js.map +1 -0
- package/dist/paths.d.ts +7 -0
- package/dist/paths.d.ts.map +1 -0
- package/dist/paths.js +41 -0
- package/dist/paths.js.map +1 -0
- package/dist/scheduler/daemon.d.ts +40 -0
- package/dist/scheduler/daemon.d.ts.map +1 -0
- package/dist/scheduler/daemon.js +189 -0
- package/dist/scheduler/daemon.js.map +1 -0
- package/dist/scheduler/index.d.ts +8 -0
- package/dist/scheduler/index.d.ts.map +1 -0
- package/dist/scheduler/index.js +6 -0
- package/dist/scheduler/index.js.map +1 -0
- package/dist/scheduler/runner.d.ts +18 -0
- package/dist/scheduler/runner.d.ts.map +1 -0
- package/dist/scheduler/runner.js +173 -0
- package/dist/scheduler/runner.js.map +1 -0
- package/dist/scheduler/schedule.d.ts +7 -0
- package/dist/scheduler/schedule.d.ts.map +1 -0
- package/dist/scheduler/schedule.js +94 -0
- package/dist/scheduler/schedule.js.map +1 -0
- package/dist/scheduler/store.d.ts +55 -0
- package/dist/scheduler/store.d.ts.map +1 -0
- package/dist/scheduler/store.js +1203 -0
- package/dist/scheduler/store.js.map +1 -0
- package/dist/scheduler/systemd.d.ts +7 -0
- package/dist/scheduler/systemd.d.ts.map +1 -0
- package/dist/scheduler/systemd.js +97 -0
- package/dist/scheduler/systemd.js.map +1 -0
- package/dist/scheduler/types.d.ts +145 -0
- package/dist/scheduler/types.d.ts.map +1 -0
- package/dist/scheduler/types.js +7 -0
- package/dist/scheduler/types.js.map +1 -0
- package/dist/security.d.ts +6 -0
- package/dist/security.d.ts.map +1 -0
- package/dist/security.js +27 -0
- package/dist/security.js.map +1 -0
- package/dist/storage/artifact-store.d.ts +19 -0
- package/dist/storage/artifact-store.d.ts.map +1 -0
- package/dist/storage/artifact-store.js +47 -0
- package/dist/storage/artifact-store.js.map +1 -0
- package/dist/storage/database.d.ts +5 -0
- package/dist/storage/database.d.ts.map +1 -0
- package/dist/storage/database.js +395 -0
- package/dist/storage/database.js.map +1 -0
- package/dist/storage/session-store.d.ts +114 -0
- package/dist/storage/session-store.d.ts.map +1 -0
- package/dist/storage/session-store.js +731 -0
- package/dist/storage/session-store.js.map +1 -0
- package/dist/tools/agents.d.ts +14 -0
- package/dist/tools/agents.d.ts.map +1 -0
- package/dist/tools/agents.js +35 -0
- package/dist/tools/agents.js.map +1 -0
- package/dist/tools/apply-patch.d.ts +7 -0
- package/dist/tools/apply-patch.d.ts.map +1 -0
- package/dist/tools/apply-patch.js +429 -0
- package/dist/tools/apply-patch.js.map +1 -0
- package/dist/tools/ask.d.ts +8 -0
- package/dist/tools/ask.d.ts.map +1 -0
- package/dist/tools/ask.js +27 -0
- package/dist/tools/ask.js.map +1 -0
- package/dist/tools/bash.d.ts +9 -0
- package/dist/tools/bash.d.ts.map +1 -0
- package/dist/tools/bash.js +98 -0
- package/dist/tools/bash.js.map +1 -0
- package/dist/tools/index.d.ts +9 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +34 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/paths.d.ts +3 -0
- package/dist/tools/paths.d.ts.map +1 -0
- package/dist/tools/paths.js +34 -0
- package/dist/tools/paths.js.map +1 -0
- package/dist/tools/process.d.ts +21 -0
- package/dist/tools/process.d.ts.map +1 -0
- package/dist/tools/process.js +104 -0
- package/dist/tools/process.js.map +1 -0
- package/dist/tools/read.d.ts +9 -0
- package/dist/tools/read.d.ts.map +1 -0
- package/dist/tools/read.js +95 -0
- package/dist/tools/read.js.map +1 -0
- package/dist/tools/registry.d.ts +19 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +188 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tools/safety.d.ts +9 -0
- package/dist/tools/safety.d.ts.map +1 -0
- package/dist/tools/safety.js +199 -0
- package/dist/tools/safety.js.map +1 -0
- package/dist/tools/schedule.d.ts +4 -0
- package/dist/tools/schedule.d.ts.map +1 -0
- package/dist/tools/schedule.js +191 -0
- package/dist/tools/schedule.js.map +1 -0
- package/dist/tools/search.d.ts +16 -0
- package/dist/tools/search.d.ts.map +1 -0
- package/dist/tools/search.js +75 -0
- package/dist/tools/search.js.map +1 -0
- package/dist/tools/types.d.ts +54 -0
- package/dist/tools/types.d.ts.map +1 -0
- package/dist/tools/types.js +10 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/types.d.ts +90 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/ui/stdio.d.ts +5 -0
- package/dist/ui/stdio.d.ts.map +1 -0
- package/dist/ui/stdio.js +65 -0
- package/dist/ui/stdio.js.map +1 -0
- package/dist/ui/tui.d.ts +93 -0
- package/dist/ui/tui.d.ts.map +1 -0
- package/dist/ui/tui.js +2246 -0
- package/dist/ui/tui.js.map +1 -0
- package/package.json +53 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schedule.js","sourceRoot":"","sources":["../../src/tools/schedule.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAuB9C,SAAS,SAAS,CAAC,GAAyC;IAC1D,IAAI,CAAC,GAAG;QAAE,OAAO,gBAAgB,CAAC;IAClC,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;IAChH,OAAO;QACL,OAAO,GAAG,CAAC,EAAE,EAAE;QACf,SAAS,GAAG,CAAC,IAAI,EAAE;QACnB,aAAa,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,YAAY,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACzG,SAAS,GAAG,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE;QAC9E,UAAU,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,GAAG,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,cAAc,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;QAC7G,WAAW,MAAM,IAAI,EAAE,EAAE;KAC1B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,YAAY,CAAC,GAAsD,EAAE,OAA4C;IACxH,IAAI,GAAG,CAAC,IAAI,KAAK,gBAAgB;QAAE,OAAO,GAAG,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,CAAC;IAC9E,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,oBAAoB,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAC1D,OAAO,GAAG,CAAC,GAAG,KAAK,IAAI,IAAI,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAqB;IACvD,MAAM,MAAM,GAAkC;QAC5C,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,4IAA4I;QACzJ,IAAI,EAAE,YAAY;QAClB,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,UAAU;YAC7G,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,YAAY;QAChB,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,gBAAgB,CAAC,EAAE;gBACzE,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE;gBACzD,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,wDAAwD,EAAE;gBACjH,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,kCAAkC,EAAE;gBACvF,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;gBACrC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;gBACrC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,uDAAuD,EAAE;gBAC1G,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,sCAAsC,EAAE;gBACtF,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE;aAC1E;YACD,QAAQ,EAAE,CAAC,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,CAAC;YAChH,oBAAoB,EAAE,KAAK;SAC5B;QACD,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE;YAClB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;YACrH,OAAO,UAAU,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,EAAE,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC1F,CAAC;QACD,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO;YACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC;YACpE,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC7B,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;oBAChF,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;gBAC9E,CAAC;gBACD,MAAM,GAAG,GAAG,KAAK,CAAC,cAAc,CAAC;oBAC/B,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,YAAY,EAAE,IAAI,CAAC,aAAa;oBAChC,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,QAAQ;iBACT,CAAC,CAAC;gBACH,OAAO,EAAE,MAAM,EAAE,iCAAiC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACvE,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;gBACnC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;oBAChF,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;gBACnF,CAAC;gBACD,MAAM,GAAG,GAAG,KAAK,CAAC,mBAAmB,CAAC;oBACpC,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,YAAY,EAAE,IAAI,CAAC,aAAa;oBAChC,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,QAAQ;oBACR,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,mBAAmB;oBAC1D,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,kBAAkB;iBACzD,CAAC,CAAC;gBACH,OAAO,EAAE,MAAM,EAAE,uCAAuC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YAC7E,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;YAChI,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;YAC7F,MAAM,GAAG,GAAG,KAAK,CAAC,aAAa,CAAC;gBAC9B,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,GAAG;gBACH,YAAY,EAAE,IAAI,CAAC,aAAa;gBAChC,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,QAAQ;gBACR,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,mBAAmB;gBAC1D,SAAS,EAAE,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB;gBACvE,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,kBAAkB;aACzD,CAAC,CAAC;YACH,OAAO,EAAE,MAAM,EAAE,gCAAgC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACtE,CAAC;KACF,CAAC;IAEF,MAAM,IAAI,GAAgC;QACxC,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,0EAA0E;QACvF,IAAI,EAAE,MAAM;QACZ,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;YAClD,QAAQ,EAAE,CAAC,eAAe,CAAC;YAC3B,oBAAoB,EAAE,KAAK;SAC5B;QACD,SAAS,EAAE,GAAG,EAAE,CAAC,2BAA2B;QAC5C,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO;YACzB,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;YAC1E,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;YACtG,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvB,MAAM,KAAK,GAAG,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;gBAClG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;oBAC5B,CAAC,CAAC,kBAAkB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBAC/H,CAAC,CAAC,qBAAqB,CAAC,CAAC;YAC7B,CAAC;YACD,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3C,CAAC;KACF,CAAC;IAEF,MAAM,MAAM,GAAkC;QAC5C,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,oFAAoF;QACjG,IAAI,EAAE,YAAY;QAClB,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE;YACrB,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ;gBAAE,OAAO,UAAU,CAAC;YAChD,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClC,IACE,GAAG,EAAE,IAAI,KAAK,SAAS;mBACpB,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,iBAAiB,CAAC;mBAC5F,eAAe,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,KAAK,UAAU;gBACpD,OAAO,UAAU,CAAC;YACpB,OAAO,YAAY,CAAC;QACtB,CAAC;QACD,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,iBAAiB,CAAC,EAAE;gBAC1G,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;aACrC;YACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC;YAC1B,oBAAoB,EAAE,KAAK;SAC5B;QACD,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE;YAClB,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW;gBAAE,OAAO,oCAAoC,IAAI,CAAC,EAAE,EAAE,CAAC;YACtF,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClC,IAAI,CAAC,GAAG;gBAAE,OAAO,GAAG,IAAI,CAAC,MAAM,qBAAqB,IAAI,CAAC,EAAE,EAAE,CAAC;YAC9D,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;YAChH,OAAO;gBACL,GAAG,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,aAAa,GAAG,CAAC,EAAE,EAAE;gBAC/C,GAAG,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,QAAQ,KAAK,GAAG,CAAC,QAAQ,GAAG;gBACvD,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE;gBAChC,iBAAiB,MAAM,IAAI,EAAE,EAAE;aAChC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;QACD,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO;YACzB,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;gBAChC,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC3B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;gBAChG,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAChC,IAAI,CAAC,IAAI;oBAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC;gBAC7D,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACrC,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;gBACnH,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAC,CAAC,cAAc,EAAE,uCAAuC,EAAE,CAAC;YACrI,CAAC;YACD,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClC,IAAI,CAAC,GAAG;gBAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5D,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;YACrG,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO;gBAAE,OAAO,EAAE,MAAM,EAAE,YAAY,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;YACjG,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ;gBAAE,OAAO,EAAE,MAAM,EAAE,aAAa,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;YACpG,IAAI,IAAI,CAAC,MAAM,KAAK,iBAAiB,EAAE,CAAC;gBACtC,OAAO,EAAE,MAAM,EAAE,kCAAkC,SAAS,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;YACtG,CAAC;YACD,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ;gBAAE,OAAO,EAAE,MAAM,EAAE,aAAa,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;YACpG,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClC,OAAO,EAAE,MAAM,EAAE,qBAAqB,GAAG,CAAC,EAAE,eAAe,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC;QAC5E,CAAC;KACF,CAAC;IAEF,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAChC,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { GlassTool } from "./types.js";
|
|
2
|
+
interface GlobArgs {
|
|
3
|
+
pattern: string;
|
|
4
|
+
path: string | null;
|
|
5
|
+
limit: number | null;
|
|
6
|
+
}
|
|
7
|
+
interface GrepArgs {
|
|
8
|
+
pattern: string;
|
|
9
|
+
path: string | null;
|
|
10
|
+
include: string | null;
|
|
11
|
+
limit: number | null;
|
|
12
|
+
}
|
|
13
|
+
export declare const globTool: GlassTool<GlobArgs>;
|
|
14
|
+
export declare const grepTool: GlassTool<GrepArgs>;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=search.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/tools/search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAI5C,UAAU,QAAQ;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,UAAU,QAAQ;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAWD,eAAO,MAAM,QAAQ,EAAE,SAAS,CAAC,QAAQ,CA4BxC,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,SAAS,CAAC,QAAQ,CA8BxC,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { runProcess } from "./process.js";
|
|
2
|
+
import { resolveWorkspacePath } from "./paths.js";
|
|
3
|
+
function outputFromRg(stdout, stderr, exitCode, limit) {
|
|
4
|
+
const error = stderr.toString("utf8").trim();
|
|
5
|
+
if (exitCode !== 0 && exitCode !== 1)
|
|
6
|
+
throw new Error(error || `ripgrep exited with code ${String(exitCode)}`);
|
|
7
|
+
const lines = stdout.toString("utf8").split(/\r?\n/).filter(Boolean);
|
|
8
|
+
if (lines.length === 0)
|
|
9
|
+
return "No matches found.";
|
|
10
|
+
const selected = lines.slice(0, limit);
|
|
11
|
+
return `${selected.join("\n")}${lines.length > limit ? `\n\n[Truncated after ${limit} matches. Narrow the search.]` : ""}`;
|
|
12
|
+
}
|
|
13
|
+
export const globTool = {
|
|
14
|
+
name: "glob",
|
|
15
|
+
description: "List workspace files matching a glob pattern. Results respect ignore files and are bounded.",
|
|
16
|
+
risk: "read",
|
|
17
|
+
parameters: {
|
|
18
|
+
type: "object",
|
|
19
|
+
properties: {
|
|
20
|
+
pattern: { type: "string", minLength: 1 },
|
|
21
|
+
path: { type: ["string", "null"], description: "Optional workspace-relative directory" },
|
|
22
|
+
limit: { type: ["integer", "null"], minimum: 1, maximum: 5000 },
|
|
23
|
+
},
|
|
24
|
+
required: ["pattern", "path", "limit"],
|
|
25
|
+
additionalProperties: false,
|
|
26
|
+
},
|
|
27
|
+
summarize: (args) => `Find files matching ${args.pattern}`,
|
|
28
|
+
async execute(args, context) {
|
|
29
|
+
const limit = Math.min(args.limit ?? 1_000, 5_000);
|
|
30
|
+
const commandArgs = ["--no-config", "--files", "--hidden", "--glob", "!.git", "--glob", args.pattern];
|
|
31
|
+
if (args.path)
|
|
32
|
+
commandArgs.push(resolveWorkspacePath(context.workspace, args.path));
|
|
33
|
+
const result = await runProcess("rg", commandArgs, {
|
|
34
|
+
cwd: context.workspace,
|
|
35
|
+
timeoutMs: 30_000,
|
|
36
|
+
captureBytes: context.config.tools.maxOutputBytes * 4,
|
|
37
|
+
signal: context.signal,
|
|
38
|
+
detached: false,
|
|
39
|
+
});
|
|
40
|
+
return { output: outputFromRg(result.stdout, result.stderr, result.exitCode, limit) };
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
export const grepTool = {
|
|
44
|
+
name: "grep",
|
|
45
|
+
description: "Search workspace text using a regular expression. Returns file paths, line numbers, and matching lines.",
|
|
46
|
+
risk: "read",
|
|
47
|
+
parameters: {
|
|
48
|
+
type: "object",
|
|
49
|
+
properties: {
|
|
50
|
+
pattern: { type: "string", minLength: 1, description: "Rust regular expression" },
|
|
51
|
+
path: { type: ["string", "null"], description: "Optional workspace-relative path" },
|
|
52
|
+
include: { type: ["string", "null"], description: "Optional file glob such as *.{ts,tsx}" },
|
|
53
|
+
limit: { type: ["integer", "null"], minimum: 1, maximum: 5000 },
|
|
54
|
+
},
|
|
55
|
+
required: ["pattern", "path", "include", "limit"],
|
|
56
|
+
additionalProperties: false,
|
|
57
|
+
},
|
|
58
|
+
summarize: (args) => `Search for ${args.pattern}`,
|
|
59
|
+
async execute(args, context) {
|
|
60
|
+
const limit = Math.min(args.limit ?? 500, 5_000);
|
|
61
|
+
const commandArgs = ["--no-config", "--line-number", "--column", "--no-heading", "--color", "never", "--hidden", "--glob", "!.git"];
|
|
62
|
+
if (args.include)
|
|
63
|
+
commandArgs.push("--glob", args.include);
|
|
64
|
+
commandArgs.push("--", args.pattern, args.path ? resolveWorkspacePath(context.workspace, args.path) : ".");
|
|
65
|
+
const result = await runProcess("rg", commandArgs, {
|
|
66
|
+
cwd: context.workspace,
|
|
67
|
+
timeoutMs: 30_000,
|
|
68
|
+
captureBytes: context.config.tools.maxOutputBytes * 4,
|
|
69
|
+
signal: context.signal,
|
|
70
|
+
detached: false,
|
|
71
|
+
});
|
|
72
|
+
return { output: outputFromRg(result.stdout, result.stderr, result.exitCode, limit) };
|
|
73
|
+
},
|
|
74
|
+
};
|
|
75
|
+
//# sourceMappingURL=search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/tools/search.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { FunctionTool } from "openai/resources/responses/responses";
|
|
2
|
+
import type { ApprovalMode, GlassConfig } from "../types.js";
|
|
3
|
+
import type { ArtifactStore } from "../storage/artifact-store.js";
|
|
4
|
+
import type { SessionStore } from "../storage/session-store.js";
|
|
5
|
+
export type ToolRisk = "read" | "write" | "shell" | "persistent" | "critical";
|
|
6
|
+
export type ApprovalDecision = "deny" | "once" | "always";
|
|
7
|
+
export interface ApprovalRequest {
|
|
8
|
+
tool: string;
|
|
9
|
+
risk: ToolRisk;
|
|
10
|
+
summary: string;
|
|
11
|
+
details: string;
|
|
12
|
+
canAlwaysApprove: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface QuestionRequest {
|
|
15
|
+
question: string;
|
|
16
|
+
options?: string[];
|
|
17
|
+
}
|
|
18
|
+
export interface ToolContext {
|
|
19
|
+
workspace: string;
|
|
20
|
+
sessionId: string;
|
|
21
|
+
authorizationSessionId?: string;
|
|
22
|
+
callId?: string;
|
|
23
|
+
config: GlassConfig;
|
|
24
|
+
approvalMode?: ApprovalMode;
|
|
25
|
+
artifacts: ArtifactStore;
|
|
26
|
+
sessions: SessionStore;
|
|
27
|
+
signal: AbortSignal;
|
|
28
|
+
readOnly?: boolean;
|
|
29
|
+
automated?: boolean;
|
|
30
|
+
modelOutputBytes?: number;
|
|
31
|
+
reportProgress?(message: string): void;
|
|
32
|
+
approve(request: ApprovalRequest): Promise<ApprovalDecision>;
|
|
33
|
+
ask(request: QuestionRequest): Promise<string>;
|
|
34
|
+
}
|
|
35
|
+
export interface ToolResult {
|
|
36
|
+
output: string;
|
|
37
|
+
display?: string;
|
|
38
|
+
artifactUri?: string;
|
|
39
|
+
truncated?: boolean;
|
|
40
|
+
}
|
|
41
|
+
export interface GlassTool<TArgs = unknown> {
|
|
42
|
+
name: string;
|
|
43
|
+
description: string;
|
|
44
|
+
risk: ToolRisk;
|
|
45
|
+
classifyRisk?(args: TArgs, context: ToolContext): ToolRisk;
|
|
46
|
+
approvalSignature?(args: TArgs, context: ToolContext): string;
|
|
47
|
+
legacyApprovalSignatures?(args: TArgs, context: ToolContext): string[];
|
|
48
|
+
approvalDescription?(args: TArgs, context: ToolContext): string;
|
|
49
|
+
parameters: Record<string, unknown>;
|
|
50
|
+
summarize(args: TArgs): string;
|
|
51
|
+
execute(args: TArgs, context: ToolContext): Promise<ToolResult>;
|
|
52
|
+
}
|
|
53
|
+
export declare function toFunctionTool(tool: GlassTool): FunctionTool;
|
|
54
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,YAAY,GAAG,UAAU,CAAC;AAC9E,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE1D,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,CAAC;IACpB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,SAAS,EAAE,aAAa,CAAC;IACzB,QAAQ,EAAE,YAAY,CAAC;IACvB,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,OAAO,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC7D,GAAG,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,SAAS,CAAC,KAAK,GAAG,OAAO;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,QAAQ,CAAC;IACf,YAAY,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,GAAG,QAAQ,CAAC;IAC3D,iBAAiB,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,GAAG,MAAM,CAAC;IAC9D,wBAAwB,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,GAAG,MAAM,EAAE,CAAC;IACvE,mBAAmB,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,GAAG,MAAM,CAAC;IAChE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,SAAS,CAAC,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;IAC/B,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CACjE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,YAAY,CAQ5D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"AA2DA,MAAM,UAAU,cAAc,CAAC,IAAe;IAC5C,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,MAAM,EAAE,IAAI;KACb,CAAC;AACJ,CAAC"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
export declare const REASONING_EFFORTS: readonly ["none", "low", "medium", "high", "xhigh", "max", "ultra"];
|
|
2
|
+
export type ReasoningEffort = (typeof REASONING_EFFORTS)[number];
|
|
3
|
+
export type ApprovalMode = "review" | "code" | "unrestricted";
|
|
4
|
+
export type Verbosity = "low" | "medium" | "high";
|
|
5
|
+
export type GatewayProvider = "codex-lb" | "lm-studio";
|
|
6
|
+
export type SessionKind = "interactive" | "agent";
|
|
7
|
+
export interface GatewayConfig {
|
|
8
|
+
provider: GatewayProvider;
|
|
9
|
+
baseURL: string;
|
|
10
|
+
apiKeyEnv: string;
|
|
11
|
+
timeoutMs: number;
|
|
12
|
+
}
|
|
13
|
+
export interface ToolConfig {
|
|
14
|
+
approval: ApprovalMode;
|
|
15
|
+
shellTimeoutMs: number;
|
|
16
|
+
maxOutputBytes: number;
|
|
17
|
+
maxReadLines: number;
|
|
18
|
+
maxToolRounds: number;
|
|
19
|
+
}
|
|
20
|
+
export interface SchedulerConfig {
|
|
21
|
+
timezone: string;
|
|
22
|
+
pollIntervalMs: number;
|
|
23
|
+
leaseMs: number;
|
|
24
|
+
maxConcurrentCommands: number;
|
|
25
|
+
commandStartGraceMs: number;
|
|
26
|
+
commandTimeoutMs: number;
|
|
27
|
+
commandOutputBytes: number;
|
|
28
|
+
}
|
|
29
|
+
export interface GlassConfig {
|
|
30
|
+
gateway: GatewayConfig;
|
|
31
|
+
gateways: GatewayConfig[];
|
|
32
|
+
model: string | null;
|
|
33
|
+
reasoningEffort: ReasoningEffort;
|
|
34
|
+
verbosity: Verbosity;
|
|
35
|
+
fast: boolean;
|
|
36
|
+
instructions: string[];
|
|
37
|
+
tools: ToolConfig;
|
|
38
|
+
scheduler: SchedulerConfig;
|
|
39
|
+
}
|
|
40
|
+
export interface ModelInfo {
|
|
41
|
+
id: string;
|
|
42
|
+
name: string;
|
|
43
|
+
description: string;
|
|
44
|
+
contextWindow: number;
|
|
45
|
+
maxOutputTokens: number | null;
|
|
46
|
+
reasoningEfforts: ReasoningEffort[];
|
|
47
|
+
defaultReasoningEffort: ReasoningEffort;
|
|
48
|
+
defaultVerbosity: Verbosity;
|
|
49
|
+
supportsReasoning: boolean;
|
|
50
|
+
supportsImages: boolean;
|
|
51
|
+
supportsParallelToolCalls: boolean;
|
|
52
|
+
supportsFast: boolean;
|
|
53
|
+
priority: number;
|
|
54
|
+
}
|
|
55
|
+
export interface GatewayModel extends ModelInfo {
|
|
56
|
+
provider: GatewayProvider;
|
|
57
|
+
}
|
|
58
|
+
export interface SessionRecord {
|
|
59
|
+
id: string;
|
|
60
|
+
workspace: string;
|
|
61
|
+
provider: GatewayProvider;
|
|
62
|
+
agentProvider: GatewayProvider;
|
|
63
|
+
title: string;
|
|
64
|
+
model: string;
|
|
65
|
+
agentModel: string;
|
|
66
|
+
reasoningEffort: ReasoningEffort;
|
|
67
|
+
agentReasoningEffort: ReasoningEffort;
|
|
68
|
+
agentsEnabled: boolean;
|
|
69
|
+
verbosity: Verbosity;
|
|
70
|
+
fast: boolean;
|
|
71
|
+
approvalMode: ApprovalMode;
|
|
72
|
+
showReasoning: boolean;
|
|
73
|
+
persistent: boolean;
|
|
74
|
+
promptCacheKey: string;
|
|
75
|
+
lastResponseId: string | null;
|
|
76
|
+
kind: SessionKind;
|
|
77
|
+
parentSessionId: string | null;
|
|
78
|
+
createdAt: number;
|
|
79
|
+
updatedAt: number;
|
|
80
|
+
}
|
|
81
|
+
export type EventKind = "user" | "response" | "tool_started" | "tool_result" | "tool_denied" | "error" | "note";
|
|
82
|
+
export interface SessionEvent<T = unknown> {
|
|
83
|
+
id: number;
|
|
84
|
+
sessionId: string;
|
|
85
|
+
sequence: number;
|
|
86
|
+
kind: EventKind;
|
|
87
|
+
payload: T;
|
|
88
|
+
createdAt: number;
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAU,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { EngineCallbacks, EngineInteraction } from "../engine/engine.js";
|
|
2
|
+
export declare function terminalSafe(value: string): string;
|
|
3
|
+
export declare function stdioInteraction(assumeYes: boolean): EngineInteraction;
|
|
4
|
+
export declare function stdioCallbacks(): EngineCallbacks;
|
|
5
|
+
//# sourceMappingURL=stdio.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stdio.d.ts","sourceRoot":"","sources":["../../src/ui/stdio.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAG9E,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAElD;AAYD,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,OAAO,GAAG,iBAAiB,CAiBtE;AAED,wBAAgB,cAAc,IAAI,eAAe,CAsBhD"}
|
package/dist/ui/stdio.js
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { createInterface } from "node:readline/promises";
|
|
2
|
+
import { stdin, stdout } from "node:process";
|
|
3
|
+
export function terminalSafe(value) {
|
|
4
|
+
return value.replace(/[\u0000-\u0008\u000b-\u001f\u007f-\u009f]/g, "");
|
|
5
|
+
}
|
|
6
|
+
async function promptLine(prompt) {
|
|
7
|
+
if (!stdin.isTTY)
|
|
8
|
+
throw new Error("Interactive input is required but stdin is not a TTY");
|
|
9
|
+
const readline = createInterface({ input: stdin, output: stdout });
|
|
10
|
+
try {
|
|
11
|
+
return await readline.question(prompt);
|
|
12
|
+
}
|
|
13
|
+
finally {
|
|
14
|
+
readline.close();
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
export function stdioInteraction(assumeYes) {
|
|
18
|
+
return {
|
|
19
|
+
async approve(request) {
|
|
20
|
+
if (assumeYes && request.risk !== "persistent" && request.risk !== "critical")
|
|
21
|
+
return "once";
|
|
22
|
+
process.stderr.write(`\nApproval required: ${terminalSafe(request.summary)}\n${terminalSafe(request.details)}\n`);
|
|
23
|
+
if (!stdin.isTTY)
|
|
24
|
+
return "deny";
|
|
25
|
+
const answer = await promptLine(request.canAlwaysApprove ? "Approve? [y/N/a=always] " : "Approve? [y/N] ");
|
|
26
|
+
if (/^(y|yes)$/i.test(answer.trim()))
|
|
27
|
+
return "once";
|
|
28
|
+
if (request.canAlwaysApprove && /^(a|always)$/i.test(answer.trim()))
|
|
29
|
+
return "always";
|
|
30
|
+
return "deny";
|
|
31
|
+
},
|
|
32
|
+
async ask(request) {
|
|
33
|
+
process.stderr.write(`\n${terminalSafe(request.question)}\n`);
|
|
34
|
+
if (request.options)
|
|
35
|
+
process.stderr.write(`${request.options.map((value, index) => `${index + 1}. ${terminalSafe(value)}`).join("\n")}\n`);
|
|
36
|
+
return promptLine("> ");
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
export function stdioCallbacks() {
|
|
41
|
+
return {
|
|
42
|
+
onTextDelta(delta) {
|
|
43
|
+
process.stdout.write(terminalSafe(delta));
|
|
44
|
+
},
|
|
45
|
+
onReasoningDelta(delta) {
|
|
46
|
+
if (process.env.LOOKING_GLASS_SHOW_REASONING === "1")
|
|
47
|
+
process.stderr.write(`\x1b[2m${terminalSafe(delta)}\x1b[0m`);
|
|
48
|
+
},
|
|
49
|
+
onStatus(status) {
|
|
50
|
+
if (process.stderr.isTTY)
|
|
51
|
+
process.stderr.write(`\r\x1b[2m${terminalSafe(status).padEnd(32)}\x1b[0m`);
|
|
52
|
+
},
|
|
53
|
+
onWarning(message) {
|
|
54
|
+
process.stderr.write(`\nWarning: ${terminalSafe(message)}\n`);
|
|
55
|
+
},
|
|
56
|
+
onToolStart(notice) {
|
|
57
|
+
process.stderr.write(`\n\x1b[36m[${terminalSafe(notice.name)}]\x1b[0m ${terminalSafe(notice.summary)}\n`);
|
|
58
|
+
},
|
|
59
|
+
onToolFinish(notice) {
|
|
60
|
+
const marker = notice.failed ? "failed" : "done";
|
|
61
|
+
process.stderr.write(`\x1b[2m[${terminalSafe(notice.name)}: ${marker}]\x1b[0m\n`);
|
|
62
|
+
},
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=stdio.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stdio.js","sourceRoot":"","sources":["../../src/ui/stdio.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/tui.d.ts
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { Markdown, ProcessTerminal, type Component } from "@earendil-works/pi-tui";
|
|
2
|
+
import type { LookingGlassApp } from "../app.js";
|
|
3
|
+
import type { InboxRecord, SchedulerJob } from "../scheduler/types.js";
|
|
4
|
+
import type { ApprovalDecision, ApprovalRequest } from "../tools/types.js";
|
|
5
|
+
import type { ApprovalMode, SessionRecord } from "../types.js";
|
|
6
|
+
interface ScreenPoint {
|
|
7
|
+
column: number;
|
|
8
|
+
row: number;
|
|
9
|
+
}
|
|
10
|
+
export interface TerminalMouseEvent extends ScreenPoint {
|
|
11
|
+
action: "press" | "drag" | "release" | "wheel_up" | "wheel_down" | "wheel_left" | "wheel_right";
|
|
12
|
+
button: number;
|
|
13
|
+
shift: boolean;
|
|
14
|
+
alt: boolean;
|
|
15
|
+
ctrl: boolean;
|
|
16
|
+
}
|
|
17
|
+
export declare function contextUsageLabel(inputTokens: number, contextWindow: number): string;
|
|
18
|
+
export declare function sessionMetadataLine(session: SessionRecord, approval: ApprovalMode, contextUsage: string, width?: number): string;
|
|
19
|
+
export declare function activityLine(active: boolean, status: string, frame: number, scrollOffset: number): string;
|
|
20
|
+
export declare function selectedScreenText(lines: string[], anchor: ScreenPoint, focus: ScreenPoint): string;
|
|
21
|
+
declare class AlternateScreenTerminal extends ProcessTerminal {
|
|
22
|
+
private active;
|
|
23
|
+
private alternate;
|
|
24
|
+
get isActive(): boolean;
|
|
25
|
+
copy(text: string): void;
|
|
26
|
+
start(onInput: (data: string) => void, onResize: () => void): void;
|
|
27
|
+
drainInput(maxMs?: number, idleMs?: number): Promise<void>;
|
|
28
|
+
stop(): void;
|
|
29
|
+
}
|
|
30
|
+
export declare class UserMessage implements Component {
|
|
31
|
+
private readonly text;
|
|
32
|
+
constructor(text: string);
|
|
33
|
+
invalidate(): void;
|
|
34
|
+
render(width: number): string[];
|
|
35
|
+
}
|
|
36
|
+
export declare class AssistantMessage implements Component {
|
|
37
|
+
protected readonly markdown: Markdown;
|
|
38
|
+
protected text: string;
|
|
39
|
+
constructor(text?: string);
|
|
40
|
+
get empty(): boolean;
|
|
41
|
+
setText(text: string): void;
|
|
42
|
+
invalidate(): void;
|
|
43
|
+
render(width: number): string[];
|
|
44
|
+
}
|
|
45
|
+
export declare class ToolCard implements Component {
|
|
46
|
+
readonly callId: string;
|
|
47
|
+
private readonly name;
|
|
48
|
+
private readonly summary;
|
|
49
|
+
private output;
|
|
50
|
+
private failed;
|
|
51
|
+
private finished;
|
|
52
|
+
constructor(callId: string, name: string, summary: string);
|
|
53
|
+
finish(output: string, failed: boolean): void;
|
|
54
|
+
progress(output: string): void;
|
|
55
|
+
invalidate(): void;
|
|
56
|
+
render(width: number): string[];
|
|
57
|
+
}
|
|
58
|
+
export declare class ApprovalModal implements Component {
|
|
59
|
+
private readonly terminal;
|
|
60
|
+
private readonly request;
|
|
61
|
+
onDone?: (decision: ApprovalDecision) => void;
|
|
62
|
+
private selected;
|
|
63
|
+
private scrollOffset;
|
|
64
|
+
private pageSize;
|
|
65
|
+
private maxScroll;
|
|
66
|
+
private renderedWidth;
|
|
67
|
+
private renderedHeight;
|
|
68
|
+
private readonly hitboxes;
|
|
69
|
+
private pressed;
|
|
70
|
+
constructor(terminal: AlternateScreenTerminal, request: ApprovalRequest);
|
|
71
|
+
invalidate(): void;
|
|
72
|
+
private actions;
|
|
73
|
+
handleInput(data: string): void;
|
|
74
|
+
handleMouse(event: TerminalMouseEvent): boolean;
|
|
75
|
+
private actionAt;
|
|
76
|
+
render(width: number): string[];
|
|
77
|
+
}
|
|
78
|
+
interface ParsedSessionSchedule {
|
|
79
|
+
scheduleKind: "once" | "cron";
|
|
80
|
+
schedule: string;
|
|
81
|
+
prompt: string;
|
|
82
|
+
}
|
|
83
|
+
export declare function parseSessionSchedule(argument: string): ParsedSessionSchedule;
|
|
84
|
+
export declare function parseTerminalMouse(data: string): TerminalMouseEvent | null;
|
|
85
|
+
export declare function mouseWheelDelta(data: string): number;
|
|
86
|
+
export declare function inboxLine(item: InboxRecord, job?: SchedulerJob | null, sessionTitle?: string): string;
|
|
87
|
+
export declare function shouldAutoDisplayInbox(job: SchedulerJob | null | undefined, currentSessionId: string): boolean;
|
|
88
|
+
export declare function markInboxItemsRead(items: InboxRecord[], acknowledge: (id: number) => boolean): number;
|
|
89
|
+
export declare function initialTuiSession(app: LookingGlassApp, initialSessionId?: string): Promise<SessionRecord>;
|
|
90
|
+
/** Run the interactive Looking Glass chat interface until the user exits. */
|
|
91
|
+
export declare function runTui(app: LookingGlassApp, initialSessionId?: string): Promise<void>;
|
|
92
|
+
export {};
|
|
93
|
+
//# sourceMappingURL=tui.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tui.d.ts","sourceRoot":"","sources":["../../src/ui/tui.ts"],"names":[],"mappings":"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"}
|