@principles/core 1.298.2 → 2.1.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/runtime-v2/evidence-triage/index.d.ts +1 -3
- package/dist/runtime-v2/evidence-triage/index.d.ts.map +1 -1
- package/dist/runtime-v2/evidence-triage/index.js +1 -2
- package/dist/runtime-v2/evidence-triage/index.js.map +1 -1
- package/dist/runtime-v2/evidence-triage/observation-resolver.d.ts +0 -19
- package/dist/runtime-v2/evidence-triage/observation-resolver.d.ts.map +1 -1
- package/dist/runtime-v2/evidence-triage/observation-resolver.js +0 -25
- package/dist/runtime-v2/evidence-triage/observation-resolver.js.map +1 -1
- package/dist/runtime-v2/index.d.ts +4 -4
- package/dist/runtime-v2/index.d.ts.map +1 -1
- package/dist/runtime-v2/index.js +2 -2
- package/dist/runtime-v2/index.js.map +1 -1
- package/dist/runtime-v2/pain-ingress-payload.d.ts +13 -1
- package/dist/runtime-v2/pain-ingress-payload.d.ts.map +1 -1
- package/dist/runtime-v2/pain-ingress-payload.js +21 -2
- package/dist/runtime-v2/pain-ingress-payload.js.map +1 -1
- package/dist/runtime-v2/pain-ingress.d.ts.map +1 -1
- package/dist/runtime-v2/pain-ingress.js +3 -0
- package/dist/runtime-v2/pain-ingress.js.map +1 -1
- package/dist/runtime-v2/signal-collector/confidence-gate.d.ts +35 -0
- package/dist/runtime-v2/signal-collector/confidence-gate.d.ts.map +1 -0
- package/dist/runtime-v2/signal-collector/confidence-gate.js +48 -0
- package/dist/runtime-v2/signal-collector/confidence-gate.js.map +1 -0
- package/dist/runtime-v2/signal-collector/index.d.ts +1 -0
- package/dist/runtime-v2/signal-collector/index.d.ts.map +1 -1
- package/dist/runtime-v2/signal-collector/index.js +1 -0
- package/dist/runtime-v2/signal-collector/index.js.map +1 -1
- package/dist/runtime-v2/signal-collector/keyword-stage.d.ts +4 -6
- package/dist/runtime-v2/signal-collector/keyword-stage.d.ts.map +1 -1
- package/dist/runtime-v2/signal-collector/keyword-stage.js +100 -9
- package/dist/runtime-v2/signal-collector/keyword-stage.js.map +1 -1
- package/dist/runtime-v2/store/context/sqlite-context-assembler.d.ts.map +1 -1
- package/dist/runtime-v2/store/context/sqlite-context-assembler.js +8 -4
- package/dist/runtime-v2/store/context/sqlite-context-assembler.js.map +1 -1
- package/dist/telemetry-event.d.ts +2 -2
- package/dist/telemetry-event.d.ts.map +1 -1
- package/dist/telemetry-event.js +4 -5
- package/dist/telemetry-event.js.map +1 -1
- package/dist/trajectory-store.d.ts.map +1 -1
- package/dist/trajectory-store.js +4 -44
- package/dist/trajectory-store.js.map +1 -1
- package/package.json +3 -2
- package/dist/runtime-v2/evidence-triage/admission-events.d.ts +0 -126
- package/dist/runtime-v2/evidence-triage/admission-events.d.ts.map +0 -1
- package/dist/runtime-v2/evidence-triage/admission-events.js +0 -159
- package/dist/runtime-v2/evidence-triage/admission-events.js.map +0 -1
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Admission Events — PEAT-B2
|
|
3
|
-
*
|
|
4
|
-
* Structured event types for the pain evidence admission pipeline.
|
|
5
|
-
* These events make admission decisions observable without exposing raw data.
|
|
6
|
-
*
|
|
7
|
-
* Privacy boundary: events MUST NOT contain raw prompt, raw chat, raw trajectory,
|
|
8
|
-
* full local paths, file contents, env vars, tokens, or API keys.
|
|
9
|
-
*
|
|
10
|
-
* ERR checklist:
|
|
11
|
-
* - ERR-002: Every event has reason + nextAction.
|
|
12
|
-
* - ERR-009: Malformed input events include validation error details.
|
|
13
|
-
*/
|
|
14
|
-
import type { TriggerOutcome, TriggerDecision } from './trigger-controller.js';
|
|
15
|
-
import type { SourceKind, TriageDecision } from './types.js';
|
|
16
|
-
/**
|
|
17
|
-
* Base fields shared by all admission events.
|
|
18
|
-
*/
|
|
19
|
-
interface AdmissionEventBase {
|
|
20
|
-
/** Unique event ID */
|
|
21
|
-
readonly eventId: string;
|
|
22
|
-
/** ISO timestamp */
|
|
23
|
-
readonly timestamp: string;
|
|
24
|
-
/** Source kind that was evaluated */
|
|
25
|
-
readonly sourceKind: SourceKind;
|
|
26
|
-
/** Workspace reference (directory name only, no full path) */
|
|
27
|
-
readonly workspaceRef: string;
|
|
28
|
-
/** Session ID (may be truncated for privacy) */
|
|
29
|
-
readonly sessionId?: string;
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Emitted when the admission controller makes a decision.
|
|
33
|
-
* This is the primary observability event for the admission pipeline.
|
|
34
|
-
*/
|
|
35
|
-
export interface AdmissionDecisionEvent extends AdmissionEventBase {
|
|
36
|
-
readonly eventType: 'admission_decision';
|
|
37
|
-
readonly triageDecision: TriageDecision;
|
|
38
|
-
readonly triggerOutcome: TriggerOutcome;
|
|
39
|
-
readonly reason: string;
|
|
40
|
-
readonly nextAction: string;
|
|
41
|
-
readonly shouldCreateDiagnosticTask: boolean;
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Emitted when a diagnostic task is created as a result of admission.
|
|
45
|
-
*/
|
|
46
|
-
export interface DiagnosisTaskCreatedEvent extends AdmissionEventBase {
|
|
47
|
-
readonly eventType: 'diagnosis_task_created';
|
|
48
|
-
readonly painId: string;
|
|
49
|
-
readonly taskId: string;
|
|
50
|
-
readonly triggerOutcome: TriggerOutcome;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Emitted when evidence is recorded without triggering diagnosis.
|
|
54
|
-
*/
|
|
55
|
-
export interface EvidenceOnlyRecordedEvent extends AdmissionEventBase {
|
|
56
|
-
readonly eventType: 'evidence_only_recorded';
|
|
57
|
-
readonly triageDecision: TriageDecision;
|
|
58
|
-
readonly reason: string;
|
|
59
|
-
readonly nextAction: string;
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Emitted when a signal is skipped or refused.
|
|
63
|
-
*/
|
|
64
|
-
export interface SkippedRefusedEvent extends AdmissionEventBase {
|
|
65
|
-
readonly eventType: 'skipped_refused';
|
|
66
|
-
readonly triggerOutcome: TriggerOutcome;
|
|
67
|
-
readonly reason: string;
|
|
68
|
-
readonly nextAction: string;
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Union of all admission event types.
|
|
72
|
-
*/
|
|
73
|
-
export type AdmissionEvent = AdmissionDecisionEvent | DiagnosisTaskCreatedEvent | EvidenceOnlyRecordedEvent | SkippedRefusedEvent;
|
|
74
|
-
/**
|
|
75
|
-
* Create an AdmissionDecisionEvent from a TriggerDecision.
|
|
76
|
-
*
|
|
77
|
-
* This is the canonical way to produce an admission event.
|
|
78
|
-
* The event contains no raw sensitive data — only structured metadata.
|
|
79
|
-
*/
|
|
80
|
-
export declare function createAdmissionDecisionEvent(decision: TriggerDecision, options: {
|
|
81
|
-
workspaceRef: string;
|
|
82
|
-
sessionId?: string;
|
|
83
|
-
}): AdmissionDecisionEvent;
|
|
84
|
-
/**
|
|
85
|
-
* Create a DiagnosisTaskCreatedEvent.
|
|
86
|
-
*/
|
|
87
|
-
export declare function createDiagnosisTaskCreatedEvent(opts: {
|
|
88
|
-
painId: string;
|
|
89
|
-
taskId: string;
|
|
90
|
-
decision: TriggerDecision;
|
|
91
|
-
workspaceRef: string;
|
|
92
|
-
sessionId?: string;
|
|
93
|
-
}): DiagnosisTaskCreatedEvent;
|
|
94
|
-
/**
|
|
95
|
-
* Create an EvidenceOnlyRecordedEvent.
|
|
96
|
-
*/
|
|
97
|
-
export declare function createEvidenceOnlyRecordedEvent(decision: TriggerDecision, options: {
|
|
98
|
-
workspaceRef: string;
|
|
99
|
-
sessionId?: string;
|
|
100
|
-
}): EvidenceOnlyRecordedEvent;
|
|
101
|
-
/**
|
|
102
|
-
* Create a SkippedRefusedEvent.
|
|
103
|
-
*/
|
|
104
|
-
export declare function createSkippedRefusedEvent(decision: TriggerDecision, options: {
|
|
105
|
-
workspaceRef: string;
|
|
106
|
-
sessionId?: string;
|
|
107
|
-
}): SkippedRefusedEvent;
|
|
108
|
-
/**
|
|
109
|
-
* Serialize an admission event to a JSONL-safe string.
|
|
110
|
-
*
|
|
111
|
-
* Privacy boundary: only structured fields are included.
|
|
112
|
-
* No raw prompt/chat/trajectory/file content/token/path secrets.
|
|
113
|
-
*/
|
|
114
|
-
export declare function serializeAdmissionEvent(event: AdmissionEvent): string;
|
|
115
|
-
/**
|
|
116
|
-
* Validate that an admission event does not contain raw sensitive data.
|
|
117
|
-
*
|
|
118
|
-
* Returns true if the event passes privacy checks.
|
|
119
|
-
* This is a defense-in-depth check for tests and auditing.
|
|
120
|
-
*/
|
|
121
|
-
export declare function validateEventPrivacy(event: AdmissionEvent): {
|
|
122
|
-
valid: boolean;
|
|
123
|
-
violations: string[];
|
|
124
|
-
};
|
|
125
|
-
export {};
|
|
126
|
-
//# sourceMappingURL=admission-events.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"admission-events.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/evidence-triage/admission-events.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,159 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Admission Events — PEAT-B2
|
|
3
|
-
*
|
|
4
|
-
* Structured event types for the pain evidence admission pipeline.
|
|
5
|
-
* These events make admission decisions observable without exposing raw data.
|
|
6
|
-
*
|
|
7
|
-
* Privacy boundary: events MUST NOT contain raw prompt, raw chat, raw trajectory,
|
|
8
|
-
* full local paths, file contents, env vars, tokens, or API keys.
|
|
9
|
-
*
|
|
10
|
-
* ERR checklist:
|
|
11
|
-
* - ERR-002: Every event has reason + nextAction.
|
|
12
|
-
* - ERR-009: Malformed input events include validation error details.
|
|
13
|
-
*/
|
|
14
|
-
// ── Event Factory Functions ─────────────────────────────────────────────────
|
|
15
|
-
let eventCounter = 0;
|
|
16
|
-
function nextEventId() {
|
|
17
|
-
return `adm_${Date.now()}_${++eventCounter}`;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Create an AdmissionDecisionEvent from a TriggerDecision.
|
|
21
|
-
*
|
|
22
|
-
* This is the canonical way to produce an admission event.
|
|
23
|
-
* The event contains no raw sensitive data — only structured metadata.
|
|
24
|
-
*/
|
|
25
|
-
export function createAdmissionDecisionEvent(decision, options) {
|
|
26
|
-
return {
|
|
27
|
-
eventType: 'admission_decision',
|
|
28
|
-
eventId: nextEventId(),
|
|
29
|
-
timestamp: decision.decidedAt,
|
|
30
|
-
sourceKind: decision.sourceKind,
|
|
31
|
-
workspaceRef: options.workspaceRef,
|
|
32
|
-
sessionId: options.sessionId,
|
|
33
|
-
triageDecision: decision.triageDecision,
|
|
34
|
-
triggerOutcome: decision.outcome,
|
|
35
|
-
reason: decision.reason,
|
|
36
|
-
nextAction: decision.nextAction,
|
|
37
|
-
shouldCreateDiagnosticTask: decision.shouldCreateDiagnosticTask,
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Create a DiagnosisTaskCreatedEvent.
|
|
42
|
-
*/
|
|
43
|
-
export function createDiagnosisTaskCreatedEvent(opts) {
|
|
44
|
-
return {
|
|
45
|
-
eventType: 'diagnosis_task_created',
|
|
46
|
-
eventId: nextEventId(),
|
|
47
|
-
timestamp: new Date().toISOString(),
|
|
48
|
-
sourceKind: opts.decision.sourceKind,
|
|
49
|
-
workspaceRef: opts.workspaceRef,
|
|
50
|
-
sessionId: opts.sessionId,
|
|
51
|
-
painId: opts.painId,
|
|
52
|
-
taskId: opts.taskId,
|
|
53
|
-
triggerOutcome: opts.decision.outcome,
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Create an EvidenceOnlyRecordedEvent.
|
|
58
|
-
*/
|
|
59
|
-
export function createEvidenceOnlyRecordedEvent(decision, options) {
|
|
60
|
-
return {
|
|
61
|
-
eventType: 'evidence_only_recorded',
|
|
62
|
-
eventId: nextEventId(),
|
|
63
|
-
timestamp: decision.decidedAt,
|
|
64
|
-
sourceKind: decision.sourceKind,
|
|
65
|
-
workspaceRef: options.workspaceRef,
|
|
66
|
-
sessionId: options.sessionId,
|
|
67
|
-
triageDecision: decision.triageDecision,
|
|
68
|
-
reason: decision.reason,
|
|
69
|
-
nextAction: decision.nextAction,
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Create a SkippedRefusedEvent.
|
|
74
|
-
*/
|
|
75
|
-
export function createSkippedRefusedEvent(decision, options) {
|
|
76
|
-
return {
|
|
77
|
-
eventType: 'skipped_refused',
|
|
78
|
-
eventId: nextEventId(),
|
|
79
|
-
timestamp: decision.decidedAt,
|
|
80
|
-
sourceKind: decision.sourceKind,
|
|
81
|
-
workspaceRef: options.workspaceRef,
|
|
82
|
-
sessionId: options.sessionId,
|
|
83
|
-
triggerOutcome: decision.outcome,
|
|
84
|
-
reason: decision.reason,
|
|
85
|
-
nextAction: decision.nextAction,
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
// ── Event Serialization ─────────────────────────────────────────────────────
|
|
89
|
-
/**
|
|
90
|
-
* Serialize an admission event to a JSONL-safe string.
|
|
91
|
-
*
|
|
92
|
-
* Privacy boundary: only structured fields are included.
|
|
93
|
-
* No raw prompt/chat/trajectory/file content/token/path secrets.
|
|
94
|
-
*/
|
|
95
|
-
export function serializeAdmissionEvent(event) {
|
|
96
|
-
// Explicit field selection prevents accidental raw data leakage
|
|
97
|
-
const safe = {
|
|
98
|
-
eventType: event.eventType,
|
|
99
|
-
eventId: event.eventId,
|
|
100
|
-
timestamp: event.timestamp,
|
|
101
|
-
sourceKind: event.sourceKind,
|
|
102
|
-
workspaceRef: event.workspaceRef,
|
|
103
|
-
sessionId: event.sessionId,
|
|
104
|
-
};
|
|
105
|
-
if (event.eventType === 'admission_decision') {
|
|
106
|
-
safe.triageDecision = event.triageDecision;
|
|
107
|
-
safe.triggerOutcome = event.triggerOutcome;
|
|
108
|
-
safe.reason = event.reason;
|
|
109
|
-
safe.nextAction = event.nextAction;
|
|
110
|
-
safe.shouldCreateDiagnosticTask = event.shouldCreateDiagnosticTask;
|
|
111
|
-
}
|
|
112
|
-
else if (event.eventType === 'diagnosis_task_created') {
|
|
113
|
-
safe.painId = event.painId;
|
|
114
|
-
safe.taskId = event.taskId;
|
|
115
|
-
safe.triggerOutcome = event.triggerOutcome;
|
|
116
|
-
}
|
|
117
|
-
else if (event.eventType === 'evidence_only_recorded') {
|
|
118
|
-
safe.triageDecision = event.triageDecision;
|
|
119
|
-
safe.reason = event.reason;
|
|
120
|
-
safe.nextAction = event.nextAction;
|
|
121
|
-
}
|
|
122
|
-
else if (event.eventType === 'skipped_refused') {
|
|
123
|
-
safe.triggerOutcome = event.triggerOutcome;
|
|
124
|
-
safe.reason = event.reason;
|
|
125
|
-
safe.nextAction = event.nextAction;
|
|
126
|
-
}
|
|
127
|
-
return JSON.stringify(safe);
|
|
128
|
-
}
|
|
129
|
-
// ── Validation ──────────────────────────────────────────────────────────────
|
|
130
|
-
/**
|
|
131
|
-
* Validate that an admission event does not contain raw sensitive data.
|
|
132
|
-
*
|
|
133
|
-
* Returns true if the event passes privacy checks.
|
|
134
|
-
* This is a defense-in-depth check for tests and auditing.
|
|
135
|
-
*/
|
|
136
|
-
export function validateEventPrivacy(event) {
|
|
137
|
-
const violations = [];
|
|
138
|
-
const serialized = JSON.stringify(event);
|
|
139
|
-
// Check for common sensitive patterns
|
|
140
|
-
if (/sk-[a-zA-Z0-9]{20,}/.test(serialized)) {
|
|
141
|
-
violations.push('potential_api_key_detected');
|
|
142
|
-
}
|
|
143
|
-
// Check for absolute paths in JSON-serialized form.
|
|
144
|
-
// JSON.stringify('C:\\Users\\admin') produces "C:\\\\Users\\\\admin" in the JSON string.
|
|
145
|
-
// At runtime, serialized.includes('Users\\') checks for Users followed by one backslash.
|
|
146
|
-
const hasWindowsPath = serialized.includes('Users\\') ||
|
|
147
|
-
/[A-Z]:\\[Uu]sers/.test(serialized);
|
|
148
|
-
if (hasWindowsPath) {
|
|
149
|
-
violations.push('absolute_windows_path_detected');
|
|
150
|
-
}
|
|
151
|
-
if (/\/home\/[a-z]/.test(serialized)) {
|
|
152
|
-
violations.push('absolute_unix_path_detected');
|
|
153
|
-
}
|
|
154
|
-
if (/"prompt"\s*:\s*"/.test(serialized) && serialized.length > 2000) {
|
|
155
|
-
violations.push('potential_raw_prompt_in_event');
|
|
156
|
-
}
|
|
157
|
-
return { valid: violations.length === 0, violations };
|
|
158
|
-
}
|
|
159
|
-
//# sourceMappingURL=admission-events.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"admission-events.js","sourceRoot":"","sources":["../../../src/runtime-v2/evidence-triage/admission-events.ts"],"names":[],"mappings":"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"}
|