instar 1.3.1666 → 1.3.1668

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.
Files changed (87) hide show
  1. package/dist/commands/server.d.ts.map +1 -1
  2. package/dist/commands/server.js +51 -5
  3. package/dist/commands/server.js.map +1 -1
  4. package/dist/core/PostUpdateMigrator.d.ts +6 -0
  5. package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
  6. package/dist/core/PostUpdateMigrator.js +25 -0
  7. package/dist/core/PostUpdateMigrator.js.map +1 -1
  8. package/dist/core/ReplicatedPeerStreamReader.d.ts +2 -0
  9. package/dist/core/ReplicatedPeerStreamReader.d.ts.map +1 -1
  10. package/dist/core/ReplicatedPeerStreamReader.js +7 -0
  11. package/dist/core/ReplicatedPeerStreamReader.js.map +1 -1
  12. package/dist/core/rebalanceProof.d.ts +22 -0
  13. package/dist/core/rebalanceProof.d.ts.map +1 -1
  14. package/dist/core/rebalanceProof.js +29 -1
  15. package/dist/core/rebalanceProof.js.map +1 -1
  16. package/dist/data/standards-guard-index.json +1 -1
  17. package/dist/data/standards-guard-index.meta.json +2 -2
  18. package/dist/data/standards-registry.meta.json +1 -1
  19. package/dist/messaging/TelegramAdapter.d.ts +4 -11
  20. package/dist/messaging/TelegramAdapter.d.ts.map +1 -1
  21. package/dist/messaging/TelegramAdapter.js +6 -102
  22. package/dist/messaging/TelegramAdapter.js.map +1 -1
  23. package/dist/messaging/telegram-origin/OriginForwardToHolder.d.ts +8 -0
  24. package/dist/messaging/telegram-origin/OriginForwardToHolder.d.ts.map +1 -1
  25. package/dist/messaging/telegram-origin/OriginForwardToHolder.js +11 -2
  26. package/dist/messaging/telegram-origin/OriginForwardToHolder.js.map +1 -1
  27. package/dist/messaging/telegram-origin/QueuedReplySupersession.d.ts +29 -0
  28. package/dist/messaging/telegram-origin/QueuedReplySupersession.d.ts.map +1 -0
  29. package/dist/messaging/telegram-origin/QueuedReplySupersession.js +31 -0
  30. package/dist/messaging/telegram-origin/QueuedReplySupersession.js.map +1 -0
  31. package/dist/messaging/telegram-origin/TelegramOriginBoot.d.ts +1 -0
  32. package/dist/messaging/telegram-origin/TelegramOriginBoot.d.ts.map +1 -1
  33. package/dist/messaging/telegram-origin/TelegramOriginBoot.js +1 -0
  34. package/dist/messaging/telegram-origin/TelegramOriginBoot.js.map +1 -1
  35. package/dist/messaging/telegram-origin/TelegramOriginRuntime.d.ts +9 -0
  36. package/dist/messaging/telegram-origin/TelegramOriginRuntime.d.ts.map +1 -1
  37. package/dist/messaging/telegram-origin/TelegramOriginRuntime.js +45 -0
  38. package/dist/messaging/telegram-origin/TelegramOriginRuntime.js.map +1 -1
  39. package/dist/monitoring/ClassReviewStore.d.ts +3 -0
  40. package/dist/monitoring/ClassReviewStore.d.ts.map +1 -1
  41. package/dist/monitoring/ClassReviewStore.js +7 -3
  42. package/dist/monitoring/ClassReviewStore.js.map +1 -1
  43. package/dist/native/InstarWedgeCanary.app/Contents/MacOS/InstarWedgeCanary +0 -0
  44. package/dist/native/instar-desktop-host +0 -0
  45. package/dist/scheduler/JobScheduler.d.ts +10 -0
  46. package/dist/scheduler/JobScheduler.d.ts.map +1 -1
  47. package/dist/scheduler/JobScheduler.js +134 -0
  48. package/dist/scheduler/JobScheduler.js.map +1 -1
  49. package/dist/scheduler/SkipLedger.d.ts +2 -0
  50. package/dist/scheduler/SkipLedger.d.ts.map +1 -1
  51. package/dist/scheduler/SkipLedger.js +8 -0
  52. package/dist/scheduler/SkipLedger.js.map +1 -1
  53. package/dist/server/CapabilityIndex.d.ts.map +1 -1
  54. package/dist/server/CapabilityIndex.js +10 -0
  55. package/dist/server/CapabilityIndex.js.map +1 -1
  56. package/dist/server/mobileCapacityRoutes.d.ts.map +1 -1
  57. package/dist/server/mobileCapacityRoutes.js +4 -1
  58. package/dist/server/mobileCapacityRoutes.js.map +1 -1
  59. package/dist/server/mobileOpsRoutes.d.ts.map +1 -1
  60. package/dist/server/mobileOpsRoutes.js +4 -1
  61. package/dist/server/mobileOpsRoutes.js.map +1 -1
  62. package/dist/server/mobilePairingRoutes.d.ts.map +1 -1
  63. package/dist/server/mobilePairingRoutes.js +3 -0
  64. package/dist/server/mobilePairingRoutes.js.map +1 -1
  65. package/dist/server/mobileSecretsRoutes.d.ts +120 -0
  66. package/dist/server/mobileSecretsRoutes.d.ts.map +1 -0
  67. package/dist/server/mobileSecretsRoutes.js +293 -0
  68. package/dist/server/mobileSecretsRoutes.js.map +1 -0
  69. package/dist/server/routes.d.ts.map +1 -1
  70. package/dist/server/routes.js +35 -0
  71. package/dist/server/routes.js.map +1 -1
  72. package/dist/testing/selfActionRegistry.d.ts.map +1 -1
  73. package/dist/testing/selfActionRegistry.js +32 -0
  74. package/dist/testing/selfActionRegistry.js.map +1 -1
  75. package/package.json +1 -1
  76. package/src/data/builtin-manifest.json +64 -64
  77. package/src/data/standards-guard-index.json +1 -1
  78. package/src/data/standards-guard-index.meta.json +2 -2
  79. package/src/data/standards-registry.meta.json +1 -1
  80. package/upgrades/1.3.1667.md +37 -0
  81. package/upgrades/1.3.1668.md +24 -0
  82. package/upgrades/proof-holder-target.eli16.md +20 -0
  83. package/upgrades/side-effects/class-review-list-one-scan.md +12 -0
  84. package/upgrades/side-effects/job-silence-alert.md +59 -0
  85. package/upgrades/side-effects/mobile-native-secrets.md +56 -0
  86. package/upgrades/side-effects/proof-holder-target.md +13 -0
  87. 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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"}
