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.
- package/dist/backend/backend/src/constants.d.ts +34 -0
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +34 -0
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/controllers/activity/activity.controller.d.ts +29 -0
- package/dist/backend/backend/src/controllers/activity/activity.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/activity/activity.controller.js +77 -0
- package/dist/backend/backend/src/controllers/activity/activity.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/google/google.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/google/google.controller.js +3 -0
- package/dist/backend/backend/src/controllers/google/google.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/team/team-charter.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/team/team-charter.controller.js +7 -0
- package/dist/backend/backend/src/controllers/team/team-charter.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/team/team-model-tiers.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/team/team-model-tiers.controller.js +5 -1
- package/dist/backend/backend/src/controllers/team/team-model-tiers.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/team/team-pause.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/team/team-pause.controller.js +9 -0
- package/dist/backend/backend/src/controllers/team/team-pause.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/team/team.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/team/team.controller.js +49 -0
- package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/team-move/team-move.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/team-move/team-move.controller.js +2 -0
- package/dist/backend/backend/src/controllers/team-move/team-move.controller.js.map +1 -1
- package/dist/backend/backend/src/routes/modules/system.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/routes/modules/system.routes.js +3 -0
- package/dist/backend/backend/src/routes/modules/system.routes.js.map +1 -1
- package/dist/backend/backend/src/services/activity/activity-log.service.d.ts +192 -0
- package/dist/backend/backend/src/services/activity/activity-log.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/activity/activity-log.service.js +349 -0
- package/dist/backend/backend/src/services/activity/activity-log.service.js.map +1 -0
- package/dist/backend/backend/src/services/browser/browser-approval.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/browser/browser-approval.service.js +7 -0
- package/dist/backend/backend/src/services/browser/browser-approval.service.js.map +1 -1
- package/dist/backend/backend/src/services/budget/team-budget-gate.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/budget/team-budget-gate.service.js +9 -0
- package/dist/backend/backend/src/services/budget/team-budget-gate.service.js.map +1 -1
- package/dist/backend/backend/src/services/decisions/decision.service.d.ts +13 -0
- package/dist/backend/backend/src/services/decisions/decision.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/decisions/decision.service.js +39 -0
- package/dist/backend/backend/src/services/decisions/decision.service.js.map +1 -1
- package/dist/backend/backend/src/services/decisions/decision.wiring.d.ts.map +1 -1
- package/dist/backend/backend/src/services/decisions/decision.wiring.js +2 -0
- package/dist/backend/backend/src/services/decisions/decision.wiring.js.map +1 -1
- package/dist/backend/backend/src/services/google/gmail-send-approval.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/google/gmail-send-approval.service.js +26 -0
- package/dist/backend/backend/src/services/google/gmail-send-approval.service.js.map +1 -1
- package/dist/backend/build-info.json +2 -2
- package/dist/cli/backend/src/constants.d.ts +34 -0
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +34 -0
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/dist/cli/backend/src/middleware/agent-origin-correction.d.ts +31 -0
- package/dist/cli/backend/src/middleware/agent-origin-correction.d.ts.map +1 -0
- package/dist/cli/backend/src/middleware/agent-origin-correction.js +31 -0
- package/dist/cli/backend/src/middleware/agent-origin-correction.js.map +1 -0
- package/dist/cli/backend/src/middleware/api-token.middleware.d.ts +171 -0
- package/dist/cli/backend/src/middleware/api-token.middleware.d.ts.map +1 -0
- package/dist/cli/backend/src/middleware/api-token.middleware.js +329 -0
- package/dist/cli/backend/src/middleware/api-token.middleware.js.map +1 -0
- package/dist/cli/backend/src/middleware/caller-identity.middleware.d.ts +290 -0
- package/dist/cli/backend/src/middleware/caller-identity.middleware.d.ts.map +1 -0
- package/dist/cli/backend/src/middleware/caller-identity.middleware.js +658 -0
- package/dist/cli/backend/src/middleware/caller-identity.middleware.js.map +1 -0
- package/dist/cli/backend/src/middleware/require-auth.middleware.d.ts +60 -0
- package/dist/cli/backend/src/middleware/require-auth.middleware.d.ts.map +1 -0
- package/dist/cli/backend/src/middleware/require-auth.middleware.js +127 -0
- package/dist/cli/backend/src/middleware/require-auth.middleware.js.map +1 -0
- package/dist/cli/backend/src/services/activity/activity-log.service.d.ts +192 -0
- package/dist/cli/backend/src/services/activity/activity-log.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/activity/activity-log.service.js +349 -0
- package/dist/cli/backend/src/services/activity/activity-log.service.js.map +1 -0
- package/dist/cli/backend/src/services/budget/team-budget-gate.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/budget/team-budget-gate.service.js +9 -0
- package/dist/cli/backend/src/services/budget/team-budget-gate.service.js.map +1 -1
- package/dist/cli/backend/src/services/core/peer-process.service.d.ts +168 -0
- package/dist/cli/backend/src/services/core/peer-process.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/core/peer-process.service.js +352 -0
- package/dist/cli/backend/src/services/core/peer-process.service.js.map +1 -0
- package/dist/cli/backend/src/services/decisions/decision.service.d.ts +13 -0
- package/dist/cli/backend/src/services/decisions/decision.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/decisions/decision.service.js +39 -0
- package/dist/cli/backend/src/services/decisions/decision.service.js.map +1 -1
- package/package.json +1 -1
|
@@ -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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"team-budget-gate.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/budget/team-budget-gate.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAiB,KAAK,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAGhF,OAAO,KAAK,EAAE,IAAI,EAAc,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,eAAe,EAA6B,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"team-budget-gate.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/budget/team-budget-gate.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,6 +28,7 @@ import { StorageService } from '../core/storage.service.js';
|
|
|
28
28
|
import { TokenUsageService } from '../monitoring/token-usage.service.js';
|
|
29
29
|
import { MESSAGE_SOURCES, ORCHESTRATOR_SESSION_NAME } from '../../constants.js';
|
|
30
30
|
import { formatError } from '../../utils/format-error.js';
|
|
31
|
+
import { recordActivity } from '../activity/activity-log.service.js';
|
|
31
32
|
// ---------------------------------------------------------------------------
|
|
32
33
|
// Constants
|
|
33
34
|
// ---------------------------------------------------------------------------
|
|
@@ -304,6 +305,14 @@ export class TeamBudgetGateService {
|
|
|
304
305
|
if (this.notified.length > NOTIFY_DEDUP_CAPACITY)
|
|
305
306
|
this.notified.shift();
|
|
306
307
|
const content = this.formatEnvelope(check);
|
|
308
|
+
// Activity log (crewly#881 / #853): the budget line a team crossed, once per level per day.
|
|
309
|
+
recordActivity({
|
|
310
|
+
actor: { type: 'system', id: 'budget-gate' },
|
|
311
|
+
action: 'budget.exceeded',
|
|
312
|
+
target: { type: 'team', id: check.teamId, name: check.teamName },
|
|
313
|
+
after: { level: check.level, tokensToday: check.usage.tokensToday, usdThisMonth: check.usage.usdThisMonth, ...(check.usage.maxTokensPerDay !== undefined ? { maxTokensPerDay: check.usage.maxTokensPerDay } : {}), ...(check.usage.maxUsdPerMonth !== undefined ? { maxUsdPerMonth: check.usage.maxUsdPerMonth } : {}) },
|
|
314
|
+
...(check.detail ? { note: check.detail } : {}),
|
|
315
|
+
});
|
|
307
316
|
if (this.eventBus) {
|
|
308
317
|
try {
|
|
309
318
|
this.eventBus.publish({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"team-budget-gate.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/budget/team-budget-gate.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,aAAa,EAAwB,MAAM,2BAA2B,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAGzE,OAAO,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE1D,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,gFAAgF;AAChF,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC;AAE/C,6DAA6D;AAC7D,MAAM,CAAC,MAAM,2BAA2B,GAAG,sBAA+B,CAAC;AAE3E,0DAA0D;AAC1D,MAAM,CAAC,MAAM,sBAAsB,GAAG,UAAU,CAAC;AAEjD,4DAA4D;AAC5D,MAAM,CAAC,MAAM,sBAAsB,GAAG,eAAe,CAAC;AAEtD,oFAAoF;AACpF,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,CAAC;AAE9C,yCAAyC;AACzC,MAAM,eAAe,GAAG,GAAG,CAAC;AAE5B,2DAA2D;AAC3D,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAqEnC,+EAA+E;AAC/E,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IACvC,MAAM,GAAG,2BAA2B,CAAC;IACrC,KAAK,CAAkB;IAEhC,YAAY,KAAsB;QAChC,KAAK,CAAC,KAAK,CAAC,MAAM,IAAI,QAAQ,KAAK,CAAC,MAAM,kBAAkB,CAAC,CAAC;QAC9D,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;QACtC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AAED,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,yCAAyC;AACzC,SAAS,aAAa,CAAC,GAAS;IAC9B,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,GAAG,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;AACvF,CAAC;AAED,sDAAsD;AACtD,SAAS,eAAe,CAAC,GAAS;IAChC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AACxE,CAAC;AAED,2BAA2B;AAC3B,SAAS,MAAM,CAAC,GAAS;IACvB,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACxC,CAAC;AAED,kEAAkE;AAClE,SAAS,GAAG,CAAC,IAAY,EAAE,GAAW;IACpC,IAAI,GAAG,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IACvB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AAC9C,CAAC;AAED,6DAA6D;AAC7D,SAAS,OAAO,CAAC,MAA8B;IAC7C,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1B,OAAO,CACL,CAAC,OAAO,MAAM,CAAC,eAAe,KAAK,QAAQ,IAAI,MAAM,CAAC,eAAe,GAAG,CAAC,CAAC;QAC1E,CAAC,OAAO,MAAM,CAAC,cAAc,KAAK,QAAQ,IAAI,MAAM,CAAC,cAAc,GAAG,CAAC,CAAC,CACzE,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E;;GAEG;AACH,MAAM,OAAO,qBAAqB;IACxB,MAAM,CAAC,QAAQ,GAAiC,IAAI,CAAC;IAE5C,MAAM,CAAkB;IACxB,QAAQ,CAAwB;IAChC,MAAM,CAAoB;IAC1B,GAAG,CAAa;IAChB,KAAK,GAAG,IAAI,GAAG,EAAkD,CAAC;IACnF,0FAA0F;IAClF,aAAa,GAAyC,IAAI,CAAC;IACnE,iFAAiF;IAChE,QAAQ,GAAa,EAAE,CAAC;IACjC,QAAQ,GAA2B,IAAI,CAAC;IACxC,YAAY,GAAkC,IAAI,CAAC;IAE3D,YAAY,OAAmC,EAAE;QAC/C,IAAI,CAAC,MAAM;YACT,IAAI,CAAC,MAAM,IAAI,aAAa,CAAC,WAAW,EAAE,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;QACrF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QACjF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,iBAAiB,CAAC,WAAW,EAAE,CAAC;QAC7D,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,iEAAiE;IACjE,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,CAAC;YACpC,qBAAqB,CAAC,QAAQ,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAC/D,CAAC;QACD,OAAO,qBAAqB,CAAC,QAAQ,CAAC;IACxC,CAAC;IAED,kCAAkC;IAClC,MAAM,CAAC,aAAa;QAClB,qBAAqB,CAAC,QAAQ,GAAG,IAAI,CAAC;IACxC,CAAC;IAED;;;;;OAKG;IACH,YAAY,CAAC,IAGZ;QACC,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;YAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/D,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS;YAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;IAC7E,CAAC;IAED,0EAA0E;IAC1E,UAAU,CAAC,MAAe;QACxB,IAAI,MAAM;YAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;;YACjC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC5B,CAAC;IAED,6EAA6E;IACrE,KAAK,CAAC,SAAS;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;QACnC,IAAI,IAAI,CAAC,aAAa,IAAI,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,GAAG,wBAAwB,EAAE,CAAC;YACnF,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;QAClC,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACpC,IAAI,CAAC,aAAa,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QAC1C,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,KAAK,CAAC,MAAc;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,MAAM,IAAI,KAAK,GAAG,MAAM,CAAC,EAAE,GAAG,wBAAwB,EAAE,CAAC;YAC3D,OAAO,MAAM,CAAC,KAAK,CAAC;QACtB,CAAC;QAED,IAAI,KAAsB,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACrC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;YAChD,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACvE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,mEAAmE;YACnE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iDAAiD,EAAE;gBAClE,MAAM;gBACN,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC;aACxB,CAAC,CAAC;YACH,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAC7C,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,eAAe,CAAC,WAAmB;QACvC,IAAI,MAAM,GAAkB,IAAI,CAAC;QACjC,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACrC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC;YACrF,MAAM,GAAG,IAAI,EAAE,EAAE,IAAI,IAAI,CAAC;QAC5B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4DAA4D,EAAE;gBAC7E,WAAW;gBACX,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC;aACxB,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED,4EAA4E;IAC5E,YAAY;IACZ,4EAA4E;IAEpE,UAAU,CAAC,MAAc,EAAE,QAAgB,EAAE,QAAkB;QACrE,OAAO;YACL,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,IAAI;YACX,MAAM;YACN,QAAQ;YACR,KAAK,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,QAAQ,EAAE;SACrD,CAAC;IACJ,CAAC;IAED,+EAA+E;IACvE,QAAQ,CAAC,IAAU;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACvD,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;QACpC,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;QAExC,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;YACrE,WAAW,IAAI,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,YAAY,CAAC;YAClD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;YACzE,YAAY,IAAI,KAAK,CAAC,IAAI,CAAC;QAC7B,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,MAAM,eAAe,GACnB,OAAO,MAAM,CAAC,eAAe,KAAK,QAAQ,IAAI,MAAM,CAAC,eAAe,GAAG,CAAC;YACtE,CAAC,CAAC,MAAM,CAAC,eAAe;YACxB,CAAC,CAAC,SAAS,CAAC;QAChB,MAAM,cAAc,GAClB,OAAO,MAAM,CAAC,cAAc,KAAK,QAAQ,IAAI,MAAM,CAAC,cAAc,GAAG,CAAC;YACpE,CAAC,CAAC,MAAM,CAAC,cAAc;YACvB,CAAC,CAAC,SAAS,CAAC;QAChB,MAAM,QAAQ,GAAG,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/F,MAAM,MAAM,GAAG,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5F,MAAM,cAAc,GAClB,OAAO,MAAM,CAAC,cAAc,KAAK,QAAQ,IAAI,MAAM,CAAC,cAAc,GAAG,CAAC;YACpE,CAAC,CAAC,MAAM,CAAC,cAAc;YACvB,CAAC,CAAC,2BAA2B,CAAC;QAElC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC;QACtD,MAAM,KAAK,GAAoB;YAC7B,WAAW;YACX,YAAY;YACZ,eAAe;YACf,cAAc;YACd,QAAQ;YACR,MAAM;YACN,QAAQ;SACT,CAAC;QAEF,IAAI,QAAQ,IAAI,eAAe,EAAE,CAAC;YAChC,MAAM,KAAK,GACT,QAAQ,KAAK,SAAS,IAAI,QAAQ,IAAI,eAAe;gBACnD,CAAC,CAAC,GAAG,WAAW,mBAAmB,eAAe,MAAM;gBACxD,CAAC,CAAC,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAkB,cAAc,QAAQ,CAAC;YAC1E,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,2BAA2B;gBACnC,MAAM,EAAE,SAAS,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,qBAAqB,KAAK,EAAE;gBACnE,KAAK,EAAE,SAAS;gBAChB,KAAK;gBACL,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,QAAQ,EAAE,IAAI,CAAC,IAAI;aACpB,CAAC;QACJ,CAAC;QACD,IAAI,QAAQ,IAAI,cAAc,EAAE,CAAC;YAC/B,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EACJ,SAAS,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,cAAc,QAAQ,kBAAkB;oBACvE,oBAAoB,cAAc,IAAI;gBACxC,KAAK,EAAE,MAAM;gBACb,KAAK;gBACL,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,QAAQ,EAAE,IAAI,CAAC,IAAI;aACpB,CAAC;QACJ,CAAC;QACD,OAAO;YACL,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,IAAI;YACX,KAAK;YACL,MAAM,EAAE,IAAI,CAAC,EAAE;YACf,QAAQ,EAAE,IAAI,CAAC,IAAI;SACpB,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACK,MAAM,CAAC,KAAsB;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5D,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO;QACxC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,qBAAqB;YAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QAExE,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAE3C,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC;gBACH,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;oBACpB,EAAE,EAAE,wBAAwB,GAAG,EAAE;oBACjC,IAAI,EAAE,sBAAsB;oBAC5B,SAAS,EAAE,GAAG,CAAC,WAAW,EAAE;oBAC5B,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,QAAQ,EAAE,EAAE;oBACZ,UAAU,EAAE,EAAE;oBACd,WAAW,EAAE,EAAE;oBACf,aAAa,EAAE,IAAI;oBACnB,QAAQ,EAAE,KAAK,CAAC,KAAK;oBACrB,YAAY,EAAE,YAAY;iBAC3B,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oCAAoC,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACtF,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,IAAI,CAAC;gBACH,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;oBACxB,OAAO;oBACP,cAAc,EAAE,sBAAsB;oBACtC,MAAM,EAAE,eAAe,CAAC,YAAY;oBACpC,aAAa,EAAE,yBAAyB;oBACxC,cAAc,EAAE;wBACd,MAAM,EAAE,KAAK,CAAC,MAAM;wBACpB,KAAK,EAAE,KAAK,CAAC,KAAK;wBAClB,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW;wBACpC,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,YAAY;qBACvC;iBACF,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qCAAqC,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACvF,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IAC7F,CAAC;IAED,8BAA8B;IACtB,cAAc,CAAC,KAAsB;QAC3C,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QACtB,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAI,CAAC,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,eAAe,kBAAkB,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC;QACpF,CAAC;QACD,IAAI,CAAC,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,cAAc,gBAAgB,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;QAC7F,CAAC;QACD,MAAM,KAAK,GACT,KAAK,CAAC,KAAK,KAAK,SAAS;YACvB,CAAC,CAAC,uGAAuG;YACzG,CAAC,CAAC,gCAAgC,CAAC;QACvC,OAAO,GAAG,sBAAsB,UAAU,KAAK,CAAC,QAAQ,MAAM,KAAK,CAAC,MAAM,KAAK,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAC7G,CAAC"}
|
|
1
|
+
{"version":3,"file":"team-budget-gate.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/budget/team-budget-gate.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Which local process is on the other end of a TCP connection, and does it
|
|
3
|
+
* belong to an agent? (#999, specs/2026-10-03-owner-auth.md §4)
|
|
4
|
+
*
|
|
5
|
+
* Agents run as the owner's OS user, so they can read `~/.crewly/api-token`
|
|
6
|
+
* and could ask for a dashboard session over loopback. File permissions
|
|
7
|
+
* cannot stop that. What does distinguish an agent is how it was started:
|
|
8
|
+
* every agent process descends from this backend (PTY shells, crewly-agent
|
|
9
|
+
* children, Codex daemons started from a PTY), runs on an agent PTY's
|
|
10
|
+
* terminal, or carries an agent's environment. The owner's browser, terminal,
|
|
11
|
+
* Vite dev server and Electron app have none of these.
|
|
12
|
+
*
|
|
13
|
+
* For a connection from this host, this service finds the client process
|
|
14
|
+
* (`lsof`, or `ss` on Linux) and checks those signals against one `ps`
|
|
15
|
+
* snapshot (the environment signal is Linux-only: macOS does not expose
|
|
16
|
+
* another process's environment). A lookup that cannot run (tool missing)
|
|
17
|
+
* or times out answers `unknown`, and the caller fails open with a warning
|
|
18
|
+
* (residual risk 3 in the spec). A lookup that ran but found no client
|
|
19
|
+
* process — it exited first, which an agent can arrange by writing the
|
|
20
|
+
* request over a raw socket — answers `gone`, and the caller fails CLOSED.
|
|
21
|
+
*
|
|
22
|
+
* A determined process can still shed all three signals (double-fork,
|
|
23
|
+
* `setsid`, `env -i`). That is the same-OS-user limit the spec documents.
|
|
24
|
+
*
|
|
25
|
+
* @module services/core/peer-process.service
|
|
26
|
+
*/
|
|
27
|
+
import * as os from 'os';
|
|
28
|
+
/** One row of the process table. */
|
|
29
|
+
export interface PeerProcessEntry {
|
|
30
|
+
ppid: number;
|
|
31
|
+
/** Controlling terminal (`??` / `?` when none) */
|
|
32
|
+
tty: string;
|
|
33
|
+
}
|
|
34
|
+
/** The verdict on a connection's client process. */
|
|
35
|
+
export type PeerVerdict = {
|
|
36
|
+
kind: 'remote';
|
|
37
|
+
} | {
|
|
38
|
+
kind: 'self';
|
|
39
|
+
} | {
|
|
40
|
+
kind: 'agent';
|
|
41
|
+
pid: number;
|
|
42
|
+
signal: 'ancestry' | 'tty' | 'env';
|
|
43
|
+
session: string | null;
|
|
44
|
+
} | {
|
|
45
|
+
kind: 'not-agent';
|
|
46
|
+
pid: number;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* The lookup ran but the client process is not there (it exited before it
|
|
50
|
+
* could be looked up, or no socket matched). Fails CLOSED: an agent can
|
|
51
|
+
* write a request over a raw socket and exit at once (#1010 review).
|
|
52
|
+
*/
|
|
53
|
+
| {
|
|
54
|
+
kind: 'gone';
|
|
55
|
+
reason: string;
|
|
56
|
+
}
|
|
57
|
+
/** The lookup could not run: the tool is missing or it timed out. Fails open. */
|
|
58
|
+
| {
|
|
59
|
+
kind: 'unknown';
|
|
60
|
+
reason: string;
|
|
61
|
+
};
|
|
62
|
+
/** The parts of a socket the lookup needs. */
|
|
63
|
+
export interface PeerSocketLike {
|
|
64
|
+
remoteAddress?: string;
|
|
65
|
+
remotePort?: number;
|
|
66
|
+
localPort?: number;
|
|
67
|
+
}
|
|
68
|
+
/** Injectable collaborators (tests). */
|
|
69
|
+
export interface PeerProcessDeps {
|
|
70
|
+
/** Pid of the client end of `clientPort → serverPort`, or null */
|
|
71
|
+
findPeerPid?: (clientPort: number, serverPort: number) => Promise<number | null>;
|
|
72
|
+
/** pid → {ppid, tty} for every process */
|
|
73
|
+
readTable?: () => Promise<Map<number, PeerProcessEntry>>;
|
|
74
|
+
/** The environment of a process, or null when unreadable */
|
|
75
|
+
readEnv?: (pid: number) => Promise<Record<string, string> | null>;
|
|
76
|
+
/** PTY shell pid → session name for the live agent sessions */
|
|
77
|
+
listSessionPids?: () => Map<number, string>;
|
|
78
|
+
/** This backend's pid */
|
|
79
|
+
selfPid?: number;
|
|
80
|
+
/** Whether an address belongs to this host */
|
|
81
|
+
isHostAddress?: (address: string) => boolean;
|
|
82
|
+
/** Lookup budget */
|
|
83
|
+
timeoutMs?: number;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Whether an address belongs to this host: loopback, or any of its own
|
|
87
|
+
* interface addresses (an agent can connect to the machine's LAN IP too).
|
|
88
|
+
*
|
|
89
|
+
* @param address - Remote address of a connection
|
|
90
|
+
* @param interfaces - `os.networkInterfaces()` (tests)
|
|
91
|
+
* @returns True for a connection from this machine
|
|
92
|
+
*/
|
|
93
|
+
export declare function isHostAddress(address: string, interfaces?: NodeJS.Dict<os.NetworkInterfaceInfo[]>): boolean;
|
|
94
|
+
/**
|
|
95
|
+
* Parse `lsof -nP -iTCP:<port> -Fpn` output: the pid whose socket's LOCAL
|
|
96
|
+
* end is `clientPort` and remote end is `serverPort`.
|
|
97
|
+
*
|
|
98
|
+
* @param output - lsof field output (`p<pid>` / `n<a>:<p>-><b>:<q>` lines)
|
|
99
|
+
* @param clientPort - The client's ephemeral port
|
|
100
|
+
* @param serverPort - This backend's port
|
|
101
|
+
* @returns The client pid, or null
|
|
102
|
+
*/
|
|
103
|
+
export declare function parseLsofPeer(output: string, clientPort: number, serverPort: number): number | null;
|
|
104
|
+
/**
|
|
105
|
+
* Parse `ss -Htnp '( sport = :<clientPort> )'` output: the first pid listed
|
|
106
|
+
* for a connection to `serverPort`.
|
|
107
|
+
*
|
|
108
|
+
* @param output - ss output
|
|
109
|
+
* @param serverPort - This backend's port
|
|
110
|
+
* @returns The client pid, or null
|
|
111
|
+
*/
|
|
112
|
+
export declare function parseSsPeer(output: string, serverPort: number): number | null;
|
|
113
|
+
/**
|
|
114
|
+
* Parse `ps -Ao pid=,ppid=,tty=` output.
|
|
115
|
+
*
|
|
116
|
+
* @param output - ps output
|
|
117
|
+
* @returns pid → entry
|
|
118
|
+
*/
|
|
119
|
+
export declare function parsePsTable(output: string): Map<number, PeerProcessEntry>;
|
|
120
|
+
/**
|
|
121
|
+
* Decide whether a process is an agent's, from a process-table snapshot.
|
|
122
|
+
*
|
|
123
|
+
* @param pid - The client process
|
|
124
|
+
* @param table - pid → {ppid, tty}
|
|
125
|
+
* @param selfPid - This backend's pid
|
|
126
|
+
* @param sessionPids - PTY shell pid → session name
|
|
127
|
+
* @returns `agent` with the signal that matched, or null
|
|
128
|
+
*/
|
|
129
|
+
export declare function agentSignalFromTable(pid: number, table: ReadonlyMap<number, PeerProcessEntry>, selfPid: number, sessionPids: ReadonlyMap<number, string>): {
|
|
130
|
+
signal: 'ancestry' | 'tty';
|
|
131
|
+
session: string | null;
|
|
132
|
+
} | null;
|
|
133
|
+
/**
|
|
134
|
+
* Whether a lookup error means "could not look" (fail open) rather than
|
|
135
|
+
* "looked and it is not there" (fail closed): the tool is missing, or it
|
|
136
|
+
* was killed for running past its budget.
|
|
137
|
+
*
|
|
138
|
+
* @param error - The error
|
|
139
|
+
* @returns True for a missing tool or a timeout
|
|
140
|
+
*/
|
|
141
|
+
export declare function isLookupUnavailable(error: unknown): boolean;
|
|
142
|
+
/**
|
|
143
|
+
* Classifies the client process of local connections, once per socket.
|
|
144
|
+
*/
|
|
145
|
+
export declare class PeerProcessService {
|
|
146
|
+
private readonly cache;
|
|
147
|
+
private readonly deps;
|
|
148
|
+
/**
|
|
149
|
+
* @param deps - Injectable collaborators
|
|
150
|
+
*/
|
|
151
|
+
constructor(deps?: PeerProcessDeps);
|
|
152
|
+
/**
|
|
153
|
+
* Classify the client of a connection. Cached per socket object (a
|
|
154
|
+
* keep-alive dashboard or CLI pays for one lookup).
|
|
155
|
+
*
|
|
156
|
+
* @param socket - The request's socket
|
|
157
|
+
* @returns The verdict
|
|
158
|
+
*/
|
|
159
|
+
classify(socket: PeerSocketLike | null | undefined): Promise<PeerVerdict>;
|
|
160
|
+
/**
|
|
161
|
+
* Uncached classification.
|
|
162
|
+
*
|
|
163
|
+
* @param socket - The request's socket
|
|
164
|
+
* @returns The verdict
|
|
165
|
+
*/
|
|
166
|
+
private lookup;
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=peer-process.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"peer-process.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/core/peer-process.service.ts"],"names":[],"mappings":"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"}
|