instar 0.9.13 → 0.9.15
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/init.d.ts.map +1 -1
- package/dist/commands/init.js +217 -4
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/server.d.ts.map +1 -1
- package/dist/commands/server.js +72 -1
- package/dist/commands/server.js.map +1 -1
- package/dist/core/AdaptiveTrust.d.ts +180 -0
- package/dist/core/AdaptiveTrust.d.ts.map +1 -0
- package/dist/core/AdaptiveTrust.js +335 -0
- package/dist/core/AdaptiveTrust.js.map +1 -0
- package/dist/core/AutoUpdater.d.ts +10 -0
- package/dist/core/AutoUpdater.d.ts.map +1 -1
- package/dist/core/AutoUpdater.js +34 -0
- package/dist/core/AutoUpdater.js.map +1 -1
- package/dist/core/ExternalOperationGate.d.ts +204 -0
- package/dist/core/ExternalOperationGate.d.ts.map +1 -0
- package/dist/core/ExternalOperationGate.js +410 -0
- package/dist/core/ExternalOperationGate.js.map +1 -0
- package/dist/core/MessageSentinel.d.ts +116 -0
- package/dist/core/MessageSentinel.d.ts.map +1 -0
- package/dist/core/MessageSentinel.js +359 -0
- package/dist/core/MessageSentinel.js.map +1 -0
- package/dist/core/types.d.ts +45 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/index.d.ts +9 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/lifeline/ServerSupervisor.d.ts +11 -0
- package/dist/lifeline/ServerSupervisor.d.ts.map +1 -1
- package/dist/lifeline/ServerSupervisor.js +57 -0
- package/dist/lifeline/ServerSupervisor.js.map +1 -1
- package/dist/lifeline/TelegramLifeline.d.ts.map +1 -1
- package/dist/lifeline/TelegramLifeline.js +1 -0
- package/dist/lifeline/TelegramLifeline.js.map +1 -1
- package/dist/messaging/TelegramAdapter.d.ts +29 -0
- package/dist/messaging/TelegramAdapter.d.ts.map +1 -1
- package/dist/messaging/TelegramAdapter.js +174 -0
- package/dist/messaging/TelegramAdapter.js.map +1 -1
- package/dist/monitoring/SessionMonitor.d.ts +94 -0
- package/dist/monitoring/SessionMonitor.d.ts.map +1 -0
- package/dist/monitoring/SessionMonitor.js +221 -0
- package/dist/monitoring/SessionMonitor.js.map +1 -0
- package/dist/server/AgentServer.d.ts +3 -0
- package/dist/server/AgentServer.d.ts.map +1 -1
- package/dist/server/AgentServer.js +3 -0
- package/dist/server/AgentServer.js.map +1 -1
- package/dist/server/routes.d.ts +6 -0
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/routes.js +142 -0
- package/dist/server/routes.js.map +1 -1
- package/package.json +1 -1
- package/upgrades/0.9.14.md +23 -0
- package/upgrades/0.9.15.md +60 -0
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SessionMonitor — Proactive session health monitoring.
|
|
3
|
+
*
|
|
4
|
+
* Unlike StallTriageNurse (reactive — triggers on unanswered messages) or
|
|
5
|
+
* SessionWatchdog (reactive — triggers on stuck bash commands), the
|
|
6
|
+
* SessionMonitor is PROACTIVE: it periodically checks all active sessions
|
|
7
|
+
* and ensures users experience the responsiveness they'd expect.
|
|
8
|
+
*
|
|
9
|
+
* Responsibilities:
|
|
10
|
+
* 1. Detect idle sessions (no tmux output changes for extended periods)
|
|
11
|
+
* 2. Track session responsiveness (time between user message and agent reply)
|
|
12
|
+
* 3. Send proactive health updates to users (not overbearing)
|
|
13
|
+
* 4. Coordinate with StallTriageNurse for recovery when issues are found
|
|
14
|
+
*
|
|
15
|
+
* Design principle: Responsive and informative but not overbearing.
|
|
16
|
+
* One update per issue per session — not a stream of "still checking" messages.
|
|
17
|
+
*/
|
|
18
|
+
import { EventEmitter } from 'events';
|
|
19
|
+
const DEFAULT_CONFIG = {
|
|
20
|
+
enabled: true,
|
|
21
|
+
pollIntervalSec: 60,
|
|
22
|
+
idleThresholdMinutes: 15,
|
|
23
|
+
notificationCooldownMinutes: 30,
|
|
24
|
+
};
|
|
25
|
+
export class SessionMonitor extends EventEmitter {
|
|
26
|
+
config;
|
|
27
|
+
deps;
|
|
28
|
+
snapshots = new Map();
|
|
29
|
+
interval = null;
|
|
30
|
+
running = false;
|
|
31
|
+
constructor(deps, config) {
|
|
32
|
+
super();
|
|
33
|
+
this.deps = deps;
|
|
34
|
+
this.config = { ...DEFAULT_CONFIG, ...config };
|
|
35
|
+
}
|
|
36
|
+
// ── Typed Events ────────────────────────────────────────
|
|
37
|
+
emit(event, data) {
|
|
38
|
+
return super.emit(event, data);
|
|
39
|
+
}
|
|
40
|
+
on(event, listener) {
|
|
41
|
+
return super.on(event, listener);
|
|
42
|
+
}
|
|
43
|
+
// ── Public API ──────────────────────────────────────────
|
|
44
|
+
start() {
|
|
45
|
+
if (!this.config.enabled || this.interval)
|
|
46
|
+
return;
|
|
47
|
+
console.log(`[SessionMonitor] Starting (poll: ${this.config.pollIntervalSec}s, idle: ${this.config.idleThresholdMinutes}m)`);
|
|
48
|
+
this.interval = setInterval(() => this.poll(), this.config.pollIntervalSec * 1000);
|
|
49
|
+
// Initial poll after 10 seconds (let other systems initialize)
|
|
50
|
+
setTimeout(() => this.poll(), 10_000);
|
|
51
|
+
}
|
|
52
|
+
stop() {
|
|
53
|
+
if (this.interval) {
|
|
54
|
+
clearInterval(this.interval);
|
|
55
|
+
this.interval = null;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
getStatus() {
|
|
59
|
+
const health = [];
|
|
60
|
+
for (const [topicId, snap] of this.snapshots) {
|
|
61
|
+
health.push({
|
|
62
|
+
topicId,
|
|
63
|
+
sessionName: snap.sessionName,
|
|
64
|
+
status: snap.status,
|
|
65
|
+
idleMinutes: Math.round((Date.now() - snap.lastOutputAt) / 60000),
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
return {
|
|
69
|
+
enabled: this.config.enabled,
|
|
70
|
+
trackedSessions: this.snapshots.size,
|
|
71
|
+
sessionHealth: health,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
// ── Core Polling ────────────────────────────────────────
|
|
75
|
+
async poll() {
|
|
76
|
+
if (!this.config.enabled || this.running)
|
|
77
|
+
return;
|
|
78
|
+
this.running = true;
|
|
79
|
+
try {
|
|
80
|
+
const activeTopics = this.deps.getActiveTopicSessions();
|
|
81
|
+
// Clean up snapshots for topics that no longer have sessions
|
|
82
|
+
for (const topicId of this.snapshots.keys()) {
|
|
83
|
+
if (!activeTopics.has(topicId)) {
|
|
84
|
+
this.snapshots.delete(topicId);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
// Check each active session
|
|
88
|
+
for (const [topicId, sessionName] of activeTopics) {
|
|
89
|
+
try {
|
|
90
|
+
await this.checkSession(topicId, sessionName);
|
|
91
|
+
}
|
|
92
|
+
catch (err) {
|
|
93
|
+
console.error(`[SessionMonitor] Error checking topic ${topicId}:`, err);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
finally {
|
|
98
|
+
this.running = false;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
async checkSession(topicId, sessionName) {
|
|
102
|
+
const now = Date.now();
|
|
103
|
+
const alive = this.deps.isSessionAlive(sessionName);
|
|
104
|
+
// Get or create snapshot
|
|
105
|
+
let snap = this.snapshots.get(topicId);
|
|
106
|
+
if (!snap) {
|
|
107
|
+
snap = {
|
|
108
|
+
sessionName,
|
|
109
|
+
topicId,
|
|
110
|
+
lastOutput: '',
|
|
111
|
+
lastOutputAt: now,
|
|
112
|
+
lastUserMessageAt: 0,
|
|
113
|
+
lastAgentMessageAt: 0,
|
|
114
|
+
notifiedAt: null,
|
|
115
|
+
status: 'healthy',
|
|
116
|
+
};
|
|
117
|
+
this.snapshots.set(topicId, snap);
|
|
118
|
+
}
|
|
119
|
+
// Update session name if it changed (respawn)
|
|
120
|
+
snap.sessionName = sessionName;
|
|
121
|
+
// Capture current output
|
|
122
|
+
const currentOutput = alive ? (this.deps.captureSessionOutput(sessionName, 30) || '') : '';
|
|
123
|
+
// Check if output changed
|
|
124
|
+
if (currentOutput !== snap.lastOutput && currentOutput.length > 0) {
|
|
125
|
+
snap.lastOutput = currentOutput;
|
|
126
|
+
snap.lastOutputAt = now;
|
|
127
|
+
}
|
|
128
|
+
// Get recent message timestamps
|
|
129
|
+
const history = this.deps.getTopicHistory(topicId, 5);
|
|
130
|
+
for (const msg of history) {
|
|
131
|
+
const ts = new Date(msg.timestamp).getTime();
|
|
132
|
+
if (msg.fromUser && ts > snap.lastUserMessageAt) {
|
|
133
|
+
snap.lastUserMessageAt = ts;
|
|
134
|
+
}
|
|
135
|
+
else if (!msg.fromUser && ts > snap.lastAgentMessageAt) {
|
|
136
|
+
snap.lastAgentMessageAt = ts;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
// Determine session health
|
|
140
|
+
const idleMinutes = Math.round((now - snap.lastOutputAt) / 60000);
|
|
141
|
+
const prevStatus = snap.status;
|
|
142
|
+
if (!alive) {
|
|
143
|
+
snap.status = 'dead';
|
|
144
|
+
}
|
|
145
|
+
else if (snap.lastUserMessageAt > snap.lastAgentMessageAt &&
|
|
146
|
+
now - snap.lastUserMessageAt > 10 * 60 * 1000) {
|
|
147
|
+
// User sent a message > 10 min ago and agent hasn't replied
|
|
148
|
+
snap.status = 'unresponsive';
|
|
149
|
+
}
|
|
150
|
+
else if (idleMinutes >= this.config.idleThresholdMinutes) {
|
|
151
|
+
snap.status = 'idle';
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
snap.status = 'healthy';
|
|
155
|
+
}
|
|
156
|
+
// Take action based on health status
|
|
157
|
+
if (snap.status === 'healthy')
|
|
158
|
+
return;
|
|
159
|
+
if (snap.status === prevStatus && snap.notifiedAt)
|
|
160
|
+
return; // Already handled
|
|
161
|
+
// Check notification cooldown
|
|
162
|
+
if (snap.notifiedAt && now - snap.notifiedAt < this.config.notificationCooldownMinutes * 60 * 1000) {
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
// Only notify if the user has sent a message that's gone unanswered,
|
|
166
|
+
// or if the session was recently active (user expects a response)
|
|
167
|
+
const userExpectsResponse = snap.lastUserMessageAt > snap.lastAgentMessageAt;
|
|
168
|
+
const recentlyActive = now - snap.lastAgentMessageAt < 30 * 60 * 1000; // Agent was active within 30 min
|
|
169
|
+
if (!userExpectsResponse && !recentlyActive)
|
|
170
|
+
return; // Session idle but no user waiting — don't bother
|
|
171
|
+
switch (snap.status) {
|
|
172
|
+
case 'dead': {
|
|
173
|
+
this.emit('monitor:recovery-triggered', { topicId, sessionName, reason: 'session_dead' });
|
|
174
|
+
if (this.deps.triggerTriage) {
|
|
175
|
+
const result = await this.deps.triggerTriage(topicId, sessionName, 'Session died while user was waiting');
|
|
176
|
+
if (result.resolved) {
|
|
177
|
+
snap.status = 'healthy';
|
|
178
|
+
snap.notifiedAt = now;
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
// If triage didn't resolve or isn't available, notify user
|
|
183
|
+
if (userExpectsResponse) {
|
|
184
|
+
await this.deps.sendToTopic(topicId, `The session has stopped. Send a new message to start a fresh session with full conversation context.`).catch(() => { });
|
|
185
|
+
this.emit('monitor:user-notified', { topicId, message: 'session_dead' });
|
|
186
|
+
}
|
|
187
|
+
snap.notifiedAt = now;
|
|
188
|
+
break;
|
|
189
|
+
}
|
|
190
|
+
case 'unresponsive': {
|
|
191
|
+
const waitMinutes = Math.round((now - snap.lastUserMessageAt) / 60000);
|
|
192
|
+
this.emit('monitor:unresponsive', { topicId, sessionName, waitMinutes });
|
|
193
|
+
if (this.deps.triggerTriage) {
|
|
194
|
+
const result = await this.deps.triggerTriage(topicId, sessionName, `Session unresponsive for ${waitMinutes} minutes after user message`);
|
|
195
|
+
if (result.resolved) {
|
|
196
|
+
snap.status = 'healthy';
|
|
197
|
+
snap.notifiedAt = now;
|
|
198
|
+
return;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
snap.notifiedAt = now;
|
|
202
|
+
break;
|
|
203
|
+
}
|
|
204
|
+
case 'idle': {
|
|
205
|
+
this.emit('monitor:idle-detected', { topicId, sessionName, idleMinutes });
|
|
206
|
+
// For idle sessions, only notify if user is actively waiting
|
|
207
|
+
if (userExpectsResponse) {
|
|
208
|
+
const msg = `Session has been idle for ${idleMinutes} minutes. Checking if it needs attention...`;
|
|
209
|
+
await this.deps.sendToTopic(topicId, msg).catch(() => { });
|
|
210
|
+
this.emit('monitor:user-notified', { topicId, message: 'session_idle' });
|
|
211
|
+
if (this.deps.triggerTriage) {
|
|
212
|
+
await this.deps.triggerTriage(topicId, sessionName, `Session idle for ${idleMinutes} minutes, user waiting`);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
snap.notifiedAt = now;
|
|
216
|
+
break;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
//# sourceMappingURL=SessionMonitor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionMonitor.js","sourceRoot":"","sources":["../../src/monitoring/SessionMonitor.ts"],"names":[],"mappings":"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"}
|
|
@@ -62,6 +62,9 @@ export declare class AgentServer {
|
|
|
62
62
|
coherenceGate?: import('../core/CoherenceGate.js').CoherenceGate;
|
|
63
63
|
contextHierarchy?: import('../core/ContextHierarchy.js').ContextHierarchy;
|
|
64
64
|
canonicalState?: import('../core/CanonicalState.js').CanonicalState;
|
|
65
|
+
operationGate?: import('../core/ExternalOperationGate.js').ExternalOperationGate;
|
|
66
|
+
sentinel?: import('../core/MessageSentinel.js').MessageSentinel;
|
|
67
|
+
adaptiveTrust?: import('../core/AdaptiveTrust.js').AdaptiveTrust;
|
|
65
68
|
coordinator?: MultiMachineCoordinator;
|
|
66
69
|
localSigningKeyPem?: string;
|
|
67
70
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentServer.d.ts","sourceRoot":"","sources":["../../src/server/AgentServer.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"AgentServer.d.ts","sourceRoot":"","sources":["../../src/server/AgentServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -137,6 +137,9 @@ export class AgentServer {
|
|
|
137
137
|
coherenceGate: options.coherenceGate ?? null,
|
|
138
138
|
contextHierarchy: options.contextHierarchy ?? null,
|
|
139
139
|
canonicalState: options.canonicalState ?? null,
|
|
140
|
+
operationGate: options.operationGate ?? null,
|
|
141
|
+
sentinel: options.sentinel ?? null,
|
|
142
|
+
adaptiveTrust: options.adaptiveTrust ?? null,
|
|
140
143
|
startTime: this.startTime,
|
|
141
144
|
});
|
|
142
145
|
this.app.use(routes);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentServer.js","sourceRoot":"","sources":["../../src/server/AgentServer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,OAAsD,MAAM,SAAS,CAAC;AAE7E,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAsBzC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/F,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,OAAO,WAAW;IACd,GAAG,CAAU;IACb,MAAM,GAAkB,IAAI,CAAC;IAC7B,SAAS,GAA4B,IAAI,CAAC;IAC1C,MAAM,CAAe;IACrB,SAAS,CAAO;IAChB,cAAc,CAAiB;IAC/B,KAAK,CAAe;IAE5B,YAAY,
|
|
1
|
+
{"version":3,"file":"AgentServer.js","sourceRoot":"","sources":["../../src/server/AgentServer.ts"],"names":[],"mappings":"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"}
|
package/dist/server/routes.d.ts
CHANGED
|
@@ -29,6 +29,9 @@ import type { ProjectMapper } from '../core/ProjectMapper.js';
|
|
|
29
29
|
import type { CoherenceGate } from '../core/CoherenceGate.js';
|
|
30
30
|
import type { ContextHierarchy } from '../core/ContextHierarchy.js';
|
|
31
31
|
import type { CanonicalState } from '../core/CanonicalState.js';
|
|
32
|
+
import type { ExternalOperationGate } from '../core/ExternalOperationGate.js';
|
|
33
|
+
import type { MessageSentinel } from '../core/MessageSentinel.js';
|
|
34
|
+
import type { AdaptiveTrust } from '../core/AdaptiveTrust.js';
|
|
32
35
|
export interface RouteContext {
|
|
33
36
|
config: InstarConfig;
|
|
34
37
|
sessionManager: SessionManager;
|
|
@@ -54,6 +57,9 @@ export interface RouteContext {
|
|
|
54
57
|
coherenceGate: CoherenceGate | null;
|
|
55
58
|
contextHierarchy: ContextHierarchy | null;
|
|
56
59
|
canonicalState: CanonicalState | null;
|
|
60
|
+
operationGate: ExternalOperationGate | null;
|
|
61
|
+
sentinel: MessageSentinel | null;
|
|
62
|
+
adaptiveTrust: AdaptiveTrust | null;
|
|
57
63
|
startTime: Date;
|
|
58
64
|
}
|
|
59
65
|
export declare function createRoutes(ctx: RouteContext): Router;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/server/routes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAMjC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAIrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AACxF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/server/routes.ts"],"names":[],"mappings":"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"}
|
package/dist/server/routes.js
CHANGED
|
@@ -502,6 +502,24 @@ export function createRoutes(ctx) {
|
|
|
502
502
|
'POST /topic-bindings — bind a topic to a project',
|
|
503
503
|
] : [],
|
|
504
504
|
},
|
|
505
|
+
externalOperationSafety: {
|
|
506
|
+
enabled: !!ctx.operationGate,
|
|
507
|
+
sentinel: !!ctx.sentinel,
|
|
508
|
+
adaptiveTrust: !!ctx.adaptiveTrust,
|
|
509
|
+
endpoints: ctx.operationGate ? [
|
|
510
|
+
'POST /operations/classify — classify an operation (risk level)',
|
|
511
|
+
'POST /operations/evaluate — full gate evaluation (proceed/plan/block)',
|
|
512
|
+
'GET /operations/log — recent operation history',
|
|
513
|
+
'GET /operations/permissions/:service — service permissions',
|
|
514
|
+
'POST /sentinel/classify — test message classification',
|
|
515
|
+
'GET /sentinel/stats — sentinel classification stats',
|
|
516
|
+
'GET /trust — full trust profile',
|
|
517
|
+
'GET /trust/summary — compact trust summary',
|
|
518
|
+
'POST /trust/grant — explicitly grant trust',
|
|
519
|
+
'GET /trust/elevations — pending elevation suggestions',
|
|
520
|
+
'GET /trust/changelog — recent trust changes',
|
|
521
|
+
] : [],
|
|
522
|
+
},
|
|
505
523
|
featureGuide: {
|
|
506
524
|
description: 'Context-triggered capability suggestions. Use these proactively when context matches.',
|
|
507
525
|
triggers: [
|
|
@@ -519,6 +537,9 @@ export function createRoutes(ctx) {
|
|
|
519
537
|
{ context: 'About to deploy, push, or modify files outside project', action: 'Run coherence check FIRST (POST /coherence/check). Verify you are in the right project for the current topic.' },
|
|
520
538
|
{ context: 'Working on a topic tied to a specific project', action: 'Check topic-project binding (GET /topic-bindings). If unbound, bind it (POST /topic-bindings) to prevent cross-project confusion.' },
|
|
521
539
|
{ context: 'Unsure what project this is or what files exist', action: 'Check project map (GET /project-map?format=compact) for spatial awareness — project type, key files, deployment targets.' },
|
|
540
|
+
{ context: 'About to call an external service API (email, calendar, messaging)', action: 'Evaluate through operation gate FIRST (POST /operations/evaluate). The gate classifies risk and decides proceed/plan/block.' },
|
|
541
|
+
{ context: 'User says to stop, cancel, or abort', action: 'MessageSentinel intercepts these automatically. For manual classification: POST /sentinel/classify.' },
|
|
542
|
+
{ context: 'User says "you don\'t need to ask me about X"', action: 'Grant trust explicitly (POST /trust/grant). Trust persists across sessions.' },
|
|
522
543
|
],
|
|
523
544
|
},
|
|
524
545
|
});
|
|
@@ -2718,6 +2739,127 @@ export function createRoutes(ctx) {
|
|
|
2718
2739
|
res.status(500).json({ error: err instanceof Error ? err.message : 'Triage failed' });
|
|
2719
2740
|
}
|
|
2720
2741
|
});
|
|
2742
|
+
// ── External Operation Safety ────────────────────────────────────
|
|
2743
|
+
// POST /operations/classify — classify an external operation
|
|
2744
|
+
router.post('/operations/classify', (req, res) => {
|
|
2745
|
+
if (!ctx.operationGate) {
|
|
2746
|
+
return res.status(404).json({ error: 'ExternalOperationGate not configured' });
|
|
2747
|
+
}
|
|
2748
|
+
const { service, mutability, reversibility, description, itemCount } = req.body;
|
|
2749
|
+
if (!service || !mutability || !reversibility || !description) {
|
|
2750
|
+
return res.status(400).json({ error: 'service, mutability, reversibility, and description are required' });
|
|
2751
|
+
}
|
|
2752
|
+
const classification = ctx.operationGate.classify({
|
|
2753
|
+
service,
|
|
2754
|
+
mutability: mutability,
|
|
2755
|
+
reversibility: reversibility,
|
|
2756
|
+
description,
|
|
2757
|
+
itemCount,
|
|
2758
|
+
});
|
|
2759
|
+
res.json(classification);
|
|
2760
|
+
});
|
|
2761
|
+
// POST /operations/evaluate — full gate evaluation
|
|
2762
|
+
router.post('/operations/evaluate', async (req, res) => {
|
|
2763
|
+
if (!ctx.operationGate) {
|
|
2764
|
+
return res.status(404).json({ error: 'ExternalOperationGate not configured' });
|
|
2765
|
+
}
|
|
2766
|
+
const { service, mutability, reversibility, description, itemCount, userRequest } = req.body;
|
|
2767
|
+
if (!service || !mutability || !reversibility || !description) {
|
|
2768
|
+
return res.status(400).json({ error: 'service, mutability, reversibility, and description are required' });
|
|
2769
|
+
}
|
|
2770
|
+
try {
|
|
2771
|
+
const decision = await ctx.operationGate.evaluate({
|
|
2772
|
+
service,
|
|
2773
|
+
mutability: mutability,
|
|
2774
|
+
reversibility: reversibility,
|
|
2775
|
+
description,
|
|
2776
|
+
itemCount,
|
|
2777
|
+
userRequest,
|
|
2778
|
+
});
|
|
2779
|
+
res.json(decision);
|
|
2780
|
+
}
|
|
2781
|
+
catch (err) {
|
|
2782
|
+
res.status(500).json({ error: err instanceof Error ? err.message : 'Evaluation failed' });
|
|
2783
|
+
}
|
|
2784
|
+
});
|
|
2785
|
+
// GET /operations/log — recent operation history
|
|
2786
|
+
router.get('/operations/log', (req, res) => {
|
|
2787
|
+
if (!ctx.operationGate) {
|
|
2788
|
+
return res.status(404).json({ error: 'ExternalOperationGate not configured' });
|
|
2789
|
+
}
|
|
2790
|
+
const limit = parseInt(req.query.limit) || 50;
|
|
2791
|
+
res.json(ctx.operationGate.getOperationLog(limit));
|
|
2792
|
+
});
|
|
2793
|
+
// GET /operations/permissions/:service — service permissions
|
|
2794
|
+
router.get('/operations/permissions/:service', (req, res) => {
|
|
2795
|
+
if (!ctx.operationGate) {
|
|
2796
|
+
return res.status(404).json({ error: 'ExternalOperationGate not configured' });
|
|
2797
|
+
}
|
|
2798
|
+
const perms = ctx.operationGate.getServicePermissions(req.params.service);
|
|
2799
|
+
if (!perms) {
|
|
2800
|
+
return res.json({ service: req.params.service, configured: false });
|
|
2801
|
+
}
|
|
2802
|
+
res.json({ service: req.params.service, configured: true, ...perms });
|
|
2803
|
+
});
|
|
2804
|
+
// POST /sentinel/classify — test message classification without executing
|
|
2805
|
+
router.post('/sentinel/classify', async (req, res) => {
|
|
2806
|
+
if (!ctx.sentinel) {
|
|
2807
|
+
return res.status(404).json({ error: 'MessageSentinel not configured' });
|
|
2808
|
+
}
|
|
2809
|
+
const { message } = req.body;
|
|
2810
|
+
if (!message || typeof message !== 'string') {
|
|
2811
|
+
return res.status(400).json({ error: 'message is required (string)' });
|
|
2812
|
+
}
|
|
2813
|
+
const result = await ctx.sentinel.classify(message);
|
|
2814
|
+
res.json(result);
|
|
2815
|
+
});
|
|
2816
|
+
// GET /sentinel/stats — sentinel classification stats
|
|
2817
|
+
router.get('/sentinel/stats', (req, res) => {
|
|
2818
|
+
if (!ctx.sentinel) {
|
|
2819
|
+
return res.status(404).json({ error: 'MessageSentinel not configured' });
|
|
2820
|
+
}
|
|
2821
|
+
res.json(ctx.sentinel.getStats());
|
|
2822
|
+
});
|
|
2823
|
+
// GET /trust — full trust profile
|
|
2824
|
+
router.get('/trust', (req, res) => {
|
|
2825
|
+
if (!ctx.adaptiveTrust) {
|
|
2826
|
+
return res.status(404).json({ error: 'AdaptiveTrust not configured' });
|
|
2827
|
+
}
|
|
2828
|
+
res.json(ctx.adaptiveTrust.getProfile());
|
|
2829
|
+
});
|
|
2830
|
+
// GET /trust/summary — compact trust summary
|
|
2831
|
+
router.get('/trust/summary', (req, res) => {
|
|
2832
|
+
if (!ctx.adaptiveTrust) {
|
|
2833
|
+
return res.status(404).json({ error: 'AdaptiveTrust not configured' });
|
|
2834
|
+
}
|
|
2835
|
+
res.json({ summary: ctx.adaptiveTrust.getSummary() });
|
|
2836
|
+
});
|
|
2837
|
+
// POST /trust/grant — explicitly grant trust
|
|
2838
|
+
router.post('/trust/grant', (req, res) => {
|
|
2839
|
+
if (!ctx.adaptiveTrust) {
|
|
2840
|
+
return res.status(404).json({ error: 'AdaptiveTrust not configured' });
|
|
2841
|
+
}
|
|
2842
|
+
const { service, operation, level, statement } = req.body;
|
|
2843
|
+
if (!service || !operation || !level || !statement) {
|
|
2844
|
+
return res.status(400).json({ error: 'service, operation, level, and statement are required' });
|
|
2845
|
+
}
|
|
2846
|
+
const event = ctx.adaptiveTrust.grantTrust(service, operation, level, statement);
|
|
2847
|
+
res.json(event);
|
|
2848
|
+
});
|
|
2849
|
+
// GET /trust/elevations — pending elevation suggestions
|
|
2850
|
+
router.get('/trust/elevations', (req, res) => {
|
|
2851
|
+
if (!ctx.adaptiveTrust) {
|
|
2852
|
+
return res.status(404).json({ error: 'AdaptiveTrust not configured' });
|
|
2853
|
+
}
|
|
2854
|
+
res.json(ctx.adaptiveTrust.getPendingElevations());
|
|
2855
|
+
});
|
|
2856
|
+
// GET /trust/changelog — recent trust changes
|
|
2857
|
+
router.get('/trust/changelog', (req, res) => {
|
|
2858
|
+
if (!ctx.adaptiveTrust) {
|
|
2859
|
+
return res.status(404).json({ error: 'AdaptiveTrust not configured' });
|
|
2860
|
+
}
|
|
2861
|
+
res.json(ctx.adaptiveTrust.getChangeLog());
|
|
2862
|
+
});
|
|
2721
2863
|
return router;
|
|
2722
2864
|
}
|
|
2723
2865
|
export function formatUptime(ms) {
|