@dosu/cli 0.53.0-beta.8 → 0.53.0-beta.9

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.
Files changed (2) hide show
  1. package/bin/dosu.js +22 -7
  2. package/package.json +1 -1
package/bin/dosu.js CHANGED
@@ -5018,7 +5018,7 @@ function isNpxInvocation(channel = INSTALL_CHANNEL, env = process.env) {
5018
5018
  function getVersionString() {
5019
5019
  return `v${VERSION}`;
5020
5020
  }
5021
- var VERSION = "0.53.0-beta.8", INSTALL_CHANNEL = "npm";
5021
+ var VERSION = "0.53.0-beta.9", INSTALL_CHANNEL = "npm";
5022
5022
 
5023
5023
  // src/debug/logger.ts
5024
5024
  import {
@@ -10978,7 +10978,7 @@ function buildMinerPrompt(sessions) {
10978
10978
 
10979
10979
  ${list}
10980
10980
 
10981
- Read each session with read_session, decide what (if anything) is durable per your rules, dedupe against read_knowledge, then write the distilled notes with write_knowledge. When you are done, reply with a one-line summary: how many sessions you read and how many notes you wrote.`;
10981
+ Work through them ONE AT A TIME: read a single session with read_session, decide what (if anything) is durable per your rules, dedupe against read_knowledge, and write that session's notes with write_knowledge BEFORE moving on to the next session. Each note is attributed to the session you read just before writing it, so do not read the next session until you have written this one's notes. When you are done, reply with a one-line summary: how many sessions you read and how many notes you wrote.`;
10982
10982
  }
10983
10983
 
10984
10984
  // src/miner/prompt-core.ts
@@ -72926,7 +72926,8 @@ async function runMiner(options) {
72926
72926
  const abort = new AbortController;
72927
72927
  const timer = setTimeout(() => abort.abort(), options.timeoutMs ?? DEFAULT_TIMEOUT_MS2);
72928
72928
  let notesWritten = 0;
72929
- let lastSessionId;
72929
+ let currentSession;
72930
+ const readsSinceWrite = new Set;
72930
72931
  let turns = 0;
72931
72932
  const env = buildMinerEnv({
72932
72933
  apiKey: options.apiKey,
@@ -72971,7 +72972,11 @@ async function runMiner(options) {
72971
72972
  };
72972
72973
  }
72973
72974
  if (toolName === `mcp__${SESSIONS_SERVER_NAME}__read_session`) {
72974
- lastSessionId = sessionIdFromReadInput(input2) ?? lastSessionId;
72975
+ const id2 = sessionIdFromReadInput(input2);
72976
+ if (id2) {
72977
+ currentSession = id2;
72978
+ readsSinceWrite.add(id2);
72979
+ }
72975
72980
  }
72976
72981
  if (toolName === `mcp__${KNOWLEDGE_SERVER_NAME}__write_knowledge`) {
72977
72982
  if (notesWritten >= maxNotes) {
@@ -72980,10 +72985,20 @@ async function runMiner(options) {
72980
72985
  message: `Note cap reached (${maxNotes} per run); stop writing and summarize.`
72981
72986
  };
72982
72987
  }
72988
+ if (readsSinceWrite.size > 1) {
72989
+ readsSinceWrite.clear();
72990
+ currentSession = undefined;
72991
+ return {
72992
+ behavior: "deny",
72993
+ message: "Write each session's notes right after reading THAT session, before reading the next. You have read multiple sessions without writing, so a note cannot be attributed to one. Re-read only the session this note is about, then write it."
72994
+ };
72995
+ }
72983
72996
  notesWritten += 1;
72997
+ readsSinceWrite.clear();
72998
+ const { transcript_id: _authoredByModel, ...clean } = input2;
72984
72999
  return {
72985
73000
  behavior: "allow",
72986
- updatedInput: lastSessionId ? { ...input2, transcript_id: lastSessionId } : input2
73001
+ updatedInput: currentSession ? { ...clean, transcript_id: currentSession } : clean
72987
73002
  };
72988
73003
  }
72989
73004
  return { behavior: "allow", updatedInput: input2 };
@@ -73504,7 +73519,7 @@ var init_settings = __esm(() => {
73504
73519
  });
73505
73520
 
73506
73521
  // src/telemetry/debug-id.ts
73507
- var BUNDLE_DEBUG_ID_PLACEHOLDER = "cf222ab5-3069-6407-6475-6e2164756e21";
73522
+ var BUNDLE_DEBUG_ID_PLACEHOLDER = "971484cf-da0f-e0c4-6475-6e2164756e21";
73508
73523
 
73509
73524
  // src/telemetry/telemetry.ts
73510
73525
  import { randomUUID as randomUUID4 } from "node:crypto";
@@ -84413,4 +84428,4 @@ execute().catch((err) => {
84413
84428
  process.exit(1);
84414
84429
  });
84415
84430
 
84416
- //# debugId=cf222ab5-3069-6407-6475-6e2164756e21
84431
+ //# debugId=971484cf-da0f-e0c4-6475-6e2164756e21
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dosu/cli",
3
- "version": "0.53.0-beta.8",
3
+ "version": "0.53.0-beta.9",
4
4
  "type": "module",
5
5
  "description": "Dosu CLI - Manage MCP servers for AI tools",
6
6
  "license": "MIT",