mthds 0.12.1 → 0.13.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.
Files changed (117) hide show
  1. package/README.md +12 -13
  2. package/dist/agent/commands/api-commands.js +31 -220
  3. package/dist/agent/commands/api-commands.js.map +1 -1
  4. package/dist/agent/commands/bootstrap.js.map +1 -1
  5. package/dist/agent/commands/codex-config.js +4 -4
  6. package/dist/agent/commands/codex-config.js.map +1 -1
  7. package/dist/agent/commands/codex-hook.js +14 -6
  8. package/dist/agent/commands/codex-hook.js.map +1 -1
  9. package/dist/agent/commands/codex.js +12 -4
  10. package/dist/agent/commands/codex.js.map +1 -1
  11. package/dist/agent/commands/config.js +1 -10
  12. package/dist/agent/commands/config.js.map +1 -1
  13. package/dist/agent/commands/doctor.js +1 -3
  14. package/dist/agent/commands/doctor.js.map +1 -1
  15. package/dist/agent/commands/install.js +19 -6
  16. package/dist/agent/commands/install.js.map +1 -1
  17. package/dist/agent/commands/package.js +40 -11
  18. package/dist/agent/commands/package.js.map +1 -1
  19. package/dist/agent/commands/pipelex-commands.js +41 -24
  20. package/dist/agent/commands/pipelex-commands.js.map +1 -1
  21. package/dist/agent/commands/publish.js +12 -4
  22. package/dist/agent/commands/publish.js.map +1 -1
  23. package/dist/agent/commands/run.js +1 -3
  24. package/dist/agent/commands/run.js.map +1 -1
  25. package/dist/agent/commands/share.js +12 -4
  26. package/dist/agent/commands/share.js.map +1 -1
  27. package/dist/agent/commands/update-check.js +2 -2
  28. package/dist/agent/commands/update-check.js.map +1 -1
  29. package/dist/agent/commands/upgrade.js.map +1 -1
  30. package/dist/agent/output.js.map +1 -1
  31. package/dist/agent/passthrough.js +3 -1
  32. package/dist/agent/passthrough.js.map +1 -1
  33. package/dist/agent/plugin-version.js +1 -4
  34. package/dist/agent/plugin-version.js.map +1 -1
  35. package/dist/agent/snooze.js +2 -6
  36. package/dist/agent/snooze.js.map +1 -1
  37. package/dist/agent/update-cache.js +6 -21
  38. package/dist/agent/update-cache.js.map +1 -1
  39. package/dist/agent-cli.d.ts +1 -1
  40. package/dist/agent-cli.js +15 -10
  41. package/dist/agent-cli.js.map +1 -1
  42. package/dist/cli/commands/build.d.ts +3 -3
  43. package/dist/cli/commands/build.js +12 -24
  44. package/dist/cli/commands/build.js.map +1 -1
  45. package/dist/cli/commands/config.js +2 -15
  46. package/dist/cli/commands/config.js.map +1 -1
  47. package/dist/cli/commands/index.js.map +1 -1
  48. package/dist/cli/commands/install.js +2 -6
  49. package/dist/cli/commands/install.js.map +1 -1
  50. package/dist/cli/commands/login.js.map +1 -1
  51. package/dist/cli/commands/package/init.js +5 -2
  52. package/dist/cli/commands/package/init.js.map +1 -1
  53. package/dist/cli/commands/publish.js.map +1 -1
  54. package/dist/cli/commands/run.d.ts +1 -1
  55. package/dist/cli/commands/run.js +9 -9
  56. package/dist/cli/commands/run.js.map +1 -1
  57. package/dist/cli/commands/setup.js +1 -1
  58. package/dist/cli/commands/setup.js.map +1 -1
  59. package/dist/cli/commands/share-cli.js.map +1 -1
  60. package/dist/cli/commands/share.js.map +1 -1
  61. package/dist/cli/commands/validate.d.ts +2 -2
  62. package/dist/cli/commands/validate.js +6 -10
  63. package/dist/cli/commands/validate.js.map +1 -1
  64. package/dist/cli.js +66 -20
  65. package/dist/cli.js.map +1 -1
  66. package/dist/config/config.js +5 -15
  67. package/dist/config/config.js.map +1 -1
  68. package/dist/index.d.ts +11 -17
  69. package/dist/index.js +13 -12
  70. package/dist/index.js.map +1 -1
  71. package/dist/installer/methods/writer.js +2 -10
  72. package/dist/installer/methods/writer.js.map +1 -1
  73. package/dist/installer/resolver/github.js.map +1 -1
  74. package/dist/installer/resolver/local.js.map +1 -1
  75. package/dist/installer/runtime/installer.js.map +1 -1
  76. package/dist/installer/runtime/version-check.js.map +1 -1
  77. package/dist/package/bundle-scanner.js.map +1 -1
  78. package/dist/package/dependency-resolver.js +22 -6
  79. package/dist/package/dependency-resolver.js.map +1 -1
  80. package/dist/package/lock-file.js.map +1 -1
  81. package/dist/package/manifest/convert.js +9 -3
  82. package/dist/package/manifest/convert.js.map +1 -1
  83. package/dist/package/manifest/parser.js +4 -1
  84. package/dist/package/manifest/parser.js.map +1 -1
  85. package/dist/package/manifest/schema.js +12 -6
  86. package/dist/package/manifest/schema.js.map +1 -1
  87. package/dist/package/manifest/validate.js +22 -16
  88. package/dist/package/manifest/validate.js.map +1 -1
  89. package/dist/package/package-cache.js.map +1 -1
  90. package/dist/package/qualified-ref.js.map +1 -1
  91. package/dist/package/vcs-resolver.js.map +1 -1
  92. package/dist/package/visibility.js +1 -1
  93. package/dist/package/visibility.js.map +1 -1
  94. package/dist/protocol/index.d.ts +23 -0
  95. package/dist/protocol/index.js +19 -0
  96. package/dist/protocol/index.js.map +1 -0
  97. package/dist/protocol/models.js +1 -6
  98. package/dist/protocol/models.js.map +1 -1
  99. package/dist/runners/api/client.d.ts +40 -82
  100. package/dist/runners/api/client.js +56 -265
  101. package/dist/runners/api/client.js.map +1 -1
  102. package/dist/runners/api/exceptions.d.ts +12 -45
  103. package/dist/runners/api/exceptions.js +15 -59
  104. package/dist/runners/api/exceptions.js.map +1 -1
  105. package/dist/runners/pipelex/runner.d.ts +1 -8
  106. package/dist/runners/pipelex/runner.js +25 -52
  107. package/dist/runners/pipelex/runner.js.map +1 -1
  108. package/dist/runners/registry.js.map +1 -1
  109. package/dist/runners/types.d.ts +0 -8
  110. package/dist/runners/types.js.map +1 -1
  111. package/package.json +19 -2
  112. package/dist/runners/api/runs.d.ts +0 -130
  113. package/dist/runners/api/runs.js +0 -93
  114. package/dist/runners/api/runs.js.map +0 -1
  115. package/dist/runners/base-runner.d.ts +0 -27
  116. package/dist/runners/base-runner.js +0 -25
  117. package/dist/runners/base-runner.js.map +0 -1
