@satori-sh/cli 0.0.3 → 0.0.4
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/bun.lock +195 -0
- package/dist/index.d.ts +92 -4
- package/dist/index.js +396 -42
- package/package.json +3 -3
- package/tsup.config.js +10 -0
package/bun.lock
CHANGED
|
@@ -11,27 +11,222 @@
|
|
|
11
11
|
"devDependencies": {
|
|
12
12
|
"@types/bun": "^1.3.3",
|
|
13
13
|
"@types/node": "^24.10.1",
|
|
14
|
+
"tsup": "^8.5.1",
|
|
14
15
|
"typescript": "^5.9.3",
|
|
15
16
|
},
|
|
16
17
|
},
|
|
17
18
|
},
|
|
18
19
|
"packages": {
|
|
20
|
+
"@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.27.2", "", { "os": "aix", "cpu": "ppc64" }, "sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw=="],
|
|
21
|
+
|
|
22
|
+
"@esbuild/android-arm": ["@esbuild/android-arm@0.27.2", "", { "os": "android", "cpu": "arm" }, "sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA=="],
|
|
23
|
+
|
|
24
|
+
"@esbuild/android-arm64": ["@esbuild/android-arm64@0.27.2", "", { "os": "android", "cpu": "arm64" }, "sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA=="],
|
|
25
|
+
|
|
26
|
+
"@esbuild/android-x64": ["@esbuild/android-x64@0.27.2", "", { "os": "android", "cpu": "x64" }, "sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A=="],
|
|
27
|
+
|
|
28
|
+
"@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.27.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg=="],
|
|
29
|
+
|
|
30
|
+
"@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.27.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA=="],
|
|
31
|
+
|
|
32
|
+
"@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.27.2", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g=="],
|
|
33
|
+
|
|
34
|
+
"@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.27.2", "", { "os": "freebsd", "cpu": "x64" }, "sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA=="],
|
|
35
|
+
|
|
36
|
+
"@esbuild/linux-arm": ["@esbuild/linux-arm@0.27.2", "", { "os": "linux", "cpu": "arm" }, "sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw=="],
|
|
37
|
+
|
|
38
|
+
"@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.27.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw=="],
|
|
39
|
+
|
|
40
|
+
"@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.27.2", "", { "os": "linux", "cpu": "ia32" }, "sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w=="],
|
|
41
|
+
|
|
42
|
+
"@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.27.2", "", { "os": "linux", "cpu": "none" }, "sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg=="],
|
|
43
|
+
|
|
44
|
+
"@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.27.2", "", { "os": "linux", "cpu": "none" }, "sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw=="],
|
|
45
|
+
|
|
46
|
+
"@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.27.2", "", { "os": "linux", "cpu": "ppc64" }, "sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ=="],
|
|
47
|
+
|
|
48
|
+
"@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.27.2", "", { "os": "linux", "cpu": "none" }, "sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA=="],
|
|
49
|
+
|
|
50
|
+
"@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.27.2", "", { "os": "linux", "cpu": "s390x" }, "sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w=="],
|
|
51
|
+
|
|
52
|
+
"@esbuild/linux-x64": ["@esbuild/linux-x64@0.27.2", "", { "os": "linux", "cpu": "x64" }, "sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA=="],
|
|
53
|
+
|
|
54
|
+
"@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.27.2", "", { "os": "none", "cpu": "arm64" }, "sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw=="],
|
|
55
|
+
|
|
56
|
+
"@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.27.2", "", { "os": "none", "cpu": "x64" }, "sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA=="],
|
|
57
|
+
|
|
58
|
+
"@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.27.2", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA=="],
|
|
59
|
+
|
|
60
|
+
"@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.27.2", "", { "os": "openbsd", "cpu": "x64" }, "sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg=="],
|
|
61
|
+
|
|
62
|
+
"@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.27.2", "", { "os": "none", "cpu": "arm64" }, "sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag=="],
|
|
63
|
+
|
|
64
|
+
"@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.27.2", "", { "os": "sunos", "cpu": "x64" }, "sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg=="],
|
|
65
|
+
|
|
66
|
+
"@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.27.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg=="],
|
|
67
|
+
|
|
68
|
+
"@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.27.2", "", { "os": "win32", "cpu": "ia32" }, "sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ=="],
|
|
69
|
+
|
|
70
|
+
"@esbuild/win32-x64": ["@esbuild/win32-x64@0.27.2", "", { "os": "win32", "cpu": "x64" }, "sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ=="],
|
|
71
|
+
|
|
72
|
+
"@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.13", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA=="],
|
|
73
|
+
|
|
74
|
+
"@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.2", "", {}, "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="],
|
|
75
|
+
|
|
76
|
+
"@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="],
|
|
77
|
+
|
|
78
|
+
"@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="],
|
|
79
|
+
|
|
80
|
+
"@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.55.1", "", { "os": "android", "cpu": "arm" }, "sha512-9R0DM/ykwfGIlNu6+2U09ga0WXeZ9MRC2Ter8jnz8415VbuIykVuc6bhdrbORFZANDmTDvq26mJrEVTl8TdnDg=="],
|
|
81
|
+
|
|
82
|
+
"@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.55.1", "", { "os": "android", "cpu": "arm64" }, "sha512-eFZCb1YUqhTysgW3sj/55du5cG57S7UTNtdMjCW7LwVcj3dTTcowCsC8p7uBdzKsZYa8J7IDE8lhMI+HX1vQvg=="],
|
|
83
|
+
|
|
84
|
+
"@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.55.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-p3grE2PHcQm2e8PSGZdzIhCKbMCw/xi9XvMPErPhwO17vxtvCN5FEA2mSLgmKlCjHGMQTP6phuQTYWUnKewwGg=="],
|
|
85
|
+
|
|
86
|
+
"@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.55.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-rDUjG25C9qoTm+e02Esi+aqTKSBYwVTaoS1wxcN47/Luqef57Vgp96xNANwt5npq9GDxsH7kXxNkJVEsWEOEaQ=="],
|
|
87
|
+
|
|
88
|
+
"@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.55.1", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-+JiU7Jbp5cdxekIgdte0jfcu5oqw4GCKr6i3PJTlXTCU5H5Fvtkpbs4XJHRmWNXF+hKmn4v7ogI5OQPaupJgOg=="],
|
|
89
|
+
|
|
90
|
+
"@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.55.1", "", { "os": "freebsd", "cpu": "x64" }, "sha512-V5xC1tOVWtLLmr3YUk2f6EJK4qksksOYiz/TCsFHu/R+woubcLWdC9nZQmwjOAbmExBIVKsm1/wKmEy4z4u4Bw=="],
|
|
91
|
+
|
|
92
|
+
"@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.55.1", "", { "os": "linux", "cpu": "arm" }, "sha512-Rn3n+FUk2J5VWx+ywrG/HGPTD9jXNbicRtTM11e/uorplArnXZYsVifnPPqNNP5BsO3roI4n8332ukpY/zN7rQ=="],
|
|
93
|
+
|
|
94
|
+
"@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.55.1", "", { "os": "linux", "cpu": "arm" }, "sha512-grPNWydeKtc1aEdrJDWk4opD7nFtQbMmV7769hiAaYyUKCT1faPRm2av8CX1YJsZ4TLAZcg9gTR1KvEzoLjXkg=="],
|
|
95
|
+
|
|
96
|
+
"@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.55.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-a59mwd1k6x8tXKcUxSyISiquLwB5pX+fJW9TkWU46lCqD/GRDe9uDN31jrMmVP3feI3mhAdvcCClhV8V5MhJFQ=="],
|
|
97
|
+
|
|
98
|
+
"@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.55.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-puS1MEgWX5GsHSoiAsF0TYrpomdvkaXm0CofIMG5uVkP6IBV+ZO9xhC5YEN49nsgYo1DuuMquF9+7EDBVYu4uA=="],
|
|
99
|
+
|
|
100
|
+
"@rollup/rollup-linux-loong64-gnu": ["@rollup/rollup-linux-loong64-gnu@4.55.1", "", { "os": "linux", "cpu": "none" }, "sha512-r3Wv40in+lTsULSb6nnoudVbARdOwb2u5fpeoOAZjFLznp6tDU8kd+GTHmJoqZ9lt6/Sys33KdIHUaQihFcu7g=="],
|
|
101
|
+
|
|
102
|
+
"@rollup/rollup-linux-loong64-musl": ["@rollup/rollup-linux-loong64-musl@4.55.1", "", { "os": "linux", "cpu": "none" }, "sha512-MR8c0+UxAlB22Fq4R+aQSPBayvYa3+9DrwG/i1TKQXFYEaoW3B5b/rkSRIypcZDdWjWnpcvxbNaAJDcSbJU3Lw=="],
|
|
103
|
+
|
|
104
|
+
"@rollup/rollup-linux-ppc64-gnu": ["@rollup/rollup-linux-ppc64-gnu@4.55.1", "", { "os": "linux", "cpu": "ppc64" }, "sha512-3KhoECe1BRlSYpMTeVrD4sh2Pw2xgt4jzNSZIIPLFEsnQn9gAnZagW9+VqDqAHgm1Xc77LzJOo2LdigS5qZ+gw=="],
|
|
105
|
+
|
|
106
|
+
"@rollup/rollup-linux-ppc64-musl": ["@rollup/rollup-linux-ppc64-musl@4.55.1", "", { "os": "linux", "cpu": "ppc64" }, "sha512-ziR1OuZx0vdYZZ30vueNZTg73alF59DicYrPViG0NEgDVN8/Jl87zkAPu4u6VjZST2llgEUjaiNl9JM6HH1Vdw=="],
|
|
107
|
+
|
|
108
|
+
"@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.55.1", "", { "os": "linux", "cpu": "none" }, "sha512-uW0Y12ih2XJRERZ4jAfKamTyIHVMPQnTZcQjme2HMVDAHY4amf5u414OqNYC+x+LzRdRcnIG1YodLrrtA8xsxw=="],
|
|
109
|
+
|
|
110
|
+
"@rollup/rollup-linux-riscv64-musl": ["@rollup/rollup-linux-riscv64-musl@4.55.1", "", { "os": "linux", "cpu": "none" }, "sha512-u9yZ0jUkOED1BFrqu3BwMQoixvGHGZ+JhJNkNKY/hyoEgOwlqKb62qu+7UjbPSHYjiVy8kKJHvXKv5coH4wDeg=="],
|
|
111
|
+
|
|
112
|
+
"@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.55.1", "", { "os": "linux", "cpu": "s390x" }, "sha512-/0PenBCmqM4ZUd0190j7J0UsQ/1nsi735iPRakO8iPciE7BQ495Y6msPzaOmvx0/pn+eJVVlZrNrSh4WSYLxNg=="],
|
|
113
|
+
|
|
114
|
+
"@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.55.1", "", { "os": "linux", "cpu": "x64" }, "sha512-a8G4wiQxQG2BAvo+gU6XrReRRqj+pLS2NGXKm8io19goR+K8lw269eTrPkSdDTALwMmJp4th2Uh0D8J9bEV1vg=="],
|
|
115
|
+
|
|
116
|
+
"@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.55.1", "", { "os": "linux", "cpu": "x64" }, "sha512-bD+zjpFrMpP/hqkfEcnjXWHMw5BIghGisOKPj+2NaNDuVT+8Ds4mPf3XcPHuat1tz89WRL+1wbcxKY3WSbiT7w=="],
|
|
117
|
+
|
|
118
|
+
"@rollup/rollup-openbsd-x64": ["@rollup/rollup-openbsd-x64@4.55.1", "", { "os": "openbsd", "cpu": "x64" }, "sha512-eLXw0dOiqE4QmvikfQ6yjgkg/xDM+MdU9YJuP4ySTibXU0oAvnEWXt7UDJmD4UkYialMfOGFPJnIHSe/kdzPxg=="],
|
|
119
|
+
|
|
120
|
+
"@rollup/rollup-openharmony-arm64": ["@rollup/rollup-openharmony-arm64@4.55.1", "", { "os": "none", "cpu": "arm64" }, "sha512-xzm44KgEP11te3S2HCSyYf5zIzWmx3n8HDCc7EE59+lTcswEWNpvMLfd9uJvVX8LCg9QWG67Xt75AuHn4vgsXw=="],
|
|
121
|
+
|
|
122
|
+
"@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.55.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-yR6Bl3tMC/gBok5cz/Qi0xYnVbIxGx5Fcf/ca0eB6/6JwOY+SRUcJfI0OpeTpPls7f194as62thCt/2BjxYN8g=="],
|
|
123
|
+
|
|
124
|
+
"@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.55.1", "", { "os": "win32", "cpu": "ia32" }, "sha512-3fZBidchE0eY0oFZBnekYCfg+5wAB0mbpCBuofh5mZuzIU/4jIVkbESmd2dOsFNS78b53CYv3OAtwqkZZmU5nA=="],
|
|
125
|
+
|
|
126
|
+
"@rollup/rollup-win32-x64-gnu": ["@rollup/rollup-win32-x64-gnu@4.55.1", "", { "os": "win32", "cpu": "x64" }, "sha512-xGGY5pXj69IxKb4yv/POoocPy/qmEGhimy/FoTpTSVju3FYXUQQMFCaZZXJVidsmGxRioZAwpThl/4zX41gRKg=="],
|
|
127
|
+
|
|
128
|
+
"@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.55.1", "", { "os": "win32", "cpu": "x64" }, "sha512-SPEpaL6DX4rmcXtnhdrQYgzQ5W2uW3SCJch88lB2zImhJRhIIK44fkUrgIV/Q8yUNfw5oyZ5vkeQsZLhCb06lw=="],
|
|
129
|
+
|
|
19
130
|
"@types/bun": ["@types/bun@1.3.5", "", { "dependencies": { "bun-types": "1.3.5" } }, "sha512-RnygCqNrd3srIPEWBd5LFeUYG7plCoH2Yw9WaZGyNmdTEei+gWaHqydbaIRkIkcbXwhBT94q78QljxN0Sk838w=="],
|
|
20
131
|
|
|
132
|
+
"@types/estree": ["@types/estree@1.0.8", "", {}, "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="],
|
|
133
|
+
|
|
21
134
|
"@types/node": ["@types/node@24.10.4", "", { "dependencies": { "undici-types": "~7.16.0" } }, "sha512-vnDVpYPMzs4wunl27jHrfmwojOGKya0xyM3sH+UE5iv5uPS6vX7UIoh6m+vQc5LGBq52HBKPIn/zcSZVzeDEZg=="],
|
|
22
135
|
|
|
136
|
+
"acorn": ["acorn@8.15.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg=="],
|
|
137
|
+
|
|
138
|
+
"any-promise": ["any-promise@1.3.0", "", {}, "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A=="],
|
|
139
|
+
|
|
23
140
|
"bun-types": ["bun-types@1.3.5", "", { "dependencies": { "@types/node": "*" } }, "sha512-inmAYe2PFLs0SUbFOWSVD24sg1jFlMPxOjOSSCYqUgn4Hsc3rDc7dFvfVYjFPNHtov6kgUeulV4SxbuIV/stPw=="],
|
|
24
141
|
|
|
142
|
+
"bundle-require": ["bundle-require@5.1.0", "", { "dependencies": { "load-tsconfig": "^0.2.3" }, "peerDependencies": { "esbuild": ">=0.18" } }, "sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA=="],
|
|
143
|
+
|
|
144
|
+
"cac": ["cac@6.7.14", "", {}, "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ=="],
|
|
145
|
+
|
|
25
146
|
"chalk": ["chalk@5.6.2", "", {}, "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA=="],
|
|
26
147
|
|
|
148
|
+
"chokidar": ["chokidar@4.0.3", "", { "dependencies": { "readdirp": "^4.0.1" } }, "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA=="],
|
|
149
|
+
|
|
27
150
|
"commander": ["commander@12.1.0", "", {}, "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA=="],
|
|
28
151
|
|
|
152
|
+
"confbox": ["confbox@0.1.8", "", {}, "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w=="],
|
|
153
|
+
|
|
154
|
+
"consola": ["consola@3.4.2", "", {}, "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA=="],
|
|
155
|
+
|
|
156
|
+
"debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="],
|
|
157
|
+
|
|
158
|
+
"esbuild": ["esbuild@0.27.2", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.27.2", "@esbuild/android-arm": "0.27.2", "@esbuild/android-arm64": "0.27.2", "@esbuild/android-x64": "0.27.2", "@esbuild/darwin-arm64": "0.27.2", "@esbuild/darwin-x64": "0.27.2", "@esbuild/freebsd-arm64": "0.27.2", "@esbuild/freebsd-x64": "0.27.2", "@esbuild/linux-arm": "0.27.2", "@esbuild/linux-arm64": "0.27.2", "@esbuild/linux-ia32": "0.27.2", "@esbuild/linux-loong64": "0.27.2", "@esbuild/linux-mips64el": "0.27.2", "@esbuild/linux-ppc64": "0.27.2", "@esbuild/linux-riscv64": "0.27.2", "@esbuild/linux-s390x": "0.27.2", "@esbuild/linux-x64": "0.27.2", "@esbuild/netbsd-arm64": "0.27.2", "@esbuild/netbsd-x64": "0.27.2", "@esbuild/openbsd-arm64": "0.27.2", "@esbuild/openbsd-x64": "0.27.2", "@esbuild/openharmony-arm64": "0.27.2", "@esbuild/sunos-x64": "0.27.2", "@esbuild/win32-arm64": "0.27.2", "@esbuild/win32-ia32": "0.27.2", "@esbuild/win32-x64": "0.27.2" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw=="],
|
|
159
|
+
|
|
160
|
+
"fdir": ["fdir@6.5.0", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="],
|
|
161
|
+
|
|
162
|
+
"fix-dts-default-cjs-exports": ["fix-dts-default-cjs-exports@1.0.1", "", { "dependencies": { "magic-string": "^0.30.17", "mlly": "^1.7.4", "rollup": "^4.34.8" } }, "sha512-pVIECanWFC61Hzl2+oOCtoJ3F17kglZC/6N94eRWycFgBH35hHx0Li604ZIzhseh97mf2p0cv7vVrOZGoqhlEg=="],
|
|
163
|
+
|
|
164
|
+
"fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="],
|
|
165
|
+
|
|
166
|
+
"joycon": ["joycon@3.1.1", "", {}, "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw=="],
|
|
167
|
+
|
|
168
|
+
"lilconfig": ["lilconfig@3.1.3", "", {}, "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw=="],
|
|
169
|
+
|
|
170
|
+
"lines-and-columns": ["lines-and-columns@1.2.4", "", {}, "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="],
|
|
171
|
+
|
|
172
|
+
"load-tsconfig": ["load-tsconfig@0.2.5", "", {}, "sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg=="],
|
|
173
|
+
|
|
174
|
+
"magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="],
|
|
175
|
+
|
|
176
|
+
"mlly": ["mlly@1.8.0", "", { "dependencies": { "acorn": "^8.15.0", "pathe": "^2.0.3", "pkg-types": "^1.3.1", "ufo": "^1.6.1" } }, "sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g=="],
|
|
177
|
+
|
|
178
|
+
"ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="],
|
|
179
|
+
|
|
180
|
+
"mz": ["mz@2.7.0", "", { "dependencies": { "any-promise": "^1.0.0", "object-assign": "^4.0.1", "thenify-all": "^1.0.0" } }, "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q=="],
|
|
181
|
+
|
|
182
|
+
"object-assign": ["object-assign@4.1.1", "", {}, "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="],
|
|
183
|
+
|
|
184
|
+
"pathe": ["pathe@2.0.3", "", {}, "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w=="],
|
|
185
|
+
|
|
186
|
+
"picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="],
|
|
187
|
+
|
|
188
|
+
"picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="],
|
|
189
|
+
|
|
190
|
+
"pirates": ["pirates@4.0.7", "", {}, "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA=="],
|
|
191
|
+
|
|
192
|
+
"pkg-types": ["pkg-types@1.3.1", "", { "dependencies": { "confbox": "^0.1.8", "mlly": "^1.7.4", "pathe": "^2.0.1" } }, "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ=="],
|
|
193
|
+
|
|
194
|
+
"postcss-load-config": ["postcss-load-config@6.0.1", "", { "dependencies": { "lilconfig": "^3.1.1" }, "peerDependencies": { "jiti": ">=1.21.0", "postcss": ">=8.0.9", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["jiti", "postcss", "tsx", "yaml"] }, "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g=="],
|
|
195
|
+
|
|
29
196
|
"random-words": ["random-words@2.0.1", "", { "dependencies": { "seedrandom": "^3.0.5" } }, "sha512-nZNJAmgcFmtJMTDDIUCm/iK4R6RydC6NvALvWhYItXQrgYGk1F7Gww416LpVROFQtfVd5TaLEf4WuSsko03N7w=="],
|
|
30
197
|
|
|
198
|
+
"readdirp": ["readdirp@4.1.2", "", {}, "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg=="],
|
|
199
|
+
|
|
200
|
+
"resolve-from": ["resolve-from@5.0.0", "", {}, "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw=="],
|
|
201
|
+
|
|
202
|
+
"rollup": ["rollup@4.55.1", "", { "dependencies": { "@types/estree": "1.0.8" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.55.1", "@rollup/rollup-android-arm64": "4.55.1", "@rollup/rollup-darwin-arm64": "4.55.1", "@rollup/rollup-darwin-x64": "4.55.1", "@rollup/rollup-freebsd-arm64": "4.55.1", "@rollup/rollup-freebsd-x64": "4.55.1", "@rollup/rollup-linux-arm-gnueabihf": "4.55.1", "@rollup/rollup-linux-arm-musleabihf": "4.55.1", "@rollup/rollup-linux-arm64-gnu": "4.55.1", "@rollup/rollup-linux-arm64-musl": "4.55.1", "@rollup/rollup-linux-loong64-gnu": "4.55.1", "@rollup/rollup-linux-loong64-musl": "4.55.1", "@rollup/rollup-linux-ppc64-gnu": "4.55.1", "@rollup/rollup-linux-ppc64-musl": "4.55.1", "@rollup/rollup-linux-riscv64-gnu": "4.55.1", "@rollup/rollup-linux-riscv64-musl": "4.55.1", "@rollup/rollup-linux-s390x-gnu": "4.55.1", "@rollup/rollup-linux-x64-gnu": "4.55.1", "@rollup/rollup-linux-x64-musl": "4.55.1", "@rollup/rollup-openbsd-x64": "4.55.1", "@rollup/rollup-openharmony-arm64": "4.55.1", "@rollup/rollup-win32-arm64-msvc": "4.55.1", "@rollup/rollup-win32-ia32-msvc": "4.55.1", "@rollup/rollup-win32-x64-gnu": "4.55.1", "@rollup/rollup-win32-x64-msvc": "4.55.1", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-wDv/Ht1BNHB4upNbK74s9usvl7hObDnvVzknxqY/E/O3X6rW1U1rV1aENEfJ54eFZDTNo7zv1f5N4edCluH7+A=="],
|
|
203
|
+
|
|
31
204
|
"seedrandom": ["seedrandom@3.0.5", "", {}, "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg=="],
|
|
32
205
|
|
|
206
|
+
"source-map": ["source-map@0.7.6", "", {}, "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ=="],
|
|
207
|
+
|
|
208
|
+
"sucrase": ["sucrase@3.35.1", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.2", "commander": "^4.0.0", "lines-and-columns": "^1.1.6", "mz": "^2.7.0", "pirates": "^4.0.1", "tinyglobby": "^0.2.11", "ts-interface-checker": "^0.1.9" }, "bin": { "sucrase": "bin/sucrase", "sucrase-node": "bin/sucrase-node" } }, "sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw=="],
|
|
209
|
+
|
|
210
|
+
"thenify": ["thenify@3.3.1", "", { "dependencies": { "any-promise": "^1.0.0" } }, "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw=="],
|
|
211
|
+
|
|
212
|
+
"thenify-all": ["thenify-all@1.6.0", "", { "dependencies": { "thenify": ">= 3.1.0 < 4" } }, "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA=="],
|
|
213
|
+
|
|
214
|
+
"tinyexec": ["tinyexec@0.3.2", "", {}, "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA=="],
|
|
215
|
+
|
|
216
|
+
"tinyglobby": ["tinyglobby@0.2.15", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.3" } }, "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ=="],
|
|
217
|
+
|
|
218
|
+
"tree-kill": ["tree-kill@1.2.2", "", { "bin": { "tree-kill": "cli.js" } }, "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A=="],
|
|
219
|
+
|
|
220
|
+
"ts-interface-checker": ["ts-interface-checker@0.1.13", "", {}, "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA=="],
|
|
221
|
+
|
|
222
|
+
"tsup": ["tsup@8.5.1", "", { "dependencies": { "bundle-require": "^5.1.0", "cac": "^6.7.14", "chokidar": "^4.0.3", "consola": "^3.4.0", "debug": "^4.4.0", "esbuild": "^0.27.0", "fix-dts-default-cjs-exports": "^1.0.0", "joycon": "^3.1.1", "picocolors": "^1.1.1", "postcss-load-config": "^6.0.1", "resolve-from": "^5.0.0", "rollup": "^4.34.8", "source-map": "^0.7.6", "sucrase": "^3.35.0", "tinyexec": "^0.3.2", "tinyglobby": "^0.2.11", "tree-kill": "^1.2.2" }, "peerDependencies": { "@microsoft/api-extractor": "^7.36.0", "@swc/core": "^1", "postcss": "^8.4.12", "typescript": ">=4.5.0" }, "optionalPeers": ["@microsoft/api-extractor", "@swc/core", "postcss", "typescript"], "bin": { "tsup": "dist/cli-default.js", "tsup-node": "dist/cli-node.js" } }, "sha512-xtgkqwdhpKWr3tKPmCkvYmS9xnQK3m3XgxZHwSUjvfTjp7YfXe5tT3GgWi0F2N+ZSMsOeWeZFh7ZZFg5iPhing=="],
|
|
223
|
+
|
|
33
224
|
"typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="],
|
|
34
225
|
|
|
226
|
+
"ufo": ["ufo@1.6.3", "", {}, "sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q=="],
|
|
227
|
+
|
|
35
228
|
"undici-types": ["undici-types@7.16.0", "", {}, "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw=="],
|
|
229
|
+
|
|
230
|
+
"sucrase/commander": ["commander@4.1.1", "", {}, "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA=="],
|
|
36
231
|
}
|
|
37
232
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,92 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
#! /usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Searches for memories matching the given query.
|
|
4
|
+
*
|
|
5
|
+
* @param {string} query - The search query for memories
|
|
6
|
+
* @returns {Promise<void>} Logs the search results to console
|
|
7
|
+
* @throws {Error} If the query is empty or API call fails
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```bash
|
|
11
|
+
* satori "what is my favorite food?"
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
declare function searchMemories(query: string): Promise<void>;
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Adds a new memory to the Satori server.
|
|
18
|
+
*
|
|
19
|
+
* @param {string} text - The text content to add as a memory
|
|
20
|
+
* @param {object} [options] - Additional options for the memory
|
|
21
|
+
* @param {string} [options.memoryId] - Optional memory ID for scoping
|
|
22
|
+
* @returns {Promise<void>} Logs success or error messages to console
|
|
23
|
+
* @throws {Error} If the text is empty
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```bash
|
|
27
|
+
* satori add "I like pizza"
|
|
28
|
+
* ```
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```typescript
|
|
32
|
+
* await addMemories("User prefers dark mode", { memoryId: "session-123" });
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
declare function addMemories(text: string, options?: {
|
|
36
|
+
memoryId?: string;
|
|
37
|
+
}): Promise<void>;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Response from the memory search API.
|
|
41
|
+
*/
|
|
42
|
+
interface SearchResponse {
|
|
43
|
+
/** Array of search results */
|
|
44
|
+
results: Array<{
|
|
45
|
+
id: string;
|
|
46
|
+
memory: string;
|
|
47
|
+
score?: number;
|
|
48
|
+
}>;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Message format for LLM API calls.
|
|
52
|
+
*/
|
|
53
|
+
type Message = {
|
|
54
|
+
/** Role of the message sender */
|
|
55
|
+
role: 'user' | 'assistant' | 'system';
|
|
56
|
+
/** Content of the message */
|
|
57
|
+
content: string;
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Enhances a message array by prepending relevant memory context as a system message.
|
|
62
|
+
*
|
|
63
|
+
* @param {Message[]} messages - The original message array
|
|
64
|
+
* @param {object} memoryContext - The memory context object
|
|
65
|
+
* @param {SearchResponse['results']} memoryContext.results - Array of memory results
|
|
66
|
+
* @returns {Message[]} The enhanced message array with memory context prepended
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* ```typescript
|
|
70
|
+
* const messages = [{ role: 'user', content: 'Hello' }];
|
|
71
|
+
* const context = { results: [{ id: '1', memory: 'User likes pizza' }] };
|
|
72
|
+
* const enhanced = enhanceMessagesWithMemory(messages, context);
|
|
73
|
+
* // enhanced[0] is system message with memory context
|
|
74
|
+
* // enhanced[1] is the original user message
|
|
75
|
+
* ```
|
|
76
|
+
*/
|
|
77
|
+
declare function enhanceMessagesWithMemory(messages: Message[], memoryContext: {
|
|
78
|
+
results: SearchResponse['results'];
|
|
79
|
+
}): Message[];
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Main entry point for the Satori CLI application.
|
|
83
|
+
*
|
|
84
|
+
* Parses command-line arguments and executes the appropriate command.
|
|
85
|
+
* Sets up the CLI with available commands: search, add, and chat.
|
|
86
|
+
*
|
|
87
|
+
* @returns {Promise<void>}
|
|
88
|
+
* @throws {Error} If configuration validation fails
|
|
89
|
+
*/
|
|
90
|
+
declare function main(): Promise<void>;
|
|
91
|
+
|
|
92
|
+
export { addMemories, enhanceMessagesWithMemory, main, searchMemories };
|
package/dist/index.js
CHANGED
|
@@ -1,49 +1,403 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
#! /usr/bin/env node
|
|
2
|
+
#!/usr/bin/env node
|
|
3
|
+
|
|
4
|
+
// src/index.ts
|
|
5
|
+
import { Command } from "commander";
|
|
6
|
+
import { readFileSync } from "fs";
|
|
7
|
+
import chalk from "chalk";
|
|
8
|
+
|
|
9
|
+
// src/config.ts
|
|
10
|
+
import { homedir } from "os";
|
|
11
|
+
import { join } from "path";
|
|
12
|
+
import { randomUUID } from "crypto";
|
|
13
|
+
async function checkWriteAccess() {
|
|
14
|
+
const { promises: fs } = await import("fs");
|
|
15
|
+
const dir = join(homedir(), ".config", "satori");
|
|
16
|
+
try {
|
|
17
|
+
await fs.mkdir(dir, { recursive: true });
|
|
18
|
+
const tempFile = join(dir, `temp-${randomUUID()}.txt`);
|
|
19
|
+
await fs.writeFile(tempFile, "test");
|
|
20
|
+
await fs.unlink(tempFile);
|
|
21
|
+
} catch (error) {
|
|
22
|
+
throw new Error(`Cannot write to config directory: ${error instanceof Error ? error.message : error}`);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
async function saveApiKey(apiKey) {
|
|
26
|
+
const { promises: fs } = await import("fs");
|
|
27
|
+
await checkWriteAccess();
|
|
28
|
+
const configPath = join(homedir(), ".config", "satori", "satori.json");
|
|
29
|
+
try {
|
|
30
|
+
const existing = await loadConfigFile();
|
|
31
|
+
const config = { ...existing, api_key: apiKey };
|
|
32
|
+
await fs.writeFile(configPath, JSON.stringify(config, null, 2));
|
|
33
|
+
} catch (error) {
|
|
34
|
+
throw new Error(`Failed to save API key: ${error instanceof Error ? error.message : error}`);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
async function saveMemoryId(memoryId) {
|
|
38
|
+
const { promises: fs } = await import("fs");
|
|
39
|
+
await checkWriteAccess();
|
|
40
|
+
const configPath = join(homedir(), ".config", "satori", "satori.json");
|
|
41
|
+
try {
|
|
42
|
+
const existing = await loadConfigFile();
|
|
43
|
+
const config = { ...existing, memory_id: memoryId };
|
|
44
|
+
await fs.writeFile(configPath, JSON.stringify(config, null, 2));
|
|
45
|
+
} catch (error) {
|
|
46
|
+
throw new Error(`Failed to save memory ID: ${error instanceof Error ? error.message : error}`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
async function loadConfigFile() {
|
|
50
|
+
try {
|
|
51
|
+
const configPath = join(homedir(), ".config", "satori", "satori.json");
|
|
52
|
+
const configFile = Bun.file(configPath);
|
|
53
|
+
if (await configFile.exists()) {
|
|
54
|
+
return await configFile.json();
|
|
55
|
+
}
|
|
56
|
+
} catch {
|
|
57
|
+
}
|
|
58
|
+
return {};
|
|
59
|
+
}
|
|
60
|
+
async function getConfig() {
|
|
61
|
+
if (process.platform !== "darwin") {
|
|
62
|
+
throw new Error("We do not currently support Windows yet, email support@satori.sh to request Windows support");
|
|
63
|
+
}
|
|
64
|
+
let apiKey = null;
|
|
65
|
+
let memoryId = void 0;
|
|
66
|
+
try {
|
|
67
|
+
const configPath = join(homedir(), ".config", "satori", "satori.json");
|
|
68
|
+
const configFile = Bun.file(configPath);
|
|
69
|
+
if (await configFile.exists()) {
|
|
70
|
+
const data = await configFile.json();
|
|
71
|
+
if (data && typeof data.api_key === "string") {
|
|
72
|
+
apiKey = data.api_key;
|
|
73
|
+
}
|
|
74
|
+
if (data && typeof data.memory_id === "string") {
|
|
75
|
+
memoryId = data.memory_id;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
} catch {
|
|
79
|
+
}
|
|
80
|
+
if (!apiKey) {
|
|
81
|
+
apiKey = process.env.SATORI_API_KEY || null;
|
|
82
|
+
}
|
|
83
|
+
const baseUrl = process.env.SATORI_BASE_URL || "https://api.satori.sh";
|
|
84
|
+
try {
|
|
85
|
+
new URL(baseUrl);
|
|
86
|
+
} catch {
|
|
87
|
+
throw new Error("Invalid SATORI_BASE_URL format");
|
|
88
|
+
}
|
|
89
|
+
if (!apiKey) {
|
|
9
90
|
try {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
.
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
91
|
+
const response = await fetch(`${baseUrl}/orgs`, {
|
|
92
|
+
method: "POST"
|
|
93
|
+
});
|
|
94
|
+
if (!response.ok) {
|
|
95
|
+
throw new Error(`HTTP error: ${response.status} ${response.statusText}`);
|
|
96
|
+
}
|
|
97
|
+
const data = await response.json();
|
|
98
|
+
if (data && typeof data.api_key === "string") {
|
|
99
|
+
apiKey = data.api_key;
|
|
100
|
+
await saveApiKey(apiKey);
|
|
101
|
+
} else {
|
|
102
|
+
throw new Error("Invalid response: missing api_key");
|
|
103
|
+
}
|
|
104
|
+
} catch (error) {
|
|
105
|
+
throw new Error(`Failed to generate API key: ${error instanceof Error ? error.message : error}`);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
const provider = process.env.SATORI_PROVIDER || "openai";
|
|
109
|
+
const model = process.env.SATORI_MODEL || "gpt-4o";
|
|
110
|
+
const openaiKey = process.env.OPENAI_API_KEY;
|
|
111
|
+
const anthropicKey = process.env.ANTHROPIC_API_KEY;
|
|
112
|
+
if (!memoryId) {
|
|
113
|
+
memoryId = process.env.SATORI_MEMORY_ID;
|
|
114
|
+
}
|
|
115
|
+
return { apiKey, baseUrl, provider, model, openaiKey, anthropicKey, memoryId };
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
// src/search.ts
|
|
119
|
+
async function searchMemories(query) {
|
|
120
|
+
if (!query || !query.trim()) {
|
|
121
|
+
console.error("Query cannot be empty");
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
try {
|
|
125
|
+
const config = await getConfig();
|
|
126
|
+
const response = await fetch(`${config.baseUrl}/search`, {
|
|
127
|
+
method: "POST",
|
|
128
|
+
headers: {
|
|
129
|
+
"Content-Type": "application/json",
|
|
130
|
+
"Authorization": `Bearer ${config.apiKey}`
|
|
131
|
+
},
|
|
132
|
+
body: JSON.stringify({ query })
|
|
133
|
+
});
|
|
134
|
+
if (!response.ok) {
|
|
135
|
+
console.error(`HTTP error: ${response.status} ${response.statusText}`);
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
await response.json();
|
|
139
|
+
} catch (error) {
|
|
140
|
+
console.error(`Error searching memories: ${error instanceof Error ? error.message : error}`);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
// src/add.ts
|
|
145
|
+
async function addMemories(text, options = {}) {
|
|
146
|
+
if (!text || !text.trim()) {
|
|
147
|
+
console.error("Text cannot be empty");
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
try {
|
|
151
|
+
const config = await getConfig();
|
|
152
|
+
const response = await fetch(`${config.baseUrl}/memories`, {
|
|
153
|
+
method: "POST",
|
|
154
|
+
headers: {
|
|
155
|
+
"Content-Type": "application/json",
|
|
156
|
+
"Authorization": `Bearer ${config.apiKey}`
|
|
157
|
+
},
|
|
158
|
+
body: JSON.stringify({ messages: [{ role: "user", content: text }], ...options.memoryId && { memory_id: options.memoryId } })
|
|
25
159
|
});
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
160
|
+
if (!response.ok) {
|
|
161
|
+
console.error(`HTTP error: ${response.status} ${response.statusText}`);
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
await response.json();
|
|
165
|
+
} catch (error) {
|
|
166
|
+
console.error(`Error adding memory: ${error instanceof Error ? error.message : error}`);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
// src/memory.ts
|
|
171
|
+
import { generate } from "random-words";
|
|
172
|
+
async function buildMemoryContext(prompt, options = {}) {
|
|
173
|
+
const config = await getConfig();
|
|
174
|
+
let memoryId;
|
|
175
|
+
let generated = false;
|
|
176
|
+
if (options.memoryId) {
|
|
177
|
+
memoryId = options.memoryId;
|
|
178
|
+
} else if (process.env.SATORI_MEMORY_ID) {
|
|
179
|
+
memoryId = process.env.SATORI_MEMORY_ID;
|
|
180
|
+
} else if (config.memoryId) {
|
|
181
|
+
memoryId = config.memoryId;
|
|
182
|
+
} else {
|
|
183
|
+
const words = generate({ exactly: 3 });
|
|
184
|
+
memoryId = words.join("-");
|
|
185
|
+
generated = true;
|
|
186
|
+
}
|
|
187
|
+
const topK = options.topK || 5;
|
|
188
|
+
const url = `${config.baseUrl}/search`;
|
|
189
|
+
const headers = {
|
|
190
|
+
"Content-Type": "application/json",
|
|
191
|
+
"Authorization": `Bearer ${config.apiKey}`
|
|
192
|
+
};
|
|
193
|
+
const body = JSON.stringify({
|
|
194
|
+
query: prompt,
|
|
195
|
+
memory_id: memoryId,
|
|
196
|
+
top_k: topK
|
|
197
|
+
});
|
|
198
|
+
const response = await fetch(url, {
|
|
199
|
+
method: "POST",
|
|
200
|
+
headers,
|
|
201
|
+
body
|
|
202
|
+
});
|
|
203
|
+
if (!response.ok) {
|
|
204
|
+
throw new Error(`HTTP error: ${response.status} ${response.statusText}`);
|
|
205
|
+
}
|
|
206
|
+
const data = await response.json();
|
|
207
|
+
const instruction = generated ? `Memory session id: ${memoryId}.` : void 0;
|
|
208
|
+
if (generated) {
|
|
209
|
+
saveMemoryId(memoryId).catch((err) => {
|
|
210
|
+
console.error("Failed to save memory ID:", err);
|
|
32
211
|
});
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
212
|
+
}
|
|
213
|
+
return {
|
|
214
|
+
results: data.results,
|
|
215
|
+
memoryId,
|
|
216
|
+
instruction
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
function enhanceMessagesWithMemory(messages, memoryContext) {
|
|
220
|
+
const validResults = memoryContext.results.filter((r) => r.memory && r.memory.trim() !== "" && r.memory !== "undefined");
|
|
221
|
+
if (validResults.length === 0) {
|
|
222
|
+
return messages;
|
|
223
|
+
}
|
|
224
|
+
const memoryText = validResults.map((r) => r.memory).join("\n");
|
|
225
|
+
const systemMessage = {
|
|
226
|
+
role: "system",
|
|
227
|
+
content: `Relevant context from memory:
|
|
228
|
+
${memoryText}`
|
|
229
|
+
};
|
|
230
|
+
return [systemMessage, ...messages];
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
// src/providers.ts
|
|
234
|
+
async function _callOpenAI(messages, options) {
|
|
235
|
+
const config = await getConfig();
|
|
236
|
+
const apiKey = config.openaiKey;
|
|
237
|
+
if (!apiKey) {
|
|
238
|
+
throw new Error("Missing API key for OPENAI_API_KEY");
|
|
239
|
+
}
|
|
240
|
+
const url = "https://api.openai.com/v1/chat/completions";
|
|
241
|
+
const body = {
|
|
242
|
+
model: config.model,
|
|
243
|
+
messages,
|
|
244
|
+
temperature: options.temperature ?? 0.7,
|
|
245
|
+
max_tokens: options.maxTokens ?? 1e3,
|
|
246
|
+
stream: options.stream ?? false
|
|
247
|
+
};
|
|
248
|
+
const headers = {
|
|
249
|
+
"Content-Type": "application/json",
|
|
250
|
+
"Authorization": `Bearer ${apiKey}`
|
|
251
|
+
};
|
|
252
|
+
const response = await fetch(url, {
|
|
253
|
+
method: "POST",
|
|
254
|
+
headers,
|
|
255
|
+
body: JSON.stringify(body)
|
|
256
|
+
});
|
|
257
|
+
if (!response.ok) {
|
|
258
|
+
throw new Error(`OpenAI API error: ${response.status} ${response.statusText}`);
|
|
259
|
+
}
|
|
260
|
+
const data = await response.json();
|
|
261
|
+
return data.choices[0].message.content;
|
|
262
|
+
}
|
|
263
|
+
async function _callAnthropic(messages, options) {
|
|
264
|
+
const config = await getConfig();
|
|
265
|
+
const apiKey = config.anthropicKey;
|
|
266
|
+
if (!apiKey) {
|
|
267
|
+
throw new Error("Missing API key for ANTHROPIC_API_KEY");
|
|
268
|
+
}
|
|
269
|
+
const url = "https://api.anthropic.com/v1/messages";
|
|
270
|
+
const body = {
|
|
271
|
+
model: config.model,
|
|
272
|
+
messages,
|
|
273
|
+
temperature: options.temperature ?? 0.7,
|
|
274
|
+
max_tokens: options.maxTokens ?? 1e3,
|
|
275
|
+
stream: options.stream ?? false
|
|
276
|
+
};
|
|
277
|
+
const headers = {
|
|
278
|
+
"Content-Type": "application/json",
|
|
279
|
+
"Authorization": `Bearer ${apiKey}`,
|
|
280
|
+
"anthropic-version": "2023-06-01"
|
|
281
|
+
};
|
|
282
|
+
const response = await fetch(url, {
|
|
283
|
+
method: "POST",
|
|
284
|
+
headers,
|
|
285
|
+
body: JSON.stringify(body)
|
|
286
|
+
});
|
|
287
|
+
if (!response.ok) {
|
|
288
|
+
throw new Error(`Anthropic API error: ${response.status} ${response.statusText}`);
|
|
289
|
+
}
|
|
290
|
+
const data = await response.json();
|
|
291
|
+
return data.content[0].text;
|
|
292
|
+
}
|
|
293
|
+
async function _callProviderAPI(messages, options, provider) {
|
|
294
|
+
if (provider === "openai") {
|
|
295
|
+
return _callOpenAI(messages, options);
|
|
296
|
+
} else if (provider === "anthropic") {
|
|
297
|
+
return _callAnthropic(messages, options);
|
|
298
|
+
} else {
|
|
299
|
+
throw new Error(`Unsupported provider: ${provider}`);
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
// src/index.ts
|
|
304
|
+
async function main() {
|
|
305
|
+
try {
|
|
306
|
+
await getConfig();
|
|
307
|
+
} catch (error) {
|
|
308
|
+
console.error(error instanceof Error ? error.message : "Configuration error");
|
|
309
|
+
process.exit(1);
|
|
310
|
+
}
|
|
311
|
+
console.log(chalk.cyan(readFileSync("./logo.txt", "utf8")));
|
|
312
|
+
const program = new Command();
|
|
313
|
+
program.name("satori").description("CLI tool for Satori memory server").version("0.0.1");
|
|
314
|
+
program.option("--provider <provider>", "Provider to use (openai or anthropic)", "openai").option("--model <model>", "Model to use", "gpt-4o").option("--memory-id <id>", "Memory ID for scoping");
|
|
315
|
+
const processUserInput = async (input, options, isInteractive = false) => {
|
|
316
|
+
let memoryContext;
|
|
317
|
+
try {
|
|
318
|
+
memoryContext = await buildMemoryContext(input, { memoryId: options.memoryId });
|
|
319
|
+
} catch (memoryError) {
|
|
320
|
+
memoryContext = { results: [], memoryId: options.memoryId, instruction: void 0 };
|
|
321
|
+
}
|
|
322
|
+
const userMessage = { role: "user", content: input };
|
|
323
|
+
const enhancedMessages = enhanceMessagesWithMemory([userMessage], { results: memoryContext.results });
|
|
324
|
+
const response = await _callProviderAPI(enhancedMessages, {
|
|
325
|
+
temperature: 0.7,
|
|
326
|
+
maxTokens: 1e3
|
|
327
|
+
}, options.provider);
|
|
328
|
+
if (isInteractive) {
|
|
329
|
+
console.log(`Assistant: ${response}`);
|
|
330
|
+
} else {
|
|
331
|
+
console.log(response);
|
|
332
|
+
}
|
|
333
|
+
if (memoryContext.instruction) {
|
|
334
|
+
console.log(`
|
|
335
|
+
${memoryContext.instruction}`);
|
|
336
|
+
}
|
|
337
|
+
addMemories(input, { memoryId: memoryContext.memoryId }).catch((err) => {
|
|
338
|
+
console.error("Failed to save memory:", err);
|
|
43
339
|
});
|
|
44
|
-
|
|
340
|
+
return { response, instruction: memoryContext.instruction, memoryId: memoryContext.memoryId };
|
|
341
|
+
};
|
|
342
|
+
program.argument("[prompt]", "initial prompt for chat session (optional)").action(async (initialPrompt, options) => {
|
|
343
|
+
try {
|
|
344
|
+
let memoryId = options.memoryId;
|
|
345
|
+
if (!process.stdin.isTTY) {
|
|
346
|
+
if (initialPrompt) {
|
|
347
|
+
await processUserInput(initialPrompt, options, false);
|
|
348
|
+
}
|
|
349
|
+
return;
|
|
350
|
+
}
|
|
351
|
+
if (initialPrompt) {
|
|
352
|
+
const result = await processUserInput(initialPrompt, options, true);
|
|
353
|
+
memoryId = result.memoryId;
|
|
354
|
+
}
|
|
355
|
+
const { createInterface } = await import("readline");
|
|
356
|
+
const rl = createInterface({
|
|
357
|
+
input: process.stdin,
|
|
358
|
+
output: process.stdout
|
|
359
|
+
});
|
|
360
|
+
const chatLoop = async () => {
|
|
361
|
+
rl.question(chalk.cyan("> "), async (input) => {
|
|
362
|
+
if (input.toLowerCase() === "exit" || input.toLowerCase() === "quit") {
|
|
363
|
+
console.log("Goodbye!");
|
|
364
|
+
rl.close();
|
|
365
|
+
return;
|
|
366
|
+
}
|
|
367
|
+
if (!input.trim()) {
|
|
368
|
+
chatLoop();
|
|
369
|
+
return;
|
|
370
|
+
}
|
|
371
|
+
try {
|
|
372
|
+
const result = await processUserInput(input, { ...options, memoryId }, true);
|
|
373
|
+
memoryId = result.memoryId;
|
|
374
|
+
} catch (error) {
|
|
375
|
+
console.error("Chat error:", error instanceof Error ? error.message : error);
|
|
376
|
+
}
|
|
377
|
+
chatLoop();
|
|
378
|
+
});
|
|
379
|
+
};
|
|
380
|
+
console.log('\nEntering interactive mode. Type "exit" or "quit" to end the session.\n');
|
|
381
|
+
chatLoop();
|
|
382
|
+
} catch (error) {
|
|
383
|
+
console.error("Chat error:", error instanceof Error ? error.message : error);
|
|
384
|
+
process.exit(1);
|
|
385
|
+
}
|
|
386
|
+
});
|
|
387
|
+
program.command("add").description("add a new memory").argument("<text>", "text to add as memory").action(async (text) => {
|
|
388
|
+
await addMemories(text);
|
|
389
|
+
});
|
|
390
|
+
program.command("search").description("search memories").argument("<query>", "search query for memories").action(async (query) => {
|
|
391
|
+
await searchMemories(query);
|
|
392
|
+
});
|
|
393
|
+
program.parse();
|
|
45
394
|
}
|
|
46
395
|
if (import.meta.main) {
|
|
47
|
-
|
|
396
|
+
main();
|
|
48
397
|
}
|
|
49
|
-
|
|
398
|
+
export {
|
|
399
|
+
addMemories,
|
|
400
|
+
enhanceMessagesWithMemory,
|
|
401
|
+
main,
|
|
402
|
+
searchMemories
|
|
403
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@satori-sh/cli",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.4",
|
|
4
4
|
"description": "CLI tool for Satori memory server",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"satori": "./dist/index.js"
|
|
9
9
|
},
|
|
10
10
|
"scripts": {
|
|
11
|
-
"build": "
|
|
11
|
+
"build": "tsup src/index.ts --format esm --dts",
|
|
12
12
|
"test": "bun test",
|
|
13
13
|
"lint": "tsc --noEmit"
|
|
14
14
|
},
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"devDependencies": {
|
|
21
21
|
"@types/bun": "^1.3.3",
|
|
22
22
|
"@types/node": "^24.10.1",
|
|
23
|
+
"tsup": "^8.5.1",
|
|
23
24
|
"typescript": "^5.9.3"
|
|
24
25
|
}
|
|
25
26
|
}
|
|
26
|
-
|