@shardworks/nexus-core 0.1.62 → 0.1.64
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/clockworks.d.ts +6 -0
- package/dist/clockworks.d.ts.map +1 -1
- package/dist/clockworks.js +14 -0
- package/dist/clockworks.js.map +1 -1
- package/dist/conversation.d.ts +165 -0
- package/dist/conversation.d.ts.map +1 -0
- package/dist/conversation.js +457 -0
- package/dist/conversation.js.map +1 -0
- package/dist/id.d.ts.map +1 -1
- package/dist/id.js +10 -8
- package/dist/id.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/init-guild.d.ts.map +1 -1
- package/dist/init-guild.js +37 -18
- package/dist/init-guild.js.map +1 -1
- package/dist/session.d.ts +57 -1
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +26 -5
- package/dist/session.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,457 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Conversation — multi-turn interaction with animas.
|
|
3
|
+
*
|
|
4
|
+
* Conversations group multiple sessions (turns) into a single logical
|
|
5
|
+
* interaction. Each turn is a full launchSession() call through the
|
|
6
|
+
* standard session funnel — same manifest pipeline, same metrics,
|
|
7
|
+
* same session records.
|
|
8
|
+
*
|
|
9
|
+
* Two kinds:
|
|
10
|
+
* - **consult** — human talks to an anima (from dashboard or CLI)
|
|
11
|
+
* - **convene** — multiple animas hold a turn-limited dialogue
|
|
12
|
+
*
|
|
13
|
+
* State is fully persistent in the database. The core primitive is
|
|
14
|
+
* `takeTurn()` — a stateless function that reads conversation state,
|
|
15
|
+
* runs one turn through the session funnel, and updates the records.
|
|
16
|
+
* No in-memory state is held between turns. Any component (dashboard,
|
|
17
|
+
* CLI, clockworks) can drive a turn with just a conversation ID and
|
|
18
|
+
* participant ID.
|
|
19
|
+
*
|
|
20
|
+
* Human participants don't launch sessions. Their messages are captured
|
|
21
|
+
* as the `prompt` field on the anima's session record. This means the
|
|
22
|
+
* sessions table only contains anima turns — cost, tokens, and duration
|
|
23
|
+
* are always agent-side metrics. For dialogue reconstruction,
|
|
24
|
+
* `showConversation()` interleaves anima session rows with their prompts
|
|
25
|
+
* to show the full exchange.
|
|
26
|
+
*/
|
|
27
|
+
import Database from 'better-sqlite3';
|
|
28
|
+
import { booksPath } from "./nexus-home.js";
|
|
29
|
+
import { generateId } from "./id.js";
|
|
30
|
+
import { manifest } from "./manifest.js";
|
|
31
|
+
import { launchSession } from "./session.js";
|
|
32
|
+
// ── Lifecycle Functions ────────────────────────────────────────────────
|
|
33
|
+
/**
|
|
34
|
+
* Create a new conversation.
|
|
35
|
+
*
|
|
36
|
+
* Sets up conversation and participant records. Does NOT take a first
|
|
37
|
+
* turn — that's a separate call to takeTurn().
|
|
38
|
+
*
|
|
39
|
+
* Anima participants are identified by name. Manifesting happens at
|
|
40
|
+
* turn time, not creation time.
|
|
41
|
+
*/
|
|
42
|
+
export function createConversation(home, options) {
|
|
43
|
+
const db = new Database(booksPath(home));
|
|
44
|
+
db.pragma('foreign_keys = ON');
|
|
45
|
+
try {
|
|
46
|
+
const conversationId = generateId('conv');
|
|
47
|
+
const now = new Date().toISOString();
|
|
48
|
+
db.prepare(`INSERT INTO conversations (id, status, kind, topic, turn_limit, created_at, event_id)
|
|
49
|
+
VALUES (?, 'active', ?, ?, ?, ?, ?)`).run(conversationId, options.kind, options.topic ?? null, options.turnLimit ?? null, now, options.eventId ?? null);
|
|
50
|
+
const participants = [];
|
|
51
|
+
for (const p of options.participants) {
|
|
52
|
+
const participantId = generateId('cpart');
|
|
53
|
+
// Look up anima_id for anima participants
|
|
54
|
+
let animaId = null;
|
|
55
|
+
if (p.kind === 'anima') {
|
|
56
|
+
const row = db.prepare(`SELECT id FROM animas WHERE name = ? AND status = 'active'`).get(p.name);
|
|
57
|
+
if (row) {
|
|
58
|
+
animaId = row.id;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
db.prepare(`INSERT INTO conversation_participants (id, conversation_id, kind, name, anima_id)
|
|
62
|
+
VALUES (?, ?, ?, ?, ?)`).run(participantId, conversationId, p.kind, p.name, animaId);
|
|
63
|
+
participants.push({ id: participantId, name: p.name, kind: p.kind });
|
|
64
|
+
}
|
|
65
|
+
return { conversationId, participants };
|
|
66
|
+
}
|
|
67
|
+
finally {
|
|
68
|
+
db.close();
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Take a turn in a conversation.
|
|
73
|
+
*
|
|
74
|
+
* For anima participants:
|
|
75
|
+
* 1. Reads conversation state (checks status, turn limit)
|
|
76
|
+
* 2. Manifests the anima through the standard pipeline
|
|
77
|
+
* 3. Calls launchSession() with claudeSessionId for --resume
|
|
78
|
+
* 4. Captures providerSessionId and updates participant record
|
|
79
|
+
* 5. Yields ConversationChunks as they stream from the provider
|
|
80
|
+
*
|
|
81
|
+
* For human participants:
|
|
82
|
+
* - No session launched. Human messages are passed as the prompt
|
|
83
|
+
* to the next anima turn. This function is a no-op for humans
|
|
84
|
+
* (the caller passes the human's message directly to the anima's
|
|
85
|
+
* takeTurn call).
|
|
86
|
+
*
|
|
87
|
+
* Throws if conversation is not active or turn limit reached.
|
|
88
|
+
*/
|
|
89
|
+
export async function* takeTurn(home, conversationId, participantId, message) {
|
|
90
|
+
// 1. Read conversation and participant state
|
|
91
|
+
const db = new Database(booksPath(home));
|
|
92
|
+
db.pragma('foreign_keys = ON');
|
|
93
|
+
let conversation;
|
|
94
|
+
let participant;
|
|
95
|
+
let currentTurnCount;
|
|
96
|
+
try {
|
|
97
|
+
const convRow = db.prepare(`SELECT status, kind, turn_limit FROM conversations WHERE id = ?`).get(conversationId);
|
|
98
|
+
if (!convRow) {
|
|
99
|
+
throw new Error(`Conversation "${conversationId}" not found.`);
|
|
100
|
+
}
|
|
101
|
+
conversation = convRow;
|
|
102
|
+
if (conversation.status !== 'active') {
|
|
103
|
+
throw new Error(`Conversation "${conversationId}" is not active (status: ${conversation.status}).`);
|
|
104
|
+
}
|
|
105
|
+
const partRow = db.prepare(`SELECT kind, name, anima_id, claude_session_id
|
|
106
|
+
FROM conversation_participants WHERE id = ? AND conversation_id = ?`).get(participantId, conversationId);
|
|
107
|
+
if (!partRow) {
|
|
108
|
+
throw new Error(`Participant "${participantId}" not found in conversation "${conversationId}".`);
|
|
109
|
+
}
|
|
110
|
+
participant = partRow;
|
|
111
|
+
// Count existing turns for this conversation
|
|
112
|
+
const countRow = db.prepare(`SELECT COUNT(*) as count FROM sessions WHERE conversation_id = ?`).get(conversationId);
|
|
113
|
+
currentTurnCount = countRow.count;
|
|
114
|
+
// Check turn limit
|
|
115
|
+
if (conversation.turn_limit !== null && currentTurnCount >= conversation.turn_limit) {
|
|
116
|
+
// Auto-conclude if at limit
|
|
117
|
+
db.prepare(`UPDATE conversations SET status = 'concluded', ended_at = ? WHERE id = ?`).run(new Date().toISOString(), conversationId);
|
|
118
|
+
throw new Error(`Conversation "${conversationId}" has reached its turn limit (${conversation.turn_limit}).`);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
finally {
|
|
122
|
+
db.close();
|
|
123
|
+
}
|
|
124
|
+
// 2. Human participants don't launch sessions
|
|
125
|
+
if (participant.kind === 'human') {
|
|
126
|
+
// Nothing to do — the message will be passed as the prompt
|
|
127
|
+
// to the next anima turn by the caller.
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
// 3. Manifest the anima
|
|
131
|
+
const animaManifest = await manifest(home, participant.name);
|
|
132
|
+
// 4. Determine turn number (1-indexed)
|
|
133
|
+
const turnNumber = currentTurnCount + 1;
|
|
134
|
+
// 5. Launch session through the funnel
|
|
135
|
+
const workspace = { kind: 'guildhall' };
|
|
136
|
+
// Collect chunks from the streaming provider
|
|
137
|
+
const collectedChunks = [];
|
|
138
|
+
const sessionResult = await launchSession({
|
|
139
|
+
home,
|
|
140
|
+
manifest: animaManifest,
|
|
141
|
+
prompt: message,
|
|
142
|
+
interactive: false,
|
|
143
|
+
workspace,
|
|
144
|
+
trigger: conversation.kind,
|
|
145
|
+
name: `${conversation.kind}-${participant.name}-turn-${turnNumber}`,
|
|
146
|
+
conversationId,
|
|
147
|
+
turnNumber,
|
|
148
|
+
claudeSessionId: participant.claude_session_id ?? undefined,
|
|
149
|
+
onChunk: (chunk) => {
|
|
150
|
+
collectedChunks.push(chunk);
|
|
151
|
+
},
|
|
152
|
+
});
|
|
153
|
+
// Yield all collected chunks
|
|
154
|
+
for (const chunk of collectedChunks) {
|
|
155
|
+
yield chunk;
|
|
156
|
+
}
|
|
157
|
+
// 6. Update participant's claude_session_id for --resume on next turn
|
|
158
|
+
if (sessionResult.providerSessionId) {
|
|
159
|
+
const db2 = new Database(booksPath(home));
|
|
160
|
+
db2.pragma('foreign_keys = ON');
|
|
161
|
+
try {
|
|
162
|
+
db2.prepare(`UPDATE conversation_participants SET claude_session_id = ? WHERE id = ?`).run(sessionResult.providerSessionId, participantId);
|
|
163
|
+
}
|
|
164
|
+
finally {
|
|
165
|
+
db2.close();
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
// 7. Check if we've hit the turn limit after this turn
|
|
169
|
+
if (conversation.turn_limit !== null && turnNumber >= conversation.turn_limit) {
|
|
170
|
+
const db3 = new Database(booksPath(home));
|
|
171
|
+
db3.pragma('foreign_keys = ON');
|
|
172
|
+
try {
|
|
173
|
+
db3.prepare(`UPDATE conversations SET status = 'concluded', ended_at = ? WHERE id = ?`).run(new Date().toISOString(), conversationId);
|
|
174
|
+
}
|
|
175
|
+
finally {
|
|
176
|
+
db3.close();
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
// 8. Yield turn_complete
|
|
180
|
+
yield {
|
|
181
|
+
type: 'turn_complete',
|
|
182
|
+
turnNumber,
|
|
183
|
+
costUsd: sessionResult.costUsd,
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* End a conversation explicitly.
|
|
188
|
+
*
|
|
189
|
+
* Sets status to 'concluded' (normal end) or 'abandoned' (e.g.
|
|
190
|
+
* browser disconnect, timeout).
|
|
191
|
+
*/
|
|
192
|
+
export function endConversation(home, conversationId, reason = 'concluded') {
|
|
193
|
+
const db = new Database(booksPath(home));
|
|
194
|
+
db.pragma('foreign_keys = ON');
|
|
195
|
+
try {
|
|
196
|
+
const result = db.prepare(`UPDATE conversations SET status = ?, ended_at = ? WHERE id = ? AND status = 'active'`).run(reason, new Date().toISOString(), conversationId);
|
|
197
|
+
if (result.changes === 0) {
|
|
198
|
+
// Either not found or already ended — check which
|
|
199
|
+
const row = db.prepare(`SELECT status FROM conversations WHERE id = ?`).get(conversationId);
|
|
200
|
+
if (!row) {
|
|
201
|
+
throw new Error(`Conversation "${conversationId}" not found.`);
|
|
202
|
+
}
|
|
203
|
+
// Already ended — no-op (idempotent)
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
finally {
|
|
207
|
+
db.close();
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Get the next participant in a convene rotation.
|
|
212
|
+
*
|
|
213
|
+
* Reads turn history and returns whose turn it is (round-robin by
|
|
214
|
+
* participant creation order). Returns null if conversation is not
|
|
215
|
+
* active or turn limit reached.
|
|
216
|
+
*/
|
|
217
|
+
export function nextParticipant(home, conversationId) {
|
|
218
|
+
const db = new Database(booksPath(home));
|
|
219
|
+
db.pragma('foreign_keys = ON');
|
|
220
|
+
try {
|
|
221
|
+
// Check conversation is active
|
|
222
|
+
const conv = db.prepare(`SELECT status, turn_limit FROM conversations WHERE id = ?`).get(conversationId);
|
|
223
|
+
if (!conv || conv.status !== 'active')
|
|
224
|
+
return null;
|
|
225
|
+
// Count existing turns
|
|
226
|
+
const countRow = db.prepare(`SELECT COUNT(*) as count FROM sessions WHERE conversation_id = ?`).get(conversationId);
|
|
227
|
+
if (conv.turn_limit !== null && countRow.count >= conv.turn_limit)
|
|
228
|
+
return null;
|
|
229
|
+
// Get participants in creation order (by rowid)
|
|
230
|
+
const participants = db.prepare(`SELECT id, name FROM conversation_participants
|
|
231
|
+
WHERE conversation_id = ? AND kind = 'anima'
|
|
232
|
+
ORDER BY rowid ASC`).all(conversationId);
|
|
233
|
+
if (participants.length === 0)
|
|
234
|
+
return null;
|
|
235
|
+
// Round-robin: turn count mod participant count
|
|
236
|
+
const nextIdx = countRow.count % participants.length;
|
|
237
|
+
const next = participants[nextIdx];
|
|
238
|
+
return { participantId: next.id, name: next.name };
|
|
239
|
+
}
|
|
240
|
+
finally {
|
|
241
|
+
db.close();
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
// ── Read Functions ─────────────────────────────────────────────────────
|
|
245
|
+
/**
|
|
246
|
+
* List conversations with optional filters.
|
|
247
|
+
*/
|
|
248
|
+
export function listConversations(home, opts = {}) {
|
|
249
|
+
const db = new Database(booksPath(home));
|
|
250
|
+
db.pragma('foreign_keys = ON');
|
|
251
|
+
try {
|
|
252
|
+
let query = `SELECT c.id, c.status, c.kind, c.topic, c.turn_limit,
|
|
253
|
+
c.created_at, c.ended_at
|
|
254
|
+
FROM conversations c`;
|
|
255
|
+
const conditions = [];
|
|
256
|
+
const params = [];
|
|
257
|
+
if (opts.status) {
|
|
258
|
+
conditions.push('c.status = ?');
|
|
259
|
+
params.push(opts.status);
|
|
260
|
+
}
|
|
261
|
+
if (opts.kind) {
|
|
262
|
+
conditions.push('c.kind = ?');
|
|
263
|
+
params.push(opts.kind);
|
|
264
|
+
}
|
|
265
|
+
if (conditions.length > 0) {
|
|
266
|
+
query += ` WHERE ${conditions.join(' AND ')}`;
|
|
267
|
+
}
|
|
268
|
+
query += ` ORDER BY c.created_at DESC`;
|
|
269
|
+
if (opts.limit) {
|
|
270
|
+
query += ` LIMIT ?`;
|
|
271
|
+
params.push(opts.limit);
|
|
272
|
+
}
|
|
273
|
+
const rows = db.prepare(query).all(...params);
|
|
274
|
+
return rows.map(row => {
|
|
275
|
+
// Get participants
|
|
276
|
+
const parts = db.prepare(`SELECT id, name, kind FROM conversation_participants WHERE conversation_id = ?`).all(row.id);
|
|
277
|
+
// Get turn count and total cost from sessions
|
|
278
|
+
const metrics = db.prepare(`SELECT COUNT(*) as turn_count, COALESCE(SUM(cost_usd), 0) as total_cost
|
|
279
|
+
FROM sessions WHERE conversation_id = ?`).get(row.id);
|
|
280
|
+
return {
|
|
281
|
+
id: row.id,
|
|
282
|
+
status: row.status,
|
|
283
|
+
kind: row.kind,
|
|
284
|
+
topic: row.topic,
|
|
285
|
+
turnLimit: row.turn_limit,
|
|
286
|
+
createdAt: row.created_at,
|
|
287
|
+
endedAt: row.ended_at,
|
|
288
|
+
participants: parts,
|
|
289
|
+
turnCount: metrics.turn_count,
|
|
290
|
+
totalCostUsd: metrics.total_cost,
|
|
291
|
+
};
|
|
292
|
+
});
|
|
293
|
+
}
|
|
294
|
+
finally {
|
|
295
|
+
db.close();
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Show full detail for a conversation, including all turns.
|
|
300
|
+
*
|
|
301
|
+
* Turns are session rows ordered by turn_number. Each turn includes
|
|
302
|
+
* the prompt (which, in a consult, is the human's message — this is
|
|
303
|
+
* how human contributions appear in the dialogue reconstruction).
|
|
304
|
+
*/
|
|
305
|
+
export function showConversation(home, conversationId) {
|
|
306
|
+
const db = new Database(booksPath(home));
|
|
307
|
+
db.pragma('foreign_keys = ON');
|
|
308
|
+
try {
|
|
309
|
+
const row = db.prepare(`SELECT id, status, kind, topic, turn_limit, created_at, ended_at
|
|
310
|
+
FROM conversations WHERE id = ?`).get(conversationId);
|
|
311
|
+
if (!row)
|
|
312
|
+
return null;
|
|
313
|
+
// Get participants
|
|
314
|
+
const parts = db.prepare(`SELECT id, name, kind FROM conversation_participants WHERE conversation_id = ?`).all(row.id);
|
|
315
|
+
// Get turns (sessions for this conversation)
|
|
316
|
+
const turns = db.prepare(`SELECT s.id, s.turn_number, a.name as participant,
|
|
317
|
+
s.started_at, s.ended_at, s.exit_code, s.cost_usd, s.duration_ms
|
|
318
|
+
FROM sessions s
|
|
319
|
+
JOIN animas a ON a.id = s.anima_id
|
|
320
|
+
WHERE s.conversation_id = ?
|
|
321
|
+
ORDER BY s.turn_number ASC`).all(conversationId);
|
|
322
|
+
// Get prompts from session records for dialogue reconstruction
|
|
323
|
+
const turnDetails = turns.map(t => {
|
|
324
|
+
// Read the prompt from the session record JSON if available
|
|
325
|
+
let prompt = null;
|
|
326
|
+
const recordRow = db.prepare(`SELECT record_path FROM sessions WHERE id = ?`).get(t.id);
|
|
327
|
+
if (recordRow?.record_path) {
|
|
328
|
+
try {
|
|
329
|
+
const fs = require('node:fs');
|
|
330
|
+
const path = require('node:path');
|
|
331
|
+
const fullPath = path.join(home, recordRow.record_path);
|
|
332
|
+
if (fs.existsSync(fullPath)) {
|
|
333
|
+
const record = JSON.parse(fs.readFileSync(fullPath, 'utf-8'));
|
|
334
|
+
prompt = record.userPrompt ?? null;
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
catch {
|
|
338
|
+
// If we can't read the record, skip the prompt
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
return {
|
|
342
|
+
sessionId: t.id,
|
|
343
|
+
turnNumber: t.turn_number,
|
|
344
|
+
participant: t.participant,
|
|
345
|
+
prompt,
|
|
346
|
+
exitCode: t.exit_code,
|
|
347
|
+
costUsd: t.cost_usd,
|
|
348
|
+
durationMs: t.duration_ms,
|
|
349
|
+
startedAt: t.started_at,
|
|
350
|
+
endedAt: t.ended_at,
|
|
351
|
+
};
|
|
352
|
+
});
|
|
353
|
+
// Metrics
|
|
354
|
+
const metrics = db.prepare(`SELECT COUNT(*) as turn_count, COALESCE(SUM(cost_usd), 0) as total_cost
|
|
355
|
+
FROM sessions WHERE conversation_id = ?`).get(conversationId);
|
|
356
|
+
return {
|
|
357
|
+
id: row.id,
|
|
358
|
+
status: row.status,
|
|
359
|
+
kind: row.kind,
|
|
360
|
+
topic: row.topic,
|
|
361
|
+
turnLimit: row.turn_limit,
|
|
362
|
+
createdAt: row.created_at,
|
|
363
|
+
endedAt: row.ended_at,
|
|
364
|
+
participants: parts,
|
|
365
|
+
turnCount: metrics.turn_count,
|
|
366
|
+
totalCostUsd: metrics.total_cost,
|
|
367
|
+
turns: turnDetails,
|
|
368
|
+
};
|
|
369
|
+
}
|
|
370
|
+
finally {
|
|
371
|
+
db.close();
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
// ── Convene Helpers ────────────────────────────────────────────────────
|
|
375
|
+
/**
|
|
376
|
+
* Format a message for the next participant in a convene.
|
|
377
|
+
*
|
|
378
|
+
* Each anima has their own claude session via --resume. Their session
|
|
379
|
+
* already contains their own prior messages and responses. We only
|
|
380
|
+
* send them what happened since their last turn — the other
|
|
381
|
+
* participants' contributions.
|
|
382
|
+
*
|
|
383
|
+
* On the first turn (no prior turns), returns the conversation topic.
|
|
384
|
+
*/
|
|
385
|
+
export function formatConveneMessage(home, conversationId, participantId) {
|
|
386
|
+
const db = new Database(booksPath(home));
|
|
387
|
+
db.pragma('foreign_keys = ON');
|
|
388
|
+
try {
|
|
389
|
+
// Get the conversation topic
|
|
390
|
+
const conv = db.prepare(`SELECT topic FROM conversations WHERE id = ?`).get(conversationId);
|
|
391
|
+
// Find this participant's last turn number
|
|
392
|
+
const participant = db.prepare(`SELECT name, anima_id FROM conversation_participants WHERE id = ?`).get(participantId);
|
|
393
|
+
if (!participant?.anima_id) {
|
|
394
|
+
return conv?.topic ?? '';
|
|
395
|
+
}
|
|
396
|
+
const lastTurn = db.prepare(`SELECT MAX(turn_number) as last_turn FROM sessions
|
|
397
|
+
WHERE conversation_id = ? AND anima_id = ?`).get(conversationId, participant.anima_id);
|
|
398
|
+
if (lastTurn.last_turn === null) {
|
|
399
|
+
// First turn for this participant — use the topic
|
|
400
|
+
return conv?.topic ?? '';
|
|
401
|
+
}
|
|
402
|
+
// Get all turns since this participant's last turn
|
|
403
|
+
const newTurns = db.prepare(`SELECT s.turn_number, a.name as participant_name, s.record_path
|
|
404
|
+
FROM sessions s
|
|
405
|
+
JOIN animas a ON a.id = s.anima_id
|
|
406
|
+
WHERE s.conversation_id = ? AND s.turn_number > ?
|
|
407
|
+
ORDER BY s.turn_number ASC`).all(conversationId, lastTurn.last_turn);
|
|
408
|
+
if (newTurns.length === 0) {
|
|
409
|
+
return conv?.topic ?? '';
|
|
410
|
+
}
|
|
411
|
+
// Build the message from session records
|
|
412
|
+
const fs = require('node:fs');
|
|
413
|
+
const path = require('node:path');
|
|
414
|
+
const lines = [];
|
|
415
|
+
for (const turn of newTurns) {
|
|
416
|
+
let responseText = '[response not available]';
|
|
417
|
+
if (turn.record_path) {
|
|
418
|
+
try {
|
|
419
|
+
const fullPath = path.join(home, turn.record_path);
|
|
420
|
+
if (fs.existsSync(fullPath)) {
|
|
421
|
+
const record = JSON.parse(fs.readFileSync(fullPath, 'utf-8'));
|
|
422
|
+
// Extract text from transcript
|
|
423
|
+
const transcript = record.transcript;
|
|
424
|
+
if (transcript) {
|
|
425
|
+
const textParts = [];
|
|
426
|
+
for (const msg of transcript) {
|
|
427
|
+
if (msg.type === 'assistant') {
|
|
428
|
+
const message = msg.message;
|
|
429
|
+
const content = message?.content;
|
|
430
|
+
if (content) {
|
|
431
|
+
for (const block of content) {
|
|
432
|
+
if (block.type === 'text' && typeof block.text === 'string') {
|
|
433
|
+
textParts.push(block.text);
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
if (textParts.length > 0) {
|
|
440
|
+
responseText = textParts.join('');
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
catch {
|
|
446
|
+
// If we can't read the record, use placeholder
|
|
447
|
+
}
|
|
448
|
+
}
|
|
449
|
+
lines.push(`[${turn.participant_name}]: ${responseText}`);
|
|
450
|
+
}
|
|
451
|
+
return lines.join('\n\n');
|
|
452
|
+
}
|
|
453
|
+
finally {
|
|
454
|
+
db.close();
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
//# sourceMappingURL=conversation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversation.js","sourceRoot":"","sources":["../src/conversation.ts"],"names":[],"mappings":"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"}
|
package/dist/id.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"id.d.ts","sourceRoot":"","sources":["../src/id.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"id.d.ts","sourceRoot":"","sources":["../src/id.ts"],"names":[],"mappings":"AAqBA;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEjD"}
|
package/dist/id.js
CHANGED
|
@@ -6,14 +6,16 @@
|
|
|
6
6
|
* more than sufficient for a local single-guild system.
|
|
7
7
|
*
|
|
8
8
|
* Prefixes by entity type:
|
|
9
|
-
* a-
|
|
10
|
-
* c-
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
9
|
+
* a- anima
|
|
10
|
+
* c- commission
|
|
11
|
+
* conv- conversation
|
|
12
|
+
* cpart- conversation participant
|
|
13
|
+
* evt- event
|
|
14
|
+
* ses- session
|
|
15
|
+
* w- work
|
|
16
|
+
* p- piece
|
|
17
|
+
* j- job
|
|
18
|
+
* s- stroke
|
|
17
19
|
*/
|
|
18
20
|
import { randomBytes } from 'node:crypto';
|
|
19
21
|
/**
|
package/dist/id.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"id.js","sourceRoot":"","sources":["../src/id.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"id.js","sourceRoot":"","sources":["../src/id.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,MAAc;IACvC,OAAO,GAAG,MAAM,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;AACvD,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -17,7 +17,8 @@ export { type Precondition, type CommandPrecondition, type CommandOutputPrecondi
|
|
|
17
17
|
export { type WorktreeConfig, type WorktreeResult, setupWorktree, teardownWorktree, listWorktrees, } from './worktree.ts';
|
|
18
18
|
export { type MigrationFile, type MigrationProvenance, type MigrateResult, discoverMigrations, applyMigrations, } from './migrate.ts';
|
|
19
19
|
export { type AnimaRecord, type ResolvedTool, type UnavailableTool, type ManifestResult, readAnima, resolveTools, readCodex, readRoleInstructions, assembleSystemPrompt, manifest, } from './manifest.ts';
|
|
20
|
-
export { type SessionProvider, type SessionProviderLaunchOptions, type SessionProviderResult, type SessionLaunchOptions, type SessionResult, type WorkspaceContext, type ResolvedWorkspace, type SessionRecord, type SessionSummary, type SessionDetail, type ListSessionsOptions, registerSessionProvider, getSessionProvider, resolveWorkspace, createTempWorktree, removeTempWorktree, launchSession, listSessions, showSession, } from './session.ts';
|
|
20
|
+
export { type SessionProvider, type SessionProviderLaunchOptions, type SessionProviderResult, type SessionLaunchOptions, type SessionResult, type SessionChunk, type WorkspaceContext, type ResolvedWorkspace, type SessionRecord, type SessionSummary, type SessionDetail, type ListSessionsOptions, registerSessionProvider, getSessionProvider, resolveWorkspace, createTempWorktree, removeTempWorktree, launchSession, listSessions, showSession, } from './session.ts';
|
|
21
|
+
export { type ConversationChunk, type CreateConversationOptions, type CreateConversationResult, type ConversationSummary, type ConversationDetail, type ListConversationsOptions, createConversation, takeTurn, endConversation, nextParticipant, listConversations, showConversation, formatConveneMessage, } from './conversation.ts';
|
|
21
22
|
export { type UpgradePlan, type UpgradeResult, type ApplyUpgradeOptions, type MigrationPlanEntry, type ContentUpdateEntry, type ToolPlanEntry, type StaleAnimaEntry, planUpgrade, applyUpgrade, } from './upgrade.ts';
|
|
22
23
|
export { generateId } from './id.ts';
|
|
23
24
|
export { type AnimaSummary, type AnimaDetail, type ListAnimasOptions, type UpdateAnimaOptions, type AnimaStaleness, type StalenessInfo, listAnimas, showAnima, updateAnima, removeAnima, checkAnimaStaleness, checkAllAnimaStaleness, } from './anima.ts';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -22,6 +22,7 @@ export { setupWorktree, teardownWorktree, listWorktrees, } from "./worktree.js";
|
|
|
22
22
|
export { discoverMigrations, applyMigrations, } from "./migrate.js";
|
|
23
23
|
export { readAnima, resolveTools, readCodex, readRoleInstructions, assembleSystemPrompt, manifest, } from "./manifest.js";
|
|
24
24
|
export { registerSessionProvider, getSessionProvider, resolveWorkspace, createTempWorktree, removeTempWorktree, launchSession, listSessions, showSession, } from "./session.js";
|
|
25
|
+
export { createConversation, takeTurn, endConversation, nextParticipant, listConversations, showConversation, formatConveneMessage, } from "./conversation.js";
|
|
25
26
|
export { planUpgrade, applyUpgrade, } from "./upgrade.js";
|
|
26
27
|
export { generateId } from "./id.js";
|
|
27
28
|
export { listAnimas, showAnima, updateAnima, removeAnima, checkAnimaStaleness, checkAllAnimaStaleness, } from "./anima.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,sEAAsE;AAEtE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChD,MAAM,IAAI,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC;AACzC,MAAM,CAAC,MAAM,OAAO,GAAW,IAAI,CAAC,OAAO,CAAC;AAE5C,OAAO,EAGL,IAAI,EACJ,gBAAgB,EAChB,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,WAAW,CAAC;AAEnB,OAAO,EAIL,MAAM,EACN,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,SAAS,EACT,kBAAkB,EAClB,cAAc,EAId,UAAU,EACV,cAAc,GACf,MAAM,aAAa,CAAC;AAErB,OAAO,EAQL,SAAS,EACT,QAAQ,EACR,UAAU,EACV,SAAS,EACT,WAAW,GACZ,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAUL,wBAAwB,EACxB,eAAe,EACf,eAAe,EACf,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,aAAa,EACb,QAAQ,EACR,SAAS,EACT,UAAU,EACV,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,YAAY,GACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAIL,cAAc,EACd,WAAW,GACZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAGL,UAAU,GACX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAML,UAAU,EACV,sBAAsB,EACtB,cAAc,EACd,cAAc,EACd,eAAe,EACf,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAGL,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAOL,kBAAkB,EAClB,aAAa,EACb,WAAW,GACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAEL,SAAS,GACV,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAOL,WAAW,EACX,cAAc,EACd,aAAa,EACb,YAAY,EACZ,cAAc,EACd,WAAW,EACX,kBAAkB,GACnB,MAAM,eAAe,CAAC;AACvB,OAAO,EAOL,iBAAiB,EACjB,QAAQ,EACR,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAGL,aAAa,EACb,gBAAgB,EAChB,aAAa,GACd,MAAM,eAAe,CAAC;AACvB,OAAO,EAIL,kBAAkB,EAClB,eAAe,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAKL,SAAS,EACT,YAAY,EACZ,SAAS,EACT,oBAAoB,EACpB,oBAAoB,EACpB,QAAQ,GACT,MAAM,eAAe,CAAC;AACvB,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/init-guild.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-guild.d.ts","sourceRoot":"","sources":["../src/init-guild.ts"],"names":[],"mappings":"AAUA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"init-guild.d.ts","sourceRoot":"","sources":["../src/init-guild.ts"],"names":[],"mappings":"AAUA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CA4NzE"}
|