crewly 1.16.0 → 1.17.0

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 (130) hide show
  1. package/README.md +33 -1
  2. package/config/roles/orchestrator/prompt.md +20 -5
  3. package/config/skills/agent/core/calendar-create/SKILL.md +62 -0
  4. package/config/skills/agent/core/calendar-create/execute.sh +91 -0
  5. package/config/skills/agent/core/calendar-create/execute.test.sh +80 -0
  6. package/config/skills/agent/core/calendar-list/SKILL.md +58 -0
  7. package/config/skills/agent/core/calendar-list/execute.sh +88 -0
  8. package/config/skills/agent/core/calendar-list/execute.test.sh +71 -0
  9. package/config/skills/agent/core/gmail-read/SKILL.md +61 -0
  10. package/config/skills/agent/core/gmail-read/execute.sh +62 -0
  11. package/config/skills/agent/core/gmail-read/execute.test.sh +68 -0
  12. package/config/skills/agent/core/gmail-search/SKILL.md +64 -0
  13. package/config/skills/agent/core/gmail-search/execute.sh +70 -0
  14. package/config/skills/agent/core/gmail-search/execute.test.sh +67 -0
  15. package/config/skills/agent/core/gmail-send/SKILL.md +69 -0
  16. package/config/skills/agent/core/gmail-send/execute.sh +114 -0
  17. package/config/skills/agent/core/gmail-send/execute.test.sh +83 -0
  18. package/config/skills/orchestrator/list-missions/SKILL.md +47 -0
  19. package/config/skills/orchestrator/list-missions/execute.sh +34 -0
  20. package/config/skills/orchestrator/list-missions/execute.test.sh +33 -0
  21. package/config/slack-master-app-manifest.json +64 -0
  22. package/dist/backend/backend/src/constants.d.ts +125 -0
  23. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  24. package/dist/backend/backend/src/constants.js +125 -0
  25. package/dist/backend/backend/src/constants.js.map +1 -1
  26. package/dist/backend/backend/src/controllers/cloud/cloud.controller.d.ts.map +1 -1
  27. package/dist/backend/backend/src/controllers/cloud/cloud.controller.js +3 -1
  28. package/dist/backend/backend/src/controllers/cloud/cloud.controller.js.map +1 -1
  29. package/dist/backend/backend/src/controllers/google/google.controller.d.ts +100 -0
  30. package/dist/backend/backend/src/controllers/google/google.controller.d.ts.map +1 -0
  31. package/dist/backend/backend/src/controllers/google/google.controller.js +293 -0
  32. package/dist/backend/backend/src/controllers/google/google.controller.js.map +1 -0
  33. package/dist/backend/backend/src/controllers/google/google.routes.d.ts +26 -0
  34. package/dist/backend/backend/src/controllers/google/google.routes.d.ts.map +1 -0
  35. package/dist/backend/backend/src/controllers/google/google.routes.js +38 -0
  36. package/dist/backend/backend/src/controllers/google/google.routes.js.map +1 -0
  37. package/dist/backend/backend/src/controllers/slack/slack.controller.d.ts.map +1 -1
  38. package/dist/backend/backend/src/controllers/slack/slack.controller.js +209 -2
  39. package/dist/backend/backend/src/controllers/slack/slack.controller.js.map +1 -1
  40. package/dist/backend/backend/src/index.d.ts.map +1 -1
  41. package/dist/backend/backend/src/index.js +39 -8
  42. package/dist/backend/backend/src/index.js.map +1 -1
  43. package/dist/backend/backend/src/routes/api.routes.d.ts.map +1 -1
  44. package/dist/backend/backend/src/routes/api.routes.js +4 -0
  45. package/dist/backend/backend/src/routes/api.routes.js.map +1 -1
  46. package/dist/backend/backend/src/services/cloud/cloud-initializer.d.ts +8 -0
  47. package/dist/backend/backend/src/services/cloud/cloud-initializer.d.ts.map +1 -1
  48. package/dist/backend/backend/src/services/cloud/cloud-initializer.js +25 -0
  49. package/dist/backend/backend/src/services/cloud/cloud-initializer.js.map +1 -1
  50. package/dist/backend/backend/src/services/cloud/cloud-sync.types.d.ts +1 -1
  51. package/dist/backend/backend/src/services/cloud/cloud-sync.types.d.ts.map +1 -1
  52. package/dist/backend/backend/src/services/cloud/cloud-sync.types.js +1 -0
  53. package/dist/backend/backend/src/services/cloud/cloud-sync.types.js.map +1 -1
  54. package/dist/backend/backend/src/services/google/calendar.service.d.ts +98 -0
  55. package/dist/backend/backend/src/services/google/calendar.service.d.ts.map +1 -0
  56. package/dist/backend/backend/src/services/google/calendar.service.js +125 -0
  57. package/dist/backend/backend/src/services/google/calendar.service.js.map +1 -0
  58. package/dist/backend/backend/src/services/google/gmail.service.d.ts +165 -0
  59. package/dist/backend/backend/src/services/google/gmail.service.d.ts.map +1 -0
  60. package/dist/backend/backend/src/services/google/gmail.service.js +296 -0
  61. package/dist/backend/backend/src/services/google/gmail.service.js.map +1 -0
  62. package/dist/backend/backend/src/services/google/google-api.client.d.ts +44 -0
  63. package/dist/backend/backend/src/services/google/google-api.client.d.ts.map +1 -0
  64. package/dist/backend/backend/src/services/google/google-api.client.js +104 -0
  65. package/dist/backend/backend/src/services/google/google-api.client.js.map +1 -0
  66. package/dist/backend/backend/src/services/google/google-workspace-token.service.d.ts +159 -0
  67. package/dist/backend/backend/src/services/google/google-workspace-token.service.d.ts.map +1 -0
  68. package/dist/backend/backend/src/services/google/google-workspace-token.service.js +274 -0
  69. package/dist/backend/backend/src/services/google/google-workspace-token.service.js.map +1 -0
  70. package/dist/backend/backend/src/services/slack/slack-agent-identity.service.d.ts +12 -1
  71. package/dist/backend/backend/src/services/slack/slack-agent-identity.service.d.ts.map +1 -1
  72. package/dist/backend/backend/src/services/slack/slack-agent-identity.service.js +30 -0
  73. package/dist/backend/backend/src/services/slack/slack-agent-identity.service.js.map +1 -1
  74. package/dist/backend/backend/src/services/slack/slack-cloud-config.service.d.ts +186 -0
  75. package/dist/backend/backend/src/services/slack/slack-cloud-config.service.d.ts.map +1 -0
  76. package/dist/backend/backend/src/services/slack/slack-cloud-config.service.js +409 -0
  77. package/dist/backend/backend/src/services/slack/slack-cloud-config.service.js.map +1 -0
  78. package/dist/backend/backend/src/services/slack/slack-initializer.d.ts +95 -1
  79. package/dist/backend/backend/src/services/slack/slack-initializer.d.ts.map +1 -1
  80. package/dist/backend/backend/src/services/slack/slack-initializer.js +284 -4
  81. package/dist/backend/backend/src/services/slack/slack-initializer.js.map +1 -1
  82. package/dist/backend/backend/src/services/slack/slack-instance-registry.service.d.ts +178 -0
  83. package/dist/backend/backend/src/services/slack/slack-instance-registry.service.d.ts.map +1 -0
  84. package/dist/backend/backend/src/services/slack/slack-instance-registry.service.js +392 -0
  85. package/dist/backend/backend/src/services/slack/slack-instance-registry.service.js.map +1 -0
  86. package/dist/backend/backend/src/services/slack/slack.service.d.ts +76 -1
  87. package/dist/backend/backend/src/services/slack/slack.service.d.ts.map +1 -1
  88. package/dist/backend/backend/src/services/slack/slack.service.js +234 -47
  89. package/dist/backend/backend/src/services/slack/slack.service.js.map +1 -1
  90. package/dist/backend/backend/src/services/v3/mission-reminder.service.d.ts +4 -0
  91. package/dist/backend/backend/src/services/v3/mission-reminder.service.d.ts.map +1 -1
  92. package/dist/backend/backend/src/services/v3/mission-reminder.service.js +17 -0
  93. package/dist/backend/backend/src/services/v3/mission-reminder.service.js.map +1 -1
  94. package/dist/backend/backend/src/services/v3/okr-owner-guidance.service.d.ts +116 -0
  95. package/dist/backend/backend/src/services/v3/okr-owner-guidance.service.d.ts.map +1 -0
  96. package/dist/backend/backend/src/services/v3/okr-owner-guidance.service.js +254 -0
  97. package/dist/backend/backend/src/services/v3/okr-owner-guidance.service.js.map +1 -0
  98. package/dist/backend/backend/src/types/slack.types.d.ts +141 -2
  99. package/dist/backend/backend/src/types/slack.types.d.ts.map +1 -1
  100. package/dist/backend/backend/src/types/slack.types.js.map +1 -1
  101. package/dist/backend/backend/src/types/v2/mission.types.d.ts +2 -0
  102. package/dist/backend/backend/src/types/v2/mission.types.d.ts.map +1 -1
  103. package/dist/backend/backend/src/types/v2/mission.types.js.map +1 -1
  104. package/dist/backend/build-info.json +2 -2
  105. package/dist/cli/backend/src/constants.d.ts +125 -0
  106. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  107. package/dist/cli/backend/src/constants.js +125 -0
  108. package/dist/cli/backend/src/constants.js.map +1 -1
  109. package/dist/cli/backend/src/services/cloud/cloud-sync.types.d.ts +1 -1
  110. package/dist/cli/backend/src/services/cloud/cloud-sync.types.d.ts.map +1 -1
  111. package/dist/cli/backend/src/services/cloud/cloud-sync.types.js +1 -0
  112. package/dist/cli/backend/src/services/cloud/cloud-sync.types.js.map +1 -1
  113. package/dist/cli/backend/src/services/slack/slack-agent-identity.service.d.ts +12 -1
  114. package/dist/cli/backend/src/services/slack/slack-agent-identity.service.d.ts.map +1 -1
  115. package/dist/cli/backend/src/services/slack/slack-agent-identity.service.js +30 -0
  116. package/dist/cli/backend/src/services/slack/slack-agent-identity.service.js.map +1 -1
  117. package/dist/cli/backend/src/services/slack/slack.service.d.ts +76 -1
  118. package/dist/cli/backend/src/services/slack/slack.service.d.ts.map +1 -1
  119. package/dist/cli/backend/src/services/slack/slack.service.js +234 -47
  120. package/dist/cli/backend/src/services/slack/slack.service.js.map +1 -1
  121. package/dist/cli/backend/src/types/slack.types.d.ts +141 -2
  122. package/dist/cli/backend/src/types/slack.types.d.ts.map +1 -1
  123. package/dist/cli/backend/src/types/slack.types.js.map +1 -1
  124. package/dist/cli/backend/src/types/v2/mission.types.d.ts +2 -0
  125. package/dist/cli/backend/src/types/v2/mission.types.d.ts.map +1 -1
  126. package/dist/cli/backend/src/types/v2/mission.types.js.map +1 -1
  127. package/frontend/dist/assets/{index-019817e2.js → index-c87332bf.js} +273 -273
  128. package/frontend/dist/assets/{index-a56613e7.css → index-f6b4230e.css} +1 -1
  129. package/frontend/dist/index.html +2 -2
  130. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"mission-reminder.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/v3/mission-reminder.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mission-reminder.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/v3/mission-reminder.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * OKR Owner Guidance — the part of the goal layer that reaches out to the
