@keyou007/agent-bot 0.1.24-alpha.3 → 0.1.24-alpha.4
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 +16 -0
- package/README.md +7 -1
- package/README.zh.md +7 -1
- package/dist/acp/AcpSessionManager.js +0 -14
- package/dist/acp/AcpSessionManager.js.map +1 -1
- package/dist/acp/acpTypes.js.map +1 -1
- package/dist/commands/CommandRouter.js +0 -3
- package/dist/commands/CommandRouter.js.map +1 -1
- package/dist/local-files/TurnPreviewPage.js +3 -3
- package/dist/local-files/TurnPreviewPage.js.map +1 -1
- package/dist/proxy/ProxySessionController.js +6 -4
- package/dist/proxy/ProxySessionController.js.map +1 -1
- package/npm-shrinkwrap.json +2 -2
- package/package.json +1 -1
- package/skills/agent-bot/SKILL.md +4 -0
- package/src/acp/AcpSessionManager.ts +0 -17
- package/src/acp/acpTypes.ts +0 -1
- package/src/commands/CommandRouter.ts +0 -3
- package/src/local-files/TurnPreviewPage.ts +3 -3
- package/src/proxy/ProxySessionController.ts +5 -3
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@keyou007/agent-bot",
|
|
3
|
-
"version": "0.1.24-alpha.
|
|
3
|
+
"version": "0.1.24-alpha.4",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@keyou007/agent-bot",
|
|
9
|
-
"version": "0.1.24-alpha.
|
|
9
|
+
"version": "0.1.24-alpha.4",
|
|
10
10
|
"license": "GPL-3.0-only",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@agentclientprotocol/sdk": "1.2.1",
|
package/package.json
CHANGED
|
@@ -110,12 +110,16 @@ These commands export only user Prompts and final answers through the latest com
|
|
|
110
110
|
|
|
111
111
|
Feishu `/sessions [keyword]` lists and searches tasks across projects and all Providers, not just the App Server's current Provider. Switching Provider does not hide existing tasks; listing still uses paged metadata and the latest Turn summary only.
|
|
112
112
|
|
|
113
|
+
Feishu group renames update only the group's currently bound task title, not topic or historical tasks. Users may remove generated prefixes or use another format: recognized configured names or matching Agent prefixes yield the task title, otherwise the normalized complete group name is used. A renamed prefix does not change the task's Agent. New-group naming rules are unchanged.
|
|
114
|
+
|
|
113
115
|
Fork creation stores source-task and branch-Turn references without synchronizing the full local Turn list. The Feishu Turn card reuses local records and loads only the summary pages needed for the requested page, not the entire history. `task turns` loads the first page if necessary and returns available local records. This does not change the Agent's inherited context. Retry listing Turns after a temporary history-read failure; unsupported summary pagination never falls back to downloading full history.
|
|
114
116
|
|
|
115
117
|
If a TraeX task stops producing output, check its progress card for a pending plan-mode confirmation. `Approve Plan` / `Enter Plan Mode`, `Reject`, and `Cancel Request` require the user's explicit choice, even with automatic permissions. Preview displays the plan but cannot approve it. Cancelling a request does not itself stop the task; waiting turns still block safe restart. Never approve, stop, or force-restart merely to clear that wait. Notifications dropped by an older running version are not automatically replayed after upgrading.
|
|
116
118
|
|
|
117
119
|
## Change Settings
|
|
118
120
|
|
|
121
|
+
Feishu slash commands accept unique prefixes: `/mo`, `/mod`, and `/mode` open the `/model` settings card and do not accept arguments. This is model selection, not an Agent mode switch. CLI `task model [model]` keeps its documented argument behavior.
|
|
122
|
+
|
|
119
123
|
```powershell
|
|
120
124
|
agentbot task agent [name]
|
|
121
125
|
agentbot task provider [provider]
|
|
@@ -18,7 +18,6 @@ export interface RuntimeSession {
|
|
|
18
18
|
acpSessionId: string;
|
|
19
19
|
managed: ManagedAcpProcess;
|
|
20
20
|
running: boolean;
|
|
21
|
-
modes?: JsonValue;
|
|
22
21
|
configOptions?: JsonValue;
|
|
23
22
|
availableCommands?: JsonValue;
|
|
24
23
|
onUpdate: (session: RuntimeSession, update: Record<string, JsonValue>) => void;
|
|
@@ -81,7 +80,6 @@ export class AcpSessionManager {
|
|
|
81
80
|
acpSessionId: newSessionResult.sessionId,
|
|
82
81
|
managed,
|
|
83
82
|
running: false,
|
|
84
|
-
modes: newSessionResult.modes,
|
|
85
83
|
configOptions: newSessionResult.configOptions,
|
|
86
84
|
onUpdate: input.onUpdate,
|
|
87
85
|
onPermissionRequest: input.onPermissionRequest,
|
|
@@ -147,14 +145,6 @@ export class AcpSessionManager {
|
|
|
147
145
|
this.processManager.stopAll();
|
|
148
146
|
}
|
|
149
147
|
|
|
150
|
-
async setMode(localSessionId: string, modeId: string): Promise<void> {
|
|
151
|
-
const session = this.requireSession(localSessionId);
|
|
152
|
-
await session.managed.connection.request("session/set_mode", {
|
|
153
|
-
sessionId: session.acpSessionId,
|
|
154
|
-
modeId,
|
|
155
|
-
});
|
|
156
|
-
}
|
|
157
|
-
|
|
158
148
|
async setConfigOption(localSessionId: string, configId: string, value: string): Promise<JsonValue> {
|
|
159
149
|
const session = this.requireSession(localSessionId);
|
|
160
150
|
const result = await session.managed.connection.request<JsonValue>("session/set_config_option", {
|
|
@@ -242,13 +232,6 @@ export class AcpSessionManager {
|
|
|
242
232
|
session.configOptions = update.configOptions;
|
|
243
233
|
}
|
|
244
234
|
|
|
245
|
-
if (updateType === "current_mode_update" && session.modes && isObject(session.modes)) {
|
|
246
|
-
session.modes = {
|
|
247
|
-
...session.modes,
|
|
248
|
-
currentModeId: update.modeId,
|
|
249
|
-
};
|
|
250
|
-
}
|
|
251
|
-
|
|
252
235
|
if (updateType === "available_commands_update" && "availableCommands" in update) {
|
|
253
236
|
session.availableCommands = update.availableCommands;
|
|
254
237
|
}
|
package/src/acp/acpTypes.ts
CHANGED
|
@@ -42,8 +42,6 @@ const COMMAND_INITIALISMS: Partial<Record<CommandName, string>> = {
|
|
|
42
42
|
nosteer: "ns",
|
|
43
43
|
};
|
|
44
44
|
|
|
45
|
-
const DISABLED_COMMAND_NAMES = new Set(["mode", "modes"]);
|
|
46
|
-
|
|
47
45
|
export class CommandRouter {
|
|
48
46
|
parse(text: string): Command {
|
|
49
47
|
const trimmed = text.trim();
|
|
@@ -162,7 +160,6 @@ export class CommandRouter {
|
|
|
162
160
|
function resolveCommandName(rawCommand: string): CommandName {
|
|
163
161
|
const input = rawCommand.slice(1).toLowerCase();
|
|
164
162
|
if (!input) throw unknownCommand(rawCommand);
|
|
165
|
-
if (DISABLED_COMMAND_NAMES.has(input)) throw unknownCommand(rawCommand);
|
|
166
163
|
|
|
167
164
|
const exact = COMMAND_NAMES.find((command) => command === input);
|
|
168
165
|
if (exact) return exact;
|
|
@@ -62,7 +62,7 @@ const PREVIEW_LABELS = {
|
|
|
62
62
|
statuses: {
|
|
63
63
|
starting: "正在启动",
|
|
64
64
|
running: "正在处理",
|
|
65
|
-
tool_running: "
|
|
65
|
+
tool_running: "正在处理",
|
|
66
66
|
waiting_for_approval: "等待确认",
|
|
67
67
|
completed: "已完成",
|
|
68
68
|
cancelled: "已停止",
|
|
@@ -103,7 +103,7 @@ const PREVIEW_LABELS = {
|
|
|
103
103
|
statuses: {
|
|
104
104
|
starting: "Starting",
|
|
105
105
|
running: "Processing",
|
|
106
|
-
tool_running: "
|
|
106
|
+
tool_running: "Processing",
|
|
107
107
|
waiting_for_approval: "Waiting for approval",
|
|
108
108
|
completed: "Completed",
|
|
109
109
|
cancelled: "Stopped",
|
|
@@ -1094,8 +1094,8 @@ function renderMetadata(state: TurnViewState, language: TurnPreviewLanguage): st
|
|
|
1094
1094
|
const elapsed = `<span>${escapeHtml(labels.elapsed)}<strong${isTerminal(state.status) ? "" : ` data-live-elapsed data-started-at="${state.startedAt}"`}>${completedAt === undefined && isTerminal(state.status) ? escapeHtml(labels.unknown) : formatDuration((completedAt ?? Date.now()) - state.startedAt)}</strong></span>`;
|
|
1095
1095
|
return [
|
|
1096
1096
|
elapsed,
|
|
1097
|
+
state.modelProvider?.trim() ? `<span title="Provider">${escapeHtml(state.modelProvider.trim())}</span>` : "",
|
|
1097
1098
|
state.model?.trim() ? `<span title="${escapeAttribute(labels.model)}">${escapeHtml(state.model.trim())}</span>` : "",
|
|
1098
|
-
state.modelProvider?.trim() ? `<span title="Provider">Provider: ${escapeHtml(state.modelProvider.trim())}</span>` : "",
|
|
1099
1099
|
state.totalTokens === undefined ? "" : state.cachedInputTokens === undefined
|
|
1100
1100
|
? `<span title="${escapeAttribute(labels.turnTokens)}">${formatTokenCount(state.totalTokens)} tokens</span>`
|
|
1101
1101
|
: `<span title="${escapeAttribute(labels.nonCachedTokens)}: ${formatNumber(state.totalTokens)} tokens">${escapeHtml(labels.nonCachedTokens)} ${formatTokenCount(state.totalTokens)} tokens</span>`,
|
|
@@ -6039,10 +6039,12 @@ export class ProxySessionController {
|
|
|
6039
6039
|
const legacyTitle = legacy && record.agentName.toLowerCase() === legacy.agentName.toLowerCase()
|
|
6040
6040
|
? legacy.title
|
|
6041
6041
|
: undefined;
|
|
6042
|
-
|
|
6043
|
-
|
|
6042
|
+
const defaultFormat = isDefaultGroupNameFormat(nameFormat);
|
|
6043
|
+
let parsedTitle = defaultFormat
|
|
6044
6044
|
? legacyTitle ?? templateTitle
|
|
6045
|
-
: templateTitle ?? legacyTitle
|
|
6045
|
+
: templateTitle ?? legacyTitle;
|
|
6046
|
+
if (defaultFormat && isLegacyGroupPrefixOnly(event.afterName)) parsedTitle = undefined;
|
|
6047
|
+
const title = normalizeTaskTitle(parsedTitle) ?? normalizeTaskTitle(event.afterName);
|
|
6046
6048
|
if (!title || title === record.title) return;
|
|
6047
6049
|
|
|
6048
6050
|
const loaded = await this.loadSession(record);
|