@mindot/will 0.1.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/LICENSE +202 -0
- package/README.md +777 -0
- package/dist/index.d.ts +8144 -0
- package/dist/index.js +26231 -0
- package/dist/index.js.map +1 -0
- package/package.json +73 -0
- package/src/cognition/agency/access.grants.ts +59 -0
- package/src/cognition/agency/competence.codec.ts +89 -0
- package/src/cognition/agency/engines/action.selector.ts +462 -0
- package/src/cognition/agency/engines/affordance.synthesizer.ts +384 -0
- package/src/cognition/agency/engines/deliberation.engine.ts +241 -0
- package/src/cognition/agency/engines/instruction.intake.ts +54 -0
- package/src/cognition/agency/engines/motor.schema.executor.ts +532 -0
- package/src/cognition/agency/engines/reafference.engine.ts +241 -0
- package/src/cognition/agency/execution.primitives.ts +118 -0
- package/src/cognition/agency/index.ts +58 -0
- package/src/cognition/agency/proactive.communicator.ts +274 -0
- package/src/cognition/agency/reconcile.learning.ts +82 -0
- package/src/cognition/agency/schemas/external.ts +59 -0
- package/src/cognition/agency/schemas/innate.ts +111 -0
- package/src/cognition/agency/schemas/repertoire.ts +246 -0
- package/src/cognition/agency/selection.scoring.ts +191 -0
- package/src/cognition/agency/types.ts +165 -0
- package/src/cognition/bus.ts +391 -0
- package/src/cognition/completion.inbox.ts +86 -0
- package/src/cognition/config.mirror.entities.ts +475 -0
- package/src/cognition/conversation.memory.ts +81 -0
- package/src/cognition/event.log.ts +116 -0
- package/src/cognition/event.schemas.ts +568 -0
- package/src/cognition/faculties/aesthetic.evaluator.ts +313 -0
- package/src/cognition/faculties/affective.blender.ts +562 -0
- package/src/cognition/faculties/attachment.evaluator.ts +432 -0
- package/src/cognition/faculties/attention.allocator.ts +422 -0
- package/src/cognition/faculties/autobiographical.narrator.ts +300 -0
- package/src/cognition/faculties/bias.detector.ts +363 -0
- package/src/cognition/faculties/circadian.oscillator.ts +294 -0
- package/src/cognition/faculties/confidence.calibrator.ts +324 -0
- package/src/cognition/faculties/dream.simulator.ts +251 -0
- package/src/cognition/faculties/empathy.simulator.ts +253 -0
- package/src/cognition/faculties/energy.regulator.ts +320 -0
- package/src/cognition/faculties/episodic.consolidator.ts +728 -0
- package/src/cognition/faculties/executive.engine/commands.ts +459 -0
- package/src/cognition/faculties/executive.engine/config.ts +46 -0
- package/src/cognition/faculties/executive.engine/context.ts +605 -0
- package/src/cognition/faculties/executive.engine/deferred.effects.ts +104 -0
- package/src/cognition/faculties/executive.engine/deliberate.reasoning.ts +60 -0
- package/src/cognition/faculties/executive.engine/effort.gate.ts +114 -0
- package/src/cognition/faculties/executive.engine/engine.ts +1028 -0
- package/src/cognition/faculties/executive.engine/escalation.buffer.ts +90 -0
- package/src/cognition/faculties/executive.engine/facet.supervisor.ts +271 -0
- package/src/cognition/faculties/executive.engine/facet.ts +628 -0
- package/src/cognition/faculties/executive.engine/gating.ts +222 -0
- package/src/cognition/faculties/executive.engine/index.ts +6 -0
- package/src/cognition/faculties/executive.engine/messages.ts +102 -0
- package/src/cognition/faculties/executive.engine/parser.ts +380 -0
- package/src/cognition/faculties/executive.engine/prompt.factory.ts +1053 -0
- package/src/cognition/faculties/executive.engine/types.ts +323 -0
- package/src/cognition/faculties/exteroception.ts +338 -0
- package/src/cognition/faculties/forgetting.curve.ts +202 -0
- package/src/cognition/faculties/frustration.evaluator.ts +280 -0
- package/src/cognition/faculties/goal.manager.ts +1008 -0
- package/src/cognition/faculties/inhibition.controller.ts +351 -0
- package/src/cognition/faculties/interoception.ts +417 -0
- package/src/cognition/faculties/introspection.engine.ts +246 -0
- package/src/cognition/faculties/known.entity.tracker.ts +439 -0
- package/src/cognition/faculties/loss.evaluator.ts +224 -0
- package/src/cognition/faculties/moral.evaluator.ts +437 -0
- package/src/cognition/faculties/novelty.detector.ts +254 -0
- package/src/cognition/faculties/persona.consolidator.ts +845 -0
- package/src/cognition/faculties/planning.engine/engine.ts +859 -0
- package/src/cognition/faculties/planning.engine/plan.frontier.ts +83 -0
- package/src/cognition/faculties/planning.engine/plan.store.ts +174 -0
- package/src/cognition/faculties/planning.engine/plan.supervision.ts +494 -0
- package/src/cognition/faculties/planning.engine/types.ts +143 -0
- package/src/cognition/faculties/reputation.tracker.ts +294 -0
- package/src/cognition/faculties/reward.evaluator.ts +304 -0
- package/src/cognition/faculties/self.model.updater.ts +677 -0
- package/src/cognition/faculties/semantic.engine/clustering.ts +673 -0
- package/src/cognition/faculties/semantic.engine/index.ts +6 -0
- package/src/cognition/faculties/semantic.engine/integrator.ts +750 -0
- package/src/cognition/faculties/semantic.engine/types.ts +53 -0
- package/src/cognition/faculties/sleep.pressure.regulator.ts +262 -0
- package/src/cognition/faculties/social.perception.ts +333 -0
- package/src/cognition/faculties/spaced.repetition.ts +605 -0
- package/src/cognition/faculties/stress.regulator.ts +375 -0
- package/src/cognition/faculties/task.switcher.ts +239 -0
- package/src/cognition/faculties/theory.of.mind.ts +333 -0
- package/src/cognition/faculties/threat.evaluator.ts +312 -0
- package/src/cognition/faculties/working.memory.ts +406 -0
- package/src/cognition/generative.model.ts +344 -0
- package/src/cognition/heartbeat.ts +70 -0
- package/src/cognition/index.ts +291 -0
- package/src/cognition/instruction.handler.ts +146 -0
- package/src/cognition/memory/index.ts +35 -0
- package/src/cognition/memory/vector.adapter.ts +316 -0
- package/src/cognition/memory/vector.content.ts +47 -0
- package/src/cognition/memory/vector.embedder.ts +212 -0
- package/src/cognition/memory/vector.index.ts +459 -0
- package/src/cognition/memory/vector.types.ts +65 -0
- package/src/cognition/orchestrator.ts +142 -0
- package/src/cognition/persona.prior.ts +265 -0
- package/src/cognition/schema.registry.ts +145 -0
- package/src/cognition/senses/audition.engine/engine.ts +976 -0
- package/src/cognition/senses/audition.engine/salience.ts +59 -0
- package/src/cognition/senses/base.sense.engine.ts +117 -0
- package/src/cognition/senses/gustation.engine.ts +24 -0
- package/src/cognition/senses/index.ts +172 -0
- package/src/cognition/senses/olfaction.engine.ts +24 -0
- package/src/cognition/senses/somatosensation.engine.ts +23 -0
- package/src/cognition/senses/vision.engine.ts +23 -0
- package/src/cognition/types.ts +63 -0
- package/src/cognition/utilities/token.tracker.ts +492 -0
- package/src/core/abstracts.ts +60 -0
- package/src/core/async.engine.ts +539 -0
- package/src/core/clock.ts +196 -0
- package/src/core/completion.recorder.ts +122 -0
- package/src/core/conflict.detector.ts +140 -0
- package/src/core/distributed.ts +626 -0
- package/src/core/event.bus.ts +292 -0
- package/src/core/inbound.recorder.ts +100 -0
- package/src/core/index.ts +167 -0
- package/src/core/logger.ts +85 -0
- package/src/core/metrics.ts +107 -0
- package/src/core/orchestrator.ts +625 -0
- package/src/core/replay.ts +589 -0
- package/src/core/scenario.ts +120 -0
- package/src/core/serialization.ts +448 -0
- package/src/core/simulation.ts +197 -0
- package/src/core/snapshot.manager.ts +293 -0
- package/src/core/state.manager.ts +283 -0
- package/src/core/types.ts +274 -0
- package/src/core/utils.ts +82 -0
- package/src/core/wall.clock.ts +23 -0
- package/src/extensions/livestream.ext.ts +570 -0
- package/src/extensions/time.ext.ts +339 -0
- package/src/index.ts +91 -0
- package/src/llm/gate.ts +140 -0
- package/src/llm/index.ts +716 -0
- package/src/llm/summarizer.ts +170 -0
- package/src/llm/wire.contracts.ts +67 -0
- package/src/pma/eval.ts +651 -0
- package/src/pma/index.ts +1082 -0
- package/src/profiles/built-in.ts +7 -0
- package/src/profiles/companion.ts +28 -0
- package/src/profiles/company-brain.ts +54 -0
- package/src/profiles/customer-service.ts +30 -0
- package/src/profiles/game-npc.ts +20 -0
- package/src/profiles/index.ts +42 -0
- package/src/profiles/smart-home.ts +34 -0
- package/src/runners/coherence.runner.ts +49 -0
- package/src/runners/outreach.runner.ts +158 -0
- package/src/runners/social.runner.ts +182 -0
- package/src/runners/thin-shim.runner.ts +195 -0
- package/src/sdk/will.ts +334 -0
- package/src/stem/assembly.audit.ts +88 -0
- package/src/stem/distribution.ts +203 -0
- package/src/stem/guards/identity.coherence.ts +152 -0
- package/src/stem/guards/identity.guard.ts +227 -0
- package/src/stem/index.ts +1145 -0
- package/src/stem/mind.ts +1090 -0
- package/src/stem/tracts/ack.reconciler.ts +55 -0
- package/src/stem/tracts/biography.writer.ts +190 -0
- package/src/stem/tracts/effector.controller.ts +143 -0
- package/src/stem/tracts/health.reporter.ts +113 -0
- package/src/stem/tracts/inbound.queue.ts +54 -0
- package/src/stem/tracts/outbox.controller.ts +167 -0
- package/src/stem/tracts/outbox.writer.ts +133 -0
- package/src/stem/tracts/pma.controller.ts +109 -0
- package/src/stem/tracts/replay.controller.ts +177 -0
- package/src/stem/tracts/sensory.controller.ts +168 -0
- package/src/stem/tracts/session.logger.ts +157 -0
- package/src/stem/tracts/transport/index.ts +38 -0
- package/src/stem/tracts/transport/loopback.transport.ts +86 -0
- package/src/stem/tracts/transport/socketio.transport.ts +200 -0
- package/src/stem/tracts/transport/stream.transport.ts +152 -0
- package/src/stem/tracts/transport/types.ts +193 -0
- package/src/stem/tracts/transport.controller.ts +380 -0
- package/src/types.ts +116 -0
|
@@ -0,0 +1,568 @@
|
|
|
1
|
+
// ─────────────────────────────────────────────────────────────
|
|
2
|
+
// src/cognition/event.schemas.ts
|
|
3
|
+
// ─────────────────────────────────────────────────────────────
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Central registration of all cognitive event schemas.
|
|
7
|
+
*
|
|
8
|
+
* Import this module once at application startup to register all
|
|
9
|
+
* event types with the globalSchemaRegistry. Importing it multiple
|
|
10
|
+
* times is safe — schemas are idempotent once registered.
|
|
11
|
+
*
|
|
12
|
+
* Schema naming follows the topic scheme: {engine}.{category}.{signal}
|
|
13
|
+
* All payloads are validated as plain objects (structural, not exhaustive).
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
import { globalSchemaRegistry } from '#cognition/schema.registry'
|
|
17
|
+
|
|
18
|
+
function isObj( v: unknown ): v is Record<string, unknown> {
|
|
19
|
+
return typeof v === 'object' && v !== null && !Array.isArray( v )
|
|
20
|
+
}
|
|
21
|
+
function hasNum( o: Record<string, unknown>, k: string ): string | null {
|
|
22
|
+
return typeof o[ k ] === 'number' ? null : `missing numeric field '${k}'`
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// ── Regulatory ───────────────────────────────────────────────
|
|
26
|
+
|
|
27
|
+
globalSchemaRegistry.register({
|
|
28
|
+
type: 'stress.zone.transition', version: 1,
|
|
29
|
+
validate( p ){
|
|
30
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
31
|
+
return hasNum( p, 'zone' ) ?? hasNum( p, 'load' )
|
|
32
|
+
},
|
|
33
|
+
})
|
|
34
|
+
|
|
35
|
+
globalSchemaRegistry.register({
|
|
36
|
+
type: 'energy.level.critical', version: 1,
|
|
37
|
+
validate( p ){
|
|
38
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
39
|
+
return hasNum( p, 'level' )
|
|
40
|
+
},
|
|
41
|
+
})
|
|
42
|
+
|
|
43
|
+
globalSchemaRegistry.register({
|
|
44
|
+
type: 'sleep.pressure.critical', version: 1,
|
|
45
|
+
validate( p ){
|
|
46
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
47
|
+
return hasNum( p, 'pressure' )
|
|
48
|
+
},
|
|
49
|
+
})
|
|
50
|
+
|
|
51
|
+
globalSchemaRegistry.register({
|
|
52
|
+
type: 'circadian.alertness.shifted', version: 1,
|
|
53
|
+
validate( p ){
|
|
54
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
55
|
+
return hasNum( p, 'alertness' )
|
|
56
|
+
},
|
|
57
|
+
})
|
|
58
|
+
|
|
59
|
+
globalSchemaRegistry.register({
|
|
60
|
+
type: 'modulation.degradation.elevated', version: 1,
|
|
61
|
+
validate( p ){
|
|
62
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
63
|
+
return hasNum( p, 'attentionDegradation' )
|
|
64
|
+
},
|
|
65
|
+
})
|
|
66
|
+
|
|
67
|
+
// ── Perceptual ───────────────────────────────────────────────
|
|
68
|
+
|
|
69
|
+
globalSchemaRegistry.register({
|
|
70
|
+
type: 'perception.novelty.spike', version: 1,
|
|
71
|
+
validate( p ){
|
|
72
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
73
|
+
return hasNum( p, 'novelty' )
|
|
74
|
+
},
|
|
75
|
+
})
|
|
76
|
+
|
|
77
|
+
globalSchemaRegistry.register({
|
|
78
|
+
type: 'percept.batch.ingested', version: 1,
|
|
79
|
+
validate( p ){
|
|
80
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
81
|
+
return hasNum( p, 'count' )
|
|
82
|
+
},
|
|
83
|
+
})
|
|
84
|
+
|
|
85
|
+
globalSchemaRegistry.register({
|
|
86
|
+
type: 'social.agents.present', version: 1,
|
|
87
|
+
validate( p ){
|
|
88
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
89
|
+
return hasNum( p, 'activeAgents' )
|
|
90
|
+
},
|
|
91
|
+
})
|
|
92
|
+
|
|
93
|
+
globalSchemaRegistry.register({
|
|
94
|
+
type: 'interoception.state.updated', version: 1,
|
|
95
|
+
validate( p ){
|
|
96
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
97
|
+
return hasNum( p, 'comfort' )
|
|
98
|
+
},
|
|
99
|
+
})
|
|
100
|
+
|
|
101
|
+
globalSchemaRegistry.register({
|
|
102
|
+
type: 'working_memory.capacity.reached', version: 1,
|
|
103
|
+
validate( p ){
|
|
104
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
105
|
+
return hasNum( p, 'capacity' ) ?? hasNum( p, 'items' )
|
|
106
|
+
},
|
|
107
|
+
})
|
|
108
|
+
|
|
109
|
+
// ── Affective ────────────────────────────────────────────────
|
|
110
|
+
|
|
111
|
+
globalSchemaRegistry.register({
|
|
112
|
+
type: 'emotion.fear.elevated', version: 1,
|
|
113
|
+
validate( p ){
|
|
114
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
115
|
+
return hasNum( p, 'fear' )
|
|
116
|
+
},
|
|
117
|
+
})
|
|
118
|
+
|
|
119
|
+
globalSchemaRegistry.register({
|
|
120
|
+
type: 'emotion.joy.peak', version: 1,
|
|
121
|
+
validate( p ){
|
|
122
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
123
|
+
return hasNum( p, 'joy' )
|
|
124
|
+
},
|
|
125
|
+
})
|
|
126
|
+
|
|
127
|
+
globalSchemaRegistry.register({
|
|
128
|
+
type: 'emotion.awe.experienced', version: 1,
|
|
129
|
+
validate( p ){
|
|
130
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
131
|
+
return hasNum( p, 'awe' )
|
|
132
|
+
},
|
|
133
|
+
})
|
|
134
|
+
|
|
135
|
+
globalSchemaRegistry.register({
|
|
136
|
+
type: 'emotion.frustration.elevated', version: 1,
|
|
137
|
+
validate( p ){
|
|
138
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
139
|
+
return hasNum( p, 'frustration' )
|
|
140
|
+
},
|
|
141
|
+
})
|
|
142
|
+
|
|
143
|
+
globalSchemaRegistry.register({
|
|
144
|
+
type: 'emotion.guilt.elevated', version: 1,
|
|
145
|
+
validate( p ){
|
|
146
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
147
|
+
return hasNum( p, 'guilt' )
|
|
148
|
+
},
|
|
149
|
+
})
|
|
150
|
+
|
|
151
|
+
globalSchemaRegistry.register({
|
|
152
|
+
type: 'emotion.love.significant', version: 1,
|
|
153
|
+
validate( p ){
|
|
154
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
155
|
+
return hasNum( p, 'love' )
|
|
156
|
+
},
|
|
157
|
+
})
|
|
158
|
+
|
|
159
|
+
globalSchemaRegistry.register({
|
|
160
|
+
type: 'emotion.sadness.elevated', version: 1,
|
|
161
|
+
validate( p ){
|
|
162
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
163
|
+
return hasNum( p, 'sadness' )
|
|
164
|
+
},
|
|
165
|
+
})
|
|
166
|
+
|
|
167
|
+
globalSchemaRegistry.register({
|
|
168
|
+
type: 'affect.state.shifted', version: 1,
|
|
169
|
+
validate( p ){
|
|
170
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
171
|
+
return hasNum( p, 'valence' ) ?? hasNum( p, 'arousal' )
|
|
172
|
+
},
|
|
173
|
+
})
|
|
174
|
+
|
|
175
|
+
// ── Executive ────────────────────────────────────────────────
|
|
176
|
+
|
|
177
|
+
globalSchemaRegistry.register({
|
|
178
|
+
type: 'goal.state.changed', version: 1,
|
|
179
|
+
validate( p ){
|
|
180
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
181
|
+
return hasNum( p, 'activeCount' )
|
|
182
|
+
},
|
|
183
|
+
})
|
|
184
|
+
|
|
185
|
+
globalSchemaRegistry.register({
|
|
186
|
+
type: 'decision.committed', version: 1,
|
|
187
|
+
validate( p ){
|
|
188
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
189
|
+
if( typeof p['actionType'] !== 'string' ) return "missing string field 'actionType'"
|
|
190
|
+
return hasNum( p, 'confidence' )
|
|
191
|
+
},
|
|
192
|
+
})
|
|
193
|
+
|
|
194
|
+
globalSchemaRegistry.register({
|
|
195
|
+
type: 'inhibition.vetoed', version: 1,
|
|
196
|
+
validate( p ){
|
|
197
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
198
|
+
if( !Array.isArray( p['vetoedActions'] ) ) return "missing array field 'vetoedActions'"
|
|
199
|
+
return null
|
|
200
|
+
},
|
|
201
|
+
})
|
|
202
|
+
|
|
203
|
+
globalSchemaRegistry.register({
|
|
204
|
+
type: 'planning.plan.created', version: 1,
|
|
205
|
+
validate( p ){
|
|
206
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
207
|
+
return hasNum( p, 'totalPlans' )
|
|
208
|
+
},
|
|
209
|
+
})
|
|
210
|
+
|
|
211
|
+
globalSchemaRegistry.register({
|
|
212
|
+
type: 'task.focus.changed', version: 1,
|
|
213
|
+
validate( p ){
|
|
214
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
215
|
+
return hasNum( p, 'focusTicks' )
|
|
216
|
+
},
|
|
217
|
+
})
|
|
218
|
+
|
|
219
|
+
|
|
220
|
+
globalSchemaRegistry.register({
|
|
221
|
+
type: 'action.executed', version: 1,
|
|
222
|
+
validate( p ){
|
|
223
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
224
|
+
return hasNum( p, 'count' )
|
|
225
|
+
},
|
|
226
|
+
})
|
|
227
|
+
|
|
228
|
+
// ── Memory ───────────────────────────────────────────────────
|
|
229
|
+
|
|
230
|
+
globalSchemaRegistry.register({
|
|
231
|
+
type: 'episode.consolidated', version: 1,
|
|
232
|
+
validate( p ){
|
|
233
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
234
|
+
return hasNum( p, 'total' )
|
|
235
|
+
},
|
|
236
|
+
})
|
|
237
|
+
|
|
238
|
+
globalSchemaRegistry.register({
|
|
239
|
+
type: 'belief.updated', version: 1,
|
|
240
|
+
validate( p ){
|
|
241
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
242
|
+
return hasNum( p, 'total' )
|
|
243
|
+
},
|
|
244
|
+
})
|
|
245
|
+
|
|
246
|
+
globalSchemaRegistry.register({
|
|
247
|
+
type: 'memory.decay.applied', version: 1,
|
|
248
|
+
validate( p ){
|
|
249
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
250
|
+
return hasNum( p, 'decayed' )
|
|
251
|
+
},
|
|
252
|
+
})
|
|
253
|
+
|
|
254
|
+
globalSchemaRegistry.register({
|
|
255
|
+
type: 'dream.active', version: 1,
|
|
256
|
+
validate( p ){
|
|
257
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
258
|
+
return hasNum( p, 'reactivated' )
|
|
259
|
+
},
|
|
260
|
+
})
|
|
261
|
+
|
|
262
|
+
globalSchemaRegistry.register({
|
|
263
|
+
type: 'narrative.updated', version: 1,
|
|
264
|
+
validate( p ){
|
|
265
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
266
|
+
return hasNum( p, 'version' )
|
|
267
|
+
},
|
|
268
|
+
})
|
|
269
|
+
|
|
270
|
+
// ── Meta-cognitive ───────────────────────────────────────────
|
|
271
|
+
|
|
272
|
+
globalSchemaRegistry.register({
|
|
273
|
+
type: 'self_model.updated', version: 1,
|
|
274
|
+
validate( p ){
|
|
275
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
276
|
+
return hasNum( p, 'version' )
|
|
277
|
+
},
|
|
278
|
+
})
|
|
279
|
+
|
|
280
|
+
globalSchemaRegistry.register({
|
|
281
|
+
type: 'confidence.calibrated', version: 1,
|
|
282
|
+
validate( p ){
|
|
283
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
284
|
+
return hasNum( p, 'calibrationBias' )
|
|
285
|
+
},
|
|
286
|
+
})
|
|
287
|
+
|
|
288
|
+
globalSchemaRegistry.register({
|
|
289
|
+
type: 'bias.detected', version: 1,
|
|
290
|
+
validate( p ){
|
|
291
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
292
|
+
return hasNum( p, 'count' )
|
|
293
|
+
},
|
|
294
|
+
})
|
|
295
|
+
|
|
296
|
+
globalSchemaRegistry.register({
|
|
297
|
+
type: 'introspection.insight', version: 1,
|
|
298
|
+
validate( p ){
|
|
299
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
300
|
+
return hasNum( p, 'total' )
|
|
301
|
+
},
|
|
302
|
+
})
|
|
303
|
+
|
|
304
|
+
globalSchemaRegistry.register({
|
|
305
|
+
type: 'theory_of_mind.model.updated', version: 1,
|
|
306
|
+
validate( p ){
|
|
307
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
308
|
+
return hasNum( p, 'modelsActive' )
|
|
309
|
+
},
|
|
310
|
+
})
|
|
311
|
+
|
|
312
|
+
globalSchemaRegistry.register({
|
|
313
|
+
type: 'empathy.resonance', version: 1,
|
|
314
|
+
validate( p ){
|
|
315
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
316
|
+
return hasNum( p, 'activeModels' )
|
|
317
|
+
},
|
|
318
|
+
})
|
|
319
|
+
|
|
320
|
+
globalSchemaRegistry.register({
|
|
321
|
+
type: 'reputation.updated', version: 1,
|
|
322
|
+
validate( p ){
|
|
323
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
324
|
+
return hasNum( p, 'trackedAgents' )
|
|
325
|
+
},
|
|
326
|
+
})
|
|
327
|
+
|
|
328
|
+
// ── Infrastructure ───────────────────────────────────────────
|
|
329
|
+
|
|
330
|
+
globalSchemaRegistry.register({
|
|
331
|
+
type: 'executive.active', version: 1,
|
|
332
|
+
validate( p ){
|
|
333
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
334
|
+
return hasNum( p, 'tick' )
|
|
335
|
+
},
|
|
336
|
+
})
|
|
337
|
+
|
|
338
|
+
globalSchemaRegistry.register({
|
|
339
|
+
type: 'communication.session.active', version: 1,
|
|
340
|
+
validate( p ){
|
|
341
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
342
|
+
return hasNum( p, 'sessionCount' )
|
|
343
|
+
},
|
|
344
|
+
})
|
|
345
|
+
|
|
346
|
+
globalSchemaRegistry.register({
|
|
347
|
+
type: 'llm.cost.tick', version: 1,
|
|
348
|
+
validate( p ){
|
|
349
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
350
|
+
return hasNum( p, 'costThisTick' )
|
|
351
|
+
},
|
|
352
|
+
})
|
|
353
|
+
|
|
354
|
+
// ── Phase D: cold-start and rich state-change events ─────────
|
|
355
|
+
|
|
356
|
+
// engine.snapshot — published by every CognitiveEngine on startup
|
|
357
|
+
globalSchemaRegistry.register({
|
|
358
|
+
type: 'engine.snapshot', version: 1,
|
|
359
|
+
validate( p ){ return typeof p === 'object' && p !== null ? null : 'payload must be object' },
|
|
360
|
+
})
|
|
361
|
+
|
|
362
|
+
// State-change events — published when a regulatory engine's value changes
|
|
363
|
+
// meaningfully. Carry full current state so subscribers can update local copies.
|
|
364
|
+
|
|
365
|
+
globalSchemaRegistry.register({
|
|
366
|
+
type: 'energy.state.changed', version: 1,
|
|
367
|
+
validate( p ){
|
|
368
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
369
|
+
return hasNum( p, 'level' ) ?? hasNum( p, 'zoneCode' )
|
|
370
|
+
},
|
|
371
|
+
})
|
|
372
|
+
|
|
373
|
+
globalSchemaRegistry.register({
|
|
374
|
+
type: 'sleep.state.changed', version: 1,
|
|
375
|
+
validate( p ){
|
|
376
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
377
|
+
return hasNum( p, 'pressure' ) ?? hasNum( p, 'intensity' )
|
|
378
|
+
},
|
|
379
|
+
})
|
|
380
|
+
|
|
381
|
+
globalSchemaRegistry.register({
|
|
382
|
+
type: 'stress.state.changed', version: 1,
|
|
383
|
+
validate( p ){
|
|
384
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
385
|
+
return hasNum( p, 'load' ) ?? hasNum( p, 'zoneCode' )
|
|
386
|
+
},
|
|
387
|
+
})
|
|
388
|
+
|
|
389
|
+
globalSchemaRegistry.register({
|
|
390
|
+
type: 'circadian.state.changed', version: 1,
|
|
391
|
+
validate( p ){
|
|
392
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
393
|
+
return hasNum( p, 'alertness' )
|
|
394
|
+
},
|
|
395
|
+
})
|
|
396
|
+
|
|
397
|
+
globalSchemaRegistry.register({
|
|
398
|
+
type: 'attention.state.changed', version: 1,
|
|
399
|
+
validate( p ){
|
|
400
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
401
|
+
return hasNum( p, 'usage' )
|
|
402
|
+
},
|
|
403
|
+
})
|
|
404
|
+
|
|
405
|
+
globalSchemaRegistry.register({
|
|
406
|
+
type: 'attention.regulate', version: 1,
|
|
407
|
+
validate( p ){
|
|
408
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
409
|
+
return hasNum( p, 'effortTarget' )
|
|
410
|
+
},
|
|
411
|
+
})
|
|
412
|
+
|
|
413
|
+
globalSchemaRegistry.register({
|
|
414
|
+
type: 'affect.state.changed', version: 1,
|
|
415
|
+
validate( p ){
|
|
416
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
417
|
+
return hasNum( p, 'valence' ) ?? hasNum( p, 'arousal' )
|
|
418
|
+
},
|
|
419
|
+
})
|
|
420
|
+
|
|
421
|
+
globalSchemaRegistry.register({
|
|
422
|
+
type: 'interoception.state.changed', version: 1,
|
|
423
|
+
validate( p ){
|
|
424
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
425
|
+
return hasNum( p, 'comfort' )
|
|
426
|
+
},
|
|
427
|
+
})
|
|
428
|
+
|
|
429
|
+
globalSchemaRegistry.register({
|
|
430
|
+
type: 'novelty.state.changed', version: 1,
|
|
431
|
+
validate( p ){
|
|
432
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
433
|
+
return hasNum( p, 'novelty' )
|
|
434
|
+
},
|
|
435
|
+
})
|
|
436
|
+
|
|
437
|
+
globalSchemaRegistry.register({
|
|
438
|
+
type: 'memory.state.changed', version: 1,
|
|
439
|
+
validate( p ){
|
|
440
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
441
|
+
return null
|
|
442
|
+
},
|
|
443
|
+
})
|
|
444
|
+
|
|
445
|
+
globalSchemaRegistry.register({
|
|
446
|
+
type: 'metacognition.state.changed', version: 1,
|
|
447
|
+
validate( p ){
|
|
448
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
449
|
+
return null
|
|
450
|
+
},
|
|
451
|
+
})
|
|
452
|
+
|
|
453
|
+
// ── Phase E: Global Workspace (Executive broadcast events) ─────
|
|
454
|
+
|
|
455
|
+
globalSchemaRegistry.register({
|
|
456
|
+
type: 'executive.interpretation.formed', version: 1,
|
|
457
|
+
validate( p ){
|
|
458
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
459
|
+
return hasNum( p, 'confidence' )
|
|
460
|
+
},
|
|
461
|
+
})
|
|
462
|
+
|
|
463
|
+
globalSchemaRegistry.register({
|
|
464
|
+
type: 'executive.goal.proposed', version: 1,
|
|
465
|
+
validate( p ){
|
|
466
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
467
|
+
return hasNum( p, 'count' )
|
|
468
|
+
},
|
|
469
|
+
})
|
|
470
|
+
|
|
471
|
+
globalSchemaRegistry.register({
|
|
472
|
+
type: 'executive.self.reflection', version: 1,
|
|
473
|
+
validate( p ){
|
|
474
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
475
|
+
return hasNum( p, 'confidence' )
|
|
476
|
+
},
|
|
477
|
+
})
|
|
478
|
+
|
|
479
|
+
globalSchemaRegistry.register({
|
|
480
|
+
type: 'executive.decision.rationale', version: 1,
|
|
481
|
+
validate( p ){
|
|
482
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
483
|
+
return hasNum( p, 'confidence' )
|
|
484
|
+
},
|
|
485
|
+
})
|
|
486
|
+
|
|
487
|
+
globalSchemaRegistry.register({
|
|
488
|
+
type: 'executive.prediction.formed', version: 1,
|
|
489
|
+
validate( p ){
|
|
490
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
491
|
+
return hasNum( p, 'confidence' )
|
|
492
|
+
},
|
|
493
|
+
})
|
|
494
|
+
|
|
495
|
+
// ── Conversion-enabling schemas ───────────────────────────────
|
|
496
|
+
// New events that give subscribers the context they need without
|
|
497
|
+
// reaching into shared state.
|
|
498
|
+
|
|
499
|
+
globalSchemaRegistry.register({
|
|
500
|
+
type: 'goal.blocked', version: 1,
|
|
501
|
+
validate( p ){
|
|
502
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
503
|
+
if( typeof p['goalId'] !== 'string' ) return "missing string field 'goalId'"
|
|
504
|
+
return hasNum( p, 'ticksStuck' ) ?? hasNum( p, 'priority' )
|
|
505
|
+
},
|
|
506
|
+
})
|
|
507
|
+
|
|
508
|
+
globalSchemaRegistry.register({
|
|
509
|
+
type: 'goal.achieved', version: 1,
|
|
510
|
+
validate( p ){
|
|
511
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
512
|
+
if( typeof p['goalId'] !== 'string' ) return "missing string field 'goalId'"
|
|
513
|
+
return hasNum( p, 'priority' ) ?? hasNum( p, 'timeToComplete' )
|
|
514
|
+
},
|
|
515
|
+
})
|
|
516
|
+
|
|
517
|
+
globalSchemaRegistry.register({
|
|
518
|
+
type: 'goal.abandoned', version: 1,
|
|
519
|
+
validate( p ){
|
|
520
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
521
|
+
if( typeof p['goalId'] !== 'string' ) return "missing string field 'goalId'"
|
|
522
|
+
return null
|
|
523
|
+
},
|
|
524
|
+
})
|
|
525
|
+
|
|
526
|
+
globalSchemaRegistry.register({
|
|
527
|
+
type: 'action.outcome', version: 1,
|
|
528
|
+
validate( p ){
|
|
529
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
530
|
+
if( typeof p['actionType'] !== 'string' ) return "missing string field 'actionType'"
|
|
531
|
+
if( typeof p['domain'] !== 'string' ) return "missing string field 'domain'"
|
|
532
|
+
return hasNum( p, 'outcomeQuality' )
|
|
533
|
+
},
|
|
534
|
+
})
|
|
535
|
+
|
|
536
|
+
globalSchemaRegistry.register({
|
|
537
|
+
type: 'sleep.begun', version: 1,
|
|
538
|
+
validate( p ){
|
|
539
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
540
|
+
return hasNum( p, 'pressure' )
|
|
541
|
+
},
|
|
542
|
+
})
|
|
543
|
+
|
|
544
|
+
globalSchemaRegistry.register({
|
|
545
|
+
type: 'sleep.ended', version: 1,
|
|
546
|
+
validate( p ){
|
|
547
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
548
|
+
return hasNum( p, 'tick' )
|
|
549
|
+
},
|
|
550
|
+
})
|
|
551
|
+
|
|
552
|
+
globalSchemaRegistry.register({
|
|
553
|
+
type: 'interaction.occurred', version: 1,
|
|
554
|
+
validate( p ){
|
|
555
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
556
|
+
if( typeof p['keid'] !== 'string' ) return "missing string field 'keid'"
|
|
557
|
+
return hasNum( p, 'valence' ) ?? hasNum( p, 'intensity' )
|
|
558
|
+
},
|
|
559
|
+
})
|
|
560
|
+
|
|
561
|
+
globalSchemaRegistry.register({
|
|
562
|
+
type: 'percept.category.updated', version: 1,
|
|
563
|
+
validate( p ){
|
|
564
|
+
if( !isObj(p) ) return 'payload must be object'
|
|
565
|
+
if( typeof p['category'] !== 'string' ) return "missing string field 'category'"
|
|
566
|
+
return hasNum( p, 'count' )
|
|
567
|
+
},
|
|
568
|
+
})
|