crewly 1.20.193 → 1.20.194

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 (144) hide show
  1. package/config/skills/agent/core/experiment-card/SKILL.md +96 -0
  2. package/config/skills/agent/core/experiment-card/execute.sh +147 -0
  3. package/config/skills/agent/core/experiment-card/execute.test.sh +91 -0
  4. package/config/skills/registry.json +6 -5
  5. package/dist/backend/backend/src/constants.d.ts +58 -1
  6. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  7. package/dist/backend/backend/src/constants.js +61 -1
  8. package/dist/backend/backend/src/constants.js.map +1 -1
  9. package/dist/backend/backend/src/controllers/experiments/experiments.routes.d.ts +27 -0
  10. package/dist/backend/backend/src/controllers/experiments/experiments.routes.d.ts.map +1 -0
  11. package/dist/backend/backend/src/controllers/experiments/experiments.routes.js +96 -0
  12. package/dist/backend/backend/src/controllers/experiments/experiments.routes.js.map +1 -0
  13. package/dist/backend/backend/src/index.d.ts.map +1 -1
  14. package/dist/backend/backend/src/index.js +39 -3
  15. package/dist/backend/backend/src/index.js.map +1 -1
  16. package/dist/backend/backend/src/routes/api.routes.d.ts.map +1 -1
  17. package/dist/backend/backend/src/routes/api.routes.js +3 -0
  18. package/dist/backend/backend/src/routes/api.routes.js.map +1 -1
  19. package/dist/backend/backend/src/services/agent/auditor-scheduler.service.d.ts.map +1 -1
  20. package/dist/backend/backend/src/services/agent/auditor-scheduler.service.js +3 -0
  21. package/dist/backend/backend/src/services/agent/auditor-scheduler.service.js.map +1 -1
  22. package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts.map +1 -1
  23. package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js +1 -0
  24. package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -1
  25. package/dist/backend/backend/src/services/canva/canva-token.service.d.ts.map +1 -1
  26. package/dist/backend/backend/src/services/canva/canva-token.service.js +5 -0
  27. package/dist/backend/backend/src/services/canva/canva-token.service.js.map +1 -1
  28. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +14 -3
  29. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -1
  30. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +28 -4
  31. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
  32. package/dist/backend/backend/src/services/experiments/experiment-verdict.d.ts +88 -0
  33. package/dist/backend/backend/src/services/experiments/experiment-verdict.d.ts.map +1 -0
  34. package/dist/backend/backend/src/services/experiments/experiment-verdict.js +226 -0
  35. package/dist/backend/backend/src/services/experiments/experiment-verdict.js.map +1 -0
  36. package/dist/backend/backend/src/services/experiments/experiment.service.d.ts +301 -0
  37. package/dist/backend/backend/src/services/experiments/experiment.service.d.ts.map +1 -0
  38. package/dist/backend/backend/src/services/experiments/experiment.service.js +754 -0
  39. package/dist/backend/backend/src/services/experiments/experiment.service.js.map +1 -0
  40. package/dist/backend/backend/src/services/experiments/experiment.wiring.d.ts +73 -0
  41. package/dist/backend/backend/src/services/experiments/experiment.wiring.d.ts.map +1 -0
  42. package/dist/backend/backend/src/services/experiments/experiment.wiring.js +142 -0
  43. package/dist/backend/backend/src/services/experiments/experiment.wiring.js.map +1 -0
  44. package/dist/backend/backend/src/services/experiments/seo-ops-metric.fetcher.d.ts +60 -0
  45. package/dist/backend/backend/src/services/experiments/seo-ops-metric.fetcher.d.ts.map +1 -0
  46. package/dist/backend/backend/src/services/experiments/seo-ops-metric.fetcher.js +113 -0
  47. package/dist/backend/backend/src/services/experiments/seo-ops-metric.fetcher.js.map +1 -0
  48. package/dist/backend/backend/src/services/google/google-workspace-token.service.d.ts.map +1 -1
  49. package/dist/backend/backend/src/services/google/google-workspace-token.service.js +5 -0
  50. package/dist/backend/backend/src/services/google/google-workspace-token.service.js.map +1 -1
  51. package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts +11 -3
  52. package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -1
  53. package/dist/backend/backend/src/services/messaging/queue-processor.service.js +24 -7
  54. package/dist/backend/backend/src/services/messaging/queue-processor.service.js.map +1 -1
  55. package/dist/backend/backend/src/services/microsoft/microsoft-token.service.d.ts.map +1 -1
  56. package/dist/backend/backend/src/services/microsoft/microsoft-token.service.js +5 -0
  57. package/dist/backend/backend/src/services/microsoft/microsoft-token.service.js.map +1 -1
  58. package/dist/backend/backend/src/services/orc/orc-status-router.service.d.ts.map +1 -1
  59. package/dist/backend/backend/src/services/orc/orc-status-router.service.js +3 -2
  60. package/dist/backend/backend/src/services/orc/orc-status-router.service.js.map +1 -1
  61. package/dist/backend/backend/src/services/people/acting-for.service.d.ts +42 -5
  62. package/dist/backend/backend/src/services/people/acting-for.service.d.ts.map +1 -1
  63. package/dist/backend/backend/src/services/people/acting-for.service.js +80 -5
  64. package/dist/backend/backend/src/services/people/acting-for.service.js.map +1 -1
  65. package/dist/backend/backend/src/services/people/grant-sharing.d.ts +5 -4
  66. package/dist/backend/backend/src/services/people/grant-sharing.d.ts.map +1 -1
  67. package/dist/backend/backend/src/services/people/grant-sharing.js +12 -4
  68. package/dist/backend/backend/src/services/people/grant-sharing.js.map +1 -1
  69. package/dist/backend/backend/src/services/people/people-directory.service.d.ts +71 -13
  70. package/dist/backend/backend/src/services/people/people-directory.service.d.ts.map +1 -1
  71. package/dist/backend/backend/src/services/people/people-directory.service.js +164 -27
  72. package/dist/backend/backend/src/services/people/people-directory.service.js.map +1 -1
  73. package/dist/backend/backend/src/services/slack/slack-bot-ids.d.ts +33 -0
  74. package/dist/backend/backend/src/services/slack/slack-bot-ids.d.ts.map +1 -0
  75. package/dist/backend/backend/src/services/slack/slack-bot-ids.js +56 -0
  76. package/dist/backend/backend/src/services/slack/slack-bot-ids.js.map +1 -0
  77. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts +12 -0
  78. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
  79. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js +27 -8
  80. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
  81. package/dist/backend/backend/src/services/slack/slack.service.d.ts +6 -0
  82. package/dist/backend/backend/src/services/slack/slack.service.d.ts.map +1 -1
  83. package/dist/backend/backend/src/services/slack/slack.service.js +8 -0
  84. package/dist/backend/backend/src/services/slack/slack.service.js.map +1 -1
  85. package/dist/backend/backend/src/services/wiki/wiki-ingest.service.d.ts +3 -1
  86. package/dist/backend/backend/src/services/wiki/wiki-ingest.service.d.ts.map +1 -1
  87. package/dist/backend/backend/src/services/wiki/wiki-ingest.service.js.map +1 -1
  88. package/dist/backend/backend/src/services/workflow/message-scheduler.service.d.ts.map +1 -1
  89. package/dist/backend/backend/src/services/workflow/message-scheduler.service.js +3 -0
  90. package/dist/backend/backend/src/services/workflow/message-scheduler.service.js.map +1 -1
  91. package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts.map +1 -1
  92. package/dist/backend/backend/src/services/workflow/scheduler.service.js +3 -0
  93. package/dist/backend/backend/src/services/workflow/scheduler.service.js.map +1 -1
  94. package/dist/backend/backend/src/types/experiment.types.d.ts +153 -0
  95. package/dist/backend/backend/src/types/experiment.types.d.ts.map +1 -0
  96. package/dist/backend/backend/src/types/experiment.types.js +32 -0
  97. package/dist/backend/backend/src/types/experiment.types.js.map +1 -0
  98. package/dist/backend/backend/src/types/messaging.types.d.ts +6 -0
  99. package/dist/backend/backend/src/types/messaging.types.d.ts.map +1 -1
  100. package/dist/backend/backend/src/types/messaging.types.js.map +1 -1
  101. package/dist/backend/build-info.json +2 -2
  102. package/dist/cli/backend/src/constants.d.ts +58 -1
  103. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  104. package/dist/cli/backend/src/constants.js +61 -1
  105. package/dist/cli/backend/src/constants.js.map +1 -1
  106. package/dist/cli/backend/src/services/agent/auditor-scheduler.service.d.ts.map +1 -1
  107. package/dist/cli/backend/src/services/agent/auditor-scheduler.service.js +3 -0
  108. package/dist/cli/backend/src/services/agent/auditor-scheduler.service.js.map +1 -1
  109. package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts.map +1 -1
  110. package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.js +1 -0
  111. package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -1
  112. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +14 -3
  113. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -1
  114. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +28 -4
  115. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
  116. package/dist/cli/backend/src/services/messaging/queue-processor.service.d.ts +11 -3
  117. package/dist/cli/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -1
  118. package/dist/cli/backend/src/services/messaging/queue-processor.service.js +24 -7
  119. package/dist/cli/backend/src/services/messaging/queue-processor.service.js.map +1 -1
  120. package/dist/cli/backend/src/services/people/acting-for.service.d.ts +42 -5
  121. package/dist/cli/backend/src/services/people/acting-for.service.d.ts.map +1 -1
  122. package/dist/cli/backend/src/services/people/acting-for.service.js +80 -5
  123. package/dist/cli/backend/src/services/people/acting-for.service.js.map +1 -1
  124. package/dist/cli/backend/src/services/people/people-directory.service.d.ts +71 -13
  125. package/dist/cli/backend/src/services/people/people-directory.service.d.ts.map +1 -1
  126. package/dist/cli/backend/src/services/people/people-directory.service.js +164 -27
  127. package/dist/cli/backend/src/services/people/people-directory.service.js.map +1 -1
  128. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.d.ts +12 -0
  129. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
  130. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.js +27 -8
  131. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
  132. package/dist/cli/backend/src/services/slack/slack.service.d.ts +6 -0
  133. package/dist/cli/backend/src/services/slack/slack.service.d.ts.map +1 -1
  134. package/dist/cli/backend/src/services/slack/slack.service.js +8 -0
  135. package/dist/cli/backend/src/services/slack/slack.service.js.map +1 -1
  136. package/dist/cli/backend/src/services/wiki/wiki-ingest.service.d.ts +3 -1
  137. package/dist/cli/backend/src/services/wiki/wiki-ingest.service.d.ts.map +1 -1
  138. package/dist/cli/backend/src/services/wiki/wiki-ingest.service.js.map +1 -1
  139. package/dist/cli/backend/src/types/messaging.types.d.ts +6 -0
  140. package/dist/cli/backend/src/types/messaging.types.d.ts.map +1 -1
  141. package/dist/cli/backend/src/types/messaging.types.js.map +1 -1
  142. package/frontend/dist/assets/{index-465d1f8f.js → index-800118ca.js} +274 -274
  143. package/frontend/dist/index.html +1 -1
  144. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../backend/src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../backend/src/index.ts"],"names":[],"mappings":"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"}
