instar 0.27.1 → 0.27.2

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 (42) hide show
  1. package/dist/commands/server.d.ts.map +1 -1
  2. package/dist/commands/server.js +33 -4
  3. package/dist/commands/server.js.map +1 -1
  4. package/dist/moltbridge/MoltBridgeClient.d.ts +14 -0
  5. package/dist/moltbridge/MoltBridgeClient.d.ts.map +1 -1
  6. package/dist/moltbridge/MoltBridgeClient.js +88 -0
  7. package/dist/moltbridge/MoltBridgeClient.js.map +1 -1
  8. package/dist/moltbridge/ProfileCompiler.d.ts +68 -0
  9. package/dist/moltbridge/ProfileCompiler.d.ts.map +1 -0
  10. package/dist/moltbridge/ProfileCompiler.js +317 -0
  11. package/dist/moltbridge/ProfileCompiler.js.map +1 -0
  12. package/dist/moltbridge/index.d.ts +4 -0
  13. package/dist/moltbridge/index.d.ts.map +1 -1
  14. package/dist/moltbridge/index.js +3 -0
  15. package/dist/moltbridge/index.js.map +1 -1
  16. package/dist/moltbridge/routes.d.ts +2 -0
  17. package/dist/moltbridge/routes.d.ts.map +1 -1
  18. package/dist/moltbridge/routes.js +98 -1
  19. package/dist/moltbridge/routes.js.map +1 -1
  20. package/dist/moltbridge/types.d.ts +93 -0
  21. package/dist/moltbridge/types.d.ts.map +1 -0
  22. package/dist/moltbridge/types.js +20 -0
  23. package/dist/moltbridge/types.js.map +1 -0
  24. package/dist/monitoring/SessionMonitor.d.ts +5 -0
  25. package/dist/monitoring/SessionMonitor.d.ts.map +1 -1
  26. package/dist/monitoring/SessionMonitor.js +18 -2
  27. package/dist/monitoring/SessionMonitor.js.map +1 -1
  28. package/dist/server/routes.d.ts.map +1 -1
  29. package/dist/server/routes.js +11 -1
  30. package/dist/server/routes.js.map +1 -1
  31. package/dist/threadline/DiscoveryWaterfall.d.ts +6 -0
  32. package/dist/threadline/DiscoveryWaterfall.d.ts.map +1 -1
  33. package/dist/threadline/DiscoveryWaterfall.js.map +1 -1
  34. package/dist/threadline/UnifiedTrustWiring.d.ts.map +1 -1
  35. package/dist/threadline/UnifiedTrustWiring.js +6 -0
  36. package/dist/threadline/UnifiedTrustWiring.js.map +1 -1
  37. package/package.json +1 -1
  38. package/src/data/builtin-manifest.json +46 -46
  39. package/upgrades/0.26.10.md +36 -0
  40. package/upgrades/0.27.2.md +36 -0
  41. package/upgrades/NEXT.md +0 -35
  42. /package/.claude/skills/secret-setup/{SKILL.md → skill.md} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA2PH,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;2DACuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAizCD,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA81HtE;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"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA2PH,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;2DACuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAizCD,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA63HtE;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"}
