@a-company/sentinel 3.6.0 → 3.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/express.d.ts +3 -3
- package/dist/adapters/fastify.d.ts +3 -3
- package/dist/adapters/hono.d.ts +3 -3
- package/dist/builtin-symphony-qZiFR8hQ.d.ts +74 -0
- package/dist/{chunk-NTX74ZPM.js → chunk-OKYYIAML.js} +464 -1
- package/dist/cli.js +11 -8
- package/dist/{commands-E7ACLOE7.js → commands-EV7I6V3F.js} +475 -3
- package/dist/{dist-AG5JNIZU.js → dist-5QE2BB2B.js} +58 -4
- package/dist/{dist-TYG2XME3.js → dist-TMBGF6YA.js} +58 -4
- package/dist/index.d.ts +9 -67
- package/dist/index.js +4 -147
- package/dist/mcp.js +13 -0
- package/dist/{sdk-CzFDYYST.d.ts → sdk-faJTgu-S.d.ts} +2 -2
- package/dist/server/index.d.ts +153 -4
- package/dist/server/index.js +35 -4
- package/dist/{storage-BKyt7aPJ.d.ts → storage-8SPPsAJb.d.ts} +6 -2
- package/dist/{transport-DqamniUy.d.ts → transport-Biz9YfoQ.d.ts} +1 -1
- package/dist/transport.d.ts +2 -2
- package/dist/{types-BmVoO1iF.d.ts → types-CPU5sxLq.d.ts} +1 -1
- package/package.json +1 -1
- package/ui/dist/assets/{index-DCtwmE2_.css → index-CJ1Wx083.css} +1 -1
- package/ui/dist/assets/index-S1VJ67dT.js +62 -0
- package/ui/dist/assets/index-S1VJ67dT.js.map +1 -0
- package/ui/dist/index.html +2 -2
- package/ui/dist/assets/index-BuK-X6af.js +0 -62
- package/ui/dist/assets/index-BuK-X6af.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { S as Sentinel } from '../sdk-
|
|
2
|
-
import '../storage-
|
|
3
|
-
import '../types-
|
|
1
|
+
import { S as Sentinel } from '../sdk-faJTgu-S.js';
|
|
2
|
+
import '../storage-8SPPsAJb.js';
|
|
3
|
+
import '../types-CPU5sxLq.js';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Sentinel Express Adapter
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { S as Sentinel } from '../sdk-
|
|
2
|
-
import '../storage-
|
|
3
|
-
import '../types-
|
|
1
|
+
import { S as Sentinel } from '../sdk-faJTgu-S.js';
|
|
2
|
+
import '../storage-8SPPsAJb.js';
|
|
3
|
+
import '../types-CPU5sxLq.js';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Sentinel Fastify Adapter
|
package/dist/adapters/hono.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { S as Sentinel } from '../sdk-
|
|
2
|
-
import '../storage-
|
|
3
|
-
import '../types-
|
|
1
|
+
import { S as Sentinel } from '../sdk-faJTgu-S.js';
|
|
2
|
+
import '../storage-8SPPsAJb.js';
|
|
3
|
+
import '../types-CPU5sxLq.js';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Sentinel Hono Adapter
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { ae as SentinelServerConfig } from './types-CPU5sxLq.js';
|
|
2
|
+
import { a as EventSchemaDeclaration } from './storage-8SPPsAJb.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Sentinel Configuration
|
|
6
|
+
*
|
|
7
|
+
* Loads and writes .sentinel.yaml config files.
|
|
8
|
+
* Provides project-level configuration for the Sentinel SDK and CLI.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
interface SentinelYamlConfig {
|
|
12
|
+
version: string;
|
|
13
|
+
project: string;
|
|
14
|
+
environment?: string;
|
|
15
|
+
symbols?: {
|
|
16
|
+
components?: string[];
|
|
17
|
+
gates?: string[];
|
|
18
|
+
flows?: string[];
|
|
19
|
+
signals?: string[];
|
|
20
|
+
};
|
|
21
|
+
routes?: Record<string, string>;
|
|
22
|
+
scrub?: {
|
|
23
|
+
headers?: string[];
|
|
24
|
+
fields?: string[];
|
|
25
|
+
};
|
|
26
|
+
server?: {
|
|
27
|
+
port?: number;
|
|
28
|
+
maxLogs?: number;
|
|
29
|
+
maxBatchSize?: number;
|
|
30
|
+
wsMaxSubscribers?: number;
|
|
31
|
+
pruneIntervalInserts?: number;
|
|
32
|
+
logRetentionDays?: number;
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Load .sentinel.yaml from a project directory.
|
|
37
|
+
*
|
|
38
|
+
* @param projectDir - Project root directory
|
|
39
|
+
* @returns Parsed config or null if not found
|
|
40
|
+
*/
|
|
41
|
+
declare function loadConfig(projectDir: string): SentinelYamlConfig | null;
|
|
42
|
+
/**
|
|
43
|
+
* Write .sentinel.yaml to a project directory.
|
|
44
|
+
*
|
|
45
|
+
* @param projectDir - Project root directory
|
|
46
|
+
* @param config - Config to write
|
|
47
|
+
*/
|
|
48
|
+
declare function writeConfig(projectDir: string, config: SentinelYamlConfig): void;
|
|
49
|
+
/**
|
|
50
|
+
* Load server configuration with resolution order:
|
|
51
|
+
* env vars → local .sentinel.yaml → global ~/.paradigm/sentinel.yaml → defaults
|
|
52
|
+
*/
|
|
53
|
+
declare function loadServerConfig(projectDir?: string): SentinelServerConfig;
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Built-in Paradigm Schema Declaration
|
|
57
|
+
*
|
|
58
|
+
* Registers Paradigm's existing log/metric/trace types as an event schema.
|
|
59
|
+
* This is informational — existing tables remain untouched.
|
|
60
|
+
*/
|
|
61
|
+
|
|
62
|
+
declare const PARADIGM_SCHEMA: EventSchemaDeclaration;
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Built-in Symphony Schema Declaration — #SymphonySchema
|
|
66
|
+
*
|
|
67
|
+
* Defines the paradigm-symphony event schema for agent-to-agent messaging.
|
|
68
|
+
* Events are scoped by threadId with parent-child causality via parentId.
|
|
69
|
+
* 19 event types across 6 categories: dialogue, action, outcome, system, lifecycle, transfer.
|
|
70
|
+
*/
|
|
71
|
+
|
|
72
|
+
declare const SYMPHONY_SCHEMA: EventSchemaDeclaration;
|
|
73
|
+
|
|
74
|
+
export { PARADIGM_SCHEMA as P, type SentinelYamlConfig as S, SYMPHONY_SCHEMA as a, loadServerConfig as b, loadConfig as l, writeConfig as w };
|
|
@@ -594,6 +594,19 @@ var SentinelStorage = class {
|
|
|
594
594
|
);
|
|
595
595
|
this.save();
|
|
596
596
|
}
|
|
597
|
+
resolveIncident(id, options) {
|
|
598
|
+
this.updateIncident(id, {
|
|
599
|
+
status: "resolved",
|
|
600
|
+
resolvedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
601
|
+
});
|
|
602
|
+
if (options?.notes) {
|
|
603
|
+
this.addIncidentNote(id, {
|
|
604
|
+
author: "system",
|
|
605
|
+
content: options.notes,
|
|
606
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
|
607
|
+
});
|
|
608
|
+
}
|
|
609
|
+
}
|
|
597
610
|
addIncidentNote(incidentId, note) {
|
|
598
611
|
this.initializeSync();
|
|
599
612
|
const incident = this.getIncident(incidentId);
|
|
@@ -2613,6 +2626,454 @@ function loadServerConfig(projectDir) {
|
|
|
2613
2626
|
return config;
|
|
2614
2627
|
}
|
|
2615
2628
|
|
|
2629
|
+
// src/schema/builtin-paradigm.ts
|
|
2630
|
+
var PARADIGM_SCHEMA = {
|
|
2631
|
+
id: "paradigm-logger",
|
|
2632
|
+
version: "1.0.0",
|
|
2633
|
+
name: "Paradigm Logger",
|
|
2634
|
+
description: "Structured logs from @a-company/paradigm-logger with symbolic context",
|
|
2635
|
+
scope: {
|
|
2636
|
+
field: "correlationId",
|
|
2637
|
+
type: "string",
|
|
2638
|
+
label: "Correlation",
|
|
2639
|
+
ordering: "independent",
|
|
2640
|
+
sessionField: "sessionId"
|
|
2641
|
+
},
|
|
2642
|
+
eventTypes: [
|
|
2643
|
+
{
|
|
2644
|
+
type: "log:debug",
|
|
2645
|
+
category: "logs",
|
|
2646
|
+
label: "Debug Log",
|
|
2647
|
+
severity: "debug",
|
|
2648
|
+
frequency: "high",
|
|
2649
|
+
fields: [
|
|
2650
|
+
{ name: "symbol", type: "string", indexed: true, display: true },
|
|
2651
|
+
{ name: "symbolType", type: "string", indexed: true, display: true },
|
|
2652
|
+
{ name: "message", type: "string", display: true },
|
|
2653
|
+
{ name: "service", type: "string", indexed: true, display: true },
|
|
2654
|
+
{ name: "durationMs", type: "number", display: true }
|
|
2655
|
+
]
|
|
2656
|
+
},
|
|
2657
|
+
{
|
|
2658
|
+
type: "log:info",
|
|
2659
|
+
category: "logs",
|
|
2660
|
+
label: "Info Log",
|
|
2661
|
+
severity: "info",
|
|
2662
|
+
frequency: "high",
|
|
2663
|
+
fields: [
|
|
2664
|
+
{ name: "symbol", type: "string", indexed: true, display: true },
|
|
2665
|
+
{ name: "symbolType", type: "string", indexed: true, display: true },
|
|
2666
|
+
{ name: "message", type: "string", display: true },
|
|
2667
|
+
{ name: "service", type: "string", indexed: true, display: true },
|
|
2668
|
+
{ name: "durationMs", type: "number", display: true }
|
|
2669
|
+
]
|
|
2670
|
+
},
|
|
2671
|
+
{
|
|
2672
|
+
type: "log:warn",
|
|
2673
|
+
category: "logs",
|
|
2674
|
+
label: "Warning Log",
|
|
2675
|
+
severity: "warn",
|
|
2676
|
+
frequency: "medium",
|
|
2677
|
+
fields: [
|
|
2678
|
+
{ name: "symbol", type: "string", indexed: true, display: true },
|
|
2679
|
+
{ name: "symbolType", type: "string", indexed: true, display: true },
|
|
2680
|
+
{ name: "message", type: "string", display: true },
|
|
2681
|
+
{ name: "service", type: "string", indexed: true, display: true }
|
|
2682
|
+
]
|
|
2683
|
+
},
|
|
2684
|
+
{
|
|
2685
|
+
type: "log:error",
|
|
2686
|
+
category: "logs",
|
|
2687
|
+
label: "Error Log",
|
|
2688
|
+
severity: "error",
|
|
2689
|
+
frequency: "low",
|
|
2690
|
+
fields: [
|
|
2691
|
+
{ name: "symbol", type: "string", indexed: true, display: true },
|
|
2692
|
+
{ name: "symbolType", type: "string", indexed: true, display: true },
|
|
2693
|
+
{ name: "message", type: "string", display: true },
|
|
2694
|
+
{ name: "service", type: "string", indexed: true, display: true }
|
|
2695
|
+
]
|
|
2696
|
+
},
|
|
2697
|
+
{
|
|
2698
|
+
type: "metric:counter",
|
|
2699
|
+
category: "metrics",
|
|
2700
|
+
label: "Counter Metric",
|
|
2701
|
+
severity: "info",
|
|
2702
|
+
frequency: "high",
|
|
2703
|
+
fields: [
|
|
2704
|
+
{ name: "name", type: "string", indexed: true, display: true },
|
|
2705
|
+
{ name: "value", type: "number", display: true },
|
|
2706
|
+
{ name: "tags", type: "object" }
|
|
2707
|
+
]
|
|
2708
|
+
},
|
|
2709
|
+
{
|
|
2710
|
+
type: "metric:gauge",
|
|
2711
|
+
category: "metrics",
|
|
2712
|
+
label: "Gauge Metric",
|
|
2713
|
+
severity: "info",
|
|
2714
|
+
frequency: "medium",
|
|
2715
|
+
fields: [
|
|
2716
|
+
{ name: "name", type: "string", indexed: true, display: true },
|
|
2717
|
+
{ name: "value", type: "number", display: true },
|
|
2718
|
+
{ name: "tags", type: "object" }
|
|
2719
|
+
]
|
|
2720
|
+
},
|
|
2721
|
+
{
|
|
2722
|
+
type: "metric:histogram",
|
|
2723
|
+
category: "metrics",
|
|
2724
|
+
label: "Histogram Metric",
|
|
2725
|
+
severity: "info",
|
|
2726
|
+
frequency: "medium",
|
|
2727
|
+
fields: [
|
|
2728
|
+
{ name: "name", type: "string", indexed: true, display: true },
|
|
2729
|
+
{ name: "value", type: "number", display: true },
|
|
2730
|
+
{ name: "tags", type: "object" }
|
|
2731
|
+
]
|
|
2732
|
+
},
|
|
2733
|
+
{
|
|
2734
|
+
type: "trace:span",
|
|
2735
|
+
category: "traces",
|
|
2736
|
+
label: "Trace Span",
|
|
2737
|
+
severity: "info",
|
|
2738
|
+
frequency: "medium",
|
|
2739
|
+
fields: [
|
|
2740
|
+
{ name: "traceId", type: "string", indexed: true, display: true },
|
|
2741
|
+
{ name: "spanId", type: "string", indexed: true },
|
|
2742
|
+
{ name: "operation", type: "string", display: true },
|
|
2743
|
+
{ name: "durationMs", type: "number", display: true },
|
|
2744
|
+
{ name: "status", type: "string", display: true }
|
|
2745
|
+
]
|
|
2746
|
+
},
|
|
2747
|
+
{
|
|
2748
|
+
type: "incident:recorded",
|
|
2749
|
+
category: "incidents",
|
|
2750
|
+
label: "Incident Recorded",
|
|
2751
|
+
severity: "error",
|
|
2752
|
+
frequency: "low",
|
|
2753
|
+
fields: [
|
|
2754
|
+
{ name: "incidentId", type: "string", indexed: true, display: true },
|
|
2755
|
+
{ name: "errorMessage", type: "string", display: true },
|
|
2756
|
+
{ name: "symbols", type: "object" },
|
|
2757
|
+
{ name: "environment", type: "string", display: true }
|
|
2758
|
+
]
|
|
2759
|
+
}
|
|
2760
|
+
],
|
|
2761
|
+
visualization: {
|
|
2762
|
+
defaultView: "table",
|
|
2763
|
+
categoryColors: {
|
|
2764
|
+
logs: "#3b82f6",
|
|
2765
|
+
metrics: "#22c55e",
|
|
2766
|
+
traces: "#a855f7",
|
|
2767
|
+
incidents: "#ef4444"
|
|
2768
|
+
},
|
|
2769
|
+
summaryFields: ["symbol", "message", "service"],
|
|
2770
|
+
defaultExcluded: ["log:debug"]
|
|
2771
|
+
},
|
|
2772
|
+
tags: ["builtin", "paradigm"]
|
|
2773
|
+
};
|
|
2774
|
+
|
|
2775
|
+
// src/schema/builtin-symphony.ts
|
|
2776
|
+
var SYMPHONY_SCHEMA = {
|
|
2777
|
+
id: "paradigm-symphony",
|
|
2778
|
+
version: "1.0.0",
|
|
2779
|
+
name: "Symphony Conversations",
|
|
2780
|
+
description: "Agent-to-agent messaging events from The Score protocol",
|
|
2781
|
+
scope: {
|
|
2782
|
+
field: "threadId",
|
|
2783
|
+
type: "string",
|
|
2784
|
+
label: "Thread",
|
|
2785
|
+
ordering: "independent",
|
|
2786
|
+
sessionField: "sessionId"
|
|
2787
|
+
},
|
|
2788
|
+
eventTypes: [
|
|
2789
|
+
// ── Dialogue (5) ──────────────────────────────────────
|
|
2790
|
+
{
|
|
2791
|
+
type: "note:question",
|
|
2792
|
+
category: "dialogue",
|
|
2793
|
+
label: "Question",
|
|
2794
|
+
severity: "info",
|
|
2795
|
+
frequency: "high",
|
|
2796
|
+
fields: [
|
|
2797
|
+
{ name: "sender", type: "string", indexed: true, display: true },
|
|
2798
|
+
{ name: "senderRole", type: "string", indexed: true, display: true },
|
|
2799
|
+
{ name: "text", type: "string", display: true },
|
|
2800
|
+
{ name: "symbols", type: "object" },
|
|
2801
|
+
{ name: "parentId", type: "string", indexed: true }
|
|
2802
|
+
]
|
|
2803
|
+
},
|
|
2804
|
+
{
|
|
2805
|
+
type: "note:context",
|
|
2806
|
+
category: "dialogue",
|
|
2807
|
+
label: "Context",
|
|
2808
|
+
severity: "info",
|
|
2809
|
+
frequency: "high",
|
|
2810
|
+
fields: [
|
|
2811
|
+
{ name: "sender", type: "string", indexed: true, display: true },
|
|
2812
|
+
{ name: "senderRole", type: "string", indexed: true, display: true },
|
|
2813
|
+
{ name: "text", type: "string", display: true },
|
|
2814
|
+
{ name: "symbols", type: "object" },
|
|
2815
|
+
{ name: "parentId", type: "string", indexed: true }
|
|
2816
|
+
]
|
|
2817
|
+
},
|
|
2818
|
+
{
|
|
2819
|
+
type: "note:clarification",
|
|
2820
|
+
category: "dialogue",
|
|
2821
|
+
label: "Clarification",
|
|
2822
|
+
severity: "info",
|
|
2823
|
+
frequency: "medium",
|
|
2824
|
+
fields: [
|
|
2825
|
+
{ name: "sender", type: "string", indexed: true, display: true },
|
|
2826
|
+
{ name: "senderRole", type: "string", indexed: true, display: true },
|
|
2827
|
+
{ name: "text", type: "string", display: true },
|
|
2828
|
+
{ name: "symbols", type: "object" },
|
|
2829
|
+
{ name: "parentId", type: "string", indexed: true }
|
|
2830
|
+
]
|
|
2831
|
+
},
|
|
2832
|
+
{
|
|
2833
|
+
type: "note:verification",
|
|
2834
|
+
category: "dialogue",
|
|
2835
|
+
label: "Verification",
|
|
2836
|
+
severity: "info",
|
|
2837
|
+
frequency: "medium",
|
|
2838
|
+
fields: [
|
|
2839
|
+
{ name: "sender", type: "string", indexed: true, display: true },
|
|
2840
|
+
{ name: "senderRole", type: "string", indexed: true, display: true },
|
|
2841
|
+
{ name: "text", type: "string", display: true },
|
|
2842
|
+
{ name: "symbols", type: "object" },
|
|
2843
|
+
{ name: "parentId", type: "string", indexed: true }
|
|
2844
|
+
]
|
|
2845
|
+
},
|
|
2846
|
+
{
|
|
2847
|
+
type: "note:reference",
|
|
2848
|
+
category: "dialogue",
|
|
2849
|
+
label: "Reference",
|
|
2850
|
+
severity: "info",
|
|
2851
|
+
frequency: "medium",
|
|
2852
|
+
fields: [
|
|
2853
|
+
{ name: "sender", type: "string", indexed: true, display: true },
|
|
2854
|
+
{ name: "senderRole", type: "string", indexed: true, display: true },
|
|
2855
|
+
{ name: "text", type: "string", display: true },
|
|
2856
|
+
{ name: "symbols", type: "object" },
|
|
2857
|
+
{ name: "parentId", type: "string", indexed: true }
|
|
2858
|
+
]
|
|
2859
|
+
},
|
|
2860
|
+
// ── Action (2) ────────────────────────────────────────
|
|
2861
|
+
{
|
|
2862
|
+
type: "note:proposal",
|
|
2863
|
+
category: "action",
|
|
2864
|
+
label: "Proposal",
|
|
2865
|
+
severity: "info",
|
|
2866
|
+
frequency: "medium",
|
|
2867
|
+
fields: [
|
|
2868
|
+
{ name: "sender", type: "string", indexed: true, display: true },
|
|
2869
|
+
{ name: "senderRole", type: "string", indexed: true, display: true },
|
|
2870
|
+
{ name: "text", type: "string", display: true },
|
|
2871
|
+
{ name: "diff", type: "string" },
|
|
2872
|
+
{ name: "symbols", type: "object" },
|
|
2873
|
+
{ name: "parentId", type: "string", indexed: true }
|
|
2874
|
+
]
|
|
2875
|
+
},
|
|
2876
|
+
{
|
|
2877
|
+
type: "note:action",
|
|
2878
|
+
category: "action",
|
|
2879
|
+
label: "Action",
|
|
2880
|
+
severity: "info",
|
|
2881
|
+
frequency: "medium",
|
|
2882
|
+
fields: [
|
|
2883
|
+
{ name: "sender", type: "string", indexed: true, display: true },
|
|
2884
|
+
{ name: "senderRole", type: "string", indexed: true, display: true },
|
|
2885
|
+
{ name: "text", type: "string", display: true },
|
|
2886
|
+
{ name: "diff", type: "string" },
|
|
2887
|
+
{ name: "symbols", type: "object" },
|
|
2888
|
+
{ name: "parentId", type: "string", indexed: true }
|
|
2889
|
+
]
|
|
2890
|
+
},
|
|
2891
|
+
// ── Outcome (3) ───────────────────────────────────────
|
|
2892
|
+
{
|
|
2893
|
+
type: "note:decision",
|
|
2894
|
+
category: "outcome",
|
|
2895
|
+
label: "Decision",
|
|
2896
|
+
severity: "warn",
|
|
2897
|
+
frequency: "low",
|
|
2898
|
+
fields: [
|
|
2899
|
+
{ name: "sender", type: "string", indexed: true, display: true },
|
|
2900
|
+
{ name: "senderRole", type: "string", indexed: true, display: true },
|
|
2901
|
+
{ name: "text", type: "string", display: true },
|
|
2902
|
+
{ name: "decision", type: "string", display: true },
|
|
2903
|
+
{ name: "symbols", type: "object" },
|
|
2904
|
+
{ name: "parentId", type: "string", indexed: true }
|
|
2905
|
+
]
|
|
2906
|
+
},
|
|
2907
|
+
{
|
|
2908
|
+
type: "note:approval",
|
|
2909
|
+
category: "outcome",
|
|
2910
|
+
label: "Approval",
|
|
2911
|
+
severity: "info",
|
|
2912
|
+
frequency: "low",
|
|
2913
|
+
fields: [
|
|
2914
|
+
{ name: "sender", type: "string", indexed: true, display: true },
|
|
2915
|
+
{ name: "senderRole", type: "string", indexed: true, display: true },
|
|
2916
|
+
{ name: "text", type: "string", display: true },
|
|
2917
|
+
{ name: "parentId", type: "string", indexed: true }
|
|
2918
|
+
]
|
|
2919
|
+
},
|
|
2920
|
+
{
|
|
2921
|
+
type: "note:rejection",
|
|
2922
|
+
category: "outcome",
|
|
2923
|
+
label: "Rejection",
|
|
2924
|
+
severity: "warn",
|
|
2925
|
+
frequency: "low",
|
|
2926
|
+
fields: [
|
|
2927
|
+
{ name: "sender", type: "string", indexed: true, display: true },
|
|
2928
|
+
{ name: "senderRole", type: "string", indexed: true, display: true },
|
|
2929
|
+
{ name: "text", type: "string", display: true },
|
|
2930
|
+
{ name: "parentId", type: "string", indexed: true }
|
|
2931
|
+
]
|
|
2932
|
+
},
|
|
2933
|
+
// ── System (1) ────────────────────────────────────────
|
|
2934
|
+
{
|
|
2935
|
+
type: "note:alert",
|
|
2936
|
+
category: "system",
|
|
2937
|
+
label: "Alert",
|
|
2938
|
+
severity: "error",
|
|
2939
|
+
frequency: "low",
|
|
2940
|
+
fields: [
|
|
2941
|
+
{ name: "sender", type: "string", indexed: true, display: true },
|
|
2942
|
+
{ name: "senderRole", type: "string", indexed: true, display: true },
|
|
2943
|
+
{ name: "text", type: "string", display: true },
|
|
2944
|
+
{ name: "symbols", type: "object" },
|
|
2945
|
+
{ name: "parentId", type: "string", indexed: true }
|
|
2946
|
+
]
|
|
2947
|
+
},
|
|
2948
|
+
// ── Lifecycle (4) ─────────────────────────────────────
|
|
2949
|
+
{
|
|
2950
|
+
type: "note:handoff",
|
|
2951
|
+
category: "lifecycle",
|
|
2952
|
+
label: "Handoff",
|
|
2953
|
+
severity: "info",
|
|
2954
|
+
frequency: "low",
|
|
2955
|
+
fields: [
|
|
2956
|
+
{ name: "sender", type: "string", indexed: true, display: true },
|
|
2957
|
+
{ name: "senderRole", type: "string", indexed: true, display: true },
|
|
2958
|
+
{ name: "text", type: "string", display: true },
|
|
2959
|
+
{ name: "parentId", type: "string", indexed: true }
|
|
2960
|
+
]
|
|
2961
|
+
},
|
|
2962
|
+
{
|
|
2963
|
+
type: "thread:created",
|
|
2964
|
+
category: "lifecycle",
|
|
2965
|
+
label: "Thread Created",
|
|
2966
|
+
severity: "info",
|
|
2967
|
+
frequency: "low",
|
|
2968
|
+
fields: [
|
|
2969
|
+
{ name: "topic", type: "string", display: true },
|
|
2970
|
+
{ name: "initiator", type: "string", indexed: true, display: true }
|
|
2971
|
+
]
|
|
2972
|
+
},
|
|
2973
|
+
{
|
|
2974
|
+
type: "thread:resolved",
|
|
2975
|
+
category: "lifecycle",
|
|
2976
|
+
label: "Thread Resolved",
|
|
2977
|
+
severity: "info",
|
|
2978
|
+
frequency: "low",
|
|
2979
|
+
fields: [
|
|
2980
|
+
{ name: "topic", type: "string", display: true },
|
|
2981
|
+
{ name: "decision", type: "string", display: true }
|
|
2982
|
+
]
|
|
2983
|
+
},
|
|
2984
|
+
{
|
|
2985
|
+
type: "participant:joined",
|
|
2986
|
+
category: "lifecycle",
|
|
2987
|
+
label: "Participant Joined",
|
|
2988
|
+
severity: "info",
|
|
2989
|
+
frequency: "low",
|
|
2990
|
+
fields: [
|
|
2991
|
+
{ name: "participantId", type: "string", indexed: true, display: true },
|
|
2992
|
+
{ name: "participantName", type: "string", display: true },
|
|
2993
|
+
{ name: "participantRole", type: "string", display: true }
|
|
2994
|
+
]
|
|
2995
|
+
},
|
|
2996
|
+
{
|
|
2997
|
+
type: "participant:left",
|
|
2998
|
+
category: "lifecycle",
|
|
2999
|
+
label: "Participant Left",
|
|
3000
|
+
severity: "info",
|
|
3001
|
+
frequency: "low",
|
|
3002
|
+
fields: [
|
|
3003
|
+
{ name: "participantId", type: "string", indexed: true, display: true },
|
|
3004
|
+
{ name: "participantName", type: "string", display: true }
|
|
3005
|
+
]
|
|
3006
|
+
},
|
|
3007
|
+
// ── Transfer (4) ──────────────────────────────────────
|
|
3008
|
+
{
|
|
3009
|
+
type: "file:requested",
|
|
3010
|
+
category: "transfer",
|
|
3011
|
+
label: "File Requested",
|
|
3012
|
+
severity: "info",
|
|
3013
|
+
frequency: "low",
|
|
3014
|
+
fields: [
|
|
3015
|
+
{ name: "requestId", type: "string", indexed: true, display: true },
|
|
3016
|
+
{ name: "filePath", type: "string", display: true },
|
|
3017
|
+
{ name: "requester", type: "string", indexed: true, display: true },
|
|
3018
|
+
{ name: "reason", type: "string", display: true },
|
|
3019
|
+
{ name: "urgency", type: "string", display: true }
|
|
3020
|
+
]
|
|
3021
|
+
},
|
|
3022
|
+
{
|
|
3023
|
+
type: "file:approved",
|
|
3024
|
+
category: "transfer",
|
|
3025
|
+
label: "File Approved",
|
|
3026
|
+
severity: "info",
|
|
3027
|
+
frequency: "low",
|
|
3028
|
+
fields: [
|
|
3029
|
+
{ name: "requestId", type: "string", indexed: true, display: true },
|
|
3030
|
+
{ name: "filePath", type: "string", display: true },
|
|
3031
|
+
{ name: "size", type: "number", display: true },
|
|
3032
|
+
{ name: "hash", type: "string" }
|
|
3033
|
+
]
|
|
3034
|
+
},
|
|
3035
|
+
{
|
|
3036
|
+
type: "file:denied",
|
|
3037
|
+
category: "transfer",
|
|
3038
|
+
label: "File Denied",
|
|
3039
|
+
severity: "warn",
|
|
3040
|
+
frequency: "low",
|
|
3041
|
+
fields: [
|
|
3042
|
+
{ name: "requestId", type: "string", indexed: true, display: true },
|
|
3043
|
+
{ name: "filePath", type: "string", display: true },
|
|
3044
|
+
{ name: "reason", type: "string", display: true }
|
|
3045
|
+
]
|
|
3046
|
+
},
|
|
3047
|
+
{
|
|
3048
|
+
type: "file:delivered",
|
|
3049
|
+
category: "transfer",
|
|
3050
|
+
label: "File Delivered",
|
|
3051
|
+
severity: "info",
|
|
3052
|
+
frequency: "low",
|
|
3053
|
+
fields: [
|
|
3054
|
+
{ name: "requestId", type: "string", indexed: true, display: true },
|
|
3055
|
+
{ name: "filePath", type: "string", display: true },
|
|
3056
|
+
{ name: "size", type: "number", display: true },
|
|
3057
|
+
{ name: "hash", type: "string" }
|
|
3058
|
+
]
|
|
3059
|
+
}
|
|
3060
|
+
],
|
|
3061
|
+
visualization: {
|
|
3062
|
+
defaultView: "tree",
|
|
3063
|
+
categoryColors: {
|
|
3064
|
+
dialogue: "#7dd3fc",
|
|
3065
|
+
action: "#86efac",
|
|
3066
|
+
outcome: "#fbbf24",
|
|
3067
|
+
system: "#f87171",
|
|
3068
|
+
lifecycle: "#a78bfa",
|
|
3069
|
+
transfer: "#34d399"
|
|
3070
|
+
},
|
|
3071
|
+
summaryFields: ["sender", "text", "senderRole"],
|
|
3072
|
+
defaultExcluded: []
|
|
3073
|
+
},
|
|
3074
|
+
tags: ["builtin", "symphony"]
|
|
3075
|
+
};
|
|
3076
|
+
|
|
2616
3077
|
export {
|
|
2617
3078
|
SentinelStorage,
|
|
2618
3079
|
DEFAULT_AUTH_CONFIG,
|
|
@@ -2620,5 +3081,7 @@ export {
|
|
|
2620
3081
|
DEFAULT_SERVER_CONFIG,
|
|
2621
3082
|
loadConfig,
|
|
2622
3083
|
writeConfig,
|
|
2623
|
-
loadServerConfig
|
|
3084
|
+
loadServerConfig,
|
|
3085
|
+
PARADIGM_SCHEMA,
|
|
3086
|
+
SYMPHONY_SCHEMA
|
|
2624
3087
|
};
|
package/dist/cli.js
CHANGED
|
@@ -2,31 +2,34 @@
|
|
|
2
2
|
|
|
3
3
|
// src/cli.ts
|
|
4
4
|
import { Command } from "commander";
|
|
5
|
+
import { createRequire } from "module";
|
|
6
|
+
var require2 = createRequire(import.meta.url);
|
|
7
|
+
var { version: VERSION } = require2("../package.json");
|
|
5
8
|
var program = new Command();
|
|
6
|
-
program.name("sentinel").description("Semantic error monitoring \u2014 errors that speak your language").version(
|
|
7
|
-
program.command("
|
|
8
|
-
const { launchDashboard } = await import("./commands-
|
|
9
|
+
program.name("sentinel").description("Semantic error monitoring \u2014 errors that speak your language").version(VERSION);
|
|
10
|
+
program.command("defend", { isDefault: true }).description("Launch the Sentinel dashboard").option("-p, --port <port>", "Port number", "3838").option("--no-open", "Don't open browser").action(async (opts) => {
|
|
11
|
+
const { launchDashboard } = await import("./commands-EV7I6V3F.js");
|
|
9
12
|
await launchDashboard(opts);
|
|
10
13
|
});
|
|
11
14
|
program.command("init").description("Initialize Sentinel in current project").option("--detect", "Auto-detect symbols from codebase").action(async (opts) => {
|
|
12
|
-
const { initProject } = await import("./commands-
|
|
15
|
+
const { initProject } = await import("./commands-EV7I6V3F.js");
|
|
13
16
|
await initProject(opts);
|
|
14
17
|
});
|
|
15
18
|
var triage = program.command("triage").description("Incident triage");
|
|
16
19
|
triage.command("list").description("List incidents").option("-s, --status <status>", "Filter by status (open, investigating, resolved, wont-fix)").option("-e, --env <env>", "Filter by environment").option("--symbol <symbol>", "Filter by symbol").option("-n, --limit <n>", "Max results", "10").action(async (opts) => {
|
|
17
|
-
const { triageList } = await import("./commands-
|
|
20
|
+
const { triageList } = await import("./commands-EV7I6V3F.js");
|
|
18
21
|
await triageList(opts);
|
|
19
22
|
});
|
|
20
23
|
triage.command("show <id>").description("Show incident details").option("--timeline", "Include flow timeline").action(async (id, opts) => {
|
|
21
|
-
const { triageShow } = await import("./commands-
|
|
24
|
+
const { triageShow } = await import("./commands-EV7I6V3F.js");
|
|
22
25
|
await triageShow(id, opts);
|
|
23
26
|
});
|
|
24
27
|
triage.command("resolve <id>").description("Resolve an incident").option("--pattern <id>", "Pattern that resolved it").option("--commit <hash>", "Fix commit").option("--notes <text>", "Resolution notes").action(async (id, opts) => {
|
|
25
|
-
const { triageResolve } = await import("./commands-
|
|
28
|
+
const { triageResolve } = await import("./commands-EV7I6V3F.js");
|
|
26
29
|
await triageResolve(id, opts);
|
|
27
30
|
});
|
|
28
31
|
triage.command("stats").description("Show incident statistics").option("-p, --period <period>", "Period (7d, 30d, 90d)", "7d").action(async (opts) => {
|
|
29
|
-
const { triageStats } = await import("./commands-
|
|
32
|
+
const { triageStats } = await import("./commands-EV7I6V3F.js");
|
|
30
33
|
await triageStats(opts);
|
|
31
34
|
});
|
|
32
35
|
program.parse();
|