3
+ * owner instead of waiting to be looked at.
4
+ *
5
+ * Observed on steamfun-ops (2026-09-18): a team OKR proposal sat in
6
+ * `pending_approval` and nothing told anyone. The hourly sweep skips pending
7
+ * missions by design, the orchestrator only learns about goals through a
8
+ * memory search at registration, and the owner would only find the proposal
9
+ * by opening the Missions page. Two behaviours fix that:
10
+ *
11
+ * 1. **Approval nudge** — every pending proposal is surfaced to the owner
12
+ * (Slack DM through the orchestrator bridge + a line in the orchestrator's
13
+ * queue so it can mention it in chat), once, then again every 24 h while
14
+ * it stays pending. Persisted on the mission as `lastApprovalNudgeAt`.
15
+ * 2. **Weekly digest** — on a cron boundary (default Monday 09:00 UTC,
16
+ * `CREWLY_OKR_DIGEST_CRON` / `CREWLY_OKR_DIGEST_TZ`) one message per
17
+ * account: each mission's KRs with current → target and status, pending
18
+ * proposals, stale missions. State in `~/.crewly/okr-digest-state.json`.
19
+ *
20
+ * Both are failure-soft and run from {@link MissionReminderService.runSweep}.
21
+ *
22
+ * @module services/v3/okr-owner-guidance.service
23
+ */
24
+ import { type Mission } from '../../types/v2/mission.types.js';
25
+ import type { KeyResult } from '../../types/v2/key-result.types.js';
26
+ /** Sends an owner-facing notification (Slack via the orchestrator bridge). */
27
+ export type OwnerNotifier = (input: {
28
+ title: string;
29
+ message: string;
30
+ urgency: 'normal' | 'high';
31
+ metadata?: Record<string, unknown>;
32
+ }) => Promise<void>;
33
+ /** Puts a line in the orchestrator's queue so it can mention it in chat. */
34
+ export type OrchestratorNotifier = (content: string) => void;
35
+ /** Lists a mission's Key Results. */
36
+ export type KeyResultLister = (missionId: string) => Promise<KeyResult[]>;
37
+ /** What one guidance pass did. */
38
+ export interface GuidanceOutcome {
39
+ pendingProposals: number;
40
+ nudged: number;
41
+ digestSent: boolean;
42
+ }
43
+ /** Constructor dependencies (all injectable for tests). */
44
+ export interface OKROwnerGuidanceDeps {
45
+ notifyOwner?: OwnerNotifier | null;
46
+ notifyOrchestrator?: OrchestratorNotifier | null;
47
+ listKeyResults: KeyResultLister;
48
+ loadMissions?: () => Promise<Mission[]>;
49
+ saveMission?: (mission: Mission) => Promise<void>;
50
+ statePath?: string | null;
51
+ now?: () => Date;
52
+ digestCron?: string;
53
+ digestTz?: string;
54
+ }
55
+ /**
56
+ * Render a KR line for a human: `KR1 …: 3 → 2 tickets (on_track)`.
57
+ *
58
+ * @param kr - Key Result
59
+ * @returns One line
60
+ */
61
+ export declare function formatKrLine(kr: KeyResult): string;
62
+ /**
63
+ * Owner-facing guidance for the OKR layer. See module docs.
64
+ */
65
+ export declare class OKROwnerGuidanceService {
66
+ private static instance;
67
+ private readonly logger;
68
+ private readonly deps;
69
+ constructor(deps: OKROwnerGuidanceDeps);
70
+ static getInstance(): OKROwnerGuidanceService | null;
71
+ static setInstance(next: OKROwnerGuidanceService | null): void;
72
+ /** Late-bound notifiers (the bridge and the queue exist after boot). */
73
+ setNotifiers(owner: OwnerNotifier | null, orchestrator: OrchestratorNotifier | null): void;
74
+ /**
75
+ * One guidance pass: nudge pending proposals, then send the digest if its
76
+ * cron boundary has passed since the last one. Never throws.
77
+ *
78
+ * @returns Counts for the sweep log
79
+ */
80
+ run(): Promise<GuidanceOutcome>;
81
+ /**
82
+ * Nudge the owner about one pending proposal when never nudged or the
83
+ * cooldown has elapsed.
84
+ *
85
+ * @param mission - A pending_approval mission
86
+ * @param all - All missions (to name the parent)
87
+ * @param now - Clock
88
+ * @returns Whether a nudge went out
89
+ */
90
+ private nudgeIfDue;
91
+ /**
92
+ * Send the weekly digest when the cron boundary has passed since the last
93
+ * digest (or ever).
94
+ *
95
+ * @param missions - All missions
96
+ * @param now - Clock
97
+ * @returns Whether a digest went out
98
+ */
99
+ private sendDigestIfDue;
100
+ private loadState;
101
+ private memoryState;
102
+ private saveState;
103
+ }
104
+ /**
105
+ * Read every mission file in the shared missions dir (corrupt files skipped).
106
+ *
107
+ * @returns All missions, any status
108
+ */
109
+ export declare function loadAllMissionsFromDisk(): Promise<Mission[]>;
110
+ /**
111
+ * Persist one mission back to its file.
112
+ *
113
+ * @param mission - Mission to write
114
+ */
115
+ export declare function saveMissionToDisk(mission: Mission): Promise<void>;
116
+ //# sourceMappingURL=okr-owner-guidance.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"okr-owner-guidance.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/v3/okr-owner-guidance.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AASH,OAAO,EAAuB,KAAK,OAAO,EAAE,MAAM,iCAAiC,CAAC;AACpF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAGpE,8EAA8E;AAC9E,MAAM,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,QAAQ,GAAG,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AACzJ,4EAA4E;AAC5E,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;AAC7D,qCAAqC;AACrC,MAAM,MAAM,eAAe,GAAG,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;AAO1E,kCAAkC;AAClC,MAAM,WAAW,eAAe;IAC9B,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,2DAA2D;AAC3D,MAAM,WAAW,oBAAoB;IACnC,WAAW,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IACnC,kBAAkB,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACjD,cAAc,EAAE,eAAe,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACxC,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAID;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,SAAS,GAAG,MAAM,CAGlD;AAED;;GAEG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAwC;IAC/D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAC4D;gBAErE,IAAI,EAAE,oBAAoB;IAetC,MAAM,CAAC,WAAW,IAAI,uBAAuB,GAAG,IAAI;IAIpD,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,uBAAuB,GAAG,IAAI,GAAG,IAAI;IAI9D,wEAAwE;IACxE,YAAY,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,EAAE,YAAY,EAAE,oBAAoB,GAAG,IAAI,GAAG,IAAI;IAK1F;;;;;OAKG;IACG,GAAG,IAAI,OAAO,CAAC,eAAe,CAAC;IA2BrC;;;;;;;;OAQG;YACW,UAAU;IA+BxB;;;;;;;OAOG;YACW,eAAe;YA2Cf,SAAS;IAKvB,OAAO,CAAC,WAAW,CAAmB;YAExB,SAAS;CAKxB;AAED;;;;GAIG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAkBlE;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAEvE"}
@@ -0,0 +1,254 @@
1
+ /**
2
+ * OKR Owner Guidance — the part of the goal layer that reaches out to the
3
+ * owner instead of waiting to be looked at.
4
+ *
5
+ * Observed on steamfun-ops (2026-09-18): a team OKR proposal sat in
6
+ * `pending_approval` and nothing told anyone. The hourly sweep skips pending
7
+ * missions by design, the orchestrator only learns about goals through a
8
+ * memory search at registration, and the owner would only find the proposal
9
+ * by opening the Missions page. Two behaviours fix that:
10
+ *
11
+ * 1. **Approval nudge** — every pending proposal is surfaced to the owner
12
+ * (Slack DM through the orchestrator bridge + a line in the orchestrator's
13
+ * queue so it can mention it in chat), once, then again every 24 h while
14
+ * it stays pending. Persisted on the mission as `lastApprovalNudgeAt`.
15
+ * 2. **Weekly digest** — on a cron boundary (default Monday 09:00 UTC,
16
+ * `CREWLY_OKR_DIGEST_CRON` / `CREWLY_OKR_DIGEST_TZ`) one message per
17
+ * account: each mission's KRs with current → target and status, pending
18
+ * proposals, stale missions. State in `~/.crewly/okr-digest-state.json`.
19
+ *
20
+ * Both are failure-soft and run from {@link MissionReminderService.runSweep}.
21
+ *
22
+ * @module services/v3/okr-owner-guidance.service
23
+ */
24
+ import * as fs from 'fs/promises';
25
+ import * as path from 'path';
26
+ import { CronExpressionParser } from 'cron-parser';
27
+ import { LoggerService } from '../core/logger.service.js';
28
+ import { getCrewlyHomePath } from '../core/crewly-home.utils.js';
29
+ import { atomicWriteJson, safeReadJson } from '../../utils/file-io.utils.js';
30
+ import { getMissionsDir } from './mission-paths.js';
31
+ import { isMissionExecutable } from '../../types/v2/mission.types.js';
32
+ import { OKR_GUIDANCE_CONSTANTS } from '../../constants.js';
33
+ const STATE_FILE = 'okr-digest-state.json';
34
+ /**
35
+ * Render a KR line for a human: `KR1 …: 3 → 2 tickets (on_track)`.
36
+ *
37
+ * @param kr - Key Result
38
+ * @returns One line
39
+ */
40
+ export function formatKrLine(kr) {
41
+ const unit = kr.unit ? ` ${kr.unit}` : '';
42
+ return `• ${kr.title}: ${kr.current} → ${kr.target}${unit} (${kr.status.replace('_', ' ')})`;
43
+ }
44
+ /**
45
+ * Owner-facing guidance for the OKR layer. See module docs.
46
+ */
47
+ export class OKROwnerGuidanceService {
48
+ static instance = null;
49
+ logger;
50
+ deps;
51
+ constructor(deps) {
52
+ this.logger = LoggerService.getInstance().createComponentLogger('OKROwnerGuidance');
53
+ this.deps = {
54
+ notifyOwner: deps.notifyOwner ?? null,
55
+ notifyOrchestrator: deps.notifyOrchestrator ?? null,
56
+ listKeyResults: deps.listKeyResults,
57
+ loadMissions: deps.loadMissions ?? loadAllMissionsFromDisk,
58
+ saveMission: deps.saveMission ?? saveMissionToDisk,
59
+ statePath: deps.statePath === undefined ? path.join(getCrewlyHomePath(), STATE_FILE) : deps.statePath,
60
+ now: deps.now ?? (() => new Date()),
61
+ digestCron: deps.digestCron ?? process.env['CREWLY_OKR_DIGEST_CRON'] ?? OKR_GUIDANCE_CONSTANTS.DIGEST_CRON,
62
+ digestTz: deps.digestTz ?? process.env['CREWLY_OKR_DIGEST_TZ'] ?? OKR_GUIDANCE_CONSTANTS.DIGEST_TZ,
63
+ };
64
+ }
65
+ static getInstance() {
66
+ return this.instance;
67
+ }
68
+ static setInstance(next) {
69
+ this.instance = next;
70
+ }
71
+ /** Late-bound notifiers (the bridge and the queue exist after boot). */
72
+ setNotifiers(owner, orchestrator) {
73
+ this.deps.notifyOwner = owner;
74
+ this.deps.notifyOrchestrator = orchestrator;
75
+ }
76
+ /**
77
+ * One guidance pass: nudge pending proposals, then send the digest if its
78
+ * cron boundary has passed since the last one. Never throws.
79
+ *
80
+ * @returns Counts for the sweep log
81
+ */
82
+ async run() {
83
+ const outcome = { pendingProposals: 0, nudged: 0, digestSent: false };
84
+ let missions = [];
85
+ try {
86
+ missions = await this.deps.loadMissions();
87
+ }
88
+ catch (err) {
89
+ this.logger.warn('Could not load missions for owner guidance', { error: errText(err) });
90
+ return outcome;
91
+ }
92
+ const now = this.deps.now();
93
+ const pending = missions.filter((m) => m.status === 'active' && m.approval?.state === 'pending_approval');
94
+ outcome.pendingProposals = pending.length;
95
+ for (const mission of pending) {
96
+ try {
97
+ if (await this.nudgeIfDue(mission, missions, now))
98
+ outcome.nudged += 1;
99
+ }
100
+ catch (err) {
101
+ this.logger.warn('Approval nudge failed', { missionId: mission.id, error: errText(err) });
102
+ }
103
+ }
104
+ try {
105
+ outcome.digestSent = await this.sendDigestIfDue(missions, now);
106
+ }
107
+ catch (err) {
108
+ this.logger.warn('Weekly OKR digest failed', { error: errText(err) });
109
+ }
110
+ return outcome;
111
+ }
112
+ /**
113
+ * Nudge the owner about one pending proposal when never nudged or the
114
+ * cooldown has elapsed.
115
+ *
116
+ * @param mission - A pending_approval mission
117
+ * @param all - All missions (to name the parent)
118
+ * @param now - Clock
119
+ * @returns Whether a nudge went out
120
+ */
121
+ async nudgeIfDue(mission, all, now) {
122
+ const last = mission.lastApprovalNudgeAt ? Date.parse(mission.lastApprovalNudgeAt) : 0;
123
+ if (now.getTime() - last < OKR_GUIDANCE_CONSTANTS.APPROVAL_NUDGE_COOLDOWN_MS)
124
+ return false;
125
+ const krs = await this.deps.listKeyResults(mission.id).catch(() => []);
126
+ const parent = mission.parentMissionId ? all.find((m) => m.id === mission.parentMissionId) : undefined;
127
+ const lines = [
128
+ `A ${mission.level ?? 'team'} OKR proposal is waiting for your approval:`,
129
+ `*${mission.objective}*`,
130
+ parent ? `Under: ${parent.objective}` : undefined,
131
+ krs.length > 0 ? 'Key Results:' : 'No Key Results attached yet.',
132
+ ...krs.slice(0, OKR_GUIDANCE_CONSTANTS.MAX_KRS_IN_MESSAGE).map(formatKrLine),
133
+ `Approve or reject it on the Missions page (mission ${mission.id}). Nothing runs until you do.`,
134
+ ].filter((l) => Boolean(l));
135
+ const message = lines.join('\n');
136
+ if (this.deps.notifyOwner) {
137
+ await this.deps.notifyOwner({
138
+ title: 'OKR proposal awaiting your approval',
139
+ message,
140
+ urgency: 'normal',
141
+ metadata: { missionId: mission.id, kind: 'okr_proposal_pending' },
142
+ });
143
+ }
144
+ this.deps.notifyOrchestrator?.(`[OKR-APPROVAL] Mission ${mission.id} ("${mission.objective.slice(0, 80)}") is pending the owner's approval. Mention it the next time you talk to the owner; do not execute, remind or decompose it until it is approved.`);
145
+ mission.lastApprovalNudgeAt = now.toISOString();
146
+ await this.deps.saveMission(mission);
147
+ this.logger.info('Owner nudged about pending OKR proposal', { missionId: mission.id, krs: krs.length });
148
+ return true;
149
+ }
150
+ /**
151
+ * Send the weekly digest when the cron boundary has passed since the last
152
+ * digest (or ever).
153
+ *
154
+ * @param missions - All missions
155
+ * @param now - Clock
156
+ * @returns Whether a digest went out
157
+ */
158
+ async sendDigestIfDue(missions, now) {
159
+ if (!this.deps.notifyOwner && !this.deps.notifyOrchestrator)
160
+ return false;
161
+ const state = await this.loadState();
162
+ let boundary;
163
+ try {
164
+ boundary = CronExpressionParser.parse(this.deps.digestCron, { currentDate: now, tz: this.deps.digestTz }).prev().toDate();
165
+ }
166
+ catch (err) {
167
+ this.logger.warn('Invalid OKR digest cron — digest disabled', { cron: this.deps.digestCron, error: errText(err) });
168
+ return false;
169
+ }
170
+ if (!state.lastDigestAt) {
171
+ // First run: start the schedule from now instead of firing a digest at
172
+ // every fresh boot on whatever day it happens to be.
173
+ await this.saveState({ lastDigestAt: now.toISOString() });
174
+ return false;
175
+ }
176
+ if (Date.parse(state.lastDigestAt) >= boundary.getTime())
177
+ return false;
178
+ const live = missions.filter((m) => isMissionExecutable(m));
179
+ const pending = missions.filter((m) => m.status === 'active' && m.approval?.state === 'pending_approval');
180
+ if (live.length === 0 && pending.length === 0) {
181
+ // Nothing to report — still stamp so we do not re-check every sweep.
182
+ await this.saveState({ lastDigestAt: now.toISOString() });
183
+ return false;
184
+ }
185
+ const sections = [`*Weekly OKR digest* — ${now.toISOString().slice(0, 10)}`];
186
+ for (const m of live) {
187
+ const krs = await this.deps.listKeyResults(m.id).catch(() => []);
188
+ const stale = (m.staleCycles ?? 0) >= OKR_GUIDANCE_CONSTANTS.STALE_CYCLES_FLAG ? ' ⚠️ no progress' : '';
189
+ sections.push([`*${m.objective}* (${m.level ?? 'company'})${stale}`, ...(krs.length ? krs.slice(0, OKR_GUIDANCE_CONSTANTS.MAX_KRS_IN_MESSAGE).map(formatKrLine) : ['• no Key Results'])].join('\n'));
190
+ }
191
+ if (pending.length > 0) {
192
+ sections.push(['*Waiting for your approval:*', ...pending.map((m) => `• ${m.objective} (mission ${m.id})`)].join('\n'));
193
+ }
194
+ const message = sections.join('\n\n');
195
+ if (this.deps.notifyOwner) {
196
+ await this.deps.notifyOwner({ title: 'Weekly OKR digest', message, urgency: 'normal', metadata: { kind: 'okr_digest' } });
197
+ }
198
+ this.deps.notifyOrchestrator?.(`[OKR-DIGEST] The weekly OKR digest was sent to the owner (${live.length} live, ${pending.length} pending). If the owner asks, the numbers are in the Missions page.`);
199
+ await this.saveState({ lastDigestAt: now.toISOString() });
200
+ this.logger.info('Weekly OKR digest sent', { live: live.length, pending: pending.length });
201
+ return true;
202
+ }
203
+ async loadState() {
204
+ if (!this.deps.statePath)
205
+ return this.memoryState;
206
+ return safeReadJson(this.deps.statePath, {});
207
+ }
208
+ memoryState = {};
209
+ async saveState(state) {
210
+ this.memoryState = state;
211
+ if (!this.deps.statePath)
212
+ return;
213
+ await atomicWriteJson(this.deps.statePath, state);
214
+ }
215
+ }
216
+ /**
217
+ * Read every mission file in the shared missions dir (corrupt files skipped).
218
+ *
219
+ * @returns All missions, any status
220
+ */
221
+ export async function loadAllMissionsFromDisk() {
222
+ const dir = getMissionsDir();
223
+ let files;
224
+ try {
225
+ files = await fs.readdir(dir);
226
+ }
227
+ catch {
228
+ return [];
229
+ }
230
+ const out = [];
231
+ for (const f of files) {
232
+ if (!f.endsWith('.json'))
233
+ continue;
234
+ try {
235
+ out.push(JSON.parse(await fs.readFile(path.join(dir, f), 'utf-8')));
236
+ }
237
+ catch {
238
+ // skip
239
+ }
240
+ }
241
+ return out;
242
+ }
243
+ /**
244
+ * Persist one mission back to its file.
245
+ *
246
+ * @param mission - Mission to write
247
+ */
248
+ export async function saveMissionToDisk(mission) {
249
+ await atomicWriteJson(path.join(getMissionsDir(), `${mission.id}.json`), mission);
250
+ }
251
+ function errText(err) {
252
+ return err instanceof Error ? err.message : String(err);
253
+ }
254
+ //# sourceMappingURL=okr-owner-guidance.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"okr-owner-guidance.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/v3/okr-owner-guidance.service.ts"],"names":[],"mappings":"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"}
@@ -6,15 +6,25 @@
6
6
  *
