create-ones-app 0.0.7 → 0.0.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/LICENSE +201 -0
- package/dist/index.cjs +7087 -22
- package/dist/index.js +7091 -26
- package/dist/types/actions/create/index.d.ts +3 -0
- package/dist/types/actions/create/index.d.ts.map +1 -0
- package/dist/types/actions/create/normalize.d.ts +6 -0
- package/dist/types/actions/create/normalize.d.ts.map +1 -0
- package/dist/types/actions/index.d.ts +5 -0
- package/dist/types/actions/index.d.ts.map +1 -0
- package/dist/types/cli/index.d.ts +2 -0
- package/dist/types/cli/index.d.ts.map +1 -0
- package/dist/types/command/create/index.d.ts +9 -0
- package/dist/types/command/create/index.d.ts.map +1 -0
- package/dist/types/command/index.d.ts +5 -0
- package/dist/types/command/index.d.ts.map +1 -0
- package/dist/types/common/command/index.d.ts +6 -0
- package/dist/types/common/command/index.d.ts.map +1 -0
- package/dist/types/common/command/types.d.ts +10 -0
- package/dist/types/common/command/types.d.ts.map +1 -0
- package/dist/types/common/command/utils.d.ts +8 -0
- package/dist/types/common/command/utils.d.ts.map +1 -0
- package/dist/types/common/context/index.d.ts +6 -0
- package/dist/types/common/context/index.d.ts.map +1 -0
- package/dist/types/common/context/types.d.ts +6 -0
- package/dist/types/common/context/types.d.ts.map +1 -0
- package/dist/types/common/context/utils.d.ts +4 -0
- package/dist/types/common/context/utils.d.ts.map +1 -0
- package/dist/types/common/error/enums.d.ts +7 -0
- package/dist/types/common/error/enums.d.ts.map +1 -0
- package/dist/types/common/error/index.d.ts +7 -0
- package/dist/types/common/error/index.d.ts.map +1 -0
- package/dist/types/common/error/types.d.ts +2 -0
- package/dist/types/common/error/types.d.ts.map +1 -0
- package/dist/types/common/error/utils.d.ts +2 -0
- package/dist/types/common/error/utils.d.ts.map +1 -0
- package/dist/types/common/locales/en/index.d.ts +10 -0
- package/dist/types/common/locales/en/index.d.ts.map +1 -0
- package/dist/types/common/locales/index.d.ts +6 -0
- package/dist/types/common/locales/index.d.ts.map +1 -0
- package/dist/types/common/locales/types.d.ts +4 -0
- package/dist/types/common/locales/types.d.ts.map +1 -0
- package/dist/types/common/locales/utils.d.ts +6 -0
- package/dist/types/common/locales/utils.d.ts.map +1 -0
- package/dist/types/common/package/consts.d.ts +6 -0
- package/dist/types/common/package/consts.d.ts.map +1 -0
- package/dist/types/common/package/index.d.ts +8 -0
- package/dist/types/common/package/index.d.ts.map +1 -0
- package/dist/types/common/package/schema.d.ts +345 -0
- package/dist/types/common/package/schema.d.ts.map +1 -0
- package/dist/types/common/package/types.d.ts.map +1 -0
- package/dist/types/common/package/utils.d.ts +5 -0
- package/dist/types/common/package/utils.d.ts.map +1 -0
- package/dist/types/common/public/consts.d.ts +5 -0
- package/dist/types/common/public/consts.d.ts.map +1 -0
- package/dist/types/common/public/index.d.ts +6 -0
- package/dist/types/common/public/index.d.ts.map +1 -0
- package/dist/types/common/public/utils.d.ts +2 -0
- package/dist/types/common/public/utils.d.ts.map +1 -0
- package/dist/types/common/template/index.d.ts +5 -0
- package/dist/types/common/template/index.d.ts.map +1 -0
- package/dist/types/common/template/utils.d.ts +4 -0
- package/dist/types/common/template/utils.d.ts.map +1 -0
- package/dist/types/index.d.ts +11 -1
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +26 -5
- package/public/.onesrc.json +9 -0
- package/public/app_opkx_schema.json +566 -0
- package/public/logos/logo-bulb.svg +20 -0
- package/public/logos/logo-check.svg +18 -0
- package/public/logos/logo-claude.svg +19 -0
- package/public/logos/logo-claw.svg +23 -0
- package/public/logos/logo-gear.svg +18 -0
- package/public/logos/logo-gemini.svg +19 -0
- package/public/logos/logo-haiper.svg +19 -0
- package/public/logos/logo-lightning.svg +19 -0
- package/public/logos/logo-manus.svg +21 -0
- package/public/logos/logo-new-api.svg +21 -0
- package/public/logos/logo-puzzle.svg +19 -0
- package/public/logos/logo-trae.svg +19 -0
- package/public/logos/logo-user.svg +20 -0
- package/public/opkx.json +21 -0
- package/template/example/.template.json +1 -1
- package/template/example/AGENTS.md +92 -103
- package/template/example/LICENSE +201 -0
- package/template/example/README.md +1 -84
- package/template/example/_eslint.config.mjs_ +39 -0
- package/template/example/_gitignore +23 -0
- package/template/example/_husky_pre-commit +1 -0
- package/template/example/_prettierignore +11 -0
- package/template/example/_prettierrc +6 -0
- package/template/example/_tsconfig.json +8 -0
- package/template/example/backend/app.controller.ts +85 -0
- package/template/example/backend/app.module.ts +34 -0
- package/template/example/backend/app.service.ts +46 -0
- package/template/example/backend/dto/issue-created-event.dto.ts +29 -0
- package/template/example/backend/dto/recent-work-item.dto.ts +11 -0
- package/template/example/backend/main.ts +10 -0
- package/template/example/backend/proxy.ts +46 -0
- package/template/example/backend/services/recent-work-items.service.ts +84 -0
- package/template/example/backend/utils.ts +41 -0
- package/template/example/nest-cli.json +8 -0
- package/template/example/opkx.json +106 -0
- package/template/example/package-lock.json +12699 -0
- package/template/example/package.json +84 -0
- package/template/example/postcss.config.js +10 -0
- package/template/example/public/assets/loading.png +0 -0
- package/template/example/public/favicon.ico +0 -0
- package/template/example/public/i18n/en.json +17 -0
- package/template/example/public/i18n/zh.json +17 -0
- package/template/example/public/normalize.css@8.0.1/normalize.css +349 -0
- package/template/example/tsconfig.backend.json +34 -0
- package/template/example/tsconfig.build.json +3 -0
- package/template/example/tsconfig.vite.json +34 -0
- package/template/example/tsconfig.web.json +39 -0
- package/template/example/vite.config.ts +286 -0
- package/template/example/web/pages/recent-work-items/index.css +131 -0
- package/template/example/web/pages/recent-work-items/index.tsx +265 -0
- package/template/example/web/template/index.html +65 -0
- package/dist/types/action.d.ts +0 -2
- package/dist/types/action.d.ts.map +0 -1
- package/dist/types/types.d.ts.map +0 -1
- package/dist/types/utils.d.ts +0 -7
- package/dist/types/utils.d.ts.map +0 -1
- package/template/example/netlify/functions/app_manifest.js +0 -90
- package/template/example/netlify/functions/app_setting_pages.js +0 -48
- package/template/example/netlify/functions/events.js +0 -35
- package/template/example/netlify/functions/install.js +0 -35
- package/template/example/netlify/functions/metadata.js +0 -37
- package/template/example/netlify.toml +0 -44
- package/template/example/public/index.html +0 -20
- package/template/example/public/logo.svg +0 -4
- package/template/example/public/script.js +0 -56
- package/template/example/public/style.css +0 -66
- package/template/example/types/app_manifest.d.ts +0 -115
- package/template/example/types/app_setting_pages.d.ts +0 -14
- /package/dist/types/{types.d.ts → common/package/types.d.ts} +0 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="aiGradBulb" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
4
|
+
<stop offset="0%" stop-color="rgb(0, 70, 200)"/>
|
|
5
|
+
<stop offset="50%" stop-color="rgb(75, 195, 195)"/>
|
|
6
|
+
<stop offset="100%" stop-color="rgb(55, 195, 115)"/>
|
|
7
|
+
</linearGradient>
|
|
8
|
+
<filter id="glowBulb" x="-20%" y="-20%" width="140%" height="140%">
|
|
9
|
+
<feGaussianBlur in="SourceGraphic" stdDeviation="0.4" result="blur"/>
|
|
10
|
+
<feMerge><feMergeNode in="blur"/><feMergeNode in="SourceGraphic"/></feMerge>
|
|
11
|
+
</filter>
|
|
12
|
+
</defs>
|
|
13
|
+
<rect width="32" height="32" rx="8" fill="url(#aiGradBulb)"/>
|
|
14
|
+
<g transform="translate(16,16) scale(0.64) translate(-16,-16)">
|
|
15
|
+
<g transform="scale(2)" stroke="white" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" fill="none" opacity="0.95" filter="url(#glowBulb)">
|
|
16
|
+
<path d="M8 1C5.546 1 3.556 3.035 3.556 5.545c0 1.284.52 2.444 1.357 3.27.6.593 1.107 1.337 1.1 2.18l-.003.384A1.111 1.111 0 0 0 7.12 12.5H8.85c.61 0 1.106-.492 1.111-1.102l.004-.43c.007-.829.51-1.554 1.104-2.134a4.582 4.582 0 0 0 1.377-3.289C12.445 3.035 10.455 1 8 1ZM8 9V7"/>
|
|
17
|
+
<path d="m6 5 2 2 2-2M6.5 15h3"/>
|
|
18
|
+
</g>
|
|
19
|
+
</g>
|
|
20
|
+
</svg>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="aiGradCheck" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
4
|
+
<stop offset="0%" stop-color="rgb(0, 70, 200)"/>
|
|
5
|
+
<stop offset="50%" stop-color="rgb(75, 195, 195)"/>
|
|
6
|
+
<stop offset="100%" stop-color="rgb(55, 195, 115)"/>
|
|
7
|
+
</linearGradient>
|
|
8
|
+
<filter id="glowCheck" x="-20%" y="-20%" width="140%" height="140%">
|
|
9
|
+
<feGaussianBlur in="SourceGraphic" stdDeviation="0.4" result="blur"/>
|
|
10
|
+
<feMerge><feMergeNode in="blur"/><feMergeNode in="SourceGraphic"/></feMerge>
|
|
11
|
+
</filter>
|
|
12
|
+
</defs>
|
|
13
|
+
<rect width="32" height="32" rx="8" fill="url(#aiGradCheck)"/>
|
|
14
|
+
<g transform="translate(16,16) scale(0.64) translate(-16,-16)">
|
|
15
|
+
<path fill="none" stroke="white" stroke-width="2" opacity="0.95" filter="url(#glowCheck)" d="M30 16 A14 14 0 1 1 2 16 a14 14 0 0 1 28 0 Z"/>
|
|
16
|
+
<path fill="none" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" opacity="0.95" filter="url(#glowCheck)" d="m24 11 l-9.334 10 L10 15.648"/>
|
|
17
|
+
</g>
|
|
18
|
+
</svg>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="aiGradClaude" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
4
|
+
<stop offset="0%" stop-color="rgb(0, 70, 200)"/>
|
|
5
|
+
<stop offset="50%" stop-color="rgb(75, 195, 195)"/>
|
|
6
|
+
<stop offset="100%" stop-color="rgb(55, 195, 115)"/>
|
|
7
|
+
</linearGradient>
|
|
8
|
+
<filter id="glowClaude" x="-20%" y="-20%" width="140%" height="140%">
|
|
9
|
+
<feGaussianBlur in="SourceGraphic" stdDeviation="0.4" result="blur"/>
|
|
10
|
+
<feMerge><feMergeNode in="blur"/><feMergeNode in="SourceGraphic"/></feMerge>
|
|
11
|
+
</filter>
|
|
12
|
+
</defs>
|
|
13
|
+
<rect width="32" height="32" rx="8" fill="url(#aiGradClaude)"/>
|
|
14
|
+
<g transform="translate(16,16) scale(0.64) translate(-16,-16)">
|
|
15
|
+
<g transform="translate(4, 4)" fill="white" fill-rule="evenodd" opacity="0.95" filter="url(#glowClaude)">
|
|
16
|
+
<path d="M4.709 15.955l4.72-2.647.08-.23-.08-.128H9.2l-.79-.048-2.698-.073-2.339-.097-2.266-.122-.571-.121L0 11.784l.055-.352.48-.321.686.06 1.52.103 2.278.158 1.652.097 2.449.255h.389l.055-.157-.134-.098-.103-.097-2.358-1.596-2.552-1.688-1.336-.972-.724-.491-.364-.462-.158-1.008.656-.722.881.06.225.061.893.686 1.908 1.476 2.491 1.833.365.304.145-.103.019-.073-.164-.274-1.355-2.446-1.446-2.49-.644-1.032-.17-.619a2.97 2.97 0 01-.104-.729L6.283.134 6.696 0l.996.134.42.364.62 1.414 1.002 2.229 1.555 3.03.456.898.243.832.091.255h.158V9.01l.128-1.706.237-2.095.23-2.695.08-.76.376-.91.747-.492.584.28.48.685-.067.444-.286 1.851-.559 2.903-.364 1.942h.212l.243-.242.985-1.306 1.652-2.064.73-.82.85-.904.547-.431h1.033l.76 1.129-.34 1.166-1.064 1.347-.881 1.142-1.264 1.7-.79 1.36.073.11.188-.02 2.856-.606 1.543-.28 1.841-.315.833.388.091.395-.328.807-1.969.486-2.309.462-3.439.813-.042.03.049.061 1.549.146.662.036h1.622l3.02.225.79.522.474.638-.079.485-1.215.62-1.64-.389-3.829-.91-1.312-.329h-.182v.11l1.093 1.068 2.006 1.81 2.509 2.33.127.578-.322.455-.34-.049-2.205-1.657-.851-.747-1.926-1.62h-.128v.17l.444.649 2.345 3.521.122 1.08-.17.353-.608.213-.668-.122-1.374-1.925-1.415-2.167-1.143-1.943-.14.08-.674 7.254-.316.37-.729.28-.607-.461-.322-.747.322-1.476.389-1.924.315-1.53.286-1.9.17-.632-.012-.042-.14.018-1.434 1.967-2.18 2.945-1.726 1.845-.414.164-.717-.37.067-.662.401-.589 2.388-3.036 1.44-1.882.93-1.086-.006-.158h-.055L4.132 18.56l-1.13.146-.487-.456.061-.746.231-.243 1.908-1.312-.006.006z"/>
|
|
17
|
+
</g>
|
|
18
|
+
</g>
|
|
19
|
+
</svg>
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="aiGradClaw" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
4
|
+
<stop offset="0%" stop-color="rgb(0, 70, 200)"/>
|
|
5
|
+
<stop offset="50%" stop-color="rgb(75, 195, 195)"/>
|
|
6
|
+
<stop offset="100%" stop-color="rgb(55, 195, 115)"/>
|
|
7
|
+
</linearGradient>
|
|
8
|
+
<filter id="glowClaw" x="-20%" y="-20%" width="140%" height="140%">
|
|
9
|
+
<feGaussianBlur in="SourceGraphic" stdDeviation="0.4" result="blur"/>
|
|
10
|
+
<feMerge><feMergeNode in="blur"/><feMergeNode in="SourceGraphic"/></feMerge>
|
|
11
|
+
</filter>
|
|
12
|
+
</defs>
|
|
13
|
+
<rect width="32" height="32" rx="8" fill="url(#aiGradClaw)"/>
|
|
14
|
+
<g transform="translate(16,16) scale(0.64) translate(-16,-16)">
|
|
15
|
+
<g transform="translate(4, 4)" fill="white" fill-rule="evenodd" clip-rule="evenodd" opacity="0.95" filter="url(#glowClaw)">
|
|
16
|
+
<path d="M9.046 7.104a.527.527 0 110 1.055.527.527 0 010-1.055z"/>
|
|
17
|
+
<path d="M15.376 7.104a.528.528 0 110 1.056.528.528 0 010-1.056z"/>
|
|
18
|
+
<path d="M16.877 1.912c.58-.27 1.14-.323 1.616-.037a.317.317 0 01-.326.542c-.227-.136-.547-.153-1.022.068-.352.165-.765.45-1.234.866 2.683 1.17 4.4 3.5 5.148 5.921a6.421 6.421 0 00-.704.184c-.578.016-1.174.204-1.502.735-.338.55-.268 1.276.072 2.069l.005.012.007.014c.523 1.045 1.318 1.91 2.2 2.284-.912 3.274-3.44 6.144-5.972 6.988v2.109h-2.11v-2.11c-1.043.417-2.086.01-2.11 0v2.11h-2.11v-2.11c-2.531-.843-5.061-3.713-5.973-6.987.882-.373 1.678-1.238 2.2-2.284l.007-.014.006-.012c.34-.793.41-1.518.071-2.069-.327-.531-.923-.719-1.503-.735a6.409 6.409 0 00-.704-.183c.749-2.421 2.466-4.751 5.149-5.922-.47-.416-.88-.701-1.234-.866-.474-.221-.794-.204-1.021-.068a.318.318 0 01-.435-.109.317.317 0 01.109-.433c.476-.286 1.036-.233 1.615.037.49.229 1.031.628 1.621 1.182A9.924 9.924 0 0112 2.568c1.199 0 2.284.19 3.256.526.59-.554 1.13-.953 1.62-1.182zM8.835 6.577a1.266 1.266 0 100 2.532 1.266 1.266 0 000-2.532zm6.33 0a1.267 1.267 0 100 2.533 1.267 1.267 0 000-2.533z"/>
|
|
19
|
+
<path d="M.395 13.118c-.966-1.932-.163-3.863 2.41-3.365v-.001l.05.01c.084.018.17.038.26.06.033.009.067.017.1.027.084.022.168.048.255.076l.09.027c.528 0 .95.158 1.16.501.212.343.212.87-.105 1.61-.085.17-.178.333-.276.489l-.01.017a4.967 4.967 0 01-.62.791l-.019.02c-1.092 1.117-2.496 1.336-3.295-.262z"/>
|
|
20
|
+
<path d="M21.193 9.753c2.574-.5 3.378 1.433 2.411 3.365-.58 1.159-1.476 1.361-2.342.96l-.011-.005a2.419 2.419 0 01-.114-.056l-.019-.01a2.751 2.751 0 01-.115-.067l-.023-.014c-.035-.022-.071-.044-.106-.068l-.05-.035c-.55-.388-1.062-1.007-1.44-1.76-.276-.647-.311-1.132-.174-1.472.176-.439.636-.639 1.23-.639.032-.011.066-.02.099-.03.08-.026.16-.05.238-.072l.117-.03a5.502 5.502 0 01.3-.067z"/>
|
|
21
|
+
</g>
|
|
22
|
+
</g>
|
|
23
|
+
</svg>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="aiGradGear" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
4
|
+
<stop offset="0%" stop-color="rgb(0, 70, 200)"/>
|
|
5
|
+
<stop offset="50%" stop-color="rgb(75, 195, 195)"/>
|
|
6
|
+
<stop offset="100%" stop-color="rgb(55, 195, 115)"/>
|
|
7
|
+
</linearGradient>
|
|
8
|
+
<filter id="glowGear" x="-20%" y="-20%" width="140%" height="140%">
|
|
9
|
+
<feGaussianBlur in="SourceGraphic" stdDeviation="0.4" result="blur"/>
|
|
10
|
+
<feMerge><feMergeNode in="blur"/><feMergeNode in="SourceGraphic"/></feMerge>
|
|
11
|
+
</filter>
|
|
12
|
+
</defs>
|
|
13
|
+
<rect width="32" height="32" rx="8" fill="url(#aiGradGear)"/>
|
|
14
|
+
<!-- n -->
|
|
15
|
+
<circle cx="16" cy="16" r="5" fill="none" stroke="white" stroke-width="1.2" opacity="0.95" filter="url(#glowGear)"/>
|
|
16
|
+
<path fill="none" stroke="white" stroke-width="1.2" stroke-linecap="round" opacity="0.95" filter="url(#glowGear)" d="M16 8v2M16 22v2M8 16h2M22 16h2M10.34 10.34l1.42 1.42M20.24 20.24l1.42 1.42M10.34 21.66l1.42-1.42M20.24 11.76l1.42-1.42"/>
|
|
17
|
+
<circle cx="16" cy="16" r="1.5" fill="white" opacity="0.9"/>
|
|
18
|
+
</svg>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="aiGradGemini" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
4
|
+
<stop offset="0%" stop-color="rgb(0, 70, 200)"/>
|
|
5
|
+
<stop offset="50%" stop-color="rgb(75, 195, 195)"/>
|
|
6
|
+
<stop offset="100%" stop-color="rgb(55, 195, 115)"/>
|
|
7
|
+
</linearGradient>
|
|
8
|
+
<filter id="glowGemini" x="-20%" y="-20%" width="140%" height="140%">
|
|
9
|
+
<feGaussianBlur in="SourceGraphic" stdDeviation="0.4" result="blur"/>
|
|
10
|
+
<feMerge><feMergeNode in="blur"/><feMergeNode in="SourceGraphic"/></feMerge>
|
|
11
|
+
</filter>
|
|
12
|
+
</defs>
|
|
13
|
+
<rect width="32" height="32" rx="8" fill="url(#aiGradGemini)"/>
|
|
14
|
+
<g transform="translate(16,16) scale(0.64) translate(-16,-16)">
|
|
15
|
+
<g transform="translate(4, 4)" fill="white" fill-rule="evenodd" opacity="0.95" filter="url(#glowGemini)">
|
|
16
|
+
<path d="M20.616 10.835a14.147 14.147 0 01-4.45-3.001 14.111 14.111 0 01-3.678-6.452.503.503 0 00-.975 0 14.134 14.134 0 01-3.679 6.452 14.155 14.155 0 01-4.45 3.001c-.65.28-1.318.505-2.002.678a.502.502 0 000 .975c.684.172 1.35.397 2.002.677a14.147 14.147 0 014.45 3.001 14.112 14.112 0 013.679 6.453.502.502 0 00.975 0c.172-.685.397-1.351.677-2.003a14.145 14.145 0 013.001-4.45 14.113 14.113 0 016.453-3.678.503.503 0 000-.975 13.245 13.245 0 01-2.003-.678z"/>
|
|
17
|
+
</g>
|
|
18
|
+
</g>
|
|
19
|
+
</svg>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="aiGradHaiper" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
4
|
+
<stop offset="0%" stop-color="rgb(0, 70, 200)"/>
|
|
5
|
+
<stop offset="50%" stop-color="rgb(75, 195, 195)"/>
|
|
6
|
+
<stop offset="100%" stop-color="rgb(55, 195, 115)"/>
|
|
7
|
+
</linearGradient>
|
|
8
|
+
<filter id="glowHaiper" x="-20%" y="-20%" width="140%" height="140%">
|
|
9
|
+
<feGaussianBlur in="SourceGraphic" stdDeviation="0.4" result="blur"/>
|
|
10
|
+
<feMerge><feMergeNode in="blur"/><feMergeNode in="SourceGraphic"/></feMerge>
|
|
11
|
+
</filter>
|
|
12
|
+
</defs>
|
|
13
|
+
<rect width="32" height="32" rx="8" fill="url(#aiGradHaiper)"/>
|
|
14
|
+
<g transform="translate(16,16) scale(0.64) translate(-16,-16)">
|
|
15
|
+
<g transform="translate(4, 4)" fill="white" fill-rule="evenodd" clip-rule="evenodd" opacity="0.95" filter="url(#glowHaiper)">
|
|
16
|
+
<path d="M17.693 10.613a4.307 4.307 0 110-8.613 4.307 4.307 0 010 8.613zm4.304 6.928a4.394 4.394 0 00-2.724-4.064c-.535-.222-1.104-.3-1.722-.333-.878-.047-1.865-.195-2.684-.444-.84-.254-1.557-.805-2.176-1.423-.62-.618-1.144-1.343-1.428-2.17-.285-.83-.382-1.843-.443-2.711-.06-.86-.26-1.72-.746-2.444a4.417 4.417 0 00-6.786-.66 4.394 4.394 0 00.677 6.77c.7.464 1.582.682 2.452.737.913.058 1.86.18 2.72.438.839.254 1.555.806 2.175 1.424.62.618 1.143 1.343 1.428 2.17.282.819.416 1.838.439 2.711.017.663.1 1.161.319 1.701a4.421 4.421 0 005.793 2.416 4.392 4.392 0 001.438-.969 4.383 4.383 0 001.27-3.148h-.002v-.001zM2 17.693a4.307 4.307 0 108.613 0 4.307 4.307 0 00-8.613 0z"/>
|
|
17
|
+
</g>
|
|
18
|
+
</g>
|
|
19
|
+
</svg>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="aiGradLightning" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
4
|
+
<stop offset="0%" stop-color="rgb(0, 70, 200)"/>
|
|
5
|
+
<stop offset="50%" stop-color="rgb(75, 195, 195)"/>
|
|
6
|
+
<stop offset="100%" stop-color="rgb(55, 195, 115)"/>
|
|
7
|
+
</linearGradient>
|
|
8
|
+
<filter id="glowLightning" x="-20%" y="-20%" width="140%" height="140%">
|
|
9
|
+
<feGaussianBlur in="SourceGraphic" stdDeviation="0.4" result="blur"/>
|
|
10
|
+
<feMerge><feMergeNode in="blur"/><feMergeNode in="SourceGraphic"/></feMerge>
|
|
11
|
+
</filter>
|
|
12
|
+
</defs>
|
|
13
|
+
<rect width="32" height="32" rx="8" fill="url(#aiGradLightning)"/>
|
|
14
|
+
<g transform="translate(16,16) scale(0.64) translate(-16,-16)">
|
|
15
|
+
<g transform="scale(2)" stroke="white" stroke-width="1" stroke-linejoin="round" fill="none" opacity="0.95" filter="url(#glowLightning)">
|
|
16
|
+
<path d="M3 9.615 8 1v5.385h5L8 15V9.615H3Z"/>
|
|
17
|
+
</g>
|
|
18
|
+
</g>
|
|
19
|
+
</svg>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="aiGradManus" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
4
|
+
<stop offset="0%" stop-color="rgb(0, 70, 200)"/>
|
|
5
|
+
<stop offset="50%" stop-color="rgb(75, 195, 195)"/>
|
|
6
|
+
<stop offset="100%" stop-color="rgb(55, 195, 115)"/>
|
|
7
|
+
</linearGradient>
|
|
8
|
+
<filter id="glowManus" x="-20%" y="-20%" width="140%" height="140%">
|
|
9
|
+
<feGaussianBlur in="SourceGraphic" stdDeviation="0.4" result="blur"/>
|
|
10
|
+
<feMerge><feMergeNode in="blur"/><feMergeNode in="SourceGraphic"/></feMerge>
|
|
11
|
+
</filter>
|
|
12
|
+
</defs>
|
|
13
|
+
<rect width="32" height="32" rx="8" fill="url(#aiGradManus)"/>
|
|
14
|
+
<g transform="translate(16,16) scale(0.64) translate(-16,-16)">
|
|
15
|
+
<g transform="translate(4, 4)" fill="white" fill-rule="evenodd" clip-rule="evenodd" opacity="0.95" filter="url(#glowManus)">
|
|
16
|
+
<path d="M8.047 1.163A.936.936 0 119.863.709c.063.256.132.508.2.76l.005.016c.158.58.315 1.16.416 1.771a.936.936 0 11-1.847.305c-.085-.517-.203-.949-.346-1.473v-.002c-.075-.274-.157-.573-.244-.923zM3.67 2.753a.936.936 0 00.428 1.252c.667.327 1.245.65 1.818 1.295a.936.936 0 001.4-1.242C6.5 3.138 5.66 2.687 4.922 2.325a.936.936 0 00-1.252.428z"/>
|
|
17
|
+
<path d="M15.672 21.284c-.17-.036-.356-.075-.546-.117-.7-.152-1.65-.365-2.097-.513l-.033-.011-.032-.012c-.198-.074-.534-.156-1.09-.283l-.103-.023c-.48-.11-1.07-.244-1.63-.413-.578-.176-1.294-.437-1.903-.862-.638-.446-1.364-1.232-1.404-2.412a5.024 5.024 0 01.009-.51 2.716 2.716 0 01-.65-1.24 2.632 2.632 0 01.03-1.275c.083-.317.21-.594.316-.8.036-.07.073-.14.11-.206-.35-.111-.747-.248-1.133-.412-.503-.215-1.218-.57-1.752-1.141a2.798 2.798 0 01-.71-1.327 2.55 2.55 0 01.226-1.68c.604-1.208 1.757-1.635 2.782-1.672.926-.033 1.912.226 2.795.536.804.282 1.955.807 2.933 1.264.322-.529.747-1.126 1.149-1.608l.08-.095.092-.084a3.43 3.43 0 012.06-.887 3.559 3.559 0 011.059.08l.036.008.023.007h.003l.002.001s.002 0-.477 1.786l.479-1.786.208.058.19.102c.964.516 1.238 1.406 1.31 1.876a2.9 2.9 0 01-.008.903l-.003.018v.005l-1.858-.37 1.857.371-.01.054-.3 1.19c-.058.292-.065.459-.062.547a.286.286 0 00.016.107v.001c.013.03.043.095.154.263.043.066.088.131.144.214l.058.084c.08.118.174.257.274.412.623.97.684 1.902.68 2.499v.026l.238.078.103.032.153.049c.076.024.173.056.267.09.11-.202.407-.636.945-.636.702 0 .99.987.99.987.275 1.838-.98 8.013-2.794 9.164-1.386.88-2.413-.427-3.176-2.437zM8.72 12.868c.118-.119.47-.37 1.136-.445a4.337 4.337 0 012.228.365c.623.276 1.053.908 1.233 1.667.088.371.104.731.066 1.025-.04.31-.128.465-.169.511-.05.058-.228.157-.721.053a3.417 3.417 0 01-.764-.266l-.006-.003a.936.936 0 00-.861 1.662h.001l.003.002.008.004.024.012a4.888 4.888 0 00.34.152c.215.086.52.194.866.267.615.13 1.75.23 2.52-.652.37-.424.548-.98.615-1.501a4.789 4.789 0 00-.1-1.697c-.268-1.128-.976-2.362-2.297-2.948a6.208 6.208 0 00-3.195-.513c-.619.07-1.211.242-1.69.504l-.02-.006h-.004c-1.183-.338-3.536-1.01-2.956-2.17.44-.88 1.643-.807 3.275-.234.663.232 1.584.647 2.453 1.051.27.125.534.25.784.367l.974.454c.693-.832.962-1.29 1.2-1.695.163-.278.312-.53.573-.862l.025-.032a9.902 9.902 0 01.146-.18.895.895 0 01.02-.017c.642-.567 1.389-.36 1.389-.36.427.228.318.806.318.806l-.296 1.178c-.284 1.386.03 1.845.547 2.6.09.133.188.275.29.433.412.643.392 1.26.377 1.765-.01.324-.019.602.09.809.224.425 1.06.69 1.61.862.132.042.247.078.333.11l.059.023c-.078.24-.148.489-.218.737-.313 1.103-.623 2.202-1.55 2.53-.632.225-1.263.214-1.71.156-.786-.17-1.716-.379-2.066-.495-.363-.135-.871-.25-1.424-.377-1.316-.3-2.883-.656-3.331-1.462a.975.975 0 01-.125-.447c-.026-.74.234-1.404.234-1.404s-.403.002-.685-.27a.853.853 0 01-.238-.431c-.03-.13-.042-.28-.025-.44.008 0 .012-.008.012-.028 0-.234.234-.702.702-1.17z"/>
|
|
18
|
+
<path d="M14.077.604a.936.936 0 01.315 1.285c-.355.584-.561 1.181-.786 2.081a.936.936 0 11-1.816-.454c.243-.971.504-1.778 1.002-2.598a.936.936 0 011.285-.314z"/>
|
|
19
|
+
</g>
|
|
20
|
+
</g>
|
|
21
|
+
</svg>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="aiGradApi" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
4
|
+
<stop offset="0%" stop-color="rgb(0, 70, 200)"/>
|
|
5
|
+
<stop offset="50%" stop-color="rgb(75, 195, 195)"/>
|
|
6
|
+
<stop offset="100%" stop-color="rgb(55, 195, 115)"/>
|
|
7
|
+
</linearGradient>
|
|
8
|
+
<filter id="glowApi" x="-20%" y="-20%" width="140%" height="140%">
|
|
9
|
+
<feGaussianBlur in="SourceGraphic" stdDeviation="0.4" result="blur"/>
|
|
10
|
+
<feMerge><feMergeNode in="blur"/><feMergeNode in="SourceGraphic"/></feMerge>
|
|
11
|
+
</filter>
|
|
12
|
+
</defs>
|
|
13
|
+
<rect width="32" height="32" rx="8" fill="url(#aiGradApi)"/>
|
|
14
|
+
<g transform="translate(16,16) scale(0.64) translate(-16,-16)">
|
|
15
|
+
<g transform="translate(4, 4)" fill="white" fill-rule="evenodd" opacity="0.95" filter="url(#glowApi)">
|
|
16
|
+
<path d="M23.078 16.34c-.506 1.323-1.198 2.519-2.117 3.562-2.378 2.696-5.374 4.057-8.971 4.098a.037.037 0 01-.024-.01.041.041 0 01-.013-.023.041.041 0 01.003-.025.037.037 0 01.019-.019c1.886-.779 3.454-1.973 4.625-3.639a10.148 10.148 0 001.626-3.677c.217-.98.33-1.955.282-2.942-.048-1.018-.152-1.601-.484-2.565-.386-1.12-.915-2.16-1.627-3.089-.883-1.154-1.876-1.87-2.9-2.779-.995-.88-2.19-2.623-1.059-3.754.384-.384.997-.59 1.838-.621 2.478-.09 5.011 1.636 6.597 3.453.75.86 1.38 1.798 1.865 2.837.486 1.041.814 2.122.978 3.246.133.915.117 1.441.092 2.365a10.82 10.82 0 01-.73 3.582z"/>
|
|
17
|
+
<path d="M11.86.01a.041.041 0 01.009.049.038.038 0 01-.018.018C9.964.856 8.396 2.05 7.225 3.716a10.148 10.148 0 00-1.626 3.678c-.217.979-.33 1.955-.283 2.941.049 1.018.154 1.601.486 2.565.385 1.12.914 2.16 1.626 3.088.883 1.154 1.876 1.872 2.9 2.78.995.88 2.19 2.622 1.059 3.753-.385.385-.997.591-1.838.622-2.478.089-5.011-1.636-6.597-3.454-.75-.86-1.38-1.797-1.865-2.837a11.591 11.591 0 01-.978-3.246c-.133-.914-.117-1.44-.091-2.364.034-1.225.284-2.416.73-3.582.504-1.323 1.197-2.52 2.116-3.562C5.241 1.402 8.238.04 11.835 0c.009 0 .018.004.024.01z"/>
|
|
18
|
+
<path d="M8.721 11.903l2.455-.708.72-2.48a.066.066 0 01.127.002l.58 2.26c.776.437 1.65.755 2.622.956a.05.05 0 01.028.075.05.05 0 01-.024.019l-2.382.709a.163.163 0 00-.109.108l-.72 2.444a.034.034 0 01-.031.027.034.034 0 01-.034-.024l-.713-2.395a.183.183 0 00-.128-.128l-2.39-.705a.084.084 0 01-.044-.13.084.084 0 01.043-.03z"/>
|
|
19
|
+
</g>
|
|
20
|
+
</g>
|
|
21
|
+
</svg>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="aiGradGearLink" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
4
|
+
<stop offset="0%" stop-color="rgb(0, 70, 200)"/>
|
|
5
|
+
<stop offset="50%" stop-color="rgb(75, 195, 195)"/>
|
|
6
|
+
<stop offset="100%" stop-color="rgb(55, 195, 115)"/>
|
|
7
|
+
</linearGradient>
|
|
8
|
+
<filter id="glowGearLink" x="-20%" y="-20%" width="140%" height="140%">
|
|
9
|
+
<feGaussianBlur in="SourceGraphic" stdDeviation="0.4" result="blur"/>
|
|
10
|
+
<feMerge><feMergeNode in="blur"/><feMergeNode in="SourceGraphic"/></feMerge>
|
|
11
|
+
</filter>
|
|
12
|
+
</defs>
|
|
13
|
+
<rect width="32" height="32" rx="8" fill="url(#aiGradGearLink)"/>
|
|
14
|
+
<g transform="translate(16,16) scale(0.64) translate(-16,-16)">
|
|
15
|
+
<g transform="translate(6, 6)" fill="white" opacity="0.95" filter="url(#glowGearLink)">
|
|
16
|
+
<path d="M17.5015 9.99994C17.5015 9.69813 17.3866 9.3984 17.1572 9.16905L15.8503 7.8629C15.4724 7.48503 15.2941 6.94786 15.375 6.41596C15.5018 5.57149 16.2006 5.11032 16.7031 4.91531C16.8963 4.83986 17.0678 4.71787 17.202 4.55967C17.3364 4.40115 17.4295 4.21129 17.4722 4.00792C17.5148 3.80476 17.5061 3.5941 17.4469 3.39512C17.3877 3.19611 17.2796 3.01465 17.1328 2.86778C16.9859 2.7209 16.8045 2.61212 16.6055 2.55284C16.4064 2.49359 16.1952 2.48495 15.9919 2.52761C15.7885 2.57031 15.5986 2.66343 15.4401 2.79779C15.282 2.93182 15.1591 3.10283 15.0837 3.29584C14.8879 3.80054 14.4259 4.49867 13.5814 4.62559C13.0515 4.70482 12.5153 4.52687 12.1377 4.14952L10.8307 2.84255C10.6014 2.61319 10.3017 2.49831 9.99984 2.49831C9.84606 2.49812 9.69271 2.52822 9.55062 2.58702C9.40856 2.64583 9.27923 2.73214 9.17058 2.84092L7.89942 4.1129C7.8854 4.12692 7.87895 4.14558 7.88151 4.16417C7.88178 4.16596 7.88234 4.17096 7.88802 4.18126C7.89447 4.1929 7.90828 4.21337 7.93522 4.23985C7.99255 4.29615 8.08752 4.359 8.21273 4.40993C8.6581 4.59158 9.05273 4.88084 9.35938 5.25141C9.66596 5.62194 9.87625 6.06253 9.97136 6.53396C10.0664 7.00532 10.0435 7.49288 9.90462 7.95323C9.76563 8.4137 9.51476 8.833 9.17464 9.17312C8.83454 9.51322 8.41522 9.7641 7.95475 9.9031C7.49441 10.042 7.00683 10.0649 6.53548 9.96983C6.06405 9.87472 5.62347 9.66444 5.25293 9.35785C4.88237 9.0512 4.59311 8.65739 4.41146 8.21202C4.36053 8.08679 4.29768 7.99102 4.24138 7.9337C4.2149 7.90676 4.19442 7.89295 4.18278 7.8865C4.17249 7.88082 4.16749 7.88025 4.16569 7.87999C4.14766 7.87754 4.12803 7.88428 4.11442 7.89789L2.84245 9.16905C2.6131 9.3984 2.49822 9.69813 2.49821 9.99994C2.49802 10.1539 2.52798 10.3077 2.58692 10.45C2.63112 10.5566 2.69125 10.6557 2.76432 10.7446L2.84164 10.83L4.14942 12.1378L4.28044 12.2851C4.40239 12.4396 4.49683 12.6147 4.55876 12.8027C4.64132 13.0533 4.66369 13.3197 4.62468 13.5807C4.49893 14.426 3.80065 14.889 3.29655 15.0846L3.29574 15.0838C3.10273 15.1592 2.93172 15.2821 2.79769 15.4402C2.66332 15.5987 2.57021 15.7886 2.52751 15.992C2.48485 16.1953 2.49348 16.4065 2.55274 16.6056C2.61202 16.8047 2.7208 16.986 2.86768 17.1329C3.01455 17.2797 3.19601 17.3878 3.39502 17.447C3.594 17.5062 3.80466 17.5149 4.00781 17.4723C4.21119 17.4296 4.40105 17.3365 4.55957 17.2021C4.71777 17.0679 4.83976 16.8964 4.9152 16.7032C5.11104 16.1986 5.57398 15.5012 6.4183 15.3743H6.41992C6.68094 15.3355 6.94737 15.3582 7.19792 15.441C7.44813 15.5238 7.67567 15.664 7.86198 15.8504L9.16976 17.1581C9.27842 17.2671 9.40765 17.3539 9.54981 17.4129C9.69205 17.4718 9.84506 17.5018 9.99903 17.5016H10.0007C10.1548 17.5017 10.3075 17.4711 10.4499 17.4121C10.5922 17.353 10.7219 17.2665 10.8307 17.1573L12.1613 15.826C12.1571 15.8207 12.1519 15.8131 12.1434 15.8048C12.1035 15.7659 12.0311 15.7184 11.931 15.6811C11.4728 15.5111 11.0643 15.2287 10.7437 14.86C10.4228 14.4909 10.1996 14.047 10.0951 13.5693C9.99057 13.0916 10.0081 12.5949 10.1455 12.1256C10.2831 11.6562 10.5369 11.2288 10.8828 10.8829C11.2287 10.537 11.6561 10.2832 12.1255 10.1456C12.5948 10.0082 13.0915 9.99067 13.5692 10.0952C14.0469 10.1997 14.4908 10.4229 14.8599 10.7438C15.2285 11.0642 15.5102 11.4724 15.6802 11.9303C15.7173 12.0298 15.7661 12.1022 15.8055 12.1427C15.8138 12.1512 15.8213 12.1563 15.8267 12.1606L17.1572 10.8308C17.3872 10.6008 17.5015 10.302 17.5015 9.99994ZM19.1681 9.99994C19.1681 10.7262 18.8906 11.4542 18.3356 12.0092L16.9937 13.352C16.8114 13.5341 16.5881 13.6709 16.3434 13.7516C16.0988 13.8322 15.8389 13.8546 15.5841 13.8167C14.7575 13.6936 14.3053 13.0116 14.1193 12.513L14.1185 12.5113C14.0457 12.3147 13.9243 12.1395 13.7661 12.0019C13.6079 11.8643 13.4176 11.7684 13.2127 11.7236C13.0079 11.6788 12.7947 11.6866 12.5934 11.7455C12.3923 11.8045 12.2094 11.9131 12.0612 12.0613C11.913 12.2095 11.8044 12.3924 11.7454 12.5935C11.6865 12.7948 11.6787 13.008 11.7235 13.2128C11.7683 13.4177 11.8642 13.608 12.0018 13.7662C12.1394 13.9244 12.3146 14.0458 12.5112 14.1186C13.0111 14.3047 13.6933 14.7562 13.8166 15.5834L13.8337 15.7755C13.8397 15.9677 13.812 16.1599 13.7515 16.3435C13.6707 16.5884 13.5342 16.8114 13.3519 16.9938L12.0099 18.3349C11.7463 18.5992 11.4327 18.8088 11.0879 18.9518C10.7427 19.0949 10.3727 19.1686 9.99903 19.1682C9.62608 19.1685 9.25634 19.0953 8.91179 18.9526C8.56707 18.8097 8.25413 18.5999 7.99056 18.3357L6.6836 17.0296C6.6812 17.0272 6.67786 17.0241 6.67464 17.0231C6.67153 17.0221 6.6681 17.0218 6.66488 17.0222C6.65787 17.0253 6.64132 17.0355 6.61524 17.0621C6.56765 17.1108 6.51302 17.1943 6.46957 17.3063L6.46875 17.3079C6.29274 17.7595 6.00675 18.1598 5.63705 18.4732C5.26717 18.7868 4.82496 19.0035 4.35043 19.1031C3.8759 19.2028 3.38367 19.1828 2.91895 19.0445C2.4543 18.9062 2.03128 18.6541 1.68848 18.3113C1.34567 17.9685 1.09354 17.5455 0.955243 17.0808C0.816951 16.6161 0.79702 16.1239 0.896649 15.6494C0.996281 15.1748 1.21301 14.7326 1.52653 14.3627C1.84004 13.9929 2.24098 13.707 2.69271 13.531L2.69352 13.5302C2.80546 13.4868 2.88839 13.4319 2.93685 13.3845C2.98143 13.3409 2.97837 13.3246 2.97673 13.3357V13.3341C2.97719 13.3308 2.97692 13.3274 2.97591 13.3243C2.97493 13.3213 2.97317 13.3185 2.97103 13.3162L1.66406 12.0092L1.66488 12.0084C1.40075 11.7448 1.19006 11.4327 1.0472 11.088C0.904228 10.7429 0.831096 10.3727 0.831545 9.99913C0.831763 9.2729 1.11031 8.54442 1.66406 7.99066L2.93522 6.71869C3.32137 6.33254 3.86977 6.15071 4.41146 6.23122L4.41227 6.23204C5.2758 6.36118 5.74934 7.07742 5.95524 7.58376C6.03307 7.77424 6.15645 7.94244 6.31494 8.07367C6.47374 8.20508 6.66303 8.29494 6.86507 8.33571C7.06714 8.37648 7.27645 8.3668 7.4738 8.30723C7.67101 8.24764 7.85058 8.14041 7.99626 7.99473C8.14193 7.84906 8.24917 7.66947 8.30876 7.47227C8.36833 7.27493 8.37801 7.06561 8.33724 6.86355C8.29647 6.66149 8.20661 6.47222 8.0752 6.31342C7.94396 6.15492 7.77578 6.03073 7.58529 5.9529C7.07895 5.74701 6.36271 5.27425 6.23356 4.41075L6.23275 4.40993C6.15231 3.86883 6.33362 3.32111 6.72103 2.9337L7.99056 1.66417C8.25422 1.40005 8.5678 1.19009 8.9126 1.0473C9.25719 0.904651 9.62689 0.83213 9.99984 0.83246C10.7263 0.83246 11.4551 1.11019 12.0091 1.66417L13.3161 2.97113C13.3186 2.97352 13.3216 2.97566 13.325 2.97683C13.3286 2.97801 13.3318 2.97795 13.334 2.97764L13.3389 2.9752C13.3474 2.97061 13.3626 2.96011 13.3844 2.93777C13.432 2.88909 13.4867 2.80559 13.5301 2.69363L13.5309 2.69281C13.7069 2.24108 13.9928 1.84014 14.3626 1.52663C14.7325 1.21311 15.1747 0.996382 15.6493 0.89675C16.1238 0.79712 16.616 0.817051 17.0807 0.955344C17.5454 1.09364 17.9684 1.34577 18.3112 1.68858C18.654 2.03138 18.9061 2.4544 19.0444 2.91905C19.1827 3.38378 19.2027 3.876 19.103 4.35053C19.0034 4.82506 18.7867 5.26727 18.4731 5.63715C18.1597 6.00685 17.7594 6.29285 17.3078 6.46885L17.3062 6.46967C17.1937 6.51333 17.1103 6.56812 17.062 6.61534C17.0363 6.64045 17.0269 6.65652 17.0238 6.66335L17.023 6.66742C17.0224 6.67215 17.0242 6.67838 17.0295 6.6837L18.3356 7.99066C18.8896 8.54463 19.1681 9.27345 19.1681 9.99994Z"/>
|
|
17
|
+
</g>
|
|
18
|
+
</g>
|
|
19
|
+
</svg>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="aiGradTrae" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
4
|
+
<stop offset="0%" stop-color="rgb(0, 70, 200)"/>
|
|
5
|
+
<stop offset="50%" stop-color="rgb(75, 195, 195)"/>
|
|
6
|
+
<stop offset="100%" stop-color="rgb(55, 195, 115)"/>
|
|
7
|
+
</linearGradient>
|
|
8
|
+
<filter id="glowTrae" x="-20%" y="-20%" width="140%" height="140%">
|
|
9
|
+
<feGaussianBlur in="SourceGraphic" stdDeviation="0.4" result="blur"/>
|
|
10
|
+
<feMerge><feMergeNode in="blur"/><feMergeNode in="SourceGraphic"/></feMerge>
|
|
11
|
+
</filter>
|
|
12
|
+
</defs>
|
|
13
|
+
<rect width="32" height="32" rx="8" fill="url(#aiGradTrae)"/>
|
|
14
|
+
<g transform="translate(16,16) scale(0.64) translate(-16,-16)">
|
|
15
|
+
<g transform="translate(4, 4)" fill="white" fill-rule="evenodd" opacity="0.95" filter="url(#glowTrae)">
|
|
16
|
+
<path d="M24 20.541H3.428v-3.426H0V3.4h24V20.54zM3.428 17.115h17.144V6.827H3.428v10.288zm8.573-5.196l-2.425 2.424-2.424-2.424 2.424-2.424 2.425 2.424zm6.857-.001l-2.424 2.423-2.425-2.423 2.425-2.425 2.424 2.425z"/>
|
|
17
|
+
</g>
|
|
18
|
+
</g>
|
|
19
|
+
</svg>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="aiGradUser" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
4
|
+
<stop offset="0%" stop-color="rgb(0, 70, 200)"/>
|
|
5
|
+
<stop offset="50%" stop-color="rgb(75, 195, 195)"/>
|
|
6
|
+
<stop offset="100%" stop-color="rgb(55, 195, 115)"/>
|
|
7
|
+
</linearGradient>
|
|
8
|
+
<filter id="glowUser" x="-20%" y="-20%" width="140%" height="140%">
|
|
9
|
+
<feGaussianBlur in="SourceGraphic" stdDeviation="0.4" result="blur"/>
|
|
10
|
+
<feMerge><feMergeNode in="blur"/><feMergeNode in="SourceGraphic"/></feMerge>
|
|
11
|
+
</filter>
|
|
12
|
+
</defs>
|
|
13
|
+
<rect width="32" height="32" rx="8" fill="url(#aiGradUser)"/>
|
|
14
|
+
<g transform="translate(16,16) scale(0.64) translate(-16,-16)">
|
|
15
|
+
<g transform="scale(2)" stroke="white" stroke-width="1" fill="none" opacity="0.95" filter="url(#glowUser)">
|
|
16
|
+
<path d="M15 8A7 7 0 1 1 1 8a7 7 0 0 1 14 0Z"/>
|
|
17
|
+
<path d="M4 13.637V12.21c0-.097.02-.194.079-.271C4.442 11.456 5.717 10.5 8 10.5s3.558.956 3.921 1.439a.445.445 0 0 1 .079.271v1.427M9.9 5.8C9.9 7.015 9.05 8 8 8c-1.05 0-1.9-.985-1.9-2.2 0-1.215.85-2.2 1.9-2.2.506 0 .966.23 1.307.603.365.401.593.968.593 1.597Z"/>
|
|
18
|
+
</g>
|
|
19
|
+
</g>
|
|
20
|
+
</svg>
|
package/public/opkx.json
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"app": {
|
|
3
|
+
"id": "",
|
|
4
|
+
"name": "",
|
|
5
|
+
"version": "v0.0.1",
|
|
6
|
+
"desc": "",
|
|
7
|
+
"auth": {
|
|
8
|
+
"type": "jwt"
|
|
9
|
+
},
|
|
10
|
+
"lifecycle_callback": {
|
|
11
|
+
"install": "/install_cb"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"runtime": {
|
|
15
|
+
"type": "ones-node-22",
|
|
16
|
+
"healthcheck": {
|
|
17
|
+
"path": "/health_check"
|
|
18
|
+
},
|
|
19
|
+
"command": ["node", "index.js"]
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -1,104 +1,93 @@
|
|
|
1
|
-
# AGENTS
|
|
1
|
+
# AGENTS
|
|
2
|
+
|
|
3
|
+
## Scope
|
|
4
|
+
This file defines how coding agents should work in this template project.
|
|
5
|
+
Use it as the default execution guide for code changes, reviews, and feature additions.
|
|
6
|
+
|
|
7
|
+
## Project Snapshot
|
|
8
|
+
- App type: ONES Hosted App (`.opkx` package).
|
|
9
|
+
- Runtime: `ones-node-22` (`opkx.json` -> `runtime.type`).
|
|
10
|
+
- Backend: NestJS (`backend/`).
|
|
11
|
+
- Frontend extension pages: React + Vite (`web/pages/`).
|
|
12
|
+
- Storage: ONES Hosted App Storage via `@ones-open/node-sdk`.
|
|
13
|
+
|
|
14
|
+
## Repository Map
|
|
15
|
+
- `opkx.json`: App manifest (metadata, oauth/events/extensions/storage/runtime).
|
|
16
|
+
- `backend/main.ts`: Backend bootstrap, listens on `ONES_HOSTED_PORT` or `8201`.
|
|
17
|
+
- `backend/app.controller.ts`: Lifecycle callbacks, event webhook, extension entries, HTTP APIs.
|
|
18
|
+
- `backend/services/recent-work-items.service.ts`: Example entity storage read/write flow.
|
|
19
|
+
- `web/pages/<page>/index.tsx`: One extension page entry point per folder.
|
|
20
|
+
- `vite.config.ts`: Multi-page frontend build/dev behavior.
|
|
21
|
+
- `public/i18n/*.json`: Frontend locale resources.
|
|
22
|
+
|
|
23
|
+
## Commands
|
|
24
|
+
- Install deps: `npm install`
|
|
25
|
+
- Start dev mode integrate with ones: `ones dev`
|
|
26
|
+
- Start dev mode locally(backend + frontend): `npm run dev`
|
|
27
|
+
- Build and package app for ONES install (opkx file): `ones build`
|
|
28
|
+
- Build backend + frontend artifacts: `npm run build`
|
|
29
|
+
|
|
30
|
+
## Manifest Guardrails (`opkx.json`)
|
|
31
|
+
- Generated by `ones create` command.
|
|
32
|
+
- Keep `app.id` stable after first release. Do not regenerate for an existing app.
|
|
33
|
+
- Keep callback and webhook paths as relative paths starting with `/`.
|
|
34
|
+
- Keep `runtime.healthcheck.path` aligned with implemented endpoint (`/health_check` in template).
|
|
35
|
+
- When adding OpenAPI access, update `app.oauth.scope` and `app.oauth.type` together.
|
|
36
|
+
- When adding events, update `app.events.types` and implement matching handler logic.
|
|
37
|
+
- When adding extension pages, keep `app.extensions` and `customEntries` response consistent.
|
|
38
|
+
- When adding storage entities, declare them in `ones.storage.entities` before code usage.
|
|
39
|
+
|
|
40
|
+
## Feature Playbooks
|
|
41
|
+
|
|
42
|
+
### Add an App Setting Extension Page
|
|
43
|
+
1. Add page entry in `backend/app.controller.ts` -> `buildCustomEntries()`.
|
|
44
|
+
2. Create `web/pages/<new-page>/index.tsx`.
|
|
45
|
+
3. Ensure `page_url` points to `createWebPageURL('<new-page>.html')`.
|
|
46
|
+
4. Run `ones dev`, then verify page loads from app detail tabs.
|
|
47
|
+
|
|
48
|
+
### Subscribe to a New Event
|
|
49
|
+
1. Add event type under `app.events.types` in `opkx.json`.
|
|
50
|
+
2. Update `/events/webhook` flow in `backend/app.controller.ts`.
|
|
51
|
+
3. Return `200`/`204` quickly, then process heavy logic asynchronously.
|
|
52
|
+
4. Add strict payload guards before writing data.
|
|
53
|
+
|
|
54
|
+
### Access ONES OpenAPI
|
|
55
|
+
1. Add required scopes in `app.oauth.scope`.
|
|
56
|
+
2. Decide token identity in `app.oauth.type` (`app`, `user`, or both).
|
|
57
|
+
3. Use installation credentials (from install callback persistence) to mint access tokens.
|
|
58
|
+
4. Never hardcode `shared_secret` or tokens.
|
|
59
|
+
|
|
60
|
+
### Add/Change Hosted Storage Entity
|
|
61
|
+
1. Update `ones.storage.entities` in `opkx.json`.
|
|
62
|
+
2. Keep attribute types/indexes compatible with query usage.
|
|
63
|
+
3. Update backend data access code in services.
|
|
64
|
+
4. Validate entity key format and length before writes.
|
|
65
|
+
5. Do not delete existing entities or entities attributes unless user asks.
|
|
66
|
+
|
|
67
|
+
## Security and Lifecycle Rules
|
|
68
|
+
- `POST /install_cb` is critical for installation success; it must return HTTP `200`.
|
|
69
|
+
- Persist installation credentials securely (`installation_id`, `shared_secret`, `ones_base_url`).
|
|
70
|
+
- Verify JWT on callbacks/webhooks that include `Authorization` headers.
|
|
71
|
+
- Decode `shared_secret` from base64 before JWT verification.
|
|
72
|
+
- Validate required JWT claims (`aud`, `sub`, `iat`, `exp`) before processing business logic.
|
|
73
|
+
|
|
74
|
+
## Coding Rules
|
|
75
|
+
- Keep existing API contracts backward-compatible unless explicitly changing behavior.
|
|
76
|
+
- Prefer narrow DTO/type guards for webhook payloads.
|
|
77
|
+
- Fail closed on invalid request payloads and auth checks.
|
|
78
|
+
- Keep frontend pages self-contained under `web/pages/<page>`.
|
|
79
|
+
- Do not remove existing demo page `recent-work-items` unless user asks.
|
|
80
|
+
|
|
81
|
+
## Definition of Done (for code changes)
|
|
82
|
+
- `ones build` passes.
|
|
83
|
+
- Manifest changes and route implementations are consistent.
|
|
84
|
+
- New extension/event/storage behavior is covered by at least one manual verification step.
|
|
85
|
+
- No secrets or environment-specific credentials are committed.
|
|
86
|
+
|
|
87
|
+
## Troubleshooting Checklist
|
|
88
|
+
- Tab not visible: check `app.extensions` and `buildCustomEntries()` output.
|
|
89
|
+
- Blank extension page: verify `page_url` file name matches page folder name.
|
|
90
|
+
- Webhook not triggered: verify `app.events.types` and endpoint path.
|
|
91
|
+
- Storage write/query mismatch: verify declared entity attributes and index names.
|
|
92
|
+
- Health check failure: verify `/health_check` route and runtime healthcheck path match.
|
|
2
93
|
|
|
3
|
-
This is the ONES application code directory
|
|
4
|
-
|
|
5
|
-
Next, you can deploy the ONES application
|
|
6
|
-
|
|
7
|
-
Before deployment, you need to:
|
|
8
|
-
|
|
9
|
-
## 1. Check if netlify cli is installed
|
|
10
|
-
|
|
11
|
-
Check command:
|
|
12
|
-
|
|
13
|
-
```bash
|
|
14
|
-
netlify -v
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
If the command is missing, you can install it with the following command:
|
|
18
|
-
|
|
19
|
-
```bash
|
|
20
|
-
npm i -g netlify-cli
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
If you get an `Error: EACCES: permission denied` error
|
|
24
|
-
|
|
25
|
-
You need to request `sudo` permissions and retry with the following command:
|
|
26
|
-
|
|
27
|
-
```bash
|
|
28
|
-
sudo npm i -g netlify-cli
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
If you get other errors
|
|
32
|
-
|
|
33
|
-
Please check your network and proxy configuration, then retry
|
|
34
|
-
|
|
35
|
-
If multiple retries fail, prompt the user to install manually
|
|
36
|
-
|
|
37
|
-
If the check passes, proceed to the next step
|
|
38
|
-
|
|
39
|
-
## 2. Check if netlify cli is logged in
|
|
40
|
-
|
|
41
|
-
Check command:
|
|
42
|
-
|
|
43
|
-
```bash
|
|
44
|
-
netlify status
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
If the user is not logged in
|
|
48
|
-
|
|
49
|
-
You can guide the user to register or log in based on the `netlify --help` prompt
|
|
50
|
-
|
|
51
|
-
If the check passes, proceed to the next step
|
|
52
|
-
|
|
53
|
-
## 3. Deploy ONES application
|
|
54
|
-
|
|
55
|
-
Deployment command:
|
|
56
|
-
|
|
57
|
-
```bash
|
|
58
|
-
netlify deploy --create-site --prod
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
If deployment fails
|
|
62
|
-
|
|
63
|
-
Please check your network and proxy configuration, then retry
|
|
64
|
-
|
|
65
|
-
If multiple retries fail, prompt the user to install manually
|
|
66
|
-
|
|
67
|
-
If deployment is successful, proceed to the next step
|
|
68
|
-
|
|
69
|
-
## 4. Return key information
|
|
70
|
-
|
|
71
|
-
In the previous step, `netlify` will output the application deployment URL in the command line
|
|
72
|
-
|
|
73
|
-
The application deployment URL will immediately follow the "Deployed to production URL" statement
|
|
74
|
-
|
|
75
|
-
We extract two key pieces of information to tell the user:
|
|
76
|
-
|
|
77
|
-
- Application deployment URL: `${url}`
|
|
78
|
-
- Application installation URL: `${url}/api/app_manifest`
|
|
79
|
-
|
|
80
|
-
The application installation URL is actually concatenated based on the application deployment URL
|
|
81
|
-
|
|
82
|
-
The concatenated path defaults to `/api/app_manifest`
|
|
83
|
-
|
|
84
|
-
Corresponding to the `netlify/functions/app_manifest.js` file
|
|
85
|
-
|
|
86
|
-
If the user has moved this file, please replace it with the actual filename
|
|
87
|
-
|
|
88
|
-
## 5. Iteration and development
|
|
89
|
-
|
|
90
|
-
If the user needs secondary development
|
|
91
|
-
|
|
92
|
-
You can perform secondary development based on the current ONES application code
|
|
93
|
-
|
|
94
|
-
Regarding ONES application capabilities, you need to understand relevant information from the following documentation:
|
|
95
|
-
|
|
96
|
-
- events: [https://p8205-k3s-9-submodule-opendocs2.k3s-dev.myones.net/docs/abilities/events/]
|
|
97
|
-
- extensions: [https://p8205-k3s-9-submodule-opendocs2.k3s-dev.myones.net/docs/abilities/extensions/]
|
|
98
|
-
- openapi: [https://p8205-k3s-9-submodule-opendocs2.k3s-dev.myones.net/docs/abilities/openapi/]
|
|
99
|
-
- web-sdk: [https://p8205-k3s-9-submodule-opendocs2.k3s-dev.myones.net/docs/abilities/web-sdk/]
|
|
100
|
-
|
|
101
|
-
Regarding ONES application description files, you need to understand relevant information from the following documentation:
|
|
102
|
-
|
|
103
|
-
- app_manifest: [https://p8205-k3s-9-submodule-opendocs2.k3s-dev.myones.net/docs/guide/getting-started/quick-start-guide#build-your-app-manifest]
|
|
104
|
-
- app_schema_validator: [https://p8205-k3s-9-submodule-opendocs2.k3s-dev.myones.net/docs/app_schema_validator/]
|