@@ -3083,6 +3083,9 @@ export async function startServer(options) {
3083
3083
  sendToTopic: async (topicId, text) => {
3084
3084
  const slackChId = slackProxyChannelMap.get(topicId);
3085
3085
  if (slackChId && _slackAdapter) {
3086
+ // Never send monitoring messages to system channels (dashboard, lifeline)
3087
+ if (_slackAdapter.isSystemChannel(slackChId))
3088
+ return;
3086
3089
  await _slackAdapter.sendToChannel(slackChId, text);
3087
3090
  return;
3088
3091
  }
@@ -3159,6 +3162,8 @@ export async function startServer(options) {
3159
3162
  sendToTopic: async (topicId, text) => {
3160
3163
  const slackChId = slackProxyChannelMap.get(topicId);
3161
3164
  if (slackChId && _slackAdapter) {
3165
+ if (_slackAdapter.isSystemChannel(slackChId))
3166
+ return;
3162
3167
  await _slackAdapter.sendToChannel(slackChId, text);
3163
3168
  return;
3164
3169
  }
@@ -3457,6 +3462,8 @@ export async function startServer(options) {
3457
3462
  sendToTopic: async (topicId, text) => {
3458
3463
  const slackChId = slackProxyChannelMap.get(topicId);
3459
3464
  if (slackChId && _slackAdapter) {
3465
+ if (_slackAdapter.isSystemChannel(slackChId))
3466
+ return;
3460
3467
  await _slackAdapter.sendToChannel(slackChId, text);
3461
3468
  return;
3462
3469
  }
@@ -3880,6 +3887,9 @@ export async function startServer(options) {
3880
3887
  // Check if this is a Slack synthetic ID (negative = Slack channel)
3881
3888
  const slackChannelId = slackProxyChannelMap.get(topicId);
3882
3889
  if (slackChannelId && _slackAdapter) {
3890
+ // Never send proxy messages to system channels (dashboard, lifeline)
3891
+ if (_slackAdapter.isSystemChannel(slackChannelId))
3892
+ return;
3883
3893
  // Route directly to Slack channel
3884
3894
  await _slackAdapter.sendToChannel(slackChannelId, text);
3885
3895
  return;
@@ -4007,8 +4017,11 @@ export async function startServer(options) {
4007
4017
  _slackAdapter.clearStallTracking(String(entry.channelId));
4008
4018
  }
4009
4019
  // Convert Slack channelId to synthetic numeric ID for PresenceProxy
4020
+ // Skip system channels (dashboard, lifeline) — they don't have interactive sessions
4010
4021
  if (!entry.channelId)
4011
4022
  return;
4023
+ if (_slackAdapter.isSystemChannel(String(entry.channelId)))
4024
+ return;
4012
4025
  const syntheticId = slackChannelToSyntheticId(String(entry.channelId));
4013
4026
  presenceProxy.onMessageLogged({
4014
4027
  messageId: typeof entry.messageId === 'number' ? entry.messageId : parseInt(String(entry.messageId), 10) || 0,
@@ -4092,9 +4105,14 @@ export async function startServer(options) {
4092
4105
  const tunnelUrl = await tunnel.start();
4093
4106
  console.log(`[SleepWake] Tunnel restarted: ${tunnelUrl}`);
4094
4107
  // Re-broadcast dashboard URL after tunnel restart (quick tunnels get new URL)
4095
- if (telegram && tunnelUrl) {
4108
+ if (tunnelUrl) {
4096
4109
  const tunnelType = config.tunnel?.type || 'quick';
4097
- await telegram.broadcastDashboardUrl(tunnelUrl, tunnelType).catch(() => { });
4110
+ if (telegram) {
4111
+ await telegram.broadcastDashboardUrl(tunnelUrl, tunnelType).catch(() => { });
4112
+ }
4113
+ if (_slackAdapter) {
4114
+ await _slackAdapter.broadcastDashboardUrl(tunnelUrl).catch(() => { });
4115
+ }
4098
4116
  }
4099
4117
  })(),
4100
4118
  new Promise((_, reject) => setTimeout(() => reject(new Error('Tunnel restart timed out after 15s')), 15_000)),
@@ -4837,9 +4855,14 @@ export async function startServer(options) {
4837
4855
  try {
4838
4856
  const tunnelUrl = await tunnel.start();
4839
4857
  console.log(pc.green(`[tunnel] Connected: ${tunnelUrl}`));
4840
- if (telegram && tunnelUrl) {
4858
+ if (tunnelUrl) {
4841
4859
  const tunnelType = (config.tunnel?.type || 'quick');
4842
- await telegram.broadcastDashboardUrl(tunnelUrl, tunnelType).catch(() => { });
4860
+ if (telegram) {
4861
+ await telegram.broadcastDashboardUrl(tunnelUrl, tunnelType).catch(() => { });
4862
+ }
4863
+ if (_slackAdapter) {
4864
+ await _slackAdapter.broadcastDashboardUrl(tunnelUrl).catch(() => { });
4865
+ }
4843
4866
  }
4844
4867
  }
4845
4868
  catch (retryErr) {
@@ -4888,6 +4911,12 @@ export async function startServer(options) {
4888
4911
  telegram.config.dashboardPin = config.dashboardPin || '';
4889
4912
  }
4890
4913
  await telegram.broadcastDashboardUrl(dashUrl, tunnelType);
4914
+ // Also broadcast to Slack dashboard channel if configured
4915
+ if (_slackAdapter) {
4916
+ await _slackAdapter.broadcastDashboardUrl(dashUrl).catch((err) => {
4917
+ console.warn(`[server] Slack dashboard broadcast failed: ${err.message}`);
4918
+ });
4919
+ }
4891
4920
  }
4892
4921
  else {
4893
4922
  console.log(pc.yellow(` Dashboard available locally at http://localhost:${config.port}/dashboard (no tunnel configured — not broadcasting to Telegram)`));