@apart-tech/intelligence-core 1.11.4 → 1.11.6

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 (152) hide show
  1. package/dist/auth/ability.d.ts +148 -0
  2. package/dist/auth/ability.d.ts.map +1 -0
  3. package/dist/auth/ability.js +291 -0
  4. package/dist/auth/ability.js.map +1 -0
  5. package/dist/auth/ability.test.d.ts +2 -0
  6. package/dist/auth/ability.test.d.ts.map +1 -0
  7. package/dist/auth/ability.test.js +693 -0
  8. package/dist/auth/ability.test.js.map +1 -0
  9. package/dist/auth/delegation-jwt.d.ts +167 -0
  10. package/dist/auth/delegation-jwt.d.ts.map +1 -0
  11. package/dist/auth/delegation-jwt.js +237 -0
  12. package/dist/auth/delegation-jwt.js.map +1 -0
  13. package/dist/auth/delegation-jwt.test.d.ts +2 -0
  14. package/dist/auth/delegation-jwt.test.d.ts.map +1 -0
  15. package/dist/auth/delegation-jwt.test.js +283 -0
  16. package/dist/auth/delegation-jwt.test.js.map +1 -0
  17. package/dist/auth/principal.d.ts +94 -0
  18. package/dist/auth/principal.d.ts.map +1 -0
  19. package/dist/auth/principal.js +33 -0
  20. package/dist/auth/principal.js.map +1 -0
  21. package/dist/config/config.test.d.ts +2 -0
  22. package/dist/config/config.test.d.ts.map +1 -0
  23. package/dist/config/config.test.js +57 -0
  24. package/dist/config/config.test.js.map +1 -0
  25. package/dist/config/index.d.ts.map +1 -1
  26. package/dist/config/index.js +22 -1
  27. package/dist/config/index.js.map +1 -1
  28. package/dist/db/tenant.d.ts.map +1 -1
  29. package/dist/db/tenant.js +8 -0
  30. package/dist/db/tenant.js.map +1 -1
  31. package/dist/index.d.ts +19 -1
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +10 -0
  34. package/dist/index.js.map +1 -1
  35. package/dist/lib/__tests__/jwt.test.d.ts +2 -0
  36. package/dist/lib/__tests__/jwt.test.d.ts.map +1 -0
  37. package/dist/lib/__tests__/jwt.test.js +97 -0
  38. package/dist/lib/__tests__/jwt.test.js.map +1 -0
  39. package/dist/lib/jwt.d.ts +20 -0
  40. package/dist/lib/jwt.d.ts.map +1 -1
  41. package/dist/lib/jwt.js +56 -3
  42. package/dist/lib/jwt.js.map +1 -1
  43. package/dist/services/__tests__/chunk-service.test.d.ts +2 -0
  44. package/dist/services/__tests__/chunk-service.test.d.ts.map +1 -0
  45. package/dist/services/__tests__/chunk-service.test.js +111 -0
  46. package/dist/services/__tests__/chunk-service.test.js.map +1 -0
  47. package/dist/services/__tests__/chunker.test.d.ts +2 -0
  48. package/dist/services/__tests__/chunker.test.d.ts.map +1 -0
  49. package/dist/services/__tests__/chunker.test.js +113 -0
  50. package/dist/services/__tests__/chunker.test.js.map +1 -0
  51. package/dist/services/__tests__/delegation-cleanup-service.test.d.ts +2 -0
  52. package/dist/services/__tests__/delegation-cleanup-service.test.d.ts.map +1 -0
  53. package/dist/services/__tests__/delegation-cleanup-service.test.js +211 -0
  54. package/dist/services/__tests__/delegation-cleanup-service.test.js.map +1 -0
  55. package/dist/services/__tests__/node-service.test.d.ts +2 -0
  56. package/dist/services/__tests__/node-service.test.d.ts.map +1 -0
  57. package/dist/services/__tests__/node-service.test.js +207 -0
  58. package/dist/services/__tests__/node-service.test.js.map +1 -0
  59. package/dist/services/__tests__/pii-detector-service.test.js +51 -0
  60. package/dist/services/__tests__/pii-detector-service.test.js.map +1 -1
  61. package/dist/services/__tests__/pii-encryption-service.test.js +37 -0
  62. package/dist/services/__tests__/pii-encryption-service.test.js.map +1 -1
  63. package/dist/services/__tests__/search-service.test.d.ts +2 -0
  64. package/dist/services/__tests__/search-service.test.d.ts.map +1 -0
  65. package/dist/services/__tests__/search-service.test.js +163 -0
  66. package/dist/services/__tests__/search-service.test.js.map +1 -0
  67. package/dist/services/agent-run-service.d.ts +44 -7
  68. package/dist/services/agent-run-service.d.ts.map +1 -1
  69. package/dist/services/agent-run-service.js +14 -0
  70. package/dist/services/agent-run-service.js.map +1 -1
  71. package/dist/services/agent-schedule-service.d.ts +21 -0
  72. package/dist/services/agent-schedule-service.d.ts.map +1 -1
  73. package/dist/services/agent-schedule-service.js +12 -0
  74. package/dist/services/agent-schedule-service.js.map +1 -1
  75. package/dist/services/audit-event-service.d.ts +76 -0
  76. package/dist/services/audit-event-service.d.ts.map +1 -0
  77. package/dist/services/audit-event-service.js +48 -0
  78. package/dist/services/audit-event-service.js.map +1 -0
  79. package/dist/services/backfill-chunks.d.ts +30 -0
  80. package/dist/services/backfill-chunks.d.ts.map +1 -0
  81. package/dist/services/backfill-chunks.js +55 -0
  82. package/dist/services/backfill-chunks.js.map +1 -0
  83. package/dist/services/chunk-service.d.ts +45 -0
  84. package/dist/services/chunk-service.d.ts.map +1 -0
  85. package/dist/services/chunk-service.js +111 -0
  86. package/dist/services/chunk-service.js.map +1 -0
  87. package/dist/services/chunker.d.ts +32 -0
  88. package/dist/services/chunker.d.ts.map +1 -0
  89. package/dist/services/chunker.js +289 -0
  90. package/dist/services/chunker.js.map +1 -0
  91. package/dist/services/context-service.d.ts +3 -1
  92. package/dist/services/context-service.d.ts.map +1 -1
  93. package/dist/services/context-service.js +17 -1
  94. package/dist/services/context-service.js.map +1 -1
  95. package/dist/services/delegation-cleanup-service.d.ts +133 -0
  96. package/dist/services/delegation-cleanup-service.d.ts.map +1 -0
  97. package/dist/services/delegation-cleanup-service.js +111 -0
  98. package/dist/services/delegation-cleanup-service.js.map +1 -0
  99. package/dist/services/edge-service.d.ts.map +1 -1
  100. package/dist/services/edge-service.js +3 -0
  101. package/dist/services/edge-service.js.map +1 -1
  102. package/dist/services/node-service.d.ts +12 -1
  103. package/dist/services/node-service.d.ts.map +1 -1
  104. package/dist/services/node-service.js +54 -11
  105. package/dist/services/node-service.js.map +1 -1
  106. package/dist/services/org-agent-type-service.d.ts +15 -0
  107. package/dist/services/org-agent-type-service.d.ts.map +1 -1
  108. package/dist/services/org-agent-type-service.js +2 -0
  109. package/dist/services/org-agent-type-service.js.map +1 -1
  110. package/dist/services/pii-detector-service.d.ts +1 -0
  111. package/dist/services/pii-detector-service.d.ts.map +1 -1
  112. package/dist/services/pii-detector-service.js +95 -2
  113. package/dist/services/pii-detector-service.js.map +1 -1
  114. package/dist/services/pii-encryption-service.d.ts +10 -0
  115. package/dist/services/pii-encryption-service.d.ts.map +1 -1
  116. package/dist/services/pii-encryption-service.js +32 -0
  117. package/dist/services/pii-encryption-service.js.map +1 -1
  118. package/dist/services/search-service.d.ts +30 -1
  119. package/dist/services/search-service.d.ts.map +1 -1
  120. package/dist/services/search-service.js +262 -45
  121. package/dist/services/search-service.js.map +1 -1
  122. package/dist/services/tag-service.d.ts +78 -0
  123. package/dist/services/tag-service.d.ts.map +1 -0
  124. package/dist/services/tag-service.js +639 -0
  125. package/dist/services/tag-service.js.map +1 -0
  126. package/dist/services/tag-service.test.d.ts +2 -0
  127. package/dist/services/tag-service.test.d.ts.map +1 -0
  128. package/dist/services/tag-service.test.js +448 -0
  129. package/dist/services/tag-service.test.js.map +1 -0
  130. package/dist/services/usage-service.d.ts +48 -0
  131. package/dist/services/usage-service.d.ts.map +1 -0
  132. package/dist/services/usage-service.js +116 -0
  133. package/dist/services/usage-service.js.map +1 -0
  134. package/dist/services/user-service.d.ts.map +1 -1
  135. package/dist/services/user-service.js +24 -6
  136. package/dist/services/user-service.js.map +1 -1
  137. package/dist/services/user-service.test.d.ts +2 -0
  138. package/dist/services/user-service.test.d.ts.map +1 -0
  139. package/dist/services/user-service.test.js +86 -0
  140. package/dist/services/user-service.test.js.map +1 -0
  141. package/dist/services/workspace-service.d.ts +2 -0
  142. package/dist/services/workspace-service.d.ts.map +1 -1
  143. package/dist/services/workspace-service.js +7 -1
  144. package/dist/services/workspace-service.js.map +1 -1
  145. package/dist/types/index.d.ts +80 -2
  146. package/dist/types/index.d.ts.map +1 -1
  147. package/package.json +3 -2
  148. package/prisma/schema.prisma +335 -82
  149. package/dist/db/schema.d.ts +0 -507
  150. package/dist/db/schema.d.ts.map +0 -1
  151. package/dist/db/schema.js +0 -77
  152. package/dist/db/schema.js.map +0 -1