@@ -1,93 +0,0 @@
1
- import { RunFailedError, RunTimeoutError } from "./exceptions.js";
2
- const TERMINAL_RUN_STATUSES = new Set([
3
- "COMPLETED",
4
- "FAILED",
5
- "CANCELLED",
6
- "TERMINATED",
7
- "TIMED_OUT",
8
- ]);
9
- /** A terminal status means the run is done and will not transition again. */
10
- export function isTerminalRunStatus(status) {
11
- return TERMINAL_RUN_STATUSES.has(status);
12
- }
13
- /** Only `COMPLETED` has a result; every other terminal status is a failure. */
14
- export function isSuccessRunStatus(status) {
15
- return status === "COMPLETED";
16
- }
17
- // ── Poll loop ───────────────────────────────────────────────────────
18
- export const DEFAULT_POLL_INTERVAL_MS = 2_000;
19
- export const DEFAULT_WAIT_TIMEOUT_MS = 1_200_000; // 20 min — matches the runner's blocking execute ceiling.
20
- /**
21
- * Poll a single-shot result lookup (`fetchOnce`) until the run reaches a
22
- * terminal state. Returns the artifacts on `COMPLETED`, throws `RunFailedError`
23
- * on any other terminal status, and throws `RunTimeoutError` if `timeoutMs`
24
- * elapses first (the run keeps executing server-side — re-poll by id later).
25
- *
26
- * The single owner of the wait/poll/Retry-After/abort logic. Both
27
- * `MthdsApiClient.waitForResult` and `BaseRunner.waitForResult` delegate here,
28
- * so the behavior can never drift between the wire client and the runner layer.
29
- */
30
- export async function pollUntilResult(fetchOnce, runId, options = {}) {
31
- const intervalMs = options.intervalMs ?? DEFAULT_POLL_INTERVAL_MS;
32
- const timeoutMs = options.timeoutMs ?? DEFAULT_WAIT_TIMEOUT_MS;
33
- const startedAt = Date.now();
34
- let attempt = 0;
35
- for (;;) {
36
- throwIfAborted(options.signal);
37
- // Enforce the deadline BEFORE each lookup, so a poll is never issued past the
38
- // timeout (the previous wait is clamped to the deadline, so the next loop
39
- // would otherwise fire one extra fetch right at it).
40
- const elapsedMs = Date.now() - startedAt;
41
- if (elapsedMs >= timeoutMs) {
42
- throw new RunTimeoutError(`Run ${runId} did not reach a terminal state within ${timeoutMs}ms.`, runId, timeoutMs);
43
- }
44
- const state = await fetchOnce(runId, { signal: options.signal });
45
- if (state.state === "completed") {
46
- return state.result;
47
- }
48
- if (state.state === "failed") {
49
- throw new RunFailedError(state.message, runId, state.status);
50
- }
51
- attempt += 1;
52
- options.onPoll?.({ attempt, elapsedMs });
53
- const retryMs = state.retry_after_seconds != null ? state.retry_after_seconds * 1000 : 0;
54
- const waitMs = Math.min(Math.max(intervalMs, retryMs), timeoutMs - elapsedMs);
55
- await sleep(waitMs, options.signal);
56
- }
57
- }
58
- function throwIfAborted(signal) {
59
- if (signal?.aborted)
60
- throw abortError(signal);
61
- }
62
- function abortError(signal) {
63
- const reason = signal?.reason;
64
- if (reason instanceof Error)
65
- return reason;
66
- return new DOMException("The run poll was aborted.", "AbortError");
67
- }
68
- /** Sleep that resolves after `ms`, or rejects immediately if `signal` aborts. */
69
- function sleep(ms, signal) {
70
- if (ms <= 0) {
71
- throwIfAborted(signal);
72
- return Promise.resolve();
73
- }
74
- return new Promise((resolve, reject) => {
75
- const onAbort = () => {
76
- clearTimeout(timer);
77
- reject(abortError(signal));
78
- };
79
- const timer = setTimeout(() => {
80
- signal?.removeEventListener("abort", onAbort);
81
- resolve();
82
- }, ms);
83
- if (signal) {
84
- if (signal.aborted) {
85
- clearTimeout(timer);
86
- reject(abortError(signal));
87
- return;
88
- }
89
- signal.addEventListener("abort", onAbort, { once: true });
90
- }
91
- });
92
- }
93
- //# sourceMappingURL=runs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runs.js","sourceRoot":"","sources":["../../../src/runners/api/runs.ts"],"names":[],"mappings":"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"}
@@ -1,27 +0,0 @@
1
- import { type RunResults, type RunResultState, type WaitForResultOptions } from "./api/runs.js";
2
- import type { StartOptions } from "../protocol/options.js";
3
- import type { RunResultStart } from "../protocol/models.js";
4
- /**
5
- * Shared base for every runner. Provides the two run-lifecycle COMPOSITES —
6
- * `waitForResult` (poll an existing run to completion) and
7
- * `startAndWaitForResult` (start a run, then wait for its result) — implemented
8
- * once over the abstract primitives `start` / `getRunResult`. Concrete runners
9
- * implement the primitives; a runtime with a faster blocking path (a bare
10
- * runner, the local pipelex CLI) overrides `startAndWaitForResult`.
11
- *
12
- * The composites are deliberately NOT part of the `Runner` contract's "must
13
- * implement" surface — every runner gets them for free here, so they can never
14
- * drift between runtimes.
15
- */
16
- export declare abstract class BaseRunner {
17
- /** Start a run and return its 202 ack immediately (no waiting; no output yet). The returned `pipeline_run_id` is authoritative. */
18
- abstract start(options: StartOptions): Promise<RunResultStart>;
19
- /** Single-shot result lookup: running (202) / completed (200) / failed (409). */
20
- abstract getRunResult(runId: string, options?: {
21
- signal?: AbortSignal;
22
- }): Promise<RunResultState>;
23
- /** Poll an already-started run (by id) until it reaches a terminal state. */
24
- waitForResult(runId: string, options?: WaitForResultOptions): Promise<RunResults>;
25
- /** Start a run, then wait for its result — the one-call convenience. */
26
- startAndWaitForResult(options: StartOptions, pollOptions?: WaitForResultOptions): Promise<RunResults>;
27
- }
@@ -1,25 +0,0 @@
1
- import { pollUntilResult, } from "./api/runs.js";
2
- /**
3
- * Shared base for every runner. Provides the two run-lifecycle COMPOSITES —
4
- * `waitForResult` (poll an existing run to completion) and
5
- * `startAndWaitForResult` (start a run, then wait for its result) — implemented
6
- * once over the abstract primitives `start` / `getRunResult`. Concrete runners
7
- * implement the primitives; a runtime with a faster blocking path (a bare
8
- * runner, the local pipelex CLI) overrides `startAndWaitForResult`.
9
- *
10
- * The composites are deliberately NOT part of the `Runner` contract's "must
11
- * implement" surface — every runner gets them for free here, so they can never
12
- * drift between runtimes.
13
- */
14
- export class BaseRunner {
15
- /** Poll an already-started run (by id) until it reaches a terminal state. */
16
- async waitForResult(runId, options) {
17
- return pollUntilResult((id, opts) => this.getRunResult(id, opts), runId, options);
18
- }
19
- /** Start a run, then wait for its result — the one-call convenience. */
20
- async startAndWaitForResult(options, pollOptions) {
21
- const ack = await this.start(options);
22
- return this.waitForResult(ack.pipeline_run_id, pollOptions);
23
- }
24
- }
25
- //# sourceMappingURL=base-runner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base-runner.js","sourceRoot":"","sources":["../../src/runners/base-runner.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,GAIhB,MAAM,eAAe,CAAC;AAIvB;;;;;;;;;;;GAWG;AACH,MAAM,OAAgB,UAAU;IAU9B,6EAA6E;IAC7E,KAAK,CAAC,aAAa,CACjB,KAAa,EACb,OAA8B;QAE9B,OAAO,eAAe,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACpF,CAAC;IAED,wEAAwE;IACxE,KAAK,CAAC,qBAAqB,CACzB,OAAqB,EACrB,WAAkC;QAElC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IAC9D,CAAC;CACF"}