@diegoaltoworks/chatter 0.16.0 → 0.19.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/README.md +3 -0
- package/dist/auth/apikeys.d.ts +0 -1
- package/dist/auth/apikeys.d.ts.map +1 -1
- package/dist/bin/create-apikey.js +1 -3
- package/dist/client/__tests__/markdown.test.d.ts +5 -0
- package/dist/client/__tests__/markdown.test.d.ts.map +1 -0
- package/dist/client/src/Chat.d.ts +1 -0
- package/dist/client/src/Chat.d.ts.map +1 -1
- package/dist/client/src/ChatBot.d.ts.map +1 -1
- package/dist/client/src/ChatButton.d.ts.map +1 -1
- package/dist/client/src/markdown.d.ts +20 -0
- package/dist/client/src/markdown.d.ts.map +1 -0
- package/dist/core/llm.d.ts +6 -3
- package/dist/core/llm.d.ts.map +1 -1
- package/dist/core/pipeline.d.ts +33 -0
- package/dist/core/pipeline.d.ts.map +1 -0
- package/dist/core/prompts.d.ts.map +1 -1
- package/dist/core/retrieval.d.ts.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12251 -1975
- package/dist/index.mjs +12248 -1975
- package/dist/mcp-server/cost-tracker.d.ts.map +1 -1
- package/dist/mcp-server/logger.d.ts.map +1 -1
- package/dist/mcp-server/rate-limiter.d.ts.map +1 -1
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +4 -2
- package/dist/mcp-server.mjs +4 -2
- package/dist/middleware/auth.d.ts.map +1 -1
- package/dist/middleware/cors.d.ts.map +1 -1
- package/dist/middleware/jwt.d.ts.map +1 -1
- package/dist/middleware/ratelimit.d.ts.map +1 -1
- package/dist/middleware/referrer.d.ts.map +1 -1
- package/dist/middleware/session.d.ts.map +1 -1
- package/dist/routes/openai.d.ts +34 -0
- package/dist/routes/openai.d.ts.map +1 -0
- package/dist/routes/openai.test.d.ts +8 -0
- package/dist/routes/openai.test.d.ts.map +1 -0
- package/dist/routes/private.d.ts.map +1 -1
- package/dist/routes/public.d.ts.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/static/chatter.css +121 -0
- package/dist/static/chatter.js +8 -2
- package/dist/types.d.ts +13 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +23 -16
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cost-tracker.d.ts","sourceRoot":"","sources":["../../src/mcp-server/cost-tracker.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;CAC3B,GAAG,QAAQ,CAgBX;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAEjD;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ
|
|
1
|
+
{"version":3,"file":"cost-tracker.d.ts","sourceRoot":"","sources":["../../src/mcp-server/cost-tracker.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;CAC3B,GAAG,QAAQ,CAgBX;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAEjD;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ;IAEzC,YAAY;IACZ,gBAAgB;IAChB,WAAW;IACX,gBAAgB;IAChB,SAAS;EAEZ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/mcp-server/logger.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAErE;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,aAAa,CAAU;IAC/B,OAAO,CAAC,QAAQ,CAAC,CAAiB;
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/mcp-server/logger.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAErE;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,aAAa,CAAU;IAC/B,OAAO,CAAC,QAAQ,CAAC,CAAiB;IAElC,YAAY,aAAa,UAAO,EAAE,QAAQ,CAAC,EAAE,cAAc,EAG1D;IAED;;OAEG;IACG,kBAAkB,CACtB,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,oBAAoB,EAAE,WAAW,EAAE,EACnC,UAAU,EAAE,MAAM,EAAE,EACpB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,QAAQ,GACb,OAAO,CAAC,IAAI,CAAC,CAiCf;CACF;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,aAAa,UAAO,EAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,SAAS,CAEvF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rate-limiter.d.ts","sourceRoot":"","sources":["../../src/mcp-server/rate-limiter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,UAAU,CAAwB;IAC1C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAElC;;;;;OAKG;
|
|
1
|
+
{"version":3,"file":"rate-limiter.d.ts","sourceRoot":"","sources":["../../src/mcp-server/rate-limiter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,UAAU,CAAwB;IAC1C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAElC;;;;;OAKG;IACH,YAAY,KAAK,EAAE,MAAM,EAAE,QAAQ,SAAQ,EAI1C;IAED;;;;;OAKG;IACH,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAoB1B;IAED;;;;;OAKG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAK5B;IAED;;;;OAIG;IACH,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEvB;IAED;;OAEG;IACH,QAAQ,IAAI,IAAI,CAEf;IAED;;;;;OAKG;IACH,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CASrC;CACF;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,SAAQ,GAAG,WAAW,GAAG,IAAI,CAEjG"}
|
package/dist/mcp-server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAYpE,YAAY,EACV,WAAW,EACX,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE,gBAAgB,sBAuS7D"}
|
package/dist/mcp-server.js
CHANGED
|
@@ -53,14 +53,16 @@ function scrubOutput(text) {
|
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
// src/core/llm.ts
|
|
56
|
+
var DEFAULT_MODEL = "gpt-4o";
|
|
56
57
|
async function completeOnce({
|
|
57
58
|
client,
|
|
58
59
|
system,
|
|
59
60
|
messages,
|
|
60
|
-
temperature = 0.2
|
|
61
|
+
temperature = 0.2,
|
|
62
|
+
model = DEFAULT_MODEL
|
|
61
63
|
}) {
|
|
62
64
|
const res = await client.chat.completions.create({
|
|
63
|
-
model
|
|
65
|
+
model,
|
|
64
66
|
temperature,
|
|
65
67
|
messages: [{ role: "system", content: system }, ...messages]
|
|
66
68
|
});
|
package/dist/mcp-server.mjs
CHANGED
|
@@ -19,14 +19,16 @@ function scrubOutput(text) {
|
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
// src/core/llm.ts
|
|
22
|
+
var DEFAULT_MODEL = "gpt-4o";
|
|
22
23
|
async function completeOnce({
|
|
23
24
|
client,
|
|
24
25
|
system,
|
|
25
26
|
messages,
|
|
26
|
-
temperature = 0.2
|
|
27
|
+
temperature = 0.2,
|
|
28
|
+
model = DEFAULT_MODEL
|
|
27
29
|
}) {
|
|
28
30
|
const res = await client.chat.completions.create({
|
|
29
|
-
model
|
|
31
|
+
model,
|
|
30
32
|
temperature,
|
|
31
33
|
messages: [{ role: "system", content: system }, ...messages]
|
|
32
34
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/middleware/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEnD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/middleware/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEnD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,kBAAkB,OAGjB,OAAO,QAAQ,IAAI;;8BAuC9D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cors.d.ts","sourceRoot":"","sources":["../../src/middleware/cors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAK1C;;;;;;GAMG;AACH,eAAO,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"cors.d.ts","sourceRoot":"","sources":["../../src/middleware/cors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAK1C;;;;;;GAMG;AACH,eAAO,MAAM,IAAI,oBAAqB,MAAM,EAAE,SAAe,OAAO,QAAQ,IAAI,kCAyB/E,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jwt.d.ts","sourceRoot":"","sources":["../../src/middleware/jwt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAO9C;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"jwt.d.ts","sourceRoot":"","sources":["../../src/middleware/jwt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAO9C;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,OAwBZ,OAAO,QAAQ,IAAI;;8BAa/D;AAGD,eAAO,MAAM,iBAAiB,MAhBe,OAAO,QAAQ,IAAI;;6BAgBS,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ratelimit.d.ts","sourceRoot":"","sources":["../../src/middleware/ratelimit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAkB9C;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa;
|
|
1
|
+
{"version":3,"file":"ratelimit.d.ts","sourceRoot":"","sources":["../../src/middleware/ratelimit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAkB9C;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa;IAsBnD,WAAW,QACQ,OAAO,QAAQ,IAAI;;;IAwBtC,YAAY,QACO,OAAO,QAAQ,IAAI;;;EAQzC;AAID,eAAO,MAAM,WAAW,YArCD,OAAO,QAAQ,IAAI;;6BAqCW,CAAC;AACtD,eAAO,MAAM,YAAY,YAbF,OAAO,QAAQ,IAAI;;6BAaa,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"referrer.d.ts","sourceRoot":"","sources":["../../src/middleware/referrer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAI1C;;;GAGG;AACH,wBAAgB,eAAe,CAAC,cAAc,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"referrer.d.ts","sourceRoot":"","sources":["../../src/middleware/referrer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAI1C;;;GAGG;AACH,wBAAgB,eAAe,CAAC,cAAc,EAAE,MAAM,EAAE,OACrC,OAAO,QAAQ,IAAI;;8BA8CrC;AAGD,eAAO,MAAM,mBAAmB,wBAAkB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/middleware/session.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG1C;;;GAGG;AACH,wBAAgB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/middleware/session.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG1C;;;GAGG;AACH,wBAAgB,kBAAkB,QACf,OAAO,QAAQ,IAAI;;8BAkCrC;AAGD,eAAO,MAAM,uBAAuB,2BAAqB,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenAI-compatible chat completions routes.
|
|
3
|
+
*
|
|
4
|
+
* Exposes the RAG pipeline over the standard OpenAI wire format so any
|
|
5
|
+
* off-the-shelf chat UI or SDK (deep-chat, assistant-ui, the official
|
|
6
|
+
* OpenAI clients, Vercel AI SDK, ...) can talk to Chatter without a
|
|
7
|
+
* bespoke adapter:
|
|
8
|
+
*
|
|
9
|
+
* POST /v1/chat/completions → public pipeline (API key)
|
|
10
|
+
* POST /api/private/v1/chat/completions → private pipeline (JWT)
|
|
11
|
+
*
|
|
12
|
+
* Both support `stream: true` (SSE `chat.completion.chunk` events ending
|
|
13
|
+
* with `data: [DONE]`) and non-streaming JSON responses.
|
|
14
|
+
*
|
|
15
|
+
* Hardening notes:
|
|
16
|
+
* - The upstream model is always the server-configured one; a client's
|
|
17
|
+
* `model` field is accepted for wire compatibility but never used to
|
|
18
|
+
* pick the upstream model (callers must not control spend).
|
|
19
|
+
* - Incoming `system`/`tool` messages are dropped: the system prompt is
|
|
20
|
+
* owned by the server (guardrails + persona + retrieved context).
|
|
21
|
+
* - The public route requires a real JWT API key via `Authorization:
|
|
22
|
+
* Bearer` or `x-api-key`; widget-only session/demo keys are not valid.
|
|
23
|
+
*/
|
|
24
|
+
import { Hono } from "hono";
|
|
25
|
+
import { type PipelineMessage } from "../core/pipeline";
|
|
26
|
+
import type { ServerDependencies } from "../types";
|
|
27
|
+
/**
|
|
28
|
+
* Normalize OpenAI-format messages to the pipeline format.
|
|
29
|
+
* Accepts string content and text content-part arrays; drops system/tool
|
|
30
|
+
* messages. Returns null when nothing usable remains.
|
|
31
|
+
*/
|
|
32
|
+
export declare function normalizeMessages(raw: unknown): PipelineMessage[] | null;
|
|
33
|
+
export declare function openaiRoutes(deps: ServerDependencies): Hono<import("hono/types").BlankEnv, import("hono/types").BlankSchema, "/">;
|
|
34
|
+
//# sourceMappingURL=openai.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/routes/openai.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,OAAO,EAAE,KAAK,eAAe,EAAkC,MAAM,kBAAkB,CAAC;AAGxF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEnD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,eAAe,EAAE,GAAG,IAAI,CA8BxE;AASD,wBAAgB,YAAY,CAAC,IAAI,EAAE,kBAAkB,8EAsHpD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai.test.d.ts","sourceRoot":"","sources":["../../src/routes/openai.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"private.d.ts","sourceRoot":"","sources":["../../src/routes/private.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"private.d.ts","sourceRoot":"","sources":["../../src/routes/private.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAM5B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AASnD,wBAAgB,aAAa,CAAC,IAAI,EAAE,kBAAkB,8EAqDrD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../src/routes/public.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../src/routes/public.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAQ5B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AASnD,wBAAgB,YAAY,CAAC,IAAI,EAAE,kBAAkB,8EA8DpD"}
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAY5B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,aAAa,uFAwJvD"}
|
package/dist/static/chatter.css
CHANGED
|
@@ -109,6 +109,127 @@
|
|
|
109
109
|
color: #c33 !important;
|
|
110
110
|
}
|
|
111
111
|
|
|
112
|
+
/* Markdown content (assistant messages) */
|
|
113
|
+
.chatter-ui-message-content > *:first-child {
|
|
114
|
+
margin-top: 0;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
.chatter-ui-message-content > *:last-child {
|
|
118
|
+
margin-bottom: 0;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
.chatter-ui-message-content p {
|
|
122
|
+
margin: 0 0 8px 0;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.chatter-ui-message-content h1,
|
|
126
|
+
.chatter-ui-message-content h2,
|
|
127
|
+
.chatter-ui-message-content h3,
|
|
128
|
+
.chatter-ui-message-content h4,
|
|
129
|
+
.chatter-ui-message-content h5,
|
|
130
|
+
.chatter-ui-message-content h6 {
|
|
131
|
+
margin: 12px 0 6px 0;
|
|
132
|
+
font-weight: 600;
|
|
133
|
+
line-height: 1.25;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
.chatter-ui-message-content h1 {
|
|
137
|
+
font-size: 1.3em;
|
|
138
|
+
}
|
|
139
|
+
.chatter-ui-message-content h2 {
|
|
140
|
+
font-size: 1.2em;
|
|
141
|
+
}
|
|
142
|
+
.chatter-ui-message-content h3 {
|
|
143
|
+
font-size: 1.1em;
|
|
144
|
+
}
|
|
145
|
+
.chatter-ui-message-content h4,
|
|
146
|
+
.chatter-ui-message-content h5,
|
|
147
|
+
.chatter-ui-message-content h6 {
|
|
148
|
+
font-size: 1em;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
.chatter-ui-message-content ul,
|
|
152
|
+
.chatter-ui-message-content ol {
|
|
153
|
+
margin: 0 0 8px 0;
|
|
154
|
+
padding-left: 22px;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
.chatter-ui-message-content li {
|
|
158
|
+
margin: 2px 0;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
.chatter-ui-message-content a {
|
|
162
|
+
color: inherit;
|
|
163
|
+
text-decoration: underline;
|
|
164
|
+
word-break: break-word;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
.chatter-ui-message-user .chatter-ui-message-content a {
|
|
168
|
+
color: #ffffff;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
.chatter-ui-message-content code {
|
|
172
|
+
font-family:
|
|
173
|
+
ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New",
|
|
174
|
+
monospace;
|
|
175
|
+
font-size: 0.9em;
|
|
176
|
+
padding: 1px 5px;
|
|
177
|
+
background: rgba(0, 0, 0, 0.06);
|
|
178
|
+
border-radius: 4px;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
.chatter-ui-message-user .chatter-ui-message-content code {
|
|
182
|
+
background: rgba(255, 255, 255, 0.18);
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
.chatter-ui-message-content pre {
|
|
186
|
+
margin: 8px 0;
|
|
187
|
+
padding: 10px 12px;
|
|
188
|
+
background: #0f1115;
|
|
189
|
+
color: #e6e6e6;
|
|
190
|
+
border-radius: 8px;
|
|
191
|
+
overflow-x: auto;
|
|
192
|
+
font-size: 0.9em;
|
|
193
|
+
line-height: 1.45;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
.chatter-ui-message-content pre code {
|
|
197
|
+
padding: 0;
|
|
198
|
+
background: transparent;
|
|
199
|
+
color: inherit;
|
|
200
|
+
font-size: inherit;
|
|
201
|
+
border-radius: 0;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
.chatter-ui-message-content blockquote {
|
|
205
|
+
margin: 8px 0;
|
|
206
|
+
padding: 4px 12px;
|
|
207
|
+
border-left: 3px solid rgba(0, 0, 0, 0.15);
|
|
208
|
+
color: rgba(0, 0, 0, 0.7);
|
|
209
|
+
background: rgba(0, 0, 0, 0.03);
|
|
210
|
+
border-radius: 0 6px 6px 0;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
.chatter-ui-message-user .chatter-ui-message-content blockquote {
|
|
214
|
+
border-left-color: rgba(255, 255, 255, 0.4);
|
|
215
|
+
color: rgba(255, 255, 255, 0.85);
|
|
216
|
+
background: rgba(255, 255, 255, 0.08);
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
.chatter-ui-message-content hr {
|
|
220
|
+
border: none;
|
|
221
|
+
border-top: 1px solid rgba(0, 0, 0, 0.12);
|
|
222
|
+
margin: 10px 0;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
.chatter-ui-message-content strong {
|
|
226
|
+
font-weight: 600;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
.chatter-ui-message-content em {
|
|
230
|
+
font-style: italic;
|
|
231
|
+
}
|
|
232
|
+
|
|
112
233
|
/* Input Container */
|
|
113
234
|
.chatter-ui-chat-input-container {
|
|
114
235
|
display: flex;
|
package/dist/static/chatter.js
CHANGED
|
@@ -1,2 +1,8 @@
|
|
|
1
|
-
"use strict";var Chatter=(()=>{var
|
|
2
|
-
`);c=
|
|
1
|
+
"use strict";var Chatter=(()=>{var M=Object.defineProperty;var B=Object.getOwnPropertyDescriptor;var O=Object.getOwnPropertyNames;var x=Object.prototype.hasOwnProperty;var A=(n,t)=>{for(var e in t)M(n,e,{get:t[e],enumerable:!0})},_=(n,t,e,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of O(t))!x.call(n,i)&&i!==e&&M(n,i,{get:()=>t[i],enumerable:!(s=B(t,i))||s.enumerable});return n};var P=n=>_(M({},"__esModule",{value:!0}),n);var U={};A(U,{Chat:()=>m,ChatBot:()=>p,ChatButton:()=>C});var p=class{constructor(t){if(!t.host)throw new Error("host is required");if(!t.mode||!["public","private"].includes(t.mode))throw new Error('mode must be either "public" or "private"');if(!t.apiKey)throw new Error("apiKey is required");if(t.mode==="private"&&!t.token)throw new Error("token is required for private mode");let e=t.host.trim();!e.startsWith("http://")&&!e.startsWith("https://")&&(e=`${e.startsWith("localhost")||e.startsWith("127.0.0.1")?"http://":"https://"}${e}`),this.baseUrl=e.replace(/\/$/,""),this.mode=t.mode,this.apiKey=t.apiKey,this.token=t.token,this.endpoint=`${this.baseUrl}/api/${this.mode}/chat`}getHeaders(t=!1){let e={"Content-Type":"application/json"};return this.apiKey&&(e["x-api-key"]=this.apiKey),this.mode==="private"&&this.token&&(e.Authorization=`Bearer ${this.token}`),t&&(e.Accept="text/event-stream"),e}async sendMessage(t){let e=await fetch(this.endpoint,{method:"POST",headers:this.getHeaders(),body:JSON.stringify({message:t})});if(!e.ok){let i=await e.json().catch(()=>({error:"Unknown error"}));throw new Error(`API Error: ${i.error||e.statusText}`)}return(await e.json()).reply}async sendConversation(t){if(!Array.isArray(t)||t.length===0)throw new Error("messages must be a non-empty array");let e=await fetch(this.endpoint,{method:"POST",headers:this.getHeaders(),body:JSON.stringify({messages:t})});if(!e.ok){let i=await e.json().catch(()=>({error:"Unknown error"}));throw new Error(`API Error: ${i.error||e.statusText}`)}return(await e.json()).reply}async streamMessage(t,e){await this.stream({message:t},e)}async streamConversation(t,e){if(!Array.isArray(t)||t.length===0)throw new Error("messages must be a non-empty array");await this.stream({messages:t},e)}async stream(t,e){let{onChunk:s,onEnd:i,onError:r}=e;try{let o=await fetch(`${this.endpoint}?stream=1`,{method:"POST",headers:this.getHeaders(!0),body:JSON.stringify(t)});if(!o.ok){let a=await o.json().catch(()=>({error:"Unknown error"}));throw new Error(`API Error: ${a.error||o.statusText}`)}if(!o.body)throw new Error("Response body is null");let h=o.body.getReader(),d=new TextDecoder,c="";for(;;){let{done:a,value:g}=await h.read();if(a)break;c+=d.decode(g,{stream:!0});let f=c.split(`
|
|
2
|
+
`);c=f.pop()||"";for(let v of f)if(v.startsWith("data: ")){let y=v.slice(6);try{let E=JSON.parse(y);E.delta&&s(E.delta)}catch{}}else if(v.startsWith("event: end")){i&&i();return}}i&&i()}catch(o){if(r)r(o);else throw o}}};var q=/^(https?:|mailto:|\/|#)/i,k="CODE",S="ENDCODE";function l(n){return n.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function I(n){let t=n.trim();return q.test(t)?t:"#"}function L(n){let t=[],e=n.replace(/`([^`\n]+)`/g,(i,r)=>{let o=t.push(r)-1;return`${k}${o}${S}`});e=e.replace(/\[([^\]]+)\]\(([^)\s]+)(?:\s+"([^&]*)")?\)/g,(i,r,o,h)=>{let d=I(o),c=h?` title="${h}"`:"";return`<a href="${d}" target="_blank" rel="noopener noreferrer"${c}>${r}</a>`}),e=e.replace(/(\*\*|__)(?=\S)([\s\S]+?)(?<=\S)\1/g,"<strong>$2</strong>"),e=e.replace(/(?<!\*)\*(?!\*)(?=\S)([\s\S]+?)(?<=\S)\*(?!\*)/g,"<em>$1</em>"),e=e.replace(/(?<![A-Za-z0-9_])_(?=\S)([\s\S]+?)(?<=\S)_(?![A-Za-z0-9_])/g,"<em>$1</em>");let s=new RegExp(`${k}(\\d+)${S}`,"g");return e=e.replace(s,(i,r)=>`<code>${t[Number(r)]??""}</code>`),e}function $(n,t){if(n.length===0)return;let e=n.join(`
|
|
3
|
+
`),s=L(l(e)).replace(/\n/g,"<br>");t.push(`<p>${s}</p>`),n.length=0}function w(n,t){if(!n)return null;let e=n.items.map(s=>`<li>${L(l(s))}</li>`).join("");return t.push(`<${n.type}>${e}</${n.type}>`),null}function H(n,t){if(n.length===0)return;let e=T(n.join(`
|
|
4
|
+
`));t.push(`<blockquote>${e}</blockquote>`),n.length=0}function T(n){if(!n)return"";let t=n.replace(/\r\n?/g,`
|
|
5
|
+
`).split(`
|
|
6
|
+
`),e=[],s=[],i=[],r=null,o=!1,h="",d=[],c=()=>{$(s,e),r=w(r,e),H(i,e)};for(let a of t){if(o){if(/^\s*```\s*$/.test(a)){let u=l(d.join(`
|
|
7
|
+
`)),b=h?` class="language-${l(h)}"`:"";e.push(`<pre><code${b}>${u}</code></pre>`),d=[],h="",o=!1}else d.push(a);continue}let g=a.match(/^\s*```\s*([\w+-]*)\s*$/);if(g){c(),o=!0,h=g[1]||"";continue}if(/^\s*$/.test(a)){c();continue}if(/^\s*(?:---|\*\*\*|___)\s*$/.test(a)&&s.length===0){c(),e.push("<hr>");continue}let f=a.match(/^(#{1,6})\s+(.*)$/);if(f){c();let u=f[1].length,b=L(l(f[2].trim()));e.push(`<h${u}>${b}</h${u}>`);continue}let v=a.match(/^\s*>\s?(.*)$/);if(v){$(s,e),r=w(r,e),i.push(v[1]);continue}i.length>0&&H(i,e);let y=a.match(/^\s*[-*+]\s+(.*)$/),E=a.match(/^\s*\d+\.\s+(.*)$/);if(y||E){$(s,e);let u=y?"ul":"ol",b=y?y[1]:E[1];(!r||r.type!==u)&&(r=w(r,e),r={type:u,items:[]}),r.items.push(b);continue}r&&(r=w(r,e)),s.push(a)}if(o){let a=l(d.join(`
|
|
8
|
+
`)),g=h?` class="language-${l(h)}"`:"";e.push(`<pre><code${g}>${a}</code></pre>`)}return c(),e.join("")}var m=class{constructor(t){this.messages=[];if(this.bot=new p({host:t.host,mode:t.mode,apiKey:t.apiKey,token:t.token}),typeof t.container=="string"){let e=document.querySelector(t.container);if(!e)throw new Error(`Container element not found: ${t.container}`);this.container=e}else this.container=t.container;this.placeholder=t.placeholder||"Type your message...",this.title=t.title||"Chat",this.subtitle=t.subtitle||"",this.messages=t.initialMessages||[],this.onClose=t.onClose,this.render(),this.attachEventListeners()}render(){this.container.innerHTML=`<div class="chatter-ui-chat"><div class="chatter-ui-chat-header"><button class="chatter-ui-chat-close" type="button" aria-label="Close chat">\xD7</button><div class="chatter-ui-chat-title">${this.title}</div>${this.subtitle?`<div class="chatter-ui-chat-subtitle">${this.subtitle}</div>`:""}</div><div class="chatter-ui-chat-messages"></div><div class="chatter-ui-chat-input-container"><textarea class="chatter-ui-chat-input" placeholder="${this.placeholder}" rows="1"></textarea><button class="chatter-ui-chat-send" type="button"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 2L11 13M22 2l-7 20-4-9-9-4 20-7z"/></svg></button></div></div>`;let t=this.container.querySelector(".chatter-ui-chat-messages"),e=this.container.querySelector(".chatter-ui-chat-input"),s=this.container.querySelector(".chatter-ui-chat-send");if(!t||!e||!s)throw new Error("Required chat elements not found in container");this.messagesContainer=t,this.inputElement=e,this.sendButton=s;for(let i of this.messages)this.addMessageToUI(i)}attachEventListeners(){let t=this.container.querySelector(".chatter-ui-chat-close");t&&this.onClose&&t.addEventListener("click",()=>{this.onClose?.()}),this.sendButton.addEventListener("click",()=>this.handleSend()),this.inputElement.addEventListener("keydown",e=>{e.key==="Enter"&&!e.shiftKey&&(e.preventDefault(),this.handleSend())}),this.inputElement.addEventListener("input",()=>{this.inputElement.style.height="auto",this.inputElement.style.height=`${Math.min(this.inputElement.scrollHeight,120)}px`}),this.isMobile()&&(this.inputElement.addEventListener("focus",()=>{setTimeout(()=>{this.inputElement.scrollIntoView({behavior:"smooth",block:"nearest"})},300)}),this.sendButton.addEventListener("touchend",e=>{e.preventDefault(),this.handleSend()},{passive:!1}))}async handleSend(){let t=this.inputElement.value.trim();if(!t)return;let e={role:"user",content:t};this.messages.push(e),this.addMessageToUI(e),this.inputElement.value="",this.inputElement.style.height="auto",this.setInputEnabled(!1);try{let s={role:"assistant",content:""};this.messages.push(s);let r=this.addMessageToUI(s).querySelector(".chatter-ui-message-content");if(!r)throw new Error("Message content element not found");await this.bot.streamConversation(this.messages,{onChunk:o=>{s.content+=o,this.renderMessageContent(r,s),this.scrollToBottom()},onEnd:()=>{this.renderMessageContent(r,s),this.setInputEnabled(!0),this.isMobile()||this.inputElement.focus()},onError:o=>{console.error("Stream error:",o),s.content="Sorry, an error occurred. Please try again.",r.textContent=s.content,r.classList.add("chatter-ui-message-error"),this.setInputEnabled(!0)}})}catch(s){console.error("Send error:",s);let i={role:"assistant",content:"Sorry, an error occurred. Please try again."};this.messages.push(i),this.addMessageToUI(i).querySelector(".chatter-ui-message-content")?.classList.add("chatter-ui-message-error"),this.setInputEnabled(!0)}}addMessageToUI(t){let e=document.createElement("div");e.className=`chatter-ui-message chatter-ui-message-${t.role}`;let s=document.createElement("div");return s.className="chatter-ui-message-content",e.appendChild(s),this.renderMessageContent(s,t),this.messagesContainer.appendChild(e),this.scrollToBottom(),e}renderMessageContent(t,e){e.role==="assistant"?t.innerHTML=T(e.content):t.innerHTML=l(e.content).replace(/\n/g,"<br>")}setInputEnabled(t){this.inputElement.disabled=!t,this.sendButton.disabled=!t}scrollToBottom(){this.messagesContainer.scrollTop=this.messagesContainer.scrollHeight}clear(){this.messages=[],this.messagesContainer.innerHTML=""}getMessages(){return[...this.messages]}destroy(){this.container.innerHTML=""}isMobile(){return window.innerWidth<=768}};var C=class{constructor(t){this.chat=null;this.isOpen=!1;this.config={position:"bottom-right",label:"\u{1F4AC}",...t},this.render(),this.attachEventListeners()}render(){this.buttonElement=document.createElement("button"),this.buttonElement.className=`chatter-ui-chat-button chatter-ui-chat-button-${this.config.position}`,this.buttonElement.innerHTML=this.config.label||"\u{1F4AC}",this.buttonElement.setAttribute("aria-label","Open chat"),this.config.styles&&Object.assign(this.buttonElement.style,this.config.styles),this.chatContainer=document.createElement("div"),this.chatContainer.className=`chatter-ui-chat-popup chatter-ui-chat-popup-${this.config.position}`,this.chatContainer.style.display="none",document.body.appendChild(this.buttonElement),document.body.appendChild(this.chatContainer)}attachEventListeners(){this.buttonElement.addEventListener("click",()=>this.toggle()),document.addEventListener("keydown",t=>{t.key==="Escape"&&this.isOpen&&this.close()}),document.addEventListener("click",t=>{this.isOpen&&!this.chatContainer.contains(t.target)&&!this.buttonElement.contains(t.target)&&this.close()})}toggle(){this.isOpen?this.close():this.open()}open(){this.isOpen||(this.chat||(this.chat=new m({host:this.config.host,mode:this.config.mode,apiKey:this.config.apiKey,token:this.config.token,container:this.chatContainer,onClose:()=>this.close(),...this.config.chatConfig})),this.chatContainer.style.display="block",this.buttonElement.classList.add("chatter-ui-chat-button-open"),this.buttonElement.setAttribute("aria-label","Close chat"),this.isOpen=!0,this.isMobile()&&(document.body.style.overflow="hidden",document.body.style.position="fixed",document.body.style.width="100%"),setTimeout(()=>{let t=this.chatContainer.querySelector(".chatter-ui-chat-input");t&&(t.focus(),this.isMobile()&&setTimeout(()=>{t.scrollIntoView({behavior:"smooth",block:"center"})},300))},this.isMobile()?300:100))}close(){this.isOpen&&(this.chatContainer.style.display="none",this.buttonElement.classList.remove("chatter-ui-chat-button-open"),this.buttonElement.setAttribute("aria-label","Open chat"),this.isOpen=!1,this.isMobile()&&(document.body.style.overflow="",document.body.style.position="",document.body.style.width=""))}isMobile(){return window.innerWidth<=768}destroy(){this.chat?.destroy(),this.buttonElement.remove(),this.chatContainer.remove()}isOpened(){return this.isOpen}};typeof window<"u"&&(window.Chatter={ChatBot:p,Chat:m,ChatButton:C});return P(U);})();
|
package/dist/types.d.ts
CHANGED
|
@@ -63,7 +63,7 @@ export interface ChatterConfig {
|
|
|
63
63
|
openai: {
|
|
64
64
|
/** OpenAI API key */
|
|
65
65
|
apiKey: string;
|
|
66
|
-
/** Model to use. Default: gpt-
|
|
66
|
+
/** Model to use. Default: gpt-4o */
|
|
67
67
|
model?: string;
|
|
68
68
|
};
|
|
69
69
|
database: {
|
|
@@ -109,6 +109,18 @@ export interface ChatterConfig {
|
|
|
109
109
|
enablePrivateChat?: boolean;
|
|
110
110
|
/** Enable demo routes (/demo/*). Default: false */
|
|
111
111
|
enableDemoRoutes?: boolean;
|
|
112
|
+
/**
|
|
113
|
+
* Enable OpenAI-compatible endpoints (/v1/chat/completions and
|
|
114
|
+
* /api/private/v1/chat/completions) for third-party chat UIs and SDKs.
|
|
115
|
+
* Default: true
|
|
116
|
+
*/
|
|
117
|
+
enableOpenAICompat?: boolean;
|
|
118
|
+
/**
|
|
119
|
+
* Run fully headless: skip serving the built-in widget assets
|
|
120
|
+
* (chatter.js/chatter.css) and all static/demo pages. API routes only.
|
|
121
|
+
* Default: false
|
|
122
|
+
*/
|
|
123
|
+
headless?: boolean;
|
|
112
124
|
};
|
|
113
125
|
rateLimit?: {
|
|
114
126
|
/** Requests per minute for public endpoint. Default: 60 */
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,UAAU,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,2CAA2C;IAC3C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,4CAA4C;IAC5C,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sCAAsC;IACtC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oCAAoC;IACpC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uCAAuC;IACvC,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAE5B,GAAG,EAAE,WAAW,CAAC;IACjB,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,IAAI,CAAC,EAAE,aAAa,CAAC;IAGrB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8FAA8F;IAC9F,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,MAAM,EAAE;QACN,qBAAqB;QACrB,MAAM,EAAE,MAAM,CAAC;QACf,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@diegoaltoworks/chatter",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.19.0",
|
|
4
4
|
"description": "Embeddable AI chatbot framework with RAG, authentication, and customizable widgets",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
@@ -88,27 +88,27 @@
|
|
|
88
88
|
},
|
|
89
89
|
"peerDependencies": {
|
|
90
90
|
"@libsql/client": "^0.17.2",
|
|
91
|
-
"@modelcontextprotocol/sdk": "^1.
|
|
91
|
+
"@modelcontextprotocol/sdk": "^1.30.0",
|
|
92
92
|
"hono": "^4.12.14",
|
|
93
|
-
"openai": "^
|
|
94
|
-
"zod": "^3.25.76"
|
|
93
|
+
"openai": "^7.3.0",
|
|
94
|
+
"zod": "^3.25.76 || ^4.4.3"
|
|
95
95
|
},
|
|
96
96
|
"dependencies": {
|
|
97
|
-
"jose": "6.2.
|
|
97
|
+
"jose": "6.2.3"
|
|
98
98
|
},
|
|
99
99
|
"devDependencies": {
|
|
100
|
-
"@biomejs/biome": "2.
|
|
101
|
-
"@libsql/client": "0.17.
|
|
102
|
-
"@modelcontextprotocol/sdk": "1.
|
|
103
|
-
"@types/bun": "1.3.
|
|
104
|
-
"@types/node": "
|
|
105
|
-
"esbuild": "0.28.
|
|
106
|
-
"hono": "4.12.
|
|
100
|
+
"@biomejs/biome": "2.5.6",
|
|
101
|
+
"@libsql/client": "0.17.4",
|
|
102
|
+
"@modelcontextprotocol/sdk": "1.30.0",
|
|
103
|
+
"@types/bun": "1.3.14",
|
|
104
|
+
"@types/node": "26.1.2",
|
|
105
|
+
"esbuild": "0.28.1",
|
|
106
|
+
"hono": "4.12.34",
|
|
107
107
|
"husky": "9.1.7",
|
|
108
|
-
"lint-staged": "
|
|
109
|
-
"openai": "
|
|
110
|
-
"typescript": "
|
|
111
|
-
"zod": "
|
|
108
|
+
"lint-staged": "17.3.0",
|
|
109
|
+
"openai": "7.3.0",
|
|
110
|
+
"typescript": "7.0.2",
|
|
111
|
+
"zod": "4.4.3"
|
|
112
112
|
},
|
|
113
113
|
"lint-staged": {
|
|
114
114
|
"*.{ts,js,json,md}": [
|
|
@@ -117,5 +117,12 @@
|
|
|
117
117
|
"*.ts": [
|
|
118
118
|
"bash -c 'tsc --noEmit --skipLibCheck'"
|
|
119
119
|
]
|
|
120
|
+
},
|
|
121
|
+
"overrides": {
|
|
122
|
+
"qs": "^6.15.3",
|
|
123
|
+
"ws": "^8.21.1",
|
|
124
|
+
"@hono/node-server": "^2.0.5",
|
|
125
|
+
"fast-uri": "^3.1.3",
|
|
126
|
+
"ip-address": "^10.4.0"
|
|
120
127
|
}
|
|
121
128
|
}
|