instar 1.3.32 → 1.3.33
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/server.d.ts.map +1 -1
- package/dist/commands/server.js +47 -1
- package/dist/commands/server.js.map +1 -1
- package/dist/core/types.d.ts +16 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/feedback-factory/dryrun/dryRunCompare.d.ts +82 -0
- package/dist/feedback-factory/dryrun/dryRunCompare.d.ts.map +1 -0
- package/dist/feedback-factory/dryrun/dryRunCompare.js +88 -0
- package/dist/feedback-factory/dryrun/dryRunCompare.js.map +1 -0
- package/dist/feedback-factory/processor/parity.d.ts +111 -0
- package/dist/feedback-factory/processor/parity.d.ts.map +1 -0
- package/dist/feedback-factory/processor/parity.js +118 -0
- package/dist/feedback-factory/processor/parity.js.map +1 -0
- package/dist/feedback-factory/store/ReadOnlyShadowStore.d.ts +59 -0
- package/dist/feedback-factory/store/ReadOnlyShadowStore.d.ts.map +1 -0
- package/dist/feedback-factory/store/ReadOnlyShadowStore.js +88 -0
- package/dist/feedback-factory/store/ReadOnlyShadowStore.js.map +1 -0
- package/dist/monitoring/StopNotifier.d.ts +88 -0
- package/dist/monitoring/StopNotifier.d.ts.map +1 -0
- package/dist/monitoring/StopNotifier.js +105 -0
- package/dist/monitoring/StopNotifier.js.map +1 -0
- package/dist/server/AgentServer.d.ts +2 -0
- package/dist/server/AgentServer.d.ts.map +1 -1
- package/dist/server/AgentServer.js +1 -0
- package/dist/server/AgentServer.js.map +1 -1
- package/dist/server/routes.d.ts +4 -0
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/routes.js +13 -0
- package/dist/server/routes.js.map +1 -1
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +47 -47
- package/upgrades/1.3.31.md +9 -10
- package/upgrades/1.3.33.md +36 -0
- package/upgrades/side-effects/feedback-factory-dryrun.md +93 -0
- package/upgrades/side-effects/notify-on-stop-layer-b.md +34 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAiRH,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;2DACuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAksDD,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAiRH,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;2DACuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAksDD,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAi2MtE;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsDzE;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuD5E"}
|
package/dist/commands/server.js
CHANGED
|
@@ -6977,6 +6977,52 @@ export async function startServer(options) {
|
|
|
6977
6977
|
});
|
|
6978
6978
|
console.log(pc.green(` Unjustified Stop Gate: ${activeMode}${unjustifiedStopGate && stopGateDb ? ' (authority + SQLite wired)' : ' (degraded, fail-open)'}`));
|
|
6979
6979
|
}
|
|
6980
|
+
// notify-on-stop Layer B — surface a genuinely-stuck UNATTENDED stop to the
|
|
6981
|
+
// user (docs/specs/NOTIFY-ON-STOP-SPEC.md). The evaluate route feeds each
|
|
6982
|
+
// decision to StopNotifier, which filters to the notify-worthy classes
|
|
6983
|
+
// (shadow+continue / escalate), the attended-gate, and per-session dedup,
|
|
6984
|
+
// then hands a coalesced one-liner to a dedicated SentinelNotifier sink
|
|
6985
|
+
// (single lifeline topic, log-always — reuses the post-2026-05-22 discipline).
|
|
6986
|
+
// Default ON (Justin's "tell me why it stopped"); requires telegram wired.
|
|
6987
|
+
let stopNotifier = null;
|
|
6988
|
+
{
|
|
6989
|
+
const nosCfg = config.monitoring?.notifyOnStop ?? {};
|
|
6990
|
+
const nosEnabled = nosCfg.enabled !== false; // default true
|
|
6991
|
+
const localTg = telegram;
|
|
6992
|
+
if (nosEnabled && localTg) {
|
|
6993
|
+
const stopLogPath = path.join(config.stateDir, '..', 'logs', 'sentinel-events.jsonl');
|
|
6994
|
+
const stopLog = (entry) => {
|
|
6995
|
+
try {
|
|
6996
|
+
fs.appendFileSync(stopLogPath, JSON.stringify({ ...entry, sentinel: 'stop-notify', ts: new Date().toISOString() }) + '\n');
|
|
6997
|
+
}
|
|
6998
|
+
catch { /* best-effort */ }
|
|
6999
|
+
};
|
|
7000
|
+
const send = async (text) => {
|
|
7001
|
+
const topicId = localTg.getLifelineTopicId();
|
|
7002
|
+
if (!topicId)
|
|
7003
|
+
return false;
|
|
7004
|
+
try {
|
|
7005
|
+
await localTg.sendToTopic(topicId, text);
|
|
7006
|
+
return true;
|
|
7007
|
+
}
|
|
7008
|
+
catch {
|
|
7009
|
+
return false;
|
|
7010
|
+
}
|
|
7011
|
+
};
|
|
7012
|
+
const { SentinelNotifier } = await import('../monitoring/SentinelNotifier.js');
|
|
7013
|
+
const stopSink = new SentinelNotifier({ log: stopLog, sendConsolidated: send }, { telegramEscalation: true });
|
|
7014
|
+
const { StopNotifier } = await import('../monitoring/StopNotifier.js');
|
|
7015
|
+
stopNotifier = new StopNotifier({ escalate: (name, text) => stopSink.escalate('stop-gate', name, text) }, {
|
|
7016
|
+
enabled: true,
|
|
7017
|
+
unattendedOnly: nosCfg.unattendedOnly !== false,
|
|
7018
|
+
...(typeof nosCfg.cooldownMs === 'number' ? { cooldownMs: nosCfg.cooldownMs } : {}),
|
|
7019
|
+
});
|
|
7020
|
+
console.log(pc.green(' notify-on-stop Layer B: enabled (unjustified-stall heads-up — unattended-only, deduped, coalesced)'));
|
|
7021
|
+
}
|
|
7022
|
+
else {
|
|
7023
|
+
console.log(pc.dim(` notify-on-stop Layer B: ${nosEnabled ? 'idle (no telegram)' : 'disabled by config'}`));
|
|
7024
|
+
}
|
|
7025
|
+
}
|
|
6980
7026
|
// Response Review Pipeline (Coherence Gate) — evaluates agent responses before delivery.
|
|
6981
7027
|
// Prefers the shared IntelligenceProvider (subscription-compatible) so the gate works
|
|
6982
7028
|
// even without ANTHROPIC_API_KEY. Falls back to direct Anthropic API if a key is set
|
|
@@ -7490,7 +7536,7 @@ export async function startServer(options) {
|
|
|
7490
7536
|
? ' SessionReaper enabled (idle-session reaper — LIVE)'
|
|
7491
7537
|
: ' SessionReaper enabled (idle-session reaper — dry-run, logs only)'));
|
|
7492
7538
|
}
|
|
7493
|
-
const server = new AgentServer({ config, sessionManager, state, scheduler, telegram, relationships, feedback, feedbackAnomalyDetector, dispatches, updateChecker, autoUpdater, autoDispatcher, quotaTracker, quotaManager, publisher, viewer, tunnel, evolution, watchdog, topicMemory, triageNurse, projectMapper, coherenceGate: scopeVerifier, contextHierarchy, canonicalState, operationGate, sentinel, adaptiveTrust, memoryMonitor, orphanReaper, coherenceMonitor, commitmentTracker, semanticMemory, activitySentinel, rateLimitSentinel, messageRouter, summarySentinel, spawnManager, systemReviewer, capabilityMapper, selfKnowledgeTree, coverageAuditor, topicResumeMap: _topicResumeMap ?? undefined, sessionRefresh: _sessionRefresh ?? undefined, autonomyManager, trustElevationTracker, autonomousEvolution, coordinator: coordinator.enabled ? coordinator : undefined, localSigningKeyPem, whatsapp: whatsappAdapter, slack: slackAdapter, imessage: imessageAdapter, whatsappBusinessBackend, messageBridge, hookEventReceiver, worktreeMonitor, subagentTracker, instructionsVerifier, handshakeManager: threadlineHandshake, threadlineRouter, conversationStore, warrantsReplyGate, collaborationSurfacer, threadResumeMap, topicLinkageHandler: topicLinkageHandler ?? undefined, threadlineRelayClient, threadlineReplyWaiters, listenerManager: listenerManager ?? undefined, responseReviewGate, messagingToneGate, outboundDedupGate, telemetryHeartbeat, pasteManager, featureRegistry, discoveryEvaluator, completionEvaluator, unifiedTrust, liveConfig, sharedStateLedger, ledgerSessionRegistry, worktreeManager, oidcEnrolledRepos: parallelDevConfig?.oidcEnrolledRepos, initiativeTracker, projectRoundRunner, projectDriftChecker, machineHeartbeat, proxyCoordinator, topicIntentStore, usherSignalStore, intelligence: sharedIntelligence ?? undefined, telegramBridgeConfig, telegramBridge: telegramBridge ?? undefined, threadlineObservability, workingMemory, taskFlowRegistry, threadlineFlowBridge, sessionReaper, unjustifiedStopGate, stopGateDb });
|
|
7539
|
+
const server = new AgentServer({ config, sessionManager, state, scheduler, telegram, relationships, feedback, feedbackAnomalyDetector, dispatches, updateChecker, autoUpdater, autoDispatcher, quotaTracker, quotaManager, publisher, viewer, tunnel, evolution, watchdog, topicMemory, triageNurse, projectMapper, coherenceGate: scopeVerifier, contextHierarchy, canonicalState, operationGate, sentinel, adaptiveTrust, memoryMonitor, orphanReaper, coherenceMonitor, commitmentTracker, semanticMemory, activitySentinel, rateLimitSentinel, messageRouter, summarySentinel, spawnManager, systemReviewer, capabilityMapper, selfKnowledgeTree, coverageAuditor, topicResumeMap: _topicResumeMap ?? undefined, sessionRefresh: _sessionRefresh ?? undefined, autonomyManager, trustElevationTracker, autonomousEvolution, coordinator: coordinator.enabled ? coordinator : undefined, localSigningKeyPem, whatsapp: whatsappAdapter, slack: slackAdapter, imessage: imessageAdapter, whatsappBusinessBackend, messageBridge, hookEventReceiver, worktreeMonitor, subagentTracker, instructionsVerifier, handshakeManager: threadlineHandshake, threadlineRouter, conversationStore, warrantsReplyGate, collaborationSurfacer, threadResumeMap, topicLinkageHandler: topicLinkageHandler ?? undefined, threadlineRelayClient, threadlineReplyWaiters, listenerManager: listenerManager ?? undefined, responseReviewGate, messagingToneGate, outboundDedupGate, telemetryHeartbeat, pasteManager, featureRegistry, discoveryEvaluator, completionEvaluator, unifiedTrust, liveConfig, sharedStateLedger, ledgerSessionRegistry, worktreeManager, oidcEnrolledRepos: parallelDevConfig?.oidcEnrolledRepos, initiativeTracker, projectRoundRunner, projectDriftChecker, machineHeartbeat, proxyCoordinator, topicIntentStore, usherSignalStore, intelligence: sharedIntelligence ?? undefined, telegramBridgeConfig, telegramBridge: telegramBridge ?? undefined, threadlineObservability, workingMemory, taskFlowRegistry, threadlineFlowBridge, sessionReaper, unjustifiedStopGate, stopGateDb, stopNotifier });
|
|
7494
7540
|
// Boot-recovery (tunnel-failure-resilience spec Part 6): if the agent
|
|
7495
7541
|
// died mid-relay-episode, the persisted tunnel.json carries
|
|
7496
7542
|
// rotationPending=true. Rotate the dashboard PIN + authToken BEFORE
|