@aria-cli/types 1.0.9 → 1.0.10

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 (79) hide show
  1. package/package.json +4 -1
  2. package/dist-cjs/.tsbuildinfo +0 -1
  3. package/dist-cjs/errors.d.ts +0 -29
  4. package/dist-cjs/errors.js +0 -51
  5. package/dist-cjs/errors.js.map +0 -1
  6. package/dist-cjs/index.d.ts +0 -11
  7. package/dist-cjs/index.js +0 -29
  8. package/dist-cjs/index.js.map +0 -1
  9. package/dist-cjs/logger.d.ts +0 -54
  10. package/dist-cjs/logger.js +0 -166
  11. package/dist-cjs/logger.js.map +0 -1
  12. package/dist-cjs/memoria.d.ts +0 -428
  13. package/dist-cjs/memoria.js +0 -11
  14. package/dist-cjs/memoria.js.map +0 -1
  15. package/dist-cjs/models.d.ts +0 -322
  16. package/dist-cjs/models.js +0 -21
  17. package/dist-cjs/models.js.map +0 -1
  18. package/dist-cjs/native-tools.d.ts +0 -57
  19. package/dist-cjs/native-tools.js +0 -33
  20. package/dist-cjs/native-tools.js.map +0 -1
  21. package/dist-cjs/package.json +0 -3
  22. package/dist-cjs/relaunch.d.ts +0 -22
  23. package/dist-cjs/relaunch.js +0 -67
  24. package/dist-cjs/relaunch.js.map +0 -1
  25. package/dist-cjs/src/errors.d.ts +0 -29
  26. package/dist-cjs/src/errors.js +0 -51
  27. package/dist-cjs/src/errors.js.map +0 -1
  28. package/dist-cjs/src/index.d.ts +0 -10
  29. package/dist-cjs/src/index.js +0 -28
  30. package/dist-cjs/src/index.js.map +0 -1
  31. package/dist-cjs/src/logger.d.ts +0 -22
  32. package/dist-cjs/src/logger.js +0 -85
  33. package/dist-cjs/src/logger.js.map +0 -1
  34. package/dist-cjs/src/memoria.d.ts +0 -418
  35. package/dist-cjs/src/memoria.js +0 -11
  36. package/dist-cjs/src/memoria.js.map +0 -1
  37. package/dist-cjs/src/models.d.ts +0 -322
  38. package/dist-cjs/src/models.js +0 -21
  39. package/dist-cjs/src/models.js.map +0 -1
  40. package/dist-cjs/src/native-tools.d.ts +0 -57
  41. package/dist-cjs/src/native-tools.js +0 -33
  42. package/dist-cjs/src/native-tools.js.map +0 -1
  43. package/dist-cjs/src/relaunch.d.ts +0 -22
  44. package/dist-cjs/src/relaunch.js +0 -61
  45. package/dist-cjs/src/relaunch.js.map +0 -1
  46. package/dist-cjs/src/tool-outputs.d.ts +0 -37
  47. package/dist-cjs/src/tool-outputs.js +0 -5
  48. package/dist-cjs/src/tool-outputs.js.map +0 -1
  49. package/dist-cjs/stall-phase.d.ts +0 -2
  50. package/dist-cjs/stall-phase.js +0 -18
  51. package/dist-cjs/stall-phase.js.map +0 -1
  52. package/dist-cjs/tests/logger.test.d.ts +0 -1
  53. package/dist-cjs/tests/logger.test.js +0 -65
  54. package/dist-cjs/tests/logger.test.js.map +0 -1
  55. package/dist-cjs/tool-outputs.d.ts +0 -37
  56. package/dist-cjs/tool-outputs.js +0 -5
  57. package/dist-cjs/tool-outputs.js.map +0 -1
  58. package/dist-cjs/vitest.config.d.ts +0 -2
  59. package/dist-cjs/vitest.config.js +0 -19
  60. package/dist-cjs/vitest.config.js.map +0 -1
  61. package/src/errors.ts +0 -50
  62. package/src/index.ts +0 -17
  63. package/src/logger.ts +0 -169
  64. package/src/memoria.ts +0 -437
  65. package/src/models.ts +0 -356
  66. package/src/native-tools.ts +0 -73
  67. package/src/relaunch.ts +0 -67
  68. package/src/stall-phase.ts +0 -20
  69. package/src/tool-outputs.ts +0 -42
  70. package/tests/guards/types-test-lane-manifest.contract.test.ts +0 -42
  71. package/tests/logger.test.ts +0 -102
  72. package/tests/memoria-vitest-isolation.contract.test.ts +0 -108
  73. package/tests/test-lane-manifest.ts +0 -177
  74. package/tests/vitest-project-runner.contract.test.ts +0 -309
  75. package/tests/vitest-runner-capacity.contract.test.ts +0 -142
  76. package/tests/vitest-shared-pool.contract.test.ts +0 -79
  77. package/tsconfig.cjs.json +0 -15
  78. package/tsconfig.json +0 -12
  79. package/vitest.config.ts +0 -17
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.test.js","sourceRoot":"","sources":["../../tests/logger.test.ts"],"names":[],"mappings":"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"}
@@ -1,37 +0,0 @@
1
- /** Canonical output shapes for tools with dedicated renderers.
2
- * Executors MUST return these shapes. Renderers consume them directly. */
3
- export interface EditFileOutput {
4
- filePath: string;
5
- structuredPatch: Array<{
6
- oldStart: number;
7
- oldLines: number;
8
- newStart: number;
9
- newLines: number;
10
- lines: string[];
11
- }>;
12
- replacements: number;
13
- strategy: string;
14
- }
15
- export interface WriteFileOutput {
16
- filePath: string;
17
- action: "created" | "overwritten" | "appended";
18
- bytesWritten: number;
19
- structuredPatch?: Array<{
20
- oldStart: number;
21
- oldLines: number;
22
- newStart: number;
23
- newLines: number;
24
- lines: string[];
25
- }>;
26
- }
27
- export interface BashToolOutput {
28
- stdout: string;
29
- stderr: string;
30
- exitCode: number;
31
- }
32
- export interface NotebookEditOutput {
33
- cellNumber: number;
34
- newSource: string;
35
- language: string;
36
- error?: string;
37
- }
@@ -1,5 +0,0 @@
1
- "use strict";
2
- /** Canonical output shapes for tools with dedicated renderers.
3
- * Executors MUST return these shapes. Renderers consume them directly. */
4
- Object.defineProperty(exports, "__esModule", { value: true });
5
- //# sourceMappingURL=tool-outputs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool-outputs.js","sourceRoot":"","sources":["../src/tool-outputs.ts"],"names":[],"mappings":";AAAA;2EAC2E"}
@@ -1,2 +0,0 @@
1
- declare const _default: import("vite").UserConfig;
2
- export default _default;
@@ -1,19 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const config_1 = require("vitest/config");
4
- const vitest_shared_ts_1 = require("../../vitest.shared.ts");
5
- exports.default = (0, config_1.defineConfig)({
6
- test: {
7
- ...vitest_shared_ts_1.sharedPoolConfig,
8
- globals: true,
9
- exclude: (0, vitest_shared_ts_1.getExcludes)(),
10
- coverage: {
11
- provider: "v8",
12
- reporter: ["text", "json", "html"],
13
- reportOnFailure: true,
14
- include: ["src/**"],
15
- exclude: ["**/__tests__/**", "**/*.test.ts"],
16
- },
17
- },
18
- });
19
- //# sourceMappingURL=vitest.config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vitest.config.js","sourceRoot":"","sources":["../vitest.config.ts"],"names":[],"mappings":";;AAAA,0CAA6C;AAC7C,6DAAuE;AAEvE,kBAAe,IAAA,qBAAY,EAAC;IAC1B,IAAI,EAAE;QACJ,GAAG,mCAAgB;QACnB,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,IAAA,8BAAW,GAAE;QACtB,QAAQ,EAAE;YACR,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAClC,eAAe,EAAE,IAAI;YACrB,OAAO,EAAE,CAAC,QAAQ,CAAC;YACnB,OAAO,EAAE,CAAC,iBAAiB,EAAE,cAAc,CAAC;SAC7C;KACF;CACF,CAAC,CAAC"}
package/src/errors.ts DELETED
@@ -1,50 +0,0 @@
1
- /**
2
- * Error narrowing utilities for replacing `catch (err: any)` patterns.
3
- * @module @aria/types/errors
4
- */
5
-
6
- /**
7
- * Extract a human-readable message from an unknown caught value.
8
- *
9
- * Replaces the pattern:
10
- * `catch (err: any) { ... err.message ... }`
11
- * with:
12
- * `catch (err: unknown) { ... getErrorMessage(err) ... }`
13
- */
14
- export function getErrorMessage(err: unknown): string {
15
- if (err instanceof Error) return err.message;
16
- if (typeof err === "string") return err;
17
- return String(err);
18
- }
19
-
20
- /**
21
- * Extract an HTTP-style status code from an unknown caught value.
22
- *
23
- * Replaces the pattern:
24
- * `(error as any).statusCode`
25
- * with:
26
- * `getErrorStatusCode(error)`
27
- */
28
- export function getErrorStatusCode(err: unknown): number | undefined {
29
- if (
30
- typeof err === "object" &&
31
- err !== null &&
32
- "statusCode" in err &&
33
- typeof (err as { statusCode: unknown }).statusCode === "number"
34
- ) {
35
- return (err as { statusCode: number }).statusCode;
36
- }
37
- return undefined;
38
- }
39
-
40
- /**
41
- * Type guard: is this caught value an Error with a `.code` property?
42
- * Common for Node.js system errors (ENOENT, ECONNREFUSED, etc.)
43
- */
44
- export function isNodeError(err: unknown): err is Error & { code: string } {
45
- return (
46
- err instanceof Error &&
47
- "code" in err &&
48
- typeof (err as { code: unknown }).code === "string"
49
- );
50
- }
package/src/index.ts DELETED
@@ -1,17 +0,0 @@
1
- /**
2
- * @aria/types - Minimal shared types
3
- */
4
-
5
- export * from "./models.js";
6
- export * from "./memoria.js";
7
- export * from "./errors.js";
8
- export * from "./native-tools.js";
9
- export * from "./relaunch.js";
10
- export * from "./stall-phase.js";
11
- export { log, type LogLevel, type LogSink } from "./logger.js";
12
- export type {
13
- EditFileOutput,
14
- WriteFileOutput,
15
- BashToolOutput,
16
- NotebookEditOutput,
17
- } from "./tool-outputs.js";
package/src/logger.ts DELETED
@@ -1,169 +0,0 @@
1
- /**
2
- * Lightweight leveled logger for ARIA.
3
- *
4
- * Respects `ARIA_LOG_LEVEL` env var (debug | info | warn | error | silent).
5
- * Default level: "info" — debug messages are suppressed in normal usage.
6
- *
7
- * Architecture: logs dispatch through pluggable sinks. The default console
8
- * sink writes to stdout/stderr with ANSI styling. Execution contexts that
9
- * lack a terminal (daemon, headless server) replace or supplement it with
10
- * durable sinks (e.g., JSONL file sink). This decoupling makes it impossible
11
- * for diagnostic output to silently go to /dev/null — every context
12
- * configures the sink that matches its output channel.
13
- *
14
- * Usage:
15
- * import { log } from "@aria-cli/types";
16
- * log.debug("[PhaseTimer] ..."); // only prints when ARIA_LOG_LEVEL=debug
17
- * log.info("[runner] ..."); // prints at info level and above
18
- * log.warn("[runner] ..."); // prints at warn level and above
19
- * log.error("[runner] ..."); // always prints (unless level > error)
20
- *
21
- * Sink configuration (daemon example):
22
- * import { log } from "@aria-cli/types";
23
- * log.addSink(myFileLogSink);
24
- * log.removeConsoleSink(); // stdio is /dev/null in detached mode
25
- */
26
-
27
- export type LogLevel = "debug" | "info" | "warn" | "error" | "silent";
28
-
29
- /**
30
- * A log sink receives raw (unstyled) log arguments and writes them
31
- * to a destination. Each sink decides its own formatting.
32
- */
33
- export interface LogSink {
34
- write(level: LogLevel, args: unknown[]): void;
35
- close?(): void;
36
- }
37
-
38
- const DIM_GRAY = "\x1b[2m\x1b[90m";
39
- const CYAN = "\x1b[36m";
40
- const RESET = "\x1b[0m";
41
-
42
- const LEVEL_ORDER: Record<LogLevel, number> = {
43
- debug: 0,
44
- info: 1,
45
- warn: 2,
46
- error: 3,
47
- silent: 4,
48
- };
49
-
50
- function resolveLevel(): LogLevel {
51
- const env = typeof process !== "undefined" ? process.env.ARIA_LOG_LEVEL : undefined;
52
- if (env && env in LEVEL_ORDER) return env as LogLevel;
53
- return "info";
54
- }
55
-
56
- let currentLevel: LogLevel = resolveLevel();
57
-
58
- function enabled(level: LogLevel): boolean {
59
- return LEVEL_ORDER[level] >= LEVEL_ORDER[currentLevel];
60
- }
61
-
62
- function isBrokenPipeError(error: unknown): boolean {
63
- if (!error || typeof error !== "object") {
64
- return false;
65
- }
66
- const maybe = error as { code?: unknown };
67
- return maybe.code === "EPIPE" || maybe.code === "ERR_STREAM_DESTROYED";
68
- }
69
-
70
- function writeSafely(method: (...args: unknown[]) => void, args: unknown[]): void {
71
- try {
72
- method(...args);
73
- } catch (error) {
74
- if (isBrokenPipeError(error)) {
75
- return;
76
- }
77
- throw error;
78
- }
79
- }
80
-
81
- function styleSystemDebugArgs(args: unknown[]): unknown[] {
82
- if (args.length === 0) return args;
83
- const [first, ...rest] = args;
84
- if (typeof first !== "string") return args;
85
- if (!first.startsWith("[")) return args;
86
- return [`${DIM_GRAY}${first}${RESET}`, ...rest];
87
- }
88
-
89
- function styleSystemInfoArgs(args: unknown[]): unknown[] {
90
- if (args.length === 0) return args;
91
- const [first, ...rest] = args;
92
- if (typeof first !== "string") return args;
93
- if (!first.startsWith("[")) return args;
94
- return [`${CYAN}${first}${RESET}`, ...rest];
95
- }
96
-
97
- // ── Sinks ────────────────────────────────────────────────────────
98
-
99
- /** Default console sink — applies ANSI styling for terminal readability. */
100
- const consoleSink: LogSink = {
101
- write(level: LogLevel, args: unknown[]): void {
102
- let styled: unknown[];
103
- let method: (...a: unknown[]) => void;
104
- switch (level) {
105
- case "debug":
106
- styled = styleSystemDebugArgs(args);
107
- method = console.debug;
108
- break;
109
- case "info":
110
- styled = styleSystemInfoArgs(args);
111
- method = console.info;
112
- break;
113
- case "warn":
114
- styled = args;
115
- method = console.warn;
116
- break;
117
- default:
118
- styled = args;
119
- method = console.error;
120
- break;
121
- }
122
- writeSafely(method, styled);
123
- },
124
- };
125
-
126
- const sinks: LogSink[] = [consoleSink];
127
-
128
- // ── Public API ───────────────────────────────────────────────────
129
-
130
- export const log = {
131
- debug(...args: unknown[]): void {
132
- if (enabled("debug")) for (const s of sinks) s.write("debug", args);
133
- },
134
- info(...args: unknown[]): void {
135
- if (enabled("info")) for (const s of sinks) s.write("info", args);
136
- },
137
- warn(...args: unknown[]): void {
138
- if (enabled("warn")) for (const s of sinks) s.write("warn", args);
139
- },
140
- error(...args: unknown[]): void {
141
- if (enabled("error")) for (const s of sinks) s.write("error", args);
142
- },
143
- setLevel(level: LogLevel): void {
144
- currentLevel = level;
145
- },
146
- getLevel(): LogLevel {
147
- return currentLevel;
148
- },
149
- /** Add a log sink. All subsequent log calls dispatch to it. */
150
- addSink(sink: LogSink): void {
151
- sinks.push(sink);
152
- },
153
- /** Remove a previously added sink. */
154
- removeSink(sink: LogSink): void {
155
- const idx = sinks.indexOf(sink);
156
- if (idx >= 0) sinks.splice(idx, 1);
157
- },
158
- /**
159
- * Remove the built-in console sink.
160
- *
161
- * Use this in execution contexts where stdio is unavailable (detached
162
- * daemon, headless server) AFTER adding a durable file sink. Prevents
163
- * wasted console.* calls that go to /dev/null.
164
- */
165
- removeConsoleSink(): void {
166
- const idx = sinks.indexOf(consoleSink);
167
- if (idx >= 0) sinks.splice(idx, 1);
168
- },
169
- };