@cereworker/core 26.315.2 → 26.316.1

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/dist/index.d.ts CHANGED
@@ -12,4 +12,6 @@ export { createSubAgentTools } from './sub-agent-tools.js';
12
12
  export { estimateTokens, estimateMessageTokens, shouldCompact, buildCompactionMessages, } from './context.js';
13
13
  export { buildSystemPrompt } from './system-prompt.js';
14
14
  export type { SystemPromptOptions } from './system-prompt.js';
15
+ export { PairingStore, formatCode, normalizeCode } from './pairing.js';
16
+ export type { PairingRequest, ApprovalResult } from './pairing.js';
15
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,OAAO,EACP,WAAW,EACX,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,YAAY,GACb,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC5D,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACpD,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,cAAc,EAAE,eAAe,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAClL,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,YAAY,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,aAAa,EACb,uBAAuB,GACxB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,OAAO,EACP,WAAW,EACX,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,YAAY,GACb,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC5D,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACpD,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,cAAc,EAAE,eAAe,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAClL,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,YAAY,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,aAAa,EACb,uBAAuB,GACxB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACvE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
package/dist/index.js CHANGED
@@ -6,4 +6,5 @@ export { SubAgentManager } from './sub-agent-manager.js';
6
6
  export { createSubAgentTools } from './sub-agent-tools.js';
7
7
  export { estimateTokens, estimateMessageTokens, shouldCompact, buildCompactionMessages, } from './context.js';
8
8
  export { buildSystemPrompt } from './system-prompt.js';
