crewly 1.8.13 → 1.9.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 (45) hide show
  1. package/config/roles/orchestrator/prompt.md +35 -0
  2. package/config/roles/product-manager/prompt.md +40 -0
  3. package/config/roles/team-leader/prompt.md +33 -0
  4. package/config/skills/orchestrator/decompose-okr/SKILL.md +107 -0
  5. package/config/skills/orchestrator/decompose-okr/execute.sh +142 -0
  6. package/config/skills/registry.json +52 -6
  7. package/dist/backend/backend/src/controllers/mission/kr.controller.d.ts +8 -0
  8. package/dist/backend/backend/src/controllers/mission/kr.controller.d.ts.map +1 -1
  9. package/dist/backend/backend/src/controllers/mission/kr.controller.js +17 -0
  10. package/dist/backend/backend/src/controllers/mission/kr.controller.js.map +1 -1
  11. package/dist/backend/backend/src/controllers/mission/mission-policy.routes.d.ts.map +1 -1
  12. package/dist/backend/backend/src/controllers/mission/mission-policy.routes.js +198 -26
  13. package/dist/backend/backend/src/controllers/mission/mission-policy.routes.js.map +1 -1
  14. package/dist/backend/backend/src/services/v3/kr-tracking.service.d.ts +92 -1
  15. package/dist/backend/backend/src/services/v3/kr-tracking.service.d.ts.map +1 -1
  16. package/dist/backend/backend/src/services/v3/kr-tracking.service.js +169 -1
  17. package/dist/backend/backend/src/services/v3/kr-tracking.service.js.map +1 -1
  18. package/dist/backend/backend/src/services/v3/mission-period.service.d.ts.map +1 -1
  19. package/dist/backend/backend/src/services/v3/mission-period.service.js +7 -1
  20. package/dist/backend/backend/src/services/v3/mission-period.service.js.map +1 -1
  21. package/dist/backend/backend/src/services/v3/okr-cascade.service.d.ts +217 -0
  22. package/dist/backend/backend/src/services/v3/okr-cascade.service.d.ts.map +1 -0
  23. package/dist/backend/backend/src/services/v3/okr-cascade.service.js +417 -0
  24. package/dist/backend/backend/src/services/v3/okr-cascade.service.js.map +1 -0
  25. package/dist/backend/backend/src/services/v3/okr-review.service.d.ts +11 -0
  26. package/dist/backend/backend/src/services/v3/okr-review.service.d.ts.map +1 -1
  27. package/dist/backend/backend/src/services/v3/okr-review.service.js +50 -0
  28. package/dist/backend/backend/src/services/v3/okr-review.service.js.map +1 -1
  29. package/dist/backend/backend/src/services/wiki/wiki-migrate.service.d.ts +91 -0
  30. package/dist/backend/backend/src/services/wiki/wiki-migrate.service.d.ts.map +1 -1
  31. package/dist/backend/backend/src/services/wiki/wiki-migrate.service.js +180 -0
  32. package/dist/backend/backend/src/services/wiki/wiki-migrate.service.js.map +1 -1
  33. package/dist/backend/backend/src/types/v2/index.d.ts +4 -4
  34. package/dist/backend/backend/src/types/v2/index.d.ts.map +1 -1
  35. package/dist/backend/backend/src/types/v2/index.js +2 -2
  36. package/dist/backend/backend/src/types/v2/index.js.map +1 -1
  37. package/dist/backend/backend/src/types/v2/key-result.types.d.ts +84 -0
  38. package/dist/backend/backend/src/types/v2/key-result.types.d.ts.map +1 -1
  39. package/dist/backend/backend/src/types/v2/key-result.types.js +73 -3
  40. package/dist/backend/backend/src/types/v2/key-result.types.js.map +1 -1
  41. package/dist/backend/backend/src/types/v2/mission.types.d.ts +235 -0
  42. package/dist/backend/backend/src/types/v2/mission.types.d.ts.map +1 -1
  43. package/dist/backend/backend/src/types/v2/mission.types.js +230 -0
  44. package/dist/backend/backend/src/types/v2/mission.types.js.map +1 -1
  45. package/package.json +1 -1
