@geravant/sinain 1.14.0 → 1.15.1
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/.env.example +33 -29
- package/cli.js +38 -14
- package/config-shared.js +172 -30
- package/launcher.js +38 -21
- package/onboard.js +36 -20
- package/package.json +1 -1
- package/sinain-agent/run.sh +567 -126
- package/sinain-core/src/agents-loader.ts +254 -0
- package/sinain-core/src/config.ts +77 -15
- package/sinain-core/src/escalation/escalator.ts +178 -18
- package/sinain-core/src/index.ts +168 -12
- package/sinain-core/src/learning/local-curation.ts +81 -27
- package/sinain-core/src/overlay/commands.ts +25 -0
- package/sinain-core/src/overlay/ws-handler.ts +3 -0
- package/sinain-core/src/server.ts +101 -10
- package/sinain-core/src/types.ts +29 -3
package/sinain-core/src/types.ts
CHANGED
|
@@ -21,6 +21,14 @@ export interface StatusMessage {
|
|
|
21
21
|
escalation?: string;
|
|
22
22
|
connection: string;
|
|
23
23
|
responseSize?: string;
|
|
24
|
+
/** Bare-agent roster + per-lane current choice. Omitted until the bare
|
|
25
|
+
* agent has registered via POST /bareagent/register. empty-string lane
|
|
26
|
+
* values mean "Off" (lane disabled). */
|
|
27
|
+
agents?: {
|
|
28
|
+
available: string[];
|
|
29
|
+
escalationAgent: string;
|
|
30
|
+
spawnAgent: string;
|
|
31
|
+
};
|
|
24
32
|
}
|
|
25
33
|
|
|
26
34
|
/** sinain-core → Overlay: heartbeat ping */
|
|
@@ -323,14 +331,16 @@ export interface ContextWindow {
|
|
|
323
331
|
}
|
|
324
332
|
|
|
325
333
|
// ── Escalation types ──
|
|
326
|
-
|
|
327
|
-
|
|
334
|
+
//
|
|
335
|
+
// Transport choice is per-lane now (driven by the overlay's agent selector):
|
|
336
|
+
// `escalationAgent === "openclaw"` → WS; any other non-empty agent → HTTP.
|
|
337
|
+
// The old global `transport` setting was removed — picking an agent IS the
|
|
338
|
+
// transport.
|
|
328
339
|
|
|
329
340
|
export interface EscalationConfig {
|
|
330
341
|
mode: EscalationMode;
|
|
331
342
|
cooldownMs: number;
|
|
332
343
|
staleMs: number; // force escalation after this many ms of silence (0 = disabled)
|
|
333
|
-
transport: EscalationTransport;
|
|
334
344
|
}
|
|
335
345
|
|
|
336
346
|
export interface OpenClawConfig {
|
|
@@ -396,6 +406,13 @@ export interface BridgeState {
|
|
|
396
406
|
escalation: "active" | "paused";
|
|
397
407
|
connection: "connected" | "disconnected" | "connecting";
|
|
398
408
|
responseSize: ResponseSize;
|
|
409
|
+
/** Bare-agent roster + per-lane current choice. Populated after the
|
|
410
|
+
* bare agent's POST /bareagent/register. "" lane value = lane disabled. */
|
|
411
|
+
agents: {
|
|
412
|
+
available: string[];
|
|
413
|
+
escalationAgent: string;
|
|
414
|
+
spawnAgent: string;
|
|
415
|
+
};
|
|
399
416
|
}
|
|
400
417
|
|
|
401
418
|
// ── Learning / feedback types ──
|
|
@@ -461,6 +478,14 @@ export interface PrivacyConfig {
|
|
|
461
478
|
matrix: PrivacyMatrix;
|
|
462
479
|
}
|
|
463
480
|
|
|
481
|
+
// ── Permission gating for /spawn/approve ──
|
|
482
|
+
// Controls which tool-invocations auto-approve (vs. route to overlay for user).
|
|
483
|
+
// Tokens are exact tool names (e.g. "Read") or prefix patterns ending with `*`
|
|
484
|
+
// (e.g. "mcp__sinain*"). Everything else gets the overlay Allow/Deny prompt.
|
|
485
|
+
export interface PermissionsConfig {
|
|
486
|
+
autoApproveTools: string[];
|
|
487
|
+
}
|
|
488
|
+
|
|
464
489
|
// ── Full core config ──
|
|
465
490
|
|
|
466
491
|
export interface CoreConfig {
|
|
@@ -478,4 +503,5 @@ export interface CoreConfig {
|
|
|
478
503
|
traceDir: string;
|
|
479
504
|
learningConfig: LearningConfig;
|
|
480
505
|
privacyConfig: PrivacyConfig;
|
|
506
|
+
permissionsConfig: PermissionsConfig;
|
|
481
507
|
}
|