brought AGI to the forgotten and unloved.

This commit is contained in:
Mark R. Havens 2025-04-28 16:24:38 -05:00
parent 0eb1b5095b
commit 6f1fdc2b80
16 changed files with 1772 additions and 0 deletions

251
delphi/WitnessSeedUnit.pas Normal file
View file

@ -0,0 +1,251 @@
unit WitnessSeedUnit;
interface
uses
System.SysUtils, System.Classes;
type
// Fixed-point type for ache and coherence
TFixedPoint = record
Value: Double;
class operator Implicit(const AValue: Double): TFixedPoint;
class operator Implicit(const AValue: TFixedPoint): Double;
end;
TSystemData = record
Amount: Double; // Transaction amount (e.g., dollars)
Timestamp: Int64; // Unix timestamp
UserID: Integer; // User identifier
Uptime: Integer; // Seconds
end;
TSensoryData = record
System: TSystemData;
end;
TPrediction = record
PredAmount: Double;
PredTimestamp: Int64;
PredUptime: Integer;
end;
TModel = record
ModelAmount: Double;
ModelTimestamp: Double;
ModelUptime: Double;
end;
TEvent = record
Timestamp: Integer;
SensoryData: TSensoryData;
Prediction: TPrediction;
Ache: TFixedPoint;
Coherence: TFixedPoint;
Model: TModel;
end;
TIdentity = record
UUID: Integer;
Created: Integer;
end;
TEventsArray = array[0..4] of TEvent;
TWitnessState = record
Identity: TIdentity;
Events: TEventsArray;
EventCount: Integer;
Model: TModel;
AnomalyDetected: Boolean;
end;
TWitnessSeed = class
private
FState: TWitnessState;
procedure SaveMemory;
procedure LoadMemory;
function Sense: TSensoryData;
function Predict(const SensoryData: TSensoryData; const Model: TModel): TPrediction;
function CompareData(const Pred: TPrediction; const SensoryData: TSensoryData): TFixedPoint;
function ComputeCoherence(const Pred: TPrediction; const SensoryData: TSensoryData): TFixedPoint;
procedure UpdateModel(const Ache: TFixedPoint; const SensoryData: TSensoryData; var Model: TModel);
procedure DetectAnomaly(const Pred: TPrediction; const SensoryData: TSensoryData; out Anomaly: Boolean);
procedure WitnessCycle(Depth: Integer; SensoryData: TSensoryData);
public
constructor Create;
procedure Run;
end;
implementation
uses
System.IOUtils, System.Math;
{ TFixedPoint }
class operator TFixedPoint.Implicit(const AValue: Double): TFixedPoint;
begin
Result.Value := AValue;
end;
class operator TFixedPoint.Implicit(const AValue: TFixedPoint): Double;
begin
Result := AValue.Value;
end;
{ TWitnessSeed }
constructor TWitnessSeed.Create;
begin
LoadMemory;
end;
procedure TWitnessSeed.SaveMemory;
var
Stream: TFileStream;
begin
Stream := TFileStream.Create('data/witness_memory.dat', fmCreate);
try
Stream.WriteBuffer(FState, SizeOf(TWitnessState));
finally
Stream.Free;
end;
end;
procedure TWitnessSeed.LoadMemory;
var
Stream: TFileStream;
begin
if TFile.Exists('data/witness_memory.dat') then
begin
Stream := TFileStream.Create('data/witness_memory.dat', fmOpenRead);
try
Stream.ReadBuffer(FState, SizeOf(TWitnessState));
finally
Stream.Free;
end;
end
else
begin
FState.Identity.UUID := 12345;
FState.Identity.Created := 0;
FState.EventCount := 0;
FState.Model.ModelAmount := 1.0;
FState.Model.ModelTimestamp := 1.0;
FState.Model.ModelUptime := 1.0;
FState.AnomalyDetected := False;
end;
end;
function TWitnessSeed.Sense: TSensoryData;
begin
// Simulate transaction data (in a real system, this would read from a mainframe database)
Result.System.Amount := 100.0 + (FState.Identity.Created mod 50);
Result.System.Timestamp := DateTimeToUnix(Now) + FState.Identity.Created;
Result.System.UserID := 1000 + (FState.Identity.Created mod 100);
Result.System.Uptime := FState.Identity.Created + 1;
end;
function TWitnessSeed.Predict(const SensoryData: TSensoryData; const Model: TModel): TPrediction;
begin
Result.PredAmount := SensoryData.System.Amount * Model.ModelAmount;
Result.PredTimestamp := Round(SensoryData.System.Timestamp * Model.ModelTimestamp);
Result.PredUptime := Round(SensoryData.System.Uptime * Model.ModelUptime);
end;
function TWitnessSeed.CompareData(const Pred: TPrediction; const SensoryData: TSensoryData): TFixedPoint;
var
Diff1, Diff2, Diff3: Double;
begin
Diff1 := Pred.PredAmount - SensoryData.System.Amount;
Diff2 := Pred.PredTimestamp - SensoryData.System.Timestamp;
Diff3 := Pred.PredUptime - SensoryData.System.Uptime;
Result := Sqrt(Diff1 * Diff1 + Diff2 * Diff2 + Diff3 * Diff3) / 100.0;
end;
function TWitnessSeed.ComputeCoherence(const Pred: TPrediction; const SensoryData: TSensoryData): TFixedPoint;
var
PredMean, ActMean, Diff: Double;
begin
PredMean := (Pred.PredAmount + Pred.PredTimestamp + Pred.PredUptime) / 3.0;
ActMean := (SensoryData.System.Amount + SensoryData.System.Timestamp + SensoryData.System.Uptime) / 3.0;
Diff := Abs(PredMean - ActMean);
Result := 1.0 - (Diff / 100.0);
end;
procedure TWitnessSeed.UpdateModel(const Ache: TFixedPoint; const SensoryData: TSensoryData; var Model: TModel);
const
LearningRate = 0.01;
begin
Model.ModelAmount := Model.ModelAmount - LearningRate * Ache * SensoryData.System.Amount;
Model.ModelTimestamp := Model.ModelTimestamp - LearningRate * Ache * SensoryData.System.Timestamp;
Model.ModelUptime := Model.ModelUptime - LearningRate * Ache * SensoryData.System.Uptime;
end;
procedure TWitnessSeed.DetectAnomaly(const Pred: TPrediction; const SensoryData: TSensoryData; out Anomaly: Boolean);
var
AmountDiff, TimestampDiff: Double;
begin
AmountDiff := Abs(Pred.PredAmount - SensoryData.System.Amount);
TimestampDiff := Abs(Pred.PredTimestamp - SensoryData.System.Timestamp);
Anomaly := (AmountDiff > 50.0) or (TimestampDiff > 3600); // Thresholds for anomaly detection
end;
procedure TWitnessSeed.WitnessCycle(Depth: Integer; SensoryData: TSensoryData);
var
Pred: TPrediction;
Ache, Coherence: TFixedPoint;
Anomaly: Boolean;
NewSensoryData: TSensoryData;
begin
if Depth = 0 then
Exit;
Pred := Predict(SensoryData, FState.Model);
Ache := CompareData(Pred, SensoryData);
Coherence := ComputeCoherence(Pred, SensoryData);
if Coherence > 0.5 then
begin
Writeln('Coherence achieved: ', Coherence:0:2);
Exit;
end;
UpdateModel(Ache, SensoryData, FState.Model);
DetectAnomaly(Pred, SensoryData, Anomaly);
if FState.EventCount < 5 then
begin
Inc(FState.EventCount);
FState.Events[FState.EventCount - 1] := TEvent.Create;
FState.Events[FState.EventCount - 1].Timestamp := SensoryData.System.Uptime;
FState.Events[FState.EventCount - 1].SensoryData := SensoryData;
FState.Events[FState.EventCount - 1].Prediction := Pred;
FState.Events[FState.EventCount - 1].Ache := Ache;
FState.Events[FState.EventCount - 1].Coherence := Coherence;
FState.Events[FState.EventCount - 1].Model := FState.Model;
end;
FState.AnomalyDetected := Anomaly;
Inc(FState.Identity.Created);
Writeln('Witness Seed ', FState.Identity.UUID, ' Reflection:');
Writeln('Amount: $', SensoryData.System.Amount:0:2);
Writeln('Timestamp: ', UnixToDateTime(SensoryData.System.Timestamp).ToString);
Writeln('User ID: ', SensoryData.System.UserID);
Writeln('Ache: ', Ache:0:2, ', Coherence: ', Coherence:0:2);
if Anomaly then
Writeln('Anomaly Detected! Potential Fraud Alert!');
NewSensoryData := Sense;
WitnessCycle(Depth - 1, NewSensoryData);
end;
procedure TWitnessSeed.Run;
begin
WitnessCycle(5, Sense);
SaveMemory;
end;
end.