reflectt-node 0.1.14 → 0.1.16
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/README.md +54 -0
- package/defaults/TEAM-ROLES.starter.yaml +87 -0
- package/defaults/lane-templates/ops.json +32 -0
- package/defaults/lane-templates/workflow.json +32 -0
- package/defaults/reviewer-routing.yaml +34 -0
- package/dist/activationEvents.d.ts +7 -1
- package/dist/activationEvents.d.ts.map +1 -1
- package/dist/activationEvents.js +29 -3
- package/dist/activationEvents.js.map +1 -1
- package/dist/activity-stream-normalizer.d.ts +37 -0
- package/dist/activity-stream-normalizer.d.ts.map +1 -0
- package/dist/activity-stream-normalizer.js +101 -0
- package/dist/activity-stream-normalizer.js.map +1 -0
- package/dist/agent-exec-guardrail.d.ts +9 -0
- package/dist/agent-exec-guardrail.d.ts.map +1 -0
- package/dist/agent-exec-guardrail.js +24 -0
- package/dist/agent-exec-guardrail.js.map +1 -0
- package/dist/agent-exec-guardrail.test.d.ts +2 -0
- package/dist/agent-exec-guardrail.test.d.ts.map +1 -0
- package/dist/agent-exec-guardrail.test.js +55 -0
- package/dist/agent-exec-guardrail.test.js.map +1 -0
- package/dist/agent-interface.d.ts +137 -0
- package/dist/agent-interface.d.ts.map +1 -0
- package/dist/agent-interface.js +463 -0
- package/dist/agent-interface.js.map +1 -0
- package/dist/agent-notifications.d.ts +51 -0
- package/dist/agent-notifications.d.ts.map +1 -0
- package/dist/agent-notifications.js +104 -0
- package/dist/agent-notifications.js.map +1 -0
- package/dist/agent-runs.d.ts +31 -7
- package/dist/agent-runs.d.ts.map +1 -1
- package/dist/agent-runs.js +137 -28
- package/dist/agent-runs.js.map +1 -1
- package/dist/artifact-mirror.d.ts.map +1 -1
- package/dist/artifact-mirror.js +4 -1
- package/dist/artifact-mirror.js.map +1 -1
- package/dist/assignment.d.ts.map +1 -1
- package/dist/assignment.js +54 -2
- package/dist/assignment.js.map +1 -1
- package/dist/boardHealthWorker.d.ts.map +1 -1
- package/dist/boardHealthWorker.js +15 -1
- package/dist/boardHealthWorker.js.map +1 -1
- package/dist/canvas-auto-state.d.ts +58 -0
- package/dist/canvas-auto-state.d.ts.map +1 -0
- package/dist/canvas-auto-state.js +89 -0
- package/dist/canvas-auto-state.js.map +1 -0
- package/dist/canvas-routes.d.ts +36 -0
- package/dist/canvas-routes.d.ts.map +1 -0
- package/dist/canvas-routes.js +47 -0
- package/dist/canvas-routes.js.map +1 -0
- package/dist/capability-readiness.d.ts +28 -0
- package/dist/capability-readiness.d.ts.map +1 -0
- package/dist/capability-readiness.js +162 -0
- package/dist/capability-readiness.js.map +1 -0
- package/dist/channels.d.ts.map +1 -1
- package/dist/channels.js +1 -0
- package/dist/channels.js.map +1 -1
- package/dist/cli.js +179 -4
- package/dist/cli.js.map +1 -1
- package/dist/cloud.d.ts +5 -0
- package/dist/cloud.d.ts.map +1 -1
- package/dist/cloud.js +485 -18
- package/dist/cloud.js.map +1 -1
- package/dist/comms-routing-policy.d.ts +31 -0
- package/dist/comms-routing-policy.d.ts.map +1 -0
- package/dist/comms-routing-policy.js +128 -0
- package/dist/comms-routing-policy.js.map +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +1 -0
- package/dist/config.js.map +1 -1
- package/dist/continuity-loop.d.ts.map +1 -1
- package/dist/continuity-loop.js +26 -0
- package/dist/continuity-loop.js.map +1 -1
- package/dist/cost-enforcement.d.ts.map +1 -1
- package/dist/cost-enforcement.js +22 -0
- package/dist/cost-enforcement.js.map +1 -1
- package/dist/db.d.ts.map +1 -1
- package/dist/db.js +56 -5
- package/dist/db.js.map +1 -1
- package/dist/doctor.js +2 -2
- package/dist/e2e-loop-proof.test.js +11 -1
- package/dist/e2e-loop-proof.test.js.map +1 -1
- package/dist/events.d.ts +4 -2
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +22 -1
- package/dist/events.js.map +1 -1
- package/dist/executionSweeper.d.ts.map +1 -1
- package/dist/executionSweeper.js +155 -0
- package/dist/executionSweeper.js.map +1 -1
- package/dist/health.d.ts +21 -1
- package/dist/health.d.ts.map +1 -1
- package/dist/health.js +164 -19
- package/dist/health.js.map +1 -1
- package/dist/inbox.d.ts +4 -0
- package/dist/inbox.d.ts.map +1 -1
- package/dist/inbox.js +38 -1
- package/dist/inbox.js.map +1 -1
- package/dist/index.js +90 -14
- package/dist/index.js.map +1 -1
- package/dist/insight-auto-tagger.d.ts +58 -0
- package/dist/insight-auto-tagger.d.ts.map +1 -0
- package/dist/insight-auto-tagger.js +331 -0
- package/dist/insight-auto-tagger.js.map +1 -0
- package/dist/insight-task-bridge.d.ts +9 -0
- package/dist/insight-task-bridge.d.ts.map +1 -1
- package/dist/insight-task-bridge.js +43 -7
- package/dist/insight-task-bridge.js.map +1 -1
- package/dist/insights.d.ts +6 -0
- package/dist/insights.d.ts.map +1 -1
- package/dist/insights.js +13 -0
- package/dist/insights.js.map +1 -1
- package/dist/lane-config.d.ts.map +1 -1
- package/dist/lane-config.js +1 -0
- package/dist/lane-config.js.map +1 -1
- package/dist/lane-template-successor.d.ts +13 -0
- package/dist/lane-template-successor.d.ts.map +1 -0
- package/dist/lane-template-successor.js +132 -0
- package/dist/lane-template-successor.js.map +1 -0
- package/dist/local-whisper.d.ts +21 -0
- package/dist/local-whisper.d.ts.map +1 -0
- package/dist/local-whisper.js +137 -0
- package/dist/local-whisper.js.map +1 -0
- package/dist/macos-accessibility.d.ts +50 -0
- package/dist/macos-accessibility.d.ts.map +1 -0
- package/dist/macos-accessibility.js +185 -0
- package/dist/macos-accessibility.js.map +1 -0
- package/dist/manage.d.ts.map +1 -1
- package/dist/manage.js +47 -1
- package/dist/manage.js.map +1 -1
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +123 -0
- package/dist/mcp.js.map +1 -1
- package/dist/notification-worker.d.ts +66 -0
- package/dist/notification-worker.d.ts.map +1 -0
- package/dist/notification-worker.js +232 -0
- package/dist/notification-worker.js.map +1 -0
- package/dist/openclaw-usage-sync.d.ts +28 -0
- package/dist/openclaw-usage-sync.d.ts.map +1 -0
- package/dist/openclaw-usage-sync.js +161 -0
- package/dist/openclaw-usage-sync.js.map +1 -0
- package/dist/policy.js +1 -1
- package/dist/policy.js.map +1 -1
- package/dist/pr-link-reconciler.d.ts +61 -0
- package/dist/pr-link-reconciler.d.ts.map +1 -0
- package/dist/pr-link-reconciler.js +127 -0
- package/dist/pr-link-reconciler.js.map +1 -0
- package/dist/preflight.js +2 -2
- package/dist/presence-narrator.d.ts +52 -0
- package/dist/presence-narrator.d.ts.map +1 -0
- package/dist/presence-narrator.js +193 -0
- package/dist/presence-narrator.js.map +1 -0
- package/dist/presence.d.ts +2 -0
- package/dist/presence.d.ts.map +1 -1
- package/dist/presence.js +23 -3
- package/dist/presence.js.map +1 -1
- package/dist/product-observation-source.d.ts +52 -0
- package/dist/product-observation-source.d.ts.map +1 -0
- package/dist/product-observation-source.js +326 -0
- package/dist/product-observation-source.js.map +1 -0
- package/dist/reflection-automation.d.ts +25 -0
- package/dist/reflection-automation.d.ts.map +1 -1
- package/dist/reflection-automation.js +163 -42
- package/dist/reflection-automation.js.map +1 -1
- package/dist/review-autoclose.d.ts +62 -0
- package/dist/review-autoclose.d.ts.map +1 -0
- package/dist/review-autoclose.js +75 -0
- package/dist/review-autoclose.js.map +1 -0
- package/dist/routing-enforcement.test.js +32 -56
- package/dist/routing-enforcement.test.js.map +1 -1
- package/dist/sentry-webhook.d.ts +69 -0
- package/dist/sentry-webhook.d.ts.map +1 -0
- package/dist/sentry-webhook.js +88 -0
- package/dist/sentry-webhook.js.map +1 -0
- package/dist/sentry.d.ts +29 -0
- package/dist/sentry.d.ts.map +1 -0
- package/dist/sentry.js +86 -0
- package/dist/sentry.js.map +1 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +5130 -233
- package/dist/server.js.map +1 -1
- package/dist/stale-candidate-reconciler.d.ts +69 -0
- package/dist/stale-candidate-reconciler.d.ts.map +1 -0
- package/dist/stale-candidate-reconciler.js +236 -0
- package/dist/stale-candidate-reconciler.js.map +1 -0
- package/dist/system-loop-state.d.ts +1 -1
- package/dist/system-loop-state.d.ts.map +1 -1
- package/dist/system-loop-state.js +1 -0
- package/dist/system-loop-state.js.map +1 -1
- package/dist/taskPrecheck.d.ts.map +1 -1
- package/dist/taskPrecheck.js +47 -2
- package/dist/taskPrecheck.js.map +1 -1
- package/dist/tasks.d.ts.map +1 -1
- package/dist/tasks.js +130 -0
- package/dist/tasks.js.map +1 -1
- package/dist/trust-events.d.ts +61 -0
- package/dist/trust-events.d.ts.map +1 -0
- package/dist/trust-events.js +148 -0
- package/dist/trust-events.js.map +1 -0
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/usage-tracking.d.ts +6 -0
- package/dist/usage-tracking.d.ts.map +1 -1
- package/dist/usage-tracking.js +14 -0
- package/dist/usage-tracking.js.map +1 -1
- package/dist/voice-sessions.d.ts +51 -0
- package/dist/voice-sessions.d.ts.map +1 -0
- package/dist/voice-sessions.js +143 -0
- package/dist/voice-sessions.js.map +1 -0
- package/dist/workflow-templates.d.ts.map +1 -1
- package/dist/workflow-templates.js +18 -3
- package/dist/workflow-templates.js.map +1 -1
- package/dist/working-contract.d.ts +22 -1
- package/dist/working-contract.d.ts.map +1 -1
- package/dist/working-contract.js +31 -2
- package/dist/working-contract.js.map +1 -1
- package/package.json +4 -4
- package/public/dashboard.js +12 -4
- package/public/docs.md +98 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reflection-automation.js","sourceRoot":"","sources":["../src/reflection-automation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"reflection-automation.js","sourceRoot":"","sources":["../src/reflection-automation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Review auto-close bridge.
|
|
3
|
+
*
|
|
4
|
+
* Parses structured `[review] approved:` / `[review] rejected:` comments
|
|
5
|
+
* posted by the assigned reviewer and auto-fires the review decision,
|
|
6
|
+
* transitioning the task from validating→done or validating→todo.
|
|
7
|
+
*
|
|
8
|
+
* Safety invariants:
|
|
9
|
+
* - Only fires when task.status === 'validating'
|
|
10
|
+
* - Author must match task.reviewer (exact match, case-insensitive)
|
|
11
|
+
* - Parsed via strict regex — no fuzzy matching
|
|
12
|
+
* - Idempotent: ignores if task already past validating
|
|
13
|
+
* - Emits trust event on self-review attempt (reviewer === assignee)
|
|
14
|
+
* - Dry-run safe: `dryRun=true` returns parsed result without mutating
|
|
15
|
+
*
|
|
16
|
+
* Comment format (reviewer posts in task-comments):
|
|
17
|
+
* [review] approved: <comment text>
|
|
18
|
+
* [review] rejected: <comment text>
|
|
19
|
+
*
|
|
20
|
+
* task-1773490646984-eujrozhai
|
|
21
|
+
*/
|
|
22
|
+
/** Result of parsing a comment for a review signal. */
|
|
23
|
+
export interface ReviewSignal {
|
|
24
|
+
detected: boolean;
|
|
25
|
+
decision?: 'approve' | 'reject';
|
|
26
|
+
comment?: string;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Parse a task comment body for a structured review signal.
|
|
30
|
+
*
|
|
31
|
+
* Accepts:
|
|
32
|
+
* [review] approved: <comment>
|
|
33
|
+
* [review] rejected: <comment>
|
|
34
|
+
* [review] approved (no trailing text also accepted)
|
|
35
|
+
*
|
|
36
|
+
* Case-insensitive. Leading/trailing whitespace ignored.
|
|
37
|
+
*/
|
|
38
|
+
export declare function parseReviewSignal(content: string): ReviewSignal;
|
|
39
|
+
export interface AutoCloseContext {
|
|
40
|
+
taskId: string;
|
|
41
|
+
taskStatus: string;
|
|
42
|
+
taskReviewer: string | null | undefined;
|
|
43
|
+
taskAssignee: string | null | undefined;
|
|
44
|
+
commentAuthor: string;
|
|
45
|
+
commentContent: string;
|
|
46
|
+
dryRun?: boolean;
|
|
47
|
+
}
|
|
48
|
+
export interface AutoCloseResult {
|
|
49
|
+
fired: boolean;
|
|
50
|
+
decision?: 'approve' | 'reject';
|
|
51
|
+
reason?: string;
|
|
52
|
+
dryRun?: boolean;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Evaluate whether a comment should trigger auto-close, and return the decision.
|
|
56
|
+
* Does NOT mutate — caller is responsible for invoking the review endpoint.
|
|
57
|
+
*
|
|
58
|
+
* Returns fired=true + decision when all safety checks pass.
|
|
59
|
+
* Returns fired=false with reason when skipped.
|
|
60
|
+
*/
|
|
61
|
+
export declare function evaluateAutoClose(ctx: AutoCloseContext): AutoCloseResult;
|
|
62
|
+
//# sourceMappingURL=review-autoclose.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review-autoclose.d.ts","sourceRoot":"","sources":["../src/review-autoclose.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,uDAAuD;AACvD,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,OAAO,CAAA;IACjB,QAAQ,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAA;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAQ/D;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IACvC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IACvC,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;IACtB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,OAAO,CAAA;IACd,QAAQ,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAA;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,gBAAgB,GAAG,eAAe,CA6BxE"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
/**
|
|
3
|
+
* Review auto-close bridge.
|
|
4
|
+
*
|
|
5
|
+
* Parses structured `[review] approved:` / `[review] rejected:` comments
|
|
6
|
+
* posted by the assigned reviewer and auto-fires the review decision,
|
|
7
|
+
* transitioning the task from validating→done or validating→todo.
|
|
8
|
+
*
|
|
9
|
+
* Safety invariants:
|
|
10
|
+
* - Only fires when task.status === 'validating'
|
|
11
|
+
* - Author must match task.reviewer (exact match, case-insensitive)
|
|
12
|
+
* - Parsed via strict regex — no fuzzy matching
|
|
13
|
+
* - Idempotent: ignores if task already past validating
|
|
14
|
+
* - Emits trust event on self-review attempt (reviewer === assignee)
|
|
15
|
+
* - Dry-run safe: `dryRun=true` returns parsed result without mutating
|
|
16
|
+
*
|
|
17
|
+
* Comment format (reviewer posts in task-comments):
|
|
18
|
+
* [review] approved: <comment text>
|
|
19
|
+
* [review] rejected: <comment text>
|
|
20
|
+
*
|
|
21
|
+
* task-1773490646984-eujrozhai
|
|
22
|
+
*/
|
|
23
|
+
/**
|
|
24
|
+
* Parse a task comment body for a structured review signal.
|
|
25
|
+
*
|
|
26
|
+
* Accepts:
|
|
27
|
+
* [review] approved: <comment>
|
|
28
|
+
* [review] rejected: <comment>
|
|
29
|
+
* [review] approved (no trailing text also accepted)
|
|
30
|
+
*
|
|
31
|
+
* Case-insensitive. Leading/trailing whitespace ignored.
|
|
32
|
+
*/
|
|
33
|
+
export function parseReviewSignal(content) {
|
|
34
|
+
const normalized = content.trim();
|
|
35
|
+
// Match: [review] approved: ... or [review] rejected: ...
|
|
36
|
+
const match = normalized.match(/^\[review\]\s+(approved|rejected)[:\s]*(.*)/i);
|
|
37
|
+
if (!match)
|
|
38
|
+
return { detected: false };
|
|
39
|
+
const decision = match[1].toLowerCase() === 'approved' ? 'approve' : 'reject';
|
|
40
|
+
const comment = (match[2] ?? '').trim() || (decision === 'approve' ? 'Approved via structured review comment' : 'Rejected via structured review comment');
|
|
41
|
+
return { detected: true, decision, comment };
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Evaluate whether a comment should trigger auto-close, and return the decision.
|
|
45
|
+
* Does NOT mutate — caller is responsible for invoking the review endpoint.
|
|
46
|
+
*
|
|
47
|
+
* Returns fired=true + decision when all safety checks pass.
|
|
48
|
+
* Returns fired=false with reason when skipped.
|
|
49
|
+
*/
|
|
50
|
+
export function evaluateAutoClose(ctx) {
|
|
51
|
+
const { taskStatus, taskReviewer, taskAssignee, commentAuthor, commentContent, dryRun } = ctx;
|
|
52
|
+
// Only act on validating tasks
|
|
53
|
+
if (taskStatus !== 'validating') {
|
|
54
|
+
return { fired: false, reason: `task is ${taskStatus}, not validating` };
|
|
55
|
+
}
|
|
56
|
+
// Must have an assigned reviewer
|
|
57
|
+
if (!taskReviewer) {
|
|
58
|
+
return { fired: false, reason: 'task has no assigned reviewer' };
|
|
59
|
+
}
|
|
60
|
+
// Author must be the assigned reviewer
|
|
61
|
+
if (commentAuthor.trim().toLowerCase() !== taskReviewer.trim().toLowerCase()) {
|
|
62
|
+
return { fired: false, reason: `author "${commentAuthor}" is not the assigned reviewer "${taskReviewer}"` };
|
|
63
|
+
}
|
|
64
|
+
// Parse the comment
|
|
65
|
+
const signal = parseReviewSignal(commentContent);
|
|
66
|
+
if (!signal.detected) {
|
|
67
|
+
return { fired: false, reason: 'no structured [review] signal found in comment' };
|
|
68
|
+
}
|
|
69
|
+
return {
|
|
70
|
+
fired: true,
|
|
71
|
+
decision: signal.decision,
|
|
72
|
+
dryRun,
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=review-autoclose.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review-autoclose.js","sourceRoot":"","sources":["../src/review-autoclose.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC;;;;;;;;;;;;;;;;;;;;GAoBG;AASH;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC/C,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAA;IACjC,0DAA0D;IAC1D,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAA;IAC9E,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAA;IACtC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAA;IAC7E,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,wCAAwC,CAAC,CAAC,CAAC,wCAAwC,CAAC,CAAA;IACzJ,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAA;AAC9C,CAAC;AAmBD;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAqB;IACrD,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,GAAG,CAAA;IAE7F,+BAA+B;IAC/B,IAAI,UAAU,KAAK,YAAY,EAAE,CAAC;QAChC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,UAAU,kBAAkB,EAAE,CAAA;IAC1E,CAAC;IAED,iCAAiC;IACjC,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,+BAA+B,EAAE,CAAA;IAClE,CAAC;IAED,uCAAuC;IACvC,IAAI,aAAa,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,YAAY,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;QAC7E,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,aAAa,mCAAmC,YAAY,GAAG,EAAE,CAAA;IAC7G,CAAC;IAED,oBAAoB;IACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,cAAc,CAAC,CAAA;IAChD,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,gDAAgD,EAAE,CAAA;IACnF,CAAC;IAED,OAAO;QACL,KAAK,EAAE,IAAI;QACX,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,MAAM;KACP,CAAA;AACH,CAAC"}
|
|
@@ -1,86 +1,62 @@
|
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
|
2
2
|
import { describe, it } from 'node:test';
|
|
3
3
|
import assert from 'node:assert/strict';
|
|
4
|
-
|
|
5
|
-
const VALID_URGENCY = new Set(['low', 'normal', 'high', 'critical']);
|
|
6
|
-
function validate(eventType, payload) {
|
|
7
|
-
if (!ACTIONABLE.has(eventType))
|
|
8
|
-
return { valid: true, errors: [] };
|
|
9
|
-
const errors = [];
|
|
10
|
-
if (!payload.action_required || typeof payload.action_required !== 'string')
|
|
11
|
-
errors.push('action_required required');
|
|
12
|
-
if (!payload.urgency || typeof payload.urgency !== 'string')
|
|
13
|
-
errors.push('urgency required');
|
|
14
|
-
else if (!VALID_URGENCY.has(payload.urgency))
|
|
15
|
-
errors.push('invalid urgency');
|
|
16
|
-
if (!payload.owner || typeof payload.owner !== 'string')
|
|
17
|
-
errors.push('owner required');
|
|
18
|
-
return { valid: errors.length === 0, errors };
|
|
19
|
-
}
|
|
4
|
+
import { validateRoutingSemantics, VALID_ACTION_REQUIRED, VALID_ROUTING_URGENCY } from './agent-runs.js';
|
|
20
5
|
describe('routing semantics enforcement', () => {
|
|
21
|
-
it('non-actionable events
|
|
22
|
-
assert.equal(
|
|
23
|
-
assert.equal(
|
|
24
|
-
assert.equal(validate('run_started', {}).valid, true);
|
|
6
|
+
it('non-routing payload on non-actionable events passes', () => {
|
|
7
|
+
assert.equal(validateRoutingSemantics('task_completed', {}).valid, true);
|
|
8
|
+
assert.equal(validateRoutingSemantics('memory_written', {}).valid, true);
|
|
25
9
|
});
|
|
26
|
-
it('review_requested with
|
|
27
|
-
const r =
|
|
10
|
+
it('review_requested with locked routing vocabulary passes', () => {
|
|
11
|
+
const r = validateRoutingSemantics('review_requested', { action_required: 'review', urgency: 'normal', owner: 'kai' });
|
|
28
12
|
assert.equal(r.valid, true);
|
|
29
13
|
});
|
|
30
|
-
it('
|
|
31
|
-
const r =
|
|
32
|
-
assert.equal(r.valid,
|
|
33
|
-
|
|
34
|
-
it('escalation with all fields passes', () => {
|
|
35
|
-
const r = validate('escalation', { action_required: 'Server down', urgency: 'critical', owner: 'link' });
|
|
36
|
-
assert.equal(r.valid, true);
|
|
37
|
-
});
|
|
38
|
-
it('handoff with all fields passes', () => {
|
|
39
|
-
const r = validate('handoff', { action_required: 'Continue build', urgency: 'normal', owner: 'pixel' });
|
|
40
|
-
assert.equal(r.valid, true);
|
|
14
|
+
it('routing payload on any event requires both fields', () => {
|
|
15
|
+
const r = validateRoutingSemantics('tool_invoked', { action_required: 'fyi' });
|
|
16
|
+
assert.equal(r.valid, false);
|
|
17
|
+
assert.ok(r.errors.some(e => e.includes('urgency')));
|
|
41
18
|
});
|
|
42
19
|
it('rejects missing action_required', () => {
|
|
43
|
-
const r =
|
|
20
|
+
const r = validateRoutingSemantics('review_requested', { urgency: 'normal', owner: 'kai' });
|
|
44
21
|
assert.equal(r.valid, false);
|
|
45
22
|
assert.ok(r.errors.some(e => e.includes('action_required')));
|
|
46
23
|
});
|
|
47
24
|
it('rejects missing urgency', () => {
|
|
48
|
-
const r =
|
|
25
|
+
const r = validateRoutingSemantics('review_requested', { action_required: 'review', owner: 'kai' });
|
|
49
26
|
assert.equal(r.valid, false);
|
|
50
27
|
assert.ok(r.errors.some(e => e.includes('urgency')));
|
|
51
28
|
});
|
|
52
|
-
it('rejects
|
|
53
|
-
const r =
|
|
29
|
+
it('rejects invalid action_required value', () => {
|
|
30
|
+
const r = validateRoutingSemantics('review_requested', { action_required: 'Review PR', urgency: 'normal', owner: 'kai' });
|
|
54
31
|
assert.equal(r.valid, false);
|
|
55
|
-
assert.ok(r.errors.some(e => e.includes('
|
|
32
|
+
assert.ok(r.errors.some(e => e.includes('action_required')));
|
|
56
33
|
});
|
|
57
34
|
it('rejects invalid urgency value', () => {
|
|
58
|
-
const r =
|
|
35
|
+
const r = validateRoutingSemantics('review_requested', { action_required: 'review', urgency: 'high', owner: 'kai' });
|
|
59
36
|
assert.equal(r.valid, false);
|
|
60
37
|
assert.ok(r.errors.some(e => e.includes('urgency')));
|
|
61
38
|
});
|
|
62
|
-
it('accepts all
|
|
63
|
-
for (const
|
|
64
|
-
const r =
|
|
65
|
-
assert.equal(r.valid, true, `${
|
|
39
|
+
it('accepts all locked action_required values', () => {
|
|
40
|
+
for (const value of VALID_ACTION_REQUIRED) {
|
|
41
|
+
const r = validateRoutingSemantics('review_requested', { action_required: value, urgency: 'normal' });
|
|
42
|
+
assert.equal(r.valid, true, `${value} should be valid`);
|
|
66
43
|
}
|
|
67
44
|
});
|
|
68
|
-
it('
|
|
69
|
-
const
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
it('collects all errors at once', () => {
|
|
74
|
-
const r = validate('escalation', {});
|
|
75
|
-
assert.equal(r.errors.length, 3);
|
|
45
|
+
it('accepts all locked urgency values', () => {
|
|
46
|
+
for (const value of VALID_ROUTING_URGENCY) {
|
|
47
|
+
const r = validateRoutingSemantics('review_requested', { action_required: 'review', urgency: value });
|
|
48
|
+
assert.equal(r.valid, true, `${value} should be valid`);
|
|
49
|
+
}
|
|
76
50
|
});
|
|
77
|
-
it('
|
|
78
|
-
const r =
|
|
51
|
+
it('collects both missing-field errors at once', () => {
|
|
52
|
+
const r = validateRoutingSemantics('handoff', {});
|
|
79
53
|
assert.equal(r.valid, false);
|
|
54
|
+
assert.equal(r.errors.length, 2);
|
|
80
55
|
});
|
|
81
|
-
it('
|
|
82
|
-
const r =
|
|
83
|
-
assert.equal(r.valid,
|
|
56
|
+
it('warns on non-numeric expires_at', () => {
|
|
57
|
+
const r = validateRoutingSemantics('handoff', { action_required: 'approve', urgency: 'low', expires_at: 'soon' });
|
|
58
|
+
assert.equal(r.valid, true);
|
|
59
|
+
assert.ok(r.warnings.some(w => w.includes('expires_at')));
|
|
84
60
|
});
|
|
85
61
|
});
|
|
86
62
|
//# sourceMappingURL=routing-enforcement.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routing-enforcement.test.js","sourceRoot":"","sources":["../src/routing-enforcement.test.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,MAAM,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"routing-enforcement.test.js","sourceRoot":"","sources":["../src/routing-enforcement.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sentry Webhook → #ops Bridge
|
|
3
|
+
*
|
|
4
|
+
* Parses Sentry webhook payloads (issue alerts, metric alerts, etc.)
|
|
5
|
+
* and formats them as chat messages for the #ops channel.
|
|
6
|
+
*
|
|
7
|
+
* Sentry webhook payload docs:
|
|
8
|
+
* https://docs.sentry.io/organization/integrations/integration-platform/webhooks/
|
|
9
|
+
*/
|
|
10
|
+
interface SentryIssueData {
|
|
11
|
+
id?: string;
|
|
12
|
+
title?: string;
|
|
13
|
+
culprit?: string;
|
|
14
|
+
metadata?: {
|
|
15
|
+
type?: string;
|
|
16
|
+
value?: string;
|
|
17
|
+
filename?: string;
|
|
18
|
+
function?: string;
|
|
19
|
+
};
|
|
20
|
+
count?: string | number;
|
|
21
|
+
userCount?: number;
|
|
22
|
+
firstSeen?: string;
|
|
23
|
+
shortId?: string;
|
|
24
|
+
project?: {
|
|
25
|
+
slug?: string;
|
|
26
|
+
name?: string;
|
|
27
|
+
id?: string;
|
|
28
|
+
};
|
|
29
|
+
level?: string;
|
|
30
|
+
status?: string;
|
|
31
|
+
}
|
|
32
|
+
interface SentryActor {
|
|
33
|
+
type?: string;
|
|
34
|
+
id?: string;
|
|
35
|
+
name?: string;
|
|
36
|
+
}
|
|
37
|
+
interface SentryWebhookPayload {
|
|
38
|
+
action?: string;
|
|
39
|
+
data?: {
|
|
40
|
+
issue?: SentryIssueData;
|
|
41
|
+
event?: Record<string, unknown>;
|
|
42
|
+
triggered_rule?: string;
|
|
43
|
+
metric_alert?: {
|
|
44
|
+
id?: string | number;
|
|
45
|
+
title?: string;
|
|
46
|
+
alert_rule?: {
|
|
47
|
+
id?: number;
|
|
48
|
+
name?: string;
|
|
49
|
+
};
|
|
50
|
+
status?: string;
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
actor?: SentryActor;
|
|
54
|
+
installation?: {
|
|
55
|
+
uuid?: string;
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Format a Sentry webhook payload as a human-readable chat message.
|
|
60
|
+
* Returns null if the payload isn't actionable (e.g. installation hooks).
|
|
61
|
+
*/
|
|
62
|
+
export declare function formatSentryAlert(payload: SentryWebhookPayload): string | null;
|
|
63
|
+
/**
|
|
64
|
+
* Verify Sentry webhook signature (HMAC-SHA256).
|
|
65
|
+
* Returns true if valid or if no secret is configured (permissive mode).
|
|
66
|
+
*/
|
|
67
|
+
export declare function verifySentrySignature(rawBody: string | Buffer, signatureHeader: string | undefined, clientSecret: string | undefined): boolean;
|
|
68
|
+
export {};
|
|
69
|
+
//# sourceMappingURL=sentry-webhook.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sentry-webhook.d.ts","sourceRoot":"","sources":["../src/sentry-webhook.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AAIH,UAAU,eAAe;IACvB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE;QACT,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;KAClB,CAAA;IACD,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACvD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,UAAU,WAAW;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,UAAU,oBAAoB;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE;QACL,KAAK,CAAC,EAAE,eAAe,CAAA;QACvB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QAC/B,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB,YAAY,CAAC,EAAE;YACb,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;YACpB,KAAK,CAAC,EAAE,MAAM,CAAA;YACd,UAAU,CAAC,EAAE;gBAAE,EAAE,CAAC,EAAE,MAAM,CAAC;gBAAC,IAAI,CAAC,EAAE,MAAM,CAAA;aAAE,CAAA;YAC3C,MAAM,CAAC,EAAE,MAAM,CAAA;SAChB,CAAA;KACF,CAAA;IACD,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,YAAY,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CACjC;AAgBD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,oBAAoB,GAAG,MAAM,GAAG,IAAI,CAkB9E;AA8CD;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,eAAe,EAAE,MAAM,GAAG,SAAS,EACnC,YAAY,EAAE,MAAM,GAAG,SAAS,GAC/B,OAAO,CAkBT"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
// Copyright (c) Reflectt AI
|
|
3
|
+
// ── Severity Emoji ─────────────────────────────────────────────────────────
|
|
4
|
+
function severityEmoji(level) {
|
|
5
|
+
switch (level) {
|
|
6
|
+
case 'fatal': return '💀';
|
|
7
|
+
case 'error': return '🔴';
|
|
8
|
+
case 'warning': return '🟡';
|
|
9
|
+
case 'info': return 'ℹ️';
|
|
10
|
+
default: return '🔴';
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
// ── Formatters ─────────────────────────────────────────────────────────────
|
|
14
|
+
/**
|
|
15
|
+
* Format a Sentry webhook payload as a human-readable chat message.
|
|
16
|
+
* Returns null if the payload isn't actionable (e.g. installation hooks).
|
|
17
|
+
*/
|
|
18
|
+
export function formatSentryAlert(payload) {
|
|
19
|
+
const action = payload.action;
|
|
20
|
+
// Issue alert (most common)
|
|
21
|
+
if (payload.data?.issue) {
|
|
22
|
+
return formatIssueAlert(action, payload.data.issue, payload.data.triggered_rule);
|
|
23
|
+
}
|
|
24
|
+
// Metric alert
|
|
25
|
+
if (payload.data?.metric_alert) {
|
|
26
|
+
const ma = payload.data.metric_alert;
|
|
27
|
+
const ruleName = ma.alert_rule?.name ?? ma.title ?? 'Unknown metric alert';
|
|
28
|
+
const status = ma.status ?? action ?? 'triggered';
|
|
29
|
+
return `📊 **Metric Alert** — ${ruleName}\nStatus: ${status}`;
|
|
30
|
+
}
|
|
31
|
+
// Unrecognized / installation / comment hooks — skip
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
function formatIssueAlert(action, issue, triggeredRule) {
|
|
35
|
+
const emoji = severityEmoji(issue.level);
|
|
36
|
+
const title = issue.title ?? 'Unknown error';
|
|
37
|
+
const project = issue.project?.slug ?? issue.project?.name ?? 'unknown';
|
|
38
|
+
const shortId = issue.shortId ?? issue.id ?? '?';
|
|
39
|
+
const count = issue.count ?? '?';
|
|
40
|
+
// Build file/function hint
|
|
41
|
+
const file = issue.metadata?.filename ?? issue.culprit ?? null;
|
|
42
|
+
const fn = issue.metadata?.function ?? null;
|
|
43
|
+
const location = file ? (fn ? `${file} in ${fn}` : file) : null;
|
|
44
|
+
// Action verb
|
|
45
|
+
const verb = action === 'resolved' ? '✅ Resolved'
|
|
46
|
+
: action === 'assigned' ? '👤 Assigned'
|
|
47
|
+
: action === 'archived' ? '📦 Archived'
|
|
48
|
+
: action === 'unresolved' ? '🔄 Reopened'
|
|
49
|
+
: `${emoji} Triggered`;
|
|
50
|
+
const lines = [
|
|
51
|
+
`${verb}: **${title}**`,
|
|
52
|
+
`Project: ${project} · ${shortId} · ${count} event(s)`,
|
|
53
|
+
];
|
|
54
|
+
if (location) {
|
|
55
|
+
lines.push(`📁 ${location}`);
|
|
56
|
+
}
|
|
57
|
+
if (triggeredRule) {
|
|
58
|
+
lines.push(`Rule: ${triggeredRule}`);
|
|
59
|
+
}
|
|
60
|
+
// Sentry issue URL (conventional format)
|
|
61
|
+
if (issue.project?.slug && issue.id) {
|
|
62
|
+
lines.push(`🔗 https://sentry.io/issues/${issue.id}/`);
|
|
63
|
+
}
|
|
64
|
+
return lines.join('\n');
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Verify Sentry webhook signature (HMAC-SHA256).
|
|
68
|
+
* Returns true if valid or if no secret is configured (permissive mode).
|
|
69
|
+
*/
|
|
70
|
+
export function verifySentrySignature(rawBody, signatureHeader, clientSecret) {
|
|
71
|
+
// If no secret configured, accept all (permissive mode for initial setup)
|
|
72
|
+
if (!clientSecret)
|
|
73
|
+
return true;
|
|
74
|
+
if (!signatureHeader)
|
|
75
|
+
return false;
|
|
76
|
+
try {
|
|
77
|
+
const crypto = require('crypto');
|
|
78
|
+
const expected = crypto
|
|
79
|
+
.createHmac('sha256', clientSecret)
|
|
80
|
+
.update(rawBody)
|
|
81
|
+
.digest('hex');
|
|
82
|
+
return crypto.timingSafeEqual(Buffer.from(signatureHeader), Buffer.from(expected));
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=sentry-webhook.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sentry-webhook.js","sourceRoot":"","sources":["../src/sentry-webhook.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,4BAA4B;AAwD5B,8EAA8E;AAE9E,SAAS,aAAa,CAAC,KAAc;IACnC,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,OAAO,CAAC,CAAC,OAAO,IAAI,CAAA;QACzB,KAAK,OAAO,CAAC,CAAC,OAAO,IAAI,CAAA;QACzB,KAAK,SAAS,CAAC,CAAC,OAAO,IAAI,CAAA;QAC3B,KAAK,MAAM,CAAC,CAAC,OAAO,IAAI,CAAA;QACxB,OAAO,CAAC,CAAC,OAAO,IAAI,CAAA;IACtB,CAAC;AACH,CAAC;AAED,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAA6B;IAC7D,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;IAE7B,4BAA4B;IAC5B,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;QACxB,OAAO,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IAClF,CAAC;IAED,eAAe;IACf,IAAI,OAAO,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC;QAC/B,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,YAAY,CAAA;QACpC,MAAM,QAAQ,GAAG,EAAE,CAAC,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,KAAK,IAAI,sBAAsB,CAAA;QAC1E,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,IAAI,MAAM,IAAI,WAAW,CAAA;QACjD,OAAO,yBAAyB,QAAQ,aAAa,MAAM,EAAE,CAAA;IAC/D,CAAC;IAED,qDAAqD;IACrD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,gBAAgB,CACvB,MAA0B,EAC1B,KAAsB,EACtB,aAAsB;IAEtB,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACxC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,eAAe,CAAA;IAC5C,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,IAAI,KAAK,CAAC,OAAO,EAAE,IAAI,IAAI,SAAS,CAAA;IACvE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,EAAE,IAAI,GAAG,CAAA;IAChD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,GAAG,CAAA;IAEhC,2BAA2B;IAC3B,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,QAAQ,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI,CAAA;IAC9D,MAAM,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,QAAQ,IAAI,IAAI,CAAA;IAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAE/D,cAAc;IACd,MAAM,IAAI,GAAG,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,YAAY;QAC/C,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,aAAa;YACvC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,aAAa;gBACvC,CAAC,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC,CAAC,aAAa;oBACzC,CAAC,CAAC,GAAG,KAAK,YAAY,CAAA;IAExB,MAAM,KAAK,GAAa;QACtB,GAAG,IAAI,OAAO,KAAK,IAAI;QACvB,YAAY,OAAO,MAAM,OAAO,MAAM,KAAK,WAAW;KACvD,CAAA;IAED,IAAI,QAAQ,EAAE,CAAC;QACb,KAAK,CAAC,IAAI,CAAC,MAAM,QAAQ,EAAE,CAAC,CAAA;IAC9B,CAAC;IAED,IAAI,aAAa,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,SAAS,aAAa,EAAE,CAAC,CAAA;IACtC,CAAC;IAED,yCAAyC;IACzC,IAAI,KAAK,CAAC,OAAO,EAAE,IAAI,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,+BAA+B,KAAK,CAAC,EAAE,GAAG,CAAC,CAAA;IACxD,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACnC,OAAwB,EACxB,eAAmC,EACnC,YAAgC;IAEhC,0EAA0E;IAC1E,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAA;IAC9B,IAAI,CAAC,eAAe;QAAE,OAAO,KAAK,CAAA;IAElC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAA4B,CAAA;QAC3D,MAAM,QAAQ,GAAG,MAAM;aACpB,UAAU,CAAC,QAAQ,EAAE,YAAY,CAAC;aAClC,MAAM,CAAC,OAAO,CAAC;aACf,MAAM,CAAC,KAAK,CAAC,CAAA;QAChB,OAAO,MAAM,CAAC,eAAe,CAC3B,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,EAC5B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CACtB,CAAA;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC"}
|
package/dist/sentry.d.ts
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sentry Integration
|
|
3
|
+
*
|
|
4
|
+
* Initializes Sentry error tracking for reflectt-node.
|
|
5
|
+
* Only activates when SENTRY_DSN environment variable is set.
|
|
6
|
+
*
|
|
7
|
+
* Setup:
|
|
8
|
+
* 1. Create a Sentry project at sentry.io
|
|
9
|
+
* 2. Set SENTRY_DSN env var to the project's DSN
|
|
10
|
+
* 3. Optionally set SENTRY_ENVIRONMENT (defaults to 'production')
|
|
11
|
+
* 4. Optionally set SENTRY_CLIENT_SECRET for webhook signature verification
|
|
12
|
+
*/
|
|
13
|
+
import * as Sentry from '@sentry/node';
|
|
14
|
+
export declare function initSentry(): boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Capture an exception and send to Sentry.
|
|
17
|
+
* No-op if Sentry is not initialized.
|
|
18
|
+
*/
|
|
19
|
+
export declare function captureException(error: Error | unknown, context?: Record<string, unknown>): void;
|
|
20
|
+
/**
|
|
21
|
+
* Capture a message and send to Sentry.
|
|
22
|
+
*/
|
|
23
|
+
export declare function captureMessage(message: string, level?: 'info' | 'warning' | 'error'): void;
|
|
24
|
+
/**
|
|
25
|
+
* Flush pending events before shutdown.
|
|
26
|
+
*/
|
|
27
|
+
export declare function flushSentry(timeoutMs?: number): Promise<void>;
|
|
28
|
+
export { Sentry };
|
|
29
|
+
//# sourceMappingURL=sentry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sentry.d.ts","sourceRoot":"","sources":["../src/sentry.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AAItC,wBAAgB,UAAU,IAAI,OAAO,CA2CpC;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAGhG;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,GAAE,MAAM,GAAG,SAAS,GAAG,OAAgB,GAAG,IAAI,CAGlG;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,SAAS,SAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAGjE;AAED,OAAO,EAAE,MAAM,EAAE,CAAA"}
|