@pellux/goodvibes-sdk 0.25.5 → 0.25.6

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 (51) hide show
  1. package/dist/_internal/platform/adapters/slack/index.d.ts.map +1 -1
  2. package/dist/_internal/platform/adapters/slack/index.js +16 -1
  3. package/dist/_internal/platform/adapters/types.d.ts +2 -0
  4. package/dist/_internal/platform/adapters/types.d.ts.map +1 -1
  5. package/dist/_internal/platform/automation/delivery-manager.d.ts +1 -0
  6. package/dist/_internal/platform/automation/delivery-manager.d.ts.map +1 -1
  7. package/dist/_internal/platform/automation/delivery-manager.js +1 -0
  8. package/dist/_internal/platform/channels/builtin/account-actions.js +58 -1
  9. package/dist/_internal/platform/channels/builtin/accounts.js +1 -1
  10. package/dist/_internal/platform/channels/builtin/setup-schema.d.ts.map +1 -1
  11. package/dist/_internal/platform/channels/builtin/setup-schema.js +4 -2
  12. package/dist/_internal/platform/channels/builtin/surfaces.d.ts +1 -0
  13. package/dist/_internal/platform/channels/builtin/surfaces.d.ts.map +1 -1
  14. package/dist/_internal/platform/channels/builtin/surfaces.js +21 -3
  15. package/dist/_internal/platform/channels/delivery/strategies-core.d.ts +2 -1
  16. package/dist/_internal/platform/channels/delivery/strategies-core.d.ts.map +1 -1
  17. package/dist/_internal/platform/channels/delivery/strategies-core.js +6 -1
  18. package/dist/_internal/platform/channels/delivery/types.d.ts +2 -0
  19. package/dist/_internal/platform/channels/delivery/types.d.ts.map +1 -1
  20. package/dist/_internal/platform/channels/delivery-router.d.ts +2 -1
  21. package/dist/_internal/platform/channels/delivery-router.d.ts.map +1 -1
  22. package/dist/_internal/platform/channels/delivery-router.js +3 -3
  23. package/dist/_internal/platform/channels/provider-runtime.d.ts +3 -0
  24. package/dist/_internal/platform/channels/provider-runtime.d.ts.map +1 -1
  25. package/dist/_internal/platform/channels/provider-runtime.js +24 -6
  26. package/dist/_internal/platform/config/secret-refs.d.ts +1 -0
  27. package/dist/_internal/platform/config/secret-refs.d.ts.map +1 -1
  28. package/dist/_internal/platform/config/secret-refs.js +15 -0
  29. package/dist/_internal/platform/config/service-registry.d.ts +7 -2
  30. package/dist/_internal/platform/config/service-registry.d.ts.map +1 -1
  31. package/dist/_internal/platform/config/service-registry.js +6 -2
  32. package/dist/_internal/platform/daemon/facade-composition.d.ts.map +1 -1
  33. package/dist/_internal/platform/daemon/facade-composition.js +3 -0
  34. package/dist/_internal/platform/daemon/surface-actions.d.ts +2 -0
  35. package/dist/_internal/platform/daemon/surface-actions.d.ts.map +1 -1
  36. package/dist/_internal/platform/daemon/surface-actions.js +1 -0
  37. package/dist/_internal/platform/daemon/surface-delivery.d.ts +5 -0
  38. package/dist/_internal/platform/daemon/surface-delivery.d.ts.map +1 -1
  39. package/dist/_internal/platform/daemon/surface-delivery.js +26 -12
  40. package/dist/_internal/platform/integrations/index.d.ts +1 -1
  41. package/dist/_internal/platform/integrations/index.d.ts.map +1 -1
  42. package/dist/_internal/platform/integrations/index.js +1 -1
  43. package/dist/_internal/platform/integrations/ntfy.d.ts +1 -0
  44. package/dist/_internal/platform/integrations/ntfy.d.ts.map +1 -1
  45. package/dist/_internal/platform/integrations/ntfy.js +42 -2
  46. package/dist/_internal/platform/runtime/bootstrap-helpers.d.ts.map +1 -1
  47. package/dist/_internal/platform/runtime/bootstrap-helpers.js +1 -0
  48. package/dist/_internal/platform/runtime/services.d.ts.map +1 -1
  49. package/dist/_internal/platform/runtime/services.js +2 -0
  50. package/dist/_internal/platform/version.js +1 -1
  51. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/adapters/slack/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAIzD,wBAAsB,yBAAyB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,QAAQ,CAAC,CA6C/G;AAED,wBAAsB,yBAAyB,CAC7C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,OAAO,EAAE,qBAAqB,EAC9B,KAAK,mBAAyB,EAC9B,GAAG,GAAE,OAAiF,GACrF,OAAO,CAAC,QAAQ,CAAC,CAyQnB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/adapters/slack/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAKzD,wBAAsB,yBAAyB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAgD/G;AAED,wBAAsB,yBAAyB,CAC7C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,OAAO,EAAE,qBAAqB,EAC9B,KAAK,mBAAyB,EAC9B,GAAG,GAAE,OAAiF,GACrF,OAAO,CAAC,QAAQ,CAAC,CAyQnB"}
@@ -2,12 +2,14 @@ import { logger } from '../../utils/logger.js';
2
2
  import { SlackIntegration } from '../../integrations/index.js';
3
3
  import { summarizeError } from '../../utils/error-display.js';
4
4
  import { fetchWithTimeout } from '../../utils/fetch-with-timeout.js';
