@brainpilot/runtime 0.0.9 → 0.0.11
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/agent-factory.d.ts.map +1 -1
- package/dist/agent-factory.js +5 -2
- package/dist/agent-factory.js.map +1 -1
- package/dist/events.d.ts +19 -1
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +19 -0
- package/dist/events.js.map +1 -1
- package/dist/extensions/agent-status.d.ts +13 -11
- package/dist/extensions/agent-status.d.ts.map +1 -1
- package/dist/extensions/agent-status.js +37 -21
- package/dist/extensions/agent-status.js.map +1 -1
- package/dist/extensions/trace-reminder.d.ts +7 -19
- package/dist/extensions/trace-reminder.d.ts.map +1 -1
- package/dist/extensions/trace-reminder.js +57 -33
- package/dist/extensions/trace-reminder.js.map +1 -1
- package/dist/mas-agent.d.ts +16 -0
- package/dist/mas-agent.d.ts.map +1 -1
- package/dist/mas-agent.js +93 -4
- package/dist/mas-agent.js.map +1 -1
- package/dist/mock-agent.d.ts +5 -2
- package/dist/mock-agent.d.ts.map +1 -1
- package/dist/mock-agent.js +17 -1
- package/dist/mock-agent.js.map +1 -1
- package/dist/personas.d.ts +1 -1
- package/dist/personas.d.ts.map +1 -1
- package/dist/personas.js +101 -22
- package/dist/personas.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +22 -9
- package/dist/server.js.map +1 -1
- package/dist/session-manager.d.ts +56 -1
- package/dist/session-manager.d.ts.map +1 -1
- package/dist/session-manager.js +235 -34
- package/dist/session-manager.js.map +1 -1
- package/dist/tools/kb/paths.d.ts +24 -0
- package/dist/tools/kb/paths.d.ts.map +1 -0
- package/dist/tools/kb/paths.js +69 -0
- package/dist/tools/kb/paths.js.map +1 -0
- package/dist/tools/kb/python.d.ts +2 -0
- package/dist/tools/kb/python.d.ts.map +1 -0
- package/dist/tools/kb/python.js +42 -0
- package/dist/tools/kb/python.js.map +1 -0
- package/dist/tools/kb/retrieve.d.ts +20 -0
- package/dist/tools/kb/retrieve.d.ts.map +1 -0
- package/dist/tools/kb/retrieve.js +128 -0
- package/dist/tools/kb/retrieve.js.map +1 -0
- package/dist/tools/kb/search-papers.d.ts +39 -0
- package/dist/tools/kb/search-papers.d.ts.map +1 -0
- package/dist/tools/kb/search-papers.js +188 -0
- package/dist/tools/kb/search-papers.js.map +1 -0
- package/dist/tools/kb/sidecar.d.ts +11 -0
- package/dist/tools/kb/sidecar.d.ts.map +1 -0
- package/dist/tools/kb/sidecar.js +161 -0
- package/dist/tools/kb/sidecar.js.map +1 -0
- package/dist/tools/kb/store.d.ts +46 -0
- package/dist/tools/kb/store.d.ts.map +1 -0
- package/dist/tools/kb/store.js +191 -0
- package/dist/tools/kb/store.js.map +1 -0
- package/dist/tools/kb/tools.d.ts +24 -0
- package/dist/tools/kb/tools.d.ts.map +1 -0
- package/dist/tools/kb/tools.js +192 -0
- package/dist/tools/kb/tools.js.map +1 -0
- package/dist/tools/system-tools.d.ts.map +1 -1
- package/dist/tools/system-tools.js +41 -6
- package/dist/tools/system-tools.js.map +1 -1
- package/dist/types.d.ts +33 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +3 -3
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,6 +43,13 @@ export interface SessionManagerOptions {
|
|
|
43
43
|
* Env override: BP_MAX_TOOL_RESULT_TOKENS.
|
|
44
44
|
*/
|
|
45
45
|
maxToolResultTokens?: number;
|
|
46
|
+
/**
|
|
47
|
+
* #167: max concurrent provider calls per session (throttle to avoid
|
|
48
|
+
* self-inflicted 429s on a wide multi-agent fan-out). Default 4; env override
|
|
49
|
+
* `BP_MAX_CONCURRENT_AGENTS` (intended range ~2–6). 0 or negative disables
|
|
50
|
+
* throttling. Tests inject this directly.
|
|
51
|
+
*/
|
|
52
|
+
maxConcurrentAgents?: number;
|
|
46
53
|
}
|
|
47
54
|
/**
|
|
48
55
|
* Conservative token estimation from character count (issue #80).
|
|
@@ -53,6 +60,12 @@ export interface SessionManagerOptions {
|
|
|
53
60
|
export declare function estimateTokens(text: string): number;
|
|
54
61
|
export declare class SessionManager {
|
|
55
62
|
private readonly sessions;
|
|
63
|
+
/**
|
|
64
|
+
* In-flight `restoreOne` promises, keyed by session id. Guards against a
|
|
65
|
+
* refreshed UI firing `state` + `sse` (+ `messages`) near-simultaneously and
|
|
66
|
+
* racing two `createSession` restores for the same evicted session.
|
|
67
|
+
*/
|
|
68
|
+
private readonly loading;
|
|
56
69
|
private readonly dataRoot;
|
|
57
70
|
private readonly agentFactory;
|
|
58
71
|
private readonly persist;
|
|
@@ -66,6 +79,8 @@ export declare class SessionManager {
|
|
|
66
79
|
private skillsMaterialized;
|
|
67
80
|
private readonly memWatchdog;
|
|
68
81
|
private readonly maxToolResultTokens;
|
|
82
|
+
private readonly maxConcurrentAgents;
|
|
83
|
+
private readonly providerSlots;
|
|
69
84
|
constructor(opts?: SessionManagerOptions);
|
|
70
85
|
/**
|
|
71
86
|
* Materialize the bundled @brainpilot/skills content into `this.skillsDir`
|
|
@@ -181,7 +196,25 @@ export declare class SessionManager {
|
|
|
181
196
|
* Returns the updated session, or undefined if the session is unknown.
|
|
182
197
|
*/
|
|
183
198
|
renameSession(id: string, title?: unknown): Promise<Session | undefined>;
|
|
184
|
-
|
|
199
|
+
/**
|
|
200
|
+
* List sessions, merging live in-memory entries with persisted-but-evicted
|
|
201
|
+
* ones discovered on disk (#223). Without this, a session dropped by
|
|
202
|
+
* `evictSession` (or an idle reaper) vanishes from the sidebar even though its
|
|
203
|
+
* `.bp/<sid>/` transcript is intact — a refresh then looks like total loss.
|
|
204
|
+
*
|
|
205
|
+
* Discovery is metadata-only: we read each `meta.json` but do NOT revive the
|
|
206
|
+
* full runtime entry (bus/mailbox/trace/agents), so listing stays cheap and
|
|
207
|
+
* eviction keeps saving memory. The session is lazily revived by
|
|
208
|
+
* `ensureLoaded` only when it's actually opened. In-memory entries win on id
|
|
209
|
+
* collision. Ordering is left to the caller (the web sorts by updatedAt).
|
|
210
|
+
*/
|
|
211
|
+
listSessions(): Promise<Session[]>;
|
|
212
|
+
/**
|
|
213
|
+
* Ensure a persisted session is live in memory, reviving it from disk if it
|
|
214
|
+
* was evicted (#223). Returns true when the session is available afterwards.
|
|
215
|
+
* Concurrent calls for the same id share one restore via `this.loading`.
|
|
216
|
+
*/
|
|
217
|
+
ensureLoaded(id: string): Promise<boolean>;
|
|
185
218
|
deleteSession(id: string): Promise<boolean>;
|
|
186
219
|
/** Evict idle session: stop agents + drop from memory, KEEP disk (§修正2). */
|
|
187
220
|
evictSession(id: string): Promise<{
|
|
@@ -194,6 +227,7 @@ export declare class SessionManager {
|
|
|
194
227
|
}): Promise<{
|
|
195
228
|
accepted: boolean;
|
|
196
229
|
runId?: string;
|
|
230
|
+
queued?: boolean;
|
|
197
231
|
}>;
|
|
198
232
|
/**
|
|
199
233
|
* Ask the terminal user a question on behalf of `agent`. Emits a
|
|
@@ -271,6 +305,12 @@ export declare class SessionManager {
|
|
|
271
305
|
*/
|
|
272
306
|
private renderAgentStatus;
|
|
273
307
|
destroyAgent(sessionId: string, name: string): Promise<void>;
|
|
308
|
+
/**
|
|
309
|
+
* #167: run `fn` (an `agent.prompt(...)` call) under the session's provider
|
|
310
|
+
* concurrency cap. `agent.prompt` is error-isolated (never throws), so the
|
|
311
|
+
* slot is always released. A cap of 0/negative disables throttling.
|
|
312
|
+
*/
|
|
313
|
+
private withProviderSlot;
|
|
274
314
|
/**
|
|
275
315
|
* #76: wake `name` to consume its mailbox. Fire-and-forget — `send_message`
|
|
276
316
|
* calls this after writing; the actual run happens in a serial delivery loop.
|
|
@@ -458,5 +498,20 @@ export declare class SessionManager {
|
|
|
458
498
|
* were already loaded or whose meta.json was missing / malformed).
|
|
459
499
|
*/
|
|
460
500
|
restoreFromDisk(): Promise<string[]>;
|
|
501
|
+
/**
|
|
502
|
+
* Read and parse `.bp/<id>/meta.json`. Returns null when the directory has no
|
|
503
|
+
* meta.json (not a session dir) or the file is malformed. Shared by
|
|
504
|
+
* `restoreOne`, `restoreFromDisk`, and the discovery path in `listSessions`.
|
|
505
|
+
*/
|
|
506
|
+
private readMeta;
|
|
507
|
+
/**
|
|
508
|
+
* Revive a single persisted session from disk into memory. Returns the
|
|
509
|
+
* restored session id only when it was **freshly** loaded this call — null
|
|
510
|
+
* when the session is already in memory (idempotent no-op) or there's no valid
|
|
511
|
+
* meta.json on disk. `restoreFromDisk` relies on this to report only newly
|
|
512
|
+
* restored ids; `ensureLoaded` layers "already loaded" on top separately.
|
|
513
|
+
* §10 策略A: agents start idle and are lazily spawned on the next message.
|
|
514
|
+
*/
|
|
515
|
+
private restoreOne;
|
|
461
516
|
}
|
|
462
517
|
//# sourceMappingURL=session-manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../src/session-manager.ts"],"names":[],"mappings":"AAcA,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,OAAO,EACZ,KAAK,iBAAiB,EAEtB,KAAK,UAAU,EAChB,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAAE,QAAQ,EAA6B,MAAM,gBAAgB,CAAC;AAMrE,OAAO,EAAE,SAAS,EAAwB,MAAM,iBAAiB,CAAC;AAKlE,OAAO,KAAK,EAAa,mBAAmB,EAAE,aAAa,EAAgC,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../src/session-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/session-manager.js
CHANGED
|
@@ -36,6 +36,63 @@ function makeDeferred() {
|
|
|
36
36
|
});
|
|
37
37
|
return { promise, resolve, reject };
|
|
38
38
|
}
|
|
39
|
+
/** #167 default concurrent-provider-calls cap when nothing is configured. */
|
|
40
|
+
const DEFAULT_MAX_CONCURRENT_AGENTS = 4;
|
|
41
|
+
/**
|
|
42
|
+
* Resolve the per-session provider concurrency cap: explicit option wins, else
|
|
43
|
+
* `BP_MAX_CONCURRENT_AGENTS`, else the default. Non-integer / empty env falls
|
|
44
|
+
* back to the default; 0 or negative is honored as "throttling disabled".
|
|
45
|
+
*/
|
|
46
|
+
function resolveMaxConcurrentAgents(opt) {
|
|
47
|
+
if (typeof opt === "number" && Number.isFinite(opt))
|
|
48
|
+
return Math.trunc(opt);
|
|
49
|
+
const env = process.env.BP_MAX_CONCURRENT_AGENTS?.trim();
|
|
50
|
+
if (env !== undefined && env !== "") {
|
|
51
|
+
const n = Number(env);
|
|
52
|
+
if (Number.isFinite(n))
|
|
53
|
+
return Math.trunc(n);
|
|
54
|
+
}
|
|
55
|
+
return DEFAULT_MAX_CONCURRENT_AGENTS;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* A minimal FIFO counting semaphore. `acquire()` resolves with a `release` fn
|
|
59
|
+
* once a slot is free; excess acquirers queue in order. Used per-session to
|
|
60
|
+
* bound concurrent provider calls (#167). Not reentrant; callers must release
|
|
61
|
+
* exactly once (we do so in a `finally`).
|
|
62
|
+
*/
|
|
63
|
+
class ProviderSemaphore {
|
|
64
|
+
available;
|
|
65
|
+
waiters = [];
|
|
66
|
+
constructor(limit) {
|
|
67
|
+
this.available = Math.max(1, limit);
|
|
68
|
+
}
|
|
69
|
+
acquire() {
|
|
70
|
+
return new Promise((resolve) => {
|
|
71
|
+
const grant = () => {
|
|
72
|
+
let released = false;
|
|
73
|
+
resolve(() => {
|
|
74
|
+
if (released)
|
|
75
|
+
return;
|
|
76
|
+
released = true;
|
|
77
|
+
const next = this.waiters.shift();
|
|
78
|
+
if (next)
|
|
79
|
+
next();
|
|
80
|
+
else
|
|
81
|
+
this.available++;
|
|
82
|
+
});
|
|
83
|
+
};
|
|
84
|
+
if (this.available > 0) {
|
|
85
|
+
this.available--;
|
|
86
|
+
grant();
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
// Queue: when a slot frees, this waiter is handed the slot directly
|
|
90
|
+
// (available stays decremented — ownership transfers, no double count).
|
|
91
|
+
this.waiters.push(grant);
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
}
|
|
39
96
|
/** Roles inferred from agent name. */
|
|
40
97
|
function roleFor(name) {
|
|
41
98
|
if (name === "principal")
|
|
@@ -79,6 +136,12 @@ function formatBytes(n) {
|
|
|
79
136
|
}
|
|
80
137
|
export class SessionManager {
|
|
81
138
|
sessions = new Map();
|
|
139
|
+
/**
|
|
140
|
+
* In-flight `restoreOne` promises, keyed by session id. Guards against a
|
|
141
|
+
* refreshed UI firing `state` + `sse` (+ `messages`) near-simultaneously and
|
|
142
|
+
* racing two `createSession` restores for the same evicted session.
|
|
143
|
+
*/
|
|
144
|
+
loading = new Map();
|
|
82
145
|
dataRoot;
|
|
83
146
|
agentFactory;
|
|
84
147
|
persist;
|
|
@@ -107,6 +170,14 @@ export class SessionManager {
|
|
|
107
170
|
memWatchdog;
|
|
108
171
|
// Tool result truncation (issue #80). 0 = disabled.
|
|
109
172
|
maxToolResultTokens;
|
|
173
|
+
// #167: per-session cap on concurrent provider calls. Each agent's delivery
|
|
174
|
+
// loop is already serial, but distinct experts run independently, so a wide
|
|
175
|
+
// delegation fan-out can fire N provider requests at once and self-inflict
|
|
176
|
+
// 429s. A per-session semaphore bounds in-flight `prompt()`s; excess calls
|
|
177
|
+
// queue (they don't fail). Default 4, tunable via BP_MAX_CONCURRENT_AGENTS
|
|
178
|
+
// (intended range ~2–6 for shared/rate-limited gateways).
|
|
179
|
+
maxConcurrentAgents;
|
|
180
|
+
providerSlots = new Map();
|
|
110
181
|
constructor(opts = {}) {
|
|
111
182
|
this.dataRoot = opts.dataRoot ?? process.env.BP_DATA_DIR ?? join(process.cwd(), ".bp-data");
|
|
112
183
|
this.agentFactory = opts.agentFactory ?? selectFactory();
|
|
@@ -129,6 +200,7 @@ export class SessionManager {
|
|
|
129
200
|
// format; `skill_search` reads from here, Pi never sees it.
|
|
130
201
|
this.routerSkillsDir =
|
|
131
202
|
opts.routerSkillsDir ?? join(this.dataRoot, "bp_template", "skills-router");
|
|
203
|
+
this.maxConcurrentAgents = resolveMaxConcurrentAgents(opts.maxConcurrentAgents);
|
|
132
204
|
const limitBytes = opts.memLimitBytes ?? parseMemLimitMb(process.env);
|
|
133
205
|
this.memWatchdog =
|
|
134
206
|
limitBytes != null
|
|
@@ -498,10 +570,21 @@ export class SessionManager {
|
|
|
498
570
|
tokenUsage: { total: emptyTokenUsage(), byAgent: {} },
|
|
499
571
|
};
|
|
500
572
|
this.sessions.set(id, entry);
|
|
501
|
-
if (!_restore)
|
|
573
|
+
if (!_restore) {
|
|
502
574
|
this.touch(entry);
|
|
503
|
-
|
|
504
|
-
|
|
575
|
+
}
|
|
576
|
+
else {
|
|
577
|
+
// #242: a restored session keeps its OLD per-session `entry.lastActivityAt`
|
|
578
|
+
// (historical "last active" for UI/history), but the PROCESS-level liveness
|
|
579
|
+
// anchor must reflect activity since THIS process/container started — not a
|
|
580
|
+
// timestamp frozen on disk days ago. Otherwise a hosted reaper computing
|
|
581
|
+
// `now - metrics.lastActivityAt` sees a huge idle for a freshly-restarted
|
|
582
|
+
// container and kills it immediately (start → reaped → start death spiral).
|
|
583
|
+
// Take the newest activity the process has seen so multi-session restore
|
|
584
|
+
// stays monotonic. Per-session `entry.lastActivityAt` is intentionally
|
|
585
|
+
// untouched here.
|
|
586
|
+
this.lastActivityAt = Math.max(this.lastActivityAt, Date.now());
|
|
587
|
+
}
|
|
505
588
|
if (this.persist) {
|
|
506
589
|
await mkdir(join(this.bpDir(id), "history"), { recursive: true });
|
|
507
590
|
await mkdir(this.workspaceDir(id), { recursive: true });
|
|
@@ -539,8 +622,68 @@ export class SessionManager {
|
|
|
539
622
|
await this.writeMeta(e);
|
|
540
623
|
return this.toSession(e);
|
|
541
624
|
}
|
|
542
|
-
|
|
543
|
-
|
|
625
|
+
/**
|
|
626
|
+
* List sessions, merging live in-memory entries with persisted-but-evicted
|
|
627
|
+
* ones discovered on disk (#223). Without this, a session dropped by
|
|
628
|
+
* `evictSession` (or an idle reaper) vanishes from the sidebar even though its
|
|
629
|
+
* `.bp/<sid>/` transcript is intact — a refresh then looks like total loss.
|
|
630
|
+
*
|
|
631
|
+
* Discovery is metadata-only: we read each `meta.json` but do NOT revive the
|
|
632
|
+
* full runtime entry (bus/mailbox/trace/agents), so listing stays cheap and
|
|
633
|
+
* eviction keeps saving memory. The session is lazily revived by
|
|
634
|
+
* `ensureLoaded` only when it's actually opened. In-memory entries win on id
|
|
635
|
+
* collision. Ordering is left to the caller (the web sorts by updatedAt).
|
|
636
|
+
*/
|
|
637
|
+
async listSessions() {
|
|
638
|
+
const out = new Map();
|
|
639
|
+
for (const e of this.sessions.values())
|
|
640
|
+
out.set(e.id, this.toSession(e));
|
|
641
|
+
if (this.persist) {
|
|
642
|
+
const root = join(this.dataRoot, ".bp");
|
|
643
|
+
let ids;
|
|
644
|
+
try {
|
|
645
|
+
ids = await readdir(root);
|
|
646
|
+
}
|
|
647
|
+
catch {
|
|
648
|
+
ids = []; // .bp/ doesn't exist yet — only in-memory sessions
|
|
649
|
+
}
|
|
650
|
+
for (const id of ids) {
|
|
651
|
+
if (out.has(id))
|
|
652
|
+
continue;
|
|
653
|
+
const meta = await this.readMeta(id);
|
|
654
|
+
if (!meta)
|
|
655
|
+
continue;
|
|
656
|
+
const sid = meta.id ?? id;
|
|
657
|
+
if (out.has(sid))
|
|
658
|
+
continue;
|
|
659
|
+
out.set(sid, {
|
|
660
|
+
id: sid,
|
|
661
|
+
title: meta.title ?? "Untitled session",
|
|
662
|
+
createdAt: meta.createdAt ?? "",
|
|
663
|
+
updatedAt: meta.updatedAt ?? "",
|
|
664
|
+
});
|
|
665
|
+
}
|
|
666
|
+
}
|
|
667
|
+
return [...out.values()];
|
|
668
|
+
}
|
|
669
|
+
/**
|
|
670
|
+
* Ensure a persisted session is live in memory, reviving it from disk if it
|
|
671
|
+
* was evicted (#223). Returns true when the session is available afterwards.
|
|
672
|
+
* Concurrent calls for the same id share one restore via `this.loading`.
|
|
673
|
+
*/
|
|
674
|
+
async ensureLoaded(id) {
|
|
675
|
+
if (this.sessions.has(id))
|
|
676
|
+
return true;
|
|
677
|
+
if (!this.persist)
|
|
678
|
+
return false;
|
|
679
|
+
const inflight = this.loading.get(id);
|
|
680
|
+
if (inflight)
|
|
681
|
+
return inflight;
|
|
682
|
+
const p = this.restoreOne(id)
|
|
683
|
+
.then((sid) => sid !== null)
|
|
684
|
+
.finally(() => this.loading.delete(id));
|
|
685
|
+
this.loading.set(id, p);
|
|
686
|
+
return p;
|
|
544
687
|
}
|
|
545
688
|
async deleteSession(id) {
|
|
546
689
|
const e = this.sessions.get(id);
|
|
@@ -550,6 +693,7 @@ export class SessionManager {
|
|
|
550
693
|
a.stop();
|
|
551
694
|
e.bus.clear();
|
|
552
695
|
this.sessions.delete(id);
|
|
696
|
+
this.providerSlots.delete(id);
|
|
553
697
|
if (this.persist) {
|
|
554
698
|
await rm(this.bpDir(id), { recursive: true, force: true }).catch(() => { });
|
|
555
699
|
await rm(this.workspaceDir(id), { recursive: true, force: true }).catch(() => { });
|
|
@@ -575,6 +719,7 @@ export class SessionManager {
|
|
|
575
719
|
e.pendingInputs.delete(id2);
|
|
576
720
|
}
|
|
577
721
|
this.sessions.delete(id);
|
|
722
|
+
this.providerSlots.delete(id);
|
|
578
723
|
return { evicted: true, agentsKilled: killed };
|
|
579
724
|
}
|
|
580
725
|
/* ----------------------------- messaging ----------------------------- */
|
|
@@ -598,6 +743,18 @@ export class SessionManager {
|
|
|
598
743
|
// session's workspace (the agent's cwd) before it runs, so it can read the
|
|
599
744
|
// file the user just attached. No-op when nothing was staged.
|
|
600
745
|
await this.drainLocalUploads(sessionId);
|
|
746
|
+
// Concurrent send: the target agent is still streaming its previous run.
|
|
747
|
+
// A plain prompt() would hit the SDK's "already processing" guard. Queue
|
|
748
|
+
// the message as a follow-up onto the current run instead — no new runId,
|
|
749
|
+
// no new run bookkeeping; the SDK loop drains it before agent_end and the
|
|
750
|
+
// events keep flowing under the in-flight run. The user prompt is still
|
|
751
|
+
// broadcast (so SSE replay stays complete) correlated to the CURRENT run.
|
|
752
|
+
if (agent.isStreaming) {
|
|
753
|
+
const runId = entry.activeRunId ?? undefined;
|
|
754
|
+
entry.bus.emit(ev.textMessageChunk({ sessionId, agentName, runId }, opts.uuid ?? randomUUID(), content, "user"));
|
|
755
|
+
void agent.followUp(content);
|
|
756
|
+
return { accepted: true, runId, queued: true };
|
|
757
|
+
}
|
|
601
758
|
entry.runActive = true;
|
|
602
759
|
entry.activeRunId = `run_${randomUUID()}`;
|
|
603
760
|
const runId = entry.activeRunId;
|
|
@@ -614,8 +771,8 @@ export class SessionManager {
|
|
|
614
771
|
// than duplicating it. Fall back to a fresh id if the client omitted one.
|
|
615
772
|
entry.bus.emit(ev.textMessageChunk({ sessionId, agentName, runId }, opts.uuid ?? randomUUID(), content, "user"));
|
|
616
773
|
// Fire-and-track: don't block the HTTP response on the full run.
|
|
617
|
-
|
|
618
|
-
|
|
774
|
+
// #167: the principal's own turn also counts against the session provider cap.
|
|
775
|
+
void this.withProviderSlot(sessionId, () => agent.prompt(content))
|
|
619
776
|
.catch((err) => {
|
|
620
777
|
entry.bus.emit(ev.systemMessage(sessionId, "error", `发送消息失败: ${err.message}`, { agent: agentName }));
|
|
621
778
|
})
|
|
@@ -958,6 +1115,27 @@ export class SessionManager {
|
|
|
958
1115
|
agent.stop();
|
|
959
1116
|
entry.agents.delete(name); // history on disk is kept (§5).
|
|
960
1117
|
}
|
|
1118
|
+
/**
|
|
1119
|
+
* #167: run `fn` (an `agent.prompt(...)` call) under the session's provider
|
|
1120
|
+
* concurrency cap. `agent.prompt` is error-isolated (never throws), so the
|
|
1121
|
+
* slot is always released. A cap of 0/negative disables throttling.
|
|
1122
|
+
*/
|
|
1123
|
+
async withProviderSlot(sessionId, fn) {
|
|
1124
|
+
if (this.maxConcurrentAgents <= 0)
|
|
1125
|
+
return fn();
|
|
1126
|
+
let sem = this.providerSlots.get(sessionId);
|
|
1127
|
+
if (!sem) {
|
|
1128
|
+
sem = new ProviderSemaphore(this.maxConcurrentAgents);
|
|
1129
|
+
this.providerSlots.set(sessionId, sem);
|
|
1130
|
+
}
|
|
1131
|
+
const release = await sem.acquire();
|
|
1132
|
+
try {
|
|
1133
|
+
return await fn();
|
|
1134
|
+
}
|
|
1135
|
+
finally {
|
|
1136
|
+
release();
|
|
1137
|
+
}
|
|
1138
|
+
}
|
|
961
1139
|
/* ------------------------- mailbox delivery (#76) ------------------------- */
|
|
962
1140
|
/**
|
|
963
1141
|
* #76: wake `name` to consume its mailbox. Fire-and-forget — `send_message`
|
|
@@ -1019,7 +1197,8 @@ export class SessionManager {
|
|
|
1019
1197
|
this.touch(entry);
|
|
1020
1198
|
// Surface the delegated run immediately (derived active flag, agent list).
|
|
1021
1199
|
this.emitSessionState(entry);
|
|
1022
|
-
|
|
1200
|
+
// #167: cap concurrent provider calls across experts in this session.
|
|
1201
|
+
await this.withProviderSlot(sessionId, () => agent.prompt(this.renderEnvelopes(msgs, name)));
|
|
1023
1202
|
// #97 error path. A delegated run that ended in `error` is handled here
|
|
1024
1203
|
// (the trace-reminder extension bails on an errored run, leaving the host
|
|
1025
1204
|
// the sole owner of error recovery). Transient errors self-retry up to a
|
|
@@ -1449,35 +1628,57 @@ export class SessionManager {
|
|
|
1449
1628
|
return restored; // .bp/ doesn't exist yet — fresh install
|
|
1450
1629
|
}
|
|
1451
1630
|
for (const id of ids) {
|
|
1452
|
-
|
|
1453
|
-
|
|
1454
|
-
const metaPath = join(root, id, "meta.json");
|
|
1455
|
-
let raw;
|
|
1456
|
-
try {
|
|
1457
|
-
raw = await readFile(metaPath, "utf8");
|
|
1458
|
-
}
|
|
1459
|
-
catch {
|
|
1460
|
-
continue; // not a session dir (no meta.json) — silent skip
|
|
1461
|
-
}
|
|
1462
|
-
try {
|
|
1463
|
-
const meta = JSON.parse(raw);
|
|
1464
|
-
const sid = meta.id ?? id;
|
|
1465
|
-
if (this.sessions.has(sid))
|
|
1466
|
-
continue;
|
|
1467
|
-
const now = new Date().toISOString();
|
|
1468
|
-
await this.createSession({ id: sid, title: meta.title }, {
|
|
1469
|
-
createdAt: meta.createdAt ?? now,
|
|
1470
|
-
updatedAt: meta.updatedAt ?? now,
|
|
1471
|
-
lastActivityAt: typeof meta.lastActivityAt === "number" ? meta.lastActivityAt : Date.now(),
|
|
1472
|
-
});
|
|
1631
|
+
const sid = await this.restoreOne(id);
|
|
1632
|
+
if (sid !== null)
|
|
1473
1633
|
restored.push(sid);
|
|
1474
|
-
}
|
|
1475
|
-
catch (err) {
|
|
1476
|
-
// eslint-disable-next-line no-console
|
|
1477
|
-
console.warn(`[runtime] skipping ${id}: ${err.message}`);
|
|
1478
|
-
}
|
|
1479
1634
|
}
|
|
1480
1635
|
return restored;
|
|
1481
1636
|
}
|
|
1637
|
+
/**
|
|
1638
|
+
* Read and parse `.bp/<id>/meta.json`. Returns null when the directory has no
|
|
1639
|
+
* meta.json (not a session dir) or the file is malformed. Shared by
|
|
1640
|
+
* `restoreOne`, `restoreFromDisk`, and the discovery path in `listSessions`.
|
|
1641
|
+
*/
|
|
1642
|
+
async readMeta(id) {
|
|
1643
|
+
try {
|
|
1644
|
+
const raw = await readFile(join(this.dataRoot, ".bp", id, "meta.json"), "utf8");
|
|
1645
|
+
return JSON.parse(raw);
|
|
1646
|
+
}
|
|
1647
|
+
catch {
|
|
1648
|
+
return null;
|
|
1649
|
+
}
|
|
1650
|
+
}
|
|
1651
|
+
/**
|
|
1652
|
+
* Revive a single persisted session from disk into memory. Returns the
|
|
1653
|
+
* restored session id only when it was **freshly** loaded this call — null
|
|
1654
|
+
* when the session is already in memory (idempotent no-op) or there's no valid
|
|
1655
|
+
* meta.json on disk. `restoreFromDisk` relies on this to report only newly
|
|
1656
|
+
* restored ids; `ensureLoaded` layers "already loaded" on top separately.
|
|
1657
|
+
* §10 策略A: agents start idle and are lazily spawned on the next message.
|
|
1658
|
+
*/
|
|
1659
|
+
async restoreOne(id) {
|
|
1660
|
+
if (this.sessions.has(id))
|
|
1661
|
+
return null;
|
|
1662
|
+
const meta = await this.readMeta(id);
|
|
1663
|
+
if (!meta)
|
|
1664
|
+
return null;
|
|
1665
|
+
const sid = meta.id ?? id;
|
|
1666
|
+
if (this.sessions.has(sid))
|
|
1667
|
+
return null;
|
|
1668
|
+
try {
|
|
1669
|
+
const now = new Date().toISOString();
|
|
1670
|
+
await this.createSession({ id: sid, title: meta.title }, {
|
|
1671
|
+
createdAt: meta.createdAt ?? now,
|
|
1672
|
+
updatedAt: meta.updatedAt ?? now,
|
|
1673
|
+
lastActivityAt: typeof meta.lastActivityAt === "number" ? meta.lastActivityAt : Date.now(),
|
|
1674
|
+
});
|
|
1675
|
+
return sid;
|
|
1676
|
+
}
|
|
1677
|
+
catch (err) {
|
|
1678
|
+
// eslint-disable-next-line no-console
|
|
1679
|
+
console.warn(`[runtime] skipping ${id}: ${err.message}`);
|
|
1680
|
+
return null;
|
|
1681
|
+
}
|
|
1682
|
+
}
|
|
1482
1683
|
}
|
|
1483
1684
|
//# sourceMappingURL=session-manager.js.map
|