instar 1.3.1600 → 1.3.1602
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/commands/init.d.ts +7 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +8 -1
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/server.d.ts.map +1 -1
- package/dist/commands/server.js +65 -0
- package/dist/commands/server.js.map +1 -1
- package/dist/core/AppConversationService.d.ts +39 -1
- package/dist/core/AppConversationService.d.ts.map +1 -1
- package/dist/core/AppConversationService.js +137 -2
- package/dist/core/AppConversationService.js.map +1 -1
- package/dist/core/AppConversationStore.d.ts +2 -0
- package/dist/core/AppConversationStore.d.ts.map +1 -1
- package/dist/core/AppConversationStore.js +4 -0
- package/dist/core/AppConversationStore.js.map +1 -1
- package/dist/core/AppMediaReplicator.d.ts +241 -0
- package/dist/core/AppMediaReplicator.d.ts.map +1 -0
- package/dist/core/AppMediaReplicator.js +903 -0
- package/dist/core/AppMediaReplicator.js.map +1 -0
- package/dist/core/AppMediaStore.d.ts +28 -0
- package/dist/core/AppMediaStore.d.ts.map +1 -1
- package/dist/core/AppMediaStore.js +87 -13
- package/dist/core/AppMediaStore.js.map +1 -1
- package/dist/core/BrowserCareProbes.d.ts +15 -0
- package/dist/core/BrowserCareProbes.d.ts.map +1 -0
- package/dist/core/BrowserCareProbes.js +78 -0
- package/dist/core/BrowserCareProbes.js.map +1 -0
- package/dist/core/MachineLockStateReader.d.ts +34 -0
- package/dist/core/MachineLockStateReader.d.ts.map +1 -0
- package/dist/core/MachineLockStateReader.js +114 -0
- package/dist/core/MachineLockStateReader.js.map +1 -0
- package/dist/core/MeshRpc.d.ts +1 -1
- package/dist/core/MeshRpc.d.ts.map +1 -1
- package/dist/core/MeshRpc.js +4 -0
- package/dist/core/MeshRpc.js.map +1 -1
- package/dist/core/PostUpdateMigrator.d.ts +14 -0
- package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
- package/dist/core/PostUpdateMigrator.js +60 -2
- package/dist/core/PostUpdateMigrator.js.map +1 -1
- package/dist/core/WindowRunLivenessAuthority.d.ts.map +1 -1
- package/dist/core/WindowRunLivenessAuthority.js +11 -1
- package/dist/core/WindowRunLivenessAuthority.js.map +1 -1
- package/dist/core/appConversationText.d.ts +5 -0
- package/dist/core/appConversationText.d.ts.map +1 -1
- package/dist/core/appConversationText.js +17 -2
- package/dist/core/appConversationText.js.map +1 -1
- package/dist/core/appInboundDispatch.d.ts +14 -0
- package/dist/core/appInboundDispatch.d.ts.map +1 -1
- package/dist/core/appInboundDispatch.js +25 -0
- package/dist/core/appInboundDispatch.js.map +1 -1
- package/dist/core/types.d.ts +10 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/data/standards-guard-index.json +1 -1
- package/dist/data/standards-guard-index.meta.json +2 -2
- package/dist/data/standards-registry.meta.json +1 -1
- package/dist/monitoring/machineMaintenance/BrowserCare.d.ts +166 -0
- package/dist/monitoring/machineMaintenance/BrowserCare.d.ts.map +1 -0
- package/dist/monitoring/machineMaintenance/BrowserCare.js +334 -0
- package/dist/monitoring/machineMaintenance/BrowserCare.js.map +1 -0
- package/dist/monitoring/machineMaintenance/lockState.d.ts +34 -0
- package/dist/monitoring/machineMaintenance/lockState.d.ts.map +1 -0
- package/dist/monitoring/machineMaintenance/lockState.js +53 -0
- package/dist/monitoring/machineMaintenance/lockState.js.map +1 -0
- package/dist/monitoring/machineMaintenance/readings.d.ts +4 -0
- package/dist/monitoring/machineMaintenance/readings.d.ts.map +1 -1
- package/dist/monitoring/machineMaintenance/readings.js +2 -1
- package/dist/monitoring/machineMaintenance/readings.js.map +1 -1
- package/dist/native/instar-desktop-host +0 -0
- package/dist/scaffold/templates.d.ts.map +1 -1
- package/dist/scaffold/templates.js +2 -1
- package/dist/scaffold/templates.js.map +1 -1
- package/dist/server/AgentServer.d.ts.map +1 -1
- package/dist/server/AgentServer.js +8 -1
- package/dist/server/AgentServer.js.map +1 -1
- package/dist/server/CapabilityIndex.js +3 -3
- package/dist/server/CapabilityIndex.js.map +1 -1
- package/dist/server/mobileConversationRoutes.d.ts +48 -0
- package/dist/server/mobileConversationRoutes.d.ts.map +1 -1
- package/dist/server/mobileConversationRoutes.js +259 -33
- package/dist/server/mobileConversationRoutes.js.map +1 -1
- package/dist/server/mobileMediaRoutes.d.ts.map +1 -1
- package/dist/server/mobileMediaRoutes.js +11 -1
- package/dist/server/mobileMediaRoutes.js.map +1 -1
- package/dist/server/mobilePairingRoutes.d.ts.map +1 -1
- package/dist/server/mobilePairingRoutes.js +34 -12
- package/dist/server/mobilePairingRoutes.js.map +1 -1
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/routes.js +47 -3
- package/dist/server/routes.js.map +1 -1
- package/dist/testing/selfActionRegistry.d.ts.map +1 -1
- package/dist/testing/selfActionRegistry.js +41 -0
- package/dist/testing/selfActionRegistry.js.map +1 -1
- package/package.json +1 -1
- package/scripts/blocking-decision-surfaces-baseline.json +22 -2
- package/src/data/builtin-manifest.json +64 -64
- package/src/data/standards-guard-index.json +1 -1
- package/src/data/standards-guard-index.meta.json +2 -2
- package/src/data/standards-registry.meta.json +1 -1
- package/src/data/state-coherence-registry.json +37 -0
- package/src/scaffold/templates.ts +2 -1
- package/src/templates/scripts/browser/chrome-close.sh +97 -0
- package/src/templates/scripts/browser/chrome-js.sh +2 -0
- package/src/templates/scripts/browser/chrome-launch.sh +16 -3
- package/src/templates/scripts/browser/chrome-ledger.sh +49 -0
- package/src/templates/scripts/browser/chrome-renew.sh +38 -0
- package/src/templates/scripts/browser/chrome-unsaved.sh +83 -0
- package/upgrades/1.3.1601.md +68 -0
- package/upgrades/1.3.1602.md +24 -0
- package/upgrades/side-effects/machine-self-maintenance-browser-care-lock-reading.md +98 -0
- package/upgrades/side-effects/mobile-native-chat-media-cross-machine.md +131 -0
- package/upgrades/side-effects/native-conversations-gaps.md +129 -0
- package/upgrades/side-effects/window-run-liveness-later-loss.md +81 -0
- package/upgrades/1.3.1600.md +0 -34
package/dist/commands/server.js
CHANGED
|
@@ -22870,6 +22870,44 @@ export async function startServer(options) {
|
|
|
22870
22870
|
});
|
|
22871
22871
|
setActiveDrainRehearsal(rehearsal);
|
|
22872
22872
|
rehearsal.start();
|
|
22873
|
+
// Honest lock reading (Part A): a read of the session, never the flag alone.
|
|
22874
|
+
const { MachineLockStateReader, setActiveMachineLockStateReader } = await import('../core/MachineLockStateReader.js');
|
|
22875
|
+
setActiveMachineLockStateReader(new MachineLockStateReader());
|
|
22876
|
+
// Browser care (Part B), watch-only: the sweep records what it WOULD close and has
|
|
22877
|
+
// no way to close anything. Only the macOS normal-Chrome helpers keep a ledger.
|
|
22878
|
+
if (process.platform === 'darwin') {
|
|
22879
|
+
const { BrowserCareSweep, normalizeBrowserCare, parseChromeProcesses, setActiveBrowserCare, DOWNLOAD_FRESH_MS } = await import('../monitoring/machineMaintenance/BrowserCare.js');
|
|
22880
|
+
const { makeTabChecker, makeDownloadCheck } = await import('../core/BrowserCareProbes.js');
|
|
22881
|
+
const { parseHidIdleMs } = await import('../monitoring/machineMaintenance/readings.js');
|
|
22882
|
+
const read = makeReadOnlyRunner(config.sessions.tmuxPath);
|
|
22883
|
+
const browserCare = new BrowserCareSweep({
|
|
22884
|
+
agentName: config.projectName,
|
|
22885
|
+
agentHome: projectDir,
|
|
22886
|
+
operatorChromeDir: path.join(os.homedir(), 'Library', 'Application Support', 'Google', 'Chrome'),
|
|
22887
|
+
ledgerDir: path.join(config.stateDir, 'state', 'browser-instances'),
|
|
22888
|
+
logPath: path.join(config.stateDir, '..', 'logs', 'browser-care.jsonl'),
|
|
22889
|
+
settings: () => normalizeBrowserCare(liveConfig.get('machineMaintenance.browserCare', undefined)),
|
|
22890
|
+
listChrome: async () => { const out = await read('chromeProcesses'); return out === null ? null : parseChromeProcesses(out); },
|
|
22891
|
+
tmuxSessions: async () => { const out = await read('tmuxSessions'); return out === null ? null : out.split('\n').map((l) => l.trim()).filter(Boolean); },
|
|
22892
|
+
inputIdleMs: async () => { const out = await read('inputIdle'); return out === null ? null : parseHidIdleMs(out); },
|
|
22893
|
+
signInRepairOpen: () => {
|
|
22894
|
+
const runtime = subscriptionReloginRuntime;
|
|
22895
|
+
if (!runtime)
|
|
22896
|
+
return false;
|
|
22897
|
+
try {
|
|
22898
|
+
return runtime.store.list({ limit: 500 }).some((e) => !['succeeded', 'refused', 'cancelled', 'failed'].includes(e.state));
|
|
22899
|
+
}
|
|
22900
|
+
catch {
|
|
22901
|
+
return null;
|
|
22902
|
+
} // @silent-fallback-ok — null reads as "repair state unknown", which keeps every browser
|
|
22903
|
+
},
|
|
22904
|
+
downloadActive: makeDownloadCheck(DOWNLOAD_FRESH_MS),
|
|
22905
|
+
checkTabs: makeTabChecker(projectDir),
|
|
22906
|
+
log: (line) => console.log(pc.yellow(` [browser-care] ${line}`)),
|
|
22907
|
+
});
|
|
22908
|
+
setActiveBrowserCare(browserCare);
|
|
22909
|
+
browserCare.start();
|
|
22910
|
+
}
|
|
22873
22911
|
}
|
|
22874
22912
|
}
|
|
22875
22913
|
catch (err) {
|
|
@@ -25105,6 +25143,14 @@ export async function startServer(options) {
|
|
|
25105
25143
|
// a mixed-version caller gets a clean answer, never no-handler
|
|
25106
25144
|
// surprises within one version); answers 'disabled' until the
|
|
25107
25145
|
// §3.7 replication gate constructs the serve side above.
|
|
25146
|
+
// mobile-native-chat-media §4.12 — the app media copy verb. Registered always (a
|
|
25147
|
+
// mixed-version caller gets a clean answer); 'disabled' without native conversations.
|
|
25148
|
+
// The serve side answers only for blobs an unpurged local event references.
|
|
25149
|
+
'app-media-pull': (cmd) => {
|
|
25150
|
+
if (!_appConversationService)
|
|
25151
|
+
return { ok: false, reason: 'app-media disabled' };
|
|
25152
|
+
return _appConversationService.replicator.serve(cmd);
|
|
25153
|
+
},
|
|
25108
25154
|
'working-set-pull': (cmd) => {
|
|
25109
25155
|
if (!workingSetPullServer)
|
|
25110
25156
|
return { ok: false, reason: 'working-set disabled' };
|
|
@@ -25460,6 +25506,25 @@ export async function startServer(options) {
|
|
|
25460
25506
|
return resolveMeshPeerUrl(meshResolver, machineId, entry.endpoints, entry.lastKnownUrl);
|
|
25461
25507
|
};
|
|
25462
25508
|
_meshSelfId = meshSelfId;
|
|
25509
|
+
// App media copying (mobile-native-chat-media §4.12): the replicator rides this same
|
|
25510
|
+
// signed transport. Peers are this agent's registered machines; online comes from the
|
|
25511
|
+
// pool registry when it has a capacity row (unknown otherwise).
|
|
25512
|
+
if (_appConversationService) {
|
|
25513
|
+
const { getActiveWorkAdmission } = await import('../core/workAdmission.js');
|
|
25514
|
+
_appConversationService.replicator.attachTransport({
|
|
25515
|
+
peers: () => meshIdMgr.getActiveMachines().filter((m) => m.machineId !== meshSelfId).map((m) => {
|
|
25516
|
+
const cap = machinePoolRegistry?.getCapacities().find((c) => c.machineId === m.machineId);
|
|
25517
|
+
return { machineId: m.machineId, nickname: cap?.nickname ?? m.entry?.name, online: cap ? cap.online !== false : null };
|
|
25518
|
+
}),
|
|
25519
|
+
send: async (machineId, command, timeoutMs) => {
|
|
25520
|
+
const url = peerUrl(machineId);
|
|
25521
|
+
if (!url)
|
|
25522
|
+
return { ok: false, reason: 'no-url' };
|
|
25523
|
+
return meshClient.send({ machineId, url }, command, 0, { timeoutMs });
|
|
25524
|
+
},
|
|
25525
|
+
loadVerdict: () => String(getActiveWorkAdmission()?.status().lastVerdict ?? 'unknown'),
|
|
25526
|
+
});
|
|
25527
|
+
}
|
|
25463
25528
|
_identityMeshSend = async (machineId, command, timeoutMs) => {
|
|
25464
25529
|
const url = peerUrl(machineId);
|
|
25465
25530
|
if (!url)
|