@symerian/symi 2.1.6 → 2.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{audio-preflight-5NsCxagO.js → audio-preflight-BZIRAXlv.js} +4 -4
- package/dist/{audio-preflight-BnwAAlLw.js → audio-preflight-IRs02MgH.js} +4 -4
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +6 -6
- package/dist/bundled/session-memory/handler.js +6 -6
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{chrome-DM65TRMk.js → chrome-791kNCCB.js} +7 -7
- package/dist/{chrome-DPHgzMPu.js → chrome-CqribT6Z.js} +7 -7
- package/dist/{deliver-Cgg1qwKP.js → deliver-CrlXl9KD.js} +1 -1
- package/dist/{deliver-EKA6SdgU.js → deliver-vWWI-94q.js} +1 -1
- package/dist/extensionAPI.js +6 -6
- package/dist/{image-EKTeO3aa.js → image-CV4FUL4M.js} +1 -1
- package/dist/{image-xvVpGzK5.js → image-ycxQmhff.js} +1 -1
- package/dist/llm-slug-generator.js +6 -6
- package/dist/{pi-embedded-DuWfOlkO.js → pi-embedded-AKhKHxb6.js} +16 -16
- package/dist/{pi-embedded-02ObvVIR.js → pi-embedded-DguKAKpR.js} +16 -16
- package/dist/{pi-embedded-helpers-Cd124krQ.js → pi-embedded-helpers-DoTustDz.js} +4 -4
- package/dist/{pi-embedded-helpers-B6ugLqkI.js → pi-embedded-helpers-SPJVuQfB.js} +4 -4
- package/dist/plugin-sdk/{accounts-BtaOa4z_.js → accounts-BToL3HlP.js} +1 -1
- package/dist/plugin-sdk/{accounts-Ddm33hQm.js → accounts-D9zGZU5t.js} +3 -3
- package/dist/plugin-sdk/{accounts-s-AdhXVR.js → accounts-Dtszw3Zn.js} +1 -1
- package/dist/plugin-sdk/{active-listener-BXYeALs0.js → active-listener-bEk__wbB.js} +1 -1
- package/dist/plugin-sdk/{agent-scope-CYYpcO9W.js → agent-scope-C3gMMKCU.js} +2 -2
- package/dist/plugin-sdk/{api-key-rotation-BNN7DLRF.js → api-key-rotation-B7wX2cS9.js} +1 -1
- package/dist/plugin-sdk/{audio-preflight-Cx5FPiJc.js → audio-preflight-ni0fpVp8.js} +24 -24
- package/dist/plugin-sdk/{bindings-C7hRtgYW.js → bindings-BbwoUGPx.js} +2 -2
- package/dist/plugin-sdk/{channel-activity-DoC1xtDu.js → channel-activity-Ji7f0gqq.js} +1 -1
- package/dist/plugin-sdk/{channel-web-Bz7z_PrR.js → channel-web-DLpcsfAm.js} +22 -22
- package/dist/plugin-sdk/{chrome-BMG9BEuT.js → chrome-B3sE4bXC.js} +3 -3
- package/dist/plugin-sdk/{chunk-Dw2XBYXv.js → chunk-jvk9axTQ.js} +1 -1
- package/dist/plugin-sdk/{command-format-GKSevep4.js → command-format-DSdvQ_M5.js} +1 -1
- package/dist/plugin-sdk/{commands-registry-B6QKgH1z.js → commands-registry-DFVoW5Za.js} +4 -4
- package/dist/plugin-sdk/{config-ChoJh2v6.js → config-C8bdNl-t.js} +9 -9
- package/dist/plugin-sdk/{deliver-PHupXW27.js → deliver-DupqKEgT.js} +10 -10
- package/dist/plugin-sdk/{diagnostic-05pm5Rxi.js → diagnostic-mFf4i4G9.js} +1 -1
- package/dist/plugin-sdk/{image-ops-BlQR__MN.js → image-ops-Bnp6LXEx.js} +1 -1
- package/dist/plugin-sdk/{image-CZeY-Q2T.js → image-t0--fcO_.js} +4 -4
- package/dist/plugin-sdk/index.js +53 -53
- package/dist/plugin-sdk/{ir-BJ6BHE5b.js → ir-Fb3qpcis.js} +4 -4
- package/dist/plugin-sdk/{local-roots-BHLNSI8U.js → local-roots-Ckk1QfzI.js} +3 -3
- package/dist/plugin-sdk/{login-WrHy4q1W.js → login-YiSLGJpw.js} +7 -7
- package/dist/plugin-sdk/{login-qr-D30S2gk7.js → login-qr-Ct3iRCTA.js} +9 -9
- package/dist/plugin-sdk/{manager-Cn2S7u-y.js → manager-PXN_BUWT.js} +8 -8
- package/dist/plugin-sdk/{manifest-registry-CPnHl_K3.js → manifest-registry-B3ugY9-f.js} +1 -1
- package/dist/plugin-sdk/{markdown-tables-BoYFajMu.js → markdown-tables-Dfaqilz6.js} +1 -1
- package/dist/plugin-sdk/{message-channel-COTAJzHd.js → message-channel-BdI5Ra9S.js} +1 -1
- package/dist/plugin-sdk/{model-selection-CPEL3Uc_.js → model-selection-UQwTqGSw.js} +4 -4
- package/dist/plugin-sdk/{outbound-ps5sAOfw.js → outbound-BaAisH4u.js} +7 -7
- package/dist/plugin-sdk/{outbound-attachment-CnslKL38.js → outbound-attachment-DnVQfTG2.js} +2 -2
- package/dist/plugin-sdk/{pi-auth-json-D4gyc_V3.js → pi-auth-json-DAttpBPg.js} +5 -5
- package/dist/plugin-sdk/{pi-embedded-helpers-CU4D77Op.js → pi-embedded-helpers-CHlXbJGj.js} +17 -17
- package/dist/plugin-sdk/{plugins-BNByVCIH.js → plugins-BbAvhC25.js} +4 -4
- package/dist/plugin-sdk/{pw-ai-81tOC-Ch.js → pw-ai-JO8xac-v.js} +8 -8
- package/dist/plugin-sdk/{qmd-manager-CH0XbIHf.js → qmd-manager-mjKcdwVr.js} +4 -4
- package/dist/plugin-sdk/{registry-D0xTnUWt.js → registry--_pGht6S.js} +2 -2
- package/dist/plugin-sdk/{replies-zmY9bbot.js → replies-CVSgwFjl.js} +3 -3
- package/dist/plugin-sdk/{reply-BSikbH6_.js → reply-GcVMmckw.js} +78 -78
- package/dist/plugin-sdk/{reply-prefix-uxfMZW4p.js → reply-prefix-BHuV5t70.js} +1 -1
- package/dist/plugin-sdk/{resolve-outbound-target-BiyAyTWz.js → resolve-outbound-target-BkCUbYGV.js} +2 -2
- package/dist/plugin-sdk/{resolve-route-B3CCBumQ.js → resolve-route-D3JH_D2N.js} +3 -3
- package/dist/plugin-sdk/{retry-CwQ_iIj8.js → retry-ilSJqnz9.js} +1 -1
- package/dist/plugin-sdk/{runner-Co_eR7xp.js → runner-Dm_yIGe6.js} +9 -9
- package/dist/plugin-sdk/{send-BNZVvZHE.js → send-BEeCC5ku.js} +6 -6
- package/dist/plugin-sdk/{send-6DwkdgEF.js → send-C9rT2n2M.js} +7 -7
- package/dist/plugin-sdk/{send-D6BxZPP0.js → send-DNkOLgrC.js} +6 -6
- package/dist/plugin-sdk/{send-D8vgGF3T.js → send-DWr9Drgp.js} +10 -10
- package/dist/plugin-sdk/{send-Dw4gTEN6.js → send-mQr5eXnb.js} +10 -10
- package/dist/plugin-sdk/{session-BTN5wyhB.js → session-CQ5dJOsX.js} +4 -4
- package/dist/plugin-sdk/{skill-commands-BUVE0jBL.js → skill-commands-27tIhSRP.js} +5 -5
- package/dist/plugin-sdk/{skills-_yTP47Cd.js → skills-B1GeRYlu.js} +7 -7
- package/dist/plugin-sdk/{sqlite-CxAR5ttJ.js → sqlite-Cq_7Cg4E.js} +1 -1
- package/dist/plugin-sdk/{store-BdrNabcU.js → store-Do3t33-c.js} +2 -2
- package/dist/plugin-sdk/{subsystem-B2uDN3TV.js → subsystem-Coz2AgU8.js} +1 -1
- package/dist/plugin-sdk/{tables-DNwXwNFa.js → tables-DR0NmBeH.js} +1 -1
- package/dist/plugin-sdk/{target-errors-Paro1BjP.js → target-errors-B7YyMnIi.js} +2 -2
- package/dist/plugin-sdk/{thinking-CXqf7WTe.js → thinking-DCNUIAHY.js} +5 -5
- package/dist/plugin-sdk/{tokens-bC3UVmVH.js → tokens-CWMflosr.js} +1 -1
- package/dist/plugin-sdk/{tool-images-HJ2sfZDV.js → tool-images-D7Lno-TE.js} +2 -2
- package/dist/plugin-sdk/{tool-loop-detection-BVA6fax-.js → tool-loop-detection-edmW8ZiF.js} +2 -2
- package/dist/plugin-sdk/web-CJWupzDH.js +65 -0
- package/dist/plugin-sdk/{whatsapp-actions-DU3CTVCg.js → whatsapp-actions-ZlyPpuJN.js} +21 -21
- package/dist/{pw-ai-CL_YRdbc.js → pw-ai-DIVguI36.js} +1 -1
- package/dist/{pw-ai-CD2xT-vT.js → pw-ai-DnN0T7wd.js} +1 -1
- package/dist/{runner-CCo2QuJE.js → runner-Cw5KZrjx.js} +1 -1
- package/dist/{runner-BlTur7kC.js → runner-Cx1wJumq.js} +1 -1
- package/dist/{web-BFa88W3e.js → web-Kz-ZuUjq.js} +6 -6
- package/dist/{web-CMl4g_Bl.js → web-cSkprx6P.js} +6 -6
- package/extensions/outlook/index.ts +105 -1
- package/extensions/outlook/src/auth.ts +91 -0
- package/package.json +1 -1
- package/dist/plugin-sdk/web-eAue9zIL.js +0 -65
|
@@ -254,6 +254,97 @@ export async function refreshAccessToken(refreshToken: string): Promise<{
|
|
|
254
254
|
return { access, refresh, expires };
|
|
255
255
|
}
|
|
256
256
|
|
|
257
|
+
// =========================================================================
|
|
258
|
+
// Device Code Flow — for chat-based login (no browser on this device)
|
|
259
|
+
// =========================================================================
|
|
260
|
+
|
|
261
|
+
const DEVICE_CODE_URL = "https://login.microsoftonline.com/common/oauth2/v2.0/devicecode";
|
|
262
|
+
|
|
263
|
+
export type DeviceCodeResponse = {
|
|
264
|
+
device_code: string;
|
|
265
|
+
user_code: string;
|
|
266
|
+
verification_uri: string;
|
|
267
|
+
expires_in: number;
|
|
268
|
+
interval: number;
|
|
269
|
+
};
|
|
270
|
+
|
|
271
|
+
export async function requestDeviceCode(): Promise<DeviceCodeResponse> {
|
|
272
|
+
const clientId = resolveClientId();
|
|
273
|
+
const response = await fetch(DEVICE_CODE_URL, {
|
|
274
|
+
method: "POST",
|
|
275
|
+
headers: { "Content-Type": "application/x-www-form-urlencoded" },
|
|
276
|
+
body: new URLSearchParams({
|
|
277
|
+
client_id: clientId,
|
|
278
|
+
scope: SCOPES.join(" "),
|
|
279
|
+
}),
|
|
280
|
+
});
|
|
281
|
+
|
|
282
|
+
if (!response.ok) {
|
|
283
|
+
const text = await response.text();
|
|
284
|
+
throw new Error(`Device code request failed: ${text}`);
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
return (await response.json()) as DeviceCodeResponse;
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
export async function pollForDeviceCodeToken(params: {
|
|
291
|
+
deviceCode: string;
|
|
292
|
+
intervalMs: number;
|
|
293
|
+
expiresInMs: number;
|
|
294
|
+
}): Promise<{ access: string; refresh: string; expires: number }> {
|
|
295
|
+
const clientId = resolveClientId();
|
|
296
|
+
const deadline = Date.now() + params.expiresInMs;
|
|
297
|
+
|
|
298
|
+
while (Date.now() < deadline) {
|
|
299
|
+
await new Promise((resolve) => setTimeout(resolve, params.intervalMs));
|
|
300
|
+
|
|
301
|
+
const response = await fetch(TOKEN_URL, {
|
|
302
|
+
method: "POST",
|
|
303
|
+
headers: { "Content-Type": "application/x-www-form-urlencoded" },
|
|
304
|
+
body: new URLSearchParams({
|
|
305
|
+
client_id: clientId,
|
|
306
|
+
grant_type: "urn:ietf:params:oauth:grant-type:device_code",
|
|
307
|
+
device_code: params.deviceCode,
|
|
308
|
+
}),
|
|
309
|
+
});
|
|
310
|
+
|
|
311
|
+
const data = (await response.json()) as {
|
|
312
|
+
access_token?: string;
|
|
313
|
+
refresh_token?: string;
|
|
314
|
+
expires_in?: number;
|
|
315
|
+
error?: string;
|
|
316
|
+
};
|
|
317
|
+
|
|
318
|
+
if (data.error === "authorization_pending") {
|
|
319
|
+
continue;
|
|
320
|
+
}
|
|
321
|
+
if (data.error === "slow_down") {
|
|
322
|
+
// Back off by adding 5 seconds
|
|
323
|
+
params.intervalMs += 5000;
|
|
324
|
+
continue;
|
|
325
|
+
}
|
|
326
|
+
if (data.error) {
|
|
327
|
+
throw new Error(`Device code auth failed: ${data.error}`);
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
const access = data.access_token?.trim();
|
|
331
|
+
const refresh = data.refresh_token?.trim();
|
|
332
|
+
const expiresIn = data.expires_in ?? 0;
|
|
333
|
+
|
|
334
|
+
if (!access) {
|
|
335
|
+
throw new Error("Token exchange returned no access_token");
|
|
336
|
+
}
|
|
337
|
+
if (!refresh) {
|
|
338
|
+
throw new Error("Token exchange returned no refresh_token");
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
const expires = Date.now() + expiresIn * 1000 - 5 * 60 * 1000;
|
|
342
|
+
return { access, refresh, expires };
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
throw new Error("Device code expired. Please try again.");
|
|
346
|
+
}
|
|
347
|
+
|
|
257
348
|
export async function fetchUserProfile(accessToken: string): Promise<{
|
|
258
349
|
email?: string;
|
|
259
350
|
displayName?: string;
|
package/package.json
CHANGED
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import { a as WA_WEB_AUTH_DIR, g as webAuthExists, s as logWebSelfId, u as pickWebChannel } from "./accounts-Ddm33hQm.js";
|
|
2
|
-
import "./reply-BSikbH6_.js";
|
|
3
|
-
import "./paths-DR2yt_mP.js";
|
|
4
|
-
import "./github-copilot-token-D9X2phUj.js";
|
|
5
|
-
import "./plugins-BNByVCIH.js";
|
|
6
|
-
import "./fetch-CUNoPTKm.js";
|
|
7
|
-
import "./registry-D0xTnUWt.js";
|
|
8
|
-
import "./retry-CwQ_iIj8.js";
|
|
9
|
-
import "./send-Dw4gTEN6.js";
|
|
10
|
-
import "./config-ChoJh2v6.js";
|
|
11
|
-
import "./subsystem-B2uDN3TV.js";
|
|
12
|
-
import "./command-format-GKSevep4.js";
|
|
13
|
-
import "./model-selection-CPEL3Uc_.js";
|
|
14
|
-
import "./agent-scope-CYYpcO9W.js";
|
|
15
|
-
import "./manifest-registry-CPnHl_K3.js";
|
|
16
|
-
import "./redact-DPnDWsnT.js";
|
|
17
|
-
import "./errors-Bv8oZiTO.js";
|
|
18
|
-
import "./channel-activity-DoC1xtDu.js";
|
|
19
|
-
import "./image-ops-BlQR__MN.js";
|
|
20
|
-
import "./ssrf-DKZ8eBrk.js";
|
|
21
|
-
import "./local-roots-BHLNSI8U.js";
|
|
22
|
-
import "./ir-BJ6BHE5b.js";
|
|
23
|
-
import "./chunk-Dw2XBYXv.js";
|
|
24
|
-
import "./message-channel-COTAJzHd.js";
|
|
25
|
-
import "./bindings-C7hRtgYW.js";
|
|
26
|
-
import "./markdown-tables-BoYFajMu.js";
|
|
27
|
-
import "./render-BiJZ5W4Z.js";
|
|
28
|
-
import "./tables-DNwXwNFa.js";
|
|
29
|
-
import "./send-6DwkdgEF.js";
|
|
30
|
-
import "./tool-images-HJ2sfZDV.js";
|
|
31
|
-
import "./target-errors-Paro1BjP.js";
|
|
32
|
-
import "./send-BNZVvZHE.js";
|
|
33
|
-
import "./send-D8vgGF3T.js";
|
|
34
|
-
import "./runner-Co_eR7xp.js";
|
|
35
|
-
import "./reply-prefix-uxfMZW4p.js";
|
|
36
|
-
import "./tokens-bC3UVmVH.js";
|
|
37
|
-
import "./skill-commands-BUVE0jBL.js";
|
|
38
|
-
import "./skills-_yTP47Cd.js";
|
|
39
|
-
import "./chrome-BMG9BEuT.js";
|
|
40
|
-
import "./thinking-CXqf7WTe.js";
|
|
41
|
-
import "./accounts-s-AdhXVR.js";
|
|
42
|
-
import "./accounts-BtaOa4z_.js";
|
|
43
|
-
import "./deliver-PHupXW27.js";
|
|
44
|
-
import "./pi-embedded-helpers-CU4D77Op.js";
|
|
45
|
-
import "./paths-A0xdf3yk.js";
|
|
46
|
-
import "./diagnostic-05pm5Rxi.js";
|
|
47
|
-
import "./store-BdrNabcU.js";
|
|
48
|
-
import { n as monitorWebInbox, t as monitorWebChannel } from "./channel-web-Bz7z_PrR.js";
|
|
49
|
-
import "./image-CZeY-Q2T.js";
|
|
50
|
-
import "./pi-model-discovery-LbcEa65a.js";
|
|
51
|
-
import "./api-key-rotation-BNN7DLRF.js";
|
|
52
|
-
import "./sqlite-CxAR5ttJ.js";
|
|
53
|
-
import "./diagnostic-session-state-Wd5tNeQG.js";
|
|
54
|
-
import "./manager-Cn2S7u-y.js";
|
|
55
|
-
import "./commands-registry-B6QKgH1z.js";
|
|
56
|
-
import "./send-D6BxZPP0.js";
|
|
57
|
-
import "./proxy-MquBDehr.js";
|
|
58
|
-
import "./resolve-route-B3CCBumQ.js";
|
|
59
|
-
import "./replies-zmY9bbot.js";
|
|
60
|
-
import "./outbound-attachment-CnslKL38.js";
|
|
61
|
-
import { n as sendMessageWhatsApp } from "./outbound-ps5sAOfw.js";
|
|
62
|
-
import { i as waitForWaConnection, t as createWaSocket } from "./session-BTN5wyhB.js";
|
|
63
|
-
import { t as loginWeb } from "./login-WrHy4q1W.js";
|
|
64
|
-
|
|
65
|
-
export { WA_WEB_AUTH_DIR, createWaSocket, logWebSelfId, loginWeb, monitorWebChannel, monitorWebInbox, pickWebChannel, sendMessageWhatsApp, waitForWaConnection, webAuthExists };
|