nexo-brain 7.20.11 → 7.20.13

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.
@@ -159,6 +159,19 @@
159
159
  },
160
160
  "triggers_after": []
161
161
  },
162
+ "nexo_api_call": {
163
+ "description": "Authenticated HTTP request to nexo-desktop.com backend (bearer auto-loaded from system keychain)",
164
+ "category": "backend",
165
+ "source": "server",
166
+ "requires": [],
167
+ "provides": [],
168
+ "internal_calls": [],
169
+ "enforcement": {
170
+ "level": "none",
171
+ "rules": []
172
+ },
173
+ "triggers_after": []
174
+ },
162
175
  "nexo_artifact_create": {
163
176
  "description": "Register artifact (service, dashboard, script)",
164
177
  "category": "artifact",
@@ -276,6 +289,84 @@
276
289
  },
277
290
  "triggers_after": []
278
291
  },
292
+ "nexo_automation_disable": {
293
+ "description": "Disable one operator-facing automation",
294
+ "category": "personal",
295
+ "source": "plugin:personal_scripts",
296
+ "requires": [],
297
+ "provides": [],
298
+ "internal_calls": [],
299
+ "enforcement": {
300
+ "level": "none",
301
+ "rules": []
302
+ },
303
+ "triggers_after": []
304
+ },
305
+ "nexo_automation_enable": {
306
+ "description": "Enable one operator-facing automation",
307
+ "category": "personal",
308
+ "source": "plugin:personal_scripts",
309
+ "requires": [],
310
+ "provides": [],
311
+ "internal_calls": [],
312
+ "enforcement": {
313
+ "level": "none",
314
+ "rules": []
315
+ },
316
+ "triggers_after": []
317
+ },
318
+ "nexo_automation_instructions": {
319
+ "description": "Set or clear operator extra instructions for an automation",
320
+ "category": "personal",
321
+ "source": "plugin:personal_scripts",
322
+ "requires": [],
323
+ "provides": [],
324
+ "internal_calls": [],
325
+ "enforcement": {
326
+ "level": "none",
327
+ "rules": []
328
+ },
329
+ "triggers_after": []
330
+ },
331
+ "nexo_automation_schedule": {
332
+ "description": "Set or clear an automation cadence override",
333
+ "category": "personal",
334
+ "source": "plugin:personal_scripts",
335
+ "requires": [],
336
+ "provides": [],
337
+ "internal_calls": [],
338
+ "enforcement": {
339
+ "level": "none",
340
+ "rules": []
341
+ },
342
+ "triggers_after": []
343
+ },
344
+ "nexo_automation_status": {
345
+ "description": "Read composed status for one automation",
346
+ "category": "personal",
347
+ "source": "plugin:personal_scripts",
348
+ "requires": [],
349
+ "provides": [],
350
+ "internal_calls": [],
351
+ "enforcement": {
352
+ "level": "none",
353
+ "rules": []
354
+ },
355
+ "triggers_after": []
356
+ },
357
+ "nexo_automations_list": {
358
+ "description": "List operator-facing automations",
359
+ "category": "personal",
360
+ "source": "plugin:personal_scripts",
361
+ "requires": [],
362
+ "provides": [],
363
+ "internal_calls": [],
364
+ "enforcement": {
365
+ "level": "none",
366
+ "rules": []
367
+ },
368
+ "triggers_after": []
369
+ },
279
370
  "nexo_backup_list": {
280
371
  "description": "List available backups",
281
372
  "category": "backup",
@@ -887,6 +978,21 @@
887
978
  },
888
979
  "triggers_after": []
889
980
  },
981
+ "nexo_context_router": {
982
+ "description": "Return compact local-memory evidence that can be injected before an answer or action",
983
+ "category": "local_context",
984
+ "source": "server",
985
+ "requires": [],
986
+ "provides": [
987
+ "local_context_evidence"
988
+ ],
989
+ "internal_calls": [],
990
+ "enforcement": {
991
+ "level": "none",
992
+ "rules": []
993
+ },
994
+ "triggers_after": []
995
+ },
890
996
  "nexo_continuity_audit": {
891
997
  "description": "Read the forensic continuity timeline for a conversation",
892
998
  "category": "continuity",
@@ -962,6 +1068,45 @@
962
1068
  },
963
1069
  "triggers_after": []
964
1070
  },