@@ -28,7 +28,8 @@ import { getSettingsService } from './services/settings/index.js';
28
28
  import { MemoryService } from './services/memory/memory.service.js';
29
29
  import { getImprovementStartupService } from './services/orchestrator/improvement-startup.service.js';
30
30
  import { dedicatedDecisionFor } from './services/people/dedicated-agent.js';
31
- import { setPeopleOwnerLookup } from './services/people/people-directory.service.js';
31
+ import { setPeopleBotLookup, setPeopleOwnerLookup } from './services/people/people-directory.service.js';
32
+ import { isCrewlyBotUserId } from './services/slack/slack-bot-ids.js';
32
33
  import { getSlackCloudConfigService } from './services/slack/slack-cloud-config.service.js';
33
34
  import { initializeSlackIfConfigured, shutdownSlack } from './services/slack/index.js';
34
35
  import { isNonFatalUnhandledRejection, unhandledRejectionMessage } from './utils/unhandled-rejection.utils.js';
@@ -67,7 +68,7 @@ import { getSlackAutoWorkingService } from './services/slack/slack-auto-working.
67
68
  import { getSlackAgentDmService } from './services/slack/slack-agent-dm.service.js';
68
69
  import { sendBootAnnouncement, isFirstBoot, markBooted } from './services/boot/boot-announce.service.js';
