agent-messenger 2.9.0 → 2.10.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/.claude-plugin/plugin.json +1 -1
- package/dist/package.json +1 -1
- package/dist/src/platforms/teams/client.d.ts +9 -1
- package/dist/src/platforms/teams/client.d.ts.map +1 -1
- package/dist/src/platforms/teams/client.js +69 -18
- package/dist/src/platforms/teams/client.js.map +1 -1
- package/dist/src/platforms/teams/commands/auth.d.ts.map +1 -1
- package/dist/src/platforms/teams/commands/auth.js +7 -2
- package/dist/src/platforms/teams/commands/auth.js.map +1 -1
- package/dist/src/platforms/teams/commands/channel.d.ts.map +1 -1
- package/dist/src/platforms/teams/commands/channel.js +18 -3
- package/dist/src/platforms/teams/commands/channel.js.map +1 -1
- package/dist/src/platforms/teams/commands/file.d.ts.map +1 -1
- package/dist/src/platforms/teams/commands/file.js +18 -3
- package/dist/src/platforms/teams/commands/file.js.map +1 -1
- package/dist/src/platforms/teams/commands/message.d.ts.map +1 -1
- package/dist/src/platforms/teams/commands/message.js +24 -4
- package/dist/src/platforms/teams/commands/message.js.map +1 -1
- package/dist/src/platforms/teams/commands/reaction.d.ts.map +1 -1
- package/dist/src/platforms/teams/commands/reaction.js +12 -2
- package/dist/src/platforms/teams/commands/reaction.js.map +1 -1
- package/dist/src/platforms/teams/commands/snapshot.d.ts.map +1 -1
- package/dist/src/platforms/teams/commands/snapshot.js +6 -1
- package/dist/src/platforms/teams/commands/snapshot.js.map +1 -1
- package/dist/src/platforms/teams/commands/team.d.ts.map +1 -1
- package/dist/src/platforms/teams/commands/team.js +6 -1
- package/dist/src/platforms/teams/commands/team.js.map +1 -1
- package/dist/src/platforms/teams/commands/user.d.ts.map +1 -1
- package/dist/src/platforms/teams/commands/user.js +18 -3
- package/dist/src/platforms/teams/commands/user.js.map +1 -1
- package/dist/src/platforms/teams/commands/whoami.d.ts.map +1 -1
- package/dist/src/platforms/teams/commands/whoami.js +6 -1
- package/dist/src/platforms/teams/commands/whoami.js.map +1 -1
- package/dist/src/platforms/teams/credential-manager.d.ts +3 -1
- package/dist/src/platforms/teams/credential-manager.d.ts.map +1 -1
- package/dist/src/platforms/teams/credential-manager.js +6 -1
- package/dist/src/platforms/teams/credential-manager.js.map +1 -1
- package/dist/src/platforms/teams/ensure-auth.d.ts.map +1 -1
- package/dist/src/platforms/teams/ensure-auth.js +7 -2
- package/dist/src/platforms/teams/ensure-auth.js.map +1 -1
- package/dist/src/platforms/teams/token-extractor.d.ts +3 -1
- package/dist/src/platforms/teams/token-extractor.d.ts.map +1 -1
- package/dist/src/platforms/teams/token-extractor.js +67 -10
- package/dist/src/platforms/teams/token-extractor.js.map +1 -1
- package/dist/src/platforms/teams/types.d.ts +17 -0
- package/dist/src/platforms/teams/types.d.ts.map +1 -1
- package/dist/src/platforms/teams/types.js +2 -0
- package/dist/src/platforms/teams/types.js.map +1 -1
- package/dist/src/platforms/webex/client.d.ts +3 -0
- package/dist/src/platforms/webex/client.d.ts.map +1 -1
- package/dist/src/platforms/webex/client.js +58 -13
- package/dist/src/platforms/webex/client.js.map +1 -1
- package/dist/src/platforms/webex/commands/auth.d.ts.map +1 -1
- package/dist/src/platforms/webex/commands/auth.js +61 -10
- package/dist/src/platforms/webex/commands/auth.js.map +1 -1
- package/dist/src/platforms/webex/credential-manager.d.ts.map +1 -1
- package/dist/src/platforms/webex/credential-manager.js +18 -6
- package/dist/src/platforms/webex/credential-manager.js.map +1 -1
- package/dist/src/platforms/webex/encryption.d.ts.map +1 -1
- package/dist/src/platforms/webex/encryption.js +3 -1
- package/dist/src/platforms/webex/encryption.js.map +1 -1
- package/dist/src/platforms/webex/ensure-auth.d.ts.map +1 -1
- package/dist/src/platforms/webex/ensure-auth.js +10 -2
- package/dist/src/platforms/webex/ensure-auth.js.map +1 -1
- package/dist/src/platforms/webex/token-extractor.d.ts +1 -0
- package/dist/src/platforms/webex/token-extractor.d.ts.map +1 -1
- package/dist/src/platforms/webex/token-extractor.js +21 -4
- package/dist/src/platforms/webex/token-extractor.js.map +1 -1
- package/e2e/webex.e2e.test.ts +57 -0
- package/package.json +1 -1
- package/skills/agent-channeltalk/SKILL.md +1 -1
- package/skills/agent-channeltalkbot/SKILL.md +1 -1
- package/skills/agent-discord/SKILL.md +1 -1
- package/skills/agent-discordbot/SKILL.md +1 -1
- package/skills/agent-instagram/SKILL.md +1 -1
- package/skills/agent-kakaotalk/SKILL.md +1 -1
- package/skills/agent-line/SKILL.md +1 -1
- package/skills/agent-slack/SKILL.md +1 -1
- package/skills/agent-slackbot/SKILL.md +1 -1
- package/skills/agent-teams/SKILL.md +1 -1
- package/skills/agent-telegram/SKILL.md +1 -1
- package/skills/agent-webex/SKILL.md +1 -1
- package/skills/agent-wechatbot/SKILL.md +1 -1
- package/skills/agent-whatsapp/SKILL.md +1 -1
- package/skills/agent-whatsappbot/SKILL.md +1 -1
- package/src/platforms/teams/client.test.ts +34 -30
- package/src/platforms/teams/client.ts +92 -20
- package/src/platforms/teams/commands/auth.test.ts +6 -2
- package/src/platforms/teams/commands/auth.ts +7 -2
- package/src/platforms/teams/commands/channel.test.ts +6 -6
- package/src/platforms/teams/commands/channel.ts +18 -3
- package/src/platforms/teams/commands/file.ts +18 -3
- package/src/platforms/teams/commands/message.ts +24 -4
- package/src/platforms/teams/commands/reaction.ts +12 -2
- package/src/platforms/teams/commands/snapshot.ts +6 -1
- package/src/platforms/teams/commands/team.test.ts +2 -2
- package/src/platforms/teams/commands/team.ts +6 -1
- package/src/platforms/teams/commands/user.ts +18 -3
- package/src/platforms/teams/commands/whoami.ts +6 -1
- package/src/platforms/teams/credential-manager.test.ts +25 -0
- package/src/platforms/teams/credential-manager.ts +13 -3
- package/src/platforms/teams/ensure-auth.test.ts +6 -1
- package/src/platforms/teams/ensure-auth.ts +7 -2
- package/src/platforms/teams/token-extractor.ts +77 -12
- package/src/platforms/teams/types.test.ts +17 -0
- package/src/platforms/teams/types.ts +6 -0
- package/src/platforms/webex/client.test.ts +157 -13
- package/src/platforms/webex/client.ts +64 -15
- package/src/platforms/webex/commands/auth.test.ts +122 -1
- package/src/platforms/webex/commands/auth.ts +72 -17
- package/src/platforms/webex/credential-manager.test.ts +63 -0
- package/src/platforms/webex/credential-manager.ts +22 -8
- package/src/platforms/webex/encryption.test.ts +54 -0
- package/src/platforms/webex/encryption.ts +3 -1
- package/src/platforms/webex/ensure-auth.ts +10 -2
- package/src/platforms/webex/token-extractor.test.ts +32 -3
- package/src/platforms/webex/token-extractor.ts +26 -5
|
@@ -9,7 +9,11 @@ export async function ensureWebexAuth() {
|
|
|
9
9
|
const token = await credManager.getToken(config.clientId, config.clientSecret);
|
|
10
10
|
if (token) {
|
|
11
11
|
const client = new WebexClient();
|
|
12
|
-
await client.login({
|
|
12
|
+
await client.login({
|
|
13
|
+
token,
|
|
14
|
+
deviceUrl: config.deviceUrl,
|
|
15
|
+
tokenType: config.tokenType,
|
|
16
|
+
});
|
|
13
17
|
await client.testAuth();
|
|
14
18
|
return;
|
|
15
19
|
}
|
|
@@ -19,7 +23,11 @@ export async function ensureWebexAuth() {
|
|
|
19
23
|
if (!extracted)
|
|
20
24
|
return;
|
|
21
25
|
const client = new WebexClient();
|
|
22
|
-
await client.login({
|
|
26
|
+
await client.login({
|
|
27
|
+
token: extracted.accessToken,
|
|
28
|
+
deviceUrl: extracted.deviceUrl,
|
|
29
|
+
tokenType: 'extracted',
|
|
30
|
+
});
|
|
23
31
|
await client.testAuth();
|
|
24
32
|
await credManager.saveConfig({
|
|
25
33
|
accessToken: extracted.accessToken,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensure-auth.js","sourceRoot":"","sources":["../../../../src/platforms/webex/ensure-auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAEvD,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,IAAI,sBAAsB,EAAE,CAAA;QAChD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,UAAU,EAAE,CAAA;QAE7C,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,YAAY,CAAC,CAAA;YAC9E,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAA;gBAChC,MAAM,MAAM,CAAC,KAAK,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"ensure-auth.js","sourceRoot":"","sources":["../../../../src/platforms/webex/ensure-auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAEvD,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,IAAI,sBAAsB,EAAE,CAAA;QAChD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,UAAU,EAAE,CAAA;QAE7C,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,YAAY,CAAC,CAAA;YAC9E,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAA;gBAChC,MAAM,MAAM,CAAC,KAAK,CAAC;oBACjB,KAAK;oBACL,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;iBAC5B,CAAC,CAAA;gBACF,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAA;gBACvB,OAAM;YACR,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,mBAAmB,EAAE,CAAA;QAC3C,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,CAAA;QAC3C,IAAI,CAAC,SAAS;YAAE,OAAM;QAEtB,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAA;QAChC,MAAM,MAAM,CAAC,KAAK,CAAC;YACjB,KAAK,EAAE,SAAS,CAAC,WAAW;YAC5B,SAAS,EAAE,SAAS,CAAC,SAAS;YAC9B,SAAS,EAAE,WAAW;SACvB,CAAC,CAAA;QACF,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAA;QAEvB,MAAM,WAAW,CAAC,UAAU,CAAC;YAC3B,WAAW,EAAE,SAAS,CAAC,WAAW;YAClC,YAAY,EAAE,SAAS,CAAC,YAAY,IAAI,EAAE;YAC1C,SAAS,EAAE,SAAS,CAAC,SAAS,IAAI,CAAC;YACnC,SAAS,EAAE,WAAW;YACtB,SAAS,EAAE,SAAS,CAAC,SAAS;YAC9B,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,cAAc,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS;SACpG,CAAC,CAAA;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,8EAA8E;IAChF,CAAC;AACH,CAAC"}
|
|
@@ -16,6 +16,7 @@ export declare class WebexTokenExtractor {
|
|
|
16
16
|
private getBrowserBasePath;
|
|
17
17
|
private discoverProfileDirs;
|
|
18
18
|
extract(): Promise<ExtractedWebexToken | null>;
|
|
19
|
+
private isTokenFresher;
|
|
19
20
|
private scanViaClassicLevelCopy;
|
|
20
21
|
private copyAndScanLevelDB;
|
|
21
22
|
private scanRawFiles;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token-extractor.d.ts","sourceRoot":"","sources":["../../../../src/platforms/webex/token-extractor.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACrC;AA2DD,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,QAAQ,CAAoC;gBAExC,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EAAE,OAAO,CAAC,EAAE,MAAM;IAM9F,OAAO,CAAC,KAAK;IAIb,qBAAqB,IAAI,MAAM,EAAE;IAkBjC,OAAO,CAAC,kBAAkB;IAqB1B,OAAO,CAAC,mBAAmB;IA4BrB,OAAO,IAAI,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"token-extractor.d.ts","sourceRoot":"","sources":["../../../../src/platforms/webex/token-extractor.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACrC;AA2DD,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,QAAQ,CAAoC;gBAExC,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EAAE,OAAO,CAAC,EAAE,MAAM;IAM9F,OAAO,CAAC,KAAK;IAIb,qBAAqB,IAAI,MAAM,EAAE;IAkBjC,OAAO,CAAC,kBAAkB;IAqB1B,OAAO,CAAC,mBAAmB;IA4BrB,OAAO,IAAI,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAwCpD,OAAO,CAAC,cAAc;YAUR,uBAAuB;YA2BvB,kBAAkB;IAuChC,OAAO,CAAC,YAAY;IAqDpB,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,sBAAsB;IAe9B,OAAO,CAAC,sBAAsB;IAgC9B,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI;IAuC9D,OAAO,CAAC,+BAA+B;CA4BxC"}
|
|
@@ -126,20 +126,37 @@ export class WebexTokenExtractor {
|
|
|
126
126
|
this.debug('No browser profile directories found');
|
|
127
127
|
return null;
|
|
128
128
|
}
|
|
129
|
+
let best = null;
|
|
129
130
|
for (const leveldbDir of profileDirs) {
|
|
130
131
|
this.debug(`Scanning: ${leveldbDir}`);
|
|
131
132
|
const result = (await this.scanViaClassicLevelCopy(leveldbDir)) ?? this.scanRawFiles(leveldbDir);
|
|
132
133
|
if (result?.token) {
|
|
133
|
-
this.debug(`Found token in: ${leveldbDir}`);
|
|
134
134
|
const token = result.token;
|
|
135
135
|
if (result.encryptionKeys.size > 0) {
|
|
136
136
|
token.encryptionKeys = result.encryptionKeys;
|
|
137
137
|
}
|
|
138
|
-
|
|
138
|
+
this.debug(`Found token in: ${leveldbDir} (expires: ${token.expiresAt ? new Date(token.expiresAt).toISOString() : 'unknown'}, length: ${token.accessToken.length})`);
|
|
139
|
+
if (!best || this.isTokenFresher(token, best.token)) {
|
|
140
|
+
best = { token, source: leveldbDir };
|
|
141
|
+
}
|
|
139
142
|
}
|
|
140
143
|
}
|
|
141
|
-
|
|
142
|
-
|
|
144
|
+
if (!best) {
|
|
145
|
+
this.debug('No Webex tokens found in any browser profile');
|
|
146
|
+
return null;
|
|
147
|
+
}
|
|
148
|
+
this.debug(`Selected token from: ${best.source}`);
|
|
149
|
+
return best.token;
|
|
150
|
+
}
|
|
151
|
+
isTokenFresher(candidate, current) {
|
|
152
|
+
const candidateExpiry = candidate.expiresAt ?? 0;
|
|
153
|
+
const currentExpiry = current.expiresAt ?? 0;
|
|
154
|
+
if (candidateExpiry > 0 && currentExpiry > 0) {
|
|
155
|
+
return candidateExpiry > currentExpiry;
|
|
156
|
+
}
|
|
157
|
+
if (candidateExpiry > 0 && currentExpiry === 0)
|
|
158
|
+
return true;
|
|
159
|
+
return false;
|
|
143
160
|
}
|
|
144
161
|
async scanViaClassicLevelCopy(dbPath) {
|
|
145
162
|
const tempDir = join(tmpdir(), `webex-leveldb-${Date.now()}-${Math.random().toString(36).slice(2)}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token-extractor.js","sourceRoot":"","sources":["../../../../src/platforms/webex/token-extractor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"token-extractor.js","sourceRoot":"","sources":["../../../../src/platforms/webex/token-extractor.ts"],"names":[],"mappings":"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"}
|
package/e2e/webex.e2e.test.ts
CHANGED
|
@@ -117,7 +117,64 @@ describe('Webex E2E Tests', () => {
|
|
|
117
117
|
|
|
118
118
|
const result = await runCLI('webex', ['message', 'edit', sent!.id, WEBEX_TEST_SPACE_ID, `edited ${testId}`])
|
|
119
119
|
expect(result.exitCode).toBe(0)
|
|
120
|
+
|
|
121
|
+
const edited = parseJSON<{ id: string; text: string }>(result.stdout)
|
|
122
|
+
expect(edited?.id).toBeTruthy()
|
|
123
|
+
expect(edited?.text).toBe(`edited ${testId}`)
|
|
120
124
|
}, 30000)
|
|
125
|
+
|
|
126
|
+
// Regression for the silent-edit-failure bug: plain-text and markdown edits go
|
|
127
|
+
// through different `buildEncryptedObject` branches, and a second edit catches
|
|
128
|
+
// cases where the first edit corrupted the activity chain.
|
|
129
|
+
//
|
|
130
|
+
// Uses `editWithRetry` because the Webex internal conversation endpoint has
|
|
131
|
+
// a tighter 429 budget than the public REST gateway, and internal requests
|
|
132
|
+
// do not share the same auto-retry logic as public-API requests.
|
|
133
|
+
const editWithRetry = async (args: string[]) => {
|
|
134
|
+
for (let attempt = 0; attempt < 3; attempt++) {
|
|
135
|
+
const r = await runCLI('webex', args)
|
|
136
|
+
if (r.exitCode === 0 || !r.stderr.includes('HTTP 429')) return r
|
|
137
|
+
await waitForRateLimit(5000 * (attempt + 1))
|
|
138
|
+
}
|
|
139
|
+
return runCLI('webex', args)
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
test('message edit survives second edit and markdown edit (regression for silent failure)', async () => {
|
|
143
|
+
if (!webexAvailable) return
|
|
144
|
+
|
|
145
|
+
const testId = generateTestId()
|
|
146
|
+
const sendResult = await runCLI('webex', ['message', 'send', WEBEX_TEST_SPACE_ID, `regression ${testId}`])
|
|
147
|
+
expect(sendResult.exitCode).toBe(0)
|
|
148
|
+
|
|
149
|
+
const sent = parseJSON<{ id: string }>(sendResult.stdout)
|
|
150
|
+
expect(sent?.id).toBeTruthy()
|
|
151
|
+
if (sent?.id) testMessages.push(sent.id)
|
|
152
|
+
|
|
153
|
+
await waitForRateLimit(3000)
|
|
154
|
+
|
|
155
|
+
const first = await editWithRetry(['message', 'edit', sent!.id, WEBEX_TEST_SPACE_ID, `first edit ${testId}`])
|
|
156
|
+
expect(first.exitCode).toBe(0)
|
|
157
|
+
expect(first.stderr).not.toContain('edit_failed')
|
|
158
|
+
expect(first.stderr).not.toContain('Edit rejected')
|
|
159
|
+
|
|
160
|
+
await waitForRateLimit(3000)
|
|
161
|
+
|
|
162
|
+
const second = await editWithRetry([
|
|
163
|
+
'message',
|
|
164
|
+
'edit',
|
|
165
|
+
sent!.id,
|
|
166
|
+
WEBEX_TEST_SPACE_ID,
|
|
167
|
+
`**second edit** ${testId}`,
|
|
168
|
+
'--markdown',
|
|
169
|
+
])
|
|
170
|
+
expect(second.exitCode).toBe(0)
|
|
171
|
+
expect(second.stderr).not.toContain('edit_failed')
|
|
172
|
+
expect(second.stderr).not.toContain('Edit rejected')
|
|
173
|
+
|
|
174
|
+
const secondData = parseJSON<{ id: string; text: string }>(second.stdout)
|
|
175
|
+
expect(secondData?.id).toBeTruthy()
|
|
176
|
+
expect(secondData?.text).toContain(testId)
|
|
177
|
+
}, 60000)
|
|
121
178
|
})
|
|
122
179
|
|
|
123
180
|
describe('space', () => {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: agent-channeltalk
|
|
3
3
|
description: Interact with Channel Talk using extracted desktop app or browser credentials - read chats, send messages, search messages, manage groups
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.10.0
|
|
5
5
|
allowed-tools: Bash(agent-channeltalk:*)
|
|
6
6
|
metadata:
|
|
7
7
|
openclaw:
|
|
@@ -55,18 +55,18 @@ describe('TeamsClient', () => {
|
|
|
55
55
|
|
|
56
56
|
describe('login', () => {
|
|
57
57
|
test('requires token', async () => {
|
|
58
|
-
await expect(new TeamsClient().login({ token: '' })).rejects.toThrow(TeamsError)
|
|
59
|
-
await expect(new TeamsClient().login({ token: '' })).rejects.toThrow('Token is required')
|
|
58
|
+
await expect(new TeamsClient().login({ token: '', region: 'emea' })).rejects.toThrow(TeamsError)
|
|
59
|
+
await expect(new TeamsClient().login({ token: '', region: 'emea' })).rejects.toThrow('Token is required')
|
|
60
60
|
})
|
|
61
61
|
|
|
62
62
|
test('accepts valid token', async () => {
|
|
63
|
-
const client = await new TeamsClient().login({ token: 'test-token' })
|
|
63
|
+
const client = await new TeamsClient().login({ token: 'test-token', region: 'emea' })
|
|
64
64
|
expect(client).toBeInstanceOf(TeamsClient)
|
|
65
65
|
})
|
|
66
66
|
|
|
67
67
|
test('accepts token with expiry time', async () => {
|
|
68
68
|
const expiresAt = new Date(Date.now() + 3600000).toISOString()
|
|
69
|
-
const client = await new TeamsClient().login({ token: 'test-token', tokenExpiresAt: expiresAt })
|
|
69
|
+
const client = await new TeamsClient().login({ token: 'test-token', tokenExpiresAt: expiresAt, region: 'emea' })
|
|
70
70
|
expect(client).toBeInstanceOf(TeamsClient)
|
|
71
71
|
})
|
|
72
72
|
})
|
|
@@ -74,7 +74,11 @@ describe('TeamsClient', () => {
|
|
|
74
74
|
describe('token expiry', () => {
|
|
75
75
|
test('throws when token is expired', async () => {
|
|
76
76
|
const expiredAt = new Date(Date.now() - 1000).toISOString()
|
|
77
|
-
const client = await new TeamsClient().login({
|
|
77
|
+
const client = await new TeamsClient().login({
|
|
78
|
+
token: 'expired-token',
|
|
79
|
+
tokenExpiresAt: expiredAt,
|
|
80
|
+
region: 'emea',
|
|
81
|
+
})
|
|
78
82
|
|
|
79
83
|
await expect(client.testAuth()).rejects.toThrow(TeamsError)
|
|
80
84
|
await expect(client.testAuth()).rejects.toThrow('Token has expired')
|
|
@@ -87,7 +91,7 @@ describe('TeamsClient', () => {
|
|
|
87
91
|
locale: 'en-us',
|
|
88
92
|
})
|
|
89
93
|
|
|
90
|
-
const client = await new TeamsClient().login({ token: 'valid-token', tokenExpiresAt: expiresAt })
|
|
94
|
+
const client = await new TeamsClient().login({ token: 'valid-token', tokenExpiresAt: expiresAt, region: 'emea' })
|
|
91
95
|
const user = await client.testAuth()
|
|
92
96
|
|
|
93
97
|
expect(user.id).toBe('ME')
|
|
@@ -102,7 +106,7 @@ describe('TeamsClient', () => {
|
|
|
102
106
|
locale: 'en-us',
|
|
103
107
|
})
|
|
104
108
|
|
|
105
|
-
const client = await new TeamsClient().login({ token: 'test-token' })
|
|
109
|
+
const client = await new TeamsClient().login({ token: 'test-token', region: 'emea' })
|
|
106
110
|
const user = await client.testAuth()
|
|
107
111
|
|
|
108
112
|
expect(user.id).toBe('ME')
|
|
@@ -117,7 +121,7 @@ describe('TeamsClient', () => {
|
|
|
117
121
|
test('throws TeamsError on API error', async () => {
|
|
118
122
|
mockResponse({ message: 'Unauthorized', code: 'unauthorized' }, 401)
|
|
119
123
|
|
|
120
|
-
const client = await new TeamsClient().login({ token: 'bad-token' })
|
|
124
|
+
const client = await new TeamsClient().login({ token: 'bad-token', region: 'emea' })
|
|
121
125
|
await expect(client.testAuth()).rejects.toThrow(TeamsError)
|
|
122
126
|
})
|
|
123
127
|
})
|
|
@@ -153,7 +157,7 @@ describe('TeamsClient', () => {
|
|
|
153
157
|
],
|
|
154
158
|
})
|
|
155
159
|
|
|
156
|
-
const client = await new TeamsClient().login({ token: 'test-token' })
|
|
160
|
+
const client = await new TeamsClient().login({ token: 'test-token', region: 'emea' })
|
|
157
161
|
const teams = await client.listTeams()
|
|
158
162
|
|
|
159
163
|
expect(teams).toHaveLength(2)
|
|
@@ -169,7 +173,7 @@ describe('TeamsClient', () => {
|
|
|
169
173
|
test('returns team info', async () => {
|
|
170
174
|
mockResponse({ id: '111', name: 'Test Team', description: 'A test team' })
|
|
171
175
|
|
|
172
|
-
const client = await new TeamsClient().login({ token: 'test-token' })
|
|
176
|
+
const client = await new TeamsClient().login({ token: 'test-token', region: 'emea' })
|
|
173
177
|
const team = await client.getTeam('111')
|
|
174
178
|
|
|
175
179
|
expect(team.id).toBe('111')
|
|
@@ -185,7 +189,7 @@ describe('TeamsClient', () => {
|
|
|
185
189
|
{ id: 'ch2', team_id: '111', name: 'Random', type: 'standard' },
|
|
186
190
|
])
|
|
187
191
|
|
|
188
|
-
const client = await new TeamsClient().login({ token: 'test-token' })
|
|
192
|
+
const client = await new TeamsClient().login({ token: 'test-token', region: 'emea' })
|
|
189
193
|
const channels = await client.listChannels('111')
|
|
190
194
|
|
|
191
195
|
expect(channels).toHaveLength(2)
|
|
@@ -198,7 +202,7 @@ describe('TeamsClient', () => {
|
|
|
198
202
|
test('returns channel info', async () => {
|
|
199
203
|
mockResponse({ id: 'ch1', team_id: '111', name: 'General', type: 'standard' })
|
|
200
204
|
|
|
201
|
-
const client = await new TeamsClient().login({ token: 'test-token' })
|
|
205
|
+
const client = await new TeamsClient().login({ token: 'test-token', region: 'emea' })
|
|
202
206
|
const channel = await client.getChannel('111', 'ch1')
|
|
203
207
|
|
|
204
208
|
expect(channel.id).toBe('ch1')
|
|
@@ -217,7 +221,7 @@ describe('TeamsClient', () => {
|
|
|
217
221
|
timestamp: '2024-01-01T00:00:00.000Z',
|
|
218
222
|
})
|
|
219
223
|
|
|
220
|
-
const client = await new TeamsClient().login({ token: 'test-token' })
|
|
224
|
+
const client = await new TeamsClient().login({ token: 'test-token', region: 'emea' })
|
|
221
225
|
const message = await client.sendMessage('111', 'ch1', 'Hello world')
|
|
222
226
|
|
|
223
227
|
expect(message.content).toBe('Hello world')
|
|
@@ -239,7 +243,7 @@ describe('TeamsClient', () => {
|
|
|
239
243
|
},
|
|
240
244
|
])
|
|
241
245
|
|
|
242
|
-
const client = await new TeamsClient().login({ token: 'test-token' })
|
|
246
|
+
const client = await new TeamsClient().login({ token: 'test-token', region: 'emea' })
|
|
243
247
|
const messages = await client.getMessages('111', 'ch1', 50)
|
|
244
248
|
|
|
245
249
|
expect(messages).toHaveLength(1)
|
|
@@ -252,7 +256,7 @@ describe('TeamsClient', () => {
|
|
|
252
256
|
test('uses default limit of 50', async () => {
|
|
253
257
|
mockResponse([])
|
|
254
258
|
|
|
255
|
-
const client = await new TeamsClient().login({ token: 'test-token' })
|
|
259
|
+
const client = await new TeamsClient().login({ token: 'test-token', region: 'emea' })
|
|
256
260
|
await client.getMessages('111', 'ch1')
|
|
257
261
|
|
|
258
262
|
expect(fetchCalls[0].url).toBe(
|
|
@@ -271,7 +275,7 @@ describe('TeamsClient', () => {
|
|
|
271
275
|
timestamp: '2024-01-01T00:00:00.000Z',
|
|
272
276
|
})
|
|
273
277
|
|
|
274
|
-
const client = await new TeamsClient().login({ token: 'test-token' })
|
|
278
|
+
const client = await new TeamsClient().login({ token: 'test-token', region: 'emea' })
|
|
275
279
|
const message = await client.getMessage('111', 'ch1', 'msg1')
|
|
276
280
|
|
|
277
281
|
expect(message.id).toBe('msg1')
|
|
@@ -285,7 +289,7 @@ describe('TeamsClient', () => {
|
|
|
285
289
|
test('deletes message', async () => {
|
|
286
290
|
mockResponse(null, 204)
|
|
287
291
|
|
|
288
|
-
const client = await new TeamsClient().login({ token: 'test-token' })
|
|
292
|
+
const client = await new TeamsClient().login({ token: 'test-token', region: 'emea' })
|
|
289
293
|
await client.deleteMessage('111', 'ch1', 'msg1')
|
|
290
294
|
|
|
291
295
|
expect(fetchCalls[0].url).toBe(
|
|
@@ -299,7 +303,7 @@ describe('TeamsClient', () => {
|
|
|
299
303
|
test('adds reaction to message', async () => {
|
|
300
304
|
mockResponse(null, 204)
|
|
301
305
|
|
|
302
|
-
const client = await new TeamsClient().login({ token: 'test-token' })
|
|
306
|
+
const client = await new TeamsClient().login({ token: 'test-token', region: 'emea' })
|
|
303
307
|
await client.addReaction('111', 'ch1', 'msg1', 'like')
|
|
304
308
|
|
|
305
309
|
expect(fetchCalls[0].url).toBe(
|
|
@@ -314,7 +318,7 @@ describe('TeamsClient', () => {
|
|
|
314
318
|
test('removes reaction from message', async () => {
|
|
315
319
|
mockResponse(null, 204)
|
|
316
320
|
|
|
317
|
-
const client = await new TeamsClient().login({ token: 'test-token' })
|
|
321
|
+
const client = await new TeamsClient().login({ token: 'test-token', region: 'emea' })
|
|
318
322
|
await client.removeReaction('111', 'ch1', 'msg1', 'like')
|
|
319
323
|
|
|
320
324
|
expect(fetchCalls[0].url).toBe(
|
|
@@ -331,7 +335,7 @@ describe('TeamsClient', () => {
|
|
|
331
335
|
{ id: 'u2', displayName: 'User 2', email: 'user2@example.com' },
|
|
332
336
|
])
|
|
333
337
|
|
|
334
|
-
const client = await new TeamsClient().login({ token: 'test-token' })
|
|
338
|
+
const client = await new TeamsClient().login({ token: 'test-token', region: 'emea' })
|
|
335
339
|
const users = await client.listUsers('111')
|
|
336
340
|
|
|
337
341
|
expect(users).toHaveLength(2)
|
|
@@ -344,7 +348,7 @@ describe('TeamsClient', () => {
|
|
|
344
348
|
test('returns user info', async () => {
|
|
345
349
|
mockResponse({ id: 'u1', displayName: 'Test User', email: 'test@example.com' })
|
|
346
350
|
|
|
347
|
-
const client = await new TeamsClient().login({ token: 'test-token' })
|
|
351
|
+
const client = await new TeamsClient().login({ token: 'test-token', region: 'emea' })
|
|
348
352
|
const user = await client.getUser('u1')
|
|
349
353
|
|
|
350
354
|
expect(user.id).toBe('u1')
|
|
@@ -365,7 +369,7 @@ describe('TeamsClient', () => {
|
|
|
365
369
|
url: 'https://teams.microsoft.com/files/file1',
|
|
366
370
|
})
|
|
367
371
|
|
|
368
|
-
const client = await new TeamsClient().login({ token: 'test-token' })
|
|
372
|
+
const client = await new TeamsClient().login({ token: 'test-token', region: 'emea' })
|
|
369
373
|
const file = await client.uploadFile('111', 'ch1', tempFile)
|
|
370
374
|
|
|
371
375
|
expect(file.name).toBe('test-teams-upload.txt')
|
|
@@ -381,7 +385,7 @@ describe('TeamsClient', () => {
|
|
|
381
385
|
{ id: 'file2', name: 'image.png', size: 2048, url: 'https://example.com/image.png' },
|
|
382
386
|
])
|
|
383
387
|
|
|
384
|
-
const client = await new TeamsClient().login({ token: 'test-token' })
|
|
388
|
+
const client = await new TeamsClient().login({ token: 'test-token', region: 'emea' })
|
|
385
389
|
const files = await client.listFiles('111', 'ch1')
|
|
386
390
|
|
|
387
391
|
expect(files).toHaveLength(2)
|
|
@@ -401,7 +405,7 @@ describe('TeamsClient', () => {
|
|
|
401
405
|
'X-RateLimit-Reset': String(Date.now() / 1000 + 60),
|
|
402
406
|
})
|
|
403
407
|
|
|
404
|
-
const client = await new TeamsClient().login({ token: 'test-token' })
|
|
408
|
+
const client = await new TeamsClient().login({ token: 'test-token', region: 'emea' })
|
|
405
409
|
await client.testAuth()
|
|
406
410
|
|
|
407
411
|
const startTime = Date.now()
|
|
@@ -416,7 +420,7 @@ describe('TeamsClient', () => {
|
|
|
416
420
|
mockResponse({ message: 'Rate limited' }, 429, { 'Retry-After': '0.1' })
|
|
417
421
|
mockResponse({ userDetails: JSON.stringify({ name: 'User' }), locale: 'en-us' })
|
|
418
422
|
|
|
419
|
-
const client = await new TeamsClient().login({ token: 'test-token' })
|
|
423
|
+
const client = await new TeamsClient().login({ token: 'test-token', region: 'emea' })
|
|
420
424
|
const user = await client.testAuth()
|
|
421
425
|
|
|
422
426
|
expect(user.id).toBe('ME')
|
|
@@ -428,7 +432,7 @@ describe('TeamsClient', () => {
|
|
|
428
432
|
mockResponse({ message: 'Rate limited' }, 429, { 'Retry-After': '0.01' })
|
|
429
433
|
}
|
|
430
434
|
|
|
431
|
-
const client = await new TeamsClient().login({ token: 'test-token' })
|
|
435
|
+
const client = await new TeamsClient().login({ token: 'test-token', region: 'emea' })
|
|
432
436
|
await expect(client.testAuth()).rejects.toThrow(TeamsError)
|
|
433
437
|
expect(fetchCalls.length).toBeLessThanOrEqual(4)
|
|
434
438
|
})
|
|
@@ -439,7 +443,7 @@ describe('TeamsClient', () => {
|
|
|
439
443
|
mockResponse({ message: 'Internal Server Error' }, 500)
|
|
440
444
|
mockResponse({ userDetails: JSON.stringify({ name: 'User' }), locale: 'en-us' })
|
|
441
445
|
|
|
442
|
-
const client = await new TeamsClient().login({ token: 'test-token' })
|
|
446
|
+
const client = await new TeamsClient().login({ token: 'test-token', region: 'emea' })
|
|
443
447
|
const user = await client.testAuth()
|
|
444
448
|
|
|
445
449
|
expect(user.id).toBe('ME')
|
|
@@ -449,7 +453,7 @@ describe('TeamsClient', () => {
|
|
|
449
453
|
test('does not retry on 4xx client errors (except 429)', async () => {
|
|
450
454
|
mockResponse({ message: 'Not Found' }, 404)
|
|
451
455
|
|
|
452
|
-
const client = await new TeamsClient().login({ token: 'test-token' })
|
|
456
|
+
const client = await new TeamsClient().login({ token: 'test-token', region: 'emea' })
|
|
453
457
|
await expect(client.testAuth()).rejects.toThrow(TeamsError)
|
|
454
458
|
expect(fetchCalls.length).toBe(1)
|
|
455
459
|
})
|
|
@@ -459,7 +463,7 @@ describe('TeamsClient', () => {
|
|
|
459
463
|
mockResponse({ message: 'Error' }, 500)
|
|
460
464
|
mockResponse({ userDetails: JSON.stringify({ name: 'User' }), locale: 'en-us' })
|
|
461
465
|
|
|
462
|
-
const client = await new TeamsClient().login({ token: 'test-token' })
|
|
466
|
+
const client = await new TeamsClient().login({ token: 'test-token', region: 'emea' })
|
|
463
467
|
const startTime = Date.now()
|
|
464
468
|
await client.testAuth()
|
|
465
469
|
const elapsed = Date.now() - startTime
|
|
@@ -474,7 +478,7 @@ describe('TeamsClient', () => {
|
|
|
474
478
|
mockResponse([])
|
|
475
479
|
mockResponse([])
|
|
476
480
|
|
|
477
|
-
const client = await new TeamsClient().login({ token: 'test-token' })
|
|
481
|
+
const client = await new TeamsClient().login({ token: 'test-token', region: 'emea' })
|
|
478
482
|
await client.getMessages('team1', 'ch1')
|
|
479
483
|
await client.getMessages('team2', 'ch2')
|
|
480
484
|
|