@@ -0,0 +1,133 @@
1
+ /**
2
+ * Revocation cleanup (Phase 1d).
3
+ *
4
+ * Phase 1d's revocation story is "the AgentRun row is the source of
5
+ * truth for whether a delegation token still works." The auth
6
+ * middleware checks `AgentRun.status` on every delegation-token
7
+ * verification — a status other than `pending` or `running` is a 401.
8
+ * That check is only effective if something eventually flips the
9
+ * status of revoked runs from `pending`/`running` to `cancelled`.
10
+ * This module is that something.
11
+ *
12
+ * Revocation semantics
13
+ * --------------------
14
+ *
15
+ * A run is revoked when the user who spawned it no longer has
16
+ * authority to act in the run's organization. In practice today,
17
+ * "authority" = "membership in the org", because that is the only
18
+ * structural signal the `users` and `memberships` tables carry. A
19
+ * future phase that adds a `users.deactivatedAt` column or a finer
20
+ * suspension mechanism will grow this signal; for Phase 1d,
21
+ * membership removal is both necessary and sufficient.
22
+ *
23
+ * The sweep cancels every `AgentRun` that satisfies:
24
+ * - `status IN ('pending', 'running')`
25
+ * - `invokedByUserId IS NOT NULL`
26
+ * - no `memberships` row for (invokedByUserId, organizationId)
27
+ *
28
+ * API-key-authored runs (where `invokedByUserId` is null) are
29
+ * ignored — they do not participate in the delegation flow.
30
+ *
31
+ * Why a sweep and not a hook
32
+ * --------------------------
33
+ *
34
+ * The obvious alternative is "on membership delete, cancel matching
35
+ * runs" — a database trigger or a Prisma extension. We do not do
36
+ * this because (a) a trigger scatters the revocation logic across
37
+ * the schema and the service layer, and (b) membership deletion is
38
+ * not the only revocation path — a future role downgrade or a
39
+ * push-based invalidation event should also feed into the same
40
+ * cleanup surface. A periodic sweep that interrogates current state
41
+ * is simpler, survives missed events, and is the pattern the repo
42
+ * already uses for session expiry at
43
+ * `packages/api/src/lib/session-store.ts:55`.
44
+ *
45
+ * Why fire-and-forget audit writes
46
+ * --------------------------------
47
+ *
48
+ * Every cancellation writes a `delegation.revoke` audit event via
49
+ * `AuditEventService.record`, which is itself fire-and-forget. A
50
+ * missed audit row is a visibility problem, not a correctness
51
+ * problem — the cancellation itself (the state transition on the
52
+ * AgentRun row) is what enforces revocation.
53
+ */
54
+ /**
55
+ * Narrow DB surface required by `cancelOrphanedAgentRuns`. Satisfied
56
+ * by a real `PrismaClient` — the narrow interface exists so the
57
+ * function can be unit-tested with an in-memory fake that does not
58
+ * need to satisfy the full Prisma type signature.
59
+ */
60
+ export interface DelegationCleanupDb {
61
+ agentRun: {
62
+ findMany: (args: {
63
+ where: {
64
+ status: {
65
+ in: string[];
66
+ };
67
+ invokedByUserId: {
68
+ not: null;
69
+ };
70
+ };
71
+ select: {
72
+ id: true;
73
+ organizationId: true;
74
+ invokedByUserId: true;
75
+ };
76
+ }) => Promise<Array<{
77
+ id: string;
78
+ organizationId: string;
79
+ invokedByUserId: string | null;
80
+ }>>;
81
+ updateMany: (args: {
82
+ where: {
83
+ id: {
84
+ in: string[];
85
+ };
86
+ };
87
+ data: {
88
+ status: string;
89
+ completedAt: Date;
90
+ error: string;
91
+ };
92
+ }) => Promise<{
93
+ count: number;
94
+ }>;
95
+ };
96
+ membership: {
97
+ findUnique: (args: {
98
+ where: {
99
+ userId_organizationId: {
100
+ userId: string;
101
+ organizationId: string;
102
+ };
103
+ };
104
+ }) => Promise<{
105
+ id: string;
106
+ } | null>;
107
+ };
108
+ auditEvent: {
109
+ create: (args: any) => Promise<any>;
110
+ };
111
+ }
112
+ /**
113
+ * Result shape for one sweep. `cancelledRunIds` is the authoritative
114
+ * list of transitions; callers can log it and reconcile with
115
+ * downstream state. `scannedCount` is the number of candidate runs
116
+ * inspected — useful for monitoring how hot the hot path is.
117
+ */
118
+ export interface CancelOrphanedAgentRunsResult {
119
+ scannedCount: number;
120
+ cancelledRunIds: string[];
121
+ }
122
+ /**
123
+ * Run one revocation sweep against the given DB handle. Intended to
124
+ * be called on a recurring interval — see
125
+ * `packages/api/src/lib/delegation-cleanup.ts` for the scheduler.
126
+ *
127
+ * Never throws for an individual failed lookup or update — the sweep
128
+ * logs and continues so a single bad row cannot starve the rest of
129
+ * the backlog. The return value still reflects only the runs that
130
+ * successfully transitioned.
131
+ */
132
+ export declare function cancelOrphanedAgentRuns(db: DelegationCleanupDb): Promise<CancelOrphanedAgentRunsResult>;
133
+ //# sourceMappingURL=delegation-cleanup-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegation-cleanup-service.d.ts","sourceRoot":"","sources":["../../src/services/delegation-cleanup-service.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAEH;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE;QACR,QAAQ,EAAE,CAAC,IAAI,EAAE;YACf,KAAK,EAAE;gBACL,MAAM,EAAE;oBAAE,EAAE,EAAE,MAAM,EAAE,CAAA;iBAAE,CAAC;gBACzB,eAAe,EAAE;oBAAE,GAAG,EAAE,IAAI,CAAA;iBAAE,CAAC;aAChC,CAAC;YACF,MAAM,EAAE;gBACN,EAAE,EAAE,IAAI,CAAC;gBACT,cAAc,EAAE,IAAI,CAAC;gBACrB,eAAe,EAAE,IAAI,CAAC;aACvB,CAAC;SACH,KAAK,OAAO,CACX,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,cAAc,EAAE,MAAM,CAAC;YAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;SAAE,CAAC,CAC9E,CAAC;QACF,UAAU,EAAE,CAAC,IAAI,EAAE;YACjB,KAAK,EAAE;gBAAE,EAAE,EAAE;oBAAE,EAAE,EAAE,MAAM,EAAE,CAAA;iBAAE,CAAA;aAAE,CAAC;YAChC,IAAI,EAAE;gBACJ,MAAM,EAAE,MAAM,CAAC;gBACf,WAAW,EAAE,IAAI,CAAC;gBAClB,KAAK,EAAE,MAAM,CAAC;aACf,CAAC;SACH,KAAK,OAAO,CAAC;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAClC,CAAC;IACF,UAAU,EAAE;QACV,UAAU,EAAE,CAAC,IAAI,EAAE;YACjB,KAAK,EAAE;gBACL,qBAAqB,EAAE;oBAAE,MAAM,EAAE,MAAM,CAAC;oBAAC,cAAc,EAAE,MAAM,CAAA;iBAAE,CAAC;aACnE,CAAC;SACH,KAAK,OAAO,CAAC;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI,CAAC,CAAC;KACtC,CAAC;IAUF,UAAU,EAAE;QAEV,MAAM,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;KACrC,CAAC;CACH;AAED;;;;;GAKG;AACH,MAAM,WAAW,6BAA6B;IAC5C,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED;;;;;;;;;GASG;AACH,wBAAsB,uBAAuB,CAC3C,EAAE,EAAE,mBAAmB,GACtB,OAAO,CAAC,6BAA6B,CAAC,CAuGxC"}
@@ -0,0 +1,111 @@
1
+ import { AuditEventService } from "./audit-event-service.js";
2
+ /**
3
+ * Run one revocation sweep against the given DB handle. Intended to
4
+ * be called on a recurring interval — see
5
+ * `packages/api/src/lib/delegation-cleanup.ts` for the scheduler.
6
+ *
7
+ * Never throws for an individual failed lookup or update — the sweep
8
+ * logs and continues so a single bad row cannot starve the rest of
9
+ * the backlog. The return value still reflects only the runs that
10
+ * successfully transitioned.
11
+ */
12
+ export async function cancelOrphanedAgentRuns(db) {
13
+ const candidates = await db.agentRun.findMany({
14
+ where: {
15
+ status: { in: ["pending", "running"] },
16
+ invokedByUserId: { not: null },
17
+ },
18
+ select: {
19
+ id: true,
20
+ organizationId: true,
21
+ invokedByUserId: true,
22
+ },
23
+ });
24
+ // Walk each candidate and check whether its invoking user still has
25
+ // a membership in the run's org. N+1 by design — the candidate set
26
+ // is small in steady state (only actively-pending agent runs) and
27
+ // the alternative (a single `NOT EXISTS (SELECT ... FROM
28
+ // memberships)` query) is not expressible through the narrow DB
29
+ // interface without either raw SQL or a much wider seam. Revisit
30
+ // if the candidate count ever grows to the thousands.
31
+ const orphanedIds = [];
32
+ for (const run of candidates) {
33
+ if (!run.invokedByUserId)
34
+ continue;
35
+ try {
36
+ const membership = await db.membership.findUnique({
37
+ where: {
38
+ userId_organizationId: {
39
+ userId: run.invokedByUserId,
40
+ organizationId: run.organizationId,
41
+ },
42
+ },
43
+ });
44
+ if (!membership) {
45
+ orphanedIds.push(run.id);
46
+ }
47
+ }
48
+ catch (err) {
49
+ // eslint-disable-next-line no-console
50
+ console.error(`[delegation-cleanup] membership lookup failed for run ${run.id}:`, err);
51
+ }
52
+ }
53
+ if (orphanedIds.length === 0) {
54
+ return { scannedCount: candidates.length, cancelledRunIds: [] };
55
+ }
56
+ // One bulk update transitions all orphaned runs to cancelled. This
57
+ // is idempotent — if a concurrent sweep cancelled the same runs
58
+ // first, the updateMany still succeeds (0 rows updated) and the
59
+ // audit write below still fires for this sweep. The idempotency
60
+ // matters because Phase 1d runs this in-process inside Cloud Run,
61
+ // and multiple Cloud Run instances sweep concurrently.
62
+ let updateResult;
63
+ try {
64
+ updateResult = await db.agentRun.updateMany({
65
+ where: { id: { in: orphanedIds } },
66
+ data: {
67
+ status: "cancelled",
68
+ completedAt: new Date(),
69
+ error: "Revoked: user no longer has membership in organization",
70
+ },
71
+ });
72
+ }
73
+ catch (err) {
74
+ // eslint-disable-next-line no-console
75
+ console.error("[delegation-cleanup] bulk cancel failed:", err);
76
+ return { scannedCount: candidates.length, cancelledRunIds: [] };
77
+ }
78
+ // Record one audit event per cancellation. We have the run
79
+ // metadata from the earlier findMany — rebuild the map so each
80
+ // audit row carries the correct organizationId and invokedByUserId
81
+ // without a second round-trip.
82
+ //
83
+ // The audit service normally takes a PrismaClient. Here we bridge
84
+ // via the narrow DB interface: we construct a tiny adapter that
85
+ // forwards to the cleanup DB's auditEvent.create.
86
+ const auditAdapter = {
87
+ auditEvent: db.auditEvent,
88
+ };
89
+ const audit = new AuditEventService(auditAdapter);
90
+ const runById = new Map(candidates.map((r) => [r.id, r]));
91
+ for (const id of orphanedIds) {
92
+ const run = runById.get(id);
93
+ if (!run)
94
+ continue;
95
+ void audit.record({
96
+ agentRunId: id,
97
+ principalType: "system",
98
+ principalId: "delegation-cleanup",
99
+ organizationId: run.organizationId,
100
+ action: "delegation.revoke",
101
+ subjectType: "AgentRun",
102
+ subjectId: id,
103
+ result: "allow",
104
+ });
105
+ }
106
+ return {
107
+ scannedCount: candidates.length,
108
+ cancelledRunIds: orphanedIds.slice(0, updateResult.count),
109
+ };
110
+ }
111
+ //# sourceMappingURL=delegation-cleanup-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegation-cleanup-service.js","sourceRoot":"","sources":["../../src/services/delegation-cleanup-service.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"edge-service.d.ts","sourceRoot":"","sources":["../../src/services/edge-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAU,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAwB,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE3E,qBAAa,WAAW;IAGV,OAAO,CAAC,EAAE;IAFtB,OAAO,CAAC,SAAS,CAAgB;gBAEb,EAAE,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE,aAAa;IAIzD,MAAM,CAAC,KAAK,EAAE;QAClB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;QACzB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,SAAS,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,IAAI,CAAC;IAcX,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAS5C,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAoC5D,qBAAqB,IAAI,OAAO,CACpC;QAAE,gBAAgB,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAC9C;IAWK,UAAU,CACd,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC;IAQZ,MAAM,CACV,EAAE,EAAE,MAAM,EACV,KAAK,EAAE;QAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GACxF,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAejB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAQ3C"}
1
+ {"version":3,"file":"edge-service.d.ts","sourceRoot":"","sources":["../../src/services/edge-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAU,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAwB,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE3E,qBAAa,WAAW;IAGV,OAAO,CAAC,EAAE;IAFtB,OAAO,CAAC,SAAS,CAAgB;gBAEb,EAAE,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE,aAAa;IAIzD,MAAM,CAAC,KAAK,EAAE;QAClB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;QACzB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,SAAS,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,IAAI,CAAC;IAcX,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAS5C,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAwC5D,qBAAqB,IAAI,OAAO,CACpC;QAAE,gBAAgB,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAC9C;IAWK,UAAU,CACd,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC;IAQZ,MAAM,CACV,EAAE,EAAE,MAAM,EACV,KAAK,EAAE;QAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GACxF,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAejB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAQ3C"}
@@ -58,6 +58,9 @@ export class EdgeService {
58
58
  }
59
59
  frontier = nextFrontier;
60
60
  }
