instar 1.3.1665 → 1.3.1667
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 +49 -5
- package/dist/commands/server.js.map +1 -1
- package/dist/core/PostUpdateMigrator.d.ts +6 -0
- package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
- package/dist/core/PostUpdateMigrator.js +25 -0
- package/dist/core/PostUpdateMigrator.js.map +1 -1
- package/dist/core/rebalanceProof.d.ts +22 -0
- package/dist/core/rebalanceProof.d.ts.map +1 -1
- package/dist/core/rebalanceProof.js +29 -1
- package/dist/core/rebalanceProof.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/messaging/TelegramAdapter.d.ts +4 -11
- package/dist/messaging/TelegramAdapter.d.ts.map +1 -1
- package/dist/messaging/TelegramAdapter.js +6 -102
- package/dist/messaging/TelegramAdapter.js.map +1 -1
- package/dist/messaging/telegram-origin/OriginForwardToHolder.d.ts +8 -0
- package/dist/messaging/telegram-origin/OriginForwardToHolder.d.ts.map +1 -1
- package/dist/messaging/telegram-origin/OriginForwardToHolder.js +11 -2
- package/dist/messaging/telegram-origin/OriginForwardToHolder.js.map +1 -1
- package/dist/messaging/telegram-origin/QueuedReplySupersession.d.ts +29 -0
- package/dist/messaging/telegram-origin/QueuedReplySupersession.d.ts.map +1 -0
- package/dist/messaging/telegram-origin/QueuedReplySupersession.js +31 -0
- package/dist/messaging/telegram-origin/QueuedReplySupersession.js.map +1 -0
- package/dist/messaging/telegram-origin/TelegramOriginBoot.d.ts +1 -0
- package/dist/messaging/telegram-origin/TelegramOriginBoot.d.ts.map +1 -1
- package/dist/messaging/telegram-origin/TelegramOriginBoot.js +1 -0
- package/dist/messaging/telegram-origin/TelegramOriginBoot.js.map +1 -1
- package/dist/messaging/telegram-origin/TelegramOriginRuntime.d.ts +9 -0
- package/dist/messaging/telegram-origin/TelegramOriginRuntime.d.ts.map +1 -1
- package/dist/messaging/telegram-origin/TelegramOriginRuntime.js +45 -0
- package/dist/messaging/telegram-origin/TelegramOriginRuntime.js.map +1 -1
- package/dist/native/InstarWedgeCanary.app/Contents/MacOS/InstarWedgeCanary +0 -0
- package/dist/native/instar-desktop-host +0 -0
- package/dist/server/CapabilityIndex.d.ts.map +1 -1
- package/dist/server/CapabilityIndex.js +10 -0
- package/dist/server/CapabilityIndex.js.map +1 -1
- package/dist/server/mobileCapacityRoutes.d.ts.map +1 -1
- package/dist/server/mobileCapacityRoutes.js +4 -1
- package/dist/server/mobileCapacityRoutes.js.map +1 -1
- package/dist/server/mobileOpsRoutes.d.ts.map +1 -1
- package/dist/server/mobileOpsRoutes.js +4 -1
- package/dist/server/mobileOpsRoutes.js.map +1 -1
- package/dist/server/mobilePairingRoutes.d.ts.map +1 -1
- package/dist/server/mobilePairingRoutes.js +3 -0
- package/dist/server/mobilePairingRoutes.js.map +1 -1
- package/dist/server/mobileSecretsRoutes.d.ts +120 -0
- package/dist/server/mobileSecretsRoutes.d.ts.map +1 -0
- package/dist/server/mobileSecretsRoutes.js +293 -0
- package/dist/server/mobileSecretsRoutes.js.map +1 -0
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/routes.js +35 -0
- package/dist/server/routes.js.map +1 -1
- package/package.json +1 -1
- package/scripts/build-locked-proof.mjs +25 -4
- package/scripts/lib/locked-proof-build.mjs +21 -0
- package/scripts/locked-proof/driver.mjs +17 -4
- package/src/data/builtin-manifest.json +63 -63
- 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.1666.md +16 -0
- package/upgrades/1.3.1667.md +37 -0
- package/upgrades/locked-proof-helper-dir.eli16.md +11 -0
- package/upgrades/proof-holder-target.eli16.md +20 -0
- package/upgrades/side-effects/locked-proof-helper-dir.md +52 -0
- package/upgrades/side-effects/mobile-native-secrets.md +56 -0
- package/upgrades/side-effects/proof-holder-target.md +13 -0
- package/upgrades/side-effects/queued-reply-coherence.md +79 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/server.js
CHANGED
|
@@ -61,7 +61,7 @@ import { StandDownRegistry } from '../core/StandDownRegistry.js';
|
|
|
61
61
|
import { ensureDashboardPin, persistDashboardPin, pickDashboardPin } from '../core/dashboardPin.js';
|
|
62
62
|
import { getActiveOverloadShedPlanner, getMoveAftercare } from '../core/OverloadShedPlanner.js';
|
|
63
63
|
import { QuietTopicScanner } from '../core/quietTopicScanner.js';
|
|
64
|
-
import { RebalanceProofRunner, getActiveRebalanceProof, waitForSettledIdle, proofSpawnBrief, setActiveRebalanceProof, setActiveRebalanceProofStore } from '../core/rebalanceProof.js';
|
|
64
|
+
import { RebalanceProofRunner, deliverProbeLocally, getActiveRebalanceProof, waitForSettledIdle, proofSpawnBrief, setActiveRebalanceProof, setActiveRebalanceProofStore } from '../core/rebalanceProof.js';
|
|
65
65
|
import { rebalanceProofState } from '../core/StageAdvancer.js';
|
|
66
66
|
import { buildHandoffContinuationInstruction } from '../core/handoffContinuation.js';
|
|
67
67
|
import { BASELINE_PROCESS_PATTERNS } from '../core/baselineProcessPatterns.js';
|
|
@@ -6685,6 +6685,36 @@ export async function startServer(options) {
|
|
|
6685
6685
|
const { checkToneLocally } = await import('../messaging/local-tone-check.js');
|
|
6686
6686
|
return (await checkToneLocally(messagingToneGate ?? null, text, { channel: 'telegram' })).passed;
|
|
6687
6687
|
},
|
|
6688
|
+
reviewQueuedReply: async ({ chatId, topicId, preparedAt }) => {
|
|
6689
|
+
if (!telegram)
|
|
6690
|
+
return 'hold';
|
|
6691
|
+
const issuesChatId = originTelegramConfig.config.issuesChatId;
|
|
6692
|
+
const historyTopicId = chatId === String(issuesChatId) ? 10_000_000_000 + topicId : topicId;
|
|
6693
|
+
const { queuedReplyOvertaken, reviewQueuedReplyHistory } = await import('../messaging/telegram-origin/QueuedReplySupersession.js');
|
|
6694
|
+
const local = telegram.getTopicHistory(historyTopicId, 500);
|
|
6695
|
+
if (queuedReplyOvertaken(preparedAt, local))
|
|
6696
|
+
return 'retire';
|
|
6697
|
+
try {
|
|
6698
|
+
const response = await fetch(`http://127.0.0.1:${config.port}/telegram/topics/${historyTopicId}/messages?limit=100&scope=pool`, {
|
|
6699
|
+
headers: { Authorization: `Bearer ${config.authToken ?? ''}`, 'X-Instar-AgentId': config.projectName },
|
|
6700
|
+
signal: AbortSignal.timeout(6_000),
|
|
6701
|
+
});
|
|
6702
|
+
if (!response.ok)
|
|
6703
|
+
return 'hold';
|
|
6704
|
+
const body = await response.json();
|
|
6705
|
+
if (!Array.isArray(body.messages) || !Array.isArray(body.pool?.failed))
|
|
6706
|
+
return 'hold';
|
|
6707
|
+
const pooled = body.messages.filter((m) => !!m && typeof m === 'object' && typeof m.timestamp === 'string' && Number.isFinite(Date.parse(m.timestamp)) &&
|
|
6708
|
+
typeof m.fromUser === 'boolean');
|
|
6709
|
+
if (pooled.length !== body.messages.length)
|
|
6710
|
+
return 'hold';
|
|
6711
|
+
return reviewQueuedReplyHistory({ preparedAt, local, pooled,
|
|
6712
|
+
failedPeers: body.pool.failed.length, poolPageLimit: 100 });
|
|
6713
|
+
}
|
|
6714
|
+
catch {
|
|
6715
|
+
return 'hold';
|
|
6716
|
+
}
|
|
6717
|
+
},
|
|
6688
6718
|
diagnoseUnknown: async (originId, reason) => {
|
|
6689
6719
|
if (!sharedIntelligence)
|
|
6690
6720
|
throw new Error('origin diagnostic intelligence unavailable');
|
|
@@ -25143,10 +25173,23 @@ export async function startServer(options) {
|
|
|
25143
25173
|
if (!_sessionRouter)
|
|
25144
25174
|
return 'no-router';
|
|
25145
25175
|
const o = await _sessionRouter.route({ sessionKey: String(t), messageId, payload: text, senderEnvelope: null });
|
|
25146
|
-
return o.action
|
|
25176
|
+
return deliverProbeLocally(o.action, async () => {
|
|
25177
|
+
if (!telegram)
|
|
25178
|
+
throw new Error('no telegram adapter');
|
|
25179
|
+
const tmux = telegram.getSessionForTopic(t);
|
|
25180
|
+
if (tmux && sessionManager.isSessionAlive(tmux)) {
|
|
25181
|
+
const injected = sessionManager.injectTelegramMessage(tmux, t, text, telegram.getTopicName(t) ?? `proof-${t}`, 'Proof', 0);
|
|
25182
|
+
if (injected === false)
|
|
25183
|
+
throw new Error('inject returned false');
|
|
25184
|
+
return;
|
|
25185
|
+
}
|
|
25186
|
+
const name = await spawnSessionForTopic(sessionManager, telegram, `proof-${t}`, t, text);
|
|
25187
|
+
telegram.registerTopicSession(t, name, `proof-${t}`);
|
|
25188
|
+
}, (line) => console.warn(line));
|
|
25147
25189
|
},
|
|
25190
|
+
machineName: (id) => _listPoolMachines?.().find((m) => m.machineId === id)?.nickname ?? null,
|
|
25148
25191
|
readHistory: async (t) => {
|
|
25149
|
-
const r = await fetch(`http://127.0.0.1:${config.port}/telegram/topics/${t}/messages?scope=pool&limit=50`, {
|
|
25192
|
+
const r = await fetch(`http://127.0.0.1:${config.port}/telegram/topics/${t}/messages?scope=pool&includeOrigin=1&limit=50`, {
|
|
25150
25193
|
headers: { Authorization: `Bearer ${config.authToken}`, 'X-Instar-AgentId': config.projectName },
|
|
25151
25194
|
});
|
|
25152
25195
|
if (!r.ok)
|
|
@@ -29284,7 +29327,8 @@ export async function startServer(options) {
|
|
|
29284
29327
|
supersede: (operationId, next, detail) => runtime.store.supersedeWithAdmission({ operationId, admission: next.admission,
|
|
29285
29328
|
holdReason: originForwardMod.HOLD_REASON_LEASE_NOT_HELD, holdDetail: detail }),
|
|
29286
29329
|
sendLocal: async (detail) => {
|
|
29287
|
-
const sent = await telegram.sendToTopic(detail.topicId, detail.text, { silent: detail.silent, kindMetadata: detail.kindMetadata,
|
|
29330
|
+
const sent = await telegram.sendToTopic(detail.topicId, detail.text, { silent: detail.silent, kindMetadata: detail.kindMetadata,
|
|
29331
|
+
provenance: originForwardMod.recoveredForwardProvenance(detail, row.producerKind) });
|
|
29288
29332
|
return { messageId: sent.messageId };
|
|
29289
29333
|
},
|
|
29290
29334
|
}, row, operation);
|
|
@@ -29295,7 +29339,7 @@ export async function startServer(options) {
|
|
|
29295
29339
|
// Telegram id may fill that gap; this never sends a second copy.
|
|
29296
29340
|
const recovered = await originForwardMod.confirmedRecoveredForward(row, id => runtime.store.getOperation(id)).catch(() => null);
|
|
29297
29341
|
if (recovered)
|
|
29298
|
-
telegram.recordRecoveredOutbound(recovered.topicId, recovered.text, recovered.messageId, row.producerKind
|
|
29342
|
+
telegram.recordRecoveredOutbound(recovered.topicId, recovered.text, recovered.messageId, originForwardMod.recoveredForwardProvenance(row.holdDetail, row.producerKind));
|
|
29299
29343
|
}
|
|
29300
29344
|
if (outcome === 'sent' || outcome === 'resolved' || outcome === 'settled')
|
|
29301
29345
|
await clearHeldItemIfResolved(row.destination.topicId);
|