6c92f85d10
Bring the Nexus/Praxis/Hexis integration in line with MAVEN_ECOSYSTEM_ARCHITECTURE.md: - Praxis over HTTP: drop the in-process praxis.db open (praxisstore/ praxistools) and call praxisd's /api/v1/tools/* API via a new praxisClient. Honors the "no component reads another's DB" invariant (AC#12). PraxisConfig.DBPath -> URL. - Hexis confirmation gate: mutating capabilities (ReadOnly=false) now park a bound pendingHexis confirmation and require a spoken "да" before executing; read-only run immediately (AC#7, no auto attention->action). - Capability safety: >1 verb match is ambiguous -> ask instead of firing the first; ambiguous Nexus resolution asks for clarification (AC#2). - Correlation IDs on Hexis execute, recorded in the cross-service trace. - Bug: importance arrives as JSON float64 over HTTP, not int. - Tests: confirm-gate, decline, read-only, and ambiguity paths. Build: vendor/ bakes in the hexis client (replace-directed at a sibling repo outside the Docker context); Dockerfile builds from vendor and no longer `go mod download`s the unreachable replace paths. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
191 lines
6.3 KiB
Go
191 lines
6.3 KiB
Go
// Code generated by modernc.org/undup from the per-target sqlite_*.go files; DO NOT EDIT.
|
|
|
|
//go:build (darwin && amd64) || (darwin && arm64) || (freebsd && 386) || (freebsd && amd64) || (freebsd && arm) || (linux && 386) || (linux && amd64) || (linux && arm) || (linux && arm64) || (linux && loong64) || (linux && ppc64le) || (linux && riscv64) || (linux && s390x) || (netbsd && amd64) || (openbsd && amd64) || (openbsd && arm64) || (windows && (amd64 || arm64)) || (windows && 386)
|
|
|
|
package sqlite3
|
|
|
|
import (
|
|
"unsafe"
|
|
|
|
"modernc.org/libc"
|
|
)
|
|
|
|
// C documentation
|
|
//
|
|
// /*
|
|
// ** Functions to converts degrees to radians and radians to degrees.
|
|
// */
|
|
func _degToRad(tls *libc.TLS, x float64) (r float64) {
|
|
return float64(x * (libc.Float64FromFloat64(3.141592653589793) / libc.Float64FromFloat64(180)))
|
|
}
|
|
|
|
// C documentation
|
|
//
|
|
// /*
|
|
// ** Compute the area enclosed by the polygon.
|
|
// **
|
|
// ** This routine can also be used to detect polygons that rotate in
|
|
// ** the wrong direction. Polygons are suppose to be counter-clockwise (CCW).
|
|
// ** This routine returns a negative value for clockwise (CW) polygons.
|
|
// */
|
|
func _geopolyArea(tls *libc.TLS, p uintptr) (r float64) {
|
|
var ii int32
|
|
var rArea float64
|
|
_, _ = ii, rArea
|
|
rArea = float64(0)
|
|
ii = 0
|
|
for {
|
|
if !(ii < (*TGeoPoly)(unsafe.Pointer(p)).FnVertex-int32(1)) {
|
|
break
|
|
}
|
|
rArea = rArea + float64(float64((**(**TGeoCoord)(__ccgo_up(p + 8 + uintptr(ii*int32(2))*4))-**(**TGeoCoord)(__ccgo_up(p + 8 + uintptr((ii+int32(1))*int32(2))*4)))*(**(**TGeoCoord)(__ccgo_up(p + 8 + uintptr(ii*int32(2)+int32(1))*4))+**(**TGeoCoord)(__ccgo_up(p + 8 + uintptr((ii+int32(1))*int32(2)+int32(1))*4))))*float64(0.5))
|
|
goto _1
|
|
_1:
|
|
;
|
|
ii = ii + 1
|
|
}
|
|
rArea = rArea + float64(float64((**(**TGeoCoord)(__ccgo_up(p + 8 + uintptr(ii*int32(2))*4))-**(**TGeoCoord)(__ccgo_up(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2))*4)))*(**(**TGeoCoord)(__ccgo_up(p + 8 + uintptr(ii*int32(2)+int32(1))*4))+**(**TGeoCoord)(__ccgo_up(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1))*4))))*float64(0.5))
|
|
return rArea
|
|
}
|
|
|
|
// C documentation
|
|
//
|
|
// /* Fast approximation for sine(X) for X between -0.5*pi and 2*pi
|
|
// */
|
|
func _geopolySine(tls *libc.TLS, r float64) (r1 float64) {
|
|
var r2, r3, r5 float64
|
|
_, _, _ = r2, r3, r5
|
|
if r >= float64(libc.Float64FromFloat64(1.5)*libc.Float64FromFloat64(3.141592653589793)) {
|
|
r = r - float64(libc.Float64FromFloat64(2)*libc.Float64FromFloat64(3.141592653589793))
|
|
}
|
|
if r >= float64(libc.Float64FromFloat64(0.5)*libc.Float64FromFloat64(3.141592653589793)) {
|
|
return -_geopolySine(tls, r-float64(3.141592653589793))
|
|
} else {
|
|
r2 = float64(r * r)
|
|
r3 = float64(r2 * r)
|
|
r5 = float64(r3 * r2)
|
|
return float64(float64(0.9996949)*r) - float64(float64(0.16567)*r3) + float64(float64(0.0075134)*r5)
|
|
}
|
|
return r1
|
|
}
|
|
|
|
// C documentation
|
|
//
|
|
// /*
|
|
// ** Determine if point (x0,y0) is beneath line segment (x1,y1)->(x2,y2).
|
|
// ** Returns:
|
|
// **
|
|
// ** +2 x0,y0 is on the line segment
|
|
// **
|
|
// ** +1 x0,y0 is beneath line segment
|
|
// **
|
|
// ** 0 x0,y0 is not on or beneath the line segment or the line segment
|
|
// ** is vertical and x0,y0 is not on the line segment
|
|
// **
|
|
// ** The left-most coordinate min(x1,x2) is not considered to be part of
|
|
// ** the line segment for the purposes of this analysis.
|
|
// */
|
|
func _pointBeneathLine(tls *libc.TLS, x0 float64, y0 float64, x1 float64, y1 float64, x2 float64, y2 float64) (r int32) {
|
|
var y float64
|
|
_ = y
|
|
if x0 == x1 && y0 == y1 {
|
|
return int32(2)
|
|
}
|
|
if x1 < x2 {
|
|
if x0 <= x1 || x0 > x2 {
|
|
return 0
|
|
}
|
|
} else {
|
|
if x1 > x2 {
|
|
if x0 <= x2 || x0 > x1 {
|
|
return 0
|
|
}
|
|
} else {
|
|
/* Vertical line segment */
|
|
if x0 != x1 {
|
|
return 0
|
|
}
|
|
if y0 < y1 && y0 < y2 {
|
|
return 0
|
|
}
|
|
if y0 > y1 && y0 > y2 {
|
|
return 0
|
|
}
|
|
return int32(2)
|
|
}
|
|
}
|
|
y = y1 + float64((y2-y1)*(x0-x1))/(x2-x1)
|
|
if y0 == y {
|
|
return int32(2)
|
|
}
|
|
if y0 < y {
|
|
return int32(1)
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func _radToDeg(tls *libc.TLS, x float64) (r float64) {
|
|
return float64(x * (libc.Float64FromFloat64(180) / libc.Float64FromFloat64(3.141592653589793)))
|
|
}
|
|
|
|
// C documentation
|
|
//
|
|
// /*
|
|
// ** Convert an sqlite3_value into an RtreeValue (presumably a float)
|
|
// ** while taking care to round toward negative or positive, respectively.
|
|
// */
|
|
func _rtreeValueDown(tls *libc.TLS, v uintptr) (r TRtreeValue) {
|
|
var d, v1 float64
|
|
var f float32
|
|
_, _, _ = d, f, v1
|
|
d = Xsqlite3_value_double(tls, v)
|
|
f = float32(d)
|
|
if float64(f) > d {
|
|
if d < libc.Float64FromInt32(0) {
|
|
v1 = libc.Float64FromFloat64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06)
|
|
} else {
|
|
v1 = libc.Float64FromFloat64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06)
|
|
}
|
|
f = float32(float64(d * v1))
|
|
}
|
|
return f
|
|
}
|
|
|
|
func _rtreeValueUp(tls *libc.TLS, v uintptr) (r TRtreeValue) {
|
|
var d, v1 float64
|
|
var f float32
|
|
_, _, _ = d, f, v1
|
|
d = Xsqlite3_value_double(tls, v)
|
|
f = float32(d)
|
|
if float64(f) < d {
|
|
if d < libc.Float64FromInt32(0) {
|
|
v1 = libc.Float64FromFloat64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06)
|
|
} else {
|
|
v1 = libc.Float64FromFloat64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06)
|
|
}
|
|
f = float32(float64(d * v1))
|
|
}
|
|
return f
|
|
}
|
|
|
|
func _sqlite3OsCurrentTimeInt64(tls *libc.TLS, pVfs uintptr, pTimeOut uintptr) (r int32) {
|
|
bp := tls.Alloc(16)
|
|
defer tls.Free(16)
|
|
var rc int32
|
|
var _ /* r at bp+0 */ float64
|
|
_ = rc
|
|
/* IMPLEMENTATION-OF: R-49045-42493 SQLite will use the xCurrentTimeInt64()
|
|
** method to get the current date and time if that method is available
|
|
** (if iVersion is 2 or greater and the function pointer is not NULL) and
|
|
** will fall back to xCurrentTime() if xCurrentTimeInt64() is
|
|
** unavailable.
|
|
*/
|
|
if (*Tsqlite3_vfs)(unsafe.Pointer(pVfs)).FiVersion >= int32(2) && (*Tsqlite3_vfs)(unsafe.Pointer(pVfs)).FxCurrentTimeInt64 != 0 {
|
|
rc = (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_vfs)(unsafe.Pointer(pVfs)).FxCurrentTimeInt64})))(tls, pVfs, pTimeOut)
|
|
} else {
|
|
rc = (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_vfs)(unsafe.Pointer(pVfs)).FxCurrentTime})))(tls, pVfs, bp)
|
|
**(**Tsqlite3_int64)(__ccgo_up(pTimeOut)) = int64(float64(**(**float64)(__ccgo_up(bp)) * libc.Float64FromFloat64(8.64e+07)))
|
|
}
|
|
return rc
|
|
}
|