@@ -10,12 +10,31 @@ import { Router } from 'express';
10
10
  import * as path from 'path';
11
11
  import * as fs from 'fs/promises';
12
12
  import { getPolicy, updatePolicy, checkPolicy, } from './mission-policy.controller.js';
13
- import { listKeyResults, createKR, getKR, updateKR, deleteKR, measureKR, getOKRSummary, } from './kr.controller.js';
13
+ import { listKeyResults, createKR, getKR, updateKR, deleteKR, measureKR, getOKRSummary, getCascadeOKRSummary, } from './kr.controller.js';
14
14
  import { MissionExecutorService } from '../../services/v3/mission-executor.service.js';
15
15
  import { OKRReviewService } from '../../services/v3/okr-review.service.js';
16
- import { validateParentLink, } from '../../types/v2/mission.types.js';
16
+ import { OKRCascadeService } from '../../services/v3/okr-cascade.service.js';
17
+ import { validateCascadeLink, deriveLevel, resolveMissionLevel, } from '../../types/v2/mission.types.js';
17
18
  /** Default priority applied to missions missing the field at read time. */
18
19
  const DEFAULT_PRIORITY = 'medium';
20
+ /**
21
+ * Legacy-level fallback for a mission missing `level` AND any parent link, used
22
+ * only by the update-time cascade re-validation guard (where the effective
23
+ * parent may itself be changing). The canonical read-migration uses
24
+ * {@link resolveMissionLevel} so a parentless legacy mission resolves to
25
+ * `company`; this matches that for a non-parentless mission.
26
+ */
27
+ const DEFAULT_LEVEL = 'team';
28
+ /**
29
+ * Default proposal state applied to legacy missions missing `approval` at read
30
+ * time. Pre-cascade missions are treated as already-approved/active.
31
+ */
32
+ const DEFAULT_PROPOSAL_STATE = 'approved';
33
+ /**
34
+ * Fallback session identifier used as `proposedBy` / `decidedBy` when the
35
+ * caller does not supply one (e.g. an anonymous API client).
36
+ */
37
+ const UNKNOWN_ACTOR = 'unknown';
19
38
  /** Resolve the missions directory from the project root. */
