@adhdev/daemon-core 0.9.82-rc.514 → 0.9.82-rc.516
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/config/mesh-config.d.ts +8 -1
- package/dist/git/git-commands.d.ts +6 -1
- package/dist/index.js +65 -13
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +65 -13
- package/dist/index.mjs.map +1 -1
- package/dist/mesh/mesh-node-identity.d.ts +3 -0
- package/dist/mesh/mesh-node-slots.d.ts +13 -2
- package/dist/repo-mesh-types.d.ts +40 -0
- package/package.json +3 -3
- package/src/boot/daemon-lifecycle.ts +12 -1
- package/src/config/mesh-config.ts +14 -0
- package/src/git/git-commands.ts +27 -3
- package/src/mesh/mesh-node-identity.ts +79 -3
- package/src/mesh/mesh-node-slots.ts +13 -2
- package/src/repo-mesh-types.ts +41 -0
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Cloud mode syncs these to D1 via server routes; standalone mode
|
|
6
6
|
* uses this file as the single source of truth.
|
|
7
7
|
*/
|
|
8
|
-
import type { LocalMeshEntry, LocalMeshNodeEntry, RepoMeshPolicy, RepoMeshNodePolicy, RepoMeshNodeCapabilities, RepoMeshCoordinatorConfig, RepoMeshHostMetadata, RepoMeshDaemonRole } from '../repo-mesh-types.js';
|
|
8
|
+
import type { LocalMeshEntry, LocalMeshNodeEntry, RepoMeshPolicy, RepoMeshNodePolicy, RepoMeshNodeCapabilities, RepoMeshCoordinatorConfig, RepoMeshHostMetadata, RepoMeshDaemonRole, MeshReportedMemberState } from '../repo-mesh-types.js';
|
|
9
9
|
import type { MagiKindPanelMap, MagiSlot, DifficultyBrainMap } from '@adhdev/mesh-shared';
|
|
10
10
|
/**
|
|
11
11
|
* Migrate a node policy's legacy `providerRoles` cap onto `slots[].maxParallel`,
|
|
@@ -159,6 +159,13 @@ export declare function updateNode(meshId: string, nodeId: string, opts: {
|
|
|
159
159
|
* is overwritten by the next report. */
|
|
160
160
|
reportedProviderVersions?: Record<string, string>;
|
|
161
161
|
reportedDaemonBuildVersion?: string;
|
|
162
|
+
/** Unified mirrored member state (per-machine runtime facts: provider versions
|
|
163
|
+
* + daemon build + lastReportedAt) self-reported by the owning daemon on the
|
|
164
|
+
* git_status envelope. Persisted wholesale so a remote node's version chips
|
|
165
|
+
* survive a coordinator restart, mirroring the per-field reported* self-heal.
|
|
166
|
+
* Slots are NOT carried — they are coordinator-owned config
|
|
167
|
+
* (REMOTE-NODE-SLOTS-COORDINATOR-LOCAL fix). */
|
|
168
|
+
reportedMemberState?: MeshReportedMemberState;
|
|
162
169
|
}): LocalMeshNodeEntry | undefined;
|
|
163
170
|
/**
|
|
164
171
|
* Validate + normalize a kind-panel's slots (the SOLE MAGI slot normalizer): provider
|
|
@@ -119,7 +119,7 @@ export interface GitCommandServices {
|
|
|
119
119
|
* same way it does platform/arch. Wired at daemon boot from the cached CLI
|
|
120
120
|
* detection snapshot; omitted (⇒ versions not reported) when unavailable.
|
|
121
121
|
*/
|
|
122
|
-
getReporterProviderVersions?: () => {
|
|
122
|
+
getReporterProviderVersions?: (workspace?: string) => {
|
|
123
123
|
providerVersions?: Record<string, string>;
|
|
124
124
|
daemonBuildVersion?: string;
|
|
125
125
|
};
|
|
@@ -137,6 +137,11 @@ type GitCommandSuccess = {
|
|
|
137
137
|
reporterMachineNickname?: string;
|
|
138
138
|
reporterProviderVersions?: Record<string, string>;
|
|
139
139
|
reporterDaemonBuildVersion?: string;
|
|
140
|
+
reporterMemberState?: {
|
|
141
|
+
providerVersions?: Record<string, string>;
|
|
142
|
+
daemonBuildVersion?: string;
|
|
143
|
+
lastReportedAt?: number;
|
|
144
|
+
};
|
|
140
145
|
} | {
|
|
141
146
|
success: true;
|
|
142
147
|
diffSummary: GitDiffSummary;
|
package/dist/index.js
CHANGED
|
@@ -417,10 +417,10 @@ function readInjected(value) {
|
|
|
417
417
|
}
|
|
418
418
|
function getDaemonBuildInfo() {
|
|
419
419
|
if (cached) return cached;
|
|
420
|
-
const commit = readInjected(true ? "
|
|
421
|
-
const commitShort = readInjected(true ? "
|
|
422
|
-
const version = readInjected(true ? "0.9.82-rc.
|
|
423
|
-
const builtAt = readInjected(true ? "2026-07-
|
|
420
|
+
const commit = readInjected(true ? "44f968ef212752dc22351f84bb98ffd6c4b04718" : void 0) ?? "unknown";
|
|
421
|
+
const commitShort = readInjected(true ? "44f968ef" : void 0) ?? (commit !== "unknown" ? commit.slice(0, 7) : "unknown");
|
|
422
|
+
const version = readInjected(true ? "0.9.82-rc.516" : void 0) ?? readInjected(typeof process !== "undefined" ? process.env?.ADHDEV_PKG_VERSION : void 0) ?? "unknown";
|
|
423
|
+
const builtAt = readInjected(true ? "2026-07-13T10:57:56.058Z" : void 0);
|
|
424
424
|
cached = builtAt ? { commit, commitShort, version, builtAt } : { commit, commitShort, version };
|
|
425
425
|
return cached;
|
|
426
426
|
}
|
|
@@ -3533,6 +3533,9 @@ function updateNode(meshId, nodeId, opts) {
|
|
|
3533
3533
|
if (opts.reportedDaemonBuildVersion && opts.reportedDaemonBuildVersion.trim()) {
|
|
3534
3534
|
node.reportedDaemonBuildVersion = opts.reportedDaemonBuildVersion.trim();
|
|
3535
3535
|
}
|
|
3536
|
+
if (opts.reportedMemberState) {
|
|
3537
|
+
node.reportedMemberState = opts.reportedMemberState;
|
|
3538
|
+
}
|
|
3536
3539
|
if (opts.policy) node.policy = { ...node.policy, ...opts.policy };
|
|
3537
3540
|
if (Object.prototype.hasOwnProperty.call(opts, "capabilities")) {
|
|
3538
3541
|
const tags = normalizeCapabilityTags(opts.capabilities);
|
|
@@ -14589,7 +14592,8 @@ function recordInlineMeshDirectGitTruth(node, git, source) {
|
|
|
14589
14592
|
reporterArch: null,
|
|
14590
14593
|
reporterMachineNickname: null,
|
|
14591
14594
|
reporterProviderVersions: null,
|
|
14592
|
-
reporterDaemonBuildVersion: null
|
|
14595
|
+
reporterDaemonBuildVersion: null,
|
|
14596
|
+
reportedMemberState: null
|
|
14593
14597
|
};
|
|
14594
14598
|
}
|
|
14595
14599
|
const checkedAt = readNumberValue(git.lastCheckedAt) ?? Date.now();
|
|
@@ -14617,16 +14621,43 @@ function recordInlineMeshDirectGitTruth(node, git, source) {
|
|
|
14617
14621
|
if (reporterArch) node.reportedArch = reporterArch;
|
|
14618
14622
|
const reporterMachineNickname = readStringValue(git.reporterMachineNickname) ?? null;
|
|
14619
14623
|
if (reporterMachineNickname) node.machineNickname = reporterMachineNickname;
|
|
14620
|
-
const
|
|
14624
|
+
const unified = normalizeReportedMemberState(git.reporterMemberState);
|
|
14625
|
+
const reporterProviderVersions = (unified?.providerVersions ? readProviderVersionsRecord(unified.providerVersions) : null) ?? readProviderVersionsRecord(git.reporterProviderVersions) ?? (isLocalSource ? readLocalReporterProviderVersions() : null);
|
|
14621
14626
|
if (reporterProviderVersions) node.reportedProviderVersions = reporterProviderVersions;
|
|
14622
|
-
const reporterDaemonBuildVersion = readStringValue(git.reporterDaemonBuildVersion) ?? (isLocalSource ? readLocalReporterDaemonBuildVersion() : null) ?? null;
|
|
14627
|
+
const reporterDaemonBuildVersion = readStringValue(unified?.daemonBuildVersion) ?? readStringValue(git.reporterDaemonBuildVersion) ?? (isLocalSource ? readLocalReporterDaemonBuildVersion() : null) ?? null;
|
|
14623
14628
|
if (reporterDaemonBuildVersion) node.reportedDaemonBuildVersion = reporterDaemonBuildVersion;
|
|
14629
|
+
if (!isLocalSource) {
|
|
14630
|
+
const mirrored = {
|
|
14631
|
+
...reporterProviderVersions ? { providerVersions: reporterProviderVersions } : {},
|
|
14632
|
+
...reporterDaemonBuildVersion ? { daemonBuildVersion: reporterDaemonBuildVersion } : {},
|
|
14633
|
+
lastReportedAt: readNumberValue(unified?.lastReportedAt) ?? checkedAt
|
|
14634
|
+
};
|
|
14635
|
+
if (mirrored.providerVersions || mirrored.daemonBuildVersion) {
|
|
14636
|
+
node.reportedMemberState = mirrored;
|
|
14637
|
+
}
|
|
14638
|
+
}
|
|
14624
14639
|
return {
|
|
14625
14640
|
reporterPlatform,
|
|
14626
14641
|
reporterArch,
|
|
14627
14642
|
reporterMachineNickname,
|
|
14628
14643
|
reporterProviderVersions,
|
|
14629
|
-
reporterDaemonBuildVersion
|
|
14644
|
+
reporterDaemonBuildVersion,
|
|
14645
|
+
reportedMemberState: !isLocalSource ? node.reportedMemberState ?? null : null
|
|
14646
|
+
};
|
|
14647
|
+
}
|
|
14648
|
+
function normalizeReportedMemberState(value) {
|
|
14649
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) return null;
|
|
14650
|
+
const raw = value;
|
|
14651
|
+
const providerVersions = readProviderVersionsRecord(raw.providerVersions);
|
|
14652
|
+
const daemonBuildVersion = readStringValue(raw.daemonBuildVersion);
|
|
14653
|
+
const lastReportedAt = readNumberValue(raw.lastReportedAt);
|
|
14654
|
+
if (!providerVersions && !daemonBuildVersion && lastReportedAt === void 0) {
|
|
14655
|
+
return null;
|
|
14656
|
+
}
|
|
14657
|
+
return {
|
|
14658
|
+
...providerVersions ? { providerVersions } : {},
|
|
14659
|
+
...daemonBuildVersion ? { daemonBuildVersion } : {},
|
|
14660
|
+
...lastReportedAt !== void 0 ? { lastReportedAt } : {}
|
|
14630
14661
|
};
|
|
14631
14662
|
}
|
|
14632
14663
|
function readProviderVersionsRecord(value) {
|
|
@@ -14679,7 +14710,8 @@ function persistNodeReporterPlatform(meshSource, mesh, nodeId, reporter) {
|
|
|
14679
14710
|
const reportedMachineNickname = reporter.reporterMachineNickname ?? void 0;
|
|
14680
14711
|
const reportedProviderVersions = reporter.reporterProviderVersions ?? void 0;
|
|
14681
14712
|
const reportedDaemonBuildVersion = reporter.reporterDaemonBuildVersion ?? void 0;
|
|
14682
|
-
|
|
14713
|
+
const reportedMemberState = reporter.reportedMemberState ?? void 0;
|
|
14714
|
+
if (!reportedPlatform && !reportedArch && !reportedMachineNickname && !reportedProviderVersions && !reportedDaemonBuildVersion && !reportedMemberState) {
|
|
14683
14715
|
return;
|
|
14684
14716
|
}
|
|
14685
14717
|
void Promise.resolve().then(() => (init_mesh_config(), mesh_config_exports)).then(({ updateNode: updateNode2 }) => updateNode2(meshId, nodeId, {
|
|
@@ -14687,7 +14719,8 @@ function persistNodeReporterPlatform(meshSource, mesh, nodeId, reporter) {
|
|
|
14687
14719
|
reportedArch,
|
|
14688
14720
|
reportedMachineNickname,
|
|
14689
14721
|
reportedProviderVersions,
|
|
14690
|
-
reportedDaemonBuildVersion
|
|
14722
|
+
reportedDaemonBuildVersion,
|
|
14723
|
+
reportedMemberState
|
|
14691
14724
|
})).catch(() => {
|
|
14692
14725
|
});
|
|
14693
14726
|
}
|
|
@@ -15293,6 +15326,8 @@ async function probeRemoteMeshGitStatus(args) {
|
|
|
15293
15326
|
if (reporterProviderVersions) git.reporterProviderVersions = reporterProviderVersions;
|
|
15294
15327
|
const reporterDaemonBuildVersion = readStringValue(remoteResult?.reporterDaemonBuildVersion);
|
|
15295
15328
|
if (reporterDaemonBuildVersion) git.reporterDaemonBuildVersion = reporterDaemonBuildVersion;
|
|
15329
|
+
const reporterMemberState = normalizeReportedMemberState(remoteResult?.reporterMemberState);
|
|
15330
|
+
if (reporterMemberState) git.reporterMemberState = reporterMemberState;
|
|
15296
15331
|
return git;
|
|
15297
15332
|
}
|
|
15298
15333
|
function readMeshConnectionState(connection) {
|
|
@@ -29515,13 +29550,18 @@ async function handleGitCommand(command, args, services = defaultGitCommandServi
|
|
|
29515
29550
|
})();
|
|
29516
29551
|
const reporterVersions = (() => {
|
|
29517
29552
|
try {
|
|
29518
|
-
return services.getReporterProviderVersions?.() ?? {};
|
|
29553
|
+
return services.getReporterProviderVersions?.(workspace) ?? {};
|
|
29519
29554
|
} catch {
|
|
29520
29555
|
return {};
|
|
29521
29556
|
}
|
|
29522
29557
|
})();
|
|
29523
29558
|
const reporterProviderVersions = reporterVersions.providerVersions && Object.keys(reporterVersions.providerVersions).length > 0 ? reporterVersions.providerVersions : void 0;
|
|
29524
29559
|
const reporterDaemonBuildVersion = typeof reporterVersions.daemonBuildVersion === "string" && reporterVersions.daemonBuildVersion.trim() ? reporterVersions.daemonBuildVersion.trim() : void 0;
|
|
29560
|
+
const reporterMemberState = reporterProviderVersions || reporterDaemonBuildVersion ? {
|
|
29561
|
+
...reporterProviderVersions ? { providerVersions: reporterProviderVersions } : {},
|
|
29562
|
+
...reporterDaemonBuildVersion ? { daemonBuildVersion: reporterDaemonBuildVersion } : {},
|
|
29563
|
+
lastReportedAt: Date.now()
|
|
29564
|
+
} : void 0;
|
|
29525
29565
|
return {
|
|
29526
29566
|
success: true,
|
|
29527
29567
|
status,
|
|
@@ -29529,7 +29569,8 @@ async function handleGitCommand(command, args, services = defaultGitCommandServi
|
|
|
29529
29569
|
reporterArch: process.arch,
|
|
29530
29570
|
...reporterMachineNickname ? { reporterMachineNickname } : {},
|
|
29531
29571
|
...reporterProviderVersions ? { reporterProviderVersions } : {},
|
|
29532
|
-
...reporterDaemonBuildVersion ? { reporterDaemonBuildVersion } : {}
|
|
29572
|
+
...reporterDaemonBuildVersion ? { reporterDaemonBuildVersion } : {},
|
|
29573
|
+
...reporterMemberState ? { reporterMemberState } : {}
|
|
29533
29574
|
};
|
|
29534
29575
|
}
|
|
29535
29576
|
case "git_diff_summary": {
|
|
@@ -70995,7 +71036,18 @@ async function initDaemonComponents(config) {
|
|
|
70995
71036
|
gitCommandServices: createDefaultGitCommandServices({
|
|
70996
71037
|
// T7: fold this daemon's cached provider versions + build version onto the
|
|
70997
71038
|
// git_status envelope so the mesh coordinator self-heals each node's
|
|
70998
|
-
// providerVersions
|
|
71039
|
+
// providerVersions/build (the blue version chips) — these are per-machine
|
|
71040
|
+
// RUNTIME facts (e.g. this node has claude-cli@2.1.168 while the
|
|
71041
|
+
// coordinator has @2.1.170), so they stay reported. Non-blocking: reads a
|
|
71042
|
+
// TTL cache, lazily refreshed. (setDefaultProviderLoader is registered
|
|
71043
|
+
// above so getCachedProviderVersions is not empty — see the 380556d3
|
|
71044
|
+
// version-chip lesson.)
|
|
71045
|
+
//
|
|
71046
|
+
// Slots are NOT reported: they are coordinator-owned config
|
|
71047
|
+
// (node.policy.slots for every node, resolved via
|
|
71048
|
+
// resolveNodeCapabilitySlots), not a per-machine runtime fact — the
|
|
71049
|
+
// reporter round-trip for slots was removed (REMOTE-NODE-SLOTS-
|
|
71050
|
+
// COORDINATOR-LOCAL fix).
|
|
70999
71051
|
getReporterProviderVersions: () => {
|
|
71000
71052
|
const providerVersions = getCachedProviderVersions(providerLoader);
|
|
71001
71053
|
const daemonBuildVersion = getDaemonBuildInfo().version;
|