instar 1.3.1137 → 1.3.1139
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 +43 -5
- package/dist/commands/server.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/sentinelWiring.d.ts +6 -0
- package/dist/monitoring/sentinelWiring.d.ts.map +1 -1
- package/dist/monitoring/sentinelWiring.js +1 -0
- package/dist/monitoring/sentinelWiring.js.map +1 -1
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +2 -2
- 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/upgrades/1.3.1138.md +31 -0
- package/upgrades/1.3.1139.md +30 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA+EH,OAAO,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA+EH,OAAO,EAAE,cAAc,EAAwD,MAAM,2BAA2B,CAAC;AAUjH,OAAO,EAAE,eAAe,EAAiC,MAAM,iCAAiC,CAAC;AA0BjG,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAgI7D,OAAO,KAAK,EAAW,oBAAoB,EAAe,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACjG,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAgFtD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC1C,OAAO,CAUT;AAuID,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;2DACuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA+rDD;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,oBAAoB,GAAG,IAAI,GACxC;IACD,YAAY,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IAC3C,QAAQ,EAAE,MAAM,CAAC;CAClB,CAqBA;AAED,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,eAAe,EACzB,cAAc,EAAE,cAAc,EAC9B,YAAY,CAAC,EAAE,YAAY,EAC3B,WAAW,CAAC,EAAE,WAAW,EACzB,WAAW,CAAC,EAAE,WAAW,EACzB,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,EAGvE,UAAU,CAAC,EAAE,MAAM,OAAO,8BAA8B,EAAE,WAAW,GAAG,IAAI,EAK5E,qBAAqB,CAAC,EAAE,MAAM,OAAO,gCAAgC,EAAE,kBAAkB,GAAG,IAAI,EAKhG,mBAAmB,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,EAQrD,oBAAoB,CAAC,EAAE,MAAM;IAC3B,YAAY,EAAE,OAAO,kBAAkB,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACrE,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IAC3C,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,IAAI,GACP,IAAI,CAwtBN;AAgmBD,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA+jrBtE;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
|
@@ -69,7 +69,7 @@ import { AGE_LIMIT_ACTIVE_RUN_REASON, COMMITMENT_ACTIVE_RUN_REASON } from '../co
|
|
|
69
69
|
import { gapBEligibleForTopic, recentUserMessageFromHistory, recentUserMessageAtFromHistory, resolveGapBInjectionGate, decideGapBInjection } from '../core/gapBCommitmentEvidence.js';
|
|
70
70
|
import { TopicProfileTransferCarrier, createTopicProfilePullHandler } from '../core/TopicProfileTransferCarrier.js';
|
|
71
71
|
import { closeAllSqlite } from '../core/SqliteRegistry.js';
|
|
72
|
-
import { SessionManager } from '../core/SessionManager.js';
|
|
72
|
+
import { SessionManager, IDLE_PROMPT_PATTERNS } from '../core/SessionManager.js';
|
|
73
73
|
import { configureSyncOpMarker, defaultInflightMarkerReader } from '../core/InFlightSyncOpMarker.js';
|
|
74
74
|
import { StateManager } from '../core/StateManager.js';
|
|
75
75
|
import { StuckInputSentinel } from '../core/StuckInputSentinel.js';
|
|
@@ -11961,6 +11961,12 @@ export async function startServer(options) {
|
|
|
11961
11961
|
// Operator ask (2026-06-09): silence/recovery notices land in the
|
|
11962
11962
|
// STALLED session's OWN topic, not the consolidated lifeline feed.
|
|
11963
11963
|
getTopicForSession: (name) => telegram?.getTopicForSession(name),
|
|
11964
|
+
// A2(b): a finished turn sitting at a clean prompt is NOT a wedge.
|
|
11965
|
+
// Unwired, the sentinel defaults this to false and escalates such a
|
|
11966
|
+
// session as a "genuine freeze" — a false stuck-notice to the
|
|
11967
|
+
// operator. Uses the SHARED IDLE_PROMPT_PATTERNS export rather than a
|
|
11968
|
+
// parallel copy, per its own docblock.
|
|
11969
|
+
isCleanIdlePrompt: (frame) => IDLE_PROMPT_PATTERNS.some((pat) => frame.includes(pat)),
|
|
11964
11970
|
deliverToTopic: async (topicId, text) => {
|
|
11965
11971
|
try {
|
|
11966
11972
|
const resp = await fetch(`http://localhost:${config.port}/telegram/reply/${topicId}`, {
|
|
@@ -13910,10 +13916,26 @@ export async function startServer(options) {
|
|
|
13910
13916
|
const { AutonomousProgressHeartbeat } = await import('../monitoring/AutonomousProgressHeartbeat.js');
|
|
13911
13917
|
const { AutonomousHeartbeatRunStateStore } = await import('../monitoring/AutonomousHeartbeatRunStateStore.js');
|
|
13912
13918
|
const { activeAutonomousJobs, autonomousRunRemainingForTopic, readAutonomousRunMarkers, } = await import('../core/AutonomousSessions.js');
|
|
13913
|
-
const { ParallelActivityIndex: AHParallelActivityIndex } = await import('../core/ParallelActivityIndex.js');
|
|
13919
|
+
const { ParallelActivityIndex: AHParallelActivityIndex, runningTopicIds: ahRunningTopicIds } = await import('../core/ParallelActivityIndex.js');
|
|
13914
13920
|
// Own ParallelActivityIndex (focus source) — fetched ONCE per tick
|
|
13915
13921
|
// and indexed by topic inside the deps closure.
|
|
13916
|
-
|
|
13922
|
+
// Wired even though this caller reads only topicId/focus today: an
|
|
13923
|
+
// omitted `isRunning` is indistinguishable from "nothing is running",
|
|
13924
|
+
// so a future consumer of `running` here would inherit a silent false.
|
|
13925
|
+
const ahActivityIndex = new AHParallelActivityIndex({
|
|
13926
|
+
stateDir: config.stateDir,
|
|
13927
|
+
isRunning: (topicId) => {
|
|
13928
|
+
try {
|
|
13929
|
+
return ahRunningTopicIds(sessionManager.listRunningSessions(), (name) => telegram?.getTopicForSession?.(name)).has(topicId);
|
|
13930
|
+
}
|
|
13931
|
+
catch {
|
|
13932
|
+
// @silent-fallback-ok: `false` is the pre-existing value for an
|
|
13933
|
+
// unresolvable topic — the same value the optional dependency
|
|
13934
|
+
// defaults to — and this index feeds a focus lookup, never a gate.
|
|
13935
|
+
return false;
|
|
13936
|
+
}
|
|
13937
|
+
},
|
|
13938
|
+
});
|
|
13917
13939
|
const ahRunStateStore = new AutonomousHeartbeatRunStateStore(path.join(config.stateDir, 'state', 'autonomous-heartbeat.json'));
|
|
13918
13940
|
const localTelegram2 = telegram;
|
|
13919
13941
|
const autonomousHeartbeat = new AutonomousProgressHeartbeat({
|
|
@@ -14615,8 +14637,24 @@ export async function startServer(options) {
|
|
|
14615
14637
|
const { OrchestratorActuator } = await import('../core/OrchestratorActuator.js');
|
|
14616
14638
|
const { OrchestratorPoller } = await import('../monitoring/OrchestratorPoller.js');
|
|
14617
14639
|
const { OscillationBreaker } = await import('../core/OscillationBreaker.js');
|
|
14618
|
-
const { ParallelActivityIndex: SOActivityIndex } = await import('../core/ParallelActivityIndex.js');
|
|
14619
|
-
|
|
14640
|
+
const { ParallelActivityIndex: SOActivityIndex, runningTopicIds: soRunningTopicIds } = await import('../core/ParallelActivityIndex.js');
|
|
14641
|
+
// MUST be wired: `reads.activeTopicsOnThisMachine` below maps `running:
|
|
14642
|
+
// a.running` into SeamlessOrchestratorEngine. Unwired, a read literally
|
|
14643
|
+
// named "activeTopicsOnThisMachine" could never see an active topic.
|
|
14644
|
+
const soActivityIndex = new SOActivityIndex({
|
|
14645
|
+
stateDir: config.stateDir,
|
|
14646
|
+
isRunning: (topicId) => {
|
|
14647
|
+
try {
|
|
14648
|
+
return soRunningTopicIds(sessionManager.listRunningSessions(), (name) => telegram?.getTopicForSession?.(name)).has(topicId);
|
|
14649
|
+
}
|
|
14650
|
+
catch {
|
|
14651
|
+
// @silent-fallback-ok: `false` is the pre-existing value for an
|
|
14652
|
+
// unresolvable topic, and the orchestrator is dryRun-first; a
|
|
14653
|
+
// placement hint must never break the poller that reads it.
|
|
14654
|
+
return false;
|
|
14655
|
+
}
|
|
14656
|
+
},
|
|
14657
|
+
});
|
|
14620
14658
|
const soBreaker = new OscillationBreaker({
|
|
14621
14659
|
oscillationWindowMs: soNum(soCfg.oscillationWindowMs, 3_600_000),
|
|
14622
14660
|
blacklistTtlMs: soNum(soCfg.blacklistTtlMs, 86_400_000),
|