1071
+ "nexo_core_schedule_set": {
1072
+ "description": "Set or clear a structural core schedule cadence override",
1073
+ "category": "personal",
1074
+ "source": "plugin:personal_scripts",
1075
+ "requires": [],
1076
+ "provides": [],
1077
+ "internal_calls": [],
1078
+ "enforcement": {
1079
+ "level": "none",
1080
+ "rules": []
1081
+ },
1082
+ "triggers_after": []
1083
+ },
1084
+ "nexo_core_schedule_status": {
1085
+ "description": "Read the status of one structural core schedule",
1086
+ "category": "personal",
1087
+ "source": "plugin:personal_scripts",
1088
+ "requires": [],
1089
+ "provides": [],
1090
+ "internal_calls": [],
1091
+ "enforcement": {
1092
+ "level": "none",
1093
+ "rules": []
1094
+ },
1095
+ "triggers_after": []
1096
+ },
1097
+ "nexo_core_schedules_list": {
1098
+ "description": "List structural core schedules whose cadence can be tuned",
1099
+ "category": "personal",
1100
+ "source": "plugin:personal_scripts",
1101
+ "requires": [],
1102
+ "provides": [],
1103
+ "internal_calls": [],
1104
+ "enforcement": {
1105
+ "level": "none",
1106
+ "rules": []
1107
+ },
1108
+ "triggers_after": []
1109
+ },
965
1110
  "nexo_cortex_check": {
966
1111
  "description": "Cognitive pre-action check",
967
1112
  "category": "cortex",
@@ -1040,6 +1185,21 @@
1040
1185
  },
1041
1186
  "triggers_after": []
1042
1187
  },
1188
+ "nexo_create_app_token": {
1189
+ "description": "Create persistent AppToken for the user (mints embeddable token for chatbot/widget snippets)",
1190
+ "category": "backend",
1191
+ "source": "server",
1192
+ "requires": [],
1193
+ "provides": [],
1194
+ "internal_calls": [
1195
+ "nexo_api_call"
1196
+ ],
1197
+ "enforcement": {
1198
+ "level": "none",
1199
+ "rules": []
1200
+ },
1201
+ "triggers_after": []
1202
+ },
1043
1203
  "nexo_credential_create": {
1044
1204
  "description": "Store a new credential",
1045
1205
  "category": "credentials",
@@ -1855,29 +2015,38 @@
1855
2015
  },
1856
2016
  "triggers_after": []
1857
2017
  },