61
+ for (const nId of frontier) {
62
+ visited.add(nId);
63
+ }
61
64
  visited.delete(nodeId);
62
65
  return [...visited];
63
66
  }
@@ -1 +1 @@
1
- {"version":3,"file":"edge-service.js","sourceRoot":"","sources":["../../src/services/edge-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"edge-service.js","sourceRoot":"","sources":["../../src/services/edge-service.ts"],"names":[],"mappings":"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"}
@@ -3,13 +3,15 @@ import type { Node, NodeStatus, EmbeddingProvider } from "../types/index.js";
3
3
  import { type TenantContext } from "../db/tenant.js";
4
4
  import type { PiiEncryptionService } from "./pii-encryption-service.js";
5
5
  import type { PiiEncryptionOptions } from "./pii-encryption-service.js";
6
+ import type { ChunkService } from "./chunk-service.js";
6
7
  export declare class NodeService {
7
8
  private db;
8
9
  private embeddings;
9
10
  private piiEncryption?;
10
11
  private piiOptions?;
12
+ private chunkService?;
11
13
  private tenantCtx;
12
- constructor(db: PrismaClient, embeddings: EmbeddingProvider, tenantCtx?: TenantContext, piiEncryption?: PiiEncryptionService | undefined, piiOptions?: PiiEncryptionOptions | undefined);
14
+ constructor(db: PrismaClient, embeddings: EmbeddingProvider, tenantCtx?: TenantContext, piiEncryption?: PiiEncryptionService | undefined, piiOptions?: PiiEncryptionOptions | undefined, chunkService?: ChunkService | undefined);
13
15
  create(input: {
14
16
  type: string;
15
17
  title: string;
@@ -51,6 +53,15 @@ export declare class NodeService {
51
53
  type: string;
52
54
  count: number;
53
55
  }[]>;
56
+ /**
57
+ * Strip PII from text before embedding to prevent PII reaching the provider.
58
+ * Returns stripped text if PII is configured and mode != disabled; else original.
59
+ */
60
+ private stripForEmbedding;
61
+ /**
62
+ * Returns the current PII mode string for provenance tracking, or null if disabled/unconfigured.
63
+ */
64
+ private resolvePiiMode;
54
65
  /**
55
66
  * Apply PII detection/encryption to node fields.
56
67
  * Returns processed fields and whether PII was found.
@@ -1 +1 @@
1
- {"version":3,"file":"node-service.d.ts","sourceRoot":"","sources":["../../src/services/node-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node-service.d.ts","sourceRoot":"","sources":["../../src/services/node-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAU,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EACV,IAAI,EACJ,UAAU,EACV,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAqC,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACxF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,qBAAa,WAAW;IAIpB,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,UAAU;IAElB,OAAO,CAAC,aAAa,CAAC;IACtB,OAAO,CAAC,UAAU,CAAC;IACnB,OAAO,CAAC,YAAY,CAAC;IARvB,OAAO,CAAC,SAAS,CAAgB;gBAGvB,EAAE,EAAE,YAAY,EAChB,UAAU,EAAE,iBAAiB,EACrC,SAAS,CAAC,EAAE,aAAa,EACjB,aAAa,CAAC,EAAE,oBAAoB,YAAA,EACpC,UAAU,CAAC,EAAE,oBAAoB,YAAA,EACjC,YAAY,CAAC,EAAE,YAAY,YAAA;IAK/B,MAAM,CAAC,KAAK,EAAE;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,IAAI,CAAC;IAkDX,mBAAmB,CACvB,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,EACD,SAAS,EAAE,MAAM,EAAE,GAClB,OAAO,CAAC,IAAI,CAAC;IA0CV,mBAAmB,CACvB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE;QACL,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,EACD,SAAS,EAAE,MAAM,EAAE,GAClB,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IA+CjB,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAsBrD,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAMzC,MAAM,CACV,EAAE,EAAE,MAAM,EACV,KAAK,EAAE;QACL,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GACA,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAsDjB,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAa/D,UAAU,CAAC,KAAK,SAAK,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAQvC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAcpC,SAAS,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAS7D;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAOzB;;OAEG;IACH,OAAO,CAAC,cAAc;IAKtB;;;OAGG;IACH,OAAO,CAAC,QAAQ;CAgCjB"}
@@ -4,20 +4,24 @@ export class NodeService {
4
4
  embeddings;
5
5
  piiEncryption;
6
6
  piiOptions;
7
+ chunkService;
7
8
  tenantCtx;
8
- constructor(db, embeddings, tenantCtx, piiEncryption, piiOptions) {
9
+ constructor(db, embeddings, tenantCtx, piiEncryption, piiOptions, chunkService) {
9
10
  this.db = db;
10
11
  this.embeddings = embeddings;
11
12
  this.piiEncryption = piiEncryption;
12
13
  this.piiOptions = piiOptions;
14
+ this.chunkService = chunkService;
13
15
  this.tenantCtx = tenantCtx ?? { organizationId: SINGLE_TENANT_ORG_ID };
14
16
  }
15
17
  async create(input) {
16
- // Generate embedding from ORIGINAL text (before PII encryption)
17
- const embedding = await this.embeddings.embed(`${input.title}\n\n${input.content}`);
18
+ // Strip PII before embedding to prevent PII reaching the provider
19
+ const textForEmbedding = this.stripForEmbedding(`${input.title}\n\n${input.content}`);
20
+ const embedding = await this.embeddings.embed(textForEmbedding);
18
21
  const embeddingStr = `[${embedding.join(",")}]`;
19
- // Process PII if configured
22
+ // Process PII if configured (encrypt for storage)
20
23
  const { title, content, metadata, hasPii } = this.applyPii(input.title, input.content, input.metadata);
24
+ const piiMode = this.resolvePiiMode();
21
25
  const node = await this.db.node.create({
22
26
  data: {
23
27
  type: input.type,
@@ -31,20 +35,26 @@ export class NodeService {
31
35
  organizationId: this.tenantCtx.organizationId,
32
36
  },
33
37
  });
34
- // Update embedding and tsvector via raw SQL using ORIGINAL text
38
+ // Update embedding, tsvector, and PII mode via raw SQL
35
39
  const orgFilter = tenantWhere(this.tenantCtx);
36
40
  await this.db.$executeRaw `
37
41
  UPDATE nodes
38
42
  SET embedding = ${embeddingStr}::vector,
39
- search_vector = to_tsvector('english', ${input.title} || ' ' || ${input.content})
43
+ search_vector = to_tsvector('english', ${input.title} || ' ' || ${input.content}),
44
+ embedding_pii_mode = ${piiMode}
40
45
  WHERE id = ${node.id}::uuid
41
46
  AND ${orgFilter}
42
47
  `;
48
+ // Chunk the node content for granular retrieval
49
+ if (this.chunkService) {
50
+ await this.chunkService.chunkAndEmbed(node.id, input.title, input.content);
51
+ }
43
52
  return node;
44
53
  }
45
54
  async createWithEmbedding(input, embedding) {
46
55
  const embeddingStr = `[${embedding.join(",")}]`;
47
56
  const { title, content, metadata, hasPii } = this.applyPii(input.title, input.content, input.metadata);
57
+ const piiMode = this.resolvePiiMode();
48
58
  const node = await this.db.node.create({
49
59
  data: {
50
60
  type: input.type,
@@ -62,10 +72,14 @@ export class NodeService {
62
72
  await this.db.$executeRaw `
63
73
  UPDATE nodes
64
74
  SET embedding = ${embeddingStr}::vector,
65
- search_vector = to_tsvector('english', ${input.title} || ' ' || ${input.content})
75
+ search_vector = to_tsvector('english', ${input.title} || ' ' || ${input.content}),
76
+ embedding_pii_mode = ${piiMode}
66
77
  WHERE id = ${node.id}::uuid
67
78
  AND ${orgFilter}
68
79
  `;
80
+ if (this.chunkService) {
81
+ await this.chunkService.chunkAndEmbed(node.id, input.title, input.content);
82
+ }
69
83
  return node;
70
84
  }
71
85
  async updateWithEmbedding(id, input, embedding) {
@@ -75,6 +89,7 @@ export class NodeService {
75
89
  const originalTitle = input.title ?? existing.title;
76
90
  const originalContent = input.content ?? existing.content;
77
91
  const { title, content, metadata, hasPii } = this.applyPii(input.title ?? existing.title, input.content ?? existing.content, input.metadata);
92
+ const piiMode = this.resolvePiiMode();
78
93
  const updated = await this.db.node.update({
79
94
  where: { id },
80
95
  data: {
@@ -93,10 +108,14 @@ export class NodeService {
93
108
  await this.db.$executeRaw `
94
109
  UPDATE nodes
95
110
  SET embedding = ${embeddingStr}::vector,
96
- search_vector = to_tsvector('english', ${originalTitle} || ' ' || ${originalContent})
111
+ search_vector = to_tsvector('english', ${originalTitle} || ' ' || ${originalContent}),
112
+ embedding_pii_mode = ${piiMode}
97
113
  WHERE id = ${id}::uuid
98
114
  AND ${orgFilter}
99
115
  `;
116
+ if (this.chunkService) {
117
+ await this.chunkService.chunkAndEmbed(id, originalTitle, originalContent);
118
+ }
100
119
  return updated;
101
120
  }
102
121
  async resolveId(idOrPrefix) {
@@ -145,18 +164,24 @@ export class NodeService {
145
164
  version: existing.version + 1,
146
165
  },
147
166
  });
148
- // Re-embed and update tsvector if content changed (use ORIGINAL text)
167
+ // Re-embed and update tsvector if content changed
149
168
  if (input.title || input.content) {
150
- const embedding = await this.embeddings.embed(`${originalTitle}\n\n${originalContent}`);
169
+ const textForEmbedding = this.stripForEmbedding(`${originalTitle}\n\n${originalContent}`);
170
+ const embedding = await this.embeddings.embed(textForEmbedding);
151
171
  const embeddingStr = `[${embedding.join(",")}]`;
172
+ const piiMode = this.resolvePiiMode();
152
173
  const orgFilter = tenantWhere(this.tenantCtx);
153
174
  await this.db.$executeRaw `
154
175
  UPDATE nodes
155
176
  SET embedding = ${embeddingStr}::vector,
156
- search_vector = to_tsvector('english', ${originalTitle} || ' ' || ${originalContent})
177
+ search_vector = to_tsvector('english', ${originalTitle} || ' ' || ${originalContent}),
178
+ embedding_pii_mode = ${piiMode}
157
179
  WHERE id = ${id}::uuid
158
180
  AND ${orgFilter}
159
181
  `;
182
+ if (this.chunkService) {
183
+ await this.chunkService.chunkAndEmbed(id, originalTitle, originalContent);
184
+ }
160
185
  }
161
186
  return updated;
162
187
  }
@@ -204,6 +229,24 @@ export class NodeService {
204
229
  });
205
230
  return result.map((r) => ({ type: r.type, count: r._count.type }));
206
231
  }
232
+ /**
233
+ * Strip PII from text before embedding to prevent PII reaching the provider.
234
+ * Returns stripped text if PII is configured and mode != disabled; else original.
235
+ */
236
+ stripForEmbedding(text) {
237
+ if (!this.piiEncryption || !this.piiOptions || this.piiOptions.mode === "disabled") {
238
+ return text;
239
+ }
240
+ return this.piiEncryption.stripPii(text, this.piiOptions.allowedPiiTypes).text;
241
+ }
242
+ /**
243
+ * Returns the current PII mode string for provenance tracking, or null if disabled/unconfigured.
244
+ */
245
+ resolvePiiMode() {
246
+ if (!this.piiOptions || this.piiOptions.mode === "disabled")
247
+ return null;
248
+ return this.piiOptions.mode;
249
+ }
207
250
  /**
208
251
  * Apply PII detection/encryption to node fields.
209
252
  * Returns processed fields and whether PII was found.
@@ -1 +1 @@
1
- {"version":3,"file":"node-service.js","sourceRoot":"","sources":["../../src/services/node-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node-service.js","sourceRoot":"","sources":["../../src/services/node-service.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,26 @@
1
1
  import type { PrismaClient } from "@prisma/client";
2
2
  export interface OrgAgentTypeRecord {
3
+ /**
4
+ * The DB primary key. Needed by the Phase 1d spawn path to populate
5
+ * `AgentRun.agentId` so every run is linked back to the agent type
6
+ * it was spawned as.
7
+ */
8
+ id: string;
3
9
  slug: string;
4
10
  label: string;
5
11
  description: string;
6
12
  prompt: string;
7
13
  defaultTimeoutMinutes: number;
8
14
  isBuiltinOverride: boolean;
15
+ /**
16
+ * Raw CASL rule set (an array of `AppRawRule`) stored as JSON. Phase 1c
17
+ * added the column with a `{}` empty-object default, so rows that were
18
+ * created before Phase 1d wires the value for real will surface that
19
+ * object here. Callers that consume `intrinsicPolicy` MUST handle the
20
+ * non-array case — the Phase 1d intersect helper and spawn path treat
21
+ * anything that is not an array as "no rules" (deny-by-default).
22
+ */
23
+ intrinsicPolicy: unknown;
9
24
  createdBy: string;
10
25
  createdAt: Date;
11
26
  updatedAt: Date;
@@ -1 +1 @@
1
- {"version":3,"file":"org-agent-type-service.d.ts","sourceRoot":"","sources":["../../src/services/org-agent-type-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,qBAAqB,EAAE,MAAM,CAAC;IAC9B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAkBD,qBAAa,mBAAmB;IAClB,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,YAAY;IAE9B,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAQ3D,SAAS,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAOnF,MAAM,CACV,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,uBAAuB,EAC9B,YAAY,EAAE,MAAM,EAAE,GACrB,OAAO,CAAC,kBAAkB,CAAC;IAoCxB,MAAM,CACV,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,uBAAuB,GAC7B,OAAO,CAAC,kBAAkB,CAAC;IAcxB,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAUrE"}
1
+ {"version":3,"file":"org-agent-type-service.d.ts","sourceRoot":"","sources":["../../src/services/org-agent-type-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,qBAAqB,EAAE,MAAM,CAAC;IAC9B,iBAAiB,EAAE,OAAO,CAAC;IAC3B;;;;;;;OAOG;IACH,eAAe,EAAE,OAAO,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAoBD,qBAAa,mBAAmB;IAClB,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,YAAY;IAE9B,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAQ3D,SAAS,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAOnF,MAAM,CACV,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,uBAAuB,EAC9B,YAAY,EAAE,MAAM,EAAE,GACrB,OAAO,CAAC,kBAAkB,CAAC;IAoCxB,MAAM,CACV,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,uBAAuB,GAC7B,OAAO,CAAC,kBAAkB,CAAC;IAcxB,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAUrE"}
@@ -1,12 +1,14 @@
1
1
  const SLUG_REGEX = /^[a-z][a-z0-9-]*$/;
2
2
  function toRecord(row) {
3
3
  return {
4
+ id: row.id,
4
5
  slug: row.slug,
5
6
  label: row.label,
6
7
  description: row.description,
7
8
  prompt: row.prompt,
8
9
  defaultTimeoutMinutes: row.defaultTimeoutMinutes,
9
10
  isBuiltinOverride: row.isBuiltinOverride,
11
+ intrinsicPolicy: row.intrinsicPolicy,
10
12
  createdBy: row.createdBy,
11
13
  createdAt: row.createdAt,
12
14
  updatedAt: row.updatedAt,
@@ -1 +1 @@
1
- {"version":3,"file":"org-agent-type-service.js","sourceRoot":"","sources":["../../src/services/org-agent-type-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"org-agent-type-service.js","sourceRoot":"","sources":["../../src/services/org-agent-type-service.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,7 @@ export declare class PiiDetectorService {
16
16
  * Detect PII in a text string. Returns matches with their positions.
17
17
  */
18
18
  detect(text: string): PiiDetectionResult;
19
+ private detectNorwegianPatterns;
19
20
  /**
20
21
  * Detect PII in all string values of an object (shallow — top-level keys only).
21
22
  */
@@ -1 +1 @@
1
- {"version":3,"file":"pii-detector-service.d.ts","sourceRoot":"","sources":["../../src/services/pii-detector-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,QAAQ,EAAE,CAAC;CACrB;AAgBD,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,SAAS,CAAe;gBAEpB,cAAc,CAAC,EAAE,UAAU,EAAE;IAOzC;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB;IAiCxC;;OAEG;IACH,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC;CASjF"}
1
+ {"version":3,"file":"pii-detector-service.d.ts","sourceRoot":"","sources":["../../src/services/pii-detector-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,QAAQ,EAAE,CAAC;CACrB;AAyED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,SAAS,CAAe;gBAEpB,cAAc,CAAC,EAAE,UAAU,EAAE;IAOzC;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB;IA0CxC,OAAO,CAAC,uBAAuB;IA6B/B;;OAEG;IACH,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC;CASjF"}