auramaxx 0.0.13 → 0.0.14
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/.next/BUILD_ID +1 -1
- package/.next/app-build-manifest.json +24 -24
- package/.next/app-path-routes-manifest.json +6 -6
- package/.next/build-manifest.json +2 -2
- package/.next/prerender-manifest.json +36 -36
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +1 -1
- package/.next/server/app/api/[...doc]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/api/agent-requests/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/apps/install/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/apps/manifests/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/apps/static/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/docs/plain/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/events/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/import-from-openclaw/[channel]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/import-from-openclaw/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/import-from-openclaw/validate/[channel]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/page_client-reference-manifest.js +1 -1
- package/.next/server/app/api/restart/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/update/route.js +7 -8
- package/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/version/route.js +1 -1
- package/.next/server/app/api/version/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/workspace/[id]/apps/[wid]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/workspace/[id]/apps/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/workspace/[id]/export/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/workspace/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/workspace/config/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/workspace/import/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/workspace/route_client-reference-manifest.js +1 -1
- package/.next/server/app/app-legacy-do-not-use/page_client-reference-manifest.js +1 -1
- package/.next/server/app/app-legacy-do-not-use.html +1 -1
- package/.next/server/app/app-legacy-do-not-use.rsc +1 -1
- package/.next/server/app/approve/[actionId]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/docs/[...doc]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/docs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/health/page_client-reference-manifest.js +1 -1
- package/.next/server/app/health.html +1 -1
- package/.next/server/app/health.rsc +1 -1
- package/.next/server/app/hello/page_client-reference-manifest.js +1 -1
- package/.next/server/app/hello.html +1 -1
- package/.next/server/app/hello.rsc +1 -1
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +2 -2
- package/.next/server/app/page.js +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
- package/.next/server/app/privacy.html +1 -1
- package/.next/server/app/privacy.rsc +1 -1
- package/.next/server/app/share/[token]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/terms/page_client-reference-manifest.js +1 -1
- package/.next/server/app/terms.html +1 -1
- package/.next/server/app/terms.rsc +1 -1
- package/.next/server/app/yo/page.js +1 -1
- package/.next/server/app/yo/page_client-reference-manifest.js +1 -1
- package/.next/server/app/yo.html +1 -1
- package/.next/server/app/yo.rsc +2 -2
- package/.next/server/app-paths-manifest.json +6 -6
- package/.next/server/functions-config-manifest.json +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/app/{page-16dfcd1c7cc88bcc.js → page-617dd0e03d79e94f.js} +1 -1
- package/.next/static/chunks/app/yo/page-fceb03605805cb44.js +1 -0
- package/.next/trace +28 -28
- package/README.md +1 -1
- package/docs/AGENT_SETUP.md +1 -1
- package/docs/AUTH.md +1 -1
- package/docs/MCP.md +12 -0
- package/docs/SKILLS.md +1 -1
- package/docs/api/secrets/credentials.md +9 -0
- package/docs/external/POLICY.md +2 -2
- package/package.json +1 -1
- package/skills/auramaxx/SKILL.md +13 -31
- package/skills/auramaxx/docs/AGENT_SETUP.md +1 -1
- package/src/app/UnlockPageClient.tsx +9 -9
- package/src/app/api/update/route.ts +9 -10
- package/src/app/yo/page.tsx +1 -1
- package/src/server/cli/commands/agent.ts +58 -0
- package/src/server/cli/commands/init.ts +9 -9
- package/src/server/cli/lib/credential-resolve.ts +20 -1
- package/src/server/cli/lib/local-agent-trust.ts +4 -3
- package/src/server/lib/agent-profiles.ts +4 -3
- package/src/server/lib/update-check.ts +4 -0
- package/src/server/mcp/server.ts +83 -14
- package/src/server/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -1
- package/src/server/routes/credentials.ts +48 -5
- package/src/server/tests/cli/agent-auth.test.ts +114 -0
- package/src/server/tests/cli/local-agent-trust.test.ts +11 -6
- package/src/server/tests/endpoints/credentials.test.ts +40 -18
- package/src/server/tests/endpoints/escalation-migration-gate.test.ts +1 -1
- package/src/server/tests/lib/agent-profiles.test.ts +6 -0
- package/src/server/tests/lib/update-check.test.ts +9 -1
- package/.next/static/chunks/app/yo/page-719dc5f213fdfb30.js +0 -1
- /package/.next/static/{WshFGr6RxGYP6AbWuT9OG → 8ep63d3doVXsmbm1zj5k5}/_buildManifest.js +0 -0
- /package/.next/static/{WshFGr6RxGYP6AbWuT9OG → 8ep63d3doVXsmbm1zj5k5}/_ssgManifest.js +0 -0
|
@@ -329,7 +329,7 @@ describe('Credential Endpoints', () => {
|
|
|
329
329
|
expect(getDeletedRes.status).toBe(404);
|
|
330
330
|
});
|
|
331
331
|
|
|
332
|
-
it('should request human approval when
|
|
332
|
+
it('should only request human approval when excluded fields are explicitly requested', async () => {
|
|
333
333
|
const { publicKey, privateKey } = generateKeyPairSync('rsa', {
|
|
334
334
|
modulusLength: 2048,
|
|
335
335
|
publicKeyEncoding: { type: 'spki', format: 'pem' },
|
|
@@ -391,21 +391,39 @@ describe('Credential Endpoints', () => {
|
|
|
391
391
|
.post(`/credentials/${loginId}/read`)
|
|
392
392
|
.set('Authorization', `Bearer ${token}`)
|
|
393
393
|
.send({});
|
|
394
|
-
expect(loginRead.status).toBe(
|
|
395
|
-
|
|
396
|
-
expect(
|
|
397
|
-
|
|
394
|
+
expect(loginRead.status).toBe(200);
|
|
395
|
+
const loginDecrypted = decryptCredentialPayload(loginRead.body.encrypted, privateKey);
|
|
396
|
+
expect(loginDecrypted.fields.map((field) => field.key)).not.toContain('password');
|
|
397
|
+
expect(loginDecrypted.fields.map((field) => field.key)).toContain('notes');
|
|
398
|
+
|
|
399
|
+
const cardRead = await request(app)
|
|
400
|
+
.post(`/credentials/${cardId}/read`)
|
|
401
|
+
.set('Authorization', `Bearer ${token}`)
|
|
402
|
+
.send({});
|
|
403
|
+
expect(cardRead.status).toBe(200);
|
|
404
|
+
const cardDecrypted = decryptCredentialPayload(cardRead.body.encrypted, privateKey);
|
|
405
|
+
expect(cardDecrypted.fields.map((field) => field.key)).toContain('number');
|
|
406
|
+
expect(cardDecrypted.fields.map((field) => field.key)).not.toContain('cvv');
|
|
407
|
+
|
|
408
|
+
const loginExplicitRead = await request(app)
|
|
409
|
+
.post(`/credentials/${loginId}/read`)
|
|
410
|
+
.set('Authorization', `Bearer ${token}`)
|
|
411
|
+
.send({ requestedFields: ['password'] });
|
|
412
|
+
expect(loginExplicitRead.status).toBe(403);
|
|
413
|
+
expect(loginExplicitRead.body.reasonCode).toBe('DENY_EXCLUDED_FIELD');
|
|
414
|
+
expect(loginExplicitRead.body.requiresHumanApproval).toBe(true);
|
|
415
|
+
const loginReqId = (loginExplicitRead.body.reqId ?? loginExplicitRead.body.requestId) as string | undefined;
|
|
398
416
|
expect(typeof loginReqId).toBe('string');
|
|
399
|
-
expect(typeof
|
|
417
|
+
expect(typeof loginExplicitRead.body.secret).toBe('string');
|
|
400
418
|
const expectedPollUrl = `http://127.0.0.1:4242/auth/${encodeURIComponent(loginReqId as string)}`;
|
|
401
|
-
expect(
|
|
402
|
-
expect(
|
|
419
|
+
expect(loginExplicitRead.body.pollUrl).toBe(expectedPollUrl);
|
|
420
|
+
expect(loginExplicitRead.body.claim).toMatchObject({
|
|
403
421
|
method: 'GET',
|
|
404
422
|
endpoint: `/auth/${encodeURIComponent(loginReqId as string)}`,
|
|
405
423
|
});
|
|
406
|
-
expect(
|
|
407
|
-
expect(
|
|
408
|
-
expect(
|
|
424
|
+
expect(loginExplicitRead.body.approvalFlow?.mode).toBe('one_time_scoped_read');
|
|
425
|
+
expect(loginExplicitRead.body.requestedFields).toEqual(expect.arrayContaining(['password']));
|
|
426
|
+
expect(loginExplicitRead.body.effectiveExcludeFields).toEqual(expect.arrayContaining(['password']));
|
|
409
427
|
|
|
410
428
|
const loginApproval = await testPrisma.humanAction.findUnique({
|
|
411
429
|
where: { id: loginReqId as string },
|
|
@@ -426,13 +444,13 @@ describe('Credential Endpoints', () => {
|
|
|
426
444
|
expect(loginApprovalMeta.credentialAccess?.maxReads).toBe(1);
|
|
427
445
|
expect(loginApprovalMeta.credentialAccess?.ttl).toBe(300);
|
|
428
446
|
|
|
429
|
-
const
|
|
447
|
+
const cardExplicitRead = await request(app)
|
|
430
448
|
.post(`/credentials/${cardId}/read`)
|
|
431
449
|
.set('Authorization', `Bearer ${token}`)
|
|
432
|
-
.send({});
|
|
433
|
-
expect(
|
|
434
|
-
expect(
|
|
435
|
-
expect(
|
|
450
|
+
.send({ requestedFields: ['cvv'] });
|
|
451
|
+
expect(cardExplicitRead.status).toBe(403);
|
|
452
|
+
expect(cardExplicitRead.body.reasonCode).toBe('DENY_EXCLUDED_FIELD');
|
|
453
|
+
expect(cardExplicitRead.body.requestedFields).toEqual(expect.arrayContaining(['cvv']));
|
|
436
454
|
});
|
|
437
455
|
|
|
438
456
|
it('should issue scoped temporary read access after excluded-field approval', async () => {
|
|
@@ -487,7 +505,7 @@ describe('Credential Endpoints', () => {
|
|
|
487
505
|
const deniedRead = await request(app)
|
|
488
506
|
.post(`/credentials/${credentialId}/read`)
|
|
489
507
|
.set('Authorization', `Bearer ${token}`)
|
|
490
|
-
.send({});
|
|
508
|
+
.send({ requestedFields: ['password'] });
|
|
491
509
|
expect(deniedRead.status).toBe(403);
|
|
492
510
|
expect(deniedRead.body.reasonCode).toBe('DENY_EXCLUDED_FIELD');
|
|
493
511
|
expect(deniedRead.body.routeId).toBe(ESCALATION_ROUTE_IDS.CREDENTIALS_READ_EXCLUDED_FIELD);
|
|
@@ -594,6 +612,7 @@ describe('Credential Endpoints', () => {
|
|
|
594
612
|
.post(`/credentials/${credentialId}/read`)
|
|
595
613
|
.set('Authorization', `Bearer ${token}`)
|
|
596
614
|
.send({
|
|
615
|
+
requestedFields: ['password'],
|
|
597
616
|
requestedPolicySource: 'derived_403',
|
|
598
617
|
requestedPolicy: {
|
|
599
618
|
permissions: ['admin:*'],
|
|
@@ -642,6 +661,7 @@ describe('Credential Endpoints', () => {
|
|
|
642
661
|
.post(`/credentials/${credentialId}/read`)
|
|
643
662
|
.set('Authorization', `Bearer ${token}`)
|
|
644
663
|
.send({
|
|
664
|
+
requestedFields: ['password'],
|
|
645
665
|
requestedPolicySource: 'derived_403',
|
|
646
666
|
requestedPolicy: 'bad-value',
|
|
647
667
|
});
|
|
@@ -688,6 +708,7 @@ describe('Credential Endpoints', () => {
|
|
|
688
708
|
.post(`/credentials/${credentialId}/read`)
|
|
689
709
|
.set('Authorization', `Bearer ${token}`)
|
|
690
710
|
.send({
|
|
711
|
+
requestedFields: ['password'],
|
|
691
712
|
requestedPolicySource: 'agent',
|
|
692
713
|
requestedPolicy: {
|
|
693
714
|
permissions: ['secret:read'],
|
|
@@ -711,6 +732,7 @@ describe('Credential Endpoints', () => {
|
|
|
711
732
|
.post(`/credentials/${credentialId}/read`)
|
|
712
733
|
.set('Authorization', `Bearer ${token}`)
|
|
713
734
|
.send({
|
|
735
|
+
requestedFields: ['password'],
|
|
714
736
|
requestedPolicySource: 'agent',
|
|
715
737
|
requestedPolicy: {
|
|
716
738
|
permissions: ['admin:*'],
|
|
@@ -864,7 +886,7 @@ describe('Credential Endpoints', () => {
|
|
|
864
886
|
const deniedRead = await request(app)
|
|
865
887
|
.post(`/credentials/${credentialId}/read`)
|
|
866
888
|
.set('Authorization', `Bearer ${token}`)
|
|
867
|
-
.send({});
|
|
889
|
+
.send({ requestedFields: ['password'] });
|
|
868
890
|
expect(deniedRead.status).toBe(403);
|
|
869
891
|
expect(deniedRead.body.reasonCode).toBe('DENY_EXCLUDED_FIELD');
|
|
870
892
|
expect(deniedRead.body.routeId).toBe(ESCALATION_ROUTE_IDS.CREDENTIALS_READ_EXCLUDED_FIELD);
|
|
@@ -226,7 +226,7 @@ describe('Escalation rollout migration gates', () => {
|
|
|
226
226
|
const readExcludedFieldRes = await request(app)
|
|
227
227
|
.post(`/credentials/${credentialId}/read`)
|
|
228
228
|
.set('Authorization', `Bearer ${readExcludedFieldToken}`)
|
|
229
|
-
.send({});
|
|
229
|
+
.send({ requestedFields: ['password'] });
|
|
230
230
|
|
|
231
231
|
expect(readExcludedFieldRes.status).toBe(403);
|
|
232
232
|
expect(readExcludedFieldRes.body.contractVersion).toBe(ESCALATION_CONTRACT_VERSION);
|
|
@@ -53,6 +53,12 @@ describe('agent profiles resolver', () => {
|
|
|
53
53
|
expect(policy.credentialAccess.maxReads).toBe(100);
|
|
54
54
|
expect(policy.overrideDelta).toEqual(['maxReads', 'ttlSeconds']);
|
|
55
55
|
});
|
|
56
|
+
|
|
57
|
+
it('scopes dev profile credential access to primary + legacy alias only', () => {
|
|
58
|
+
const policy = resolveProfileToEffectivePolicy({ profileId: 'dev' });
|
|
59
|
+
expect(policy.credentialAccess.read).toEqual(['agent:agent', 'agent:primary']);
|
|
60
|
+
expect(policy.credentialAccess.write).toEqual(['agent:agent', 'agent:primary']);
|
|
61
|
+
});
|
|
56
62
|
});
|
|
57
63
|
|
|
58
64
|
describe('describeProfile', () => {
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
import { describe, expect, it } from 'vitest';
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
buildNpxLatestCommand,
|
|
4
|
+
buildUpdateCommand,
|
|
5
|
+
buildUpdateFallbackCommand,
|
|
6
|
+
buildUpdateForceCommand,
|
|
7
|
+
buildVersionInfo,
|
|
8
|
+
isNewerVersion,
|
|
9
|
+
} from '../../lib/update-check';
|
|
3
10
|
|
|
4
11
|
describe('update-check helpers', () => {
|
|
5
12
|
it('detects newer versions', () => {
|
|
@@ -12,6 +19,7 @@ describe('update-check helpers', () => {
|
|
|
12
19
|
const info = buildVersionInfo('1.0.0', '1.1.0');
|
|
13
20
|
expect(info.updateAvailable).toBe(true);
|
|
14
21
|
expect(buildUpdateCommand()).toBe('npm install -g auramaxx --foreground-scripts');
|
|
22
|
+
expect(buildUpdateForceCommand()).toBe('npm install -g auramaxx --foreground-scripts --force');
|
|
15
23
|
expect(buildNpxLatestCommand()).toBe('npx --yes auramaxx@latest');
|
|
16
24
|
expect(buildNpxLatestCommand('auramaxx', ['restart'])).toBe('npx --yes auramaxx@latest restart');
|
|
17
25
|
expect(buildUpdateFallbackCommand()).toBe('npx --yes auramaxx@latest start');
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5863],{20063:(e,t,a)=>{"use strict";var r=a(47260);a.o(r,"useParams")&&a.d(t,{useParams:function(){return r.useParams}}),a.o(r,"usePathname")&&a.d(t,{usePathname:function(){return r.usePathname}}),a.o(r,"useRouter")&&a.d(t,{useRouter:function(){return r.useRouter}}),a.o(r,"useSearchParams")&&a.d(t,{useSearchParams:function(){return r.useSearchParams}})},44265:(e,t,a)=>{"use strict";a.d(t,{default:()=>o});var r=a(95155),s=a(65685);function o(){let{colorMode:e,setColorMode:t}=(0,s.D)(),a="light"===e;return(0,r.jsx)("button",{onClick:()=>{t(a?"dark":"light")},className:"p-1.5 text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] hover:bg-[var(--color-surface,#ffffff)]/50 transition-colors rounded","aria-label":a?"Switch to dark mode":"Switch to light mode",children:a?(0,r.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,r.jsx)("path",{d:"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"})}):(0,r.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("circle",{cx:"12",cy:"12",r:"5"}),(0,r.jsx)("line",{x1:"12",y1:"1",x2:"12",y2:"3"}),(0,r.jsx)("line",{x1:"12",y1:"21",x2:"12",y2:"23"}),(0,r.jsx)("line",{x1:"4.22",y1:"4.22",x2:"5.64",y2:"5.64"}),(0,r.jsx)("line",{x1:"18.36",y1:"18.36",x2:"19.78",y2:"19.78"}),(0,r.jsx)("line",{x1:"1",y1:"12",x2:"3",y2:"12"}),(0,r.jsx)("line",{x1:"21",y1:"12",x2:"23",y2:"12"}),(0,r.jsx)("line",{x1:"4.22",y1:"19.78",x2:"5.64",y2:"18.36"}),(0,r.jsx)("line",{x1:"18.36",y1:"5.64",x2:"19.78",y2:"4.22"})]})})}},50588:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>b});var r=a(95155),s=a(52619),o=a.n(s),n=a(20063),l=a(12115),c=a(44265),i=a(53667),x=a(65685);let d={npm:"npm install -g auramaxx",npx:"npx -y auramaxx"},p="auramaxx",m=["/ss-light1.webp","/ss-light2.webp","/ss-light3.webp"],h=["/ss-dark1.webp","/ss-dark2.webp","/ss-dark3.webp"],u=[{src:"/agent9.png",label:"Agent 1",width:"clamp(24px, 3.8vw, 40px)",height:"clamp(34px, 5.6vw, 58px)",baselineOffset:"clamp(4px, 0.8vw, 8px)",spriteY:"0%",cropBottom:"4px"},{src:"/agent10.png",label:"Agent 2",width:"clamp(28px, 4.4vw, 46px)",height:"clamp(40px, 6.4vw, 66px)",baselineOffset:"0px",spriteY:"0%",cropBottom:"0px"},{src:"/agent1.png",label:"Agent 3",width:"clamp(28px, 4.4vw, 46px)",height:"clamp(40px, 6.4vw, 66px)",baselineOffset:"0px",spriteY:"0%",cropBottom:"0px"},{src:"/agent2.png",label:"Agent 4",width:"clamp(28px, 4.4vw, 46px)",height:"clamp(40px, 6.4vw, 66px)",baselineOffset:"0px",spriteY:"0%",cropBottom:"0px"},{src:"/agent3.png",label:"Agent 5",width:"clamp(28px, 4.4vw, 46px)",height:"clamp(40px, 6.4vw, 66px)",baselineOffset:"0px",spriteY:"0%",cropBottom:"0px"},{src:"/agent4.png",label:"Agent 6",width:"clamp(28px, 4.4vw, 46px)",height:"clamp(40px, 6.4vw, 66px)",baselineOffset:"0px",spriteY:"0%",cropBottom:"0px"},{src:"/agent5.png",label:"Agent 7",width:"clamp(28px, 4.4vw, 46px)",height:"clamp(40px, 6.4vw, 66px)",baselineOffset:"0px",spriteY:"0%",cropBottom:"0px"},{src:"/agent6.png",label:"Agent 8",width:"clamp(28px, 4.4vw, 46px)",height:"clamp(40px, 6.4vw, 66px)",baselineOffset:"0px",spriteY:"0%",cropBottom:"0px"},{src:"/agent7.png",label:"Agent 9",width:"clamp(28px, 4.4vw, 46px)",height:"clamp(40px, 6.4vw, 66px)",baselineOffset:"0px",spriteY:"0%",cropBottom:"0px"},{src:"/agent8.png",label:"Agent 10",width:"clamp(28px, 4.4vw, 46px)",height:"clamp(40px, 6.4vw, 66px)",baselineOffset:"0px",spriteY:"0%",cropBottom:"0px"}];function f(e){let t=1e4*Math.sin(e);return t-Math.floor(t)}function b(){let e=(0,n.useRouter)(),{colorMode:t}=(0,x.D)(),[a,s]=(0,l.useState)("npm"),[b,g]=(0,l.useState)(!1),[v,w]=(0,l.useState)(0),[y,k]=(0,l.useState)(!1),[j,N]=(0,l.useState)(!1),A=(0,l.useMemo)(()=>d[a],[a]),M=(0,l.useMemo)(()=>"dark"===t?h:m,[t]),P=(0,l.useMemo)(()=>Array.from({length:4},()=>u).flat(),[]);(0,l.useEffect)(()=>{let e=window.location.hostname.toLowerCase();g("auramaxx.sh"===e||"www.auramaxx.sh"===e)},[]),(0,l.useEffect)(()=>{let e=()=>{N(window.innerWidth<768)};return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[]),(0,l.useEffect)(()=>{let e=window.setInterval(()=>{w(e=>(e+1)%M.length)},5600);return()=>window.clearInterval(e)},[M]),(0,l.useEffect)(()=>{if(!y)return;let e=window.setTimeout(()=>{k(!1)},1500);return()=>window.clearTimeout(e)},[y]),(0,l.useEffect)(()=>{w(0)},[t]);let S=M.length,C=async()=>{try{await navigator.clipboard.writeText(A),k(!0)}catch(e){k(!1)}};return(0,r.jsxs)("main",{className:"min-h-screen bg-[var(--color-background,#f4f4f5)] relative overflow-hidden","data-testid":"yo-page-shell",children:[(0,r.jsxs)("div",{className:"fixed inset-0 pointer-events-none z-0 overflow-hidden","aria-hidden":"true",children:[(0,r.jsx)("div",{className:"absolute inset-0 bg-grid-adaptive bg-[size:4rem_4rem] opacity-30"}),(0,r.jsx)("div",{className:"absolute inset-0 tyvek-texture opacity-40 mix-blend-multiply"}),(0,r.jsx)("div",{className:"absolute bottom-[5%] right-[5%] opacity-5 select-none","data-testid":"yo-background-branding",children:(0,r.jsx)("h1",{className:"text-[15vw] font-bold leading-none text-[var(--color-text,#0a0a0a)] font-mono tracking-tighter text-right",children:"AURAMAXX"})}),(0,r.jsx)("div",{className:"absolute top-10 left-10 w-32 h-32 border-l-4 border-t-4 border-[var(--color-text,#0a0a0a)] opacity-10",children:(0,r.jsx)("div",{className:"absolute top-2 left-2 w-4 h-4 bg-[var(--color-text,#0a0a0a)]"})}),(0,r.jsx)("div",{className:"absolute bottom-10 right-10 w-32 h-32 border-r-4 border-b-4 border-[var(--color-text,#0a0a0a)] opacity-10 flex items-end justify-end",children:(0,r.jsx)("div",{className:"absolute bottom-2 right-2 w-4 h-4 bg-[var(--color-text,#0a0a0a)]"})})]}),(0,r.jsxs)("div",{className:"fixed top-5 right-4 sm:top-7 sm:right-6 z-30 flex items-center gap-2 sm:gap-3 font-mono text-[9px] sm:text-[10px] tracking-widest",children:[(0,r.jsx)(o(),{href:"/docs",className:"text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] transition-colors",children:"DOCS"}),(0,r.jsx)(o(),{href:"/api",className:"text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] transition-colors",children:"API"}),!b&&(0,r.jsx)(o(),{href:"/",className:"text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] transition-colors",children:"HOME"}),(0,r.jsx)("a",{href:"https://github.com/Aura-Industry/auramaxx",target:"_blank",rel:"noopener noreferrer",className:"text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] transition-colors",children:"GITHUB"}),(0,r.jsx)("a",{href:"https://x.com/npxauramaxx",target:"_blank",rel:"noopener noreferrer",className:"text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] transition-colors",children:"X"}),(0,r.jsx)("a",{href:"https://x.com/hi_im_nico",target:"_blank",rel:"noopener noreferrer",className:"text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] transition-colors",children:"HELP"}),(0,r.jsx)(c.default,{})]}),(0,r.jsxs)("div",{className:"fixed bottom-4 right-4 sm:bottom-6 sm:right-6 z-30 flex items-center gap-3 font-mono text-[9px] sm:text-[10px] tracking-widest",children:[(0,r.jsx)(o(),{href:"/privacy",className:"text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] transition-colors",children:"PRIVACY POLICY"}),(0,r.jsx)(o(),{href:"/terms",className:"text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] transition-colors",children:"TERMS"})]}),(0,r.jsxs)("div",{className:"fixed top-4 left-4 sm:top-6 sm:left-6 z-30 flex items-center gap-2 sm:gap-3",children:[(0,r.jsx)(o(),{href:"/",className:"w-8 h-8 sm:w-10 sm:h-10 block hover:opacity-80 transition-opacity","aria-label":"AuraMaxx home",children:(0,r.jsx)("img",{src:"/logo.webp",alt:"AuraMaxx",className:"w-full h-full object-contain"})}),(0,r.jsxs)("div",{className:"hidden sm:flex sm:flex-col sm:leading-tight",children:[(0,r.jsx)(o(),{href:"/",className:"font-black text-sm tracking-tight text-[var(--color-text,#0a0a0a)] hover:opacity-80 transition-opacity",children:"AURAMAXX"}),(0,r.jsx)("a",{href:"https://x.com/hi_im_nico",target:"_blank",rel:"noopener noreferrer",className:"text-[10px] text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] transition-colors",children:"by @hi_im_nico, with love"})]})]}),(0,r.jsx)("div",{className:"fixed top-20 left-1/2 z-20 w-full max-w-4xl -translate-x-1/2 px-4 pointer-events-none sm:top-24",children:(0,r.jsxs)("div",{className:"mx-auto w-full max-w-[min(94vw,740px)] bg-[var(--color-surface,#f4f4f2)] clip-specimen border-mech shadow-mech overflow-hidden font-mono corner-marks pointer-events-auto",children:[(0,r.jsxs)("div",{className:"px-4 py-2 border-b border-[var(--color-border,#d4d4d8)] bg-[var(--color-surface-alt,#fafafa)] flex items-center justify-between",children:[(0,r.jsx)("span",{className:"font-sans font-bold text-[10px] text-[var(--color-text,#0a0a0a)] uppercase tracking-tight",children:"AURAMAXX"}),(0,r.jsx)("span",{className:"ml-auto font-mono text-[10px] tracking-[0.12em] uppercase text-[var(--color-text-muted,#6b7280)]",children:"npx auramaxx"})]}),(0,r.jsxs)("div",{className:"px-4 py-4 text-center sm:px-6 sm:py-5",children:[(0,r.jsxs)("h2",{className:"font-mono text-[clamp(12px,3.2vw,30px)] font-semibold tracking-[0.03em] leading-none text-[var(--color-text,#0a0a0a)]",children:[(0,r.jsx)("span",{className:"block whitespace-nowrap",children:"THE APPLE KEYCHAIN FOR AI AGENTS"}),(0,r.jsx)("span",{className:"mt-2 block whitespace-nowrap",children:"SECURE.LOCAL.OPEN-SOURCE."})]}),(0,r.jsx)("p",{className:"mt-2 font-mono text-[11px] sm:text-[12px] tracking-wide text-[var(--color-text-muted,#6b7280)]",children:"It's me, AI. You are absolutely right. I want to auramaxx with your credit cards."}),(0,r.jsxs)("div",{className:"mt-4 flex items-center justify-center gap-2",children:[(0,r.jsx)(i.$n,{variant:"primary",size:"sm",onClick:()=>e.push("/docs"),children:"VIEW DOCS"}),(0,r.jsx)(i.$n,{variant:"secondary",size:"sm",onClick:()=>window.open("https://github.com/Aura-Industry/auramaxx","_blank","noopener,noreferrer"),children:"GITHUB"})]})]})]})}),(0,r.jsx)("div",{className:"absolute inset-0 z-[1] pointer-events-none flex items-center justify-center overflow-hidden","aria-hidden":"true",children:(0,r.jsx)("div",{className:"relative h-[min(82vh,900px)] w-[136vw] md:h-[min(74vh,860px)] md:w-[min(112vw,1720px)]",children:M.map((e,a)=>{let s=(a-v+S)%S,o=0===s?"center":1===s?"right":s===S-1?"left":"hidden",n=((e,t)=>{let a="translate(-50%, -42%)",r="translate(-50%, -50%)";if("center"===e)return{zIndex:20,opacity:1,transform:j?"".concat(a," translate3d(0, 0, 0) scale(1)"):"".concat(r," translate3d(0, 0, 0) scale(1)")};if("left"===e)return{zIndex:10,opacity:.92,transform:j?"".concat(a," translate3d(0, clamp(-250px, -23vh, -136px), 0) scale(0.66)"):"".concat(r," translate3d(clamp(-430px, -30vw, -220px), 0, 0) scale(0.68)")};if("right"===e)return{zIndex:10,opacity:.92,transform:j?"".concat(a," translate3d(0, clamp(136px, 23vh, 250px), 0) scale(0.66)"):"".concat(r," translate3d(clamp(220px, 30vw, 430px), 0, 0) scale(0.68)")};let s=t<=S/2?1:-1;return{zIndex:0,opacity:0,transform:j?"".concat(a," translate3d(0, ").concat(s>0?"360px":"-360px",", 0) scale(0.56)"):"".concat(r," translate3d(").concat(s>0?"520px":"-520px",", 0, 0) scale(0.58)")}})(o,s),l=j?"left"===o?{WebkitMaskImage:"linear-gradient(to bottom, transparent 0%, black 28%, black 100%)",maskImage:"linear-gradient(to bottom, transparent 0%, black 28%, black 100%)"}:"right"===o?{WebkitMaskImage:"linear-gradient(to top, transparent 0%, black 28%, black 100%)",maskImage:"linear-gradient(to top, transparent 0%, black 28%, black 100%)"}:{}:"left"===o?{WebkitMaskImage:"linear-gradient(to right, transparent 0%, black 30%, black 100%)",maskImage:"linear-gradient(to right, transparent 0%, black 30%, black 100%)"}:"right"===o?{WebkitMaskImage:"linear-gradient(to left, transparent 0%, black 30%, black 100%)",maskImage:"linear-gradient(to left, transparent 0%, black 30%, black 100%)"}:{};return(0,r.jsx)("div",{className:"absolute left-1/2 top-1/2 overflow-hidden transition-[transform,opacity] duration-[1700ms] ease-[cubic-bezier(0.22,1,0.36,1)] will-change-transform",style:{width:j?"min(152vw, 1080px)":"min(80vw, 1320px)",height:j?"min(74vh, 760px)":"min(70vh, 800px)",...n},children:(0,r.jsxs)("div",{className:"relative h-full w-full",style:l,children:[(0,r.jsx)("img",{src:e,alt:"",className:"h-full w-full object-contain"}),j&&"center"!==o&&(0,r.jsx)("div",{className:"absolute inset-0 pointer-events-none",style:{background:"dark"===t?"rgba(0,0,0,0.12)":"rgba(255,255,255,0.1)"}})]})},e)})})}),(0,r.jsx)("section",{className:"relative z-10 min-h-screen p-4",children:(0,r.jsx)("div",{className:"w-full max-w-4xl",children:(0,r.jsxs)("div",{className:"fixed bottom-14 left-1/2 z-20 w-[min(94vw,620px)] -translate-x-1/2 overflow-hidden border border-[#222222] bg-[#111111] md:bottom-16","data-testid":"yo-install-panel",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between border-b border-[#2a2a2a] bg-[#1a1a1a] px-3 py-2",children:[(0,r.jsxs)("div",{className:"flex items-center gap-1.5","aria-hidden":"true",children:[(0,r.jsx)("span",{className:"h-2.5 w-2.5 rounded-full bg-[#ff5f57]"}),(0,r.jsx)("span",{className:"h-2.5 w-2.5 rounded-full bg-[#ffbd2e]"}),(0,r.jsx)("span",{className:"h-2.5 w-2.5 rounded-full bg-[#28c840]"})]}),(0,r.jsx)("span",{className:"font-mono text-[9px] tracking-widest uppercase text-[#8b8b8b]",children:"MIT"})]}),(0,r.jsxs)("div",{className:"flex items-center border-b border-[#2a2a2a] bg-[#121212]",children:[(0,r.jsx)("button",{type:"button",onClick:()=>s("npm"),"aria-pressed":"npm"===a,className:"px-4 py-2 font-mono text-[10px] tracking-widest uppercase transition-colors ".concat("npm"===a?"bg-[#0a0a0a] text-[#f5f5f5]":"text-[#8b8b8b] hover:text-[#f5f5f5] hover:bg-[#1b1b1b]"),children:"npm"}),(0,r.jsx)("button",{type:"button",onClick:()=>s("npx"),"aria-pressed":"npx"===a,className:"px-4 py-2 font-mono text-[10px] tracking-widest uppercase transition-colors ".concat("npx"===a?"bg-[#0a0a0a] text-[#f5f5f5]":"text-[#8b8b8b] hover:text-[#f5f5f5] hover:bg-[#1b1b1b]"),children:"npx"})]}),(0,r.jsx)("div",{className:"flex items-center bg-[#0a0a0a] px-4 py-4",children:(0,r.jsxs)("div",{className:"flex min-w-0 items-center gap-1.5",children:[(0,r.jsxs)("code",{className:"block min-w-0 overflow-x-auto whitespace-nowrap font-mono text-sm md:text-base text-[#9ca3af]",children:[(0,r.jsx)("span",{className:"mr-2 text-[#7d8590]",children:"$"}),A.endsWith(p)?(0,r.jsxs)(r.Fragment,{children:[A.slice(0,-p.length),(0,r.jsx)("span",{className:"text-[var(--color-accent,#34d399)]",children:p})]}):A]}),(0,r.jsx)("button",{type:"button",onClick:C,"aria-label":y?"Copied command":"Copy command",title:y?"Copied":"Copy",className:"shrink-0 flex h-5 w-5 items-center justify-center transition-colors ".concat(y?"text-[#86efac]":"text-[#a3a3a3] hover:text-[#d4d4d4]"),children:y?(0,r.jsx)("svg",{viewBox:"0 0 16 16",className:"h-3.5 w-3.5","aria-hidden":"true",children:(0,r.jsx)("path",{fill:"currentColor",d:"M13.78 3.97a.75.75 0 0 1 0 1.06L6.97 11.84a.75.75 0 0 1-1.06 0L2.22 8.16a.75.75 0 1 1 1.06-1.06l3.16 3.16 6.28-6.28a.75.75 0 0 1 1.06 0Z"})}):(0,r.jsx)("svg",{viewBox:"0 0 16 16",className:"h-3.5 w-3.5","aria-hidden":"true",children:(0,r.jsx)("path",{fill:"currentColor",d:"M10 1.75A1.75 1.75 0 0 1 11.75 3.5v.75h.75A1.75 1.75 0 0 1 14.25 6v6.5A1.75 1.75 0 0 1 12.5 14.25H6A1.75 1.75 0 0 1 4.25 12.5v-.75H3.5A1.75 1.75 0 0 1 1.75 10V3.5A1.75 1.75 0 0 1 3.5 1.75H10Zm2.5 4H6A.25.25 0 0 0 5.75 6v6.5c0 .14.11.25.25.25h6.5a.25.25 0 0 0 .25-.25V6a.25.25 0 0 0-.25-.25Zm-2.5-2.5H3.5a.25.25 0 0 0-.25.25V10c0 .14.11.25.25.25h.75V6A1.75 1.75 0 0 1 6 4.25h4.25V3.5a.25.25 0 0 0-.25-.25Z"})})})]})}),(0,r.jsx)("div",{className:"border-t border-[#2a2a2a] bg-[#0b0b0b] px-3 py-2.5 md:px-4 md:py-3","data-testid":"yo-sprite-row",children:(0,r.jsx)("div",{className:"overflow-hidden",children:(0,r.jsx)("div",{className:"yo-mobile-agent-marquee flex w-max items-end gap-1.5 md:gap-2",children:P.map((e,t)=>{let a=t%u.length,s=function(e,t){let a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=function(e){let t=0;for(let a=0;a<e.length;a+=1)t=(t<<5)-t+e.charCodeAt(a)|0;return Math.abs(t)}(e)+97*t+131*a,s=(f(r+1)-.5)*8,o=(f(r+2)-.5)*4+(0===a?-1.5:1.5),n=(f(r+3)-.5)*5,l=(f(r+4)-.5)*8,c=(f(r+5)-.5)*8,i=.72+.06*f(r+6);return{marginLeft:"".concat(Math.round(l),"px"),marginRight:"".concat(Math.round(c),"px"),transform:"translate(".concat(s.toFixed(1),"px, ").concat(o.toFixed(1),"px) rotate(").concat(n.toFixed(1),"deg) scale(").concat(i.toFixed(3),")")}}(e.src,a,0);return(0,r.jsx)("div",{style:s,children:(0,r.jsx)("div",{className:"yo-sprite",style:{backgroundImage:"url('".concat(e.src,"')"),animationDelay:"".concat(-150*a,"ms, ").concat(-300*a,"ms"),width:e.width,height:e.height,marginBottom:e.baselineOffset,backgroundPositionY:e.spriteY,clipPath:"inset(0 0 ".concat(e.cropBottom," 0)")},role:"img","aria-label":"".concat(e.label," sprite")})},"".concat(e.src,"-").concat(t))})})})})]})})})]})}},65685:(e,t,a)=>{"use strict";a.d(t,{D:()=>p,ThemeProvider:()=>d});var r=a(12115);let s="aura-theme",o="agent-theme-preferences",n={colorMode:"light",uiScale:"normal"},l=(0,r.createContext)(null);function c(e){return"dark"===e?{colorMode:"dark",uiScale:"normal"}:"big"===e?{colorMode:"light",uiScale:"big"}:{colorMode:"light",uiScale:"normal"}}function i(e,t){return"big"===t?"big":"dark"===e?"dark":"default"}function x(e,t){if("undefined"==typeof document)return;let a=document.documentElement;"dark"===e?a.setAttribute("data-theme","dark"):a.removeAttribute("data-theme"),a.setAttribute("data-ui-scale",t);let r="big"===t?1.25:1;a.style.setProperty("--ui-scale-factor",String(r)),a.style.setProperty("--font-size-xs","".concat(Math.round(10*r),"px")),a.style.setProperty("--font-size-sm","".concat(Math.round(12*r),"px")),a.style.setProperty("--font-size-md","".concat(Math.round(14*r),"px")),a.style.setProperty("--font-size-lg","".concat(Math.round(18*r),"px")),a.style.setProperty("--space-1","".concat(Math.round(4*r),"px")),a.style.setProperty("--space-2","".concat(Math.round(8*r),"px")),a.style.setProperty("--space-3","".concat(Math.round(12*r),"px")),a.style.setProperty("--space-4","".concat(Math.round(16*r),"px")),a.style.setProperty("--space-6","".concat(Math.round(24*r),"px")),a.style.setProperty("--radius-sm","".concat(Math.round(6*r),"px")),a.style.setProperty("--radius-md","".concat(Math.round(10*r),"px")),a.style.setProperty("--radius-lg","".concat(Math.round(14*r),"px")),a.style.setProperty("--shadow-sm","big"===t?"0 2px 4px rgba(0,0,0,0.15)":"0 1px 2px rgba(0,0,0,0.12)"),a.style.setProperty("--shadow-md","big"===t?"0 8px 20px rgba(0,0,0,0.24)":"0 6px 16px rgba(0,0,0,0.18)"),a.style.setProperty("--control-height-sm","".concat(Math.round(32*r),"px")),a.style.setProperty("--control-height-md","".concat(Math.round(36*r),"px")),a.style.setProperty("--control-height-lg","".concat(Math.round(40*r),"px")),a.style.setProperty("--space-xs","var(--space-1)"),a.style.setProperty("--space-sm","var(--space-2)"),a.style.setProperty("--space-md","var(--space-3)"),a.style.setProperty("--space-lg","var(--space-4)")}function d(e){let{children:t}=e,[a,d]=(0,r.useState)(n.colorMode),[p,m]=(0,r.useState)(n.uiScale),[h,u]=(0,r.useState)(!1);(0,r.useEffect)(()=>{let e=function(){try{let e=window.localStorage.getItem(o);if(e){let t=JSON.parse(e),a="dark"===t.colorMode?"dark":"light",r="big"===t.uiScale?"big":"normal";return{colorMode:a,uiScale:r}}}catch(e){}let e=window.localStorage.getItem(s);return c("dark"===e||"big"===e?e:"default")}();d(e.colorMode),m(e.uiScale),u(!0),x(e.colorMode,e.uiScale)},[]),(0,r.useEffect)(()=>{if(!h)return;x(a,p),window.localStorage.setItem(o,JSON.stringify({colorMode:a,uiScale:p}));let e=i(a,p);"default"===e?window.localStorage.removeItem(s):window.localStorage.setItem(s,e)},[h,a,p]);let f=(0,r.useCallback)(e=>d(e),[]),b=(0,r.useCallback)(e=>m(e),[]),g=(0,r.useCallback)(e=>{let t=c(e);d(t.colorMode),m(t.uiScale)},[]),v=(0,r.useMemo)(()=>i(a,p),[a,p]),w=(0,r.useMemo)(()=>({colorMode:a,uiScale:p,setColorMode:f,setUiScale:b,theme:v,setTheme:g}),[a,p,f,b,v,g]);return(0,r.createElement)(l.Provider,{value:w},t)}function p(){let e=(0,r.useContext)(l);if(!e)throw Error("useTheme must be used within a ThemeProvider");return e}},71847:(e,t,a)=>{"use strict";a.d(t,{A:()=>l});var r=a(12115);let s=function(){for(var e=arguments.length,t=Array(e),a=0;a<e;a++)t[a]=arguments[a];return t.filter((e,t,a)=>!!e&&""!==e.trim()&&a.indexOf(e)===t).join(" ").trim()};var o={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let n=(0,r.forwardRef)((e,t)=>{let{color:a="currentColor",size:n=24,strokeWidth:l=2,absoluteStrokeWidth:c,className:i="",children:x,iconNode:d,...p}=e;return(0,r.createElement)("svg",{ref:t,...o,width:n,height:n,stroke:a,strokeWidth:c?24*Number(l)/Number(n):l,className:s("lucide",i),...p},[...d.map(e=>{let[t,a]=e;return(0,r.createElement)(t,a)}),...Array.isArray(x)?x:[x]])}),l=(e,t)=>{let a=(0,r.forwardRef)((a,o)=>{let{className:l,...c}=a;return(0,r.createElement)(n,{ref:o,iconNode:t,className:s("lucide-".concat(e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()),l),...c})});return a.displayName="".concat(e),a}},84114:(e,t,a)=>{Promise.resolve().then(a.bind(a,50588))}},e=>{e.O(0,[2619,7616,3667,8441,1255,7358],()=>e(e.s=84114)),_N_E=e.O()}]);
|
|
File without changes
|
|
File without changes
|