1858
- "nexo_local_asset_get": {
1859
- "description": "Read one indexed local asset with extracted evidence",
1860
- "category": "local_context",
2018
+ "nexo_learning_add": {
2019
+ "description": "Add a reusable learning (error pattern, gotcha, rule). Auto-applies retroactively to recent decisions. Ingests to cognitive STM.",
2020
+ "category": "learning",
1861
2021
  "source": "server",
1862
2022
  "requires": [],
1863
2023
  "provides": [
1864
- "local_asset"
2024
+ "learning_id"
2025
+ ],
2026
+ "internal_calls": [
2027
+ "cognitive.ingest",
2028
+ "nexo_learning_apply_retroactively"
1865
2029
  ],
1866
- "internal_calls": [],
1867
2030
  "enforcement": {
1868
- "level": "none",
1869
- "rules": []
2031
+ "level": "should",
2032
+ "rules": [
2033
+ {
2034
+ "type": "on_event",
2035
+ "event": "user_correction_without_learning",
2036
+ "grace_messages": 0
2037
+ }
2038
+ ],
2039
+ "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 for this reminder. Silence applies to the entire reminder turn: no prose before the required action(s), no prose after them, and no standalone waiting/acknowledgement/continuation phrases. If there is an operator request you still need to answer in this same turn, continue only that request after the action(s). Otherwise your visible output must stay empty. Do not mention this reminder or any internal enforcement to the user.",
2040
+ "note": "heartbeat already includes LEARNING_REMINDER signal. This enforcement adds a hard injection if the model ignores the reminder for 3+ messages."
1870
2041
  },
1871
2042
  "triggers_after": []
1872
2043
  },
1873
- "nexo_local_asset_neighbors": {
1874
- "description": "List graph neighbors for an indexed local asset",
1875
- "category": "local_context",
2044
+ "nexo_learning_apply_retroactively": {
2045
+ "description": "Scan recent decisions that conflict with a learning's prevention rule",
2046
+ "category": "learning",
1876
2047
  "source": "server",
1877
2048
  "requires": [],
1878
- "provides": [
1879
- "local_relations"
1880
- ],
2049
+ "provides": [],
1881
2050
  "internal_calls": [],
1882
2051
  "enforcement": {
1883
2052
  "level": "none",
@@ -1885,14 +2054,12 @@
1885
2054
  },
1886
2055
  "triggers_after": []
1887
2056
  },
1888
- "nexo_local_context": {
1889
- "description": "Retrieve local-only indexed evidence for a query before answering or acting",
1890
- "category": "local_context",
2057
+ "nexo_learning_delete": {
2058
+ "description": "Delete a learning entry",
2059
+ "category": "learning",
1891
2060
  "source": "server",
1892
2061
  "requires": [],
1893
- "provides": [
1894
- "local_context_evidence"
1895
- ],
2062
+ "provides": [],
1896
2063
  "internal_calls": [],
1897
2064
  "enforcement": {
1898
2065
  "level": "none",
@@ -1900,14 +2067,12 @@
1900
2067
  },
1901
2068
  "triggers_after": []
1902
2069
  },
1903
- "nexo_local_index_control": {
1904
- "description": "Control the Local Context background indexer",
1905
- "category": "local_context",
2070
+ "nexo_learning_list": {
2071
+ "description": "List all learnings grouped by category",
2072
+ "category": "learning",
1906
2073
  "source": "server",
1907
2074
  "requires": [],
1908
- "provides": [
1909
- "local_index_state"
1910
- ],
2075
+ "provides": [],
1911
2076
  "internal_calls": [],
1912
2077
  "enforcement": {
1913
2078
  "level": "none",
@@ -1915,14 +2080,12 @@
1915
2080
  },
1916
2081
  "triggers_after": []
1917
2082
  },
1918
- "nexo_local_index_diagnostics_tail": {
1919
- "description": "Read recent Local Context diagnostic log entries",
1920
- "category": "local_context",
2083
+ "nexo_learning_quality": {
2084
+ "description": "Score learning quality (fragile rules, needs strengthening)",
2085
+ "category": "learning",
1921
2086
  "source": "server",
1922
2087
  "requires": [],
1923
- "provides": [
1924
- "local_index_logs"
1925
- ],
2088
+ "provides": [],
1926
2089
  "internal_calls": [],
1927
2090
  "enforcement": {
1928
2091
  "level": "none",
@@ -1930,29 +2093,33 @@
1930
2093
  },
1931
2094
  "triggers_after": []
1932
2095
  },
1933
- "nexo_local_index_exclusions": {
1934
- "description": "List, add, or remove Local Context excluded folders",
1935
- "category": "local_context",
2096
+ "nexo_learning_search": {
2097
+ "description": "Search learnings by keyword in title and content",
2098
+ "category": "learning",
1936
2099
  "source": "server",
1937
2100
  "requires": [],
1938
2101
  "provides": [
1939
- "local_index_exclusions"
2102
+ "matching_learnings"
1940
2103
  ],
1941
2104
  "internal_calls": [],
1942
2105
  "enforcement": {
1943
- "level": "none",
1944
- "rules": []
2106
+ "level": "should",
2107
+ "rules": [
2108
+ {
2109
+ "type": "periodic_by_messages",
2110
+ "threshold": 20
2111
+ }
2112
+ ],
2113
+ "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."
1945
2114
  },
1946
2115
  "triggers_after": []
1947
2116
  },
1948
- "nexo_local_index_models": {
1949
- "description": "Inspect or warm Local Context local model availability",
1950
- "category": "local_context",
2117
+ "nexo_learning_update": {
2118
+ "description": "Update a learning entry (non-empty fields only)",
2119
+ "category": "learning",
1951
2120
  "source": "server",
1952
2121
  "requires": [],
1953
- "provides": [
1954
- "local_model_status"
1955
- ],
2122
+ "provides": [],
1956
2123
  "internal_calls": [],
1957
2124
  "enforcement": {
1958
2125
  "level": "none",
@@ -1960,14 +2127,12 @@
1960
2127
  },
1961
2128
  "triggers_after": []
1962
2129
  },
1963
- "nexo_local_index_purge": {
1964
- "description": "Purge one Local Context asset or clear the local index",
1965
- "category": "local_context",
1966
- "source": "server",
2130
+ "nexo_lifecycle_complete_canonical": {
2131
+ "description": "Close the v7.5 canonical-authority 2-call contract: confirm that Desktop finished executing the canonical_actions Brain handed out.",
2132
+ "category": "lifecycle",
2133
+ "source": "plugin:lifecycle_events",
1967
2134
  "requires": [],
1968
- "provides": [
1969
- "local_index_purge_result"
1970
- ],
2135
+ "provides": [],
1971
2136
  "internal_calls": [],
1972
2137
  "enforcement": {
1973
2138
  "level": "none",
@@ -1975,14 +2140,12 @@
1975
2140
  },
1976
2141
  "triggers_after": []
1977
2142
  },
1978
- "nexo_local_index_roots": {
1979
- "description": "List, add, or remove Local Context indexed roots",
1980
- "category": "local_context",
1981
- "source": "server",
2143
+ "nexo_lifecycle_event": {
2144
+ "description": "Record a durable conversation lifecycle event (close/delete/archive/switch/app-exit/window-close) with idempotency by event_id.",
2145
+ "category": "lifecycle",
2146
+ "source": "plugin:lifecycle_events",
1982
2147
  "requires": [],
1983
- "provides": [
1984
- "local_index_roots"
1985
- ],
2148
+ "provides": [],
1986
2149
  "internal_calls": [],
1987
2150
  "enforcement": {
1988
2151
  "level": "none",
@@ -1990,14 +2153,12 @@
1990
2153
  },
1991
2154
  "triggers_after": []
1992
2155
  },
1993
- "nexo_local_index_service_config": {
1994
- "description": "Return Local Context service metadata for macOS and Windows",
1995
- "category": "local_context",
1996
- "source": "server",
2156
+ "nexo_lifecycle_status": {
2157
+ "description": "Read the current delivery_status of a lifecycle event (used by Desktop boot reconciliation).",
2158
+ "category": "lifecycle",
2159
+ "source": "plugin:lifecycle_events",
1997
2160
  "requires": [],
1998
- "provides": [
1999
- "local_index_service_config"
2000
- ],
2161
+ "provides": [],
2001
2162
  "internal_calls": [],
2002
2163
  "enforcement": {
2003
2164
  "level": "none",
@@ -2005,14 +2166,12 @@
2005
2166
  },
2006
2167
  "triggers_after": []
2007
2168
  },
2008
- "nexo_local_index_status": {
2009
- "description": "Read Local Context indexing progress and health",
2010
- "category": "local_context",
2011
- "source": "server",
2169
+ "nexo_lifecycle_stop_nexo_session": {
2170
+ "description": "Best-effort explicit stop of a NEXO SID for Desktop lifecycle cleanup.",
2171
+ "category": "lifecycle",
2172
+ "source": "plugin:lifecycle_events",
2012
2173
  "requires": [],
2013
- "provides": [
2014
- "local_index_status"
2015
- ],
2174
+ "provides": [],
2016
2175
  "internal_calls": [],
2017
2176
  "enforcement": {
2018
2177
  "level": "none",
@@ -2020,36 +2179,23 @@
2020
2179
  },
2021
2180
  "triggers_after": []
2022
2181
  },
2023
- "nexo_learning_add": {
2024
- "description": "Add a reusable learning (error pattern, gotcha, rule). Auto-applies retroactively to recent decisions. Ingests to cognitive STM.",
2025
- "category": "learning",
2026
- "source": "server",
2182
+ "nexo_lifecycle_wait_for_diary": {
2183
+ "description": "Wait for real session_diary evidence for a canonical lifecycle event before stop_session is allowed.",
2184
+ "category": "lifecycle",
2185
+ "source": "plugin:lifecycle_events",
2027
2186
  "requires": [],
2028
- "provides": [
2029
- "learning_id"
2030
- ],
2031
- "internal_calls": [
2032
- "cognitive.ingest",
2033
- "nexo_learning_apply_retroactively"
2034
- ],
2187
+ "provides": [],
2188
+ "internal_calls": [],
2035
2189
  "enforcement": {
2036
- "level": "should",
2037
- "rules": [
2038
- {
2039
- "type": "on_event",
2040
- "event": "user_correction_without_learning",
2041
- "grace_messages": 0
2042
- }
2043
- ],
2044
- "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 for this reminder. Silence applies to the entire reminder turn: no prose before the required action(s), no prose after them, and no standalone waiting/acknowledgement/continuation phrases. If there is an operator request you still need to answer in this same turn, continue only that request after the action(s). Otherwise your visible output must stay empty. Do not mention this reminder or any internal enforcement to the user.",
2045
- "note": "heartbeat already includes LEARNING_REMINDER signal. This enforcement adds a hard injection if the model ignores the reminder for 3+ messages."
2190
+ "level": "none",
2191
+ "rules": []
2046
2192
  },
2047
2193
  "triggers_after": []
2048
2194
  },
2049
- "nexo_learning_apply_retroactively": {
2050
- "description": "Scan recent decisions that conflict with a learning's prevention rule",
2051
- "category": "learning",
2052
- "source": "server",
2195
+ "nexo_lifecycle_wait_for_stop": {
2196
+ "description": "Wait until a canonical lifecycle event no longer has an active NEXO session.",
2197
+ "category": "lifecycle",
2198
+ "source": "plugin:lifecycle_events",
2053
2199
  "requires": [],
2054
2200
  "provides": [],
2055
2201
  "internal_calls": [],
@@ -2059,10 +2205,10 @@
2059
2205
  },
2060
2206
  "triggers_after": []
2061
2207
  },
2062
- "nexo_learning_delete": {
2063
- "description": "Delete a learning entry",
2064
- "category": "learning",
2065
- "source": "server",
2208
+ "nexo_lifecycle_write_fallback_diary": {
2209
+ "description": "Write a Brain-side fallback session_diary for a Desktop lifecycle event when live diary injection cannot complete.",
2210
+ "category": "lifecycle",
2211
+ "source": "plugin:lifecycle_events",
2066
2212
  "requires": [],
2067
2213
  "provides": [],
2068
2214
  "internal_calls": [],
@@ -2072,12 +2218,14 @@
2072
2218
  },
2073
2219
  "triggers_after": []
2074
2220
  },
2075
- "nexo_learning_list": {
2076
- "description": "List all learnings grouped by category",
2077
- "category": "learning",
2221
+ "nexo_local_asset_get": {
2222
+ "description": "Read one indexed local asset with extracted evidence",
2223
+ "category": "local_context",
2078
2224
  "source": "server",
2079
2225
  "requires": [],
2080
- "provides": [],
2226
+ "provides": [
2227
+ "local_asset"
2228
+ ],
2081
2229
  "internal_calls": [],
2082
2230
  "enforcement": {
2083
2231
  "level": "none",
@@ -2085,12 +2233,14 @@
2085
2233
  },
2086
2234
  "triggers_after": []
2087
2235
  },
2088
- "nexo_learning_quality": {
2089
- "description": "Score learning quality (fragile rules, needs strengthening)",
2090
- "category": "learning",
2236
+ "nexo_local_asset_neighbors": {
2237
+ "description": "List graph neighbors for an indexed local asset",
2238
+ "category": "local_context",
2091
2239
  "source": "server",
2092
2240
  "requires": [],
2093
- "provides": [],
2241
+ "provides": [
2242
+ "local_relations"
2243
+ ],
2094
2244
  "internal_calls": [],
2095
2245
  "enforcement": {
2096
2246
  "level": "none",
@@ -2098,33 +2248,29 @@
2098
2248
  },
2099
2249
  "triggers_after": []
2100
2250
  },
2101
- "nexo_learning_search": {
2102
- "description": "Search learnings by keyword in title and content",
2103
- "category": "learning",
2251
+ "nexo_local_context": {
2252
+ "description": "Retrieve local-only indexed evidence for a query before answering or acting",
2253
+ "category": "local_context",
2104
2254
  "source": "server",
2105
2255
  "requires": [],
2106
2256
  "provides": [
2107
- "matching_learnings"
2257
+ "local_context_evidence"
2108
2258
  ],
2109
2259
  "internal_calls": [],
2110
2260
  "enforcement": {
2111
- "level": "should",
2112
- "rules": [
2113
- {
2114
- "type": "periodic_by_messages",
2115
- "threshold": 20
2116
- }
2117
- ],
2118
- "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."
2261
+ "level": "none",
2262
+ "rules": []
2119
2263
  },
2120
2264
  "triggers_after": []
2121
2265
  },
2122
- "nexo_learning_update": {
2123
- "description": "Update a learning entry (non-empty fields only)",
2124
- "category": "learning",
2266
+ "nexo_local_index_control": {
2267
+ "description": "Control the Local Context background indexer",
2268
+ "category": "local_context",
2125
2269
  "source": "server",
2126
2270
  "requires": [],
2127
- "provides": [],
2271
+ "provides": [
2272
+ "local_index_state"
2273
+ ],
2128
2274
  "internal_calls": [],
2129
2275
  "enforcement": {
2130
2276
  "level": "none",
@@ -2132,12 +2278,14 @@
2132
2278
  },
2133
2279
  "triggers_after": []
2134
2280
  },
2135
- "nexo_lifecycle_event": {
2136
- "description": "Record a durable conversation lifecycle event (close/delete/archive/switch/app-exit/window-close) with idempotency by event_id.",
2137
- "category": "lifecycle",
2138
- "source": "plugin:lifecycle_events",
2281
+ "nexo_local_index_diagnostics_tail": {
2282
+ "description": "Read recent Local Context diagnostic log entries",
2283
+ "category": "local_context",
2284
+ "source": "server",
2139
2285
  "requires": [],
2140
- "provides": [],
2286
+ "provides": [
2287
+ "local_index_logs"
2288
+ ],
2141
2289
  "internal_calls": [],
2142
2290
  "enforcement": {
2143
2291
  "level": "none",
@@ -2145,12 +2293,14 @@
2145
2293
  },
2146
2294
  "triggers_after": []
2147
2295
  },
2148
- "nexo_lifecycle_status": {
2149
- "description": "Read the current delivery_status of a lifecycle event (used by Desktop boot reconciliation).",
2150
- "category": "lifecycle",
2151
- "source": "plugin:lifecycle_events",
2296
+ "nexo_local_index_exclusions": {
2297
+ "description": "List, add, or remove Local Context excluded folders",
2298
+ "category": "local_context",
2299
+ "source": "server",
2152
2300
  "requires": [],
2153
- "provides": [],
2301
+ "provides": [
2302
+ "local_index_exclusions"
2303
+ ],
2154
2304
  "internal_calls": [],
2155
2305
  "enforcement": {
2156
2306
  "level": "none",
@@ -2158,12 +2308,14 @@
2158
2308
  },
2159
2309
  "triggers_after": []
2160
2310
  },
2161
- "nexo_lifecycle_complete_canonical": {
2162
- "description": "Close the v7.5 canonical-authority 2-call contract: confirm that Desktop finished executing the canonical_actions Brain handed out.",
2163
- "category": "lifecycle",
2164
- "source": "plugin:lifecycle_events",
2311
+ "nexo_local_index_models": {
2312
+ "description": "Inspect or warm Local Context local model availability",
2313
+ "category": "local_context",
2314
+ "source": "server",
2165
2315
  "requires": [],
2166
- "provides": [],
2316
+ "provides": [
2317
+ "local_model_status"
2318
+ ],
2167
2319
  "internal_calls": [],
2168
2320
  "enforcement": {
2169
2321
  "level": "none",
@@ -2171,12 +2323,14 @@
2171
2323
  },
2172
2324
  "triggers_after": []
2173
2325
  },
2174
- "nexo_lifecycle_wait_for_diary": {
2175
- "description": "Wait for real session_diary evidence for a canonical lifecycle event before stop_session is allowed.",
2176
- "category": "lifecycle",
2177
- "source": "plugin:lifecycle_events",
2326
+ "nexo_local_index_purge": {
2327
+ "description": "Purge one Local Context asset or clear the local index",
2328
+ "category": "local_context",
2329
+ "source": "server",
2178
2330
  "requires": [],
2179
- "provides": [],
2331
+ "provides": [
2332
+ "local_index_purge_result"
2333
+ ],
2180
2334
  "internal_calls": [],
2181
2335
  "enforcement": {
2182
2336
  "level": "none",
@@ -2184,12 +2338,14 @@
2184
2338
  },
2185
2339
  "triggers_after": []
2186
2340
  },
2187
- "nexo_lifecycle_wait_for_stop": {
2188
- "description": "Wait until a canonical lifecycle event no longer has an active NEXO session.",
2189
- "category": "lifecycle",
2190
- "source": "plugin:lifecycle_events",
2341
+ "nexo_local_index_roots": {
2342
+ "description": "List, add, or remove Local Context indexed roots",
2343
+ "category": "local_context",
2344
+ "source": "server",
2191
2345
  "requires": [],
2192
- "provides": [],
2346
+ "provides": [
2347
+ "local_index_roots"
2348
+ ],
2193
2349
  "internal_calls": [],
2194
2350
  "enforcement": {
2195
2351
  "level": "none",
@@ -2197,12 +2353,14 @@
2197
2353
  },
2198
2354
  "triggers_after": []
2199
2355
  },
2200
- "nexo_lifecycle_write_fallback_diary": {
2201
- "description": "Write a Brain-side fallback session_diary for a Desktop lifecycle event when live diary injection cannot complete.",
2202
- "category": "lifecycle",
2203
- "source": "plugin:lifecycle_events",
2356
+ "nexo_local_index_service_config": {
2357
+ "description": "Return Local Context service metadata for macOS and Windows",
2358
+ "category": "local_context",
2359
+ "source": "server",
2204
2360
  "requires": [],
2205
- "provides": [],
2361
+ "provides": [
2362
+ "local_index_service_config"
2363
+ ],
2206
2364
  "internal_calls": [],
2207
2365
  "enforcement": {
2208
2366
  "level": "none",
@@ -2210,12 +2368,14 @@
2210
2368
  },
2211
2369
  "triggers_after": []
2212
2370
  },
2213
- "nexo_lifecycle_stop_nexo_session": {
2214
- "description": "Best-effort explicit stop of a NEXO SID for Desktop lifecycle cleanup.",
2215
- "category": "lifecycle",
2216
- "source": "plugin:lifecycle_events",
2371
+ "nexo_local_index_status": {
2372
+ "description": "Read Local Context indexing progress and health",
2373
+ "category": "local_context",
2374
+ "source": "server",
2217
2375
  "requires": [],
2218
- "provides": [],
2376
+ "provides": [
2377
+ "local_index_status"
2378
+ ],
2219
2379
  "internal_calls": [],
2220
2380
  "enforcement": {
2221
2381
  "level": "none",
@@ -2282,7 +2442,23 @@
2282
2442
  "requires": [],
2283
2443
  "provides": [],
2284
2444
  "internal_calls": [],
2285
- "enforcement": {"level": "none", "rules": []},
2445
+ "enforcement": {
2446
+ "level": "none",
2447
+ "rules": []
2448
+ },
2449
+ "triggers_after": []
2450
+ },
2451
+ "nexo_memory_backend_status": {
2452
+ "description": "Show active memory backend contract",
2453
+ "category": "memory",
2454
+ "source": "plugin:memory_export",
2455
+ "requires": [],
2456
+ "provides": [],
2457
+ "internal_calls": [],
2458
+ "enforcement": {
2459
+ "level": "none",
2460
+ "rules": []
2461
+ },
2286
2462
  "triggers_after": []
2287
2463
  },
2288
2464
  "nexo_memory_backfill": {
@@ -2292,7 +2468,10 @@
2292
2468
  "requires": [],
2293
2469
  "provides": [],
2294
2470
  "internal_calls": [],
2295
- "enforcement": {"level": "none", "rules": []},
2471
+ "enforcement": {
2472
+ "level": "none",
2473
+ "rules": []
2474
+ },
2296
2475
  "triggers_after": []
2297
2476
  },
2298
2477
  "nexo_memory_event_list": {
@@ -2302,7 +2481,10 @@
2302
2481
  "requires": [],
2303
2482
  "provides": [],
2304
2483
  "internal_calls": [],
2305
- "enforcement": {"level": "none", "rules": []},
2484
+ "enforcement": {
2485
+ "level": "none",
2486
+ "rules": []
2487
+ },
2306
2488
  "triggers_after": []
2307
2489
  },
2308
2490
  "nexo_memory_event_stats": {
@@ -2312,7 +2494,23 @@
2312
2494
  "requires": [],
2313
2495
  "provides": [],
2314
2496
  "internal_calls": [],
2315
- "enforcement": {"level": "none", "rules": []},
2497
+ "enforcement": {
2498
+ "level": "none",
2499
+ "rules": []
2500
+ },
2501
+ "triggers_after": []
2502
+ },
2503
+ "nexo_memory_export": {
2504
+ "description": "Export markdown snapshot of memory layers",
2505
+ "category": "memory",
2506
+ "source": "plugin:memory_export",
2507
+ "requires": [],
2508
+ "provides": [],
2509
+ "internal_calls": [],
2510
+ "enforcement": {
2511
+ "level": "none",
2512
+ "rules": []
2513
+ },
2316
2514
  "triggers_after": []
2317
2515
  },
2318
2516
  "nexo_memory_health": {
@@ -2322,7 +2520,10 @@
2322
2520
  "requires": [],
2323
2521
  "provides": [],
2324
2522
  "internal_calls": [],
2325
- "enforcement": {"level": "none", "rules": []},
2523
+ "enforcement": {
2524
+ "level": "none",
2525
+ "rules": []
2526
+ },
2326
2527
  "triggers_after": []
2327
2528
  },
2328
2529
  "nexo_memory_maintenance": {
@@ -2332,7 +2533,10 @@
2332
2533
  "requires": [],
2333
2534
  "provides": [],
2334
2535
  "internal_calls": [],
2335
- "enforcement": {"level": "none", "rules": []},
2536
+ "enforcement": {
2537
+ "level": "none",
2538
+ "rules": []
2539
+ },
2336
2540
  "triggers_after": []
2337
2541
  },
2338
2542
  "nexo_memory_observation_list": {
@@ -2342,7 +2546,10 @@
2342
2546
  "requires": [],
2343
2547
  "provides": [],
2344
2548
  "internal_calls": [],
2345
- "enforcement": {"level": "none", "rules": []},
2549
+ "enforcement": {
2550
+ "level": "none",
2551
+ "rules": []
2552
+ },
2346
2553
  "triggers_after": []
2347
2554
  },
2348
2555
  "nexo_memory_observation_process": {
@@ -2352,7 +2559,10 @@
2352
2559
  "requires": [],
2353
2560
  "provides": [],
2354
2561
  "internal_calls": [],
2355
- "enforcement": {"level": "none", "rules": []},
2562
+ "enforcement": {
2563
+ "level": "none",
2564
+ "rules": []
2565
+ },
2356
2566
  "triggers_after": []
2357
2567
  },
2358
2568
  "nexo_memory_observation_stats": {
@@ -2362,31 +2572,14 @@
2362
2572
  "requires": [],
2363
2573
  "provides": [],
2364
2574
  "internal_calls": [],
2365
- "enforcement": {"level": "none", "rules": []},
2366
- "triggers_after": []
2367
- },
2368
- "nexo_memory_search": {
2369
- "description": "Search Memory Observations v2 with evidence refs",
2370
- "category": "memory",
2371
- "source": "server",
2372
- "requires": [],
2373
- "provides": [],
2374
- "internal_calls": [],
2375
- "enforcement": {"level": "none", "rules": []},
2376
- "triggers_after": []
2377
- },
2378
- "nexo_memory_timeline": {
2379
- "description": "Return a chronological Memory Observations v2 timeline",
2380
- "category": "memory",
2381
- "source": "server",
2382
- "requires": [],
2383
- "provides": [],
2384
- "internal_calls": [],
2385
- "enforcement": {"level": "none", "rules": []},
2575
+ "enforcement": {
2576
+ "level": "none",
2577
+ "rules": []
2578
+ },
2386
2579
  "triggers_after": []
2387
2580
  },
2388
- "nexo_memory_backend_status": {
2389
- "description": "Show active memory backend contract",
2581
+ "nexo_memory_recall": {
2582
+ "description": "High-level memory lookup wrapper",
2390
2583
  "category": "memory",
2391
2584
  "source": "plugin:memory_export",
2392
2585
  "requires": [],
@@ -2398,10 +2591,10 @@
2398
2591
  },
2399
2592
  "triggers_after": []
2400
2593
  },
2401
- "nexo_memory_export": {
2402
- "description": "Export markdown snapshot of memory layers",
2594
+ "nexo_memory_review_queue": {
2595
+ "description": "Show decisions/learnings due for review",
2403
2596
  "category": "memory",
2404
- "source": "plugin:memory_export",
2597
+ "source": "plugin:episodic_memory",
2405
2598
  "requires": [],
2406
2599
  "provides": [],
2407
2600
  "internal_calls": [],
@@ -2411,10 +2604,10 @@
2411
2604
  },
2412
2605
  "triggers_after": []
2413
2606
  },
2414
- "nexo_memory_recall": {
2415
- "description": "High-level memory lookup wrapper",
2607
+ "nexo_memory_search": {
2608
+ "description": "Search Memory Observations v2 with evidence refs",
2416
2609
  "category": "memory",
2417
- "source": "plugin:memory_export",
2610
+ "source": "server",
2418
2611
  "requires": [],
2419
2612
  "provides": [],
2420
2613
  "internal_calls": [],
@@ -2424,10 +2617,10 @@
2424
2617
  },
2425
2618
  "triggers_after": []
2426
2619
  },
2427
- "nexo_memory_review_queue": {
2428
- "description": "Show decisions/learnings due for review",
2620
+ "nexo_memory_timeline": {
2621
+ "description": "Return a chronological Memory Observations v2 timeline",
2429
2622
  "category": "memory",
2430
- "source": "plugin:episodic_memory",
2623
+ "source": "server",
2431
2624
  "requires": [],
2432
2625
  "provides": [],
2433
2626
  "internal_calls": [],
@@ -2658,123 +2851,6 @@
2658
2851
  },
2659
2852
  "triggers_after": []
2660
2853
  },
2661
- "nexo_automations_list": {
2662
- "description": "List operator-facing automations",
2663
- "category": "personal",
2664
- "source": "plugin:personal_scripts",
2665
- "requires": [],
2666
- "provides": [],
2667
- "internal_calls": [],
2668
- "enforcement": {
2669
- "level": "none",
2670
- "rules": []
2671
- },
2672
- "triggers_after": []
2673
- },
2674
- "nexo_automation_status": {
2675
- "description": "Read composed status for one automation",
2676
- "category": "personal",
2677
- "source": "plugin:personal_scripts",
2678
- "requires": [],
2679
- "provides": [],
2680
- "internal_calls": [],
2681
- "enforcement": {
2682
- "level": "none",
2683
- "rules": []
2684
- },
2685
- "triggers_after": []
2686
- },
2687
- "nexo_automation_enable": {
2688
- "description": "Enable one operator-facing automation",
2689
- "category": "personal",
2690
- "source": "plugin:personal_scripts",
2691
- "requires": [],
2692
- "provides": [],
2693
- "internal_calls": [],
2694
- "enforcement": {
2695
- "level": "none",
2696
- "rules": []
2697
- },
2698
- "triggers_after": []
2699
- },
2700
- "nexo_automation_disable": {
2701
- "description": "Disable one operator-facing automation",
2702
- "category": "personal",
2703
- "source": "plugin:personal_scripts",
2704
- "requires": [],
2705
- "provides": [],
2706
- "internal_calls": [],
2707
- "enforcement": {
2708
- "level": "none",
2709
- "rules": []
2710
- },
2711
- "triggers_after": []
2712
- },
2713
- "nexo_automation_instructions": {
2714
- "description": "Set or clear operator extra instructions for an automation",
2715
- "category": "personal",
2716
- "source": "plugin:personal_scripts",
2717
- "requires": [],
2718
- "provides": [],
2719
- "internal_calls": [],
2720
- "enforcement": {
2721
- "level": "none",
2722
- "rules": []
2723
- },
2724
- "triggers_after": []
2725
- },
2726
- "nexo_automation_schedule": {
2727
- "description": "Set or clear an automation cadence override",
2728
- "category": "personal",
2729
- "source": "plugin:personal_scripts",
2730
- "requires": [],
2731
- "provides": [],
2732
- "internal_calls": [],
2733
- "enforcement": {
2734
- "level": "none",
2735
- "rules": []
2736
- },
2737
- "triggers_after": []
2738
- },
2739
- "nexo_core_schedules_list": {
2740
- "description": "List structural core schedules whose cadence can be tuned",
2741
- "category": "personal",
2742
- "source": "plugin:personal_scripts",
2743
- "requires": [],
2744
- "provides": [],
2745
- "internal_calls": [],
2746
- "enforcement": {
2747
- "level": "none",
2748
- "rules": []
2749
- },
2750
- "triggers_after": []
2751
- },
2752
- "nexo_core_schedule_status": {
2753
- "description": "Read the status of one structural core schedule",
2754
- "category": "personal",
2755
- "source": "plugin:personal_scripts",
2756
- "requires": [],
2757
- "provides": [],
2758
- "internal_calls": [],
2759
- "enforcement": {
2760
- "level": "none",
2761
- "rules": []
2762
- },
2763
- "triggers_after": []
2764
- },
2765
- "nexo_core_schedule_set": {
2766
- "description": "Set or clear a structural core schedule cadence override",
2767
- "category": "personal",
2768
- "source": "plugin:personal_scripts",
2769
- "requires": [],
2770
- "provides": [],
2771
- "internal_calls": [],
2772
- "enforcement": {
2773
- "level": "none",
2774
- "rules": []
2775
- },
2776
- "triggers_after": []
2777
- },
2778
2854
  "nexo_plugin_list": {
2779
2855
  "description": "List loaded plugins and tools",
2780
2856
  "category": "plugin",