nexo-brain 7.2.0 → 7.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/.claude-plugin/plugin.json +1 -1
- package/README.md +3 -1
- package/hooks/hooks.json +12 -0
- package/package.json +2 -1
- package/src/auto_update.py +128 -17
- package/src/client_sync.py +3 -0
- package/src/crons/manifest.json +12 -0
- package/src/hook_guardrails.py +21 -0
- package/src/hooks/manifest.json +1 -0
- package/src/hooks/pre_tool_use.py +161 -0
- package/src/presets/entities_universal.json +74 -0
- package/src/scripts/guardian_metrics_aggregate.py +177 -0
- package/tool-enforcement-map.json +3714 -0
|
@@ -0,0 +1,3714 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://nexo-brain.com/schemas/tool-enforcement-map-v2.1.json",
|
|
3
|
+
"version": "2.1.0",
|
|
4
|
+
"description": "Canonical map of all NEXO Brain MCP tools with enforcement rules, dependency chains, and behavioral hints. Source of truth for Protocol Enforcer (Desktop + headless). v2.1 adds schema support for Fase 2 event-driven rules (R01-R33): server_side_rules at tool level, per-rule mode (shadow|soft|hard), core_rule flag, and new rule types (pre_tool_intent, post_user_message, on_output_classify, before_tool_strict_block). Backward-compatible: executors that only handle v2.0 rule types ignore the new fields.",
|
|
5
|
+
"tools": {
|
|
6
|
+
"nexo_adaptive_decay": {
|
|
7
|
+
"description": "Trigger inter-session tension decay",
|
|
8
|
+
"category": "adaptive",
|
|
9
|
+
"source": "plugin:adaptive_mode",
|
|
10
|
+
"requires": [],
|
|
11
|
+
"provides": [],
|
|
12
|
+
"internal_calls": [],
|
|
13
|
+
"enforcement": {
|
|
14
|
+
"level": "none",
|
|
15
|
+
"rules": []
|
|
16
|
+
},
|
|
17
|
+
"triggers_after": []
|
|
18
|
+
},
|
|
19
|
+
"nexo_adaptive_history": {
|
|
20
|
+
"description": "View adaptive mode transitions",
|
|
21
|
+
"category": "adaptive",
|
|
22
|
+
"source": "plugin:adaptive_mode",
|
|
23
|
+
"requires": [],
|
|
24
|
+
"provides": [],
|
|
25
|
+
"internal_calls": [],
|
|
26
|
+
"enforcement": {
|
|
27
|
+
"level": "none",
|
|
28
|
+
"rules": []
|
|
29
|
+
},
|
|
30
|
+
"triggers_after": []
|
|
31
|
+
},
|
|
32
|
+
"nexo_adaptive_mode": {
|
|
33
|
+
"description": "Get/compute adaptive personality mode (FLOW/NORMAL/TENSION)",
|
|
34
|
+
"category": "adaptive",
|
|
35
|
+
"source": "plugin:adaptive_mode",
|
|
36
|
+
"requires": [],
|
|
37
|
+
"provides": [],
|
|
38
|
+
"internal_calls": [],
|
|
39
|
+
"enforcement": {
|
|
40
|
+
"level": "none",
|
|
41
|
+
"rules": []
|
|
42
|
+
},
|
|
43
|
+
"triggers_after": []
|
|
44
|
+
},
|
|
45
|
+
"nexo_adaptive_override": {
|
|
46
|
+
"description": "Manual override: force mode",
|
|
47
|
+
"category": "adaptive",
|
|
48
|
+
"source": "plugin:adaptive_mode",
|
|
49
|
+
"requires": [],
|
|
50
|
+
"provides": [],
|
|
51
|
+
"internal_calls": [],
|
|
52
|
+
"enforcement": {
|
|
53
|
+
"level": "none",
|
|
54
|
+
"rules": []
|
|
55
|
+
},
|
|
56
|
+
"triggers_after": []
|
|
57
|
+
},
|
|
58
|
+
"nexo_adaptive_reset": {
|
|
59
|
+
"description": "Reset adaptive state",
|
|
60
|
+
"category": "adaptive",
|
|
61
|
+
"source": "plugin:adaptive_mode",
|
|
62
|
+
"requires": [],
|
|
63
|
+
"provides": [],
|
|
64
|
+
"internal_calls": [],
|
|
65
|
+
"enforcement": {
|
|
66
|
+
"level": "none",
|
|
67
|
+
"rules": []
|
|
68
|
+
},
|
|
69
|
+
"triggers_after": []
|
|
70
|
+
},
|
|
71
|
+
"nexo_adaptive_weights": {
|
|
72
|
+
"description": "View adaptive weights and training stats",
|
|
73
|
+
"category": "adaptive",
|
|
74
|
+
"source": "plugin:adaptive_mode",
|
|
75
|
+
"requires": [],
|
|
76
|
+
"provides": [],
|
|
77
|
+
"internal_calls": [],
|
|
78
|
+
"enforcement": {
|
|
79
|
+
"level": "none",
|
|
80
|
+
"rules": []
|
|
81
|
+
},
|
|
82
|
+
"triggers_after": []
|
|
83
|
+
},
|
|
84
|
+
"nexo_agent_create": {
|
|
85
|
+
"description": "Register a new agent",
|
|
86
|
+
"category": "agent",
|
|
87
|
+
"source": "plugin:agents",
|
|
88
|
+
"requires": [],
|
|
89
|
+
"provides": [],
|
|
90
|
+
"internal_calls": [],
|
|
91
|
+
"enforcement": {
|
|
92
|
+
"level": "none",
|
|
93
|
+
"rules": []
|
|
94
|
+
},
|
|
95
|
+
"triggers_after": []
|
|
96
|
+
},
|
|
97
|
+
"nexo_agent_delete": {
|
|
98
|
+
"description": "Remove agent from registry",
|
|
99
|
+
"category": "agent",
|
|
100
|
+
"source": "plugin:agents",
|
|
101
|
+
"requires": [],
|
|
102
|
+
"provides": [],
|
|
103
|
+
"internal_calls": [],
|
|
104
|
+
"enforcement": {
|
|
105
|
+
"level": "none",
|
|
106
|
+
"rules": []
|
|
107
|
+
},
|
|
108
|
+
"triggers_after": []
|
|
109
|
+
},
|
|
110
|
+
"nexo_agent_get": {
|
|
111
|
+
"description": "Get agent's full profile",
|
|
112
|
+
"category": "agent",
|
|
113
|
+
"source": "plugin:agents",
|
|
114
|
+
"requires": [],
|
|
115
|
+
"provides": [],
|
|
116
|
+
"internal_calls": [],
|
|
117
|
+
"enforcement": {
|
|
118
|
+
"level": "none",
|
|
119
|
+
"rules": []
|
|
120
|
+
},
|
|
121
|
+
"triggers_after": []
|
|
122
|
+
},
|
|
123
|
+
"nexo_agent_list": {
|
|
124
|
+
"description": "List registered agents",
|
|
125
|
+
"category": "agent",
|
|
126
|
+
"source": "plugin:agents",
|
|
127
|
+
"requires": [],
|
|
128
|
+
"provides": [],
|
|
129
|
+
"internal_calls": [],
|
|
130
|
+
"enforcement": {
|
|
131
|
+
"level": "none",
|
|
132
|
+
"rules": []
|
|
133
|
+
},
|
|
134
|
+
"triggers_after": []
|
|
135
|
+
},
|
|
136
|
+
"nexo_agent_update": {
|
|
137
|
+
"description": "Update agent fields",
|
|
138
|
+
"category": "agent",
|
|
139
|
+
"source": "plugin:agents",
|
|
140
|
+
"requires": [],
|
|
141
|
+
"provides": [],
|
|
142
|
+
"internal_calls": [],
|
|
143
|
+
"enforcement": {
|
|
144
|
+
"level": "none",
|
|
145
|
+
"rules": []
|
|
146
|
+
},
|
|
147
|
+
"triggers_after": []
|
|
148
|
+
},
|
|
149
|
+
"nexo_answer": {
|
|
150
|
+
"description": "Answer pending question",
|
|
151
|
+
"category": "inter_session",
|
|
152
|
+
"source": "server",
|
|
153
|
+
"requires": [],
|
|
154
|
+
"provides": [],
|
|
155
|
+
"internal_calls": [],
|
|
156
|
+
"enforcement": {
|
|
157
|
+
"level": "none",
|
|
158
|
+
"rules": []
|
|
159
|
+
},
|
|
160
|
+
"triggers_after": []
|
|
161
|
+
},
|
|
162
|
+
"nexo_artifact_create": {
|
|
163
|
+
"description": "Register artifact (service, dashboard, script)",
|
|
164
|
+
"category": "artifact",
|
|
165
|
+
"source": "plugin:artifact_registry",
|
|
166
|
+
"requires": [],
|
|
167
|
+
"provides": [],
|
|
168
|
+
"internal_calls": [],
|
|
169
|
+
"enforcement": {
|
|
170
|
+
"level": "none",
|
|
171
|
+
"rules": []
|
|
172
|
+
},
|
|
173
|
+
"triggers_after": []
|
|
174
|
+
},
|
|
175
|
+
"nexo_artifact_delete": {
|
|
176
|
+
"description": "Delete artifact from registry",
|
|
177
|
+
"category": "artifact",
|
|
178
|
+
"source": "plugin:artifact_registry",
|
|
179
|
+
"requires": [],
|
|
180
|
+
"provides": [],
|
|
181
|
+
"internal_calls": [],
|
|
182
|
+
"enforcement": {
|
|
183
|
+
"level": "none",
|
|
184
|
+
"rules": []
|
|
185
|
+
},
|
|
186
|
+
"triggers_after": []
|
|
187
|
+
},
|
|
188
|
+
"nexo_artifact_find": {
|
|
189
|
+
"description": "Find artifacts via retrieval ladder",
|
|
190
|
+
"category": "artifact",
|
|
191
|
+
"source": "plugin:artifact_registry",
|
|
192
|
+
"requires": [],
|
|
193
|
+
"provides": [],
|
|
194
|
+
"internal_calls": [],
|
|
195
|
+
"enforcement": {
|
|
196
|
+
"level": "none",
|
|
197
|
+
"rules": []
|
|
198
|
+
},
|
|
199
|
+
"triggers_after": []
|
|
200
|
+
},
|
|
201
|
+
"nexo_artifact_learn_alias": {
|
|
202
|
+
"description": "Learn new alias from user language",
|
|
203
|
+
"category": "artifact",
|
|
204
|
+
"source": "plugin:artifact_registry",
|
|
205
|
+
"requires": [],
|
|
206
|
+
"provides": [],
|
|
207
|
+
"internal_calls": [],
|
|
208
|
+
"enforcement": {
|
|
209
|
+
"level": "none",
|
|
210
|
+
"rules": []
|
|
211
|
+
},
|
|
212
|
+
"triggers_after": []
|
|
213
|
+
},
|
|
214
|
+
"nexo_artifact_list": {
|
|
215
|
+
"description": "List registered artifacts",
|
|
216
|
+
"category": "artifact",
|
|
217
|
+
"source": "plugin:artifact_registry",
|
|
218
|
+
"requires": [],
|
|
219
|
+
"provides": [],
|
|
220
|
+
"internal_calls": [],
|
|
221
|
+
"enforcement": {
|
|
222
|
+
"level": "none",
|
|
223
|
+
"rules": []
|
|
224
|
+
},
|
|
225
|
+
"triggers_after": []
|
|
226
|
+
},
|
|
227
|
+
"nexo_artifact_update": {
|
|
228
|
+
"description": "Update existing artifact",
|
|
229
|
+
"category": "artifact",
|
|
230
|
+
"source": "plugin:artifact_registry",
|
|
231
|
+
"requires": [],
|
|
232
|
+
"provides": [],
|
|
233
|
+
"internal_calls": [],
|
|
234
|
+
"enforcement": {
|
|
235
|
+
"level": "none",
|
|
236
|
+
"rules": []
|
|
237
|
+
},
|
|
238
|
+
"triggers_after": []
|
|
239
|
+
},
|
|
240
|
+
"nexo_ask": {
|
|
241
|
+
"description": "Ask question to another session",
|
|
242
|
+
"category": "inter_session",
|
|
243
|
+
"source": "server",
|
|
244
|
+
"requires": [],
|
|
245
|
+
"provides": [],
|
|
246
|
+
"internal_calls": [],
|
|
247
|
+
"enforcement": {
|
|
248
|
+
"level": "none",
|
|
249
|
+
"rules": []
|
|
250
|
+
},
|
|
251
|
+
"triggers_after": []
|
|
252
|
+
},
|
|
253
|
+
"nexo_auto_flush_recent": {
|
|
254
|
+
"description": "Show auto-flush records before compaction",
|
|
255
|
+
"category": "system",
|
|
256
|
+
"source": "plugin:backup",
|
|
257
|
+
"requires": [],
|
|
258
|
+
"provides": [],
|
|
259
|
+
"internal_calls": [],
|
|
260
|
+
"enforcement": {
|
|
261
|
+
"level": "none",
|
|
262
|
+
"rules": []
|
|
263
|
+
},
|
|
264
|
+
"triggers_after": []
|
|
265
|
+
},
|
|
266
|
+
"nexo_auto_flush_stats": {
|
|
267
|
+
"description": "Pre-compaction auto-flush stats",
|
|
268
|
+
"category": "system",
|
|
269
|
+
"source": "plugin:backup",
|
|
270
|
+
"requires": [],
|
|
271
|
+
"provides": [],
|
|
272
|
+
"internal_calls": [],
|
|
273
|
+
"enforcement": {
|
|
274
|
+
"level": "none",
|
|
275
|
+
"rules": []
|
|
276
|
+
},
|
|
277
|
+
"triggers_after": []
|
|
278
|
+
},
|
|
279
|
+
"nexo_backup_list": {
|
|
280
|
+
"description": "List available backups",
|
|
281
|
+
"category": "backup",
|
|
282
|
+
"source": "plugin:backup",
|
|
283
|
+
"requires": [],
|
|
284
|
+
"provides": [],
|
|
285
|
+
"internal_calls": [],
|
|
286
|
+
"enforcement": {
|
|
287
|
+
"level": "none",
|
|
288
|
+
"rules": []
|
|
289
|
+
},
|
|
290
|
+
"triggers_after": []
|
|
291
|
+
},
|
|
292
|
+
"nexo_backup_now": {
|
|
293
|
+
"description": "Create immediate database backup",
|
|
294
|
+
"category": "backup",
|
|
295
|
+
"source": "plugin:backup",
|
|
296
|
+
"requires": [],
|
|
297
|
+
"provides": [],
|
|
298
|
+
"internal_calls": [],
|
|
299
|
+
"enforcement": {
|
|
300
|
+
"level": "none",
|
|
301
|
+
"rules": []
|
|
302
|
+
},
|
|
303
|
+
"triggers_after": []
|
|
304
|
+
},
|
|
305
|
+
"nexo_backup_restore": {
|
|
306
|
+
"description": "Restore from backup (DESTRUCTIVE)",
|
|
307
|
+
"category": "backup",
|
|
308
|
+
"source": "plugin:backup",
|
|
309
|
+
"requires": [],
|
|
310
|
+
"provides": [],
|
|
311
|
+
"internal_calls": [],
|
|
312
|
+
"enforcement": {
|
|
313
|
+
"level": "none",
|
|
314
|
+
"rules": []
|
|
315
|
+
},
|
|
316
|
+
"triggers_after": []
|
|
317
|
+
},
|
|
318
|
+
"nexo_change_commit": {
|
|
319
|
+
"description": "Link change log entry to git commit",
|
|
320
|
+
"category": "change_log",
|
|
321
|
+
"source": "plugin:core_rules",
|
|
322
|
+
"requires": [],
|
|
323
|
+
"provides": [],
|
|
324
|
+
"internal_calls": [],
|
|
325
|
+
"enforcement": {
|
|
326
|
+
"level": "none",
|
|
327
|
+
"rules": []
|
|
328
|
+
},
|
|
329
|
+
"triggers_after": []
|
|
330
|
+
},
|
|
331
|
+
"nexo_change_log": {
|
|
332
|
+
"description": "Log code/config change with context",
|
|
333
|
+
"category": "change_log",
|
|
334
|
+
"source": "plugin:core_rules",
|
|
335
|
+
"requires": [],
|
|
336
|
+
"provides": [],
|
|
337
|
+
"internal_calls": [],
|
|
338
|
+
"enforcement": {
|
|
339
|
+
"level": "none",
|
|
340
|
+
"rules": []
|
|
341
|
+
},
|
|
342
|
+
"triggers_after": []
|
|
343
|
+
},
|
|
344
|
+
"nexo_change_search": {
|
|
345
|
+
"description": "Search past code changes",
|
|
346
|
+
"category": "change_log",
|
|
347
|
+
"source": "plugin:core_rules",
|
|
348
|
+
"requires": [],
|
|
349
|
+
"provides": [],
|
|
350
|
+
"internal_calls": [],
|
|
351
|
+
"enforcement": {
|
|
352
|
+
"level": "none",
|
|
353
|
+
"rules": []
|
|
354
|
+
},
|
|
355
|
+
"triggers_after": []
|
|
356
|
+
},
|
|
357
|
+
"nexo_check_answer": {
|
|
358
|
+
"description": "Check if question was answered",
|
|
359
|
+
"category": "inter_session",
|
|
360
|
+
"source": "server",
|
|
361
|
+
"requires": [],
|
|
362
|
+
"provides": [],
|
|
363
|
+
"internal_calls": [],
|
|
364
|
+
"enforcement": {
|
|
365
|
+
"level": "none",
|
|
366
|
+
"rules": []
|
|
367
|
+
},
|
|
368
|
+
"triggers_after": []
|
|
369
|
+
},
|
|
370
|
+
"nexo_checkpoint_read": {
|
|
371
|
+
"description": "Read latest session checkpoint. Used after compaction to restore context.",
|
|
372
|
+
"category": "session",
|
|
373
|
+
"source": "server",
|
|
374
|
+
"requires": [
|
|
375
|
+
"nexo_startup"
|
|
376
|
+
],
|
|
377
|
+
"provides": [
|
|
378
|
+
"restored_checkpoint"
|
|
379
|
+
],
|
|
380
|
+
"internal_calls": [],
|
|
381
|
+
"enforcement": {
|
|
382
|
+
"level": "must",
|
|
383
|
+
"rules": [
|
|
384
|
+
{
|
|
385
|
+
"type": "on_event",
|
|
386
|
+
"event": "post_compaction"
|
|
387
|
+
}
|
|
388
|
+
],
|
|
389
|
+
"inject_prompt": "Context was just compacted. Execute nexo_checkpoint_read to restore session state. Do not produce visible text."
|
|
390
|
+
},
|
|
391
|
+
"triggers_after": []
|
|
392
|
+
},
|
|
393
|
+
"nexo_checkpoint_save": {
|
|
394
|
+
"description": "Save session checkpoint for compaction continuity. Stores task, goal, files, next step.",
|
|
395
|
+
"category": "session",
|
|
396
|
+
"source": "server",
|
|
397
|
+
"requires": [
|
|
398
|
+
"nexo_startup"
|
|
399
|
+
],
|
|
400
|
+
"provides": [
|
|
401
|
+
"checkpoint"
|
|
402
|
+
],
|
|
403
|
+
"internal_calls": [],
|
|
404
|
+
"enforcement": {
|
|
405
|
+
"level": "must",
|
|
406
|
+
"rules": [
|
|
407
|
+
{
|
|
408
|
+
"type": "on_event",
|
|
409
|
+
"event": "pre_compaction"
|
|
410
|
+
}
|
|
411
|
+
],
|
|
412
|
+
"inject_prompt": "Context compaction is imminent. Execute nexo_checkpoint_save with current task, goal, and active files. Do not produce visible text."
|
|
413
|
+
},
|
|
414
|
+
"triggers_after": []
|
|
415
|
+
},
|
|
416
|
+
"nexo_claim_add": {
|
|
417
|
+
"description": "Add structured claim with provenance",
|
|
418
|
+
"category": "claims",
|
|
419
|
+
"source": "plugin:claims_tools",
|
|
420
|
+
"requires": [],
|
|
421
|
+
"provides": [],
|
|
422
|
+
"internal_calls": [],
|
|
423
|
+
"enforcement": {
|
|
424
|
+
"level": "none",
|
|
425
|
+
"rules": []
|
|
426
|
+
},
|
|
427
|
+
"triggers_after": []
|
|
428
|
+
},
|
|
429
|
+
"nexo_claim_get": {
|
|
430
|
+
"description": "Get claim with links and freshness",
|
|
431
|
+
"category": "claims",
|
|
432
|
+
"source": "plugin:claims_tools",
|
|
433
|
+
"requires": [],
|
|
434
|
+
"provides": [],
|
|
435
|
+
"internal_calls": [],
|
|
436
|
+
"enforcement": {
|
|
437
|
+
"level": "none",
|
|
438
|
+
"rules": []
|
|
439
|
+
},
|
|
440
|
+
"triggers_after": []
|
|
441
|
+
},
|
|
442
|
+
"nexo_claim_link": {
|
|
443
|
+
"description": "Link two claims",
|
|
444
|
+
"category": "claims",
|
|
445
|
+
"source": "plugin:claims_tools",
|
|
446
|
+
"requires": [],
|
|
447
|
+
"provides": [],
|
|
448
|
+
"internal_calls": [],
|
|
449
|
+
"enforcement": {
|
|
450
|
+
"level": "none",
|
|
451
|
+
"rules": []
|
|
452
|
+
},
|
|
453
|
+
"triggers_after": []
|
|
454
|
+
},
|
|
455
|
+
"nexo_claim_lint": {
|
|
456
|
+
"description": "Audit stale/weak/contradictory claims",
|
|
457
|
+
"category": "claims",
|
|
458
|
+
"source": "plugin:claims_tools",
|
|
459
|
+
"requires": [],
|
|
460
|
+
"provides": [],
|
|
461
|
+
"internal_calls": [],
|
|
462
|
+
"enforcement": {
|
|
463
|
+
"level": "none",
|
|
464
|
+
"rules": []
|
|
465
|
+
},
|
|
466
|
+
"triggers_after": []
|
|
467
|
+
},
|
|
468
|
+
"nexo_claim_search": {
|
|
469
|
+
"description": "Search claims by meaning",
|
|
470
|
+
"category": "claims",
|
|
471
|
+
"source": "plugin:claims_tools",
|
|
472
|
+
"requires": [],
|
|
473
|
+
"provides": [],
|
|
474
|
+
"internal_calls": [],
|
|
475
|
+
"enforcement": {
|
|
476
|
+
"level": "none",
|
|
477
|
+
"rules": []
|
|
478
|
+
},
|
|
479
|
+
"triggers_after": []
|
|
480
|
+
},
|
|
481
|
+
"nexo_claim_stats": {
|
|
482
|
+
"description": "Claim graph statistics",
|
|
483
|
+
"category": "claims",
|
|
484
|
+
"source": "plugin:claims_tools",
|
|
485
|
+
"requires": [],
|
|
486
|
+
"provides": [],
|
|
487
|
+
"internal_calls": [],
|
|
488
|
+
"enforcement": {
|
|
489
|
+
"level": "none",
|
|
490
|
+
"rules": []
|
|
491
|
+
},
|
|
492
|
+
"triggers_after": []
|
|
493
|
+
},
|
|
494
|
+
"nexo_claim_verify": {
|
|
495
|
+
"description": "Verify/reclassify claim state",
|
|
496
|
+
"category": "claims",
|
|
497
|
+
"source": "plugin:claims_tools",
|
|
498
|
+
"requires": [],
|
|
499
|
+
"provides": [],
|
|
500
|
+
"internal_calls": [],
|
|
501
|
+
"enforcement": {
|
|
502
|
+
"level": "none",
|
|
503
|
+
"rules": []
|
|
504
|
+
},
|
|
505
|
+
"triggers_after": []
|
|
506
|
+
},
|
|
507
|
+
"nexo_cognitive_archive": {
|
|
508
|
+
"description": "Archive a memory (excluded from searches)",
|
|
509
|
+
"category": "cognitive",
|
|
510
|
+
"source": "plugin:cognitive_memory",
|
|
511
|
+
"requires": [],
|
|
512
|
+
"provides": [],
|
|
513
|
+
"internal_calls": [],
|
|
514
|
+
"enforcement": {
|
|
515
|
+
"level": "none",
|
|
516
|
+
"rules": []
|
|
517
|
+
},
|
|
518
|
+
"triggers_after": []
|
|
519
|
+
},
|
|
520
|
+
"nexo_cognitive_dissonance": {
|
|
521
|
+
"description": "Detect conflicts between new instruction and LTM",
|
|
522
|
+
"category": "cognitive",
|
|
523
|
+
"source": "plugin:cognitive_memory",
|
|
524
|
+
"requires": [],
|
|
525
|
+
"provides": [],
|
|
526
|
+
"internal_calls": [],
|
|
527
|
+
"enforcement": {
|
|
528
|
+
"level": "none",
|
|
529
|
+
"rules": []
|
|
530
|
+
},
|
|
531
|
+
"triggers_after": []
|
|
532
|
+
},
|
|
533
|
+
"nexo_cognitive_inspect": {
|
|
534
|
+
"description": "Inspect specific memory by ID (debug)",
|
|
535
|
+
"category": "cognitive",
|
|
536
|
+
"source": "plugin:cognitive_memory",
|
|
537
|
+
"requires": [],
|
|
538
|
+
"provides": [],
|
|
539
|
+
"internal_calls": [],
|
|
540
|
+
"enforcement": {
|
|
541
|
+
"level": "none",
|
|
542
|
+
"rules": []
|
|
543
|
+
},
|
|
544
|
+
"triggers_after": []
|
|
545
|
+
},
|
|
546
|
+
"nexo_cognitive_metrics": {
|
|
547
|
+
"description": "Performance metrics: retrieval relevance, repeat error rate",
|
|
548
|
+
"category": "cognitive",
|
|
549
|
+
"source": "plugin:cognitive_memory",
|
|
550
|
+
"requires": [],
|
|
551
|
+
"provides": [],
|
|
552
|
+
"internal_calls": [],
|
|
553
|
+
"enforcement": {
|
|
554
|
+
"level": "none",
|
|
555
|
+
"rules": []
|
|
556
|
+
},
|
|
557
|
+
"triggers_after": []
|
|
558
|
+
},
|
|
559
|
+
"nexo_cognitive_pin": {
|
|
560
|
+
"description": "Pin a memory — never decays",
|
|
561
|
+
"category": "cognitive",
|
|
562
|
+
"source": "plugin:cognitive_memory",
|
|
563
|
+
"requires": [],
|
|
564
|
+
"provides": [],
|
|
565
|
+
"internal_calls": [],
|
|
566
|
+
"enforcement": {
|
|
567
|
+
"level": "none",
|
|
568
|
+
"rules": []
|
|
569
|
+
},
|
|
570
|
+
"triggers_after": []
|
|
571
|
+
},
|
|
572
|
+
"nexo_cognitive_quarantine_list": {
|
|
573
|
+
"description": "List quarantine queue items",
|
|
574
|
+
"category": "cognitive",
|
|
575
|
+
"source": "plugin:cognitive_memory",
|
|
576
|
+
"requires": [],
|
|
577
|
+
"provides": [],
|
|
578
|
+
"internal_calls": [],
|
|
579
|
+
"enforcement": {
|
|
580
|
+
"level": "none",
|
|
581
|
+
"rules": []
|
|
582
|
+
},
|
|
583
|
+
"triggers_after": []
|
|
584
|
+
},
|
|
585
|
+
"nexo_cognitive_quarantine_process": {
|
|
586
|
+
"description": "Run quarantine promotion cycle",
|
|
587
|
+
"category": "cognitive",
|
|
588
|
+
"source": "plugin:cognitive_memory",
|
|
589
|
+
"requires": [],
|
|
590
|
+
"provides": [],
|
|
591
|
+
"internal_calls": [],
|
|
592
|
+
"enforcement": {
|
|
593
|
+
"level": "none",
|
|
594
|
+
"rules": []
|
|
595
|
+
},
|
|
596
|
+
"triggers_after": []
|
|
597
|
+
},
|
|
598
|
+
"nexo_cognitive_quarantine_promote": {
|
|
599
|
+
"description": "Promote quarantine item to STM",
|
|
600
|
+
"category": "cognitive",
|
|
601
|
+
"source": "plugin:cognitive_memory",
|
|
602
|
+
"requires": [],
|
|
603
|
+
"provides": [],
|
|
604
|
+
"internal_calls": [],
|
|
605
|
+
"enforcement": {
|
|
606
|
+
"level": "none",
|
|
607
|
+
"rules": []
|
|
608
|
+
},
|
|
609
|
+
"triggers_after": []
|
|
610
|
+
},
|
|
611
|
+
"nexo_cognitive_quarantine_reject": {
|
|
612
|
+
"description": "Reject quarantine item",
|
|
613
|
+
"category": "cognitive",
|
|
614
|
+
"source": "plugin:cognitive_memory",
|
|
615
|
+
"requires": [],
|
|
616
|
+
"provides": [],
|
|
617
|
+
"internal_calls": [],
|
|
618
|
+
"enforcement": {
|
|
619
|
+
"level": "none",
|
|
620
|
+
"rules": []
|
|
621
|
+
},
|
|
622
|
+
"triggers_after": []
|
|
623
|
+
},
|
|
624
|
+
"nexo_cognitive_resolve": {
|
|
625
|
+
"description": "Resolve cognitive dissonance",
|
|
626
|
+
"category": "cognitive",
|
|
627
|
+
"source": "plugin:cognitive_memory",
|
|
628
|
+
"requires": [],
|
|
629
|
+
"provides": [],
|
|
630
|
+
"internal_calls": [],
|
|
631
|
+
"enforcement": {
|
|
632
|
+
"level": "none",
|
|
633
|
+
"rules": []
|
|
634
|
+
},
|
|
635
|
+
"triggers_after": []
|
|
636
|
+
},
|
|
637
|
+
"nexo_cognitive_restore": {
|
|
638
|
+
"description": "Restore memory from pinned/snoozed/archived",
|
|
639
|
+
"category": "cognitive",
|
|
640
|
+
"source": "plugin:cognitive_memory",
|
|
641
|
+
"requires": [],
|
|
642
|
+
"provides": [],
|
|
643
|
+
"internal_calls": [],
|
|
644
|
+
"enforcement": {
|
|
645
|
+
"level": "none",
|
|
646
|
+
"rules": []
|
|
647
|
+
},
|
|
648
|
+
"triggers_after": []
|
|
649
|
+
},
|
|
650
|
+
"nexo_cognitive_retrieve": {
|
|
651
|
+
"description": "RAG query over cognitive memory (STM+LTM)",
|
|
652
|
+
"category": "cognitive",
|
|
653
|
+
"source": "plugin:cognitive_memory",
|
|
654
|
+
"requires": [],
|
|
655
|
+
"provides": [],
|
|
656
|
+
"internal_calls": [],
|
|
657
|
+
"enforcement": {
|
|
658
|
+
"level": "none",
|
|
659
|
+
"rules": []
|
|
660
|
+
},
|
|
661
|
+
"triggers_after": []
|
|
662
|
+
},
|
|
663
|
+
"nexo_cognitive_sentiment": {
|
|
664
|
+
"description": "Detect user sentiment and get tone guidance",
|
|
665
|
+
"category": "cognitive",
|
|
666
|
+
"source": "plugin:cognitive_memory",
|
|
667
|
+
"requires": [],
|
|
668
|
+
"provides": [],
|
|
669
|
+
"internal_calls": [],
|
|
670
|
+
"enforcement": {
|
|
671
|
+
"level": "none",
|
|
672
|
+
"rules": []
|
|
673
|
+
},
|
|
674
|
+
"triggers_after": []
|
|
675
|
+
},
|
|
676
|
+
"nexo_cognitive_snooze": {
|
|
677
|
+
"description": "Snooze a memory until a date",
|
|
678
|
+
"category": "cognitive",
|
|
679
|
+
"source": "plugin:cognitive_memory",
|
|
680
|
+
"requires": [],
|
|
681
|
+
"provides": [],
|
|
682
|
+
"internal_calls": [],
|
|
683
|
+
"enforcement": {
|
|
684
|
+
"level": "none",
|
|
685
|
+
"rules": []
|
|
686
|
+
},
|
|
687
|
+
"triggers_after": []
|
|
688
|
+
},
|
|
689
|
+
"nexo_cognitive_stats": {
|
|
690
|
+
"description": "Cognitive memory system metrics",
|
|
691
|
+
"category": "cognitive",
|
|
692
|
+
"source": "plugin:cognitive_memory",
|
|
693
|
+
"requires": [],
|
|
694
|
+
"provides": [],
|
|
695
|
+
"internal_calls": [],
|
|
696
|
+
"enforcement": {
|
|
697
|
+
"level": "none",
|
|
698
|
+
"rules": []
|
|
699
|
+
},
|
|
700
|
+
"triggers_after": []
|
|
701
|
+
},
|
|
702
|
+
"nexo_cognitive_trigger_check": {
|
|
703
|
+
"description": "Check text against armed triggers",
|
|
704
|
+
"category": "cognitive",
|
|
705
|
+
"source": "plugin:cognitive_memory",
|
|
706
|
+
"requires": [],
|
|
707
|
+
"provides": [],
|
|
708
|
+
"internal_calls": [],
|
|
709
|
+
"enforcement": {
|
|
710
|
+
"level": "none",
|
|
711
|
+
"rules": []
|
|
712
|
+
},
|
|
713
|
+
"triggers_after": []
|
|
714
|
+
},
|
|
715
|
+
"nexo_cognitive_trigger_create": {
|
|
716
|
+
"description": "Create prospective memory trigger",
|
|
717
|
+
"category": "cognitive",
|
|
718
|
+
"source": "plugin:cognitive_memory",
|
|
719
|
+
"requires": [],
|
|
720
|
+
"provides": [],
|
|
721
|
+
"internal_calls": [],
|
|
722
|
+
"enforcement": {
|
|
723
|
+
"level": "none",
|
|
724
|
+
"rules": []
|
|
725
|
+
},
|
|
726
|
+
"triggers_after": []
|
|
727
|
+
},
|
|
728
|
+
"nexo_cognitive_trigger_delete": {
|
|
729
|
+
"description": "Delete a prospective trigger",
|
|
730
|
+
"category": "cognitive",
|
|
731
|
+
"source": "plugin:cognitive_memory",
|
|
732
|
+
"requires": [],
|
|
733
|
+
"provides": [],
|
|
734
|
+
"internal_calls": [],
|
|
735
|
+
"enforcement": {
|
|
736
|
+
"level": "none",
|
|
737
|
+
"rules": []
|
|
738
|
+
},
|
|
739
|
+
"triggers_after": []
|
|
740
|
+
},
|
|
741
|
+
"nexo_cognitive_trigger_list": {
|
|
742
|
+
"description": "List prospective triggers",
|
|
743
|
+
"category": "cognitive",
|
|
744
|
+
"source": "plugin:cognitive_memory",
|
|
745
|
+
"requires": [],
|
|
746
|
+
"provides": [],
|
|
747
|
+
"internal_calls": [],
|
|
748
|
+
"enforcement": {
|
|
749
|
+
"level": "none",
|
|
750
|
+
"rules": []
|
|
751
|
+
},
|
|
752
|
+
"triggers_after": []
|
|
753
|
+
},
|
|
754
|
+
"nexo_cognitive_trigger_preview": {
|
|
755
|
+
"description": "Preview trigger matches without firing",
|
|
756
|
+
"category": "cognitive",
|
|
757
|
+
"source": "plugin:cognitive_memory",
|
|
758
|
+
"requires": [],
|
|
759
|
+
"provides": [],
|
|
760
|
+
"internal_calls": [],
|
|
761
|
+
"enforcement": {
|
|
762
|
+
"level": "none",
|
|
763
|
+
"rules": []
|
|
764
|
+
},
|
|
765
|
+
"triggers_after": []
|
|
766
|
+
},
|
|
767
|
+
"nexo_cognitive_trigger_rearm": {
|
|
768
|
+
"description": "Re-arm a fired trigger",
|
|
769
|
+
"category": "cognitive",
|
|
770
|
+
"source": "plugin:cognitive_memory",
|
|
771
|
+
"requires": [],
|
|
772
|
+
"provides": [],
|
|
773
|
+
"internal_calls": [],
|
|
774
|
+
"enforcement": {
|
|
775
|
+
"level": "none",
|
|
776
|
+
"rules": []
|
|
777
|
+
},
|
|
778
|
+
"triggers_after": []
|
|
779
|
+
},
|
|
780
|
+
"nexo_cognitive_trust": {
|
|
781
|
+
"description": "View or adjust trust score (0-100)",
|
|
782
|
+
"category": "cognitive",
|
|
783
|
+
"source": "plugin:cognitive_memory",
|
|
784
|
+
"requires": [],
|
|
785
|
+
"provides": [],
|
|
786
|
+
"internal_calls": [],
|
|
787
|
+
"enforcement": {
|
|
788
|
+
"level": "none",
|
|
789
|
+
"rules": []
|
|
790
|
+
},
|
|
791
|
+
"triggers_after": []
|
|
792
|
+
},
|
|
793
|
+
"nexo_confidence_check": {
|
|
794
|
+
"description": "Metacognitive response mode: answer/verify/ask/defer. Evaluates stakes, evidence, unknowns.",
|
|
795
|
+
"category": "protocol",
|
|
796
|
+
"source": "plugin:protocol",
|
|
797
|
+
"requires": [],
|
|
798
|
+
"provides": [
|
|
799
|
+
"response_mode",
|
|
800
|
+
"confidence_score"
|
|
801
|
+
],
|
|
802
|
+
"internal_calls": [],
|
|
803
|
+
"enforcement": {
|
|
804
|
+
"level": "should",
|
|
805
|
+
"rules": [
|
|
806
|
+
{
|
|
807
|
+
"type": "on_event",
|
|
808
|
+
"event": "factual_answer_with_high_stakes"
|
|
809
|
+
}
|
|
810
|
+
],
|
|
811
|
+
"reminder_prompt": "You are about to give a factual answer on a high-stakes topic. Consider running nexo_confidence_check first to evaluate whether you should answer, verify, ask, or defer. This is a suggestion."
|
|
812
|
+
},
|
|
813
|
+
"triggers_after": []
|
|
814
|
+
},
|
|
815
|
+
"nexo_consolidate": {
|
|
816
|
+
"description": "Run memory consolidation explicitly",
|
|
817
|
+
"category": "memory",
|
|
818
|
+
"source": "plugin:episodic_memory",
|
|
819
|
+
"requires": [],
|
|
820
|
+
"provides": [],
|
|
821
|
+
"internal_calls": [],
|
|
822
|
+
"enforcement": {
|
|
823
|
+
"level": "none",
|
|
824
|
+
"rules": []
|
|
825
|
+
},
|
|
826
|
+
"triggers_after": []
|
|
827
|
+
},
|
|
828
|
+
"nexo_context_packet": {
|
|
829
|
+
"description": "Build context packet for subagent injection",
|
|
830
|
+
"category": "context",
|
|
831
|
+
"source": "server",
|
|
832
|
+
"requires": [],
|
|
833
|
+
"provides": [],
|
|
834
|
+
"internal_calls": [],
|
|
835
|
+
"enforcement": {
|
|
836
|
+
"level": "none",
|
|
837
|
+
"rules": []
|
|
838
|
+
},
|
|
839
|
+
"triggers_after": []
|
|
840
|
+
},
|
|
841
|
+
"nexo_cortex_check": {
|
|
842
|
+
"description": "Cognitive pre-action check",
|
|
843
|
+
"category": "cortex",
|
|
844
|
+
"source": "plugin:cortex",
|
|
845
|
+
"requires": [],
|
|
846
|
+
"provides": [],
|
|
847
|
+
"internal_calls": [],
|
|
848
|
+
"enforcement": {
|
|
849
|
+
"level": "none",
|
|
850
|
+
"rules": []
|
|
851
|
+
},
|
|
852
|
+
"triggers_after": []
|
|
853
|
+
},
|
|
854
|
+
"nexo_cortex_decide": {
|
|
855
|
+
"description": "Evaluate 2+ alternatives for high-impact task",
|
|
856
|
+
"category": "cortex",
|
|
857
|
+
"source": "plugin:cortex",
|
|
858
|
+
"requires": [],
|
|
859
|
+
"provides": [],
|
|
860
|
+
"internal_calls": [],
|
|
861
|
+
"enforcement": {
|
|
862
|
+
"level": "none",
|
|
863
|
+
"rules": []
|
|
864
|
+
},
|
|
865
|
+
"triggers_after": []
|
|
866
|
+
},
|
|
867
|
+
"nexo_cortex_override": {
|
|
868
|
+
"description": "Override a stored Cortex recommendation",
|
|
869
|
+
"category": "cortex",
|
|
870
|
+
"source": "plugin:cortex",
|
|
871
|
+
"requires": [],
|
|
872
|
+
"provides": [],
|
|
873
|
+
"internal_calls": [],
|
|
874
|
+
"enforcement": {
|
|
875
|
+
"level": "none",
|
|
876
|
+
"rules": []
|
|
877
|
+
},
|
|
878
|
+
"triggers_after": []
|
|
879
|
+
},
|
|
880
|
+
"nexo_cortex_quality": {
|
|
881
|
+
"description": "Recommendation accept/override rate stats",
|
|
882
|
+
"category": "cortex",
|
|
883
|
+
"source": "plugin:cortex",
|
|
884
|
+
"requires": [],
|
|
885
|
+
"provides": [],
|
|
886
|
+
"internal_calls": [],
|
|
887
|
+
"enforcement": {
|
|
888
|
+
"level": "none",
|
|
889
|
+
"rules": []
|
|
890
|
+
},
|
|
891
|
+
"triggers_after": []
|
|
892
|
+
},
|
|
893
|
+
"nexo_cortex_review": {
|
|
894
|
+
"description": "Review persisted Cortex evaluations",
|
|
895
|
+
"category": "cortex",
|
|
896
|
+
"source": "plugin:cortex",
|
|
897
|
+
"requires": [],
|
|
898
|
+
"provides": [],
|
|
899
|
+
"internal_calls": [],
|
|
900
|
+
"enforcement": {
|
|
901
|
+
"level": "none",
|
|
902
|
+
"rules": []
|
|
903
|
+
},
|
|
904
|
+
"triggers_after": []
|
|
905
|
+
},
|
|
906
|
+
"nexo_cortex_stats": {
|
|
907
|
+
"description": "Cortex activation statistics",
|
|
908
|
+
"category": "cortex",
|
|
909
|
+
"source": "plugin:cortex",
|
|
910
|
+
"requires": [],
|
|
911
|
+
"provides": [],
|
|
912
|
+
"internal_calls": [],
|
|
913
|
+
"enforcement": {
|
|
914
|
+
"level": "none",
|
|
915
|
+
"rules": []
|
|
916
|
+
},
|
|
917
|
+
"triggers_after": []
|
|
918
|
+
},
|
|
919
|
+
"nexo_credential_create": {
|
|
920
|
+
"description": "Store a new credential",
|
|
921
|
+
"category": "credentials",
|
|
922
|
+
"source": "server",
|
|
923
|
+
"requires": [],
|
|
924
|
+
"provides": [],
|
|
925
|
+
"internal_calls": [],
|
|
926
|
+
"enforcement": {
|
|
927
|
+
"level": "none",
|
|
928
|
+
"rules": []
|
|
929
|
+
},
|
|
930
|
+
"triggers_after": []
|
|
931
|
+
},
|
|
932
|
+
"nexo_credential_delete": {
|
|
933
|
+
"description": "Delete credential(s)",
|
|
934
|
+
"category": "credentials",
|
|
935
|
+
"source": "server",
|
|
936
|
+
"requires": [],
|
|
937
|
+
"provides": [],
|
|
938
|
+
"internal_calls": [],
|
|
939
|
+
"enforcement": {
|
|
940
|
+
"level": "none",
|
|
941
|
+
"rules": []
|
|
942
|
+
},
|
|
943
|
+
"triggers_after": []
|
|
944
|
+
},
|
|
945
|
+
"nexo_credential_get": {
|
|
946
|
+
"description": "Get credential value(s) for a service",
|
|
947
|
+
"category": "credentials",
|
|
948
|
+
"source": "server",
|
|
949
|
+
"requires": [],
|
|
950
|
+
"provides": [],
|
|
951
|
+
"internal_calls": [],
|
|
952
|
+
"enforcement": {
|
|
953
|
+
"level": "none",
|
|
954
|
+
"rules": []
|
|
955
|
+
},
|
|
956
|
+
"triggers_after": []
|
|
957
|
+
},
|
|
958
|
+
"nexo_credential_list": {
|
|
959
|
+
"description": "List credentials (no values)",
|
|
960
|
+
"category": "credentials",
|
|
961
|
+
"source": "server",
|
|
962
|
+
"requires": [],
|
|
963
|
+
"provides": [],
|
|
964
|
+
"internal_calls": [],
|
|
965
|
+
"enforcement": {
|
|
966
|
+
"level": "none",
|
|
967
|
+
"rules": []
|
|
968
|
+
},
|
|
969
|
+
"triggers_after": []
|
|
970
|
+
},
|
|
971
|
+
"nexo_credential_update": {
|
|
972
|
+
"description": "Update credential value/notes",
|
|
973
|
+
"category": "credentials",
|
|
974
|
+
"source": "server",
|
|
975
|
+
"requires": [],
|
|
976
|
+
"provides": [],
|
|
977
|
+
"internal_calls": [],
|
|
978
|
+
"enforcement": {
|
|
979
|
+
"level": "none",
|
|
980
|
+
"rules": []
|
|
981
|
+
},
|
|
982
|
+
"triggers_after": []
|
|
983
|
+
},
|
|
984
|
+
"nexo_decision_log": {
|
|
985
|
+
"description": "Log non-trivial decision with reasoning",
|
|
986
|
+
"category": "decision",
|
|
987
|
+
"source": "plugin:episodic_memory",
|
|
988
|
+
"requires": [],
|
|
989
|
+
"provides": [],
|
|
990
|
+
"internal_calls": [],
|
|
991
|
+
"enforcement": {
|
|
992
|
+
"level": "none",
|
|
993
|
+
"rules": []
|
|
994
|
+
},
|
|
995
|
+
"triggers_after": []
|
|
996
|
+
},
|
|
997
|
+
"nexo_decision_outcome": {
|
|
998
|
+
"description": "Record what happened after a decision",
|
|
999
|
+
"category": "decision",
|
|
1000
|
+
"source": "plugin:episodic_memory",
|
|
1001
|
+
"requires": [],
|
|
1002
|
+
"provides": [],
|
|
1003
|
+
"internal_calls": [],
|
|
1004
|
+
"enforcement": {
|
|
1005
|
+
"level": "none",
|
|
1006
|
+
"rules": []
|
|
1007
|
+
},
|
|
1008
|
+
"triggers_after": []
|
|
1009
|
+
},
|
|
1010
|
+
"nexo_decision_search": {
|
|
1011
|
+
"description": "Search past decisions",
|
|
1012
|
+
"category": "decision",
|
|
1013
|
+
"source": "plugin:episodic_memory",
|
|
1014
|
+
"requires": [],
|
|
1015
|
+
"provides": [],
|
|
1016
|
+
"internal_calls": [],
|
|
1017
|
+
"enforcement": {
|
|
1018
|
+
"level": "none",
|
|
1019
|
+
"rules": []
|
|
1020
|
+
},
|
|
1021
|
+
"triggers_after": []
|
|
1022
|
+
},
|
|
1023
|
+
"nexo_diary_archive_read": {
|
|
1024
|
+
"description": "Read archived diary entry",
|
|
1025
|
+
"category": "diary",
|
|
1026
|
+
"source": "plugin:episodic_memory",
|
|
1027
|
+
"requires": [],
|
|
1028
|
+
"provides": [],
|
|
1029
|
+
"internal_calls": [],
|
|
1030
|
+
"enforcement": {
|
|
1031
|
+
"level": "none",
|
|
1032
|
+
"rules": []
|
|
1033
|
+
},
|
|
1034
|
+
"triggers_after": []
|
|
1035
|
+
},
|
|
1036
|
+
"nexo_diary_archive_search": {
|
|
1037
|
+
"description": "Search permanent diary archive",
|
|
1038
|
+
"category": "diary",
|
|
1039
|
+
"source": "plugin:episodic_memory",
|
|
1040
|
+
"requires": [],
|
|
1041
|
+
"provides": [],
|
|
1042
|
+
"internal_calls": [],
|
|
1043
|
+
"enforcement": {
|
|
1044
|
+
"level": "none",
|
|
1045
|
+
"rules": []
|
|
1046
|
+
},
|
|
1047
|
+
"triggers_after": []
|
|
1048
|
+
},
|
|
1049
|
+
"nexo_doctor": {
|
|
1050
|
+
"description": "Unified diagnostic report",
|
|
1051
|
+
"category": "system",
|
|
1052
|
+
"source": "plugin:doctor",
|
|
1053
|
+
"requires": [],
|
|
1054
|
+
"provides": [],
|
|
1055
|
+
"internal_calls": [],
|
|
1056
|
+
"enforcement": {
|
|
1057
|
+
"level": "none",
|
|
1058
|
+
"rules": []
|
|
1059
|
+
},
|
|
1060
|
+
"triggers_after": []
|
|
1061
|
+
},
|
|
1062
|
+
"nexo_drive_act": {
|
|
1063
|
+
"description": "Mark drive signal as investigated",
|
|
1064
|
+
"category": "drive",
|
|
1065
|
+
"source": "server",
|
|
1066
|
+
"requires": [],
|
|
1067
|
+
"provides": [],
|
|
1068
|
+
"internal_calls": [],
|
|
1069
|
+
"enforcement": {
|
|
1070
|
+
"level": "none",
|
|
1071
|
+
"rules": []
|
|
1072
|
+
},
|
|
1073
|
+
"triggers_after": []
|
|
1074
|
+
},
|
|
1075
|
+
"nexo_drive_dismiss": {
|
|
1076
|
+
"description": "Dismiss a drive signal",
|
|
1077
|
+
"category": "drive",
|
|
1078
|
+
"source": "server",
|
|
1079
|
+
"requires": [],
|
|
1080
|
+
"provides": [],
|
|
1081
|
+
"internal_calls": [],
|
|
1082
|
+
"enforcement": {
|
|
1083
|
+
"level": "none",
|
|
1084
|
+
"rules": []
|
|
1085
|
+
},
|
|
1086
|
+
"triggers_after": []
|
|
1087
|
+
},
|
|
1088
|
+
"nexo_drive_reinforce": {
|
|
1089
|
+
"description": "Reinforce a drive signal",
|
|
1090
|
+
"category": "drive",
|
|
1091
|
+
"source": "server",
|
|
1092
|
+
"requires": [],
|
|
1093
|
+
"provides": [],
|
|
1094
|
+
"internal_calls": [],
|
|
1095
|
+
"enforcement": {
|
|
1096
|
+
"level": "none",
|
|
1097
|
+
"rules": []
|
|
1098
|
+
},
|
|
1099
|
+
"triggers_after": []
|
|
1100
|
+
},
|
|
1101
|
+
"nexo_drive_signals": {
|
|
1102
|
+
"description": "List autonomous curiosity signals",
|
|
1103
|
+
"category": "drive",
|
|
1104
|
+
"source": "server",
|
|
1105
|
+
"requires": [],
|
|
1106
|
+
"provides": [],
|
|
1107
|
+
"internal_calls": [],
|
|
1108
|
+
"enforcement": {
|
|
1109
|
+
"level": "none",
|
|
1110
|
+
"rules": []
|
|
1111
|
+
},
|
|
1112
|
+
"triggers_after": []
|
|
1113
|
+
},
|
|
1114
|
+
"nexo_entity_create": {
|
|
1115
|
+
"description": "Create entity (person, service, URL)",
|
|
1116
|
+
"category": "entity",
|
|
1117
|
+
"source": "plugin:entities",
|
|
1118
|
+
"requires": [],
|
|
1119
|
+
"provides": [],
|
|
1120
|
+
"internal_calls": [],
|
|
1121
|
+
"enforcement": {
|
|
1122
|
+
"level": "none",
|
|
1123
|
+
"rules": []
|
|
1124
|
+
},
|
|
1125
|
+
"triggers_after": []
|
|
1126
|
+
},
|
|
1127
|
+
"nexo_entity_delete": {
|
|
1128
|
+
"description": "Delete entity",
|
|
1129
|
+
"category": "entity",
|
|
1130
|
+
"source": "plugin:entities",
|
|
1131
|
+
"requires": [],
|
|
1132
|
+
"provides": [],
|
|
1133
|
+
"internal_calls": [],
|
|
1134
|
+
"enforcement": {
|
|
1135
|
+
"level": "none",
|
|
1136
|
+
"rules": []
|
|
1137
|
+
},
|
|
1138
|
+
"triggers_after": []
|
|
1139
|
+
},
|
|
1140
|
+
"nexo_entity_list": {
|
|
1141
|
+
"description": "List entities by type",
|
|
1142
|
+
"category": "entity",
|
|
1143
|
+
"source": "plugin:entities",
|
|
1144
|
+
"requires": [],
|
|
1145
|
+
"provides": [],
|
|
1146
|
+
"internal_calls": [],
|
|
1147
|
+
"enforcement": {
|
|
1148
|
+
"level": "none",
|
|
1149
|
+
"rules": []
|
|
1150
|
+
},
|
|
1151
|
+
"triggers_after": []
|
|
1152
|
+
},
|
|
1153
|
+
"nexo_entity_search": {
|
|
1154
|
+
"description": "Search entities",
|
|
1155
|
+
"category": "entity",
|
|
1156
|
+
"source": "plugin:entities",
|
|
1157
|
+
"requires": [],
|
|
1158
|
+
"provides": [],
|
|
1159
|
+
"internal_calls": [],
|
|
1160
|
+
"enforcement": {
|
|
1161
|
+
"level": "none",
|
|
1162
|
+
"rules": []
|
|
1163
|
+
},
|
|
1164
|
+
"triggers_after": []
|
|
1165
|
+
},
|
|
1166
|
+
"nexo_entity_update": {
|
|
1167
|
+
"description": "Update entity fields",
|
|
1168
|
+
"category": "entity",
|
|
1169
|
+
"source": "plugin:entities",
|
|
1170
|
+
"requires": [],
|
|
1171
|
+
"provides": [],
|
|
1172
|
+
"internal_calls": [],
|
|
1173
|
+
"enforcement": {
|
|
1174
|
+
"level": "none",
|
|
1175
|
+
"rules": []
|
|
1176
|
+
},
|
|
1177
|
+
"triggers_after": []
|
|
1178
|
+
},
|
|
1179
|
+
"nexo_evolution_approve": {
|
|
1180
|
+
"description": "Approve evolution proposal",
|
|
1181
|
+
"category": "evolution",
|
|
1182
|
+
"source": "plugin:evolution",
|
|
1183
|
+
"requires": [],
|
|
1184
|
+
"provides": [],
|
|
1185
|
+
"internal_calls": [],
|
|
1186
|
+
"enforcement": {
|
|
1187
|
+
"level": "none",
|
|
1188
|
+
"rules": []
|
|
1189
|
+
},
|
|
1190
|
+
"triggers_after": []
|
|
1191
|
+
},
|
|
1192
|
+
"nexo_evolution_history": {
|
|
1193
|
+
"description": "Show past evolution cycles",
|
|
1194
|
+
"category": "evolution",
|
|
1195
|
+
"source": "plugin:evolution",
|
|
1196
|
+
"requires": [],
|
|
1197
|
+
"provides": [],
|
|
1198
|
+
"internal_calls": [],
|
|
1199
|
+
"enforcement": {
|
|
1200
|
+
"level": "none",
|
|
1201
|
+
"rules": []
|
|
1202
|
+
},
|
|
1203
|
+
"triggers_after": []
|
|
1204
|
+
},
|
|
1205
|
+
"nexo_evolution_propose": {
|
|
1206
|
+
"description": "Trigger evolution analysis",
|
|
1207
|
+
"category": "evolution",
|
|
1208
|
+
"source": "plugin:evolution",
|
|
1209
|
+
"requires": [],
|
|
1210
|
+
"provides": [],
|
|
1211
|
+
"internal_calls": [],
|
|
1212
|
+
"enforcement": {
|
|
1213
|
+
"level": "none",
|
|
1214
|
+
"rules": []
|
|
1215
|
+
},
|
|
1216
|
+
"triggers_after": []
|
|
1217
|
+
},
|
|
1218
|
+
"nexo_evolution_reject": {
|
|
1219
|
+
"description": "Reject evolution proposal",
|
|
1220
|
+
"category": "evolution",
|
|
1221
|
+
"source": "plugin:evolution",
|
|
1222
|
+
"requires": [],
|
|
1223
|
+
"provides": [],
|
|
1224
|
+
"internal_calls": [],
|
|
1225
|
+
"enforcement": {
|
|
1226
|
+
"level": "none",
|
|
1227
|
+
"rules": []
|
|
1228
|
+
},
|
|
1229
|
+
"triggers_after": []
|
|
1230
|
+
},
|
|
1231
|
+
"nexo_evolution_status": {
|
|
1232
|
+
"description": "Show NEXO dimension scores",
|
|
1233
|
+
"category": "evolution",
|
|
1234
|
+
"source": "plugin:evolution",
|
|
1235
|
+
"requires": [],
|
|
1236
|
+
"provides": [],
|
|
1237
|
+
"internal_calls": [],
|
|
1238
|
+
"enforcement": {
|
|
1239
|
+
"level": "none",
|
|
1240
|
+
"rules": []
|
|
1241
|
+
},
|
|
1242
|
+
"triggers_after": []
|
|
1243
|
+
},
|
|
1244
|
+
"nexo_files": {
|
|
1245
|
+
"description": "Show all tracked files across sessions",
|
|
1246
|
+
"category": "files",
|
|
1247
|
+
"source": "server",
|
|
1248
|
+
"requires": [],
|
|
1249
|
+
"provides": [],
|
|
1250
|
+
"internal_calls": [],
|
|
1251
|
+
"enforcement": {
|
|
1252
|
+
"level": "none",
|
|
1253
|
+
"rules": []
|
|
1254
|
+
},
|
|
1255
|
+
"triggers_after": []
|
|
1256
|
+
},
|
|
1257
|
+
"nexo_followup_complete": {
|
|
1258
|
+
"description": "Mark followup as completed",
|
|
1259
|
+
"category": "followups",
|
|
1260
|
+
"source": "server",
|
|
1261
|
+
"requires": [],
|
|
1262
|
+
"provides": [],
|
|
1263
|
+
"internal_calls": [],
|
|
1264
|
+
"enforcement": {
|
|
1265
|
+
"level": "none",
|
|
1266
|
+
"rules": []
|
|
1267
|
+
},
|
|
1268
|
+
"triggers_after": []
|
|
1269
|
+
},
|
|
1270
|
+
"nexo_followup_create": {
|
|
1271
|
+
"description": "Create autonomous followup task",
|
|
1272
|
+
"category": "followups",
|
|
1273
|
+
"source": "server",
|
|
1274
|
+
"requires": [],
|
|
1275
|
+
"provides": [],
|
|
1276
|
+
"internal_calls": [],
|
|
1277
|
+
"enforcement": {
|
|
1278
|
+
"level": "none",
|
|
1279
|
+
"rules": []
|
|
1280
|
+
},
|
|
1281
|
+
"triggers_after": []
|
|
1282
|
+
},
|
|
1283
|
+
"nexo_followup_delete": {
|
|
1284
|
+
"description": "Soft-delete a followup",
|
|
1285
|
+
"category": "followups",
|
|
1286
|
+
"source": "server",
|
|
1287
|
+
"requires": [],
|
|
1288
|
+
"provides": [],
|
|
1289
|
+
"internal_calls": [],
|
|
1290
|
+
"enforcement": {
|
|
1291
|
+
"level": "none",
|
|
1292
|
+
"rules": []
|
|
1293
|
+
},
|
|
1294
|
+
"triggers_after": []
|
|
1295
|
+
},
|
|
1296
|
+
"nexo_followup_get": {
|
|
1297
|
+
"description": "Read followup with history",
|
|
1298
|
+
"category": "followups",
|
|
1299
|
+
"source": "server",
|
|
1300
|
+
"requires": [],
|
|
1301
|
+
"provides": [],
|
|
1302
|
+
"internal_calls": [],
|
|
1303
|
+
"enforcement": {
|
|
1304
|
+
"level": "none",
|
|
1305
|
+
"rules": []
|
|
1306
|
+
},
|
|
1307
|
+
"triggers_after": []
|
|
1308
|
+
},
|
|
1309
|
+
"nexo_followup_note": {
|
|
1310
|
+
"description": "Append note to followup",
|
|
1311
|
+
"category": "followups",
|
|
1312
|
+
"source": "server",
|
|
1313
|
+
"requires": [],
|
|
1314
|
+
"provides": [],
|
|
1315
|
+
"internal_calls": [],
|
|
1316
|
+
"enforcement": {
|
|
1317
|
+
"level": "none",
|
|
1318
|
+
"rules": []
|
|
1319
|
+
},
|
|
1320
|
+
"triggers_after": []
|
|
1321
|
+
},
|
|
1322
|
+
"nexo_followup_restore": {
|
|
1323
|
+
"description": "Restore soft-deleted followup",
|
|
1324
|
+
"category": "followups",
|
|
1325
|
+
"source": "server",
|
|
1326
|
+
"requires": [],
|
|
1327
|
+
"provides": [],
|
|
1328
|
+
"internal_calls": [],
|
|
1329
|
+
"enforcement": {
|
|
1330
|
+
"level": "none",
|
|
1331
|
+
"rules": []
|
|
1332
|
+
},
|
|
1333
|
+
"triggers_after": []
|
|
1334
|
+
},
|
|
1335
|
+
"nexo_followup_update": {
|
|
1336
|
+
"description": "Update followup fields",
|
|
1337
|
+
"category": "followups",
|
|
1338
|
+
"source": "server",
|
|
1339
|
+
"requires": [],
|
|
1340
|
+
"provides": [],
|
|
1341
|
+
"internal_calls": [],
|
|
1342
|
+
"enforcement": {
|
|
1343
|
+
"level": "none",
|
|
1344
|
+
"rules": []
|
|
1345
|
+
},
|
|
1346
|
+
"triggers_after": []
|
|
1347
|
+
},
|
|
1348
|
+
"nexo_goal_engine_status": {
|
|
1349
|
+
"description": "Goal Engine telemetry readiness",
|
|
1350
|
+
"category": "goal",
|
|
1351
|
+
"source": "plugin:goal_engine",
|
|
1352
|
+
"requires": [],
|
|
1353
|
+
"provides": [],
|
|
1354
|
+
"internal_calls": [],
|
|
1355
|
+
"enforcement": {
|
|
1356
|
+
"level": "none",
|
|
1357
|
+
"rules": []
|
|
1358
|
+
},
|
|
1359
|
+
"triggers_after": []
|
|
1360
|
+
},
|
|
1361
|
+
"nexo_goal_get": {
|
|
1362
|
+
"description": "Read durable goal with workflow runs",
|
|
1363
|
+
"category": "goal",
|
|
1364
|
+
"source": "plugin:goal_engine",
|
|
1365
|
+
"requires": [],
|
|
1366
|
+
"provides": [],
|
|
1367
|
+
"internal_calls": [],
|
|
1368
|
+
"enforcement": {
|
|
1369
|
+
"level": "none",
|
|
1370
|
+
"rules": []
|
|
1371
|
+
},
|
|
1372
|
+
"triggers_after": []
|
|
1373
|
+
},
|
|
1374
|
+
"nexo_goal_list": {
|
|
1375
|
+
"description": "List durable goals",
|
|
1376
|
+
"category": "goal",
|
|
1377
|
+
"source": "plugin:goal_engine",
|
|
1378
|
+
"requires": [],
|
|
1379
|
+
"provides": [],
|
|
1380
|
+
"internal_calls": [],
|
|
1381
|
+
"enforcement": {
|
|
1382
|
+
"level": "none",
|
|
1383
|
+
"rules": []
|
|
1384
|
+
},
|
|
1385
|
+
"triggers_after": []
|
|
1386
|
+
},
|
|
1387
|
+
"nexo_goal_open": {
|
|
1388
|
+
"description": "Open durable goal for multi-session objectives",
|
|
1389
|
+
"category": "goal",
|
|
1390
|
+
"source": "plugin:goal_engine",
|
|
1391
|
+
"requires": [],
|
|
1392
|
+
"provides": [],
|
|
1393
|
+
"internal_calls": [],
|
|
1394
|
+
"enforcement": {
|
|
1395
|
+
"level": "none",
|
|
1396
|
+
"rules": []
|
|
1397
|
+
},
|
|
1398
|
+
"triggers_after": []
|
|
1399
|
+
},
|
|
1400
|
+
"nexo_goal_profile_get": {
|
|
1401
|
+
"description": "Get active Goal Engine profile",
|
|
1402
|
+
"category": "goal",
|
|
1403
|
+
"source": "plugin:goal_engine",
|
|
1404
|
+
"requires": [],
|
|
1405
|
+
"provides": [],
|
|
1406
|
+
"internal_calls": [],
|
|
1407
|
+
"enforcement": {
|
|
1408
|
+
"level": "none",
|
|
1409
|
+
"rules": []
|
|
1410
|
+
},
|
|
1411
|
+
"triggers_after": []
|
|
1412
|
+
},
|
|
1413
|
+
"nexo_goal_profile_list": {
|
|
1414
|
+
"description": "List Goal Engine profiles",
|
|
1415
|
+
"category": "goal",
|
|
1416
|
+
"source": "plugin:goal_engine",
|
|
1417
|
+
"requires": [],
|
|
1418
|
+
"provides": [],
|
|
1419
|
+
"internal_calls": [],
|
|
1420
|
+
"enforcement": {
|
|
1421
|
+
"level": "none",
|
|
1422
|
+
"rules": []
|
|
1423
|
+
},
|
|
1424
|
+
"triggers_after": []
|
|
1425
|
+
},
|
|
1426
|
+
"nexo_goal_profile_set": {
|
|
1427
|
+
"description": "Create/update Goal Engine profile",
|
|
1428
|
+
"category": "goal",
|
|
1429
|
+
"source": "plugin:goal_engine",
|
|
1430
|
+
"requires": [],
|
|
1431
|
+
"provides": [],
|
|
1432
|
+
"internal_calls": [],
|
|
1433
|
+
"enforcement": {
|
|
1434
|
+
"level": "none",
|
|
1435
|
+
"rules": []
|
|
1436
|
+
},
|
|
1437
|
+
"triggers_after": []
|
|
1438
|
+
},
|
|
1439
|
+
"nexo_goal_update": {
|
|
1440
|
+
"description": "Update goal state and next action",
|
|
1441
|
+
"category": "goal",
|
|
1442
|
+
"source": "plugin:goal_engine",
|
|
1443
|
+
"requires": [],
|
|
1444
|
+
"provides": [],
|
|
1445
|
+
"internal_calls": [],
|
|
1446
|
+
"enforcement": {
|
|
1447
|
+
"level": "none",
|
|
1448
|
+
"rules": []
|
|
1449
|
+
},
|
|
1450
|
+
"triggers_after": []
|
|
1451
|
+
},
|
|
1452
|
+
"nexo_guard_check": {
|
|
1453
|
+
"description": "Check learnings relevant to files/area BEFORE editing code. Surfaces: conditioned learnings, blocking rules, universal rules, DB schemas, cognitive semantic matches, somatic risk scores. Trust modulates rigor (paranoid/fluent).",
|
|
1454
|
+
"category": "guard",
|
|
1455
|
+
"source": "plugin:guard",
|
|
1456
|
+
"requires": [],
|
|
1457
|
+
"provides": [
|
|
1458
|
+
"learnings",
|
|
1459
|
+
"blocking_rules",
|
|
1460
|
+
"somatic_risk",
|
|
1461
|
+
"schemas"
|
|
1462
|
+
],
|
|
1463
|
+
"internal_calls": [
|
|
1464
|
+
"cognitive.search",
|
|
1465
|
+
"cognitive.somatic_get_risk"
|
|
1466
|
+
],
|
|
1467
|
+
"enforcement": {
|
|
1468
|
+
"level": "should",
|
|
1469
|
+
"rules": [
|
|
1470
|
+
{
|
|
1471
|
+
"type": "before_tool",
|
|
1472
|
+
"watch_tools": [
|
|
1473
|
+
"Edit",
|
|
1474
|
+
"Write"
|
|
1475
|
+
],
|
|
1476
|
+
"condition": "only_when_editing_code_files_not_already_guarded_by_task_open"
|
|
1477
|
+
}
|
|
1478
|
+
],
|
|
1479
|
+
"inject_prompt": "You are about to edit files without running guard_check. Execute nexo_guard_check with the files you are about to modify. Do not produce visible text.",
|
|
1480
|
+
"note": "task_open already calls guard_check internally for action tasks with files. This enforcement is for edits OUTSIDE of a protocol task."
|
|
1481
|
+
},
|
|
1482
|
+
"triggers_after": []
|
|
1483
|
+
},
|
|
1484
|
+
"nexo_guard_cross_check": {
|
|
1485
|
+
"description": "Cross-check audit findings against known learnings to filter false positives",
|
|
1486
|
+
"category": "guard",
|
|
1487
|
+
"source": "plugin:guard",
|
|
1488
|
+
"requires": [],
|
|
1489
|
+
"provides": [],
|
|
1490
|
+
"internal_calls": [],
|
|
1491
|
+
"enforcement": {
|
|
1492
|
+
"level": "none",
|
|
1493
|
+
"rules": []
|
|
1494
|
+
},
|
|
1495
|
+
"triggers_after": []
|
|
1496
|
+
},
|
|
1497
|
+
"nexo_guard_file_check": {
|
|
1498
|
+
"description": "Pre-edit check for specific files. Surfaces learnings + recent changes.",
|
|
1499
|
+
"category": "guard",
|
|
1500
|
+
"source": "plugin:guard",
|
|
1501
|
+
"requires": [],
|
|
1502
|
+
"provides": [
|
|
1503
|
+
"file_learnings",
|
|
1504
|
+
"recent_changes"
|
|
1505
|
+
],
|
|
1506
|
+
"internal_calls": [],
|
|
1507
|
+
"enforcement": {
|
|
1508
|
+
"level": "none",
|
|
1509
|
+
"rules": []
|
|
1510
|
+
},
|
|
1511
|
+
"triggers_after": []
|
|
1512
|
+
},
|
|
1513
|
+
"nexo_guard_log_repetition": {
|
|
1514
|
+
"description": "Log when a learning is repeated (same error happens again)",
|
|
1515
|
+
"category": "guard",
|
|
1516
|
+
"source": "plugin:guard",
|
|
1517
|
+
"requires": [],
|
|
1518
|
+
"provides": [],
|
|
1519
|
+
"internal_calls": [],
|
|
1520
|
+
"enforcement": {
|
|
1521
|
+
"level": "none",
|
|
1522
|
+
"rules": []
|
|
1523
|
+
},
|
|
1524
|
+
"triggers_after": []
|
|
1525
|
+
},
|
|
1526
|
+
"nexo_guard_stats": {
|
|
1527
|
+
"description": "Guard system statistics: repetition rate, trends, top problem areas",
|
|
1528
|
+
"category": "guard",
|
|
1529
|
+
"source": "plugin:guard",
|
|
1530
|
+
"requires": [],
|
|
1531
|
+
"provides": [],
|
|
1532
|
+
"internal_calls": [],
|
|
1533
|
+
"enforcement": {
|
|
1534
|
+
"level": "none",
|
|
1535
|
+
"rules": []
|
|
1536
|
+
},
|
|
1537
|
+
"triggers_after": []
|
|
1538
|
+
},
|
|
1539
|
+
"nexo_guardian_rule_override": {
|
|
1540
|
+
"description": "Temporarily override a Guardian rule's mode (off/shadow/soft/hard) with TTL (1h/24h/session). Core rules (R13/R14/R16/R25/R30) cannot be set to off. Writes to ~/.nexo/config/guardian-runtime-overrides.json.",
|
|
1541
|
+
"category": "guardian",
|
|
1542
|
+
"source": "server",
|
|
1543
|
+
"requires": [],
|
|
1544
|
+
"provides": [
|
|
1545
|
+
"guardian_rule_override"
|
|
1546
|
+
],
|
|
1547
|
+
"internal_calls": [],
|
|
1548
|
+
"enforcement": {
|
|
1549
|
+
"level": "none",
|
|
1550
|
+
"rules": []
|
|
1551
|
+
},
|
|
1552
|
+
"triggers_after": []
|
|
1553
|
+
},
|
|
1554
|
+
"nexo_heartbeat": {
|
|
1555
|
+
"description": "Update session task, check inbox, detect trust events. Internally checks: DIARY_OVERDUE (>10 HBs or >30min), GUARD_REMINDER (code edit without guard), LEARNING_REMINDER (user correction without learning), PROTOCOL_DEBT (open debts). Also fires adaptive_mode compute and diary draft accumulation.",
|
|
1556
|
+
"category": "session",
|
|
1557
|
+
"source": "server",
|
|
1558
|
+
"requires": [
|
|
1559
|
+
"nexo_startup"
|
|
1560
|
+
],
|
|
1561
|
+
"provides": [
|
|
1562
|
+
"now_utc",
|
|
1563
|
+
"inbox",
|
|
1564
|
+
"pending_questions",
|
|
1565
|
+
"recent_context",
|
|
1566
|
+
"diary_overdue_signal",
|
|
1567
|
+
"guard_reminder_signal",
|
|
1568
|
+
"learning_reminder_signal",
|
|
1569
|
+
"protocol_debt_signal"
|
|
1570
|
+
],
|
|
1571
|
+
"internal_calls": [
|
|
1572
|
+
"adaptive_mode.compute_mode",
|
|
1573
|
+
"cognitive._trust.detect_sentiment",
|
|
1574
|
+
"build_pre_action_context",
|
|
1575
|
+
"upsert_diary_draft",
|
|
1576
|
+
"save_checkpoint",
|
|
1577
|
+
"capture_context_event"
|
|
1578
|
+
],
|
|
1579
|
+
"enforcement": {
|
|
1580
|
+
"level": "must",
|
|
1581
|
+
"rules": [
|
|
1582
|
+
{
|
|
1583
|
+
"type": "periodic_by_messages",
|
|
1584
|
+
"threshold": 3
|
|
1585
|
+
}
|
|
1586
|
+
],
|
|
1587
|
+
"inject_prompt": "Execute nexo_heartbeat with the current session SID and a brief description of what you are doing. Do not produce visible text."
|
|
1588
|
+
},
|
|
1589
|
+
"triggers_after": []
|
|
1590
|
+
},
|
|
1591
|
+
"nexo_hook_runs": {
|
|
1592
|
+
"description": "List recent hook lifecycle runs",
|
|
1593
|
+
"category": "system",
|
|
1594
|
+
"source": "server",
|
|
1595
|
+
"requires": [],
|
|
1596
|
+
"provides": [],
|
|
1597
|
+
"internal_calls": [],
|
|
1598
|
+
"enforcement": {
|
|
1599
|
+
"level": "none",
|
|
1600
|
+
"rules": []
|
|
1601
|
+
},
|
|
1602
|
+
"triggers_after": []
|
|
1603
|
+
},
|
|
1604
|
+
"nexo_hot_context_list": {
|
|
1605
|
+
"description": "List hot-context items currently alive",
|
|
1606
|
+
"category": "context",
|
|
1607
|
+
"source": "server",
|
|
1608
|
+
"requires": [],
|
|
1609
|
+
"provides": [],
|
|
1610
|
+
"internal_calls": [],
|
|
1611
|
+
"enforcement": {
|
|
1612
|
+
"level": "none",
|
|
1613
|
+
"rules": []
|
|
1614
|
+
},
|
|
1615
|
+
"triggers_after": []
|
|
1616
|
+
},
|
|
1617
|
+
"nexo_impact_score": {
|
|
1618
|
+
"description": "Compute Impact Scoring for a followup",
|
|
1619
|
+
"category": "impact",
|
|
1620
|
+
"source": "plugin:impact",
|
|
1621
|
+
"requires": [],
|
|
1622
|
+
"provides": [],
|
|
1623
|
+
"internal_calls": [],
|
|
1624
|
+
"enforcement": {
|
|
1625
|
+
"level": "none",
|
|
1626
|
+
"rules": []
|
|
1627
|
+
},
|
|
1628
|
+
"triggers_after": []
|
|
1629
|
+
},
|
|
1630
|
+
"nexo_index_add_dir": {
|
|
1631
|
+
"description": "Register directory for FTS5 indexing",
|
|
1632
|
+
"category": "index",
|
|
1633
|
+
"source": "server",
|
|
1634
|
+
"requires": [],
|
|
1635
|
+
"provides": [],
|
|
1636
|
+
"internal_calls": [],
|
|
1637
|
+
"enforcement": {
|
|
1638
|
+
"level": "none",
|
|
1639
|
+
"rules": []
|
|
1640
|
+
},
|
|
1641
|
+
"triggers_after": []
|
|
1642
|
+
},
|
|
1643
|
+
"nexo_index_dirs": {
|
|
1644
|
+
"description": "List indexed directories",
|
|
1645
|
+
"category": "index",
|
|
1646
|
+
"source": "server",
|
|
1647
|
+
"requires": [],
|
|
1648
|
+
"provides": [],
|
|
1649
|
+
"internal_calls": [],
|
|
1650
|
+
"enforcement": {
|
|
1651
|
+
"level": "none",
|
|
1652
|
+
"rules": []
|
|
1653
|
+
},
|
|
1654
|
+
"triggers_after": []
|
|
1655
|
+
},
|
|
1656
|
+
"nexo_index_remove_dir": {
|
|
1657
|
+
"description": "Remove directory from FTS5",
|
|
1658
|
+
"category": "index",
|
|
1659
|
+
"source": "server",
|
|
1660
|
+
"requires": [],
|
|
1661
|
+
"provides": [],
|
|
1662
|
+
"internal_calls": [],
|
|
1663
|
+
"enforcement": {
|
|
1664
|
+
"level": "none",
|
|
1665
|
+
"rules": []
|
|
1666
|
+
},
|
|
1667
|
+
"triggers_after": []
|
|
1668
|
+
},
|
|
1669
|
+
"nexo_kg_export": {
|
|
1670
|
+
"description": "Export KG to JSON-LD/GraphML",
|
|
1671
|
+
"category": "knowledge_graph",
|
|
1672
|
+
"source": "plugin:knowledge_graph_tools",
|
|
1673
|
+
"requires": [],
|
|
1674
|
+
"provides": [],
|
|
1675
|
+
"internal_calls": [],
|
|
1676
|
+
"enforcement": {
|
|
1677
|
+
"level": "none",
|
|
1678
|
+
"rules": []
|
|
1679
|
+
},
|
|
1680
|
+
"triggers_after": []
|
|
1681
|
+
},
|
|
1682
|
+
"nexo_kg_neighbors": {
|
|
1683
|
+
"description": "Get direct neighbors of a node",
|
|
1684
|
+
"category": "knowledge_graph",
|
|
1685
|
+
"source": "plugin:knowledge_graph_tools",
|
|
1686
|
+
"requires": [],
|
|
1687
|
+
"provides": [],
|
|
1688
|
+
"internal_calls": [],
|
|
1689
|
+
"enforcement": {
|
|
1690
|
+
"level": "none",
|
|
1691
|
+
"rules": []
|
|
1692
|
+
},
|
|
1693
|
+
"triggers_after": []
|
|
1694
|
+
},
|
|
1695
|
+
"nexo_kg_path": {
|
|
1696
|
+
"description": "Find shortest path between nodes",
|
|
1697
|
+
"category": "knowledge_graph",
|
|
1698
|
+
"source": "plugin:knowledge_graph_tools",
|
|
1699
|
+
"requires": [],
|
|
1700
|
+
"provides": [],
|
|
1701
|
+
"internal_calls": [],
|
|
1702
|
+
"enforcement": {
|
|
1703
|
+
"level": "none",
|
|
1704
|
+
"rules": []
|
|
1705
|
+
},
|
|
1706
|
+
"triggers_after": []
|
|
1707
|
+
},
|
|
1708
|
+
"nexo_kg_query": {
|
|
1709
|
+
"description": "Query knowledge graph",
|
|
1710
|
+
"category": "knowledge_graph",
|
|
1711
|
+
"source": "plugin:knowledge_graph_tools",
|
|
1712
|
+
"requires": [],
|
|
1713
|
+
"provides": [],
|
|
1714
|
+
"internal_calls": [],
|
|
1715
|
+
"enforcement": {
|
|
1716
|
+
"level": "none",
|
|
1717
|
+
"rules": []
|
|
1718
|
+
},
|
|
1719
|
+
"triggers_after": []
|
|
1720
|
+
},
|
|
1721
|
+
"nexo_kg_stats": {
|
|
1722
|
+
"description": "Knowledge graph statistics",
|
|
1723
|
+
"category": "knowledge_graph",
|
|
1724
|
+
"source": "plugin:knowledge_graph_tools",
|
|
1725
|
+
"requires": [],
|
|
1726
|
+
"provides": [],
|
|
1727
|
+
"internal_calls": [],
|
|
1728
|
+
"enforcement": {
|
|
1729
|
+
"level": "none",
|
|
1730
|
+
"rules": []
|
|
1731
|
+
},
|
|
1732
|
+
"triggers_after": []
|
|
1733
|
+
},
|
|
1734
|
+
"nexo_learning_add": {
|
|
1735
|
+
"description": "Add a reusable learning (error pattern, gotcha, rule). Auto-applies retroactively to recent decisions. Ingests to cognitive STM.",
|
|
1736
|
+
"category": "learning",
|
|
1737
|
+
"source": "server",
|
|
1738
|
+
"requires": [],
|
|
1739
|
+
"provides": [
|
|
1740
|
+
"learning_id"
|
|
1741
|
+
],
|
|
1742
|
+
"internal_calls": [
|
|
1743
|
+
"cognitive.ingest",
|
|
1744
|
+
"nexo_learning_apply_retroactively"
|
|
1745
|
+
],
|
|
1746
|
+
"enforcement": {
|
|
1747
|
+
"level": "should",
|
|
1748
|
+
"rules": [
|
|
1749
|
+
{
|
|
1750
|
+
"type": "on_event",
|
|
1751
|
+
"event": "user_correction_without_learning",
|
|
1752
|
+
"grace_messages": 3
|
|
1753
|
+
}
|
|
1754
|
+
],
|
|
1755
|
+
"inject_prompt": "The user corrected you but no learning was captured. Execute nexo_learning_add to record this correction as a reusable learning. Do not produce visible text.",
|
|
1756
|
+
"note": "heartbeat already includes LEARNING_REMINDER signal. This enforcement adds a hard injection if the model ignores the reminder for 3+ messages."
|
|
1757
|
+
},
|
|
1758
|
+
"triggers_after": []
|
|
1759
|
+
},
|
|
1760
|
+
"nexo_learning_apply_retroactively": {
|
|
1761
|
+
"description": "Scan recent decisions that conflict with a learning's prevention rule",
|
|
1762
|
+
"category": "learning",
|
|
1763
|
+
"source": "server",
|
|
1764
|
+
"requires": [],
|
|
1765
|
+
"provides": [],
|
|
1766
|
+
"internal_calls": [],
|
|
1767
|
+
"enforcement": {
|
|
1768
|
+
"level": "none",
|
|
1769
|
+
"rules": []
|
|
1770
|
+
},
|
|
1771
|
+
"triggers_after": []
|
|
1772
|
+
},
|
|
1773
|
+
"nexo_learning_delete": {
|
|
1774
|
+
"description": "Delete a learning entry",
|
|
1775
|
+
"category": "learning",
|
|
1776
|
+
"source": "server",
|
|
1777
|
+
"requires": [],
|
|
1778
|
+
"provides": [],
|
|
1779
|
+
"internal_calls": [],
|
|
1780
|
+
"enforcement": {
|
|
1781
|
+
"level": "none",
|
|
1782
|
+
"rules": []
|
|
1783
|
+
},
|
|
1784
|
+
"triggers_after": []
|
|
1785
|
+
},
|
|
1786
|
+
"nexo_learning_list": {
|
|
1787
|
+
"description": "List all learnings grouped by category",
|
|
1788
|
+
"category": "learning",
|
|
1789
|
+
"source": "server",
|
|
1790
|
+
"requires": [],
|
|
1791
|
+
"provides": [],
|
|
1792
|
+
"internal_calls": [],
|
|
1793
|
+
"enforcement": {
|
|
1794
|
+
"level": "none",
|
|
1795
|
+
"rules": []
|
|
1796
|
+
},
|
|
1797
|
+
"triggers_after": []
|
|
1798
|
+
},
|
|
1799
|
+
"nexo_learning_quality": {
|
|
1800
|
+
"description": "Score learning quality (fragile rules, needs strengthening)",
|
|
1801
|
+
"category": "learning",
|
|
1802
|
+
"source": "server",
|
|
1803
|
+
"requires": [],
|
|
1804
|
+
"provides": [],
|
|
1805
|
+
"internal_calls": [],
|
|
1806
|
+
"enforcement": {
|
|
1807
|
+
"level": "none",
|
|
1808
|
+
"rules": []
|
|
1809
|
+
},
|
|
1810
|
+
"triggers_after": []
|
|
1811
|
+
},
|
|
1812
|
+
"nexo_learning_search": {
|
|
1813
|
+
"description": "Search learnings by keyword in title and content",
|
|
1814
|
+
"category": "learning",
|
|
1815
|
+
"source": "server",
|
|
1816
|
+
"requires": [],
|
|
1817
|
+
"provides": [
|
|
1818
|
+
"matching_learnings"
|
|
1819
|
+
],
|
|
1820
|
+
"internal_calls": [],
|
|
1821
|
+
"enforcement": {
|
|
1822
|
+
"level": "should",
|
|
1823
|
+
"rules": [
|
|
1824
|
+
{
|
|
1825
|
+
"type": "periodic_by_messages",
|
|
1826
|
+
"threshold": 20
|
|
1827
|
+
}
|
|
1828
|
+
],
|
|
1829
|
+
"reminder_prompt": "Reminder: you have not consulted learnings in a while. If your current work touches a known area, consider running nexo_learning_search to check for relevant patterns. This is a suggestion, not an obligation."
|
|
1830
|
+
},
|
|
1831
|
+
"triggers_after": []
|
|
1832
|
+
},
|
|
1833
|
+
"nexo_learning_update": {
|
|
1834
|
+
"description": "Update a learning entry (non-empty fields only)",
|
|
1835
|
+
"category": "learning",
|
|
1836
|
+
"source": "server",
|
|
1837
|
+
"requires": [],
|
|
1838
|
+
"provides": [],
|
|
1839
|
+
"internal_calls": [],
|
|
1840
|
+
"enforcement": {
|
|
1841
|
+
"level": "none",
|
|
1842
|
+
"rules": []
|
|
1843
|
+
},
|
|
1844
|
+
"triggers_after": []
|
|
1845
|
+
},
|
|
1846
|
+
"nexo_media_memory_add": {
|
|
1847
|
+
"description": "Store non-text artifact metadata",
|
|
1848
|
+
"category": "media",
|
|
1849
|
+
"source": "plugin:media_memory_tools",
|
|
1850
|
+
"requires": [],
|
|
1851
|
+
"provides": [],
|
|
1852
|
+
"internal_calls": [],
|
|
1853
|
+
"enforcement": {
|
|
1854
|
+
"level": "none",
|
|
1855
|
+
"rules": []
|
|
1856
|
+
},
|
|
1857
|
+
"triggers_after": []
|
|
1858
|
+
},
|
|
1859
|
+
"nexo_media_memory_get": {
|
|
1860
|
+
"description": "Inspect stored media memory",
|
|
1861
|
+
"category": "media",
|
|
1862
|
+
"source": "plugin:media_memory_tools",
|
|
1863
|
+
"requires": [],
|
|
1864
|
+
"provides": [],
|
|
1865
|
+
"internal_calls": [],
|
|
1866
|
+
"enforcement": {
|
|
1867
|
+
"level": "none",
|
|
1868
|
+
"rules": []
|
|
1869
|
+
},
|
|
1870
|
+
"triggers_after": []
|
|
1871
|
+
},
|
|
1872
|
+
"nexo_media_memory_search": {
|
|
1873
|
+
"description": "Search media memories",
|
|
1874
|
+
"category": "media",
|
|
1875
|
+
"source": "plugin:media_memory_tools",
|
|
1876
|
+
"requires": [],
|
|
1877
|
+
"provides": [],
|
|
1878
|
+
"internal_calls": [],
|
|
1879
|
+
"enforcement": {
|
|
1880
|
+
"level": "none",
|
|
1881
|
+
"rules": []
|
|
1882
|
+
},
|
|
1883
|
+
"triggers_after": []
|
|
1884
|
+
},
|
|
1885
|
+
"nexo_media_memory_stats": {
|
|
1886
|
+
"description": "Media memory stats",
|
|
1887
|
+
"category": "media",
|
|
1888
|
+
"source": "plugin:media_memory_tools",
|
|
1889
|
+
"requires": [],
|
|
1890
|
+
"provides": [],
|
|
1891
|
+
"internal_calls": [],
|
|
1892
|
+
"enforcement": {
|
|
1893
|
+
"level": "none",
|
|
1894
|
+
"rules": []
|
|
1895
|
+
},
|
|
1896
|
+
"triggers_after": []
|
|
1897
|
+
},
|
|
1898
|
+
"nexo_memory_backend_status": {
|
|
1899
|
+
"description": "Show active memory backend contract",
|
|
1900
|
+
"category": "memory",
|
|
1901
|
+
"source": "plugin:memory_export",
|
|
1902
|
+
"requires": [],
|
|
1903
|
+
"provides": [],
|
|
1904
|
+
"internal_calls": [],
|
|
1905
|
+
"enforcement": {
|
|
1906
|
+
"level": "none",
|
|
1907
|
+
"rules": []
|
|
1908
|
+
},
|
|
1909
|
+
"triggers_after": []
|
|
1910
|
+
},
|
|
1911
|
+
"nexo_memory_export": {
|
|
1912
|
+
"description": "Export markdown snapshot of memory layers",
|
|
1913
|
+
"category": "memory",
|
|
1914
|
+
"source": "plugin:memory_export",
|
|
1915
|
+
"requires": [],
|
|
1916
|
+
"provides": [],
|
|
1917
|
+
"internal_calls": [],
|
|
1918
|
+
"enforcement": {
|
|
1919
|
+
"level": "none",
|
|
1920
|
+
"rules": []
|
|
1921
|
+
},
|
|
1922
|
+
"triggers_after": []
|
|
1923
|
+
},
|
|
1924
|
+
"nexo_memory_recall": {
|
|
1925
|
+
"description": "High-level memory lookup wrapper",
|
|
1926
|
+
"category": "memory",
|
|
1927
|
+
"source": "plugin:memory_export",
|
|
1928
|
+
"requires": [],
|
|
1929
|
+
"provides": [],
|
|
1930
|
+
"internal_calls": [],
|
|
1931
|
+
"enforcement": {
|
|
1932
|
+
"level": "none",
|
|
1933
|
+
"rules": []
|
|
1934
|
+
},
|
|
1935
|
+
"triggers_after": []
|
|
1936
|
+
},
|
|
1937
|
+
"nexo_memory_review_queue": {
|
|
1938
|
+
"description": "Show decisions/learnings due for review",
|
|
1939
|
+
"category": "memory",
|
|
1940
|
+
"source": "plugin:episodic_memory",
|
|
1941
|
+
"requires": [],
|
|
1942
|
+
"provides": [],
|
|
1943
|
+
"internal_calls": [],
|
|
1944
|
+
"enforcement": {
|
|
1945
|
+
"level": "none",
|
|
1946
|
+
"rules": []
|
|
1947
|
+
},
|
|
1948
|
+
"triggers_after": []
|
|
1949
|
+
},
|
|
1950
|
+
"nexo_menu": {
|
|
1951
|
+
"description": "Generate operations center menu with alerts and active sessions",
|
|
1952
|
+
"category": "session",
|
|
1953
|
+
"source": "server",
|
|
1954
|
+
"requires": [],
|
|
1955
|
+
"provides": [],
|
|
1956
|
+
"internal_calls": [],
|
|
1957
|
+
"enforcement": {
|
|
1958
|
+
"level": "none",
|
|
1959
|
+
"rules": []
|
|
1960
|
+
},
|
|
1961
|
+
"triggers_after": []
|
|
1962
|
+
},
|
|
1963
|
+
"nexo_outcome_cancel": {
|
|
1964
|
+
"description": "Cancel an outcome",
|
|
1965
|
+
"category": "outcome",
|
|
1966
|
+
"source": "plugin:outcomes",
|
|
1967
|
+
"requires": [],
|
|
1968
|
+
"provides": [],
|
|
1969
|
+
"internal_calls": [],
|
|
1970
|
+
"enforcement": {
|
|
1971
|
+
"level": "none",
|
|
1972
|
+
"rules": []
|
|
1973
|
+
},
|
|
1974
|
+
"triggers_after": []
|
|
1975
|
+
},
|
|
1976
|
+
"nexo_outcome_check": {
|
|
1977
|
+
"description": "Check tracked outcome with evidence",
|
|
1978
|
+
"category": "outcome",
|
|
1979
|
+
"source": "plugin:outcomes",
|
|
1980
|
+
"requires": [],
|
|
1981
|
+
"provides": [],
|
|
1982
|
+
"internal_calls": [],
|
|
1983
|
+
"enforcement": {
|
|
1984
|
+
"level": "none",
|
|
1985
|
+
"rules": []
|
|
1986
|
+
},
|
|
1987
|
+
"triggers_after": []
|
|
1988
|
+
},
|
|
1989
|
+
"nexo_outcome_list": {
|
|
1990
|
+
"description": "List tracked outcomes",
|
|
1991
|
+
"category": "outcome",
|
|
1992
|
+
"source": "plugin:outcomes",
|
|
1993
|
+
"requires": [],
|
|
1994
|
+
"provides": [],
|
|
1995
|
+
"internal_calls": [],
|
|
1996
|
+
"enforcement": {
|
|
1997
|
+
"level": "none",
|
|
1998
|
+
"rules": []
|
|
1999
|
+
},
|
|
2000
|
+
"triggers_after": []
|
|
2001
|
+
},
|
|
2002
|
+
"nexo_outcome_pattern_candidates": {
|
|
2003
|
+
"description": "List repeated outcome patterns",
|
|
2004
|
+
"category": "outcome",
|
|
2005
|
+
"source": "plugin:outcomes",
|
|
2006
|
+
"requires": [],
|
|
2007
|
+
"provides": [],
|
|
2008
|
+
"internal_calls": [],
|
|
2009
|
+
"enforcement": {
|
|
2010
|
+
"level": "none",
|
|
2011
|
+
"rules": []
|
|
2012
|
+
},
|
|
2013
|
+
"triggers_after": []
|
|
2014
|
+
},
|
|
2015
|
+
"nexo_outcome_pattern_capture": {
|
|
2016
|
+
"description": "Capture outcome pattern as artifact",
|
|
2017
|
+
"category": "outcome",
|
|
2018
|
+
"source": "plugin:outcomes",
|
|
2019
|
+
"requires": [],
|
|
2020
|
+
"provides": [],
|
|
2021
|
+
"internal_calls": [],
|
|
2022
|
+
"enforcement": {
|
|
2023
|
+
"level": "none",
|
|
2024
|
+
"rules": []
|
|
2025
|
+
},
|
|
2026
|
+
"triggers_after": []
|
|
2027
|
+
},
|
|
2028
|
+
"nexo_outcome_register": {
|
|
2029
|
+
"description": "Register expected action outcome",
|
|
2030
|
+
"category": "outcome",
|
|
2031
|
+
"source": "plugin:outcomes",
|
|
2032
|
+
"requires": [],
|
|
2033
|
+
"provides": [],
|
|
2034
|
+
"internal_calls": [],
|
|
2035
|
+
"enforcement": {
|
|
2036
|
+
"level": "none",
|
|
2037
|
+
"rules": []
|
|
2038
|
+
},
|
|
2039
|
+
"triggers_after": []
|
|
2040
|
+
},
|
|
2041
|
+
"nexo_personal_plugin_create": {
|
|
2042
|
+
"description": "Create personal MCP plugin scaffold",
|
|
2043
|
+
"category": "personal",
|
|
2044
|
+
"source": "plugin:personal_plugins",
|
|
2045
|
+
"requires": [],
|
|
2046
|
+
"provides": [],
|
|
2047
|
+
"internal_calls": [],
|
|
2048
|
+
"enforcement": {
|
|
2049
|
+
"level": "none",
|
|
2050
|
+
"rules": []
|
|
2051
|
+
},
|
|
2052
|
+
"triggers_after": []
|
|
2053
|
+
},
|
|
2054
|
+
"nexo_personal_script_create": {
|
|
2055
|
+
"description": "Create personal script with optional schedule",
|
|
2056
|
+
"category": "personal",
|
|
2057
|
+
"source": "plugin:personal_scripts",
|
|
2058
|
+
"requires": [],
|
|
2059
|
+
"provides": [],
|
|
2060
|
+
"internal_calls": [],
|
|
2061
|
+
"enforcement": {
|
|
2062
|
+
"level": "none",
|
|
2063
|
+
"rules": []
|
|
2064
|
+
},
|
|
2065
|
+
"triggers_after": []
|
|
2066
|
+
},
|
|
2067
|
+
"nexo_personal_script_remove": {
|
|
2068
|
+
"description": "Remove personal script",
|
|
2069
|
+
"category": "personal",
|
|
2070
|
+
"source": "plugin:personal_scripts",
|
|
2071
|
+
"requires": [],
|
|
2072
|
+
"provides": [],
|
|
2073
|
+
"internal_calls": [],
|
|
2074
|
+
"enforcement": {
|
|
2075
|
+
"level": "none",
|
|
2076
|
+
"rules": []
|
|
2077
|
+
},
|
|
2078
|
+
"triggers_after": []
|
|
2079
|
+
},
|
|
2080
|
+
"nexo_personal_script_schedules": {
|
|
2081
|
+
"description": "List personal script schedules",
|
|
2082
|
+
"category": "personal",
|
|
2083
|
+
"source": "plugin:personal_scripts",
|
|
2084
|
+
"requires": [],
|
|
2085
|
+
"provides": [],
|
|
2086
|
+
"internal_calls": [],
|
|
2087
|
+
"enforcement": {
|
|
2088
|
+
"level": "none",
|
|
2089
|
+
"rules": []
|
|
2090
|
+
},
|
|
2091
|
+
"triggers_after": []
|
|
2092
|
+
},
|
|
2093
|
+
"nexo_personal_script_unschedule": {
|
|
2094
|
+
"description": "Remove personal schedules",
|
|
2095
|
+
"category": "personal",
|
|
2096
|
+
"source": "plugin:personal_scripts",
|
|
2097
|
+
"requires": [],
|
|
2098
|
+
"provides": [],
|
|
2099
|
+
"internal_calls": [],
|
|
2100
|
+
"enforcement": {
|
|
2101
|
+
"level": "none",
|
|
2102
|
+
"rules": []
|
|
2103
|
+
},
|
|
2104
|
+
"triggers_after": []
|
|
2105
|
+
},
|
|
2106
|
+
"nexo_personal_scripts_classify": {
|
|
2107
|
+
"description": "Classify scripts into buckets",
|
|
2108
|
+
"category": "personal",
|
|
2109
|
+
"source": "plugin:personal_scripts",
|
|
2110
|
+
"requires": [],
|
|
2111
|
+
"provides": [],
|
|
2112
|
+
"internal_calls": [],
|
|
2113
|
+
"enforcement": {
|
|
2114
|
+
"level": "none",
|
|
2115
|
+
"rules": []
|
|
2116
|
+
},
|
|
2117
|
+
"triggers_after": []
|
|
2118
|
+
},
|
|
2119
|
+
"nexo_personal_scripts_ensure_schedules": {
|
|
2120
|
+
"description": "Create/repair script schedules",
|
|
2121
|
+
"category": "personal",
|
|
2122
|
+
"source": "plugin:personal_scripts",
|
|
2123
|
+
"requires": [],
|
|
2124
|
+
"provides": [],
|
|
2125
|
+
"internal_calls": [],
|
|
2126
|
+
"enforcement": {
|
|
2127
|
+
"level": "none",
|
|
2128
|
+
"rules": []
|
|
2129
|
+
},
|
|
2130
|
+
"triggers_after": []
|
|
2131
|
+
},
|
|
2132
|
+
"nexo_personal_scripts_list": {
|
|
2133
|
+
"description": "List personal scripts",
|
|
2134
|
+
"category": "personal",
|
|
2135
|
+
"source": "plugin:personal_scripts",
|
|
2136
|
+
"requires": [],
|
|
2137
|
+
"provides": [],
|
|
2138
|
+
"internal_calls": [],
|
|
2139
|
+
"enforcement": {
|
|
2140
|
+
"level": "none",
|
|
2141
|
+
"rules": []
|
|
2142
|
+
},
|
|
2143
|
+
"triggers_after": []
|
|
2144
|
+
},
|
|
2145
|
+
"nexo_personal_scripts_reconcile": {
|
|
2146
|
+
"description": "Full script+schedule reconciliation",
|
|
2147
|
+
"category": "personal",
|
|
2148
|
+
"source": "plugin:personal_scripts",
|
|
2149
|
+
"requires": [],
|
|
2150
|
+
"provides": [],
|
|
2151
|
+
"internal_calls": [],
|
|
2152
|
+
"enforcement": {
|
|
2153
|
+
"level": "none",
|
|
2154
|
+
"rules": []
|
|
2155
|
+
},
|
|
2156
|
+
"triggers_after": []
|
|
2157
|
+
},
|
|
2158
|
+
"nexo_personal_scripts_sync": {
|
|
2159
|
+
"description": "Sync scripts from filesystem",
|
|
2160
|
+
"category": "personal",
|
|
2161
|
+
"source": "plugin:personal_scripts",
|
|
2162
|
+
"requires": [],
|
|
2163
|
+
"provides": [],
|
|
2164
|
+
"internal_calls": [],
|
|
2165
|
+
"enforcement": {
|
|
2166
|
+
"level": "none",
|
|
2167
|
+
"rules": []
|
|
2168
|
+
},
|
|
2169
|
+
"triggers_after": []
|
|
2170
|
+
},
|
|
2171
|
+
"nexo_automations_list": {
|
|
2172
|
+
"description": "List operator-facing automations",
|
|
2173
|
+
"category": "personal",
|
|
2174
|
+
"source": "plugin:personal_scripts",
|
|
2175
|
+
"requires": [],
|
|
2176
|
+
"provides": [],
|
|
2177
|
+
"internal_calls": [],
|
|
2178
|
+
"enforcement": {
|
|
2179
|
+
"level": "none",
|
|
2180
|
+
"rules": []
|
|
2181
|
+
},
|
|
2182
|
+
"triggers_after": []
|
|
2183
|
+
},
|
|
2184
|
+
"nexo_automation_status": {
|
|
2185
|
+
"description": "Read composed status for one automation",
|
|
2186
|
+
"category": "personal",
|
|
2187
|
+
"source": "plugin:personal_scripts",
|
|
2188
|
+
"requires": [],
|
|
2189
|
+
"provides": [],
|
|
2190
|
+
"internal_calls": [],
|
|
2191
|
+
"enforcement": {
|
|
2192
|
+
"level": "none",
|
|
2193
|
+
"rules": []
|
|
2194
|
+
},
|
|
2195
|
+
"triggers_after": []
|
|
2196
|
+
},
|
|
2197
|
+
"nexo_automation_enable": {
|
|
2198
|
+
"description": "Enable one operator-facing automation",
|
|
2199
|
+
"category": "personal",
|
|
2200
|
+
"source": "plugin:personal_scripts",
|
|
2201
|
+
"requires": [],
|
|
2202
|
+
"provides": [],
|
|
2203
|
+
"internal_calls": [],
|
|
2204
|
+
"enforcement": {
|
|
2205
|
+
"level": "none",
|
|
2206
|
+
"rules": []
|
|
2207
|
+
},
|
|
2208
|
+
"triggers_after": []
|
|
2209
|
+
},
|
|
2210
|
+
"nexo_automation_disable": {
|
|
2211
|
+
"description": "Disable one operator-facing automation",
|
|
2212
|
+
"category": "personal",
|
|
2213
|
+
"source": "plugin:personal_scripts",
|
|
2214
|
+
"requires": [],
|
|
2215
|
+
"provides": [],
|
|
2216
|
+
"internal_calls": [],
|
|
2217
|
+
"enforcement": {
|
|
2218
|
+
"level": "none",
|
|
2219
|
+
"rules": []
|
|
2220
|
+
},
|
|
2221
|
+
"triggers_after": []
|
|
2222
|
+
},
|
|
2223
|
+
"nexo_automation_instructions": {
|
|
2224
|
+
"description": "Set or clear operator extra instructions for an automation",
|
|
2225
|
+
"category": "personal",
|
|
2226
|
+
"source": "plugin:personal_scripts",
|
|
2227
|
+
"requires": [],
|
|
2228
|
+
"provides": [],
|
|
2229
|
+
"internal_calls": [],
|
|
2230
|
+
"enforcement": {
|
|
2231
|
+
"level": "none",
|
|
2232
|
+
"rules": []
|
|
2233
|
+
},
|
|
2234
|
+
"triggers_after": []
|
|
2235
|
+
},
|
|
2236
|
+
"nexo_automation_schedule": {
|
|
2237
|
+
"description": "Set or clear an automation cadence override",
|
|
2238
|
+
"category": "personal",
|
|
2239
|
+
"source": "plugin:personal_scripts",
|
|
2240
|
+
"requires": [],
|
|
2241
|
+
"provides": [],
|
|
2242
|
+
"internal_calls": [],
|
|
2243
|
+
"enforcement": {
|
|
2244
|
+
"level": "none",
|
|
2245
|
+
"rules": []
|
|
2246
|
+
},
|
|
2247
|
+
"triggers_after": []
|
|
2248
|
+
},
|
|
2249
|
+
"nexo_core_schedules_list": {
|
|
2250
|
+
"description": "List structural core schedules whose cadence can be tuned",
|
|
2251
|
+
"category": "personal",
|
|
2252
|
+
"source": "plugin:personal_scripts",
|
|
2253
|
+
"requires": [],
|
|
2254
|
+
"provides": [],
|
|
2255
|
+
"internal_calls": [],
|
|
2256
|
+
"enforcement": {
|
|
2257
|
+
"level": "none",
|
|
2258
|
+
"rules": []
|
|
2259
|
+
},
|
|
2260
|
+
"triggers_after": []
|
|
2261
|
+
},
|
|
2262
|
+
"nexo_core_schedule_status": {
|
|
2263
|
+
"description": "Read the status of one structural core schedule",
|
|
2264
|
+
"category": "personal",
|
|
2265
|
+
"source": "plugin:personal_scripts",
|
|
2266
|
+
"requires": [],
|
|
2267
|
+
"provides": [],
|
|
2268
|
+
"internal_calls": [],
|
|
2269
|
+
"enforcement": {
|
|
2270
|
+
"level": "none",
|
|
2271
|
+
"rules": []
|
|
2272
|
+
},
|
|
2273
|
+
"triggers_after": []
|
|
2274
|
+
},
|
|
2275
|
+
"nexo_core_schedule_set": {
|
|
2276
|
+
"description": "Set or clear a structural core schedule cadence override",
|
|
2277
|
+
"category": "personal",
|
|
2278
|
+
"source": "plugin:personal_scripts",
|
|
2279
|
+
"requires": [],
|
|
2280
|
+
"provides": [],
|
|
2281
|
+
"internal_calls": [],
|
|
2282
|
+
"enforcement": {
|
|
2283
|
+
"level": "none",
|
|
2284
|
+
"rules": []
|
|
2285
|
+
},
|
|
2286
|
+
"triggers_after": []
|
|
2287
|
+
},
|
|
2288
|
+
"nexo_plugin_list": {
|
|
2289
|
+
"description": "List loaded plugins and tools",
|
|
2290
|
+
"category": "plugin",
|
|
2291
|
+
"source": "server",
|
|
2292
|
+
"requires": [],
|
|
2293
|
+
"provides": [],
|
|
2294
|
+
"internal_calls": [],
|
|
2295
|
+
"enforcement": {
|
|
2296
|
+
"level": "none",
|
|
2297
|
+
"rules": []
|
|
2298
|
+
},
|
|
2299
|
+
"triggers_after": []
|
|
2300
|
+
},
|
|
2301
|
+
"nexo_plugin_load": {
|
|
2302
|
+
"description": "Load/reload a plugin",
|
|
2303
|
+
"category": "plugin",
|
|
2304
|
+
"source": "server",
|
|
2305
|
+
"requires": [],
|
|
2306
|
+
"provides": [],
|
|
2307
|
+
"internal_calls": [],
|
|
2308
|
+
"enforcement": {
|
|
2309
|
+
"level": "none",
|
|
2310
|
+
"rules": []
|
|
2311
|
+
},
|
|
2312
|
+
"triggers_after": []
|
|
2313
|
+
},
|
|
2314
|
+
"nexo_plugin_remove": {
|
|
2315
|
+
"description": "Unregister plugin tools from MCP",
|
|
2316
|
+
"category": "plugin",
|
|
2317
|
+
"source": "server",
|
|
2318
|
+
"requires": [],
|
|
2319
|
+
"provides": [],
|
|
2320
|
+
"internal_calls": [],
|
|
2321
|
+
"enforcement": {
|
|
2322
|
+
"level": "none",
|
|
2323
|
+
"rules": []
|
|
2324
|
+
},
|
|
2325
|
+
"triggers_after": []
|
|
2326
|
+
},
|
|
2327
|
+
"nexo_pre_action_context": {
|
|
2328
|
+
"description": "Build 24h context bundle for pre-action review",
|
|
2329
|
+
"category": "context",
|
|
2330
|
+
"source": "server",
|
|
2331
|
+
"requires": [],
|
|
2332
|
+
"provides": [],
|
|
2333
|
+
"internal_calls": [],
|
|
2334
|
+
"enforcement": {
|
|
2335
|
+
"level": "none",
|
|
2336
|
+
"rules": []
|
|
2337
|
+
},
|
|
2338
|
+
"triggers_after": []
|
|
2339
|
+
},
|
|
2340
|
+
"nexo_preference_delete": {
|
|
2341
|
+
"description": "Delete preference",
|
|
2342
|
+
"category": "preferences",
|
|
2343
|
+
"source": "plugin:preferences",
|
|
2344
|
+
"requires": [],
|
|
2345
|
+
"provides": [],
|
|
2346
|
+
"internal_calls": [],
|
|
2347
|
+
"enforcement": {
|
|
2348
|
+
"level": "none",
|
|
2349
|
+
"rules": []
|
|
2350
|
+
},
|
|
2351
|
+
"triggers_after": []
|
|
2352
|
+
},
|
|
2353
|
+
"nexo_preference_get": {
|
|
2354
|
+
"description": "Get preference value",
|
|
2355
|
+
"category": "preferences",
|
|
2356
|
+
"source": "plugin:preferences",
|
|
2357
|
+
"requires": [],
|
|
2358
|
+
"provides": [],
|
|
2359
|
+
"internal_calls": [],
|
|
2360
|
+
"enforcement": {
|
|
2361
|
+
"level": "none",
|
|
2362
|
+
"rules": []
|
|
2363
|
+
},
|
|
2364
|
+
"triggers_after": []
|
|
2365
|
+
},
|
|
2366
|
+
"nexo_preference_list": {
|
|
2367
|
+
"description": "List all preferences",
|
|
2368
|
+
"category": "preferences",
|
|
2369
|
+
"source": "plugin:preferences",
|
|
2370
|
+
"requires": [],
|
|
2371
|
+
"provides": [],
|
|
2372
|
+
"internal_calls": [],
|
|
2373
|
+
"enforcement": {
|
|
2374
|
+
"level": "none",
|
|
2375
|
+
"rules": []
|
|
2376
|
+
},
|
|
2377
|
+
"triggers_after": []
|
|
2378
|
+
},
|
|
2379
|
+
"nexo_preference_set": {
|
|
2380
|
+
"description": "Set preference",
|
|
2381
|
+
"category": "preferences",
|
|
2382
|
+
"source": "plugin:preferences",
|
|
2383
|
+
"requires": [],
|
|
2384
|
+
"provides": [],
|
|
2385
|
+
"internal_calls": [],
|
|
2386
|
+
"enforcement": {
|
|
2387
|
+
"level": "none",
|
|
2388
|
+
"rules": []
|
|
2389
|
+
},
|
|
2390
|
+
"triggers_after": []
|
|
2391
|
+
},
|
|
2392
|
+
"nexo_protocol_debt_list": {
|
|
2393
|
+
"description": "List open protocol debt records (missing evidence, change_log, learning, etc.)",
|
|
2394
|
+
"category": "protocol",
|
|
2395
|
+
"source": "plugin:protocol",
|
|
2396
|
+
"requires": [],
|
|
2397
|
+
"provides": [
|
|
2398
|
+
"open_debts"
|
|
2399
|
+
],
|
|
2400
|
+
"internal_calls": [],
|
|
2401
|
+
"enforcement": {
|
|
2402
|
+
"level": "none",
|
|
2403
|
+
"rules": []
|
|
2404
|
+
},
|
|
2405
|
+
"triggers_after": []
|
|
2406
|
+
},
|
|
2407
|
+
"nexo_protocol_debt_resolve": {
|
|
2408
|
+
"description": "Resolve protocol debt records after audit/fix",
|
|
2409
|
+
"category": "protocol",
|
|
2410
|
+
"source": "plugin:protocol",
|
|
2411
|
+
"requires": [],
|
|
2412
|
+
"provides": [],
|
|
2413
|
+
"internal_calls": [],
|
|
2414
|
+
"enforcement": {
|
|
2415
|
+
"level": "none",
|
|
2416
|
+
"rules": []
|
|
2417
|
+
},
|
|
2418
|
+
"triggers_after": []
|
|
2419
|
+
},
|
|
2420
|
+
"nexo_recall": {
|
|
2421
|
+
"description": "Search across ALL NEXO memory",
|
|
2422
|
+
"category": "memory",
|
|
2423
|
+
"source": "plugin:simple_api",
|
|
2424
|
+
"requires": [],
|
|
2425
|
+
"provides": [],
|
|
2426
|
+
"internal_calls": [],
|
|
2427
|
+
"enforcement": {
|
|
2428
|
+
"level": "none",
|
|
2429
|
+
"rules": []
|
|
2430
|
+
},
|
|
2431
|
+
"triggers_after": []
|
|
2432
|
+
},
|
|
2433
|
+
"nexo_recent_context": {
|
|
2434
|
+
"description": "Read recent hot context events",
|
|
2435
|
+
"category": "context",
|
|
2436
|
+
"source": "server",
|
|
2437
|
+
"requires": [],
|
|
2438
|
+
"provides": [],
|
|
2439
|
+
"internal_calls": [],
|
|
2440
|
+
"enforcement": {
|
|
2441
|
+
"level": "none",
|
|
2442
|
+
"rules": []
|
|
2443
|
+
},
|
|
2444
|
+
"triggers_after": []
|
|
2445
|
+
},
|
|
2446
|
+
"nexo_recent_context_capture": {
|
|
2447
|
+
"description": "Capture/update a recent 24h context item",
|
|
2448
|
+
"category": "context",
|
|
2449
|
+
"source": "server",
|
|
2450
|
+
"requires": [],
|
|
2451
|
+
"provides": [],
|
|
2452
|
+
"internal_calls": [],
|
|
2453
|
+
"enforcement": {
|
|
2454
|
+
"level": "none",
|
|
2455
|
+
"rules": []
|
|
2456
|
+
},
|
|
2457
|
+
"triggers_after": []
|
|
2458
|
+
},
|
|
2459
|
+
"nexo_recent_context_resolve": {
|
|
2460
|
+
"description": "Resolve a hot-context item",
|
|
2461
|
+
"category": "context",
|
|
2462
|
+
"source": "server",
|
|
2463
|
+
"requires": [],
|
|
2464
|
+
"provides": [],
|
|
2465
|
+
"internal_calls": [],
|
|
2466
|
+
"enforcement": {
|
|
2467
|
+
"level": "none",
|
|
2468
|
+
"rules": []
|
|
2469
|
+
},
|
|
2470
|
+
"triggers_after": []
|
|
2471
|
+
},
|
|
2472
|
+
"nexo_recover": {
|
|
2473
|
+
"description": "Recover from a corrupted or incomplete state (last-resort diagnostic + self-heal).",
|
|
2474
|
+
"category": "system",
|
|
2475
|
+
"source": "server",
|
|
2476
|
+
"requires": [],
|
|
2477
|
+
"provides": [],
|
|
2478
|
+
"internal_calls": [],
|
|
2479
|
+
"enforcement": {
|
|
2480
|
+
"level": "none",
|
|
2481
|
+
"rules": []
|
|
2482
|
+
},
|
|
2483
|
+
"triggers_after": []
|
|
2484
|
+
},
|
|
2485
|
+
"nexo_reindex": {
|
|
2486
|
+
"description": "Force FTS5 search index rebuild",
|
|
2487
|
+
"category": "index",
|
|
2488
|
+
"source": "server",
|
|
2489
|
+
"requires": [],
|
|
2490
|
+
"provides": [],
|
|
2491
|
+
"internal_calls": [],
|
|
2492
|
+
"enforcement": {
|
|
2493
|
+
"level": "none",
|
|
2494
|
+
"rules": []
|
|
2495
|
+
},
|
|
2496
|
+
"triggers_after": []
|
|
2497
|
+
},
|
|
2498
|
+
"nexo_remember": {
|
|
2499
|
+
"description": "Store one durable memory item",
|
|
2500
|
+
"category": "memory",
|
|
2501
|
+
"source": "plugin:simple_api",
|
|
2502
|
+
"requires": [],
|
|
2503
|
+
"provides": [],
|
|
2504
|
+
"internal_calls": [],
|
|
2505
|
+
"enforcement": {
|
|
2506
|
+
"level": "none",
|
|
2507
|
+
"rules": []
|
|
2508
|
+
},
|
|
2509
|
+
"triggers_after": []
|
|
2510
|
+
},
|
|
2511
|
+
"nexo_reminder_complete": {
|
|
2512
|
+
"description": "Mark reminder as completed",
|
|
2513
|
+
"category": "reminders",
|
|
2514
|
+
"source": "server",
|
|
2515
|
+
"requires": [],
|
|
2516
|
+
"provides": [],
|
|
2517
|
+
"internal_calls": [],
|
|
2518
|
+
"enforcement": {
|
|
2519
|
+
"level": "none",
|
|
2520
|
+
"rules": []
|
|
2521
|
+
},
|
|
2522
|
+
"triggers_after": []
|
|
2523
|
+
},
|
|
2524
|
+
"nexo_reminder_create": {
|
|
2525
|
+
"description": "Create a new reminder",
|
|
2526
|
+
"category": "reminders",
|
|
2527
|
+
"source": "server",
|
|
2528
|
+
"requires": [],
|
|
2529
|
+
"provides": [],
|
|
2530
|
+
"internal_calls": [],
|
|
2531
|
+
"enforcement": {
|
|
2532
|
+
"level": "none",
|
|
2533
|
+
"rules": []
|
|
2534
|
+
},
|
|
2535
|
+
"triggers_after": []
|
|
2536
|
+
},
|
|
2537
|
+
"nexo_reminder_delete": {
|
|
2538
|
+
"description": "Soft-delete a reminder",
|
|
2539
|
+
"category": "reminders",
|
|
2540
|
+
"source": "server",
|
|
2541
|
+
"requires": [],
|
|
2542
|
+
"provides": [],
|
|
2543
|
+
"internal_calls": [],
|
|
2544
|
+
"enforcement": {
|
|
2545
|
+
"level": "none",
|
|
2546
|
+
"rules": []
|
|
2547
|
+
},
|
|
2548
|
+
"triggers_after": []
|
|
2549
|
+
},
|
|
2550
|
+
"nexo_reminder_get": {
|
|
2551
|
+
"description": "Read a reminder with history",
|
|
2552
|
+
"category": "reminders",
|
|
2553
|
+
"source": "server",
|
|
2554
|
+
"requires": [],
|
|
2555
|
+
"provides": [],
|
|
2556
|
+
"internal_calls": [],
|
|
2557
|
+
"enforcement": {
|
|
2558
|
+
"level": "none",
|
|
2559
|
+
"rules": []
|
|
2560
|
+
},
|
|
2561
|
+
"triggers_after": []
|
|
2562
|
+
},
|
|
2563
|
+
"nexo_reminder_note": {
|
|
2564
|
+
"description": "Append note to reminder",
|
|
2565
|
+
"category": "reminders",
|
|
2566
|
+
"source": "server",
|
|
2567
|
+
"requires": [],
|
|
2568
|
+
"provides": [],
|
|
2569
|
+
"internal_calls": [],
|
|
2570
|
+
"enforcement": {
|
|
2571
|
+
"level": "none",
|
|
2572
|
+
"rules": []
|
|
2573
|
+
},
|
|
2574
|
+
"triggers_after": []
|
|
2575
|
+
},
|
|
2576
|
+
"nexo_reminder_restore": {
|
|
2577
|
+
"description": "Restore soft-deleted reminder",
|
|
2578
|
+
"category": "reminders",
|
|
2579
|
+
"source": "server",
|
|
2580
|
+
"requires": [],
|
|
2581
|
+
"provides": [],
|
|
2582
|
+
"internal_calls": [],
|
|
2583
|
+
"enforcement": {
|
|
2584
|
+
"level": "none",
|
|
2585
|
+
"rules": []
|
|
2586
|
+
},
|
|
2587
|
+
"triggers_after": []
|
|
2588
|
+
},
|
|
2589
|
+
"nexo_reminder_update": {
|
|
2590
|
+
"description": "Update reminder fields",
|
|
2591
|
+
"category": "reminders",
|
|
2592
|
+
"source": "server",
|
|
2593
|
+
"requires": [],
|
|
2594
|
+
"provides": [],
|
|
2595
|
+
"internal_calls": [],
|
|
2596
|
+
"enforcement": {
|
|
2597
|
+
"level": "none",
|
|
2598
|
+
"rules": []
|
|
2599
|
+
},
|
|
2600
|
+
"triggers_after": []
|
|
2601
|
+
},
|
|
2602
|
+
"nexo_reminders": {
|
|
2603
|
+
"description": "Check due reminders and active followups. Returns list of pending items requiring action.",
|
|
2604
|
+
"category": "reminders",
|
|
2605
|
+
"source": "server",
|
|
2606
|
+
"requires": [],
|
|
2607
|
+
"provides": [
|
|
2608
|
+
"due_reminders",
|
|
2609
|
+
"active_followups"
|
|
2610
|
+
],
|
|
2611
|
+
"internal_calls": [],
|
|
2612
|
+
"enforcement": {
|
|
2613
|
+
"level": "must",
|
|
2614
|
+
"rules": [
|
|
2615
|
+
{
|
|
2616
|
+
"type": "after_tool",
|
|
2617
|
+
"watch_tools": [
|
|
2618
|
+
"nexo_startup"
|
|
2619
|
+
]
|
|
2620
|
+
}
|
|
2621
|
+
],
|
|
2622
|
+
"inject_prompt": "Execute nexo_reminders with filter='due' to check pending reminders and followups. Do not produce visible text."
|
|
2623
|
+
},
|
|
2624
|
+
"triggers_after": []
|
|
2625
|
+
},
|
|
2626
|
+
"nexo_rules_check": {
|
|
2627
|
+
"description": "Get applicable rules for an area",
|
|
2628
|
+
"category": "rules",
|
|
2629
|
+
"source": "plugin:core_rules",
|
|
2630
|
+
"requires": [],
|
|
2631
|
+
"provides": [],
|
|
2632
|
+
"internal_calls": [],
|
|
2633
|
+
"enforcement": {
|
|
2634
|
+
"level": "none",
|
|
2635
|
+
"rules": []
|
|
2636
|
+
},
|
|
2637
|
+
"triggers_after": []
|
|
2638
|
+
},
|
|
2639
|
+
"nexo_rules_list": {
|
|
2640
|
+
"description": "List all core rules",
|
|
2641
|
+
"category": "rules",
|
|
2642
|
+
"source": "plugin:core_rules",
|
|
2643
|
+
"requires": [],
|
|
2644
|
+
"provides": [],
|
|
2645
|
+
"internal_calls": [],
|
|
2646
|
+
"enforcement": {
|
|
2647
|
+
"level": "none",
|
|
2648
|
+
"rules": []
|
|
2649
|
+
},
|
|
2650
|
+
"triggers_after": []
|
|
2651
|
+
},
|
|
2652
|
+
"nexo_rules_migrate": {
|
|
2653
|
+
"description": "Sync rules from JSON to database",
|
|
2654
|
+
"category": "rules",
|
|
2655
|
+
"source": "plugin:core_rules",
|
|
2656
|
+
"requires": [],
|
|
2657
|
+
"provides": [],
|
|
2658
|
+
"internal_calls": [],
|
|
2659
|
+
"enforcement": {
|
|
2660
|
+
"level": "none",
|
|
2661
|
+
"rules": []
|
|
2662
|
+
},
|
|
2663
|
+
"triggers_after": []
|
|
2664
|
+
},
|
|
2665
|
+
"nexo_run_workflow": {
|
|
2666
|
+
"description": "High-level workflow entry point for public API",
|
|
2667
|
+
"category": "workflow",
|
|
2668
|
+
"source": "plugin:workflow",
|
|
2669
|
+
"requires": [],
|
|
2670
|
+
"provides": [],
|
|
2671
|
+
"internal_calls": [],
|
|
2672
|
+
"enforcement": {
|
|
2673
|
+
"level": "none",
|
|
2674
|
+
"rules": []
|
|
2675
|
+
},
|
|
2676
|
+
"triggers_after": []
|
|
2677
|
+
},
|
|
2678
|
+
"nexo_schedule_add": {
|
|
2679
|
+
"description": "Add personal cron job",
|
|
2680
|
+
"category": "schedule",
|
|
2681
|
+
"source": "plugin:schedule",
|
|
2682
|
+
"requires": [],
|
|
2683
|
+
"provides": [],
|
|
2684
|
+
"internal_calls": [],
|
|
2685
|
+
"enforcement": {
|
|
2686
|
+
"level": "none",
|
|
2687
|
+
"rules": []
|
|
2688
|
+
},
|
|
2689
|
+
"triggers_after": []
|
|
2690
|
+
},
|
|
2691
|
+
"nexo_schedule_status": {
|
|
2692
|
+
"description": "Show cron execution status",
|
|
2693
|
+
"category": "schedule",
|
|
2694
|
+
"source": "plugin:schedule",
|
|
2695
|
+
"requires": [],
|
|
2696
|
+
"provides": [],
|
|
2697
|
+
"internal_calls": [],
|
|
2698
|
+
"enforcement": {
|
|
2699
|
+
"level": "none",
|
|
2700
|
+
"rules": []
|
|
2701
|
+
},
|
|
2702
|
+
"triggers_after": []
|
|
2703
|
+
},
|
|
2704
|
+
"nexo_send": {
|
|
2705
|
+
"description": "Send message to another session",
|
|
2706
|
+
"category": "inter_session",
|
|
2707
|
+
"source": "server",
|
|
2708
|
+
"requires": [],
|
|
2709
|
+
"provides": [],
|
|
2710
|
+
"internal_calls": [],
|
|
2711
|
+
"enforcement": {
|
|
2712
|
+
"level": "none",
|
|
2713
|
+
"rules": []
|
|
2714
|
+
},
|
|
2715
|
+
"triggers_after": []
|
|
2716
|
+
},
|
|
2717
|
+
"nexo_session_diary_read": {
|
|
2718
|
+
"description": "Read recent session diaries for context continuity. Essential at startup to avoid starting cold.",
|
|
2719
|
+
"category": "diary",
|
|
2720
|
+
"source": "plugin:episodic_memory",
|
|
2721
|
+
"requires": [],
|
|
2722
|
+
"provides": [
|
|
2723
|
+
"last_diary",
|
|
2724
|
+
"mental_state",
|
|
2725
|
+
"pending_items",
|
|
2726
|
+
"context_next"
|
|
2727
|
+
],
|
|
2728
|
+
"internal_calls": [],
|
|
2729
|
+
"enforcement": {
|
|
2730
|
+
"level": "must",
|
|
2731
|
+
"rules": [
|
|
2732
|
+
{
|
|
2733
|
+
"type": "after_tool",
|
|
2734
|
+
"watch_tools": [
|
|
2735
|
+
"nexo_startup"
|
|
2736
|
+
]
|
|
2737
|
+
}
|
|
2738
|
+
],
|
|
2739
|
+
"inject_prompt": "Execute nexo_session_diary_read with last_day=true and brief=true to load context from previous sessions. Do not produce visible text."
|
|
2740
|
+
},
|
|
2741
|
+
"triggers_after": []
|
|
2742
|
+
},
|
|
2743
|
+
"nexo_session_diary_write": {
|
|
2744
|
+
"description": "Write end-of-session diary. OBLIGATORIO. Ingests to cognitive STM. Cleans diary draft. Shows trust score summary.",
|
|
2745
|
+
"category": "diary",
|
|
2746
|
+
"source": "plugin:episodic_memory",
|
|
2747
|
+
"requires": [
|
|
2748
|
+
"nexo_startup"
|
|
2749
|
+
],
|
|
2750
|
+
"provides": [
|
|
2751
|
+
"diary_id",
|
|
2752
|
+
"trust_summary"
|
|
2753
|
+
],
|
|
2754
|
+
"internal_calls": [
|
|
2755
|
+
"cognitive.ingest",
|
|
2756
|
+
"delete_diary_draft"
|
|
2757
|
+
],
|
|
2758
|
+
"enforcement": {
|
|
2759
|
+
"level": "must",
|
|
2760
|
+
"rules": [
|
|
2761
|
+
{
|
|
2762
|
+
"type": "periodic_by_time",
|
|
2763
|
+
"threshold": 15
|
|
2764
|
+
},
|
|
2765
|
+
{
|
|
2766
|
+
"type": "on_session_end"
|
|
2767
|
+
}
|
|
2768
|
+
],
|
|
2769
|
+
"inject_prompt": "It has been 15 minutes of active session without writing a diary. Execute nexo_session_diary_write with a summary of decisions and work done so far. Do not produce visible text.",
|
|
2770
|
+
"session_end_inject_prompt": "This session is ending. Execute nexo_session_diary_write with a complete summary: decisions made, pending items, context for next session, mental state, and self-critique. Do not produce visible text."
|
|
2771
|
+
},
|
|
2772
|
+
"triggers_after": []
|
|
2773
|
+
},
|
|
2774
|
+
"nexo_session_export_bundle": {
|
|
2775
|
+
"description": "Export machine-readable session bundle",
|
|
2776
|
+
"category": "session",
|
|
2777
|
+
"source": "server",
|
|
2778
|
+
"requires": [],
|
|
2779
|
+
"provides": [],
|
|
2780
|
+
"internal_calls": [],
|
|
2781
|
+
"enforcement": {
|
|
2782
|
+
"level": "none",
|
|
2783
|
+
"rules": []
|
|
2784
|
+
},
|
|
2785
|
+
"triggers_after": []
|
|
2786
|
+
},
|
|
2787
|
+
"nexo_session_log_close": {
|
|
2788
|
+
"description": "Close an automation session log entry with final status and metadata.",
|
|
2789
|
+
"category": "session",
|
|
2790
|
+
"source": "server",
|
|
2791
|
+
"requires": [
|
|
2792
|
+
"nexo_session_log_create"
|
|
2793
|
+
],
|
|
2794
|
+
"provides": [],
|
|
2795
|
+
"internal_calls": [],
|
|
2796
|
+
"enforcement": {
|
|
2797
|
+
"level": "none",
|
|
2798
|
+
"rules": []
|
|
2799
|
+
},
|
|
2800
|
+
"triggers_after": []
|
|
2801
|
+
},
|
|
2802
|
+
"nexo_session_log_create": {
|
|
2803
|
+
"description": "Open a new automation session log entry (headless runs).",
|
|
2804
|
+
"category": "session",
|
|
2805
|
+
"source": "server",
|
|
2806
|
+
"requires": [],
|
|
2807
|
+
"provides": [
|
|
2808
|
+
"automation_session_log"
|
|
2809
|
+
],
|
|
2810
|
+
"internal_calls": [],
|
|
2811
|
+
"enforcement": {
|
|
2812
|
+
"level": "none",
|
|
2813
|
+
"rules": []
|
|
2814
|
+
},
|
|
2815
|
+
"triggers_after": []
|
|
2816
|
+
},
|
|
2817
|
+
"nexo_session_portable_context": {
|
|
2818
|
+
"description": "Build portable handoff packet",
|
|
2819
|
+
"category": "session",
|
|
2820
|
+
"source": "server",
|
|
2821
|
+
"requires": [],
|
|
2822
|
+
"provides": [],
|
|
2823
|
+
"internal_calls": [],
|
|
2824
|
+
"enforcement": {
|
|
2825
|
+
"level": "none",
|
|
2826
|
+
"rules": []
|
|
2827
|
+
},
|
|
2828
|
+
"triggers_after": []
|
|
2829
|
+
},
|
|
2830
|
+
"nexo_skill_apply": {
|
|
2831
|
+
"description": "Apply a skill in guide/execute/hybrid mode",
|
|
2832
|
+
"category": "skill",
|
|
2833
|
+
"source": "plugin:skills",
|
|
2834
|
+
"requires": [],
|
|
2835
|
+
"provides": [],
|
|
2836
|
+
"internal_calls": [],
|
|
2837
|
+
"enforcement": {
|
|
2838
|
+
"level": "none",
|
|
2839
|
+
"rules": []
|
|
2840
|
+
},
|
|
2841
|
+
"triggers_after": []
|
|
2842
|
+
},
|
|
2843
|
+
"nexo_skill_approve": {
|
|
2844
|
+
"description": "Approve an executable skill so it can run",
|
|
2845
|
+
"category": "skill",
|
|
2846
|
+
"source": "plugin:skills",
|
|
2847
|
+
"requires": [],
|
|
2848
|
+
"provides": [],
|
|
2849
|
+
"internal_calls": [],
|
|
2850
|
+
"enforcement": {
|
|
2851
|
+
"level": "none",
|
|
2852
|
+
"rules": []
|
|
2853
|
+
},
|
|
2854
|
+
"triggers_after": []
|
|
2855
|
+
},
|
|
2856
|
+
"nexo_skill_compose": {
|
|
2857
|
+
"description": "Compose multiple skills into one higher-level skill",
|
|
2858
|
+
"category": "skill",
|
|
2859
|
+
"source": "plugin:skills",
|
|
2860
|
+
"requires": [],
|
|
2861
|
+
"provides": [],
|
|
2862
|
+
"internal_calls": [],
|
|
2863
|
+
"enforcement": {
|
|
2864
|
+
"level": "none",
|
|
2865
|
+
"rules": []
|
|
2866
|
+
},
|
|
2867
|
+
"triggers_after": []
|
|
2868
|
+
},
|
|
2869
|
+
"nexo_skill_compose_candidates": {
|
|
2870
|
+
"description": "Detect skill pairs that fire together frequently",
|
|
2871
|
+
"category": "skill",
|
|
2872
|
+
"source": "plugin:skills",
|
|
2873
|
+
"requires": [],
|
|
2874
|
+
"provides": [],
|
|
2875
|
+
"internal_calls": [],
|
|
2876
|
+
"enforcement": {
|
|
2877
|
+
"level": "none",
|
|
2878
|
+
"rules": []
|
|
2879
|
+
},
|
|
2880
|
+
"triggers_after": []
|
|
2881
|
+
},
|
|
2882
|
+
"nexo_skill_create": {
|
|
2883
|
+
"description": "Create a new skill with metadata and triggers",
|
|
2884
|
+
"category": "skill",
|
|
2885
|
+
"source": "plugin:skills",
|
|
2886
|
+
"requires": [],
|
|
2887
|
+
"provides": [],
|
|
2888
|
+
"internal_calls": [],
|
|
2889
|
+
"enforcement": {
|
|
2890
|
+
"level": "none",
|
|
2891
|
+
"rules": []
|
|
2892
|
+
},
|
|
2893
|
+
"triggers_after": []
|
|
2894
|
+
},
|
|
2895
|
+
"nexo_skill_evolution_candidates": {
|
|
2896
|
+
"description": "Return candidates for skill improvement",
|
|
2897
|
+
"category": "skill",
|
|
2898
|
+
"source": "plugin:skills",
|
|
2899
|
+
"requires": [],
|
|
2900
|
+
"provides": [],
|
|
2901
|
+
"internal_calls": [],
|
|
2902
|
+
"enforcement": {
|
|
2903
|
+
"level": "none",
|
|
2904
|
+
"rules": []
|
|
2905
|
+
},
|
|
2906
|
+
"triggers_after": []
|
|
2907
|
+
},
|
|
2908
|
+
"nexo_skill_featured": {
|
|
2909
|
+
"description": "Return featured published/stable skills",
|
|
2910
|
+
"category": "skill",
|
|
2911
|
+
"source": "plugin:skills",
|
|
2912
|
+
"requires": [],
|
|
2913
|
+
"provides": [],
|
|
2914
|
+
"internal_calls": [],
|
|
2915
|
+
"enforcement": {
|
|
2916
|
+
"level": "none",
|
|
2917
|
+
"rules": []
|
|
2918
|
+
},
|
|
2919
|
+
"triggers_after": []
|
|
2920
|
+
},
|
|
2921
|
+
"nexo_skill_get": {
|
|
2922
|
+
"description": "Get a skill's full details",
|
|
2923
|
+
"category": "skill",
|
|
2924
|
+
"source": "plugin:skills",
|
|
2925
|
+
"requires": [],
|
|
2926
|
+
"provides": [],
|
|
2927
|
+
"internal_calls": [],
|
|
2928
|
+
"enforcement": {
|
|
2929
|
+
"level": "none",
|
|
2930
|
+
"rules": []
|
|
2931
|
+
},
|
|
2932
|
+
"triggers_after": []
|
|
2933
|
+
},
|
|
2934
|
+
"nexo_skill_list": {
|
|
2935
|
+
"description": "List skills filtered by level/tag/source",
|
|
2936
|
+
"category": "skill",
|
|
2937
|
+
"source": "plugin:skills",
|
|
2938
|
+
"requires": [],
|
|
2939
|
+
"provides": [],
|
|
2940
|
+
"internal_calls": [],
|
|
2941
|
+
"enforcement": {
|
|
2942
|
+
"level": "none",
|
|
2943
|
+
"rules": []
|
|
2944
|
+
},
|
|
2945
|
+
"triggers_after": []
|
|
2946
|
+
},
|
|
2947
|
+
"nexo_skill_match": {
|
|
2948
|
+
"description": "Find skills matching a task description. Returns matching reusable procedures.",
|
|
2949
|
+
"category": "skill",
|
|
2950
|
+
"source": "plugin:skills",
|
|
2951
|
+
"requires": [],
|
|
2952
|
+
"provides": [
|
|
2953
|
+
"matching_skills"
|
|
2954
|
+
],
|
|
2955
|
+
"internal_calls": [
|
|
2956
|
+
"cognitive.search"
|
|
2957
|
+
],
|
|
2958
|
+
"enforcement": {
|
|
2959
|
+
"level": "should",
|
|
2960
|
+
"rules": [
|
|
2961
|
+
{
|
|
2962
|
+
"type": "on_event",
|
|
2963
|
+
"event": "multi_step_task_detected"
|
|
2964
|
+
}
|
|
2965
|
+
],
|
|
2966
|
+
"reminder_prompt": "You are starting a multi-step task. Consider running nexo_skill_match to check for reusable procedures. This is a suggestion.",
|
|
2967
|
+
"triggers_after": [
|
|
2968
|
+
"nexo_skill_apply",
|
|
2969
|
+
"nexo_skill_result"
|
|
2970
|
+
]
|
|
2971
|
+
},
|
|
2972
|
+
"triggers_after": [
|
|
2973
|
+
"nexo_skill_apply",
|
|
2974
|
+
"nexo_skill_result"
|
|
2975
|
+
]
|
|
2976
|
+
},
|
|
2977
|
+
"nexo_skill_merge": {
|
|
2978
|
+
"description": "Merge two similar skills into one",
|
|
2979
|
+
"category": "skill",
|
|
2980
|
+
"source": "plugin:skills",
|
|
2981
|
+
"requires": [],
|
|
2982
|
+
"provides": [],
|
|
2983
|
+
"internal_calls": [],
|
|
2984
|
+
"enforcement": {
|
|
2985
|
+
"level": "none",
|
|
2986
|
+
"rules": []
|
|
2987
|
+
},
|
|
2988
|
+
"triggers_after": []
|
|
2989
|
+
},
|
|
2990
|
+
"nexo_skill_outcome_review": {
|
|
2991
|
+
"description": "Review skill promotion/retirement based on outcomes",
|
|
2992
|
+
"category": "skill",
|
|
2993
|
+
"source": "plugin:skills",
|
|
2994
|
+
"requires": [],
|
|
2995
|
+
"provides": [],
|
|
2996
|
+
"internal_calls": [],
|
|
2997
|
+
"enforcement": {
|
|
2998
|
+
"level": "none",
|
|
2999
|
+
"rules": []
|
|
3000
|
+
},
|
|
3001
|
+
"triggers_after": []
|
|
3002
|
+
},
|
|
3003
|
+
"nexo_skill_promote": {
|
|
3004
|
+
"description": "Promote a skill to stronger lifecycle stage",
|
|
3005
|
+
"category": "skill",
|
|
3006
|
+
"source": "plugin:skills",
|
|
3007
|
+
"requires": [],
|
|
3008
|
+
"provides": [],
|
|
3009
|
+
"internal_calls": [],
|
|
3010
|
+
"enforcement": {
|
|
3011
|
+
"level": "none",
|
|
3012
|
+
"rules": []
|
|
3013
|
+
},
|
|
3014
|
+
"triggers_after": []
|
|
3015
|
+
},
|
|
3016
|
+
"nexo_skill_result": {
|
|
3017
|
+
"description": "Record the result of using a skill. Updates trust and promotions.",
|
|
3018
|
+
"category": "skill",
|
|
3019
|
+
"source": "plugin:skills",
|
|
3020
|
+
"requires": [
|
|
3021
|
+
"nexo_skill_match"
|
|
3022
|
+
],
|
|
3023
|
+
"provides": [],
|
|
3024
|
+
"internal_calls": [],
|
|
3025
|
+
"enforcement": {
|
|
3026
|
+
"level": "should",
|
|
3027
|
+
"rules": [
|
|
3028
|
+
{
|
|
3029
|
+
"type": "after_tool",
|
|
3030
|
+
"watch_tools": [
|
|
3031
|
+
"nexo_skill_apply"
|
|
3032
|
+
]
|
|
3033
|
+
}
|
|
3034
|
+
],
|
|
3035
|
+
"reminder_prompt": "You used a skill but haven't recorded the result. Consider running nexo_skill_result to record success/failure for skill improvement tracking."
|
|
3036
|
+
},
|
|
3037
|
+
"triggers_after": []
|
|
3038
|
+
},
|
|
3039
|
+
"nexo_skill_retire": {
|
|
3040
|
+
"description": "Retire a skill cleanly",
|
|
3041
|
+
"category": "skill",
|
|
3042
|
+
"source": "plugin:skills",
|
|
3043
|
+
"requires": [],
|
|
3044
|
+
"provides": [],
|
|
3045
|
+
"internal_calls": [],
|
|
3046
|
+
"enforcement": {
|
|
3047
|
+
"level": "none",
|
|
3048
|
+
"rules": []
|
|
3049
|
+
},
|
|
3050
|
+
"triggers_after": []
|
|
3051
|
+
},
|
|
3052
|
+
"nexo_skill_seed_from_outcome_pattern": {
|
|
3053
|
+
"description": "Create draft skill from repeated outcome pattern",
|
|
3054
|
+
"category": "skill",
|
|
3055
|
+
"source": "plugin:skills",
|
|
3056
|
+
"requires": [],
|
|
3057
|
+
"provides": [],
|
|
3058
|
+
"internal_calls": [],
|
|
3059
|
+
"enforcement": {
|
|
3060
|
+
"level": "none",
|
|
3061
|
+
"rules": []
|
|
3062
|
+
},
|
|
3063
|
+
"triggers_after": []
|
|
3064
|
+
},
|
|
3065
|
+
"nexo_skill_stats": {
|
|
3066
|
+
"description": "Aggregate skill statistics",
|
|
3067
|
+
"category": "skill",
|
|
3068
|
+
"source": "plugin:skills",
|
|
3069
|
+
"requires": [],
|
|
3070
|
+
"provides": [],
|
|
3071
|
+
"internal_calls": [],
|
|
3072
|
+
"enforcement": {
|
|
3073
|
+
"level": "none",
|
|
3074
|
+
"rules": []
|
|
3075
|
+
},
|
|
3076
|
+
"triggers_after": []
|
|
3077
|
+
},
|
|
3078
|
+
"nexo_skill_sync": {
|
|
3079
|
+
"description": "Sync filesystem skill definitions into SQLite",
|
|
3080
|
+
"category": "skill",
|
|
3081
|
+
"source": "plugin:skills",
|
|
3082
|
+
"requires": [],
|
|
3083
|
+
"provides": [],
|
|
3084
|
+
"internal_calls": [],
|
|
3085
|
+
"enforcement": {
|
|
3086
|
+
"level": "none",
|
|
3087
|
+
"rules": []
|
|
3088
|
+
},
|
|
3089
|
+
"triggers_after": []
|
|
3090
|
+
},
|
|
3091
|
+
"nexo_skill_test": {
|
|
3092
|
+
"description": "Test a skill in dry-run mode",
|
|
3093
|
+
"category": "skill",
|
|
3094
|
+
"source": "plugin:skills",
|
|
3095
|
+
"requires": [],
|
|
3096
|
+
"provides": [],
|
|
3097
|
+
"internal_calls": [],
|
|
3098
|
+
"enforcement": {
|
|
3099
|
+
"level": "none",
|
|
3100
|
+
"rules": []
|
|
3101
|
+
},
|
|
3102
|
+
"triggers_after": []
|
|
3103
|
+
},
|
|
3104
|
+
"nexo_smart_startup": {
|
|
3105
|
+
"description": "Pre-load cognitive memories relevant to pending followups, due reminders, and last session topics. Returns up to 10 memories.",
|
|
3106
|
+
"category": "session",
|
|
3107
|
+
"source": "server",
|
|
3108
|
+
"requires": [
|
|
3109
|
+
"nexo_startup"
|
|
3110
|
+
],
|
|
3111
|
+
"provides": [
|
|
3112
|
+
"preloaded_memories"
|
|
3113
|
+
],
|
|
3114
|
+
"internal_calls": [
|
|
3115
|
+
"cognitive.search"
|
|
3116
|
+
],
|
|
3117
|
+
"enforcement": {
|
|
3118
|
+
"level": "must",
|
|
3119
|
+
"rules": [
|
|
3120
|
+
{
|
|
3121
|
+
"type": "after_tool",
|
|
3122
|
+
"watch_tools": [
|
|
3123
|
+
"nexo_startup"
|
|
3124
|
+
]
|
|
3125
|
+
}
|
|
3126
|
+
],
|
|
3127
|
+
"inject_prompt": "Execute nexo_smart_startup to pre-load relevant cognitive context. Do not produce visible text."
|
|
3128
|
+
},
|
|
3129
|
+
"triggers_after": []
|
|
3130
|
+
},
|
|
3131
|
+
"nexo_somatic_check": {
|
|
3132
|
+
"description": "View somatic risk scores for files/areas — pain memory from past errors",
|
|
3133
|
+
"category": "guard",
|
|
3134
|
+
"source": "plugin:guard",
|
|
3135
|
+
"requires": [],
|
|
3136
|
+
"provides": [
|
|
3137
|
+
"risk_scores"
|
|
3138
|
+
],
|
|
3139
|
+
"internal_calls": [
|
|
3140
|
+
"cognitive.somatic_get_risk"
|
|
3141
|
+
],
|
|
3142
|
+
"enforcement": {
|
|
3143
|
+
"level": "none",
|
|
3144
|
+
"rules": []
|
|
3145
|
+
},
|
|
3146
|
+
"triggers_after": []
|
|
3147
|
+
},
|
|
3148
|
+
"nexo_somatic_stats": {
|
|
3149
|
+
"description": "Top 10 riskiest targets + risk distribution",
|
|
3150
|
+
"category": "guard",
|
|
3151
|
+
"source": "plugin:guard",
|
|
3152
|
+
"requires": [],
|
|
3153
|
+
"provides": [],
|
|
3154
|
+
"internal_calls": [],
|
|
3155
|
+
"enforcement": {
|
|
3156
|
+
"level": "none",
|
|
3157
|
+
"rules": []
|
|
3158
|
+
},
|
|
3159
|
+
"triggers_after": []
|
|
3160
|
+
},
|
|
3161
|
+
"nexo_startup": {
|
|
3162
|
+
"description": "Register new session, clean stale ones, return SID + active sessions + inbox",
|
|
3163
|
+
"category": "session",
|
|
3164
|
+
"source": "server",
|
|
3165
|
+
"requires": [],
|
|
3166
|
+
"provides": [
|
|
3167
|
+
"sid"
|
|
3168
|
+
],
|
|
3169
|
+
"internal_calls": [],
|
|
3170
|
+
"enforcement": {
|
|
3171
|
+
"level": "must",
|
|
3172
|
+
"rules": [
|
|
3173
|
+
{
|
|
3174
|
+
"type": "on_session_start",
|
|
3175
|
+
"threshold": 1
|
|
3176
|
+
}
|
|
3177
|
+
],
|
|
3178
|
+
"inject_prompt": "You must start by calling nexo_startup to register this session. Execute it now with a brief task description. Do not produce visible text.",
|
|
3179
|
+
"triggers_after": [
|
|
3180
|
+
"nexo_smart_startup",
|
|
3181
|
+
"nexo_session_diary_read",
|
|
3182
|
+
"nexo_reminders"
|
|
3183
|
+
]
|
|
3184
|
+
},
|
|
3185
|
+
"triggers_after": [
|
|
3186
|
+
"nexo_smart_startup",
|
|
3187
|
+
"nexo_session_diary_read",
|
|
3188
|
+
"nexo_reminders"
|
|
3189
|
+
]
|
|
3190
|
+
},
|
|
3191
|
+
"nexo_state_watcher_create": {
|
|
3192
|
+
"description": "Create persistent state watcher",
|
|
3193
|
+
"category": "watcher",
|
|
3194
|
+
"source": "plugin:state_watchers",
|
|
3195
|
+
"requires": [],
|
|
3196
|
+
"provides": [],
|
|
3197
|
+
"internal_calls": [],
|
|
3198
|
+
"enforcement": {
|
|
3199
|
+
"level": "none",
|
|
3200
|
+
"rules": []
|
|
3201
|
+
},
|
|
3202
|
+
"triggers_after": []
|
|
3203
|
+
},
|
|
3204
|
+
"nexo_state_watcher_list": {
|
|
3205
|
+
"description": "List state watchers",
|
|
3206
|
+
"category": "watcher",
|
|
3207
|
+
"source": "plugin:state_watchers",
|
|
3208
|
+
"requires": [],
|
|
3209
|
+
"provides": [],
|
|
3210
|
+
"internal_calls": [],
|
|
3211
|
+
"enforcement": {
|
|
3212
|
+
"level": "none",
|
|
3213
|
+
"rules": []
|
|
3214
|
+
},
|
|
3215
|
+
"triggers_after": []
|
|
3216
|
+
},
|
|
3217
|
+
"nexo_state_watcher_run": {
|
|
3218
|
+
"description": "Run watchers and return health",
|
|
3219
|
+
"category": "watcher",
|
|
3220
|
+
"source": "plugin:state_watchers",
|
|
3221
|
+
"requires": [],
|
|
3222
|
+
"provides": [],
|
|
3223
|
+
"internal_calls": [],
|
|
3224
|
+
"enforcement": {
|
|
3225
|
+
"level": "none",
|
|
3226
|
+
"rules": []
|
|
3227
|
+
},
|
|
3228
|
+
"triggers_after": []
|
|
3229
|
+
},
|
|
3230
|
+
"nexo_state_watcher_update": {
|
|
3231
|
+
"description": "Update state watcher",
|
|
3232
|
+
"category": "watcher",
|
|
3233
|
+
"source": "plugin:state_watchers",
|
|
3234
|
+
"requires": [],
|
|
3235
|
+
"provides": [],
|
|
3236
|
+
"internal_calls": [],
|
|
3237
|
+
"enforcement": {
|
|
3238
|
+
"level": "none",
|
|
3239
|
+
"rules": []
|
|
3240
|
+
},
|
|
3241
|
+
"triggers_after": []
|
|
3242
|
+
},
|
|
3243
|
+
"nexo_status": {
|
|
3244
|
+
"description": "List active sessions, filter by keyword",
|
|
3245
|
+
"category": "session",
|
|
3246
|
+
"source": "server",
|
|
3247
|
+
"requires": [],
|
|
3248
|
+
"provides": [
|
|
3249
|
+
"active_sessions"
|
|
3250
|
+
],
|
|
3251
|
+
"internal_calls": [],
|
|
3252
|
+
"enforcement": {
|
|
3253
|
+
"level": "none",
|
|
3254
|
+
"rules": []
|
|
3255
|
+
},
|
|
3256
|
+
"triggers_after": []
|
|
3257
|
+
},
|
|
3258
|
+
"nexo_stop": {
|
|
3259
|
+
"description": "Cleanly close a session. Removes from active sessions, stops keepalive thread",
|
|
3260
|
+
"category": "session",
|
|
3261
|
+
"source": "server",
|
|
3262
|
+
"requires": [
|
|
3263
|
+
"nexo_startup"
|
|
3264
|
+
],
|
|
3265
|
+
"provides": [],
|
|
3266
|
+
"internal_calls": [],
|
|
3267
|
+
"enforcement": {
|
|
3268
|
+
"level": "must",
|
|
3269
|
+
"rules": [
|
|
3270
|
+
{
|
|
3271
|
+
"type": "on_session_end"
|
|
3272
|
+
}
|
|
3273
|
+
],
|
|
3274
|
+
"inject_prompt": "This session is ending. Execute nexo_stop with the current SID. Do not produce visible text.",
|
|
3275
|
+
"session_end_inject_prompt": "This session is ending. Execute nexo_stop with the current SID. Do not produce visible text."
|
|
3276
|
+
},
|
|
3277
|
+
"triggers_after": []
|
|
3278
|
+
},
|
|
3279
|
+
"nexo_system_catalog": {
|
|
3280
|
+
"description": "Read live system catalog",
|
|
3281
|
+
"category": "system",
|
|
3282
|
+
"source": "server",
|
|
3283
|
+
"requires": [],
|
|
3284
|
+
"provides": [],
|
|
3285
|
+
"internal_calls": [],
|
|
3286
|
+
"enforcement": {
|
|
3287
|
+
"level": "none",
|
|
3288
|
+
"rules": []
|
|
3289
|
+
},
|
|
3290
|
+
"triggers_after": []
|
|
3291
|
+
},
|
|
3292
|
+
"nexo_task_acknowledge_guard": {
|
|
3293
|
+
"description": "Acknowledge blocking guard rules on open task. Resolves unacknowledged_guard_blocking debt.",
|
|
3294
|
+
"category": "task",
|
|
3295
|
+
"source": "plugin:protocol",
|
|
3296
|
+
"requires": [
|
|
3297
|
+
"nexo_task_open"
|
|
3298
|
+
],
|
|
3299
|
+
"provides": [],
|
|
3300
|
+
"internal_calls": [],
|
|
3301
|
+
"enforcement": {
|
|
3302
|
+
"level": "none",
|
|
3303
|
+
"rules": []
|
|
3304
|
+
},
|
|
3305
|
+
"triggers_after": []
|
|
3306
|
+
},
|
|
3307
|
+
"nexo_task_close": {
|
|
3308
|
+
"description": "Close protocol task with evidence. Validates: evidence (strict mode), change_log (if files changed), learning (if correction), followup. Creates protocol debt for missing artifacts.",
|
|
3309
|
+
"category": "task",
|
|
3310
|
+
"source": "plugin:protocol",
|
|
3311
|
+
"requires": [
|
|
3312
|
+
"nexo_task_open"
|
|
3313
|
+
],
|
|
3314
|
+
"provides": [
|
|
3315
|
+
"outcome",
|
|
3316
|
+
"change_log_id",
|
|
3317
|
+
"learning_id",
|
|
3318
|
+
"followup_id",
|
|
3319
|
+
"open_debts"
|
|
3320
|
+
],
|
|
3321
|
+
"internal_calls": [
|
|
3322
|
+
"log_change",
|
|
3323
|
+
"handle_learning_add",
|
|
3324
|
+
"create_followup",
|
|
3325
|
+
"create_protocol_debt",
|
|
3326
|
+
"set_linked_outcomes_met"
|
|
3327
|
+
],
|
|
3328
|
+
"enforcement": {
|
|
3329
|
+
"level": "must",
|
|
3330
|
+
"rules": [
|
|
3331
|
+
{
|
|
3332
|
+
"type": "on_event",
|
|
3333
|
+
"event": "done_claimed_with_open_task"
|
|
3334
|
+
}
|
|
3335
|
+
],
|
|
3336
|
+
"inject_prompt": "You claimed work is done but have an open protocol task. Execute nexo_task_close with evidence of completion before claiming done. Do not produce visible text."
|
|
3337
|
+
},
|
|
3338
|
+
"triggers_after": []
|
|
3339
|
+
},
|
|
3340
|
+
"nexo_task_frequency": {
|
|
3341
|
+
"description": "Check overdue operational tasks",
|
|
3342
|
+
"category": "task_history",
|
|
3343
|
+
"source": "server",
|
|
3344
|
+
"requires": [],
|
|
3345
|
+
"provides": [],
|
|
3346
|
+
"internal_calls": [],
|
|
3347
|
+
"enforcement": {
|
|
3348
|
+
"level": "none",
|
|
3349
|
+
"rules": []
|
|
3350
|
+
},
|
|
3351
|
+
"triggers_after": []
|
|
3352
|
+
},
|
|
3353
|
+
"nexo_task_list": {
|
|
3354
|
+
"description": "Show execution history",
|
|
3355
|
+
"category": "task_history",
|
|
3356
|
+
"source": "server",
|
|
3357
|
+
"requires": [],
|
|
3358
|
+
"provides": [],
|
|
3359
|
+
"internal_calls": [],
|
|
3360
|
+
"enforcement": {
|
|
3361
|
+
"level": "none",
|
|
3362
|
+
"rules": []
|
|
3363
|
+
},
|
|
3364
|
+
"triggers_after": []
|
|
3365
|
+
},
|
|
3366
|
+
"nexo_task_log": {
|
|
3367
|
+
"description": "Record operational task execution",
|
|
3368
|
+
"category": "task_history",
|
|
3369
|
+
"source": "server",
|
|
3370
|
+
"requires": [],
|
|
3371
|
+
"provides": [],
|
|
3372
|
+
"internal_calls": [],
|
|
3373
|
+
"enforcement": {
|
|
3374
|
+
"level": "none",
|
|
3375
|
+
"rules": []
|
|
3376
|
+
},
|
|
3377
|
+
"triggers_after": []
|
|
3378
|
+
},
|
|
3379
|
+
"nexo_task_open": {
|
|
3380
|
+
"description": "Open protocol task. INTERNALLY calls: heartbeat, guard_check (if action+files), cortex evaluation, response confidence, area context lookup, pre-action context. Establishes contracts: must_verify, must_change_log, must_learning_if_corrected, must_write_diary_on_close.",
|
|
3381
|
+
"category": "task",
|
|
3382
|
+
"source": "plugin:protocol",
|
|
3383
|
+
"requires": [
|
|
3384
|
+
"nexo_startup"
|
|
3385
|
+
],
|
|
3386
|
+
"provides": [
|
|
3387
|
+
"task_id",
|
|
3388
|
+
"contracts",
|
|
3389
|
+
"guard_summary",
|
|
3390
|
+
"cortex_mode",
|
|
3391
|
+
"response_mode",
|
|
3392
|
+
"area_context"
|
|
3393
|
+
],
|
|
3394
|
+
"internal_calls": [
|
|
3395
|
+
"nexo_heartbeat",
|
|
3396
|
+
"nexo_guard_check",
|
|
3397
|
+
"evaluate_cortex_state",
|
|
3398
|
+
"evaluate_response_confidence",
|
|
3399
|
+
"build_pre_action_context",
|
|
3400
|
+
"_build_area_context",
|
|
3401
|
+
"_preview_prospective_triggers",
|
|
3402
|
+
"_attention_snapshot"
|
|
3403
|
+
],
|
|
3404
|
+
"enforcement": {
|
|
3405
|
+
"level": "should",
|
|
3406
|
+
"rules": [
|
|
3407
|
+
{
|
|
3408
|
+
"type": "conditional",
|
|
3409
|
+
"threshold": 10,
|
|
3410
|
+
"condition": "more_than_10_tool_calls_without_task_open"
|
|
3411
|
+
}
|
|
3412
|
+
],
|
|
3413
|
+
"reminder_prompt": "You have made significant tool calls without opening a protocol task. Consider using nexo_task_open to formally track this work. This is a reminder, not an obligation — if the work is trivial, ignore this.",
|
|
3414
|
+
"triggers_after": [
|
|
3415
|
+
"nexo_task_close"
|
|
3416
|
+
]
|
|
3417
|
+
},
|
|
3418
|
+
"triggers_after": [
|
|
3419
|
+
"nexo_task_close"
|
|
3420
|
+
]
|
|
3421
|
+
},
|
|
3422
|
+
"nexo_tool_explain": {
|
|
3423
|
+
"description": "Explain a live NEXO tool",
|
|
3424
|
+
"category": "system",
|
|
3425
|
+
"source": "server",
|
|
3426
|
+
"requires": [],
|
|
3427
|
+
"provides": [],
|
|
3428
|
+
"internal_calls": [],
|
|
3429
|
+
"enforcement": {
|
|
3430
|
+
"level": "none",
|
|
3431
|
+
"rules": []
|
|
3432
|
+
},
|
|
3433
|
+
"triggers_after": []
|
|
3434
|
+
},
|
|
3435
|
+
"nexo_track": {
|
|
3436
|
+
"description": "Track files being edited (conflict detection)",
|
|
3437
|
+
"category": "files",
|
|
3438
|
+
"source": "server",
|
|
3439
|
+
"requires": [],
|
|
3440
|
+
"provides": [],
|
|
3441
|
+
"internal_calls": [],
|
|
3442
|
+
"enforcement": {
|
|
3443
|
+
"level": "none",
|
|
3444
|
+
"rules": []
|
|
3445
|
+
},
|
|
3446
|
+
"triggers_after": []
|
|
3447
|
+
},
|
|
3448
|
+
"nexo_transcript_read": {
|
|
3449
|
+
"description": "Read full transcript by session id",
|
|
3450
|
+
"category": "transcript",
|
|
3451
|
+
"source": "server",
|
|
3452
|
+
"requires": [],
|
|
3453
|
+
"provides": [],
|
|
3454
|
+
"internal_calls": [],
|
|
3455
|
+
"enforcement": {
|
|
3456
|
+
"level": "none",
|
|
3457
|
+
"rules": []
|
|
3458
|
+
},
|
|
3459
|
+
"triggers_after": []
|
|
3460
|
+
},
|
|
3461
|
+
"nexo_transcript_recent": {
|
|
3462
|
+
"description": "List recent transcripts",
|
|
3463
|
+
"category": "transcript",
|
|
3464
|
+
"source": "server",
|
|
3465
|
+
"requires": [],
|
|
3466
|
+
"provides": [],
|
|
3467
|
+
"internal_calls": [],
|
|
3468
|
+
"enforcement": {
|
|
3469
|
+
"level": "none",
|
|
3470
|
+
"rules": []
|
|
3471
|
+
},
|
|
3472
|
+
"triggers_after": []
|
|
3473
|
+
},
|
|
3474
|
+
"nexo_transcript_search": {
|
|
3475
|
+
"description": "Search recent transcripts",
|
|
3476
|
+
"category": "transcript",
|
|
3477
|
+
"source": "server",
|
|
3478
|
+
"requires": [],
|
|
3479
|
+
"provides": [],
|
|
3480
|
+
"internal_calls": [],
|
|
3481
|
+
"enforcement": {
|
|
3482
|
+
"level": "none",
|
|
3483
|
+
"rules": []
|
|
3484
|
+
},
|
|
3485
|
+
"triggers_after": []
|
|
3486
|
+
},
|
|
3487
|
+
"nexo_untrack": {
|
|
3488
|
+
"description": "Stop tracking files",
|
|
3489
|
+
"category": "files",
|
|
3490
|
+
"source": "server",
|
|
3491
|
+
"requires": [],
|
|
3492
|
+
"provides": [],
|
|
3493
|
+
"internal_calls": [],
|
|
3494
|
+
"enforcement": {
|
|
3495
|
+
"level": "none",
|
|
3496
|
+
"rules": []
|
|
3497
|
+
},
|
|
3498
|
+
"triggers_after": []
|
|
3499
|
+
},
|
|
3500
|
+
"nexo_update": {
|
|
3501
|
+
"description": "Pull latest code, backup, migrate, verify",
|
|
3502
|
+
"category": "system",
|
|
3503
|
+
"source": "plugin:update",
|
|
3504
|
+
"requires": [],
|
|
3505
|
+
"provides": [],
|
|
3506
|
+
"internal_calls": [],
|
|
3507
|
+
"enforcement": {
|
|
3508
|
+
"level": "none",
|
|
3509
|
+
"rules": []
|
|
3510
|
+
},
|
|
3511
|
+
"triggers_after": []
|
|
3512
|
+
},
|
|
3513
|
+
"nexo_user_state": {
|
|
3514
|
+
"description": "Compute user-state snapshot",
|
|
3515
|
+
"category": "user_state",
|
|
3516
|
+
"source": "plugin:user_state_tools",
|
|
3517
|
+
"requires": [],
|
|
3518
|
+
"provides": [],
|
|
3519
|
+
"internal_calls": [],
|
|
3520
|
+
"enforcement": {
|
|
3521
|
+
"level": "none",
|
|
3522
|
+
"rules": []
|
|
3523
|
+
},
|
|
3524
|
+
"triggers_after": []
|
|
3525
|
+
},
|
|
3526
|
+
"nexo_user_state_history": {
|
|
3527
|
+
"description": "List recent user-state snapshots",
|
|
3528
|
+
"category": "user_state",
|
|
3529
|
+
"source": "plugin:user_state_tools",
|
|
3530
|
+
"requires": [],
|
|
3531
|
+
"provides": [],
|
|
3532
|
+
"internal_calls": [],
|
|
3533
|
+
"enforcement": {
|
|
3534
|
+
"level": "none",
|
|
3535
|
+
"rules": []
|
|
3536
|
+
},
|
|
3537
|
+
"triggers_after": []
|
|
3538
|
+
},
|
|
3539
|
+
"nexo_user_state_stats": {
|
|
3540
|
+
"description": "Aggregate user-state by label",
|
|
3541
|
+
"category": "user_state",
|
|
3542
|
+
"source": "plugin:user_state_tools",
|
|
3543
|
+
"requires": [],
|
|
3544
|
+
"provides": [],
|
|
3545
|
+
"internal_calls": [],
|
|
3546
|
+
"enforcement": {
|
|
3547
|
+
"level": "none",
|
|
3548
|
+
"rules": []
|
|
3549
|
+
},
|
|
3550
|
+
"triggers_after": []
|
|
3551
|
+
},
|
|
3552
|
+
"nexo_workflow_compensation": {
|
|
3553
|
+
"description": "Show rollback plan for partially completed workflow",
|
|
3554
|
+
"category": "workflow",
|
|
3555
|
+
"source": "plugin:workflow",
|
|
3556
|
+
"requires": [],
|
|
3557
|
+
"provides": [],
|
|
3558
|
+
"internal_calls": [],
|
|
3559
|
+
"enforcement": {
|
|
3560
|
+
"level": "none",
|
|
3561
|
+
"rules": []
|
|
3562
|
+
},
|
|
3563
|
+
"triggers_after": []
|
|
3564
|
+
},
|
|
3565
|
+
"nexo_workflow_get": {
|
|
3566
|
+
"description": "Read full durable workflow state",
|
|
3567
|
+
"category": "workflow",
|
|
3568
|
+
"source": "plugin:workflow",
|
|
3569
|
+
"requires": [],
|
|
3570
|
+
"provides": [],
|
|
3571
|
+
"internal_calls": [],
|
|
3572
|
+
"enforcement": {
|
|
3573
|
+
"level": "none",
|
|
3574
|
+
"rules": []
|
|
3575
|
+
},
|
|
3576
|
+
"triggers_after": []
|
|
3577
|
+
},
|
|
3578
|
+
"nexo_workflow_handoff": {
|
|
3579
|
+
"description": "Record durable handoff for another agent/client",
|
|
3580
|
+
"category": "workflow",
|
|
3581
|
+
"source": "plugin:workflow",
|
|
3582
|
+
"requires": [],
|
|
3583
|
+
"provides": [],
|
|
3584
|
+
"internal_calls": [],
|
|
3585
|
+
"enforcement": {
|
|
3586
|
+
"level": "none",
|
|
3587
|
+
"rules": []
|
|
3588
|
+
},
|
|
3589
|
+
"triggers_after": []
|
|
3590
|
+
},
|
|
3591
|
+
"nexo_workflow_list": {
|
|
3592
|
+
"description": "List durable workflow runs",
|
|
3593
|
+
"category": "workflow",
|
|
3594
|
+
"source": "plugin:workflow",
|
|
3595
|
+
"requires": [],
|
|
3596
|
+
"provides": [],
|
|
3597
|
+
"internal_calls": [],
|
|
3598
|
+
"enforcement": {
|
|
3599
|
+
"level": "none",
|
|
3600
|
+
"rules": []
|
|
3601
|
+
},
|
|
3602
|
+
"triggers_after": []
|
|
3603
|
+
},
|
|
3604
|
+
"nexo_workflow_open": {
|
|
3605
|
+
"description": "Open durable workflow for multi-step/cross-session work",
|
|
3606
|
+
"category": "workflow",
|
|
3607
|
+
"source": "plugin:workflow",
|
|
3608
|
+
"requires": [],
|
|
3609
|
+
"provides": [],
|
|
3610
|
+
"internal_calls": [],
|
|
3611
|
+
"enforcement": {
|
|
3612
|
+
"level": "none",
|
|
3613
|
+
"rules": []
|
|
3614
|
+
},
|
|
3615
|
+
"triggers_after": []
|
|
3616
|
+
},
|
|
3617
|
+
"nexo_workflow_replay": {
|
|
3618
|
+
"description": "Replay latest checkpoints of a workflow",
|
|
3619
|
+
"category": "workflow",
|
|
3620
|
+
"source": "plugin:workflow",
|
|
3621
|
+
"requires": [],
|
|
3622
|
+
"provides": [],
|
|
3623
|
+
"internal_calls": [],
|
|
3624
|
+
"enforcement": {
|
|
3625
|
+
"level": "none",
|
|
3626
|
+
"rules": []
|
|
3627
|
+
},
|
|
3628
|
+
"triggers_after": []
|
|
3629
|
+
},
|
|
3630
|
+
"nexo_workflow_resume": {
|
|
3631
|
+
"description": "Summarize next actionable step for a workflow",
|
|
3632
|
+
"category": "workflow",
|
|
3633
|
+
"source": "plugin:workflow",
|
|
3634
|
+
"requires": [],
|
|
3635
|
+
"provides": [],
|
|
3636
|
+
"internal_calls": [],
|
|
3637
|
+
"enforcement": {
|
|
3638
|
+
"level": "none",
|
|
3639
|
+
"rules": []
|
|
3640
|
+
},
|
|
3641
|
+
"triggers_after": []
|
|
3642
|
+
},
|
|
3643
|
+
"nexo_workflow_update": {
|
|
3644
|
+
"description": "Update workflow with checkpoints and shared state",
|
|
3645
|
+
"category": "workflow",
|
|
3646
|
+
"source": "plugin:workflow",
|
|
3647
|
+
"requires": [],
|
|
3648
|
+
"provides": [],
|
|
3649
|
+
"internal_calls": [],
|
|
3650
|
+
"enforcement": {
|
|
3651
|
+
"level": "none",
|
|
3652
|
+
"rules": []
|
|
3653
|
+
},
|
|
3654
|
+
"triggers_after": []
|
|
3655
|
+
}
|
|
3656
|
+
},
|
|
3657
|
+
"enforcement_levels": {
|
|
3658
|
+
"must": "OBLIGACIÓN — el enforcer FUERZA la llamada inyectando un prompt invisible",
|
|
3659
|
+
"should": "AVISO — el enforcer inyecta un recordatorio suave, el modelo puede ignorarlo",
|
|
3660
|
+
"none": "Sin enforcement — tool bajo demanda del modelo/usuario"
|
|
3661
|
+
},
|
|
3662
|
+
"rule_types": {
|
|
3663
|
+
"on_session_start": "Al inicio de sesión (primeros N mensajes del usuario)",
|
|
3664
|
+
"on_session_end": "Al cerrar sesión/chat/app",
|
|
3665
|
+
"periodic_by_messages": "Cada N mensajes del usuario sin que se haya llamado",
|
|
3666
|
+
"periodic_by_time": "Cada N minutos de sesión activa sin que se haya llamado",
|
|
3667
|
+
"after_tool": "Inmediatamente después de que se llame a una tool en watch_tools",
|
|
3668
|
+
"before_tool": "Antes de que se use una tool en watch_tools",
|
|
3669
|
+
"on_event": "Cuando se detecta un evento específico",
|
|
3670
|
+
"conditional": "Solo si se cumple una condición evaluada dinámicamente"
|
|
3671
|
+
},
|
|
3672
|
+
"fase2_schema": {
|
|
3673
|
+
"guardian_config_version": "1.0.0",
|
|
3674
|
+
"supported_rule_types_v2_0": [
|
|
3675
|
+
"on_session_start",
|
|
3676
|
+
"on_session_end",
|
|
3677
|
+
"periodic_by_messages",
|
|
3678
|
+
"periodic_by_time",
|
|
3679
|
+
"after_tool",
|
|
3680
|
+
"on_event",
|
|
3681
|
+
"before_tool",
|
|
3682
|
+
"conditional"
|
|
3683
|
+
],
|
|
3684
|
+
"supported_rule_types_v2_1": [
|
|
3685
|
+
"pre_tool_intent",
|
|
3686
|
+
"post_user_message",
|
|
3687
|
+
"on_output_classify",
|
|
3688
|
+
"before_tool_strict_block",
|
|
3689
|
+
"after_window_no_tool"
|
|
3690
|
+
],
|
|
3691
|
+
"supported_modes": [
|
|
3692
|
+
"off",
|
|
3693
|
+
"shadow",
|
|
3694
|
+
"soft",
|
|
3695
|
+
"hard"
|
|
3696
|
+
],
|
|
3697
|
+
"core_rule_ids": [
|
|
3698
|
+
"R13_pre_edit_guard",
|
|
3699
|
+
"R14_correction_learning",
|
|
3700
|
+
"R16_declared_done",
|
|
3701
|
+
"R25_nora_maria_read_only",
|
|
3702
|
+
"R30_pre_done_evidence_system_prompt"
|
|
3703
|
+
],
|
|
3704
|
+
"core_rules_disallow_off": true,
|
|
3705
|
+
"server_side_rules_schema": {
|
|
3706
|
+
"trigger_type": "one of: on_mcp_invoke",
|
|
3707
|
+
"condition": "one of: semantic_similarity, existence, conflict, length_min, pattern_match",
|
|
3708
|
+
"threshold": "float or int depending on condition",
|
|
3709
|
+
"action": "one of: warn, reject, merge, bypass_with_force",
|
|
3710
|
+
"force_key": "string — client must pass this key=true to bypass a warning"
|
|
3711
|
+
},
|
|
3712
|
+
"notes": "Fase 2 rules are added incrementally via Fases A–D. Fase 0 only bumps the schema version and documents the supported extensions. Adding a new rule type REQUIRES simultaneous support in enforcement-engine.js AND enforcement_engine.py (parity rule, see docs/client-parity-checklist.md)."
|
|
3713
|
+
}
|
|
3714
|
+
}
|