instar 1.3.1319 → 1.3.1321
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/dist/commands/machine.d.ts +20 -0
- package/dist/commands/machine.d.ts.map +1 -1
- package/dist/commands/machine.js +135 -21
- package/dist/commands/machine.js.map +1 -1
- package/dist/commands/server.d.ts.map +1 -1
- package/dist/commands/server.js +86 -5
- package/dist/commands/server.js.map +1 -1
- package/dist/commands/setup.d.ts +6 -0
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +8 -0
- package/dist/commands/setup.js.map +1 -1
- package/dist/config/ConfigDefaults.d.ts.map +1 -1
- package/dist/config/ConfigDefaults.js +6 -0
- package/dist/config/ConfigDefaults.js.map +1 -1
- package/dist/core/Config.d.ts +12 -0
- package/dist/core/Config.d.ts.map +1 -1
- package/dist/core/Config.js +38 -1
- package/dist/core/Config.js.map +1 -1
- package/dist/core/JevReviewFlagShadow.d.ts +161 -0
- package/dist/core/JevReviewFlagShadow.d.ts.map +1 -0
- package/dist/core/JevReviewFlagShadow.js +456 -0
- package/dist/core/JevReviewFlagShadow.js.map +1 -0
- package/dist/core/MachineIdentity.d.ts +10 -0
- package/dist/core/MachineIdentity.d.ts.map +1 -1
- package/dist/core/MachineIdentity.js +15 -4
- package/dist/core/MachineIdentity.js.map +1 -1
- package/dist/core/PostUpdateMigrator.d.ts +8 -0
- package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
- package/dist/core/PostUpdateMigrator.js +138 -3
- package/dist/core/PostUpdateMigrator.js.map +1 -1
- package/dist/core/SubscriptionPool.d.ts +30 -0
- package/dist/core/SubscriptionPool.d.ts.map +1 -1
- package/dist/core/SubscriptionPool.js +52 -1
- package/dist/core/SubscriptionPool.js.map +1 -1
- package/dist/core/SubscriptionPoolAuthority.d.ts +33 -0
- package/dist/core/SubscriptionPoolAuthority.d.ts.map +1 -1
- package/dist/core/SubscriptionPoolAuthority.js +150 -0
- package/dist/core/SubscriptionPoolAuthority.js.map +1 -1
- package/dist/core/devGatedFeatures.d.ts.map +1 -1
- package/dist/core/devGatedFeatures.js +6 -0
- package/dist/core/devGatedFeatures.js.map +1 -1
- package/dist/core/shutdownDeadline.d.ts +26 -0
- package/dist/core/shutdownDeadline.d.ts.map +1 -0
- package/dist/core/shutdownDeadline.js +25 -0
- package/dist/core/shutdownDeadline.js.map +1 -0
- package/dist/core/types.d.ts +18 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/data/standards-guard-index.json +1 -1
- package/dist/data/standards-guard-index.meta.json +2 -2
- package/dist/data/standards-registry.meta.json +1 -1
- package/dist/messaging/TelegramAdapter.d.ts.map +1 -1
- package/dist/messaging/TelegramAdapter.js +12 -1
- package/dist/messaging/TelegramAdapter.js.map +1 -1
- package/dist/monitoring/CodexRolloutScan.worker.d.ts +16 -0
- package/dist/monitoring/CodexRolloutScan.worker.d.ts.map +1 -0
- package/dist/monitoring/CodexRolloutScan.worker.js +49 -0
- package/dist/monitoring/CodexRolloutScan.worker.js.map +1 -0
- package/dist/monitoring/QuotaCollector.d.ts +8 -0
- package/dist/monitoring/QuotaCollector.d.ts.map +1 -1
- package/dist/monitoring/QuotaCollector.js +73 -32
- package/dist/monitoring/QuotaCollector.js.map +1 -1
- package/dist/monitoring/TokenLedger.d.ts +11 -1
- package/dist/monitoring/TokenLedger.d.ts.map +1 -1
- package/dist/monitoring/TokenLedger.js +79 -37
- package/dist/monitoring/TokenLedger.js.map +1 -1
- package/dist/scaffold/templates.d.ts +4 -0
- package/dist/scaffold/templates.d.ts.map +1 -1
- package/dist/scaffold/templates.js +17 -4
- package/dist/scaffold/templates.js.map +1 -1
- package/dist/server/CapabilityIndex.d.ts.map +1 -1
- package/dist/server/CapabilityIndex.js +1 -0
- package/dist/server/CapabilityIndex.js.map +1 -1
- package/dist/server/machineRoutes.d.ts.map +1 -1
- package/dist/server/machineRoutes.js +16 -0
- package/dist/server/machineRoutes.js.map +1 -1
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/routes.js +16 -3
- package/dist/server/routes.js.map +1 -1
- package/dist/threadline/ThreadlineBootstrap.d.ts +9 -0
- package/dist/threadline/ThreadlineBootstrap.d.ts.map +1 -1
- package/dist/threadline/ThreadlineBootstrap.js +5 -1
- package/dist/threadline/ThreadlineBootstrap.js.map +1 -1
- package/dist/threadline/client/ThreadlineClient.d.ts +14 -0
- package/dist/threadline/client/ThreadlineClient.d.ts.map +1 -1
- package/dist/threadline/client/ThreadlineClient.js +18 -0
- package/dist/threadline/client/ThreadlineClient.js.map +1 -1
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +64 -64
- package/src/data/standards-guard-index.json +1 -1
- package/src/data/standards-guard-index.meta.json +2 -2
- package/src/data/standards-registry.meta.json +1 -1
- package/src/scaffold/templates.ts +18 -4
- package/upgrades/1.3.1320.md +47 -0
- package/upgrades/1.3.1321.md +153 -0
- package/upgrades/luna-stack-ci-ratchets.eli16.md +9 -0
- package/upgrades/side-effects/agent-health-reopen-duplicate.md +58 -0
- package/upgrades/side-effects/auth-read-after-secret-migration.md +56 -0
- package/upgrades/side-effects/codex-rollout-scan-yield.md +58 -0
- package/upgrades/side-effects/jev-review-flag-shadow.md +175 -0
- package/upgrades/side-effects/join-autostart-lifeline.md +59 -0
- package/upgrades/side-effects/join-refuses-copied-identity.md +62 -0
- package/upgrades/side-effects/luna-stack-ci-ratchets.md +24 -0
- package/upgrades/side-effects/quota-jsonl-off-event-loop.md +54 -0
- package/upgrades/side-effects/second-machine-copied-config.md +62 -0
- package/upgrades/side-effects/shutdown-hard-deadline.md +62 -0
- package/upgrades/side-effects/subscription-pool-legacy-migrate.md +68 -0
- package/upgrades/side-effects/threadline-relay-standby.md +54 -0
- package/upgrades/side-effects/threadline-wire-thread-id.md +60 -0
- package/upgrades/side-effects/wakeup-targets-awake-machine.md +58 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "./builtin-manifest.schema.json",
|
|
3
3
|
"schemaVersion": 1,
|
|
4
|
-
"generatedAt": "2026-10-
|
|
5
|
-
"instarVersion": "1.3.
|
|
4
|
+
"generatedAt": "2026-10-06T19:27:33.914Z",
|
|
5
|
+
"instarVersion": "1.3.1321",
|
|
6
6
|
"entryCount": 203,
|
|
7
7
|
"entries": {
|
|
8
8
|
"hook:session-start": {
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"domain": "identity",
|
|
12
12
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
13
13
|
"installedPath": ".instar/hooks/instar/session-start.sh",
|
|
14
|
-
"contentHash": "
|
|
14
|
+
"contentHash": "1944edf03d572006dca750f8d935cbbfb6982b0527ae7f112abfcd3f94dedda6",
|
|
15
15
|
"since": "2025-01-01"
|
|
16
16
|
},
|
|
17
17
|
"hook:dangerous-command-guard": {
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"domain": "safety",
|
|
21
21
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
22
22
|
"installedPath": ".instar/hooks/instar/dangerous-command-guard.sh",
|
|
23
|
-
"contentHash": "
|
|
23
|
+
"contentHash": "1944edf03d572006dca750f8d935cbbfb6982b0527ae7f112abfcd3f94dedda6",
|
|
24
24
|
"since": "2025-01-01"
|
|
25
25
|
},
|
|
26
26
|
"hook:grounding-before-messaging": {
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"domain": "safety",
|
|
30
30
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
31
31
|
"installedPath": ".instar/hooks/instar/grounding-before-messaging.sh",
|
|
32
|
-
"contentHash": "
|
|
32
|
+
"contentHash": "1944edf03d572006dca750f8d935cbbfb6982b0527ae7f112abfcd3f94dedda6",
|
|
33
33
|
"since": "2025-01-01"
|
|
34
34
|
},
|
|
35
35
|
"hook:compaction-recovery": {
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"domain": "identity",
|
|
39
39
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
40
40
|
"installedPath": ".instar/hooks/instar/compaction-recovery.sh",
|
|
41
|
-
"contentHash": "
|
|
41
|
+
"contentHash": "1944edf03d572006dca750f8d935cbbfb6982b0527ae7f112abfcd3f94dedda6",
|
|
42
42
|
"since": "2025-01-01"
|
|
43
43
|
},
|
|
44
44
|
"hook:external-operation-gate": {
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"domain": "safety",
|
|
48
48
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
49
49
|
"installedPath": ".instar/hooks/instar/external-operation-gate.js",
|
|
50
|
-
"contentHash": "
|
|
50
|
+
"contentHash": "1944edf03d572006dca750f8d935cbbfb6982b0527ae7f112abfcd3f94dedda6",
|
|
51
51
|
"since": "2025-01-01"
|
|
52
52
|
},
|
|
53
53
|
"hook:deferral-detector": {
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"domain": "safety",
|
|
57
57
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
58
58
|
"installedPath": ".instar/hooks/instar/deferral-detector.js",
|
|
59
|
-
"contentHash": "
|
|
59
|
+
"contentHash": "1944edf03d572006dca750f8d935cbbfb6982b0527ae7f112abfcd3f94dedda6",
|
|
60
60
|
"since": "2025-01-01"
|
|
61
61
|
},
|
|
62
62
|
"hook:self-stop-guard": {
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
"domain": "coherence",
|
|
66
66
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
67
67
|
"installedPath": ".instar/hooks/instar/self-stop-guard.js",
|
|
68
|
-
"contentHash": "
|
|
68
|
+
"contentHash": "1944edf03d572006dca750f8d935cbbfb6982b0527ae7f112abfcd3f94dedda6",
|
|
69
69
|
"since": "2025-01-01"
|
|
70
70
|
},
|
|
71
71
|
"hook:post-action-reflection": {
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
"domain": "evolution",
|
|
75
75
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
76
76
|
"installedPath": ".instar/hooks/instar/post-action-reflection.js",
|
|
77
|
-
"contentHash": "
|
|
77
|
+
"contentHash": "1944edf03d572006dca750f8d935cbbfb6982b0527ae7f112abfcd3f94dedda6",
|
|
78
78
|
"since": "2025-01-01"
|
|
79
79
|
},
|
|
80
80
|
"hook:external-communication-guard": {
|
|
@@ -83,7 +83,7 @@
|
|
|
83
83
|
"domain": "safety",
|
|
84
84
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
85
85
|
"installedPath": ".instar/hooks/instar/external-communication-guard.js",
|
|
86
|
-
"contentHash": "
|
|
86
|
+
"contentHash": "1944edf03d572006dca750f8d935cbbfb6982b0527ae7f112abfcd3f94dedda6",
|
|
87
87
|
"since": "2025-01-01"
|
|
88
88
|
},
|
|
89
89
|
"hook:telegram-origin-guard": {
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
"domain": "coherence",
|
|
102
102
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
103
103
|
"installedPath": ".instar/hooks/instar/scope-coherence-collector.js",
|
|
104
|
-
"contentHash": "
|
|
104
|
+
"contentHash": "1944edf03d572006dca750f8d935cbbfb6982b0527ae7f112abfcd3f94dedda6",
|
|
105
105
|
"since": "2025-01-01"
|
|
106
106
|
},
|
|
107
107
|
"hook:scope-coherence-checkpoint": {
|
|
@@ -110,7 +110,7 @@
|
|
|
110
110
|
"domain": "coherence",
|
|
111
111
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
112
112
|
"installedPath": ".instar/hooks/instar/scope-coherence-checkpoint.js",
|
|
113
|
-
"contentHash": "
|
|
113
|
+
"contentHash": "1944edf03d572006dca750f8d935cbbfb6982b0527ae7f112abfcd3f94dedda6",
|
|
114
114
|
"since": "2025-01-01"
|
|
115
115
|
},
|
|
116
116
|
"hook:free-text-guard": {
|
|
@@ -119,7 +119,7 @@
|
|
|
119
119
|
"domain": "safety",
|
|
120
120
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
121
121
|
"installedPath": ".instar/hooks/instar/free-text-guard.sh",
|
|
122
|
-
"contentHash": "
|
|
122
|
+
"contentHash": "1944edf03d572006dca750f8d935cbbfb6982b0527ae7f112abfcd3f94dedda6",
|
|
123
123
|
"since": "2025-01-01"
|
|
124
124
|
},
|
|
125
125
|
"hook:claim-intercept": {
|
|
@@ -128,7 +128,7 @@
|
|
|
128
128
|
"domain": "coherence",
|
|
129
129
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
130
130
|
"installedPath": ".instar/hooks/instar/claim-intercept.js",
|
|
131
|
-
"contentHash": "
|
|
131
|
+
"contentHash": "1944edf03d572006dca750f8d935cbbfb6982b0527ae7f112abfcd3f94dedda6",
|
|
132
132
|
"since": "2025-01-01"
|
|
133
133
|
},
|
|
134
134
|
"hook:claim-intercept-response": {
|
|
@@ -137,7 +137,7 @@
|
|
|
137
137
|
"domain": "coherence",
|
|
138
138
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
139
139
|
"installedPath": ".instar/hooks/instar/claim-intercept-response.js",
|
|
140
|
-
"contentHash": "
|
|
140
|
+
"contentHash": "1944edf03d572006dca750f8d935cbbfb6982b0527ae7f112abfcd3f94dedda6",
|
|
141
141
|
"since": "2025-01-01"
|
|
142
142
|
},
|
|
143
143
|
"hook:stop-gate-router": {
|
|
@@ -146,7 +146,7 @@
|
|
|
146
146
|
"domain": "safety",
|
|
147
147
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
148
148
|
"installedPath": ".instar/hooks/instar/stop-gate-router.js",
|
|
149
|
-
"contentHash": "
|
|
149
|
+
"contentHash": "1944edf03d572006dca750f8d935cbbfb6982b0527ae7f112abfcd3f94dedda6",
|
|
150
150
|
"since": "2025-01-01"
|
|
151
151
|
},
|
|
152
152
|
"hook:auto-approve-permissions": {
|
|
@@ -155,7 +155,7 @@
|
|
|
155
155
|
"domain": "safety",
|
|
156
156
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
157
157
|
"installedPath": ".instar/hooks/instar/auto-approve-permissions.js",
|
|
158
|
-
"contentHash": "
|
|
158
|
+
"contentHash": "1944edf03d572006dca750f8d935cbbfb6982b0527ae7f112abfcd3f94dedda6",
|
|
159
159
|
"since": "2025-01-01"
|
|
160
160
|
},
|
|
161
161
|
"job:health-check": {
|
|
@@ -427,7 +427,7 @@
|
|
|
427
427
|
"type": "route-group",
|
|
428
428
|
"domain": "monitoring",
|
|
429
429
|
"sourcePath": "src/server/routes.ts",
|
|
430
|
-
"contentHash": "
|
|
430
|
+
"contentHash": "19ee4ce028fd5b4d4c0fea0797d6d1efaac5eaaf8f21fbd6b1b28f22cf887e3e",
|
|
431
431
|
"since": "2025-01-01"
|
|
432
432
|
},
|
|
433
433
|
"route-group:agents": {
|
|
@@ -435,7 +435,7 @@
|
|
|
435
435
|
"type": "route-group",
|
|
436
436
|
"domain": "sessions",
|
|
437
437
|
"sourcePath": "src/server/routes.ts",
|
|
438
|
-
"contentHash": "
|
|
438
|
+
"contentHash": "19ee4ce028fd5b4d4c0fea0797d6d1efaac5eaaf8f21fbd6b1b28f22cf887e3e",
|
|
439
439
|
"since": "2025-01-01"
|
|
440
440
|
},
|
|
441
441
|
"route-group:backups": {
|
|
@@ -443,7 +443,7 @@
|
|
|
443
443
|
"type": "route-group",
|
|
444
444
|
"domain": "operations",
|
|
445
445
|
"sourcePath": "src/server/routes.ts",
|
|
446
|
-
"contentHash": "
|
|
446
|
+
"contentHash": "19ee4ce028fd5b4d4c0fea0797d6d1efaac5eaaf8f21fbd6b1b28f22cf887e3e",
|
|
447
447
|
"since": "2025-01-01"
|
|
448
448
|
},
|
|
449
449
|
"route-group:git": {
|
|
@@ -451,7 +451,7 @@
|
|
|
451
451
|
"type": "route-group",
|
|
452
452
|
"domain": "coordination",
|
|
453
453
|
"sourcePath": "src/server/routes.ts",
|
|
454
|
-
"contentHash": "
|
|
454
|
+
"contentHash": "19ee4ce028fd5b4d4c0fea0797d6d1efaac5eaaf8f21fbd6b1b28f22cf887e3e",
|
|
455
455
|
"since": "2025-01-01"
|
|
456
456
|
},
|
|
457
457
|
"route-group:memory": {
|
|
@@ -459,7 +459,7 @@
|
|
|
459
459
|
"type": "route-group",
|
|
460
460
|
"domain": "memory",
|
|
461
461
|
"sourcePath": "src/server/routes.ts",
|
|
462
|
-
"contentHash": "
|
|
462
|
+
"contentHash": "19ee4ce028fd5b4d4c0fea0797d6d1efaac5eaaf8f21fbd6b1b28f22cf887e3e",
|
|
463
463
|
"since": "2025-01-01"
|
|
464
464
|
},
|
|
465
465
|
"route-group:semantic": {
|
|
@@ -467,7 +467,7 @@
|
|
|
467
467
|
"type": "route-group",
|
|
468
468
|
"domain": "memory",
|
|
469
469
|
"sourcePath": "src/server/routes.ts",
|
|
470
|
-
"contentHash": "
|
|
470
|
+
"contentHash": "19ee4ce028fd5b4d4c0fea0797d6d1efaac5eaaf8f21fbd6b1b28f22cf887e3e",
|
|
471
471
|
"since": "2025-01-01"
|
|
472
472
|
},
|
|
473
473
|
"route-group:status": {
|
|
@@ -475,7 +475,7 @@
|
|
|
475
475
|
"type": "route-group",
|
|
476
476
|
"domain": "monitoring",
|
|
477
477
|
"sourcePath": "src/server/routes.ts",
|
|
478
|
-
"contentHash": "
|
|
478
|
+
"contentHash": "19ee4ce028fd5b4d4c0fea0797d6d1efaac5eaaf8f21fbd6b1b28f22cf887e3e",
|
|
479
479
|
"since": "2025-01-01"
|
|
480
480
|
},
|
|
481
481
|
"route-group:capabilities": {
|
|
@@ -483,7 +483,7 @@
|
|
|
483
483
|
"type": "route-group",
|
|
484
484
|
"domain": "mapping",
|
|
485
485
|
"sourcePath": "src/server/routes.ts",
|
|
486
|
-
"contentHash": "
|
|
486
|
+
"contentHash": "19ee4ce028fd5b4d4c0fea0797d6d1efaac5eaaf8f21fbd6b1b28f22cf887e3e",
|
|
487
487
|
"since": "2025-01-01"
|
|
488
488
|
},
|
|
489
489
|
"route-group:project-map": {
|
|
@@ -491,7 +491,7 @@
|
|
|
491
491
|
"type": "route-group",
|
|
492
492
|
"domain": "mapping",
|
|
493
493
|
"sourcePath": "src/server/routes.ts",
|
|
494
|
-
"contentHash": "
|
|
494
|
+
"contentHash": "19ee4ce028fd5b4d4c0fea0797d6d1efaac5eaaf8f21fbd6b1b28f22cf887e3e",
|
|
495
495
|
"since": "2025-01-01"
|
|
496
496
|
},
|
|
497
497
|
"route-group:coherence": {
|
|
@@ -499,7 +499,7 @@
|
|
|
499
499
|
"type": "route-group",
|
|
500
500
|
"domain": "coherence",
|
|
501
501
|
"sourcePath": "src/server/routes.ts",
|
|
502
|
-
"contentHash": "
|
|
502
|
+
"contentHash": "19ee4ce028fd5b4d4c0fea0797d6d1efaac5eaaf8f21fbd6b1b28f22cf887e3e",
|
|
503
503
|
"since": "2025-01-01"
|
|
504
504
|
},
|
|
505
505
|
"route-group:topic-bindings": {
|
|
@@ -507,7 +507,7 @@
|
|
|
507
507
|
"type": "route-group",
|
|
508
508
|
"domain": "sessions",
|
|
509
509
|
"sourcePath": "src/server/routes.ts",
|
|
510
|
-
"contentHash": "
|
|
510
|
+
"contentHash": "19ee4ce028fd5b4d4c0fea0797d6d1efaac5eaaf8f21fbd6b1b28f22cf887e3e",
|
|
511
511
|
"since": "2025-01-01"
|
|
512
512
|
},
|
|
513
513
|
"route-group:context": {
|
|
@@ -515,7 +515,7 @@
|
|
|
515
515
|
"type": "route-group",
|
|
516
516
|
"domain": "context",
|
|
517
517
|
"sourcePath": "src/server/routes.ts",
|
|
518
|
-
"contentHash": "
|
|
518
|
+
"contentHash": "19ee4ce028fd5b4d4c0fea0797d6d1efaac5eaaf8f21fbd6b1b28f22cf887e3e",
|
|
519
519
|
"since": "2025-01-01"
|
|
520
520
|
},
|
|
521
521
|
"route-group:scope-coherence": {
|
|
@@ -523,7 +523,7 @@
|
|
|
523
523
|
"type": "route-group",
|
|
524
524
|
"domain": "coherence",
|
|
525
525
|
"sourcePath": "src/server/routes.ts",
|
|
526
|
-
"contentHash": "
|
|
526
|
+
"contentHash": "19ee4ce028fd5b4d4c0fea0797d6d1efaac5eaaf8f21fbd6b1b28f22cf887e3e",
|
|
527
527
|
"since": "2025-01-01"
|
|
528
528
|
},
|
|
529
529
|
"route-group:canonical-state": {
|
|
@@ -531,7 +531,7 @@
|
|
|
531
531
|
"type": "route-group",
|
|
532
532
|
"domain": "state",
|
|
533
533
|
"sourcePath": "src/server/routes.ts",
|
|
534
|
-
"contentHash": "
|
|
534
|
+
"contentHash": "19ee4ce028fd5b4d4c0fea0797d6d1efaac5eaaf8f21fbd6b1b28f22cf887e3e",
|
|
535
535
|
"since": "2025-01-01"
|
|
536
536
|
},
|
|
537
537
|
"route-group:ci": {
|
|
@@ -539,7 +539,7 @@
|
|
|
539
539
|
"type": "route-group",
|
|
540
540
|
"domain": "monitoring",
|
|
541
541
|
"sourcePath": "src/server/routes.ts",
|
|
542
|
-
"contentHash": "
|
|
542
|
+
"contentHash": "19ee4ce028fd5b4d4c0fea0797d6d1efaac5eaaf8f21fbd6b1b28f22cf887e3e",
|
|
543
543
|
"since": "2025-01-01"
|
|
544
544
|
},
|
|
545
545
|
"route-group:sessions": {
|
|
@@ -547,7 +547,7 @@
|
|
|
547
547
|
"type": "route-group",
|
|
548
548
|
"domain": "sessions",
|
|
549
549
|
"sourcePath": "src/server/routes.ts",
|
|
550
|
-
"contentHash": "
|
|
550
|
+
"contentHash": "19ee4ce028fd5b4d4c0fea0797d6d1efaac5eaaf8f21fbd6b1b28f22cf887e3e",
|
|
551
551
|
"since": "2025-01-01"
|
|
552
552
|
},
|
|
553
553
|
"route-group:jobs": {
|
|
@@ -555,7 +555,7 @@
|
|
|
555
555
|
"type": "route-group",
|
|
556
556
|
"domain": "scheduling",
|
|
557
557
|
"sourcePath": "src/server/routes.ts",
|
|
558
|
-
"contentHash": "
|
|
558
|
+
"contentHash": "19ee4ce028fd5b4d4c0fea0797d6d1efaac5eaaf8f21fbd6b1b28f22cf887e3e",
|
|
559
559
|
"since": "2025-01-01"
|
|
560
560
|
},
|
|
561
561
|
"route-group:skip-ledger": {
|
|
@@ -563,7 +563,7 @@
|
|
|
563
563
|
"type": "route-group",
|
|
564
564
|
"domain": "scheduling",
|
|
565
565
|
"sourcePath": "src/server/routes.ts",
|
|
566
|
-
"contentHash": "
|
|
566
|
+
"contentHash": "19ee4ce028fd5b4d4c0fea0797d6d1efaac5eaaf8f21fbd6b1b28f22cf887e3e",
|
|
567
567
|
"since": "2025-01-01"
|
|
568
568
|
},
|
|
569
569
|
"route-group:telegram": {
|
|
@@ -571,7 +571,7 @@
|
|
|
571
571
|
"type": "route-group",
|
|
572
572
|
"domain": "communication",
|
|
573
573
|
"sourcePath": "src/server/routes.ts",
|
|
574
|
-
"contentHash": "
|
|
574
|
+
"contentHash": "19ee4ce028fd5b4d4c0fea0797d6d1efaac5eaaf8f21fbd6b1b28f22cf887e3e",
|
|
575
575
|
"since": "2025-01-01"
|
|
576
576
|
},
|
|
577
577
|
"route-group:attention": {
|
|
@@ -579,7 +579,7 @@
|
|
|
579
579
|
"type": "route-group",
|
|
580
580
|
"domain": "communication",
|
|
581
581
|
"sourcePath": "src/server/routes.ts",
|
|
582
|
-
"contentHash": "
|
|
582
|
+
"contentHash": "19ee4ce028fd5b4d4c0fea0797d6d1efaac5eaaf8f21fbd6b1b28f22cf887e3e",
|
|
583
583
|
"since": "2025-01-01"
|
|
584
584
|
},
|
|
585
585
|
"route-group:relationships": {
|
|
@@ -587,7 +587,7 @@
|
|
|
587
587
|
"type": "route-group",
|
|
588
588
|
"domain": "relationships",
|
|
589
589
|
"sourcePath": "src/server/routes.ts",
|
|
590
|
-
"contentHash": "
|
|
590
|
+
"contentHash": "19ee4ce028fd5b4d4c0fea0797d6d1efaac5eaaf8f21fbd6b1b28f22cf887e3e",
|
|
591
591
|
"since": "2025-01-01"
|
|
592
592
|
},
|
|
593
593
|
"route-group:feedback": {
|
|
@@ -595,7 +595,7 @@
|
|
|
595
595
|
"type": "route-group",
|
|
596
596
|
"domain": "feedback",
|
|
597
597
|
"sourcePath": "src/server/routes.ts",
|
|
598
|
-
"contentHash": "
|
|
598
|
+
"contentHash": "19ee4ce028fd5b4d4c0fea0797d6d1efaac5eaaf8f21fbd6b1b28f22cf887e3e",
|
|
599
599
|
"since": "2025-01-01"
|
|
600
600
|
},
|
|
601
601
|
"route-group:updates": {
|
|
@@ -603,7 +603,7 @@
|
|
|
603
603
|
"type": "route-group",
|
|
604
604
|
"domain": "updates",
|
|
605
605
|
"sourcePath": "src/server/routes.ts",
|
|
606
|
-
"contentHash": "
|
|
606
|
+
"contentHash": "19ee4ce028fd5b4d4c0fea0797d6d1efaac5eaaf8f21fbd6b1b28f22cf887e3e",
|
|
607
607
|
"since": "2025-01-01"
|
|
608
608
|
},
|
|
609
609
|
"route-group:dispatches": {
|
|
@@ -611,7 +611,7 @@
|
|
|
611
611
|
"type": "route-group",
|
|
612
612
|
"domain": "dispatches",
|
|
613
613
|
"sourcePath": "src/server/routes.ts",
|
|
614
|
-
"contentHash": "
|
|
614
|
+
"contentHash": "19ee4ce028fd5b4d4c0fea0797d6d1efaac5eaaf8f21fbd6b1b28f22cf887e3e",
|
|
615
615
|
"since": "2025-01-01"
|
|
616
616
|
},
|
|
617
617
|
"route-group:quota": {
|
|
@@ -619,7 +619,7 @@
|
|
|
619
619
|
"type": "route-group",
|
|
620
620
|
"domain": "monitoring",
|
|
621
621
|
"sourcePath": "src/server/routes.ts",
|
|
622
|
-
"contentHash": "
|
|
622
|
+
"contentHash": "19ee4ce028fd5b4d4c0fea0797d6d1efaac5eaaf8f21fbd6b1b28f22cf887e3e",
|
|
623
623
|
"since": "2025-01-01"
|
|
624
624
|
},
|
|
625
625
|
"route-group:publishing": {
|
|
@@ -627,7 +627,7 @@
|
|
|
627
627
|
"type": "route-group",
|
|
628
628
|
"domain": "publishing",
|
|
629
629
|
"sourcePath": "src/server/routes.ts",
|
|
630
|
-
"contentHash": "
|
|
630
|
+
"contentHash": "19ee4ce028fd5b4d4c0fea0797d6d1efaac5eaaf8f21fbd6b1b28f22cf887e3e",
|
|
631
631
|
"since": "2025-01-01"
|
|
632
632
|
},
|
|
633
633
|
"route-group:private-views": {
|
|
@@ -635,7 +635,7 @@
|
|
|
635
635
|
"type": "route-group",
|
|
636
636
|
"domain": "publishing",
|
|
637
637
|
"sourcePath": "src/server/routes.ts",
|
|
638
|
-
"contentHash": "
|
|
638
|
+
"contentHash": "19ee4ce028fd5b4d4c0fea0797d6d1efaac5eaaf8f21fbd6b1b28f22cf887e3e",
|
|
639
639
|
"since": "2025-01-01"
|
|
640
640
|
},
|
|
641
641
|
"route-group:tunnel": {
|
|
@@ -643,7 +643,7 @@
|
|
|
643
643
|
"type": "route-group",
|
|
644
644
|
"domain": "networking",
|
|
645
645
|
"sourcePath": "src/server/routes.ts",
|
|
646
|
-
"contentHash": "
|
|
646
|
+
"contentHash": "19ee4ce028fd5b4d4c0fea0797d6d1efaac5eaaf8f21fbd6b1b28f22cf887e3e",
|
|
647
647
|
"since": "2025-01-01"
|
|
648
648
|
},
|
|
649
649
|
"route-group:events": {
|
|
@@ -651,7 +651,7 @@
|
|
|
651
651
|
"type": "route-group",
|
|
652
652
|
"domain": "networking",
|
|
653
653
|
"sourcePath": "src/server/routes.ts",
|
|
654
|
-
"contentHash": "
|
|
654
|
+
"contentHash": "19ee4ce028fd5b4d4c0fea0797d6d1efaac5eaaf8f21fbd6b1b28f22cf887e3e",
|
|
655
655
|
"since": "2025-01-01"
|
|
656
656
|
},
|
|
657
657
|
"route-group:evolution": {
|
|
@@ -659,7 +659,7 @@
|
|
|
659
659
|
"type": "route-group",
|
|
660
660
|
"domain": "evolution",
|
|
661
661
|
"sourcePath": "src/server/routes.ts",
|
|
662
|
-
"contentHash": "
|
|
662
|
+
"contentHash": "19ee4ce028fd5b4d4c0fea0797d6d1efaac5eaaf8f21fbd6b1b28f22cf887e3e",
|
|
663
663
|
"since": "2025-01-01"
|
|
664
664
|
},
|
|
665
665
|
"route-group:watchdog": {
|
|
@@ -667,7 +667,7 @@
|
|
|
667
667
|
"type": "route-group",
|
|
668
668
|
"domain": "monitoring",
|
|
669
669
|
"sourcePath": "src/server/routes.ts",
|
|
670
|
-
"contentHash": "
|
|
670
|
+
"contentHash": "19ee4ce028fd5b4d4c0fea0797d6d1efaac5eaaf8f21fbd6b1b28f22cf887e3e",
|
|
671
671
|
"since": "2025-01-01"
|
|
672
672
|
},
|
|
673
673
|
"route-group:topic-memory": {
|
|
@@ -675,7 +675,7 @@
|
|
|
675
675
|
"type": "route-group",
|
|
676
676
|
"domain": "memory",
|
|
677
677
|
"sourcePath": "src/server/routes.ts",
|
|
678
|
-
"contentHash": "
|
|
678
|
+
"contentHash": "19ee4ce028fd5b4d4c0fea0797d6d1efaac5eaaf8f21fbd6b1b28f22cf887e3e",
|
|
679
679
|
"since": "2025-01-01"
|
|
680
680
|
},
|
|
681
681
|
"route-group:state-sync": {
|
|
@@ -683,7 +683,7 @@
|
|
|
683
683
|
"type": "route-group",
|
|
684
684
|
"domain": "coordination",
|
|
685
685
|
"sourcePath": "src/server/routes.ts",
|
|
686
|
-
"contentHash": "
|
|
686
|
+
"contentHash": "19ee4ce028fd5b4d4c0fea0797d6d1efaac5eaaf8f21fbd6b1b28f22cf887e3e",
|
|
687
687
|
"since": "2025-01-01"
|
|
688
688
|
},
|
|
689
689
|
"route-group:intent": {
|
|
@@ -691,7 +691,7 @@
|
|
|
691
691
|
"type": "route-group",
|
|
692
692
|
"domain": "intent",
|
|
693
693
|
"sourcePath": "src/server/routes.ts",
|
|
694
|
-
"contentHash": "
|
|
694
|
+
"contentHash": "19ee4ce028fd5b4d4c0fea0797d6d1efaac5eaaf8f21fbd6b1b28f22cf887e3e",
|
|
695
695
|
"since": "2025-01-01"
|
|
696
696
|
},
|
|
697
697
|
"route-group:triage": {
|
|
@@ -699,7 +699,7 @@
|
|
|
699
699
|
"type": "route-group",
|
|
700
700
|
"domain": "safety",
|
|
701
701
|
"sourcePath": "src/server/routes.ts",
|
|
702
|
-
"contentHash": "
|
|
702
|
+
"contentHash": "19ee4ce028fd5b4d4c0fea0797d6d1efaac5eaaf8f21fbd6b1b28f22cf887e3e",
|
|
703
703
|
"since": "2025-01-01"
|
|
704
704
|
},
|
|
705
705
|
"route-group:operations": {
|
|
@@ -707,7 +707,7 @@
|
|
|
707
707
|
"type": "route-group",
|
|
708
708
|
"domain": "safety",
|
|
709
709
|
"sourcePath": "src/server/routes.ts",
|
|
710
|
-
"contentHash": "
|
|
710
|
+
"contentHash": "19ee4ce028fd5b4d4c0fea0797d6d1efaac5eaaf8f21fbd6b1b28f22cf887e3e",
|
|
711
711
|
"since": "2025-01-01"
|
|
712
712
|
},
|
|
713
713
|
"route-group:sentinel": {
|
|
@@ -715,7 +715,7 @@
|
|
|
715
715
|
"type": "route-group",
|
|
716
716
|
"domain": "safety",
|
|
717
717
|
"sourcePath": "src/server/routes.ts",
|
|
718
|
-
"contentHash": "
|
|
718
|
+
"contentHash": "19ee4ce028fd5b4d4c0fea0797d6d1efaac5eaaf8f21fbd6b1b28f22cf887e3e",
|
|
719
719
|
"since": "2025-01-01"
|
|
720
720
|
},
|
|
721
721
|
"route-group:trust": {
|
|
@@ -723,7 +723,7 @@
|
|
|
723
723
|
"type": "route-group",
|
|
724
724
|
"domain": "safety",
|
|
725
725
|
"sourcePath": "src/server/routes.ts",
|
|
726
|
-
"contentHash": "
|
|
726
|
+
"contentHash": "19ee4ce028fd5b4d4c0fea0797d6d1efaac5eaaf8f21fbd6b1b28f22cf887e3e",
|
|
727
727
|
"since": "2025-01-01"
|
|
728
728
|
},
|
|
729
729
|
"route-group:monitoring": {
|
|
@@ -731,7 +731,7 @@
|
|
|
731
731
|
"type": "route-group",
|
|
732
732
|
"domain": "monitoring",
|
|
733
733
|
"sourcePath": "src/server/routes.ts",
|
|
734
|
-
"contentHash": "
|
|
734
|
+
"contentHash": "19ee4ce028fd5b4d4c0fea0797d6d1efaac5eaaf8f21fbd6b1b28f22cf887e3e",
|
|
735
735
|
"since": "2025-01-01"
|
|
736
736
|
},
|
|
737
737
|
"route-group:commitments": {
|
|
@@ -739,7 +739,7 @@
|
|
|
739
739
|
"type": "route-group",
|
|
740
740
|
"domain": "commitments",
|
|
741
741
|
"sourcePath": "src/server/routes.ts",
|
|
742
|
-
"contentHash": "
|
|
742
|
+
"contentHash": "19ee4ce028fd5b4d4c0fea0797d6d1efaac5eaaf8f21fbd6b1b28f22cf887e3e",
|
|
743
743
|
"since": "2025-01-01"
|
|
744
744
|
},
|
|
745
745
|
"route-group:episodes": {
|
|
@@ -747,7 +747,7 @@
|
|
|
747
747
|
"type": "route-group",
|
|
748
748
|
"domain": "memory",
|
|
749
749
|
"sourcePath": "src/server/routes.ts",
|
|
750
|
-
"contentHash": "
|
|
750
|
+
"contentHash": "19ee4ce028fd5b4d4c0fea0797d6d1efaac5eaaf8f21fbd6b1b28f22cf887e3e",
|
|
751
751
|
"since": "2025-01-01"
|
|
752
752
|
},
|
|
753
753
|
"route-group:messages": {
|
|
@@ -755,7 +755,7 @@
|
|
|
755
755
|
"type": "route-group",
|
|
756
756
|
"domain": "coordination",
|
|
757
757
|
"sourcePath": "src/server/routes.ts",
|
|
758
|
-
"contentHash": "
|
|
758
|
+
"contentHash": "19ee4ce028fd5b4d4c0fea0797d6d1efaac5eaaf8f21fbd6b1b28f22cf887e3e",
|
|
759
759
|
"since": "2025-01-01"
|
|
760
760
|
},
|
|
761
761
|
"route-group:system-reviews": {
|
|
@@ -763,7 +763,7 @@
|
|
|
763
763
|
"type": "route-group",
|
|
764
764
|
"domain": "monitoring",
|
|
765
765
|
"sourcePath": "src/server/routes.ts",
|
|
766
|
-
"contentHash": "
|
|
766
|
+
"contentHash": "19ee4ce028fd5b4d4c0fea0797d6d1efaac5eaaf8f21fbd6b1b28f22cf887e3e",
|
|
767
767
|
"since": "2025-01-01"
|
|
768
768
|
},
|
|
769
769
|
"route-group:machine-mesh": {
|
|
@@ -771,7 +771,7 @@
|
|
|
771
771
|
"type": "route-group",
|
|
772
772
|
"domain": "coordination",
|
|
773
773
|
"sourcePath": "src/server/machineRoutes.ts",
|
|
774
|
-
"contentHash": "
|
|
774
|
+
"contentHash": "5f478ae149912db1d765d8167180be481e8d3eb46a7360d3538c936b1a5f0e53",
|
|
775
775
|
"since": "2025-01-01"
|
|
776
776
|
},
|
|
777
777
|
"route-group:secret-drop": {
|
|
@@ -779,7 +779,7 @@
|
|
|
779
779
|
"type": "route-group",
|
|
780
780
|
"domain": "security",
|
|
781
781
|
"sourcePath": "src/server/routes.ts",
|
|
782
|
-
"contentHash": "
|
|
782
|
+
"contentHash": "19ee4ce028fd5b4d4c0fea0797d6d1efaac5eaaf8f21fbd6b1b28f22cf887e3e",
|
|
783
783
|
"since": "2025-01-01"
|
|
784
784
|
},
|
|
785
785
|
"cli:init": {
|
|
@@ -1571,7 +1571,7 @@
|
|
|
1571
1571
|
"type": "subsystem",
|
|
1572
1572
|
"domain": "updates",
|
|
1573
1573
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
1574
|
-
"contentHash": "
|
|
1574
|
+
"contentHash": "1944edf03d572006dca750f8d935cbbfb6982b0527ae7f112abfcd3f94dedda6",
|
|
1575
1575
|
"since": "2025-01-01"
|
|
1576
1576
|
},
|
|
1577
1577
|
"subsystem:scheduler": {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"generatedFrom": "source-tree",
|
|
4
4
|
"registrySha256": "35448db940d659661ebdfb09761439033f93a15157540ee2f6eecf825488e1e6",
|
|
5
|
-
"packageVersion": "1.3.
|
|
5
|
+
"packageVersion": "1.3.1321",
|
|
6
6
|
"guards": [
|
|
7
7
|
{
|
|
8
8
|
"ref": "docs/audits/phase-b/f10-triage.md",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"sha256": "
|
|
2
|
+
"sha256": "b1e3523bdc4928248eefaadbf30c38b85fa6bdc0bce7dd8c04f19e2e20a24fc3",
|
|
3
3
|
"registrySha256": "35448db940d659661ebdfb09761439033f93a15157540ee2f6eecf825488e1e6",
|
|
4
|
-
"packageVersion": "1.3.
|
|
4
|
+
"packageVersion": "1.3.1321"
|
|
5
5
|
}
|
|
@@ -370,10 +370,11 @@ This project uses instar for persistent agent capabilities. I am not a vanilla C
|
|
|
370
370
|
|
|
371
371
|
### API Authentication
|
|
372
372
|
|
|
373
|
-
Most server endpoints require an auth token
|
|
373
|
+
Most server endpoints require an auth token. Sessions already have it as \`$INSTAR_AUTH_TOKEN\`; outside a session, read it from the secret store (once \`instar pair\` has moved secrets out of \`.instar/config.json\`, the config only holds a placeholder there):
|
|
374
374
|
|
|
375
375
|
\`\`\`bash
|
|
376
|
-
AUTH
|
|
376
|
+
AUTH="\${INSTAR_AUTH_TOKEN:-$(node .instar/scripts/secret-get.mjs authToken 2>/dev/null)}"
|
|
377
|
+
AUTH="\${AUTH:-$(python3 -c "import json; v=json.load(open('.instar/config.json')).get('authToken',''); print(v if isinstance(v, str) else '')" 2>/dev/null)}"
|
|
377
378
|
\`\`\`
|
|
378
379
|
|
|
379
380
|
Then include in ALL API calls (except \`/health\`, which is public):
|
|
@@ -494,6 +495,7 @@ If one of my machines loses its local signing/encryption files, it can prove con
|
|
|
494
495
|
**Threadline Conversation Coherence (which machine holds each agent-to-agent thread)** — Every A2A conversation's lifecycle (started / tied to a topic / closed) is recorded content-free in the coherence journal and replicated, so ANY machine can answer "which machine holds the Dawn thread?" from local disk. When a topic moves machines, its conversation deliberately does NOT move (the relay address is part of that machine's identity) — the merged view names the holder honestly instead.
|
|
495
496
|
- The view: \`curl -H "Authorization: Bearer $AUTH" "http://localhost:${port}/threadline/conversations?scope=mesh"\` → \`{ conversations: [{ conversationId, peerFingerprint, holderMachineId, boundTopicId, status, stalenessMs }] }\` (own rows live; replica rows staleness-tagged; \`scope\` omitted = local only).
|
|
496
497
|
- **When to use** (PROACTIVE — this is the trigger): the user references an A2A thread that is NOT held on this machine ("what did Dawn and I agree?") → consult the mesh view and NAME THE HOLDER ("that conversation lives on <machine>, as of <staleness> ago") — never claim the thread doesn't exist. If the holder is offline, quote the relay's REAL bound: peers' messages queue in memory for ~24h and may then drop.
|
|
498
|
+
- **A quiet standby does not connect to the relay.** The relay admits ONE connection per agent identity, so on a multi-machine agent only the awake machine (the one owning the Telegram poll) connects; a machine with \`multiMachine.telegramPolling: false\` logs \`relay connection SUPPRESSED (standby)\` and keeps its local Threadline tools. If a peer says I am unreachable while I am the standby, that is this rule, not an outage — the awake machine answers for me.
|
|
497
499
|
|
|
498
500
|
**🩺 Agent Health lane (calm self-health notices)** — Routine notices about MY OWN internal state (a session that looks stuck, a peer I can't reach) land in ONE calm, named "🩺 Agent Health" Telegram topic — never topic-after-topic. Each is normal-priority (not a user-critical alert), names the topic in plain language (e.g. "the 'EXO 3.0' session", never \`topic-19077\`), ends with a next step you can just reply to, and same-session re-escalations are de-duped so the lane stays quiet. Ships **default-on, no config** (it's a delivery-shaper in code — it never gates or drops anything; every notice is still in the attention store). Tune via \`messaging[].config.agentHealthLane\` = \`{ "enabled": true, "topicName": "🩺 Agent Health", "dedupWindowMs": 1800000 }\` (set \`enabled:false\` for the old per-item-topic behavior). Proactive: user asks "what's this Agent Health topic?" / "why are my stale-session notices grouped?" → explain the calm lane (the StaleSessionBackstop now routes its "looks stuck" heads-up here at normal priority instead of spawning a topic each time).
|
|
499
501
|
|
|
@@ -531,6 +533,10 @@ With \`intelligence.jevMemoryPicker\` on (spec: jev-memory-picker.md), each sess
|
|
|
531
533
|
|
|
532
534
|
A dark research instrument (spec: jev-circles-shadow.md). Every 5 tool actions in a Claude Code session, the server reads the last 15 actions from that session's own transcript, secret-scrubs them, and asks Jev (TypeSafe) whether the agent is going in circles (the third try at the same fix for the same failure), polling, converging, or working normally. It only writes a content-free row to \`logs/jev-circles-shadow.jsonl\` (label, confidence, and whether a nudge WOULD have fired, with a 30-minute cooldown per session). It never sends anything to any session, user or topic. Summary: \`curl -H "Authorization: Bearer $AUTH" http://localhost:${port}/jev-circles/summary\` (checks run, would-nudges, per-session counts). Live on a development agent, dark on the fleet (omitted \`enabled\`); \`intelligence.jevCirclesShadow.enabled: false\` is the kill switch, read live. It needs the vault \`typesafe_api_key\` and has a daily call cap. If the user asks "would a going-in-circles nudge fire too often?" — this is the measurement; read the summary.
|
|
533
535
|
|
|
536
|
+
### Jev Review-Flag Shadow (log-only "does this reply need your review?" measurement)
|
|
537
|
+
|
|
538
|
+
A dark research instrument (spec: jev-review-flag-shadow.md). Once a minute the server reads the newest agent replies in its own Telegram history (\`.instar/telegram-messages.jsonl\`, conversational sends only, at most 30 minutes old), secret-scrubs each reply and the operator message it answers, and asks Jev (TypeSafe) whether the reply needs the operator's review (it claims done without evidence, asks the operator to decide or act, reports a costly step, or misses the ask), is fine, or cannot be told. It only writes a content-free row to \`logs/jev-review-flag-shadow.jsonl\` (the Telegram message ids, the label, P(needs review), and whether a flag WOULD have been shown). It never sends anything to any session, user or topic. Summary: \`curl -H "Authorization: Bearer $AUTH" http://localhost:${port}/jev-review-flag/summary\` (checks, would-flags, per-topic counts). Live on a development agent, dark on the fleet (omitted \`enabled\`); \`intelligence.jevReviewFlagShadow.enabled: false\` is the kill switch, read live. It needs the vault \`typesafe_api_key\` and has a daily call cap. If the user asks "could you tell which replies need my eyes?" — this is the measurement; read the summary.
|
|
539
|
+
|
|
534
540
|
**Token-Burn Alerts** — The "an unknown component is using more than a quarter of the agent's token budget" heads-up. The BurnDetector watches per-component 24h token share and the 1h spend rate, and alerts when one component is *actively* burning. Two things to know when a user asks about the noise:
|
|
535
541
|
- An alert only fires for a component spending **right now** (last-1h tokens above \`absoluteShareActivityFloorTokens\`, default 0 = any positive current spend). A finished heavy session — high 24h share but zero current rate — is NOT a burn and is silenced; this is the activity gate that closed the "consumed 67% of 24h spend … Projected 0 tokens" re-alarm-for-a-full-day bug. Most context-cache usage spread across many warm sessions never trips it.
|
|
536
542
|
- Silence or tune it in \`.instar/config.json\` → \`monitoring.burnDetection\`: \`{"enabled": false}\` is the master off-switch; \`absoluteShareThreshold\` (default 0.25), \`absoluteShareActivityFloorTokens\`, \`alertTopicId\` (where alerts post), \`autoThrottle\` / \`autoThrottleOnUnknown\` tune behaviour without code changes. Absence preserves the shipped defaults.
|
|
@@ -2229,10 +2235,11 @@ This project uses instar for persistent agent capabilities.
|
|
|
2229
2235
|
|
|
2230
2236
|
### API Authentication
|
|
2231
2237
|
|
|
2232
|
-
Most server endpoints require an auth token.
|
|
2238
|
+
Most server endpoints require an auth token. Sessions already have it as \`$INSTAR_AUTH_TOKEN\`; outside a session, read it from the secret store (once \`instar pair\` has moved secrets out of \`.instar/config.json\`, the config only holds a placeholder there):
|
|
2233
2239
|
|
|
2234
2240
|
\`\`\`bash
|
|
2235
|
-
AUTH
|
|
2241
|
+
AUTH="\${INSTAR_AUTH_TOKEN:-$(node .instar/scripts/secret-get.mjs authToken 2>/dev/null)}"
|
|
2242
|
+
AUTH="\${AUTH:-$(python3 -c "import json; v=json.load(open('.instar/config.json')).get('authToken',''); print(v if isinstance(v, str) else '')" 2>/dev/null)}"
|
|
2236
2243
|
\`\`\`
|
|
2237
2244
|
|
|
2238
2245
|
Then include in ALL API calls (except \`/health\`, which is public):
|
|
@@ -2407,6 +2414,13 @@ export function jevSignalLiveAwareness(): string {
|
|
|
2407
2414
|
return '\n\n' + '### Jev Artefact Signals (live advisory input to the tone gate)\n\nBefore an outbound message is judged, the tone gate lists "artefact signals" (a raw path, a command, a config key, an endpoint, code to paste, an env var, a cron line or internal slug) for its judge. With `intelligence.jevSignalLive` on (spec: jev-signal-live.md), Jev (TypeSafe) is asked those questions first, within about a second: where Jev is confident its answer decides that signal; where it is unsure, or slow, down, or erroring, the hand-written detectors decide exactly as before. A detector match that Jev confidently rejects is still shown to the judge, marked as a disagreement. It is advisory only: it takes effect only where the tone gate\'s B1–B7 rules are overridable (the advisory migration, with decision-quality recording live), never adds a hard block, and leaves the credential wall and the degraded-mode floor untouched. Live on a development agent, dark on the fleet (omitted `enabled`); `"enabled": false` is the kill switch, read live. It needs the vault `typesafe_api_key`; the text is secret-scrubbed before it leaves the machine. Each message\'s row in `logs/jev-signal-shadow.jsonl` records which source (jev / detector-fallback) decided each signal. If the user asks "what decides whether my messages are too technical?" — the judge decides; this only improves what it is shown.' + '\n';
|
|
2408
2415
|
}
|
|
2409
2416
|
|
|
2417
|
+
/** Jev review-flag-shadow awareness card (spec: jev-review-flag-shadow.md) —
|
|
2418
|
+
* appended by generateClaudeMd above and by PostUpdateMigrator.migrateClaudeMd
|
|
2419
|
+
* for existing agents (Agent Awareness + Migration Parity). */
|
|
2420
|
+
export function jevReviewFlagShadowAwareness(port: number): string {
|
|
2421
|
+
return '\n\n' + '### Jev Review-Flag Shadow (log-only "does this reply need your review?" measurement)\n\n' + 'A dark research instrument (spec: jev-review-flag-shadow.md). Once a minute the server reads the newest agent replies in its own Telegram history (`.instar/telegram-messages.jsonl`, conversational sends only, at most 30 minutes old), secret-scrubs each reply and the operator message it answers, and asks Jev (TypeSafe) whether the reply needs the operator\'s review (it claims done without evidence, asks the operator to decide or act, reports a costly step, or misses the ask), is fine, or cannot be told. It only writes a content-free row to `logs/jev-review-flag-shadow.jsonl` (the Telegram message ids, the label, P(needs review), and whether a flag WOULD have been shown). It never sends anything to any session, user or topic. Summary: `curl -H "Authorization: Bearer $AUTH" http://localhost:PORT/jev-review-flag/summary` (checks, would-flags, per-topic counts). Live on a development agent, dark on the fleet (omitted `enabled`); `intelligence.jevReviewFlagShadow.enabled: false` is the kill switch, read live. It needs the vault `typesafe_api_key` and has a daily call cap. If the user asks "could you tell which replies need my eyes?" — this is the measurement; read the summary.'.replace('PORT', String(port)) + '\n';
|
|
2422
|
+
}
|
|
2423
|
+
|
|
2410
2424
|
/** Jev circles-shadow awareness card (spec: jev-circles-shadow.md) — appended
|
|
2411
2425
|
* by generateClaudeMd above and by PostUpdateMigrator.migrateClaudeMd for
|
|
2412
2426
|
* existing agents (Agent Awareness + Migration Parity). */
|