@adonis-agora/agent 0.62.0 → 0.63.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/CHANGELOG.md +29 -0
- package/dist/providers/agent_provider.d.ts.map +1 -1
- package/dist/providers/agent_provider.js +1 -12
- package/dist/providers/agent_provider.js.map +1 -1
- package/dist/src/action-proposal-service.d.ts +3 -2
- package/dist/src/action-proposal-service.d.ts.map +1 -1
- package/dist/src/action-proposal-service.js +1 -0
- package/dist/src/action-proposal-service.js.map +1 -1
- package/dist/src/actor-resolver.d.ts +12 -4
- package/dist/src/actor-resolver.d.ts.map +1 -1
- package/dist/src/actor-resolver.js +24 -7
- package/dist/src/actor-resolver.js.map +1 -1
- package/dist/src/ag-ui/adapter.d.ts.map +1 -1
- package/dist/src/ag-ui/adapter.js +32 -6
- package/dist/src/ag-ui/adapter.js.map +1 -1
- package/dist/src/ag-ui/core/encoder.d.ts +2 -1
- package/dist/src/ag-ui/core/encoder.d.ts.map +1 -1
- package/dist/src/ag-ui/core/encoder.js +16 -5
- package/dist/src/ag-ui/core/encoder.js.map +1 -1
- package/dist/src/ag-ui/core/index.d.ts +2 -2
- package/dist/src/ag-ui/core/index.d.ts.map +1 -1
- package/dist/src/ag-ui/core/index.js +2 -2
- package/dist/src/ag-ui/core/index.js.map +1 -1
- package/dist/src/ag-ui/core/input.d.ts +21 -3
- package/dist/src/ag-ui/core/input.d.ts.map +1 -1
- package/dist/src/ag-ui/core/input.js +24 -6
- package/dist/src/ag-ui/core/input.js.map +1 -1
- package/dist/src/ag-ui/core/stream.d.ts +24 -2
- package/dist/src/ag-ui/core/stream.d.ts.map +1 -1
- package/dist/src/ag-ui/core/stream.js +25 -3
- package/dist/src/ag-ui/core/stream.js.map +1 -1
- package/dist/src/ag-ui/core/types.d.ts +2 -2
- package/dist/src/ag-ui/core/types.d.ts.map +1 -1
- package/dist/src/ag-ui/core/types.js +2 -2
- package/dist/src/ag-ui/core/types.js.map +1 -1
- package/dist/src/ag-ui/frames.d.ts +5 -1
- package/dist/src/ag-ui/frames.d.ts.map +1 -1
- package/dist/src/ag-ui/frames.js +13 -3
- package/dist/src/ag-ui/frames.js.map +1 -1
- package/dist/src/ag-ui/index.d.ts +1 -1
- package/dist/src/ag-ui/index.d.ts.map +1 -1
- package/dist/src/ag-ui/index.js +1 -1
- package/dist/src/ag-ui/index.js.map +1 -1
- package/dist/src/agent-service.d.ts +36 -3
- package/dist/src/agent-service.d.ts.map +1 -1
- package/dist/src/agent-service.js +65 -1
- package/dist/src/agent-service.js.map +1 -1
- package/dist/src/attachment-limits.d.ts +10 -0
- package/dist/src/attachment-limits.d.ts.map +1 -0
- package/dist/src/attachment-limits.js +13 -0
- package/dist/src/attachment-limits.js.map +1 -0
- package/dist/src/channels/adapters/evolution_api.d.ts +49 -0
- package/dist/src/channels/adapters/evolution_api.d.ts.map +1 -0
- package/dist/src/channels/adapters/evolution_api.js +241 -0
- package/dist/src/channels/adapters/evolution_api.js.map +1 -0
- package/dist/src/channels/adapters/telegram.d.ts +34 -0
- package/dist/src/channels/adapters/telegram.d.ts.map +1 -0
- package/dist/src/channels/adapters/telegram.js +196 -0
- package/dist/src/channels/adapters/telegram.js.map +1 -0
- package/dist/src/channels/adapters/whatsapp_cloud.d.ts +31 -0
- package/dist/src/channels/adapters/whatsapp_cloud.d.ts.map +1 -0
- package/dist/src/channels/adapters/whatsapp_cloud.js +177 -0
- package/dist/src/channels/adapters/whatsapp_cloud.js.map +1 -0
- package/dist/src/channels/handler.d.ts +167 -0
- package/dist/src/channels/handler.d.ts.map +1 -0
- package/dist/src/channels/handler.js +569 -0
- package/dist/src/channels/handler.js.map +1 -0
- package/dist/src/channels/http.d.ts +45 -0
- package/dist/src/channels/http.d.ts.map +1 -0
- package/dist/src/channels/http.js +147 -0
- package/dist/src/channels/http.js.map +1 -0
- package/dist/src/channels/index.d.ts +16 -0
- package/dist/src/channels/index.d.ts.map +1 -0
- package/dist/src/channels/index.js +15 -0
- package/dist/src/channels/index.js.map +1 -0
- package/dist/src/channels/markdown.d.ts +12 -0
- package/dist/src/channels/markdown.d.ts.map +1 -0
- package/dist/src/channels/markdown.js +120 -0
- package/dist/src/channels/markdown.js.map +1 -0
- package/dist/src/channels/questions.d.ts +43 -0
- package/dist/src/channels/questions.d.ts.map +1 -0
- package/dist/src/channels/questions.js +90 -0
- package/dist/src/channels/questions.js.map +1 -0
- package/dist/src/channels/split.d.ts +8 -0
- package/dist/src/channels/split.d.ts.map +1 -0
- package/dist/src/channels/split.js +45 -0
- package/dist/src/channels/split.js.map +1 -0
- package/dist/src/channels/store.d.ts +78 -0
- package/dist/src/channels/store.d.ts.map +1 -0
- package/dist/src/channels/store.js +151 -0
- package/dist/src/channels/store.js.map +1 -0
- package/dist/src/channels/types.d.ts +138 -0
- package/dist/src/channels/types.d.ts.map +1 -0
- package/dist/src/channels/types.js +7 -0
- package/dist/src/channels/types.js.map +1 -0
- package/dist/src/genui/builtins.d.ts.map +1 -1
- package/dist/src/genui/builtins.js +65 -6
- package/dist/src/genui/builtins.js.map +1 -1
- package/dist/src/genui/catalog.d.ts +11 -2
- package/dist/src/genui/catalog.d.ts.map +1 -1
- package/dist/src/genui/catalog.js +8 -0
- package/dist/src/genui/catalog.js.map +1 -1
- package/dist/src/genui/text.d.ts +4 -3
- package/dist/src/genui/text.d.ts.map +1 -1
- package/dist/src/genui/text.js +25 -24
- package/dist/src/genui/text.js.map +1 -1
- package/dist/src/genui/tools.d.ts +2 -1
- package/dist/src/genui/tools.d.ts.map +1 -1
- package/dist/src/genui/tools.js +6 -7
- package/dist/src/genui/tools.js.map +1 -1
- package/dist/src/index.d.ts +3 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +3 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/opencode/turns.d.ts +4 -2
- package/dist/src/opencode/turns.d.ts.map +1 -1
- package/dist/src/opencode/turns.js.map +1 -1
- package/dist/src/react/core/ag-ui-backend.d.ts +38 -14
- package/dist/src/react/core/ag-ui-backend.d.ts.map +1 -1
- package/dist/src/react/core/ag-ui-backend.js +182 -17
- package/dist/src/react/core/ag-ui-backend.js.map +1 -1
- package/dist/src/react/core/agent-chat-transport.d.ts.map +1 -1
- package/dist/src/react/core/agent-chat-transport.js +22 -1
- package/dist/src/react/core/agent-chat-transport.js.map +1 -1
- package/dist/src/react/core/backend.d.ts +11 -0
- package/dist/src/react/core/backend.d.ts.map +1 -1
- package/dist/src/react/core/backend.js.map +1 -1
- package/dist/src/react/core/index.d.ts +1 -1
- package/dist/src/react/core/index.d.ts.map +1 -1
- package/dist/src/react/core/index.js.map +1 -1
- package/dist/src/stores/lucid-schema.d.ts +24 -6
- package/dist/src/stores/lucid-schema.d.ts.map +1 -1
- package/dist/src/stores/lucid-schema.js +47 -6
- package/dist/src/stores/lucid-schema.js.map +1 -1
- package/dist/src/stores/lucid.d.ts +2 -0
- package/dist/src/stores/lucid.d.ts.map +1 -1
- package/dist/src/stores/lucid.js +4 -0
- package/dist/src/stores/lucid.js.map +1 -1
- package/package.json +6 -1
- package/skills/agent-setup/SKILL.md +39 -3
- package/skills/agent-tools/SKILL.md +3 -0
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import type { LucidRawRunner } from '../stores/lucid.js';
|
|
2
|
+
/**
|
|
3
|
+
* Text channels' short-lived state, every entry with a TTL: the provider message ids already taken
|
|
4
|
+
* (so a webhook delivered twice starts one turn), a question waiting for the person's answer, an
|
|
5
|
+
* outcome already relayed.
|
|
6
|
+
*
|
|
7
|
+
* {@link InMemoryChannelStore} only sees its own process. With several replicas a retry, an answer
|
|
8
|
+
* or a settled proposal can land on another one, so use a shared store there:
|
|
9
|
+
* {@link lucidChannelStore} (the default when the agent's own store is Lucid),
|
|
10
|
+
* {@link redisChannelStore}, or your own.
|
|
11
|
+
*/
|
|
12
|
+
export interface ChannelStore {
|
|
13
|
+
/**
|
|
14
|
+
* Take `key` for `ttlMs` — atomically. `true` when it was free (now taken), `false` when someone
|
|
15
|
+
* already took it.
|
|
16
|
+
*/
|
|
17
|
+
claim(key: string, ttlMs: number): boolean | Promise<boolean>;
|
|
18
|
+
/** The live value under `key`, or `null`. */
|
|
19
|
+
get(key: string): string | null | Promise<string | null>;
|
|
20
|
+
/** Store `value` under `key` for `ttlMs`, replacing what was there. */
|
|
21
|
+
set(key: string, value: string, ttlMs: number): void | Promise<void>;
|
|
22
|
+
delete(key: string): void | Promise<void>;
|
|
23
|
+
}
|
|
24
|
+
/** Process-local {@link ChannelStore}: a single replica, tests, development. */
|
|
25
|
+
export declare class InMemoryChannelStore implements ChannelStore {
|
|
26
|
+
#private;
|
|
27
|
+
private readonly maxEntries;
|
|
28
|
+
/** @param maxEntries Past this many live keys, the oldest are forgotten first. */
|
|
29
|
+
constructor(maxEntries?: number);
|
|
30
|
+
claim(key: string, ttlMs: number): boolean;
|
|
31
|
+
get(key: string): string | null;
|
|
32
|
+
set(key: string, value: string, ttlMs: number): void;
|
|
33
|
+
delete(key: string): void;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* The slice of a Redis client {@link redisChannelStore} uses — an `@adonisjs/redis` connection
|
|
37
|
+
* (ioredis) has it: `redisChannelStore(redis)` or `redisChannelStore(redis.connection('main'))`.
|
|
38
|
+
*/
|
|
39
|
+
export interface ChannelStoreRedis {
|
|
40
|
+
set(key: string, value: string, px: 'PX', ttlMs: number, nx: 'NX'): Promise<unknown>;
|
|
41
|
+
set(key: string, value: string, px: 'PX', ttlMs: number): Promise<unknown>;
|
|
42
|
+
get(key: string): Promise<string | null>;
|
|
43
|
+
del(key: string): Promise<unknown>;
|
|
44
|
+
}
|
|
45
|
+
/** A {@link ChannelStore} shared by every replica, over Redis (`SET … PX … NX` for claims). */
|
|
46
|
+
export declare function redisChannelStore(redis: ChannelStoreRedis, options?: {
|
|
47
|
+
prefix?: string;
|
|
48
|
+
}): ChannelStore;
|
|
49
|
+
export interface LucidChannelStoreOptions {
|
|
50
|
+
/** A named connection of the `Database` manager. Default: the one `db` is. */
|
|
51
|
+
connection?: string;
|
|
52
|
+
/** Default `agent_channel_state`. */
|
|
53
|
+
table?: string;
|
|
54
|
+
/**
|
|
55
|
+
* Create the table (and its index) on first use. Default `true`; `false` when a migration owns it
|
|
56
|
+
* (`createAgentTables` and the published migration create it under the default name).
|
|
57
|
+
*/
|
|
58
|
+
autoCreateTables?: boolean;
|
|
59
|
+
/** How often a claim also deletes expired rows. Default 10 minutes. */
|
|
60
|
+
purgeEveryMs?: number;
|
|
61
|
+
}
|
|
62
|
+
/** A Lucid `Database` (or one of its connections): raw SQL, and named connections when it has them. */
|
|
63
|
+
export type LucidChannelStoreDatabase = LucidRawRunner & {
|
|
64
|
+
connection?(name?: string): LucidRawRunner;
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* A {@link ChannelStore} in the app's SQL database through Lucid — shared by every replica, no Redis
|
|
68
|
+
* needed. One row per key in `agent_channel_state`; a claim is one `INSERT` that skips on a duplicate
|
|
69
|
+
* key (`ON CONFLICT DO NOTHING`, `INSERT IGNORE` on MySQL), so the primary key is the lock. Expired
|
|
70
|
+
* rows are deleted as claims come in (`purgeEveryMs`), and an expired key can be taken again.
|
|
71
|
+
*
|
|
72
|
+
* ```ts
|
|
73
|
+
* import db from '@adonisjs/lucid/services/db'
|
|
74
|
+
* channels.handle(adapter, { …, store: lucidChannelStore(db) })
|
|
75
|
+
* ```
|
|
76
|
+
*/
|
|
77
|
+
export declare function lucidChannelStore(database: LucidChannelStoreDatabase, options?: LucidChannelStoreOptions): ChannelStore;
|
|
78
|
+
//# sourceMappingURL=store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/channels/store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAIzD;;;;;;;;;GASG;AACH,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9D,6CAA6C;IAC7C,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACzD,uEAAuE;IACvE,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3C;AAED,gFAAgF;AAChF,qBAAa,oBAAqB,YAAW,YAAY;;IAI3C,OAAO,CAAC,QAAQ,CAAC,UAAU;IADvC,kFAAkF;IAClF,YAA6B,UAAU,SAAS,EAAI;IAsBpD,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAIzC;IAED,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAE9B;IAED,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAEnD;IAED,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAExB;CACF;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACrF,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3E,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACzC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACpC;AAED,+FAA+F;AAC/F,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,iBAAiB,EACxB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAChC,YAAY,CAed;AAED,MAAM,WAAW,wBAAwB;IACvC,8EAA8E;IAC9E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,uEAAuE;IACvE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,uGAAuG;AACvG,MAAM,MAAM,yBAAyB,GAAG,cAAc,GAAG;IACvD,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC;CAC5C,CAAC;AAeF;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,yBAAyB,EACnC,OAAO,GAAE,wBAA6B,GACrC,YAAY,CA4Ed"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
import { AGENT_TABLES, ensureChannelStateTable, rowsOf } from '../stores/lucid-schema.js';
|
|
3
|
+
import { isMySql, portableSql } from '../stores/sql-dialect.js';
|
|
4
|
+
/** Process-local {@link ChannelStore}: a single replica, tests, development. */
|
|
5
|
+
export class InMemoryChannelStore {
|
|
6
|
+
maxEntries;
|
|
7
|
+
#entries = new Map();
|
|
8
|
+
/** @param maxEntries Past this many live keys, the oldest are forgotten first. */
|
|
9
|
+
constructor(maxEntries = 50_000) {
|
|
10
|
+
this.maxEntries = maxEntries;
|
|
11
|
+
}
|
|
12
|
+
#live(key) {
|
|
13
|
+
const entry = this.#entries.get(key);
|
|
14
|
+
if (entry === undefined)
|
|
15
|
+
return undefined;
|
|
16
|
+
if (entry.expiresAt > Date.now())
|
|
17
|
+
return entry;
|
|
18
|
+
this.#entries.delete(key);
|
|
19
|
+
return undefined;
|
|
20
|
+
}
|
|
21
|
+
#put(key, value, ttlMs) {
|
|
22
|
+
const now = Date.now();
|
|
23
|
+
this.#entries.delete(key);
|
|
24
|
+
this.#entries.set(key, { value, expiresAt: now + ttlMs });
|
|
25
|
+
if (this.#entries.size <= this.maxEntries)
|
|
26
|
+
return;
|
|
27
|
+
// Insertion order is write order: the first keys are the oldest.
|
|
28
|
+
for (const [stored, entry] of this.#entries) {
|
|
29
|
+
if (this.#entries.size <= this.maxEntries && entry.expiresAt > now)
|
|
30
|
+
break;
|
|
31
|
+
this.#entries.delete(stored);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
claim(key, ttlMs) {
|
|
35
|
+
if (this.#live(key) !== undefined)
|
|
36
|
+
return false;
|
|
37
|
+
this.#put(key, null, ttlMs);
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
get(key) {
|
|
41
|
+
return this.#live(key)?.value ?? null;
|
|
42
|
+
}
|
|
43
|
+
set(key, value, ttlMs) {
|
|
44
|
+
this.#put(key, value, ttlMs);
|
|
45
|
+
}
|
|
46
|
+
delete(key) {
|
|
47
|
+
this.#entries.delete(key);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/** A {@link ChannelStore} shared by every replica, over Redis (`SET … PX … NX` for claims). */
|
|
51
|
+
export function redisChannelStore(redis, options = {}) {
|
|
52
|
+
const prefix = options.prefix ?? 'agora:channel:';
|
|
53
|
+
const ttl = (ms) => Math.max(1, Math.round(ms));
|
|
54
|
+
return {
|
|
55
|
+
async claim(key, ttlMs) {
|
|
56
|
+
return (await redis.set(`${prefix}${key}`, '', 'PX', ttl(ttlMs), 'NX')) === 'OK';
|
|
57
|
+
},
|
|
58
|
+
get: (key) => redis.get(`${prefix}${key}`),
|
|
59
|
+
async set(key, value, ttlMs) {
|
|
60
|
+
await redis.set(`${prefix}${key}`, value, 'PX', ttl(ttlMs));
|
|
61
|
+
},
|
|
62
|
+
async delete(key) {
|
|
63
|
+
await redis.del(`${prefix}${key}`);
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
/** Keys longer than the column are stored by their hash. */
|
|
68
|
+
const storedKey = (key) => key.length <= 255 ? key : `sha256:${createHash('sha256').update(key).digest('hex')}`;
|
|
69
|
+
/** How many rows a raw write touched, whatever the driver wraps it in. */
|
|
70
|
+
function affected(result) {
|
|
71
|
+
// mysql2: `[ResultSetHeader, fields]`. Everything else here answers `RETURNING` with rows.
|
|
72
|
+
const head = Array.isArray(result) ? result[0] : result;
|
|
73
|
+
const count = head?.affectedRows;
|
|
74
|
+
if (typeof count === 'number')
|
|
75
|
+
return count;
|
|
76
|
+
return rowsOf(result).length;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* A {@link ChannelStore} in the app's SQL database through Lucid — shared by every replica, no Redis
|
|
80
|
+
* needed. One row per key in `agent_channel_state`; a claim is one `INSERT` that skips on a duplicate
|
|
81
|
+
* key (`ON CONFLICT DO NOTHING`, `INSERT IGNORE` on MySQL), so the primary key is the lock. Expired
|
|
82
|
+
* rows are deleted as claims come in (`purgeEveryMs`), and an expired key can be taken again.
|
|
83
|
+
*
|
|
84
|
+
* ```ts
|
|
85
|
+
* import db from '@adonisjs/lucid/services/db'
|
|
86
|
+
* channels.handle(adapter, { …, store: lucidChannelStore(db) })
|
|
87
|
+
* ```
|
|
88
|
+
*/
|
|
89
|
+
export function lucidChannelStore(database, options = {}) {
|
|
90
|
+
const db = options.connection !== undefined && typeof database.connection === 'function'
|
|
91
|
+
? database.connection(options.connection)
|
|
92
|
+
: database;
|
|
93
|
+
const table = options.table ?? AGENT_TABLES.channelState;
|
|
94
|
+
const purgeEveryMs = options.purgeEveryMs ?? 10 * 60 * 1000;
|
|
95
|
+
const mysql = isMySql(db);
|
|
96
|
+
const sql = (statement) => portableSql(db, statement);
|
|
97
|
+
let ready;
|
|
98
|
+
let lastPurge = 0;
|
|
99
|
+
const init = () => {
|
|
100
|
+
if (options.autoCreateTables === false)
|
|
101
|
+
return Promise.resolve();
|
|
102
|
+
ready ??= ensureChannelStateTable(db, table).catch((error) => {
|
|
103
|
+
ready = undefined;
|
|
104
|
+
throw error;
|
|
105
|
+
});
|
|
106
|
+
return ready;
|
|
107
|
+
};
|
|
108
|
+
const purge = async (now) => {
|
|
109
|
+
if (now - lastPurge < purgeEveryMs)
|
|
110
|
+
return;
|
|
111
|
+
lastPurge = now;
|
|
112
|
+
await db.rawQuery(sql(`DELETE FROM "${table}" WHERE "expires_at" <= ?`), [now]);
|
|
113
|
+
};
|
|
114
|
+
return {
|
|
115
|
+
async claim(key, ttlMs) {
|
|
116
|
+
await init();
|
|
117
|
+
const now = Date.now();
|
|
118
|
+
await purge(now);
|
|
119
|
+
const id = storedKey(key);
|
|
120
|
+
// An expired claim is free again.
|
|
121
|
+
await db.rawQuery(sql(`DELETE FROM "${table}" WHERE "key" = ? AND "expires_at" <= ?`), [
|
|
122
|
+
id,
|
|
123
|
+
now,
|
|
124
|
+
]);
|
|
125
|
+
const bindings = [id, now + ttlMs, now];
|
|
126
|
+
const insert = mysql
|
|
127
|
+
? sql(`INSERT IGNORE INTO "${table}" ("key", "value", "expires_at", "created_at") VALUES (?, NULL, ?, ?)`)
|
|
128
|
+
: `INSERT INTO "${table}" ("key", "value", "expires_at", "created_at") VALUES (?, NULL, ?, ?) ON CONFLICT ("key") DO NOTHING RETURNING "key"`;
|
|
129
|
+
return affected(await db.rawQuery(insert, bindings)) === 1;
|
|
130
|
+
},
|
|
131
|
+
async get(key) {
|
|
132
|
+
await init();
|
|
133
|
+
const rows = rowsOf(await db.rawQuery(sql(`SELECT "value" FROM "${table}" WHERE "key" = ? AND "expires_at" > ?`), [storedKey(key), Date.now()]));
|
|
134
|
+
const value = rows[0]?.value;
|
|
135
|
+
return typeof value === 'string' ? value : null;
|
|
136
|
+
},
|
|
137
|
+
async set(key, value, ttlMs) {
|
|
138
|
+
await init();
|
|
139
|
+
const now = Date.now();
|
|
140
|
+
const bindings = [storedKey(key), value, now + ttlMs, now];
|
|
141
|
+
await db.rawQuery(mysql
|
|
142
|
+
? sql(`INSERT INTO "${table}" ("key", "value", "expires_at", "created_at") VALUES (?, ?, ?, ?) ON DUPLICATE KEY UPDATE "value" = VALUES("value"), "expires_at" = VALUES("expires_at")`)
|
|
143
|
+
: `INSERT INTO "${table}" ("key", "value", "expires_at", "created_at") VALUES (?, ?, ?, ?) ON CONFLICT ("key") DO UPDATE SET "value" = excluded."value", "expires_at" = excluded."expires_at"`, bindings);
|
|
144
|
+
},
|
|
145
|
+
async delete(key) {
|
|
146
|
+
await init();
|
|
147
|
+
await db.rawQuery(sql(`DELETE FROM "${table}" WHERE "key" = ?`), [storedKey(key)]);
|
|
148
|
+
},
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/channels/store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The contract between a text channel (WhatsApp, Telegram, …) and the agent: what an adapter reads
|
|
3
|
+
* off a webhook and what it is asked to deliver. Framework-free — `channels.handle()` builds the
|
|
4
|
+
* {@link ChannelRequest} from Adonis's `HttpContext`, and a test builds one by hand.
|
|
5
|
+
*/
|
|
6
|
+
/** The markdown a channel renders: WhatsApp's, Telegram's MarkdownV2, or none (plain text). */
|
|
7
|
+
export type ChannelMarkdown = 'whatsapp' | 'telegram' | 'none';
|
|
8
|
+
/** What a channel can show — what the service shapes every reply to. */
|
|
9
|
+
export interface ChannelCapabilities {
|
|
10
|
+
/**
|
|
11
|
+
* The most reply buttons one message can carry. Omitted (or below 2) → the channel has none, and a
|
|
12
|
+
* proposal is put to the person as a text instruction instead of Confirm/Cancel buttons.
|
|
13
|
+
*/
|
|
14
|
+
buttons?: number;
|
|
15
|
+
/** The markdown dialect replies are converted to. */
|
|
16
|
+
markdown: ChannelMarkdown;
|
|
17
|
+
/** The longest text one message may carry; longer replies are split into several messages. */
|
|
18
|
+
maxLength: number;
|
|
19
|
+
}
|
|
20
|
+
/** One webhook request, as an adapter sees it. */
|
|
21
|
+
export interface ChannelRequest {
|
|
22
|
+
/** Upper-case HTTP method. */
|
|
23
|
+
method: string;
|
|
24
|
+
/** Path and query string, e.g. `/webhooks/whatsapp?hub.mode=subscribe`. */
|
|
25
|
+
url: string;
|
|
26
|
+
/** A request header by (case-insensitive) name. */
|
|
27
|
+
header(name: string): string | undefined;
|
|
28
|
+
/** Route params (`/webhooks/whatsapp/:token` → `{ token }`). */
|
|
29
|
+
params: Record<string, unknown>;
|
|
30
|
+
/** The parsed body. */
|
|
31
|
+
body: unknown;
|
|
32
|
+
/**
|
|
33
|
+
* The body exactly as it arrived — what a signature is computed over. `null` when the body parser
|
|
34
|
+
* did not keep it (a request it does not parse).
|
|
35
|
+
*/
|
|
36
|
+
rawBody: string | null;
|
|
37
|
+
}
|
|
38
|
+
/** A message a person sent on the channel. */
|
|
39
|
+
export interface InboundMessage {
|
|
40
|
+
/** The provider's id for this message — retries of one delivery carry the same id. */
|
|
41
|
+
id: string;
|
|
42
|
+
/** Who sent it: a phone number, a Telegram user id… — what `actor()` maps to an account. */
|
|
43
|
+
from: string;
|
|
44
|
+
/** Where replies go: the chat / conversation id {@link ChannelAdapter.send} is called with. */
|
|
45
|
+
conversation: string;
|
|
46
|
+
/**
|
|
47
|
+
* What the person wrote — for a button press, the button's label (or its id when there is none);
|
|
48
|
+
* for a media message, its caption (`''` when it has none).
|
|
49
|
+
*/
|
|
50
|
+
text: string;
|
|
51
|
+
/** Files the message carries (an image, a voice note, a document) — downloaded and attached to the turn. */
|
|
52
|
+
media?: InboundMedia[];
|
|
53
|
+
/** The id of the reply button the person pressed, when the message is a button press. */
|
|
54
|
+
buttonId?: string;
|
|
55
|
+
/** The provider's payload, untouched. */
|
|
56
|
+
raw: unknown;
|
|
57
|
+
}
|
|
58
|
+
/** One file in an inbound message, before it is downloaded. */
|
|
59
|
+
export interface InboundMedia {
|
|
60
|
+
kind: 'image' | 'audio' | 'video' | 'document' | 'sticker';
|
|
61
|
+
/** MIME type, when the webhook says (it usually does). */
|
|
62
|
+
contentType?: string;
|
|
63
|
+
/** The file's name, when the webhook says (documents). */
|
|
64
|
+
filename?: string;
|
|
65
|
+
/** Size in bytes, when the webhook says. */
|
|
66
|
+
sizeBytes?: number;
|
|
67
|
+
/** Whatever the adapter needs to download it (a media id, a file id, the message key). */
|
|
68
|
+
ref: unknown;
|
|
69
|
+
}
|
|
70
|
+
/** A downloaded file. */
|
|
71
|
+
export interface ChannelMediaFile {
|
|
72
|
+
data: Buffer;
|
|
73
|
+
contentType: string;
|
|
74
|
+
filename?: string;
|
|
75
|
+
}
|
|
76
|
+
export interface ChannelButton {
|
|
77
|
+
/** What comes back as {@link InboundMessage.buttonId} when it is pressed. */
|
|
78
|
+
id: string;
|
|
79
|
+
label: string;
|
|
80
|
+
}
|
|
81
|
+
/** One message to deliver: text, or text with reply buttons. */
|
|
82
|
+
export type OutboundMessage = {
|
|
83
|
+
text: string;
|
|
84
|
+
buttons?: undefined;
|
|
85
|
+
fallbackText?: undefined;
|
|
86
|
+
} | {
|
|
87
|
+
text: string;
|
|
88
|
+
buttons: ChannelButton[];
|
|
89
|
+
/**
|
|
90
|
+
* The same message as text only — a reply instruction in place of the buttons. What an adapter
|
|
91
|
+
* sends when the provider definitely refused the buttons (a 4xx), so the person still gets a
|
|
92
|
+
* way to answer.
|
|
93
|
+
*/
|
|
94
|
+
fallbackText: string;
|
|
95
|
+
};
|
|
96
|
+
/** A reply the adapter answers the webhook with instead of acknowledging it (a verification GET). */
|
|
97
|
+
export interface ChannelChallengeResponse {
|
|
98
|
+
status: number;
|
|
99
|
+
body: string;
|
|
100
|
+
contentType?: string;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* One text channel. The built-in ones are `evolutionApi()`, `whatsappCloud()` and `telegram()`; any
|
|
104
|
+
* object of this shape works the same way.
|
|
105
|
+
*/
|
|
106
|
+
export interface ChannelAdapter {
|
|
107
|
+
/** Names the channel: the dedupe key's prefix, and `via` on a decision made with its buttons. */
|
|
108
|
+
readonly name: string;
|
|
109
|
+
readonly capabilities: ChannelCapabilities;
|
|
110
|
+
/**
|
|
111
|
+
* Answer a request that is not a message — WhatsApp Cloud's `GET ?hub.challenge=…` subscription
|
|
112
|
+
* check. `null` → not one of those; the request goes on to {@link verify}.
|
|
113
|
+
*/
|
|
114
|
+
challenge?(request: ChannelRequest): ChannelChallengeResponse | null;
|
|
115
|
+
/** Is this request really from the provider (a signature, a shared token)? `false` → `401`. */
|
|
116
|
+
verify(request: ChannelRequest): boolean | Promise<boolean>;
|
|
117
|
+
/**
|
|
118
|
+
* The person's message(s) in a verified webhook body. `null` (or `[]`) → nothing to answer: a
|
|
119
|
+
* delivery receipt, the bot's own message, a group, a media message…
|
|
120
|
+
*/
|
|
121
|
+
parse(body: unknown): InboundMessage | InboundMessage[] | null;
|
|
122
|
+
/**
|
|
123
|
+
* Tell the provider the message was received, where it waits for that — Telegram's
|
|
124
|
+
* `answerCallbackQuery` after a button press. Runs in the background, before the turn.
|
|
125
|
+
*/
|
|
126
|
+
acknowledge?(message: InboundMessage): Promise<void>;
|
|
127
|
+
/**
|
|
128
|
+
* Download one of a message's {@link InboundMessage.media}. Throws {@link
|
|
129
|
+
* import('./http.js').ChannelMediaTooLargeError} past `maxBytes` (without reading the rest).
|
|
130
|
+
* Absent → media messages are answered with `texts.mediaRefused`.
|
|
131
|
+
*/
|
|
132
|
+
download?(media: InboundMedia, options: {
|
|
133
|
+
maxBytes: number;
|
|
134
|
+
}): Promise<ChannelMediaFile>;
|
|
135
|
+
/** Deliver one message to a conversation. Throws when the provider refused it. */
|
|
136
|
+
send(conversation: string, message: OutboundMessage): Promise<void>;
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/channels/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The contract between a text channel (WhatsApp, Telegram, …) and the agent: what an adapter reads
|
|
3
|
+
* off a webhook and what it is asked to deliver. Framework-free — `channels.handle()` builds the
|
|
4
|
+
* {@link ChannelRequest} from Adonis's `HttpContext`, and a test builds one by hand.
|
|
5
|
+
*/
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/channels/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builtins.d.ts","sourceRoot":"","sources":["../../../src/genui/builtins.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,KAAK,mBAAmB,EAAmB,MAAM,cAAc,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG5D,KAAK,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAyBrC,oEAAoE;AACpE,wBAAgB,SAAS,CACvB,OAAO,EAAE,SAAS;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,EAClD,IAAI,EAAE,SAAS,KAAK,EAAE,EACtB,GAAG,SAAK,GACP,MAAM,
|
|
1
|
+
{"version":3,"file":"builtins.d.ts","sourceRoot":"","sources":["../../../src/genui/builtins.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,KAAK,mBAAmB,EAAmB,MAAM,cAAc,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG5D,KAAK,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAyBrC,oEAAoE;AACpE,wBAAgB,SAAS,CACvB,OAAO,EAAE,SAAS;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,EAClD,IAAI,EAAE,SAAS,KAAK,EAAE,EACtB,GAAG,SAAK,GACP,MAAM,CAER;AAyBD,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,4EAA4E;AAC5E,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,EAAE,CAoClE;AAOD,eAAO,MAAM,SAAS,iCA2BpB,CAAC;AAEH,eAAO,MAAM,KAAK,iCA6BhB,CAAC;AA+EH,eAAO,MAAM,QAAQ;YACX,MAAM;WACP;QACL,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;QACvB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;QAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,EAAE;EA+BH,CAAC;AAEH,eAAO,MAAM,WAAW;YACd,MAAM;WACP;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE;EAwB3E,CAAC;AAEH,eAAO,MAAM,SAAS;YACZ,MAAM;WACP;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE;EAsBzD,CAAC;AAEH,eAAO,MAAM,QAAQ;YACX,MAAM;YACN;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE;EAsBhE,CAAC;AAEH,eAAO,MAAM,SAAS,4BAMpB,CAAC;AAEH,eAAO,MAAM,IAAI,4BASf,CAAC;AAEH,eAAO,MAAM,OAAO,4BAclB,CAAC;AAEH,eAAO,MAAM,KAAK,4BAOhB,CAAC;AAEH,eAAO,MAAM,IAAI,4BAQf,CAAC;AAEH,eAAO,MAAM,OAAO,4BAMlB,CAAC;AAEH,eAAO,MAAM,IAAI,4BAMf,CAAC;AAEH,eAAO,MAAM,KAAK,4BAYhB,CAAC;AAEH,eAAO,MAAM,IAAI,4BAMf,CAAC;AAEH,eAAO,MAAM,KAAK,4BAMhB,CAAC;AAEH,8CAA8C;AAC9C,eAAO,MAAM,kBAAkB,EAAE,SAAS,mBAAmB,CAAC,OAAO,CAAC,EAUrE,CAAC;AAEF,8FAA8F;AAC9F,eAAO,MAAM,iBAAiB,EAAE,SAAS,mBAAmB,CAAC,OAAO,CAAC,EAQpE,CAAC"}
|
|
@@ -30,6 +30,10 @@ const s = (value) => (value === null || value === undefined ? '' : String(value)
|
|
|
30
30
|
const heading = (props) => props.title ? `*${s(props.title)}*\n` : '';
|
|
31
31
|
/** A fixed-width text table in a code block, at most `max` rows. */
|
|
32
32
|
export function textTable(columns, rows, max = 15) {
|
|
33
|
+
return `\`\`\`\n${tableLines(columns, rows, max).join('\n')}\n\`\`\``;
|
|
34
|
+
}
|
|
35
|
+
/** {@link textTable}'s lines, without the code block. */
|
|
36
|
+
function tableLines(columns, rows, max) {
|
|
33
37
|
const shown = rows.slice(0, max);
|
|
34
38
|
const widths = columns.map((column) => Math.min(28, Math.max(column.label.length, ...shown.map((r) => s(r[column.key]).length))));
|
|
35
39
|
const format = (values) => values
|
|
@@ -42,7 +46,7 @@ export function textTable(columns, rows, max = 15) {
|
|
|
42
46
|
];
|
|
43
47
|
if (rows.length > max)
|
|
44
48
|
lines.push(`… ${rows.length - max} more rows`);
|
|
45
|
-
return
|
|
49
|
+
return lines;
|
|
46
50
|
}
|
|
47
51
|
/** Line diff (LCS) — good enough for snippets up to a few hundred lines. */
|
|
48
52
|
export function lineDiff(before, after) {
|
|
@@ -124,15 +128,70 @@ export const Chart = defineComponent({
|
|
|
124
128
|
fallbackText: (props) => {
|
|
125
129
|
const series = props.series ?? [];
|
|
126
130
|
const data = props.data ?? [];
|
|
127
|
-
const first = series[0]?.key ?? '';
|
|
128
|
-
const max = Math.max(0, ...data.map((point) => Math.abs(Number(point[first]) || 0)));
|
|
129
131
|
const unit = props.unit ? ` ${s(props.unit)}` : '';
|
|
130
|
-
const lines =
|
|
131
|
-
.
|
|
132
|
-
|
|
132
|
+
const lines = props.type === 'line'
|
|
133
|
+
? lineChartLines(props.xKey, series, data, unit)
|
|
134
|
+
: barChartLines(props.xKey, series, data, unit);
|
|
133
135
|
return `${heading(props)}\`\`\`\n${lines.join('\n')}\n\`\`\``;
|
|
134
136
|
},
|
|
135
137
|
});
|
|
138
|
+
const seriesName = (each) => s(each.label || each.key);
|
|
139
|
+
const pad = (value, width) => s(value).slice(0, width).padEnd(width);
|
|
140
|
+
/**
|
|
141
|
+
* A bar chart as text: one bar per point (one series), or per point a bar per series, all on one
|
|
142
|
+
* scale. At most 20 points.
|
|
143
|
+
*/
|
|
144
|
+
function barChartLines(xKey, series, data, unit) {
|
|
145
|
+
const value = (point, key) => Number(point[key]) || 0;
|
|
146
|
+
const max = Math.max(0, ...data.flatMap((point) => series.map((each) => Math.abs(value(point, each.key)))));
|
|
147
|
+
const lines = [];
|
|
148
|
+
const width = Math.min(18, Math.max(0, ...series.map((each) => seriesName(each).length)));
|
|
149
|
+
for (const point of data.slice(0, 20)) {
|
|
150
|
+
if (series.length <= 1) {
|
|
151
|
+
const key = series[0]?.key ?? '';
|
|
152
|
+
lines.push(`${pad(point[xKey], 18)} ${bar(value(point, key), max)} ${s(point[key])}${unit}`);
|
|
153
|
+
continue;
|
|
154
|
+
}
|
|
155
|
+
lines.push(s(point[xKey]));
|
|
156
|
+
for (const each of series) {
|
|
157
|
+
lines.push(` ${pad(seriesName(each), width)} ${bar(value(point, each.key), max)} ${s(point[each.key])}${unit}`);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
if (data.length > 20)
|
|
161
|
+
lines.push(`… ${data.length - 20} more points`);
|
|
162
|
+
return lines;
|
|
163
|
+
}
|
|
164
|
+
const SPARKS = '▁▂▃▄▅▆▇█';
|
|
165
|
+
/** `▁▃▅█`: one block per value, scaled between the smallest and the largest. */
|
|
166
|
+
function sparkline(values) {
|
|
167
|
+
const min = Math.min(...values);
|
|
168
|
+
const max = Math.max(...values);
|
|
169
|
+
return values
|
|
170
|
+
.map((value) => max === min
|
|
171
|
+
? SPARKS[3]
|
|
172
|
+
: SPARKS[Math.round(((value - min) / (max - min)) * (SPARKS.length - 1))])
|
|
173
|
+
.join('');
|
|
174
|
+
}
|
|
175
|
+
/** A line chart as text: a sparkline per series (first → last, min/max), then the points as a table. */
|
|
176
|
+
function lineChartLines(xKey, series, data, unit) {
|
|
177
|
+
const width = Math.min(18, Math.max(0, ...series.map((each) => seriesName(each).length)));
|
|
178
|
+
// At most 40 sparkline points, sampled evenly across the data.
|
|
179
|
+
const step = Math.max(1, Math.ceil(data.length / 40));
|
|
180
|
+
const lines = series.map((each) => {
|
|
181
|
+
const values = data.map((point) => Number(point[each.key]) || 0);
|
|
182
|
+
if (values.length === 0)
|
|
183
|
+
return seriesName(each);
|
|
184
|
+
const spark = sparkline(values.filter((_value, index) => index % step === 0));
|
|
185
|
+
const first = s(data[0]?.[each.key]);
|
|
186
|
+
const last = s(data[data.length - 1]?.[each.key]);
|
|
187
|
+
return `${pad(seriesName(each), width)} ${spark} ${first} → ${last}${unit} (min ${Math.min(...values)}, max ${Math.max(...values)})`;
|
|
188
|
+
});
|
|
189
|
+
const columns = [
|
|
190
|
+
{ key: xKey, label: xKey },
|
|
191
|
+
...series.map((each) => ({ key: each.key, label: seriesName(each) })),
|
|
192
|
+
];
|
|
193
|
+
return [...lines, '', ...tableLines(columns, data, 20)];
|
|
194
|
+
}
|
|
136
195
|
export const KpiCards = defineComponent({
|
|
137
196
|
name: 'KpiCards',
|
|
138
197
|
title: 'KPI cards',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builtins.js","sourceRoot":"","sources":["../../../src/genui/builtins.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"builtins.js","sourceRoot":"","sources":["../../../src/genui/builtins.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,12 +18,15 @@ export interface ComponentDefinition<P = Record<string, unknown>> {
|
|
|
18
18
|
outputProps?: PropsSchema;
|
|
19
19
|
/**
|
|
20
20
|
* The component takes nested elements (a layout: `Stack`, `Card`). Only meaningful in tree mode,
|
|
21
|
-
* where a node's `children` are validated against the catalog too.
|
|
21
|
+
* where a node's `children` are validated against the catalog too. Outside tree mode such a
|
|
22
|
+
* component has nothing to hold, so it gets no `ui__show_*` tool and the generic show tool does
|
|
23
|
+
* not offer it.
|
|
22
24
|
*/
|
|
23
25
|
children?: boolean;
|
|
24
26
|
/**
|
|
25
27
|
* Plain text / Slack mrkdwn rendering of these props, for a channel that cannot draw the
|
|
26
|
-
* component. Absent → {@link componentToText} prints the props as JSON.
|
|
28
|
+
* component. Absent → {@link componentToText} prints the props as JSON. An empty string renders
|
|
29
|
+
* nothing (a layout with nothing of its own to say); in a tree its children still render.
|
|
27
30
|
*/
|
|
28
31
|
fallbackText?(props: P): string;
|
|
29
32
|
/**
|
|
@@ -70,6 +73,12 @@ export interface Catalog {
|
|
|
70
73
|
* definition (e.g. a builtin), use {@link Catalog.extend}.
|
|
71
74
|
*/
|
|
72
75
|
export declare function defineCatalog(components: readonly ComponentDefinition<unknown>[], options?: CatalogOptions): Catalog;
|
|
76
|
+
/**
|
|
77
|
+
* The model components that stand on their own: every one but a layout (`children: true`). Outside
|
|
78
|
+
* tree mode nothing can be nested, so a layout could only be pushed empty — it gets no
|
|
79
|
+
* `ui__show_*` tool and is not offered by the generic show tool.
|
|
80
|
+
*/
|
|
81
|
+
export declare function standaloneComponents(catalog: Catalog): ComponentDefinition<unknown>[];
|
|
73
82
|
/** `DataTable` → `data_table`, `KPICards` → `kpi_cards`. */
|
|
74
83
|
export declare function toSnakeCase(name: string): string;
|
|
75
84
|
/** The per-component tool name: `ui__show_data_table` with the default prefix. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../src/genui/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAIjB,MAAM,aAAa,CAAC;AAErB;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC9D,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,wEAAwE;IACxE,WAAW,EAAE,MAAM,CAAC;IACpB,2FAA2F;IAC3F,KAAK,EAAE,WAAW,CAAC;IACnB,gGAAgG;IAChG,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B
|
|
1
|
+
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../src/genui/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAIjB,MAAM,aAAa,CAAC;AAErB;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC9D,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,wEAAwE;IACxE,WAAW,EAAE,MAAM,CAAC;IACpB,2FAA2F;IAC3F,KAAK,EAAE,WAAW,CAAC;IACnB,gGAAgG;IAChG,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,YAAY,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC;IAChC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,gHAAgH;AAChH,eAAO,MAAM,cAAc,QAAgC,CAAC;AAE5D,4FAA4F;AAC5F,wBAAgB,eAAe,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzD,UAAU,EAAE,mBAAmB,CAAC,CAAC,CAAC,GACjC,mBAAmB,CAAC,CAAC,CAAC,CAcxB;AAED,MAAM,WAAW,cAAc;IAC7B,2IAA2I;IAC3I,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;CAC3C;AAED,oEAAoE;AACpE,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,UAAU,EAAE,SAAS,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;IAC7D,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC;IACxC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;IAC5D,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3B,wEAAwE;IACxE,eAAe,IAAI,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;IAClD,mGAAmG;IACnG,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAC/F;;;OAGG;IACH,YAAY,CACV,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,OAAO,GACb,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IACxD,+FAA+F;IAC/F,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IACzD,+GAA+G;IAC/G,MAAM,CAAC,UAAU,EAAE,SAAS,mBAAmB,CAAC,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC;CACtE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,SAAS,mBAAmB,CAAC,OAAO,CAAC,EAAE,EACnD,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAUT;AAyDD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAErF;AAED,4DAA4D;AAC5D,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMhD;AAED,kFAAkF;AAClF,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,SAAc,GAAG,MAAM,CAE3E"}
|