20
39
  function getMissionsDir() {
21
40
  return path.join(process.cwd(), '.crewly', 'missions');
@@ -62,16 +81,25 @@ async function readKeyResultSummaries(missionId) {
62
81
  * applies the default priority and attaches inline KR summaries.
63
82
  *
64
83
  * @param raw - Mission object parsed from JSON
84
+ * @param byId - Parent-link chain map for canonical level resolution
65
85
  * @returns Mission augmented with `keyResults` and a guaranteed `priority`
66
86
  */
67
- async function normalizeMissionForResponse(raw) {
87
+ async function normalizeMissionForResponse(raw, byId) {
68
88
  const keyResults = await readKeyResultSummaries(raw.id);
69
89
  return {
70
90
  ...raw,
71
91
  priority: raw.priority ?? DEFAULT_PRIORITY,
92
+ // Migrate legacy missions on read via the SINGLE canonical level resolver
93
+ // (shared with the cascade service) and treat them as already-approved.
94
+ level: resolveMissionLevel(raw, byId),
95
+ approval: raw.approval ?? { state: DEFAULT_PROPOSAL_STATE },
72
96
  keyResults,
73
97
  };
74
98
  }
99
+ /** Build the lightweight parent-link chain map used by {@link resolveMissionLevel}. */
100
+ function buildChainMap(missions) {
101
+ return new Map(missions.map((m) => [m.id, { id: m.id, parentMissionId: m.parentMissionId }]));
102
+ }
75
103
  /** Load every mission from disk, skipping unreadable files. */
76
104
  async function loadAllMissionsRaw() {
77
105
  const dir = getMissionsDir();
@@ -97,7 +125,8 @@ async function loadAllMissionsRaw() {
97
125
  async function listMissions(_req, res, next) {
98
126
  try {
99
127
  const missions = await loadAllMissionsRaw();
100
- const enriched = await Promise.all(missions.map(normalizeMissionForResponse));
128
+ const byId = buildChainMap(missions);
129
+ const enriched = await Promise.all(missions.map((m) => normalizeMissionForResponse(m, byId)));
101
130
  res.json({ success: true, data: enriched, count: enriched.length });
102
131
  }
103
132
  catch (err) {
@@ -109,7 +138,12 @@ async function getMission(req, res, next) {
109
138
  try {
110
139
  const filePath = path.join(getMissionsDir(), `${req.params.id}.json`);
111
140
  const raw = await fs.readFile(filePath, 'utf-8');
112
- const mission = await normalizeMissionForResponse(JSON.parse(raw));
141
+ const parsed = JSON.parse(raw);
142
+ // Load the full set so the canonical level resolver can walk the parent chain.
143
+ const byId = buildChainMap(await loadAllMissionsRaw());
144
+ if (!byId.has(parsed.id))
145
+ byId.set(parsed.id, { id: parsed.id, parentMissionId: parsed.parentMissionId });
146
+ const mission = await normalizeMissionForResponse(parsed, byId);
113
147
  res.json({ success: true, data: mission });
114
148
  }
115
149
  catch {
@@ -127,17 +161,39 @@ async function createMission(req, res, next) {
127
161
  const dir = getMissionsDir();
128
162
  await fs.mkdir(dir, { recursive: true });
129
163
  const id = req.body.id || `mission-${Date.now()}`;
130
- const parentMissionId = req.body.parentMissionId;
131
- if (parentMissionId) {
132
- const existing = await loadAllMissionsRaw();
133
- const byId = new Map(existing.map(m => [m.id, m]));
134
- const reason = validateParentLink(id, parentMissionId, byId);
135
- if (reason) {
136
- res.status(400).json({ success: false, error: reason });
137
- return;
138
- }
164
+ const parentMissionId = req.body.parentMissionId || undefined;
165
+ // Resolve the child level: explicit body value, else derived from the
166
+ // parent chain (no parent ⇒ company).
167
+ const all = await loadAllMissionsRaw();
168
+ const byId = new Map(all.map(m => [m.id, m]));
169
+ // Build a chain map (id + parentMissionId only) including the new mission so
170
+ // deriveLevel can walk upward from it.
171
+ const chainById = new Map(all.map(m => [m.id, { id: m.id, parentMissionId: m.parentMissionId }]));
172
+ chainById.set(id, { id, parentMissionId });
173
+ const level = req.body.level ?? deriveLevel(id, chainById);
174
+ // Combined cascade guard: cycle/self-ref + level adjacency.
175
+ const reason = validateCascadeLink(id, level, parentMissionId, byId);
176
+ if (reason) {
177
+ res.status(400).json({ success: false, error: reason });
178
+ return;
139
179
  }
140
- const mission = { id, ...req.body, createdAt: new Date().toISOString(), status: req.body.status || 'active' };
180
+ // A project-level mission must carry a projectId.
181
+ if (level === 'project' && !req.body.projectId) {
182
+ res.status(400).json({ success: false, error: 'A project-level mission requires projectId' });
183
+ return;
184
+ }
185
+ const mission = {
186
+ id,
187
+ ...req.body,
188
+ level,
189
+ createdAt: new Date().toISOString(),
190
+ status: req.body.status || 'active',
191
+ // Ensure a well-formed Mission shape on disk so downstream readers that
192
+ // validate with `isMission` (e.g. OKRCascadeService) accept it. These
193
+ // arrays default to empty when the caller omits them.
194
+ successCriteria: req.body.successCriteria ?? [],
195
+ activeProjectTaskIds: req.body.activeProjectTaskIds ?? [],
196
+ };
141
197
  await fs.writeFile(path.join(dir, `${id}.json`), JSON.stringify(mission, null, 2));
142
198
  res.status(201).json({ success: true, data: mission });
143
199
  }
@@ -166,17 +222,44 @@ async function updateMission(req, res, next) {
166
222
  res.status(404).json({ success: false, error: 'Mission not found' });
167
223
  return;
168
224
  }
169
- // Re-validate parent link if the caller is changing it.
170
- if (Object.prototype.hasOwnProperty.call(req.body, 'parentMissionId')) {
171
- const nextParent = req.body.parentMissionId || undefined;
172
- if (nextParent) {
173
- const all = await loadAllMissionsRaw();
174
- const byId = new Map(all.map(m => [m.id, m]));
175
- const reason = validateParentLink(id, nextParent, byId);
176
- if (reason) {
177
- res.status(400).json({ success: false, error: reason });
178
- return;
179
- }
225
+ // Any direct write to governance metadata is forbidden — the entire
226
+ // `approval` object (not just `approval.state`) is owned by the dedicated
227
+ // approve/reject workflow. Accepting an `approval` payload here would
228
+ // overwrite `existing.approval` wholesale (the merge below replaces, not
229
+ // deep-merges), so a body like `{ approval: { proposedBy: 'x' } }` would
230
+ // silently drop `approval.state` flipping an approved mission to
231
+ // not-cascade-active and wiping governance metadata. Rejecting the whole
232
+ // key preserves the single-source-of-transitions invariant (spec §3.3).
233
+ if (Object.prototype.hasOwnProperty.call(req.body, 'approval')) {
234
+ res.status(400).json({
235
+ success: false,
236
+ error: 'approval.state cannot be set via update; use approve/reject endpoints',
237
+ });
238
+ return;
239
+ }
240
+ // Determine the effective child level + parent for cascade re-validation.
241
+ const changingParent = Object.prototype.hasOwnProperty.call(req.body, 'parentMissionId');
242
+ const changingLevel = Object.prototype.hasOwnProperty.call(req.body, 'level');
243
+ if (changingParent || changingLevel) {
244
+ const nextParent = (changingParent ? req.body.parentMissionId : existing.parentMissionId) || undefined;
245
+ const all = await loadAllMissionsRaw();
246
+ const byId = new Map(all.map(m => [m.id, m]));
247
+ // Resolve the existing level via the canonical resolver when not changing
248
+ // it, so legacy missions migrate consistently with the read path.
249
+ const chainById = buildChainMap(all);
250
+ if (!chainById.has(id))
251
+ chainById.set(id, { id, parentMissionId: existing.parentMissionId });
252
+ const nextLevel = changingLevel
253
+ ? (req.body.level ?? DEFAULT_LEVEL)
254
+ : resolveMissionLevel(existing, chainById);
255
+ const reason = validateCascadeLink(id, nextLevel, nextParent, byId);
256
+ if (reason) {
257
+ res.status(400).json({ success: false, error: reason });
258
+ return;
259
+ }
260
+ if (nextLevel === 'project' && !(req.body.projectId ?? existing.projectId)) {
261
+ res.status(400).json({ success: false, error: 'A project-level mission requires projectId' });
262
+ return;
180
263
  }
181
264
  }
182
265
  // Merge while guarding immutable fields.
@@ -197,6 +280,84 @@ async function updateMission(req, res, next) {
197
280
  next(err);
198
281
  }
199
282
  }
283
+ /**
284
+ * Resolve the acting session/owner identity for a request.
285
+ *
286
+ * Reads the agent session header (set by skill `api_call`) or an explicit body
287
+ * field, falling back to {@link UNKNOWN_ACTOR}.
288
+ *
289
+ * @param req - Incoming request
290
+ * @param bodyField - Body property to consult (e.g. `proposedBy`/`decidedBy`)
291
+ * @returns The resolved actor identifier
292
+ */
293
+ function resolveActor(req, bodyField) {
294
+ const fromBody = typeof req.body?.[bodyField] === 'string' ? req.body[bodyField] : '';
295
+ const fromHeader = req.header('X-Agent-Session') ?? '';
296
+ return fromBody || fromHeader || UNKNOWN_ACTOR;
297
+ }
298
+ /**
299
+ * Propose an OKR decomposition (agent drafts child OKRs as a proposal).
300
+ *
301
+ * Distinct from the task-level `/:id/decompose` endpoint: this creates child
302
+ * Missions + KRs in `pending_approval` state, awaiting owner approval.
303
+ */
304
+ async function decomposeOKR(req, res, next) {
305
+ try {
306
+ const parentId = req.params.id;
307
+ const input = req.body;
308
+ if (!input || !Array.isArray(input.children)) {
309
+ res.status(400).json({ success: false, error: 'children array is required' });
310
+ return;
311
+ }
312
+ const proposedBy = resolveActor(req, 'proposedBy');
313
+ const service = OKRCascadeService.getInstance();
314
+ const result = await service.proposeDecomposition(parentId, input, proposedBy);
315
+ res.status(201).json({ success: true, data: result });
316
+ }
317
+ catch (err) {
318
+ res.status(400).json({ success: false, error: err.message });
319
+ }
320
+ }
321
+ /** List the pending-approval child proposals for a parent mission. */
322
+ async function listProposals(req, res, next) {
323
+ try {
324
+ const service = OKRCascadeService.getInstance();
325
+ const pending = await service.listPendingApprovals(req.params.id);
326
+ res.json({ success: true, data: pending, count: pending.length });
327
+ }
328
+ catch (err) {
329
+ next(err);
330
+ }
331
+ }
332
+ /** Approve a pending decomposition proposal (owner decision). */
333
+ async function approveProposal(req, res, next) {
334
+ try {
335
+ const decidedBy = resolveActor(req, 'decidedBy');
336
+ const service = OKRCascadeService.getInstance();
337
+ const mission = await service.approveDecomposition(req.params.id, decidedBy);
338
+ res.json({ success: true, data: mission });
339
+ }
340
+ catch (err) {
341
+ res.status(400).json({ success: false, error: err.message });
342
+ }
343
+ }
344
+ /** Reject a pending decomposition proposal with a required reason. */
345
+ async function rejectProposal(req, res, next) {
346
+ try {
347
+ const reason = typeof req.body?.reason === 'string' ? req.body.reason : '';
348
+ if (!reason || reason.trim().length === 0) {
349
+ res.status(400).json({ success: false, error: 'reason is required' });
350
+ return;
351
+ }
352
+ const decidedBy = resolveActor(req, 'decidedBy');
353
+ const service = OKRCascadeService.getInstance();
354
+ const mission = await service.rejectDecomposition(req.params.id, decidedBy, reason);
355
+ res.json({ success: true, data: mission });
356
+ }
357
+ catch (err) {
358
+ res.status(400).json({ success: false, error: err.message });
359
+ }
360
+ }
200
361
  /**
201
362
  * Creates the mission router.
202
363
  *
@@ -225,6 +386,8 @@ export function createMissionPolicyRouter() {
225
386
  router.post('/:id/key-results', createKR);
226
387
  // OKR aggregated summary
227
388
  router.get('/:id/okr-summary', getOKRSummary);
389
+ // OKR cross-level cascade roll-up (company -> team -> project)
390
+ router.get('/:id/okr-summary/cascade', getCascadeOKRSummary);
228
391
  // Get a single KR
229
392
  router.get('/:id/key-results/:krId', getKR);
230
393
  // Update a KR
@@ -233,6 +396,15 @@ export function createMissionPolicyRouter() {
233
396
  router.delete('/:id/key-results/:krId', deleteKR);
234
397
  // Record a measurement
235
398
  router.post('/:id/key-results/:krId/measure', measureKR);
399
+ // --- OKR Cascade (decompose / approve / reject) Endpoints ---
400
+ // Propose an OKR decomposition (agent drafts child OKRs as a proposal)
401
+ router.post('/:id/decompose-okr', decomposeOKR);
402
+ // List pending child proposals for a parent
403
+ router.get('/:id/proposals', listProposals);
404
+ // Approve a pending proposal (owner)
405
+ router.post('/:id/approve', approveProposal);
406
+ // Reject a pending proposal with a reason (owner)
407
+ router.post('/:id/reject', rejectProposal);
236
408
  // --- Mission Execution Endpoints ---
237
409
  // Submit decomposition result (from decompose-mission skill)
238
410
  router.post('/:id/decompose', async (req, res, next) => {
@@ -1 +1 @@
1
- {"version":3,"file":"mission-policy.routes.js","sourceRoot":"","sources":["../../../../../../backend/src/controllers/mission/mission-policy.routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mission-policy.routes.js","sourceRoot":"","sources":["../../../../../../backend/src/controllers/mission/mission-policy.routes.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,8 @@
10
10
  * @module services/v3/kr-tracking.service
11
11
  */
12
12
  import type { WorkItem } from '../../types/v2/work-item.types.js';
13
- import { type KeyResult, type KRMeasurement, type CreateKeyResultInput, type UpdateKeyResultInput, type MissionOKRSummary } from '../../types/v2/key-result.types.js';
13
+ import { type Mission } from '../../types/v2/mission.types.js';
14
+ import { type KeyResult, type KRMeasurement, type CreateKeyResultInput, type UpdateKeyResultInput, type MissionOKRSummary, type CascadeOKRSummary } from '../../types/v2/key-result.types.js';
14
15
  /**
15
16
  * Service for managing Key Result lifecycle, measurements, and aggregation.
16
17
  */
@@ -101,6 +102,96 @@ export declare class KRTrackingService {
101
102
  * @returns Aggregated summary with recommendation
102
103
  */
103
104
  computeMissionOKRProgress(missionId: string, staleCycles?: number): Promise<MissionOKRSummary>;
105
+ /**
106
+ * List the cascade-active direct children of a mission.
107
+ *
108
+ * Reads every mission document and keeps those whose `parentMissionId`
109
+ * equals `parentId` AND that are cascade-active. A mission is cascade-active
110
+ * iff its `approval` is absent (legacy missions) OR
111
+ * `approval.state === 'approved'`. Draft / pending_approval / rejected
112
+ * children are excluded from the roll-up per spec §4.2.
113
+ *
114
+ * @param parentId - Parent mission ID
115
+ * @returns The approved direct-child missions (empty if none / on read error)
116
+ *
117
+ * @example
118
+ * ```ts
119
+ * const children = await KRTrackingService.getInstance().listChildMissions('team-1');
120
+ * ```
121
+ */
122
+ listChildMissions(parentId: string): Promise<Mission[]>;
123
+ /**
124
+ * Compute cross-level cascade roll-up of OKR progress for a mission and its
125
+ * approved descendants (company → team → project).
126
+ *
127
+ * Recursively walks the `parentMissionId` tree. At each node it reuses
128
+ * {@link computeMissionOKRProgress} for that node's OWN KRs, then folds in the
129
+ * `rolledUpProgress` of each approved child:
130
+ *
131
+ * - `rolledUpProgress` = equal-weight average of this node's own
132
+ * `overallProgress` and each approved child's `rolledUpProgress`
133
+ * (see {@link computeRolledUpProgress}); a leaf equals its own progress.
134
+ * - The roll-up recommendation is derived over this node's own KR statuses
135
+ * PLUS one synthetic status per child mapped from the child's
136
+ * `rolledUpProgress` via {@link deriveCascadeChildStatus} — so "all children
137
+ * off_track ⇒ parent escalates/replans" falls out naturally (including when
138
+ * children are stalled at 0% progress).
139
+ *
140
+ * Orphans (a mission whose `parentMissionId` points at a missing or
141
+ * non-approved parent) are treated as roots of their own subtree and never
142
+ * crash. A `visited` set guards against cycles defensively (create/update
143
+ * already reject cycles).
144
+ *
145
+ * @param missionId - Root mission of the subtree to roll up
146
+ * @param staleCycles - Consecutive stale review cycles for the root node. When
147
+ * omitted, the root's PERSISTED `staleCycles` is used so staleness-driven
148
+ * replan/escalate is not silently suppressed at the queried node (spec §4.2).
149
+ * Pass an explicit number to override the persisted value.
150
+ * @returns The recursive {@link CascadeOKRSummary} for the subtree
151
+ *
152
+ * @example
153
+ * ```ts
154
+ * const summary = await KRTrackingService.getInstance().computeCascadeOKRProgress('co-1');
155
+ * console.log(summary.rolledUpProgress, summary.children.length);
156
+ * ```
157
+ */
158
+ computeCascadeOKRProgress(missionId: string, staleCycles?: number): Promise<CascadeOKRSummary>;
159
+ /**
160
+ * Recursive worker for {@link computeCascadeOKRProgress}.
161
+ *
162
+ * @param missionId - Current node
163
+ * @param staleCycles - Stale cycles applied to the current node only
164
+ * @param byId - All missions indexed by ID
165
+ * @param linkById - Lightweight parent-link map for level derivation
166
+ * @param visited - Cycle-guard set of already-walked mission IDs
167
+ * @returns The {@link CascadeOKRSummary} for this node's subtree
168
+ */
169
+ private rollUp;
170
+ /**
171
+ * Whether a mission counts as cascade-active: approval absent (legacy) or
172
+ * explicitly approved.
173
+ *
174
+ * @param mission - Mission to test
175
+ * @returns `true` if the mission participates in the cascade roll-up
176
+ */
177
+ private isCascadeActive;
178
+ /**
179
+ * Resolve a mission's cascade level: prefer its explicit `level`, else derive
180
+ * it from the parent chain via {@link deriveLevel}. Missing/orphan missions
181
+ * fall back to `company` (treated as a root).
182
+ *
183
+ * @param missionId - Mission whose level to resolve
184
+ * @param byId - All missions indexed by ID
185
+ * @param linkById - Lightweight parent-link map for derivation
186
+ * @returns The resolved {@link MissionLevel}
187
+ */
188
+ private resolveLevel;
189
+ /**
190
+ * Load all mission documents from disk, skipping unreadable files.
191
+ *
192
+ * @returns Array of missions (empty on a missing directory)
193
+ */
194
+ private loadAllMissions;
104
195
  /**
105
196
  * Persist a KeyResult to disk.
106
197
  */
@@ -1 +1 @@
1
- {"version":3,"file":"kr-tracking.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/v3/kr-tracking.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EACL,KAAK,SAAS,EACd,KAAK,aAAa,EAElB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EAQvB,MAAM,oCAAoC,CAAC;AAyB5C;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAkC;IACzD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IAEzC,OAAO;IAIP;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,iBAAiB;IAOvC;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,IAAI;IAQ5B;;;;;OAKG;IACG,MAAM,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,SAAS,CAAC;IAa7D;;;;;;OAMG;IACG,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IASrE;;;;;OAKG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAkB5D;;;;;;;OAOG;IACG,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAqBtG;;;;;OAKG;IACG,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAa/D;;;;;;;;;;;OAWG;IACG,iBAAiB,CACrB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAuChC;;;;;;OAMG;IACG,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWtF;;;;;;OAMG;IACG,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAsC5D;;;;;;OAMG;IACG,yBAAyB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,GAAE,MAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAuCvG;;OAEG;YACW,OAAO;CAOtB"}
1
+ {"version":3,"file":"kr-tracking.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/v3/kr-tracking.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAEL,KAAK,OAAO,EAEb,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,KAAK,SAAS,EACd,KAAK,aAAa,EAElB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EAUvB,MAAM,oCAAoC,CAAC;AAgC5C;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAkC;IACzD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IAEzC,OAAO;IAIP;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,iBAAiB;IAOvC;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,IAAI;IAQ5B;;;;;OAKG;IACG,MAAM,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,SAAS,CAAC;IAa7D;;;;;;OAMG;IACG,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IASrE;;;;;OAKG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAkB5D;;;;;;;OAOG;IACG,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAqBtG;;;;;OAKG;IACG,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAa/D;;;;;;;;;;;OAWG;IACG,iBAAiB,CACrB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAuChC;;;;;;OAMG;IACG,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWtF;;;;;;OAMG;IACG,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAsC5D;;;;;;OAMG;IACG,yBAAyB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,GAAE,MAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAuCvG;;;;;;;;;;;;;;;;OAgBG;IACG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAK7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACG,yBAAyB,CAC7B,SAAS,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,iBAAiB,CAAC;IAa7B;;;;;;;;;OASG;YACW,MAAM;IAkDpB;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IAIvB;;;;;;;;;OASG;IACH,OAAO,CAAC,YAAY;IAWpB;;;;OAIG;YACW,eAAe;IAyB7B;;OAEG;YACW,OAAO;CAOtB"}