@@ -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');
@@ -20648,6 +20678,8 @@ export async function startServer(options) {
20648
20678
  get: (dedupeKey) => replicatedPeerStreamReader.loadOriginRecords(CLASS_REVIEW_STORE_KEY, dedupeKey)
20649
20679
  .flatMap((record) => { const parsed = classReviewFromOriginRecord(record); return parsed ? [parsed] : []; }),
20650
20680
  keys: () => replicatedPeerStreamReader.listRecordKeys(CLASS_REVIEW_STORE_KEY),
20681
+ all: () => new Map([...replicatedPeerStreamReader.loadAllOriginRecords(CLASS_REVIEW_STORE_KEY)].map(([key, records]) => [key,
20682
+ records.flatMap((record) => { const parsed = classReviewFromOriginRecord(record); return parsed ? [parsed] : []; })])),
20651
20683
  });
20652
20684
  }
20653
20685
  const classReviewAuditPath = path.join(config.stateDir, 'logs', 'correction-class-review.jsonl');
@@ -25143,10 +25175,23 @@ export async function startServer(options) {
25143
25175
  if (!_sessionRouter)
25144
25176
  return 'no-router';
25145
25177
  const o = await _sessionRouter.route({ sessionKey: String(t), messageId, payload: text, senderEnvelope: null });
25146
- return o.action;
25178
+ return deliverProbeLocally(o.action, async () => {
25179
+ if (!telegram)
25180
+ throw new Error('no telegram adapter');
25181
+ const tmux = telegram.getSessionForTopic(t);
25182
+ if (tmux && sessionManager.isSessionAlive(tmux)) {
25183
+ const injected = sessionManager.injectTelegramMessage(tmux, t, text, telegram.getTopicName(t) ?? `proof-${t}`, 'Proof', 0);
25184
+ if (injected === false)
25185
+ throw new Error('inject returned false');
25186
+ return;
25187
+ }
25188
+ const name = await spawnSessionForTopic(sessionManager, telegram, `proof-${t}`, t, text);
25189
+ telegram.registerTopicSession(t, name, `proof-${t}`);
25190
+ }, (line) => console.warn(line));
25147
25191
  },
25192
+ machineName: (id) => _listPoolMachines?.().find((m) => m.machineId === id)?.nickname ?? null,
25148
25193
  readHistory: async (t) => {
25149
- const r = await fetch(`http://127.0.0.1:${config.port}/telegram/topics/${t}/messages?scope=pool&limit=50`, {
25194
+ const r = await fetch(`http://127.0.0.1:${config.port}/telegram/topics/${t}/messages?scope=pool&includeOrigin=1&limit=50`, {
25150
25195
  headers: { Authorization: `Bearer ${config.authToken}`, 'X-Instar-AgentId': config.projectName },
25151
25196
  });
25152
25197
  if (!r.ok)
@@ -29284,7 +29329,8 @@ export async function startServer(options) {
29284
29329
  supersede: (operationId, next, detail) => runtime.store.supersedeWithAdmission({ operationId, admission: next.admission,
29285
29330
  holdReason: originForwardMod.HOLD_REASON_LEASE_NOT_HELD, holdDetail: detail }),
29286
29331
  sendLocal: async (detail) => {
29287
- const sent = await telegram.sendToTopic(detail.topicId, detail.text, { silent: detail.silent, kindMetadata: detail.kindMetadata, provenance: 'automation' });
29332
+ const sent = await telegram.sendToTopic(detail.topicId, detail.text, { silent: detail.silent, kindMetadata: detail.kindMetadata,
29333
+ provenance: originForwardMod.recoveredForwardProvenance(detail, row.producerKind) });
29288
29334
  return { messageId: sent.messageId };
29289
29335
  },
29290
29336
  }, row, operation);
@@ -29295,7 +29341,7 @@ export async function startServer(options) {
29295
29341
  // Telegram id may fill that gap; this never sends a second copy.
29296
29342
  const recovered = await originForwardMod.confirmedRecoveredForward(row, id => runtime.store.getOperation(id)).catch(() => null);
29297
29343
  if (recovered)
29298
- telegram.recordRecoveredOutbound(recovered.topicId, recovered.text, recovered.messageId, row.producerKind === 'session' ? 'agent' : 'automation');
29344
+ telegram.recordRecoveredOutbound(recovered.topicId, recovered.text, recovered.messageId, originForwardMod.recoveredForwardProvenance(row.holdDetail, row.producerKind));
29299
29345
  }
29300
29346
  if (outcome === 'sent' || outcome === 'resolved' || outcome === 'settled')
29301
29347
  await clearHeldItemIfResolved(row.destination.topicId);