69
70
  import { SubAgentMessageQueue } from './services/messaging/sub-agent-message-queue.service.js';
70
- import { SUB_AGENT_QUEUE_CONSTANTS, CHAT_CONTEXT_CONSTANTS, SAFE_RESTART, AUTO_UPDATE_CONSTANTS, PROCESS_EXIT_CODES, CLAUDE_STARTUP_CONSTANTS, WEB_CONSTANTS, TICKET_CONSTANTS, UNASSIGNED_ROUTE_CONSTANTS, CLOUD_TALK_CONSTANTS, STANDING_ANSWERS_CONSTANTS, TICKET_AUTOPILOT_CONSTANTS, WORK_ITEM_DESTINATION_CONSTANTS, CODEX_USAGE_SYNC_CONSTANTS, ANTIGRAVITY_USAGE_SYNC_CONSTANTS } from './constants.js';
71
+ import { SUB_AGENT_QUEUE_CONSTANTS, CHAT_CONTEXT_CONSTANTS, SAFE_RESTART, AUTO_UPDATE_CONSTANTS, PROCESS_EXIT_CODES, CLAUDE_STARTUP_CONSTANTS, WEB_CONSTANTS, TICKET_CONSTANTS, UNASSIGNED_ROUTE_CONSTANTS, CLOUD_TALK_CONSTANTS, STANDING_ANSWERS_CONSTANTS, TICKET_AUTOPILOT_CONSTANTS, EXPERIMENT_CONSTANTS, WORK_ITEM_DESTINATION_CONSTANTS, CODEX_USAGE_SYNC_CONSTANTS, ANTIGRAVITY_USAGE_SYNC_CONSTANTS } from './constants.js';
71
72
  import { PtyActivityTrackerService } from './services/agent/pty-activity-tracker.service.js';
