@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.
@@ -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,EAwDzD,CAAA"}
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 <id>', description: 'Only return events after this id' },
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 <id>', description: 'Start after this event id' },
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":"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"}
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
- kind: 'matched';
33
- response: EvalResponse;
34
- iteration: number;
35
- attempt: number;
36
- } | {
37
- kind: 'exhausted';
38
- iterations: number;
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;AAG/E,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,GACxB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,YAAY,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC/E;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,GACvB;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC,iBAAiB,EAAE;QAAE,EAAE,EAAE,KAAK,CAAA;KAAE,CAAC,CAAA;CAAE,GAC1E;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAE7C,qGAAqG;AACrG,eAAO,MAAM,QAAQ,GAAU,OAAO,aAAa,KAAG,OAAO,CAAC,eAAe,CAgE5E,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
- import { sleep } from './evalShared.js';
3
- /** Shared polling engine for `eval --interval` and `eval-until` so loop semantics stay identical. */
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
- let running = true;
6
- const stop = () => {
7
- running = false;
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
- const startTime = Date.now();
13
- let iteration = 0;
14
- while (running) {
15
- if (input.totalTimeoutMs != null) {
16
- const elapsed = Date.now() - startTime;
17
- if (elapsed >= input.totalTimeoutMs) {
18
- return { kind: 'timeout', elapsedMs: elapsed };
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
- iteration += 1;
22
- const result = await evalWithRetries({
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', stop);
57
- process.off('SIGTERM', stop);
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,eAAe,EAA0B,MAAM,uBAAuB,CAAA;AAC/E,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAmCvC,qGAAqG;AACrG,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAAE,KAAoB,EAA4B,EAAE;IAChF,IAAI,OAAO,GAAG,IAAI,CAAA;IAClB,MAAM,IAAI,GAAG,GAAS,EAAE;QACvB,OAAO,GAAG,KAAK,CAAA;IAChB,CAAC,CAAA;IAED,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IAC1B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;IAE3B,IAAI,CAAC;QACJ,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAC5B,IAAI,SAAS,GAAG,CAAC,CAAA;QAEjB,OAAO,OAAO,EAAE,CAAC;YAChB,IAAI,KAAK,CAAC,cAAc,IAAI,IAAI,EAAE,CAAC;gBAClC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAA;gBACtC,IAAI,OAAO,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;oBACrC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,CAAA;gBAC/C,CAAC;YACF,CAAC;YAED,SAAS,IAAI,CAAC,CAAA;YACd,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC;gBACpC,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,YAAY,EAAE,KAAK,CAAC,YAAY;gBAChC,aAAa,EAAE,KAAK,CAAC,aAAa;gBAClC,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,eAAe,EAAE,KAAK,CAAC,eAAe;gBACtC,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;aACxB,CAAC,CAAA;YAEF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;gBAChB,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,CAAA;YAC/C,CAAC;YAED,MAAM,OAAO,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAA;YACjF,+FAA+F;YAC/F,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;YAEhD,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,CAAA;YAC9C,IAAI,UAAU,EAAE,CAAC;gBAChB,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;oBACpB,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,CAAA;gBAC5D,CAAC;gBACD,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;oBACxB,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAA;gBAC1F,CAAC;YACF,CAAC;YAED,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI,IAAI,SAAS,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBACrD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,CAAA;YACpD,CAAC;YAED,MAAM,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;QAC9B,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAA;IAC/B,CAAC;YAAS,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QAC3B,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;IAC7B,CAAC;AACF,CAAC,CAAA"}
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"}
@@ -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"}
@@ -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(String(response.cursor)),
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;AAmB5G,kEAAkE;AAClE,MAAM,CAAC,MAAM,YAAY,GAAG,oBAAoB,CAAsC;IACrF,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IACzD,WAAW,EAAE,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;CACjF,CAAC,CAAA;AAEF,iDAAiD;AACjD,MAAM,CAAC,MAAM,OAAO,GAAG,oBAAoB,CAA4B;IACtE,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,KAAK,IAAI;IAC9C,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC;IACjE,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;IACpI,WAAW,EAAE,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;QAC9C,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YACrC,MAAM,CAAC,UAAU,CAChB,cAAc,CAAC,KAAK,EAAE;gBACrB,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;aAC5C,CAAC,CACF,CAAA;QACF,CAAC;IACF,CAAC;CACD,CAAC,CAAA;AAEF,MAAM,aAAa,GAAG,CAAC,OAAoB,EAAE,MAAc,EAA6B,EAAE;IACzF,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAA;IACpC,sBAAsB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACvC,MAAM,OAAO,GAAG,qBAAqB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACtD,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACnB,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAC/B,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;QACpB,OAAO,IAAI,CAAA;IACZ,CAAC;IACD,MAAM,KAAK,GAAG,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;IACrD,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAC7B,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;QACpB,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,OAAO;QACN,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,MAAM;QACb,SAAS,EAAE,KAAK;KAChB,CAAA;AACF,CAAC,CAAA"}
1
+ {"version":3,"file":"logs.js","sourceRoot":"","sources":["../../src/commands/logs.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ export type TailOptions = {
8
8
  caseSensitive?: boolean;
9
9
  source?: string;
10
10
  after?: string;
11
+ sinceEpoch?: string;
11
12
  timeout?: string;
12
13
  limit?: string;
13
14
  };
@@ -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,CAgExF,CAAA"}
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"}
@@ -12,7 +12,14 @@ export const runTail = async (id, options) => {
12
12
  if (!resolved)
13
13
  return;
14
14
  const { watcher } = resolved;
15
- let after = parseNumber(options.after) ?? 0;
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
- params.set('after', String(after));
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
- if (response.events.length > 0) {
48
- for (const event of response.events) {
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
- after = response.nextAfter;
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":"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"}
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,EAAe,MAAM,iBAAiB,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,2BAA2B,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AAClH,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAiBlE,iDAAiD;AACjD,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,EAAE,EAAsB,EAAE,OAAoB,EAAiB,EAAE;IAC5F,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;IACpC,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA;IAC3D,IAAI,CAAC,QAAQ;QAAE,OAAM;IAErB,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAA;IAE5B,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,SAAS,CAAA;IACrD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,SAAS,CAAA;IAC1D,IAAI,UAAU,IAAI,UAAU,EAAE,CAAC;QAC9B,MAAM,CAAC,SAAS,CAAC,gDAAgD,CAAC,CAAA;QAClE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;QACpB,OAAM;IACP,CAAC;IACD,IAAI,QAAQ,GAAG,UAAU,IAAI,UAAU,CAAA;IACvC,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,MAAM,CAAA;IACxD,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAExC,IAAI,OAAO,GAAG,IAAI,CAAA;IAClB,MAAM,IAAI,GAAG,GAAS,EAAE;QACvB,OAAO,GAAG,KAAK,CAAA;IAChB,CAAC,CAAA;IAED,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IAC1B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;IAE3B,OAAO,OAAO,EAAE,CAAC;QAChB,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAA;QACpC,IAAI,QAAQ,EAAE,CAAC;YACd,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QAC1D,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAA;QAC1C,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YACnB,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QACnC,CAAC;QACD,MAAM,OAAO,GAAG,qBAAqB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QACtD,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YAC/B,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;YACpB,OAAM;QACP,CAAC;QAED,MAAM,GAAG,GAAG,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;QACrD,IAAI,QAAsB,CAAA;QAC1B,IAAI,CAAC;YACJ,QAAQ,GAAG,MAAM,SAAS,CAAe,GAAG,EAAE,EAAE,SAAS,EAAE,SAAS,GAAG,KAAK,EAAE,CAAC,CAAA;QAChF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,CAAC,SAAS,CAAC,2BAA2B,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAA;YAC7D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;YACpB,OAAM;QACP,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YACrC,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;QAChD,CAAC;QAED,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAA;IAC/B,CAAC;AACF,CAAC,CAAA;AAED,MAAM,cAAc,GAAG,CAAC,KAAe,EAAE,OAAwD,EAAE,OAAoB,EAAE,MAAc,EAAQ,EAAE;IAChJ,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACtB,MAAM,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;QACpD,OAAM;IACP,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QAClB,MAAM,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAC5E,OAAM;IACP,CAAC;IACD,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAA;AAC3F,CAAC,CAAA"}
@@ -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` returns the current event id without downloading the buffer. Save it before an action, then pass it to `logs --after <cursor>` to read only newly produced events.
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,IAU7G,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
+ {"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
- const after = parseNumber(options.after);
5
- if (after != null) {
6
- params.set('after', String(after));
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":"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"}
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.1.23",
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-core": "^0.1.11",
30
- "@vforsh/argus-plugin-api": "^0.1.4",
31
- "@vforsh/argus-watcher": "^0.1.16",
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"