@scotthamilton77/sidekick 0.0.8-alpha.8 → 0.0.8-alpha.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.
- package/dist/bin.js +33 -5
- package/dist/daemon.js +20 -0
- package/package.json +1 -1
package/dist/bin.js
CHANGED
|
@@ -68828,6 +68828,7 @@ var require_persona_selection = __commonJS({
|
|
|
68828
68828
|
exports2.filterPersonasByAllowList = filterPersonasByAllowList;
|
|
68829
68829
|
exports2.selectRandomPersona = selectRandomPersona;
|
|
68830
68830
|
exports2.selectPersonaForSession = selectPersonaForSession;
|
|
68831
|
+
exports2.ensurePersonaForSession = ensurePersonaForSession;
|
|
68831
68832
|
var core_1 = require_dist4();
|
|
68832
68833
|
var state_js_1 = require_state4();
|
|
68833
68834
|
var types_js_1 = require_types4();
|
|
@@ -68900,6 +68901,23 @@ var require_persona_selection = __commonJS({
|
|
|
68900
68901
|
});
|
|
68901
68902
|
return selected.id;
|
|
68902
68903
|
}
|
|
68904
|
+
async function ensurePersonaForSession(sessionId, ctx) {
|
|
68905
|
+
try {
|
|
68906
|
+
const summaryState = (0, state_js_1.createSessionSummaryState)(ctx.stateService);
|
|
68907
|
+
const result = await summaryState.sessionPersona.read(sessionId);
|
|
68908
|
+
if (result.data)
|
|
68909
|
+
return;
|
|
68910
|
+
ctx.logger.info("Persona state missing for active session, re-selecting", { sessionId });
|
|
68911
|
+
const featureConfig = ctx.config.getFeature("session-summary");
|
|
68912
|
+
const config = { ...types_js_1.DEFAULT_SESSION_SUMMARY_CONFIG, ...featureConfig.settings };
|
|
68913
|
+
await selectPersonaForSession(sessionId, config, ctx);
|
|
68914
|
+
} catch (err) {
|
|
68915
|
+
ctx.logger.warn("Failed to ensure persona for session", {
|
|
68916
|
+
sessionId,
|
|
68917
|
+
error: err instanceof Error ? err.message : String(err)
|
|
68918
|
+
});
|
|
68919
|
+
}
|
|
68920
|
+
}
|
|
68903
68921
|
}
|
|
68904
68922
|
});
|
|
68905
68923
|
|
|
@@ -69075,6 +69093,7 @@ var require_update_summary = __commonJS({
|
|
|
69075
69093
|
var types_js_1 = require_types4();
|
|
69076
69094
|
var state_js_1 = require_state4();
|
|
69077
69095
|
var persona_utils_js_1 = require_persona_utils();
|
|
69096
|
+
var persona_selection_js_1 = require_persona_selection();
|
|
69078
69097
|
var PROMPT_FILE = "prompts/session-summary.prompt.txt";
|
|
69079
69098
|
var SNARKY_PROMPT_FILE = "prompts/snarky-message.prompt.txt";
|
|
69080
69099
|
var RESUME_PROMPT_FILE = "prompts/resume-message.prompt.txt";
|
|
@@ -69122,6 +69141,7 @@ var require_update_summary = __commonJS({
|
|
|
69122
69141
|
return;
|
|
69123
69142
|
}
|
|
69124
69143
|
if (event.eventType === "BulkProcessingComplete") {
|
|
69144
|
+
await (0, persona_selection_js_1.ensurePersonaForSession)(sessionId, ctx);
|
|
69125
69145
|
const metrics = ctx.transcript.getMetrics();
|
|
69126
69146
|
if (metrics.turnCount === 0) {
|
|
69127
69147
|
ctx.logger.info("LLM call: session-summary analysis", {
|
|
@@ -70544,6 +70564,7 @@ var require_statusline_service = __commonJS({
|
|
|
70544
70564
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
70545
70565
|
exports2.StatuslineService = void 0;
|
|
70546
70566
|
exports2.createStatuslineService = createStatuslineService;
|
|
70567
|
+
exports2.deterministicIndex = deterministicIndex;
|
|
70547
70568
|
var core_1 = require_dist4();
|
|
70548
70569
|
var formatter_js_1 = require_formatter();
|
|
70549
70570
|
var git_provider_js_1 = require_git_provider();
|
|
@@ -70630,8 +70651,7 @@ var require_statusline_service = __commonJS({
|
|
|
70630
70651
|
return types_js_1.DEFAULT_PLACEHOLDERS.newSession;
|
|
70631
70652
|
}
|
|
70632
70653
|
if (persona.statusline_empty_messages && persona.statusline_empty_messages.length > 0) {
|
|
70633
|
-
|
|
70634
|
-
return persona.statusline_empty_messages[randomIndex];
|
|
70654
|
+
return persona.statusline_empty_messages[deterministicIndex(this.sessionId, persona.statusline_empty_messages.length)];
|
|
70635
70655
|
}
|
|
70636
70656
|
return this.loadRandomEmptyMessageFromAssets();
|
|
70637
70657
|
}
|
|
@@ -70652,8 +70672,7 @@ var require_statusline_service = __commonJS({
|
|
|
70652
70672
|
if (messages.length === 0) {
|
|
70653
70673
|
return types_js_1.DEFAULT_PLACEHOLDERS.newSession;
|
|
70654
70674
|
}
|
|
70655
|
-
|
|
70656
|
-
return messages[randomIndex];
|
|
70675
|
+
return messages[deterministicIndex(this.sessionId, messages.length)];
|
|
70657
70676
|
}
|
|
70658
70677
|
/**
|
|
70659
70678
|
* Check if resume message is still fresh based on timestamp.
|
|
@@ -71029,6 +71048,15 @@ var require_statusline_service = __commonJS({
|
|
|
71029
71048
|
function createStatuslineService(config) {
|
|
71030
71049
|
return new StatuslineService(config);
|
|
71031
71050
|
}
|
|
71051
|
+
function deterministicIndex(seed, arrayLength) {
|
|
71052
|
+
if (arrayLength <= 1)
|
|
71053
|
+
return 0;
|
|
71054
|
+
let hash = 5381;
|
|
71055
|
+
for (let i = 0; i < seed.length; i++) {
|
|
71056
|
+
hash = (hash << 5) + hash + seed.charCodeAt(i) | 0;
|
|
71057
|
+
}
|
|
71058
|
+
return Math.abs(hash) % arrayLength;
|
|
71059
|
+
}
|
|
71032
71060
|
}
|
|
71033
71061
|
});
|
|
71034
71062
|
|
|
@@ -74367,7 +74395,7 @@ var require_cli = __commonJS({
|
|
|
74367
74395
|
var promises_12 = require("node:fs/promises");
|
|
74368
74396
|
var node_stream_1 = require("node:stream");
|
|
74369
74397
|
var yargs_parser_1 = __importDefault2(require_build());
|
|
74370
|
-
var VERSION = true ? "0.0.8-alpha.
|
|
74398
|
+
var VERSION = true ? "0.0.8-alpha.9" : "dev";
|
|
74371
74399
|
var SANDBOX_ERROR_MESSAGE = `Error: Daemon commands cannot run in sandbox mode.
|
|
74372
74400
|
|
|
74373
74401
|
Claude Code's sandbox blocks Unix socket operations required for daemon IPC.
|
package/dist/daemon.js
CHANGED
|
@@ -66762,6 +66762,7 @@ var require_persona_selection = __commonJS({
|
|
|
66762
66762
|
exports2.filterPersonasByAllowList = filterPersonasByAllowList;
|
|
66763
66763
|
exports2.selectRandomPersona = selectRandomPersona;
|
|
66764
66764
|
exports2.selectPersonaForSession = selectPersonaForSession;
|
|
66765
|
+
exports2.ensurePersonaForSession = ensurePersonaForSession;
|
|
66765
66766
|
var core_1 = require_dist4();
|
|
66766
66767
|
var state_js_1 = require_state4();
|
|
66767
66768
|
var types_js_1 = require_types3();
|
|
@@ -66834,6 +66835,23 @@ var require_persona_selection = __commonJS({
|
|
|
66834
66835
|
});
|
|
66835
66836
|
return selected.id;
|
|
66836
66837
|
}
|
|
66838
|
+
async function ensurePersonaForSession(sessionId, ctx) {
|
|
66839
|
+
try {
|
|
66840
|
+
const summaryState = (0, state_js_1.createSessionSummaryState)(ctx.stateService);
|
|
66841
|
+
const result = await summaryState.sessionPersona.read(sessionId);
|
|
66842
|
+
if (result.data)
|
|
66843
|
+
return;
|
|
66844
|
+
ctx.logger.info("Persona state missing for active session, re-selecting", { sessionId });
|
|
66845
|
+
const featureConfig = ctx.config.getFeature("session-summary");
|
|
66846
|
+
const config = { ...types_js_1.DEFAULT_SESSION_SUMMARY_CONFIG, ...featureConfig.settings };
|
|
66847
|
+
await selectPersonaForSession(sessionId, config, ctx);
|
|
66848
|
+
} catch (err) {
|
|
66849
|
+
ctx.logger.warn("Failed to ensure persona for session", {
|
|
66850
|
+
sessionId,
|
|
66851
|
+
error: err instanceof Error ? err.message : String(err)
|
|
66852
|
+
});
|
|
66853
|
+
}
|
|
66854
|
+
}
|
|
66837
66855
|
}
|
|
66838
66856
|
});
|
|
66839
66857
|
|
|
@@ -67009,6 +67027,7 @@ var require_update_summary = __commonJS({
|
|
|
67009
67027
|
var types_js_1 = require_types3();
|
|
67010
67028
|
var state_js_1 = require_state4();
|
|
67011
67029
|
var persona_utils_js_1 = require_persona_utils();
|
|
67030
|
+
var persona_selection_js_1 = require_persona_selection();
|
|
67012
67031
|
var PROMPT_FILE = "prompts/session-summary.prompt.txt";
|
|
67013
67032
|
var SNARKY_PROMPT_FILE = "prompts/snarky-message.prompt.txt";
|
|
67014
67033
|
var RESUME_PROMPT_FILE = "prompts/resume-message.prompt.txt";
|
|
@@ -67056,6 +67075,7 @@ var require_update_summary = __commonJS({
|
|
|
67056
67075
|
return;
|
|
67057
67076
|
}
|
|
67058
67077
|
if (event.eventType === "BulkProcessingComplete") {
|
|
67078
|
+
await (0, persona_selection_js_1.ensurePersonaForSession)(sessionId, ctx);
|
|
67059
67079
|
const metrics = ctx.transcript.getMetrics();
|
|
67060
67080
|
if (metrics.turnCount === 0) {
|
|
67061
67081
|
ctx.logger.info("LLM call: session-summary analysis", {
|
package/package.json
CHANGED