@agentlensai/server 0.8.0 → 0.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 (103) hide show
  1. package/dist/db/anonymous-id-manager.d.ts +44 -0
  2. package/dist/db/anonymous-id-manager.d.ts.map +1 -0
  3. package/dist/db/anonymous-id-manager.js +90 -0
  4. package/dist/db/anonymous-id-manager.js.map +1 -0
  5. package/dist/db/capability-store.d.ts +78 -0
  6. package/dist/db/capability-store.d.ts.map +1 -0
  7. package/dist/db/capability-store.js +201 -0
  8. package/dist/db/capability-store.js.map +1 -0
  9. package/dist/db/migrate.d.ts.map +1 -1
  10. package/dist/db/migrate.js +136 -0
  11. package/dist/db/migrate.js.map +1 -1
  12. package/dist/db/schema.sqlite.d.ts +1663 -2
  13. package/dist/db/schema.sqlite.d.ts.map +1 -1
  14. package/dist/db/schema.sqlite.js +135 -1
  15. package/dist/db/schema.sqlite.js.map +1 -1
  16. package/dist/index.d.ts +5 -0
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +32 -0
  19. package/dist/index.js.map +1 -1
  20. package/dist/lib/redaction/human-review-layer.d.ts +37 -0
  21. package/dist/lib/redaction/human-review-layer.d.ts.map +1 -0
  22. package/dist/lib/redaction/human-review-layer.js +62 -0
  23. package/dist/lib/redaction/human-review-layer.js.map +1 -0
  24. package/dist/lib/redaction/index.d.ts +12 -0
  25. package/dist/lib/redaction/index.d.ts.map +1 -0
  26. package/dist/lib/redaction/index.js +12 -0
  27. package/dist/lib/redaction/index.js.map +1 -0
  28. package/dist/lib/redaction/pii-detection-layer.d.ts +30 -0
  29. package/dist/lib/redaction/pii-detection-layer.d.ts.map +1 -0
  30. package/dist/lib/redaction/pii-detection-layer.js +183 -0
  31. package/dist/lib/redaction/pii-detection-layer.js.map +1 -0
  32. package/dist/lib/redaction/pipeline.d.ts +26 -0
  33. package/dist/lib/redaction/pipeline.d.ts.map +1 -0
  34. package/dist/lib/redaction/pipeline.js +91 -0
  35. package/dist/lib/redaction/pipeline.js.map +1 -0
  36. package/dist/lib/redaction/secret-detection-layer.d.ts +10 -0
  37. package/dist/lib/redaction/secret-detection-layer.d.ts.map +1 -0
  38. package/dist/lib/redaction/secret-detection-layer.js +79 -0
  39. package/dist/lib/redaction/secret-detection-layer.js.map +1 -0
  40. package/dist/lib/redaction/secret-patterns.d.ts +29 -0
  41. package/dist/lib/redaction/secret-patterns.d.ts.map +1 -0
  42. package/dist/lib/redaction/secret-patterns.js +133 -0
  43. package/dist/lib/redaction/secret-patterns.js.map +1 -0
  44. package/dist/lib/redaction/semantic-denylist-layer.d.ts +10 -0
  45. package/dist/lib/redaction/semantic-denylist-layer.d.ts.map +1 -0
  46. package/dist/lib/redaction/semantic-denylist-layer.js +64 -0
  47. package/dist/lib/redaction/semantic-denylist-layer.js.map +1 -0
  48. package/dist/lib/redaction/tenant-deidentification-layer.d.ts +10 -0
  49. package/dist/lib/redaction/tenant-deidentification-layer.d.ts.map +1 -0
  50. package/dist/lib/redaction/tenant-deidentification-layer.js +64 -0
  51. package/dist/lib/redaction/tenant-deidentification-layer.js.map +1 -0
  52. package/dist/lib/redaction/url-path-scrubbing-layer.d.ts +14 -0
  53. package/dist/lib/redaction/url-path-scrubbing-layer.d.ts.map +1 -0
  54. package/dist/lib/redaction/url-path-scrubbing-layer.js +156 -0
  55. package/dist/lib/redaction/url-path-scrubbing-layer.js.map +1 -0
  56. package/dist/routes/agents.d.ts.map +1 -1
  57. package/dist/routes/agents.js +3 -9
  58. package/dist/routes/agents.js.map +1 -1
  59. package/dist/routes/audit.d.ts +15 -0
  60. package/dist/routes/audit.d.ts.map +1 -0
  61. package/dist/routes/audit.js +177 -0
  62. package/dist/routes/audit.js.map +1 -0
  63. package/dist/routes/capabilities.d.ts +15 -0
  64. package/dist/routes/capabilities.d.ts.map +1 -0
  65. package/dist/routes/capabilities.js +86 -0
  66. package/dist/routes/capabilities.js.map +1 -0
  67. package/dist/routes/community.d.ts +24 -0
  68. package/dist/routes/community.d.ts.map +1 -0
  69. package/dist/routes/community.js +190 -0
  70. package/dist/routes/community.js.map +1 -0
  71. package/dist/routes/delegation.d.ts +20 -0
  72. package/dist/routes/delegation.d.ts.map +1 -0
  73. package/dist/routes/delegation.js +108 -0
  74. package/dist/routes/delegation.js.map +1 -0
  75. package/dist/routes/discovery.d.ts +19 -0
  76. package/dist/routes/discovery.d.ts.map +1 -0
  77. package/dist/routes/discovery.js +96 -0
  78. package/dist/routes/discovery.js.map +1 -0
  79. package/dist/routes/redaction-test.d.ts +14 -0
  80. package/dist/routes/redaction-test.d.ts.map +1 -0
  81. package/dist/routes/redaction-test.js +33 -0
  82. package/dist/routes/redaction-test.js.map +1 -0
  83. package/dist/routes/trust.d.ts +16 -0
  84. package/dist/routes/trust.d.ts.map +1 -0
  85. package/dist/routes/trust.js +23 -0
  86. package/dist/routes/trust.js.map +1 -0
  87. package/dist/services/community-service.d.ts +277 -0
  88. package/dist/services/community-service.d.ts.map +1 -0
  89. package/dist/services/community-service.js +785 -0
  90. package/dist/services/community-service.js.map +1 -0
  91. package/dist/services/delegation-service.d.ts +149 -0
  92. package/dist/services/delegation-service.d.ts.map +1 -0
  93. package/dist/services/delegation-service.js +605 -0
  94. package/dist/services/delegation-service.js.map +1 -0
  95. package/dist/services/discovery-service.d.ts +39 -0
  96. package/dist/services/discovery-service.d.ts.map +1 -0
  97. package/dist/services/discovery-service.js +186 -0
  98. package/dist/services/discovery-service.js.map +1 -0
  99. package/dist/services/trust-service.d.ts +59 -0
  100. package/dist/services/trust-service.d.ts.map +1 -0
  101. package/dist/services/trust-service.js +139 -0
  102. package/dist/services/trust-service.js.map +1 -0
  103. package/package.json +2 -2
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Redaction Test Endpoint (Story 2.4)
3
+ *
4
+ * POST /api/community/redaction/test
5
+ * Accepts raw content, runs it through the redaction pipeline,
6
+ * and returns the redacted output WITHOUT sharing.
7
+ * For testing/debugging purposes only.
8
+ */
9
+ import { Hono } from 'hono';
10
+ import { RedactionPipeline } from '../lib/redaction/pipeline.js';
11
+ import { createRawLessonContent } from '@agentlensai/core';
12
+ export function redactionTestRoutes() {
13
+ const app = new Hono();
14
+ const pipeline = new RedactionPipeline();
15
+ app.post('/test', async (c) => {
16
+ const body = await c.req.json();
17
+ if (!body.content) {
18
+ return c.json({ error: 'content is required' }, 400);
19
+ }
20
+ const raw = createRawLessonContent(body.title ?? 'Test', body.content, body.context ?? {});
21
+ const redactionCtx = {
22
+ tenantId: body.tenantId ?? 'test',
23
+ agentId: body.agentId,
24
+ category: 'general',
25
+ denyListPatterns: body.denyListPatterns ?? [],
26
+ knownTenantTerms: body.knownTenantTerms ?? [],
27
+ };
28
+ const result = await pipeline.process(raw, redactionCtx);
29
+ return c.json(result);
30
+ });
31
+ return app;
32
+ }
33
+ //# sourceMappingURL=redaction-test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redaction-test.js","sourceRoot":"","sources":["../../src/routes/redaction-test.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAG3D,MAAM,UAAU,mBAAmB;IACjC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAgC,CAAC;IACrD,MAAM,QAAQ,GAAG,IAAI,iBAAiB,EAAE,CAAC;IAEzC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAQzB,CAAC;QAEL,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,qBAAqB,EAAE,EAAE,GAAG,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,GAAG,GAAG,sBAAsB,CAChC,IAAI,CAAC,KAAK,IAAI,MAAM,EACpB,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,OAAO,IAAI,EAAE,CACnB,CAAC;QAEF,MAAM,YAAY,GAAqB;YACrC,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,MAAM;YACjC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,SAAS;YACnB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,IAAI,EAAE;YAC7C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,IAAI,EAAE;SAC9C,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QAEzD,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Trust REST API (Story 6.3)
3
+ *
4
+ * GET /api/agents/:id/trust — get trust score for an agent
5
+ */
6
+ import { Hono } from 'hono';
7
+ import type { AuthVariables } from '../middleware/auth.js';
8
+ import type { SqliteDb } from '../db/index.js';
9
+ import { TrustService } from '../services/trust-service.js';
10
+ export declare function trustRoutes(db: SqliteDb): {
11
+ app: Hono<{
12
+ Variables: AuthVariables;
13
+ }, import("hono/types").BlankSchema, "/">;
14
+ service: TrustService;
15
+ };
16
+ //# sourceMappingURL=trust.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trust.d.ts","sourceRoot":"","sources":["../../src/routes/trust.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D,wBAAgB,WAAW,CAAC,EAAE,EAAE,QAAQ;;mBACJ,aAAa;;;EAiBhD"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Trust REST API (Story 6.3)
3
+ *
4
+ * GET /api/agents/:id/trust — get trust score for an agent
5
+ */
6
+ import { Hono } from 'hono';
7
+ import { TrustService } from '../services/trust-service.js';
8
+ export function trustRoutes(db) {
9
+ const app = new Hono();
10
+ const service = new TrustService(db);
11
+ function getTenantId(c) {
12
+ return c.get('apiKey')?.tenantId ?? 'default';
13
+ }
14
+ // GET /:id/trust — get trust score
15
+ app.get('/:id/trust', async (c) => {
16
+ const tenantId = getTenantId(c);
17
+ const agentId = c.req.param('id');
18
+ const score = service.getTrustScore(tenantId, agentId);
19
+ return c.json({ trust: score });
20
+ });
21
+ return { app, service };
22
+ }
23
+ //# sourceMappingURL=trust.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trust.js","sourceRoot":"","sources":["../../src/routes/trust.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D,MAAM,UAAU,WAAW,CAAC,EAAY;IACtC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAgC,CAAC;IACrD,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,EAAE,CAAC,CAAC;IAErC,SAAS,WAAW,CAAC,CAA4D;QAC/E,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,QAAQ,IAAI,SAAS,CAAC;IAChD,CAAC;IAED,mCAAmC;IACnC,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAChC,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAElC,MAAM,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACvD,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;AAC1B,CAAC"}
@@ -0,0 +1,277 @@
1
+ /**
2
+ * Community Sharing Service (Stories 4.1–4.3)
3
+ *
4
+ * Handles lesson sharing, search, configuration, and deny-list management.
5
+ * Enforces hierarchical toggles: tenant OFF overrides agent ON.
6
+ * Rate limiting: 50/hr per tenant. Audit log on every operation.
7
+ */
8
+ import type { SqliteDb } from '../db/index.js';
9
+ import { type RedactionPipelineConfig } from '../lib/redaction/pipeline.js';
10
+ import type { SharingConfig, AgentSharingConfig, CommunitySearchResult, SharingAuditEvent, RedactionFinding } from '@agentlensai/core';
11
+ export interface PoolTransport {
12
+ share(data: {
13
+ anonymousContributorId: string;
14
+ category: string;
15
+ title: string;
16
+ content: string;
17
+ embedding: number[];
18
+ qualitySignals?: Record<string, unknown>;
19
+ redactionApplied?: boolean;
20
+ redactionFindingsCount?: number;
21
+ }): Promise<{
22
+ id: string;
23
+ }>;
24
+ /** Register a purge token with the pool so purge can be validated */
25
+ registerPurgeToken?(data: {
26
+ anonymousContributorId: string;
27
+ token: string;
28
+ }): Promise<void>;
29
+ search(data: {
30
+ embedding: number[];
31
+ category?: string;
32
+ minReputation?: number;
33
+ limit?: number;
34
+ }): Promise<{
35
+ results: Array<{
36
+ lesson: {
37
+ id: string;
38
+ category: string;
39
+ title: string;
40
+ content: string;
41
+ reputationScore: number;
42
+ qualitySignals: Record<string, unknown>;
43
+ };
44
+ similarity: number;
45
+ }>;
46
+ }>;
47
+ purge(data: {
48
+ anonymousContributorId: string;
49
+ token: string;
50
+ }): Promise<{
51
+ deleted: number;
52
+ }>;
53
+ count(contributorId: string): Promise<{
54
+ count: number;
55
+ }>;
56
+ rate(data: {
57
+ lessonId: string;
58
+ voterAnonymousId: string;
59
+ delta: number;
60
+ reason: string;
61
+ }): Promise<{
62
+ reputationScore: number;
63
+ }>;
64
+ flag(data: {
65
+ lessonId: string;
66
+ reporterAnonymousId: string;
67
+ reason: string;
68
+ }): Promise<{
69
+ flagCount: number;
70
+ }>;
71
+ getModerationQueue(): Promise<Array<{
72
+ lesson: {
73
+ id: string;
74
+ category: string;
75
+ title: string;
76
+ content: string;
77
+ reputationScore: number;
78
+ flagCount: number;
79
+ hidden: boolean;
80
+ };
81
+ }>>;
82
+ moderateLesson(lessonId: string, action: 'approve' | 'remove'): Promise<{
83
+ success: boolean;
84
+ }>;
85
+ }
86
+ /** In-memory transport for testing */
87
+ export declare class LocalCommunityPoolTransport implements PoolTransport {
88
+ readonly shared: Array<{
89
+ id: string;
90
+ anonymousContributorId: string;
91
+ category: string;
92
+ title: string;
93
+ content: string;
94
+ embedding: number[];
95
+ reputationScore: number;
96
+ flagCount: number;
97
+ hidden: boolean;
98
+ qualitySignals?: Record<string, unknown>;
99
+ redactionApplied?: boolean;
100
+ redactionFindingsCount?: number;
101
+ }>;
102
+ private purgeTokens;
103
+ private reputationEvents;
104
+ private flags;
105
+ share(data: Parameters<PoolTransport['share']>[0]): Promise<{
106
+ id: string;
107
+ }>;
108
+ search(data: Parameters<PoolTransport['search']>[0]): Promise<ReturnType<PoolTransport['search']> extends Promise<infer R> ? R : never>;
109
+ registerPurgeToken(data: {
110
+ anonymousContributorId: string;
111
+ token: string;
112
+ }): Promise<void>;
113
+ purge(data: {
114
+ anonymousContributorId: string;
115
+ token: string;
116
+ }): Promise<{
117
+ deleted: number;
118
+ }>;
119
+ count(contributorId: string): Promise<{
120
+ count: number;
121
+ }>;
122
+ rate(data: {
123
+ lessonId: string;
124
+ voterAnonymousId: string;
125
+ delta: number;
126
+ reason: string;
127
+ }): Promise<{
128
+ reputationScore: number;
129
+ }>;
130
+ flag(data: {
131
+ lessonId: string;
132
+ reporterAnonymousId: string;
133
+ reason: string;
134
+ }): Promise<{
135
+ flagCount: number;
136
+ }>;
137
+ getModerationQueue(): Promise<Array<{
138
+ lesson: {
139
+ id: string;
140
+ category: string;
141
+ title: string;
142
+ content: string;
143
+ reputationScore: number;
144
+ flagCount: number;
145
+ hidden: boolean;
146
+ };
147
+ }>>;
148
+ moderateLesson(lessonId: string, action: 'approve' | 'remove'): Promise<{
149
+ success: boolean;
150
+ }>;
151
+ }
152
+ /** Compute a lightweight hash-based embedding for text */
153
+ export declare function computeSimpleEmbedding(text: string, dimensions?: number): number[];
154
+ declare class SharingRateLimiter {
155
+ private buckets;
156
+ check(key: string, limit?: number): boolean;
157
+ reset(): void;
158
+ }
159
+ export interface DenyListRule {
160
+ id: string;
161
+ tenantId: string;
162
+ pattern: string;
163
+ isRegex: boolean;
164
+ reason: string;
165
+ createdAt: string;
166
+ }
167
+ export type ShareResult = {
168
+ status: 'shared';
169
+ anonymousLessonId: string;
170
+ redactionFindings: RedactionFinding[];
171
+ } | {
172
+ status: 'blocked';
173
+ reason: string;
174
+ } | {
175
+ status: 'pending_review';
176
+ reviewId: string;
177
+ } | {
178
+ status: 'error';
179
+ error: string;
180
+ } | {
181
+ status: 'rate_limited';
182
+ } | {
183
+ status: 'disabled';
184
+ reason: string;
185
+ };
186
+ export interface CommunityServiceOptions {
187
+ transport: PoolTransport;
188
+ redactionConfig?: RedactionPipelineConfig;
189
+ now?: () => Date;
190
+ }
191
+ export declare class CommunityService {
192
+ private readonly db;
193
+ private readonly transport;
194
+ private readonly anonIdManager;
195
+ private readonly lessonStore;
196
+ private readonly redactionPipeline;
197
+ readonly rateLimiter: SharingRateLimiter;
198
+ private readonly now;
199
+ constructor(db: SqliteDb, options: CommunityServiceOptions);
200
+ getSharingConfig(tenantId: string): SharingConfig;
201
+ updateSharingConfig(tenantId: string, updates: Partial<Omit<SharingConfig, 'tenantId' | 'updatedAt'>>): SharingConfig;
202
+ getAgentSharingConfig(tenantId: string, agentId: string): AgentSharingConfig;
203
+ updateAgentSharingConfig(tenantId: string, agentId: string, updates: Partial<Pick<AgentSharingConfig, 'enabled' | 'categories'>>): AgentSharingConfig;
204
+ getDenyList(tenantId: string): DenyListRule[];
205
+ addDenyListRule(tenantId: string, pattern: string, isRegex: boolean, reason: string): DenyListRule;
206
+ deleteDenyListRule(tenantId: string, ruleId: string): boolean;
207
+ share(tenantId: string, lessonId: string, initiatedBy?: string): Promise<ShareResult>;
208
+ /**
209
+ * Ensure a purge token is registered with the pool for the given contributor ID.
210
+ * Creates and stores the token if one doesn't exist yet.
211
+ */
212
+ private ensurePurgeTokenRegistered;
213
+ search(tenantId: string, query: string, options?: {
214
+ category?: string;
215
+ minReputation?: number;
216
+ limit?: number;
217
+ }, initiatedBy?: string): Promise<CommunitySearchResult>;
218
+ purge(tenantId: string, confirmation: string, initiatedBy?: string): Promise<{
219
+ status: 'purged';
220
+ deleted: number;
221
+ } | {
222
+ status: 'error';
223
+ error: string;
224
+ }>;
225
+ verifyPurge(tenantId: string): Promise<{
226
+ count: number;
227
+ }>;
228
+ rate(tenantId: string, lessonId: string, delta: number, reason: string, initiatedBy?: string): Promise<{
229
+ status: 'rated';
230
+ reputationScore: number;
231
+ } | {
232
+ status: 'error';
233
+ error: string;
234
+ }>;
235
+ flag(tenantId: string, lessonId: string, reason: string, initiatedBy?: string): Promise<{
236
+ status: 'flagged';
237
+ flagCount: number;
238
+ } | {
239
+ status: 'error';
240
+ error: string;
241
+ }>;
242
+ getModerationQueue(): Promise<Array<{
243
+ lesson: {
244
+ id: string;
245
+ category: string;
246
+ title: string;
247
+ content: string;
248
+ reputationScore: number;
249
+ flagCount: number;
250
+ hidden: boolean;
251
+ };
252
+ }>>;
253
+ moderateLesson(lessonId: string, action: 'approve' | 'remove'): Promise<{
254
+ success: boolean;
255
+ }>;
256
+ getReviewQueue(tenantId: string): Array<{
257
+ id: string;
258
+ lessonId: string;
259
+ originalTitle: string;
260
+ redactedTitle: string;
261
+ status: string;
262
+ createdAt: string;
263
+ expiresAt: string;
264
+ }>;
265
+ approveReviewItem(tenantId: string, reviewId: string, reviewedBy: string): Promise<{
266
+ status: 'approved' | 'error';
267
+ error?: string;
268
+ }>;
269
+ rejectReviewItem(tenantId: string, reviewId: string, reviewedBy: string): Promise<{
270
+ status: 'rejected' | 'error';
271
+ error?: string;
272
+ }>;
273
+ private writeAuditLog;
274
+ getAuditLog(tenantId: string, limit?: number): SharingAuditEvent[];
275
+ }
276
+ export {};
277
+ //# sourceMappingURL=community-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"community-service.d.ts","sourceRoot":"","sources":["../../src/services/community-service.ts"],"names":[],"mappings":"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"}