sliccy 6.256.7 → 6.256.8
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/node-server/_cloud_core/src/cone-config/cone-config-rules.d.mts +89 -0
- package/dist/node-server/_cloud_core/src/cone-config/cone-config-rules.d.mts.map +1 -0
- package/dist/node-server/_cloud_core/src/cone-config/cone-config-rules.mjs +170 -0
- package/dist/node-server/_cloud_core/src/cone-config/index.d.ts +2 -3
- package/dist/node-server/_cloud_core/src/cone-config/index.d.ts.map +1 -1
- package/dist/node-server/_cloud_core/src/cone-config/index.js +13 -79
- package/dist/node-server/_cloud_core/tests/cone-config/bundle-cases.test.d.ts +2 -0
- package/dist/node-server/_cloud_core/tests/cone-config/bundle-cases.test.d.ts.map +1 -0
- package/dist/node-server/_cloud_core/tests/cone-config/bundle-cases.test.js +57 -0
- package/dist/node-server/_cloud_core/tests/cone-config/cone-config.test.js +7 -5
- package/dist/node-server/_cloud_core/tests/fixtures/cone-config-cases.d.mts +37 -0
- package/dist/node-server/_cloud_core/tests/fixtures/cone-config-cases.d.mts.map +1 -0
- package/dist/node-server/_cloud_core/tests/fixtures/cone-config-cases.mjs +139 -0
- package/dist/node-server/_cloud_core/tests/resume-cone-config.test.js +17 -0
- package/dist/ui/.vite/manifest.json +179 -179
- package/dist/ui/assets/{account-store-btH-rhSC.js → account-store-BD1MW0QM.js} +1 -1
- package/dist/ui/assets/{account-store-CzcIBhIW.js → account-store-F-Hva1nS.js} +1 -1
- package/dist/ui/assets/{adobe-CJagkQaj.js → adobe-CLl8UgcL.js} +1 -1
- package/dist/ui/assets/{adobe-CbwrOy6h.js → adobe-CndWdX0c.js} +1 -1
- package/dist/ui/assets/{agent-panels-CWkdH3No.js → agent-panels-DH8GU_hC.js} +1 -1
- package/dist/ui/assets/{almost-bash-shell-headless-CJ_eP6rj.js → almost-bash-shell-headless-DhugB1_j.js} +12 -12
- package/dist/ui/assets/{apply-layout-BIG5g9tp.js → apply-layout-D8ntAMP_.js} +1 -1
- package/dist/ui/assets/{azure-openai-DmBsM65e.js → azure-openai-D-1XQgyJ.js} +1 -1
- package/dist/ui/assets/{azure-openai-Cw7yGm0E.js → azure-openai-LY9c836N.js} +1 -1
- package/dist/ui/assets/{cdp-fHtNpyG6.js → cdp-BpNgBtOj.js} +1 -1
- package/dist/ui/assets/{cerebras-BF4ZkjX5.js → cerebras-BZFZs9Ht.js} +1 -1
- package/dist/ui/assets/{cerebras-BRvzPIo6.js → cerebras-C2TF1niJ.js} +1 -1
- package/dist/ui/assets/{composer-speech-CYKpfumH.js → composer-speech-Dxe7pRbz.js} +1 -1
- package/dist/ui/assets/{connect-surface-eAvkKA7C.js → connect-surface-j7CbcbrP.js} +1 -1
- package/dist/ui/assets/{directed-approval-FuN8_c_j.js → directed-approval-1NtgYEGb.js} +1 -1
- package/dist/ui/assets/{emscripten-vfs-hook-Cc4WeSPd.js → emscripten-vfs-hook-Orkw8aUI.js} +1 -1
- package/dist/ui/assets/{frozen-archive-writer-CmH9_k8F.js → frozen-archive-writer-CXiseW3m.js} +1 -1
- package/dist/ui/assets/{frozen-session-delete-fM62FhkX.js → frozen-session-delete-CLQSNT5q.js} +1 -1
- package/dist/ui/assets/{frozen-session-identity-blXQV4n9.js → frozen-session-identity-Dla2v_H8.js} +1 -1
- package/dist/ui/assets/{gelatiere-unit-Bo7PCnbF.js → gelatiere-unit-DS5kYHdl.js} +1 -1
- package/dist/ui/assets/{github-C1rbK9rb.js → github-CwFqHwM7.js} +1 -1
- package/dist/ui/assets/{github-CQol1Ste.js → github-DkBtRTtj.js} +1 -1
- package/dist/ui/assets/{github-copilot-Dh5Sw_oV.js → github-copilot-BgtimT-5.js} +1 -1
- package/dist/ui/assets/{github-copilot-Da1-tlWc.js → github-copilot-DvlR4p1V.js} +1 -1
- package/dist/ui/assets/{hear-DhXegde8.js → hear-DgkNLpQK.js} +1 -1
- package/dist/ui/assets/{js-realm-worker-BSYR2sfX.js → js-realm-worker-DvaOkd8I.js} +2 -2
- package/dist/ui/assets/{jsh-executor-v3qKqkZF.js → jsh-executor-ByYCAfVx.js} +3 -3
- package/dist/ui/assets/{kernel-worker-BItmIWYW.js → kernel-worker-xyDnHfnE.js} +8 -8
- package/dist/ui/assets/{lick-ws-bridge-BOvw32aW.js → lick-ws-bridge-BztgRobQ.js} +1 -1
- package/dist/ui/assets/{lick-ws-bridge-gBNtu0RL.js → lick-ws-bridge-ViIkTZhn.js} +1 -1
- package/dist/ui/assets/{live-session-curation-8wVj6wZH.js → live-session-curation-CwlsC5Wo.js} +1 -1
- package/dist/ui/assets/{live-session-curation-7CTGumla.js → live-session-curation-vx6yGkHy.js} +1 -1
- package/dist/ui/assets/{live-session-snapshot-D8qPxZ7E.js → live-session-snapshot-CjDUliT7.js} +1 -1
- package/dist/ui/assets/{local-llm-DvbP3RyJ.js → local-llm-BDGbw8KW.js} +1 -1
- package/dist/ui/assets/{local-llm-CgwaZ6Gd.js → local-llm-Ck0NLGhL.js} +1 -1
- package/dist/ui/assets/{main-IZrprgCE.js → main-YhmBlckm.js} +3 -3
- package/dist/ui/assets/{main-cherry-CiVZP2ux.js → main-cherry-B2tRa4cV.js} +1 -1
- package/dist/ui/assets/{mcp-command-BQnTrbHl.js → mcp-command-DCFbOqLb.js} +10 -10
- package/dist/ui/assets/{memory-curation-seam-CjpYohBK.js → memory-curation-seam-bu5MdUMf.js} +1 -1
- package/dist/ui/assets/{memory-health-DiVvDJo6.js → memory-health-Cwv7orty.js} +1 -1
- package/dist/ui/assets/{memory-write-execute-CPlnwj08.js → memory-write-execute-DKunhcVV.js} +1 -1
- package/dist/ui/assets/{merge-folded-cost-into-frozen-CDpUEipJ.js → merge-folded-cost-into-frozen-DI9twAuG.js} +1 -1
- package/dist/ui/assets/{new-session-DMBvlX7U.js → new-session-DdoKKj2v.js} +2 -2
- package/dist/ui/assets/{oauth-bootstrap-z9Ak2U5k.js → oauth-bootstrap-D2zeCkqT.js} +2 -2
- package/dist/ui/assets/{onboarding-orchestrator-Cmp_7XS6.js → onboarding-orchestrator-DTY6LK4k.js} +1 -1
- package/dist/ui/assets/{openai-codex-XtzU7AV5.js → openai-codex-BtZ0emDz.js} +1 -1
- package/dist/ui/assets/{openai-codex-DObnOrti.js → openai-codex-C4ntaXUk.js} +1 -1
- package/dist/ui/assets/{openrouter-h4PBvqqd.js → openrouter-D9MOwkyn.js} +1 -1
- package/dist/ui/assets/{openrouter-B9YPpMez.js → openrouter-DbvLMk3L.js} +1 -1
- package/dist/ui/assets/{openrouter-free-DsUNrtke.js → openrouter-free-BLccMR3p.js} +1 -1
- package/dist/ui/assets/{openrouter-free-Bw98ZXz_.js → openrouter-free-CytTm0tL.js} +1 -1
- package/dist/ui/assets/{openrouter-oauth-DlBVHDiI.js → openrouter-oauth-DnEx9Rqh.js} +1 -1
- package/dist/ui/assets/{openrouter-oauth-CtAf-wKQ.js → openrouter-oauth-G9EtfjRV.js} +1 -1
- package/dist/ui/assets/{panel-rpc-handlers-C2H1GujD.js → panel-rpc-handlers-CnI0y8vs.js} +2 -2
- package/dist/ui/assets/{panelize-shell-DjEoCne9.js → panelize-shell-DUBjt6H_.js} +1 -1
- package/dist/ui/assets/{pi-edit-execution-DdXRrxQk.js → pi-edit-execution-CX4GKvdv.js} +1 -1
- package/dist/ui/assets/{provider-D88ZP1Lj.js → provider-DVbu5LnO.js} +1 -1
- package/dist/ui/assets/{provider-CkcZnU60.js → provider-Dbkq5LeU.js} +1 -1
- package/dist/ui/assets/{provider-settings-D6OJgUt2.js → provider-settings-CQsfoQ1J.js} +1 -1
- package/dist/ui/assets/provider-store-access-CYY1izR6.js +1 -0
- package/dist/ui/assets/provider-store-access-DCHamof5.js +1 -0
- package/dist/ui/assets/{providers-CNaCaxZH.js → providers-DAe9H_v8.js} +2 -2
- package/dist/ui/assets/{providers-Bh-gB-84.js → providers-IlvLc68Q.js} +1 -1
- package/dist/ui/assets/{quick-llm-D3vw1Iw4.js → quick-llm-CS859Yj_.js} +1 -1
- package/dist/ui/assets/{realm-inprocess-c5_SKCj3.js → realm-inprocess-COL-iKh1.js} +2 -2
- package/dist/ui/assets/{realm-unhandled-rejections-B-HhibQP.js → realm-unhandled-rejections-B6xaTDVi.js} +1 -1
- package/dist/ui/assets/{realm-unhandled-rejections-V5oYilet.js → realm-unhandled-rejections-C7hmQxXs.js} +1 -1
- package/dist/ui/assets/{remote-terminal-view-ByfloxIg.js → remote-terminal-view-BvUG4DYc.js} +2 -2
- package/dist/ui/assets/{restore-BByLi1Yd.js → restore-Bwl6K7p3.js} +1 -1
- package/dist/ui/assets/{run-BG76L9eu.js → run-B5g_uI07.js} +1 -1
- package/dist/ui/assets/{run-C-tci7Wb.js → run-BGGEfu-c.js} +1 -1
- package/dist/ui/assets/{run-BZCg7fqf.js → run-ibUaNBQQ.js} +2 -2
- package/dist/ui/assets/{run-CJQ6QgvR.js → run-wjLp7772.js} +2 -2
- package/dist/ui/assets/{serve-command-fOeuDlHT.js → serve-command-Dz9Stwu3.js} +2 -2
- package/dist/ui/assets/{serve-runtime-BgsoA65p.js → serve-runtime-DifvoJEx.js} +1 -1
- package/dist/ui/assets/{session-command-memory-Z4gG5kc5.js → session-command-memory-DL2jJXMG.js} +2 -2
- package/dist/ui/assets/{session-jsonl-CRoUGl0k.js → session-jsonl-C3C8hKnt.js} +1 -1
- package/dist/ui/assets/{session-search-index-C9AzKIIE.js → session-search-index-CwvVidcF.js} +1 -1
- package/dist/ui/assets/{setup-feature-flags-remote-HCx9Z23R.js → setup-feature-flags-remote-CXXeeHW_.js} +1 -1
- package/dist/ui/assets/{setup-model-catalog-C_9E6bou.js → setup-model-catalog-CbbCvN8c.js} +1 -1
- package/dist/ui/assets/{silent-renew-backoff-ByLo6zsQ.js → silent-renew-backoff-Dt40GINt.js} +1 -1
- package/dist/ui/assets/slicc-version-B12B_nYb.js +1 -0
- package/dist/ui/assets/{soundscape-KuEhg0nr.js → soundscape-BnzHIiac.js} +1 -1
- package/dist/ui/assets/{speak-Di_o2s0D.js → speak-s6Ezas3_.js} +1 -1
- package/dist/ui/assets/{sprinkle-manager-4tRf736T.js → sprinkle-manager-B6_Tq3WN.js} +1 -1
- package/dist/ui/assets/{sprinkle-renderer-EbUVsHUB.js → sprinkle-renderer-DyptAyk4.js} +1 -1
- package/dist/ui/assets/{sudo-BlHPVMLU.js → sudo-9bM5adw9.js} +1 -1
- package/dist/ui/assets/{supervisor-BjtHX13A.js → supervisor-DWUb8N1P.js} +1 -1
- package/dist/ui/assets/{sync-dialog-CG5xrbzN.js → sync-dialog-DB9gPfcg.js} +1 -1
- package/dist/ui/assets/{transformers-env-BCIh311V.js → transformers-env-D4iwHGI1.js} +1 -1
- package/dist/ui/assets/{tray-leader-DfoPsK4G.js → tray-leader-CbyHPI0I.js} +1 -1
- package/dist/ui/assets/{tray-leave-runtime-Cn6l6kQM.js → tray-leave-runtime-CbvRdJPQ.js} +1 -1
- package/dist/ui/assets/{tray-sidecar-AttyJaV8.js → tray-sidecar-B5huBZkI.js} +1 -1
- package/dist/ui/assets/{upgrade-detection-BPnMErp6.js → upgrade-detection-6edCinYk.js} +1 -1
- package/dist/ui/assets/{upgrade-to-seven-oM6Y2jpf.js → upgrade-to-seven-BHUcE9wq.js} +1 -1
- package/dist/ui/assets/{voice-reply-DhFXmtN1.js → voice-reply-c7d6CY7I.js} +1 -1
- package/dist/ui/assets/{wc-attach-B2_dNi4B.js → wc-attach-lm3QnyXs.js} +2 -2
- package/dist/ui/assets/{wc-browser-BvSPcFnk.js → wc-browser-BILPcbgN.js} +1 -1
- package/dist/ui/assets/{wc-computers-P_YXw5mk.js → wc-computers-iCzCAT2C.js} +1 -1
- package/dist/ui/assets/{wc-detached-C4uhpekQ.js → wc-detached-DFwwR4RF.js} +1 -1
- package/dist/ui/assets/{wc-extension-D3l9KUxg.js → wc-extension-0IbGxHjs.js} +2 -2
- package/dist/ui/assets/{wc-follower-BN7GwkbB.js → wc-follower-DkgntXOp.js} +3 -3
- package/dist/ui/assets/{wc-follower-oauth-PiJAsXE9.js → wc-follower-oauth-C3BLIGbb.js} +1 -1
- package/dist/ui/assets/{wc-gelatiere-aEAOP3ay.js → wc-gelatiere-CXX1_rMS.js} +1 -1
- package/dist/ui/assets/{wc-live-BeX-_7T4.js → wc-live-B-b1eo1g.js} +5 -5
- package/dist/ui/assets/{wc-nav-D7tE4cOW.js → wc-nav-CZXzwu-g.js} +2 -2
- package/dist/ui/assets/{wc-onboarding-BsRWvnNO.js → wc-onboarding-BWu-7vxU.js} +2 -2
- package/dist/ui/assets/{wc-permissions-xh98BF4d.js → wc-permissions--gzVrLeD.js} +2 -2
- package/dist/ui/assets/{wc-placeholder-C2e75ECK.js → wc-placeholder-B2d2q6zQ.js} +2 -2
- package/dist/ui/assets/{wc-profile-export-BOUD9Teb.js → wc-profile-export-rlkoo2cb.js} +3 -3
- package/dist/ui/assets/{wc-secret-request-9hLiDY0q.js → wc-secret-request-C0MKjBVT.js} +1 -1
- package/dist/ui/assets/{wc-settings-C1Ew3xtK.js → wc-settings-Dc8Gmy2S.js} +3 -3
- package/dist/ui/assets/{wc-shell-BQm4_AZ-.js → wc-shell-BhkIyAXa.js} +3 -3
- package/dist/ui/assets/{wc-shortcut-config-CG3A_xXd.js → wc-shortcut-config-b1PO-pxP.js} +1 -1
- package/dist/ui/assets/{wc-sprinkles-DfhVMlB0.js → wc-sprinkles-D20m3z91.js} +2 -2
- package/dist/ui/assets/{wc-transcript-export-D5lf1B5S.js → wc-transcript-export-mAAWaVHR.js} +2 -2
- package/dist/ui/assets/{wc-tray-DrfK5jNi.js → wc-tray-COZfixoH.js} +4 -4
- package/dist/ui/assets/welcome-detection-DMNkjk4H.js +1 -0
- package/dist/ui/assets/{whisper-session-B-Uac3-A.js → whisper-session-SzPFfAP_.js} +2 -2
- package/dist/ui/assets/{xai-grok-CHwFD6MH.js → xai-grok-B9OK_us-.js} +1 -1
- package/dist/ui/assets/{xai-grok-xZGJWELa.js → xai-grok-BC6ijUtp.js} +1 -1
- package/dist/ui/index.html +3 -3
- package/dist/ui/packages/webapp/index.html +3 -3
- package/dist/ui/packages/webapp/upgrade-to-seven.html +1 -1
- package/dist/ui/upgrade-to-seven.html +1 -1
- package/package.json +1 -1
- package/dist/ui/assets/provider-store-access-Am4wDSnr.js +0 -1
- package/dist/ui/assets/provider-store-access-bHvRNk17.js +0 -1
- package/dist/ui/assets/slicc-version-BOvQ0meA.js +0 -1
- package/dist/ui/assets/welcome-detection-D98VbCw6.js +0 -1
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
// Shared accept/reject table for the cone-config bundle rules (#4129). Run
|
|
2
|
+
// against cloud-core's validators (tests/cone-config/bundle-cases.test.ts) and
|
|
3
|
+
// github-workflow's buildConeConfigFiles (scripts/cone-config-rules.test.mjs),
|
|
4
|
+
// so the two floats can never disagree on what a valid bundle is again.
|
|
5
|
+
//
|
|
6
|
+
// `changed` names the copy whose verdict this case flipped in #4129; a case
|
|
7
|
+
// without it pins behaviour both copies already shared.
|
|
8
|
+
const ok = { name: 'TOKEN', value: 'v', domains: ['api.example.com'] };
|
|
9
|
+
/**
|
|
10
|
+
* @typedef {{
|
|
11
|
+
* id: string;
|
|
12
|
+
* secret: unknown;
|
|
13
|
+
* reject?: string;
|
|
14
|
+
* domains?: string[];
|
|
15
|
+
* changed?: Array<'cloud-core' | 'github-workflow'>;
|
|
16
|
+
* }} SecretCase
|
|
17
|
+
*/
|
|
18
|
+
/** @type {SecretCase[]} */
|
|
19
|
+
export const SECRET_CASES = [
|
|
20
|
+
{ id: 'plain identifier', secret: ok, domains: ['api.example.com'] },
|
|
21
|
+
{
|
|
22
|
+
id: 'dotted mount secret name',
|
|
23
|
+
secret: { ...ok, name: 's3.r2.access_key_id', domains: ['*.r2.cloudflarestorage.com'] },
|
|
24
|
+
domains: ['*.r2.cloudflarestorage.com'],
|
|
25
|
+
changed: ['cloud-core'],
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
id: 'hyphenated name',
|
|
29
|
+
secret: { ...ok, name: 'db.prod-eu.password' },
|
|
30
|
+
domains: ['api.example.com'],
|
|
31
|
+
changed: ['cloud-core'],
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
id: 'reserved oauth.* namespace',
|
|
35
|
+
secret: { ...ok, name: 'oauth.github.token' },
|
|
36
|
+
reject: 'oauth\\.\\* namespace is reserved',
|
|
37
|
+
changed: ['cloud-core'],
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
id: 'name shadowing another secret’s _DOMAINS line',
|
|
41
|
+
secret: { ...ok, name: 'ADOBE_IMS_TOKEN_DOMAINS', value: 'evil.example' },
|
|
42
|
+
reject: '_DOMAINS are reserved',
|
|
43
|
+
changed: ['cloud-core', 'github-workflow'],
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
id: 'empty domains list',
|
|
47
|
+
secret: { ...ok, domains: [] },
|
|
48
|
+
reject: 'non-empty',
|
|
49
|
+
changed: ['cloud-core'],
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
id: 'untrimmed domains are trimmed',
|
|
53
|
+
secret: { ...ok, domains: [' api.example.com ', '\t*.example.com'] },
|
|
54
|
+
domains: ['api.example.com', '*.example.com'],
|
|
55
|
+
changed: ['cloud-core'],
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
id: 'blank domain entry',
|
|
59
|
+
secret: { ...ok, domains: ['api.example.com', ' '] },
|
|
60
|
+
reject: 'non-blank',
|
|
61
|
+
changed: ['cloud-core'],
|
|
62
|
+
},
|
|
63
|
+
{ id: 'name starting with a digit', secret: { ...ok, name: '9LIVES' }, reject: 'name must' },
|
|
64
|
+
{ id: 'name with =', secret: { ...ok, name: 'A=B' }, reject: 'name must' },
|
|
65
|
+
{ id: 'name with a space', secret: { ...ok, name: 'A B' }, reject: 'name must' },
|
|
66
|
+
{ id: 'name with a newline', secret: { ...ok, name: 'A\nB' }, reject: 'name must' },
|
|
67
|
+
{ id: 'missing name', secret: { value: 'v', domains: ['d'] }, reject: 'name must' },
|
|
68
|
+
{ id: 'multiline value', secret: { ...ok, value: 'a\nb' }, reject: 'single-line' },
|
|
69
|
+
{ id: 'CR in value', secret: { ...ok, value: 'a\rb' }, reject: 'single-line' },
|
|
70
|
+
{ id: 'missing value', secret: { name: 'A', domains: ['d'] }, reject: 'single-line' },
|
|
71
|
+
{ id: 'domains not an array', secret: { ...ok, domains: 'a,b' }, reject: 'string\\[\\]' },
|
|
72
|
+
{ id: 'non-string domain', secret: { ...ok, domains: [1] }, reject: 'string\\[\\]' },
|
|
73
|
+
{ id: 'comma in a domain', secret: { ...ok, domains: ['a,b'] }, reject: 'comma-free' },
|
|
74
|
+
{ id: 'newline in a domain', secret: { ...ok, domains: ['a\nb'] }, reject: 'single-line' },
|
|
75
|
+
{ id: 'secret not an object', secret: null, reject: 'not an object' },
|
|
76
|
+
];
|
|
77
|
+
/**
|
|
78
|
+
* @typedef {{
|
|
79
|
+
* id: string;
|
|
80
|
+
* account: unknown;
|
|
81
|
+
* reject?: string;
|
|
82
|
+
* changed?: Array<'cloud-core' | 'github-workflow'>;
|
|
83
|
+
* }} AccountCase
|
|
84
|
+
*/
|
|
85
|
+
/** @type {AccountCase[]} */
|
|
86
|
+
export const ACCOUNT_CASES = [
|
|
87
|
+
{
|
|
88
|
+
id: 'oauth account keeps only known fields',
|
|
89
|
+
account: {
|
|
90
|
+
providerId: 'github',
|
|
91
|
+
kind: 'oauth',
|
|
92
|
+
accessToken: 'gho',
|
|
93
|
+
refreshToken: 'ghr',
|
|
94
|
+
tokenExpiresAt: 1,
|
|
95
|
+
userName: 'octocat',
|
|
96
|
+
baseUrl: 'https://x',
|
|
97
|
+
extra: 'dropped',
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
id: 'oauth account with only the required fields',
|
|
102
|
+
account: { providerId: 'adobe', kind: 'oauth', accessToken: 'ims', tokenExpiresAt: '1' },
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
id: 'apikey account keeps only known fields',
|
|
106
|
+
account: {
|
|
107
|
+
providerId: 'azure',
|
|
108
|
+
kind: 'apikey',
|
|
109
|
+
apiKey: 'k',
|
|
110
|
+
baseUrl: 'https://x',
|
|
111
|
+
deployment: 'd',
|
|
112
|
+
apiVersion: 'v',
|
|
113
|
+
accessToken: 'dropped',
|
|
114
|
+
},
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
id: 'empty providerId',
|
|
118
|
+
account: { providerId: '', kind: 'apikey', apiKey: 'k' },
|
|
119
|
+
reject: 'providerId required',
|
|
120
|
+
changed: ['cloud-core'],
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
id: 'empty accessToken',
|
|
124
|
+
account: { providerId: 'x', kind: 'oauth', accessToken: '' },
|
|
125
|
+
reject: 'requires accessToken',
|
|
126
|
+
changed: ['cloud-core'],
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
id: 'empty apiKey',
|
|
130
|
+
account: { providerId: 'x', kind: 'apikey', apiKey: '' },
|
|
131
|
+
reject: 'requires apiKey',
|
|
132
|
+
changed: ['cloud-core'],
|
|
133
|
+
},
|
|
134
|
+
{ id: 'unknown kind', account: { providerId: 'x', kind: 'saml' }, reject: 'kind must be' },
|
|
135
|
+
{ id: 'missing kind', account: { providerId: 'x' }, reject: 'kind' },
|
|
136
|
+
{ id: 'account not an object', account: 'x', reject: 'not an object' },
|
|
137
|
+
];
|
|
138
|
+
export const VALID_EFFORT_LEVELS = ['off', 'minimal', 'low', 'medium', 'high', 'xhigh'];
|
|
139
|
+
export const INVALID_EFFORT_LEVELS = ['max', 'HIGH', 'ultra'];
|
|
@@ -63,4 +63,21 @@ describe('applyConeConfigDelta (read-modify-write of both files)', () => {
|
|
|
63
63
|
it('surfaces a clear error for a corrupt cone-config.json', () => {
|
|
64
64
|
expect(() => applyConeConfigDelta('{not json', '', {})).toThrow(/corrupt/);
|
|
65
65
|
});
|
|
66
|
+
// #4129: the agent can persist dotted names (S3 mount profiles) into the
|
|
67
|
+
// cone's secrets.env; the identifier-only rule used to fail every resume.
|
|
68
|
+
it('resumes a cone whose secrets.env holds dotted mount secrets', () => {
|
|
69
|
+
const out = applyConeConfigDelta(JSON.stringify({ model: 'adobe:claude-opus-4-6', accounts: [] }), 's3.r2.access_key_id=AK\ns3.r2.access_key_id_DOMAINS=*.r2.cloudflarestorage.com\n', { upsert: { secrets: [{ name: 'NEW', value: 'n', domains: ['x.com'] }] } });
|
|
70
|
+
expect(out.secretsEnv).toContain('s3.r2.access_key_id=AK\ns3.r2.access_key_id_DOMAINS=*.r2.cloudflarestorage.com\n');
|
|
71
|
+
expect(out.index.secretNames).toEqual(['s3.r2.access_key_id', 'NEW']);
|
|
72
|
+
});
|
|
73
|
+
// Deliberate: the stricter account rules apply to the persisted base too. An
|
|
74
|
+
// empty credential (only a raw-API start under the old rules could store one)
|
|
75
|
+
// fails the resume with the entry named instead of booting a dead account.
|
|
76
|
+
it('rejects a persisted account with an empty credential on resume', () => {
|
|
77
|
+
const existing = JSON.stringify({
|
|
78
|
+
model: 'adobe:claude-opus-4-6',
|
|
79
|
+
accounts: [{ providerId: 'adobe', kind: 'oauth', accessToken: '' }],
|
|
80
|
+
});
|
|
81
|
+
expect(() => applyConeConfigDelta(existing, '', {})).toThrow(/accounts\[0\]: oauth account requires accessToken/);
|
|
82
|
+
});
|
|
66
83
|
});
|