9
+ export { PairingStore, formatCode, normalizeCode } from './pairing.js';
9
10
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG5D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,aAAa,EACb,uBAAuB,GACxB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG5D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,aAAa,EACb,uBAAuB,GACxB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,32 @@
1
+ export interface PairingRequest {
2
+ code: string;
3
+ channelId: string;
4
+ senderId: string;
5
+ senderName: string | null;
6
+ createdAt: number;
7
+ expiresAt: number;
8
+ status: 'pending' | 'approved' | 'expired';
9
+ }
10
+ export interface ApprovalResult {
11
+ ok: boolean;
12
+ channelId?: string;
13
+ senderId?: string;
14
+ senderName?: string | null;
15
+ error?: string;
16
+ }
17
+ export declare function formatCode(code: string): string;
18
+ export declare function normalizeCode(input: string): string;
19
+ export declare class PairingStore {
20
+ private db;
21
+ constructor(dbPath?: string);
22
+ private ensureSchema;
23
+ createPairingCode(channelId: string, senderId: string, senderName?: string): string | null;
24
+ getPendingByCode(code: string): PairingRequest | null;
25
+ listPending(): PairingRequest[];
26
+ approveCode(code: string): ApprovalResult;
27
+ isApproved(channelId: string, senderId: string): boolean;
28
+ expireStale(): number;
29
+ addConfigUser(channelId: string, senderId: string): void;
30
+ close(): void;
31
+ }
32
+ //# sourceMappingURL=pairing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pairing.d.ts","sourceRoot":"","sources":["../src/pairing.ts"],"names":[],"mappings":"AA6BA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;CAC5C;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,OAAO,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAUD,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnD;AAWD,qBAAa,YAAY;IACvB,OAAO,CAAC,EAAE,CAAkB;gBAEhB,MAAM,CAAC,EAAE,MAAM;IAY3B,OAAO,CAAC,YAAY;IA0BpB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IA+C1F,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IASrD,WAAW,IAAI,cAAc,EAAE;IAO/B,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc;IAsCzC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO;IAQxD,WAAW,IAAI,MAAM;IAQrB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAQxD,KAAK,IAAI,IAAI;CAGd"}
@@ -0,0 +1,166 @@
1
+ import { randomInt } from 'node:crypto';
2
+ import { join } from 'node:path';
3
+ import { homedir } from 'node:os';
4
+ import { createRequire } from 'node:module';
5
+ import { createLogger } from './logger.js';
6
+ const log = createLogger('pairing');
7
+ const require = createRequire(import.meta.url);
8
+ const DEFAULT_DB_PATH = join(homedir(), '.cereworker', 'conversations.db');
9
+ const CODE_ALPHABET = '23456789ABCDEFGHJKLMNPQRSTUVWXYZ';
10
+ const CODE_LENGTH = 8;
11
+ const CODE_TTL_MS = 60 * 60 * 1000; // 1 hour
12
+ const MAX_PENDING_PER_CHANNEL = 3;
13
+ function generateCode() {
14
+ let code = '';
15
+ for (let i = 0; i < CODE_LENGTH; i++) {
16
+ code += CODE_ALPHABET[randomInt(CODE_ALPHABET.length)];
17
+ }
18
+ return code;
19
+ }
20
+ export function formatCode(code) {
21
+ return `${code.slice(0, 4)}-${code.slice(4)}`;
22
+ }
23
+ export function normalizeCode(input) {
24
+ return input.replace(/[-\s]/g, '').toUpperCase();
25
+ }
26
+ function tryOpenDb(dbPath) {
27
+ try {
28
+ const Database = require('better-sqlite3');
29
+ return new Database(dbPath);
30
+ }
31
+ catch {
32
+ return null;
33
+ }
34
+ }
35
+ export class PairingStore {
36
+ db;
37
+ constructor(dbPath) {
38
+ const path = dbPath ?? DEFAULT_DB_PATH;
39
+ this.db = tryOpenDb(path);
40
+ if (this.db) {
41
+ this.db.pragma('journal_mode = WAL');
42
+ this.ensureSchema();
43
+ log.info('Opened pairing database', { path });
44
+ }
45
+ else {
46
+ log.warn('better-sqlite3 not available — pairing will be disabled. Run "cereworker onboard" to install build tools.');
47
+ }
48
+ }
49
+ ensureSchema() {
50
+ this.db.exec(`
51
+ CREATE TABLE IF NOT EXISTS pairing_requests (
52
+ code TEXT PRIMARY KEY,
53
+ channelId TEXT NOT NULL,
54
+ senderId TEXT NOT NULL,
55
+ senderName TEXT,
56
+ createdAt INTEGER NOT NULL,
57
+ expiresAt INTEGER NOT NULL,
58
+ status TEXT NOT NULL DEFAULT 'pending'
59
+ );
60
+ CREATE INDEX IF NOT EXISTS idx_pairing_channel_sender
61
+ ON pairing_requests(channelId, senderId, status);
62
+ CREATE INDEX IF NOT EXISTS idx_pairing_status
63
+ ON pairing_requests(status, expiresAt);
64
+
65
+ CREATE TABLE IF NOT EXISTS approved_users (
66
+ channelId TEXT NOT NULL,
67
+ senderId TEXT NOT NULL,
68
+ approvedAt INTEGER NOT NULL,
69
+ approvedVia TEXT,
70
+ PRIMARY KEY (channelId, senderId)
71
+ );
72
+ `);
73
+ }
74
+ createPairingCode(channelId, senderId, senderName) {
75
+ if (!this.db)
76
+ return null;
77
+ this.expireStale();
78
+ // Check for existing pending code for this sender+channel
79
+ const existing = this.db.prepare(`SELECT code FROM pairing_requests WHERE channelId = ? AND senderId = ? AND status = 'pending' AND expiresAt > ?`).get(channelId, senderId, Date.now());
80
+ if (existing) {
81
+ return formatCode(existing.code);
82
+ }
83
+ // Check rate limit per channel
84
+ const pendingCount = this.db.prepare(`SELECT COUNT(*) as cnt FROM pairing_requests WHERE channelId = ? AND status = 'pending' AND expiresAt > ?`).get(channelId, Date.now());
85
+ if (pendingCount.cnt >= MAX_PENDING_PER_CHANNEL) {
86
+ log.warn('Pairing rate limit reached', { channelId, pending: pendingCount.cnt });
87
+ return null;
88
+ }
89
+ // Generate unique code
90
+ let code;
91
+ let attempts = 0;
92
+ do {
93
+ code = generateCode();
94
+ attempts++;
95
+ if (attempts > 100) {
96
+ log.warn('Failed to generate unique pairing code');
97
+ return null;
98
+ }
99
+ } while (this.db.prepare(`SELECT 1 FROM pairing_requests WHERE code = ?`).get(code));
100
+ const now = Date.now();
101
+ this.db.prepare(`INSERT INTO pairing_requests (code, channelId, senderId, senderName, createdAt, expiresAt, status)
102
+ VALUES (?, ?, ?, ?, ?, ?, 'pending')`).run(code, channelId, senderId, senderName ?? null, now, now + CODE_TTL_MS);
103
+ log.info('Pairing code created', { channelId, senderId, code: formatCode(code) });
104
+ return formatCode(code);
105
+ }
106
+ getPendingByCode(code) {
107
+ if (!this.db)
108
+ return null;
109
+ const normalized = normalizeCode(code);
110
+ const row = this.db.prepare(`SELECT * FROM pairing_requests WHERE code = ? AND status = 'pending' AND expiresAt > ?`).get(normalized, Date.now());
111
+ return row ?? null;
112
+ }
113
+ listPending() {
114
+ if (!this.db)
115
+ return [];
116
+ return this.db.prepare(`SELECT * FROM pairing_requests WHERE status = 'pending' AND expiresAt > ? ORDER BY createdAt DESC`).all(Date.now());
117
+ }
118
+ approveCode(code) {
119
+ if (!this.db)
120
+ return { ok: false, error: 'Pairing unavailable (database not available)' };
121
+ const normalized = normalizeCode(code);
122
+ this.expireStale();
123
+ const request = this.db.prepare(`SELECT * FROM pairing_requests WHERE code = ? AND status = 'pending' AND expiresAt > ?`).get(normalized, Date.now());
124
+ if (!request) {
125
+ return { ok: false, error: 'Code not found or expired' };
126
+ }
127
+ // Mark as approved
128
+ this.db.prepare(`UPDATE pairing_requests SET status = 'approved' WHERE code = ?`).run(normalized);
129
+ // Add to approved users
130
+ this.db.prepare(`INSERT OR IGNORE INTO approved_users (channelId, senderId, approvedAt, approvedVia)
131
+ VALUES (?, ?, ?, 'pairing')`).run(request.channelId, request.senderId, Date.now());
132
+ log.info('Pairing approved', {
133
+ channelId: request.channelId,
134
+ senderId: request.senderId,
135
+ senderName: request.senderName,
136
+ });
137
+ return {
138
+ ok: true,
139
+ channelId: request.channelId,
140
+ senderId: request.senderId,
141
+ senderName: request.senderName,
142
+ };
143
+ }
144
+ isApproved(channelId, senderId) {
145
+ if (!this.db)
146
+ return true;
147
+ const row = this.db.prepare(`SELECT 1 FROM approved_users WHERE channelId = ? AND senderId = ?`).get(channelId, senderId);
148
+ return !!row;
149
+ }
150
+ expireStale() {
151
+ if (!this.db)
152
+ return 0;
153
+ const result = this.db.prepare(`UPDATE pairing_requests SET status = 'expired' WHERE status = 'pending' AND expiresAt <= ?`).run(Date.now());
154
+ return result.changes;
155
+ }
156
+ addConfigUser(channelId, senderId) {
157
+ if (!this.db)
158
+ return;
159
+ this.db.prepare(`INSERT OR IGNORE INTO approved_users (channelId, senderId, approvedAt, approvedVia)
160
+ VALUES (?, ?, ?, 'config')`).run(channelId, senderId, Date.now());
161
+ }
162
+ close() {
163
+ this.db?.close();
164
+ }
165
+ }
166
+ //# sourceMappingURL=pairing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pairing.js","sourceRoot":"","sources":["../src/pairing.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cereworker/core",
3
- "version": "26.315.2",
3
+ "version": "26.316.1",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -17,7 +17,7 @@
17
17
  },
18
18
  "dependencies": {
19
19
  "nanoid": "^5.0.9",
20
- "@cereworker/config": "26.315.2"
20
+ "@cereworker/config": "26.316.1"
21
21
  },
22
22
  "optionalDependencies": {
23
23
  "better-sqlite3": "^11.7.0"