agent-replay 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +113 -0
- package/bin/agent-replay.js +20 -0
- package/build/client/_app/immutable/assets/0.D9-tUsfl.css +1 -0
- package/build/client/_app/immutable/assets/0.D9-tUsfl.css.br +0 -0
- package/build/client/_app/immutable/assets/0.D9-tUsfl.css.gz +0 -0
- package/build/client/_app/immutable/assets/2.Ch4de4ty.css +1 -0
- package/build/client/_app/immutable/assets/2.Ch4de4ty.css.br +0 -0
- package/build/client/_app/immutable/assets/2.Ch4de4ty.css.gz +0 -0
- package/build/client/_app/immutable/assets/3.BP1aEJ1A.css +1 -0
- package/build/client/_app/immutable/assets/3.BP1aEJ1A.css.br +0 -0
- package/build/client/_app/immutable/assets/3.BP1aEJ1A.css.gz +0 -0
- package/build/client/_app/immutable/chunks/8LyLqy0e.js +1 -0
- package/build/client/_app/immutable/chunks/8LyLqy0e.js.br +3 -0
- package/build/client/_app/immutable/chunks/8LyLqy0e.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BmaMsIzI.js +3 -0
- package/build/client/_app/immutable/chunks/BmaMsIzI.js.br +0 -0
- package/build/client/_app/immutable/chunks/BmaMsIzI.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BoUXsunA.js +1 -0
- package/build/client/_app/immutable/chunks/BoUXsunA.js.br +0 -0
- package/build/client/_app/immutable/chunks/BoUXsunA.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CCa20sJM.js +1 -0
- package/build/client/_app/immutable/chunks/CCa20sJM.js.br +0 -0
- package/build/client/_app/immutable/chunks/CCa20sJM.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CP-o74wi.js +2 -0
- package/build/client/_app/immutable/chunks/CP-o74wi.js.br +0 -0
- package/build/client/_app/immutable/chunks/CP-o74wi.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CZWwZlGk.js +1 -0
- package/build/client/_app/immutable/chunks/CZWwZlGk.js.br +0 -0
- package/build/client/_app/immutable/chunks/CZWwZlGk.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D6SnDtAs.js +1 -0
- package/build/client/_app/immutable/chunks/D6SnDtAs.js.br +0 -0
- package/build/client/_app/immutable/chunks/D6SnDtAs.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DApgqo7x.js +1 -0
- package/build/client/_app/immutable/chunks/DApgqo7x.js.br +0 -0
- package/build/client/_app/immutable/chunks/DApgqo7x.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DCcb0kkP.js +1 -0
- package/build/client/_app/immutable/chunks/DCcb0kkP.js.br +0 -0
- package/build/client/_app/immutable/chunks/DCcb0kkP.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.CelDjTDX.js +2 -0
- package/build/client/_app/immutable/entry/app.CelDjTDX.js.br +0 -0
- package/build/client/_app/immutable/entry/app.CelDjTDX.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.Bo8U6P_2.js +1 -0
- package/build/client/_app/immutable/entry/start.Bo8U6P_2.js.br +2 -0
- package/build/client/_app/immutable/entry/start.Bo8U6P_2.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.DdgnJbSm.js +1 -0
- package/build/client/_app/immutable/nodes/0.DdgnJbSm.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.DdgnJbSm.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.DUCL1Cc_.js +1 -0
- package/build/client/_app/immutable/nodes/1.DUCL1Cc_.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.DUCL1Cc_.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.FNRc_Nvw.js +1 -0
- package/build/client/_app/immutable/nodes/2.FNRc_Nvw.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.FNRc_Nvw.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.CaEmUkA2.js +29 -0
- package/build/client/_app/immutable/nodes/3.CaEmUkA2.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.CaEmUkA2.js.gz +0 -0
- package/build/client/_app/version.json +1 -0
- package/build/client/_app/version.json.br +0 -0
- package/build/client/_app/version.json.gz +0 -0
- package/build/client/favicon.svg +13 -0
- package/build/client/favicon.svg.br +0 -0
- package/build/client/favicon.svg.gz +0 -0
- package/build/client/robots.txt +3 -0
- package/build/client/screenshot.png +0 -0
- package/build/env.js +94 -0
- package/build/handler.js +1494 -0
- package/build/index.js +345 -0
- package/build/server/chunks/0-CkGitm9W.js +9 -0
- package/build/server/chunks/0-CkGitm9W.js.map +1 -0
- package/build/server/chunks/1-BU8Hl3FY.js +9 -0
- package/build/server/chunks/1-BU8Hl3FY.js.map +1 -0
- package/build/server/chunks/2-DenZJmTh.js +27 -0
- package/build/server/chunks/2-DenZJmTh.js.map +1 -0
- package/build/server/chunks/3-Df2VKXDy.js +73 -0
- package/build/server/chunks/3-Df2VKXDy.js.map +1 -0
- package/build/server/chunks/_layout.svelte-BK7oCPlN.js +26 -0
- package/build/server/chunks/_layout.svelte-BK7oCPlN.js.map +1 -0
- package/build/server/chunks/_page.svelte-BMqbzglq.js +178 -0
- package/build/server/chunks/_page.svelte-BMqbzglq.js.map +1 -0
- package/build/server/chunks/_page.svelte-C2kNC2pi.js +504 -0
- package/build/server/chunks/_page.svelte-C2kNC2pi.js.map +1 -0
- package/build/server/chunks/context-JUYyv6NC.js +74 -0
- package/build/server/chunks/context-JUYyv6NC.js.map +1 -0
- package/build/server/chunks/error.svelte-Epasb48G.js +46 -0
- package/build/server/chunks/error.svelte-Epasb48G.js.map +1 -0
- package/build/server/chunks/escaping-CqgfEcN3.js +19 -0
- package/build/server/chunks/escaping-CqgfEcN3.js.map +1 -0
- package/build/server/chunks/exports-CURVw3-F.js +303 -0
- package/build/server/chunks/exports-CURVw3-F.js.map +1 -0
- package/build/server/chunks/format-dOzJq-yD.js +59 -0
- package/build/server/chunks/format-dOzJq-yD.js.map +1 -0
- package/build/server/chunks/index-C0L7m6Jv.js +1497 -0
- package/build/server/chunks/index-C0L7m6Jv.js.map +1 -0
- package/build/server/chunks/index-CoD1IJuy.js +190 -0
- package/build/server/chunks/index-CoD1IJuy.js.map +1 -0
- package/build/server/chunks/index2-f44F-4KW.js +614 -0
- package/build/server/chunks/index2-f44F-4KW.js.map +1 -0
- package/build/server/chunks/shared-server-DaWdgxVh.js +11 -0
- package/build/server/chunks/shared-server-DaWdgxVh.js.map +1 -0
- package/build/server/index.js +8152 -0
- package/build/server/index.js.map +1 -0
- package/build/server/manifest.js +54 -0
- package/build/server/manifest.js.map +1 -0
- package/build/shims.js +32 -0
- package/package.json +71 -0
- package/static/favicon.svg +13 -0
- package/static/robots.txt +3 -0
- package/static/screenshot.png +0 -0
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
const manifest = (() => {
|
|
2
|
+
function __memo(fn) {
|
|
3
|
+
let value;
|
|
4
|
+
return () => value ??= (value = fn());
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
return {
|
|
8
|
+
appDir: "_app",
|
|
9
|
+
appPath: "_app",
|
|
10
|
+
assets: new Set(["favicon.svg","robots.txt","screenshot.png"]),
|
|
11
|
+
mimeTypes: {".svg":"image/svg+xml",".txt":"text/plain",".png":"image/png"},
|
|
12
|
+
_: {
|
|
13
|
+
client: {start:"_app/immutable/entry/start.Bo8U6P_2.js",app:"_app/immutable/entry/app.CelDjTDX.js",imports:["_app/immutable/entry/start.Bo8U6P_2.js","_app/immutable/chunks/BmaMsIzI.js","_app/immutable/chunks/DApgqo7x.js","_app/immutable/chunks/D6SnDtAs.js","_app/immutable/entry/app.CelDjTDX.js","_app/immutable/chunks/DApgqo7x.js","_app/immutable/chunks/CP-o74wi.js","_app/immutable/chunks/D6SnDtAs.js","_app/immutable/chunks/8LyLqy0e.js","_app/immutable/chunks/BoUXsunA.js","_app/immutable/chunks/DCcb0kkP.js"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},
|
|
14
|
+
nodes: [
|
|
15
|
+
__memo(() => import('./chunks/0-CkGitm9W.js')),
|
|
16
|
+
__memo(() => import('./chunks/1-BU8Hl3FY.js')),
|
|
17
|
+
__memo(() => import('./chunks/2-DenZJmTh.js')),
|
|
18
|
+
__memo(() => import('./chunks/3-Df2VKXDy.js'))
|
|
19
|
+
],
|
|
20
|
+
remotes: {
|
|
21
|
+
|
|
22
|
+
},
|
|
23
|
+
routes: [
|
|
24
|
+
{
|
|
25
|
+
id: "/",
|
|
26
|
+
pattern: /^\/$/,
|
|
27
|
+
params: [],
|
|
28
|
+
page: { layouts: [0,], errors: [1,], leaf: 2 },
|
|
29
|
+
endpoint: null
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
id: "/sessions/[sessionId]",
|
|
33
|
+
pattern: /^\/sessions\/([^/]+?)\/?$/,
|
|
34
|
+
params: [{"name":"sessionId","optional":false,"rest":false,"chained":false}],
|
|
35
|
+
page: { layouts: [0,], errors: [1,], leaf: 3 },
|
|
36
|
+
endpoint: null
|
|
37
|
+
}
|
|
38
|
+
],
|
|
39
|
+
prerendered_routes: new Set([]),
|
|
40
|
+
matchers: async () => {
|
|
41
|
+
|
|
42
|
+
return { };
|
|
43
|
+
},
|
|
44
|
+
server_assets: {}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
})();
|
|
48
|
+
|
|
49
|
+
const prerendered = new Set([]);
|
|
50
|
+
|
|
51
|
+
const base = "";
|
|
52
|
+
|
|
53
|
+
export { base, manifest, prerendered };
|
|
54
|
+
//# sourceMappingURL=manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.js","sources":["../../.svelte-kit/adapter-node/manifest.js"],"sourcesContent":["export const manifest = (() => {\nfunction __memo(fn) {\n\tlet value;\n\treturn () => value ??= (value = fn());\n}\n\nreturn {\n\tappDir: \"_app\",\n\tappPath: \"_app\",\n\tassets: new Set([\"favicon.svg\",\"robots.txt\",\"screenshot.png\"]),\n\tmimeTypes: {\".svg\":\"image/svg+xml\",\".txt\":\"text/plain\",\".png\":\"image/png\"},\n\t_: {\n\t\tclient: {start:\"_app/immutable/entry/start.Bo8U6P_2.js\",app:\"_app/immutable/entry/app.CelDjTDX.js\",imports:[\"_app/immutable/entry/start.Bo8U6P_2.js\",\"_app/immutable/chunks/BmaMsIzI.js\",\"_app/immutable/chunks/DApgqo7x.js\",\"_app/immutable/chunks/D6SnDtAs.js\",\"_app/immutable/entry/app.CelDjTDX.js\",\"_app/immutable/chunks/DApgqo7x.js\",\"_app/immutable/chunks/CP-o74wi.js\",\"_app/immutable/chunks/D6SnDtAs.js\",\"_app/immutable/chunks/8LyLqy0e.js\",\"_app/immutable/chunks/BoUXsunA.js\",\"_app/immutable/chunks/DCcb0kkP.js\"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},\n\t\tnodes: [\n\t\t\t__memo(() => import('./nodes/0.js')),\n\t\t\t__memo(() => import('./nodes/1.js')),\n\t\t\t__memo(() => import('./nodes/2.js')),\n\t\t\t__memo(() => import('./nodes/3.js'))\n\t\t],\n\t\tremotes: {\n\t\t\t\n\t\t},\n\t\troutes: [\n\t\t\t{\n\t\t\t\tid: \"/\",\n\t\t\t\tpattern: /^\\/$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 2 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/sessions/[sessionId]\",\n\t\t\t\tpattern: /^\\/sessions\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"sessionId\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 3 },\n\t\t\t\tendpoint: null\n\t\t\t}\n\t\t],\n\t\tprerendered_routes: new Set([]),\n\t\tmatchers: async () => {\n\t\t\t\n\t\t\treturn { };\n\t\t},\n\t\tserver_assets: {}\n\t}\n}\n})();\n\nexport const prerendered = new Set([]);\n\nexport const base = \"\";"],"names":[],"mappings":"AAAY,MAAC,QAAQ,GAAG,CAAC,MAAM;AAC/B,SAAS,MAAM,CAAC,EAAE,EAAE;AACpB,CAAC,IAAI,KAAK;AACV,CAAC,OAAO,MAAM,KAAK,MAAM,KAAK,GAAG,EAAE,EAAE,CAAC;AACtC;;AAEA,OAAO;AACP,CAAC,MAAM,EAAE,MAAM;AACf,CAAC,OAAO,EAAE,MAAM;AAChB,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC,aAAa,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;AAC/D,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC;AAC3E,CAAC,CAAC,EAAE;AACJ,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,wCAAwC,CAAC,GAAG,CAAC,sCAAsC,CAAC,OAAO,CAAC,CAAC,wCAAwC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,sCAAsC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAAC,KAAK,CAAC;AACzjB,EAAE,KAAK,EAAE;AACT,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC;AACtC,GAAG;AACH,EAAE,OAAO,EAAE;AACX;AACA,GAAG;AACH,EAAE,MAAM,EAAE;AACV,GAAG;AACH,IAAI,EAAE,EAAE,GAAG;AACX,IAAI,OAAO,EAAE,MAAM;AACnB,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AAClD,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,uBAAuB;AAC/B,IAAI,OAAO,EAAE,2BAA2B;AACxC,IAAI,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAChF,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AAClD,IAAI,QAAQ,EAAE;AACd;AACA,GAAG;AACH,EAAE,kBAAkB,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC;AACjC,EAAE,QAAQ,EAAE,YAAY;AACxB;AACA,GAAG,OAAO,IAAI;AACd,EAAE,CAAC;AACH,EAAE,aAAa,EAAE;AACjB;AACA;AACA,CAAC;;AAEW,MAAC,WAAW,GAAG,IAAI,GAAG,CAAC,EAAE;;AAEzB,MAAC,IAAI,GAAG;;;;"}
|
package/build/shims.js
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import buffer from 'node:buffer';
|
|
2
|
+
import { webcrypto } from 'node:crypto';
|
|
3
|
+
|
|
4
|
+
// `buffer.File` was added in Node 18.13.0 while the `File` global was added in Node 20.0.0
|
|
5
|
+
const File = /** @type {import('node:buffer') & { File?: File}} */ (buffer).File;
|
|
6
|
+
|
|
7
|
+
/** @type {Record<string, any>} */
|
|
8
|
+
const globals = {
|
|
9
|
+
crypto: webcrypto,
|
|
10
|
+
File
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
// exported for dev/preview and node environments
|
|
14
|
+
/**
|
|
15
|
+
* Make various web APIs available as globals:
|
|
16
|
+
* - `crypto`
|
|
17
|
+
* - `File`
|
|
18
|
+
*/
|
|
19
|
+
function installPolyfills() {
|
|
20
|
+
for (const name in globals) {
|
|
21
|
+
if (name in globalThis) continue;
|
|
22
|
+
|
|
23
|
+
Object.defineProperty(globalThis, name, {
|
|
24
|
+
enumerable: true,
|
|
25
|
+
configurable: true,
|
|
26
|
+
writable: true,
|
|
27
|
+
value: globals[name]
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
installPolyfills();
|
package/package.json
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "agent-replay",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "DevTools for replaying AI agent sessions — browse, inspect, and debug Claude Code and Cursor sessions with a timeline-based UI",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"agent-replay": "bin/agent-replay.js"
|
|
8
|
+
},
|
|
9
|
+
"files": [
|
|
10
|
+
"build/",
|
|
11
|
+
"bin/",
|
|
12
|
+
"static/",
|
|
13
|
+
"README.md",
|
|
14
|
+
"LICENSE"
|
|
15
|
+
],
|
|
16
|
+
"scripts": {
|
|
17
|
+
"dev": "vite dev",
|
|
18
|
+
"build": "vite build",
|
|
19
|
+
"preview": "vite preview",
|
|
20
|
+
"start": "node build/index.js",
|
|
21
|
+
"prepare": "svelte-kit sync || echo ''",
|
|
22
|
+
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json"
|
|
23
|
+
},
|
|
24
|
+
"keywords": [
|
|
25
|
+
"ai",
|
|
26
|
+
"agent",
|
|
27
|
+
"replay",
|
|
28
|
+
"devtools",
|
|
29
|
+
"claude",
|
|
30
|
+
"claude-code",
|
|
31
|
+
"cursor",
|
|
32
|
+
"debugger",
|
|
33
|
+
"session",
|
|
34
|
+
"timeline"
|
|
35
|
+
],
|
|
36
|
+
"author": "mttetc",
|
|
37
|
+
"license": "MIT",
|
|
38
|
+
"repository": {
|
|
39
|
+
"type": "git",
|
|
40
|
+
"url": "git+https://github.com/mttetc/agent-replay.git"
|
|
41
|
+
},
|
|
42
|
+
"homepage": "https://github.com/mttetc/agent-replay#readme",
|
|
43
|
+
"bugs": {
|
|
44
|
+
"url": "https://github.com/mttetc/agent-replay/issues"
|
|
45
|
+
},
|
|
46
|
+
"engines": {
|
|
47
|
+
"node": ">=18"
|
|
48
|
+
},
|
|
49
|
+
"devDependencies": {
|
|
50
|
+
"@sveltejs/adapter-node": "^5",
|
|
51
|
+
"@sveltejs/eslint-config": "^8.3.5",
|
|
52
|
+
"@sveltejs/kit": "^2.50.2",
|
|
53
|
+
"@sveltejs/vite-plugin-svelte": "^6.2.4",
|
|
54
|
+
"@tailwindcss/vite": "^4",
|
|
55
|
+
"@types/better-sqlite3": "^7.6.13",
|
|
56
|
+
"@types/diff": "^7.0.2",
|
|
57
|
+
"eslint": "^9.39.2",
|
|
58
|
+
"eslint-plugin-svelte": "^3.15.0",
|
|
59
|
+
"prettier": "^3.8.1",
|
|
60
|
+
"prettier-plugin-svelte": "^3.4.1",
|
|
61
|
+
"svelte": "^5.49.2",
|
|
62
|
+
"svelte-check": "^4.3.6",
|
|
63
|
+
"tailwindcss": "^4",
|
|
64
|
+
"typescript": "^5.9.3",
|
|
65
|
+
"vite": "^7.3.1"
|
|
66
|
+
},
|
|
67
|
+
"dependencies": {
|
|
68
|
+
"better-sqlite3": "^12.6.2",
|
|
69
|
+
"diff": "^7"
|
|
70
|
+
}
|
|
71
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="g" x1="0" y1="0" x2="0" y2="1">
|
|
4
|
+
<stop offset="0%" stop-color="#67e8f9"/>
|
|
5
|
+
<stop offset="100%" stop-color="#818cf8"/>
|
|
6
|
+
</linearGradient>
|
|
7
|
+
</defs>
|
|
8
|
+
<path d="M16 2C9.373 2 4 7.373 4 14v14l3-3 3 3 3-3 3 3 3-3 3 3 3-3 3 3V14c0-6.627-5.373-12-12-12z" fill="url(#g)"/>
|
|
9
|
+
<circle cx="12" cy="14" r="2.5" fill="#0f172a"/>
|
|
10
|
+
<circle cx="20" cy="14" r="2.5" fill="#0f172a"/>
|
|
11
|
+
<circle cx="13" cy="13.2" r="0.8" fill="#fff"/>
|
|
12
|
+
<circle cx="21" cy="13.2" r="0.8" fill="#fff"/>
|
|
13
|
+
</svg>
|
|
Binary file
|