sliccy 5.73.4 → 5.74.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/README.md +1 -0
- package/dist/node-server/_shared/index.d.ts +2 -0
- package/dist/node-server/_shared/index.d.ts.map +1 -1
- package/dist/node-server/_shared/index.js +2 -0
- package/dist/node-server/_shared/index.js.map +1 -1
- package/dist/node-server/_shared/secrets-pipeline.d.ts +22 -0
- package/dist/node-server/_shared/secrets-pipeline.d.ts.map +1 -1
- package/dist/node-server/_shared/secrets-pipeline.js +50 -0
- package/dist/node-server/_shared/secrets-pipeline.js.map +1 -1
- package/dist/node-server/_shared/transcript-export.d.ts +161 -0
- package/dist/node-server/_shared/transcript-export.d.ts.map +1 -0
- package/dist/node-server/_shared/transcript-export.js +804 -0
- package/dist/node-server/_shared/transcript-export.js.map +1 -0
- package/dist/node-server/_shared/transcript-redaction.d.ts +25 -0
- package/dist/node-server/_shared/transcript-redaction.d.ts.map +1 -0
- package/dist/node-server/_shared/transcript-redaction.js +107 -0
- package/dist/node-server/_shared/transcript-redaction.js.map +1 -0
- package/dist/node-server/_shared/tray-sync-protocol.d.ts +56 -1
- package/dist/node-server/_shared/tray-sync-protocol.d.ts.map +1 -1
- package/dist/node-server/_shared/tray-sync-protocol.js +1 -1
- package/dist/node-server/_shared/tray-sync-protocol.js.map +1 -1
- package/dist/node-server/routes/secrets.js +52 -22
- package/dist/ui/assets/{account-store-DwSzwLW8.js → account-store-CJqBAm1f.js} +3 -3
- package/dist/ui/assets/{account-store-DzwZMcTg.js → account-store-CxSwSaS8.js} +2 -2
- package/dist/ui/assets/{adobe-h2gWq2z2.js → adobe-j3AP8U12.js} +2 -2
- package/dist/ui/assets/{adobe-ChyPg00A.js → adobe-lvezht3s.js} +1 -1
- package/dist/ui/assets/{apps-C86xnKLs.js → apps-D8IGKFP6.js} +1 -1
- package/dist/ui/assets/{azure-openai-DMNa-Eup.js → azure-openai-BD60xdeq.js} +1 -1
- package/dist/ui/assets/{azure-openai-CjkdyGG4.js → azure-openai-DyqeeHYG.js} +1 -1
- package/dist/ui/assets/{bridge-launch-params-jegYRGJ6.js → bridge-launch-params-QY3l_LbM.js} +1 -1
- package/dist/ui/assets/{cdp-7evcrxxP.js → cdp-D9eDDEuA.js} +1 -1
- package/dist/ui/assets/{cerebras-B0gvSD27.js → cerebras-B0L70LLb.js} +1 -1
- package/dist/ui/assets/{cerebras-CvSC_Q2O.js → cerebras-Di6jTcHx.js} +1 -1
- package/dist/ui/assets/{client-BliYDaDA.js → client-BxYB_ioq.js} +1 -1
- package/dist/ui/assets/{composer-speech-BSy_wbJC.js → composer-speech-FeteaFpi.js} +1 -1
- package/dist/ui/assets/{connect-surface-3UvT0SF3.js → connect-surface-CAwJVqDK.js} +1 -1
- package/dist/ui/assets/{discovery-preference-CUhsI-AU.js → discovery-preference-C0L_79z7.js} +1 -1
- package/dist/ui/assets/{ensure-speech-assets-8cWrra0n.js → ensure-speech-assets-DGq5bX3t.js} +1 -1
- package/dist/ui/assets/export-provider-B6K_eHX_.js +1 -0
- package/dist/ui/assets/export-spool-DCxGPg43.js +1 -0
- package/dist/ui/assets/{follower-navigate-watcher-UN0jo7Ge.js → follower-navigate-watcher-DgusZOpY.js} +1 -1
- package/dist/ui/assets/{fs-DC3MEAD4.js → fs-BI3-y-dt.js} +2 -2
- package/dist/ui/assets/{fs-DgMOH-Zj.js → fs-DUi6CyVs.js} +1 -1
- package/dist/ui/assets/{github-HKW-k0Oh.js → github-CsLyOpIY.js} +1 -1
- package/dist/ui/assets/{github-mH266f8L.js → github-DdtaZi7X.js} +2 -2
- package/dist/ui/assets/{github-copilot-CBv0T4_S.js → github-copilot-B3YCnypU.js} +1 -1
- package/dist/ui/assets/{github-copilot-C7lsRXxS.js → github-copilot-CLH7n3QY.js} +1 -1
- package/dist/ui/assets/{handoff-link-CfgH86mb.js → handoff-link-Dmaaww5x.js} +1 -1
- package/dist/ui/assets/{hear-B5lURJtR.js → hear-CRBq5mEX.js} +1 -1
- package/dist/ui/assets/{hear-DI5vlKdf.js → hear-v5qXSZw8.js} +1 -1
- package/dist/ui/assets/{kernel-worker-CHs5yDJo.js → kernel-worker-BL7ADt6y.js} +727 -597
- package/dist/ui/assets/{kokoro-engine-DX7VicqD.js → kokoro-engine-CogHLlSk.js} +1 -1
- package/dist/ui/assets/{lick-manager-Ct3WOtut.js → lick-manager-wU1FKkH8.js} +1 -1
- package/dist/ui/assets/{lick-ws-bridge-D5zKuunw.js → lick-ws-bridge-CFKIh9aE.js} +1 -1
- package/dist/ui/assets/lick-ws-bridge-yMljNHwr.js +1 -0
- package/dist/ui/assets/{local-llm-DcKgaorK.js → local-llm-BdGGSRtU.js} +1 -1
- package/dist/ui/assets/{local-llm-DpBDM1Dm.js → local-llm-Cys4QAHg.js} +1 -1
- package/dist/ui/assets/main-BZzNeGKC.js +22 -0
- package/dist/ui/assets/main-cherry-D_hgi0by.js +1 -0
- package/dist/ui/assets/{mount-BHqxxbwU.js → mount-Dk-I5R7K.js} +1 -1
- package/dist/ui/assets/{mount-BRSg0FIY.js → mount-GBkZgZPI.js} +2 -2
- package/dist/ui/assets/{mount-bridge-client-DHGevTQu.js → mount-bridge-client-BWPRzAQ5.js} +1 -1
- package/dist/ui/assets/{mount-recovery-Beig7gzz.js → mount-recovery-DO04oIYN.js} +1 -1
- package/dist/ui/assets/{navigation-watcher-BoJS9hdc.js → navigation-watcher-DkN9hU8i.js} +1 -1
- package/dist/ui/assets/new-session-DDu0IRGc.js +2 -0
- package/dist/ui/assets/{oauth-bootstrap-DUaR-il_.js → oauth-bootstrap-DfSYlub_.js} +2 -2
- package/dist/ui/assets/{oauth-service-foejPYvF.js → oauth-service-BuEH8BXq.js} +1 -1
- package/dist/ui/assets/{oauth-service-lE9AyywH.js → oauth-service-Dk3L2UWh.js} +1 -1
- package/dist/ui/assets/{openai-codex-CZit4W_R.js → openai-codex-DuyyDpZA.js} +1 -1
- package/dist/ui/assets/{openai-codex-D0W343kX.js → openai-codex-rpYkFAL8.js} +1 -1
- package/dist/ui/assets/{openrouter-XorTuzAh.js → openrouter-BcPlZu_G.js} +1 -1
- package/dist/ui/assets/{openrouter-D4iz9RSI.js → openrouter-DHTAGWtd.js} +1 -1
- package/dist/ui/assets/{openrouter-oauth-BLGBWXoP.js → openrouter-oauth-CTIG_xj5.js} +1 -1
- package/dist/ui/assets/{openrouter-oauth-BGOdgzqm.js → openrouter-oauth-iVwMGpbk.js} +1 -1
- package/dist/ui/assets/page-follower-tray-M061L6UY.js +5 -0
- package/dist/ui/assets/{panel-rpc-handlers-BPMsj1iE.js → panel-rpc-handlers-CkC-CpDZ.js} +2 -2
- package/dist/ui/assets/{port-bridge-client-CoFZLSYm.js → port-bridge-client-DdolH4cw.js} +1 -1
- package/dist/ui/assets/{port-bridge-client-BC810skI.js → port-bridge-client-f_6YKEkm.js} +1 -1
- package/dist/ui/assets/{provider-YxK-lzhm.js → provider-Db5o_XYj.js} +2 -2
- package/dist/ui/assets/{provider-DZ7x1aM4.js → provider-DiWogq8f.js} +1 -1
- package/dist/ui/assets/{provider-settings-CmJnFmK2.js → provider-settings-CSt8YEx4.js} +1 -1
- package/dist/ui/assets/{provider-settings-D6FC6-Ws.js → provider-settings-DnRChWz9.js} +2 -2
- package/dist/ui/assets/provider-store-access-Bo--BwLf.js +1 -0
- package/dist/ui/assets/{provider-store-access-Bqa_EvEK.js → provider-store-access-DQypuwRG.js} +2 -2
- package/dist/ui/assets/{providers-7r6dA4ra.js → providers-Bchg39l1.js} +1 -1
- package/dist/ui/assets/{providers-Bklgdp4G.js → providers-DpzUvgPJ.js} +2 -2
- package/dist/ui/assets/{proxied-fetch-D5h5REZy.js → proxied-fetch-CfcFb0B0.js} +1 -1
- package/dist/ui/assets/{proxied-fetch-ldIfAeIb.js → proxied-fetch-D8ebvbVd.js} +1 -1
- package/dist/ui/assets/{quick-llm-BHegEzYY.js → quick-llm-CuKruUki.js} +1 -1
- package/dist/ui/assets/{remote-cdp-transport-DOoXIxy3.js → remote-cdp-transport-Dmg2NdTA.js} +1 -1
- package/dist/ui/assets/{runtime-mode-BVHOImD_.js → runtime-mode-B8Tqab3Z.js} +1 -1
- package/dist/ui/assets/runtime-mode-BweZnYql.js +1 -0
- package/dist/ui/assets/{secret-env-dQA8rL_1.js → secret-env-Cn-GSA1R.js} +1 -1
- package/dist/ui/assets/{secret-topology-CptRwAX3.js → secret-topology-Baeul5rD.js} +1 -1
- package/dist/ui/assets/{secrets-bridge-client-D6nwnBvr.js → secrets-bridge-client-CLRo0NLf.js} +1 -1
- package/dist/ui/assets/session-freezer-DGs88nTW.js +21 -0
- package/dist/ui/assets/session-store-DQztDoVa.js +1 -0
- package/dist/ui/assets/setup-standalone-prelude-DJUR-Jx-.js +2 -0
- package/dist/ui/assets/{setup-sudo-DGrMEyR3.js → setup-sudo-Cc-d6eO1.js} +2 -2
- package/dist/ui/assets/sha256-DmK25X5D.js +1 -0
- package/dist/ui/assets/{silent-renew-backoff-DyzFsWYC.js → silent-renew-backoff-Chq7fPuc.js} +1 -1
- package/dist/ui/assets/{silent-renew-backoff-Dzkpjjro.js → silent-renew-backoff-CqD4WRin.js} +1 -1
- package/dist/ui/assets/{skills-DkHenAsV.js → skills-gGjRrQeq.js} +1 -1
- package/dist/ui/assets/{speak-aEIq7SEP.js → speak-DZhfxcQp.js} +1 -1
- package/dist/ui/assets/{speak-B4wyr-p6.js → speak-wEvzUJ_4.js} +1 -1
- package/dist/ui/assets/{sprinkle-manager-354rS3Fe.js → sprinkle-manager-BYlc7AHg.js} +1 -1
- package/dist/ui/assets/src-BcePBv4G.js +1 -0
- package/dist/ui/assets/src-C9oNvq2b2.js +2 -0
- package/dist/ui/assets/src-DoFhVmQT.js +1 -0
- package/dist/ui/assets/{store-DICK08O4.js → store-ByY8CO32.js} +1 -1
- package/dist/ui/assets/{sudo-9mYhdwPD.js → sudo-DsN_KTcg.js} +1 -1
- package/dist/ui/assets/{telemetry-C8rZr13D.js → telemetry-Dxrv_mDE.js} +1 -1
- package/dist/ui/assets/{transformers-env-DZtq7i0I.js → transformers-env-Cr03eE3X.js} +1 -1
- package/dist/ui/assets/{transformers-env-CeJN6XlP.js → transformers-env-DKadceXA.js} +1 -1
- package/dist/ui/assets/{tray-leader-DicSB8Dn.js → tray-leader-BDMuV-1a.js} +1 -1
- package/dist/ui/assets/{tray-leave-runtime-BI5IM82V.js → tray-leave-runtime-DuZ41JQ-.js} +1 -1
- package/dist/ui/assets/{tray-runtime-config-DquE2Rx9.js → tray-runtime-config-9kTxza5l.js} +1 -1
- package/dist/ui/assets/{tray-runtime-config-8-BCHO27.js → tray-runtime-config-GgP0BHji.js} +1 -1
- package/dist/ui/assets/{tray-sync-protocol-CVdiCvfU.js → tray-sync-protocol-CxWJ329c.js} +1 -1
- package/dist/ui/assets/{upgrade-detection-B8LfSgMb.js → upgrade-detection-BjD6M6tx.js} +1 -1
- package/dist/ui/assets/{voice-reply-6cMxpz9H.js → voice-reply-CkYr1oSF.js} +1 -1
- package/dist/ui/assets/{wc-attach-DU0svqb7.js → wc-attach-CYMk5mBA.js} +1 -1
- package/dist/ui/assets/wc-extension-WOxllVQv.js +2 -0
- package/dist/ui/assets/{wc-float-label-2tniyRvt.js → wc-float-label-yV3hzRXJ.js} +1 -1
- package/dist/ui/assets/wc-follower-CqNUhals.js +17 -0
- package/dist/ui/assets/wc-live-DN4iNS1F.js +8 -0
- package/dist/ui/assets/wc-nav-DdL1jc0a.js +2 -0
- package/dist/ui/assets/{wc-onboarding-t5pRxVjL.js → wc-onboarding-Bzxu5Ii4.js} +2 -2
- package/dist/ui/assets/{wc-placeholder-XW-qi_GD.js → wc-placeholder-5zeCfEVA.js} +2 -2
- package/dist/ui/assets/{wc-settings-7Jj2UM15.js → wc-settings-CrG7sAlG.js} +3 -3
- package/dist/ui/assets/{wc-shell-CoYCAmK-.js → wc-shell-DL44I68b.js} +3 -3
- package/dist/ui/assets/{wc-sprinkles-CFaUt2sb.js → wc-sprinkles-D52GEpi0.js} +2 -2
- package/dist/ui/assets/wc-transcript-export-5Pmfejur.js +2 -0
- package/dist/ui/assets/wc-tray-jp0YtxQG.js +2 -0
- package/dist/ui/assets/{whisper-engine-G1YfvaDM.js → whisper-engine-CHKYCaAu.js} +1 -1
- package/dist/ui/assets/{whisper-session-Ds5v74N9.js → whisper-session-W-6_Qa-h.js} +2 -2
- package/dist/ui/assets/{xai-grok-QulUPZS-.js → xai-grok-BuiKJ83J.js} +1 -1
- package/dist/ui/assets/{xai-grok-CrEqywR8.js → xai-grok-BxZVhpe_.js} +1 -1
- package/dist/ui/index.html +15 -13
- package/dist/ui/llm-proxy-sw.js +1 -1
- package/dist/ui/packages/webapp/index.html +15 -13
- package/package.json +1 -1
- package/dist/ui/assets/lick-ws-bridge-DbbdXQSp.js +0 -1
- package/dist/ui/assets/main-CBUfGcTh.js +0 -22
- package/dist/ui/assets/main-cherry-9qp2ecC4.js +0 -1
- package/dist/ui/assets/new-session-UPnjrqyz.js +0 -2
- package/dist/ui/assets/page-follower-tray-Cm9cuA-m.js +0 -5
- package/dist/ui/assets/provider-store-access-Dw2dlNIf.js +0 -1
- package/dist/ui/assets/session-freezer-oYKtZTY0.js +0 -21
- package/dist/ui/assets/session-store-DAM8GRJ0.js +0 -1
- package/dist/ui/assets/src-CS5gSDhT.js +0 -1
- package/dist/ui/assets/src-Dk1QVJRd.js +0 -1
- package/dist/ui/assets/wc-extension-grYSDyJN.js +0 -2
- package/dist/ui/assets/wc-follower-B6JesvuH.js +0 -17
- package/dist/ui/assets/wc-live-OHBNpb_A.js +0 -8
- package/dist/ui/assets/wc-nav-DcxqwpAS.js +0 -2
- package/dist/ui/assets/wc-tray-C_yJiqov.js +0 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transcript-export.js","sourceRoot":"","sources":["../src/transcript-export.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deterministic credential pattern scanner for transcript redaction.
|
|
3
|
+
*
|
|
4
|
+
* Applies named regex patterns in priority order (highest first). No entropy
|
|
5
|
+
* heuristic — only structured patterns are matched. Existing ⟦REDACTED:⟧
|
|
6
|
+
* markers in the input are excluded from pattern scanning.
|
|
7
|
+
*/
|
|
8
|
+
export type CredentialCategory = 'api-key' | 'bearer-token' | 'jwt' | 'private-key' | 'password';
|
|
9
|
+
export interface PatternRedactionResult {
|
|
10
|
+
text: string;
|
|
11
|
+
matches: Array<{
|
|
12
|
+
id: string;
|
|
13
|
+
category: CredentialCategory;
|
|
14
|
+
}>;
|
|
15
|
+
nextId: number;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Scan `input` for named credential patterns and replace each match with
|
|
19
|
+
* `⟦REDACTED:<category>:<idPrefix><n>⟧`. Patterns are processed in priority
|
|
20
|
+
* order; overlapping lower-priority matches are skipped. Existing
|
|
21
|
+
* `⟦REDACTED:⟧` ranges are fully excluded from scanning. No entropy
|
|
22
|
+
* heuristic is applied.
|
|
23
|
+
*/
|
|
24
|
+
export declare function redactCredentialPatterns(input: string, idPrefix: string, firstId?: number): PatternRedactionResult;
|
|
25
|
+
//# sourceMappingURL=transcript-redaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transcript-redaction.d.ts","sourceRoot":"","sources":["../src/transcript-redaction.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,cAAc,GAAG,KAAK,GAAG,aAAa,GAAG,UAAU,CAAC;AAEjG,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,kBAAkB,CAAA;KAAE,CAAC,CAAC;IAC7D,MAAM,EAAE,MAAM,CAAC;CAChB;AA8FD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,OAAO,SAAI,GACV,sBAAsB,CAiCxB"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deterministic credential pattern scanner for transcript redaction.
|
|
3
|
+
*
|
|
4
|
+
* Applies named regex patterns in priority order (highest first). No entropy
|
|
5
|
+
* heuristic — only structured patterns are matched. Existing ⟦REDACTED:⟧
|
|
6
|
+
* markers in the input are excluded from pattern scanning.
|
|
7
|
+
*/
|
|
8
|
+
const PATTERNS = [
|
|
9
|
+
// JWT: three base64url segments; headers start with `ey` (base64url of `{"`)
|
|
10
|
+
{
|
|
11
|
+
category: 'jwt',
|
|
12
|
+
source: String.raw `ey[A-Za-z0-9_-]{4,}\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+`,
|
|
13
|
+
flags: 'g',
|
|
14
|
+
},
|
|
15
|
+
// PEM private key block
|
|
16
|
+
{
|
|
17
|
+
category: 'private-key',
|
|
18
|
+
source: '-----BEGIN [A-Z ]* PRIVATE KEY-----' +
|
|
19
|
+
String.raw `[\s\S]*?` +
|
|
20
|
+
'-----END [A-Z ]* PRIVATE KEY-----',
|
|
21
|
+
flags: 'g',
|
|
22
|
+
},
|
|
23
|
+
// Bearer authorization header value — case-insensitive so "bearer", "Bearer", and "BEARER" all match.
|
|
24
|
+
{
|
|
25
|
+
category: 'bearer-token',
|
|
26
|
+
source: 'Bearer [A-Za-z0-9._~+/=!-]+',
|
|
27
|
+
flags: 'gi',
|
|
28
|
+
},
|
|
29
|
+
// Common API key prefixes: sk-live/test/prod/proj, sk-ant- (Anthropic),
|
|
30
|
+
// xoxb/xoxp (Slack), AKIA (AWS), ghp_, hf_
|
|
31
|
+
{
|
|
32
|
+
category: 'api-key',
|
|
33
|
+
source: '(?:sk-(?:live|test|prod|proj)-[A-Za-z0-9]{8,}' +
|
|
34
|
+
'|sk-ant-[A-Za-z0-9-]{8,}' +
|
|
35
|
+
'|xoxb-[A-Za-z0-9-]{10,}|xoxp-[A-Za-z0-9-]{10,}' +
|
|
36
|
+
'|AKIA[A-Z0-9]{16}|ghp_[A-Za-z0-9]{36}|hf_[A-Za-z0-9]{34})',
|
|
37
|
+
flags: 'g',
|
|
38
|
+
},
|
|
39
|
+
// password/passwd/token/secret/api_key keyword assignments.
|
|
40
|
+
// \b before the keyword prevents matching embedded substrings like footoken=value.
|
|
41
|
+
{
|
|
42
|
+
category: 'password',
|
|
43
|
+
source: String.raw `\b(?:password|passwd|token|secret|api_key)\s*[=:]\s*\S+`,
|
|
44
|
+
flags: 'gi',
|
|
45
|
+
},
|
|
46
|
+
];
|
|
47
|
+
// Matches existing ⟦REDACTED:...⟧ markers — these ranges are excluded from scanning
|
|
48
|
+
const MARKER_SOURCE = '⟦REDACTED:[^⟧]*⟧';
|
|
49
|
+
// ---------------------------------------------------------------------------
|
|
50
|
+
// Helpers
|
|
51
|
+
// ---------------------------------------------------------------------------
|
|
52
|
+
function overlaps(a, b) {
|
|
53
|
+
return a.start < b.end && b.start < a.end;
|
|
54
|
+
}
|
|
55
|
+
function findExcluded(input) {
|
|
56
|
+
const excluded = [];
|
|
57
|
+
for (const match of input.matchAll(new RegExp(MARKER_SOURCE, 'g'))) {
|
|
58
|
+
const start = match.index;
|
|
59
|
+
if (start === undefined)
|
|
60
|
+
continue;
|
|
61
|
+
excluded.push({ start, end: start + match[0].length });
|
|
62
|
+
}
|
|
63
|
+
return excluded;
|
|
64
|
+
}
|
|
65
|
+
// ---------------------------------------------------------------------------
|
|
66
|
+
// Public scanner
|
|
67
|
+
// ---------------------------------------------------------------------------
|
|
68
|
+
/**
|
|
69
|
+
* Scan `input` for named credential patterns and replace each match with
|
|
70
|
+
* `⟦REDACTED:<category>:<idPrefix><n>⟧`. Patterns are processed in priority
|
|
71
|
+
* order; overlapping lower-priority matches are skipped. Existing
|
|
72
|
+
* `⟦REDACTED:⟧` ranges are fully excluded from scanning. No entropy
|
|
73
|
+
* heuristic is applied.
|
|
74
|
+
*/
|
|
75
|
+
export function redactCredentialPatterns(input, idPrefix, firstId = 1) {
|
|
76
|
+
const excluded = findExcluded(input);
|
|
77
|
+
const claims = [];
|
|
78
|
+
let nextId = firstId;
|
|
79
|
+
for (const { category, source, flags } of PATTERNS) {
|
|
80
|
+
for (const match of input.matchAll(new RegExp(source, flags))) {
|
|
81
|
+
const start = match.index;
|
|
82
|
+
if (start === undefined)
|
|
83
|
+
continue;
|
|
84
|
+
const range = { start, end: start + match[0].length };
|
|
85
|
+
const blocked = excluded.some((e) => overlaps(e, range)) || claims.some((c) => overlaps(c, range));
|
|
86
|
+
if (blocked)
|
|
87
|
+
continue;
|
|
88
|
+
claims.push({ ...range, id: `${idPrefix}${nextId++}`, category });
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
// Replace in source order
|
|
92
|
+
claims.sort((a, b) => a.start - b.start);
|
|
93
|
+
let text = '';
|
|
94
|
+
let pos = 0;
|
|
95
|
+
for (const { start, end, id, category } of claims) {
|
|
96
|
+
text += input.slice(pos, start);
|
|
97
|
+
text += `⟦REDACTED:${category}:${id}⟧`;
|
|
98
|
+
pos = end;
|
|
99
|
+
}
|
|
100
|
+
text += input.slice(pos);
|
|
101
|
+
return {
|
|
102
|
+
text,
|
|
103
|
+
matches: claims.map(({ id, category }) => ({ id, category })),
|
|
104
|
+
nextId,
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=transcript-redaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transcript-redaction.js","sourceRoot":"","sources":["../src/transcript-redaction.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
* here for webapp-internal importers.
|
|
33
33
|
*/
|
|
34
34
|
import type { AgentEvent, ChatMessage, LickEvent, MessageAttachment } from './agent-wire-types.js';
|
|
35
|
+
import type { TranscriptExportErrorCode } from './transcript-export.js';
|
|
35
36
|
/**
|
|
36
37
|
* Runtime tag a cherry follower connects with (`StartPageFollowerTrayOptions.runtime`).
|
|
37
38
|
* It is the advertisement-independent signal the leader uses to keep a cooperative
|
|
@@ -48,7 +49,18 @@ export declare const CHERRY_RUNTIME_TAG = "slicc-cherry";
|
|
|
48
49
|
* build is outdated — both cases log loudly instead of surfacing as silently
|
|
49
50
|
* missing features. Bump when the wire format changes incompatibly.
|
|
50
51
|
*/
|
|
51
|
-
export declare const TRAY_SYNC_PROTOCOL_VERSION =
|
|
52
|
+
export declare const TRAY_SYNC_PROTOCOL_VERSION = 3;
|
|
53
|
+
/**
|
|
54
|
+
* Which transcript the follower is requesting.
|
|
55
|
+
* - `active`: the leader's current in-session transcript.
|
|
56
|
+
* - `frozen`: a specific archived session identified by `sessionId`.
|
|
57
|
+
*/
|
|
58
|
+
export type TranscriptExportSelector = {
|
|
59
|
+
kind: 'active';
|
|
60
|
+
} | {
|
|
61
|
+
kind: 'frozen';
|
|
62
|
+
sessionId: string;
|
|
63
|
+
};
|
|
52
64
|
/**
|
|
53
65
|
* Additive version handshake, sent by BOTH sides as their first message on
|
|
54
66
|
* channel open. Legacy peers drop it harmlessly (TS: unknown-message warn;
|
|
@@ -83,6 +95,32 @@ export interface TraySyncCapabilities {
|
|
|
83
95
|
exec?: boolean;
|
|
84
96
|
}
|
|
85
97
|
export type LeaderToFollowerMessage = {
|
|
98
|
+
type: 'transcript.export.pending';
|
|
99
|
+
requestId: string;
|
|
100
|
+
} | {
|
|
101
|
+
type: 'transcript.export.denied';
|
|
102
|
+
requestId: string;
|
|
103
|
+
} | {
|
|
104
|
+
type: 'transcript.export.start';
|
|
105
|
+
requestId: string;
|
|
106
|
+
filename: string;
|
|
107
|
+
estimatedBytes?: number;
|
|
108
|
+
} | {
|
|
109
|
+
type: 'transcript.export.chunk';
|
|
110
|
+
requestId: string;
|
|
111
|
+
index: number;
|
|
112
|
+
data: string;
|
|
113
|
+
} | {
|
|
114
|
+
type: 'transcript.export.complete';
|
|
115
|
+
requestId: string;
|
|
116
|
+
chunks: number;
|
|
117
|
+
byteLength: number;
|
|
118
|
+
sha256: string;
|
|
119
|
+
} | {
|
|
120
|
+
type: 'transcript.export.error';
|
|
121
|
+
requestId: string;
|
|
122
|
+
code: TranscriptExportErrorCode;
|
|
123
|
+
} | {
|
|
86
124
|
type: 'snapshot';
|
|
87
125
|
messages: ChatMessage[];
|
|
88
126
|
scoopJid: string;
|
|
@@ -186,6 +224,23 @@ export type LeaderToFollowerMessage = {
|
|
|
186
224
|
type: 'pong';
|
|
187
225
|
};
|
|
188
226
|
export type FollowerToLeaderMessage = {
|
|
227
|
+
type: 'transcript.export.request';
|
|
228
|
+
requestId: string;
|
|
229
|
+
selector: TranscriptExportSelector;
|
|
230
|
+
} | {
|
|
231
|
+
type: 'transcript.export.cancel';
|
|
232
|
+
requestId: string;
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Sent by the follower after a chunk has been durably appended to the spool.
|
|
236
|
+
* The leader's bounded in-flight window (one chunk) waits for this before
|
|
237
|
+
* sending the next chunk. Owner-scoped via requestId + follower identity.
|
|
238
|
+
*/
|
|
239
|
+
| {
|
|
240
|
+
type: 'transcript.export.ack';
|
|
241
|
+
requestId: string;
|
|
242
|
+
index: number;
|
|
243
|
+
} | {
|
|
189
244
|
type: 'user_message';
|
|
190
245
|
text: string;
|
|
191
246
|
messageId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tray-sync-protocol.d.ts","sourceRoot":"","sources":["../src/tray-sync-protocol.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tray-sync-protocol.d.ts","sourceRoot":"","sources":["../src/tray-sync-protocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -47,7 +47,7 @@ export const CHERRY_RUNTIME_TAG = 'slicc-cherry';
|
|
|
47
47
|
* build is outdated — both cases log loudly instead of surfacing as silently
|
|
48
48
|
* missing features. Bump when the wire format changes incompatibly.
|
|
49
49
|
*/
|
|
50
|
-
export const TRAY_SYNC_PROTOCOL_VERSION =
|
|
50
|
+
export const TRAY_SYNC_PROTOCOL_VERSION = 3;
|
|
51
51
|
export function isCherryHostEventMessage(m) {
|
|
52
52
|
return (typeof m === 'object' && m !== null && m.type === 'cherry.host_event');
|
|
53
53
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tray-sync-protocol.js","sourceRoot":"","sources":["../src/tray-sync-protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;
|
|
1
|
+
{"version":3,"file":"tray-sync-protocol.js","sourceRoot":"","sources":["../src/tray-sync-protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAKH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,cAAc,CAAC;AAEjD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC;AA8O5C,MAAM,UAAU,wBAAwB,CAAC,CAAU;IACjD,OAAO,CACL,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAK,CAAuB,CAAC,IAAI,KAAK,mBAAmB,CAC7F,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,CAAU;IAClD,OAAO,CACL,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAK,CAAuB,CAAC,IAAI,KAAK,oBAAoB,CAC9F,CAAC;AACJ,CAAC;AAsMD;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAc;IACrD,OAAO,OAA4B,CAAC;AACtC,CAAC"}
|
|
@@ -25,6 +25,51 @@ function respondSignAndForwardError(res, err, devMode, label) {
|
|
|
25
25
|
function isStringArray(value) {
|
|
26
26
|
return Array.isArray(value) && value.every((d) => typeof d === 'string');
|
|
27
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* Scope edit handler — updates allowed domains of an existing secret without
|
|
30
|
+
* changing its value. Checks session store first, then falls back to persisted.
|
|
31
|
+
*/
|
|
32
|
+
async function handleScopeEdit(res, name, domains, secretStore, secretProxy) {
|
|
33
|
+
if (typeof name !== 'string' || !isStringArray(domains)) {
|
|
34
|
+
return res.status(400).json({ error: 'bad-request' });
|
|
35
|
+
}
|
|
36
|
+
try {
|
|
37
|
+
if (secretProxy.sessionStore.has(name)) {
|
|
38
|
+
secretProxy.sessionStore.setDomains(name, domains);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
const existing = secretStore.get(name);
|
|
42
|
+
if (!existing)
|
|
43
|
+
return res.status(404).json({ error: `no secret named "${name}"` });
|
|
44
|
+
secretStore.set(name, existing.value, domains);
|
|
45
|
+
}
|
|
46
|
+
await secretProxy.reload();
|
|
47
|
+
return res.json({ ok: true });
|
|
48
|
+
}
|
|
49
|
+
catch (err) {
|
|
50
|
+
return res
|
|
51
|
+
.status(500)
|
|
52
|
+
.json({ error: err instanceof Error ? err.message : 'Failed to update scope' });
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Fail-closed export redaction handler. Batch-replaces all known secret values
|
|
57
|
+
* with stable anonymous markers. Returns 400 for malformed input; 503 on
|
|
58
|
+
* pipeline failure. Never echoes request texts in any error response.
|
|
59
|
+
*/
|
|
60
|
+
function handleRedactExport(res, texts, secretProxy) {
|
|
61
|
+
if (!isStringArray(texts)) {
|
|
62
|
+
return res.status(400).json({ error: 'bad-request' });
|
|
63
|
+
}
|
|
64
|
+
try {
|
|
65
|
+
const result = secretProxy.rawPipeline.redactForExport(texts);
|
|
66
|
+
return res.json(result);
|
|
67
|
+
}
|
|
68
|
+
catch (err) {
|
|
69
|
+
console.error('[secrets] redact-export failed', err instanceof Error ? err.message : err);
|
|
70
|
+
return res.status(503).json({ error: 'redaction-unavailable' });
|
|
71
|
+
}
|
|
72
|
+
}
|
|
28
73
|
/**
|
|
29
74
|
* Persisted/session delete handler — checks the session store first so a
|
|
30
75
|
* session shadow does not leak through after deletion, then falls back to the
|
|
@@ -93,29 +138,9 @@ export function registerSecretRoutes(app, deps) {
|
|
|
93
138
|
app.delete('/api/secrets/:name', (req, res) => handleDeleteSecret(req.params.name, res, secretStore, secretProxy));
|
|
94
139
|
// Scope edit — update the allowed domains of an existing secret (persisted or
|
|
95
140
|
// session), preserving the value. Gated by the agent before sending.
|
|
96
|
-
app.post('/api/secrets/scope', express.json(),
|
|
141
|
+
app.post('/api/secrets/scope', express.json(), (req, res) => {
|
|
97
142
|
const { name, domains } = req.body ?? {};
|
|
98
|
-
|
|
99
|
-
return res.status(400).json({ error: 'bad-request' });
|
|
100
|
-
}
|
|
101
|
-
try {
|
|
102
|
-
if (secretProxy.sessionStore.has(name)) {
|
|
103
|
-
secretProxy.sessionStore.setDomains(name, domains);
|
|
104
|
-
}
|
|
105
|
-
else {
|
|
106
|
-
const existing = secretStore.get(name);
|
|
107
|
-
if (!existing)
|
|
108
|
-
return res.status(404).json({ error: `no secret named "${name}"` });
|
|
109
|
-
secretStore.set(name, existing.value, domains);
|
|
110
|
-
}
|
|
111
|
-
await secretProxy.reload();
|
|
112
|
-
res.json({ ok: true });
|
|
113
|
-
}
|
|
114
|
-
catch (err) {
|
|
115
|
-
res
|
|
116
|
-
.status(500)
|
|
117
|
-
.json({ error: err instanceof Error ? err.message : 'Failed to update scope' });
|
|
118
|
-
}
|
|
143
|
+
return handleScopeEdit(res, name, domains, secretStore, secretProxy);
|
|
119
144
|
});
|
|
120
145
|
// Session secrets — in-memory only, never written to disk. Free for the agent
|
|
121
146
|
// to create; the masking pipeline picks them up on the reload below.
|
|
@@ -177,6 +202,11 @@ export function registerSecretRoutes(app, deps) {
|
|
|
177
202
|
respondSignAndForwardError(res, err, devMode, 'DA');
|
|
178
203
|
}
|
|
179
204
|
});
|
|
205
|
+
// Fail-closed export redaction. Batch-replaces all known secret values
|
|
206
|
+
// (both real and masked forms) with stable anonymous markers for transcript
|
|
207
|
+
// export. Returns 400 for malformed input; 503 (without echoing input) on
|
|
208
|
+
// trusted-pipeline failure. Never echoes real values in any response path.
|
|
209
|
+
app.post('/api/secrets/redact-export', express.json({ limit: '32mb' }), (req, res) => handleRedactExport(res, req.body?.texts, secretProxy));
|
|
180
210
|
// Tool-output real→masked scrub. The browser-side agent realm never holds
|
|
181
211
|
// real secret values, so the defense-in-depth scrub of bash / read_file /
|
|
182
212
|
// other tool results runs here against the node-server-owned
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/oauth-service-
|
|
2
|
-
import{n as e,t}from"./rolldown-runtime-aKtaBQYM.js";import{t as n}from"./preload-helper-Czpn1I53.js";import{i as r,n as i,r as a}from"./compat-aVSWLlYQ.js";import"./context-compaction-_UkD06XB.js";import{t as o}from"./logger-DDBAeTLF.js";import"./src-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/oauth-service-Dk3L2UWh.js","assets/preload-helper-Czpn1I53.js","assets/proxied-fetch-CfcFb0B0.js","assets/rolldown-runtime-aKtaBQYM.js","assets/base64-DpPqYZJF.js","assets/src-DoFhVmQT.js","assets/runtime-env-DH4NDw4t.js","assets/fetch-body-D2PwksUW.js","assets/panel-rpc-DmJSNs0I.js","assets/wc-permissions-registry-Blyunq37.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{n as e,t}from"./rolldown-runtime-aKtaBQYM.js";import{t as n}from"./preload-helper-Czpn1I53.js";import{i as r,n as i,r as a}from"./compat-aVSWLlYQ.js";import"./context-compaction-_UkD06XB.js";import{t as o}from"./logger-DDBAeTLF.js";import"./src-DoFhVmQT.js";import{o as s,t as c}from"./proxied-fetch-CfcFb0B0.js";import{t as l}from"./secret-topology-Baeul5rD.js";import{t as u}from"./secrets-bridge-client-CLRo0NLf.js";import"./tool-ui-DfXu6quJ.js";import{n as d,o as f,t as p}from"./providers-DpzUvgPJ.js";import{n as m,t as h}from"./panel-rpc-DmJSNs0I.js";import{r as g,t as _}from"./bedrock-camp-CVignIdH.js";var v={assign:0,create:0,clone:0,discard:0,update:0};function y(e){return Array.isArray(e)}function b(e){return S(e,null)}function x(e){return S(typeof e,`object`)&&!b(e)}function S(e,t){return e===t}function ee(e){return S(e,`__proto__`)||S(e,`constructor`)||S(e,`prototype`)}function te(e,t){return ee(t)?Object.prototype.hasOwnProperty.call(e,t):t in e}function ne(e){return Object.getOwnPropertyNames(e)}function re(e){return x(e)&&te(e,`~guard`)}function ie(e){return e}function ae(e){return e.map(e=>ce(e))}function oe(e){let t={},n=Object.getOwnPropertyDescriptors(e);for(let e of Object.keys(n)){let r=n[e];te(r,`value`)&&Object.defineProperty(t,e,{...r,value:ce(r.value)})}return t}function C(e){return new RegExp(e.source,e.flags)}function se(e){return e}function ce(e){return e instanceof RegExp?C(e):re(e)?ie(e):y(e)?ae(e):x(e)?oe(e):se(e)}function le(e){return v.clone+=1,ce(e)}var ue={immutableTypes:!1,maxErrors:8,useAcceleration:!0,exactOptionalPropertyTypes:!1,enumerableKind:!1,correctiveParse:!1};function de(){return ue}function fe(e,t){for(let n of Object.keys(t))Object.defineProperty(e,n,{configurable:!0,writable:!0,enumerable:!1,value:t[n]});return e}function pe(e,t){return{...e,...t}}function me(e,t,n={}){v.create+=1;let r=de(),i=pe(t,n),a=r.enumerableKind?pe(i,e):fe(i,e);return r.immutableTypes?Object.freeze(a):a}function he(e,t,n){v.update+=1;let r=de(),i=le(e);for(let e of Object.keys(t))Object.defineProperty(i,e,{configurable:!0,writable:!0,enumerable:r.enumerableKind,value:t[e]});for(let e of Object.keys(n))Object.defineProperty(i,e,{configurable:!0,enumerable:!0,writable:!0,value:n[e]});return i}function ge(e){return x(e)}function _e(e){return he(e,{"~optional":!0},{})}function ve(e){return _e(e)}function ye(e){return ge(e)&&te(e,`~optional`)}function be(e,t){return me({"~kind":`Array`},{type:`array`,items:e},t)}function xe(e){return ne(e).filter(t=>!ye(e[t]))}function Se(e,t={}){let n=xe(e);return me({"~kind":`Object`},{type:`object`,...n.length>0?{required:n}:{},properties:e},t)}var Ce;(function(e){e[e.Array=0]=`Array`,e[e.BigInt=1]=`BigInt`,e[e.Boolean=2]=`Boolean`,e[e.Date=3]=`Date`,e[e.Constructor=4]=`Constructor`,e[e.Function=5]=`Function`,e[e.Null=6]=`Null`,e[e.Number=7]=`Number`,e[e.Object=8]=`Object`,e[e.RegExp=9]=`RegExp`,e[e.String=10]=`String`,e[e.Symbol=11]=`Symbol`,e[e.TypeArray=12]=`TypeArray`,e[e.Undefined=13]=`Undefined`})(Ce||={}),Array.from({length:256}).map((e,t)=>BigInt(t));var we=new Float64Array(1);new DataView(we.buffer),new Uint8Array(we.buffer),new TextEncoder;var Te=`-?(?:0|[1-9][0-9]*)`,Ee=`-?(?:0|[1-9][0-9]*)(?:.[0-9]+)?`;function De(e){return me({"~kind":`Number`},{type:`number`},e)}function w(e){return me({"~kind":`String`},{type:`string`},e)}var Oe=`^${Te}$`;`${Ee}`;function ke(e,t){return Array.from({length:t-e+1},(t,n)=>String.fromCharCode(e+n))}var Ae=[...ke(97,122),...ke(65,90)],je=[`0`,...ke(49,57)];[...je],[...Ae,...je],[...je],new RegExp(Oe);var Me=Symbol.for(`yaml.alias`),Ne=Symbol.for(`yaml.document`),T=Symbol.for(`yaml.map`),Pe=Symbol.for(`yaml.pair`),Fe=Symbol.for(`yaml.scalar`),Ie=Symbol.for(`yaml.seq`),E=Symbol.for(`yaml.node.type`),D=e=>!!e&&typeof e==`object`&&e[E]===Me,Le=e=>!!e&&typeof e==`object`&&e[E]===Ne,Re=e=>!!e&&typeof e==`object`&&e[E]===T,O=e=>!!e&&typeof e==`object`&&e[E]===Pe,k=e=>!!e&&typeof e==`object`&&e[E]===Fe,ze=e=>!!e&&typeof e==`object`&&e[E]===Ie;function A(e){if(e&&typeof e==`object`)switch(e[E]){case T:case Ie:return!0}return!1}function j(e){if(e&&typeof e==`object`)switch(e[E]){case Me:case T:case Fe:case Ie:return!0}return!1}var Be=e=>(k(e)||A(e))&&!!e.anchor,M=Symbol(`break visit`),Ve=Symbol(`skip children`),N=Symbol(`remove node`);function He(e,t){let n=We(t);Le(e)?P(null,e.contents,n,Object.freeze([e]))===N&&(e.contents=null):P(null,e,n,Object.freeze([]))}He.BREAK=M,He.SKIP=Ve,He.REMOVE=N;function P(e,t,n,r){let i=Ge(e,t,n,r);if(j(i)||O(i))return Ke(e,r,i),P(e,i,n,r);if(typeof i!=`symbol`){if(A(t)){r=Object.freeze(r.concat(t));for(let e=0;e<t.items.length;++e){let i=P(e,t.items[e],n,r);if(typeof i==`number`)e=i-1;else if(i===M)return M;else i===N&&(t.items.splice(e,1),--e)}}else if(O(t)){r=Object.freeze(r.concat(t));let e=P(`key`,t.key,n,r);if(e===M)return M;e===N&&(t.key=null);let i=P(`value`,t.value,n,r);if(i===M)return M;i===N&&(t.value=null)}}return i}async function Ue(e,t){let n=We(t);Le(e)?await F(null,e.contents,n,Object.freeze([e]))===N&&(e.contents=null):await F(null,e,n,Object.freeze([]))}Ue.BREAK=M,Ue.SKIP=Ve,Ue.REMOVE=N;async function F(e,t,n,r){let i=await Ge(e,t,n,r);if(j(i)||O(i))return Ke(e,r,i),F(e,i,n,r);if(typeof i!=`symbol`){if(A(t)){r=Object.freeze(r.concat(t));for(let e=0;e<t.items.length;++e){let i=await F(e,t.items[e],n,r);if(typeof i==`number`)e=i-1;else if(i===M)return M;else i===N&&(t.items.splice(e,1),--e)}}else if(O(t)){r=Object.freeze(r.concat(t));let e=await F(`key`,t.key,n,r);if(e===M)return M;e===N&&(t.key=null);let i=await F(`value`,t.value,n,r);if(i===M)return M;i===N&&(t.value=null)}}return i}function We(e){return typeof e==`object`&&(e.Collection||e.Node||e.Value)?Object.assign({Alias:e.Node,Map:e.Node,Scalar:e.Node,Seq:e.Node},e.Value&&{Map:e.Value,Scalar:e.Value,Seq:e.Value},e.Collection&&{Map:e.Collection,Seq:e.Collection},e):e}function Ge(e,t,n,r){if(typeof n==`function`)return n(e,t,r);if(Re(t))return n.Map?.(e,t,r);if(ze(t))return n.Seq?.(e,t,r);if(O(t))return n.Pair?.(e,t,r);if(k(t))return n.Scalar?.(e,t,r);if(D(t))return n.Alias?.(e,t,r)}function Ke(e,t,n){let r=t[t.length-1];if(A(r))r.items[e]=n;else if(O(r))e===`key`?r.key=n:r.value=n;else if(Le(r))r.contents=n;else{let e=D(r)?`alias`:`scalar`;throw Error(`Cannot replace node with ${e} parent`)}}var qe={"!":`%21`,",":`%2C`,"[":`%5B`,"]":`%5D`,"{":`%7B`,"}":`%7D`},Je=e=>e.replace(/[!,[\]{}]/g,e=>qe[e]),Ye=class e{constructor(t,n){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},e.defaultYaml,t),this.tags=Object.assign({},e.defaultTags,n)}clone(){let t=new e(this.yaml,this.tags);return t.docStart=this.docStart,t}atDocument(){let t=new e(this.yaml,this.tags);switch(this.yaml.version){case`1.1`:this.atNextDocument=!0;break;case`1.2`:this.atNextDocument=!1,this.yaml={explicit:e.defaultYaml.explicit,version:`1.2`},this.tags=Object.assign({},e.defaultTags);break}return t}add(t,n){this.atNextDocument&&=(this.yaml={explicit:e.defaultYaml.explicit,version:`1.1`},this.tags=Object.assign({},e.defaultTags),!1);let r=t.trim().split(/[ \t]+/),i=r.shift();switch(i){case`%TAG`:{if(r.length!==2&&(n(0,`%TAG directive should contain exactly two parts`),r.length<2))return!1;let[e,t]=r;return this.tags[e]=t,!0}case`%YAML`:{if(this.yaml.explicit=!0,r.length!==1)return n(0,`%YAML directive should contain exactly one part`),!1;let[e]=r;if(e===`1.1`||e===`1.2`)return this.yaml.version=e,!0;{let t=/^\d+\.\d+$/.test(e);return n(6,`Unsupported YAML version ${e}`,t),!1}}default:return n(0,`Unknown directive ${i}`,!0),!1}}tagName(e,t){if(e===`!`)return`!`;if(e[0]!==`!`)return t(`Not a valid tag: ${e}`),null;if(e[1]===`<`){let n=e.slice(2,-1);return n===`!`||n===`!!`?(t(`Verbatim tags aren't resolved, so ${e} is invalid.`),null):(e[e.length-1]!==`>`&&t(`Verbatim tags must end with a >`),n)}let[,n,r]=e.match(/^(.*!)([^!]*)$/s);r||t(`The ${e} tag has no suffix`);let i=this.tags[n];if(i)try{return i+decodeURIComponent(r)}catch(e){return t(String(e)),null}return n===`!`?e:(t(`Could not resolve tag: ${e}`),null)}tagString(e){for(let[t,n]of Object.entries(this.tags))if(e.startsWith(n))return t+Je(e.substring(n.length));return e[0]===`!`?e:`!<${e}>`}toString(e){let t=this.yaml.explicit?[`%YAML ${this.yaml.version||`1.2`}`]:[],n=Object.entries(this.tags),r;if(e&&n.length>0&&j(e.contents)){let t={};He(e.contents,(e,n)=>{j(n)&&n.tag&&(t[n.tag]=!0)}),r=Object.keys(t)}else r=[];for(let[i,a]of n)i===`!!`&&a===`tag:yaml.org,2002:`||(!e||r.some(e=>e.startsWith(a)))&&t.push(`%TAG ${i} ${a}`);return t.join(`
|
|
3
3
|
`)}};Ye.defaultYaml={explicit:!1,version:`1.2`},Ye.defaultTags={"!!":`tag:yaml.org,2002:`};function Xe(e){if(/[\x00-\x19\s,[\]{}]/.test(e)){let t=`Anchor must not contain whitespace or control characters: ${JSON.stringify(e)}`;throw Error(t)}return!0}function Ze(e,t,n,r){if(r&&typeof r==`object`)if(Array.isArray(r))for(let t=0,n=r.length;t<n;++t){let n=r[t],i=Ze(e,r,String(t),n);i===void 0?delete r[t]:i!==n&&(r[t]=i)}else if(r instanceof Map)for(let t of Array.from(r.keys())){let n=r.get(t),i=Ze(e,r,t,n);i===void 0?r.delete(t):i!==n&&r.set(t,i)}else if(r instanceof Set)for(let t of Array.from(r)){let n=Ze(e,r,t,t);n===void 0?r.delete(t):n!==t&&(r.delete(t),r.add(n))}else for(let[t,n]of Object.entries(r)){let i=Ze(e,r,t,n);i===void 0?delete r[t]:i!==n&&(r[t]=i)}return e.call(t,n,r)}function I(e,t,n){if(Array.isArray(e))return e.map((e,t)=>I(e,String(t),n));if(e&&typeof e.toJSON==`function`){if(!n||!Be(e))return e.toJSON(t,n);let r={aliasCount:0,count:1,res:void 0};n.anchors.set(e,r),n.onCreate=e=>{r.res=e,delete n.onCreate};let i=e.toJSON(t,n);return n.onCreate&&n.onCreate(i),i}return typeof e==`bigint`&&!n?.keep?Number(e):e}var Qe=class{constructor(e){Object.defineProperty(this,E,{value:e})}clone(){let e=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(e.range=this.range.slice()),e}toJS(e,{mapAsMap:t,maxAliasCount:n,onAnchor:r,reviver:i}={}){if(!Le(e))throw TypeError(`A document argument is required`);let a={anchors:new Map,doc:e,keep:!0,mapAsMap:t===!0,mapKeyWarned:!1,maxAliasCount:typeof n==`number`?n:100},o=I(this,``,a);if(typeof r==`function`)for(let{count:e,res:t}of a.anchors.values())r(t,e);return typeof i==`function`?Ze(i,{"":o},``,o):o}},$e=class extends Qe{constructor(e){super(Me),this.source=e,Object.defineProperty(this,"tag",{set(){throw Error(`Alias nodes cannot have tags`)}})}resolve(e,t){if(t?.maxAliasCount===0)throw ReferenceError(`Alias resolution is disabled`);let n;t?.aliasResolveCache?n=t.aliasResolveCache:(n=[],He(e,{Node:(e,t)=>{(D(t)||Be(t))&&n.push(t)}}),t&&(t.aliasResolveCache=n));let r;for(let e of n){if(e===this)break;e.anchor===this.source&&(r=e)}return r}toJSON(e,t){if(!t)return{source:this.source};let{anchors:n,doc:r,maxAliasCount:i}=t,a=this.resolve(r,t);if(!a){let e=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw ReferenceError(e)}let o=n.get(a);if(o||=(I(a,null,t),n.get(a)),o?.res===void 0)throw ReferenceError(`This should not happen: Alias anchor was not resolved?`);if(i>=0&&(o.count+=1,o.aliasCount===0&&(o.aliasCount=et(r,a,n)),o.count*o.aliasCount>i))throw ReferenceError(`Excessive alias count indicates a resource exhaustion attack`);return o.res}toString(e,t,n){let r=`*${this.source}`;if(e){if(Xe(this.source),e.options.verifyAliasOrder&&!e.anchors.has(this.source)){let e=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw Error(e)}if(e.implicitKey)return`${r} `}return r}};function et(e,t,n){if(D(t)){let r=t.resolve(e),i=n&&r&&n.get(r);return i?i.count*i.aliasCount:0}else if(A(t)){let r=0;for(let i of t.items){let t=et(e,i,n);t>r&&(r=t)}return r}else if(O(t)){let r=et(e,t.key,n),i=et(e,t.value,n);return Math.max(r,i)}return 1}var tt=e=>!e||typeof e!=`function`&&typeof e!=`object`,L=class extends Qe{constructor(e){super(Fe),this.value=e}toJSON(e,t){return t?.keep?this.value:I(this.value,e,t)}toString(){return String(this.value)}};L.BLOCK_FOLDED=`BLOCK_FOLDED`,L.BLOCK_LITERAL=`BLOCK_LITERAL`,L.PLAIN=`PLAIN`,L.QUOTE_DOUBLE=`QUOTE_DOUBLE`,L.QUOTE_SINGLE=`QUOTE_SINGLE`;var nt=`tag:yaml.org,2002:`;function rt(e,t,n){if(t){let e=n.filter(e=>e.tag===t),r=e.find(e=>!e.format)??e[0];if(!r)throw Error(`Tag ${t} not found`);return r}return n.find(t=>t.identify?.(e)&&!t.format)}function it(e,t,n){if(Le(e)&&(e=e.contents),j(e))return e;if(O(e)){let t=n.schema[T].createNode?.(n.schema,null,n);return t.items.push(e),t}(e instanceof String||e instanceof Number||e instanceof Boolean||typeof BigInt<`u`&&e instanceof BigInt)&&(e=e.valueOf());let{aliasDuplicateObjects:r,onAnchor:i,onTagObj:a,schema:o,sourceObjects:s}=n,c;if(r&&e&&typeof e==`object`){if(c=s.get(e),c)return c.anchor??=i(e),new $e(c.anchor);c={anchor:null,node:null},s.set(e,c)}t?.startsWith(`!!`)&&(t=nt+t.slice(2));let l=rt(e,t,o.tags);if(!l){if(e&&typeof e.toJSON==`function`&&(e=e.toJSON()),!e||typeof e!=`object`){let t=new L(e);return c&&(c.node=t),t}l=e instanceof Map?o[T]:Symbol.iterator in Object(e)?o[Ie]:o[T]}a&&(a(l),delete n.onTagObj);let u=l?.createNode?l.createNode(n.schema,e,n):typeof l?.nodeClass?.from==`function`?l.nodeClass.from(n.schema,e,n):new L(e);return t?u.tag=t:l.default||(u.tag=l.tag),c&&(c.node=u),u}function at(e,t,n){let r=n;for(let e=t.length-1;e>=0;--e){let n=t[e];if(typeof n==`number`&&Number.isInteger(n)&&n>=0){let e=[];e[n]=r,r=e}else r=new Map([[n,r]])}return it(r,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw Error(`This should not happen, please report a bug.`)},schema:e,sourceObjects:new Map})}var ot=e=>e==null||typeof e==`object`&&!!e[Symbol.iterator]().next().done,st=class extends Qe{constructor(e,t){super(e),Object.defineProperty(this,"schema",{value:t,configurable:!0,enumerable:!1,writable:!0})}clone(e){let t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return e&&(t.schema=e),t.items=t.items.map(t=>j(t)||O(t)?t.clone(e):t),this.range&&(t.range=this.range.slice()),t}addIn(e,t){if(ot(e))this.add(t);else{let[n,...r]=e,i=this.get(n,!0);if(A(i))i.addIn(r,t);else if(i===void 0&&this.schema)this.set(n,at(this.schema,r,t));else throw Error(`Expected YAML collection at ${n}. Remaining path: ${r}`)}}deleteIn(e){let[t,...n]=e;if(n.length===0)return this.delete(t);let r=this.get(t,!0);if(A(r))return r.deleteIn(n);throw Error(`Expected YAML collection at ${t}. Remaining path: ${n}`)}getIn(e,t){let[n,...r]=e,i=this.get(n,!0);return r.length===0?!t&&k(i)?i.value:i:A(i)?i.getIn(r,t):void 0}hasAllNullValues(e){return this.items.every(t=>{if(!O(t))return!1;let n=t.value;return n==null||e&&k(n)&&n.value==null&&!n.commentBefore&&!n.comment&&!n.tag})}hasIn(e){let[t,...n]=e;if(n.length===0)return this.has(t);let r=this.get(t,!0);return A(r)?r.hasIn(n):!1}setIn(e,t){let[n,...r]=e;if(r.length===0)this.set(n,t);else{let e=this.get(n,!0);if(A(e))e.setIn(r,t);else if(e===void 0&&this.schema)this.set(n,at(this.schema,r,t));else throw Error(`Expected YAML collection at ${n}. Remaining path: ${r}`)}}},ct=e=>e.replace(/^(?!$)(?: $)?/gm,`#`);function lt(e,t){return/^\n+$/.test(e)?e.substring(1):t?e.replace(/^(?! *$)/gm,t):e}var R=(e,t,n)=>e.endsWith(`
|
|
4
4
|
`)?lt(n,t):n.includes(`
|
|
5
5
|
`)?`
|
|
@@ -40,4 +40,4 @@ $&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,`$1$2`).replace(/\
|
|
|
40
40
|
`))&&(t=t.trim())):n.ignoreNewlineAtEof&&!n.newlineIsToken&&(e.endsWith(`
|
|
41
41
|
`)&&(e=e.slice(0,-1)),t.endsWith(`
|
|
42
42
|
`)&&(t=t.slice(0,-1))),super.equals(e,t,n)}};function yn(e,t){t.stripTrailingCr&&(e=e.replace(/\r\n/g,`
|
|
43
|
-
`));let n=[],r=e.split(/(\n|\r\n)/);r[r.length-1]||r.pop();for(let e=0;e<r.length;e++){let i=r[e];e%2&&!t.newlineIsToken?n[n.length-1]+=i:n.push(i)}return n}function bn(e){return e==`.`||e==`!`||e==`?`}new class extends W{tokenize(e){let t=[],n=0;for(let r=0;r<e.length;r++){if(r==e.length-1){t.push(e.slice(n));break}if(bn(e[r])&&e[r+1].match(/\s/)){for(t.push(e.slice(n,r+1)),r=n=r+1;e[r+1]?.match(/\s/);)r++;t.push(e.slice(n,r+1)),n=r+1}}return t}},new class extends W{tokenize(e){return e.split(/([{}:;,]|\s+)/)}},new class extends W{constructor(){super(...arguments),this.tokenize=yn}get useLongestToken(){return!0}castInput(e,t){let{undefinedReplacement:n,stringifyReplacer:r=(e,t)=>t===void 0?n:t}=t;return typeof e==`string`?e:JSON.stringify(xn(e,null,null,r),null,` `)}equals(e,t,n){return super.equals(e.replace(/,([\r\n])/g,`$1`),t.replace(/,([\r\n])/g,`$1`),n)}};function xn(e,t,n,r,i){t||=[],n||=[],r&&(e=r(i===void 0?``:i,e));let a;for(a=0;a<t.length;a+=1)if(t[a]===e)return n[a];let o;if(Object.prototype.toString.call(e)===`[object Array]`){for(t.push(e),o=Array(e.length),n.push(o),a=0;a<e.length;a+=1)o[a]=xn(e[a],t,n,r,String(a));return t.pop(),n.pop(),o}if(e&&e.toJSON&&(e=e.toJSON()),typeof e==`object`&&e){t.push(e),o={},n.push(o);let i=[],s;for(s in e)Object.prototype.hasOwnProperty.call(e,s)&&i.push(s);for(i.sort(),a=0;a<i.length;a+=1)s=i[a],o[s]=xn(e[s],t,n,r,s);t.pop(),n.pop()}else o=e;return o}new class extends W{tokenize(e){return e.slice()}join(e){return e}removeEmpty(e){return e}};var Sn=Se({oldText:w({description:`Exact text for one targeted replacement. It must be unique in the original file and must not overlap with any other edits[].oldText in the same call.`}),newText:w({description:`Replacement text for this targeted edit.`})},{});Se({path:w({description:`Path to the file to edit (relative or absolute)`}),edits:be(Sn,{description:`One or more targeted replacements. Each edit is matched against the original file, not incrementally. Do not include overlapping or nested edits. If two changes touch the same block or nearby lines, merge them into one edit instead.`})},{}),Se({path:w({description:`Path to the file to read (relative or absolute)`}),offset:ve(De({description:`Line number to start reading from (1-indexed)`})),limit:ve(De({description:`Maximum number of lines to read`}))}),Se({path:w({description:`Path to the file to write (relative or absolute)`}),content:w({description:`Content to write to the file`})});var Cn=`slicc_oauth_extra_domains`;function wn(e){try{let t=e.getItem(Cn);if(!t)return{};let n=JSON.parse(t);if(typeof n!=`object`||!n||Array.isArray(n))return{};let r={};for(let[e,t]of Object.entries(n)){if(typeof e!=`string`||!Array.isArray(t))continue;let n=t.filter(e=>typeof e==`string`&&e.length>0);n.length>0&&(r[e]=n)}return r}catch{return{}}}function Tn(e,t){try{e.setItem(Cn,JSON.stringify(t))}catch(e){throw Error(`Failed to persist OAuth extras (localStorage quota exceeded?): ${e instanceof Error?e.message:String(e)}`)}}o(`secret-scrub`),o(`image-processor`),o(`tool-adapter`);var En=e({ACCOUNTS_KEY:()=>G,__test__:()=>In,addAccount:()=>er,applyProviderDefaults:()=>Un,clearAllSettings:()=>Cr,clearApiKey:()=>vr,clearBaseUrl:()=>xr,clearSelectedProvider:()=>hr,exportProviders:()=>Sr,getAccounts:()=>X,getAllAvailableModels:()=>qn,getAllExtraOAuthDomains:()=>Zn,getApiKey:()=>gr,getApiKeyForProvider:()=>lr,getApiVersionForProvider:()=>dr,getAvailableProviders:()=>Ln,getBaseUrl:()=>yr,getBaseUrlForProvider:()=>Z,getDeploymentForProvider:()=>ur,getExtraOAuthDomains:()=>Jn,getOAuthAccountInfo:()=>Vn,getProviderConfig:()=>q,getProviderModels:()=>J,getRawApiKeyForProvider:()=>cr,getSelectedModelId:()=>Q,getSelectedProvider:()=>$,isModelHiddenFromPicker:()=>Gn,logoutOAuthAccount:()=>rr,maskOAuthTokenWithRetry:()=>ir,migrateLegacyAuthOnlySelection:()=>Pn,persistOAuthMaskViaServiceWorker:()=>ar,providerOffersLlmModels:()=>Rn,removeAccount:()=>nr,resolveCurrentModel:()=>Or,resolveModelById:()=>Dr,resolveModelByShorthand:()=>kr,saveOAuthAccount:()=>or,setApiKey:()=>_r,setBaseUrl:()=>br,setExtraOAuthDomains:()=>Yn,setExtraOAuthDomainsAsync:()=>Xn,setSelectedModelId:()=>fr,setSelectedProvider:()=>mr}),Dn=i,On=a,G=`slicc_accounts`,K=`selected-model`,kn=[`slicc_provider`,`slicc_api_key`,`slicc_base_url`,`anthropic_api_key`,`api_provider`,`azure_resource`,`bedrock_region`],An=new Set([`github`]);function jn(e){let t;try{t=r()}catch{return!1}return t.includes(e)&&!f(e)}var Mn=!1;function Nn(){if(!Mn){Mn=!0;for(let e of kn)try{localStorage.removeItem(e)}catch{}Pn()}}function Pn(){try{let e=localStorage.getItem(K);if(e){let t=e.indexOf(`:`);if(t>0){let n=e.slice(0,t);(An.has(n)||jn(n))&&localStorage.removeItem(K)}}}catch{}try{let e=localStorage.getItem(G);if(!e)return;let t=JSON.parse(e);if(!Array.isArray(t))return;let n=t.filter(e=>!(typeof e==`object`&&e&&typeof e.providerId==`string`&&jn(e.providerId)));n.length!==t.length&&localStorage.setItem(G,JSON.stringify(n))}catch{}}function Fn(){Mn=!1}var In={_resetLegacyCleanup:Fn};function Ln(){let e=r().filter(f),t=d();return[...new Set([...e,...t])].filter(e=>!p(e)?.hidden)}function Rn(e){try{if(J(e).length>0)return!0}catch{}try{if(a(e).length>0)return!0}catch{}let t=p(e);return!!(t?.modelOverrides&&Object.keys(t.modelOverrides).length>0)}function zn(e,t){try{if(J(e).some(e=>e.id===t))return!0}catch{}try{if(a(e).some(e=>e.id===t))return!0}catch{}let n=p(e);return!!(n?.modelOverrides&&Object.hasOwn(n.modelOverrides,t))}function q(e){return p(e)||{id:e,name:e.split(`-`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `),description:`${e} provider`,requiresApiKey:!0,requiresBaseUrl:!1}}function Bn(e,t){t.context_window!==void 0&&(e.contextWindow=t.context_window),t.max_tokens!==void 0&&(e.maxTokens=t.max_tokens),t.reasoning!==void 0&&(e.reasoning=t.reasoning),t.input!==void 0&&(e.input=t.input),t.compat!==void 0&&(e.compat={...e.compat??{},...t.compat}),t.thinkingLevelMap!==void 0&&(e.thinkingLevelMap={...e.thinkingLevelMap??{},...t.thinkingLevelMap})}function J(e){try{if(e===`bedrock-camp`){let e=_(Z(`bedrock-camp`));return On(`amazon-bedrock`).filter(t=>g(t,e)).map(e=>({...e,api:`bedrock-camp-converse`,provider:`bedrock-camp`}))}let t=q(e);if(t.getModelIds){let n;try{n=t.getModelIds()}catch(t){return Y.error(`Provider getModelIds callback failed`,{providerId:e,error:t instanceof Error?t.message:String(t)}),[]}let i=new Map;for(let e of r())try{for(let t of On(e))i.set(t.id,t)}catch{}return n.map(n=>{let r=`${e}-${n.api===`openai`?`openai`:`anthropic`}`,a=i.get(n.id),o;a?o={...a,api:r,provider:e}:(o=Tr(e,n.id,``,r),n.name&&(o.name=n.name));let s=t.modelOverrides?.[n.id];return s&&Bn(o,s),Bn(o,n),o})}if(t.isOAuth){let n=On(`anthropic`),r=`${e}-anthropic`;return n.map(n=>{let i={...n,api:r,provider:e},a=t.modelOverrides?.[n.id];return a&&Bn(i,a),i})}return On(e===`azure-ai-foundry`?`anthropic`:e)}catch(t){return Y.error(`Failed to load models`,{providerId:e,error:t instanceof Error?t.message:String(t)}),[]}}function Vn(e){let t=X().find(t=>t.providerId===e);if(!t?.accessToken)return null;let n=!!t.tokenExpiresAt&&Date.now()>t.tokenExpiresAt-6e4;return{token:t.accessToken,maskedValue:t.maskedValue,expiresAt:t.tokenExpiresAt,userName:t.userName,userAvatar:t.userAvatar,expired:n}}var Hn=Object.assign({})[`/packages/webapp/providers.json`]??[],Y=o(`provider-settings`);function Un(e=Hn){if(e.length===0||X().length>0)return;let t=new Set(Ln());for(let n of e)if(!(!n.providerId||!n.apiKey)){if(!t.has(n.providerId)){Y.warn(`Unknown provider "${n.providerId}" in providers.json — skipping`);continue}er(n.providerId,n.apiKey,n.baseUrl)}let n=e.find(e=>e.providerId&&e.apiKey&&t.has(e.providerId));n?.model&&!localStorage.getItem(K)&&localStorage.setItem(K,`${n.providerId}:${n.model}`)}var Wn=[/haiku/i];function Gn(e){return Wn.some(t=>t.test(e))}function Kn(e){return e.filter(e=>!Gn(e.id))}function qn(){let e=X();if(e.length===0)return[];let t=new Map;for(let n of e){if(t.has(n.providerId))continue;let e=q(n.providerId);if(e.hidden||jn(n.providerId))continue;let r=Kn(J(n.providerId));if(r.length===0)continue;let i={providerId:n.providerId,providerName:e.name,models:r};t.set(n.providerId,i)}return[...t.values()]}function X(){Nn();let e=localStorage.getItem(G);if(!e)return[];try{let t=JSON.parse(e);return Array.isArray(t)?t.filter(e=>typeof e==`object`&&!!e&&typeof e.providerId==`string`&&typeof e.apiKey==`string`):[]}catch{return[]}}function Jn(e){return wn(localStorage)[e]??[]}function Yn(e,t){let n=wn(localStorage),r=t.map(e=>e.trim()).filter(e=>e.length>0);r.length===0?delete n[e]:n[e]=r,Tn(localStorage,n)}async function Xn(e,t){if(m()){Yn(e,t);return}let n=h();if(!n)throw Error(`setExtraOAuthDomainsAsync: no DOM and no panel-rpc client — cannot persist to page localStorage`);let{storeAfter:r}=await n.call(`oauth-extras-set`,{providerId:e,domains:t});try{Tn(localStorage,r)}catch(t){Y.warn(`worker-shim mirror failed after successful page write — reload to refresh`,{providerId:e,error:t instanceof Error?t.message:String(t)})}}function Zn(){return wn(localStorage)}function Qn(e){localStorage.setItem(G,JSON.stringify(e))}async function $n(e){if(m()){Qn(e);return}let t=h();if(!t)throw Error(`saveAccountsAsync: no DOM and no panel-rpc client — cannot persist to page localStorage`);let n=JSON.stringify(e),{storedJson:r}=await t.call(`save-oauth-accounts`,{accountsJson:n});try{localStorage.setItem(G,r)}catch(e){Y.warn(`worker-shim mirror failed after successful page write — reload to refresh`,{error:e instanceof Error?e.message:String(e)})}}function er(e,t,n,r,i){let a=X().filter(t=>t.providerId!==e),o={providerId:e,apiKey:t};n&&(o.baseUrl=n),r&&(o.deployment=r),i&&(o.apiVersion=i),a.push(o),Qn(a)}async function tr(e){let t=l();try{if(t===`extension-direct`){let t=await new Promise(t=>{chrome.runtime.sendMessage({type:`secrets.delete`,name:`oauth.${e}.token`},n=>{chrome.runtime.lastError&&Y.error(`SW secrets.delete transport failed`,{providerId:e,error:chrome.runtime.lastError.message}),t(n??{})})});t.error&&Y.error(`SW secrets.delete returned error`,{providerId:e,error:t.error})}else if(t===`extension-delegate`){let t=await u(`secrets.delete`,{name:`oauth.${e}.token`});t?.error&&Y.error(`Bridge secrets.delete returned error`,{providerId:e,error:t.error})}else if(t!==`connect`){let t=await fetch(s(`/api/secrets/oauth/${e}`),{method:`DELETE`,headers:c()});!t.ok&&t.status!==404&&Y.warn(`OAuth replica DELETE non-ok`,{providerId:e,status:t.status})}}catch(n){Y.error(`OAuth replica removal failed`,{providerId:e,topology:t,error:n instanceof Error?n.message:String(n)})}}async function nr(e){let t=X().find(t=>t.providerId===e),n=q(e);t&&n?.isOAuth&&await rr(e),await tr(e),await $n(X().filter(t=>t.providerId!==e));let r=localStorage.getItem(K)??``,i=r.indexOf(`:`);i>0&&r.slice(0,i)===e&&localStorage.removeItem(K)}async function rr(e){let t=X().find(t=>t.providerId===e);if(!t)return;let r=q(e);if(r?.isOAuth){if(r.onOAuthLogout)try{await r.onOAuthLogout()}catch(t){Y.warn(`onOAuthLogout failed`,{providerId:e,error:t instanceof Error?t.message:String(t)})}if(r.getOAuthLogoutUrl){let i=r.getOAuthLogoutUrl(t);if(i){let{openIdpLogoutUrl:t}=await n(async()=>{let{openIdpLogoutUrl:e}=await import(`./oauth-service-lE9AyywH.js`);return{openIdpLogoutUrl:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9]));await t(i).catch(t=>{Y.warn(`IdP logout popup failed`,{providerId:e,error:t instanceof Error?t.message:String(t)})})}}await $n(X().map(t=>t.providerId===e?{providerId:t.providerId,apiKey:``,baseUrl:t.baseUrl,userName:t.userName,userAvatar:t.userAvatar,loggedOut:!0}:t)),await tr(e)}}async function ir(e,t={}){let n=Math.max(1,t.attempts??3),r=t.delayMs??150,i=t.sleep??(e=>new Promise(t=>setTimeout(t,e))),a;for(let t=0;t<n;t++){let o=await e();if(o.maskedValue)return{maskedValue:o.maskedValue};o.error&&(a=o.error),t<n-1&&await i(r)}return{lastError:a}}async function ar(e,t,n){let r={providerId:e.providerId,accessToken:e.accessToken,domains:e.domains.join(`,`)},{maskedValue:i,lastError:a}=await ir(()=>t.sendMaskRequest(r),n);if(!i){Y.error(`OAuth mask give-up: no masked value after retries`,{providerId:e.providerId,reason:a??`no error reported (cold SW or empty reply)`});return}let o=t.getAccounts(),s=o.find(t=>t.providerId===e.providerId);s&&(s.maskedValue=i,await t.saveAccounts(o))}async function or(e){let t=X().find(t=>t.providerId===e.providerId),n=X().filter(t=>t.providerId!==e.providerId);n.push({providerId:e.providerId,apiKey:``,accessToken:e.accessToken,refreshToken:e.refreshToken,tokenExpiresAt:e.tokenExpiresAt,userName:e.userName,userAvatar:e.userAvatar,baseUrl:e.baseUrl??t?.baseUrl}),await $n(n);let r=q(e.providerId)?.oauthTokenDomains??[],i=Jn(e.providerId),a=new Set,o=[];for(let e of[...r,...i]){let t=e.toLowerCase();a.has(t)||(a.add(t),o.push(e))}if(o.length===0)return;let d=l();try{if(d===`extension-direct`)await ar({providerId:e.providerId,accessToken:e.accessToken,domains:o},{sendMaskRequest:t=>new Promise(n=>{chrome.runtime.sendMessage({type:`secrets.mask-oauth-token`,...t},t=>{chrome.runtime.lastError&&Y.error(`SW mask-oauth-token transport failed`,{providerId:e.providerId,error:chrome.runtime.lastError.message});let r=typeof t==`object`&&t?t:void 0;r?.error&&Y.warn(`SW mask-oauth-token returned error`,{providerId:e.providerId,error:r.error}),n(r??{})})}),getAccounts:X,saveAccounts:$n});else if(d===`extension-delegate`)await ar({providerId:e.providerId,accessToken:e.accessToken,domains:o},{sendMaskRequest:t=>u(`secrets.mask-oauth-token`,t).then(t=>(t?.error&&Y.warn(`Bridge mask-oauth-token returned error`,{providerId:e.providerId,error:t.error}),t??{})).catch(t=>(Y.error(`Bridge mask-oauth-token transport failed`,{providerId:e.providerId,error:t instanceof Error?t.message:String(t)}),{})),getAccounts:X,saveAccounts:$n});else if(d!==`connect`){let t=await fetch(s(`/api/secrets/oauth-update`),{method:`POST`,headers:c({"Content-Type":`application/json`}),body:JSON.stringify({providerId:e.providerId,accessToken:e.accessToken,domains:o})});if(t.ok){let n=await t.json();if(typeof n.maskedValue==`string`){let t=X(),r=t.find(t=>t.providerId===e.providerId);r&&(r.maskedValue=n.maskedValue,await $n(t))}else Y.warn(`OAuth replica POST ok but missing maskedValue`,{providerId:e.providerId})}else Y.warn(`OAuth replica POST non-ok`,{providerId:e.providerId,status:t.status})}}catch(t){Y.error(`OAuth replica sync failed`,{providerId:e.providerId,topology:d,error:t instanceof Error?t.message:String(t)})}}var sr=`local`;function cr(e){let t=X().find(t=>t.providerId===e);return t&&(t.accessToken||t.apiKey)||null}function lr(e){let t=X().find(t=>t.providerId===e);return t?t.accessToken||t.apiKey||(q(e).optionalApiKey?sr:null):null}function Z(e){return X().find(t=>t.providerId===e)?.baseUrl??null}function ur(e){return X().find(t=>t.providerId===e)?.deployment??null}function dr(e){return X().find(t=>t.providerId===e)?.apiVersion??null}function Q(){let e=localStorage.getItem(K)||``,t=e.indexOf(`:`);return t>=0?e.slice(t+1):e}function fr(e){let t=e.indexOf(`:`);if(t>0){let n=e.slice(0,t),r=new Set([...d(),...Ln()]),i=n.includes(`.`);if(r.has(n)||!i){localStorage.setItem(K,e);return}}let n=$();localStorage.setItem(K,`${n}:${e}`)}function pr(){return localStorage.getItem(K)||``}function $(){let e=pr(),t=e.indexOf(`:`);if(t>0)return e.slice(0,t);let n=X(),r=Q();if(r){let e=n.find(e=>Rn(e.providerId)&&zn(e.providerId,r));if(e)return e.providerId}let i=n.find(e=>Rn(e.providerId));return i?i.providerId:n.length>0?n[0].providerId:`anthropic`}function mr(e){let t=Q();localStorage.setItem(K,`${e}:${t}`)}function hr(){let e=Q();localStorage.setItem(K,e)}function gr(){return lr($())}function _r(e){let t=$();er(t,e,Z(t)??void 0)}async function vr(){await nr($())}function yr(){return Z($())}function br(e){let t=$(),n=cr(t);n&&er(t,n,e||void 0)}function xr(){let e=$(),t=cr(e);t&&er(e,t)}function Sr(){let e=X(),t=$(),n=Q();return e.map(e=>{let r={providerId:e.providerId,apiKey:e.apiKey};return e.baseUrl&&(r.baseUrl=e.baseUrl),e.providerId===t&&n&&(r.model=n),r})}async function Cr(){let e=X();await Promise.allSettled(e.map(e=>nr(e.providerId))),localStorage.removeItem(G),localStorage.removeItem(K);for(let e of kn)localStorage.removeItem(e)}function wr(e){return/^(?:gpt[-.]?|o[0-9]|chatgpt)/i.test(e)?`openai`:`anthropic`}function Tr(e,t,n,r){return{id:t,name:t,provider:e,api:r??`${e}-${wr(t)}`,baseUrl:n??``,contextWindow:2e5,maxTokens:16384,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},reasoning:!0}}function Er(e,t){return t.isOAuth||e===`azure-ai-foundry`?`anthropic`:e===`bedrock-camp`?`amazon-bedrock`:e}function Dr(e){if(!e)return Or();let t=$(),n=Z(t),r=q(t);try{let i=Dn(Er(t,r),e);if(!i?.id)throw Error(`Model ${e} not found`);let a=i;return r.isOAuth?a=J(t).find(t=>t.id===e)||{...a,api:`${t}-anthropic`,provider:t}:t===`bedrock-camp`&&(a={...a,api:`bedrock-camp-converse`,provider:`bedrock-camp`}),n&&(a={...a,baseUrl:n}),a}catch(i){if(Y.debug(`resolveModelById: pi-ai lookup miss, using provider fallback`,{providerId:t,modelId:e,error:i instanceof Error?i.message:String(i)}),r.isOAuth){let r=J(t).find(t=>t.id===e);return r?n?{...r,baseUrl:n}:r:Tr(t,e,n)}return Or()}}function Or(){let e=$(),t=Q(),n=Z(e),r=J(e),i=q(e),a=i.defaultModelId?r.find(e=>e.id.toLowerCase().includes(i.defaultModelId.toLowerCase()))?.id:void 0,o=t||a||r[0]?.id||`claude-sonnet-4-6`;try{let t=Er(e,i),a=Dn(t,o);if(!a?.id)throw Error(`Model ${o} not found in ${t} registry`);let s=a;return i.isOAuth?s=r.find(e=>e.id===o)||{...s,api:`${e}-anthropic`,provider:e}:e===`bedrock-camp`&&(s={...s,api:`bedrock-camp-converse`,provider:`bedrock-camp`}),n&&(s={...s,baseUrl:n}),s}catch(t){Y.debug(`resolveCurrentModel: pi-ai lookup miss, using provider fallback`,{providerId:e,effectiveModelId:o,error:t instanceof Error?t.message:String(t)});let a=r.find(e=>e.id===o);return a?n?{...a,baseUrl:n}:a:i.isOAuth?Tr(e,o,n):Dn(`anthropic`,`claude-sonnet-4-0`)}}function kr(e){let t=e.toLowerCase();if(!t)return null;let n=null,r=-1;for(let e of X())for(let i of J(e.providerId)){let e=i.id.toLowerCase(),a=(i.name??``).toLowerCase();if(!e.includes(t)&&!a.includes(t))continue;let o=i.contextWindow??0;(o>r||o===r&&Ar(i.id,n??``)>0)&&(r=o,n=i.id)}return n}function Ar(e,t){let n=e.match(/\d+/g)?.map(Number)??[],r=t.match(/\d+/g)?.map(Number)??[],i=Math.max(n.length,r.length);for(let e=0;e<i;e++){let t=(n[e]??0)-(r[e]??0);if(t!==0)return t}return 0}export{ir as A,br as B,q as C,$ as D,Q as E,Or as F,Xn as H,Dr as I,kr as L,ar as M,Rn as N,Gn as O,nr as P,or as R,Vn as S,cr as T,fr as U,Yn as V,mr as W,Ln as _,Un as a,ur as b,xr as c,X as d,qn as f,dr as g,lr as h,er as i,Pn as j,rr as k,hr as l,gr as m,In as n,Cr as o,Zn as p,En as r,vr as s,G as t,Sr as u,yr as v,J as w,Jn as x,Z as y,_r as z};
|
|
43
|
+
`));let n=[],r=e.split(/(\n|\r\n)/);r[r.length-1]||r.pop();for(let e=0;e<r.length;e++){let i=r[e];e%2&&!t.newlineIsToken?n[n.length-1]+=i:n.push(i)}return n}function bn(e){return e==`.`||e==`!`||e==`?`}new class extends W{tokenize(e){let t=[],n=0;for(let r=0;r<e.length;r++){if(r==e.length-1){t.push(e.slice(n));break}if(bn(e[r])&&e[r+1].match(/\s/)){for(t.push(e.slice(n,r+1)),r=n=r+1;e[r+1]?.match(/\s/);)r++;t.push(e.slice(n,r+1)),n=r+1}}return t}},new class extends W{tokenize(e){return e.split(/([{}:;,]|\s+)/)}},new class extends W{constructor(){super(...arguments),this.tokenize=yn}get useLongestToken(){return!0}castInput(e,t){let{undefinedReplacement:n,stringifyReplacer:r=(e,t)=>t===void 0?n:t}=t;return typeof e==`string`?e:JSON.stringify(xn(e,null,null,r),null,` `)}equals(e,t,n){return super.equals(e.replace(/,([\r\n])/g,`$1`),t.replace(/,([\r\n])/g,`$1`),n)}};function xn(e,t,n,r,i){t||=[],n||=[],r&&(e=r(i===void 0?``:i,e));let a;for(a=0;a<t.length;a+=1)if(t[a]===e)return n[a];let o;if(Object.prototype.toString.call(e)===`[object Array]`){for(t.push(e),o=Array(e.length),n.push(o),a=0;a<e.length;a+=1)o[a]=xn(e[a],t,n,r,String(a));return t.pop(),n.pop(),o}if(e&&e.toJSON&&(e=e.toJSON()),typeof e==`object`&&e){t.push(e),o={},n.push(o);let i=[],s;for(s in e)Object.prototype.hasOwnProperty.call(e,s)&&i.push(s);for(i.sort(),a=0;a<i.length;a+=1)s=i[a],o[s]=xn(e[s],t,n,r,s);t.pop(),n.pop()}else o=e;return o}new class extends W{tokenize(e){return e.slice()}join(e){return e}removeEmpty(e){return e}};var Sn=Se({oldText:w({description:`Exact text for one targeted replacement. It must be unique in the original file and must not overlap with any other edits[].oldText in the same call.`}),newText:w({description:`Replacement text for this targeted edit.`})},{});Se({path:w({description:`Path to the file to edit (relative or absolute)`}),edits:be(Sn,{description:`One or more targeted replacements. Each edit is matched against the original file, not incrementally. Do not include overlapping or nested edits. If two changes touch the same block or nearby lines, merge them into one edit instead.`})},{}),Se({path:w({description:`Path to the file to read (relative or absolute)`}),offset:ve(De({description:`Line number to start reading from (1-indexed)`})),limit:ve(De({description:`Maximum number of lines to read`}))}),Se({path:w({description:`Path to the file to write (relative or absolute)`}),content:w({description:`Content to write to the file`})});var Cn=`slicc_oauth_extra_domains`;function wn(e){try{let t=e.getItem(Cn);if(!t)return{};let n=JSON.parse(t);if(typeof n!=`object`||!n||Array.isArray(n))return{};let r={};for(let[e,t]of Object.entries(n)){if(typeof e!=`string`||!Array.isArray(t))continue;let n=t.filter(e=>typeof e==`string`&&e.length>0);n.length>0&&(r[e]=n)}return r}catch{return{}}}function Tn(e,t){try{e.setItem(Cn,JSON.stringify(t))}catch(e){throw Error(`Failed to persist OAuth extras (localStorage quota exceeded?): ${e instanceof Error?e.message:String(e)}`)}}o(`secret-scrub`),o(`image-processor`),o(`tool-adapter`);var En=e({ACCOUNTS_KEY:()=>G,__test__:()=>In,addAccount:()=>er,applyProviderDefaults:()=>Un,clearAllSettings:()=>Cr,clearApiKey:()=>vr,clearBaseUrl:()=>xr,clearSelectedProvider:()=>hr,exportProviders:()=>Sr,getAccounts:()=>X,getAllAvailableModels:()=>qn,getAllExtraOAuthDomains:()=>Zn,getApiKey:()=>gr,getApiKeyForProvider:()=>lr,getApiVersionForProvider:()=>dr,getAvailableProviders:()=>Ln,getBaseUrl:()=>yr,getBaseUrlForProvider:()=>Z,getDeploymentForProvider:()=>ur,getExtraOAuthDomains:()=>Jn,getOAuthAccountInfo:()=>Vn,getProviderConfig:()=>q,getProviderModels:()=>J,getRawApiKeyForProvider:()=>cr,getSelectedModelId:()=>Q,getSelectedProvider:()=>$,isModelHiddenFromPicker:()=>Gn,logoutOAuthAccount:()=>rr,maskOAuthTokenWithRetry:()=>ir,migrateLegacyAuthOnlySelection:()=>Pn,persistOAuthMaskViaServiceWorker:()=>ar,providerOffersLlmModels:()=>Rn,removeAccount:()=>nr,resolveCurrentModel:()=>Or,resolveModelById:()=>Dr,resolveModelByShorthand:()=>kr,saveOAuthAccount:()=>or,setApiKey:()=>_r,setBaseUrl:()=>br,setExtraOAuthDomains:()=>Yn,setExtraOAuthDomainsAsync:()=>Xn,setSelectedModelId:()=>fr,setSelectedProvider:()=>mr}),Dn=i,On=a,G=`slicc_accounts`,K=`selected-model`,kn=[`slicc_provider`,`slicc_api_key`,`slicc_base_url`,`anthropic_api_key`,`api_provider`,`azure_resource`,`bedrock_region`],An=new Set([`github`]);function jn(e){let t;try{t=r()}catch{return!1}return t.includes(e)&&!f(e)}var Mn=!1;function Nn(){if(!Mn){Mn=!0;for(let e of kn)try{localStorage.removeItem(e)}catch{}Pn()}}function Pn(){try{let e=localStorage.getItem(K);if(e){let t=e.indexOf(`:`);if(t>0){let n=e.slice(0,t);(An.has(n)||jn(n))&&localStorage.removeItem(K)}}}catch{}try{let e=localStorage.getItem(G);if(!e)return;let t=JSON.parse(e);if(!Array.isArray(t))return;let n=t.filter(e=>!(typeof e==`object`&&e&&typeof e.providerId==`string`&&jn(e.providerId)));n.length!==t.length&&localStorage.setItem(G,JSON.stringify(n))}catch{}}function Fn(){Mn=!1}var In={_resetLegacyCleanup:Fn};function Ln(){let e=r().filter(f),t=d();return[...new Set([...e,...t])].filter(e=>!p(e)?.hidden)}function Rn(e){try{if(J(e).length>0)return!0}catch{}try{if(a(e).length>0)return!0}catch{}let t=p(e);return!!(t?.modelOverrides&&Object.keys(t.modelOverrides).length>0)}function zn(e,t){try{if(J(e).some(e=>e.id===t))return!0}catch{}try{if(a(e).some(e=>e.id===t))return!0}catch{}let n=p(e);return!!(n?.modelOverrides&&Object.hasOwn(n.modelOverrides,t))}function q(e){return p(e)||{id:e,name:e.split(`-`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `),description:`${e} provider`,requiresApiKey:!0,requiresBaseUrl:!1}}function Bn(e,t){t.context_window!==void 0&&(e.contextWindow=t.context_window),t.max_tokens!==void 0&&(e.maxTokens=t.max_tokens),t.reasoning!==void 0&&(e.reasoning=t.reasoning),t.input!==void 0&&(e.input=t.input),t.compat!==void 0&&(e.compat={...e.compat??{},...t.compat}),t.thinkingLevelMap!==void 0&&(e.thinkingLevelMap={...e.thinkingLevelMap??{},...t.thinkingLevelMap})}function J(e){try{if(e===`bedrock-camp`){let e=_(Z(`bedrock-camp`));return On(`amazon-bedrock`).filter(t=>g(t,e)).map(e=>({...e,api:`bedrock-camp-converse`,provider:`bedrock-camp`}))}let t=q(e);if(t.getModelIds){let n;try{n=t.getModelIds()}catch(t){return Y.error(`Provider getModelIds callback failed`,{providerId:e,error:t instanceof Error?t.message:String(t)}),[]}let i=new Map;for(let e of r())try{for(let t of On(e))i.set(t.id,t)}catch{}return n.map(n=>{let r=`${e}-${n.api===`openai`?`openai`:`anthropic`}`,a=i.get(n.id),o;a?o={...a,api:r,provider:e}:(o=Tr(e,n.id,``,r),n.name&&(o.name=n.name));let s=t.modelOverrides?.[n.id];return s&&Bn(o,s),Bn(o,n),o})}if(t.isOAuth){let n=On(`anthropic`),r=`${e}-anthropic`;return n.map(n=>{let i={...n,api:r,provider:e},a=t.modelOverrides?.[n.id];return a&&Bn(i,a),i})}return On(e===`azure-ai-foundry`?`anthropic`:e)}catch(t){return Y.error(`Failed to load models`,{providerId:e,error:t instanceof Error?t.message:String(t)}),[]}}function Vn(e){let t=X().find(t=>t.providerId===e);if(!t?.accessToken)return null;let n=!!t.tokenExpiresAt&&Date.now()>t.tokenExpiresAt-6e4;return{token:t.accessToken,maskedValue:t.maskedValue,expiresAt:t.tokenExpiresAt,userName:t.userName,userAvatar:t.userAvatar,expired:n}}var Hn=Object.assign({})[`/packages/webapp/providers.json`]??[],Y=o(`provider-settings`);function Un(e=Hn){if(e.length===0||X().length>0)return;let t=new Set(Ln());for(let n of e)if(!(!n.providerId||!n.apiKey)){if(!t.has(n.providerId)){Y.warn(`Unknown provider "${n.providerId}" in providers.json — skipping`);continue}er(n.providerId,n.apiKey,n.baseUrl)}let n=e.find(e=>e.providerId&&e.apiKey&&t.has(e.providerId));n?.model&&!localStorage.getItem(K)&&localStorage.setItem(K,`${n.providerId}:${n.model}`)}var Wn=[/haiku/i];function Gn(e){return Wn.some(t=>t.test(e))}function Kn(e){return e.filter(e=>!Gn(e.id))}function qn(){let e=X();if(e.length===0)return[];let t=new Map;for(let n of e){if(t.has(n.providerId))continue;let e=q(n.providerId);if(e.hidden||jn(n.providerId))continue;let r=Kn(J(n.providerId));if(r.length===0)continue;let i={providerId:n.providerId,providerName:e.name,models:r};t.set(n.providerId,i)}return[...t.values()]}function X(){Nn();let e=localStorage.getItem(G);if(!e)return[];try{let t=JSON.parse(e);return Array.isArray(t)?t.filter(e=>typeof e==`object`&&!!e&&typeof e.providerId==`string`&&typeof e.apiKey==`string`):[]}catch{return[]}}function Jn(e){return wn(localStorage)[e]??[]}function Yn(e,t){let n=wn(localStorage),r=t.map(e=>e.trim()).filter(e=>e.length>0);r.length===0?delete n[e]:n[e]=r,Tn(localStorage,n)}async function Xn(e,t){if(m()){Yn(e,t);return}let n=h();if(!n)throw Error(`setExtraOAuthDomainsAsync: no DOM and no panel-rpc client — cannot persist to page localStorage`);let{storeAfter:r}=await n.call(`oauth-extras-set`,{providerId:e,domains:t});try{Tn(localStorage,r)}catch(t){Y.warn(`worker-shim mirror failed after successful page write — reload to refresh`,{providerId:e,error:t instanceof Error?t.message:String(t)})}}function Zn(){return wn(localStorage)}function Qn(e){localStorage.setItem(G,JSON.stringify(e))}async function $n(e){if(m()){Qn(e);return}let t=h();if(!t)throw Error(`saveAccountsAsync: no DOM and no panel-rpc client — cannot persist to page localStorage`);let n=JSON.stringify(e),{storedJson:r}=await t.call(`save-oauth-accounts`,{accountsJson:n});try{localStorage.setItem(G,r)}catch(e){Y.warn(`worker-shim mirror failed after successful page write — reload to refresh`,{error:e instanceof Error?e.message:String(e)})}}function er(e,t,n,r,i){let a=X().filter(t=>t.providerId!==e),o={providerId:e,apiKey:t};n&&(o.baseUrl=n),r&&(o.deployment=r),i&&(o.apiVersion=i),a.push(o),Qn(a)}async function tr(e){let t=l();try{if(t===`extension-direct`){let t=await new Promise(t=>{chrome.runtime.sendMessage({type:`secrets.delete`,name:`oauth.${e}.token`},n=>{chrome.runtime.lastError&&Y.error(`SW secrets.delete transport failed`,{providerId:e,error:chrome.runtime.lastError.message}),t(n??{})})});t.error&&Y.error(`SW secrets.delete returned error`,{providerId:e,error:t.error})}else if(t===`extension-delegate`){let t=await u(`secrets.delete`,{name:`oauth.${e}.token`});t?.error&&Y.error(`Bridge secrets.delete returned error`,{providerId:e,error:t.error})}else if(t!==`connect`){let t=await fetch(s(`/api/secrets/oauth/${e}`),{method:`DELETE`,headers:c()});!t.ok&&t.status!==404&&Y.warn(`OAuth replica DELETE non-ok`,{providerId:e,status:t.status})}}catch(n){Y.error(`OAuth replica removal failed`,{providerId:e,topology:t,error:n instanceof Error?n.message:String(n)})}}async function nr(e){let t=X().find(t=>t.providerId===e),n=q(e);t&&n?.isOAuth&&await rr(e),await tr(e),await $n(X().filter(t=>t.providerId!==e));let r=localStorage.getItem(K)??``,i=r.indexOf(`:`);i>0&&r.slice(0,i)===e&&localStorage.removeItem(K)}async function rr(e){let t=X().find(t=>t.providerId===e);if(!t)return;let r=q(e);if(r?.isOAuth){if(r.onOAuthLogout)try{await r.onOAuthLogout()}catch(t){Y.warn(`onOAuthLogout failed`,{providerId:e,error:t instanceof Error?t.message:String(t)})}if(r.getOAuthLogoutUrl){let i=r.getOAuthLogoutUrl(t);if(i){let{openIdpLogoutUrl:t}=await n(async()=>{let{openIdpLogoutUrl:e}=await import(`./oauth-service-Dk3L2UWh.js`);return{openIdpLogoutUrl:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9]));await t(i).catch(t=>{Y.warn(`IdP logout popup failed`,{providerId:e,error:t instanceof Error?t.message:String(t)})})}}await $n(X().map(t=>t.providerId===e?{providerId:t.providerId,apiKey:``,baseUrl:t.baseUrl,userName:t.userName,userAvatar:t.userAvatar,loggedOut:!0}:t)),await tr(e)}}async function ir(e,t={}){let n=Math.max(1,t.attempts??3),r=t.delayMs??150,i=t.sleep??(e=>new Promise(t=>setTimeout(t,e))),a;for(let t=0;t<n;t++){let o=await e();if(o.maskedValue)return{maskedValue:o.maskedValue};o.error&&(a=o.error),t<n-1&&await i(r)}return{lastError:a}}async function ar(e,t,n){let r={providerId:e.providerId,accessToken:e.accessToken,domains:e.domains.join(`,`)},{maskedValue:i,lastError:a}=await ir(()=>t.sendMaskRequest(r),n);if(!i){Y.error(`OAuth mask give-up: no masked value after retries`,{providerId:e.providerId,reason:a??`no error reported (cold SW or empty reply)`});return}let o=t.getAccounts(),s=o.find(t=>t.providerId===e.providerId);s&&(s.maskedValue=i,await t.saveAccounts(o))}async function or(e){let t=X().find(t=>t.providerId===e.providerId),n=X().filter(t=>t.providerId!==e.providerId);n.push({providerId:e.providerId,apiKey:``,accessToken:e.accessToken,refreshToken:e.refreshToken,tokenExpiresAt:e.tokenExpiresAt,userName:e.userName,userAvatar:e.userAvatar,baseUrl:e.baseUrl??t?.baseUrl}),await $n(n);let r=q(e.providerId)?.oauthTokenDomains??[],i=Jn(e.providerId),a=new Set,o=[];for(let e of[...r,...i]){let t=e.toLowerCase();a.has(t)||(a.add(t),o.push(e))}if(o.length===0)return;let d=l();try{if(d===`extension-direct`)await ar({providerId:e.providerId,accessToken:e.accessToken,domains:o},{sendMaskRequest:t=>new Promise(n=>{chrome.runtime.sendMessage({type:`secrets.mask-oauth-token`,...t},t=>{chrome.runtime.lastError&&Y.error(`SW mask-oauth-token transport failed`,{providerId:e.providerId,error:chrome.runtime.lastError.message});let r=typeof t==`object`&&t?t:void 0;r?.error&&Y.warn(`SW mask-oauth-token returned error`,{providerId:e.providerId,error:r.error}),n(r??{})})}),getAccounts:X,saveAccounts:$n});else if(d===`extension-delegate`)await ar({providerId:e.providerId,accessToken:e.accessToken,domains:o},{sendMaskRequest:t=>u(`secrets.mask-oauth-token`,t).then(t=>(t?.error&&Y.warn(`Bridge mask-oauth-token returned error`,{providerId:e.providerId,error:t.error}),t??{})).catch(t=>(Y.error(`Bridge mask-oauth-token transport failed`,{providerId:e.providerId,error:t instanceof Error?t.message:String(t)}),{})),getAccounts:X,saveAccounts:$n});else if(d!==`connect`){let t=await fetch(s(`/api/secrets/oauth-update`),{method:`POST`,headers:c({"Content-Type":`application/json`}),body:JSON.stringify({providerId:e.providerId,accessToken:e.accessToken,domains:o})});if(t.ok){let n=await t.json();if(typeof n.maskedValue==`string`){let t=X(),r=t.find(t=>t.providerId===e.providerId);r&&(r.maskedValue=n.maskedValue,await $n(t))}else Y.warn(`OAuth replica POST ok but missing maskedValue`,{providerId:e.providerId})}else Y.warn(`OAuth replica POST non-ok`,{providerId:e.providerId,status:t.status})}}catch(t){Y.error(`OAuth replica sync failed`,{providerId:e.providerId,topology:d,error:t instanceof Error?t.message:String(t)})}}var sr=`local`;function cr(e){let t=X().find(t=>t.providerId===e);return t&&(t.accessToken||t.apiKey)||null}function lr(e){let t=X().find(t=>t.providerId===e);return t?t.accessToken||t.apiKey||(q(e).optionalApiKey?sr:null):null}function Z(e){return X().find(t=>t.providerId===e)?.baseUrl??null}function ur(e){return X().find(t=>t.providerId===e)?.deployment??null}function dr(e){return X().find(t=>t.providerId===e)?.apiVersion??null}function Q(){let e=localStorage.getItem(K)||``,t=e.indexOf(`:`);return t>=0?e.slice(t+1):e}function fr(e){let t=e.indexOf(`:`);if(t>0){let n=e.slice(0,t),r=new Set([...d(),...Ln()]),i=n.includes(`.`);if(r.has(n)||!i){localStorage.setItem(K,e);return}}let n=$();localStorage.setItem(K,`${n}:${e}`)}function pr(){return localStorage.getItem(K)||``}function $(){let e=pr(),t=e.indexOf(`:`);if(t>0)return e.slice(0,t);let n=X(),r=Q();if(r){let e=n.find(e=>Rn(e.providerId)&&zn(e.providerId,r));if(e)return e.providerId}let i=n.find(e=>Rn(e.providerId));return i?i.providerId:n.length>0?n[0].providerId:`anthropic`}function mr(e){let t=Q();localStorage.setItem(K,`${e}:${t}`)}function hr(){let e=Q();localStorage.setItem(K,e)}function gr(){return lr($())}function _r(e){let t=$();er(t,e,Z(t)??void 0)}async function vr(){await nr($())}function yr(){return Z($())}function br(e){let t=$(),n=cr(t);n&&er(t,n,e||void 0)}function xr(){let e=$(),t=cr(e);t&&er(e,t)}function Sr(){let e=X(),t=$(),n=Q();return e.map(e=>{let r={providerId:e.providerId,apiKey:e.apiKey};return e.baseUrl&&(r.baseUrl=e.baseUrl),e.providerId===t&&n&&(r.model=n),r})}async function Cr(){let e=X();await Promise.allSettled(e.map(e=>nr(e.providerId))),localStorage.removeItem(G),localStorage.removeItem(K);for(let e of kn)localStorage.removeItem(e)}function wr(e){return/^(?:gpt[-.]?|o[0-9]|chatgpt)/i.test(e)?`openai`:`anthropic`}function Tr(e,t,n,r){return{id:t,name:t,provider:e,api:r??`${e}-${wr(t)}`,baseUrl:n??``,contextWindow:2e5,maxTokens:16384,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},reasoning:!0}}function Er(e,t){return t.isOAuth||e===`azure-ai-foundry`?`anthropic`:e===`bedrock-camp`?`amazon-bedrock`:e}function Dr(e){if(!e)return Or();let t=$(),n=Z(t),r=q(t);try{let i=Dn(Er(t,r),e);if(!i?.id)throw Error(`Model ${e} not found`);let a=i;return r.isOAuth?a=J(t).find(t=>t.id===e)||{...a,api:`${t}-anthropic`,provider:t}:t===`bedrock-camp`&&(a={...a,api:`bedrock-camp-converse`,provider:`bedrock-camp`}),n&&(a={...a,baseUrl:n}),a}catch(i){if(Y.debug(`resolveModelById: pi-ai lookup miss, using provider fallback`,{providerId:t,modelId:e,error:i instanceof Error?i.message:String(i)}),r.isOAuth){let r=J(t).find(t=>t.id===e);return r?n?{...r,baseUrl:n}:r:Tr(t,e,n)}return Or()}}function Or(){let e=$(),t=Q(),n=Z(e),r=J(e),i=q(e),a=i.defaultModelId?r.find(e=>e.id.toLowerCase().includes(i.defaultModelId.toLowerCase()))?.id:void 0,o=t||a||r[0]?.id||`claude-sonnet-4-6`;try{let t=Er(e,i),a=Dn(t,o);if(!a?.id)throw Error(`Model ${o} not found in ${t} registry`);let s=a;return i.isOAuth?s=r.find(e=>e.id===o)||{...s,api:`${e}-anthropic`,provider:e}:e===`bedrock-camp`&&(s={...s,api:`bedrock-camp-converse`,provider:`bedrock-camp`}),n&&(s={...s,baseUrl:n}),s}catch(t){Y.debug(`resolveCurrentModel: pi-ai lookup miss, using provider fallback`,{providerId:e,effectiveModelId:o,error:t instanceof Error?t.message:String(t)});let a=r.find(e=>e.id===o);return a?n?{...a,baseUrl:n}:a:i.isOAuth?Tr(e,o,n):Dn(`anthropic`,`claude-sonnet-4-0`)}}function kr(e){let t=e.toLowerCase();if(!t)return null;let n=null,r=-1;for(let e of X())for(let i of J(e.providerId)){let e=i.id.toLowerCase(),a=(i.name??``).toLowerCase();if(!e.includes(t)&&!a.includes(t))continue;let o=i.contextWindow??0;(o>r||o===r&&Ar(i.id,n??``)>0)&&(r=o,n=i.id)}return n}function Ar(e,t){let n=e.match(/\d+/g)?.map(Number)??[],r=t.match(/\d+/g)?.map(Number)??[],i=Math.max(n.length,r.length);for(let e=0;e<i;e++){let t=(n[e]??0)-(r[e]??0);if(t!==0)return t}return 0}export{ir as A,br as B,q as C,$ as D,Q as E,Or as F,Xn as H,Dr as I,kr as L,ar as M,Rn as N,Gn as O,nr as P,or as R,Vn as S,cr as T,fr as U,Yn as V,mr as W,Ln as _,Un as a,ur as b,xr as c,X as d,qn as f,dr as g,lr as h,er as i,Pn as j,rr as k,hr as l,gr as m,In as n,Cr as o,Zn as p,En as r,vr as s,G as t,Sr as u,yr as v,J as w,Jn as x,Z as y,_r as z};
|