5
+ import { resolveSecretInput } from '../../config/secret-refs.js';
5
6
  export async function handleSlackSurfaceWebhook(req, context) {
6
7
  const contentLength = parseInt(req.headers.get('content-length') ?? '0', 10);
7
8
  if (contentLength > 1_000_000) {
8
9
  return Response.json({ error: 'Payload too large' }, { status: 413 });
9
10
  }
10
11
  const signingSecret = await context.serviceRegistry.resolveSecret('slack', 'signingSecret')
12
+ ?? await resolveSlackConfigSecret(context, 'surfaces.slack.signingSecret')
11
13
  ?? process.env.SLACK_SIGNING_SECRET;
12
14
  if (!signingSecret) {
13
15
  logger.warn('handleSlackSurfaceWebhook: SLACK_SIGNING_SECRET not set — rejecting');
@@ -16,7 +18,9 @@ export async function handleSlackSurfaceWebhook(req, context) {
16
18
  const timestamp = req.headers.get('x-slack-request-timestamp') ?? '';
17
19
  const signature = req.headers.get('x-slack-signature') ?? '';
18
20
  const rawBody = await req.text();
19
- const slack = new SlackIntegration(await context.serviceRegistry.resolveSecret('slack', 'webhookUrl') ?? process.env.SLACK_WEBHOOK_URL, await context.serviceRegistry.resolveSecret('slack', 'primary') ?? process.env.SLACK_BOT_TOKEN);
21
+ const slack = new SlackIntegration(await context.serviceRegistry.resolveSecret('slack', 'webhookUrl') ?? process.env.SLACK_WEBHOOK_URL, await context.serviceRegistry.resolveSecret('slack', 'primary')
22
+ ?? await resolveSlackConfigSecret(context, 'surfaces.slack.botToken')
23
+ ?? process.env.SLACK_BOT_TOKEN);
20
24
  if (!slack.verifySignature(rawBody, timestamp, signature, signingSecret)) {
21
25
  logger.warn('handleSlackSurfaceWebhook: invalid signature');
22
26
  return Response.json({ error: 'Invalid signature' }, { status: 401 });
@@ -286,3 +290,14 @@ export async function handleSlackSurfacePayload(bodyRecord, context, slack = new
286
290
  }
287
291
  return new Response(null, { status: 200 });
288
292
  }
293
+ async function resolveSlackConfigSecret(context, key) {
294
+ return resolveSecretInput(context.configManager.get(key), slackSecretRefOptions(context));
295
+ }
296
+ function slackSecretRefOptions(context) {
297
+ return {
298
+ resolveLocalSecret: context.secretsManager
299
+ ? (key) => context.secretsManager.get(key)
300
+ : undefined,
301
+ homeDirectory: context.secretsManager?.getGlobalHome?.() ?? undefined,
302
+ };
303
+ }
@@ -5,6 +5,7 @@ import type { AutomationSurfaceKind } from '../automation/types.js';
5
5
  import type { ChannelConversationKind, ChannelPolicyDecision, RouteBindingManager } from '../channels/index.js';
6
6
  import type { SharedSessionBroker } from '../control-plane/index.js';
7
7
  import type { ConversationMessageEnvelope } from '../control-plane/conversation-message.js';
8
+ import type { SecretsManager } from '../config/secrets.js';
8
9
  import type { ServiceRegistry } from '../config/service-registry.js';
9
10
  export interface SurfaceControlCommand {
10
11
  readonly action: 'status' | 'cancel' | 'retry';
@@ -33,6 +34,7 @@ export type TrySpawnAgentResult = AgentRecord | Response;
33
34
  export type TrySpawnAgentFn = (input: TrySpawnAgentInput, logLabel: string, sessionId?: string) => TrySpawnAgentResult;
34
35
  export interface SurfaceAdapterContext {
35
36
  readonly serviceRegistry: ServiceRegistry;
37
+ readonly secretsManager?: Pick<SecretsManager, 'get' | 'getGlobalHome'>;
36
38
  readonly configManager: {
37
39
  get(key: string): unknown;
38
40
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/adapters/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/adapters/types.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,7 @@ export declare class AutomationDeliveryManager {
15
15
  private runtimeBus;
16
16
  constructor(config: {
17
17
  readonly serviceRegistry?: ServiceRegistry;
18
+ readonly secretsManager?: Pick<import('../config/secrets.js').SecretsManager, 'get' | 'getGlobalHome'>;
18
19
  readonly configManager?: import('../config/manager.js').ConfigManager;
19
20
  readonly routeBindings: RouteBindingManager;
20
21
  readonly deliveryRouter?: ChannelDeliveryRouter;
@@ -1 +1 @@
1
- {"version":3,"file":"delivery-manager.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/automation/delivery-manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAqB,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,KAAK,EAAkB,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAQlE,OAAO,KAAK,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACzF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAiF3E,qBAAa,yBAAyB;IACpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsB;IACpD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwB;IACvD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoB;IACjD,OAAO,CAAC,eAAe,CAA+B;IACtD,OAAO,CAAC,UAAU,CAAgC;gBAEtC,MAAM,EAAE;QAClB,QAAQ,CAAC,eAAe,CAAC,EAAE,eAAe,CAAC;QAC3C,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,sBAAsB,EAAE,aAAa,CAAC;QACtE,QAAQ,CAAC,aAAa,EAAE,mBAAmB,CAAC;QAC5C,QAAQ,CAAC,cAAc,CAAC,EAAE,qBAAqB,CAAC;QAChD,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;QACvC,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;QACrC,QAAQ,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC;QACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,iBAAiB,CAAC;KAC3C;IAqBD,aAAa,CAAC,MAAM,EAAE;QACpB,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;QAC5C,QAAQ,CAAC,UAAU,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;KAC9C,GAAG,IAAI;IASR,iBAAiB,IAAI,qBAAqB;IAI1C,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,eAAe;IAIvB,sBAAsB,CAAC,OAAO,EAAE,OAAO,6BAA6B,EAAE,mBAAmB,GAAG,IAAI,GAAG,IAAI;IAIjG,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,SAAS,yBAAyB,EAAE,CAAC;IAoBpG,WAAW,CACf,GAAG,EAAE,aAAa,EAClB,GAAG,EAAE,aAAa,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,SAAS,wBAAwB,EAAE,GAC3C,OAAO,CAAC,SAAS,yBAAyB,EAAE,CAAC;IAyFhD,OAAO,CAAC,cAAc;YAoBR,UAAU;IAoBxB,OAAO,CAAC,WAAW;CA8DpB"}
1
+ {"version":3,"file":"delivery-manager.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/automation/delivery-manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAqB,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,KAAK,EAAkB,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAQlE,OAAO,KAAK,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACzF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAiF3E,qBAAa,yBAAyB;IACpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsB;IACpD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwB;IACvD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoB;IACjD,OAAO,CAAC,eAAe,CAA+B;IACtD,OAAO,CAAC,UAAU,CAAgC;gBAEtC,MAAM,EAAE;QAClB,QAAQ,CAAC,eAAe,CAAC,EAAE,eAAe,CAAC;QAC3C,QAAQ,CAAC,cAAc,CAAC,EAAE,IAAI,CAAC,OAAO,sBAAsB,EAAE,cAAc,EAAE,KAAK,GAAG,eAAe,CAAC,CAAC;QACvG,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,sBAAsB,EAAE,aAAa,CAAC;QACtE,QAAQ,CAAC,aAAa,EAAE,mBAAmB,CAAC;QAC5C,QAAQ,CAAC,cAAc,CAAC,EAAE,qBAAqB,CAAC;QAChD,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;QACvC,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;QACrC,QAAQ,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC;QACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,iBAAiB,CAAC;KAC3C;IAsBD,aAAa,CAAC,MAAM,EAAE;QACpB,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;QAC5C,QAAQ,CAAC,UAAU,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;KAC9C,GAAG,IAAI;IASR,iBAAiB,IAAI,qBAAqB;IAI1C,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,eAAe;IAIvB,sBAAsB,CAAC,OAAO,EAAE,OAAO,6BAA6B,EAAE,mBAAmB,GAAG,IAAI,GAAG,IAAI;IAIjG,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,SAAS,yBAAyB,EAAE,CAAC;IAoBpG,WAAW,CACf,GAAG,EAAE,aAAa,EAClB,GAAG,EAAE,aAAa,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,SAAS,wBAAwB,EAAE,GAC3C,OAAO,CAAC,SAAS,yBAAyB,EAAE,CAAC;IAyFhD,OAAO,CAAC,cAAc;YAoBR,UAAU;IAoBxB,OAAO,CAAC,WAAW;CA8DpB"}
@@ -95,6 +95,7 @@ export class AutomationDeliveryManager {
95
95
  }
96
96
  this.deliveryRouter = new ChannelDeliveryRouter({
97
97
  configManager: config.configManager,
98
+ secretsManager: config.secretsManager,
98
99
  serviceRegistry: config.serviceRegistry,
99
100
  artifactStore: config.artifactStore,
100
101
  });
@@ -275,6 +275,56 @@ export async function runBuiltinProviderApi(context, surface, input) {
275
275
  }
276
276
  async function runProviderSetupAction(context, surface, action, base, account, input) {
277
277
  if (surface === 'slack') {
278
+ const secretScope = readSecretScope(input?.secretScope);
279
+ const directBotToken = readString(input?.botToken);
280
+ const directSigningSecret = readString(input?.signingSecret);
281
+ const directAppToken = readString(input?.appToken);
282
+ const defaultChannel = readString(input?.defaultChannel);
283
+ const workspaceId = readString(input?.workspaceId);
284
+ if (directBotToken) {
285
+ await context.deps.secretsManager.set('SLACK_BOT_TOKEN', directBotToken, { scope: secretScope });
286
+ context.deps.configManager.set('surfaces.slack.botToken', goodVibesSecretUri('SLACK_BOT_TOKEN'));
287
+ }
288
+ if (directSigningSecret) {
289
+ await context.deps.secretsManager.set('SLACK_SIGNING_SECRET', directSigningSecret, { scope: secretScope });
290
+ context.deps.configManager.set('surfaces.slack.signingSecret', goodVibesSecretUri('SLACK_SIGNING_SECRET'));
291
+ }
292
+ if (directAppToken) {
293
+ await context.deps.secretsManager.set('SLACK_APP_TOKEN', directAppToken, { scope: secretScope });
294
+ context.deps.configManager.set('surfaces.slack.appToken', goodVibesSecretUri('SLACK_APP_TOKEN'));
295
+ }
296
+ if (defaultChannel)
297
+ context.deps.configManager.set('surfaces.slack.defaultChannel', defaultChannel);
298
+ if (workspaceId)
299
+ context.deps.configManager.set('surfaces.slack.workspaceId', workspaceId);
300
+ const hasDirectSlackSecret = Boolean(directBotToken || directSigningSecret || directAppToken);
301
+ if (hasDirectSlackSecret || defaultChannel || workspaceId) {
302
+ if (hasDirectSlackSecret || account.configured) {
303
+ context.deps.configManager.set('surfaces.slack.enabled', true);
304
+ }
305
+ const refreshed = await context.buildAccount('slack');
306
+ const configured = Boolean(hasDirectSlackSecret || account.configured);
307
+ return {
308
+ ...base,
309
+ ok: configured,
310
+ account: refreshed,
311
+ state: refreshed.state,
312
+ authState: refreshed.authState,
313
+ login: { kind: 'none' },
314
+ message: configured
315
+ ? 'Slack configuration stored.'
316
+ : 'Slack metadata stored; provide botToken, appToken, or signingSecret to enable Slack.',
317
+ metadata: {
318
+ storedSecretFields: [
319
+ ...(directBotToken ? ['botToken'] : []),
320
+ ...(directSigningSecret ? ['signingSecret'] : []),
321
+ ...(directAppToken ? ['appToken'] : []),
322
+ ],
323
+ defaultChannel: defaultChannel ?? null,
324
+ workspaceId: workspaceId ?? null,
325
+ },
326
+ };
327
+ }
278
328
  const clientId = readString(input?.clientId) ?? process.env.SLACK_CLIENT_ID;
279
329
  const clientSecret = readString(input?.clientSecret) ?? process.env.SLACK_CLIENT_SECRET;
280
330
  const code = readString(input?.code);
@@ -282,7 +332,8 @@ async function runProviderSetupAction(context, surface, action, base, account, i
282
332
  if (code && clientId && clientSecret) {
283
333
  const exchange = await new SlackIntegration().exchangeOAuthCode({ clientId, clientSecret, code, ...(redirectUri ? { redirectUri } : {}) });
284
334
  if (exchange.ok && exchange.access_token) {
285
- await context.deps.secretsManager.set('SLACK_BOT_TOKEN', exchange.access_token, { scope: readSecretScope(input?.secretScope) });
335
+ await context.deps.secretsManager.set('SLACK_BOT_TOKEN', exchange.access_token, { scope: secretScope });
336
+ context.deps.configManager.set('surfaces.slack.botToken', goodVibesSecretUri('SLACK_BOT_TOKEN'));
286
337
  context.deps.configManager.set('surfaces.slack.enabled', true);
287
338
  if (exchange.team?.id)
288
339
  context.deps.configManager.set('surfaces.slack.workspaceId', exchange.team.id);
@@ -428,6 +479,9 @@ async function runProviderLogoutAction(context, surface, action, base, account,
428
479
  if (surface === 'slack') {
429
480
  await secrets.delete('SLACK_BOT_TOKEN');
430
481
  await secrets.delete('SLACK_APP_TOKEN');
482
+ await secrets.delete('SLACK_SIGNING_SECRET');
483
+ await secrets.delete('SLACK_WEBHOOK_URL');
484
+ context.deps.configManager.set('surfaces.slack.signingSecret', '');
431
485
  context.deps.configManager.set('surfaces.slack.botToken', '');
432
486
  context.deps.configManager.set('surfaces.slack.appToken', '');
433
487
  }
@@ -450,3 +504,6 @@ async function runProviderLogoutAction(context, surface, action, base, account,
450
504
  metadata: { action, envBacked: providerEnvBacked(surface) },
451
505
  };
452
506
  }
507
+ function goodVibesSecretUri(key) {
508
+ return `goodvibes://secrets/goodvibes/${encodeURIComponent(key)}`;
509
+ }
@@ -26,7 +26,7 @@ export async function buildBuiltinAccount(context, surface) {
26
26
  const secrets = await Promise.all([
27
27
  describeBuiltinSecret(context.deps, 'primary', 'Bot token', context.deps.configManager.get('surfaces.slack.botToken'), ['SLACK_BOT_TOKEN'], 'slack', 'primary'),
28
28
  describeBuiltinSecret(context.deps, 'signingSecret', 'Signing secret', context.deps.configManager.get('surfaces.slack.signingSecret'), ['SLACK_SIGNING_SECRET'], 'slack', 'signingSecret'),
29
- describeBuiltinSecret(context.deps, 'appToken', 'App token', context.deps.configManager.get('surfaces.slack.appToken'), ['SLACK_APP_TOKEN']),
29
+ describeBuiltinSecret(context.deps, 'appToken', 'App token', context.deps.configManager.get('surfaces.slack.appToken'), ['SLACK_APP_TOKEN'], 'slack', 'appToken'),
30
30
  describeBuiltinSecret(context.deps, 'webhookUrl', 'Webhook URL', undefined, ['SLACK_WEBHOOK_URL'], 'slack', 'webhookUrl'),
31
31
  ]);
32
32
  return finalizeBuiltinChannelAccount({
@@ -1 +1 @@
1
- {"version":3,"file":"setup-schema.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/channels/builtin/setup-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,kBAAkB,EAClB,cAAc,EACf,MAAM,aAAa,CAAC;AAMrB,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,cAAc,GAAG,kBAAkB,CA2cjF"}
1
+ {"version":3,"file":"setup-schema.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/channels/builtin/setup-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,kBAAkB,EAClB,cAAc,EACf,MAAM,aAAa,CAAC;AAMrB,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,cAAc,GAAG,kBAAkB,CA6cjF"}
@@ -62,14 +62,16 @@ export function getBuiltinSetupSchema(surface) {
62
62
  envKeys: ['SLACK_SIGNING_SECRET'],
63
63
  configKeys: ['surfaces.slack.signingSecret'],
64
64
  }),
65
- secretTarget(surface, 'appToken', 'App token', false, 'Used for Slack app socket/runtime flows.', {
65
+ secretTarget(surface, 'appToken', 'App token', false, 'Used for Slack Socket Mode runtime flows.', {
66
+ serviceName: 'slack',
67
+ serviceField: 'appToken',
66
68
  envKeys: ['SLACK_APP_TOKEN'],
67
69
  configKeys: ['surfaces.slack.appToken'],
68
70
  }),
69
71
  ],
70
72
  externalSteps: [
71
73
  'Create or install the Slack app with the required bot scopes.',
72
- 'Store the bot token and signing secret in env, GoodVibes secrets, or an external secret reference.',
74
+ 'Store the bot token, app-level Socket Mode token, and signing secret in env, GoodVibes secrets, service registry, or an external secret reference.',
73
75
  'Optional: generate an OAuth install URL through the provider channel actions.',
74
76
  ],
75
77
  metadata: {},
@@ -6,6 +6,7 @@ export declare function isManagedSurface(surface: ChannelSurface): surface is Ma
6
6
  export declare function providerRuntimeStatus(deps: BuiltinChannelRuntimeDeps, surface: ProviderRuntimeSurface): unknown;
7
7
  export declare function providerEnvBacked(surface: ProviderRuntimeSurface): boolean;
8
8
  export declare function resolveSlackBotToken(deps: BuiltinChannelRuntimeDeps): Promise<string | null>;
9
+ export declare function resolveSlackAppToken(deps: BuiltinChannelRuntimeDeps): Promise<string | null>;
9
10
  export declare function resolveDiscordBotToken(deps: BuiltinChannelRuntimeDeps): Promise<string | null>;
10
11
  export declare function resolveNtfyToken(deps: BuiltinChannelRuntimeDeps): Promise<string | null>;
11
12
  //# sourceMappingURL=surfaces.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"surfaces.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/channels/builtin/surfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,yBAAyB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7E,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,cAAc,GAAG,sBAAsB,GAAG,IAAI,CAE/F;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,IAAI,cAAc,CAcnF;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,yBAAyB,EAAE,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAE/G;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAI1E;AAED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAMlG;AAED,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAMpG;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAM9F"}
1
+ {"version":3,"file":"surfaces.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/channels/builtin/surfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,yBAAyB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG7E,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,cAAc,GAAG,sBAAsB,GAAG,IAAI,CAE/F;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,IAAI,cAAc,CAcnF;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,yBAAyB,EAAE,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAE/G;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAI1E;AAED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAOlG;AAED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAOlG;AAED,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAOpG;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAO9F"}
@@ -1,3 +1,4 @@
1
+ import { resolveSecretInput } from '../../config/secret-refs.js';
1
2
  export function asProviderRuntimeSurface(surface) {
2
3
  return surface === 'slack' || surface === 'discord' || surface === 'ntfy' ? surface : null;
3
4
  }
@@ -28,22 +29,39 @@ export function providerEnvBacked(surface) {
28
29
  }
29
30
  export async function resolveSlackBotToken(deps) {
30
31
  const serviceValue = await deps.serviceRegistry.resolveSecret('slack', 'primary');
32
+ const configValue = await resolveBuiltinConfigSecret(deps, deps.configManager.get('surfaces.slack.botToken'));
31
33
  return serviceValue
32
- || String(deps.configManager.get('surfaces.slack.botToken') || '')
34
+ || configValue
33
35
  || process.env.SLACK_BOT_TOKEN
34
36
  || null;
35
37
  }
38
+ export async function resolveSlackAppToken(deps) {
39
+ const serviceValue = await deps.serviceRegistry.resolveSecret('slack', 'appToken');
40
+ const configValue = await resolveBuiltinConfigSecret(deps, deps.configManager.get('surfaces.slack.appToken'));
41
+ return serviceValue
42
+ || configValue
43
+ || process.env.SLACK_APP_TOKEN
44
+ || null;
45
+ }
36
46
  export async function resolveDiscordBotToken(deps) {
37
47
  const serviceValue = await deps.serviceRegistry.resolveSecret('discord', 'primary');
48
+ const configValue = await resolveBuiltinConfigSecret(deps, deps.configManager.get('surfaces.discord.botToken'));
38
49
  return serviceValue
39
- || String(deps.configManager.get('surfaces.discord.botToken') || '')
50
+ || configValue
40
51
  || process.env.DISCORD_BOT_TOKEN
41
52
  || null;
42
53
  }
43
54
  export async function resolveNtfyToken(deps) {
44
55
  const serviceValue = await deps.serviceRegistry.resolveSecret('ntfy', 'primary');
56
+ const configValue = await resolveBuiltinConfigSecret(deps, deps.configManager.get('surfaces.ntfy.token'));
45
57
  return serviceValue
46
- || String(deps.configManager.get('surfaces.ntfy.token') || '')
58
+ || configValue
47
59
  || process.env.NTFY_ACCESS_TOKEN
48
60
  || null;
49
61
  }
62
+ async function resolveBuiltinConfigSecret(deps, value) {
63
+ return resolveSecretInput(value, {
64
+ resolveLocalSecret: (key) => deps.secretsManager.get(key),
65
+ homeDirectory: deps.secretsManager.getGlobalHome?.() ?? undefined,
66
+ });
67
+ }
@@ -1,10 +1,11 @@
1
1
  import { ArtifactStore } from '../../artifacts/index.js';
2
2
  import { ConfigManager } from '../../config/manager.js';
3
+ import type { SecretsManager } from '../../config/secrets.js';
3
4
  import { ServiceRegistry } from '../../config/service-registry.js';
4
5
  import { ControlPlaneGateway } from '../../control-plane/gateway.js';
5
6
  import type { ChannelDeliveryStrategy } from './types.js';
6
7
  export declare function createWebhookDeliveryStrategy(configManager: ConfigManager, artifactStore: ArtifactStore): ChannelDeliveryStrategy;
7
- export declare function createSlackDeliveryStrategy(serviceRegistry: ServiceRegistry, configManager: ConfigManager, artifactStore: ArtifactStore): ChannelDeliveryStrategy;
8
+ export declare function createSlackDeliveryStrategy(serviceRegistry: ServiceRegistry, configManager: ConfigManager, artifactStore: ArtifactStore, secretsManager?: Pick<SecretsManager, 'get' | 'getGlobalHome'>): ChannelDeliveryStrategy;
8
9
  export declare function createDiscordDeliveryStrategy(serviceRegistry: ServiceRegistry, configManager: ConfigManager, artifactStore: ArtifactStore): ChannelDeliveryStrategy;
9
10
  export declare function createNtfyDeliveryStrategy(configManager: ConfigManager, serviceRegistry: ServiceRegistry, artifactStore: ArtifactStore): ChannelDeliveryStrategy;
10
11
  export declare function createWebControlPlaneDeliveryStrategy(configManager: ConfigManager, artifactStore: ArtifactStore, getGateway: () => ControlPlaneGateway | null): ChannelDeliveryStrategy;
@@ -1 +1 @@
1
- {"version":3,"file":"strategies-core.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/channels/delivery/strategies-core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAGrE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAc1D,wBAAgB,6BAA6B,CAAC,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,GAAG,uBAAuB,CAsCjI;AAED,wBAAgB,2BAA2B,CACzC,eAAe,EAAE,eAAe,EAChC,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,aAAa,GAC3B,uBAAuB,CA0CzB;AAED,wBAAgB,6BAA6B,CAC3C,eAAe,EAAE,eAAe,EAChC,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,aAAa,GAC3B,uBAAuB,CA2CzB;AAED,wBAAgB,0BAA0B,CACxC,aAAa,EAAE,aAAa,EAC5B,eAAe,EAAE,eAAe,EAChC,aAAa,EAAE,aAAa,GAC3B,uBAAuB,CAwBzB;AAED,wBAAgB,qCAAqC,CACnD,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,MAAM,mBAAmB,GAAG,IAAI,GAC3C,uBAAuB,CA6BzB;AAED,wBAAgB,8BAA8B,CAC5C,aAAa,EAAE,aAAa,EAC5B,eAAe,EAAE,eAAe,EAChC,aAAa,EAAE,aAAa,GAC3B,uBAAuB,CAqCzB;AAED,wBAAgB,gCAAgC,CAC9C,aAAa,EAAE,aAAa,EAC5B,eAAe,EAAE,eAAe,EAChC,aAAa,EAAE,aAAa,GAC3B,uBAAuB,CA+BzB"}
1
+ {"version":3,"file":"strategies-core.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/channels/delivery/strategies-core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAEnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAGrE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAc1D,wBAAgB,6BAA6B,CAAC,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,GAAG,uBAAuB,CAsCjI;AAED,wBAAgB,2BAA2B,CACzC,eAAe,EAAE,eAAe,EAChC,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,aAAa,EAC5B,cAAc,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,KAAK,GAAG,eAAe,CAAC,GAC7D,uBAAuB,CA8CzB;AAED,wBAAgB,6BAA6B,CAC3C,eAAe,EAAE,eAAe,EAChC,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,aAAa,GAC3B,uBAAuB,CA2CzB;AAED,wBAAgB,0BAA0B,CACxC,aAAa,EAAE,aAAa,EAC5B,eAAe,EAAE,eAAe,EAChC,aAAa,EAAE,aAAa,GAC3B,uBAAuB,CAwBzB;AAED,wBAAgB,qCAAqC,CACnD,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,MAAM,mBAAmB,GAAG,IAAI,GAC3C,uBAAuB,CA6BzB;AAED,wBAAgB,8BAA8B,CAC5C,aAAa,EAAE,aAAa,EAC5B,eAAe,EAAE,eAAe,EAChC,aAAa,EAAE,aAAa,GAC3B,uBAAuB,CAqCzB;AAED,wBAAgB,gCAAgC,CAC9C,aAAa,EAAE,aAAa,EAC5B,eAAe,EAAE,eAAe,EAChC,aAAa,EAAE,aAAa,GAC3B,uBAAuB,CA+BzB"}
@@ -1,6 +1,7 @@
1
1
  import { ArtifactStore } from '../../artifacts/index.js';
2
2
  import { ConfigManager } from '../../config/manager.js';
3
3
  import { ServiceRegistry } from '../../config/service-registry.js';
4
+ import { resolveSecretInput } from '../../config/secret-refs.js';
4
5
  import { ControlPlaneGateway } from '../../control-plane/gateway.js';
5
6
  import { DiscordIntegration, NtfyIntegration, SlackIntegration } from '../../integrations/index.js';
6
7
  import { validatePublicWebhookUrl } from '../../utils/url-safety.js';
@@ -47,7 +48,7 @@ export function createWebhookDeliveryStrategy(configManager, artifactStore) {
47
48
  },
48
49
  };
49
50
  }
50
- export function createSlackDeliveryStrategy(serviceRegistry, configManager, artifactStore) {
51
+ export function createSlackDeliveryStrategy(serviceRegistry, configManager, artifactStore, secretsManager) {
51
52
  return {
52
53
  id: 'channel-delivery:slack',
53
54
  canHandle(request) {
@@ -59,6 +60,10 @@ export function createSlackDeliveryStrategy(serviceRegistry, configManager, arti
59
60
  const webhookUrl = await serviceRegistry.resolveSecret('slack', 'webhookUrl')
60
61
  ?? process.env.SLACK_WEBHOOK_URL;
61
62
  const botToken = await serviceRegistry.resolveSecret('slack', 'primary')
63
+ ?? await resolveSecretInput(configManager.get('surfaces.slack.botToken'), {
64
+ resolveLocalSecret: secretsManager ? (key) => secretsManager.get(key) : undefined,
65
+ homeDirectory: secretsManager?.getGlobalHome?.() ?? undefined,
66
+ })
62
67
  ?? process.env.SLACK_BOT_TOKEN;
63
68
  const slack = new SlackIntegration(webhookUrl ?? undefined, botToken ?? undefined);
64
69
  const responseUrl = typeof request.binding?.metadata.responseUrl === 'string'
@@ -1,5 +1,6 @@
1
1
  import type { ArtifactReference } from '../../artifacts/index.js';
2
2
  import type { ConfigManager } from '../../config/manager.js';
3
+ import type { SecretsManager } from '../../config/secrets.js';
3
4
  import type { ServiceRegistry } from '../../config/service-registry.js';
4
5
  import type { ArtifactStore } from '../../artifacts/index.js';
5
6
  import type { ControlPlaneGateway } from '../../control-plane/gateway.js';
@@ -45,6 +46,7 @@ export interface ChannelDeliveryStrategy {
45
46
  }
46
47
  export interface ChannelDeliveryRouterConfig {
47
48
  readonly configManager?: ConfigManager;
49
+ readonly secretsManager?: Pick<SecretsManager, 'get' | 'getGlobalHome'>;
48
50
  readonly serviceRegistry?: ServiceRegistry;
49
51
  readonly artifactStore?: ArtifactStore;
50
52
  readonly controlPlaneGateway?: ControlPlaneGateway | null;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/channels/delivery/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAEvE,MAAM,MAAM,0BAA0B,GAAG,gBAAgB,CAAC;AAC1D,MAAM,MAAM,yBAAyB,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,aAAa,GAAG,MAAM,CAAC;AAEhG,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAC;IACzC,QAAQ,CAAC,WAAW,CAAC,EAAE,0BAA0B,CAAC;IAClD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,WAAW,EAAE,0BAA0B,CAAC;IACjD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACpD,QAAQ,CAAC,OAAO,CAAC,EAAE,2BAA2B,CAAC;CAChD;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC;IACpD,OAAO,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;CAC1E;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;IACvC,QAAQ,CAAC,eAAe,CAAC,EAAE,eAAe,CAAC;IAC3C,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;IACvC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAC1D,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,uBAAuB,EAAE,CAAC;CAC1D"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/channels/delivery/types.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,12 @@
1
1
  import { ArtifactStore } from '../artifacts/index.js';
2
2
  import { ConfigManager } from '../config/manager.js';
3
+ import type { SecretsManager } from '../config/secrets.js';
3
4
  import { ServiceRegistry } from '../config/service-registry.js';
4
5
  import type { ControlPlaneGateway } from '../control-plane/gateway.js';
5
6
  import type { ChannelDeliveryRequest, ChannelDeliveryRouterConfig, ChannelDeliveryStrategy } from './delivery/types.js';
6
7
  export type { ChannelDeliveryResult, ChannelDeliveryRouteBinding, ChannelDeliveryRouterConfig, ChannelDeliveryStrategy, ChannelDeliverySurfaceKind, ChannelDeliveryTarget, ChannelDeliveryTargetKind, } from './delivery/types.js';
7
8
  export { resolveChannelDeliverySurfaceKind } from './delivery/shared.js';
8
- export declare function createDefaultChannelDeliveryStrategies(configManager: ConfigManager, serviceRegistry: ServiceRegistry, artifactStore: ArtifactStore, getControlPlaneGateway: () => ControlPlaneGateway | null): ChannelDeliveryStrategy[];
9
+ export declare function createDefaultChannelDeliveryStrategies(configManager: ConfigManager, serviceRegistry: ServiceRegistry, artifactStore: ArtifactStore, getControlPlaneGateway: () => ControlPlaneGateway | null, secretsManager?: Pick<SecretsManager, 'get' | 'getGlobalHome'>): ChannelDeliveryStrategy[];
9
10
  export declare class ChannelDeliveryRouter {
10
11
  private readonly strategies;
11
12
  private controlPlaneGateway;
@@ -1 +1 @@
1
- {"version":3,"file":"delivery-router.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/channels/delivery-router.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAsBvE,OAAO,KAAK,EACV,sBAAsB,EACtB,2BAA2B,EAC3B,uBAAuB,EACxB,MAAM,qBAAqB,CAAC;AAE7B,YAAY,EACV,qBAAqB,EACrB,2BAA2B,EAC3B,2BAA2B,EAC3B,uBAAuB,EACvB,0BAA0B,EAC1B,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,iCAAiC,EAAE,MAAM,sBAAsB,CAAC;AAEzE,wBAAgB,sCAAsC,CACpD,aAAa,EAAE,aAAa,EAC5B,eAAe,EAAE,eAAe,EAChC,aAAa,EAAE,aAAa,EAC5B,sBAAsB,EAAE,MAAM,mBAAmB,GAAG,IAAI,GACvD,uBAAuB,EAAE,CAiB3B;AAED,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA4B;IACvD,OAAO,CAAC,mBAAmB,CAA6B;gBAE5C,MAAM,GAAE,2BAAgC;IAmBpD,sBAAsB,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,GAAG,IAAI;IAIjE,cAAc,IAAI,SAAS,uBAAuB,EAAE;IAIpD,gBAAgB,CAAC,QAAQ,EAAE,uBAAuB,EAAE,OAAO,GAAE;QAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,IAAI;IAYvG,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAOzC,OAAO,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;CAS5E"}
1
+ {"version":3,"file":"delivery-router.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/channels/delivery-router.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAsBvE,OAAO,KAAK,EACV,sBAAsB,EACtB,2BAA2B,EAC3B,uBAAuB,EACxB,MAAM,qBAAqB,CAAC;AAE7B,YAAY,EACV,qBAAqB,EACrB,2BAA2B,EAC3B,2BAA2B,EAC3B,uBAAuB,EACvB,0BAA0B,EAC1B,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,iCAAiC,EAAE,MAAM,sBAAsB,CAAC;AAEzE,wBAAgB,sCAAsC,CACpD,aAAa,EAAE,aAAa,EAC5B,eAAe,EAAE,eAAe,EAChC,aAAa,EAAE,aAAa,EAC5B,sBAAsB,EAAE,MAAM,mBAAmB,GAAG,IAAI,EACxD,cAAc,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,KAAK,GAAG,eAAe,CAAC,GAC7D,uBAAuB,EAAE,CAiB3B;AAED,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA4B;IACvD,OAAO,CAAC,mBAAmB,CAA6B;gBAE5C,MAAM,GAAE,2BAAgC;IAoBpD,sBAAsB,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,GAAG,IAAI;IAIjE,cAAc,IAAI,SAAS,uBAAuB,EAAE;IAIpD,gBAAgB,CAAC,QAAQ,EAAE,uBAAuB,EAAE,OAAO,GAAE;QAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,IAAI;IAYvG,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAOzC,OAAO,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;CAS5E"}
@@ -6,10 +6,10 @@ import { createBlueBubblesDeliveryStrategy, createIMessageDeliveryStrategy, crea
6
6
  import { createMSTeamsDeliveryStrategy, createMattermostDeliveryStrategy, createMatrixDeliveryStrategy, } from './delivery/strategies-enterprise.js';
7
7
  import { resolveChannelDeliverySurfaceKind } from './delivery/shared.js';
8
8
  export { resolveChannelDeliverySurfaceKind } from './delivery/shared.js';
9
- export function createDefaultChannelDeliveryStrategies(configManager, serviceRegistry, artifactStore, getControlPlaneGateway) {
9
+ export function createDefaultChannelDeliveryStrategies(configManager, serviceRegistry, artifactStore, getControlPlaneGateway, secretsManager) {
10
10
  return [
11
11
  createWebhookDeliveryStrategy(configManager, artifactStore),
12
- createSlackDeliveryStrategy(serviceRegistry, configManager, artifactStore),
12
+ createSlackDeliveryStrategy(serviceRegistry, configManager, artifactStore, secretsManager),
13
13
  createDiscordDeliveryStrategy(serviceRegistry, configManager, artifactStore),
14
14
  createNtfyDeliveryStrategy(configManager, serviceRegistry, artifactStore),
15
15
  createWebControlPlaneDeliveryStrategy(configManager, artifactStore, getControlPlaneGateway),
@@ -36,7 +36,7 @@ export class ChannelDeliveryRouter {
36
36
  if (!config.configManager || !config.serviceRegistry || !config.artifactStore) {
37
37
  throw new Error('ChannelDeliveryRouter requires configManager, serviceRegistry, and artifactStore when using builtin delivery strategies.');
38
38
  }
39
- this.strategies = createDefaultChannelDeliveryStrategies(config.configManager, config.serviceRegistry, config.artifactStore, () => this.controlPlaneGateway);
39
+ this.strategies = createDefaultChannelDeliveryStrategies(config.configManager, config.serviceRegistry, config.artifactStore, () => this.controlPlaneGateway, config.secretsManager);
40
40
  }
41
41
  setControlPlaneGateway(gateway) {
42
42
  this.controlPlaneGateway = gateway;
@@ -1,4 +1,5 @@
1
1
  import type { ConfigManager } from '../config/manager.js';
2
+ import type { SecretsManager } from '../config/secrets.js';
2
3
  import type { ServiceRegistry } from '../config/service-registry.js';
3
4
  import { type SurfaceAdapterContext } from '../adapters/index.js';
4
5
  export type ProviderRuntimeSurface = 'slack' | 'discord' | 'ntfy';
@@ -20,6 +21,7 @@ export interface ProviderRuntimeActionResult {
20
21
  }
21
22
  interface ProviderRuntimeManagerDeps {
22
23
  readonly configManager: ConfigManager;
24
+ readonly secretsManager?: Pick<SecretsManager, 'get' | 'getGlobalHome'>;
23
25
  readonly serviceRegistry: ServiceRegistry;
24
26
  readonly buildSurfaceAdapterContext: () => SurfaceAdapterContext;
25
27
  }
@@ -51,6 +53,7 @@ export declare class ChannelProviderRuntimeManager {
51
53
  private markStopped;
52
54
  private markError;
53
55
  private result;
56
+ private resolveConfigSecret;
54
57
  }
55
58
  export {};
56
59
  //# sourceMappingURL=provider-runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider-runtime.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/channels/provider-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAYrE,OAAO,EACL,KAAK,qBAAqB,EAI3B,MAAM,sBAAsB,CAAC;AAI9B,MAAM,MAAM,sBAAsB,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAElE,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC;IACzC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,aAAa,GAAG,SAAS,GAAG,aAAa,CAAC;IAC9D,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC;IACzC,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,UAAU,0BAA0B;IAClC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;CAClE;AAeD,qBAAa,6BAA6B;IAU5B,OAAO,CAAC,QAAQ,CAAC,IAAI;IATjC,OAAO,CAAC,WAAW,CAAsC;IACzD,OAAO,CAAC,aAAa,CAAqC;IAC1D,OAAO,CAAC,SAAS,CAAgC;IACjD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAIpB;gBAE2B,IAAI,EAAE,0BAA0B;IAEvD,eAAe,IAAI,OAAO,CAAC,2BAA2B,EAAE,CAAC;IAczD,KAAK,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAMlF,IAAI,CAAC,OAAO,EAAE,sBAAsB,GAAG,2BAA2B;IAmBlE,OAAO,IAAI,IAAI;IAMf,MAAM,CAAC,OAAO,EAAE,sBAAsB,GAAG,qBAAqB;YAchD,UAAU;YAoCV,YAAY;YA8BZ,SAAS;YA8BT,mBAAmB;YASnB,qBAAqB;YASrB,iBAAiB;YASjB,oBAAoB;YAQpB,oBAAoB;YAMpB,sBAAsB;YAQtB,gBAAgB;IAQ9B,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,MAAM;CAQf"}
1
+ {"version":3,"file":"provider-runtime.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/channels/provider-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAcrE,OAAO,EACL,KAAK,qBAAqB,EAI3B,MAAM,sBAAsB,CAAC;AAI9B,MAAM,MAAM,sBAAsB,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAElE,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC;IACzC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,aAAa,GAAG,SAAS,GAAG,aAAa,CAAC;IAC9D,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC;IACzC,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,UAAU,0BAA0B;IAClC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,cAAc,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,KAAK,GAAG,eAAe,CAAC,CAAC;IACxE,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;CAClE;AAeD,qBAAa,6BAA6B;IAU5B,OAAO,CAAC,QAAQ,CAAC,IAAI;IATjC,OAAO,CAAC,WAAW,CAAsC;IACzD,OAAO,CAAC,aAAa,CAAqC;IAC1D,OAAO,CAAC,SAAS,CAAgC;IACjD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAIpB;gBAE2B,IAAI,EAAE,0BAA0B;IAEvD,eAAe,IAAI,OAAO,CAAC,2BAA2B,EAAE,CAAC;IAczD,KAAK,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAMlF,IAAI,CAAC,OAAO,EAAE,sBAAsB,GAAG,2BAA2B;IAmBlE,OAAO,IAAI,IAAI;IAMf,MAAM,CAAC,OAAO,EAAE,sBAAsB,GAAG,qBAAqB;YAchD,UAAU;YAoCV,YAAY;YA8BZ,SAAS;YA+BT,mBAAmB;YASnB,qBAAqB;YASrB,iBAAiB;YASjB,oBAAoB;YASpB,oBAAoB;YASpB,sBAAsB;YAQtB,gBAAgB;IAQ9B,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,YAAY;IAgBpB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,MAAM;YASA,mBAAmB;CAQlC"}
@@ -1,4 +1,5 @@
1
- import { DiscordGatewayClient, DiscordIntegration, NtfyIntegration, SlackIntegration, SlackSocketModeClient, resolveGoodVibesNtfyTopics, } from '../integrations/index.js';
1
+ import { resolveSecretInput } from '../config/secret-refs.js';
2
+ import { DiscordGatewayClient, DiscordIntegration, NtfyIntegration, SlackIntegration, SlackSocketModeClient, createNtfyLiveSubscriptionSince, resolveGoodVibesNtfyTopics, } from '../integrations/index.js';
2
3
  import { handleDiscordGatewayDispatchPayload, handleNtfySurfacePayload, handleSlackSurfacePayload, } from '../adapters/index.js';
3
4
  import { logger } from '../utils/logger.js';
4
5
  import { summarizeError } from '../utils/error-display.js';
@@ -148,9 +149,10 @@ export class ChannelProviderRuntimeManager {
148
149
  this.ntfyAbort = abort;
149
150
  const ntfy = new NtfyIntegration(String(this.deps.configManager.get('surfaces.ntfy.baseUrl') || 'https://ntfy.sh'), await this.resolveNtfyToken() ?? undefined);
150
151
  const topicList = topics.join(',');
151
- this.markStarted('ntfy', { topics });
152
+ const since = createNtfyLiveSubscriptionSince();
153
+ this.markStarted('ntfy', { topics, since, replayCachedMessages: false });
152
154
  void ntfy.subscribeJsonStream(topicList, (message) => this.handleNtfyMessage(message), {
153
- since: 'latest',
155
+ since,
154
156
  signal: abort.signal,
155
157
  }).catch((error) => {
156
158
  if (abort.signal.aborted)
@@ -190,13 +192,17 @@ export class ChannelProviderRuntimeManager {
190
192
  }
191
193
  async resolveSlackBotToken() {
192
194
  const serviceValue = await this.deps.serviceRegistry.resolveSecret('slack', 'primary');
195
+ const configValue = await this.resolveConfigSecret(this.deps.configManager.get('surfaces.slack.botToken'));
193
196
  return serviceValue
194
- || String(this.deps.configManager.get('surfaces.slack.botToken') || '')
197
+ || configValue
195
198
  || process.env.SLACK_BOT_TOKEN
196
199
  || null;
197
200
  }
198
201
  async resolveSlackAppToken() {
199
- return String(this.deps.configManager.get('surfaces.slack.appToken') || '')
202
+ const serviceValue = await this.deps.serviceRegistry.resolveSecret('slack', 'appToken');
203
+ const configValue = await this.resolveConfigSecret(this.deps.configManager.get('surfaces.slack.appToken'));
204
+ return serviceValue
205
+ || configValue
200
206
  || process.env.SLACK_APP_TOKEN
201
207
  || null;
202
208
  }
@@ -223,7 +229,11 @@ export class ChannelProviderRuntimeManager {
223
229
  }
224
230
  isConfigured(surface) {
225
231
  if (surface === 'slack') {
226
- return Boolean(this.deps.configManager.get('surfaces.slack.appToken') || process.env.SLACK_APP_TOKEN);
232
+ const slackService = this.deps.serviceRegistry.get('slack');
233
+ return Boolean(this.deps.configManager.get('surfaces.slack.appToken')
234
+ || process.env.SLACK_APP_TOKEN
235
+ || slackService?.appTokenKey
236
+ || slackService?.appTokenRef);
227
237
  }
228
238
  if (surface === 'discord') {
229
239
  return Boolean(this.deps.configManager.get('surfaces.discord.botToken') || process.env.DISCORD_BOT_TOKEN);
@@ -259,4 +269,12 @@ export class ChannelProviderRuntimeManager {
259
269
  message,
260
270
  };
261
271
  }
272
+ async resolveConfigSecret(value) {
273
+ return resolveSecretInput(value, {
274
+ resolveLocalSecret: this.deps.secretsManager
275
+ ? (key) => this.deps.secretsManager.get(key)
276
+ : undefined,
277
+ homeDirectory: this.deps.secretsManager?.getGlobalHome?.() ?? undefined,
278
+ });
279
+ }
262
280
  }
@@ -86,4 +86,5 @@ export declare function isSecretRefInput(input: unknown): input is SecretRefInpu
86
86
  export declare function getSecretRefSource(input: unknown): SecretProviderSource | null;
87
87
  export declare function describeSecretRef(input: unknown): string;
88
88
  export declare function resolveSecretRef(input: SecretRefInput, options?: SecretRefResolutionOptions): Promise<SecretRefResolution>;
89
+ export declare function resolveSecretInput(input: unknown, options?: SecretRefResolutionOptions): Promise<string | null>;
89
90
  //# sourceMappingURL=secret-refs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"secret-refs.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/config/secret-refs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"secret-refs.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/config/secret-refs.ts"],"names":[],"mappings":"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"}
@@ -686,3 +686,18 @@ export async function resolveSecretRef(input, options = {}) {
686
686
  return { source: ref.source, value: await resolveBitwardenSecretsManagerRef(ref, options) };
687
687
  }
688
688
  }
689
+ export async function resolveSecretInput(input, options = {}) {
690
+ const ref = normalizeSecretRef(input);
691
+ if (ref) {
692
+ try {
693
+ return (await resolveSecretRef(ref, options)).value;
694
+ }
695
+ catch {
696
+ return null;
697
+ }
698
+ }
699
+ if (typeof input !== 'string')
700
+ return null;
701
+ const trimmed = input.trim();
702
+ return trimmed.length > 0 ? trimmed : null;
703
+ }
@@ -9,7 +9,7 @@
9
9
  * {
10
10
  * "openai": { "name": "openai", "baseUrl": "https://api.openai.com", "authType": "bearer", "tokenKey": "OPENAI_API_KEY" },
11
11
  * "github": { "name": "github", "baseUrl": "https://api.github.com", "authType": "bearer", "tokenKey": "GITHUB_TOKEN" },
12
- * "slack": { "name": "slack", "authType": "bearer", "tokenKey": "SLACK_BOT_TOKEN", "tokenRef": { "source": "vaultwarden", "item": "GoodVibes Slack", "field": "password", "server": "https://vault.example.test" } }
12
+ * "slack": { "name": "slack", "authType": "bearer", "tokenKey": "SLACK_BOT_TOKEN", "appTokenKey": "SLACK_APP_TOKEN", "tokenRef": { "source": "vaultwarden", "item": "GoodVibes Slack", "field": "password", "server": "https://vault.example.test" } }
13
13
  * }
14
14
  */
15
15
  import { SecretsManager } from './secrets.js';
@@ -45,12 +45,16 @@ export interface ServiceConfig {
45
45
  publicKeyKey?: string;
46
46
  /** Optional external/local secret reference for inbound public-key verification. */
47
47
  publicKeyRef?: SecretRefInput;
48
+ /** Optional Slack-style app-level token key used by socket/client runtimes. */
49
+ appTokenKey?: string;
50
+ /** Optional external/local secret reference for app-level socket/client runtimes. */
51
+ appTokenRef?: SecretRefInput;
48
52
  /** Optional provider ID used for subscription token override lookup. */
49
53
  providerId?: string;
50
54
  /** OAuth metadata for subscription-backed services. */
51
55
  oauth?: OAuthProviderConfig;
52
56
  }
53
- export type ServiceSecretField = 'primary' | 'password' | 'webhookUrl' | 'signingSecret' | 'publicKey';
57
+ export type ServiceSecretField = 'primary' | 'password' | 'webhookUrl' | 'signingSecret' | 'publicKey' | 'appToken';
54
58
  export interface ServiceInspection {
55
59
  readonly config: ServiceConfig;
56
60
  readonly hasPrimaryCredential: boolean;
@@ -58,6 +62,7 @@ export interface ServiceInspection {
58
62
  readonly hasWebhookUrl: boolean;
59
63
  readonly hasSigningSecret: boolean;
60
64
  readonly hasPublicKey: boolean;
65
+ readonly hasAppToken: boolean;
61
66
  }
62
67
  export interface ServiceConnectionTestResult {
63
68
  readonly ok: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"service-registry.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/config/service-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service-registry.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/config/service-registry.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@
9
9
  * {
10
10
  * "openai": { "name": "openai", "baseUrl": "https://api.openai.com", "authType": "bearer", "tokenKey": "OPENAI_API_KEY" },
11
11
  * "github": { "name": "github", "baseUrl": "https://api.github.com", "authType": "bearer", "tokenKey": "GITHUB_TOKEN" },
12
- * "slack": { "name": "slack", "authType": "bearer", "tokenKey": "SLACK_BOT_TOKEN", "tokenRef": { "source": "vaultwarden", "item": "GoodVibes Slack", "field": "password", "server": "https://vault.example.test" } }
12
+ * "slack": { "name": "slack", "authType": "bearer", "tokenKey": "SLACK_BOT_TOKEN", "appTokenKey": "SLACK_APP_TOKEN", "tokenRef": { "source": "vaultwarden", "item": "GoodVibes Slack", "field": "password", "server": "https://vault.example.test" } }
13
13
  * }
14
14
  */
15
15
  import { readFileSync } from 'fs';
@@ -153,18 +153,21 @@ export class ServiceRegistry {
153
153
  return this.resolveConfiguredSecret(serviceName, field, config.signingSecretKey, config.signingSecretRef);
154
154
  case 'publicKey':
155
155
  return this.resolveConfiguredSecret(serviceName, field, config.publicKeyKey, config.publicKeyRef);
156
+ case 'appToken':
157
+ return this.resolveConfiguredSecret(serviceName, field, config.appTokenKey, config.appTokenRef);
156
158
  }
157
159
  }
158
160
  async inspect(serviceName) {
159
161
  const config = this.get(serviceName);
160
162
  if (!config)
161
163
  return null;
162
- const [primary, password, webhookUrl, signingSecret, publicKey,] = await Promise.all([
164
+ const [primary, password, webhookUrl, signingSecret, publicKey, appToken,] = await Promise.all([
163
165
  this.resolveSecret(serviceName, 'primary'),
164
166
  this.resolveSecret(serviceName, 'password'),
165
167
  this.resolveSecret(serviceName, 'webhookUrl'),
166
168
  this.resolveSecret(serviceName, 'signingSecret'),
167
169
  this.resolveSecret(serviceName, 'publicKey'),
170
+ this.resolveSecret(serviceName, 'appToken'),
168
171
  ]);
169
172
  return {
170
173
  config,
@@ -173,6 +176,7 @@ export class ServiceRegistry {
173
176
  hasWebhookUrl: webhookUrl !== null && webhookUrl.length > 0,
174
177
  hasSigningSecret: signingSecret !== null && signingSecret.length > 0,
175
178
  hasPublicKey: publicKey !== null && publicKey.length > 0,
179
+ hasAppToken: appToken !== null && appToken.length > 0,
176
180
  };
177
181
  }
178
182
  async testConnection(serviceName) {
@@ -1 +1 @@
1
- {"version":3,"file":"facade-composition.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/daemon/facade-composition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAiBrD,OAAO,KAAK,EAAE,oBAAoB,EAA0B,MAAM,wCAAwC,CAAC;AAI3G,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,OAAO,KAAK,EAAE,YAAY,EAAuB,MAAM,YAAY,CAAC;AAIpE,YAAY,EACV,2BAA2B,EAC3B,yBAAyB,EACzB,sCAAsC,GACvC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,2BAA2B,EAC3B,yBAAyB,EACzB,sCAAsC,EACvC,MAAM,mBAAmB,CAAC;AAI3B;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,8BAA8B,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,oBAAoB,CA2FvG;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,YAAY,EACpB,qBAAqB,CAAC,EAAE,aAAa,GACpC,2BAA2B,CAoI7B;AAED,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,sCAAsC,GAC9C,yBAAyB,CA6J3B;AAED,wBAAgB,kCAAkC,CAAC,OAAO,EAAE;IAC1D,QAAQ,CAAC,aAAa,EAAE,OAAO,2BAA2B,EAAE,mBAAmB,CAAC;IAChF,QAAQ,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,yBAAyB,EAAE,WAAW,GAAG,QAAQ,CAAC;IACzK,QAAQ,CAAC,4BAA4B,EAAE,CAAC,OAAO,EAAE,OAAO,kDAAkD,EAAE,sBAAsB,GAAG,SAAS,EAAE,KAAK,EAAE;QACrJ,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;KAC7B,KAAK,IAAI,CAAC;CACZ,GAAG,IAAI,CAoBP"}
1
+ {"version":3,"file":"facade-composition.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/daemon/facade-composition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAiBrD,OAAO,KAAK,EAAE,oBAAoB,EAA0B,MAAM,wCAAwC,CAAC;AAI3G,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,OAAO,KAAK,EAAE,YAAY,EAAuB,MAAM,YAAY,CAAC;AAIpE,YAAY,EACV,2BAA2B,EAC3B,yBAAyB,EACzB,sCAAsC,GACvC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,2BAA2B,EAC3B,yBAAyB,EACzB,sCAAsC,EACvC,MAAM,mBAAmB,CAAC;AAI3B;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,8BAA8B,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,oBAAoB,CA2FvG;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,YAAY,EACpB,qBAAqB,CAAC,EAAE,aAAa,GACpC,2BAA2B,CAoI7B;AAED,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,sCAAsC,GAC9C,yBAAyB,CAgK3B;AAED,wBAAgB,kCAAkC,CAAC,OAAO,EAAE;IAC1D,QAAQ,CAAC,aAAa,EAAE,OAAO,2BAA2B,EAAE,mBAAmB,CAAC;IAChF,QAAQ,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,yBAAyB,EAAE,WAAW,GAAG,QAAQ,CAAC;IACzK,QAAQ,CAAC,4BAA4B,EAAE,CAAC,OAAO,EAAE,OAAO,kDAAkD,EAAE,sBAAsB,GAAG,SAAS,EAAE,KAAK,EAAE;QACrJ,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;KAC7B,KAAK,IAAI,CAAC;CACZ,GAAG,IAAI,CAoBP"}
@@ -268,6 +268,7 @@ export function createDaemonFacadeCollaborators(options) {
268
268
  pendingSurfaceReplies: options.pendingSurfaceReplies,
269
269
  channelReplyPipeline,
270
270
  configManager: runtime.configManager,
271
+ secretsManager: runtime.runtimeServices.secretsManager,
271
272
  serviceRegistry: runtime.serviceRegistry,
272
273
  agentManager: runtime.agentManager,
273
274
  sessionBroker: runtime.sessionBroker,
@@ -278,6 +279,7 @@ export function createDaemonFacadeCollaborators(options) {
278
279
  });
279
280
  const surfaceActionHelper = new DaemonSurfaceActionHelper({
280
281
  serviceRegistry: runtime.serviceRegistry,
282
+ secretsManager: runtime.runtimeServices.secretsManager,
281
283
  configManager: runtime.configManager,
282
284
  routeBindings: runtime.routeBindings,
283
285
  sessionBroker: runtime.sessionBroker,
@@ -369,6 +371,7 @@ export function createDaemonFacadeCollaborators(options) {
369
371
  });
370
372
  const providerRuntime = new ChannelProviderRuntimeManager({
371
373
  configManager: runtime.configManager,
374
+ secretsManager: runtime.runtimeServices.secretsManager,
372
375
  serviceRegistry: runtime.serviceRegistry,
373
376
  buildSurfaceAdapterContext: () => surfaceActionHelper.buildSurfaceAdapterContext(),
374
377
  });
@@ -1,4 +1,5 @@
1
1
  import type { ConfigManager } from '../config/manager.js';
2
+ import type { SecretsManager } from '../config/secrets.js';
2
3
  import type { ServiceRegistry } from '../config/service-registry.js';
3
4
  import type { AgentRecord } from '../tools/agent/index.js';
4
5
  import type { AgentManager } from '../tools/agent/index.js';
@@ -11,6 +12,7 @@ import type { RuntimeEventBus } from '../runtime/events/index.js';
11
12
  import type { CompanionChatManager } from '../companion/companion-chat-manager.js';
12
13
  interface DaemonSurfaceActionContext {
13
14
  readonly serviceRegistry: ServiceRegistry;
15
+ readonly secretsManager: Pick<SecretsManager, 'get' | 'getGlobalHome'>;
14
16
  readonly configManager: ConfigManager;
15
17
  readonly routeBindings: RouteBindingManager;
16
18
  readonly sessionBroker: SharedSessionBroker;
@@ -1 +1 @@
1
- {"version":3,"file":"surface-actions.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/daemon/surface-actions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"surface-actions.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/daemon/surface-actions.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,7 @@ export class DaemonSurfaceActionHelper {
14
14
  buildSurfaceAdapterContext() {
15
15
  return {
16
16
  serviceRegistry: this.context.serviceRegistry,
17
+ secretsManager: this.context.secretsManager,
17
18
  configManager: this.context.configManager,
18
19
  routeBindings: this.context.routeBindings,
19
20
  sessionBroker: this.context.sessionBroker,
@@ -1,4 +1,5 @@
1
1
  import type { ConfigManager } from '../config/manager.js';
2
+ import type { SecretsManager } from '../config/secrets.js';
2
3
  import type { ServiceRegistry } from '../config/service-registry.js';
3
4
  import type { AgentManager } from '../tools/agent/index.js';
4
5
  import type { SharedSessionBroker } from '../control-plane/index.js';
@@ -22,6 +23,7 @@ interface DaemonSurfaceDeliveryContext {
22
23
  readonly pendingSurfaceReplies: Map<string, PendingSurfaceReply>;
23
24
  readonly channelReplyPipeline: ChannelReplyPipeline;
24
25
  readonly configManager: ConfigManager;
26
+ readonly secretsManager?: Pick<SecretsManager, 'get' | 'getGlobalHome'>;
25
27
  readonly serviceRegistry: ServiceRegistry;
26
28
  readonly agentManager: AgentManager;
27
29
  readonly sessionBroker: SharedSessionBroker;
@@ -52,6 +54,9 @@ export declare class DaemonSurfaceDeliveryHelper {
52
54
  deliverDiscordApprovalUpdate(approval: SharedApprovalRecord, binding: RouteBinding): Promise<void>;
53
55
  deliverNtfyApprovalUpdate(approval: SharedApprovalRecord, binding: RouteBinding): Promise<void>;
54
56
  deliverWebhookApprovalUpdate(approval: SharedApprovalRecord, binding: RouteBinding): Promise<void>;
57
+ private resolveSlackWebhookUrl;
58
+ private resolveSlackBotToken;
59
+ private resolveConfigSecret;
55
60
  }
56
61
  export {};
57
62
  //# sourceMappingURL=surface-delivery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"surface-delivery.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/daemon/surface-delivery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"surface-delivery.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/daemon/surface-delivery.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import { logger } from '../utils/logger.js';
4
4
  import { validatePublicWebhookUrl } from '../utils/url-safety.js';
5
5
  import { summarizeError } from '../utils/error-display.js';
6
6
  import { instrumentedFetch } from '../utils/fetch-with-timeout.js';
7
+ import { resolveSecretInput } from '../config/secret-refs.js';
7
8
  function isSupportedDeliverySurface(surface) {
8
9
  return surface === 'slack'
9
10
  || surface === 'discord'
@@ -111,10 +112,8 @@ export class DaemonSurfaceDeliveryHelper {
111
112
  }
112
113
  async deliverSurfaceProgress(pending, progress) {
113
114
  if (pending.surfaceKind === 'slack') {
114
- const webhookUrl = await this.context.serviceRegistry.resolveSecret('slack', 'webhookUrl')
115
- ?? process.env.SLACK_WEBHOOK_URL;
116
- const botToken = await this.context.serviceRegistry.resolveSecret('slack', 'primary')
117
- ?? process.env.SLACK_BOT_TOKEN;
115
+ const webhookUrl = await this.resolveSlackWebhookUrl();
116
+ const botToken = await this.resolveSlackBotToken();
118
117
  const slack = new SlackIntegration(webhookUrl ?? undefined, botToken ?? undefined);
119
118
  if (pending.responseUrl) {
120
119
  await instrumentedFetch(pending.responseUrl, {
@@ -148,10 +147,8 @@ export class DaemonSurfaceDeliveryHelper {
148
147
  }
149
148
  }
150
149
  async deliverSlackAgentReply(pending, message) {
151
- const webhookUrl = await this.context.serviceRegistry.resolveSecret('slack', 'webhookUrl')
152
- ?? process.env.SLACK_WEBHOOK_URL;
153
- const botToken = await this.context.serviceRegistry.resolveSecret('slack', 'primary')
154
- ?? process.env.SLACK_BOT_TOKEN;
150
+ const webhookUrl = await this.resolveSlackWebhookUrl();
151
+ const botToken = await this.resolveSlackBotToken();
155
152
  const slack = new SlackIntegration(webhookUrl ?? undefined, botToken ?? undefined);
156
153
  if (pending.responseUrl) {
157
154
  await instrumentedFetch(pending.responseUrl, {
@@ -362,10 +359,8 @@ export class DaemonSurfaceDeliveryHelper {
362
359
  const webUrl = this.controlPlaneWebUrl({ approvalId: approval.id, sessionId: approval.sessionId });
363
360
  const isPending = approval.status === 'pending' || approval.status === 'claimed';
364
361
  const summary = approval.request.analysis.summary;
365
- const webhookUrl = await this.context.serviceRegistry.resolveSecret('slack', 'webhookUrl')
366
- ?? process.env.SLACK_WEBHOOK_URL;
367
- const botToken = await this.context.serviceRegistry.resolveSecret('slack', 'primary')
368
- ?? process.env.SLACK_BOT_TOKEN;
362
+ const webhookUrl = await this.resolveSlackWebhookUrl();
363
+ const botToken = await this.resolveSlackBotToken();
369
364
  const slack = new SlackIntegration(webhookUrl ?? undefined, botToken ?? undefined);
370
365
  const blocks = isPending
371
366
  ? [
@@ -459,4 +454,23 @@ export class DaemonSurfaceDeliveryHelper {
459
454
  body: payload,
460
455
  }).catch(() => { });
461
456
  }
457
+ async resolveSlackWebhookUrl() {
458
+ return await this.context.serviceRegistry.resolveSecret('slack', 'webhookUrl')
459
+ ?? process.env.SLACK_WEBHOOK_URL
460
+ ?? null;
461
+ }
462
+ async resolveSlackBotToken() {
463
+ return await this.context.serviceRegistry.resolveSecret('slack', 'primary')
464
+ ?? await this.resolveConfigSecret(this.context.configManager.get('surfaces.slack.botToken'))
465
+ ?? process.env.SLACK_BOT_TOKEN
466
+ ?? null;
467
+ }
468
+ async resolveConfigSecret(value) {
469
+ return resolveSecretInput(value, {
470
+ resolveLocalSecret: this.context.secretsManager
471
+ ? (key) => this.context.secretsManager.get(key)
472
+ : undefined,
473
+ homeDirectory: this.context.secretsManager?.getGlobalHome?.() ?? undefined,
474
+ });
475
+ }
462
476
  }
@@ -7,7 +7,7 @@ export { Notifier } from './notifier.js';
7
7
  export { GitHubIntegration } from './github.js';
8
8
  export type { GitHubWebhookEvent } from './github.js';
9
9
  export { DeliveryQueue, DeliveryError, classifyDeliveryError, snapshotQueueStatus } from './delivery.js';
10
- export { GOODVIBES_NTFY_ORIGIN, GOODVIBES_NTFY_ORIGIN_HEADER, GOODVIBES_NTFY_OUTBOUND_TAG, GOODVIBES_NTFY_AGENT_TOPIC, GOODVIBES_NTFY_CHAT_TOPIC, GOODVIBES_NTFY_DEFAULT_TOPICS, GOODVIBES_NTFY_REMOTE_TOPIC, NtfyIntegration, isGoodVibesNtfyDeliveryEcho, resolveGoodVibesNtfyTopics, } from './ntfy.js';
10
+ export { GOODVIBES_NTFY_ORIGIN, GOODVIBES_NTFY_ORIGIN_HEADER, GOODVIBES_NTFY_OUTBOUND_TAG, GOODVIBES_NTFY_AGENT_TOPIC, GOODVIBES_NTFY_CHAT_TOPIC, GOODVIBES_NTFY_DEFAULT_TOPICS, GOODVIBES_NTFY_REMOTE_TOPIC, NtfyIntegration, createNtfyLiveSubscriptionSince, isGoodVibesNtfyDeliveryEcho, resolveGoodVibesNtfyTopics, } from './ntfy.js';
11
11
  export type { DeliveryOutcome, DeliveryFailureClass, DeadLetterEntry, DeliveryMetrics, DeliveryQueueConfig, IntegrationQueueStatus, } from './delivery.js';
12
12
  export type { GoodVibesNtfyTopicConfig, GoodVibesNtfyTopics, NtfyMessage, NtfyPublishOptions, NtfySubscribeOptions, NtfyWebSocketOptions, } from './ntfy.js';
13
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/integrations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACrE,YAAY,EACV,mBAAmB,EACnB,uBAAuB,EACvB,eAAe,EACf,UAAU,EACV,kBAAkB,EAClB,gBAAgB,EAChB,0BAA0B,EAC1B,yBAAyB,EACzB,wBAAwB,EACxB,iBAAiB,EACjB,yBAAyB,EACzB,uBAAuB,EACvB,4BAA4B,EAC5B,eAAe,GAChB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACpH,YAAY,EACV,yBAAyB,EACzB,+BAA+B,EAC/B,yBAAyB,EACzB,2BAA2B,EAC3B,sBAAsB,EACtB,kBAAkB,EAClB,4BAA4B,GAC7B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,sBAAsB,EAAE,8BAA8B,EAAE,MAAM,cAAc,CAAC;AACtF,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACzG,OAAO,EACL,qBAAqB,EACrB,4BAA4B,EAC5B,2BAA2B,EAC3B,0BAA0B,EAC1B,yBAAyB,EACzB,6BAA6B,EAC7B,2BAA2B,EAC3B,eAAe,EACf,2BAA2B,EAC3B,0BAA0B,GAC3B,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,wBAAwB,EACxB,mBAAmB,EACnB,WAAW,EACX,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/integrations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACrE,YAAY,EACV,mBAAmB,EACnB,uBAAuB,EACvB,eAAe,EACf,UAAU,EACV,kBAAkB,EAClB,gBAAgB,EAChB,0BAA0B,EAC1B,yBAAyB,EACzB,wBAAwB,EACxB,iBAAiB,EACjB,yBAAyB,EACzB,uBAAuB,EACvB,4BAA4B,EAC5B,eAAe,GAChB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACpH,YAAY,EACV,yBAAyB,EACzB,+BAA+B,EAC/B,yBAAyB,EACzB,2BAA2B,EAC3B,sBAAsB,EACtB,kBAAkB,EAClB,4BAA4B,GAC7B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,sBAAsB,EAAE,8BAA8B,EAAE,MAAM,cAAc,CAAC;AACtF,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACzG,OAAO,EACL,qBAAqB,EACrB,4BAA4B,EAC5B,2BAA2B,EAC3B,0BAA0B,EAC1B,yBAAyB,EACzB,6BAA6B,EAC7B,2BAA2B,EAC3B,eAAe,EACf,+BAA+B,EAC/B,2BAA2B,EAC3B,0BAA0B,GAC3B,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,wBAAwB,EACxB,mBAAmB,EACnB,WAAW,EACX,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,WAAW,CAAC"}
@@ -4,4 +4,4 @@ export { DiscordInteractionType, DiscordInteractionResponseType } from './discor
4
4
  export { Notifier } from './notifier.js';
5
5
  export { GitHubIntegration } from './github.js';
6
6
  export { DeliveryQueue, DeliveryError, classifyDeliveryError, snapshotQueueStatus } from './delivery.js';
7
- export { GOODVIBES_NTFY_ORIGIN, GOODVIBES_NTFY_ORIGIN_HEADER, GOODVIBES_NTFY_OUTBOUND_TAG, GOODVIBES_NTFY_AGENT_TOPIC, GOODVIBES_NTFY_CHAT_TOPIC, GOODVIBES_NTFY_DEFAULT_TOPICS, GOODVIBES_NTFY_REMOTE_TOPIC, NtfyIntegration, isGoodVibesNtfyDeliveryEcho, resolveGoodVibesNtfyTopics, } from './ntfy.js';
7
+ export { GOODVIBES_NTFY_ORIGIN, GOODVIBES_NTFY_ORIGIN_HEADER, GOODVIBES_NTFY_OUTBOUND_TAG, GOODVIBES_NTFY_AGENT_TOPIC, GOODVIBES_NTFY_CHAT_TOPIC, GOODVIBES_NTFY_DEFAULT_TOPICS, GOODVIBES_NTFY_REMOTE_TOPIC, NtfyIntegration, createNtfyLiveSubscriptionSince, isGoodVibesNtfyDeliveryEcho, resolveGoodVibesNtfyTopics, } from './ntfy.js';
@@ -17,6 +17,7 @@ export interface GoodVibesNtfyTopics {
17
17
  readonly all: readonly string[];
18
18
  }
19
19
  export declare function resolveGoodVibesNtfyTopics(config?: GoodVibesNtfyTopicConfig): GoodVibesNtfyTopics;
20
+ export declare function createNtfyLiveSubscriptionSince(nowMs?: number): string;
20
21
  export interface NtfyPublishOptions {
21
22
  readonly title?: string;
22
23
  readonly priority?: 1 | 2 | 3 | 4 | 5;
@@ -1 +1 @@
1
- {"version":3,"file":"ntfy.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/integrations/ntfy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ntfy.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/integrations/ntfy.ts"],"names":[],"mappings":"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"}
@@ -26,6 +26,9 @@ export function resolveGoodVibesNtfyTopics(config = {}) {
26
26
  all: [...new Set([chatTopic, agentTopic, remoteTopic])],
27
27
  };
28
28
  }
29
+ export function createNtfyLiveSubscriptionSince(nowMs = Date.now()) {
30
+ return String(Math.floor(nowMs / 1000));
31
+ }
29
32
  export class NtfyIntegration {
30
33
  baseUrl;
31
34
  token;
@@ -105,10 +108,24 @@ export class NtfyIntegration {
105
108
  }
106
109
  async subscribeJsonStream(topic, onMessage, options = {}) {
107
110
  const reconnect = options.reconnect ?? !options.poll;
111
+ let resumeSince = options.since;
112
+ const seenMessageIds = new NtfySeenMessageIds();
108
113
  while (!options.signal?.aborted) {
109
- const url = this.buildSubscribeUrl(topic, 'json', options);
114
+ const url = this.buildSubscribeUrl(topic, 'json', { ...options, since: resumeSince });
110
115
  try {
111
- await readNtfyJsonStreamWithNodeTransport(url, this.buildAuthHeaders(), onMessage, options.signal);
116
+ await readNtfyJsonStreamWithNodeTransport(url, this.buildAuthHeaders(), async (message) => {
117
+ const messageId = readNtfyMessageId(message);
118
+ if (messageId && seenMessageIds.has(messageId))
119
+ return;
120
+ await onMessage(message);
121
+ if (messageId) {
122
+ seenMessageIds.add(messageId);
123
+ resumeSince = messageId;
124
+ }
125
+ else if (message.event === 'message' && typeof message.time === 'number' && Number.isFinite(message.time)) {
126
+ resumeSince = String(Math.floor(message.time));
127
+ }
128
+ }, options.signal);
112
129
  }
113
130
  catch (error) {
114
131
  if (options.signal?.aborted)
@@ -145,6 +162,29 @@ export class NtfyIntegration {
145
162
  return headers;
146
163
  }
147
164
  }
165
+ class NtfySeenMessageIds {
166
+ ids = new Set();
167
+ order = [];
168
+ has(id) {
169
+ return this.ids.has(id);
170
+ }
171
+ add(id) {
172
+ if (this.ids.has(id))
173
+ return;
174
+ this.ids.add(id);
175
+ this.order.push(id);
176
+ if (this.order.length <= 1_024)
177
+ return;
178
+ const expired = this.order.shift();
179
+ if (expired)
180
+ this.ids.delete(expired);
181
+ }
182
+ }
183
+ function readNtfyMessageId(message) {
184
+ return message.event === 'message' && typeof message.id === 'string' && message.id.trim()
185
+ ? message.id
186
+ : null;
187
+ }
148
188
  export function isGoodVibesNtfyDeliveryEcho(message) {
149
189
  if (message.event !== 'message')
150
190
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap-helpers.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/runtime/bootstrap-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAMzE,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAUD,wBAAgB,uBAAuB,CAAC,aAAa,EAAE,aAAa,GAAG,MAAM,CAiB5E;AAED,wBAAsB,6BAA6B,CACjD,eAAe,EAAE,CAAC,MAAM,EAAE,iBAAiB,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,EACrE,eAAe,EAAE,eAAe,GAC/B,OAAO,CAAC,IAAI,CAAC,CAyBf;AAED,wBAAgB,mBAAmB,CACjC,gBAAgB,EAAE,gBAAgB,EAClC,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,0BAA0B,GAClC,IAAI,CAeN;AAED,eAAO,MAAM,yBAAyB,gCAA0B,CAAC;AACjE,eAAO,MAAM,sBAAsB,sCAAgC,CAAC;AACpE,eAAO,MAAM,iBAAiB,4BAAsB,CAAC"}
1
+ {"version":3,"file":"bootstrap-helpers.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/runtime/bootstrap-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAMzE,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAUD,wBAAgB,uBAAuB,CAAC,aAAa,EAAE,aAAa,GAAG,MAAM,CAiB5E;AAED,wBAAsB,6BAA6B,CACjD,eAAe,EAAE,CAAC,MAAM,EAAE,iBAAiB,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,EACrE,eAAe,EAAE,eAAe,GAC/B,OAAO,CAAC,IAAI,CAAC,CA0Bf;AAED,wBAAgB,mBAAmB,CACjC,gBAAgB,EAAE,gBAAgB,EAClC,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,0BAA0B,GAClC,IAAI,CAeN;AAED,eAAO,MAAM,yBAAyB,gCAA0B,CAAC;AACjE,eAAO,MAAM,sBAAsB,sCAAgC,CAAC;AACpE,eAAO,MAAM,iBAAiB,4BAAsB,CAAC"}
@@ -47,6 +47,7 @@ export async function synchronizeConfiguredServices(syncIntegration, serviceRegi
47
47
  hasWebhookUrl: inspection.hasWebhookUrl,
48
48
  hasSigningSecret: inspection.hasSigningSecret,
49
49
  hasPublicKey: inspection.hasPublicKey,
50
+ hasAppToken: inspection.hasAppToken,
50
51
  },
51
52
  }, 'bootstrap.services');
52
53
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/runtime/services.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/runtime/services.ts"],"names":[],"mappings":"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"}
@@ -222,6 +222,7 @@ export function createRuntimeServices(options) {
222
222
  const memoryRegistry = new MemoryRegistry(memoryStore);
223
223
  const deliveryManager = new AutomationDeliveryManager({
224
224
  configManager,
225
+ secretsManager,
225
226
  serviceRegistry,
226
227
  runtimeBus: options.runtimeBus,
227
228
  runtimeStore: options.runtimeStore,
@@ -322,6 +323,7 @@ export function createRuntimeServices(options) {
322
323
  const projectIndex = new ProjectIndex(workingDirectory);
323
324
  const channelDeliveryRouter = new ChannelDeliveryRouter({
324
325
  configManager,
326
+ secretsManager,
325
327
  serviceRegistry,
326
328
  artifactStore,
327
329
  });
@@ -1,6 +1,6 @@
1
1
  import { readFileSync } from 'node:fs';
2
2
  import { join } from 'node:path';
3
- let version = '0.25.5';
3
+ let version = '0.25.6';
4
4
  try {
5
5
  const pkg = JSON.parse(readFileSync(join(import.meta.dir, '..', '..', 'package.json'), 'utf-8'));
6
6
  version = pkg.version ?? version;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pellux/goodvibes-sdk",
3
- "version": "0.25.5",
3
+ "version": "0.25.6",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/mgd34msu/goodvibes-sdk.git"