procsi 0.2.6 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +264 -148
- package/dist/cli/commands/completions.d.ts +9 -0
- package/dist/cli/commands/completions.d.ts.map +1 -0
- package/dist/cli/commands/completions.js +170 -0
- package/dist/cli/commands/completions.js.map +1 -0
- package/dist/cli/commands/helpers.d.ts +9 -0
- package/dist/cli/commands/helpers.d.ts.map +1 -1
- package/dist/cli/commands/helpers.js +19 -1
- package/dist/cli/commands/helpers.js.map +1 -1
- package/dist/cli/commands/interceptors.d.ts.map +1 -1
- package/dist/cli/commands/interceptors.js +142 -0
- package/dist/cli/commands/interceptors.js.map +1 -1
- package/dist/cli/commands/off.d.ts +0 -5
- package/dist/cli/commands/off.d.ts.map +1 -1
- package/dist/cli/commands/off.js +24 -23
- package/dist/cli/commands/off.js.map +1 -1
- package/dist/cli/commands/on.d.ts +27 -0
- package/dist/cli/commands/on.d.ts.map +1 -1
- package/dist/cli/commands/on.js +71 -17
- package/dist/cli/commands/on.js.map +1 -1
- package/dist/cli/commands/request.d.ts +6 -0
- package/dist/cli/commands/request.d.ts.map +1 -0
- package/dist/cli/commands/request.js +160 -0
- package/dist/cli/commands/request.js.map +1 -0
- package/dist/cli/commands/requests.d.ts +6 -0
- package/dist/cli/commands/requests.d.ts.map +1 -0
- package/dist/cli/commands/requests.js +282 -0
- package/dist/cli/commands/requests.js.map +1 -0
- package/dist/cli/commands/sessions.d.ts +6 -0
- package/dist/cli/commands/sessions.d.ts.map +1 -0
- package/dist/cli/commands/sessions.js +39 -0
- package/dist/cli/commands/sessions.js.map +1 -0
- package/dist/cli/formatters/colour.d.ts +17 -0
- package/dist/cli/formatters/colour.d.ts.map +1 -0
- package/dist/cli/formatters/colour.js +23 -0
- package/dist/cli/formatters/colour.js.map +1 -0
- package/dist/cli/formatters/detail.d.ts +17 -0
- package/dist/cli/formatters/detail.d.ts.map +1 -0
- package/dist/cli/formatters/detail.js +128 -0
- package/dist/cli/formatters/detail.js.map +1 -0
- package/dist/cli/formatters/hints.d.ts +17 -0
- package/dist/cli/formatters/hints.d.ts.map +1 -0
- package/dist/cli/formatters/hints.js +29 -0
- package/dist/cli/formatters/hints.js.map +1 -0
- package/dist/cli/formatters/table.d.ts +17 -0
- package/dist/cli/formatters/table.d.ts.map +1 -0
- package/dist/cli/formatters/table.js +75 -0
- package/dist/cli/formatters/table.js.map +1 -0
- package/dist/cli/index.js +12 -4
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/tui/App.d.ts.map +1 -1
- package/dist/cli/tui/App.js +24 -5
- package/dist/cli/tui/App.js.map +1 -1
- package/dist/cli/tui/components/EventFilterBar.d.ts +27 -0
- package/dist/cli/tui/components/EventFilterBar.d.ts.map +1 -0
- package/dist/cli/tui/components/EventFilterBar.js +145 -0
- package/dist/cli/tui/components/EventFilterBar.js.map +1 -0
- package/dist/cli/tui/components/HelpModal.d.ts.map +1 -1
- package/dist/cli/tui/components/HelpModal.js +1 -0
- package/dist/cli/tui/components/HelpModal.js.map +1 -1
- package/dist/cli/tui/components/InfoBar.d.ts +15 -0
- package/dist/cli/tui/components/InfoBar.d.ts.map +1 -0
- package/dist/cli/tui/components/InfoBar.js +45 -0
- package/dist/cli/tui/components/InfoBar.js.map +1 -0
- package/dist/cli/tui/components/InfoModal.js +1 -1
- package/dist/cli/tui/components/InfoModal.js.map +1 -1
- package/dist/cli/tui/components/InterceptorLogModal.d.ts +16 -0
- package/dist/cli/tui/components/InterceptorLogModal.d.ts.map +1 -0
- package/dist/cli/tui/components/InterceptorLogModal.js +229 -0
- package/dist/cli/tui/components/InterceptorLogModal.js.map +1 -0
- package/dist/cli/tui/components/RequestList.js +1 -1
- package/dist/cli/tui/components/RequestList.js.map +1 -1
- package/dist/cli/tui/components/StatusBar.d.ts +7 -2
- package/dist/cli/tui/components/StatusBar.d.ts.map +1 -1
- package/dist/cli/tui/components/StatusBar.js +11 -6
- package/dist/cli/tui/components/StatusBar.js.map +1 -1
- package/dist/cli/tui/hooks/useInterceptorEvents.d.ts +33 -0
- package/dist/cli/tui/hooks/useInterceptorEvents.d.ts.map +1 -0
- package/dist/cli/tui/hooks/useInterceptorEvents.js +88 -0
- package/dist/cli/tui/hooks/useInterceptorEvents.js.map +1 -0
- package/dist/cli/tui/hooks/useRequests.js +2 -2
- package/dist/cli/tui/hooks/useRequests.js.map +1 -1
- package/dist/cli/utils/parse-time.d.ts +22 -0
- package/dist/cli/utils/parse-time.d.ts.map +1 -0
- package/dist/cli/utils/parse-time.js +160 -0
- package/dist/cli/utils/parse-time.js.map +1 -0
- package/dist/daemon/control.d.ts +2 -0
- package/dist/daemon/control.d.ts.map +1 -1
- package/dist/daemon/control.js +41 -1
- package/dist/daemon/control.js.map +1 -1
- package/dist/daemon/index.js +5 -0
- package/dist/daemon/index.js.map +1 -1
- package/dist/daemon/interceptor-event-log.d.ts +37 -0
- package/dist/daemon/interceptor-event-log.d.ts.map +1 -0
- package/dist/daemon/interceptor-event-log.js +163 -0
- package/dist/daemon/interceptor-event-log.js.map +1 -0
- package/dist/daemon/interceptor-loader.d.ts +3 -0
- package/dist/daemon/interceptor-loader.d.ts.map +1 -1
- package/dist/daemon/interceptor-loader.js +29 -2
- package/dist/daemon/interceptor-loader.js.map +1 -1
- package/dist/daemon/interceptor-runner.d.ts +3 -0
- package/dist/daemon/interceptor-runner.d.ts.map +1 -1
- package/dist/daemon/interceptor-runner.js +112 -8
- package/dist/daemon/interceptor-runner.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +51 -1
- package/dist/mcp/server.js.map +1 -1
- package/dist/shared/control-client.d.ts +22 -1
- package/dist/shared/control-client.d.ts.map +1 -1
- package/dist/shared/control-client.js +12 -0
- package/dist/shared/control-client.js.map +1 -1
- package/dist/shared/types.d.ts +14 -0
- package/dist/shared/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/skills/procsi/SKILL.md +2 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusBar.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/components/StatusBar.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAe,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE9D,UAAU,gBAAgB;IACxB,WAAW,EAAE,MAAM,GAAG,WAAW,CAAC;IAClC,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,qBAAqB,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"StatusBar.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/components/StatusBar.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAe,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE9D,UAAU,gBAAgB;IACxB,WAAW,EAAE,MAAM,GAAG,WAAW,CAAC;IAClC,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,UAAU,OAAQ,SAAQ,QAAQ;IAChC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,OAAO,CAAC;CAC9C;AAoBD,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,+FAA+F;IAC/F,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;IACnC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,gEAAgE;IAChE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,yEAAyE;IACzE,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,sEAAsE;IACtE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAC9B,WAAoB,EACpB,YAAmB,EACnB,WAAkB,EAClB,aAAoB,EACpB,qBAA6B,EAC7B,SAAiB,GAClB,EAAE,IAAI,CAAC,cAAc,EAAE,aAAa,GAAG,cAAc,GAAG,aAAa,GAAG,eAAe,GAAG,uBAAuB,GAAG,WAAW,CAAC,GAAG,OAAO,EAAE,CAG5I;AAKD,wBAAgB,SAAS,CAAC,EACxB,OAAO,EACP,YAAY,EACZ,UAAU,EACV,WAAW,EACX,YAAY,EACZ,WAAW,EACX,aAAa,EACb,qBAAqB,EACrB,gBAAgB,EAChB,qBAAqB,EACrB,SAAS,EACT,KAAK,GACN,EAAE,cAAc,GAAG,KAAK,CAAC,YAAY,CAoErC"}
|
|
@@ -18,6 +18,7 @@ const KEY_HINTS = [
|
|
|
18
18
|
{ key: "s", action: "export", visible: (ctx) => ctx.onBodySection },
|
|
19
19
|
{ key: "u", action: "URL" },
|
|
20
20
|
{ key: "/", action: "filter" },
|
|
21
|
+
{ key: "L", action: "events", visible: (ctx) => ctx.hasEvents },
|
|
21
22
|
{ key: "i", action: "info" },
|
|
22
23
|
{ key: "?", action: "help" },
|
|
23
24
|
{ key: "q", action: "quit" },
|
|
@@ -26,19 +27,23 @@ const KEY_HINTS = [
|
|
|
26
27
|
* Returns hints visible for the given context. All new props default to true
|
|
27
28
|
* so the component remains backwards-compatible when no context is passed.
|
|
28
29
|
*/
|
|
29
|
-
export function getVisibleHints({ activePanel = "list", hasSelection = true, hasRequests = true, onBodySection = true, onViewableBodySection = false, }) {
|
|
30
|
-
const ctx = { activePanel, hasSelection, hasRequests, onBodySection, onViewableBodySection };
|
|
30
|
+
export function getVisibleHints({ activePanel = "list", hasSelection = true, hasRequests = true, onBodySection = true, onViewableBodySection = false, hasEvents = false, }) {
|
|
31
|
+
const ctx = { activePanel, hasSelection, hasRequests, onBodySection, onViewableBodySection, hasEvents };
|
|
31
32
|
return KEY_HINTS.filter((hint) => !hint.visible || hint.visible(ctx));
|
|
32
33
|
}
|
|
33
34
|
const SEPARATOR_WIDTH = 3; // " │ "
|
|
34
35
|
const PADDING_WIDTH = 2; // paddingX={1} each side
|
|
35
|
-
export function StatusBar({ message, filterActive, filterOpen, activePanel, hasSelection, hasRequests, onBodySection, onViewableBodySection, interceptorCount, width, }) {
|
|
36
|
-
const visibleHints = useMemo(() => getVisibleHints({ activePanel, hasSelection, hasRequests, onBodySection, onViewableBodySection }), [activePanel, hasSelection, hasRequests, onBodySection, onViewableBodySection]);
|
|
36
|
+
export function StatusBar({ message, filterActive, filterOpen, activePanel, hasSelection, hasRequests, onBodySection, onViewableBodySection, interceptorCount, interceptorErrorCount, hasEvents, width, }) {
|
|
37
|
+
const visibleHints = useMemo(() => getVisibleHints({ activePanel, hasSelection, hasRequests, onBodySection, onViewableBodySection, hasEvents }), [activePanel, hasSelection, hasRequests, onBodySection, onViewableBodySection, hasEvents]);
|
|
37
38
|
// Calculate available width for hints, accounting for prefix badges
|
|
38
39
|
const hintsAvailableWidth = useMemo(() => {
|
|
39
40
|
if (!width)
|
|
40
41
|
return undefined;
|
|
41
42
|
let prefixWidth = 0;
|
|
43
|
+
if (interceptorErrorCount !== undefined && interceptorErrorCount > 0) {
|
|
44
|
+
const errorBadge = `[${interceptorErrorCount} error${interceptorErrorCount === 1 ? "" : "s"}]`;
|
|
45
|
+
prefixWidth += errorBadge.length + SEPARATOR_WIDTH;
|
|
46
|
+
}
|
|
42
47
|
if (interceptorCount !== undefined && interceptorCount > 0) {
|
|
43
48
|
const badge = `[${interceptorCount} interceptor${interceptorCount === 1 ? "" : "s"}]`;
|
|
44
49
|
prefixWidth += badge.length + SEPARATOR_WIDTH;
|
|
@@ -47,7 +52,7 @@ export function StatusBar({ message, filterActive, filterOpen, activePanel, hasS
|
|
|
47
52
|
prefixWidth += "[FILTERED]".length + SEPARATOR_WIDTH;
|
|
48
53
|
}
|
|
49
54
|
return width - PADDING_WIDTH - prefixWidth;
|
|
50
|
-
}, [width, interceptorCount, filterActive]);
|
|
51
|
-
return (_jsx(Box, { borderStyle: "single", borderTop: true, borderBottom: false, borderLeft: false, borderRight: false, paddingX: 1, height: 2, children: message ? (_jsx(Text, { color: "yellow", children: message })) : filterOpen ? (_jsxs(_Fragment, { children: [_jsx(Text, { color: "cyan", bold: true, children: "Esc" }), _jsx(Text, { dimColor: true, children: " close filter" })] })) : (_jsxs(Text, { children: [interceptorCount !== undefined && interceptorCount > 0 && (_jsxs(_Fragment, { children: [_jsxs(Text, { color: "magenta", bold: true, children: ["[", interceptorCount, " interceptor", interceptorCount === 1 ? "" : "s", "]"] }), _jsx(Text, { dimColor: true, children: " \u2502 " })] })), filterActive && (_jsxs(_Fragment, { children: [_jsx(Text, { color: "yellow", bold: true, children: "[FILTERED]" }), _jsx(Text, { dimColor: true, children: " \u2502 " })] })), _jsx(HintContent, { hints: visibleHints, availableWidth: hintsAvailableWidth })] })) }));
|
|
55
|
+
}, [width, interceptorCount, interceptorErrorCount, filterActive]);
|
|
56
|
+
return (_jsx(Box, { borderStyle: "single", borderTop: true, borderBottom: false, borderLeft: false, borderRight: false, paddingX: 1, height: 2, children: message ? (_jsx(Text, { color: "yellow", children: message })) : filterOpen ? (_jsxs(_Fragment, { children: [_jsx(Text, { color: "cyan", bold: true, children: "Esc" }), _jsx(Text, { dimColor: true, children: " close filter" })] })) : (_jsxs(Text, { children: [interceptorErrorCount !== undefined && interceptorErrorCount > 0 && (_jsxs(_Fragment, { children: [_jsxs(Text, { color: "red", bold: true, children: ["[", interceptorErrorCount, " error", interceptorErrorCount === 1 ? "" : "s", "]"] }), _jsx(Text, { dimColor: true, children: " \u2502 " })] })), interceptorCount !== undefined && interceptorCount > 0 && (_jsxs(_Fragment, { children: [_jsxs(Text, { color: "magenta", bold: true, children: ["[", interceptorCount, " interceptor", interceptorCount === 1 ? "" : "s", "]"] }), _jsx(Text, { dimColor: true, children: " \u2502 " })] })), filterActive && (_jsxs(_Fragment, { children: [_jsx(Text, { color: "yellow", bold: true, children: "[FILTERED]" }), _jsx(Text, { dimColor: true, children: " \u2502 " })] })), _jsx(HintContent, { hints: visibleHints, availableWidth: hintsAvailableWidth })] })) }));
|
|
52
57
|
}
|
|
53
58
|
//# sourceMappingURL=StatusBar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusBar.js","sourceRoot":"","sources":["../../../../src/cli/tui/components/StatusBar.tsx"],"names":[],"mappings":";AAAA;;;GAGG;AAEH,OAAc,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,WAAW,EAAiB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"StatusBar.js","sourceRoot":"","sources":["../../../../src/cli/tui/components/StatusBar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hook for polling interceptor runtime events from the daemon.
|
|
3
|
+
* Follows the same ControlClient pattern as useRequests.
|
|
4
|
+
*/
|
|
5
|
+
import type { InterceptorEvent } from "../../../shared/types.js";
|
|
6
|
+
interface UseInterceptorEventsOptions {
|
|
7
|
+
projectRoot?: string;
|
|
8
|
+
pollInterval?: number;
|
|
9
|
+
}
|
|
10
|
+
interface InterceptorEventCounts {
|
|
11
|
+
info: number;
|
|
12
|
+
warn: number;
|
|
13
|
+
error: number;
|
|
14
|
+
}
|
|
15
|
+
interface UseInterceptorEventsResult {
|
|
16
|
+
/** All accumulated interceptor events, ordered by seq. */
|
|
17
|
+
events: InterceptorEvent[];
|
|
18
|
+
/** Aggregate counts by level across all events. */
|
|
19
|
+
counts: InterceptorEventCounts;
|
|
20
|
+
/** Total event count across all levels. */
|
|
21
|
+
totalEventCount: number;
|
|
22
|
+
/** Number of currently loaded interceptors. */
|
|
23
|
+
interceptorCount: number;
|
|
24
|
+
/** Force a full re-fetch (resets lastSeenSeq). */
|
|
25
|
+
refresh: () => void;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Hook to poll for interceptor events from the daemon.
|
|
29
|
+
* Accumulates events using delta fetching via afterSeq.
|
|
30
|
+
*/
|
|
31
|
+
export declare function useInterceptorEvents(options?: UseInterceptorEventsOptions): UseInterceptorEventsResult;
|
|
32
|
+
export {};
|
|
33
|
+
//# sourceMappingURL=useInterceptorEvents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useInterceptorEvents.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/hooks/useInterceptorEvents.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAMjE,UAAU,2BAA2B;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,UAAU,sBAAsB;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,0BAA0B;IAClC,0DAA0D;IAC1D,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,mDAAmD;IACnD,MAAM,EAAE,sBAAsB,CAAC;IAC/B,2CAA2C;IAC3C,eAAe,EAAE,MAAM,CAAC;IACxB,+CAA+C;IAC/C,gBAAgB,EAAE,MAAM,CAAC;IACzB,kDAAkD;IAClD,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAID;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,GAAE,2BAAgC,GACxC,0BAA0B,CAuF5B"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hook for polling interceptor runtime events from the daemon.
|
|
3
|
+
* Follows the same ControlClient pattern as useRequests.
|
|
4
|
+
*/
|
|
5
|
+
import { useState, useEffect, useCallback, useRef } from "react";
|
|
6
|
+
import { ControlClient } from "../../../shared/control-client.js";
|
|
7
|
+
import { findProjectRoot, getProcsiPaths } from "../../../shared/project.js";
|
|
8
|
+
const DEFAULT_POLL_INTERVAL_MS = 2000;
|
|
9
|
+
const EMPTY_COUNTS = { info: 0, warn: 0, error: 0 };
|
|
10
|
+
/**
|
|
11
|
+
* Hook to poll for interceptor events from the daemon.
|
|
12
|
+
* Accumulates events using delta fetching via afterSeq.
|
|
13
|
+
*/
|
|
14
|
+
export function useInterceptorEvents(options = {}) {
|
|
15
|
+
const { pollInterval = DEFAULT_POLL_INTERVAL_MS, projectRoot } = options;
|
|
16
|
+
const [events, setEvents] = useState([]);
|
|
17
|
+
const [counts, setCounts] = useState(EMPTY_COUNTS);
|
|
18
|
+
const [interceptorCount, setInterceptorCount] = useState(0);
|
|
19
|
+
const clientRef = useRef(null);
|
|
20
|
+
const lastSeenSeqRef = useRef(0);
|
|
21
|
+
// Initialise control client
|
|
22
|
+
useEffect(() => {
|
|
23
|
+
const resolvedRoot = projectRoot ?? findProjectRoot();
|
|
24
|
+
if (!resolvedRoot) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
const paths = getProcsiPaths(resolvedRoot);
|
|
28
|
+
clientRef.current = new ControlClient(paths.controlSocketFile);
|
|
29
|
+
return () => {
|
|
30
|
+
clientRef.current?.close();
|
|
31
|
+
};
|
|
32
|
+
}, [projectRoot]);
|
|
33
|
+
// Fetch new events since lastSeenSeq
|
|
34
|
+
const fetchEvents = useCallback(async () => {
|
|
35
|
+
const client = clientRef.current;
|
|
36
|
+
if (!client) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
try {
|
|
40
|
+
const [result, status] = await Promise.all([
|
|
41
|
+
client.getInterceptorEvents({
|
|
42
|
+
afterSeq: lastSeenSeqRef.current,
|
|
43
|
+
}),
|
|
44
|
+
client.status(),
|
|
45
|
+
]);
|
|
46
|
+
if (result.events.length > 0) {
|
|
47
|
+
// Update lastSeenSeq to the highest seq we've seen
|
|
48
|
+
const lastEvent = result.events[result.events.length - 1];
|
|
49
|
+
if (lastEvent) {
|
|
50
|
+
lastSeenSeqRef.current = lastEvent.seq;
|
|
51
|
+
}
|
|
52
|
+
setEvents((prev) => [...prev, ...result.events]);
|
|
53
|
+
}
|
|
54
|
+
setCounts(result.counts);
|
|
55
|
+
setInterceptorCount(status.interceptorCount ?? 0);
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
// Daemon may not be running or may not support interceptor events yet
|
|
59
|
+
}
|
|
60
|
+
}, []);
|
|
61
|
+
// Full refresh: reset accumulated state and re-fetch everything
|
|
62
|
+
const refresh = useCallback(() => {
|
|
63
|
+
lastSeenSeqRef.current = 0;
|
|
64
|
+
setEvents([]);
|
|
65
|
+
setCounts(EMPTY_COUNTS);
|
|
66
|
+
void fetchEvents();
|
|
67
|
+
}, [fetchEvents]);
|
|
68
|
+
// Initial fetch
|
|
69
|
+
useEffect(() => {
|
|
70
|
+
void fetchEvents();
|
|
71
|
+
}, [fetchEvents]);
|
|
72
|
+
// Polling
|
|
73
|
+
useEffect(() => {
|
|
74
|
+
const interval = setInterval(() => {
|
|
75
|
+
void fetchEvents();
|
|
76
|
+
}, pollInterval);
|
|
77
|
+
return () => clearInterval(interval);
|
|
78
|
+
}, [fetchEvents, pollInterval]);
|
|
79
|
+
const totalEventCount = counts.info + counts.warn + counts.error;
|
|
80
|
+
return {
|
|
81
|
+
events,
|
|
82
|
+
counts,
|
|
83
|
+
totalEventCount,
|
|
84
|
+
interceptorCount,
|
|
85
|
+
refresh,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=useInterceptorEvents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useInterceptorEvents.js","sourceRoot":"","sources":["../../../../src/cli/tui/hooks/useInterceptorEvents.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAEjE,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE7E,MAAM,wBAAwB,GAAG,IAAI,CAAC;AA0BtC,MAAM,YAAY,GAA2B,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AAE5E;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,UAAuC,EAAE;IAEzC,MAAM,EAAE,YAAY,GAAG,wBAAwB,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAEzE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAqB,EAAE,CAAC,CAAC;IAC7D,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAyB,YAAY,CAAC,CAAC;IAC3E,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAE5D,MAAM,SAAS,GAAG,MAAM,CAAuB,IAAI,CAAC,CAAC;IACrD,MAAM,cAAc,GAAG,MAAM,CAAS,CAAC,CAAC,CAAC;IAEzC,4BAA4B;IAC5B,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,YAAY,GAAG,WAAW,IAAI,eAAe,EAAE,CAAC;QACtD,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;QAC3C,SAAS,CAAC,OAAO,GAAG,IAAI,aAAa,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAE/D,OAAO,GAAG,EAAE;YACV,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;QAC7B,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,qCAAqC;IACrC,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACzC,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC;QACjC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACzC,MAAM,CAAC,oBAAoB,CAAC;oBAC1B,QAAQ,EAAE,cAAc,CAAC,OAAO;iBACjC,CAAC;gBACF,MAAM,CAAC,MAAM,EAAE;aAChB,CAAC,CAAC;YAEH,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,mDAAmD;gBACnD,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAC1D,IAAI,SAAS,EAAE,CAAC;oBACd,cAAc,CAAC,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC;gBACzC,CAAC;gBAED,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YACnD,CAAC;YAED,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACzB,mBAAmB,CAAC,MAAM,CAAC,gBAAgB,IAAI,CAAC,CAAC,CAAC;QACpD,CAAC;QAAC,MAAM,CAAC;YACP,sEAAsE;QACxE,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,gEAAgE;IAChE,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE;QAC/B,cAAc,CAAC,OAAO,GAAG,CAAC,CAAC;QAC3B,SAAS,CAAC,EAAE,CAAC,CAAC;QACd,SAAS,CAAC,YAAY,CAAC,CAAC;QACxB,KAAK,WAAW,EAAE,CAAC;IACrB,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,gBAAgB;IAChB,SAAS,CAAC,GAAG,EAAE;QACb,KAAK,WAAW,EAAE,CAAC;IACrB,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,UAAU;IACV,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;YAChC,KAAK,WAAW,EAAE,CAAC;QACrB,CAAC,EAAE,YAAY,CAAC,CAAC;QAEjB,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;IAEhC,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC;IAEjE,OAAO;QACL,MAAM;QACN,MAAM;QACN,eAAe;QACf,gBAAgB;QAChB,OAAO;KACR,CAAC;AACJ,CAAC"}
|
|
@@ -22,7 +22,7 @@ export function useRequests(options = {}) {
|
|
|
22
22
|
useEffect(() => {
|
|
23
23
|
const resolvedRoot = projectRoot ?? findProjectRoot();
|
|
24
24
|
if (!resolvedRoot) {
|
|
25
|
-
setError("Not in
|
|
25
|
+
setError("Not in a procsi project. Run 'eval \"$(procsi on)\"' first.");
|
|
26
26
|
setIsLoading(false);
|
|
27
27
|
return;
|
|
28
28
|
}
|
|
@@ -60,7 +60,7 @@ export function useRequests(options = {}) {
|
|
|
60
60
|
catch (err) {
|
|
61
61
|
const message = err instanceof Error ? err.message : "Failed to connect to daemon";
|
|
62
62
|
if (message.includes("ENOENT") || message.includes("ECONNREFUSED")) {
|
|
63
|
-
setError("Daemon not running. Start with 'eval $(procsi
|
|
63
|
+
setError("Daemon not running. Start with 'eval \"$(procsi on)\"'.");
|
|
64
64
|
}
|
|
65
65
|
else {
|
|
66
66
|
setError(message);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRequests.js","sourceRoot":"","sources":["../../../../src/cli/tui/hooks/useRequests.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAMjE,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE7E,MAAM,mBAAmB,GAAG,IAAI,CAAC;AACjC,MAAM,wBAAwB,GAAG,IAAI,CAAC;AAoBtC;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,UAA8B,EAAE;IAC1D,MAAM,EAAE,YAAY,GAAG,wBAAwB,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAEjF,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAA2B,EAAE,CAAC,CAAC;IACvE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAExD,MAAM,SAAS,GAAG,MAAM,CAAuB,IAAI,CAAC,CAAC;IACrD,MAAM,YAAY,GAAG,MAAM,CAAS,CAAC,CAAC,CAAC;IACvC,MAAM,iBAAiB,GAAG,MAAM,CAAS,CAAC,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,MAAM,CAA4B,MAAM,CAAC,CAAC;IAE5D,4BAA4B;IAC5B,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,YAAY,GAAG,WAAW,IAAI,eAAe,EAAE,CAAC;QACtD,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"useRequests.js","sourceRoot":"","sources":["../../../../src/cli/tui/hooks/useRequests.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Human-friendly time expression parser for CLI --since/--before flags.
|
|
3
|
+
*
|
|
4
|
+
* Supported patterns (in priority order):
|
|
5
|
+
* Relative duration: 5s, 10m, 2h, 3d, 1w
|
|
6
|
+
* Named: now, today, yesterday
|
|
7
|
+
* Day of week: monday, tue, fri (full or 3-letter abbreviation)
|
|
8
|
+
* Time of day 12h: 10am, 2:30pm
|
|
9
|
+
* Time of day 24h: 14:30, 9:00
|
|
10
|
+
* ISO date: 2024-01-01
|
|
11
|
+
* ISO datetime: 2024-01-01T10:00, 2024-01-01 10:00
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Parse a human-friendly time expression into an epoch millisecond timestamp.
|
|
15
|
+
*
|
|
16
|
+
* @param input - The time expression string
|
|
17
|
+
* @param now - Override for current time (for testing). Defaults to Date.now().
|
|
18
|
+
* @returns Epoch milliseconds
|
|
19
|
+
* @throws Error on invalid input with a message listing supported formats
|
|
20
|
+
*/
|
|
21
|
+
export declare function parseTime(input: string, now?: number): number;
|
|
22
|
+
//# sourceMappingURL=parse-time.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-time.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/parse-time.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAyCH;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAuH7D"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Human-friendly time expression parser for CLI --since/--before flags.
|
|
3
|
+
*
|
|
4
|
+
* Supported patterns (in priority order):
|
|
5
|
+
* Relative duration: 5s, 10m, 2h, 3d, 1w
|
|
6
|
+
* Named: now, today, yesterday
|
|
7
|
+
* Day of week: monday, tue, fri (full or 3-letter abbreviation)
|
|
8
|
+
* Time of day 12h: 10am, 2:30pm
|
|
9
|
+
* Time of day 24h: 14:30, 9:00
|
|
10
|
+
* ISO date: 2024-01-01
|
|
11
|
+
* ISO datetime: 2024-01-01T10:00, 2024-01-01 10:00
|
|
12
|
+
*/
|
|
13
|
+
const RELATIVE_DURATION_RE = /^(\d+)(s|m|h|d|w)$/;
|
|
14
|
+
const TIME_12H_RE = /^(\d{1,2})(?::(\d{2}))?(am|pm)$/i;
|
|
15
|
+
const TIME_24H_RE = /^(\d{1,2}):(\d{2})$/;
|
|
16
|
+
const ISO_DATE_RE = /^\d{4}-\d{2}-\d{2}$/;
|
|
17
|
+
const ISO_DATETIME_RE = /^\d{4}-\d{2}-\d{2}[t ]\d{2}:\d{2}(?::\d{2})?$/;
|
|
18
|
+
const DURATION_UNITS = {
|
|
19
|
+
s: 1000,
|
|
20
|
+
m: 60 * 1000,
|
|
21
|
+
h: 60 * 60 * 1000,
|
|
22
|
+
d: 24 * 60 * 60 * 1000,
|
|
23
|
+
w: 7 * 24 * 60 * 60 * 1000,
|
|
24
|
+
};
|
|
25
|
+
const DAY_NAMES = {
|
|
26
|
+
sunday: 0,
|
|
27
|
+
sun: 0,
|
|
28
|
+
monday: 1,
|
|
29
|
+
mon: 1,
|
|
30
|
+
tuesday: 2,
|
|
31
|
+
tue: 2,
|
|
32
|
+
wednesday: 3,
|
|
33
|
+
wed: 3,
|
|
34
|
+
thursday: 4,
|
|
35
|
+
thu: 4,
|
|
36
|
+
friday: 5,
|
|
37
|
+
fri: 5,
|
|
38
|
+
saturday: 6,
|
|
39
|
+
sat: 6,
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Set a Date to midnight (00:00:00.000) in local time.
|
|
43
|
+
*/
|
|
44
|
+
function toMidnight(date) {
|
|
45
|
+
date.setHours(0, 0, 0, 0);
|
|
46
|
+
return date;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Parse a human-friendly time expression into an epoch millisecond timestamp.
|
|
50
|
+
*
|
|
51
|
+
* @param input - The time expression string
|
|
52
|
+
* @param now - Override for current time (for testing). Defaults to Date.now().
|
|
53
|
+
* @returns Epoch milliseconds
|
|
54
|
+
* @throws Error on invalid input with a message listing supported formats
|
|
55
|
+
*/
|
|
56
|
+
export function parseTime(input, now) {
|
|
57
|
+
const trimmed = input.trim().toLowerCase();
|
|
58
|
+
const currentMs = now ?? Date.now();
|
|
59
|
+
// Named constants
|
|
60
|
+
if (trimmed === "now") {
|
|
61
|
+
return currentMs;
|
|
62
|
+
}
|
|
63
|
+
if (trimmed === "today") {
|
|
64
|
+
return toMidnight(new Date(currentMs)).getTime();
|
|
65
|
+
}
|
|
66
|
+
if (trimmed === "yesterday") {
|
|
67
|
+
const d = new Date(currentMs);
|
|
68
|
+
d.setDate(d.getDate() - 1);
|
|
69
|
+
return toMidnight(d).getTime();
|
|
70
|
+
}
|
|
71
|
+
// Relative duration: 5s, 10m, 2h, 3d, 1w
|
|
72
|
+
const relMatch = RELATIVE_DURATION_RE.exec(trimmed);
|
|
73
|
+
if (relMatch) {
|
|
74
|
+
const amountStr = relMatch[1] ?? "0";
|
|
75
|
+
const unit = relMatch[2] ?? "s";
|
|
76
|
+
const amount = parseInt(amountStr, 10);
|
|
77
|
+
const multiplier = DURATION_UNITS[unit];
|
|
78
|
+
if (multiplier === undefined) {
|
|
79
|
+
throw new Error(`Unknown duration unit: ${unit}`);
|
|
80
|
+
}
|
|
81
|
+
const result = currentMs - amount * multiplier;
|
|
82
|
+
if (result < 0) {
|
|
83
|
+
throw new Error(`Duration "${input}" is too large (resolves to before Unix epoch)`);
|
|
84
|
+
}
|
|
85
|
+
return result;
|
|
86
|
+
}
|
|
87
|
+
// Day of week: monday, tue, fri etc
|
|
88
|
+
const dayIndex = DAY_NAMES[trimmed];
|
|
89
|
+
if (dayIndex !== undefined) {
|
|
90
|
+
const d = new Date(currentMs);
|
|
91
|
+
const currentDay = d.getDay();
|
|
92
|
+
// How many days ago was this weekday? If today is the same day, go back 7.
|
|
93
|
+
let daysBack = currentDay - dayIndex;
|
|
94
|
+
if (daysBack <= 0) {
|
|
95
|
+
daysBack += 7;
|
|
96
|
+
}
|
|
97
|
+
d.setDate(d.getDate() - daysBack);
|
|
98
|
+
return toMidnight(d).getTime();
|
|
99
|
+
}
|
|
100
|
+
// Time of day 12h: 10am, 2:30pm
|
|
101
|
+
const time12Match = TIME_12H_RE.exec(trimmed);
|
|
102
|
+
if (time12Match) {
|
|
103
|
+
let hours = parseInt(time12Match[1] ?? "0", 10);
|
|
104
|
+
const minutes = time12Match[2] ? parseInt(time12Match[2], 10) : 0;
|
|
105
|
+
const period = (time12Match[3] ?? "am").toLowerCase();
|
|
106
|
+
if (hours < 1 || hours > 12 || minutes < 0 || minutes > 59) {
|
|
107
|
+
throw new Error(`Invalid 12-hour time: ${input}`);
|
|
108
|
+
}
|
|
109
|
+
if (period === "am" && hours === 12) {
|
|
110
|
+
hours = 0;
|
|
111
|
+
}
|
|
112
|
+
else if (period === "pm" && hours !== 12) {
|
|
113
|
+
hours += 12;
|
|
114
|
+
}
|
|
115
|
+
const d = new Date(currentMs);
|
|
116
|
+
d.setHours(hours, minutes, 0, 0);
|
|
117
|
+
return d.getTime();
|
|
118
|
+
}
|
|
119
|
+
// Time of day 24h: 14:30, 9:00
|
|
120
|
+
const time24Match = TIME_24H_RE.exec(trimmed);
|
|
121
|
+
if (time24Match) {
|
|
122
|
+
const hours = parseInt(time24Match[1] ?? "0", 10);
|
|
123
|
+
const minutes = parseInt(time24Match[2] ?? "0", 10);
|
|
124
|
+
if (hours < 0 || hours > 23 || minutes < 0 || minutes > 59) {
|
|
125
|
+
throw new Error(`Invalid 24-hour time: ${input}`);
|
|
126
|
+
}
|
|
127
|
+
const d = new Date(currentMs);
|
|
128
|
+
d.setHours(hours, minutes, 0, 0);
|
|
129
|
+
return d.getTime();
|
|
130
|
+
}
|
|
131
|
+
// ISO datetime: 2024-01-01T10:00 or 2024-01-01 10:00
|
|
132
|
+
if (ISO_DATETIME_RE.test(trimmed)) {
|
|
133
|
+
// Normalise to uppercase T and space to T for Date constructor
|
|
134
|
+
const normalised = trimmed.replace(/[t ]/, "T");
|
|
135
|
+
const ts = new Date(normalised).getTime();
|
|
136
|
+
if (isNaN(ts)) {
|
|
137
|
+
throw new Error(`Invalid datetime: ${input}`);
|
|
138
|
+
}
|
|
139
|
+
return ts;
|
|
140
|
+
}
|
|
141
|
+
// ISO date: 2024-01-01
|
|
142
|
+
if (ISO_DATE_RE.test(trimmed)) {
|
|
143
|
+
// Parse as local date by appending T00:00:00 to avoid UTC interpretation
|
|
144
|
+
const ts = new Date(trimmed + "T00:00:00").getTime();
|
|
145
|
+
if (isNaN(ts)) {
|
|
146
|
+
throw new Error(`Invalid date: ${input}`);
|
|
147
|
+
}
|
|
148
|
+
return ts;
|
|
149
|
+
}
|
|
150
|
+
throw new Error(`Unrecognised time expression: "${input}"\n` +
|
|
151
|
+
"Supported formats:\n" +
|
|
152
|
+
" Relative: 5s, 10m, 2h, 3d, 1w\n" +
|
|
153
|
+
" Named: now, today, yesterday\n" +
|
|
154
|
+
" Weekday: monday, tue, fri\n" +
|
|
155
|
+
" Time 12h: 10am, 2:30pm\n" +
|
|
156
|
+
" Time 24h: 14:30, 9:00\n" +
|
|
157
|
+
" ISO date: 2024-01-01\n" +
|
|
158
|
+
" ISO dt: 2024-01-01T10:00");
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=parse-time.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-time.js","sourceRoot":"","sources":["../../../src/cli/utils/parse-time.ts"],"names":[],"mappings":"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"}
|
package/dist/daemon/control.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { RequestRepository } from "./storage.js";
|
|
2
2
|
import type { InterceptorLoader } from "./interceptor-loader.js";
|
|
3
|
+
import type { InterceptorEventLog } from "./interceptor-event-log.js";
|
|
3
4
|
import { type LogLevel } from "../shared/logger.js";
|
|
4
5
|
export { ControlClient } from "../shared/control-client.js";
|
|
5
6
|
export interface ControlServerOptions {
|
|
@@ -10,6 +11,7 @@ export interface ControlServerOptions {
|
|
|
10
11
|
projectRoot?: string;
|
|
11
12
|
logLevel?: LogLevel;
|
|
12
13
|
interceptorLoader?: InterceptorLoader;
|
|
14
|
+
interceptorEventLog?: InterceptorEventLog;
|
|
13
15
|
}
|
|
14
16
|
export interface ControlServer {
|
|
15
17
|
close: () => Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"control.d.ts","sourceRoot":"","sources":["../../src/daemon/control.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"control.d.ts","sourceRoot":"","sources":["../../src/daemon/control.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAajE,OAAO,KAAK,EAAE,mBAAmB,EAAe,MAAM,4BAA4B,CAAC;AAMnF,OAAO,EAAgB,KAAK,QAAQ,EAAe,MAAM,qBAAqB,CAAC;AAE/E,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;CAC3C;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AA0HD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,aAAa,CAuRhF"}
|
package/dist/daemon/control.js
CHANGED
|
@@ -83,7 +83,7 @@ function optionalFilter(params) {
|
|
|
83
83
|
* Create a Unix socket control server for daemon communication.
|
|
84
84
|
*/
|
|
85
85
|
export function createControlServer(options) {
|
|
86
|
-
const { socketPath, storage, proxyPort, version, projectRoot, logLevel, interceptorLoader } = options;
|
|
86
|
+
const { socketPath, storage, proxyPort, version, projectRoot, logLevel, interceptorLoader, interceptorEventLog, } = options;
|
|
87
87
|
// Create logger if projectRoot is provided
|
|
88
88
|
const logger = projectRoot
|
|
89
89
|
? createLogger("control", projectRoot, logLevel)
|
|
@@ -201,6 +201,46 @@ export function createControlServer(options) {
|
|
|
201
201
|
};
|
|
202
202
|
}
|
|
203
203
|
},
|
|
204
|
+
getInterceptorEvents: (params) => {
|
|
205
|
+
if (!interceptorEventLog) {
|
|
206
|
+
return { events: [], counts: { info: 0, warn: 0, error: 0 } };
|
|
207
|
+
}
|
|
208
|
+
const afterSeq = optionalNumber(params, "afterSeq") ?? 0;
|
|
209
|
+
const limit = optionalNumber(params, "limit");
|
|
210
|
+
const level = optionalString(params, "level");
|
|
211
|
+
const interceptor = optionalString(params, "interceptor");
|
|
212
|
+
const type = optionalString(params, "type");
|
|
213
|
+
const events = afterSeq > 0
|
|
214
|
+
? interceptorEventLog.since(afterSeq, { limit, level, interceptor, type })
|
|
215
|
+
: interceptorEventLog.latest(limit ?? 100);
|
|
216
|
+
// Apply filters for the latest() path (since() handles them internally)
|
|
217
|
+
const filtered = afterSeq > 0
|
|
218
|
+
? events
|
|
219
|
+
: events.filter((e) => {
|
|
220
|
+
if (level) {
|
|
221
|
+
const SEVERITY = {
|
|
222
|
+
info: 0,
|
|
223
|
+
warn: 1,
|
|
224
|
+
error: 2,
|
|
225
|
+
};
|
|
226
|
+
if (SEVERITY[e.level] < SEVERITY[level])
|
|
227
|
+
return false;
|
|
228
|
+
}
|
|
229
|
+
if (interceptor && e.interceptor !== interceptor)
|
|
230
|
+
return false;
|
|
231
|
+
if (type && e.type !== type)
|
|
232
|
+
return false;
|
|
233
|
+
return true;
|
|
234
|
+
});
|
|
235
|
+
return {
|
|
236
|
+
events: filtered,
|
|
237
|
+
counts: interceptorEventLog.counts(),
|
|
238
|
+
};
|
|
239
|
+
},
|
|
240
|
+
clearInterceptorEvents: () => {
|
|
241
|
+
interceptorEventLog?.clear();
|
|
242
|
+
return { success: true };
|
|
243
|
+
},
|
|
204
244
|
ping: () => {
|
|
205
245
|
return { pong: true };
|
|
206
246
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"control.js","sourceRoot":"","sources":["../../src/daemon/control.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"control.js","sourceRoot":"","sources":["../../src/daemon/control.ts"],"names":[],"mappings":"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"}
|
package/dist/daemon/index.js
CHANGED
|
@@ -7,6 +7,7 @@ import { createProxy } from "./proxy.js";
|
|
|
7
7
|
import { createControlServer } from "./control.js";
|
|
8
8
|
import { createInterceptorLoader } from "./interceptor-loader.js";
|
|
9
9
|
import { createInterceptorRunner } from "./interceptor-runner.js";
|
|
10
|
+
import { createInterceptorEventLog } from "./interceptor-event-log.js";
|
|
10
11
|
import { createProcsiClient } from "./procsi-client.js";
|
|
11
12
|
import { getProcsiPaths, ensureProcsiDir, writeProxyPort, writeDaemonPid, removeDaemonPid, } from "../shared/project.js";
|
|
12
13
|
import { createLogger, isValidLogLevel } from "../shared/logger.js";
|
|
@@ -49,12 +50,14 @@ async function main() {
|
|
|
49
50
|
// Load interceptors if the directory exists (user opts in by creating it)
|
|
50
51
|
let interceptorLoader;
|
|
51
52
|
let interceptorRunner;
|
|
53
|
+
const interceptorEventLog = createInterceptorEventLog();
|
|
52
54
|
if (fs.existsSync(paths.interceptorsDir)) {
|
|
53
55
|
const procsiClient = createProcsiClient(storage);
|
|
54
56
|
interceptorLoader = await createInterceptorLoader({
|
|
55
57
|
interceptorsDir: paths.interceptorsDir,
|
|
56
58
|
projectRoot,
|
|
57
59
|
logLevel,
|
|
60
|
+
eventLog: interceptorEventLog,
|
|
58
61
|
onReload: () => {
|
|
59
62
|
logger.info("Interceptors reloaded", {
|
|
60
63
|
count: interceptorLoader?.getInterceptors().length ?? 0,
|
|
@@ -71,6 +74,7 @@ async function main() {
|
|
|
71
74
|
procsiClient,
|
|
72
75
|
projectRoot,
|
|
73
76
|
logLevel,
|
|
77
|
+
eventLog: interceptorEventLog,
|
|
74
78
|
});
|
|
75
79
|
}
|
|
76
80
|
// Find a free port for the proxy
|
|
@@ -107,6 +111,7 @@ async function main() {
|
|
|
107
111
|
projectRoot,
|
|
108
112
|
logLevel,
|
|
109
113
|
interceptorLoader,
|
|
114
|
+
interceptorEventLog,
|
|
110
115
|
});
|
|
111
116
|
// Write PID file
|
|
112
117
|
writeDaemonPid(projectRoot, process.pid);
|