@adhdev/daemon-core 0.9.34 → 0.9.35
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/cli-adapter-types.d.ts +1 -0
- package/dist/cli-adapters/provider-cli-adapter.d.ts +6 -0
- package/dist/index.js +64 -15
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +64 -15
- package/dist/index.mjs.map +1 -1
- package/dist/providers/cli-provider-instance.d.ts +1 -0
- package/dist/providers/provider-instance-manager.d.ts +1 -0
- package/dist/providers/provider-instance.d.ts +3 -1
- package/node_modules/@adhdev/session-host-core/package.json +1 -1
- package/package.json +1 -1
- package/src/cli-adapter-types.ts +1 -0
- package/src/cli-adapters/provider-cli-adapter.ts +38 -0
- package/src/commands/handler.ts +10 -1
- package/src/daemon/dev-server.ts +3 -14
- package/src/providers/cli-provider-instance.ts +10 -0
- package/src/providers/provider-instance-manager.ts +15 -0
- package/src/providers/provider-instance.ts +3 -0
package/dist/index.mjs
CHANGED
|
@@ -2084,6 +2084,8 @@ var init_provider_cli_adapter = __esm({
|
|
|
2084
2084
|
messages = [];
|
|
2085
2085
|
committedMessages = [];
|
|
2086
2086
|
structuredMessages = [];
|
|
2087
|
+
committedMessagesActivitySignature = "";
|
|
2088
|
+
committedMessagesChangedAt = 0;
|
|
2087
2089
|
currentStatus = "starting";
|
|
2088
2090
|
onStatusChange = null;
|
|
2089
2091
|
responseBuffer = "";
|
|
@@ -2165,10 +2167,35 @@ var init_provider_cli_adapter = __esm({
|
|
|
2165
2167
|
providerResolutionMeta;
|
|
2166
2168
|
static FINISH_RETRY_DELAY_MS = 300;
|
|
2167
2169
|
static MAX_FINISH_RETRIES = 2;
|
|
2170
|
+
buildCommittedMessagesActivitySignature() {
|
|
2171
|
+
const last = this.committedMessages[this.committedMessages.length - 1];
|
|
2172
|
+
return [
|
|
2173
|
+
String(this.committedMessages.length),
|
|
2174
|
+
String(last?.role || ""),
|
|
2175
|
+
String(last?.kind || ""),
|
|
2176
|
+
String(last?.senderName || ""),
|
|
2177
|
+
String(last?.timestamp || ""),
|
|
2178
|
+
String(last?.receivedAt || ""),
|
|
2179
|
+
normalizeComparableMessageContent(last?.content || "").slice(-240)
|
|
2180
|
+
].join("|");
|
|
2181
|
+
}
|
|
2168
2182
|
syncMessageViews() {
|
|
2183
|
+
const signature = this.buildCommittedMessagesActivitySignature();
|
|
2184
|
+
if (signature !== this.committedMessagesActivitySignature) {
|
|
2185
|
+
this.committedMessagesActivitySignature = signature;
|
|
2186
|
+
this.committedMessagesChangedAt = Date.now();
|
|
2187
|
+
}
|
|
2169
2188
|
this.messages = [...this.committedMessages];
|
|
2170
2189
|
this.structuredMessages = [...this.committedMessages];
|
|
2171
2190
|
}
|
|
2191
|
+
getLastCommittedMessageActivityAt() {
|
|
2192
|
+
const last = this.committedMessages[this.committedMessages.length - 1];
|
|
2193
|
+
const messageTime = Math.max(
|
|
2194
|
+
typeof last?.receivedAt === "number" && Number.isFinite(last.receivedAt) ? last.receivedAt : 0,
|
|
2195
|
+
typeof last?.timestamp === "number" && Number.isFinite(last.timestamp) ? last.timestamp : 0
|
|
2196
|
+
);
|
|
2197
|
+
return Math.max(messageTime, this.committedMessagesChangedAt || 0);
|
|
2198
|
+
}
|
|
2172
2199
|
readTerminalScreenText(now = Date.now()) {
|
|
2173
2200
|
const screenText = this.terminalScreen.getText() || "";
|
|
2174
2201
|
this.lastScreenText = screenText;
|
|
@@ -2308,9 +2335,16 @@ var init_provider_cli_adapter = __esm({
|
|
|
2308
2335
|
/** Inject CLI scripts after construction (e.g. when resolved by ProviderLoader) */
|
|
2309
2336
|
setCliScripts(scripts) {
|
|
2310
2337
|
this.cliScripts = scripts;
|
|
2338
|
+
this.parsedStatusCache = null;
|
|
2339
|
+
this.parseErrorMessage = null;
|
|
2311
2340
|
const scriptNames = listCliScriptNames(scripts);
|
|
2312
2341
|
LOG.info("CLI", `[${this.cliType}] CLI scripts injected: [${scriptNames.join(", ")}]`);
|
|
2313
2342
|
}
|
|
2343
|
+
/** Refresh provider scripts/config used by this adapter without restarting the PTY runtime. */
|
|
2344
|
+
refreshProviderDefinition(provider) {
|
|
2345
|
+
this.provider = provider;
|
|
2346
|
+
this.setCliScripts(provider.scripts || {});
|
|
2347
|
+
}
|
|
2314
2348
|
updateRuntimeSettings(settings) {
|
|
2315
2349
|
this.runtimeSettings = { ...settings };
|
|
2316
2350
|
}
|
|
@@ -12825,7 +12859,14 @@ var DaemonCommandHandler = class {
|
|
|
12825
12859
|
await this._ctx.providerLoader.fetchLatest().catch(() => {
|
|
12826
12860
|
});
|
|
12827
12861
|
this._ctx.providerLoader.reload();
|
|
12828
|
-
|
|
12862
|
+
this._ctx.providerLoader.registerToDetector();
|
|
12863
|
+
const refreshedInstances = this._ctx.instanceManager ? this._ctx.instanceManager.refreshProviderDefinitions((providerType) => this._ctx.providerLoader.resolve(providerType)) : 0;
|
|
12864
|
+
const providers = this._ctx.providerLoader.getAll().map((provider) => ({
|
|
12865
|
+
type: provider.type,
|
|
12866
|
+
name: provider.name,
|
|
12867
|
+
category: provider.category
|
|
12868
|
+
}));
|
|
12869
|
+
return { success: true, refreshedInstances, providers };
|
|
12829
12870
|
}
|
|
12830
12871
|
return { success: false, error: "ProviderLoader not initialized" };
|
|
12831
12872
|
}
|
|
@@ -13080,6 +13121,11 @@ var CliProviderInstance = class {
|
|
|
13080
13121
|
launchMode;
|
|
13081
13122
|
startedAt = Date.now();
|
|
13082
13123
|
onProviderSessionResolved;
|
|
13124
|
+
refreshProviderDefinition(provider) {
|
|
13125
|
+
if (provider.type !== this.type || provider.category !== "cli") return;
|
|
13126
|
+
this.provider = provider;
|
|
13127
|
+
this.adapter.refreshProviderDefinition(provider);
|
|
13128
|
+
}
|
|
13083
13129
|
// ─── Lifecycle ─────────────────────────────────
|
|
13084
13130
|
async init(context) {
|
|
13085
13131
|
this.context = context;
|
|
@@ -13290,9 +13336,11 @@ var CliProviderInstance = class {
|
|
|
13290
13336
|
const autoApproveActive = adapterStatus.status === "waiting_approval" && this.shouldAutoApprove();
|
|
13291
13337
|
const visibleStatus = autoApproveActive ? "generating" : adapterStatus.status;
|
|
13292
13338
|
const runtime = this.adapter.getRuntimeMetadata();
|
|
13339
|
+
const lastCommittedMessageActivityAt = typeof this.adapter.getLastCommittedMessageActivityAt === "function" ? this.adapter.getLastCommittedMessageActivityAt() : 0;
|
|
13293
13340
|
return {
|
|
13294
13341
|
id: this.instanceId,
|
|
13295
13342
|
status: visibleStatus,
|
|
13343
|
+
lastMessageAt: lastCommittedMessageActivityAt || void 0,
|
|
13296
13344
|
runtimeLifecycle: runtime?.lifecycle ?? null,
|
|
13297
13345
|
runtimeSurfaceKind: runtime?.surfaceKind,
|
|
13298
13346
|
runtimeRestoredFromStorage: runtime?.restoredFromStorage === true,
|
|
@@ -20784,6 +20832,9 @@ function projectHotChatSessionStatesFromProviderState(state) {
|
|
|
20784
20832
|
const project = (item) => ({
|
|
20785
20833
|
id: item.instanceId,
|
|
20786
20834
|
status: item.activeChat?.status || item.status,
|
|
20835
|
+
unread: item.unread,
|
|
20836
|
+
inboxBucket: item.inboxBucket,
|
|
20837
|
+
lastMessageAt: item.lastMessageAt ?? item.activeChat?.lastMessageAt,
|
|
20787
20838
|
runtimeLifecycle: item.runtime?.lifecycle ?? null,
|
|
20788
20839
|
runtimeSurfaceKind: item.runtime?.surfaceKind,
|
|
20789
20840
|
runtimeRestoredFromStorage: item.runtime?.restoredFromStorage === true,
|
|
@@ -20991,6 +21042,17 @@ var ProviderInstanceManager = class {
|
|
|
20991
21042
|
}
|
|
20992
21043
|
return updated;
|
|
20993
21044
|
}
|
|
21045
|
+
refreshProviderDefinitions(resolveProvider) {
|
|
21046
|
+
let refreshed = 0;
|
|
21047
|
+
for (const instance of this.instances.values()) {
|
|
21048
|
+
if (typeof instance.refreshProviderDefinition !== "function") continue;
|
|
21049
|
+
const provider = resolveProvider(instance.type);
|
|
21050
|
+
if (!provider || typeof provider !== "object") continue;
|
|
21051
|
+
instance.refreshProviderDefinition(provider);
|
|
21052
|
+
refreshed += 1;
|
|
21053
|
+
}
|
|
21054
|
+
return refreshed;
|
|
21055
|
+
}
|
|
20994
21056
|
// ─── cleanup ──────────────────────────────────────
|
|
20995
21057
|
/**
|
|
20996
21058
|
* All terminate
|
|
@@ -25235,20 +25297,7 @@ var DevServer = class _DevServer {
|
|
|
25235
25297
|
async handleReload(_req, res) {
|
|
25236
25298
|
try {
|
|
25237
25299
|
this.providerLoader.reload();
|
|
25238
|
-
|
|
25239
|
-
if (this.instanceManager) {
|
|
25240
|
-
for (const id of this.instanceManager.listInstanceIds()) {
|
|
25241
|
-
const instance = this.instanceManager.getInstance(id);
|
|
25242
|
-
const providerType = typeof instance?.type === "string" ? instance.type : "";
|
|
25243
|
-
if (!providerType) continue;
|
|
25244
|
-
const resolved = this.providerLoader.resolve(providerType);
|
|
25245
|
-
if (!resolved) continue;
|
|
25246
|
-
if (instance && typeof instance === "object" && "provider" in instance) {
|
|
25247
|
-
instance.provider = resolved;
|
|
25248
|
-
refreshedInstances += 1;
|
|
25249
|
-
}
|
|
25250
|
-
}
|
|
25251
|
-
}
|
|
25300
|
+
const refreshedInstances = this.instanceManager ? this.instanceManager.refreshProviderDefinitions((providerType) => this.providerLoader.resolve(providerType)) : 0;
|
|
25252
25301
|
const providers = this.providerLoader.getAll().map((p) => ({
|
|
25253
25302
|
type: p.type,
|
|
25254
25303
|
name: p.name,
|