Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
21239cf3cc | ||
|
|
75857a2036 | ||
|
|
9a9307af89 | ||
|
|
ff66e8dc5c | ||
|
|
a862a07ae1 | ||
|
|
4d63c1bea4 |
@@ -334,11 +334,10 @@ func (r *ContinuityRepository) ApplyHumanResponse(ctx context.Context, response
|
||||
if tag.RowsAffected() != 1 {
|
||||
return ErrProspectiveStateConflict
|
||||
}
|
||||
if response.TargetAttentionID == "" {
|
||||
return ErrAttentionNotFound
|
||||
}
|
||||
if err = markAttentionResponded(ctx, tx, response, continuity.AttentionResolved); err != nil {
|
||||
return err
|
||||
if response.TargetAttentionID != "" {
|
||||
if err = markAttentionResponded(ctx, tx, response, continuity.AttentionResolved); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
case continuity.ResponseSnooze:
|
||||
tag, err := tx.Exec(ctx, `UPDATE continuity.prospective_items SET state=$1, trigger_at_unix_millis=$2, revision=revision+1
|
||||
|
||||
@@ -2,6 +2,7 @@ package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"log"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
@@ -85,7 +86,12 @@ func (r learningRecorder) recordReminderResponse(ctx context.Context, input remi
|
||||
RecordedAtUnixMillis: input.At.UnixMilli(),
|
||||
}
|
||||
expectation, err := epistemicsdomain.NewSystemExpectation(expectation)
|
||||
if err != nil || r.epistemics.SaveSystemExpectation(ctx, expectation) != nil {
|
||||
if err != nil {
|
||||
log.Printf("learning reminder expectation invalid: %v", err)
|
||||
return
|
||||
}
|
||||
if err := r.epistemics.SaveSystemExpectation(ctx, expectation); err != nil {
|
||||
log.Printf("learning reminder expectation unavailable: %v", err)
|
||||
return
|
||||
}
|
||||
actual, confidence := outcomeForHumanResponse(input.Result.Response)
|
||||
@@ -197,13 +203,19 @@ func (r learningRecorder) recordCapabilityUse(ctx context.Context, input capabil
|
||||
func (r learningRecorder) saveExperienceAndReflection(ctx context.Context, value epistemics.ExperienceRecord) (epistemics.ExperienceRecord, bool) {
|
||||
value, err := epistemicsdomain.NewExperienceRecord(value)
|
||||
if err != nil {
|
||||
log.Printf("learning experience invalid: %v", err)
|
||||
return epistemics.ExperienceRecord{}, false
|
||||
}
|
||||
if err := r.epistemics.SaveExperienceRecord(ctx, value); err != nil {
|
||||
log.Printf("learning experience unavailable: %v", err)
|
||||
return epistemics.ExperienceRecord{}, false
|
||||
}
|
||||
if candidate, ok, err := epistemicsdomain.ReflectionForExperience(value); err == nil && ok {
|
||||
_ = r.epistemics.SaveReflectionCandidate(ctx, candidate)
|
||||
if err := r.epistemics.SaveReflectionCandidate(ctx, candidate); err != nil {
|
||||
log.Printf("learning reflection unavailable: %v", err)
|
||||
}
|
||||
} else if err != nil {
|
||||
log.Printf("learning reflection invalid: %v", err)
|
||||
}
|
||||
return value, true
|
||||
}
|
||||
@@ -214,6 +226,7 @@ func (r learningRecorder) updateReminderSkill(ctx context.Context, experience ep
|
||||
}
|
||||
profile, err := r.capability.LoadSkillProfile(ctx, reminderResponseSkillID)
|
||||
if err != nil {
|
||||
log.Printf("learning skill profile unavailable: %v", err)
|
||||
return
|
||||
}
|
||||
next, err := capabilitydomain.ObserveSkillOutcome(profile, capability.SkillOutcomeObservation{
|
||||
@@ -223,9 +236,11 @@ func (r learningRecorder) updateReminderSkill(ctx context.Context, experience ep
|
||||
ObservedAtUnixMillis: experience.RecordedAtUnixMillis,
|
||||
})
|
||||
if err != nil {
|
||||
log.Printf("learning skill observation invalid: %v", err)
|
||||
return
|
||||
}
|
||||
if err := r.capability.SaveSkillProfile(ctx, next); err != nil {
|
||||
log.Printf("learning skill profile save unavailable: %v", err)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,6 +25,9 @@ func NewSystemExpectation(value epistemics.SystemExpectation) (epistemics.System
|
||||
value.RecordedAtUnixMillis < 1 {
|
||||
return epistemics.SystemExpectation{}, ErrInvalidExpectation
|
||||
}
|
||||
if value.EvidenceBasis == nil {
|
||||
value.EvidenceBasis = []epistemics.EvidenceRef{}
|
||||
}
|
||||
return value, nil
|
||||
}
|
||||
|
||||
@@ -41,6 +44,12 @@ func NewExperienceRecord(value epistemics.ExperienceRecord) (epistemics.Experien
|
||||
value.ConfidenceMillis < 0 || value.ConfidenceMillis > 1000 || value.RecordedAtUnixMillis < 1 {
|
||||
return epistemics.ExperienceRecord{}, ErrInvalidExperience
|
||||
}
|
||||
if value.ContextRefs == nil {
|
||||
value.ContextRefs = []epistemics.ContextRef{}
|
||||
}
|
||||
if value.VerificationEvidence == nil {
|
||||
value.VerificationEvidence = []epistemics.EvidenceRef{}
|
||||
}
|
||||
return value, nil
|
||||
}
|
||||
|
||||
@@ -81,6 +90,9 @@ func ValidateReflectionCandidate(value epistemics.ReflectionCandidate) error {
|
||||
value.RecordedAtUnixMillis < 1 || value.Revision < 1 {
|
||||
return ErrInvalidReflectionCandidate
|
||||
}
|
||||
if value.EvidenceRefs == nil {
|
||||
value.EvidenceRefs = []epistemics.EvidenceRef{}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user