@codemieai/code 0.0.41 → 0.0.43
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 -3
- package/dist/agents/codemie-code/agent.d.ts.map +1 -1
- package/dist/agents/codemie-code/agent.js +5 -0
- package/dist/agents/codemie-code/agent.js.map +1 -1
- package/dist/agents/core/AgentCLI.d.ts.map +1 -1
- package/dist/agents/core/AgentCLI.js +43 -16
- package/dist/agents/core/AgentCLI.js.map +1 -1
- package/dist/agents/core/BaseAgentAdapter.d.ts +1 -0
- package/dist/agents/core/BaseAgentAdapter.d.ts.map +1 -1
- package/dist/agents/core/BaseAgentAdapter.js +49 -15
- package/dist/agents/core/BaseAgentAdapter.js.map +1 -1
- package/dist/agents/core/plugin-injector.d.ts +18 -0
- package/dist/agents/core/plugin-injector.d.ts.map +1 -0
- package/dist/agents/core/plugin-injector.js +50 -0
- package/dist/agents/core/plugin-injector.js.map +1 -0
- package/dist/agents/core/session/ensure-session.d.ts +10 -0
- package/dist/agents/core/session/ensure-session.d.ts.map +1 -0
- package/dist/agents/core/session/ensure-session.js +58 -0
- package/dist/agents/core/session/ensure-session.js.map +1 -0
- package/dist/agents/core/temp-config.d.ts +10 -0
- package/dist/agents/core/temp-config.d.ts.map +1 -0
- package/dist/agents/core/temp-config.js +45 -0
- package/dist/agents/core/temp-config.js.map +1 -0
- package/dist/agents/core/types.d.ts +8 -0
- package/dist/agents/core/types.d.ts.map +1 -1
- package/dist/agents/plugins/claude/claude-acp.plugin.d.ts +7 -0
- package/dist/agents/plugins/claude/claude-acp.plugin.d.ts.map +1 -1
- package/dist/agents/plugins/claude/claude-acp.plugin.js +10 -0
- package/dist/agents/plugins/claude/claude-acp.plugin.js.map +1 -1
- package/dist/agents/plugins/claude/claude.plugin-installer.d.ts +11 -0
- package/dist/agents/plugins/claude/claude.plugin-installer.d.ts.map +1 -1
- package/dist/agents/plugins/claude/claude.plugin-installer.js +32 -0
- package/dist/agents/plugins/claude/claude.plugin-installer.js.map +1 -1
- package/dist/agents/plugins/claude/claude.plugin.js +4 -4
- package/dist/agents/plugins/claude/claude.plugin.js.map +1 -1
- package/dist/agents/plugins/claude/plugin/.claude-plugin/plugin.json +1 -1
- package/dist/agents/plugins/claude/plugin/hooks/hooks.json +10 -0
- package/dist/agents/plugins/claude/plugin/hooks/hooks.windows.json +98 -0
- package/dist/agents/plugins/claude/plugin/scripts/bash/rtk-auto-wrapper.sh +81 -0
- package/dist/agents/plugins/claude/plugin/scripts/bash/rtk-baseline.sh +39 -0
- package/dist/agents/plugins/claude/sounds-installer.d.ts.map +1 -1
- package/dist/agents/plugins/claude/sounds-installer.js +0 -4
- package/dist/agents/plugins/claude/sounds-installer.js.map +1 -1
- package/dist/agents/plugins/codemie-code-hooks/index.d.ts +3 -0
- package/dist/agents/plugins/codemie-code-hooks/index.d.ts.map +1 -0
- package/dist/agents/plugins/codemie-code-hooks/index.js +3 -0
- package/dist/agents/plugins/codemie-code-hooks/index.js.map +1 -0
- package/dist/agents/plugins/codemie-code-hooks/inject-hooks.d.ts +3 -0
- package/dist/agents/plugins/codemie-code-hooks/inject-hooks.d.ts.map +1 -0
- package/dist/agents/plugins/codemie-code-hooks/inject-hooks.js +6 -0
- package/dist/agents/plugins/codemie-code-hooks/inject-hooks.js.map +1 -0
- package/dist/agents/plugins/codemie-code-hooks/shell-hooks-source.d.ts +15 -0
- package/dist/agents/plugins/codemie-code-hooks/shell-hooks-source.d.ts.map +1 -0
- package/dist/agents/plugins/codemie-code-hooks/shell-hooks-source.js +522 -0
- package/dist/agents/plugins/codemie-code-hooks/shell-hooks-source.js.map +1 -0
- package/dist/agents/plugins/codemie-code.plugin.d.ts +5 -2
- package/dist/agents/plugins/codemie-code.plugin.d.ts.map +1 -1
- package/dist/agents/plugins/codemie-code.plugin.js +235 -148
- package/dist/agents/plugins/codemie-code.plugin.js.map +1 -1
- package/dist/agents/plugins/gemini/gemini.plugin.js +1 -1
- package/dist/agents/plugins/gemini/gemini.plugin.js.map +1 -1
- package/dist/agents/plugins/opencode/opencode-message-types.d.ts +2 -0
- package/dist/agents/plugins/opencode/opencode-message-types.d.ts.map +1 -1
- package/dist/agents/plugins/opencode/opencode-message-types.js.map +1 -1
- package/dist/agents/plugins/opencode/opencode-model-configs.d.ts.map +1 -1
- package/dist/agents/plugins/opencode/opencode-model-configs.js +89 -0
- package/dist/agents/plugins/opencode/opencode-model-configs.js.map +1 -1
- package/dist/agents/plugins/opencode/opencode.paths.d.ts +16 -1
- package/dist/agents/plugins/opencode/opencode.paths.d.ts.map +1 -1
- package/dist/agents/plugins/opencode/opencode.paths.js +43 -5
- package/dist/agents/plugins/opencode/opencode.paths.js.map +1 -1
- package/dist/agents/plugins/opencode/opencode.plugin.d.ts.map +1 -1
- package/dist/agents/plugins/opencode/opencode.plugin.js +35 -120
- package/dist/agents/plugins/opencode/opencode.plugin.js.map +1 -1
- package/dist/agents/plugins/opencode/opencode.session.d.ts +5 -0
- package/dist/agents/plugins/opencode/opencode.session.d.ts.map +1 -1
- package/dist/agents/plugins/opencode/opencode.session.js +99 -2
- package/dist/agents/plugins/opencode/opencode.session.js.map +1 -1
- package/dist/agents/plugins/opencode/opencode.sqlite-reader.d.ts +59 -0
- package/dist/agents/plugins/opencode/opencode.sqlite-reader.d.ts.map +1 -0
- package/dist/agents/plugins/opencode/opencode.sqlite-reader.js +200 -0
- package/dist/agents/plugins/opencode/opencode.sqlite-reader.js.map +1 -0
- package/dist/agents/plugins/opencode/session/processors/opencode.metrics-processor.d.ts +3 -0
- package/dist/agents/plugins/opencode/session/processors/opencode.metrics-processor.d.ts.map +1 -1
- package/dist/agents/plugins/opencode/session/processors/opencode.metrics-processor.js +35 -13
- package/dist/agents/plugins/opencode/session/processors/opencode.metrics-processor.js.map +1 -1
- package/dist/agents/plugins/reasoning-sanitizer/index.d.ts +3 -0
- package/dist/agents/plugins/reasoning-sanitizer/index.d.ts.map +1 -0
- package/dist/agents/plugins/reasoning-sanitizer/index.js +3 -0
- package/dist/agents/plugins/reasoning-sanitizer/index.js.map +1 -0
- package/dist/agents/plugins/reasoning-sanitizer/inject-sanitizer.d.ts +3 -0
- package/dist/agents/plugins/reasoning-sanitizer/inject-sanitizer.d.ts.map +1 -0
- package/dist/agents/plugins/reasoning-sanitizer/inject-sanitizer.js +6 -0
- package/dist/agents/plugins/reasoning-sanitizer/inject-sanitizer.js.map +1 -0
- package/dist/agents/plugins/reasoning-sanitizer/reasoning-sanitizer-source.d.ts +17 -0
- package/dist/agents/plugins/reasoning-sanitizer/reasoning-sanitizer-source.d.ts.map +1 -0
- package/dist/agents/plugins/reasoning-sanitizer/reasoning-sanitizer-source.js +40 -0
- package/dist/agents/plugins/reasoning-sanitizer/reasoning-sanitizer-source.js.map +1 -0
- package/dist/cli/commands/analytics/data-loader.js +1 -1
- package/dist/cli/commands/analytics/data-loader.js.map +1 -1
- package/dist/cli/commands/doctor/checks/JWTAuthCheck.d.ts +9 -0
- package/dist/cli/commands/doctor/checks/JWTAuthCheck.d.ts.map +1 -0
- package/dist/cli/commands/doctor/checks/JWTAuthCheck.js +113 -0
- package/dist/cli/commands/doctor/checks/JWTAuthCheck.js.map +1 -0
- package/dist/cli/commands/doctor/checks/index.d.ts +1 -0
- package/dist/cli/commands/doctor/checks/index.d.ts.map +1 -1
- package/dist/cli/commands/doctor/checks/index.js +1 -0
- package/dist/cli/commands/doctor/checks/index.js.map +1 -1
- package/dist/cli/commands/doctor/index.d.ts.map +1 -1
- package/dist/cli/commands/doctor/index.js +93 -88
- package/dist/cli/commands/doctor/index.js.map +1 -1
- package/dist/cli/commands/hook.js +5 -5
- package/dist/cli/commands/hook.js.map +1 -1
- package/dist/cli/commands/test-metrics.d.ts +17 -0
- package/dist/cli/commands/test-metrics.d.ts.map +1 -0
- package/dist/cli/commands/test-metrics.js +198 -0
- package/dist/cli/commands/test-metrics.js.map +1 -0
- package/dist/cli/index.js +2 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/env/types.d.ts +12 -2
- package/dist/env/types.d.ts.map +1 -1
- package/dist/env/types.js.map +1 -1
- package/dist/providers/core/types.d.ts +22 -1
- package/dist/providers/core/types.d.ts.map +1 -1
- package/dist/providers/core/types.js +12 -1
- package/dist/providers/core/types.js.map +1 -1
- package/dist/providers/index.d.ts +2 -0
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +2 -0
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/integration/setup-ui.d.ts.map +1 -1
- package/dist/providers/integration/setup-ui.js +3 -1
- package/dist/providers/integration/setup-ui.js.map +1 -1
- package/dist/providers/plugins/bedrock/bedrock.utils.d.ts +12 -0
- package/dist/providers/plugins/bedrock/bedrock.utils.d.ts.map +1 -0
- package/dist/providers/plugins/bedrock/bedrock.utils.js +19 -0
- package/dist/providers/plugins/bedrock/bedrock.utils.js.map +1 -0
- package/dist/providers/plugins/jwt/index.d.ts +9 -0
- package/dist/providers/plugins/jwt/index.d.ts.map +1 -0
- package/dist/providers/plugins/jwt/index.js +13 -0
- package/dist/providers/plugins/jwt/index.js.map +1 -0
- package/dist/providers/plugins/jwt/jwt.setup-steps.d.ts +9 -0
- package/dist/providers/plugins/jwt/jwt.setup-steps.d.ts.map +1 -0
- package/dist/providers/plugins/jwt/jwt.setup-steps.js +153 -0
- package/dist/providers/plugins/jwt/jwt.setup-steps.js.map +1 -0
- package/dist/providers/plugins/jwt/jwt.template.d.ts +12 -0
- package/dist/providers/plugins/jwt/jwt.template.d.ts.map +1 -0
- package/dist/providers/plugins/jwt/jwt.template.js +55 -0
- package/dist/providers/plugins/jwt/jwt.template.js.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/index.d.ts +3 -1
- package/dist/providers/plugins/sso/proxy/plugins/index.d.ts.map +1 -1
- package/dist/providers/plugins/sso/proxy/plugins/index.js +5 -1
- package/dist/providers/plugins/sso/proxy/plugins/index.js.map +1 -1
- package/dist/providers/plugins/sso/proxy/plugins/jwt-auth.plugin.d.ts +16 -0
- package/dist/providers/plugins/sso/proxy/plugins/jwt-auth.plugin.d.ts.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/jwt-auth.plugin.js +53 -0
- package/dist/providers/plugins/sso/proxy/plugins/jwt-auth.plugin.js.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/request-sanitizer.plugin.d.ts +25 -0
- package/dist/providers/plugins/sso/proxy/plugins/request-sanitizer.plugin.d.ts.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/request-sanitizer.plugin.js +74 -0
- package/dist/providers/plugins/sso/proxy/plugins/request-sanitizer.plugin.js.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/sso-auth.plugin.d.ts.map +1 -1
- package/dist/providers/plugins/sso/proxy/plugins/sso-auth.plugin.js +13 -2
- package/dist/providers/plugins/sso/proxy/plugins/sso-auth.plugin.js.map +1 -1
- package/dist/providers/plugins/sso/proxy/plugins/sso.session-sync.plugin.d.ts.map +1 -1
- package/dist/providers/plugins/sso/proxy/plugins/sso.session-sync.plugin.js +6 -3
- package/dist/providers/plugins/sso/proxy/plugins/sso.session-sync.plugin.js.map +1 -1
- package/dist/providers/plugins/sso/proxy/plugins/types.d.ts +2 -2
- package/dist/providers/plugins/sso/proxy/plugins/types.d.ts.map +1 -1
- package/dist/providers/plugins/sso/proxy/proxy-types.d.ts +2 -0
- package/dist/providers/plugins/sso/proxy/proxy-types.d.ts.map +1 -1
- package/dist/providers/plugins/sso/proxy/sso.proxy.d.ts +4 -0
- package/dist/providers/plugins/sso/proxy/sso.proxy.d.ts.map +1 -1
- package/dist/providers/plugins/sso/proxy/sso.proxy.js +39 -10
- package/dist/providers/plugins/sso/proxy/sso.proxy.js.map +1 -1
- package/dist/providers/plugins/sso/sso.http-client.d.ts +38 -8
- package/dist/providers/plugins/sso/sso.http-client.d.ts.map +1 -1
- package/dist/providers/plugins/sso/sso.http-client.js +83 -85
- package/dist/providers/plugins/sso/sso.http-client.js.map +1 -1
- package/dist/providers/plugins/sso/sso.models.d.ts.map +1 -1
- package/dist/providers/plugins/sso/sso.models.js +3 -3
- package/dist/providers/plugins/sso/sso.models.js.map +1 -1
- package/dist/providers/plugins/sso/sso.setup-steps.d.ts.map +1 -1
- package/dist/providers/plugins/sso/sso.setup-steps.js +4 -1
- package/dist/providers/plugins/sso/sso.setup-steps.js.map +1 -1
- package/dist/providers/plugins/sso/sso.template.d.ts.map +1 -1
- package/dist/providers/plugins/sso/sso.template.js +7 -0
- package/dist/providers/plugins/sso/sso.template.js.map +1 -1
- package/dist/utils/paths.d.ts +1 -1
- package/dist/utils/paths.js +1 -1
- package/dist/utils/security.d.ts +18 -1
- package/dist/utils/security.d.ts.map +1 -1
- package/dist/utils/security.js +102 -0
- package/dist/utils/security.js.map +1 -1
- package/package.json +1 -1
- package/scripts/copy-mr-skill-to-global.ts +0 -252
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
import { readFile, readdir, stat } from 'fs/promises';
|
|
3
3
|
import { join, dirname, sep } from 'path';
|
|
4
4
|
import { existsSync } from 'fs';
|
|
5
|
-
import { getOpenCodeSessionsPath } from './opencode.paths.js';
|
|
5
|
+
import { getOpenCodeSessionsPath, getOpenCodeDbPath } from './opencode.paths.js';
|
|
6
|
+
import { isSqliteAvailable, readSessionsFromDb, readMessagesFromDb, readAllPartsForSessionFromDb, } from './opencode.sqlite-reader.js';
|
|
6
7
|
import { logger } from '../../../utils/logger.js';
|
|
7
8
|
import { OpenCodeMetricsProcessor } from './session/processors/opencode.metrics-processor.js';
|
|
8
9
|
import { OpenCodeConversationsProcessor } from './session/processors/opencode.conversations-processor.js';
|
|
@@ -91,6 +92,10 @@ export class OpenCodeSessionAdapter {
|
|
|
91
92
|
* not ISO strings. We convert to ISO for CodeMie's canonical format.
|
|
92
93
|
*/
|
|
93
94
|
async parseSessionFile(filePath, sessionId) {
|
|
95
|
+
// Route to SQLite parsing if filePath points to a .db file
|
|
96
|
+
if (filePath.endsWith('.db')) {
|
|
97
|
+
return this.parseSessionFromDb(filePath, sessionId);
|
|
98
|
+
}
|
|
94
99
|
try {
|
|
95
100
|
// Validate path shape before proceeding (GPT-5.8 fix)
|
|
96
101
|
// Expected: .../storage/session/{projectId}/{sessionId}.json
|
|
@@ -129,7 +134,8 @@ export class OpenCodeSessionAdapter {
|
|
|
129
134
|
// Per tech spec ADR-1: Expose storage path and OpenCode session ID for metrics processor
|
|
130
135
|
storagePath,
|
|
131
136
|
openCodeSessionId: session.id,
|
|
132
|
-
openCodeVersion: session.version
|
|
137
|
+
openCodeVersion: session.version,
|
|
138
|
+
storageType: 'file',
|
|
133
139
|
};
|
|
134
140
|
return {
|
|
135
141
|
sessionId,
|
|
@@ -144,6 +150,62 @@ export class OpenCodeSessionAdapter {
|
|
|
144
150
|
throw error;
|
|
145
151
|
}
|
|
146
152
|
}
|
|
153
|
+
/**
|
|
154
|
+
* Parse a session from SQLite database.
|
|
155
|
+
* Reads session, messages, and all parts in bulk from opencode.db.
|
|
156
|
+
*/
|
|
157
|
+
async parseSessionFromDb(dbPath, sessionId) {
|
|
158
|
+
try {
|
|
159
|
+
logger.debug(`[opencode-adapter] Parsing session ${sessionId} from SQLite: ${dbPath}`);
|
|
160
|
+
// Read session data
|
|
161
|
+
// Note: sessionId may be a CodeMie UUID (not an OpenCode ses_* ID).
|
|
162
|
+
// Try exact match first, then fallback to most recent session (sorted by time_created DESC).
|
|
163
|
+
const sessions = await readSessionsFromDb(dbPath, { maxAgeDays: 1 });
|
|
164
|
+
const session = sessions.find(s => s.id === sessionId) ?? sessions[0];
|
|
165
|
+
if (!session) {
|
|
166
|
+
throw new Error(`Session ${sessionId} not found in SQLite DB: ${dbPath}`);
|
|
167
|
+
}
|
|
168
|
+
if (session.id !== sessionId) {
|
|
169
|
+
logger.debug(`[opencode-adapter] Mapped CodeMie session ${sessionId} → OpenCode session ${session.id}`);
|
|
170
|
+
}
|
|
171
|
+
// Read messages using OpenCode session ID (not CodeMie UUID)
|
|
172
|
+
const messages = await readMessagesFromDb(dbPath, session.id);
|
|
173
|
+
// Read all parts for this session in one bulk query
|
|
174
|
+
const partsMap = await readAllPartsForSessionFromDb(dbPath, session.id);
|
|
175
|
+
// Extract metrics from messages
|
|
176
|
+
const metrics = this.extractMetrics(messages);
|
|
177
|
+
logger.debug(`[opencode-adapter] Parsed SQLite session ${sessionId}: ${messages.length} messages, ` +
|
|
178
|
+
`${Object.keys(partsMap).length} messages with parts, ` +
|
|
179
|
+
`${metrics?.tokens?.input || 0} input tokens, ${metrics?.tokens?.output || 0} output tokens`);
|
|
180
|
+
// Derive storagePath from dbPath: dbPath is .../opencode/opencode.db → storage is .../opencode/storage
|
|
181
|
+
const storagePath = join(dirname(dbPath), 'storage');
|
|
182
|
+
const metadata = {
|
|
183
|
+
projectPath: session.directory,
|
|
184
|
+
createdAt: session.time?.created
|
|
185
|
+
? new Date(session.time.created).toISOString()
|
|
186
|
+
: undefined,
|
|
187
|
+
updatedAt: session.time?.updated
|
|
188
|
+
? new Date(session.time.updated).toISOString()
|
|
189
|
+
: undefined,
|
|
190
|
+
storagePath,
|
|
191
|
+
openCodeSessionId: session.id,
|
|
192
|
+
openCodeVersion: session.version,
|
|
193
|
+
partsMap,
|
|
194
|
+
storageType: 'sqlite',
|
|
195
|
+
};
|
|
196
|
+
return {
|
|
197
|
+
sessionId,
|
|
198
|
+
agentName: this.metadata.displayName || 'opencode',
|
|
199
|
+
metadata,
|
|
200
|
+
messages,
|
|
201
|
+
metrics,
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
catch (error) {
|
|
205
|
+
logger.error(`[opencode-adapter] Failed to parse SQLite session ${sessionId}:`, error);
|
|
206
|
+
throw error;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
147
209
|
/**
|
|
148
210
|
* Validate session path has expected structure (GPT-5.8 fix, updated GPT-5.10/5.11)
|
|
149
211
|
* Expected: .../storage/session/{projectId}/{sessionId}.json
|
|
@@ -317,6 +379,41 @@ export class OpenCodeSessionAdapter {
|
|
|
317
379
|
* Applies 30-day default filter and optional cwd filter.
|
|
318
380
|
*/
|
|
319
381
|
async discoverSessions(options) {
|
|
382
|
+
// SQLite-first detection: check if opencode.db exists and sqlite3 CLI is available
|
|
383
|
+
const dbPath = getOpenCodeDbPath();
|
|
384
|
+
if (dbPath && await isSqliteAvailable()) {
|
|
385
|
+
logger.debug(`[opencode-discovery] Using SQLite storage: ${dbPath}`);
|
|
386
|
+
try {
|
|
387
|
+
const sessions = await readSessionsFromDb(dbPath, {
|
|
388
|
+
maxAgeDays: options?.maxAgeDays ?? 30,
|
|
389
|
+
cwd: options?.cwd,
|
|
390
|
+
});
|
|
391
|
+
const descriptors = sessions.map(session => ({
|
|
392
|
+
sessionId: session.id,
|
|
393
|
+
filePath: dbPath, // Point to DB file for parseSessionFile routing
|
|
394
|
+
projectPath: session.directory,
|
|
395
|
+
createdAt: session.time?.created ?? 0,
|
|
396
|
+
updatedAt: typeof session.time?.updated === 'number' ? session.time.updated : undefined,
|
|
397
|
+
agentName: 'opencode',
|
|
398
|
+
}));
|
|
399
|
+
// Sort by createdAt descending (newest first)
|
|
400
|
+
descriptors.sort((a, b) => b.createdAt - a.createdAt);
|
|
401
|
+
// Apply limit
|
|
402
|
+
if (options?.limit && options.limit > 0) {
|
|
403
|
+
const limited = descriptors.slice(0, options.limit);
|
|
404
|
+
logger.debug(`[opencode-discovery] Found ${descriptors.length} SQLite sessions, returning ${limited.length} (limit: ${options.limit})`);
|
|
405
|
+
return limited;
|
|
406
|
+
}
|
|
407
|
+
logger.debug(`[opencode-discovery] Found ${descriptors.length} SQLite sessions`);
|
|
408
|
+
return descriptors;
|
|
409
|
+
}
|
|
410
|
+
catch (error) {
|
|
411
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
412
|
+
logger.warn(`[opencode-discovery] SQLite discovery failed, falling back to file-based: ${msg}`);
|
|
413
|
+
// Fall through to file-based discovery
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
// File-based discovery (legacy fallback)
|
|
320
417
|
const sessionsPath = getOpenCodeSessionsPath();
|
|
321
418
|
if (!sessionsPath) {
|
|
322
419
|
logger.debug('[opencode-discovery] Sessions path not found (OpenCode not installed?)');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode.session.js","sourceRoot":"","sources":["../../../../src/agents/plugins/opencode/opencode.session.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"opencode.session.js","sourceRoot":"","sources":["../../../../src/agents/plugins/opencode/opencode.session.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenCode SQLite Reader
|
|
3
|
+
*
|
|
4
|
+
* Reads session/message/part data from OpenCode's SQLite database (opencode.db)
|
|
5
|
+
* using the system `sqlite3` CLI with `-json` output.
|
|
6
|
+
*
|
|
7
|
+
* OpenCode migrated from file-based storage (JSON in storage/session/, storage/message/,
|
|
8
|
+
* storage/part/) to SQLite. This module provides read access to the new format without
|
|
9
|
+
* adding any npm dependencies — it shells out to the pre-installed sqlite3 CLI.
|
|
10
|
+
*
|
|
11
|
+
* Usage: Called once at session end (not performance-critical).
|
|
12
|
+
*/
|
|
13
|
+
import type { OpenCodeSession, OpenCodeMessage, OpenCodePart } from './opencode-message-types.js';
|
|
14
|
+
/**
|
|
15
|
+
* Check if the sqlite3 CLI is available on this system.
|
|
16
|
+
*/
|
|
17
|
+
export declare function isSqliteAvailable(): Promise<boolean>;
|
|
18
|
+
/**
|
|
19
|
+
* Get the path to opencode.db given a storage path.
|
|
20
|
+
*
|
|
21
|
+
* OpenCode's DB lives one level above storage/:
|
|
22
|
+
* ~/.codemie/opencode-storage/opencode/opencode.db
|
|
23
|
+
* ~/.codemie/opencode-storage/opencode/storage/ (storagePath)
|
|
24
|
+
*
|
|
25
|
+
* @param storagePath - The storage/ directory path
|
|
26
|
+
* @returns Path to opencode.db, or null if not found
|
|
27
|
+
*/
|
|
28
|
+
export declare function getDbPathFromStorage(storagePath: string): string | null;
|
|
29
|
+
/**
|
|
30
|
+
* Read sessions from the SQLite database.
|
|
31
|
+
*
|
|
32
|
+
* @param dbPath - Path to opencode.db
|
|
33
|
+
* @param options - Optional filtering (maxAgeDays, cwd)
|
|
34
|
+
* @returns Array of OpenCodeSession objects
|
|
35
|
+
*/
|
|
36
|
+
export declare function readSessionsFromDb(dbPath: string, options?: {
|
|
37
|
+
maxAgeDays?: number;
|
|
38
|
+
cwd?: string;
|
|
39
|
+
}): Promise<OpenCodeSession[]>;
|
|
40
|
+
/**
|
|
41
|
+
* Read messages for a session from the SQLite database.
|
|
42
|
+
*
|
|
43
|
+
* @param dbPath - Path to opencode.db
|
|
44
|
+
* @param sessionId - The OpenCode session ID
|
|
45
|
+
* @returns Array of OpenCodeMessage objects sorted by creation time
|
|
46
|
+
*/
|
|
47
|
+
export declare function readMessagesFromDb(dbPath: string, sessionId: string): Promise<OpenCodeMessage[]>;
|
|
48
|
+
/**
|
|
49
|
+
* Read all parts for a session from the SQLite database, grouped by message ID.
|
|
50
|
+
*
|
|
51
|
+
* Does a single bulk query for all parts in the session, then groups by message_id.
|
|
52
|
+
* This is more efficient than querying per-message.
|
|
53
|
+
*
|
|
54
|
+
* @param dbPath - Path to opencode.db
|
|
55
|
+
* @param sessionId - The OpenCode session ID
|
|
56
|
+
* @returns Map of messageId -> OpenCodePart[]
|
|
57
|
+
*/
|
|
58
|
+
export declare function readAllPartsForSessionFromDb(dbPath: string, sessionId: string): Promise<Record<string, OpenCodePart[]>>;
|
|
59
|
+
//# sourceMappingURL=opencode.sqlite-reader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opencode.sqlite-reader.d.ts","sourceRoot":"","sources":["../../../../src/agents/plugins/opencode/opencode.sqlite-reader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAOH,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EAGf,YAAY,EACb,MAAM,6BAA6B,CAAC;AAErC;;GAEG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC,CAE1D;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGvE;AAmED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9C,OAAO,CAAC,eAAe,EAAE,CAAC,CA0C5B;AASD;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,eAAe,EAAE,CAAC,CAkD5B;AAED;;;;;;;;;GASG;AACH,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,CA+BzC"}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenCode SQLite Reader
|
|
3
|
+
*
|
|
4
|
+
* Reads session/message/part data from OpenCode's SQLite database (opencode.db)
|
|
5
|
+
* using the system `sqlite3` CLI with `-json` output.
|
|
6
|
+
*
|
|
7
|
+
* OpenCode migrated from file-based storage (JSON in storage/session/, storage/message/,
|
|
8
|
+
* storage/part/) to SQLite. This module provides read access to the new format without
|
|
9
|
+
* adding any npm dependencies — it shells out to the pre-installed sqlite3 CLI.
|
|
10
|
+
*
|
|
11
|
+
* Usage: Called once at session end (not performance-critical).
|
|
12
|
+
*/
|
|
13
|
+
import { existsSync } from 'fs';
|
|
14
|
+
import { dirname, join } from 'path';
|
|
15
|
+
import { commandExists } from '../../../utils/processes.js';
|
|
16
|
+
import { exec } from '../../../utils/exec.js';
|
|
17
|
+
import { logger } from '../../../utils/logger.js';
|
|
18
|
+
/**
|
|
19
|
+
* Check if the sqlite3 CLI is available on this system.
|
|
20
|
+
*/
|
|
21
|
+
export async function isSqliteAvailable() {
|
|
22
|
+
return commandExists('sqlite3');
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Get the path to opencode.db given a storage path.
|
|
26
|
+
*
|
|
27
|
+
* OpenCode's DB lives one level above storage/:
|
|
28
|
+
* ~/.codemie/opencode-storage/opencode/opencode.db
|
|
29
|
+
* ~/.codemie/opencode-storage/opencode/storage/ (storagePath)
|
|
30
|
+
*
|
|
31
|
+
* @param storagePath - The storage/ directory path
|
|
32
|
+
* @returns Path to opencode.db, or null if not found
|
|
33
|
+
*/
|
|
34
|
+
export function getDbPathFromStorage(storagePath) {
|
|
35
|
+
const dbPath = join(dirname(storagePath), 'opencode.db');
|
|
36
|
+
return existsSync(dbPath) ? dbPath : null;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Execute a read-only SQLite query and return parsed JSON rows.
|
|
40
|
+
*
|
|
41
|
+
* @param dbPath - Path to the SQLite database
|
|
42
|
+
* @param sql - SQL query to execute
|
|
43
|
+
* @returns Parsed rows as an array of objects
|
|
44
|
+
*/
|
|
45
|
+
async function queryDb(dbPath, sql) {
|
|
46
|
+
try {
|
|
47
|
+
const result = await exec('sqlite3', ['-json', '-readonly', dbPath, sql], {
|
|
48
|
+
timeout: 10_000,
|
|
49
|
+
});
|
|
50
|
+
if (result.code !== 0) {
|
|
51
|
+
logger.debug(`[sqlite-reader] sqlite3 exited with code ${result.code}: ${result.stderr}`);
|
|
52
|
+
return [];
|
|
53
|
+
}
|
|
54
|
+
const output = result.stdout.trim();
|
|
55
|
+
if (!output || output === '[]') {
|
|
56
|
+
return [];
|
|
57
|
+
}
|
|
58
|
+
return JSON.parse(output);
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
62
|
+
logger.debug(`[sqlite-reader] Query failed: ${msg}`);
|
|
63
|
+
return [];
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Read sessions from the SQLite database.
|
|
68
|
+
*
|
|
69
|
+
* @param dbPath - Path to opencode.db
|
|
70
|
+
* @param options - Optional filtering (maxAgeDays, cwd)
|
|
71
|
+
* @returns Array of OpenCodeSession objects
|
|
72
|
+
*/
|
|
73
|
+
export async function readSessionsFromDb(dbPath, options) {
|
|
74
|
+
const rows = await queryDb(dbPath, `SELECT id, project_id, slug, directory, title, version, time_created, time_updated FROM session ORDER BY time_created DESC`);
|
|
75
|
+
const sessions = [];
|
|
76
|
+
const maxAgeMs = (options?.maxAgeDays ?? 30) * 24 * 60 * 60 * 1000;
|
|
77
|
+
const cutoff = Date.now() - maxAgeMs;
|
|
78
|
+
const normalizedCwd = options?.cwd?.replace(/\/+$/, '');
|
|
79
|
+
for (const row of rows) {
|
|
80
|
+
const session = {
|
|
81
|
+
id: row.id,
|
|
82
|
+
title: row.title,
|
|
83
|
+
directory: row.directory || '',
|
|
84
|
+
time: {
|
|
85
|
+
created: row.time_created ?? 0,
|
|
86
|
+
updated: row.time_updated ?? 0,
|
|
87
|
+
},
|
|
88
|
+
projectID: row.project_id,
|
|
89
|
+
slug: row.slug,
|
|
90
|
+
version: row.version,
|
|
91
|
+
};
|
|
92
|
+
// Apply age filter
|
|
93
|
+
if (session.time.created && session.time.created < cutoff) {
|
|
94
|
+
continue;
|
|
95
|
+
}
|
|
96
|
+
// Apply cwd filter
|
|
97
|
+
if (normalizedCwd && session.directory) {
|
|
98
|
+
const normalizedDir = session.directory.replace(/\/+$/, '');
|
|
99
|
+
if (normalizedDir !== normalizedCwd) {
|
|
100
|
+
continue;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
sessions.push(session);
|
|
104
|
+
}
|
|
105
|
+
return sessions;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Escape a string for safe use in SQL single-quoted literals.
|
|
109
|
+
*/
|
|
110
|
+
function escapeSqlString(value) {
|
|
111
|
+
return value.replace(/'/g, "''");
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Read messages for a session from the SQLite database.
|
|
115
|
+
*
|
|
116
|
+
* @param dbPath - Path to opencode.db
|
|
117
|
+
* @param sessionId - The OpenCode session ID
|
|
118
|
+
* @returns Array of OpenCodeMessage objects sorted by creation time
|
|
119
|
+
*/
|
|
120
|
+
export async function readMessagesFromDb(dbPath, sessionId) {
|
|
121
|
+
const escapedId = escapeSqlString(sessionId);
|
|
122
|
+
const rows = await queryDb(dbPath, `SELECT id, session_id, data FROM message WHERE session_id = '${escapedId}'`);
|
|
123
|
+
const messages = [];
|
|
124
|
+
for (const row of rows) {
|
|
125
|
+
try {
|
|
126
|
+
const data = JSON.parse(row.data);
|
|
127
|
+
const role = data.role;
|
|
128
|
+
const base = {
|
|
129
|
+
id: row.id,
|
|
130
|
+
sessionID: row.session_id,
|
|
131
|
+
time: {
|
|
132
|
+
created: data.time?.created ?? 0,
|
|
133
|
+
},
|
|
134
|
+
};
|
|
135
|
+
if (role === 'assistant') {
|
|
136
|
+
const msg = {
|
|
137
|
+
...base,
|
|
138
|
+
role: 'assistant',
|
|
139
|
+
providerID: data.providerID,
|
|
140
|
+
modelID: data.modelID,
|
|
141
|
+
path: data.path,
|
|
142
|
+
tokens: data.tokens,
|
|
143
|
+
cost: data.cost,
|
|
144
|
+
agent: data.agent,
|
|
145
|
+
};
|
|
146
|
+
messages.push(msg);
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
const msg = {
|
|
150
|
+
...base,
|
|
151
|
+
role: 'user',
|
|
152
|
+
agent: data.agent,
|
|
153
|
+
model: data.model,
|
|
154
|
+
};
|
|
155
|
+
messages.push(msg);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
catch {
|
|
159
|
+
logger.debug(`[sqlite-reader] Failed to parse message row: ${row.id}`);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
// Sort by creation time
|
|
163
|
+
return messages.sort((a, b) => (a.time?.created || 0) - (b.time?.created || 0));
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Read all parts for a session from the SQLite database, grouped by message ID.
|
|
167
|
+
*
|
|
168
|
+
* Does a single bulk query for all parts in the session, then groups by message_id.
|
|
169
|
+
* This is more efficient than querying per-message.
|
|
170
|
+
*
|
|
171
|
+
* @param dbPath - Path to opencode.db
|
|
172
|
+
* @param sessionId - The OpenCode session ID
|
|
173
|
+
* @returns Map of messageId -> OpenCodePart[]
|
|
174
|
+
*/
|
|
175
|
+
export async function readAllPartsForSessionFromDb(dbPath, sessionId) {
|
|
176
|
+
const escapedId = escapeSqlString(sessionId);
|
|
177
|
+
const rows = await queryDb(dbPath, `SELECT id, message_id, session_id, data FROM part WHERE session_id = '${escapedId}' ORDER BY id ASC`);
|
|
178
|
+
const partsMap = {};
|
|
179
|
+
for (const row of rows) {
|
|
180
|
+
try {
|
|
181
|
+
const data = JSON.parse(row.data);
|
|
182
|
+
// Build the part by merging column values with parsed data
|
|
183
|
+
const part = {
|
|
184
|
+
...data,
|
|
185
|
+
id: row.id,
|
|
186
|
+
messageID: row.message_id,
|
|
187
|
+
sessionID: row.session_id,
|
|
188
|
+
};
|
|
189
|
+
if (!partsMap[row.message_id]) {
|
|
190
|
+
partsMap[row.message_id] = [];
|
|
191
|
+
}
|
|
192
|
+
partsMap[row.message_id].push(part);
|
|
193
|
+
}
|
|
194
|
+
catch {
|
|
195
|
+
logger.debug(`[sqlite-reader] Failed to parse part row: ${row.id}`);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
return partsMap;
|
|
199
|
+
}
|
|
200
|
+
//# sourceMappingURL=opencode.sqlite-reader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opencode.sqlite-reader.js","sourceRoot":"","sources":["../../../../src/agents/plugins/opencode/opencode.sqlite-reader.ts"],"names":[],"mappings":"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"}
|
|
@@ -58,6 +58,9 @@ export declare class OpenCodeMetricsProcessor implements SessionProcessor {
|
|
|
58
58
|
private resolveTimestamp;
|
|
59
59
|
/**
|
|
60
60
|
* Load parts for a message (ADR-11 - part-message validation)
|
|
61
|
+
*
|
|
62
|
+
* When partsMap is provided (SQLite-backed sessions), uses pre-loaded parts
|
|
63
|
+
* directly instead of reading from the filesystem.
|
|
61
64
|
*/
|
|
62
65
|
private loadPartsForMessage;
|
|
63
66
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode.metrics-processor.d.ts","sourceRoot":"","sources":["../../../../../../src/agents/plugins/opencode/session/processors/opencode.metrics-processor.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AACvH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gDAAgD,CAAC;AAkCpF;;;;;GAKG;AACH,qBAAa,wBAAyB,YAAW,gBAAgB;IAC/D,QAAQ,CAAC,IAAI,sBAAsB;IACnC,QAAQ,CAAC,QAAQ,KAAK;IAEtB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;;IAMlC;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO;IAI9C;;;;OAIG;IACG,OAAO,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"opencode.metrics-processor.d.ts","sourceRoot":"","sources":["../../../../../../src/agents/plugins/opencode/session/processors/opencode.metrics-processor.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AACvH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gDAAgD,CAAC;AAkCpF;;;;;GAKG;AACH,qBAAa,wBAAyB,YAAW,gBAAgB;IAC/D,QAAQ,CAAC,IAAI,sBAAsB;IACnC,QAAQ,CAAC,QAAQ,KAAK;IAEtB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;;IAMlC;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO;IAI9C;;;;OAIG;IACG,OAAO,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAuH7F;;OAEG;YACW,oBAAoB;IAkBlC;;OAEG;YACW,oBAAoB;IAalC;;;;OAIG;YACW,yBAAyB;IA2HvC;;OAEG;YACW,kBAAkB;IAiChC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAuBxB;;;;;OAKG;YACW,mBAAmB;IA8DjC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAiD1B;;OAEG;IACH,OAAO,CAAC,aAAa;IAerB;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IA+F5B;;OAEG;YACW,kBAAkB;IAoBhC;;OAEG;YACW,qBAAqB;IAuCnC;;;OAGG;YACW,oBAAoB;IAUlC;;OAEG;YACW,kBAAkB;IAiBhC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAQ3B;;OAEG;IACH,OAAO,CAAC,oBAAoB;CAmC7B"}
|
|
@@ -78,7 +78,9 @@ export class OpenCodeMetricsProcessor {
|
|
|
78
78
|
updatedAt: metadata.updatedAt,
|
|
79
79
|
storagePath,
|
|
80
80
|
openCodeSessionId,
|
|
81
|
-
openCodeVersion: metadata.openCodeVersion
|
|
81
|
+
openCodeVersion: metadata.openCodeVersion,
|
|
82
|
+
partsMap: metadata.partsMap,
|
|
83
|
+
storageType: metadata.storageType,
|
|
82
84
|
};
|
|
83
85
|
const { deltas, stats } = await this.transformMessagesToDeltas(messages, session.sessionId, openCodeSessionId, storagePath, openCodeMetadata);
|
|
84
86
|
if (deltas.length === 0) {
|
|
@@ -202,8 +204,8 @@ export class OpenCodeMetricsProcessor {
|
|
|
202
204
|
}
|
|
203
205
|
}
|
|
204
206
|
}
|
|
205
|
-
// Extract all user prompts
|
|
206
|
-
const allUserPrompts = await this.extractUserPrompts(messages, storagePath, openCodeSessionId);
|
|
207
|
+
// Extract all user prompts (pass partsMap for SQLite-backed sessions)
|
|
208
|
+
const allUserPrompts = await this.extractUserPrompts(messages, storagePath, openCodeSessionId, sessionMetadata.partsMap);
|
|
207
209
|
// Filter to only NEW prompts
|
|
208
210
|
const newPrompts = allUserPrompts.filter(p => !alreadyAttachedPrompts.has(p.text));
|
|
209
211
|
let promptsAttached = false;
|
|
@@ -218,8 +220,8 @@ export class OpenCodeMetricsProcessor {
|
|
|
218
220
|
stats.skippedDueToDedup++;
|
|
219
221
|
continue;
|
|
220
222
|
}
|
|
221
|
-
// Load parts for this message
|
|
222
|
-
const parts = await this.loadPartsForMessage(storagePath, assistantMsg.id, openCodeSessionId);
|
|
223
|
+
// Load parts for this message (use pre-loaded partsMap if available from SQLite)
|
|
224
|
+
const parts = await this.loadPartsForMessage(storagePath, assistantMsg.id, openCodeSessionId, sessionMetadata.partsMap);
|
|
223
225
|
// Resolve token source (ADR-13)
|
|
224
226
|
const tokenSource = await this.resolveTokenSource(assistantMsg, parts);
|
|
225
227
|
if (tokenSource.source === 'none') {
|
|
@@ -316,8 +318,28 @@ export class OpenCodeMetricsProcessor {
|
|
|
316
318
|
}
|
|
317
319
|
/**
|
|
318
320
|
* Load parts for a message (ADR-11 - part-message validation)
|
|
321
|
+
*
|
|
322
|
+
* When partsMap is provided (SQLite-backed sessions), uses pre-loaded parts
|
|
323
|
+
* directly instead of reading from the filesystem.
|
|
319
324
|
*/
|
|
320
|
-
async loadPartsForMessage(storagePath, messageId, expectedSessionId) {
|
|
325
|
+
async loadPartsForMessage(storagePath, messageId, expectedSessionId, partsMap) {
|
|
326
|
+
// Use pre-loaded partsMap if available (from SQLite bulk query)
|
|
327
|
+
if (partsMap && partsMap[messageId]) {
|
|
328
|
+
const parts = partsMap[messageId];
|
|
329
|
+
// Apply same validation as file-based path
|
|
330
|
+
return parts.filter(part => {
|
|
331
|
+
if (part.messageID !== messageId) {
|
|
332
|
+
logger.debug(`[opencode-metrics] Skipping orphaned part ${part.id}: messageID mismatch`);
|
|
333
|
+
return false;
|
|
334
|
+
}
|
|
335
|
+
if (expectedSessionId && part.sessionID !== expectedSessionId) {
|
|
336
|
+
logger.debug(`[opencode-metrics] Skipping part ${part.id}: sessionID mismatch`);
|
|
337
|
+
return false;
|
|
338
|
+
}
|
|
339
|
+
return true;
|
|
340
|
+
}).sort((a, b) => a.id.localeCompare(b.id));
|
|
341
|
+
}
|
|
342
|
+
// File-based loading fallback
|
|
321
343
|
const partsDir = join(storagePath, 'part', messageId);
|
|
322
344
|
if (!existsSync(partsDir)) {
|
|
323
345
|
return [];
|
|
@@ -461,12 +483,12 @@ export class OpenCodeMetricsProcessor {
|
|
|
461
483
|
/**
|
|
462
484
|
* Extract user prompts from messages (ADR-10, ADR-20)
|
|
463
485
|
*/
|
|
464
|
-
async extractUserPrompts(messages, storagePath, sessionId) {
|
|
486
|
+
async extractUserPrompts(messages, storagePath, sessionId, partsMap) {
|
|
465
487
|
const prompts = [];
|
|
466
488
|
for (const msg of messages) {
|
|
467
489
|
if (msg.role !== 'user')
|
|
468
490
|
continue;
|
|
469
|
-
const text = await this.extractUserPromptText(msg, storagePath, sessionId);
|
|
491
|
+
const text = await this.extractUserPromptText(msg, storagePath, sessionId, partsMap);
|
|
470
492
|
if (text) {
|
|
471
493
|
prompts.push({ count: 1, text });
|
|
472
494
|
}
|
|
@@ -476,11 +498,11 @@ export class OpenCodeMetricsProcessor {
|
|
|
476
498
|
/**
|
|
477
499
|
* Extract user prompt text from message (ADR-10, ADR-20)
|
|
478
500
|
*/
|
|
479
|
-
async extractUserPromptText(msg, storagePath, sessionId) {
|
|
480
|
-
// Try
|
|
481
|
-
const
|
|
482
|
-
if (
|
|
483
|
-
const parts = await this.loadPartsForMessage(storagePath, msg.id, sessionId);
|
|
501
|
+
async extractUserPromptText(msg, storagePath, sessionId, partsMap) {
|
|
502
|
+
// Try pre-loaded partsMap first (SQLite path), then file-based
|
|
503
|
+
const hasParts = partsMap?.[msg.id] || existsSync(join(storagePath, 'part', msg.id));
|
|
504
|
+
if (hasParts) {
|
|
505
|
+
const parts = await this.loadPartsForMessage(storagePath, msg.id, sessionId, partsMap);
|
|
484
506
|
// Filter: exclude ignored and synthetic parts (ADR-10)
|
|
485
507
|
const textParts = parts.filter(p => p.type === 'text' &&
|
|
486
508
|
'text' in p &&
|