instar 1.3.844 → 1.3.846
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 +32 -0
- package/dist/commands/server.js.map +1 -1
- package/dist/monitoring/ApprenticeshipCycleStore.d.ts +3 -1
- package/dist/monitoring/ApprenticeshipCycleStore.d.ts.map +1 -1
- package/dist/monitoring/ApprenticeshipCycleStore.js +29 -9
- package/dist/monitoring/ApprenticeshipCycleStore.js.map +1 -1
- package/dist/monitoring/ApprenticeshipPeerCycleReader.d.ts +35 -0
- package/dist/monitoring/ApprenticeshipPeerCycleReader.d.ts.map +1 -0
- package/dist/monitoring/ApprenticeshipPeerCycleReader.js +82 -0
- package/dist/monitoring/ApprenticeshipPeerCycleReader.js.map +1 -0
- package/dist/monitoring/ResumeQueue.d.ts +6 -0
- package/dist/monitoring/ResumeQueue.d.ts.map +1 -1
- package/dist/monitoring/ResumeQueue.js +7 -2
- package/dist/monitoring/ResumeQueue.js.map +1 -1
- package/dist/monitoring/ResumeQueueDrainer.d.ts +4 -0
- package/dist/monitoring/ResumeQueueDrainer.d.ts.map +1 -1
- package/dist/monitoring/ResumeQueueDrainer.js +14 -0
- package/dist/monitoring/ResumeQueueDrainer.js.map +1 -1
- package/dist/scaffold/templates.d.ts.map +1 -1
- package/dist/scaffold/templates.js +1 -0
- package/dist/scaffold/templates.js.map +1 -1
- package/dist/server/AgentServer.d.ts +2 -0
- package/dist/server/AgentServer.d.ts.map +1 -1
- package/dist/server/AgentServer.js +8 -0
- package/dist/server/AgentServer.js.map +1 -1
- package/dist/server/middleware.d.ts.map +1 -1
- package/dist/server/middleware.js +4 -1
- package/dist/server/middleware.js.map +1 -1
- package/dist/server/routes.d.ts +2 -0
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/routes.js +96 -3
- package/dist/server/routes.js.map +1 -1
- package/dist/threadline/ListenerSessionManager.d.ts +26 -0
- package/dist/threadline/ListenerSessionManager.d.ts.map +1 -1
- package/dist/threadline/ListenerSessionManager.js +115 -1
- package/dist/threadline/ListenerSessionManager.js.map +1 -1
- package/dist/threadline/ThreadlineMCPServer.d.ts +2 -0
- package/dist/threadline/ThreadlineMCPServer.d.ts.map +1 -1
- package/dist/threadline/ThreadlineMCPServer.js +2 -0
- package/dist/threadline/ThreadlineMCPServer.js.map +1 -1
- package/dist/threadline/ThreadlineReapRecovery.d.ts +12 -0
- package/dist/threadline/ThreadlineReapRecovery.d.ts.map +1 -0
- package/dist/threadline/ThreadlineReapRecovery.js +60 -0
- package/dist/threadline/ThreadlineReapRecovery.js.map +1 -0
- package/dist/threadline/ThreadlineRouter.d.ts.map +1 -1
- package/dist/threadline/ThreadlineRouter.js +5 -2
- package/dist/threadline/ThreadlineRouter.js.map +1 -1
- package/dist/threadline/mcp-http-client.d.ts.map +1 -1
- package/dist/threadline/mcp-http-client.js +1 -0
- package/dist/threadline/mcp-http-client.js.map +1 -1
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +47 -47
- package/src/scaffold/templates.ts +1 -0
- package/upgrades/1.3.845.md +21 -0
- package/upgrades/1.3.846.md +20 -0
- package/upgrades/side-effects/apprenticeship-cross-agent-role-coverage.md +82 -0
- package/upgrades/side-effects/threadline-warm-reap-redrive.md +91 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA0DH,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAU3D,OAAO,EAAE,eAAe,EAAiC,MAAM,iCAAiC,CAAC;AA0BjG,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AA6H7D,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;AAyID,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;2DACuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAqoDD;;;;;;;;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,CAssBN;AAgmBD,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;AA0DH,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAU3D,OAAO,EAAE,eAAe,EAAiC,MAAM,iCAAiC,CAAC;AA0BjG,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AA6H7D,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;AAyID,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;2DACuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAqoDD;;;;;;;;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,CAssBN;AAgmBD,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA8hoBtE;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
|
@@ -8387,6 +8387,17 @@ export async function startServer(options) {
|
|
|
8387
8387
|
const rqCfg = config.monitoring?.resumeQueue ?? {};
|
|
8388
8388
|
let resumeQueue = null;
|
|
8389
8389
|
let resumeDrainer = null;
|
|
8390
|
+
// Constructed later in boot than the resume queue. These late-bound refs let
|
|
8391
|
+
// the queue's callbacks recover an unbound warm Threadline worker without
|
|
8392
|
+
// weakening boot ordering or inventing a second recovery loop.
|
|
8393
|
+
let threadlineRouterForResume = null;
|
|
8394
|
+
let listenerManagerForResume = null;
|
|
8395
|
+
const { createThreadlineReapRecovery } = await import('../threadline/ThreadlineReapRecovery.js');
|
|
8396
|
+
const threadlineReapRecovery = createThreadlineReapRecovery({
|
|
8397
|
+
localAgent: config.projectName,
|
|
8398
|
+
manager: () => listenerManagerForResume,
|
|
8399
|
+
router: () => threadlineRouterForResume,
|
|
8400
|
+
});
|
|
8390
8401
|
let autonomousLivenessReconciler = null;
|
|
8391
8402
|
let enforcedTerminationWatchdog = null;
|
|
8392
8403
|
let prHandLease = null;
|
|
@@ -8670,6 +8681,8 @@ export async function startServer(options) {
|
|
|
8670
8681
|
throw new Error('telegram adapter not available');
|
|
8671
8682
|
return await spawnSessionForTopic(sessionManager, telegram, entry.sessionName, entry.topicId, continuationPrompt, topicMemory, undefined, undefined, undefined, { cwd: entry.worktreePath ?? entry.cwd });
|
|
8672
8683
|
},
|
|
8684
|
+
threadlineMessagePending: threadlineReapRecovery.pending,
|
|
8685
|
+
respawnThread: threadlineReapRecovery.respawn,
|
|
8673
8686
|
triggerJob: async (slug) => {
|
|
8674
8687
|
if (!scheduler)
|
|
8675
8688
|
return 'skipped';
|
|
@@ -9336,6 +9349,21 @@ export async function startServer(options) {
|
|
|
9336
9349
|
// a throw fails toward NO injection (status-quo no-revive), never a spawn.
|
|
9337
9350
|
let candidateReason = e.reason;
|
|
9338
9351
|
let candidateWorkEvidence = e.workEvidence ?? [];
|
|
9352
|
+
const threadMatch = threadResumeMap.getBySessionName(e.session.tmuxSession)[0];
|
|
9353
|
+
const threadInbound = threadMatch && listenerManagerForResume
|
|
9354
|
+
? listenerManagerForResume.readLatestCanonicalInboxForThread(threadMatch.threadId)
|
|
9355
|
+
: null;
|
|
9356
|
+
const unsettledThreadInbound = threadInbound && listenerManagerForResume
|
|
9357
|
+
&& !listenerManagerForResume.hasCanonicalReplyFor(threadInbound.threadId, threadInbound.id)
|
|
9358
|
+
? threadInbound
|
|
9359
|
+
: null;
|
|
9360
|
+
if (unsettledThreadInbound) {
|
|
9361
|
+
// The durable canonical inbound plus absence of a later outbound is
|
|
9362
|
+
// direct evidence that an injected turn still needs completion.
|
|
9363
|
+
// Reuse the existing strong `pending-injection` vocabulary so an
|
|
9364
|
+
// unbound A2A worker is eligible without relaxing weak-evidence rules.
|
|
9365
|
+
candidateWorkEvidence = [...candidateWorkEvidence, 'pending-injection'];
|
|
9366
|
+
}
|
|
9339
9367
|
if (e.reason === 'age-limit' &&
|
|
9340
9368
|
topicId != null &&
|
|
9341
9369
|
autonomousRunRemainingForTopic(config.stateDir, topicId) != null) {
|
|
@@ -9359,6 +9387,8 @@ export async function startServer(options) {
|
|
|
9359
9387
|
sessionName: e.session.name,
|
|
9360
9388
|
tmuxSession: e.session.tmuxSession,
|
|
9361
9389
|
topicId,
|
|
9390
|
+
threadId: unsettledThreadInbound?.threadId,
|
|
9391
|
+
threadlineMessageId: unsettledThreadInbound?.id,
|
|
9362
9392
|
jobSlug: e.session.jobSlug,
|
|
9363
9393
|
jobResumeOptIn: jobDef?.resumeOnReap === true,
|
|
9364
9394
|
resumeUuid: topicId != null ? (_topicResumeMap?.get(topicId) ?? null) : null,
|
|
@@ -14759,6 +14789,7 @@ export async function startServer(options) {
|
|
|
14759
14789
|
undefined, // nowFn
|
|
14760
14790
|
warmSessionPool, // Warm-Session A2A (null when disabled)
|
|
14761
14791
|
warmEnabled, warmTrustFloor, warmEnabled ? killWarmSessionByName : null);
|
|
14792
|
+
threadlineRouterForResume = threadlineRouter;
|
|
14762
14793
|
// Warm-Session A2A reap tick — kill warm sessions idle past their TTL so a
|
|
14763
14794
|
// flood can't pin processes. Gated on warmEnabled; .unref() so it never holds
|
|
14764
14795
|
// the process open; cleared on shutdown. Eviction is lossless (the next
|
|
@@ -14896,6 +14927,7 @@ export async function startServer(options) {
|
|
|
14896
14927
|
const listenerManager = config.threadline?.relayEnabled
|
|
14897
14928
|
? new ListenerSessionManager(config.stateDir, config.authToken ?? '', config.threadline)
|
|
14898
14929
|
: null;
|
|
14930
|
+
listenerManagerForResume = listenerManager;
|
|
14899
14931
|
// A2A Delivery Tracker — durable per-peer delivery lifecycle + peer-health
|
|
14900
14932
|
// ("communications never just die out", A2A-DURABLE-DELIVERY-SPEC.md / #939).
|
|
14901
14933
|
// Recording-only: it never gates a send. Always constructed (cheap SQLite,
|