@derwinjs/db 0.3.0 → 0.5.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.
- package/dist/project-profile-store.d.ts +31 -0
- package/dist/project-profile-store.d.ts.map +1 -0
- package/dist/project-profile-store.js +156 -0
- package/dist/project-profile-store.js.map +1 -0
- package/dist/rag-retriever.d.ts +44 -0
- package/dist/rag-retriever.d.ts.map +1 -0
- package/dist/rag-retriever.js +177 -0
- package/dist/rag-retriever.js.map +1 -0
- package/dist/scripts/smoke-auto-fix.js +2 -0
- package/dist/scripts/smoke-auto-fix.js.map +1 -1
- package/dist/scripts/smoke-learning-loop.js +2 -0
- package/dist/scripts/smoke-learning-loop.js.map +1 -1
- package/dist/scripts/smoke-seed-lifeline-profile.d.ts +25 -0
- package/dist/scripts/smoke-seed-lifeline-profile.d.ts.map +1 -0
- package/dist/scripts/smoke-seed-lifeline-profile.js +130 -0
- package/dist/scripts/smoke-seed-lifeline-profile.js.map +1 -0
- package/package.json +5 -4
- package/prisma/migrations/20260506180000_enable_pgvector_and_vector_column/migration.sql +12 -0
- package/prisma/schema.prisma +10 -7
- package/prisma/seed.ts +52 -70
- package/prisma-client/edge.js +3 -4
- package/prisma-client/index-browser.js +0 -1
- package/prisma-client/index.d.ts +0 -80
- package/prisma-client/index.js +3 -4
- package/prisma-client/package.json +1 -1
- package/prisma-client/schema.prisma +10 -7
- package/prisma-client/wasm.js +0 -1
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ProjectProfileStore — Prisma implementation against Derwin's
|
|
3
|
+
* ProjectProfile table.
|
|
4
|
+
*
|
|
5
|
+
* QAP-Sprint4 Phase 1. Implements the ProjectProfileStore contract from
|
|
6
|
+
* @derwinjs/sdk (see packages/sdk/src/types/project-profile-store.ts) against
|
|
7
|
+
* the @derwinjs/db Prisma client. The Profile is Layer A — per-project
|
|
8
|
+
* domain ontology, 8-vector risk weights, critical flows, glossary, and
|
|
9
|
+
* dependency graph. Sprint 4 ships the read path; Sprint 6+ adds Profile
|
|
10
|
+
* evolution (writes from outcomes) on top of this same contract.
|
|
11
|
+
*
|
|
12
|
+
* Tenant isolation: the ProjectProfile.projectId column is `@unique`, so
|
|
13
|
+
* `findUnique({ where: { projectId } })` is the canonical scoping query —
|
|
14
|
+
* there is at most one row per project. As a defense-in-depth check we
|
|
15
|
+
* verify the returned row's projectId matches the requested one (a Prisma
|
|
16
|
+
* bug or schema drift could otherwise leak across tenants).
|
|
17
|
+
*
|
|
18
|
+
* JSON columns: domainOntology / riskProfile / criticalFlows / glossary /
|
|
19
|
+
* dependencies are typed as `Json` in the Prisma schema. We cast through
|
|
20
|
+
* `unknown` to the SDK's typed shapes on read; on write we cast in the
|
|
21
|
+
* other direction. The Profile authoring path (Sprint 6+) is the schema-
|
|
22
|
+
* narrowing chokepoint, not the storage layer.
|
|
23
|
+
*/
|
|
24
|
+
import { type PrismaClient } from './prisma.js';
|
|
25
|
+
import { type ProjectProfileStore } from '@derwinjs/sdk';
|
|
26
|
+
export interface PrismaProjectProfileStoreConfig {
|
|
27
|
+
/** Generated Prisma client. Pass an instance per process. */
|
|
28
|
+
prisma: PrismaClient;
|
|
29
|
+
}
|
|
30
|
+
export declare function createPrismaProjectProfileStore(config: PrismaProjectProfileStoreConfig): ProjectProfileStore;
|
|
31
|
+
//# sourceMappingURL=project-profile-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-profile-store.d.ts","sourceRoot":"","sources":["../src/project-profile-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAU,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAQL,KAAK,mBAAmB,EAEzB,MAAM,eAAe,CAAC;AAIvB,MAAM,WAAW,+BAA+B;IAC9C,6DAA6D;IAC7D,MAAM,EAAE,YAAY,CAAC;CACtB;AAID,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,+BAA+B,GACtC,mBAAmB,CA+ErB"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ProjectProfileStore — Prisma implementation against Derwin's
|
|
3
|
+
* ProjectProfile table.
|
|
4
|
+
*
|
|
5
|
+
* QAP-Sprint4 Phase 1. Implements the ProjectProfileStore contract from
|
|
6
|
+
* @derwinjs/sdk (see packages/sdk/src/types/project-profile-store.ts) against
|
|
7
|
+
* the @derwinjs/db Prisma client. The Profile is Layer A — per-project
|
|
8
|
+
* domain ontology, 8-vector risk weights, critical flows, glossary, and
|
|
9
|
+
* dependency graph. Sprint 4 ships the read path; Sprint 6+ adds Profile
|
|
10
|
+
* evolution (writes from outcomes) on top of this same contract.
|
|
11
|
+
*
|
|
12
|
+
* Tenant isolation: the ProjectProfile.projectId column is `@unique`, so
|
|
13
|
+
* `findUnique({ where: { projectId } })` is the canonical scoping query —
|
|
14
|
+
* there is at most one row per project. As a defense-in-depth check we
|
|
15
|
+
* verify the returned row's projectId matches the requested one (a Prisma
|
|
16
|
+
* bug or schema drift could otherwise leak across tenants).
|
|
17
|
+
*
|
|
18
|
+
* JSON columns: domainOntology / riskProfile / criticalFlows / glossary /
|
|
19
|
+
* dependencies are typed as `Json` in the Prisma schema. We cast through
|
|
20
|
+
* `unknown` to the SDK's typed shapes on read; on write we cast in the
|
|
21
|
+
* other direction. The Profile authoring path (Sprint 6+) is the schema-
|
|
22
|
+
* narrowing chokepoint, not the storage layer.
|
|
23
|
+
*/
|
|
24
|
+
import { Prisma } from './prisma.js';
|
|
25
|
+
import { ProjectProfileStoreError, } from '@derwinjs/sdk';
|
|
26
|
+
// ─── Factory ─────────────────────────────────────────────────────────────
|
|
27
|
+
export function createPrismaProjectProfileStore(config) {
|
|
28
|
+
const { prisma } = config;
|
|
29
|
+
return {
|
|
30
|
+
async getProfile(projectId) {
|
|
31
|
+
validateProjectId(projectId);
|
|
32
|
+
const row = await prisma.projectProfile.findUnique({ where: { projectId } });
|
|
33
|
+
if (!row) {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
// Defense-in-depth: the @unique constraint on projectId means this
|
|
37
|
+
// mismatch shouldn't be reachable, but we still verify before
|
|
38
|
+
// returning. Anything else collapses tenant isolation.
|
|
39
|
+
if (row.projectId !== projectId) {
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
return mapProfile(row);
|
|
43
|
+
},
|
|
44
|
+
async putProfile(input) {
|
|
45
|
+
validatePutInput(input);
|
|
46
|
+
const now = new Date();
|
|
47
|
+
const dependencies = (input.dependencies ?? []);
|
|
48
|
+
const complianceTags = input.complianceTags ?? [];
|
|
49
|
+
let row;
|
|
50
|
+
try {
|
|
51
|
+
row = await prisma.projectProfile.upsert({
|
|
52
|
+
where: { projectId: input.projectId },
|
|
53
|
+
create: {
|
|
54
|
+
projectId: input.projectId,
|
|
55
|
+
// ProjectType enum is validated at the Prisma layer when the
|
|
56
|
+
// row hits the database — invalid strings surface as a
|
|
57
|
+
// PrismaClientKnownRequestError on the round-trip.
|
|
58
|
+
type: input.type,
|
|
59
|
+
domainOntology: input.domainOntology,
|
|
60
|
+
riskProfile: input.riskProfile,
|
|
61
|
+
criticalFlows: input.criticalFlows,
|
|
62
|
+
glossary: input.glossary,
|
|
63
|
+
dependencies,
|
|
64
|
+
complianceTags,
|
|
65
|
+
ingestedDocsHash: input.ingestedDocsHash,
|
|
66
|
+
lastIngestedAt: input.lastIngestedAt,
|
|
67
|
+
lastEvolvedAt: now,
|
|
68
|
+
},
|
|
69
|
+
update: {
|
|
70
|
+
type: input.type,
|
|
71
|
+
domainOntology: input.domainOntology,
|
|
72
|
+
riskProfile: input.riskProfile,
|
|
73
|
+
criticalFlows: input.criticalFlows,
|
|
74
|
+
glossary: input.glossary,
|
|
75
|
+
dependencies,
|
|
76
|
+
complianceTags,
|
|
77
|
+
ingestedDocsHash: input.ingestedDocsHash,
|
|
78
|
+
lastIngestedAt: input.lastIngestedAt,
|
|
79
|
+
lastEvolvedAt: now,
|
|
80
|
+
},
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
catch (e) {
|
|
84
|
+
if (e instanceof Prisma.PrismaClientKnownRequestError && e.code === 'P2003') {
|
|
85
|
+
throw new ProjectProfileStoreError('fk_violation', `Unknown projectId '${input.projectId}' — foreign key violation`, e);
|
|
86
|
+
}
|
|
87
|
+
throw e;
|
|
88
|
+
}
|
|
89
|
+
return {
|
|
90
|
+
profile: mapProfile(row),
|
|
91
|
+
ref: { id: row.id, projectId: row.projectId },
|
|
92
|
+
};
|
|
93
|
+
},
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
// ─── Helpers ─────────────────────────────────────────────────────────────
|
|
97
|
+
/**
|
|
98
|
+
* Convert a Prisma ProjectProfile row to the SDK value type. Json columns
|
|
99
|
+
* are narrowed via cast through `unknown`. Top-level shape is sanity-checked
|
|
100
|
+
* before returning so malformed rows surface as a typed error rather than
|
|
101
|
+
* runtime explosions deep in the consumer.
|
|
102
|
+
*/
|
|
103
|
+
function mapProfile(row) {
|
|
104
|
+
const domainOntology = row.domainOntology;
|
|
105
|
+
const riskProfile = row.riskProfile;
|
|
106
|
+
const criticalFlows = row.criticalFlows;
|
|
107
|
+
const glossary = (row.glossary ?? {});
|
|
108
|
+
const dependencies = (row.dependencies ?? []);
|
|
109
|
+
// Defense-in-depth — top-level keys should at least be present. We don't
|
|
110
|
+
// deep-validate (that's the Profile authoring path's job), but we catch
|
|
111
|
+
// truly malformed rows instead of returning garbage.
|
|
112
|
+
if (!isObject(domainOntology) ||
|
|
113
|
+
!Array.isArray(domainOntology.entities) ||
|
|
114
|
+
!Array.isArray(domainOntology.actions) ||
|
|
115
|
+
!Array.isArray(domainOntology.roles)) {
|
|
116
|
+
throw new ProjectProfileStoreError('invalid_input', `Profile row ${row.id} has malformed domainOntology JSON`);
|
|
117
|
+
}
|
|
118
|
+
if (!isObject(riskProfile)) {
|
|
119
|
+
throw new ProjectProfileStoreError('invalid_input', `Profile row ${row.id} has malformed riskProfile JSON`);
|
|
120
|
+
}
|
|
121
|
+
return {
|
|
122
|
+
type: row.type,
|
|
123
|
+
domainOntology,
|
|
124
|
+
riskProfile,
|
|
125
|
+
criticalFlows: Array.isArray(criticalFlows) ? criticalFlows : [],
|
|
126
|
+
glossary,
|
|
127
|
+
dependencies: Array.isArray(dependencies) ? dependencies : [],
|
|
128
|
+
complianceTags: row.complianceTags,
|
|
129
|
+
ingestedDocsHash: row.ingestedDocsHash,
|
|
130
|
+
lastIngestedAt: row.lastIngestedAt,
|
|
131
|
+
lastEvolvedAt: row.lastEvolvedAt,
|
|
132
|
+
createdAt: row.createdAt,
|
|
133
|
+
updatedAt: row.updatedAt,
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
function isObject(value) {
|
|
137
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
138
|
+
}
|
|
139
|
+
function validateProjectId(projectId) {
|
|
140
|
+
if (typeof projectId !== 'string' || !projectId.trim()) {
|
|
141
|
+
throw new ProjectProfileStoreError('invalid_input', 'projectId is required');
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
function validatePutInput(input) {
|
|
145
|
+
validateProjectId(input.projectId);
|
|
146
|
+
if (typeof input.type !== 'string' || !input.type.trim()) {
|
|
147
|
+
throw new ProjectProfileStoreError('invalid_input', 'type is required');
|
|
148
|
+
}
|
|
149
|
+
if (typeof input.ingestedDocsHash !== 'string' || !input.ingestedDocsHash.trim()) {
|
|
150
|
+
throw new ProjectProfileStoreError('invalid_input', 'ingestedDocsHash is required');
|
|
151
|
+
}
|
|
152
|
+
if (!(input.lastIngestedAt instanceof Date) || Number.isNaN(input.lastIngestedAt.getTime())) {
|
|
153
|
+
throw new ProjectProfileStoreError('invalid_input', 'lastIngestedAt must be a valid Date');
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=project-profile-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-profile-store.js","sourceRoot":"","sources":["../src/project-profile-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RAGRetriever — Prisma implementation against Derwin's RAGCorpus table,
|
|
3
|
+
* backed by pgvector.
|
|
4
|
+
*
|
|
5
|
+
* QAP-Sprint5 Phase 2. Implements the RAGRetriever contract from
|
|
6
|
+
* @derwinjs/sdk (see packages/sdk/src/types/rag-retriever.ts) against the
|
|
7
|
+
* @derwinjs/db Prisma client. Sprint 5 Phase 1 enabled the pgvector
|
|
8
|
+
* extension and migrated `rag_corpus.embedding` to `vector(1536)`. The
|
|
9
|
+
* generated client types this column as `Unsupported("vector(1536)")?` —
|
|
10
|
+
* standard model.* methods cannot read or write it. We therefore go
|
|
11
|
+
* through `$queryRaw` / `$executeRaw` for both paths. The HNSW index from
|
|
12
|
+
* the same migration is configured with `vector_cosine_ops` to back the
|
|
13
|
+
* `<=>` cosine-distance operator we use in the ORDER BY / similarity
|
|
14
|
+
* computation.
|
|
15
|
+
*
|
|
16
|
+
* Query convention (read path):
|
|
17
|
+
*
|
|
18
|
+
* ORDER BY embedding <=> $vec::vector -- smallest distance first
|
|
19
|
+
* 1 - (embedding <=> $vec::vector) AS similarity -- 0..1 cosine sim
|
|
20
|
+
*
|
|
21
|
+
* For the read path we use `Prisma.sql` template-tag + parameterized
|
|
22
|
+
* vector literal cast to `::vector`. PostgreSQL accepts `$N::vector` —
|
|
23
|
+
* the cast applies to the bound parameter at execution. The vector text
|
|
24
|
+
* format pgvector accepts is `[0.1,0.2,...]`. This keeps the value
|
|
25
|
+
* parameterized (no string concatenation, no SQL injection surface) while
|
|
26
|
+
* still letting us hit the HNSW index. The conditional surface filter is
|
|
27
|
+
* spliced in via `Prisma.sql` / `Prisma.empty` so the SQL stays a single
|
|
28
|
+
* template-tag chain. We deliberately do NOT use `$queryRawUnsafe` — the
|
|
29
|
+
* `Prisma.sql` path is type-checked, parameterized, and survives the
|
|
30
|
+
* vitest-mock-extended mock just as cleanly.
|
|
31
|
+
*
|
|
32
|
+
* Tenant isolation: every method scopes by projectId in the WHERE clause.
|
|
33
|
+
* Pattern D — findSimilar surfaces an empty array for cross-tenant misses
|
|
34
|
+
* (Postgres simply returns no rows when projectId doesn't match), never
|
|
35
|
+
* throws on tenant mismatch (defense-in-depth against tenant enumeration).
|
|
36
|
+
*/
|
|
37
|
+
import { type PrismaClient } from './prisma.js';
|
|
38
|
+
import { type RAGRetriever } from '@derwinjs/sdk';
|
|
39
|
+
export interface PrismaRAGRetrieverConfig {
|
|
40
|
+
/** Generated Prisma client. Pass an instance per process. */
|
|
41
|
+
prisma: PrismaClient;
|
|
42
|
+
}
|
|
43
|
+
export declare function createPrismaRAGRetriever(config: PrismaRAGRetrieverConfig): RAGRetriever;
|
|
44
|
+
//# sourceMappingURL=rag-retriever.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rag-retriever.d.ts","sourceRoot":"","sources":["../src/rag-retriever.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,EAAU,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAGL,KAAK,YAAY,EAGlB,MAAM,eAAe,CAAC;AASvB,MAAM,WAAW,wBAAwB;IACvC,6DAA6D;IAC7D,MAAM,EAAE,YAAY,CAAC;CACtB;AAiBD,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,wBAAwB,GAAG,YAAY,CAuGvF"}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RAGRetriever — Prisma implementation against Derwin's RAGCorpus table,
|
|
3
|
+
* backed by pgvector.
|
|
4
|
+
*
|
|
5
|
+
* QAP-Sprint5 Phase 2. Implements the RAGRetriever contract from
|
|
6
|
+
* @derwinjs/sdk (see packages/sdk/src/types/rag-retriever.ts) against the
|
|
7
|
+
* @derwinjs/db Prisma client. Sprint 5 Phase 1 enabled the pgvector
|
|
8
|
+
* extension and migrated `rag_corpus.embedding` to `vector(1536)`. The
|
|
9
|
+
* generated client types this column as `Unsupported("vector(1536)")?` —
|
|
10
|
+
* standard model.* methods cannot read or write it. We therefore go
|
|
11
|
+
* through `$queryRaw` / `$executeRaw` for both paths. The HNSW index from
|
|
12
|
+
* the same migration is configured with `vector_cosine_ops` to back the
|
|
13
|
+
* `<=>` cosine-distance operator we use in the ORDER BY / similarity
|
|
14
|
+
* computation.
|
|
15
|
+
*
|
|
16
|
+
* Query convention (read path):
|
|
17
|
+
*
|
|
18
|
+
* ORDER BY embedding <=> $vec::vector -- smallest distance first
|
|
19
|
+
* 1 - (embedding <=> $vec::vector) AS similarity -- 0..1 cosine sim
|
|
20
|
+
*
|
|
21
|
+
* For the read path we use `Prisma.sql` template-tag + parameterized
|
|
22
|
+
* vector literal cast to `::vector`. PostgreSQL accepts `$N::vector` —
|
|
23
|
+
* the cast applies to the bound parameter at execution. The vector text
|
|
24
|
+
* format pgvector accepts is `[0.1,0.2,...]`. This keeps the value
|
|
25
|
+
* parameterized (no string concatenation, no SQL injection surface) while
|
|
26
|
+
* still letting us hit the HNSW index. The conditional surface filter is
|
|
27
|
+
* spliced in via `Prisma.sql` / `Prisma.empty` so the SQL stays a single
|
|
28
|
+
* template-tag chain. We deliberately do NOT use `$queryRawUnsafe` — the
|
|
29
|
+
* `Prisma.sql` path is type-checked, parameterized, and survives the
|
|
30
|
+
* vitest-mock-extended mock just as cleanly.
|
|
31
|
+
*
|
|
32
|
+
* Tenant isolation: every method scopes by projectId in the WHERE clause.
|
|
33
|
+
* Pattern D — findSimilar surfaces an empty array for cross-tenant misses
|
|
34
|
+
* (Postgres simply returns no rows when projectId doesn't match), never
|
|
35
|
+
* throws on tenant mismatch (defense-in-depth against tenant enumeration).
|
|
36
|
+
*/
|
|
37
|
+
import { Prisma } from './prisma.js';
|
|
38
|
+
import { RAGRetrieverError, } from '@derwinjs/sdk';
|
|
39
|
+
// ─── Constants ────────────────────────────────────────────────────────────
|
|
40
|
+
const EMBEDDING_DIM = 1536;
|
|
41
|
+
const DEFAULT_TOP_K = 5;
|
|
42
|
+
// ─── Factory ─────────────────────────────────────────────────────────────
|
|
43
|
+
export function createPrismaRAGRetriever(config) {
|
|
44
|
+
const { prisma } = config;
|
|
45
|
+
return {
|
|
46
|
+
async findSimilar(input) {
|
|
47
|
+
validateFindSimilarInput(input);
|
|
48
|
+
const limit = input.limit ?? DEFAULT_TOP_K;
|
|
49
|
+
const vectorLiteral = formatVectorLiteral(input.queryEmbedding);
|
|
50
|
+
// Surface filter is optional — splice it in via Prisma.sql or
|
|
51
|
+
// Prisma.empty so the rest of the template chain stays parameterized.
|
|
52
|
+
const surfaceFilter = input.surface
|
|
53
|
+
? Prisma.sql `AND surface::text = ${input.surface}`
|
|
54
|
+
: Prisma.empty;
|
|
55
|
+
const rows = await prisma.$queryRaw(Prisma.sql `
|
|
56
|
+
SELECT
|
|
57
|
+
id,
|
|
58
|
+
classification,
|
|
59
|
+
surface::text AS surface,
|
|
60
|
+
"promptText",
|
|
61
|
+
diff,
|
|
62
|
+
"outcomeQuality",
|
|
63
|
+
"addedAt",
|
|
64
|
+
(1 - (embedding <=> ${vectorLiteral}::vector))::float8 AS similarity
|
|
65
|
+
FROM "derwin"."rag_corpus"
|
|
66
|
+
WHERE "projectId" = ${input.projectId}
|
|
67
|
+
AND classification = ${input.classification}
|
|
68
|
+
${surfaceFilter}
|
|
69
|
+
ORDER BY embedding <=> ${vectorLiteral}::vector
|
|
70
|
+
LIMIT ${limit}
|
|
71
|
+
`);
|
|
72
|
+
// Defensive shape coercion — the raw projection should already match,
|
|
73
|
+
// but we copy through the SDK type to ensure consumers never receive
|
|
74
|
+
// an opaque Prisma row.
|
|
75
|
+
return rows.map((r) => ({
|
|
76
|
+
id: r.id,
|
|
77
|
+
classification: r.classification,
|
|
78
|
+
surface: r.surface,
|
|
79
|
+
promptText: r.promptText,
|
|
80
|
+
diff: r.diff,
|
|
81
|
+
outcomeQuality: r.outcomeQuality,
|
|
82
|
+
addedAt: r.addedAt,
|
|
83
|
+
similarity: r.similarity,
|
|
84
|
+
}));
|
|
85
|
+
},
|
|
86
|
+
async persist(input) {
|
|
87
|
+
validatePersistInput(input);
|
|
88
|
+
const id = generateId();
|
|
89
|
+
const vectorLiteral = formatVectorLiteral(input.embedding);
|
|
90
|
+
try {
|
|
91
|
+
await prisma.$executeRaw(Prisma.sql `
|
|
92
|
+
INSERT INTO "derwin"."rag_corpus"
|
|
93
|
+
(id, "projectId", classification, surface, "promptText", diff, embedding, "fixAttemptId", "outcomeQuality", "addedAt")
|
|
94
|
+
VALUES
|
|
95
|
+
(
|
|
96
|
+
${id},
|
|
97
|
+
${input.projectId},
|
|
98
|
+
${input.classification},
|
|
99
|
+
${input.surface}::"derwin"."SurfaceCategory",
|
|
100
|
+
${input.promptText},
|
|
101
|
+
${input.diff},
|
|
102
|
+
${vectorLiteral}::vector,
|
|
103
|
+
${input.fixAttemptId},
|
|
104
|
+
${input.outcomeQuality},
|
|
105
|
+
NOW()
|
|
106
|
+
)
|
|
107
|
+
`);
|
|
108
|
+
}
|
|
109
|
+
catch (err) {
|
|
110
|
+
// Map FK violations. Postgres surfaces them via the SQLSTATE 23503
|
|
111
|
+
// class; Prisma wraps that into PrismaClientKnownRequestError P2003
|
|
112
|
+
// when the model has an explicit relation, but for raw SQL we may
|
|
113
|
+
// see the underlying message. Match on either signal.
|
|
114
|
+
if (err instanceof Prisma.PrismaClientKnownRequestError &&
|
|
115
|
+
(err.code === 'P2003' || /foreign key/i.test(err.message))) {
|
|
116
|
+
throw new RAGRetrieverError('fk_violation', 'fixAttemptId or projectId not found — foreign key violation', err);
|
|
117
|
+
}
|
|
118
|
+
if (err instanceof Error && /foreign key|fk constraint|constraint/i.test(err.message)) {
|
|
119
|
+
throw new RAGRetrieverError('fk_violation', 'fixAttemptId or projectId not found — foreign key violation', err);
|
|
120
|
+
}
|
|
121
|
+
throw err;
|
|
122
|
+
}
|
|
123
|
+
return { id };
|
|
124
|
+
},
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
// ─── Helpers ─────────────────────────────────────────────────────────────
|
|
128
|
+
/** pgvector accepts `[v1,v2,...]` as the text representation of a vector. */
|
|
129
|
+
function formatVectorLiteral(values) {
|
|
130
|
+
return '[' + values.join(',') + ']';
|
|
131
|
+
}
|
|
132
|
+
/** cuid-ish id; deterministic shape so callers can pattern-match in logs. */
|
|
133
|
+
function generateId() {
|
|
134
|
+
return `rag_${String(Date.now())}_${Math.random().toString(36).slice(2, 11)}`;
|
|
135
|
+
}
|
|
136
|
+
function validateFindSimilarInput(input) {
|
|
137
|
+
if (typeof input.projectId !== 'string' || !input.projectId.trim()) {
|
|
138
|
+
throw new RAGRetrieverError('invalid_input', 'projectId is required');
|
|
139
|
+
}
|
|
140
|
+
if (typeof input.classification !== 'string' || !input.classification.trim()) {
|
|
141
|
+
throw new RAGRetrieverError('invalid_input', 'classification is required');
|
|
142
|
+
}
|
|
143
|
+
if (!Array.isArray(input.queryEmbedding) || input.queryEmbedding.length !== EMBEDDING_DIM) {
|
|
144
|
+
const actual = Array.isArray(input.queryEmbedding)
|
|
145
|
+
? String(input.queryEmbedding.length)
|
|
146
|
+
: 'non-array';
|
|
147
|
+
throw new RAGRetrieverError('invalid_embedding_length', `queryEmbedding must be ${String(EMBEDDING_DIM)}-dim, got ${actual}`);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
function validatePersistInput(input) {
|
|
151
|
+
if (typeof input.projectId !== 'string' || !input.projectId.trim()) {
|
|
152
|
+
throw new RAGRetrieverError('invalid_input', 'projectId is required');
|
|
153
|
+
}
|
|
154
|
+
if (typeof input.classification !== 'string' || !input.classification.trim()) {
|
|
155
|
+
throw new RAGRetrieverError('invalid_input', 'classification is required');
|
|
156
|
+
}
|
|
157
|
+
if (typeof input.surface !== 'string' || !input.surface.trim()) {
|
|
158
|
+
throw new RAGRetrieverError('invalid_input', 'surface is required');
|
|
159
|
+
}
|
|
160
|
+
if (typeof input.promptText !== 'string' || !input.promptText.trim()) {
|
|
161
|
+
throw new RAGRetrieverError('invalid_input', 'promptText is required');
|
|
162
|
+
}
|
|
163
|
+
if (typeof input.diff !== 'string' || !input.diff.trim()) {
|
|
164
|
+
throw new RAGRetrieverError('invalid_input', 'diff is required');
|
|
165
|
+
}
|
|
166
|
+
if (typeof input.fixAttemptId !== 'string' || !input.fixAttemptId.trim()) {
|
|
167
|
+
throw new RAGRetrieverError('invalid_input', 'fixAttemptId is required');
|
|
168
|
+
}
|
|
169
|
+
if (typeof input.outcomeQuality !== 'number' || Number.isNaN(input.outcomeQuality)) {
|
|
170
|
+
throw new RAGRetrieverError('invalid_input', 'outcomeQuality must be a number');
|
|
171
|
+
}
|
|
172
|
+
if (!Array.isArray(input.embedding) || input.embedding.length !== EMBEDDING_DIM) {
|
|
173
|
+
const actual = Array.isArray(input.embedding) ? String(input.embedding.length) : 'non-array';
|
|
174
|
+
throw new RAGRetrieverError('invalid_embedding_length', `embedding must be ${String(EMBEDDING_DIM)}-dim, got ${actual}`);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
//# sourceMappingURL=rag-retriever.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rag-retriever.js","sourceRoot":"","sources":["../src/rag-retriever.ts"],"names":[],"mappings":"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"}
|
|
@@ -89,6 +89,8 @@ const stubRepo = {
|
|
|
89
89
|
throw new Error('smoke: stubRepo.describeRepo called — DRY_RUN should not reach repo');
|
|
90
90
|
},
|
|
91
91
|
fetchPRDiff: (_prNumber) => Promise.resolve(null),
|
|
92
|
+
fetchFile: () => Promise.resolve(null),
|
|
93
|
+
fetchFileHistory: () => Promise.resolve(null),
|
|
92
94
|
};
|
|
93
95
|
// ─── Wiring ───────────────────────────────────────────────────────────────
|
|
94
96
|
const prisma = new PrismaClient();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smoke-auto-fix.js","sourceRoot":"","sources":["../../src/scripts/smoke-auto-fix.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAWrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,6EAA6E;AAE7E,MAAM,YAAY,GAAG,iBAAiB,CAAC;AACvC,MAAM,kBAAkB,GAAG,UAAU,CAAC;AACtC,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,uBAAuB,CAAC;AAEvF,MAAM,YAAY,GAAG;;;;;;CAMpB,CAAC;AAEF,2EAA2E;AAC3E,uEAAuE;AACvE,wEAAwE;AACxE,yEAAyE;AACzE,yEAAyE;AACzE,WAAW;AACX,OAAO,CAAC,GAAG,CAAC,2BAA2B,GAAG,YAAY,CAAC;AAEvD,6EAA6E;AAE7E;;;;;GAKG;AACH,MAAM,aAAa,GAAuB;IACxC,IAAI,EAAE,mBAAmB;IACzB,YAAY,EAAE,CAAC,IAAsB,EAA4B,EAAE;QACjE,MAAM,IAAI,KAAK,CACb,6FAA6F,CAC9F,CAAC;IACJ,CAAC;CACF,CAAC;AAEF;;;;;GAKG;AACH,MAAM,QAAQ,GAAkB;IAC9B,MAAM,EAAE,CAAC,KAAkB,EAAyB,EAAE;QACpD,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;IACnF,CAAC;IACD,OAAO,EAAE,CAAC,SAAiB,EAAoB,EAAE;QAC/C,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;IACpF,CAAC;IACD,QAAQ,EAAE,CAAC,SAAiB,EAAE,OAAe,EAA2B,EAAE;QACxE,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;IACrF,CAAC;IACD,YAAY,EAAE,GAA0B,EAAE;QACxC,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;IACzF,CAAC;IACD,WAAW,EAAE,CAAC,SAAiB,EAA0B,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"smoke-auto-fix.js","sourceRoot":"","sources":["../../src/scripts/smoke-auto-fix.ts"],"names":[],"mappings":"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"}
|
|
@@ -261,6 +261,8 @@ async function main() {
|
|
|
261
261
|
throw new Error('smoke: describeRepo not exercised');
|
|
262
262
|
},
|
|
263
263
|
fetchPRDiff: () => Promise.resolve(null),
|
|
264
|
+
fetchFile: () => Promise.resolve(null),
|
|
265
|
+
fetchFileHistory: () => Promise.resolve(null),
|
|
264
266
|
};
|
|
265
267
|
const stubRegressionDetector = () => Promise.resolve(false);
|
|
266
268
|
const recorder = createOutcomeRecorder({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smoke-learning-loop.js","sourceRoot":"","sources":["../../src/scripts/smoke-learning-loop.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"smoke-learning-loop.js","sourceRoot":"","sources":["../../src/scripts/smoke-learning-loop.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sprint 4 Phase 5 smoke — exercises the ProjectProfileStore against the real
|
|
3
|
+
* local Postgres by upserting the canonical Lifeline Profile from JSON.
|
|
4
|
+
*
|
|
5
|
+
* Run: pnpm --filter @derwinjs/db smoke:seed-lifeline-profile
|
|
6
|
+
*
|
|
7
|
+
* Prereqs:
|
|
8
|
+
* - Local Postgres running on port 5433 (per Sprint 1 docker setup)
|
|
9
|
+
* - DATABASE_URL set in packages/db/.env
|
|
10
|
+
* - Migrations applied (Sprint 4 Phase 1 ProjectProfile model present)
|
|
11
|
+
* - Seed run at least once so the Lifeline project row exists
|
|
12
|
+
*
|
|
13
|
+
* What this proves:
|
|
14
|
+
* 1. lifeline-profile.json parses and conforms to PutProfileInput
|
|
15
|
+
* 2. createPrismaProjectProfileStore().putProfile round-trips entities,
|
|
16
|
+
* criticalFlows, glossary, dependencies, complianceTags
|
|
17
|
+
* 3. getProfile returns identical counts (no silent JSON column truncation)
|
|
18
|
+
*
|
|
19
|
+
* Idempotent: putProfile is upsert-shaped, so re-running just refreshes
|
|
20
|
+
* lastEvolvedAt/updatedAt without polluting the table. No cleanup needed.
|
|
21
|
+
*
|
|
22
|
+
* Prints "SPRINT4-PHASE5 PROFILE READY ✓" on success. Exits 1 on any failure.
|
|
23
|
+
*/
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=smoke-seed-lifeline-profile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"smoke-seed-lifeline-profile.d.ts","sourceRoot":"","sources":["../../src/scripts/smoke-seed-lifeline-profile.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG"}
|