opencode-prompt-recorder 1.3.9 → 1.4.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/dist/index.js +10 -8
- package/dist/package.json +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -68,7 +68,7 @@ var OpenCodePromptRecorder = async ({ directory, client }) => {
|
|
|
68
68
|
let versionFileWritten = false;
|
|
69
69
|
let lastProcessedMessageCount = 0;
|
|
70
70
|
const messageRoleMap = /* @__PURE__ */ new Map();
|
|
71
|
-
const
|
|
71
|
+
const processedMessageKeys = /* @__PURE__ */ new Set();
|
|
72
72
|
return {
|
|
73
73
|
"event": async ({ event }) => {
|
|
74
74
|
if (event.type === "message.updated") {
|
|
@@ -80,6 +80,8 @@ var OpenCodePromptRecorder = async ({ directory, client }) => {
|
|
|
80
80
|
}
|
|
81
81
|
if (event.type === "message.part.updated") {
|
|
82
82
|
const part = event.properties.part;
|
|
83
|
+
const props = event.properties;
|
|
84
|
+
await debugLog(directory, `[prompt-recorder] message.part.updated: type=${part?.type}, messageID=${part?.messageID}, sessionID=${part?.sessionID}, info.role=${props.info?.role}, info.message.role=${props.info?.message?.role}`);
|
|
83
85
|
if (part?.type === "text" && part?.text) {
|
|
84
86
|
const sessionID = part.sessionID;
|
|
85
87
|
const messageID = part.messageID;
|
|
@@ -97,10 +99,11 @@ var OpenCodePromptRecorder = async ({ directory, client }) => {
|
|
|
97
99
|
if (!role) {
|
|
98
100
|
await debugLog(directory, `[prompt-recorder] WARNING: role not found, messageID=${messageID}, sessionID=${sessionID}, textPreview=${text2.substring(0, 30)}`);
|
|
99
101
|
} else if (role === "user" && text2 && sessionID) {
|
|
100
|
-
|
|
102
|
+
const dedupeKey = `${messageID}:${text2}`;
|
|
103
|
+
if (processedMessageKeys.has(dedupeKey)) {
|
|
101
104
|
return;
|
|
102
105
|
}
|
|
103
|
-
|
|
106
|
+
processedMessageKeys.add(dedupeKey);
|
|
104
107
|
await debugLog(directory, `[prompt-recorder] event=${event.type}, role=${role}, sessionID=${sessionID}, textLength=${text2.length}, textPreview=${text2.substring(0, 50)}`);
|
|
105
108
|
const now2 = /* @__PURE__ */ new Date();
|
|
106
109
|
const { yyyy: yyyy2, MM: MM2, dd: dd2, HH: HH2, mm: mm2 } = formatDate(now2);
|
|
@@ -131,11 +134,11 @@ ${text2}`;
|
|
|
131
134
|
if (event.type !== "session.updated") {
|
|
132
135
|
return;
|
|
133
136
|
}
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
const messages = event.properties.info.messages;
|
|
137
|
+
const sessionInfo = event.properties.info;
|
|
138
|
+
const sessionId = sessionInfo?.id;
|
|
139
|
+
const messages = sessionInfo?.messages || [];
|
|
138
140
|
const messageCount = messages.length;
|
|
141
|
+
await debugLog(directory, `[prompt-recorder] session.updated: sessionId=${sessionId}, messageCount=${messageCount}, lastProcessed=${lastProcessedMessageCount}`);
|
|
139
142
|
if (!versionFileWritten) {
|
|
140
143
|
try {
|
|
141
144
|
const version = await getVersion();
|
|
@@ -170,7 +173,6 @@ ${text2}`;
|
|
|
170
173
|
return;
|
|
171
174
|
}
|
|
172
175
|
const text = latestMessage.parts.map((p) => p.type === "text" ? p.text : "").join("");
|
|
173
|
-
const sessionId = event.properties.info.id;
|
|
174
176
|
if (!text || !sessionId) {
|
|
175
177
|
return;
|
|
176
178
|
}
|
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "opencode-prompt-recorder",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"description": "OpenCode plugin for recording user prompts. Automatically saves user messages to a local file system with organized directory structure.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "opencode-prompt-recorder",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"description": "OpenCode plugin for recording user prompts. Automatically saves user messages to a local file system with organized directory structure.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|