@code-yeongyu/senpi 2026.9.8 → 2026.9.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/CHANGELOG.md +23 -4
- package/dist/core/agent-session-runtime.d.ts.map +1 -1
- package/dist/core/agent-session-runtime.js +2 -0
- package/dist/core/agent-session-runtime.js.map +1 -1
- package/dist/core/compaction/compaction-execution.d.ts.map +1 -1
- package/dist/core/compaction/compaction-execution.js +5 -5
- package/dist/core/compaction/compaction-execution.js.map +1 -1
- package/dist/core/compaction/compaction-settings.d.ts +2 -0
- package/dist/core/compaction/compaction-settings.d.ts.map +1 -1
- package/dist/core/compaction/compaction-settings.js.map +1 -1
- package/dist/core/compaction/compaction.d.ts +3 -3
- package/dist/core/compaction/compaction.d.ts.map +1 -1
- package/dist/core/compaction/compaction.js +12 -7
- package/dist/core/compaction/compaction.js.map +1 -1
- package/dist/core/compaction/stream-watchdog.d.ts +29 -0
- package/dist/core/compaction/stream-watchdog.d.ts.map +1 -1
- package/dist/core/compaction/stream-watchdog.js +35 -0
- package/dist/core/compaction/stream-watchdog.js.map +1 -1
- package/dist/core/compaction-settings-access.d.ts +6 -0
- package/dist/core/compaction-settings-access.d.ts.map +1 -1
- package/dist/core/compaction-settings-access.js.map +1 -1
- package/dist/core/compaction-settings-resolver.d.ts +2 -0
- package/dist/core/compaction-settings-resolver.d.ts.map +1 -1
- package/dist/core/compaction-settings-resolver.js +5 -0
- package/dist/core/compaction-settings-resolver.js.map +1 -1
- package/dist/core/extensions/builtin/compaction/model-usability-budget.d.ts +1 -1
- package/dist/core/extensions/builtin/compaction/model-usability-budget.d.ts.map +1 -1
- package/dist/core/extensions/builtin/compaction/model-usability-budget.js +23 -3
- package/dist/core/extensions/builtin/compaction/model-usability-budget.js.map +1 -1
- package/dist/core/extensions/builtin/compaction/speculative-summary.d.ts +2 -0
- package/dist/core/extensions/builtin/compaction/speculative-summary.d.ts.map +1 -1
- package/dist/core/extensions/builtin/compaction/speculative-summary.js +5 -2
- package/dist/core/extensions/builtin/compaction/speculative-summary.js.map +1 -1
- package/dist/core/extensions/builtin/compaction/speculative.d.ts.map +1 -1
- package/dist/core/extensions/builtin/compaction/speculative.js +9 -3
- package/dist/core/extensions/builtin/compaction/speculative.js.map +1 -1
- package/dist/core/extensions/builtin/compaction/summarization-retry.d.ts +10 -4
- package/dist/core/extensions/builtin/compaction/summarization-retry.d.ts.map +1 -1
- package/dist/core/extensions/builtin/compaction/summarization-retry.js +14 -5
- package/dist/core/extensions/builtin/compaction/summarization-retry.js.map +1 -1
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +11 -1
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/session-write-reservation.d.ts +4 -0
- package/dist/core/session-write-reservation.d.ts.map +1 -0
- package/dist/core/session-write-reservation.js +12 -0
- package/dist/core/session-write-reservation.js.map +1 -0
- package/dist/main.d.ts +14 -0
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +162 -147
- package/dist/main.js.map +1 -1
- package/dist/modes/rpc/connection-handler.d.ts +2 -0
- package/dist/modes/rpc/connection-handler.d.ts.map +1 -1
- package/dist/modes/rpc/connection-handler.js +1 -1
- package/dist/modes/rpc/connection-handler.js.map +1 -1
- package/dist/modes/rpc/multi-session-host.d.ts +2 -0
- package/dist/modes/rpc/multi-session-host.d.ts.map +1 -1
- package/dist/modes/rpc/multi-session-host.js +18 -8
- package/dist/modes/rpc/multi-session-host.js.map +1 -1
- package/dist/modes/rpc/session-binding.d.ts.map +1 -1
- package/dist/modes/rpc/session-binding.js +3 -0
- package/dist/modes/rpc/session-binding.js.map +1 -1
- package/dist/modes/rpc/session-command-router.d.ts +1 -1
- package/dist/modes/rpc/session-command-router.d.ts.map +1 -1
- package/dist/modes/rpc/session-command-router.js +57 -25
- package/dist/modes/rpc/session-command-router.js.map +1 -1
- package/dist/modes/rpc/session-event-writer.d.ts +23 -1
- package/dist/modes/rpc/session-event-writer.d.ts.map +1 -1
- package/dist/modes/rpc/session-event-writer.js +108 -1
- package/dist/modes/rpc/session-event-writer.js.map +1 -1
- package/dist/modes/rpc/session-registry.d.ts +4 -2
- package/dist/modes/rpc/session-registry.d.ts.map +1 -1
- package/dist/modes/rpc/session-registry.js +1 -1
- package/dist/modes/rpc/session-registry.js.map +1 -1
- package/dist/modes/rpc/session-worker-client.d.ts +47 -0
- package/dist/modes/rpc/session-worker-client.d.ts.map +1 -0
- package/dist/modes/rpc/session-worker-client.js +226 -0
- package/dist/modes/rpc/session-worker-client.js.map +1 -0
- package/dist/modes/rpc/session-worker-protocol.d.ts +103 -0
- package/dist/modes/rpc/session-worker-protocol.d.ts.map +1 -0
- package/dist/modes/rpc/session-worker-protocol.js +12 -0
- package/dist/modes/rpc/session-worker-protocol.js.map +1 -0
- package/dist/modes/rpc/session-worker-requests.d.ts +24 -0
- package/dist/modes/rpc/session-worker-requests.d.ts.map +1 -0
- package/dist/modes/rpc/session-worker-requests.js +71 -0
- package/dist/modes/rpc/session-worker-requests.js.map +1 -0
- package/dist/modes/rpc/session-worker.d.ts +2 -0
- package/dist/modes/rpc/session-worker.d.ts.map +1 -0
- package/dist/modes/rpc/session-worker.js +229 -0
- package/dist/modes/rpc/session-worker.js.map +1 -0
- package/dist/modes/rpc/worker-session-registry.d.ts +37 -0
- package/dist/modes/rpc/worker-session-registry.d.ts.map +1 -0
- package/dist/modes/rpc/worker-session-registry.js +207 -0
- package/dist/modes/rpc/worker-session-registry.js.map +1 -0
- package/docs/rpc.md +70 -9
- package/docs/settings.md +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/CHANGELOG.md +12 -0
- package/node_modules/@code-yeongyu/senpi-codemode/package.json +4 -4
- package/node_modules/@earendil-works/pi-agent-core/package.json +3 -3
- package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.js +23 -5
- package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.d.ts +30 -0
- package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.js +30 -0
- package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/.manifest.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/amazon-bedrock.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/openrouter.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/vercel-ai-gateway.json +1 -1
- package/node_modules/@earendil-works/pi-ai/package.json +2 -2
- package/node_modules/@earendil-works/pi-pty/package.json +1 -1
- package/node_modules/@earendil-works/pi-telemetry/package.json +1 -1
- package/node_modules/@earendil-works/pi-tui/package.json +1 -1
- package/package.json +7 -7
|
@@ -7,6 +7,7 @@ import { APP_NAME, getAgentDir as getDefaultAgentDir, getSessionsDir } from "../
|
|
|
7
7
|
import { normalizePath, resolvePath } from "../utils/paths.js";
|
|
8
8
|
import { listSessionInfos, listSessionsFromDir } from "./session-discovery.js";
|
|
9
9
|
import { ResidentStringStore } from "./session-resident-store.js";
|
|
10
|
+
import { reserveSessionWrite } from "./session-write-reservation.js";
|
|
10
11
|
// Fork change: inlined UUIDv7 (upstream uses the `uuid` npm package). Keeps this
|
|
11
12
|
// package self-contained so consumers don't need a transitive `uuid` install.
|
|
12
13
|
function uuidv7() {
|
|
@@ -608,6 +609,8 @@ export class SessionManager {
|
|
|
608
609
|
this._setSessionFile(sessionFile);
|
|
609
610
|
}
|
|
610
611
|
_setSessionFile(sessionFile, preloadedFileEntries) {
|
|
612
|
+
if (this.persist)
|
|
613
|
+
reserveSessionWrite(resolvePath(sessionFile));
|
|
611
614
|
this.sessionFile = resolvePath(sessionFile);
|
|
612
615
|
this.mirrorTrimmed = false;
|
|
613
616
|
this.residentStore.clear();
|
|
@@ -678,7 +681,9 @@ export class SessionManager {
|
|
|
678
681
|
this.flushed = false;
|
|
679
682
|
if (this.persist) {
|
|
680
683
|
const fileTimestamp = timestamp.replace(/[:.]/g, "-");
|
|
681
|
-
|
|
684
|
+
const path = join(this.getSessionDir(), `${fileTimestamp}_${this.sessionId}.jsonl`);
|
|
685
|
+
reserveSessionWrite(path);
|
|
686
|
+
this.sessionFile = path;
|
|
682
687
|
}
|
|
683
688
|
return this.sessionFile;
|
|
684
689
|
}
|
|
@@ -724,6 +729,7 @@ export class SessionManager {
|
|
|
724
729
|
_rewriteFile() {
|
|
725
730
|
if (!this.persist || !this.sessionFile)
|
|
726
731
|
return;
|
|
732
|
+
reserveSessionWrite(this.sessionFile);
|
|
727
733
|
const fd = openSync(this.sessionFile, "w");
|
|
728
734
|
try {
|
|
729
735
|
for (const entry of this.fileEntries) {
|
|
@@ -758,6 +764,7 @@ export class SessionManager {
|
|
|
758
764
|
_persist(entry) {
|
|
759
765
|
if (!this.persist || !this.sessionFile)
|
|
760
766
|
return;
|
|
767
|
+
reserveSessionWrite(this.sessionFile);
|
|
761
768
|
const persistedEntry = this.residentStore.materialize(entry);
|
|
762
769
|
const hasAssistant = this.fileEntries.some((e) => e.type === "message" && e.message.role === "assistant");
|
|
763
770
|
if (!hasAssistant) {
|
|
@@ -1402,6 +1409,7 @@ export class SessionManager {
|
|
|
1402
1409
|
labelEntries.push(labelEntry);
|
|
1403
1410
|
parentId = labelEntry.id;
|
|
1404
1411
|
}
|
|
1412
|
+
reserveSessionWrite(newSessionFile);
|
|
1405
1413
|
this.residentStore.clear();
|
|
1406
1414
|
this.mirrorTrimmed = false;
|
|
1407
1415
|
this.fileEntries = [header, ...pathWithoutLabels, ...labelEntries].map((entry) => this.residentStore.externalize(entry));
|
|
@@ -1463,6 +1471,7 @@ export class SessionManager {
|
|
|
1463
1471
|
*/
|
|
1464
1472
|
static open(path, sessionDir, cwdOverride) {
|
|
1465
1473
|
const resolvedPath = resolvePath(path);
|
|
1474
|
+
reserveSessionWrite(resolvedPath);
|
|
1466
1475
|
let header = null;
|
|
1467
1476
|
let preloadedFileEntries;
|
|
1468
1477
|
if (cwdOverride === undefined && existsSync(resolvedPath)) {
|
|
@@ -1548,6 +1557,7 @@ export class SessionManager {
|
|
|
1548
1557
|
cwd: resolvedTargetCwd,
|
|
1549
1558
|
parentSession: resolvedSourcePath,
|
|
1550
1559
|
};
|
|
1560
|
+
reserveSessionWrite(newSessionFile);
|
|
1551
1561
|
writeFileSync(newSessionFile, `${JSON.stringify(newHeader)}\n`, { flag: "wx" });
|
|
1552
1562
|
// Copy all non-header entries from source
|
|
1553
1563
|
for (const entry of sourceEntries) {
|