7
7
  * @module types/slack
8
8
  */
9
+ /**
10
+ * How inbound Slack events reach this instance.
11
+ *
12
+ * - `socket` — the self-hosted app: Bolt opens a Socket Mode connection with
13
+ * the app token (the original transport).
14
+ * - `cloud` — Crewly Cloud owns the Slack app, receives events over HTTP and
15
+ * pushes them to this instance as `slack_event` relay messages. No socket
16
+ * is opened; outbound calls still go straight to the Slack Web API.
17
+ */
18
+ export type SlackTransport = 'socket' | 'cloud';
9
19
  /**
10
20
  * Slack bot configuration
11
21
  */
12
22
  export interface SlackConfig {
13
23
  /** Bot OAuth token (xoxb-...) */
14
24
  botToken: string;
15
- /** App-level token for Socket Mode (xapp-...) */
25
+ /** App-level token for Socket Mode (xapp-...). Empty for the cloud transport. */
16
26
  appToken: string;
17
- /** Signing secret for request verification */
27
+ /** Signing secret for request verification. Empty for the cloud transport. */
18
28
  signingSecret: string;
19
29
  /** Channel ID for orchestrator notifications */
20
30
  defaultChannelId?: string;
@@ -22,6 +32,129 @@ export interface SlackConfig {
22
32
  allowedUserIds?: string[];
23
33
  /** Enable Socket Mode for real-time events */
24
34
  socketMode: boolean;
35
+ /** Inbound transport; defaults to `socket` */
36
+ transport?: SlackTransport;
37
+ /** Bot user id (`U…`) when already known (cloud config) — skips `auth.test` */
38
+ botUserId?: string;
39
+ }
40
+ /**
41
+ * Raw Slack event object as delivered by the Events API / Socket Mode for
42
+ * `message` and `app_mention`. Only the fields the inbound handler reads.
43
+ */
44
+ export interface SlackRawInboundEvent {
45
+ /** `message` | `app_mention` (anything else is ignored) */
46
+ type: string;
47
+ ts?: string;
48
+ text?: string;
49
+ user?: string;
50
+ channel?: string;
51
+ thread_ts?: string;
52
+ team?: string;
53
+ event_ts?: string;
54
+ /** Message subtype (`file_share`, `bot_message`, `message_changed`, …) */
55
+ subtype?: string;
56
+ /** `im` | `channel` | `group` | `mpim` on Events API `message` events */
57
+ channel_type?: string;
58
+ /** Set when a bot posted the message */
59
+ bot_id?: string;
60
+ files?: SlackFile[];
61
+ }
62
+ /** Provenance attached to an inbound event by the transport that received it. */
63
+ export interface SlackInboundMeta {
64
+ source: SlackTransport;
65
+ /** Slack `event_id` (cloud transport) */
66
+ eventId?: string;
67
+ /** App the event was delivered to (cloud transport) */
68
+ apiAppId?: string;
69
+ /** Set when the event came through a per-agent app */
70
+ agentSession?: string;
71
+ }
72
+ /**
73
+ * `data` of a `slack_event` relay message pushed by Crewly Cloud (contract:
74
+ * Slack v3 events). `event` is the raw Slack event object.
75
+ */
76
+ export interface SlackCloudEventEnvelope {
77
+ eventId: string;
78
+ slackTeamId: string;
79
+ apiAppId: string;
80
+ /** `master` = the account's workspace app; `agent` = a per-agent app */
81
+ source: 'master' | 'agent';
82
+ agentSession?: string;
83
+ event: SlackRawInboundEvent;
84
+ receivedAt: string;
85
+ }
86
+ /** The master workspace half of `GET /api/cloud/slack/config`. */
87
+ export interface SlackCloudWorkspaceConfig {
88
+ slackTeamId: string;
89
+ slackTeamName: string;
90
+ botUserId: string;
91
+ botToken: string;
92
+ appId: string;
93
+ }
94
+ /** One provisioned + installed per-agent app from `GET /api/cloud/slack/config`. */
95
+ export interface SlackCloudAgentConfig {
96
+ agentSession: string;
97
+ teamId?: string;
98
+ botUserId: string;
99
+ botToken: string;
100
+ appId: string;
101
+ displayName: string;
102
+ }
103
+ /** `GET /api/cloud/slack/config` payload (the Cloud-owned Slack setup). */
104
+ export interface SlackCloudConfig {
105
+ workspace: SlackCloudWorkspaceConfig;
106
+ agents: SlackCloudAgentConfig[];
107
+ transport: 'cloud';
108
+ }
109
+ /** On-disk cache of {@link SlackCloudConfig} (`~/.crewly/slack-cloud-config.json`, 0600). */
110
+ export interface SlackCloudConfigFile {
111
+ version: 1;
112
+ fetchedAt: string;
113
+ config: SlackCloudConfig;
114
+ }
115
+ /** Per-instance Slack settings (`~/.crewly/slack-instance.json`). */
116
+ export interface SlackInstanceSettingsFile {
117
+ version: 1;
118
+ /** This instance receives DMs / unmapped channels for the account */
119
+ primary: boolean;
120
+ }
121
+ /** One team as reported to the Cloud instance registry. */
122
+ export interface SlackRegistryTeam {
123
+ teamId: string;
124
+ name: string;
125
+ /** Slack channel id when the team has one */
126
+ channelId?: string;
127
+ /** Member session names (orchestrator excluded) */
128
+ agents: string[];
129
+ }
130
+ /** Body of `PUT /api/cloud/slack/instances/:instanceId`. */
131
+ export interface SlackInstanceRegistryPayload {
132
+ deviceName: string;
133
+ relayQueueId: string;
134
+ primary?: boolean;
135
+ teams: SlackRegistryTeam[];
136
+ crewlyVersion: string;
137
+ }
138
+ /** Body of `POST /api/cloud/slack/agents/sync`. */
139
+ export interface SlackAgentsSyncPayload {
140
+ teams: Array<{
141
+ teamId: string;
142
+ name: string;
143
+ agents: Array<{
144
+ agentSession: string;
145
+ displayName: string;
146
+ avatar?: string;
147
+ }>;
148
+ }>;
149
+ }
150
+ /** One agent still waiting for its one-time install click. */
151
+ export interface SlackPendingInstall {
152
+ agentSession: string;
153
+ url: string;
154
+ }
155
+ /** Response of `POST /api/cloud/slack/agents/sync`. */
156
+ export interface SlackAgentsSyncResult {
157
+ installUrls: SlackPendingInstall[];
25
158
  }
26
159
  /**
27
160
  * Slack user information
@@ -139,6 +272,12 @@ export interface SlackIncomingMessage {
139
272
  attachments?: SlackFileInfo[];
140
273
  /** Whether the message has any file attachments (images or other) */
141
274
  hasFiles?: boolean;
275
+ /** Transport that delivered the event (`socket` when omitted) */
276
+ source?: SlackTransport;
277
+ /** Slack `event_id` when known (cloud transport) */
278
+ eventId?: string;
279
+ /** Agent whose per-agent app received the event (cloud transport) */
280
+ agentSession?: string;
142
281
  }
143
282
  /**
144
283
  * Outgoing Slack message