@vforsh/argus 0.1.23 → 0.3.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/.tsbuildinfo +1 -1
- package/dist/argus.js +557 -257
- package/dist/cli/register/logsCommands.d.ts.map +1 -1
- package/dist/cli/register/logsCommands.js +15 -3
- package/dist/cli/register/logsCommands.js.map +1 -1
- package/dist/commands/evalPolling.d.ts +13 -23
- package/dist/commands/evalPolling.d.ts.map +1 -1
- package/dist/commands/evalPolling.js +38 -51
- package/dist/commands/evalPolling.js.map +1 -1
- package/dist/commands/logs.d.ts +7 -0
- package/dist/commands/logs.d.ts.map +1 -1
- package/dist/commands/logs.js +6 -1
- package/dist/commands/logs.js.map +1 -1
- package/dist/commands/tail.d.ts +1 -0
- package/dist/commands/tail.d.ts.map +1 -1
- package/dist/commands/tail.js +25 -18
- package/dist/commands/tail.js.map +1 -1
- package/dist/skill/argus/reference/EVAL.md +1 -1
- package/dist/skill/argus/reference/INSPECT.md +10 -1
- package/dist/watchers/queryParams.d.ts +1 -0
- package/dist/watchers/queryParams.d.ts.map +1 -1
- package/dist/watchers/queryParams.js +5 -3
- package/dist/watchers/queryParams.js.map +1 -1
- package/package.json +5 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logsCommands.d.ts","sourceRoot":"","sources":["../../../src/cli/register/logsCommands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAsB,MAAM,qBAAqB,CAAA;AA4BrF,eAAO,MAAM,YAAY,EAAE,SAAS,sBAAsB,
|
|
1
|
+
{"version":3,"file":"logsCommands.d.ts","sourceRoot":"","sources":["../../../src/cli/register/logsCommands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAsB,MAAM,qBAAqB,CAAA;AA4BrF,eAAO,MAAM,YAAY,EAAE,SAAS,sBAAsB,EAoEzD,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { runLogCursor, runLogs } from '../../commands/logs.js';
|
|
1
|
+
import { runLogCursor, runLogEpoch, runLogs } from '../../commands/logs.js';
|
|
2
2
|
import { runTail } from '../../commands/tail.js';
|
|
3
3
|
import { collectMatch, validateCaseFlags, validateMatchOptions } from '../validation.js';
|
|
4
4
|
const sharedFilterOptions = [
|
|
@@ -25,7 +25,8 @@ export const logsCommands = [
|
|
|
25
25
|
options: [
|
|
26
26
|
...sharedFilterOptions,
|
|
27
27
|
{ flags: '--since <duration>', description: 'Filter by time window (e.g. 10m, 2h, 30s)' },
|
|
28
|
-
{ flags: '--after <
|
|
28
|
+
{ flags: '--after <cursor>', description: 'Only return events after this opaque cursor' },
|
|
29
|
+
{ flags: '--since-epoch <epoch>', description: 'Only return events after this opaque epoch' },
|
|
29
30
|
{ flags: '--limit <count>', description: 'Maximum number of events' },
|
|
30
31
|
{ flags: '--json', description: 'Output bounded JSON preview for automation' },
|
|
31
32
|
{ flags: '--json-full', description: 'Output full JSON (can be very large)' },
|
|
@@ -37,6 +38,16 @@ export const logsCommands = [
|
|
|
37
38
|
await runLogs(id, options);
|
|
38
39
|
},
|
|
39
40
|
subcommands: [
|
|
41
|
+
{
|
|
42
|
+
name: 'epoch',
|
|
43
|
+
description: 'Return an opaque watcher-session log epoch without downloading events',
|
|
44
|
+
arguments: [{ flags: '[id]', description: 'Watcher id to query' }],
|
|
45
|
+
options: [{ flags: '--json', description: 'Output one JSON document for automation' }],
|
|
46
|
+
examples: ['argus logs epoch app', 'argus logs epoch app --json'],
|
|
47
|
+
action: async (id, options, command) => {
|
|
48
|
+
await runLogEpoch(id, command.optsWithGlobals?.() ?? options);
|
|
49
|
+
},
|
|
50
|
+
},
|
|
40
51
|
{
|
|
41
52
|
name: 'cursor',
|
|
42
53
|
description: 'Return the current log cursor without downloading events',
|
|
@@ -53,7 +64,8 @@ export const logsCommands = [
|
|
|
53
64
|
arguments: [{ flags: '[id]', description: 'Watcher id to follow' }],
|
|
54
65
|
options: [
|
|
55
66
|
...sharedFilterOptions,
|
|
56
|
-
{ flags: '--after <
|
|
67
|
+
{ flags: '--after <cursor>', description: 'Start after this opaque cursor' },
|
|
68
|
+
{ flags: '--since-epoch <epoch>', description: 'Start after this opaque epoch' },
|
|
57
69
|
{ flags: '--limit <count>', description: 'Maximum number of events per poll' },
|
|
58
70
|
{ flags: '--timeout <ms>', description: 'Long-poll timeout in milliseconds' },
|
|
59
71
|
{ flags: '--json', description: 'Output bounded newline-delimited JSON events' },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logsCommands.js","sourceRoot":"","sources":["../../../src/cli/register/logsCommands.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"logsCommands.js","sourceRoot":"","sources":["../../../src/cli/register/logsCommands.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
|
+
import type { EvalPollOutcome as CoreEvalPollOutcome } from '@vforsh/argus-client';
|
|
1
2
|
import type { EvalResponse, WatcherRecord } from '@vforsh/argus-core';
|
|
2
3
|
import { type EvalAttemptResult } from '../eval/evalClient.js';
|
|
4
|
+
/** A failed eval attempt, after retries were exhausted. */
|
|
5
|
+
type EvalFailure = Extract<EvalAttemptResult, {
|
|
6
|
+
ok: false;
|
|
7
|
+
}>;
|
|
3
8
|
type PollStopContext = {
|
|
4
9
|
response: EvalResponse;
|
|
5
10
|
iteration: number;
|
|
@@ -28,29 +33,14 @@ export type EvalPollInput = {
|
|
|
28
33
|
shouldStop?: (context: PollStopContext) => PollStopResult;
|
|
29
34
|
onResult?: (response: EvalResponse, context: PollStopContext) => void | Promise<void>;
|
|
30
35
|
};
|
|
31
|
-
export type EvalPollOutcome =
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
} | {
|
|
40
|
-
kind: 'timeout';
|
|
41
|
-
elapsedMs: number;
|
|
42
|
-
} | {
|
|
43
|
-
kind: 'interrupted';
|
|
44
|
-
} | {
|
|
45
|
-
kind: 'eval-error';
|
|
46
|
-
failure: Extract<EvalAttemptResult, {
|
|
47
|
-
ok: false;
|
|
48
|
-
}>;
|
|
49
|
-
} | {
|
|
50
|
-
kind: 'condition-error';
|
|
51
|
-
error: string;
|
|
52
|
-
};
|
|
53
|
-
/** Shared polling engine for `eval --interval` and `eval-until` so loop semantics stay identical. */
|
|
36
|
+
export type EvalPollOutcome = CoreEvalPollOutcome<EvalResponse, EvalFailure>;
|
|
37
|
+
/**
|
|
38
|
+
* CLI adapter over the shared polling engine in `@vforsh/argus-client`, so
|
|
39
|
+
* `eval --interval` and `eval-until` keep identical loop semantics to the SDK.
|
|
40
|
+
*
|
|
41
|
+
* The shared core deliberately installs no process listeners; CLI-only concerns —
|
|
42
|
+
* SIGINT/SIGTERM handling and the retry policy — are wired in here.
|
|
43
|
+
*/
|
|
54
44
|
export declare const pollEval: (input: EvalPollInput) => Promise<EvalPollOutcome>;
|
|
55
45
|
export {};
|
|
56
46
|
//# sourceMappingURL=evalPolling.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evalPolling.d.ts","sourceRoot":"","sources":["../../src/commands/evalPolling.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACrE,OAAO,EAAmB,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"evalPolling.d.ts","sourceRoot":"","sources":["../../src/commands/evalPolling.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,IAAI,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAElF,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACrE,OAAO,EAAmB,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAE/E,2DAA2D;AAC3D,KAAK,WAAW,GAAG,OAAO,CAAC,iBAAiB,EAAE;IAAE,EAAE,EAAE,KAAK,CAAA;CAAE,CAAC,CAAA;AAE5D,KAAK,eAAe,GAAG;IACtB,QAAQ,EAAE,YAAY,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;CACf,CAAA;AAED,KAAK,cAAc,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAEnF,MAAM,MAAM,aAAa,GAAG;IAC3B,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC,CAAA;IACpD,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B,YAAY,EAAE,OAAO,CAAA;IACrB,aAAa,EAAE,OAAO,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,eAAe,EAAE,OAAO,CAAA;IACxB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,cAAc,CAAA;IACzD,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,eAAe,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACrF,CAAA;AAED,MAAM,MAAM,eAAe,GAAG,mBAAmB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;AAE5E;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,GAAU,OAAO,aAAa,KAAG,OAAO,CAAC,eAAe,CAuC5E,CAAA"}
|
|
@@ -1,60 +1,47 @@
|
|
|
1
|
+
import { pollEval as pollEvalCore } from '@vforsh/argus-client';
|
|
1
2
|
import { evalWithRetries } from '../eval/evalClient.js';
|
|
2
|
-
|
|
3
|
-
|
|
3
|
+
/**
|
|
4
|
+
* CLI adapter over the shared polling engine in `@vforsh/argus-client`, so
|
|
5
|
+
* `eval --interval` and `eval-until` keep identical loop semantics to the SDK.
|
|
6
|
+
*
|
|
7
|
+
* The shared core deliberately installs no process listeners; CLI-only concerns —
|
|
8
|
+
* SIGINT/SIGTERM handling and the retry policy — are wired in here.
|
|
9
|
+
*/
|
|
4
10
|
export const pollEval = async (input) => {
|
|
5
|
-
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
process.on('SIGINT', stop);
|
|
10
|
-
process.on('SIGTERM', stop);
|
|
11
|
+
const controller = new AbortController();
|
|
12
|
+
const abort = () => controller.abort();
|
|
13
|
+
process.on('SIGINT', abort);
|
|
14
|
+
process.on('SIGTERM', abort);
|
|
11
15
|
try {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
return await pollEvalCore({
|
|
17
|
+
intervalMs: input.intervalMs,
|
|
18
|
+
count: input.count,
|
|
19
|
+
totalTimeoutMs: input.totalTimeoutMs,
|
|
20
|
+
signal: controller.signal,
|
|
21
|
+
shouldStop: input.shouldStop,
|
|
22
|
+
onResult: input.onResult,
|
|
23
|
+
runEval: async () => {
|
|
24
|
+
const result = await evalWithRetries({
|
|
25
|
+
watcher: input.watcher,
|
|
26
|
+
expression: input.expression,
|
|
27
|
+
args: input.args,
|
|
28
|
+
awaitPromise: input.awaitPromise,
|
|
29
|
+
returnByValue: input.returnByValue,
|
|
30
|
+
timeoutMs: input.timeoutMs,
|
|
31
|
+
failOnException: input.failOnException,
|
|
32
|
+
retryCount: input.retryCount,
|
|
33
|
+
scenario: input.scenario,
|
|
34
|
+
});
|
|
35
|
+
if (!result.ok) {
|
|
36
|
+
return { ok: false, failure: result, attempt: result.attempt };
|
|
19
37
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
watcher: input.watcher,
|
|
24
|
-
expression: input.expression,
|
|
25
|
-
args: input.args,
|
|
26
|
-
awaitPromise: input.awaitPromise,
|
|
27
|
-
returnByValue: input.returnByValue,
|
|
28
|
-
timeoutMs: input.timeoutMs,
|
|
29
|
-
failOnException: input.failOnException,
|
|
30
|
-
retryCount: input.retryCount,
|
|
31
|
-
scenario: input.scenario,
|
|
32
|
-
});
|
|
33
|
-
if (!result.ok) {
|
|
34
|
-
return { kind: 'eval-error', failure: result };
|
|
35
|
-
}
|
|
36
|
-
const context = { response: result.response, iteration, attempt: result.attempt };
|
|
37
|
-
// Streaming commands print the matched iteration too, so emit before checking stop conditions.
|
|
38
|
-
await input.onResult?.(result.response, context);
|
|
39
|
-
const stopResult = input.shouldStop?.(context);
|
|
40
|
-
if (stopResult) {
|
|
41
|
-
if (!stopResult.ok) {
|
|
42
|
-
return { kind: 'condition-error', error: stopResult.error };
|
|
43
|
-
}
|
|
44
|
-
if (stopResult.matched) {
|
|
45
|
-
return { kind: 'matched', response: result.response, iteration, attempt: result.attempt };
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
if (input.count != null && iteration >= input.count) {
|
|
49
|
-
return { kind: 'exhausted', iterations: iteration };
|
|
50
|
-
}
|
|
51
|
-
await sleep(input.intervalMs);
|
|
52
|
-
}
|
|
53
|
-
return { kind: 'interrupted' };
|
|
38
|
+
return { ok: true, response: result.response, attempt: result.attempt };
|
|
39
|
+
},
|
|
40
|
+
});
|
|
54
41
|
}
|
|
55
42
|
finally {
|
|
56
|
-
process.off('SIGINT',
|
|
57
|
-
process.off('SIGTERM',
|
|
43
|
+
process.off('SIGINT', abort);
|
|
44
|
+
process.off('SIGTERM', abort);
|
|
58
45
|
}
|
|
59
46
|
};
|
|
60
47
|
//# sourceMappingURL=evalPolling.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evalPolling.js","sourceRoot":"","sources":["../../src/commands/evalPolling.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"evalPolling.js","sourceRoot":"","sources":["../../src/commands/evalPolling.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAE/D,OAAO,EAAE,eAAe,EAA0B,MAAM,uBAAuB,CAAA;AAgC/E;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAAE,KAAoB,EAA4B,EAAE;IAChF,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;IACxC,MAAM,KAAK,GAAG,GAAS,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAA;IAE5C,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;IAC3B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;IAE5B,IAAI,CAAC;QACJ,OAAO,MAAM,YAAY,CAA4B;YACpD,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,OAAO,EAAE,KAAK,IAAI,EAAE;gBACnB,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC;oBACpC,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,YAAY,EAAE,KAAK,CAAC,YAAY;oBAChC,aAAa,EAAE,KAAK,CAAC,aAAa;oBAClC,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,eAAe,EAAE,KAAK,CAAC,eAAe;oBACtC,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;iBACxB,CAAC,CAAA;gBAEF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;oBAChB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAA;gBAC/D,CAAC;gBAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAA;YACxE,CAAC;SACD,CAAC,CAAA;IACH,CAAC;YAAS,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;QAC5B,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;IAC9B,CAAC;AACF,CAAC,CAAA"}
|
package/dist/commands/logs.d.ts
CHANGED
|
@@ -9,14 +9,21 @@ export type LogsOptions = {
|
|
|
9
9
|
source?: string;
|
|
10
10
|
since?: string;
|
|
11
11
|
after?: string;
|
|
12
|
+
sinceEpoch?: string;
|
|
12
13
|
limit?: string;
|
|
13
14
|
};
|
|
14
15
|
/** Options for reading the current watcher log cursor. */
|
|
15
16
|
export type LogCursorOptions = {
|
|
16
17
|
json?: boolean;
|
|
17
18
|
};
|
|
19
|
+
/** Options for starting an opaque watcher log epoch. */
|
|
20
|
+
export type LogEpochOptions = {
|
|
21
|
+
json?: boolean;
|
|
22
|
+
};
|
|
18
23
|
/** Return a baseline cursor without downloading buffered logs. */
|
|
19
24
|
export declare const runLogCursor: import("../cli/defineWatcherCommand.js").WatcherCommandRunner<[], LogCursorOptions>;
|
|
25
|
+
/** Return an opaque log epoch without downloading buffered logs. */
|
|
26
|
+
export declare const runLogEpoch: import("../cli/defineWatcherCommand.js").WatcherCommandRunner<[], LogEpochOptions>;
|
|
20
27
|
/** Execute the logs command for a watcher id. */
|
|
21
28
|
export declare const runLogs: import("../cli/defineWatcherCommand.js").WatcherCommandRunner<[], LogsOptions>;
|
|
22
29
|
//# sourceMappingURL=logs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../src/commands/logs.ts"],"names":[],"mappings":"AAOA,oCAAoC;AACpC,MAAM,MAAM,WAAW,GAAG;IACzB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED,0DAA0D;AAC1D,MAAM,MAAM,gBAAgB,GAAG;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,CAAA;AAEjD,kEAAkE;AAClE,eAAO,MAAM,YAAY,qFAGvB,CAAA;AAEF,iDAAiD;AACjD,eAAO,MAAM,OAAO,gFAalB,CAAA"}
|
|
1
|
+
{"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../src/commands/logs.ts"],"names":[],"mappings":"AAOA,oCAAoC;AACpC,MAAM,MAAM,WAAW,GAAG;IACzB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED,0DAA0D;AAC1D,MAAM,MAAM,gBAAgB,GAAG;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,CAAA;AAEjD,wDAAwD;AACxD,MAAM,MAAM,eAAe,GAAG;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,CAAA;AAEhD,kEAAkE;AAClE,eAAO,MAAM,YAAY,qFAGvB,CAAA;AAEF,oEAAoE;AACpE,eAAO,MAAM,WAAW,oFAGtB,CAAA;AAEF,iDAAiD;AACjD,eAAO,MAAM,OAAO,gFAalB,CAAA"}
|
package/dist/commands/logs.js
CHANGED
|
@@ -5,7 +5,12 @@ import { appendAfterLimitParams, appendLogFilterParams, appendSinceParam } from
|
|
|
5
5
|
/** Return a baseline cursor without downloading buffered logs. */
|
|
6
6
|
export const runLogCursor = defineWatcherCommand({
|
|
7
7
|
build: () => ({ path: '/logs/cursor', timeoutMs: 5_000 }),
|
|
8
|
-
formatHuman: (response, { output }) => output.writeHuman(
|
|
8
|
+
formatHuman: (response, { output }) => output.writeHuman(response.cursor),
|
|
9
|
+
});
|
|
10
|
+
/** Return an opaque log epoch without downloading buffered logs. */
|
|
11
|
+
export const runLogEpoch = defineWatcherCommand({
|
|
12
|
+
build: () => ({ path: '/logs/epoch', timeoutMs: 5_000 }),
|
|
13
|
+
formatHuman: (response, { output }) => output.writeHuman(response.epoch),
|
|
9
14
|
});
|
|
10
15
|
/** Execute the logs command for a watcher id. */
|
|
11
16
|
export const runLogs = defineWatcherCommand({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logs.js","sourceRoot":"","sources":["../../src/commands/logs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAA2B,MAAM,gCAAgC,CAAA;AAC9F,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"logs.js","sourceRoot":"","sources":["../../src/commands/logs.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/tail.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tail.d.ts","sourceRoot":"","sources":["../../src/commands/tail.ts"],"names":[],"mappings":"AASA,oCAAoC;AACpC,MAAM,MAAM,WAAW,GAAG;IACzB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED,iDAAiD;AACjD,eAAO,MAAM,OAAO,GAAU,IAAI,MAAM,GAAG,SAAS,EAAE,SAAS,WAAW,KAAG,OAAO,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"tail.d.ts","sourceRoot":"","sources":["../../src/commands/tail.ts"],"names":[],"mappings":"AASA,oCAAoC;AACpC,MAAM,MAAM,WAAW,GAAG;IACzB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED,iDAAiD;AACjD,eAAO,MAAM,OAAO,GAAU,IAAI,MAAM,GAAG,SAAS,EAAE,SAAS,WAAW,KAAG,OAAO,CAAC,IAAI,CA0DxF,CAAA"}
|
package/dist/commands/tail.js
CHANGED
|
@@ -12,7 +12,14 @@ export const runTail = async (id, options) => {
|
|
|
12
12
|
if (!resolved)
|
|
13
13
|
return;
|
|
14
14
|
const { watcher } = resolved;
|
|
15
|
-
|
|
15
|
+
const afterEpoch = options.after?.trim() || undefined;
|
|
16
|
+
const sinceEpoch = options.sinceEpoch?.trim() || undefined;
|
|
17
|
+
if (afterEpoch && sinceEpoch) {
|
|
18
|
+
output.writeWarn('Use either --after or --since-epoch, not both.');
|
|
19
|
+
process.exitCode = 2;
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
let position = afterEpoch ?? sinceEpoch;
|
|
16
23
|
const timeoutMs = parseNumber(options.timeout) ?? 25_000;
|
|
17
24
|
const limit = parseNumber(options.limit);
|
|
18
25
|
let running = true;
|
|
@@ -23,7 +30,9 @@ export const runTail = async (id, options) => {
|
|
|
23
30
|
process.on('SIGTERM', stop);
|
|
24
31
|
while (running) {
|
|
25
32
|
const params = new URLSearchParams();
|
|
26
|
-
|
|
33
|
+
if (position) {
|
|
34
|
+
params.set(sinceEpoch ? 'sinceEpoch' : 'after', position);
|
|
35
|
+
}
|
|
27
36
|
params.set('timeoutMs', String(timeoutMs));
|
|
28
37
|
if (limit != null) {
|
|
29
38
|
params.set('limit', String(limit));
|
|
@@ -44,23 +53,21 @@ export const runTail = async (id, options) => {
|
|
|
44
53
|
process.exitCode = 1;
|
|
45
54
|
return;
|
|
46
55
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
if (options.jsonFull) {
|
|
50
|
-
output.writeJsonLine({ watcher: watcher.id, event });
|
|
51
|
-
continue;
|
|
52
|
-
}
|
|
53
|
-
if (options.json) {
|
|
54
|
-
const previewEvent = previewLogEvent(event);
|
|
55
|
-
output.writeJsonLine({ watcher: watcher.id, event: previewEvent });
|
|
56
|
-
continue;
|
|
57
|
-
}
|
|
58
|
-
output.writeHuman(formatLogEvent(event, {
|
|
59
|
-
includeTimestamps: watcher.includeTimestamps,
|
|
60
|
-
}));
|
|
61
|
-
}
|
|
56
|
+
for (const event of response.events) {
|
|
57
|
+
writeTailEvent(event, watcher, options, output);
|
|
62
58
|
}
|
|
63
|
-
|
|
59
|
+
position = response.nextCursor;
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
const writeTailEvent = (event, watcher, options, output) => {
|
|
63
|
+
if (options.jsonFull) {
|
|
64
|
+
output.writeJsonLine({ watcher: watcher.id, event });
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
if (options.json) {
|
|
68
|
+
output.writeJsonLine({ watcher: watcher.id, event: previewLogEvent(event) });
|
|
69
|
+
return;
|
|
64
70
|
}
|
|
71
|
+
output.writeHuman(formatLogEvent(event, { includeTimestamps: watcher.includeTimestamps }));
|
|
65
72
|
};
|
|
66
73
|
//# sourceMappingURL=tail.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tail.js","sourceRoot":"","sources":["../../src/commands/tail.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"tail.js","sourceRoot":"","sources":["../../src/commands/tail.ts"],"names":[],"mappings":"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"}
|
|
@@ -51,7 +51,7 @@ Context methods:
|
|
|
51
51
|
|
|
52
52
|
- `ctx.screenshot(options?)`: capture to a watcher-generated unique path under `screenshots/`.
|
|
53
53
|
- `ctx.checkpoint(name, options?)`: capture to `scenarios/checkpoints/<name>.png`; names are path-safe and deterministic.
|
|
54
|
-
- `ctx.logs.cursor()` / `ctx.logs.read(cursor, options?)`: explicit zero-download baselines.
|
|
54
|
+
- `ctx.logs.cursor()` / `ctx.logs.read(cursor, options?)`: explicit zero-download opaque baselines. The cursor survives page reloads while the watcher stays alive and rejects stale/restarted sessions.
|
|
55
55
|
- `ctx.logs.session()`: capture a baseline and return a stateful reader whose cursor advances after each `read()`.
|
|
56
56
|
- `ctx.args`: frozen string args from `--arg` / `--args`.
|
|
57
57
|
|
|
@@ -12,11 +12,20 @@ argus logs app --source console
|
|
|
12
12
|
argus logs app --json
|
|
13
13
|
argus logs app --json-full
|
|
14
14
|
argus logs cursor app --json
|
|
15
|
+
argus logs epoch app
|
|
15
16
|
argus logs tail app
|
|
16
17
|
argus logs tail app --levels error --json
|
|
17
18
|
```
|
|
18
19
|
|
|
19
|
-
`logs cursor`
|
|
20
|
+
`logs cursor` / `logs epoch` return the current opaque watcher-session cursor without downloading the buffer. Save it before an action, then pass it to `logs --after <cursor>` or `logs --since-epoch <cursor>` to read only newly produced events. Cursors survive page reloads but fail explicitly after watcher restart, foreign-session use, or ring-buffer eviction.
|
|
21
|
+
|
|
22
|
+
Verification runner pattern:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
epoch=$(argus logs cursor app)
|
|
26
|
+
# perform the action
|
|
27
|
+
argus logs app --after "$epoch" --levels error,exception --json
|
|
28
|
+
```
|
|
20
29
|
|
|
21
30
|
## Eval / Wait
|
|
22
31
|
|
|
@@ -5,6 +5,7 @@ type MatchCaseOptions = {
|
|
|
5
5
|
export declare const appendAfterLimitParams: (params: URLSearchParams, options: {
|
|
6
6
|
after?: string;
|
|
7
7
|
limit?: string;
|
|
8
|
+
sinceEpoch?: string;
|
|
8
9
|
}) => void;
|
|
9
10
|
export declare const appendSinceParam: (params: URLSearchParams, since?: string) => {
|
|
10
11
|
error?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queryParams.d.ts","sourceRoot":"","sources":["../../src/watchers/queryParams.ts"],"names":[],"mappings":"AAGA,KAAK,gBAAgB,GAAG;IACvB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,aAAa,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,sBAAsB,GAAI,QAAQ,eAAe,EAAE,SAAS;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,KAAG,
|
|
1
|
+
{"version":3,"file":"queryParams.d.ts","sourceRoot":"","sources":["../../src/watchers/queryParams.ts"],"names":[],"mappings":"AAGA,KAAK,gBAAgB,GAAG;IACvB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,aAAa,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,sBAAsB,GAAI,QAAQ,eAAe,EAAE,SAAS;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,KAAG,IAalI,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,QAAQ,eAAe,EAAE,QAAQ,MAAM,KAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAW1F,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,QAAQ,MAAM,KAAG;IAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAW9F,CAAA;AAED,eAAO,MAAM,qBAAqB,GACjC,QAAQ,eAAe,EACvB,SAAS;IACR,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,aAAa,CAAC,EAAE,OAAO,CAAA;CACvB,KACC;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAwBlB,CAAA;AAED,eAAO,MAAM,qBAAqB,GACjC,QAAQ,eAAe,EACvB,SAAS;IACR,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAA;IACzB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAA;CACzB,KACC,IAqCF,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,QAAQ,eAAe,EAAE,SAAS;IAAE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,KAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAkB7I,CAAA;AAED,eAAO,MAAM,sBAAsB,GAAI,QAAQ,MAAM,EAAE,KAAG;IAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAW7F,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,SAAS,gBAAgB,KAAG,WAAW,GAAG,aAAa,GAAG,SAQ1F,CAAA"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { normalizeQueryValue, parseNumber } from '../cli/parse.js';
|
|
2
2
|
import { parseDurationMs } from '../time.js';
|
|
3
3
|
export const appendAfterLimitParams = (params, options) => {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
if (options.after?.trim()) {
|
|
5
|
+
params.set('after', options.after.trim());
|
|
6
|
+
}
|
|
7
|
+
if (options.sinceEpoch?.trim()) {
|
|
8
|
+
params.set('sinceEpoch', options.sinceEpoch.trim());
|
|
7
9
|
}
|
|
8
10
|
const limit = parseNumber(options.limit);
|
|
9
11
|
if (limit != null) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queryParams.js","sourceRoot":"","sources":["../../src/watchers/queryParams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAO5C,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,MAAuB,EAAE,
|
|
1
|
+
{"version":3,"file":"queryParams.js","sourceRoot":"","sources":["../../src/watchers/queryParams.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vforsh/argus",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/vforsh/argus.git",
|
|
@@ -26,9 +26,10 @@
|
|
|
26
26
|
"access": "public"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@vforsh/argus-
|
|
30
|
-
"@vforsh/argus-
|
|
31
|
-
"@vforsh/argus-
|
|
29
|
+
"@vforsh/argus-client": "^0.3.0",
|
|
30
|
+
"@vforsh/argus-core": "^0.3.0",
|
|
31
|
+
"@vforsh/argus-plugin-api": "^0.3.0",
|
|
32
|
+
"@vforsh/argus-watcher": "^0.3.0",
|
|
32
33
|
"commander": "14.0.2",
|
|
33
34
|
"esbuild": "0.25.12",
|
|
34
35
|
"prettier": "3.7.4"
|