crewly 1.20.407 → 1.20.409

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 (86) hide show
  1. package/dist/backend/backend/src/constants.d.ts +34 -0
  2. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  3. package/dist/backend/backend/src/constants.js +34 -0
  4. package/dist/backend/backend/src/constants.js.map +1 -1
  5. package/dist/backend/backend/src/controllers/activity/activity.controller.d.ts +29 -0
  6. package/dist/backend/backend/src/controllers/activity/activity.controller.d.ts.map +1 -0
  7. package/dist/backend/backend/src/controllers/activity/activity.controller.js +77 -0
  8. package/dist/backend/backend/src/controllers/activity/activity.controller.js.map +1 -0
  9. package/dist/backend/backend/src/controllers/google/google.controller.d.ts.map +1 -1
  10. package/dist/backend/backend/src/controllers/google/google.controller.js +3 -0
  11. package/dist/backend/backend/src/controllers/google/google.controller.js.map +1 -1
  12. package/dist/backend/backend/src/controllers/team/team-charter.controller.d.ts.map +1 -1
  13. package/dist/backend/backend/src/controllers/team/team-charter.controller.js +7 -0
  14. package/dist/backend/backend/src/controllers/team/team-charter.controller.js.map +1 -1
  15. package/dist/backend/backend/src/controllers/team/team-model-tiers.controller.d.ts.map +1 -1
  16. package/dist/backend/backend/src/controllers/team/team-model-tiers.controller.js +5 -1
  17. package/dist/backend/backend/src/controllers/team/team-model-tiers.controller.js.map +1 -1
  18. package/dist/backend/backend/src/controllers/team/team-pause.controller.d.ts.map +1 -1
  19. package/dist/backend/backend/src/controllers/team/team-pause.controller.js +9 -0
  20. package/dist/backend/backend/src/controllers/team/team-pause.controller.js.map +1 -1
  21. package/dist/backend/backend/src/controllers/team/team.controller.d.ts.map +1 -1
  22. package/dist/backend/backend/src/controllers/team/team.controller.js +49 -0
  23. package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -1
  24. package/dist/backend/backend/src/controllers/team-move/team-move.controller.d.ts.map +1 -1
  25. package/dist/backend/backend/src/controllers/team-move/team-move.controller.js +2 -0
  26. package/dist/backend/backend/src/controllers/team-move/team-move.controller.js.map +1 -1
  27. package/dist/backend/backend/src/routes/modules/system.routes.d.ts.map +1 -1
  28. package/dist/backend/backend/src/routes/modules/system.routes.js +3 -0
  29. package/dist/backend/backend/src/routes/modules/system.routes.js.map +1 -1
  30. package/dist/backend/backend/src/services/activity/activity-log.service.d.ts +192 -0
  31. package/dist/backend/backend/src/services/activity/activity-log.service.d.ts.map +1 -0
  32. package/dist/backend/backend/src/services/activity/activity-log.service.js +349 -0
  33. package/dist/backend/backend/src/services/activity/activity-log.service.js.map +1 -0
  34. package/dist/backend/backend/src/services/browser/browser-approval.service.d.ts.map +1 -1
  35. package/dist/backend/backend/src/services/browser/browser-approval.service.js +7 -0
  36. package/dist/backend/backend/src/services/browser/browser-approval.service.js.map +1 -1
  37. package/dist/backend/backend/src/services/budget/team-budget-gate.service.d.ts.map +1 -1
  38. package/dist/backend/backend/src/services/budget/team-budget-gate.service.js +9 -0
  39. package/dist/backend/backend/src/services/budget/team-budget-gate.service.js.map +1 -1
  40. package/dist/backend/backend/src/services/decisions/decision.service.d.ts +13 -0
  41. package/dist/backend/backend/src/services/decisions/decision.service.d.ts.map +1 -1
  42. package/dist/backend/backend/src/services/decisions/decision.service.js +39 -0
  43. package/dist/backend/backend/src/services/decisions/decision.service.js.map +1 -1
  44. package/dist/backend/backend/src/services/decisions/decision.wiring.d.ts.map +1 -1
  45. package/dist/backend/backend/src/services/decisions/decision.wiring.js +2 -0
  46. package/dist/backend/backend/src/services/decisions/decision.wiring.js.map +1 -1
  47. package/dist/backend/backend/src/services/google/gmail-send-approval.service.d.ts.map +1 -1
  48. package/dist/backend/backend/src/services/google/gmail-send-approval.service.js +26 -0
  49. package/dist/backend/backend/src/services/google/gmail-send-approval.service.js.map +1 -1
  50. package/dist/backend/build-info.json +2 -2
  51. package/dist/cli/backend/src/constants.d.ts +34 -0
  52. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  53. package/dist/cli/backend/src/constants.js +34 -0
  54. package/dist/cli/backend/src/constants.js.map +1 -1
  55. package/dist/cli/backend/src/middleware/agent-origin-correction.d.ts +31 -0
  56. package/dist/cli/backend/src/middleware/agent-origin-correction.d.ts.map +1 -0
  57. package/dist/cli/backend/src/middleware/agent-origin-correction.js +31 -0
  58. package/dist/cli/backend/src/middleware/agent-origin-correction.js.map +1 -0
  59. package/dist/cli/backend/src/middleware/api-token.middleware.d.ts +171 -0
  60. package/dist/cli/backend/src/middleware/api-token.middleware.d.ts.map +1 -0
  61. package/dist/cli/backend/src/middleware/api-token.middleware.js +329 -0
  62. package/dist/cli/backend/src/middleware/api-token.middleware.js.map +1 -0
  63. package/dist/cli/backend/src/middleware/caller-identity.middleware.d.ts +290 -0
  64. package/dist/cli/backend/src/middleware/caller-identity.middleware.d.ts.map +1 -0
  65. package/dist/cli/backend/src/middleware/caller-identity.middleware.js +658 -0
  66. package/dist/cli/backend/src/middleware/caller-identity.middleware.js.map +1 -0
  67. package/dist/cli/backend/src/middleware/require-auth.middleware.d.ts +60 -0
  68. package/dist/cli/backend/src/middleware/require-auth.middleware.d.ts.map +1 -0
  69. package/dist/cli/backend/src/middleware/require-auth.middleware.js +127 -0
  70. package/dist/cli/backend/src/middleware/require-auth.middleware.js.map +1 -0
  71. package/dist/cli/backend/src/services/activity/activity-log.service.d.ts +192 -0
  72. package/dist/cli/backend/src/services/activity/activity-log.service.d.ts.map +1 -0
  73. package/dist/cli/backend/src/services/activity/activity-log.service.js +349 -0
  74. package/dist/cli/backend/src/services/activity/activity-log.service.js.map +1 -0
  75. package/dist/cli/backend/src/services/budget/team-budget-gate.service.d.ts.map +1 -1
  76. package/dist/cli/backend/src/services/budget/team-budget-gate.service.js +9 -0
  77. package/dist/cli/backend/src/services/budget/team-budget-gate.service.js.map +1 -1
  78. package/dist/cli/backend/src/services/core/peer-process.service.d.ts +168 -0
  79. package/dist/cli/backend/src/services/core/peer-process.service.d.ts.map +1 -0
  80. package/dist/cli/backend/src/services/core/peer-process.service.js +352 -0
  81. package/dist/cli/backend/src/services/core/peer-process.service.js.map +1 -0
  82. package/dist/cli/backend/src/services/decisions/decision.service.d.ts +13 -0
  83. package/dist/cli/backend/src/services/decisions/decision.service.d.ts.map +1 -1
  84. package/dist/cli/backend/src/services/decisions/decision.service.js +39 -0
  85. package/dist/cli/backend/src/services/decisions/decision.service.js.map +1 -1
  86. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"team-move.controller.js","sourceRoot":"","sources":["../../../../../../backend/src/controllers/team-move/team-move.controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"team-move.controller.js","sourceRoot":"","sources":["../../../../../../backend/src/controllers/team-move/team-move.controller.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"system.routes.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/routes/modules/system.routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AASpE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,GAAG,IAAI,CA0CvF"}
