structx 1.0.0 → 2.0.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/README.md +72 -0
- package/dist/cli.js +88 -205
- package/dist/cli.js.map +1 -1
- package/dist/db/connection.js +28 -1
- package/dist/db/connection.js.map +1 -1
- package/dist/db/queries.d.ts +125 -0
- package/dist/db/queries.d.ts.map +1 -1
- package/dist/db/queries.js +224 -6
- package/dist/db/queries.js.map +1 -1
- package/dist/db/schema.sql +59 -0
- package/dist/ingest/constant-extractor.d.ts +11 -0
- package/dist/ingest/constant-extractor.d.ts.map +1 -0
- package/dist/ingest/constant-extractor.js +38 -0
- package/dist/ingest/constant-extractor.js.map +1 -0
- package/dist/ingest/file-metadata.d.ts +13 -0
- package/dist/ingest/file-metadata.d.ts.map +1 -0
- package/dist/ingest/file-metadata.js +55 -0
- package/dist/ingest/file-metadata.js.map +1 -0
- package/dist/ingest/ingester.d.ts +15 -0
- package/dist/ingest/ingester.d.ts.map +1 -0
- package/dist/ingest/ingester.js +217 -0
- package/dist/ingest/ingester.js.map +1 -0
- package/dist/ingest/parser.d.ts +12 -0
- package/dist/ingest/parser.d.ts.map +1 -1
- package/dist/ingest/parser.js +48 -0
- package/dist/ingest/parser.js.map +1 -1
- package/dist/ingest/route-extractor.d.ts +12 -0
- package/dist/ingest/route-extractor.d.ts.map +1 -0
- package/dist/ingest/route-extractor.js +64 -0
- package/dist/ingest/route-extractor.js.map +1 -0
- package/dist/ingest/type-extractor.d.ts +11 -0
- package/dist/ingest/type-extractor.d.ts.map +1 -0
- package/dist/ingest/type-extractor.js +47 -0
- package/dist/ingest/type-extractor.js.map +1 -0
- package/dist/instructions/codex.md +42 -0
- package/dist/query/answerer.d.ts.map +1 -1
- package/dist/query/answerer.js +6 -2
- package/dist/query/answerer.js.map +1 -1
- package/dist/query/classifier.d.ts +6 -1
- package/dist/query/classifier.d.ts.map +1 -1
- package/dist/query/classifier.js +22 -2
- package/dist/query/classifier.js.map +1 -1
- package/dist/query/context-builder.d.ts.map +1 -1
- package/dist/query/context-builder.js +152 -6
- package/dist/query/context-builder.js.map +1 -1
- package/dist/query/retriever.d.ts +44 -0
- package/dist/query/retriever.d.ts.map +1 -1
- package/dist/query/retriever.js +211 -14
- package/dist/query/retriever.js.map +1 -1
- package/dist/semantic/analyzer.d.ts +10 -0
- package/dist/semantic/analyzer.d.ts.map +1 -1
- package/dist/semantic/analyzer.js +147 -1
- package/dist/semantic/analyzer.js.map +1 -1
- package/dist/semantic/prompt.d.ts +21 -0
- package/dist/semantic/prompt.d.ts.map +1 -1
- package/dist/semantic/prompt.js +63 -0
- package/dist/semantic/prompt.js.map +1 -1
- package/package.json +1 -1
package/dist/semantic/prompt.js
CHANGED
|
@@ -34,6 +34,9 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.buildBatchPrompt = buildBatchPrompt;
|
|
37
|
+
exports.buildTypeAnalysisPrompt = buildTypeAnalysisPrompt;
|
|
38
|
+
exports.buildRouteAnalysisPrompt = buildRouteAnalysisPrompt;
|
|
39
|
+
exports.buildFileSummaryPrompt = buildFileSummaryPrompt;
|
|
37
40
|
exports.hashPrompt = hashPrompt;
|
|
38
41
|
const crypto = __importStar(require("crypto"));
|
|
39
42
|
function buildBatchPrompt(functions) {
|
|
@@ -65,6 +68,66 @@ Respond ONLY with a JSON array, no markdown, no explanation:
|
|
|
65
68
|
}
|
|
66
69
|
]`;
|
|
67
70
|
}
|
|
71
|
+
function buildTypeAnalysisPrompt(types) {
|
|
72
|
+
const typesBlock = types.map((t, i) => `
|
|
73
|
+
Type ${i + 1}: ${t.name}
|
|
74
|
+
Kind: ${t.kind}
|
|
75
|
+
Definition:
|
|
76
|
+
\`\`\`typescript
|
|
77
|
+
${t.full_text}
|
|
78
|
+
\`\`\`
|
|
79
|
+
`).join('\n---\n');
|
|
80
|
+
return `Analyze the following TypeScript types/interfaces/enums. For each, provide a one-sentence purpose description.
|
|
81
|
+
|
|
82
|
+
${typesBlock}
|
|
83
|
+
|
|
84
|
+
Respond ONLY with a JSON array, no markdown, no explanation:
|
|
85
|
+
[
|
|
86
|
+
{
|
|
87
|
+
"name": "exact_name_from_above",
|
|
88
|
+
"purpose": "One sentence describing what this type represents and how it's used"
|
|
89
|
+
}
|
|
90
|
+
]`;
|
|
91
|
+
}
|
|
92
|
+
function buildRouteAnalysisPrompt(routes) {
|
|
93
|
+
const routesBlock = routes.map((r, i) => `
|
|
94
|
+
Route ${i + 1}: ${r.method} ${r.path}
|
|
95
|
+
Handler:
|
|
96
|
+
\`\`\`typescript
|
|
97
|
+
${r.handler_body.substring(0, 1000)}
|
|
98
|
+
\`\`\`
|
|
99
|
+
`).join('\n---\n');
|
|
100
|
+
return `Analyze the following HTTP route handlers. For each, provide a one-sentence purpose description.
|
|
101
|
+
|
|
102
|
+
${routesBlock}
|
|
103
|
+
|
|
104
|
+
Respond ONLY with a JSON array, no markdown, no explanation:
|
|
105
|
+
[
|
|
106
|
+
{
|
|
107
|
+
"method": "exact method",
|
|
108
|
+
"path": "exact path",
|
|
109
|
+
"purpose": "One sentence describing what this endpoint does"
|
|
110
|
+
}
|
|
111
|
+
]`;
|
|
112
|
+
}
|
|
113
|
+
function buildFileSummaryPrompt(files) {
|
|
114
|
+
const filesBlock = files.map((f, i) => `
|
|
115
|
+
File ${i + 1}: ${f.path}
|
|
116
|
+
Exports: ${f.exports.length > 0 ? f.exports.join(', ') : 'none'}
|
|
117
|
+
Stats: ${f.function_count} functions, ${f.type_count} types, ${f.route_count} routes, ${f.loc} LOC
|
|
118
|
+
`).join('\n---\n');
|
|
119
|
+
return `Analyze the following TypeScript files. For each, provide a one-sentence purpose description based on its path, exports, and stats.
|
|
120
|
+
|
|
121
|
+
${filesBlock}
|
|
122
|
+
|
|
123
|
+
Respond ONLY with a JSON array, no markdown, no explanation:
|
|
124
|
+
[
|
|
125
|
+
{
|
|
126
|
+
"path": "exact path",
|
|
127
|
+
"purpose": "One sentence describing what this file is responsible for"
|
|
128
|
+
}
|
|
129
|
+
]`;
|
|
130
|
+
}
|
|
68
131
|
function hashPrompt(prompt) {
|
|
69
132
|
return crypto.createHash('sha256').update(prompt).digest('hex');
|
|
70
133
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/semantic/prompt.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,4CA6BC;AAED,gCAEC;
|
|
1
|
+
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/semantic/prompt.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,4CA6BC;AAQD,0DAqBC;AAQD,4DAqBC;AAWD,wDAkBC;AAED,gCAEC;AAnID,+CAAiC;AAWjC,SAAgB,gBAAgB,CAAC,SAA2B;IAC1D,MAAM,cAAc,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;WACvC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,aAAa;YACzB,EAAE,CAAC,QAAQ;aACV,EAAE,CAAC,SAAS;;;EAGvB,EAAE,CAAC,IAAI;;;WAGE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM;eAC9C,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM;CACxE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAEjB,OAAO;;EAEP,cAAc;;;;;;;;;;;;EAYd,CAAC;AACH,CAAC;AAQD,SAAgB,uBAAuB,CAAC,KAAmB;IACzD,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;OAClC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI;QACf,CAAC,CAAC,IAAI;;;EAGZ,CAAC,CAAC,SAAS;;CAEZ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAEjB,OAAO;;EAEP,UAAU;;;;;;;;EAQV,CAAC;AACH,CAAC;AAQD,SAAgB,wBAAwB,CAAC,MAAqB;IAC5D,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI;;;EAGlC,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC;;CAElC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAEjB,OAAO;;EAEP,WAAW;;;;;;;;;EASX,CAAC;AACH,CAAC;AAWD,SAAgB,sBAAsB,CAAC,KAA0B;IAC/D,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;OAClC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI;WACZ,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM;SACtD,CAAC,CAAC,cAAc,eAAe,CAAC,CAAC,UAAU,WAAW,CAAC,CAAC,WAAW,YAAY,CAAC,CAAC,GAAG;CAC5F,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAEjB,OAAO;;EAEP,UAAU;;;;;;;;EAQV,CAAC;AACH,CAAC;AAED,SAAgB,UAAU,CAAC,MAAc;IACvC,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAClE,CAAC"}
|