72
73
  import { InFlightTurnTracker } from './services/restart/in-flight-turn-tracker.service.js';
73
74
  import { TicketIntakeService, setTicketIntakeService, resolveTicketIdForSession, } from './services/v3/ticket-intake.service.js';
@@ -2122,7 +2123,7 @@ export class CrewlyServer {
2122
2123
  // messages into the bound agent session so it can reply via the
2123
2124
  // `reply-channel` skill. See chat-v2.gateway.ts for the contract.
2124
2125
  try {
2125
- const [{ ChatV2Gateway, devAnonymousTokenVerifier }, { ChatV2DispatcherService }, { ChatV2MentionResolver }, { getChatV2Service }, { setChatV2RealtimeDeps }, { verifyHs256Token },] = await Promise.all([
2126
+ const [{ ChatV2Gateway, devAnonymousTokenVerifier }, { ChatV2DispatcherService, agentAuthorOf }, { ChatV2MentionResolver }, { getChatV2Service }, { setChatV2RealtimeDeps }, { verifyHs256Token },] = await Promise.all([
2126
2127
  import('./websocket/chat-v2.gateway.js'),
2127
2128
  import('./services/chat-v2/chat-v2.dispatcher.service.js'),
2128
2129
  import('./services/chat-v2/chat-v2.mention-resolver.js'),
@@ -2157,8 +2158,11 @@ export class CrewlyServer {
2157
2158
  mentionResolver: chatMentionResolver,
2158
2159
  // Issue #968: an agent dedicated to one person never gets (or
2159
2160
  // is woken by) anyone else's Slack message.
2161
+ // A post another agent wrote (colleague's Slack post, or a
2162
+ // local agent's user turn) is never declined.
2160
2163
  refuseDelivery: async (sessionName, message) => (await dedicatedDecisionFor(StorageService.getInstance(), sessionName, {
2161
2164
  slackUserId: typeof message.metadata?.slackUserId === 'string' ? message.metadata.slackUserId : null,
2165
+ authorAgentSession: agentAuthorOf(message),
2162
2166
  })).decline,
2163
2167
  // Phase B-2 — huddle roster lookup. ChatV2Service owns
2164
2168
  // the chat_channel_members table; the dispatcher just
@@ -3030,6 +3034,36 @@ export class CrewlyServer {
3030
3034
  else {
3031
3035
  this.logger.info('Ticket autopilot off (CREWLY_TICKET_AUTOPILOT=0)');
3032
3036
  }
3037
+ // Experiment cards (specs/experiment-cards.md, issue #986): measure each
3038
+ // shipped experiment at the end of its window, label it, log it to the
3039
+ // wiki and tell the owner. Kill switch: CREWLY_EXPERIMENTS=0.
3040
+ if (process.env[EXPERIMENT_CONSTANTS.ENV_SWITCH] !== '0')
3041
+ try {
3042
+ const { createDefaultExperimentService } = await import('./services/experiments/experiment.wiring.js');
3043
+ const { ExperimentService } = await import('./services/experiments/experiment.service.js');
3044
+ const experiments = await createDefaultExperimentService(async ({ title, message, urgent }) => {
3045
+ const slack = getSlackService();
3046
+ if (!slack.isConnected())
3047
+ return false;
3048
+ await slack.sendNotification({
3049
+ type: 'project_update',
3050
+ title,
3051
+ message,
3052
+ urgency: urgent ? 'high' : 'normal',
3053
+ timestamp: new Date().toISOString(),
3054
+ });
3055
+ return true;
3056
+ });
3057
+ ExperimentService.getInstance()?.stop();
3058
+ ExperimentService.setInstance(experiments);
3059
+ experiments.start();
3060
+ this.logger.info('Experiment cards started');
3061
+ }
3062
+ catch (experimentErr) {
3063
+ this.logger.warn('Experiment cards failed to start (non-fatal)', {
3064
+ error: experimentErr instanceof Error ? experimentErr.message : String(experimentErr),
3065
+ });
3066
+ }
3033
3067
  // Decision cards (specs/2026-10-01-decision-cards.md): structured owner
3034
3068
  // questions posted by the responsible agent's own bot, answered by
3035
3069
  // button / reaction / thread reply / dashboard; deadlines applied here.
@@ -3418,6 +3452,8 @@ export class CrewlyServer {
3418
3452
  // The people directory's owner is the Slack user who installed Crewly's
3419
3453
  // Slack app (issue #968); before Slack is set up it is "owner".
3420
3454
  setPeopleOwnerLookup(() => getSlackCloudConfigService()?.getConfig()?.workspace.installedBy || null);
3455
+ // Crewly's own bots (master bot, agent bots) are never people.
3456
+ setPeopleBotLookup(isCrewlyBotUserId);
3421
3457
  try {
3422
3458
  this.logger.info('Checking Slack configuration...');
3423
3459
  const result = await initializeSlackIfConfigured({