@principles/core 1.76.0 → 1.77.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/__tests__/architecture-regression.test.js +12 -0
- package/dist/runtime-v2/__tests__/architecture-regression.test.js.map +1 -1
- package/dist/runtime-v2/__tests__/feedback/create-report.test.d.ts +2 -0
- package/dist/runtime-v2/__tests__/feedback/create-report.test.d.ts.map +1 -0
- package/dist/runtime-v2/__tests__/feedback/create-report.test.js +402 -0
- package/dist/runtime-v2/__tests__/feedback/create-report.test.js.map +1 -0
- package/dist/runtime-v2/__tests__/feedback/privacy-preview.test.d.ts +2 -0
- package/dist/runtime-v2/__tests__/feedback/privacy-preview.test.d.ts.map +1 -0
- package/dist/runtime-v2/__tests__/feedback/privacy-preview.test.js +128 -0
- package/dist/runtime-v2/__tests__/feedback/privacy-preview.test.js.map +1 -0
- package/dist/runtime-v2/__tests__/feedback/redact-sensitive.test.d.ts +2 -0
- package/dist/runtime-v2/__tests__/feedback/redact-sensitive.test.d.ts.map +1 -0
- package/dist/runtime-v2/__tests__/feedback/redact-sensitive.test.js +231 -0
- package/dist/runtime-v2/__tests__/feedback/redact-sensitive.test.js.map +1 -0
- package/dist/runtime-v2/__tests__/feedback/render-github-url.test.d.ts +2 -0
- package/dist/runtime-v2/__tests__/feedback/render-github-url.test.d.ts.map +1 -0
- package/dist/runtime-v2/__tests__/feedback/render-github-url.test.js +102 -0
- package/dist/runtime-v2/__tests__/feedback/render-github-url.test.js.map +1 -0
- package/dist/runtime-v2/__tests__/feedback/render-markdown.test.d.ts +2 -0
- package/dist/runtime-v2/__tests__/feedback/render-markdown.test.d.ts.map +1 -0
- package/dist/runtime-v2/__tests__/feedback/render-markdown.test.js +130 -0
- package/dist/runtime-v2/__tests__/feedback/render-markdown.test.js.map +1 -0
- package/dist/runtime-v2/feature-flags/__tests__/feature-flag-contract.test.js +11 -0
- package/dist/runtime-v2/feature-flags/__tests__/feature-flag-contract.test.js.map +1 -1
- package/dist/runtime-v2/feature-flags/feature-flag-contract.d.ts.map +1 -1
- package/dist/runtime-v2/feature-flags/feature-flag-contract.js +2 -1
- package/dist/runtime-v2/feature-flags/feature-flag-contract.js.map +1 -1
- package/dist/runtime-v2/feedback/create-report.d.ts +14 -0
- package/dist/runtime-v2/feedback/create-report.d.ts.map +1 -0
- package/dist/runtime-v2/feedback/create-report.js +257 -0
- package/dist/runtime-v2/feedback/create-report.js.map +1 -0
- package/dist/runtime-v2/feedback/feedback-types.d.ts +120 -0
- package/dist/runtime-v2/feedback/feedback-types.d.ts.map +1 -0
- package/dist/runtime-v2/feedback/feedback-types.js +243 -0
- package/dist/runtime-v2/feedback/feedback-types.js.map +1 -0
- package/dist/runtime-v2/feedback/index.d.ts +9 -0
- package/dist/runtime-v2/feedback/index.d.ts.map +1 -0
- package/dist/runtime-v2/feedback/index.js +11 -0
- package/dist/runtime-v2/feedback/index.js.map +1 -0
- package/dist/runtime-v2/feedback/internal-guards.d.ts +2 -0
- package/dist/runtime-v2/feedback/internal-guards.d.ts.map +1 -0
- package/dist/runtime-v2/feedback/internal-guards.js +6 -0
- package/dist/runtime-v2/feedback/internal-guards.js.map +1 -0
- package/dist/runtime-v2/feedback/privacy-preview.d.ts +14 -0
- package/dist/runtime-v2/feedback/privacy-preview.d.ts.map +1 -0
- package/dist/runtime-v2/feedback/privacy-preview.js +128 -0
- package/dist/runtime-v2/feedback/privacy-preview.js.map +1 -0
- package/dist/runtime-v2/feedback/redact-sensitive.d.ts +37 -0
- package/dist/runtime-v2/feedback/redact-sensitive.d.ts.map +1 -0
- package/dist/runtime-v2/feedback/redact-sensitive.js +272 -0
- package/dist/runtime-v2/feedback/redact-sensitive.js.map +1 -0
- package/dist/runtime-v2/feedback/render-github-url.d.ts +21 -0
- package/dist/runtime-v2/feedback/render-github-url.d.ts.map +1 -0
- package/dist/runtime-v2/feedback/render-github-url.js +57 -0
- package/dist/runtime-v2/feedback/render-github-url.js.map +1 -0
- package/dist/runtime-v2/feedback/render-markdown.d.ts +12 -0
- package/dist/runtime-v2/feedback/render-markdown.d.ts.map +1 -0
- package/dist/runtime-v2/feedback/render-markdown.js +166 -0
- package/dist/runtime-v2/feedback/render-markdown.js.map +1 -0
- package/dist/runtime-v2/feedback/safe-stringify.d.ts +6 -0
- package/dist/runtime-v2/feedback/safe-stringify.d.ts.map +1 -0
- package/dist/runtime-v2/feedback/safe-stringify.js +115 -0
- package/dist/runtime-v2/feedback/safe-stringify.js.map +1 -0
- package/dist/runtime-v2/index.d.ts +2 -0
- package/dist/runtime-v2/index.d.ts.map +1 -1
- package/dist/runtime-v2/index.js +7 -0
- package/dist/runtime-v2/index.js.map +1 -1
- package/package.json +5 -1
|
@@ -51,8 +51,9 @@ export const DEFAULT_FEATURE_FLAGS = [
|
|
|
51
51
|
{ id: 'prompt', category: 'core', enabled: true, since: '2026-05-24', description: 'Prompt injection for principle application' },
|
|
52
52
|
{ id: 'code_tool_hook', category: 'core', enabled: true, since: '2026-05-24', description: 'Code tool hook for rule host enforcement' },
|
|
53
53
|
{ id: 'defer_archive', category: 'core', enabled: true, since: '2026-05-24', description: 'Defer/archive activation writer' },
|
|
54
|
-
// MVP-Quiet —
|
|
54
|
+
// MVP-Quiet — opt-in or opt-out via config; enabled value varies per flag
|
|
55
55
|
// Only flags with real consumption paths are registered (PRI-239 constraint)
|
|
56
|
+
{ id: 'feedback_channel', category: 'quiet', enabled: true, since: '2026-06-01', description: 'MVP seed feedback channel — privacy-preserving report drafts' },
|
|
56
57
|
{ id: 'gfi', category: 'quiet', enabled: false, since: '2026-05-24', description: 'Global Friction Index session scoring' },
|
|
57
58
|
// MVP-Gone — permanently disabled, cannot be re-enabled
|
|
58
59
|
{ id: 'nocturnal', category: 'gone', enabled: false, since: '2026-05-24', description: 'Nocturnal trinity pipeline (retired)' },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-flag-contract.js","sourceRoot":"","sources":["../../../src/runtime-v2/feature-flags/feature-flag-contract.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"feature-flag-contract.js","sourceRoot":"","sources":["../../../src/runtime-v2/feature-flags/feature-flag-contract.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { FeedbackReport, ValidationError } from './feedback-types.js';
|
|
2
|
+
export type CreateReportResult = {
|
|
3
|
+
ok: true;
|
|
4
|
+
report: FeedbackReport;
|
|
5
|
+
} | {
|
|
6
|
+
ok: false;
|
|
7
|
+
errors: ValidationError[];
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Create a FeedbackReport from untrusted input + diagnostics.
|
|
11
|
+
* No `as` casts on untrusted values. Failure paths return structured errors.
|
|
12
|
+
*/
|
|
13
|
+
export declare function createFeedbackReport(input: unknown, diagnostics: unknown): CreateReportResult;
|
|
14
|
+
//# sourceMappingURL=create-report.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-report.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/feedback/create-report.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,cAAc,EAId,eAAe,EAGhB,MAAM,qBAAqB,CAAC;AAiB7B,MAAM,MAAM,kBAAkB,GAC1B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,cAAc,CAAA;CAAE,GACpC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,eAAe,EAAE,CAAA;CAAE,CAAC;AAiI7C;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,OAAO,EACd,WAAW,EAAE,OAAO,GACnB,kBAAkB,CAwHpB"}
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
// create-report.ts
|
|
2
|
+
// Orchestrator: validate input → collect diagnostics → redact → render.
|
|
3
|
+
// ERR-001/005/013: no `as` casts on untrusted input.
|
|
4
|
+
// ERR-002: failure paths return {ok: false, errors: ValidationError[]}; success returns {ok: true, report: FeedbackReport}.
|
|
5
|
+
// ERR-003: redaction uses segment-exact key matching (handled by redact-sensitive).
|
|
6
|
+
// ERR-014/016/017: bounded previews, BigInt-safe safeStringifyPreview.
|
|
7
|
+
import { isRecord, isString, isUserSeverity, normalizeFeedbackDraftInput, } from './feedback-types.js';
|
|
8
|
+
import { redactAbsolutePaths, redactTokenLikeValues, redactEnvLikeValues, redactSensitiveFields, } from './redact-sensitive.js';
|
|
9
|
+
import { renderReportMarkdown } from './render-markdown.js';
|
|
10
|
+
import { buildGitHubIssueDraftUrl } from './render-github-url.js';
|
|
11
|
+
import { buildPrivacyPreview, buildEmailText } from './privacy-preview.js';
|
|
12
|
+
const MAX_DESCRIPTION_FOR_REDACT = 8000;
|
|
13
|
+
const MAX_STEPS_FOR_REDACT = 8000;
|
|
14
|
+
const MAX_CONTEXT_REFS = 12;
|
|
15
|
+
const MAX_REDACTION_NOTES = 20;
|
|
16
|
+
function generateReportId() {
|
|
17
|
+
try {
|
|
18
|
+
if (typeof globalThis.crypto !== 'undefined' && typeof globalThis.crypto.randomUUID === 'function') {
|
|
19
|
+
return 'fb-' + globalThis.crypto.randomUUID();
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
// Fallback below
|
|
24
|
+
}
|
|
25
|
+
const ts = Date.now().toString(36);
|
|
26
|
+
const rand = Math.random().toString(36).slice(2, 8);
|
|
27
|
+
return 'fb-' + ts + '-' + rand;
|
|
28
|
+
}
|
|
29
|
+
function applyUserTextRedactions(text) {
|
|
30
|
+
if (typeof text !== 'string')
|
|
31
|
+
return '';
|
|
32
|
+
let out = text;
|
|
33
|
+
if (out.length > MAX_DESCRIPTION_FOR_REDACT) {
|
|
34
|
+
out = out.slice(0, MAX_DESCRIPTION_FOR_REDACT);
|
|
35
|
+
}
|
|
36
|
+
out = redactAbsolutePaths(out);
|
|
37
|
+
out = redactTokenLikeValues(out);
|
|
38
|
+
out = redactEnvLikeValues(out);
|
|
39
|
+
return out;
|
|
40
|
+
}
|
|
41
|
+
function applyStepsRedactions(text) {
|
|
42
|
+
if (typeof text !== 'string')
|
|
43
|
+
return undefined;
|
|
44
|
+
let out = text;
|
|
45
|
+
if (out.length > MAX_STEPS_FOR_REDACT) {
|
|
46
|
+
out = out.slice(0, MAX_STEPS_FOR_REDACT);
|
|
47
|
+
}
|
|
48
|
+
out = redactAbsolutePaths(out);
|
|
49
|
+
out = redactTokenLikeValues(out);
|
|
50
|
+
out = redactEnvLikeValues(out);
|
|
51
|
+
return out;
|
|
52
|
+
}
|
|
53
|
+
function pushContextRef(refs, kind, args) {
|
|
54
|
+
if (refs.length >= MAX_CONTEXT_REFS)
|
|
55
|
+
return;
|
|
56
|
+
if (typeof args.id !== 'string' || args.id.length === 0)
|
|
57
|
+
return;
|
|
58
|
+
const r = { kind, id: args.id };
|
|
59
|
+
if (typeof args.label === 'string' && args.label.length > 0)
|
|
60
|
+
r.label = args.label;
|
|
61
|
+
refs.push(r);
|
|
62
|
+
}
|
|
63
|
+
function pickString(value) {
|
|
64
|
+
return typeof value === 'string' ? value : undefined;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Build a DiagnosticSummary from an unknown diagnostics value.
|
|
68
|
+
* Always returns a valid DiagnosticSummary. Records `unavailableReason` for
|
|
69
|
+
* unparseable versions/feature flags/canary — never throws.
|
|
70
|
+
*/
|
|
71
|
+
function collectDiagnostics(diagnostics) {
|
|
72
|
+
if (!isRecord(diagnostics)) {
|
|
73
|
+
return {
|
|
74
|
+
versions: { unavailableReason: 'diagnostics not provided' },
|
|
75
|
+
platform: { unavailableReason: 'diagnostics not provided' },
|
|
76
|
+
featureFlags: { unavailableReason: 'diagnostics not provided' },
|
|
77
|
+
canary: { status: 'unavailable', unavailableReason: 'diagnostics not provided' },
|
|
78
|
+
recentEvents: [],
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
// versions
|
|
82
|
+
let versions = { unavailableReason: 'versions not available' };
|
|
83
|
+
if (Object.hasOwn(diagnostics, 'versions') && isRecord(diagnostics.versions)) {
|
|
84
|
+
versions = { ...diagnostics.versions };
|
|
85
|
+
}
|
|
86
|
+
// platform
|
|
87
|
+
let platform = { unavailableReason: 'platform not available' };
|
|
88
|
+
if (Object.hasOwn(diagnostics, 'platform') && isRecord(diagnostics.platform)) {
|
|
89
|
+
platform = { ...diagnostics.platform };
|
|
90
|
+
}
|
|
91
|
+
// featureFlags
|
|
92
|
+
let featureFlags = { unavailableReason: 'feature flags not available' };
|
|
93
|
+
if (Object.hasOwn(diagnostics, 'featureFlags') && isRecord(diagnostics.featureFlags)) {
|
|
94
|
+
featureFlags = { ...diagnostics.featureFlags };
|
|
95
|
+
}
|
|
96
|
+
// canary
|
|
97
|
+
let canary = { status: 'unavailable', unavailableReason: 'canary not available' };
|
|
98
|
+
if (Object.hasOwn(diagnostics, 'canary') && isRecord(diagnostics.canary)) {
|
|
99
|
+
const c = diagnostics.canary;
|
|
100
|
+
if (Object.hasOwn(c, 'status') && (c.status === 'available' || c.status === 'unavailable')) {
|
|
101
|
+
const { status } = c;
|
|
102
|
+
const built = { status };
|
|
103
|
+
if (status === 'available') {
|
|
104
|
+
if (isString(c.summary))
|
|
105
|
+
built.summary = c.summary;
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
if (isString(c.unavailableReason))
|
|
109
|
+
built.unavailableReason = c.unavailableReason;
|
|
110
|
+
else
|
|
111
|
+
built.unavailableReason = 'canary reported unavailable';
|
|
112
|
+
}
|
|
113
|
+
canary = built;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
// recentEvents
|
|
117
|
+
let recentEvents = [];
|
|
118
|
+
if (Object.hasOwn(diagnostics, 'recentEvents') && Array.isArray(diagnostics.recentEvents)) {
|
|
119
|
+
const arr = diagnostics.recentEvents;
|
|
120
|
+
for (const e of arr) {
|
|
121
|
+
if (!isRecord(e))
|
|
122
|
+
continue;
|
|
123
|
+
const evType = pickString(e.type);
|
|
124
|
+
const evSummary = pickString(e.summary);
|
|
125
|
+
const evAt = pickString(e.at);
|
|
126
|
+
if (!evType || !evSummary || !evAt)
|
|
127
|
+
continue;
|
|
128
|
+
const ev = { type: evType, at: evAt, summary: evSummary };
|
|
129
|
+
const sev = pickString(e.severity);
|
|
130
|
+
if (sev)
|
|
131
|
+
ev.severity = sev;
|
|
132
|
+
recentEvents.push(ev);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return { versions, platform, featureFlags, canary, recentEvents };
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Create a FeedbackReport from untrusted input + diagnostics.
|
|
139
|
+
* No `as` casts on untrusted values. Failure paths return structured errors.
|
|
140
|
+
*/
|
|
141
|
+
export function createFeedbackReport(input, diagnostics) {
|
|
142
|
+
// Step 1: validate and normalize the input
|
|
143
|
+
const norm = normalizeFeedbackDraftInput(input);
|
|
144
|
+
if (!norm.ok) {
|
|
145
|
+
return { ok: false, errors: norm.errors };
|
|
146
|
+
}
|
|
147
|
+
const draft = norm.value;
|
|
148
|
+
// Step 2: collect diagnostics (never throws; missing diagnostics produce
|
|
149
|
+
// structured unavailable entries, not errors)
|
|
150
|
+
const diagnosticSummary = collectDiagnostics(diagnostics);
|
|
151
|
+
// Step 3: redact the user-provided text fields
|
|
152
|
+
const redactionNotes = [];
|
|
153
|
+
const description = applyUserTextRedactions(draft.userText.description);
|
|
154
|
+
if (description !== draft.userText.description)
|
|
155
|
+
redactionNotes.push('description was redacted (paths/tokens/env values)');
|
|
156
|
+
const stepsInput = draft.userText.stepsToReproduce;
|
|
157
|
+
const stepsToReproduce = typeof stepsInput === 'string' ? applyStepsRedactions(stepsInput) : undefined;
|
|
158
|
+
if (typeof stepsInput === 'string' && stepsToReproduce !== stepsInput) {
|
|
159
|
+
redactionNotes.push('stepsToReproduce was redacted (paths/tokens/env values)');
|
|
160
|
+
}
|
|
161
|
+
const expectedInput = draft.userText.expectedBehavior;
|
|
162
|
+
const expectedBehavior = typeof expectedInput === 'string'
|
|
163
|
+
? redactAbsolutePaths(redactTokenLikeValues(redactEnvLikeValues(expectedInput)))
|
|
164
|
+
: undefined;
|
|
165
|
+
if (typeof expectedInput === 'string' && expectedBehavior !== expectedInput) {
|
|
166
|
+
redactionNotes.push('expectedBehavior was redacted');
|
|
167
|
+
}
|
|
168
|
+
const actualInput = draft.userText.actualBehavior;
|
|
169
|
+
const actualBehavior = typeof actualInput === 'string'
|
|
170
|
+
? redactAbsolutePaths(redactTokenLikeValues(redactEnvLikeValues(actualInput)))
|
|
171
|
+
: undefined;
|
|
172
|
+
if (typeof actualInput === 'string' && actualBehavior !== actualInput) {
|
|
173
|
+
redactionNotes.push('actualBehavior was redacted');
|
|
174
|
+
}
|
|
175
|
+
// Step 4: scrub the diagnosticSummary via redactSensitiveFields (defense in
|
|
176
|
+
// depth — versions and platform should already be low-sensitivity, but
|
|
177
|
+
// user-injected values must not leak tokens through the field structure).
|
|
178
|
+
const scrubbed = redactSensitiveFields(diagnosticSummary);
|
|
179
|
+
const safeDiagnostic = scrubbed.ok
|
|
180
|
+
? scrubbed.value
|
|
181
|
+
: diagnosticSummary;
|
|
182
|
+
if (scrubbed.ok) {
|
|
183
|
+
for (const n of scrubbed.notes) {
|
|
184
|
+
if (redactionNotes.length < MAX_REDACTION_NOTES)
|
|
185
|
+
redactionNotes.push(n);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
// Step 5: redact the title for the URL (but keep the original title in the
|
|
189
|
+
// report itself so the user can read what they wrote)
|
|
190
|
+
const redactedTitle = redactAbsolutePaths(redactTokenLikeValues(draft.title));
|
|
191
|
+
// Step 6: build contextRefs from the context object
|
|
192
|
+
const contextRefs = [];
|
|
193
|
+
if (draft.context) {
|
|
194
|
+
pushContextRef(contextRefs, 'source', { id: draft.context.source, label: `source=${draft.context.source}` });
|
|
195
|
+
pushContextRef(contextRefs, 'page', { id: draft.context.page });
|
|
196
|
+
pushContextRef(contextRefs, 'painId', { id: draft.context.painId });
|
|
197
|
+
pushContextRef(contextRefs, 'principleId', { id: draft.context.principleId });
|
|
198
|
+
pushContextRef(contextRefs, 'approvalId', { id: draft.context.approvalId });
|
|
199
|
+
pushContextRef(contextRefs, 'activationId', { id: draft.context.activationId });
|
|
200
|
+
pushContextRef(contextRefs, 'updateAttemptId', { id: draft.context.updateAttemptId });
|
|
201
|
+
}
|
|
202
|
+
if (draft.agentDraft) {
|
|
203
|
+
pushContextRef(contextRefs, 'agentDraft', { id: 'present', label: 'agentDraft attached' });
|
|
204
|
+
}
|
|
205
|
+
// Step 7: build the privacy preview
|
|
206
|
+
const privacy = buildPrivacyPreview(redactionNotes);
|
|
207
|
+
// Step 8: assemble the report
|
|
208
|
+
const userText = { description };
|
|
209
|
+
if (stepsToReproduce !== undefined)
|
|
210
|
+
userText.stepsToReproduce = stepsToReproduce;
|
|
211
|
+
if (draft.userText.expectedBehavior !== undefined)
|
|
212
|
+
userText.expectedBehavior = expectedBehavior;
|
|
213
|
+
if (draft.userText.actualBehavior !== undefined)
|
|
214
|
+
userText.actualBehavior = actualBehavior;
|
|
215
|
+
if (isUserSeverity(draft.userText.userSeverity))
|
|
216
|
+
userText.userSeverity = draft.userText.userSeverity;
|
|
217
|
+
const id = generateReportId();
|
|
218
|
+
const createdAt = new Date().toISOString();
|
|
219
|
+
// Step 9: render markdown and email text. Renderers mutate privacy.redactionNotes
|
|
220
|
+
// if they truncate; that's intentional and observable.
|
|
221
|
+
const report = {
|
|
222
|
+
id,
|
|
223
|
+
createdAt,
|
|
224
|
+
type: draft.type,
|
|
225
|
+
title: draft.title,
|
|
226
|
+
userText,
|
|
227
|
+
diagnosticSummary: safeDiagnostic,
|
|
228
|
+
contextRefs,
|
|
229
|
+
privacy,
|
|
230
|
+
outputs: { markdown: '', emailText: '', githubIssueUrl: '' },
|
|
231
|
+
};
|
|
232
|
+
// Surface the agent-attached evidence in the report so it propagates to
|
|
233
|
+
// markdown, emailText, and any later consumer.
|
|
234
|
+
// Redact sensitive values (paths/tokens/env) from agentDraft string fields.
|
|
235
|
+
if (draft.agentDraft) {
|
|
236
|
+
const ad = draft.agentDraft;
|
|
237
|
+
report.agentDraft = {
|
|
238
|
+
summary: redactEnvLikeValues(redactAbsolutePaths(redactTokenLikeValues(ad.summary))),
|
|
239
|
+
};
|
|
240
|
+
if (ad.observedFailure) {
|
|
241
|
+
report.agentDraft.observedFailure = redactEnvLikeValues(redactAbsolutePaths(redactTokenLikeValues(ad.observedFailure)));
|
|
242
|
+
}
|
|
243
|
+
if (ad.commandSummary) {
|
|
244
|
+
report.agentDraft.commandSummary = redactEnvLikeValues(redactAbsolutePaths(redactTokenLikeValues(ad.commandSummary)));
|
|
245
|
+
}
|
|
246
|
+
redactionNotes.push('agentDraft fields were redacted (paths/tokens/env values)');
|
|
247
|
+
}
|
|
248
|
+
report.outputs.markdown = renderReportMarkdown(report);
|
|
249
|
+
report.outputs.emailText = buildEmailText(report);
|
|
250
|
+
// Step 10: build the bounded GitHub issue draft URL using only the redacted
|
|
251
|
+
// title and a short summary (description truncated to 200 chars).
|
|
252
|
+
const shortSummary = `type=${draft.type}; ${description.slice(0, 200)}`;
|
|
253
|
+
const urlResult = buildGitHubIssueDraftUrl(redactedTitle, draft.type, shortSummary);
|
|
254
|
+
report.outputs.githubIssueUrl = urlResult.ok ? urlResult.url : '';
|
|
255
|
+
return { ok: true, report };
|
|
256
|
+
}
|
|
257
|
+
//# sourceMappingURL=create-report.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-report.js","sourceRoot":"","sources":["../../../src/runtime-v2/feedback/create-report.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
export type FeedbackType = 'bug' | 'confusing' | 'privacy_concern' | 'feature_request' | 'other';
|
|
2
|
+
export type UserSeverity = 'low' | 'medium' | 'high';
|
|
3
|
+
export type FeedbackSource = 'console' | 'cli' | 'agent';
|
|
4
|
+
export interface FeedbackContext {
|
|
5
|
+
source: FeedbackSource;
|
|
6
|
+
page?: string;
|
|
7
|
+
painId?: string;
|
|
8
|
+
principleId?: string;
|
|
9
|
+
approvalId?: string;
|
|
10
|
+
activationId?: string;
|
|
11
|
+
updateAttemptId?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface AgentDraft {
|
|
14
|
+
summary: string;
|
|
15
|
+
observedFailure?: string;
|
|
16
|
+
commandSummary?: string;
|
|
17
|
+
}
|
|
18
|
+
export interface FeedbackUserText {
|
|
19
|
+
description: string;
|
|
20
|
+
stepsToReproduce?: string;
|
|
21
|
+
expectedBehavior?: string;
|
|
22
|
+
actualBehavior?: string;
|
|
23
|
+
userSeverity?: UserSeverity;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* The contract input: every field is typed as `unknown` because the input
|
|
27
|
+
* comes from untrusted sources (Console form, CLI, agent, or HTTP body).
|
|
28
|
+
* Callers must pass the value through `normalizeFeedbackDraftInput` before
|
|
29
|
+
* any other code touches the fields.
|
|
30
|
+
*/
|
|
31
|
+
export interface FeedbackDraftInput {
|
|
32
|
+
type: unknown;
|
|
33
|
+
title: unknown;
|
|
34
|
+
description: unknown;
|
|
35
|
+
stepsToReproduce?: unknown;
|
|
36
|
+
expectedBehavior?: unknown;
|
|
37
|
+
actualBehavior?: unknown;
|
|
38
|
+
userSeverity?: unknown;
|
|
39
|
+
context?: unknown;
|
|
40
|
+
agentDraft?: unknown;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* The narrowed shape returned by `normalizeFeedbackDraftInput` on success.
|
|
44
|
+
* Safe to use throughout the rest of the pipeline.
|
|
45
|
+
*/
|
|
46
|
+
export interface NormalizedDraft {
|
|
47
|
+
type: FeedbackType;
|
|
48
|
+
title: string;
|
|
49
|
+
userText: FeedbackUserText;
|
|
50
|
+
context?: FeedbackContext;
|
|
51
|
+
agentDraft?: AgentDraft;
|
|
52
|
+
}
|
|
53
|
+
export interface RecentEvent {
|
|
54
|
+
type: string;
|
|
55
|
+
at: string;
|
|
56
|
+
severity?: string;
|
|
57
|
+
summary: string;
|
|
58
|
+
}
|
|
59
|
+
export interface CanaryStatus {
|
|
60
|
+
status: 'available' | 'unavailable';
|
|
61
|
+
summary?: string;
|
|
62
|
+
unavailableReason?: string;
|
|
63
|
+
}
|
|
64
|
+
export interface DiagnosticSummary {
|
|
65
|
+
versions: Record<string, unknown>;
|
|
66
|
+
platform: Record<string, unknown>;
|
|
67
|
+
featureFlags: Record<string, unknown>;
|
|
68
|
+
canary: CanaryStatus;
|
|
69
|
+
recentEvents: RecentEvent[];
|
|
70
|
+
}
|
|
71
|
+
export interface ContextRef {
|
|
72
|
+
kind: string;
|
|
73
|
+
id: string;
|
|
74
|
+
label?: string;
|
|
75
|
+
}
|
|
76
|
+
export interface PrivacyPreview {
|
|
77
|
+
includedSections: string[];
|
|
78
|
+
excludedByDefault: string[];
|
|
79
|
+
redactionNotes: string[];
|
|
80
|
+
}
|
|
81
|
+
export interface FeedbackReport {
|
|
82
|
+
id: string;
|
|
83
|
+
createdAt: string;
|
|
84
|
+
type: FeedbackType;
|
|
85
|
+
title: string;
|
|
86
|
+
userText: FeedbackUserText;
|
|
87
|
+
agentDraft?: AgentDraft;
|
|
88
|
+
diagnosticSummary: DiagnosticSummary;
|
|
89
|
+
contextRefs: ContextRef[];
|
|
90
|
+
privacy: PrivacyPreview;
|
|
91
|
+
outputs: {
|
|
92
|
+
markdown: string;
|
|
93
|
+
emailText: string;
|
|
94
|
+
githubIssueUrl: string;
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
export type ValidationError = {
|
|
98
|
+
field: string;
|
|
99
|
+
reason: string;
|
|
100
|
+
nextAction: string;
|
|
101
|
+
};
|
|
102
|
+
export type NormalizeResult = {
|
|
103
|
+
ok: true;
|
|
104
|
+
value: NormalizedDraft;
|
|
105
|
+
} | {
|
|
106
|
+
ok: false;
|
|
107
|
+
errors: ValidationError[];
|
|
108
|
+
};
|
|
109
|
+
export declare function isFeedbackType(value: unknown): value is FeedbackType;
|
|
110
|
+
export declare function isUserSeverity(value: unknown): value is UserSeverity;
|
|
111
|
+
export declare function isFeedbackSource(value: unknown): value is FeedbackSource;
|
|
112
|
+
export declare function isRecord(value: unknown): value is Record<string, unknown>;
|
|
113
|
+
export declare function isBoolean(value: unknown): value is boolean;
|
|
114
|
+
export { isString } from './internal-guards.js';
|
|
115
|
+
/**
|
|
116
|
+
* Validate and normalize a `FeedbackDraftInput` value.
|
|
117
|
+
* Returns a discriminated union. Never throws.
|
|
118
|
+
*/
|
|
119
|
+
export declare function normalizeFeedbackDraftInput(value: unknown): NormalizeResult;
|
|
120
|
+
//# sourceMappingURL=feedback-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feedback-types.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/feedback/feedback-types.ts"],"names":[],"mappings":"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"}
|