@geotechcli/core 0.2.0 → 0.3.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/geo/index.d.ts +2 -1
- package/dist/geo/index.d.ts.map +1 -1
- package/dist/geo/index.js +1 -0
- package/dist/geo/index.js.map +1 -1
- package/dist/geo/seepage.d.ts +62 -0
- package/dist/geo/seepage.d.ts.map +1 -0
- package/dist/geo/seepage.js +130 -0
- package/dist/geo/seepage.js.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/llm/providers/hosted-beta.d.ts.map +1 -1
- package/dist/llm/providers/hosted-beta.js +5 -2
- package/dist/llm/providers/hosted-beta.js.map +1 -1
- package/dist/llm/providers/zhipu.d.ts.map +1 -1
- package/dist/llm/providers/zhipu.js +3 -1
- package/dist/llm/providers/zhipu.js.map +1 -1
- package/dist/llm/util.d.ts +10 -0
- package/dist/llm/util.d.ts.map +1 -0
- package/dist/llm/util.js +54 -0
- package/dist/llm/util.js.map +1 -0
- package/dist/meta/metadata.json +1 -1
- package/dist/report/docx.d.ts +7 -0
- package/dist/report/docx.d.ts.map +1 -0
- package/dist/report/docx.js +173 -0
- package/dist/report/docx.js.map +1 -0
- package/dist/report/index.d.ts +2 -0
- package/dist/report/index.d.ts.map +1 -1
- package/dist/report/index.js +2 -0
- package/dist/report/index.js.map +1 -1
- package/dist/report/pdf.d.ts +7 -0
- package/dist/report/pdf.d.ts.map +1 -0
- package/dist/report/pdf.js +190 -0
- package/dist/report/pdf.js.map +1 -0
- package/dist/vision/index.d.ts.map +1 -1
- package/dist/vision/index.js +62 -12
- package/dist/vision/index.js.map +1 -1
- package/package.json +4 -1
package/dist/geo/index.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
export { calculateBearingCapacity, type BearingCapacityResult, type BearingCapacityInput } from './bearing-capacity.js';
|
|
2
2
|
export { classifyUSCS, classifyRMR89, classifyQSystem, type USCSResult, type RMR89Result, type QSystemResult } from './classification.js';
|
|
3
3
|
export { calculateLiquefaction, type LiquefactionResult } from './liquefaction.js';
|
|
4
|
-
export { calculateConsolidation, calculateSchmertmann, calculatePeckSettlement, type ConsolidationResult, type SchmertmannResult, type PeckSettlementResult, } from './settlement.js';
|
|
4
|
+
export { calculateConsolidation, calculateSchmertmann, calculatePeckSettlement, type ConsolidationInput, type ConsolidationResult, type SchmertmannInput, type SchmertmannResult, type PeckSettlementInput, type PeckSettlementResult, } from './settlement.js';
|
|
5
5
|
export { predictTBMPerformance, selectTBMType, predictCutterWear } from './tunnel/index.js';
|
|
6
6
|
export { calculatePileCapacity, type PileCapacityResult, type PileCapacityInput } from './pile-capacity.js';
|
|
7
7
|
export { calculateSlopeStability, type SlopeStabilityResult, type SlopeStabilityInput } from './slope-stability.js';
|
|
8
8
|
export { calculateLateralEarthPressure, type LateralEarthPressureResult, type LateralEarthPressureInput } from './lateral-earth-pressure.js';
|
|
9
|
+
export { calculateDupuitSeepage, calculateFlowNetSeepage, type DupuitSeepageInput, type FlowNetSeepageInput, type SeepageResult, } from './seepage.js';
|
|
9
10
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/geo/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/geo/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,KAAK,qBAAqB,EAAE,KAAK,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AACxH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC1I,OAAO,EAAE,qBAAqB,EAAE,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACnF,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,GAC1B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC5F,OAAO,EAAE,qBAAqB,EAAE,KAAK,kBAAkB,EAAE,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5G,OAAO,EAAE,uBAAuB,EAAE,KAAK,oBAAoB,EAAE,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACpH,OAAO,EAAE,6BAA6B,EAAE,KAAK,0BAA0B,EAAE,KAAK,yBAAyB,EAAE,MAAM,6BAA6B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/geo/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,KAAK,qBAAqB,EAAE,KAAK,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AACxH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC1I,OAAO,EAAE,qBAAqB,EAAE,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACnF,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,GAC1B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC5F,OAAO,EAAE,qBAAqB,EAAE,KAAK,kBAAkB,EAAE,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5G,OAAO,EAAE,uBAAuB,EAAE,KAAK,oBAAoB,EAAE,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACpH,OAAO,EAAE,6BAA6B,EAAE,KAAK,0BAA0B,EAAE,KAAK,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAC7I,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,aAAa,GACnB,MAAM,cAAc,CAAC"}
|
package/dist/geo/index.js
CHANGED
|
@@ -6,4 +6,5 @@ export { predictTBMPerformance, selectTBMType, predictCutterWear } from './tunne
|
|
|
6
6
|
export { calculatePileCapacity } from './pile-capacity.js';
|
|
7
7
|
export { calculateSlopeStability } from './slope-stability.js';
|
|
8
8
|
export { calculateLateralEarthPressure } from './lateral-earth-pressure.js';
|
|
9
|
+
export { calculateDupuitSeepage, calculateFlowNetSeepage, } from './seepage.js';
|
|
9
10
|
//# sourceMappingURL=index.js.map
|
package/dist/geo/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/geo/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAyD,MAAM,uBAAuB,CAAC;AACxH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAyD,MAAM,qBAAqB,CAAC;AAC1I,OAAO,EAAE,qBAAqB,EAA2B,MAAM,mBAAmB,CAAC;AACnF,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/geo/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAyD,MAAM,uBAAuB,CAAC;AACxH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAyD,MAAM,qBAAqB,CAAC;AAC1I,OAAO,EAAE,qBAAqB,EAA2B,MAAM,mBAAmB,CAAC;AACnF,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,GAOxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC5F,OAAO,EAAE,qBAAqB,EAAmD,MAAM,oBAAoB,CAAC;AAC5G,OAAO,EAAE,uBAAuB,EAAuD,MAAM,sBAAsB,CAAC;AACpH,OAAO,EAAE,6BAA6B,EAAmE,MAAM,6BAA6B,CAAC;AAC7I,OAAO,EACL,sBAAsB,EACtB,uBAAuB,GAIxB,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const DupuitSeepageInputSchema: z.ZodObject<{
|
|
3
|
+
hydraulicConductivity: z.ZodNumber;
|
|
4
|
+
upstreamHead: z.ZodNumber;
|
|
5
|
+
downstreamHead: z.ZodNumber;
|
|
6
|
+
seepageLength: z.ZodNumber;
|
|
7
|
+
specificGravity: z.ZodDefault<z.ZodNumber>;
|
|
8
|
+
voidRatio: z.ZodDefault<z.ZodNumber>;
|
|
9
|
+
}, "strip", z.ZodTypeAny, {
|
|
10
|
+
voidRatio: number;
|
|
11
|
+
hydraulicConductivity: number;
|
|
12
|
+
upstreamHead: number;
|
|
13
|
+
downstreamHead: number;
|
|
14
|
+
seepageLength: number;
|
|
15
|
+
specificGravity: number;
|
|
16
|
+
}, {
|
|
17
|
+
hydraulicConductivity: number;
|
|
18
|
+
upstreamHead: number;
|
|
19
|
+
downstreamHead: number;
|
|
20
|
+
seepageLength: number;
|
|
21
|
+
voidRatio?: number | undefined;
|
|
22
|
+
specificGravity?: number | undefined;
|
|
23
|
+
}>;
|
|
24
|
+
export type DupuitSeepageInput = z.infer<typeof DupuitSeepageInputSchema>;
|
|
25
|
+
export interface SeepageResult {
|
|
26
|
+
seepageFlow: number;
|
|
27
|
+
exitGradient: number;
|
|
28
|
+
criticalGradient: number;
|
|
29
|
+
pipingFOS: number;
|
|
30
|
+
heaveRisk: 'LOW' | 'MODERATE' | 'HIGH' | 'SEVERE';
|
|
31
|
+
heaveRiskDescription: string;
|
|
32
|
+
steps: string[];
|
|
33
|
+
}
|
|
34
|
+
export declare function calculateDupuitSeepage(input: DupuitSeepageInput): SeepageResult;
|
|
35
|
+
export declare const FlowNetSeepageInputSchema: z.ZodObject<{
|
|
36
|
+
hydraulicConductivity: z.ZodNumber;
|
|
37
|
+
totalHead: z.ZodNumber;
|
|
38
|
+
flowChannels: z.ZodNumber;
|
|
39
|
+
equipotentialDrops: z.ZodNumber;
|
|
40
|
+
specificGravity: z.ZodDefault<z.ZodNumber>;
|
|
41
|
+
voidRatio: z.ZodDefault<z.ZodNumber>;
|
|
42
|
+
criticalFlowPath: z.ZodOptional<z.ZodNumber>;
|
|
43
|
+
}, "strip", z.ZodTypeAny, {
|
|
44
|
+
voidRatio: number;
|
|
45
|
+
hydraulicConductivity: number;
|
|
46
|
+
specificGravity: number;
|
|
47
|
+
totalHead: number;
|
|
48
|
+
flowChannels: number;
|
|
49
|
+
equipotentialDrops: number;
|
|
50
|
+
criticalFlowPath?: number | undefined;
|
|
51
|
+
}, {
|
|
52
|
+
hydraulicConductivity: number;
|
|
53
|
+
totalHead: number;
|
|
54
|
+
flowChannels: number;
|
|
55
|
+
equipotentialDrops: number;
|
|
56
|
+
voidRatio?: number | undefined;
|
|
57
|
+
specificGravity?: number | undefined;
|
|
58
|
+
criticalFlowPath?: number | undefined;
|
|
59
|
+
}>;
|
|
60
|
+
export type FlowNetSeepageInput = z.infer<typeof FlowNetSeepageInputSchema>;
|
|
61
|
+
export declare function calculateFlowNetSeepage(input: FlowNetSeepageInput): SeepageResult;
|
|
62
|
+
//# sourceMappingURL=seepage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seepage.d.ts","sourceRoot":"","sources":["../../src/geo/seepage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAYxB,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;EAOnC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,KAAK,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,CAAC;IAClD,oBAAoB,EAAE,MAAM,CAAC;IAC7B,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,kBAAkB,GAAG,aAAa,CA0D/E;AAMD,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;EAQpC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,mBAAmB,GAAG,aAAa,CAmDjF"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
// ---------------------------------------------------------------------------
|
|
3
|
+
// Seepage Analysis Engine
|
|
4
|
+
// Methods: Dupuit-Forchheimer (unconfined) + Flow Net approximation
|
|
5
|
+
// Includes piping/heave safety checks per Terzaghi critical gradient
|
|
6
|
+
// ---------------------------------------------------------------------------
|
|
7
|
+
// ---------------------------------------------------------------------------
|
|
8
|
+
// 1. Dupuit-Forchheimer — Unconfined 2D Seepage
|
|
9
|
+
// ---------------------------------------------------------------------------
|
|
10
|
+
export const DupuitSeepageInputSchema = z.object({
|
|
11
|
+
hydraulicConductivity: z.number().positive().describe('Hydraulic conductivity k (m/s)'),
|
|
12
|
+
upstreamHead: z.number().nonnegative().describe('Upstream head h₁ (m)'),
|
|
13
|
+
downstreamHead: z.number().nonnegative().describe('Downstream head h₂ (m)'),
|
|
14
|
+
seepageLength: z.number().positive().describe('Seepage path length L (m)'),
|
|
15
|
+
specificGravity: z.number().positive().default(2.65).describe('Specific gravity Gs'),
|
|
16
|
+
voidRatio: z.number().positive().default(0.7).describe('Void ratio e₀'),
|
|
17
|
+
});
|
|
18
|
+
export function calculateDupuitSeepage(input) {
|
|
19
|
+
const v = DupuitSeepageInputSchema.parse(input);
|
|
20
|
+
const steps = [];
|
|
21
|
+
const { hydraulicConductivity: k, upstreamHead: h1, downstreamHead: h2, seepageLength: L, specificGravity: Gs, voidRatio: e } = v;
|
|
22
|
+
// Head difference
|
|
23
|
+
const H = h1 - h2;
|
|
24
|
+
steps.push(`Head difference: H = h₁ - h₂ = ${h1} - ${h2} = ${H.toFixed(2)} m`);
|
|
25
|
+
// Dupuit-Forchheimer flow: Q = k × (h₁² - h₂²) / (2L)
|
|
26
|
+
const Q = k * (h1 ** 2 - h2 ** 2) / (2 * L);
|
|
27
|
+
steps.push(`Seepage flow (Dupuit): Q = k(h₁² - h₂²) / (2L) = ${Q.toExponential(3)} m³/s per m`);
|
|
28
|
+
// Average hydraulic gradient
|
|
29
|
+
const iAvg = H / L;
|
|
30
|
+
steps.push(`Average hydraulic gradient: i_avg = H/L = ${iAvg.toFixed(4)}`);
|
|
31
|
+
// Exit gradient (at downstream face, assuming parabolic phreatic surface)
|
|
32
|
+
const iExit = H / (L * (h2 > 0 ? 1 : 0.5));
|
|
33
|
+
const iExitUsed = h2 > 0 ? iAvg : H / (0.5 * L);
|
|
34
|
+
steps.push(`Exit gradient: i_exit ≈ ${iExitUsed.toFixed(4)}`);
|
|
35
|
+
// Terzaghi critical gradient: i_cr = (Gs - 1) / (1 + e)
|
|
36
|
+
const iCritical = (Gs - 1) / (1 + e);
|
|
37
|
+
steps.push(`Critical gradient (Terzaghi): i_cr = (Gs - 1) / (1 + e) = (${Gs} - 1) / (1 + ${e}) = ${iCritical.toFixed(3)}`);
|
|
38
|
+
// Factor of safety against piping
|
|
39
|
+
const FOS = iExitUsed > 0 ? iCritical / iExitUsed : Infinity;
|
|
40
|
+
steps.push(`Factor of safety against piping: FS = i_cr / i_exit = ${FOS === Infinity ? '∞' : FOS.toFixed(2)}`);
|
|
41
|
+
// Risk classification
|
|
42
|
+
let heaveRisk;
|
|
43
|
+
let heaveRiskDescription;
|
|
44
|
+
if (FOS >= 5) {
|
|
45
|
+
heaveRisk = 'LOW';
|
|
46
|
+
heaveRiskDescription = 'Piping risk is low. Standard drainage measures are adequate.';
|
|
47
|
+
}
|
|
48
|
+
else if (FOS >= 3) {
|
|
49
|
+
heaveRisk = 'MODERATE';
|
|
50
|
+
heaveRiskDescription = 'Moderate piping risk. Consider filter design and drainage improvements.';
|
|
51
|
+
}
|
|
52
|
+
else if (FOS >= 1.5) {
|
|
53
|
+
heaveRisk = 'HIGH';
|
|
54
|
+
heaveRiskDescription = 'High piping risk. Filter and cutoff design is strongly recommended.';
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
heaveRisk = 'SEVERE';
|
|
58
|
+
heaveRiskDescription = 'SEVERE: Exit gradient approaches critical. Immediate remedial measures required.';
|
|
59
|
+
}
|
|
60
|
+
steps.push(`Heave/piping risk: ${heaveRisk} (FS = ${FOS === Infinity ? '∞' : FOS.toFixed(2)})`);
|
|
61
|
+
return {
|
|
62
|
+
seepageFlow: parseFloat(Q.toExponential(4)),
|
|
63
|
+
exitGradient: parseFloat(iExitUsed.toFixed(4)),
|
|
64
|
+
criticalGradient: parseFloat(iCritical.toFixed(4)),
|
|
65
|
+
pipingFOS: FOS === Infinity ? 999 : parseFloat(FOS.toFixed(2)),
|
|
66
|
+
heaveRisk,
|
|
67
|
+
heaveRiskDescription,
|
|
68
|
+
steps,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
// ---------------------------------------------------------------------------
|
|
72
|
+
// 2. Flow Net Method — Q = k × H × (Nf / Nd) per unit width
|
|
73
|
+
// ---------------------------------------------------------------------------
|
|
74
|
+
export const FlowNetSeepageInputSchema = z.object({
|
|
75
|
+
hydraulicConductivity: z.number().positive().describe('Hydraulic conductivity k (m/s)'),
|
|
76
|
+
totalHead: z.number().positive().describe('Total head loss H (m)'),
|
|
77
|
+
flowChannels: z.number().int().positive().describe('Number of flow channels Nf'),
|
|
78
|
+
equipotentialDrops: z.number().int().positive().describe('Number of equipotential drops Nd'),
|
|
79
|
+
specificGravity: z.number().positive().default(2.65),
|
|
80
|
+
voidRatio: z.number().positive().default(0.7),
|
|
81
|
+
criticalFlowPath: z.number().positive().optional().describe('Length of critical flow path for exit gradient (m)'),
|
|
82
|
+
});
|
|
83
|
+
export function calculateFlowNetSeepage(input) {
|
|
84
|
+
const v = FlowNetSeepageInputSchema.parse(input);
|
|
85
|
+
const steps = [];
|
|
86
|
+
const { hydraulicConductivity: k, totalHead: H, flowChannels: Nf, equipotentialDrops: Nd, specificGravity: Gs, voidRatio: e } = v;
|
|
87
|
+
// Flow net seepage: Q = k × H × (Nf / Nd)
|
|
88
|
+
const Q = k * H * (Nf / Nd);
|
|
89
|
+
steps.push(`Flow net seepage: Q = k × H × Nf/Nd = ${k} × ${H} × ${Nf}/${Nd} = ${Q.toExponential(3)} m³/s per m`);
|
|
90
|
+
// Exit gradient: Δh per last potential drop / last flow net square dimension
|
|
91
|
+
// For approximation: i_exit ≈ H / (Nd × last_square_size), use H/Nd as head per drop
|
|
92
|
+
const headPerDrop = H / Nd;
|
|
93
|
+
steps.push(`Head loss per equipotential drop: Δh = H/Nd = ${headPerDrop.toFixed(3)} m`);
|
|
94
|
+
// Exit gradient (approximate — last square assumed to have unit dimension 1m if not given)
|
|
95
|
+
const critPathLen = v.criticalFlowPath ?? 1.0;
|
|
96
|
+
const iExit = headPerDrop / critPathLen;
|
|
97
|
+
steps.push(`Exit gradient (approx): i_exit = Δh / critical_path = ${headPerDrop.toFixed(3)} / ${critPathLen} = ${iExit.toFixed(4)}`);
|
|
98
|
+
const iCritical = (Gs - 1) / (1 + e);
|
|
99
|
+
steps.push(`Critical gradient: i_cr = (Gs-1)/(1+e) = ${iCritical.toFixed(3)}`);
|
|
100
|
+
const FOS = iCritical / iExit;
|
|
101
|
+
steps.push(`Piping FS = i_cr / i_exit = ${FOS.toFixed(2)}`);
|
|
102
|
+
let heaveRisk;
|
|
103
|
+
let heaveRiskDescription;
|
|
104
|
+
if (FOS >= 5) {
|
|
105
|
+
heaveRisk = 'LOW';
|
|
106
|
+
heaveRiskDescription = 'Piping risk is low. Standard drainage measures are adequate.';
|
|
107
|
+
}
|
|
108
|
+
else if (FOS >= 3) {
|
|
109
|
+
heaveRisk = 'MODERATE';
|
|
110
|
+
heaveRiskDescription = 'Moderate piping risk. Consider filter design and drainage improvements.';
|
|
111
|
+
}
|
|
112
|
+
else if (FOS >= 1.5) {
|
|
113
|
+
heaveRisk = 'HIGH';
|
|
114
|
+
heaveRiskDescription = 'High piping risk. Filter and cutoff design is strongly recommended.';
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
heaveRisk = 'SEVERE';
|
|
118
|
+
heaveRiskDescription = 'SEVERE: Exit gradient approaches critical. Immediate remedial measures required.';
|
|
119
|
+
}
|
|
120
|
+
return {
|
|
121
|
+
seepageFlow: parseFloat(Q.toExponential(4)),
|
|
122
|
+
exitGradient: parseFloat(iExit.toFixed(4)),
|
|
123
|
+
criticalGradient: parseFloat(iCritical.toFixed(4)),
|
|
124
|
+
pipingFOS: parseFloat(FOS.toFixed(2)),
|
|
125
|
+
heaveRisk,
|
|
126
|
+
heaveRiskDescription,
|
|
127
|
+
steps,
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=seepage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seepage.js","sourceRoot":"","sources":["../../src/geo/seepage.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export * from './llm/index.js';
|
|
2
|
+
export { sanitizeUpstreamError } from './llm/util.js';
|
|
2
3
|
export * from './geo/index.js';
|
|
3
4
|
export * from './config/index.js';
|
|
4
5
|
export * from './meta/index.js';
|
|
@@ -10,7 +11,7 @@ export { runAgent, AgentConversation, type AgentStep, type AgentSession, type Ag
|
|
|
10
11
|
export { runSwarm, type SwarmStep, type SwarmSession, type SwarmCallback, } from './agents/swarm.js';
|
|
11
12
|
export { toolRegistry, type ToolDefinition, type ToolResult, } from './agents/tools.js';
|
|
12
13
|
export { analyzeCoreBox, classifyRMRFromImage, classifySoilFromDescription, interpretBoreholeLog, queryGBRDocument, interpretSensorImage, type ParseSafety, type ParseStatus, type CoreBoxAnalysisResult, type HybridRMRResult, type SoilClassificationFromTextResult, type BoreholeInterpretation, type BoreholeLayer, type SensorInterpretation, } from './vision/index.js';
|
|
13
|
-
export { generateReport, type GeneratedReport, type ReportSection } from './report/index.js';
|
|
14
|
+
export { generateReport, renderReportAsPdf, renderReportAsDocx, type GeneratedReport, type ReportSection } from './report/index.js';
|
|
14
15
|
export { exportGeoJSON, exportBoreholeGeoJSON, exportDXF, exportBoreholeProfileDXF, exportCSV, exportJSON, type GeoJSONFeatureInput, type DXFEntity, } from './export/index.js';
|
|
15
16
|
export { detectSoftware, generatePLAXISScript, generateFLACScript, generateRocscienceScript, type BridgeStatus, type ScriptTemplate, type SoftwareType, } from './bridge/index.js';
|
|
16
17
|
export { InMemoryUsageStore, checkUsageAndAbuse, generateFingerprint, detectSuspiciousActivity, type UsageRecord, type UsageStore, type AbuseCheckResult, } from './llm/middleware/metering.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,gBAAgB,CAAC;AAG/B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAGhC,cAAc,mBAAmB,CAAC;AAGlC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,KAAK,iBAAiB,EAAE,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAGzI,OAAO,EACL,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EACpE,cAAc,EAAE,mBAAmB,EAAE,OAAO,EAAE,oBAAoB,EAClE,gBAAgB,EAAE,oBAAoB,EAAE,aAAa,EAAE,WAAW,EAClE,eAAe,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,sBAAsB,EACvF,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,KAAK,gBAAgB,EAC3E,KAAK,iBAAiB,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,KAAK,gBAAgB,EACxF,KAAK,mBAAmB,EAAE,KAAK,qBAAqB,GACrD,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,iBAAiB,EAAE,KAAK,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EACL,QAAQ,EACR,iBAAiB,EACjB,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,aAAa,GACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,QAAQ,EACR,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,aAAa,GACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,YAAY,EACZ,KAAK,cAAc,EACnB,KAAK,UAAU,GAChB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,2BAA2B,EAC3B,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,KAAK,gCAAgC,EACrC,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EAClB,KAAK,oBAAoB,GAC1B,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,cAAc,EAAE,KAAK,eAAe,EAAE,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
// LLM provider layer
|
|
2
2
|
export * from './llm/index.js';
|
|
3
|
+
// LLM error utilities
|
|
4
|
+
export { sanitizeUpstreamError } from './llm/util.js';
|
|
3
5
|
// Geotechnical computation engines
|
|
4
6
|
export * from './geo/index.js';
|
|
5
7
|
// Configuration
|
|
@@ -18,7 +20,7 @@ export { runSwarm, } from './agents/swarm.js';
|
|
|
18
20
|
export { toolRegistry, } from './agents/tools.js';
|
|
19
21
|
export { analyzeCoreBox, classifyRMRFromImage, classifySoilFromDescription, interpretBoreholeLog, queryGBRDocument, interpretSensorImage, } from './vision/index.js';
|
|
20
22
|
// Report generation
|
|
21
|
-
export { generateReport } from './report/index.js';
|
|
23
|
+
export { generateReport, renderReportAsPdf, renderReportAsDocx } from './report/index.js';
|
|
22
24
|
// Export formats
|
|
23
25
|
export { exportGeoJSON, exportBoreholeGeoJSON, exportDXF, exportBoreholeProfileDXF, exportCSV, exportJSON, } from './export/index.js';
|
|
24
26
|
// Software bridges
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qBAAqB;AACrB,cAAc,gBAAgB,CAAC;AAE/B,mCAAmC;AACnC,cAAc,gBAAgB,CAAC;AAE/B,gBAAgB;AAChB,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAEhC,4BAA4B;AAC5B,cAAc,mBAAmB,CAAC;AAElC,qBAAqB;AACrB,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAqD,MAAM,sBAAsB,CAAC;AAEzI,6BAA6B;AAC7B,OAAO,EACL,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EACpE,cAAc,EAAE,mBAAmB,EAAE,OAAO,EAAE,oBAAoB,EAClE,gBAAgB,EAAE,oBAAoB,EAAE,aAAa,EAAE,WAAW,EAClE,eAAe,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,sBAAsB,GAIxF,MAAM,oBAAoB,CAAC;AAE5B,uCAAuC;AACvC,OAAO,EAAE,iBAAiB,EAAiB,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EACL,QAAQ,EACR,iBAAiB,GAIlB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,QAAQ,GAIT,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,YAAY,GAGb,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,2BAA2B,EAC3B,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,GASrB,MAAM,mBAAmB,CAAC;AAE3B,oBAAoB;AACpB,OAAO,EAAE,cAAc,EAA4C,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qBAAqB;AACrB,cAAc,gBAAgB,CAAC;AAE/B,sBAAsB;AACtB,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAEtD,mCAAmC;AACnC,cAAc,gBAAgB,CAAC;AAE/B,gBAAgB;AAChB,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAEhC,4BAA4B;AAC5B,cAAc,mBAAmB,CAAC;AAElC,qBAAqB;AACrB,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAqD,MAAM,sBAAsB,CAAC;AAEzI,6BAA6B;AAC7B,OAAO,EACL,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EACpE,cAAc,EAAE,mBAAmB,EAAE,OAAO,EAAE,oBAAoB,EAClE,gBAAgB,EAAE,oBAAoB,EAAE,aAAa,EAAE,WAAW,EAClE,eAAe,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,sBAAsB,GAIxF,MAAM,oBAAoB,CAAC;AAE5B,uCAAuC;AACvC,OAAO,EAAE,iBAAiB,EAAiB,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EACL,QAAQ,EACR,iBAAiB,GAIlB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,QAAQ,GAIT,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,YAAY,GAGb,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,2BAA2B,EAC3B,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,GASrB,MAAM,mBAAmB,CAAC;AAE3B,oBAAoB;AACpB,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,kBAAkB,EAA4C,MAAM,mBAAmB,CAAC;AAEpI,iBAAiB;AACjB,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,SAAS,EACT,wBAAwB,EACxB,SAAS,EACT,UAAU,GAGX,MAAM,mBAAmB,CAAC;AAE3B,mBAAmB;AACnB,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,wBAAwB,GAIzB,MAAM,mBAAmB,CAAC;AAE3B,wBAAwB;AACxB,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,GAIzB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAEtE,qBAAqB;AACrB,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EACf,eAAe,GAEhB,MAAM,qBAAqB,CAAC;AAE7B,4CAA4C;AAC5C,OAAO,EACL,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAC3D,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,uBAAuB,EAClE,UAAU,EAAE,kBAAkB,EAAE,kBAAkB,EAClD,aAAa,EAAE,kBAAkB,EAAE,UAAU,EAAE,oBAAoB,EACnE,eAAe,EAAE,oBAAoB,EAAE,gBAAgB,GAExD,MAAM,eAAe,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hosted-beta.d.ts","sourceRoot":"","sources":["../../../src/llm/providers/hosted-beta.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,SAAS,EAEV,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"hosted-beta.d.ts","sourceRoot":"","sources":["../../../src/llm/providers/hosted-beta.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,SAAS,EAEV,MAAM,aAAa,CAAC;AAsFrB,qBAAa,iBAAkB,YAAW,eAAe;IACvD,QAAQ,CAAC,IAAI,EAAG,aAAa,CAAU;IACvC,QAAQ,CAAC,YAAY,SAAqB;IAC1C,QAAQ,CAAC,kBAAkB,SAA4B;IAEvD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,OAAO,CAAC,EAAE,MAAM;IAOtB,QAAQ,CACZ,OAAO,EAAE,iBAAiB,EAC1B,MAAM,EAAE,SAAS,GAChB,OAAO,CAAC,kBAAkB,CAAC;CA8D/B"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { DEFAULT_LLM_MODEL, DEFAULT_LLM_VISION_MODEL, GEOTECHCLI_VERSION, } from '../../meta/index.js';
|
|
2
|
+
import { sanitizeUpstreamError } from '../util.js';
|
|
2
3
|
function inferCallType(request) {
|
|
3
4
|
const hasVisionInput = request.messages.some((message) => Array.isArray(message.content) &&
|
|
4
5
|
message.content.some((part) => part.type === 'image_url'));
|
|
@@ -24,8 +25,10 @@ function readMessageContent(content) {
|
|
|
24
25
|
.trim();
|
|
25
26
|
}
|
|
26
27
|
function formatHostedBetaError(status, data, fallback) {
|
|
27
|
-
const
|
|
28
|
-
const
|
|
28
|
+
const rawMessage = data.error?.message?.trim() || fallback;
|
|
29
|
+
const message = sanitizeUpstreamError(rawMessage);
|
|
30
|
+
const rawDetail = data.error?.detail?.trim();
|
|
31
|
+
const detail = rawDetail ? sanitizeUpstreamError(rawDetail) : undefined;
|
|
29
32
|
const remaining = typeof data.error?.remaining === 'number'
|
|
30
33
|
? ` Remaining today: ${data.error.remaining}.`
|
|
31
34
|
: '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hosted-beta.js","sourceRoot":"","sources":["../../../src/llm/providers/hosted-beta.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"hosted-beta.js","sourceRoot":"","sources":["../../../src/llm/providers/hosted-beta.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zhipu.d.ts","sourceRoot":"","sources":["../../../src/llm/providers/zhipu.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,SAAS,EACV,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"zhipu.d.ts","sourceRoot":"","sources":["../../../src/llm/providers/zhipu.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,SAAS,EACV,MAAM,aAAa,CAAC;AAwBrB,qBAAa,YAAa,YAAW,eAAe;IAClD,QAAQ,CAAC,IAAI,EAAG,OAAO,CAAU;IACjC,QAAQ,CAAC,YAAY,SAAqB;IAC1C,QAAQ,CAAC,kBAAkB,SAA4B;IAEvD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,OAAO,CAAC,EAAE,MAAM;IAItB,QAAQ,CACZ,OAAO,EAAE,iBAAiB,EAC1B,MAAM,EAAE,SAAS,GAChB,OAAO,CAAC,kBAAkB,CAAC;CAoF/B"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { DEFAULT_LLM_MODEL, DEFAULT_LLM_VISION_MODEL, } from '../../meta/index.js';
|
|
2
|
+
import { sanitizeUpstreamError } from '../util.js';
|
|
2
3
|
export class ZhipuAdapter {
|
|
3
4
|
name = 'zhipu';
|
|
4
5
|
defaultModel = DEFAULT_LLM_MODEL;
|
|
@@ -57,7 +58,8 @@ export class ZhipuAdapter {
|
|
|
57
58
|
});
|
|
58
59
|
if (!res.ok) {
|
|
59
60
|
const errText = await res.text().catch(() => 'Unknown error');
|
|
60
|
-
|
|
61
|
+
const safeErr = sanitizeUpstreamError(errText);
|
|
62
|
+
throw new Error(`Zhipu API error (${res.status}): ${safeErr}`);
|
|
61
63
|
}
|
|
62
64
|
const data = (await res.json());
|
|
63
65
|
const latencyMs = Date.now() - start;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zhipu.js","sourceRoot":"","sources":["../../../src/llm/providers/zhipu.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"zhipu.js","sourceRoot":"","sources":["../../../src/llm/providers/zhipu.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sanitize an upstream LLM provider error message so that only English text
|
|
3
|
+
* is ever shown to CLI users.
|
|
4
|
+
*
|
|
5
|
+
* 1. Direct map lookup for known Zhipu error strings.
|
|
6
|
+
* 2. CJK character detection → generic English replacement.
|
|
7
|
+
* 3. Otherwise return the original string unchanged.
|
|
8
|
+
*/
|
|
9
|
+
export declare function sanitizeUpstreamError(raw: string | undefined | null): string;
|
|
10
|
+
//# sourceMappingURL=util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/llm/util.ts"],"names":[],"mappings":"AA4BA;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAuB5E"}
|
package/dist/llm/util.js
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// Upstream error sanitizer — ensures all error messages shown to CLI users
|
|
3
|
+
// are in English, regardless of what the upstream LLM provider returns.
|
|
4
|
+
// Zhipu/Z.AI API returns Chinese-language error strings that must be
|
|
5
|
+
// translated before surfacing to the user.
|
|
6
|
+
// ---------------------------------------------------------------------------
|
|
7
|
+
const UPSTREAM_ERROR_MAP = {
|
|
8
|
+
// Zhipu / Z.AI known error strings (Chinese → English)
|
|
9
|
+
'图片输入格式/解析错误': 'Image input format or parsing error. Use PNG or JPG (avoid raw PDFs).',
|
|
10
|
+
'请求参数错误': 'Invalid request parameters sent to the AI provider.',
|
|
11
|
+
'模型不存在': 'The requested AI model does not exist on the provider.',
|
|
12
|
+
'超出最大输入长度': 'Input exceeds the maximum token length. Try a shorter prompt or smaller image.',
|
|
13
|
+
'系统繁忙': 'The AI provider service is currently busy. Please try again shortly.',
|
|
14
|
+
'余额不足': 'The hosted beta AI account has insufficient credits. Contact support.',
|
|
15
|
+
'访问受限': 'Access to the AI provider is currently restricted.',
|
|
16
|
+
'内容过滤': 'The request was blocked by the AI provider content filter.',
|
|
17
|
+
'图片大小超限': 'Image size exceeds the provider limit. Resize the image and try again.',
|
|
18
|
+
'不支持的图片格式': 'Unsupported image format. Use PNG or JPG.',
|
|
19
|
+
'无效的API密钥': 'Invalid API key configured on the hosted beta server.',
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* CJK Unicode ranges: CJK Unified Ideographs, CJK Symbols, Fullwidth forms,
|
|
23
|
+
* Hiragana, Katakana, Hangul.
|
|
24
|
+
*/
|
|
25
|
+
const CJK_PATTERN = /[\u4e00-\u9fff\u3000-\u303f\uff00-\uffef\u3040-\u309f\u30a0-\u30ff\uac00-\ud7af]/;
|
|
26
|
+
/**
|
|
27
|
+
* Sanitize an upstream LLM provider error message so that only English text
|
|
28
|
+
* is ever shown to CLI users.
|
|
29
|
+
*
|
|
30
|
+
* 1. Direct map lookup for known Zhipu error strings.
|
|
31
|
+
* 2. CJK character detection → generic English replacement.
|
|
32
|
+
* 3. Otherwise return the original string unchanged.
|
|
33
|
+
*/
|
|
34
|
+
export function sanitizeUpstreamError(raw) {
|
|
35
|
+
if (!raw)
|
|
36
|
+
return 'The AI provider returned an unspecified error.';
|
|
37
|
+
const trimmed = raw.trim();
|
|
38
|
+
// Direct known-error lookup (exact match)
|
|
39
|
+
if (UPSTREAM_ERROR_MAP[trimmed]) {
|
|
40
|
+
return UPSTREAM_ERROR_MAP[trimmed];
|
|
41
|
+
}
|
|
42
|
+
// Partial match — check if any known Chinese key is a substring
|
|
43
|
+
for (const [key, translation] of Object.entries(UPSTREAM_ERROR_MAP)) {
|
|
44
|
+
if (trimmed.includes(key)) {
|
|
45
|
+
return translation;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
// Detect any CJK characters in the string
|
|
49
|
+
if (CJK_PATTERN.test(trimmed)) {
|
|
50
|
+
return 'The AI provider returned a non-English error. The image format or request may be unsupported. Try a PNG or JPG image file.';
|
|
51
|
+
}
|
|
52
|
+
return trimmed;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/llm/util.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,2EAA2E;AAC3E,wEAAwE;AACxE,qEAAqE;AACrE,2CAA2C;AAC3C,8EAA8E;AAE9E,MAAM,kBAAkB,GAA2B;IACjD,uDAAuD;IACvD,aAAa,EAAE,uEAAuE;IACtF,QAAQ,EAAE,qDAAqD;IAC/D,OAAO,EAAE,wDAAwD;IACjE,UAAU,EAAE,gFAAgF;IAC5F,MAAM,EAAE,sEAAsE;IAC9E,MAAM,EAAE,uEAAuE;IAC/E,MAAM,EAAE,oDAAoD;IAC5D,MAAM,EAAE,4DAA4D;IACpE,QAAQ,EAAE,wEAAwE;IAClF,UAAU,EAAE,2CAA2C;IACvD,UAAU,EAAE,uDAAuD;CACpE,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,GAAG,kFAAkF,CAAC;AAEvG;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAA8B;IAClE,IAAI,CAAC,GAAG;QAAE,OAAO,gDAAgD,CAAC;IAElE,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAE3B,0CAA0C;IAC1C,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,gEAAgE;IAChE,KAAK,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACpE,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO,WAAW,CAAC;QACrB,CAAC;IACH,CAAC;IAED,0CAA0C;IAC1C,IAAI,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9B,OAAO,4HAA4H,CAAC;IACtI,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
package/dist/meta/metadata.json
CHANGED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DOCX report renderer using the `docx` library (pure JS, Open XML).
|
|
3
|
+
* Converts a GeneratedReport into a professional Word document buffer.
|
|
4
|
+
*/
|
|
5
|
+
import type { GeneratedReport } from './index.js';
|
|
6
|
+
export declare function renderReportAsDocx(report: GeneratedReport): Promise<Buffer>;
|
|
7
|
+
//# sourceMappingURL=docx.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docx.d.ts","sourceRoot":"","sources":["../../src/report/docx.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAqClD,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAkKjF"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
async function getDocx() {
|
|
2
|
+
try {
|
|
3
|
+
return await import('docx');
|
|
4
|
+
}
|
|
5
|
+
catch {
|
|
6
|
+
throw new Error('docx is required for DOCX export. Install it: npm install docx --workspace=@geotechcli/core');
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Strip markdown syntax for plain text rendering.
|
|
11
|
+
*/
|
|
12
|
+
function stripMd(text) {
|
|
13
|
+
return text
|
|
14
|
+
.replace(/\*\*(.+?)\*\*/g, '$1')
|
|
15
|
+
.replace(/\*(.+?)\*/g, '$1')
|
|
16
|
+
.replace(/`(.+?)`/g, '$1')
|
|
17
|
+
.replace(/\[([^\]]+)\]\([^)]+\)/g, '$1')
|
|
18
|
+
.trim();
|
|
19
|
+
}
|
|
20
|
+
function isTableSep(line) {
|
|
21
|
+
return /^\|[-: |]+\|$/.test(line.trim());
|
|
22
|
+
}
|
|
23
|
+
function isTableRow(line) {
|
|
24
|
+
return line.trim().startsWith('|') && !isTableSep(line);
|
|
25
|
+
}
|
|
26
|
+
function parseRow(line) {
|
|
27
|
+
return line.split('|').slice(1, -1).map(c => c.trim());
|
|
28
|
+
}
|
|
29
|
+
export async function renderReportAsDocx(report) {
|
|
30
|
+
const docx = await getDocx();
|
|
31
|
+
const { Document, Packer, Paragraph, TextRun, HeadingLevel, Table, TableRow, TableCell, WidthType, BorderStyle, AlignmentType, PageBreak, Header, Footer, } = docx;
|
|
32
|
+
const BRAND_COLOR = '00b8c8';
|
|
33
|
+
const DARK = '1a1a2e';
|
|
34
|
+
const allChildren = [];
|
|
35
|
+
// Title
|
|
36
|
+
allChildren.push(new Paragraph({
|
|
37
|
+
text: report.title,
|
|
38
|
+
heading: HeadingLevel.TITLE,
|
|
39
|
+
alignment: AlignmentType.CENTER,
|
|
40
|
+
spacing: { after: 300 },
|
|
41
|
+
run: { color: BRAND_COLOR },
|
|
42
|
+
}));
|
|
43
|
+
allChildren.push(new Paragraph({
|
|
44
|
+
children: [new TextRun({ text: `Generated by geotechCLI v0.3.0 · ${new Date().toISOString().split('T')[0]}`, color: '888899', size: 20 })],
|
|
45
|
+
alignment: AlignmentType.CENTER,
|
|
46
|
+
spacing: { after: 600 },
|
|
47
|
+
}));
|
|
48
|
+
// Sections
|
|
49
|
+
for (const section of report.sections) {
|
|
50
|
+
// Page break before each section (except first)
|
|
51
|
+
if (section !== report.sections[0]) {
|
|
52
|
+
allChildren.push(new Paragraph({ children: [new PageBreak()] }));
|
|
53
|
+
}
|
|
54
|
+
// Section heading
|
|
55
|
+
allChildren.push(new Paragraph({
|
|
56
|
+
text: section.title,
|
|
57
|
+
heading: HeadingLevel.HEADING_1,
|
|
58
|
+
spacing: { before: 200, after: 180 },
|
|
59
|
+
}));
|
|
60
|
+
// Parse content
|
|
61
|
+
const lines = section.content.split('\n');
|
|
62
|
+
let tableLines = [];
|
|
63
|
+
let inTable = false;
|
|
64
|
+
const flushTable = () => {
|
|
65
|
+
if (tableLines.length < 2) {
|
|
66
|
+
tableLines = [];
|
|
67
|
+
inTable = false;
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
const dataLines = tableLines.filter(l => !isTableSep(l));
|
|
71
|
+
if (dataLines.length < 2) {
|
|
72
|
+
tableLines = [];
|
|
73
|
+
inTable = false;
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
const headers = parseRow(dataLines[0]);
|
|
77
|
+
const rows = dataLines.slice(1).map(parseRow);
|
|
78
|
+
const colCount = headers.length;
|
|
79
|
+
const colWidth = Math.floor(9030 / colCount);
|
|
80
|
+
const headerRow = new TableRow({
|
|
81
|
+
children: headers.map(h => new TableCell({
|
|
82
|
+
children: [new Paragraph({
|
|
83
|
+
children: [new TextRun({ text: stripMd(h), bold: true, color: BRAND_COLOR })],
|
|
84
|
+
alignment: AlignmentType.LEFT,
|
|
85
|
+
})],
|
|
86
|
+
shading: { fill: 'f0f8fa' },
|
|
87
|
+
width: { size: colWidth, type: WidthType.DXA },
|
|
88
|
+
})),
|
|
89
|
+
tableHeader: true,
|
|
90
|
+
});
|
|
91
|
+
const dataRows = rows.map(row => new TableRow({
|
|
92
|
+
children: row.map(cell => new TableCell({
|
|
93
|
+
children: [new Paragraph({ children: [new TextRun({ text: stripMd(cell), color: DARK })] })],
|
|
94
|
+
width: { size: colWidth, type: WidthType.DXA },
|
|
95
|
+
})),
|
|
96
|
+
}));
|
|
97
|
+
allChildren.push(new Table({
|
|
98
|
+
rows: [headerRow, ...dataRows],
|
|
99
|
+
width: { size: 9030, type: WidthType.DXA },
|
|
100
|
+
borders: {
|
|
101
|
+
top: { style: BorderStyle.SINGLE, size: 1, color: 'ccccdd' },
|
|
102
|
+
bottom: { style: BorderStyle.SINGLE, size: 1, color: 'ccccdd' },
|
|
103
|
+
left: { style: BorderStyle.SINGLE, size: 1, color: 'ccccdd' },
|
|
104
|
+
right: { style: BorderStyle.SINGLE, size: 1, color: 'ccccdd' },
|
|
105
|
+
insideHorizontal: { style: BorderStyle.SINGLE, size: 1, color: 'ccccdd' },
|
|
106
|
+
insideVertical: { style: BorderStyle.SINGLE, size: 1, color: 'ccccdd' },
|
|
107
|
+
},
|
|
108
|
+
}));
|
|
109
|
+
allChildren.push(new Paragraph({ text: '', spacing: { after: 160 } }));
|
|
110
|
+
tableLines = [];
|
|
111
|
+
inTable = false;
|
|
112
|
+
};
|
|
113
|
+
for (const line of lines) {
|
|
114
|
+
if (isTableRow(line) || isTableSep(line)) {
|
|
115
|
+
inTable = true;
|
|
116
|
+
tableLines.push(line);
|
|
117
|
+
continue;
|
|
118
|
+
}
|
|
119
|
+
if (inTable)
|
|
120
|
+
flushTable();
|
|
121
|
+
const t = line.trim();
|
|
122
|
+
if (!t) {
|
|
123
|
+
allChildren.push(new Paragraph({ text: '' }));
|
|
124
|
+
continue;
|
|
125
|
+
}
|
|
126
|
+
if (/^##\s/.test(t)) {
|
|
127
|
+
allChildren.push(new Paragraph({ text: stripMd(t.replace(/^##\s+/, '')), heading: HeadingLevel.HEADING_2 }));
|
|
128
|
+
}
|
|
129
|
+
else if (/^###\s/.test(t)) {
|
|
130
|
+
allChildren.push(new Paragraph({ text: stripMd(t.replace(/^###\s+/, '')), heading: HeadingLevel.HEADING_3 }));
|
|
131
|
+
}
|
|
132
|
+
else if (/^[-*+]\s/.test(t)) {
|
|
133
|
+
allChildren.push(new Paragraph({
|
|
134
|
+
children: [new TextRun({ text: stripMd(t.replace(/^[-*+]\s+/, '')), color: DARK })],
|
|
135
|
+
bullet: { level: 0 },
|
|
136
|
+
spacing: { after: 60 },
|
|
137
|
+
}));
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
allChildren.push(new Paragraph({
|
|
141
|
+
children: [new TextRun({ text: stripMd(t), color: DARK })],
|
|
142
|
+
spacing: { after: 100 },
|
|
143
|
+
}));
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
if (inTable)
|
|
147
|
+
flushTable();
|
|
148
|
+
}
|
|
149
|
+
const doc = new Document({
|
|
150
|
+
sections: [{
|
|
151
|
+
properties: {},
|
|
152
|
+
headers: {
|
|
153
|
+
default: new Header({
|
|
154
|
+
children: [new Paragraph({
|
|
155
|
+
children: [new TextRun({ text: `geotechCLI · ${report.title}`, color: '888899', size: 18 })],
|
|
156
|
+
alignment: AlignmentType.RIGHT,
|
|
157
|
+
})],
|
|
158
|
+
}),
|
|
159
|
+
},
|
|
160
|
+
footers: {
|
|
161
|
+
default: new Footer({
|
|
162
|
+
children: [new Paragraph({
|
|
163
|
+
children: [new TextRun({ text: 'geotechCLI — Confidential Engineering Report', color: '888899', size: 18 })],
|
|
164
|
+
alignment: AlignmentType.CENTER,
|
|
165
|
+
})],
|
|
166
|
+
}),
|
|
167
|
+
},
|
|
168
|
+
children: allChildren,
|
|
169
|
+
}],
|
|
170
|
+
});
|
|
171
|
+
return Buffer.from(await Packer.toBuffer(doc));
|
|
172
|
+
}
|
|
173
|
+
//# sourceMappingURL=docx.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docx.js","sourceRoot":"","sources":["../../src/report/docx.ts"],"names":[],"mappings":"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"}
|
package/dist/report/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/report/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,cAAc,CAClC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,OAAO,EAAE;IACP,IAAI,EAAE,UAAU,GAAG,oBAAoB,GAAG,eAAe,GAAG,YAAY,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC9F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,EACD,MAAM,EAAE,SAAS,GAChB,OAAO,CAAC,eAAe,CAAC,CA8D1B"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/report/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,cAAc,CAClC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,OAAO,EAAE;IACP,IAAI,EAAE,UAAU,GAAG,oBAAoB,GAAG,eAAe,GAAG,YAAY,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC9F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,EACD,MAAM,EAAE,SAAS,GAChB,OAAO,CAAC,eAAe,CAAC,CA8D1B"}
|
package/dist/report/index.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { generateText } from '../llm/router.js';
|
|
2
|
+
export { renderReportAsPdf } from './pdf.js';
|
|
3
|
+
export { renderReportAsDocx } from './docx.js';
|
|
2
4
|
export async function generateReport(analysisData, options, config) {
|
|
3
5
|
const dataStr = JSON.stringify(analysisData, null, 2);
|
|
4
6
|
const prompt = `Generate a professional geotechnical engineering report based on this analysis data:
|
package/dist/report/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/report/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/report/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAc/C,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,YAAqC,EACrC,OAOC,EACD,MAAiB;IAEjB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAEtD,MAAM,MAAM,GAAG;;EAEf,OAAO;;;UAGC,OAAO,CAAC,IAAI;aACT,OAAO,CAAC,WAAW,IAAI,iBAAiB;cACvC,OAAO,CAAC,QAAQ,IAAI,eAAe;cACnC,OAAO,CAAC,QAAQ,IAAI,SAAS;EACzC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,YAAY,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;+IAWyE,CAAC;IAE9I,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE;QAClD,YAAY,EAAE,8SAA8S;QAC5T,WAAW,EAAE,GAAG;QAChB,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IAEH,+BAA+B;IAC/B,MAAM,QAAQ,GAAoB,EAAE,CAAC;IACrC,MAAM,YAAY,GAAG,mBAAmB,CAAC;IACzC,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,SAAS,GAAG,UAAU,CAAC;IAC3B,IAAI,KAA6B,CAAC;IAElC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAE3B,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAClD,IAAI,KAAK,CAAC,KAAK,GAAG,SAAS,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;YAC1D,IAAI,OAAO,EAAE,CAAC;gBACZ,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QACD,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACrB,SAAS,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5C,CAAC;IAED,eAAe;IACf,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,OAAO;QACL,KAAK,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,aAAa,OAAO,CAAC,WAAW,IAAI,SAAS,EAAE;QACjI,QAAQ;QACR,YAAY,EAAE,QAAQ,CAAC,IAAI;QAC3B,SAAS,EAAE,QAAQ,CAAC,SAAS;KAC9B,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PDF report renderer using pdfkit (pure JS, no native deps).
|
|
3
|
+
* Converts a GeneratedReport (markdown sections) to a professional PDF buffer.
|
|
4
|
+
*/
|
|
5
|
+
import type { GeneratedReport } from './index.js';
|
|
6
|
+
export declare function renderReportAsPdf(report: GeneratedReport): Promise<Buffer>;
|
|
7
|
+
//# sourceMappingURL=pdf.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pdf.d.ts","sourceRoot":"","sources":["../../src/report/pdf.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,eAAe,EAAiB,MAAM,YAAY,CAAC;AA4DjE,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAgIhF"}
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
// Dynamic import to avoid top-level require errors when pdfkit is installed
|
|
2
|
+
async function getPDFKit() {
|
|
3
|
+
try {
|
|
4
|
+
// @ts-ignore — pdfkit may not have perfect ESM types
|
|
5
|
+
const { default: PDFDocument } = await import('pdfkit');
|
|
6
|
+
return PDFDocument;
|
|
7
|
+
}
|
|
8
|
+
catch {
|
|
9
|
+
throw new Error('pdfkit is required for PDF export. Install it: npm install pdfkit --workspace=@geotechcli/core');
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
const BRAND_CYAN = '#00b8c8';
|
|
13
|
+
const TEXT_DARK = '#1a1a2e';
|
|
14
|
+
const TEXT_GRAY = '#555577';
|
|
15
|
+
const LINE_GRAY = '#ccccdd';
|
|
16
|
+
const PAGE_MARGIN = 56;
|
|
17
|
+
const FONT_TITLE = 'Helvetica-Bold';
|
|
18
|
+
const FONT_BODY = 'Helvetica';
|
|
19
|
+
const FONT_BOLD = 'Helvetica-Bold';
|
|
20
|
+
/**
|
|
21
|
+
* Strip markdown syntax for plain text rendering in PDF.
|
|
22
|
+
*/
|
|
23
|
+
function stripMarkdown(text) {
|
|
24
|
+
return text
|
|
25
|
+
.replace(/^#{1,6}\s+/gm, '') // headings
|
|
26
|
+
.replace(/\*\*(.+?)\*\*/g, '$1') // bold
|
|
27
|
+
.replace(/\*(.+?)\*/g, '$1') // italic
|
|
28
|
+
.replace(/`(.+?)`/g, '$1') // inline code
|
|
29
|
+
.replace(/^\s*[-*+]\s+/gm, '• ') // bullets
|
|
30
|
+
.replace(/^\s*\d+\.\s+/gm, '') // numbered lists
|
|
31
|
+
.replace(/\|[-:| ]+\|/g, '') // table separators
|
|
32
|
+
.replace(/\[([^\]]+)\]\([^)]+\)/g, '$1') // links
|
|
33
|
+
.trim();
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Detect if a line is a markdown table row.
|
|
37
|
+
*/
|
|
38
|
+
function isTableLine(line) {
|
|
39
|
+
return line.trim().startsWith('|');
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Parse a simple markdown table into headers and rows.
|
|
43
|
+
*/
|
|
44
|
+
function parseMarkdownTable(block) {
|
|
45
|
+
const dataLines = block.filter(l => !l.replace(/\|/g, '').replace(/-/g, '').trim().match(/^[-:| ]*$/));
|
|
46
|
+
if (dataLines.length < 2)
|
|
47
|
+
return null;
|
|
48
|
+
const parse = (line) => line.split('|').slice(1, -1).map(c => c.trim());
|
|
49
|
+
const headers = parse(dataLines[0]);
|
|
50
|
+
const rows = dataLines.slice(1).map(parse);
|
|
51
|
+
return { headers, rows };
|
|
52
|
+
}
|
|
53
|
+
export async function renderReportAsPdf(report) {
|
|
54
|
+
const PDFDocument = await getPDFKit();
|
|
55
|
+
return new Promise((resolve, reject) => {
|
|
56
|
+
const doc = new PDFDocument({ margin: PAGE_MARGIN, size: 'A4' });
|
|
57
|
+
const chunks = [];
|
|
58
|
+
doc.on('data', (chunk) => chunks.push(chunk));
|
|
59
|
+
doc.on('end', () => resolve(Buffer.concat(chunks)));
|
|
60
|
+
doc.on('error', reject);
|
|
61
|
+
const pageWidth = doc.page.width - PAGE_MARGIN * 2;
|
|
62
|
+
// -----------------------------------------------------------------------
|
|
63
|
+
// Title page
|
|
64
|
+
// -----------------------------------------------------------------------
|
|
65
|
+
doc.rect(0, 0, doc.page.width, 8).fill(BRAND_CYAN);
|
|
66
|
+
doc.moveDown(2);
|
|
67
|
+
doc.font(FONT_TITLE).fontSize(22).fillColor(TEXT_DARK)
|
|
68
|
+
.text(report.title, PAGE_MARGIN, 80, { width: pageWidth, align: 'center' });
|
|
69
|
+
doc.moveDown(0.5);
|
|
70
|
+
doc.font(FONT_BODY).fontSize(11).fillColor(TEXT_GRAY)
|
|
71
|
+
.text(`Generated by geotechCLI v${process.env.npm_package_version ?? '0.3.0'}`, {
|
|
72
|
+
align: 'center',
|
|
73
|
+
});
|
|
74
|
+
doc.font(FONT_BODY).fontSize(10).fillColor(TEXT_GRAY)
|
|
75
|
+
.text(new Date().toISOString().split('T')[0], { align: 'center' });
|
|
76
|
+
doc.moveDown(2);
|
|
77
|
+
doc.moveTo(PAGE_MARGIN, doc.y).lineTo(doc.page.width - PAGE_MARGIN, doc.y)
|
|
78
|
+
.strokeColor(LINE_GRAY).lineWidth(1).stroke();
|
|
79
|
+
doc.moveDown(1.5);
|
|
80
|
+
// Table of contents (section names)
|
|
81
|
+
doc.font(FONT_BOLD).fontSize(12).fillColor(BRAND_CYAN).text('Contents', PAGE_MARGIN);
|
|
82
|
+
doc.moveDown(0.4);
|
|
83
|
+
for (const section of report.sections) {
|
|
84
|
+
doc.font(FONT_BODY).fontSize(10).fillColor(TEXT_DARK)
|
|
85
|
+
.text(`• ${section.title}`, PAGE_MARGIN + 12);
|
|
86
|
+
}
|
|
87
|
+
// -----------------------------------------------------------------------
|
|
88
|
+
// Content sections
|
|
89
|
+
// -----------------------------------------------------------------------
|
|
90
|
+
for (const section of report.sections) {
|
|
91
|
+
doc.addPage();
|
|
92
|
+
doc.rect(0, 0, doc.page.width, 5).fill(BRAND_CYAN);
|
|
93
|
+
doc.moveDown(1);
|
|
94
|
+
doc.font(FONT_TITLE).fontSize(14).fillColor(BRAND_CYAN)
|
|
95
|
+
.text(section.title, PAGE_MARGIN, 40, { width: pageWidth });
|
|
96
|
+
doc.moveDown(0.4);
|
|
97
|
+
doc.moveTo(PAGE_MARGIN, doc.y).lineTo(doc.page.width - PAGE_MARGIN, doc.y)
|
|
98
|
+
.strokeColor(BRAND_CYAN).lineWidth(1.5).stroke();
|
|
99
|
+
doc.moveDown(0.6);
|
|
100
|
+
// Render content line by line
|
|
101
|
+
const lines = section.content.split('\n');
|
|
102
|
+
let tableBuffer = [];
|
|
103
|
+
let inTable = false;
|
|
104
|
+
const flushTable = () => {
|
|
105
|
+
if (tableBuffer.length === 0)
|
|
106
|
+
return;
|
|
107
|
+
const parsed = parseMarkdownTable(tableBuffer);
|
|
108
|
+
if (parsed && doc.y < doc.page.height - 120) {
|
|
109
|
+
const colW = pageWidth / parsed.headers.length;
|
|
110
|
+
// Header row
|
|
111
|
+
let x = PAGE_MARGIN;
|
|
112
|
+
doc.font(FONT_BOLD).fontSize(8.5).fillColor(TEXT_DARK);
|
|
113
|
+
for (const h of parsed.headers) {
|
|
114
|
+
doc.text(h, x + 4, doc.y, { width: colW - 8, lineBreak: false });
|
|
115
|
+
x += colW;
|
|
116
|
+
}
|
|
117
|
+
doc.moveDown(0.3);
|
|
118
|
+
doc.moveTo(PAGE_MARGIN, doc.y).lineTo(doc.page.width - PAGE_MARGIN, doc.y)
|
|
119
|
+
.strokeColor(LINE_GRAY).lineWidth(0.5).stroke();
|
|
120
|
+
doc.moveDown(0.2);
|
|
121
|
+
// Data rows
|
|
122
|
+
doc.font(FONT_BODY).fontSize(8.5).fillColor(TEXT_DARK);
|
|
123
|
+
for (const row of parsed.rows) {
|
|
124
|
+
x = PAGE_MARGIN;
|
|
125
|
+
const rowY = doc.y;
|
|
126
|
+
for (const cell of row) {
|
|
127
|
+
doc.text(cell, x + 4, rowY, { width: colW - 8, lineBreak: false });
|
|
128
|
+
x += colW;
|
|
129
|
+
}
|
|
130
|
+
doc.moveDown(0.4);
|
|
131
|
+
}
|
|
132
|
+
doc.moveDown(0.4);
|
|
133
|
+
}
|
|
134
|
+
tableBuffer = [];
|
|
135
|
+
inTable = false;
|
|
136
|
+
};
|
|
137
|
+
for (const line of lines) {
|
|
138
|
+
if (isTableLine(line)) {
|
|
139
|
+
inTable = true;
|
|
140
|
+
tableBuffer.push(line);
|
|
141
|
+
continue;
|
|
142
|
+
}
|
|
143
|
+
if (inTable)
|
|
144
|
+
flushTable();
|
|
145
|
+
const stripped = strictRenderLine(line, doc, PAGE_MARGIN, pageWidth);
|
|
146
|
+
if (stripped !== null)
|
|
147
|
+
doc.moveDown(0.3);
|
|
148
|
+
}
|
|
149
|
+
if (inTable)
|
|
150
|
+
flushTable();
|
|
151
|
+
}
|
|
152
|
+
// -----------------------------------------------------------------------
|
|
153
|
+
// Footer on each page
|
|
154
|
+
// -----------------------------------------------------------------------
|
|
155
|
+
const range = doc.bufferedPageRange();
|
|
156
|
+
for (let i = range.start; i < range.start + range.count; i++) {
|
|
157
|
+
doc.switchToPage(i);
|
|
158
|
+
doc.font(FONT_BODY).fontSize(8).fillColor(TEXT_GRAY)
|
|
159
|
+
.text(`geotechCLI · ${report.title} · Page ${i + 1} of ${range.count}`, PAGE_MARGIN, doc.page.height - 36, { align: 'center', width: pageWidth });
|
|
160
|
+
}
|
|
161
|
+
doc.end();
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
/** Render a single non-table markdown line into the PDF. Returns null if empty line. */
|
|
165
|
+
function strictRenderLine(line, doc, margin, width) {
|
|
166
|
+
const trimmed = line.trim();
|
|
167
|
+
if (!trimmed)
|
|
168
|
+
return null;
|
|
169
|
+
if (/^#{1,2}\s/.test(trimmed)) {
|
|
170
|
+
const text = trimmed.replace(/^#{1,2}\s+/, '');
|
|
171
|
+
doc.font('Helvetica-Bold').fontSize(12).fillColor('#00b8c8').text(stripMarkdown(text), margin, undefined, { width });
|
|
172
|
+
return true;
|
|
173
|
+
}
|
|
174
|
+
if (/^#{3,6}\s/.test(trimmed)) {
|
|
175
|
+
const text = trimmed.replace(/^#{3,6}\s+/, '');
|
|
176
|
+
doc.font('Helvetica-Bold').fontSize(10.5).fillColor('#1a1a2e').text(stripMarkdown(text), margin, undefined, { width });
|
|
177
|
+
return true;
|
|
178
|
+
}
|
|
179
|
+
// Bullet
|
|
180
|
+
if (/^[-*+]\s/.test(trimmed)) {
|
|
181
|
+
const text = trimmed.replace(/^[-*+]\s+/, '');
|
|
182
|
+
doc.font('Helvetica').fontSize(10).fillColor('#1a1a2e')
|
|
183
|
+
.text('• ' + stripMarkdown(text), margin + 10, undefined, { width: width - 10 });
|
|
184
|
+
return true;
|
|
185
|
+
}
|
|
186
|
+
// Normal paragraph
|
|
187
|
+
doc.font('Helvetica').fontSize(10).fillColor('#1a1a2e').text(stripMarkdown(trimmed), margin, undefined, { width });
|
|
188
|
+
return true;
|
|
189
|
+
}
|
|
190
|
+
//# sourceMappingURL=pdf.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pdf.js","sourceRoot":"","sources":["../../src/report/pdf.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vision/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,OAAO,EAQL,KAAK,WAAW,EACjB,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vision/index.ts"],"names":[],"mappings":"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"}
|
package/dist/vision/index.js
CHANGED
|
@@ -1,6 +1,43 @@
|
|
|
1
1
|
import { generateVision, generateText } from '../llm/router.js';
|
|
2
2
|
import { classifyRMR89 } from '../geo/classification.js';
|
|
3
3
|
import { clampConfidence, createParseSafety, deriveParseStatus, normalizeWarnings, parseJsonObject, readNumber, readString, } from './parse.js';
|
|
4
|
+
// ---------------------------------------------------------------------------
|
|
5
|
+
// Vision retry helper — handles upstream empty-content failures
|
|
6
|
+
// ---------------------------------------------------------------------------
|
|
7
|
+
/**
|
|
8
|
+
* Execute a vision call with automatic retry on empty/null response.
|
|
9
|
+
* First attempt: strict JSON-only prompt at low temperature.
|
|
10
|
+
* Second attempt: softer plain-text prompt at higher temperature, same image.
|
|
11
|
+
* This handles GLM-5v-turbo returning empty content on the first call.
|
|
12
|
+
*/
|
|
13
|
+
async function visionWithRetry(imageBase64, mimeType, config, strictPrompt, softPrompt, systemPrompt, maxTokens) {
|
|
14
|
+
const start = Date.now();
|
|
15
|
+
// Attempt 1: strict JSON prompt
|
|
16
|
+
try {
|
|
17
|
+
const r1 = await generateVision(strictPrompt, imageBase64, mimeType, config, {
|
|
18
|
+
systemPrompt,
|
|
19
|
+
temperature: 0.1,
|
|
20
|
+
maxTokens,
|
|
21
|
+
});
|
|
22
|
+
if (r1.text && r1.text.trim().length > 10) {
|
|
23
|
+
return { text: r1.text, latencyMs: r1.latencyMs, usedFallback: false };
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
// fall through to retry
|
|
28
|
+
}
|
|
29
|
+
// Attempt 2: softer plain text prompt
|
|
30
|
+
const r2 = await generateVision(softPrompt, imageBase64, mimeType, config, {
|
|
31
|
+
systemPrompt: systemPrompt + ' Be concise but thorough. You must provide values even if approximate.',
|
|
32
|
+
temperature: 0.3,
|
|
33
|
+
maxTokens: maxTokens + 200,
|
|
34
|
+
});
|
|
35
|
+
return {
|
|
36
|
+
text: r2.text,
|
|
37
|
+
latencyMs: Date.now() - start,
|
|
38
|
+
usedFallback: true,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
4
41
|
const VALID_JOINT_CONDITIONS = [
|
|
5
42
|
'very_good',
|
|
6
43
|
'good',
|
|
@@ -26,7 +63,7 @@ function combineWarnings(base, extra) {
|
|
|
26
63
|
return [...new Set([...base, ...extra])];
|
|
27
64
|
}
|
|
28
65
|
export async function analyzeCoreBox(imageBase64, mimeType, config) {
|
|
29
|
-
const
|
|
66
|
+
const strictPrompt = `Analyze this rock core box image. You MUST respond with ONLY a JSON object (no markdown, no backticks, no explanation) with these exact fields:
|
|
30
67
|
{
|
|
31
68
|
"rqd": <number 0-100, Rock Quality Designation percentage>,
|
|
32
69
|
"fractureSpacing": "<string: very close/close/moderate/wide/very wide>",
|
|
@@ -37,13 +74,20 @@ export async function analyzeCoreBox(imageBase64, mimeType, config) {
|
|
|
37
74
|
"confidence": <number 0-100>,
|
|
38
75
|
"warnings": ["<warning>", "<warning>"]
|
|
39
76
|
}`;
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
77
|
+
const softPrompt = `Examine this rock core box image and describe:
|
|
78
|
+
1. RQD (Rock Quality Designation) as a percentage 0-100
|
|
79
|
+
2. Fracture spacing (very close / close / moderate / wide / very wide)
|
|
80
|
+
3. Weathering grade (W1-Fresh through W6-Residual)
|
|
81
|
+
4. Rock type / lithology
|
|
82
|
+
5. Core recovery percentage
|
|
83
|
+
6. Discontinuity description (surfaces, infilling, roughness)
|
|
84
|
+
Provide approximate values even if uncertain.`;
|
|
85
|
+
const response = await visionWithRetry(imageBase64, mimeType, config, strictPrompt, softPrompt, 'You are an expert engineering geologist performing core logging. Respond with JSON only.', 900);
|
|
45
86
|
const parsed = parseJsonObject(response.text);
|
|
46
87
|
const warnings = [...parsed.warnings];
|
|
88
|
+
if (response.usedFallback) {
|
|
89
|
+
warnings.push('Vision model used plain-text fallback — values extracted from narrative response.');
|
|
90
|
+
}
|
|
47
91
|
const rqd = readNumber(parsed.value, 'rqd', warnings);
|
|
48
92
|
const fractureSpacing = readString(parsed.value, 'fractureSpacing', warnings);
|
|
49
93
|
const weatheringGrade = readString(parsed.value, 'weatheringGrade', warnings);
|
|
@@ -66,7 +110,7 @@ export async function analyzeCoreBox(imageBase64, mimeType, config) {
|
|
|
66
110
|
};
|
|
67
111
|
}
|
|
68
112
|
export async function classifyRMRFromImage(imageBase64, mimeType, config) {
|
|
69
|
-
const
|
|
113
|
+
const strictPrompt = `Analyze this rock exposure / tunnel face / core box image for Rock Mass Rating input parameters. Respond with ONLY a JSON object (no markdown):
|
|
70
114
|
{
|
|
71
115
|
"estimatedUCS": <number in MPa, estimate from visual appearance>,
|
|
72
116
|
"estimatedRQD": <number 0-100>,
|
|
@@ -76,13 +120,19 @@ export async function classifyRMRFromImage(imageBase64, mimeType, config) {
|
|
|
76
120
|
"confidence": <number 0-100>,
|
|
77
121
|
"warnings": ["<warning>", "<warning>"]
|
|
78
122
|
}`;
|
|
79
|
-
const
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
123
|
+
const softPrompt = `Look at this rock mass image and estimate:
|
|
124
|
+
1. Uniaxial compressive strength UCS in MPa (from rock appearance)
|
|
125
|
+
2. Rock Quality Designation RQD as % 0-100
|
|
126
|
+
3. Mean discontinuity spacing in meters
|
|
127
|
+
4. Joint condition: very_good, good, fair, poor, or very_poor
|
|
128
|
+
5. Groundwater condition: dry, damp, wet, dripping, or flowing
|
|
129
|
+
Give approximate values based on what you observe.`;
|
|
130
|
+
const response = await visionWithRetry(imageBase64, mimeType, config, strictPrompt, softPrompt, 'You are an expert rock mechanics engineer performing field classification. Respond with JSON only.', 700);
|
|
84
131
|
const parsed = parseJsonObject(response.text);
|
|
85
132
|
const warnings = [...parsed.warnings];
|
|
133
|
+
if (response.usedFallback) {
|
|
134
|
+
warnings.push('Vision model used plain-text fallback — values extracted from narrative response.');
|
|
135
|
+
}
|
|
86
136
|
const estimatedUCS = readNumber(parsed.value, 'estimatedUCS', warnings);
|
|
87
137
|
const estimatedRQD = readNumber(parsed.value, 'estimatedRQD', warnings);
|
|
88
138
|
const estimatedSpacing = readNumber(parsed.value, 'estimatedSpacing', warnings);
|
package/dist/vision/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/vision/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/vision/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@geotechcli/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Shared computation and LLM engine for geotechCLI",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -39,9 +39,12 @@
|
|
|
39
39
|
"lint": "tsc --noEmit"
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
|
+
"docx": "^9.0.0",
|
|
43
|
+
"pdfkit": "^0.15.0",
|
|
42
44
|
"zod": "^3.24.0"
|
|
43
45
|
},
|
|
44
46
|
"devDependencies": {
|
|
47
|
+
"@types/pdfkit": "^0.13.0",
|
|
45
48
|
"typescript": "^5.7.0",
|
|
46
49
|
"vitest": "^3.1.0"
|
|
47
50
|
},
|