@keyou007/agent-bot 0.1.14-alpha.1 → 0.1.14-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -1
- package/README.md +42 -12
- package/README.zh.md +42 -12
- package/config.example.yaml +1 -1
- package/dist/cli/AutostartManager.js +431 -0
- package/dist/cli/AutostartManager.js.map +1 -0
- package/dist/cli/FeishuAppConfiguration.js +17 -13
- package/dist/cli/FeishuAppConfiguration.js.map +1 -1
- package/dist/cli/Initializer.js +35 -0
- package/dist/cli/Initializer.js.map +1 -1
- package/dist/cli/SelfUpdateRunner.js +552 -0
- package/dist/cli/SelfUpdateRunner.js.map +1 -0
- package/dist/cli/SelfUpdater.js +431 -0
- package/dist/cli/SelfUpdater.js.map +1 -0
- package/dist/cli/autostartOutput.js +63 -0
- package/dist/cli/autostartOutput.js.map +1 -0
- package/dist/cli/controlProtocol.js.map +1 -1
- package/dist/cli/help.js +92 -18
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/taskGroupOptions.js +14 -11
- package/dist/cli/taskGroupOptions.js.map +1 -1
- package/dist/cli/taskListOutput.js +3 -0
- package/dist/cli/taskListOutput.js.map +1 -1
- package/dist/cli/taskTarget.js +99 -0
- package/dist/cli/taskTarget.js.map +1 -0
- package/dist/cli.js +643 -58
- package/dist/cli.js.map +1 -1
- package/dist/codex/CodexRuntime.js +8 -2
- package/dist/codex/CodexRuntime.js.map +1 -1
- package/dist/commands/CommandRouter.js +7 -1
- package/dist/commands/CommandRouter.js.map +1 -1
- package/dist/feishu/CardRenderer.js +172 -23
- package/dist/feishu/CardRenderer.js.map +1 -1
- package/dist/feishu/FeishuMarkdown.js +25 -1
- package/dist/feishu/FeishuMarkdown.js.map +1 -1
- package/dist/index.js +134 -2
- package/dist/index.js.map +1 -1
- package/dist/proxy/ProxySessionController.js +436 -12
- package/dist/proxy/ProxySessionController.js.map +1 -1
- package/dist/state/StateStore.js +18 -0
- package/dist/state/StateStore.js.map +1 -1
- package/docs/technical-reference.md +17 -7
- package/docs/technical-reference.zh.md +17 -7
- package/npm-shrinkwrap.json +2 -2
- package/package.json +2 -2
- package/skills/agent-bot/SKILL.md +107 -188
- package/src/cli/AutostartManager.ts +579 -0
- package/src/cli/FeishuAppConfiguration.ts +22 -7
- package/src/cli/Initializer.ts +57 -0
- package/src/cli/SelfUpdateRunner.ts +817 -0
- package/src/cli/SelfUpdater.ts +688 -0
- package/src/cli/autostartOutput.ts +75 -0
- package/src/cli/controlProtocol.ts +111 -1
- package/src/cli/help.ts +92 -18
- package/src/cli/taskGroupOptions.ts +27 -17
- package/src/cli/taskListOutput.ts +10 -0
- package/src/cli/taskTarget.ts +168 -0
- package/src/cli.ts +781 -65
- package/src/codex/CodexRuntime.ts +8 -2
- package/src/commands/CommandRouter.ts +6 -1
- package/src/commands/commandTypes.ts +1 -0
- package/src/feishu/CardRenderer.ts +199 -23
- package/src/feishu/FeishuMarkdown.ts +27 -1
- package/src/index.ts +172 -2
- package/src/proxy/ProxySessionController.ts +532 -15
- package/src/runtime/types.ts +1 -0
- package/src/state/StateStore.ts +19 -0
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,eAAe,EAA6C,MAAM,0BAA0B,CAAC;AACtG,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,gCAAgC,EAAE,MAAM,mCAAmC,CAAC;AACrF,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,OAAO,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAsB,MAAM,kCAAkC,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAE3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EACL,0BAA0B,EAC1B,gCAAgC,EAChC,gCAAgC,EAChC,sCAAsC,EACtC,yCAAyC,GAC1C,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAE7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EACL,6BAA6B,EAC7B,2BAA2B,EAC3B,iCAAiC,GAClC,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAEhF,MAAM,gBAAgB,GAAG,IAAI,IAAI,EAAE,CAAC;AACpC,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;AAC7C,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,GAAG,CAAC;AAC5D,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,EAAE;OAC7D,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAC7C,MAAM,0BAA0B,GAAG,+BAA+B,CAChE,yCAAyC,CAAC,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC,EACxF,sCAAsC,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;KAC5E,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CACzC,CAAC;AACF,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,KAAK,GAAG,CAAC;AAC/D,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;AAC5B,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,4BAA4B,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACxF,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;AACpC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAExD,MAAM,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC;AAClE,MAAM,uBAAuB,GAA4B;IACvD,WAAW,EAAE,YAAY,EAAE;IAC3B,UAAU,EAAE,oBAAoB,CAAC,CAAC,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE;IAC9F,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK;IAC9B,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU;CACzC,CAAC;AACF,MAAM,QAAQ,GAAG,0BAA0B,CAAC,MAAM,EAAE,MAAM,EAAE,uBAAuB,CAAC,CAAC;AAErF,MAAM,MAAM,GAAoB,EAAE,CAAC;AACnC,IAAI,eAA4C,CAAC;AACjD,IAAI,gBAA8C,CAAC;AACnD,IAAI,eAA4C,CAAC;AACjD,IAAI,mBAAoD,CAAC;AACzD,IAAI,aAA6C,CAAC;AAClD,IAAI,WAAW,GAAG,KAAK,CAAC;AAExB,MAAM,cAAc,GAAG,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACjG,IAAI,cAAc,EAAE,CAAC;IACnB,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,EAAE,kBAAkB,EAAE,MAAM,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAC5F,MAAM,SAAS,GAAG,IAAI,mBAAmB,CAAC,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE;QACzE,gBAAgB,EAAE,KAAK;QACvB,aAAa,EAAE,GAAG;QAClB,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,uCAAuC,CAAC;KACpF,CAAC,CAAC;IACH,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC,CAAC;IAClH,MAAM,gBAAgB,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAM,CAAC;IAChD,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACrD,MAAM,gBAAgB,GAAG,IAAI,uBAAuB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACtE,eAAe,GAAG,IAAI,eAAe,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE;QAC7E,eAAe;QACf,gBAAgB;QAChB,iBAAiB,EAAE,YAAY,EAAE,KAAK,IAAI,gBAAgB;QAC1D,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;QACtC,aAAa,EAAE,YAAY,EAAE,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;QAC9E,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU;KAC5C,EAAE,gBAAgB,CAAC,CAAC;IACrB,mBAAmB,GAAG,IAAI,mBAAmB,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AACzF,CAAC;AAED,MAAM,cAAc,GAAG,WAAW,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,SAAS,KAAK,SAAS,CAAC;AACxF,MAAM,eAAe,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,mBAAmB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/E,IAAI,eAAe,EAAE,CAAC;IACpB,MAAM,CAAC,IAAI,CAAC;QACV,OAAO,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC;QAC1D,QAAQ,EAAE,eAAe;QACzB,SAAS,EAAE,IAAI,oBAAoB,CAAC,eAAe,CAAC;KACrD,CAAC,CAAC;AACL,CAAC;AAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;IAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;AACzF,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;AAC5C,IAAI,YAAY,GAAG,KAAK,CAAC;AACzB,IAAI,gBAAgB,GAAG,KAAK,CAAC;AAC7B,MAAM,WAAW,GAAG,IAAI,oBAAoB,CAAC;IAC3C,YAAY,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,sBAAsB,EAAE;IAClD,OAAO,EAAE,CAAC,MAAM,EAAE,mBAAmB,EAAE,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACtF,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,mBAAmB,EAAE,MAAM,CAAC,MAAM,CAAC;IACzD,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,wCAAwC,CAAC;CAC3F,CAAC,CAAC;AACH,MAAM,UAAU,GAAG,IAAI,sBAAsB,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE;IACvF,UAAU;IACV,OAAO,EAAE,cAAc;IACvB,iBAAiB,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,WAAW,CAAC,eAAe,CAAC,UAAU,CAAC;IAC1E,wBAAwB,EAAE,CAAC,UAAU,EAAE,EAAE;QACvC,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC;YAAE,OAAO;QACxD,MAAM,SAAS,GAAG,gCAAgC,CAAC,iBAAiB,EAAE,EAAE,UAAU,CAAC,CAAC;QACpF,MAAM,CAAC,MAAM,CAAC,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC;QAChD,uBAAuB,CAAC,cAAc,GAAG,SAAS,CAAC,UAAU,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,SAAS,CAAC,UAAU,CAAC;QACvD,MAAM,CAAC,IAAI,CACT,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,EAC5B,2EAA2E,CAC5E,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAEH,IAAI,cAAc,EAAE,CAAC;IACnB,eAAe,GAAG,IAAI,eAAe,CACnC,MAAM,EACN,UAAU,EACV,MAAM,EACN,SAAS,EACT,CAAC,SAAS,EAAE,EAAE,GAAG,uBAAuB,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,CACtE,CAAC;AACJ,CAAC;AACD,IAAI,cAAc;IAAE,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAEhF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAE9C,MAAM,kBAAkB,GAAG,KAAK,IAAmB,EAAE;IACnD,IAAI,WAAW,IAAI,aAAa;QAAE,OAAO;IACzC,aAAa,GAAG,IAAI,kBAAkB,CACpC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAC1C,oBAAoB,CACrB,CAAC;IACF,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC;IAC5B,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,2CAA2C,CAAC,CAAC;AACrH,CAAC,CAAC;AAEF,IAAI,eAAe,IAAI,eAAe,EAAE,CAAC;IACvC,MAAM,WAAW,CACf,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAClB,GAAG,EAAE,GAAG,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,EAC7B,0BAA0B,CAC3B,CAAC;AACJ,CAAC;KAAM,CAAC;IACN,MAAM,kBAAkB,EAAE,CAAC;IAC3B,MAAM,eAAe,EAAE,KAAK,EAAE,CAAC;IAC/B,WAAW,GAAG,IAAI,CAAC;AACrB,CAAC;AACD,MAAM,UAAU,CAAC,uBAAuB,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IAClE,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,iEAAiE,CAAC,CAAC;AAC7F,CAAC,CAAC,CAAC;AACH,gBAAgB,EAAE,KAAK,EAAE,CAAC;AAE1B,KAAK,UAAU,cAAc,CAC3B,UAAkB,EAClB,KAAc,EACd,WAAgC;IAEhC,MAAM,kBAAkB,GAA8B;QACpD,UAAU;QACV,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAClE,CAAC;IACF,IAAI,gBAAgB,EAAE,CAAC;QACrB,MAAM,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,sBAAsB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACnF,OAAO;IACT,CAAC;IACD,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,eAAe,CAAC,0BAA0B,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;QACxE,OAAO;IACT,CAAC;IACD,MAAM,cAAc,GAAG,WAAW,CAAC,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;IACpF,MAAM,QAAQ,CAAC,QAAQ,CACrB,UAAU,EACV,cAAc;QACZ,CAAC,CAAC,uDAAuD;QACzD,CAAC,CAAC,iCAAiC,CACtC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;QACzB,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,8CAA8C,CAAC,CAAC;IACrF,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,MAAc,EACd,mBAAmB,GAAgC,EAAE;IAErD,IAAI,gBAAgB,EAAE,CAAC;QACrB,MAAM,gBAAgB,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,CAAC;QACpE,OAAO;IACT,CAAC;IACD,gBAAgB,GAAG,IAAI,CAAC;IACxB,MAAM,WAAW,CAAC,aAAa,EAAE,CAAC;IAClC,MAAM,mBAAmB,EAAE,KAAK,EAAE,CAAC;IACnC,MAAM,sBAAsB,GAAG,+BAA+B,CAC5D,mBAAmB,EACnB,mBAAmB,EAAE,sBAAsB,EAAE,IAAI,EAAE,CACpD,CAAC;IACF,MAAM,gBAAgB,CACpB,sBAAsB,EACtB,gCAAgC,CACjC,CAAC;IACF,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,QAAQ,CAC5B,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAC/B,MAAM,EACN,sBAAsB,CACvB,EAAE,GAAG,CAAC,CAAC;AACV,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,OAAuB;IACzD,QAAQ,OAAO,CAAC,MAAM,EAAE,CAAC;QACvB,KAAK,QAAQ;YACX,OAAO;gBACL,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE;oBACJ,KAAK,EAAE,WAAW;oBAClB,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB;oBAClD,GAAG,EAAE,OAAO,CAAC,GAAG;oBAChB,SAAS,EAAE,gBAAgB,CAAC,WAAW,EAAE;oBACzC,UAAU;oBACV,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI;oBACxC,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE;wBACjD,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,CAAC;wBACrD,OAAO;4BACL,IAAI;4BACJ,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,IAAI;4BACzC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,OAAO,CAAC,IAAI;4BAC/C,GAAG,EAAE,WAAW,CAAC,GAAG,IAAI,IAAI;4BAC5B,OAAO,EAAE,WAAW,CAAC,OAAO,IAAI,IAAI;yBACrC,CAAC;oBACJ,CAAC,CAAC;oBACF,oBAAoB,EAAE,WAAW,CAAC,SAAS;oBAC3C,iBAAiB,EAAE,WAAW,CAAC,aAAa;oBAC5C,QAAQ,EAAE,KAAK,CAAC,sBAAsB,EAAE;iBACzC;aACF,CAAC;QACJ,KAAK,gBAAgB,EAAE,CAAC;YACtB,MAAM,kBAAkB,GAAG,yBAAyB,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;YACpF,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC5B,MAAM,cAAc,GAAG,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;gBAChF,OAAO;oBACL,EAAE,EAAE,IAAI;oBACR,OAAO,EAAE,cAAc;wBACrB,CAAC,CAAC,sGAAsG;wBACxG,CAAC,CAAC,iEAAiE;iBACtE,CAAC;YACJ,CAAC;YACD,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,eAAe,CACnC,OAAO,CAAC,MAAM,EACd,kBAAkB,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAAE,CAC/C,EAAE,EAAE,CAAC,CAAC;YACP,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,8BAA8B,EAAE,CAAC;QAC/D,CAAC;QACD,KAAK,aAAa;YAChB,WAAW,CAAC,MAAM,EAAE,CAAC;YACrB,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,QAAQ,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC;YACpD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,kCAAkC,EAAE,CAAC;QACnE,KAAK,aAAa;YAChB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC,oBAAoB,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;QAC3F,KAAK,WAAW;YACd,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC,eAAe,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;QACzF,KAAK,YAAY;YACf,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC,mBAAmB,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5G,KAAK,aAAa;YAChB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC,qBAAqB,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7G,KAAK,gBAAgB;YACnB,OAAO;gBACL,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,MAAM,UAAU,CAAC,sBAAsB,CAC3C,OAAO,CAAC,cAAc,EACtB,OAAO,CAAC,KAAK,EACb,MAAM,CAAC,MAAM,CAAC,UAAU,EACxB,OAAO,CAAC,GAAG,EACX,OAAO,CAAC,WAAW,KAAK,IAAI,EAC5B,OAAO,CAAC,SAAS,CAClB;aACF,CAAC;QACJ,KAAK,iBAAiB;YACpB,OAAO;gBACL,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,MAAM,UAAU,CAAC,oBAAoB,CACzC,OAAO,CAAC,cAAc,EACtB,OAAO,CAAC,KAAK,EACb,MAAM,CAAC,MAAM,CAAC,UAAU,CACzB;aACF,CAAC;IACN,CAAC;AACH,CAAC;AAED,KAAK,UAAU,QAAQ,CACrB,QAAgB,EAChB,aAAsB,EACtB,0BAA0B,GAAgC,EAAE;IAE5D,IAAI,YAAY;QAAE,OAAO;IACzB,YAAY,GAAG,IAAI,CAAC;IACpB,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,EAAE,0BAA0B,CAAC,CAAC;IACtD,WAAW,CAAC,MAAM,EAAE,CAAC;IACrB,eAAe,EAAE,IAAI,EAAE,CAAC;IACxB,gBAAgB,EAAE,IAAI,EAAE,CAAC;IACzB,UAAU,CAAC,KAAK,EAAE,CAAC;IACnB,MAAM,OAAO,CAAC,IAAI,CAAC;QACjB,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,6BAA6B,CAAC,CAAC;QACpG,KAAK,CAAC,KAAK,CAAC;KACb,CAAC,CAAC;IACH,QAAQ,CAAC,KAAK,EAAE,CAAC;IACjB,MAAM,aAAa,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,yCAAyC,CAAC,CAAC,CAAC;IAC1H,KAAK,CAAC,KAAK,EAAE,CAAC;IACd,IAAI,aAAa;QAAE,0BAA0B,CAAC,aAAa,EAAE,0BAA0B,CAAC,CAAC;IACzF,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,0BAA0B,CACjC,aAAqB,EACrB,0BAAuD;IAEvD,MAAM,eAAe,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,iBAAiB,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACnF,MAAM,eAAe,GAAG,iCAAiC,CAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC;IACvF,2BAA2B,CAAC,eAAe,CAAC,CAAC;IAC7C,MAAM,kBAAkB,GAAG,0BAA0B,EAAE,CAAC;IACxD,IAAI,kBAAkB,CAAC,KAAK,EAAE,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,kBAAkB,CAAC,KAAK,EAAE,EAAE,2EAA2E,CAAC,CAAC;IAChI,CAAC;SAAM,IAAI,kBAAkB,CAAC,SAAS,EAAE,CAAC;QACxC,MAAM,CAAC,IAAI,CACT,EAAE,WAAW,EAAE,kBAAkB,CAAC,WAAW,EAAE,EAC/C,mEAAmE,CACpE,CAAC;IACJ,CAAC;IACD,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE;QACzC,GAAG,6BAA6B,CAAC,eAAe,CAAC;QACjD,eAAe;KAChB,EAAE;QACD,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;QAClB,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,IAAI;QACjB,KAAK,EAAE,QAAQ;QACf,GAAG,EAAE,gCAAgC,CACnC,aAAa,EACb,kBAAkB,CAAC,WAAW,EAC9B,0BAA0B,CAC3B;KACF,CAAC,CAAC;IACH,UAAU,CAAC,KAAK,EAAE,CAAC;AACrB,CAAC;AAED,SAAS,yBAAyB,CAAC,qBAA8B;IAC/D,MAAM,kBAAkB,GAAG,qBAAqB,EAAE,IAAI,EAAE,CAAC;IACzD,IAAI,kBAAkB,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,kBAAkB,CAAC;eACjD,KAAK,CAAC,4BAA4B,CAAC,kBAAkB,CAAC,CAAC;QAC5D,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,oDAAoD,kBAAkB,GAAG,CAAC,CAAC;QAC3G,OAAO,mCAAmC,CAAC,SAAS,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,eAAe,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;IAClG,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;IACtF,IAAI,eAAe,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,2HAA2H,CAC5H,CAAC;IACJ,CAAC;IACD,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAClG,MAAM,OAAO,GAAG,UAAU;QACxB,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,KAAK,UAAU,CAAC;QAC1E,CAAC,CAAC,SAAS,CAAC;IACd,OAAO,OAAO,CAAC,CAAC,CAAC,mCAAmC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC5E,CAAC;AAED,SAAS,mCAAmC,CAC1C,OAAuD;IAEvD,MAAM,cAAc,GAAG,kBAAkB,CAAC,OAAO,CAAC,UAAU,CAAC;QAC3D,CAAC,CAAC,KAAK,CAAC,6BAA6B,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,UAAU,CAAC;eAC5E,KAAK,CAAC,6BAA6B,CAAC,OAAO,CAAC,UAAU,CAAC;QAC5D,CAAC,CAAC,SAAS,CAAC;IACd,IAAI,kBAAkB,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;QAC9D,MAAM,IAAI,KAAK,CACb,6HAA6H,CAC9H,CAAC;IACJ,CAAC;IACD,OAAO;QACL,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9C,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,MAAiC,EAAE,IAAY;IAC5E,IAAI,kBAAkB,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;QACpE,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;IAC7F,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,CAAC,cAAc;QACvC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,cAAc,EAAE,aAAa,EAAE,IAAa,EAAE;QACpE,CAAC,CAAC,SAAS,CAAC;IACd,OAAO,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,EAAE,GAAG,EAAE,CACnE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,OAAoC,EAAE,IAAY;IAChF,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;QAC7C,MAAM,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YAC3D,MAAM,CAAC,IAAI,CACT,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,EACxC,yCAAyC,CAC1C,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC,CAAC;AACN,CAAC;AAED,SAAS,+BAA+B,CACtC,GAAG,YAA2C;IAE9C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAqC,CAAC;IAC7D,KAAK,MAAM,MAAM,IAAI,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,cAAc,IAAI,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;YACrE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,KAAK,CAAC,YAAoB;IACjC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;AACrE,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -71,6 +71,11 @@ const HELP_COMMAND_SECTIONS = [
|
|
|
71
71
|
requiresArgument: true,
|
|
72
72
|
},
|
|
73
73
|
{ command: "/sessions", usage: "[关键词]", description: "查找本机任务" },
|
|
74
|
+
{
|
|
75
|
+
command: "/archive",
|
|
76
|
+
usage: "[序号或任务 ID]",
|
|
77
|
+
description: "归档当前或指定任务",
|
|
78
|
+
},
|
|
74
79
|
{
|
|
75
80
|
command: "/switch",
|
|
76
81
|
usage: "[序号或任务 ID]",
|
|
@@ -413,6 +418,14 @@ export class ProxySessionController {
|
|
|
413
418
|
await this.createFeishuGroupFromReference(contextKey, sessionId, scopedAction.userId);
|
|
414
419
|
await this.refreshSessionsCardFromAction(scopedAction);
|
|
415
420
|
}
|
|
421
|
+
else if (kind === "session_archive") {
|
|
422
|
+
const sessionId = String(scopedAction.value.sessionId ?? "");
|
|
423
|
+
await this.archiveSessionReference(contextKey, sessionId, {
|
|
424
|
+
announce: true,
|
|
425
|
+
source: "sessions_card",
|
|
426
|
+
});
|
|
427
|
+
await this.refreshSessionsCardFromAction(scopedAction);
|
|
428
|
+
}
|
|
416
429
|
else if (kind === "session_stop") {
|
|
417
430
|
const sessionId = String(scopedAction.value.sessionId ?? "");
|
|
418
431
|
await this.stopSessionReference(contextKey, sessionId);
|
|
@@ -557,6 +570,13 @@ export class ProxySessionController {
|
|
|
557
570
|
await this.cancelSession(record);
|
|
558
571
|
return `Task stop requested: ${record.title ?? record.remoteSessionId ?? record.localSessionId}`;
|
|
559
572
|
}
|
|
573
|
+
async controlArchiveTask(localSessionId) {
|
|
574
|
+
const record = this.requireControlSession(localSessionId);
|
|
575
|
+
return this.archiveSessionReference(this.controlSessionContextKey(record), localSessionId, {
|
|
576
|
+
announce: false,
|
|
577
|
+
source: "cli",
|
|
578
|
+
});
|
|
579
|
+
}
|
|
560
580
|
async controlGetTaskStatus(localSessionId) {
|
|
561
581
|
const record = this.store.getSession(localSessionId);
|
|
562
582
|
if (!record)
|
|
@@ -706,6 +726,314 @@ export class ProxySessionController {
|
|
|
706
726
|
task: forked.task,
|
|
707
727
|
};
|
|
708
728
|
}
|
|
729
|
+
async controlCreateTask(localSessionId, requestedTitle, requestedProjectCwd, forceProjectless = false, requestedAgentName) {
|
|
730
|
+
const source = this.requireControlSession(localSessionId);
|
|
731
|
+
const contextKey = this.controlSessionContextKey(source);
|
|
732
|
+
const context = this.store.getOrCreateUserContext(contextKey, this.config.defaults.agent);
|
|
733
|
+
const agentName = requestedAgentName?.trim() || context.defaultAgent;
|
|
734
|
+
const agent = this.ensureAgent(agentName);
|
|
735
|
+
if (forceProjectless && agent.kind !== "app-server") {
|
|
736
|
+
throw new Error("task new --nodir is only available for App Server agents.");
|
|
737
|
+
}
|
|
738
|
+
const replyTarget = this.controlSessionReplyTarget(source);
|
|
739
|
+
const cwd = forceProjectless
|
|
740
|
+
? undefined
|
|
741
|
+
: requestedProjectCwd === undefined
|
|
742
|
+
? detectProjectlessWorkspace(source.cwd)
|
|
743
|
+
? agent.kind === "app-server" ? undefined : createProjectlessWorkspace().cwd
|
|
744
|
+
: source.cwd
|
|
745
|
+
: resolveUserPath(requestedProjectCwd, source.cwd);
|
|
746
|
+
const settings = source.agentName === agentName
|
|
747
|
+
? {
|
|
748
|
+
modelProvider: source.modelProvider,
|
|
749
|
+
model: source.model,
|
|
750
|
+
reasoningEffort: source.reasoningEffort,
|
|
751
|
+
permissionMode: source.permissionMode,
|
|
752
|
+
}
|
|
753
|
+
: {};
|
|
754
|
+
return this.outbound.withReplyTarget(contextKey, replyTarget, () => this.createSession(contextKey, agentName, cwd, true, false, undefined, undefined, requestedTitle, settings));
|
|
755
|
+
}
|
|
756
|
+
async controlForkTask(localSessionId) {
|
|
757
|
+
const source = this.requireControlSession(localSessionId);
|
|
758
|
+
const contextKey = this.controlSessionContextKey(source);
|
|
759
|
+
const replyTarget = this.controlSessionReplyTarget(source);
|
|
760
|
+
const plan = await this.prepareForkSession(contextKey, source.localSessionId);
|
|
761
|
+
const forked = await this.outbound.withReplyTarget(contextKey, replyTarget, async () => {
|
|
762
|
+
const result = await this.forkSessionIntoContext(contextKey, plan);
|
|
763
|
+
await this.outbound.sendText(contextKey, `已从指定任务${plan.forkedFromHistoricalTurn ? "最近已完成轮次" : ""}创建分支并切换到新任务:${result.session.title
|
|
764
|
+
? `${result.session.title}(${result.session.remoteSessionId})`
|
|
765
|
+
: result.session.remoteSessionId}`);
|
|
766
|
+
return result;
|
|
767
|
+
});
|
|
768
|
+
return {
|
|
769
|
+
sourceLocalSessionId: source.localSessionId,
|
|
770
|
+
sourceTurnId: plan.lastTurnId,
|
|
771
|
+
task: this.store.getSession(forked.record.localSessionId) ?? forked.record,
|
|
772
|
+
};
|
|
773
|
+
}
|
|
774
|
+
async controlSwitchTask(localSessionId, targetLocalSessionId, previous = false) {
|
|
775
|
+
const anchor = this.requireControlSession(localSessionId);
|
|
776
|
+
const contextKey = this.controlSessionContextKey(anchor);
|
|
777
|
+
const replyTarget = this.controlSessionReplyTarget(anchor);
|
|
778
|
+
const target = previous ? undefined : targetLocalSessionId ?? anchor.localSessionId;
|
|
779
|
+
await this.outbound.withReplyTarget(contextKey, replyTarget, () => this.switchSession(contextKey, target));
|
|
780
|
+
return this.requireCurrentSession(contextKey);
|
|
781
|
+
}
|
|
782
|
+
async controlQueueTaskPrompt(localSessionId, text) {
|
|
783
|
+
const promptText = text.trim();
|
|
784
|
+
if (!promptText)
|
|
785
|
+
throw new Error("The queued Prompt cannot be empty.");
|
|
786
|
+
const record = this.requireControlSession(localSessionId);
|
|
787
|
+
const contextKey = this.controlSessionContextKey(record);
|
|
788
|
+
const replyTarget = this.controlSessionReplyTarget(record);
|
|
789
|
+
const queued = this.persistQueuedPrompt(record.localSessionId, contextKey, promptText, { replyTarget });
|
|
790
|
+
this.store.audit(contextKey, "queued_prompt_added", {
|
|
791
|
+
promptId: queued.promptId,
|
|
792
|
+
localSessionId: record.localSessionId,
|
|
793
|
+
source: "cli",
|
|
794
|
+
});
|
|
795
|
+
const queuedCount = this.store.countQueuedPrompts(record.localSessionId);
|
|
796
|
+
await this.scheduleNextQueuedPrompt(record.localSessionId);
|
|
797
|
+
return { promptId: queued.promptId, queued: queuedCount };
|
|
798
|
+
}
|
|
799
|
+
controlTaskAgent(localSessionId, agentName) {
|
|
800
|
+
const record = this.requireControlSession(localSessionId);
|
|
801
|
+
const contextKey = this.controlSessionContextKey(record);
|
|
802
|
+
const context = this.store.getOrCreateUserContext(contextKey, this.config.defaults.agent);
|
|
803
|
+
if (agentName) {
|
|
804
|
+
this.ensureAgent(agentName);
|
|
805
|
+
this.store.setDefaultAgent(contextKey, agentName);
|
|
806
|
+
}
|
|
807
|
+
return {
|
|
808
|
+
current: agentName ?? context.defaultAgent,
|
|
809
|
+
agents: Object.entries(this.config.agents).map(([name, agent]) => ({ name, title: agent.title })),
|
|
810
|
+
};
|
|
811
|
+
}
|
|
812
|
+
async controlTaskSettings(localSessionId, setting, value) {
|
|
813
|
+
const record = this.requireControlSession(localSessionId);
|
|
814
|
+
const loaded = await this.loadSession(record);
|
|
815
|
+
if (setting && !value?.trim())
|
|
816
|
+
throw new Error(`task ${setting} requires a value.`);
|
|
817
|
+
const nextValue = value?.trim();
|
|
818
|
+
if (setting === "provider" && nextValue) {
|
|
819
|
+
await this.assertModelProvider(loaded, nextValue);
|
|
820
|
+
const models = await loaded.runtime.listModels();
|
|
821
|
+
const model = models.find((candidate) => candidate.id === loaded.session.model)
|
|
822
|
+
?? models.find((candidate) => candidate.isDefault);
|
|
823
|
+
if (!model)
|
|
824
|
+
throw new Error("The current runtime has no model available for a Provider change.");
|
|
825
|
+
const effort = model.supportedReasoningEfforts.some((candidate) => candidate.value === loaded.session.reasoningEffort)
|
|
826
|
+
? loaded.session.reasoningEffort
|
|
827
|
+
: model.defaultReasoningEffort ?? model.supportedReasoningEfforts[0]?.value;
|
|
828
|
+
if (!effort)
|
|
829
|
+
throw new Error(`Model ${model.id} has no reasoning effort available for a Provider change.`);
|
|
830
|
+
if (!loaded.runtime.setExecutionSettings)
|
|
831
|
+
throw new Error("The current runtime does not support Provider settings.");
|
|
832
|
+
const updated = await loaded.runtime.setExecutionSettings(record.localSessionId, {
|
|
833
|
+
modelProvider: nextValue,
|
|
834
|
+
model: model.id,
|
|
835
|
+
reasoningEffort: effort,
|
|
836
|
+
permissionMode: loaded.session.permissionMode,
|
|
837
|
+
});
|
|
838
|
+
this.store.updateRuntimeSession(record.localSessionId, {
|
|
839
|
+
modelProvider: updated.modelProvider ?? nextValue,
|
|
840
|
+
model: updated.model ?? model.id,
|
|
841
|
+
reasoningEffort: updated.reasoningEffort ?? effort,
|
|
842
|
+
permissionMode: updated.permissionMode,
|
|
843
|
+
});
|
|
844
|
+
}
|
|
845
|
+
else if (setting === "model" && nextValue) {
|
|
846
|
+
const models = await loaded.runtime.listModels();
|
|
847
|
+
const selected = models.find((candidate) => candidate.id === nextValue);
|
|
848
|
+
if (!selected)
|
|
849
|
+
throw new Error(`Unknown model: ${nextValue}`);
|
|
850
|
+
const currentEffort = loaded.session.reasoningEffort;
|
|
851
|
+
const nextEffort = currentEffort && selected.supportedReasoningEfforts.some((candidate) => candidate.value === currentEffort)
|
|
852
|
+
? currentEffort
|
|
853
|
+
: selected.defaultReasoningEffort;
|
|
854
|
+
await loaded.runtime.setModel(record.localSessionId, nextValue);
|
|
855
|
+
if (nextEffort && nextEffort !== currentEffort) {
|
|
856
|
+
await loaded.runtime.setReasoningEffort(record.localSessionId, nextEffort);
|
|
857
|
+
}
|
|
858
|
+
this.store.updateRuntimeSession(record.localSessionId, { model: nextValue, reasoningEffort: nextEffort });
|
|
859
|
+
}
|
|
860
|
+
else if (setting === "thinking" && nextValue) {
|
|
861
|
+
const models = await loaded.runtime.listModels();
|
|
862
|
+
const currentModel = models.find((candidate) => candidate.id === loaded.session.model)
|
|
863
|
+
?? models.find((candidate) => candidate.isDefault);
|
|
864
|
+
if (!currentModel)
|
|
865
|
+
throw new Error("The current runtime has no model with configurable reasoning effort.");
|
|
866
|
+
if (!currentModel.supportedReasoningEfforts.some((candidate) => candidate.value === nextValue)) {
|
|
867
|
+
const supported = currentModel.supportedReasoningEfforts.map((candidate) => candidate.value).join(", ") || "none";
|
|
868
|
+
throw new Error(`Unsupported reasoning effort: ${nextValue}. Supported values: ${supported}.`);
|
|
869
|
+
}
|
|
870
|
+
await loaded.runtime.setReasoningEffort(record.localSessionId, nextValue);
|
|
871
|
+
this.store.updateRuntimeSession(record.localSessionId, { reasoningEffort: nextValue });
|
|
872
|
+
}
|
|
873
|
+
else if (setting === "permissions" && nextValue) {
|
|
874
|
+
if (nextValue !== "auto" && nextValue !== "confirm") {
|
|
875
|
+
throw new Error("task permissions accepts auto or confirm.");
|
|
876
|
+
}
|
|
877
|
+
await loaded.runtime.setPermissionMode(record.localSessionId, nextValue);
|
|
878
|
+
this.store.updateRuntimeSession(record.localSessionId, { permissionMode: nextValue });
|
|
879
|
+
}
|
|
880
|
+
const session = this.store.getSession(record.localSessionId) ?? record;
|
|
881
|
+
const models = await loaded.runtime.listModels();
|
|
882
|
+
const currentModel = models.find((candidate) => candidate.id === session.model)
|
|
883
|
+
?? models.find((candidate) => candidate.isDefault);
|
|
884
|
+
const providers = loaded.runtime.listModelProviders
|
|
885
|
+
? await loaded.runtime.listModelProviders()
|
|
886
|
+
: [];
|
|
887
|
+
return {
|
|
888
|
+
session,
|
|
889
|
+
providers,
|
|
890
|
+
models,
|
|
891
|
+
reasoningOptions: currentModel?.supportedReasoningEfforts ?? [],
|
|
892
|
+
permissionModes: ["auto", "confirm"],
|
|
893
|
+
};
|
|
894
|
+
}
|
|
895
|
+
async controlTaskGoal(localSessionId, action, objective) {
|
|
896
|
+
const record = this.requireControlSession(localSessionId);
|
|
897
|
+
const loaded = await this.loadSession(record);
|
|
898
|
+
if (loaded.runtime.kind !== "codex" || !loaded.runtime.getGoal || !loaded.runtime.setGoal || !loaded.runtime.clearGoal) {
|
|
899
|
+
throw new Error("The current Agent does not support Goal mode.");
|
|
900
|
+
}
|
|
901
|
+
if (action === "show")
|
|
902
|
+
return { goal: await loaded.runtime.getGoal(record.localSessionId) };
|
|
903
|
+
if (action === "clear")
|
|
904
|
+
return { cleared: await loaded.runtime.clearGoal(record.localSessionId) };
|
|
905
|
+
const current = await loaded.runtime.getGoal(record.localSessionId);
|
|
906
|
+
if (action === "pause" || action === "resume") {
|
|
907
|
+
if (!current)
|
|
908
|
+
throw new Error("The task has no Goal.");
|
|
909
|
+
return { goal: await loaded.runtime.setGoal(record.localSessionId, { status: action === "pause" ? "paused" : "active" }) };
|
|
910
|
+
}
|
|
911
|
+
const nextObjective = objective?.trim();
|
|
912
|
+
if (!nextObjective)
|
|
913
|
+
throw new Error(`task goal ${action} requires an objective.`);
|
|
914
|
+
validateGoalObjective(nextObjective);
|
|
915
|
+
if (action === "set" && current && current.status !== "complete") {
|
|
916
|
+
throw new Error("The task already has an unfinished Goal. Use task goal <task> edit <objective>, or clear it first.");
|
|
917
|
+
}
|
|
918
|
+
if (action === "edit" && !current)
|
|
919
|
+
throw new Error("The task has no Goal to edit.");
|
|
920
|
+
return {
|
|
921
|
+
goal: await loaded.runtime.setGoal(record.localSessionId, {
|
|
922
|
+
objective: nextObjective,
|
|
923
|
+
status: action === "edit" ? current.status : "active",
|
|
924
|
+
...(action === "edit" ? { tokenBudget: current.tokenBudget } : {}),
|
|
925
|
+
}),
|
|
926
|
+
};
|
|
927
|
+
}
|
|
928
|
+
controlListTaskTurns(localSessionId) {
|
|
929
|
+
const session = this.requireControlSession(localSessionId);
|
|
930
|
+
if (!session.remoteSessionId || !this.isCodexSession(session)) {
|
|
931
|
+
throw new Error("The task is not an App Server task that can be reset.");
|
|
932
|
+
}
|
|
933
|
+
const contextKey = this.controlSessionContextKey(session);
|
|
934
|
+
const rows = this.store.listCompletedTurnGraph(session.localSessionId, contextKey);
|
|
935
|
+
const graph = buildTurnGraphRows(rows.map((turn) => ({ turnId: turn.turnId, parentTurnId: turn.parentTurnId })));
|
|
936
|
+
return {
|
|
937
|
+
session,
|
|
938
|
+
turns: rows.flatMap((turn, index) => {
|
|
939
|
+
const snapshot = turnViewSnapshot(turn.snapshot);
|
|
940
|
+
if (!snapshot)
|
|
941
|
+
return [];
|
|
942
|
+
return [{
|
|
943
|
+
sequence: graph[index].sequence,
|
|
944
|
+
turnId: turn.turnId,
|
|
945
|
+
parentTurnId: turn.parentTurnId,
|
|
946
|
+
prompt: snapshot.prompt ?? snapshot.taskTitle,
|
|
947
|
+
startedAt: snapshot.startedAt,
|
|
948
|
+
completedAt: snapshot.completedAt,
|
|
949
|
+
current: session.lastTurnId === turn.turnId && session.lastTurnStatus === "completed",
|
|
950
|
+
}];
|
|
951
|
+
}),
|
|
952
|
+
};
|
|
953
|
+
}
|
|
954
|
+
async controlResetTaskToTurn(localSessionId, turnId) {
|
|
955
|
+
const record = this.requireControlSession(localSessionId);
|
|
956
|
+
const contextKey = this.controlSessionContextKey(record);
|
|
957
|
+
const previous = this.sessionResets.get(record.localSessionId) ?? Promise.resolve();
|
|
958
|
+
const reset = previous.catch(() => undefined).then(() => this.performSessionReset(contextKey, record, turnId, false));
|
|
959
|
+
this.sessionResets.set(record.localSessionId, reset);
|
|
960
|
+
try {
|
|
961
|
+
await reset;
|
|
962
|
+
}
|
|
963
|
+
finally {
|
|
964
|
+
if (this.sessionResets.get(record.localSessionId) === reset)
|
|
965
|
+
this.sessionResets.delete(record.localSessionId);
|
|
966
|
+
}
|
|
967
|
+
return this.store.getSession(record.localSessionId) ?? record;
|
|
968
|
+
}
|
|
969
|
+
controlTaskMute(localSessionId, enabled) {
|
|
970
|
+
const record = this.requireControlSession(localSessionId);
|
|
971
|
+
const contextKey = baseChatContextKey(this.controlSessionContextKey(record));
|
|
972
|
+
const chat = this.store.getChatContext(contextKey);
|
|
973
|
+
if (chat?.chatType !== "group")
|
|
974
|
+
throw new Error("task mute is only available for group chats.");
|
|
975
|
+
const next = enabled ?? Boolean(chat.requiresMention);
|
|
976
|
+
if (enabled !== undefined)
|
|
977
|
+
this.store.setChatRequiresMention(contextKey, enabled);
|
|
978
|
+
return { contextKey, enabled: next };
|
|
979
|
+
}
|
|
980
|
+
async controlRunTaskShell(localSessionId, command) {
|
|
981
|
+
const record = this.requireControlSession(localSessionId);
|
|
982
|
+
const normalized = command.trim();
|
|
983
|
+
if (!normalized)
|
|
984
|
+
throw new Error("task shell requires a command.");
|
|
985
|
+
return { ...await this.shellCommandExecutor(normalized, record.cwd), cwd: record.cwd, command: normalized };
|
|
986
|
+
}
|
|
987
|
+
async controlListTaskDirectory(localSessionId, requestedDirectory, requestedPage = 0) {
|
|
988
|
+
const record = this.requireControlSession(localSessionId);
|
|
989
|
+
if (requestedDirectory === WINDOWS_DRIVES_DIRECTORY) {
|
|
990
|
+
const drives = await this.windowsDriveLister();
|
|
991
|
+
const totalPages = Math.max(1, Math.ceil(drives.length / DIRECTORY_PAGE_SIZE));
|
|
992
|
+
const page = Math.min(Math.max(0, Math.trunc(requestedPage)), totalPages - 1);
|
|
993
|
+
return {
|
|
994
|
+
directory: WINDOWS_DRIVES_DIRECTORY,
|
|
995
|
+
page,
|
|
996
|
+
totalPages,
|
|
997
|
+
totalEntries: drives.length,
|
|
998
|
+
entries: drives.slice(page * DIRECTORY_PAGE_SIZE, (page + 1) * DIRECTORY_PAGE_SIZE).map((drive) => ({
|
|
999
|
+
name: windowsDriveDisplayName(drive),
|
|
1000
|
+
path: drive.root,
|
|
1001
|
+
kind: "drive",
|
|
1002
|
+
})),
|
|
1003
|
+
};
|
|
1004
|
+
}
|
|
1005
|
+
const directory = requestedDirectory === undefined
|
|
1006
|
+
? path.resolve(record.cwd)
|
|
1007
|
+
: resolveUserPath(requestedDirectory, record.cwd);
|
|
1008
|
+
await this.assertBrowsableDirectory(directory);
|
|
1009
|
+
const entries = (await fs.readdir(directory, { withFileTypes: true }))
|
|
1010
|
+
.map((entry) => ({
|
|
1011
|
+
name: entry.name,
|
|
1012
|
+
path: path.join(directory, entry.name),
|
|
1013
|
+
kind: directoryBrowserEntryKind(entry),
|
|
1014
|
+
}))
|
|
1015
|
+
.sort((left, right) => Number(right.kind === "directory") - Number(left.kind === "directory")
|
|
1016
|
+
|| left.name.localeCompare(right.name, undefined, { numeric: true, sensitivity: "base" }));
|
|
1017
|
+
const totalPages = Math.max(1, Math.ceil(entries.length / DIRECTORY_PAGE_SIZE));
|
|
1018
|
+
const page = Math.min(Math.max(0, Math.trunc(requestedPage)), totalPages - 1);
|
|
1019
|
+
const parentDirectory = isWindowsDriveRoot(directory) ? WINDOWS_DRIVES_DIRECTORY : path.dirname(directory);
|
|
1020
|
+
return {
|
|
1021
|
+
directory,
|
|
1022
|
+
...(parentDirectory !== directory ? { parentDirectory } : {}),
|
|
1023
|
+
page,
|
|
1024
|
+
totalPages,
|
|
1025
|
+
totalEntries: entries.length,
|
|
1026
|
+
entries: entries.slice(page * DIRECTORY_PAGE_SIZE, (page + 1) * DIRECTORY_PAGE_SIZE),
|
|
1027
|
+
};
|
|
1028
|
+
}
|
|
1029
|
+
async controlSendTaskFile(localSessionId, requestedFilePath) {
|
|
1030
|
+
const record = this.requireControlSession(localSessionId);
|
|
1031
|
+
const filePath = resolveUserPath(requestedFilePath, record.cwd);
|
|
1032
|
+
await this.assertSendableFile(filePath);
|
|
1033
|
+
const contextKey = this.controlSessionContextKey(record);
|
|
1034
|
+
const replyTarget = this.controlSessionReplyTarget(record);
|
|
1035
|
+
return this.outbound.withReplyTarget(contextKey, replyTarget, () => this.outbound.sendFile(contextKey, filePath));
|
|
1036
|
+
}
|
|
709
1037
|
cardActionContextKey(action) {
|
|
710
1038
|
const explicit = typeof action.value.contextKey === "string" ? action.value.contextKey : undefined;
|
|
711
1039
|
if (explicit && baseChatContextKey(explicit) === baseChatContextKey(action.contextKey))
|
|
@@ -776,6 +1104,16 @@ export class ProxySessionController {
|
|
|
776
1104
|
else
|
|
777
1105
|
await this.openAgentSettings(contextKey);
|
|
778
1106
|
return;
|
|
1107
|
+
case "archive": {
|
|
1108
|
+
const sessionId = command.sessionId ?? context.currentSessionId;
|
|
1109
|
+
if (!sessionId)
|
|
1110
|
+
throw new Error("当前会话没有可归档的任务。请使用 /sessions 查找任务。");
|
|
1111
|
+
await this.archiveSessionReference(contextKey, sessionId, {
|
|
1112
|
+
announce: true,
|
|
1113
|
+
source: "command",
|
|
1114
|
+
});
|
|
1115
|
+
return;
|
|
1116
|
+
}
|
|
779
1117
|
case "status":
|
|
780
1118
|
await this.status(contextKey, command.sessionId);
|
|
781
1119
|
return;
|
|
@@ -2390,15 +2728,19 @@ export class ProxySessionController {
|
|
|
2390
2728
|
if (current.localSessionId !== sessionId) {
|
|
2391
2729
|
throw new Error("这张思考卡片不属于当前任务。请先切换回对应任务,再点击 Reset。");
|
|
2392
2730
|
}
|
|
2731
|
+
await this.performSessionReset(contextKey, current, turnId, true);
|
|
2732
|
+
}
|
|
2733
|
+
async performSessionReset(contextKey, current, turnId, announce) {
|
|
2393
2734
|
if (!current.remoteSessionId || !this.isCodexSession(current)) {
|
|
2394
2735
|
throw new Error("当前任务不是可 Reset 的 App Server 任务。");
|
|
2395
2736
|
}
|
|
2396
2737
|
const snapshot = turnViewSnapshot(this.store.getTurnSnapshot(turnId));
|
|
2397
|
-
if (!snapshot || snapshot.sessionId !==
|
|
2738
|
+
if (!snapshot || snapshot.sessionId !== current.localSessionId || snapshot.status !== "completed") {
|
|
2398
2739
|
throw new Error("只能将当前任务 Reset 到已成功完成的轮次。");
|
|
2399
2740
|
}
|
|
2400
2741
|
if (current.lastTurnId === turnId && current.lastTurnStatus === "completed") {
|
|
2401
|
-
|
|
2742
|
+
if (announce)
|
|
2743
|
+
await this.outbound.sendText(contextKey, "当前任务已经处于本轮完成后的对话状态,无需 Reset。");
|
|
2402
2744
|
return;
|
|
2403
2745
|
}
|
|
2404
2746
|
const runtime = this.runtimes.forAgent(current.agentName);
|
|
@@ -2413,7 +2755,7 @@ export class ProxySessionController {
|
|
|
2413
2755
|
throw new Error("当前任务仍在执行。请等待任务完成或先停止任务,再点击 Reset。");
|
|
2414
2756
|
}
|
|
2415
2757
|
const origin = this.store.getTurnRuntimeOrigin(turnId);
|
|
2416
|
-
if (origin && (origin.localSessionId !==
|
|
2758
|
+
if (origin && (origin.localSessionId !== current.localSessionId || origin.agentName !== current.agentName)) {
|
|
2417
2759
|
throw new Error("这张思考卡片与当前任务不匹配,已拒绝 Reset。");
|
|
2418
2760
|
}
|
|
2419
2761
|
const sourceRemoteSessionId = origin?.remoteSessionId ?? current.remoteSessionId;
|
|
@@ -2445,13 +2787,15 @@ export class ProxySessionController {
|
|
|
2445
2787
|
});
|
|
2446
2788
|
const targetSummary = truncateText((snapshot.prompt ?? snapshot.taskTitle ?? "未记录对话内容").replace(/\s+/g, " ").trim(), 100) || "未记录对话内容";
|
|
2447
2789
|
const targetTime = snapshot.completedAt ?? snapshot.startedAt;
|
|
2448
|
-
|
|
2449
|
-
|
|
2450
|
-
|
|
2451
|
-
|
|
2452
|
-
|
|
2453
|
-
|
|
2454
|
-
|
|
2790
|
+
if (announce) {
|
|
2791
|
+
await this.outbound.sendText(contextKey, [
|
|
2792
|
+
"已将当前任务重置到:",
|
|
2793
|
+
targetSummary,
|
|
2794
|
+
`完成时间:${targetTime === undefined ? "未知" : formatResetTurnTime(targetTime)}`,
|
|
2795
|
+
`Turn ID:${turnId}`,
|
|
2796
|
+
"后续对话将从该轮完成后的状态继续;本地文件没有回退。",
|
|
2797
|
+
].join("\n"));
|
|
2798
|
+
}
|
|
2455
2799
|
}
|
|
2456
2800
|
async resolveApproval(action) {
|
|
2457
2801
|
const sessionId = String(action.value.sessionId ?? "");
|
|
@@ -3268,6 +3612,16 @@ export class ProxySessionController {
|
|
|
3268
3612
|
contextKey,
|
|
3269
3613
|
},
|
|
3270
3614
|
});
|
|
3615
|
+
actions.push({
|
|
3616
|
+
text: "Archive",
|
|
3617
|
+
value: {
|
|
3618
|
+
action: "session_archive",
|
|
3619
|
+
sessionId: entry.reference,
|
|
3620
|
+
...(searchTerm ? { searchTerm } : {}),
|
|
3621
|
+
page: String(page),
|
|
3622
|
+
contextKey,
|
|
3623
|
+
},
|
|
3624
|
+
});
|
|
3271
3625
|
const title = truncateText(entry.title.replace(/\s+/gu, " ").trim() || "未命名任务", 56);
|
|
3272
3626
|
return {
|
|
3273
3627
|
project,
|
|
@@ -3306,7 +3660,7 @@ export class ProxySessionController {
|
|
|
3306
3660
|
`第 ${page + 1} 页 · 每页 ${SESSION_PAGE_SIZE} 个任务${hasNext ? "" : ` · 当前共 ${entries.length} 个任务`}`,
|
|
3307
3661
|
"",
|
|
3308
3662
|
"> 项目行:**New** 新建任务,**NewGroup** 新建群。",
|
|
3309
|
-
"> 任务详情:**Switch** 切换,**Stop** 停止,**Fork** / **ForkGroup** 创建分支,**Status**
|
|
3663
|
+
"> 任务详情:**Switch** 切换,**Stop** 停止,**Fork** / **ForkGroup** 创建分支,**Status** 查看状态,**Archive** 归档。",
|
|
3310
3664
|
], [
|
|
3311
3665
|
...(hasPrevious ? [{
|
|
3312
3666
|
text: "Previous",
|
|
@@ -3471,6 +3825,56 @@ export class ProxySessionController {
|
|
|
3471
3825
|
});
|
|
3472
3826
|
await this.outbound.sendText(contextKey, `已向 Agent 发送 Interrupt 请求:${turnId}`);
|
|
3473
3827
|
}
|
|
3828
|
+
async archiveSessionReference(contextKey, reference, options) {
|
|
3829
|
+
const taskId = this.resolveSessionReference(contextKey, reference);
|
|
3830
|
+
const direct = this.store.getSession(taskId);
|
|
3831
|
+
if (direct?.status === "closed")
|
|
3832
|
+
throw new Error(`任务已经归档:${direct.title ?? taskId}`);
|
|
3833
|
+
const local = direct ?? this.findStoredSessionByReference(taskId);
|
|
3834
|
+
if (local && (!local.remoteSessionId || !this.isCodexSession(local))) {
|
|
3835
|
+
throw new Error("当前 Agent 不支持归档任务。");
|
|
3836
|
+
}
|
|
3837
|
+
if (local && (local.status === "running"
|
|
3838
|
+
|| Boolean(this.runtimes.forAgent(local.agentName).getSession(local.localSessionId)?.activeTurnId))) {
|
|
3839
|
+
throw new Error("任务正在执行,无法归档。请先停止任务或等待本轮完成。");
|
|
3840
|
+
}
|
|
3841
|
+
if (local && this.store.countQueuedPrompts(local.localSessionId) > 0) {
|
|
3842
|
+
throw new Error("任务仍有排队消息,无法归档。请先处理或取消排队消息。");
|
|
3843
|
+
}
|
|
3844
|
+
const remoteReference = local
|
|
3845
|
+
? remoteSessionReference(local.agentName, local.remoteSessionId)
|
|
3846
|
+
: taskId;
|
|
3847
|
+
const { agentName, runtime, remote } = await this.resolveRemoteCodexSession(remoteReference);
|
|
3848
|
+
if (isRemoteSessionActive(remote)) {
|
|
3849
|
+
throw new Error("任务正在执行,无法归档。请先停止任务或等待本轮完成。");
|
|
3850
|
+
}
|
|
3851
|
+
if (!runtime.archiveRemoteSession) {
|
|
3852
|
+
throw new Error(`Agent ${agentName} 不支持归档任务。`);
|
|
3853
|
+
}
|
|
3854
|
+
const wasCurrent = Boolean(local && this.store.getUserContext(contextKey)?.currentSessionId === local.localSessionId);
|
|
3855
|
+
await runtime.archiveRemoteSession(remote.id);
|
|
3856
|
+
const title = local?.title ?? remote.title ?? remote.preview ?? remote.id;
|
|
3857
|
+
if (local) {
|
|
3858
|
+
this.store.archiveSession(local.localSessionId);
|
|
3859
|
+
this.outbound.unregisterSession(local.localSessionId);
|
|
3860
|
+
}
|
|
3861
|
+
this.store.audit(contextKey, "session_archived", {
|
|
3862
|
+
...(local ? { localSessionId: local.localSessionId } : {}),
|
|
3863
|
+
remoteSessionId: remote.id,
|
|
3864
|
+
agentName,
|
|
3865
|
+
source: options.source,
|
|
3866
|
+
});
|
|
3867
|
+
if (options.announce) {
|
|
3868
|
+
await this.outbound.sendText(contextKey, wasCurrent
|
|
3869
|
+
? `已归档任务:${title}\n当前会话已没有绑定任务,直接发送消息即可创建新任务。`
|
|
3870
|
+
: `已归档任务:${title}`);
|
|
3871
|
+
}
|
|
3872
|
+
return {
|
|
3873
|
+
localSessionId: local?.localSessionId ?? "",
|
|
3874
|
+
remoteSessionId: remote.id,
|
|
3875
|
+
title,
|
|
3876
|
+
};
|
|
3877
|
+
}
|
|
3474
3878
|
resolveSessionReference(contextKey, reference) {
|
|
3475
3879
|
if (reference === undefined) {
|
|
3476
3880
|
const previous = this.store.getOrCreateUserContext(contextKey, this.config.defaults.agent).previousSessionId;
|
|
@@ -3770,6 +4174,26 @@ export class ProxySessionController {
|
|
|
3770
4174
|
? "已开启当前群的静音模式。之后只有 @ 机器人的消息会被处理;发送 @机器人 /mute off 可恢复自动响应。"
|
|
3771
4175
|
: "已关闭当前群的静音模式。机器人将恢复自动响应群消息。");
|
|
3772
4176
|
}
|
|
4177
|
+
requireControlSession(localSessionId) {
|
|
4178
|
+
const record = this.store.getSession(localSessionId);
|
|
4179
|
+
if (!record || record.status === "closed")
|
|
4180
|
+
throw new Error(`Task not found: ${localSessionId}`);
|
|
4181
|
+
return record;
|
|
4182
|
+
}
|
|
4183
|
+
controlSessionContextKey(record) {
|
|
4184
|
+
return this.outbound.getSessionContextKey(record.localSessionId)
|
|
4185
|
+
?? (record.lastTurnId ? this.store.getTurnContextKey(record.lastTurnId) : undefined)
|
|
4186
|
+
?? record.contextKey;
|
|
4187
|
+
}
|
|
4188
|
+
controlSessionReplyTarget(record) {
|
|
4189
|
+
const routed = this.outbound.getSessionReplyTarget(record.localSessionId);
|
|
4190
|
+
if (routed)
|
|
4191
|
+
return routed;
|
|
4192
|
+
const snapshot = record.lastTurnId
|
|
4193
|
+
? turnViewSnapshot(this.store.getTurnSnapshot(record.lastTurnId))
|
|
4194
|
+
: undefined;
|
|
4195
|
+
return snapshot?.replyTarget;
|
|
4196
|
+
}
|
|
3773
4197
|
ensureAgent(agentName) {
|
|
3774
4198
|
const agent = this.config.agents[agentName];
|
|
3775
4199
|
if (!agent)
|
|
@@ -4276,7 +4700,7 @@ function isBotOwnedActiveTurn(record, remote) {
|
|
|
4276
4700
|
&& record.lastTurnId === remote.lastTurnId;
|
|
4277
4701
|
}
|
|
4278
4702
|
function isQueueIndependentCommand(command) {
|
|
4279
|
-
if (["stop", "status", "restart", "mute", "help", "sessions", "dir", "goal", "nosteer"].includes(command.type))
|
|
4703
|
+
if (["archive", "stop", "status", "restart", "mute", "help", "sessions", "dir", "goal", "nosteer"].includes(command.type))
|
|
4280
4704
|
return true;
|
|
4281
4705
|
if (command.type === "agent")
|
|
4282
4706
|
return command.agent === undefined;
|