1
+ {"version":3,"file":"system.routes.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/routes/modules/system.routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAUpE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,GAAG,IAAI,CA4CvF"}
@@ -5,6 +5,7 @@ import { registerRuntimeFallbackRoutes } from '../../controllers/system/runtime-
5
5
  import { registerRuntimeTermsRoutes } from '../../controllers/system/runtime-terms.controller.js';
6
6
  import { registerUsageRoutes } from '../../controllers/system/usage.controller.js';
7
7
  import { registerSecurityRoutes } from '../../controllers/security/approvals.controller.js';
8
+ import { registerActivityRoutes } from '../../controllers/activity/activity.controller.js';
8
9
  export function registerSystemRoutes(router, apiController) {
9
10
  // System Administration Routes
10
11
  router.get('/system/health', (req, res) => systemHandlers.getSystemHealth.call(apiController, req, res));
@@ -32,6 +33,8 @@ export function registerSystemRoutes(router, apiController) {
32
33
  registerUsageRoutes(router);
33
34
  // Approval activity for Settings › Security (read-only)
34
35
  registerSecurityRoutes(router);
36
+ // Activity log: who changed what and when, owner only (crewly#881, specs/2026-10-25-activity-log.md)
37
+ registerActivityRoutes(router);
35
38
  // API Health within /api scope
36
39
  router.get('/health', (req, res) => systemHandlers.healthCheck.call(apiController, req, res));
37
40
  // Local IP address for QR code generation (mobile access)
@@ -1 +1 @@
1
- {"version":3,"file":"system.routes.js","sourceRoot":"","sources":["../../../../../../backend/src/routes/modules/system.routes.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,cAAc,MAAM,+CAA+C,CAAC;AAChF,OAAO,EAAE,2BAA2B,EAAE,MAAM,uDAAuD,CAAC;AACpG,OAAO,EAAE,uBAAuB,EAAE,MAAM,4DAA4D,CAAC;AACrG,OAAO,EAAE,6BAA6B,EAAE,MAAM,yDAAyD,CAAC;AACxG,OAAO,EAAE,0BAA0B,EAAE,MAAM,sDAAsD,CAAC;AAClG,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AACnF,OAAO,EAAE,sBAAsB,EAAE,MAAM,oDAAoD,CAAC;AAE5F,MAAM,UAAU,oBAAoB,CAAC,MAAc,EAAE,aAA4B;IAC/E,+BAA+B;IAC/B,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IACzG,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAChH,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAC3G,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,sBAAsB,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAChH,MAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,yBAAyB,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IACrH,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,mBAAmB,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IACtH,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IACrG,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IACnG,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,oBAAoB,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAE7H,kGAAkG;IAClG,MAAM,CAAC,GAAG,CAAC,mCAAmC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QAC5D,MAAM,QAAQ,GAAG,uBAAuB,EAAE,CAAC;QAC3C,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/F,CAAC,CAAC,CAAC;IAEH,+EAA+E;IAC/E,wEAAwE;IACxE,2BAA2B,CAAC,MAAM,CAAC,CAAC;IAEpC,gGAAgG;IAChG,6BAA6B,CAAC,MAAM,CAAC,CAAC;IACtC,4FAA4F;IAC5F,0BAA0B,CAAC,MAAM,CAAC,CAAC;IACnC,gFAAgF;IAChF,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC5B,wDAAwD;IACxD,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAE/B,+BAA+B;IAC/B,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAE9F,0DAA0D;IAC1D,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAE7G,oEAAoE;IACpE,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAEzG,gEAAgE;IAChE,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAC1G,CAAC"}
1
+ {"version":3,"file":"system.routes.js","sourceRoot":"","sources":["../../../../../../backend/src/routes/modules/system.routes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,192 @@
1
+ import { type ComponentLogger } from '../core/logger.service.js';
2
+ import { type CallerIdentity, type IdentifiableRequest } from '../../middleware/caller-identity.middleware.js';
3
+ /** Who acted. */
4
+ export type ActivityActorType = 'owner' | 'agent' | 'system';
5
+ /** The actor of an entry. */
6
+ export interface ActivityActor {
7
+ /** Owner, an agent, or Crewly itself (schedulers, deadlines, anonymous local calls) */
8
+ type: ActivityActorType;
9
+ /** The agent session, Slack user id, scheduler name, … when known */
10
+ id?: string;
11
+ /** How the actor was recognised (`owner-session`, `api-token`, `agent-badge`, `deadline`, …) */
12
+ via?: string;
13
+ }
14
+ /** What an entry is about. */
15
+ export interface ActivityTarget {
16
+ /** `team`, `member`, `decision`, … */
17
+ type: string;
18
+ id: string;
19
+ /** Display name at the time of the action */
20
+ name?: string;
21
+ }
22
+ /** One line of the log. */
23
+ export interface ActivityEntry {
24
+ id: string;
25
+ /** ISO timestamp */
26
+ ts: string;
27
+ actor: ActivityActor;
28
+ /** Dotted, past tense: `team.member.updated`, `decision.resolved` */
29
+ action: string;
30
+ target: ActivityTarget;
31
+ /** Changed fields before the action (masked, truncated) */
32
+ before?: Record<string, unknown>;
33
+ /** Changed fields after the action (masked, truncated) */
34
+ after?: Record<string, unknown>;
35
+ /** The Crewly Request this happened under, when known */
36
+ requestId?: string;
37
+ /** The WorkItem this happened under, when known */
38
+ workItemId?: string;
39
+ /** Short free text (an answer, a reason) */
40
+ note?: string;
41
+ }
42
+ /** What a writer hands in; id and timestamp are filled here. */
43
+ export type ActivityEntryInput = Omit<ActivityEntry, 'id' | 'ts'> & {
44
+ ts?: string;
45
+ };
46
+ /** Filters of a read. All optional; `action` and ids match exactly, `action` also by `prefix.` */
47
+ export interface ActivityQuery {
48
+ actorType?: ActivityActorType;
49
+ actorId?: string;
50
+ /** Exact action, or a dotted prefix such as `team.` */
51
+ action?: string;
52
+ targetType?: string;
53
+ targetId?: string;
54
+ /** ISO timestamp (inclusive) */
55
+ since?: string;
56
+ /** ISO timestamp (inclusive) */
57
+ until?: string;
58
+ limit?: number;
59
+ }
60
+ /** File operations the log uses (injectable to simulate failures). */
61
+ export interface ActivityFsOps {
62
+ mkdir(dir: string, opts: {
63
+ recursive: true;
64
+ }): Promise<unknown>;
65
+ appendFile(file: string, data: string): Promise<void>;
66
+ readFile(file: string): Promise<string>;
67
+ readdir(dir: string): Promise<string[]>;
68
+ }
69
+ /** Construction options. */
70
+ export interface ActivityLogOptions {
71
+ /** Log directory (default `<CREWLY_HOME>/activity-log`) */
72
+ dir?: string;
73
+ fs?: ActivityFsOps;
74
+ now?: () => Date;
75
+ logger?: ComponentLogger;
76
+ }
77
+ /**
78
+ * Whether a string names an actor type.
79
+ *
80
+ * @param value - Candidate
81
+ * @returns True for owner / agent / system
82
+ */
83
+ export declare function isActivityActorType(value: unknown): value is ActivityActorType;
84
+ /**
85
+ * Mask secret-looking keys and cut long strings, recursively. Arrays and plain
86
+ * objects are walked; anything else is kept as is.
87
+ *
88
+ * @param value - Any JSON-ish value
89
+ * @returns The value safe to write
90
+ */
91
+ export declare function maskForActivity(value: unknown): unknown;
92
+ /**
93
+ * The fields that differ between two shallow records, as a before / after
94
+ * pair (masked). Equal fields are left out so an entry shows only the change;
95
+ * a key absent on one side appears as `undefined` → left out of that side.
96
+ *
97
+ * @param before - Record before the change (null when created)
98
+ * @param after - Record after the change (null when deleted)
99
+ * @returns Masked before / after summaries, each undefined when empty
100
+ */
101
+ export declare function summarizeChange(before: Record<string, unknown> | null | undefined, after: Record<string, unknown> | null | undefined): {
102
+ before?: Record<string, unknown>;
103
+ after?: Record<string, unknown>;
104
+ };
105
+ /**
106
+ * The actor behind a caller identity: owner credentials (dashboard session,
107
+ * API token, phone / portal relay, cloud) are the owner; an agent is itself;
108
+ * schedulers and anonymous local calls are the system.
109
+ *
110
+ * @param identity - What the caller-identity middleware decided
111
+ * @returns The actor
112
+ */
113
+ export declare function actorFromCaller(identity: CallerIdentity): ActivityActor;
114
+ /**
115
+ * The actor of an HTTP request. Never throws.
116
+ *
117
+ * @param req - Request
118
+ * @returns The actor
119
+ */
120
+ export declare function actorFromRequest(req: IdentifiableRequest): ActivityActor;
121
+ /**
122
+ * The append-only activity log.
123
+ */
124
+ export declare class ActivityLogService {
125
+ private readonly dir;
126
+ private readonly fs;
127
+ private readonly now;
128
+ private readonly logger;
129
+ private chain;
130
+ private dirReady;
131
+ private seq;
132
+ /**
133
+ * @param options - Directory, file ops, clock, logger (all optional)
134
+ */
135
+ constructor(options?: ActivityLogOptions);
136
+ /**
137
+ * Append one entry. Returns at once; the write is chained after earlier
138
+ * writes and a failure is logged, never thrown.
139
+ *
140
+ * @param input - The entry without id / timestamp
141
+ * @returns The entry as it will be written
142
+ */
143
+ record(input: ActivityEntryInput): ActivityEntry;
144
+ /**
145
+ * Wait for every write handed in so far.
146
+ *
147
+ * @returns When the chain is idle
148
+ */
149
+ flush(): Promise<void>;
150
+ /**
151
+ * Read entries newest first.
152
+ *
153
+ * @param query - Filters and limit
154
+ * @returns Matching entries, newest first, at most `limit`
155
+ */
156
+ list(query?: ActivityQuery): Promise<ActivityEntry[]>;
157
+ /**
158
+ * The monthly files worth opening for a query, newest first, bounded by
159
+ * MAX_FILES_PER_READ and by the query's time window.
160
+ *
161
+ * @param query - Filters (since / until narrow the months)
162
+ * @returns File names
163
+ */
164
+ private monthlyFiles;
165
+ /**
166
+ * The file an entry at a timestamp belongs to.
167
+ *
168
+ * @param ts - ISO timestamp
169
+ * @returns Absolute path
170
+ */
171
+ private fileFor;
172
+ }
173
+ /**
174
+ * The process-wide activity log.
175
+ *
176
+ * @returns The log (created on first use)
177
+ */
178
+ export declare function getActivityLog(): ActivityLogService;
179
+ /**
180
+ * Replace the process-wide log (tests).
181
+ *
182
+ * @param log - Log, or null to rebuild the default lazily
183
+ */
184
+ export declare function setActivityLogForTesting(log: ActivityLogService | null): void;
185
+ /**
186
+ * Append to the process-wide log without ever throwing. The one call writers
187
+ * make.
188
+ *
189
+ * @param input - The entry
190
+ */
191
+ export declare function recordActivity(input: ActivityEntryInput): void;
192
+ //# sourceMappingURL=activity-log.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activity-log.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/activity/activity-log.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,349 @@
1
+ /**
2
+ * Activity log (crewly#881): the append-only record of who did what and when.
3
+ *
4
+ * - One `<CREWLY_HOME>/activity-log/YYYY-MM.jsonl` file per month, one JSON
5
+ * entry per line. Nothing is ever rewritten or deleted here.
6
+ * - Each entry names the actor (owner / agent / system, with its id and how it
7
+ * was recognised), the action (`team.member.updated`, `decision.resolved`,
8
+ * …), the target, and a before / after summary of the changed fields with
9
+ * secret-looking keys masked and long strings cut.
10
+ * - Writes are chained on one promise and never awaited by callers; a failed
11
+ * write is logged, never thrown. Reads walk the monthly files newest first
12
+ * and stop once the limit is reached.
13
+ *
14
+ * Writers: team / member config handlers (`team.controller.ts`) and owner
15
+ * decisions (`decision.service.ts`). Reader: `GET /api/activity`.
16
+ *
17
+ * `specs/2026-10-25-activity-log.md`
18
+ *
19
+ * @module services/activity/activity-log.service
20
+ */
21
+ import { promises as fsp } from 'fs';
22
+ import * as path from 'path';
23
+ import { ACTIVITY_LOG_CONSTANTS } from '../../constants.js';
24
+ import { getCrewlyHomePath } from '../core/crewly-home.utils.js';
25
+ import { LoggerService } from '../core/logger.service.js';
26
+ import { getCallerIdentity } from '../../middleware/caller-identity.middleware.js';
27
+ const NODE_FS = {
28
+ mkdir: (dir, opts) => fsp.mkdir(dir, opts),
29
+ appendFile: (file, data) => fsp.appendFile(file, data, 'utf8'),
30
+ readFile: (file) => fsp.readFile(file, 'utf8'),
31
+ readdir: (dir) => fsp.readdir(dir),
32
+ };
33
+ const ACTOR_TYPES = new Set(['owner', 'agent', 'system']);
34
+ /**
35
+ * Whether a string names an actor type.
36
+ *
37
+ * @param value - Candidate
38
+ * @returns True for owner / agent / system
39
+ */
40
+ export function isActivityActorType(value) {
41
+ return typeof value === 'string' && ACTOR_TYPES.has(value);
42
+ }
43
+ /**
44
+ * Mask secret-looking keys and cut long strings, recursively. Arrays and plain
45
+ * objects are walked; anything else is kept as is.
46
+ *
47
+ * @param value - Any JSON-ish value
48
+ * @returns The value safe to write
49
+ */
50
+ export function maskForActivity(value) {
51
+ if (typeof value === 'string') {
52
+ return value.length > ACTIVITY_LOG_CONSTANTS.MAX_SUMMARY_CHARS ? `${value.slice(0, ACTIVITY_LOG_CONSTANTS.MAX_SUMMARY_CHARS)}…` : value;
53
+ }
54
+ if (Array.isArray(value))
55
+ return value.map(maskForActivity);
56
+ if (value && typeof value === 'object') {
57
+ const out = {};
58
+ for (const [k, v] of Object.entries(value)) {
59
+ out[k] = ACTIVITY_LOG_CONSTANTS.SECRET_KEY_PATTERN.test(k) && v !== undefined && v !== null ? ACTIVITY_LOG_CONSTANTS.MASK : maskForActivity(v);
60
+ }
61
+ return out;
62
+ }
63
+ return value;
64
+ }
65
+ /**
66
+ * The fields that differ between two shallow records, as a before / after
67
+ * pair (masked). Equal fields are left out so an entry shows only the change;
68
+ * a key absent on one side appears as `undefined` → left out of that side.
69
+ *
70
+ * @param before - Record before the change (null when created)
71
+ * @param after - Record after the change (null when deleted)
72
+ * @returns Masked before / after summaries, each undefined when empty
73
+ */
74
+ export function summarizeChange(before, after) {
75
+ const b = {};
76
+ const a = {};
77
+ const keys = new Set([...Object.keys(before ?? {}), ...Object.keys(after ?? {})]);
78
+ for (const k of keys) {
79
+ const bv = before?.[k];
80
+ const av = after?.[k];
81
+ if (JSON.stringify(bv) === JSON.stringify(av))
82
+ continue;
83
+ if (bv !== undefined)
84
+ b[k] = bv;
85
+ if (av !== undefined)
86
+ a[k] = av;
87
+ }
88
+ return {
89
+ ...(Object.keys(b).length ? { before: maskForActivity(b) } : {}),
90
+ ...(Object.keys(a).length ? { after: maskForActivity(a) } : {}),
91
+ };
92
+ }
93
+ /**
94
+ * The actor behind a caller identity: owner credentials (dashboard session,
95
+ * API token, phone / portal relay, cloud) are the owner; an agent is itself;
96
+ * schedulers and anonymous local calls are the system.
97
+ *
98
+ * @param identity - What the caller-identity middleware decided
99
+ * @returns The actor
100
+ */
101
+ export function actorFromCaller(identity) {
102
+ switch (identity.kind) {
103
+ case 'owner':
104
+ case 'relay-owner':
105
+ case 'cloud':
106
+ return { type: 'owner', via: identity.via };
107
+ case 'agent':
108
+ return { type: 'agent', ...(identity.session ? { id: identity.session } : {}), via: identity.via };
109
+ case 'scheduler':
110
+ return { type: 'system', id: identity.sender ?? 'scheduler', via: identity.via };
111
+ default:
112
+ return { type: 'system', id: 'anonymous', via: identity.via };
113
+ }
114
+ }
115
+ /**
116
+ * The actor of an HTTP request. Never throws.
117
+ *
118
+ * @param req - Request
119
+ * @returns The actor
120
+ */
121
+ export function actorFromRequest(req) {
122
+ try {
123
+ return actorFromCaller(getCallerIdentity(req));
124
+ }
125
+ catch {
126
+ // A request the middleware cannot read (a bare test double) is still logged, as unknown.
127
+ return { type: 'system', id: 'unknown' };
128
+ }
129
+ }
130
+ /**
131
+ * The append-only activity log.
132
+ */
133
+ export class ActivityLogService {
134
+ dir;
135
+ fs;
136
+ now;
137
+ logger;
138
+ chain = Promise.resolve();
139
+ dirReady = false;
140
+ seq = 0;
141
+ /**
142
+ * @param options - Directory, file ops, clock, logger (all optional)
143
+ */
144
+ constructor(options = {}) {
145
+ this.dir = options.dir ?? path.join(getCrewlyHomePath(), ACTIVITY_LOG_CONSTANTS.DIR);
146
+ this.fs = options.fs ?? NODE_FS;
147
+ this.now = options.now ?? (() => new Date());
148
+ this.logger = options.logger ?? LoggerService.getInstance().createComponentLogger('ActivityLog');
149
+ }
150
+ /**
151
+ * Append one entry. Returns at once; the write is chained after earlier
152
+ * writes and a failure is logged, never thrown.
153
+ *
154
+ * @param input - The entry without id / timestamp
155
+ * @returns The entry as it will be written
156
+ */
157
+ record(input) {
158
+ const ts = input.ts ?? this.now().toISOString();
159
+ const entry = {
160
+ id: `${Date.parse(ts).toString(36)}-${(this.seq++).toString(36)}-${Math.random().toString(36).slice(2, 6)}`,
161
+ ts,
162
+ actor: input.actor,
163
+ action: input.action,
164
+ target: input.target,
165
+ ...(input.before ? { before: maskForActivity(input.before) } : {}),
166
+ ...(input.after ? { after: maskForActivity(input.after) } : {}),
167
+ ...(input.requestId ? { requestId: input.requestId } : {}),
168
+ ...(input.workItemId ? { workItemId: input.workItemId } : {}),
169
+ ...(input.note ? { note: maskForActivity(input.note) } : {}),
170
+ };
171
+ const file = this.fileFor(ts);
172
+ this.chain = this.chain
173
+ .then(async () => {
174
+ if (!this.dirReady) {
175
+ await this.fs.mkdir(this.dir, { recursive: true });
176
+ this.dirReady = true;
177
+ }
178
+ await this.fs.appendFile(file, `${JSON.stringify(entry)}\n`);
179
+ })
180
+ .catch((err) => {
181
+ this.dirReady = false;
182
+ this.logger.warn('Activity log write failed', { action: entry.action, error: err instanceof Error ? err.message : String(err) });
183
+ });
184
+ return entry;
185
+ }
186
+ /**
187
+ * Wait for every write handed in so far.
188
+ *
189
+ * @returns When the chain is idle
190
+ */
191
+ flush() {
192
+ return this.chain;
193
+ }
194
+ /**
195
+ * Read entries newest first.
196
+ *
197
+ * @param query - Filters and limit
198
+ * @returns Matching entries, newest first, at most `limit`
199
+ */
200
+ async list(query = {}) {
201
+ await this.flush();
202
+ const limit = Math.max(1, Math.min(ACTIVITY_LOG_CONSTANTS.MAX_LIMIT, Math.floor(query.limit ?? ACTIVITY_LOG_CONSTANTS.DEFAULT_LIMIT)));
203
+ const files = await this.monthlyFiles(query);
204
+ const out = [];
205
+ for (const file of files) {
206
+ let raw;
207
+ try {
208
+ raw = await this.fs.readFile(path.join(this.dir, file));
209
+ }
210
+ catch {
211
+ continue;
212
+ }
213
+ const lines = raw.split('\n');
214
+ for (let i = lines.length - 1; i >= 0 && out.length < limit; i--) {
215
+ const entry = parseLine(lines[i]);
216
+ if (entry && matches(entry, query))
217
+ out.push(entry);
218
+ }
219
+ if (out.length >= limit)
220
+ break;
221
+ }
222
+ return out;
223
+ }
224
+ /**
225
+ * The monthly files worth opening for a query, newest first, bounded by
226
+ * MAX_FILES_PER_READ and by the query's time window.
227
+ *
228
+ * @param query - Filters (since / until narrow the months)
229
+ * @returns File names
230
+ */
231
+ async monthlyFiles(query) {
232
+ let names;
233
+ try {
234
+ names = await this.fs.readdir(this.dir);
235
+ }
236
+ catch {
237
+ return [];
238
+ }
239
+ const sinceMonth = query.since ? monthOf(query.since) : null;
240
+ const untilMonth = query.until ? monthOf(query.until) : null;
241
+ return names
242
+ .filter((n) => n.endsWith(ACTIVITY_LOG_CONSTANTS.FILE_EXT))
243
+ .map((n) => n.slice(0, -ACTIVITY_LOG_CONSTANTS.FILE_EXT.length))
244
+ .filter((m) => /^\d{4}-\d{2}$/.test(m))
245
+ .filter((m) => (!sinceMonth || m >= sinceMonth) && (!untilMonth || m <= untilMonth))
246
+ .sort()
247
+ .reverse()
248
+ .slice(0, ACTIVITY_LOG_CONSTANTS.MAX_FILES_PER_READ)
249
+ .map((m) => `${m}${ACTIVITY_LOG_CONSTANTS.FILE_EXT}`);
250
+ }
251
+ /**
252
+ * The file an entry at a timestamp belongs to.
253
+ *
254
+ * @param ts - ISO timestamp
255
+ * @returns Absolute path
256
+ */
257
+ fileFor(ts) {
258
+ return path.join(this.dir, `${monthOf(ts) ?? 'unknown'}${ACTIVITY_LOG_CONSTANTS.FILE_EXT}`);
259
+ }
260
+ }
261
+ /**
262
+ * `YYYY-MM` of an ISO timestamp (UTC), or null when unparsable.
263
+ *
264
+ * @param ts - ISO timestamp
265
+ * @returns The month key
266
+ */
267
+ function monthOf(ts) {
268
+ const ms = Date.parse(ts);
269
+ if (Number.isNaN(ms))
270
+ return null;
271
+ return new Date(ms).toISOString().slice(0, 7);
272
+ }
273
+ /**
274
+ * Parse one log line; a blank or damaged line is skipped.
275
+ *
276
+ * @param line - Raw line
277
+ * @returns The entry or null
278
+ */
279
+ function parseLine(line) {
280
+ if (!line.trim())
281
+ return null;
282
+ try {
283
+ const v = JSON.parse(line);
284
+ return typeof v.id === 'string' && typeof v.ts === 'string' && typeof v.action === 'string' && v.actor && v.target ? v : null;
285
+ }
286
+ catch {
287
+ return null;
288
+ }
289
+ }
290
+ /**
291
+ * Whether an entry passes a query's filters. Times compare as instants, so
292
+ * `…T00:00:00Z` and `…T00:00:00.000Z` are the same moment.
293
+ *
294
+ * @param e - Entry
295
+ * @param q - Query
296
+ * @returns True when it matches
297
+ */
298
+ function matches(e, q) {
299
+ if (q.actorType && e.actor.type !== q.actorType)
300
+ return false;
301
+ if (q.actorId && e.actor.id !== q.actorId)
302
+ return false;
303
+ if (q.action && e.action !== q.action && !(q.action.endsWith('.') && e.action.startsWith(q.action)))
304
+ return false;
305
+ if (q.targetType && e.target.type !== q.targetType)
306
+ return false;
307
+ if (q.targetId && e.target.id !== q.targetId)
308
+ return false;
309
+ const ms = Date.parse(e.ts);
310
+ if (q.since && ms < Date.parse(q.since))
311
+ return false;
312
+ if (q.until && ms > Date.parse(q.until))
313
+ return false;
314
+ return true;
315
+ }
316
+ let instance = null;
317
+ /**
318
+ * The process-wide activity log.
319
+ *
320
+ * @returns The log (created on first use)
321
+ */
322
+ export function getActivityLog() {
323
+ if (!instance)
324
+ instance = new ActivityLogService();
325
+ return instance;
326
+ }
327
+ /**
328
+ * Replace the process-wide log (tests).
329
+ *
330
+ * @param log - Log, or null to rebuild the default lazily
331
+ */
332
+ export function setActivityLogForTesting(log) {
333
+ instance = log;
334
+ }
335
+ /**
336
+ * Append to the process-wide log without ever throwing. The one call writers
337
+ * make.
338
+ *
339
+ * @param input - The entry
340
+ */
341
+ export function recordActivity(input) {
342
+ try {
343
+ getActivityLog().record(input);
344
+ }
345
+ catch {
346
+ // A broken log never breaks the action it describes.
347
+ }
348
+ }
349
+ //# sourceMappingURL=activity-log.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activity-log.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/activity/activity-log.service.ts"],"names":[],"mappings":"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"}