@wrongstack/tools 0.306.4 → 0.307.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.
Files changed (71) hide show
  1. package/dist/audit.js +14 -8
  2. package/dist/auto-proceed-loop-guard.js +8 -2
  3. package/dist/bash.js +57 -22
  4. package/dist/builtin.d.ts +6 -6
  5. package/dist/builtin.js +11302 -9305
  6. package/dist/clarify.d.ts +32 -0
  7. package/dist/codebase-index/ast-invariant-engine.d.ts +102 -0
  8. package/dist/codebase-index/ast-symbol-mutator.d.ts +28 -0
  9. package/dist/codebase-index/background-indexer.d.ts +9 -0
  10. package/dist/codebase-index/codebase-ast-replace-tool.d.ts +31 -0
  11. package/dist/codebase-index/codebase-impact-analysis-tool.d.ts +40 -0
  12. package/dist/codebase-index/codebase-invariant-check-tool.d.ts +23 -0
  13. package/dist/codebase-index/codebase-repo-map-tool.d.ts +22 -0
  14. package/dist/codebase-index/codebase-skeleton-tool.d.ts +36 -0
  15. package/dist/codebase-index/codebase-targeted-test-tool.d.ts +30 -0
  16. package/dist/codebase-index/index.d.ts +11 -1
  17. package/dist/codebase-index/index.js +4141 -1479
  18. package/dist/codebase-index/project-server-client-state.d.ts +79 -0
  19. package/dist/codebase-index/project-server-client.d.ts +3 -71
  20. package/dist/codebase-index/project-server-protocol.d.ts +1 -0
  21. package/dist/codebase-index/project-server.js +751 -909
  22. package/dist/codebase-index/repo-map.d.ts +20 -0
  23. package/dist/codebase-index/skeleton-extractor.d.ts +64 -0
  24. package/dist/codebase-index/tree-sitter-parser.d.ts +11 -0
  25. package/dist/codebase-index/worker.js +723 -891
  26. package/dist/codebase-index/writer-mutations.d.ts +26 -0
  27. package/dist/codebase-index/writer-refs.d.ts +50 -0
  28. package/dist/codebase-index/writer-search.d.ts +30 -0
  29. package/dist/codebase-index/writer.d.ts +2 -320
  30. package/dist/edit.js +8558 -349
  31. package/dist/exec.js +73 -20
  32. package/dist/fetch.js +11 -9
  33. package/dist/format.js +14 -8
  34. package/dist/glob.js +5 -1
  35. package/dist/grep.js +19 -8
  36. package/dist/index.d.ts +3 -1
  37. package/dist/index.js +11386 -9416
  38. package/dist/install.js +14 -8
  39. package/dist/json.js +88 -15
  40. package/dist/kanban-board-actions.d.ts +4 -0
  41. package/dist/kanban-lifecycle-actions.d.ts +4 -0
  42. package/dist/kanban-serializer.d.ts +21 -0
  43. package/dist/kanban.js +985 -1034
  44. package/dist/languages/index.js +14 -8
  45. package/dist/lint.js +14 -8
  46. package/dist/logs.js +13 -3
  47. package/dist/next-steps.d.ts +8 -0
  48. package/dist/next-steps.js +18 -0
  49. package/dist/outdated.js +14 -8
  50. package/dist/pack.js +11295 -9305
  51. package/dist/patch.js +8301 -78
  52. package/dist/plan.js +1231 -1281
  53. package/dist/process-registry.js +14 -8
  54. package/dist/ps-slash.js +65 -30
  55. package/dist/read.js +751 -910
  56. package/dist/replace.js +8450 -224
  57. package/dist/search.js +21 -15
  58. package/dist/security-ast-scan-tool.d.ts +43 -0
  59. package/dist/session-kanban-graph.d.ts +9 -0
  60. package/dist/session-kanban-sync.d.ts +31 -0
  61. package/dist/session-kanban.d.ts +5 -141
  62. package/dist/session-kanban.js +367 -360
  63. package/dist/task.js +1157 -1207
  64. package/dist/test.js +14 -8
  65. package/dist/todo.js +2187 -2237
  66. package/dist/tool-diff.js +6 -1
  67. package/dist/tool-summary.js +4 -2
  68. package/dist/tool-tier.js +11302 -9305
  69. package/dist/typecheck.js +14 -8
  70. package/dist/write.js +8374 -153
  71. package/package.json +7 -7
@@ -0,0 +1,79 @@
1
+ import type { ProjectIndexServerActivity, ProjectIndexServerHealth } from './project-server-protocol.js';
2
+ export declare const CONNECT_ATTEMPT_TIMEOUT_MS = 750;
3
+ export declare const SERVER_START_TIMEOUT_MS = 10000;
4
+ export declare const SERVER_CONTROL_TIMEOUT_MS = 5000;
5
+ export declare const SERVER_HEALTH_TIMEOUT_MS = 3000;
6
+ export declare const SERVER_HEARTBEAT_INTERVAL_MS = 10000;
7
+ export declare class StaleProjectIndexServerError extends Error {
8
+ readonly pid: number;
9
+ readonly name = "StaleProjectIndexServerError";
10
+ constructor(message: string, pid: number);
11
+ }
12
+ export interface PendingRequest {
13
+ resolve(value: unknown): void;
14
+ reject(error: unknown): void;
15
+ timer: ReturnType<typeof setTimeout>;
16
+ signal?: AbortSignal | undefined;
17
+ onAbort?: (() => void) | undefined;
18
+ onProgress?: ((current: number, total: number) => void) | undefined;
19
+ }
20
+ export interface ProjectServerCallOptions {
21
+ timeoutMs: number;
22
+ signal?: AbortSignal | undefined;
23
+ onProgress?: ((current: number, total: number) => void) | undefined;
24
+ }
25
+ export interface ProjectIndexServerShutdownResult {
26
+ stopped: boolean;
27
+ pid?: number | undefined;
28
+ reason?: string | undefined;
29
+ }
30
+ export type ProjectIndexServerConnectionStatus = 'unavailable' | 'offline' | 'connecting' | 'connected' | 'degraded' | 'unresponsive' | 'error' | 'stopping';
31
+ export interface ProjectIndexServerClientHealth {
32
+ status: 'healthy' | 'degraded' | 'unresponsive';
33
+ checkedAt: number;
34
+ lastHealthyAt: number | null;
35
+ latencyMs: number | null;
36
+ missedHeartbeats: number;
37
+ server?: ProjectIndexServerHealth | undefined;
38
+ }
39
+ export interface ProjectIndexServerConnectionState {
40
+ status: ProjectIndexServerConnectionStatus;
41
+ connected: boolean;
42
+ projectRoot?: string | undefined;
43
+ indexDir?: string | undefined;
44
+ endpoint?: string | undefined;
45
+ pid?: number | undefined;
46
+ lastError?: string | undefined;
47
+ activity?: ProjectIndexServerActivity | undefined;
48
+ health?: ProjectIndexServerClientHealth | undefined;
49
+ }
50
+ export type ProjectIndexServerConnectionListener = (state: ProjectIndexServerConnectionState) => void;
51
+ export declare const connectionStates: Map<string, ProjectIndexServerConnectionState>;
52
+ export declare const connectionStateListeners: Set<ProjectIndexServerConnectionListener>;
53
+ export declare let latestConnectionState: ProjectIndexServerConnectionState;
54
+ export declare function setLatestConnectionState(state: ProjectIndexServerConnectionState): void;
55
+ export type ProjectIndexDaemonAvailability = {
56
+ readonly kind: 'available';
57
+ readonly url: URL;
58
+ } | {
59
+ readonly kind: 'inline-requested';
60
+ } | {
61
+ readonly kind: 'missing-build';
62
+ } | {
63
+ readonly kind: 'endpoint-invalid';
64
+ readonly endpoint: string;
65
+ readonly byteLength: number;
66
+ readonly maxBytes: number;
67
+ };
68
+ export declare function resolveProjectIndexDaemonAvailability(projectRoot?: string, indexDir?: string): ProjectIndexDaemonAvailability;
69
+ export declare function resolveProjectServerUrl(): URL | null;
70
+ export declare function projectIndexServerExpectedBuildId(): string | null;
71
+ export declare function isProjectIndexServerAvailable(): boolean;
72
+ export declare function publishConnectionState(endpoint: string, state: ProjectIndexServerConnectionState): void;
73
+ export declare function getProjectIndexServerConnectionState(projectRoot?: string, indexDir?: string): ProjectIndexServerConnectionState;
74
+ export declare function onProjectIndexServerConnectionStateChange(listener: ProjectIndexServerConnectionListener): () => void;
75
+ export declare function remoteError(message: string, name?: string): Error;
76
+ export declare function isProjectIndexServerHealth(value: unknown): value is ProjectIndexServerHealth;
77
+ export declare function delay(ms: number): Promise<void>;
78
+ export declare function cancellationError(signal: AbortSignal): Error;
79
+ //# sourceMappingURL=project-server-client-state.d.ts.map
@@ -1,80 +1,13 @@
1
- import { type ProjectIndexServerActivity, type ProjectIndexServerHealth } from './project-server-protocol.js';
2
1
  import type { OpName, OpShapes } from './worker-protocol.js';
3
- export interface ProjectServerCallOptions {
4
- timeoutMs: number;
5
- signal?: AbortSignal | undefined;
6
- onProgress?: ((current: number, total: number) => void) | undefined;
7
- }
8
- export interface ProjectIndexServerShutdownResult {
9
- stopped: boolean;
10
- pid?: number | undefined;
11
- reason?: string | undefined;
12
- }
13
- export type ProjectIndexServerConnectionStatus = 'unavailable' | 'offline' | 'connecting' | 'connected' | 'degraded' | 'unresponsive' | 'error' | 'stopping';
14
- export interface ProjectIndexServerClientHealth {
15
- status: 'healthy' | 'degraded' | 'unresponsive';
16
- checkedAt: number;
17
- lastHealthyAt: number | null;
18
- latencyMs: number | null;
19
- missedHeartbeats: number;
20
- server?: ProjectIndexServerHealth | undefined;
21
- }
22
- export interface ProjectIndexServerConnectionState {
23
- status: ProjectIndexServerConnectionStatus;
24
- connected: boolean;
25
- projectRoot?: string | undefined;
26
- indexDir?: string | undefined;
27
- endpoint?: string | undefined;
28
- pid?: number | undefined;
29
- lastError?: string | undefined;
30
- activity?: ProjectIndexServerActivity | undefined;
31
- health?: ProjectIndexServerClientHealth | undefined;
32
- }
33
- type ProjectIndexServerConnectionListener = (state: ProjectIndexServerConnectionState) => void;
34
- /**
35
- * Why the index daemon is or is not usable.
36
- *
37
- * A bare `null` cannot distinguish "the operator asked for in-process mode"
38
- * from "the built server is missing", so callers that degrade on `null` treat a
39
- * broken build as a supported mode. For the index that means every process
40
- * quietly builds its own FTS5 database instead of sharing the project's one
41
- * owner — same data, N copies, none of them authoritative.
42
- */
43
- export type ProjectIndexDaemonAvailability = {
44
- readonly kind: 'available';
45
- readonly url: URL;
46
- }
47
- /** `WRONGSTACK_INDEX_INLINE` / `WRONGSTACK_INDEX_SERVER=0` was set. */
48
- | {
49
- readonly kind: 'inline-requested';
50
- }
51
- /** No server entry point exists in any known output layout. */
52
- | {
53
- readonly kind: 'missing-build';
54
- }
55
- /**
56
- * The derived socket path cannot be bound on this platform (over the
57
- * `sun_path` byte limit — seen on macOS whose per-user TMPDIR is ~48 bytes).
58
- * A daemon spawned onto this endpoint dies silently (`stdio: 'ignore'`), so
59
- * callers must degrade explicitly instead of entering the connect loop.
60
- */
61
- | {
62
- readonly kind: 'endpoint-invalid';
63
- readonly endpoint: string;
64
- readonly byteLength: number;
65
- readonly maxBytes: number;
66
- };
67
- export declare function resolveProjectIndexDaemonAvailability(projectRoot?: string, indexDir?: string): ProjectIndexDaemonAvailability;
68
- export declare function projectIndexServerExpectedBuildId(): string | null;
69
- export declare function isProjectIndexServerAvailable(): boolean;
70
- export declare function getProjectIndexServerConnectionState(projectRoot?: string, indexDir?: string): ProjectIndexServerConnectionState;
71
- export declare function onProjectIndexServerConnectionStateChange(listener: ProjectIndexServerConnectionListener): () => void;
2
+ import { type ProjectServerCallOptions, type ProjectIndexServerShutdownResult, type ProjectIndexServerConnectionStatus, type ProjectIndexServerClientHealth, type ProjectIndexServerConnectionState, type ProjectIndexDaemonAvailability, resolveProjectIndexDaemonAvailability, projectIndexServerExpectedBuildId, isProjectIndexServerAvailable, getProjectIndexServerConnectionState, onProjectIndexServerConnectionStateChange } from './project-server-client-state.js';
3
+ export { type ProjectServerCallOptions, type ProjectIndexServerShutdownResult, type ProjectIndexServerConnectionStatus, type ProjectIndexServerClientHealth, type ProjectIndexServerConnectionState, type ProjectIndexDaemonAvailability, resolveProjectIndexDaemonAvailability, projectIndexServerExpectedBuildId, isProjectIndexServerAvailable, getProjectIndexServerConnectionState, onProjectIndexServerConnectionStateChange, };
72
4
  export declare function callProjectIndexServer<O extends OpName>(op: O, args: OpShapes[O]['args'], options: ProjectServerCallOptions): Promise<OpShapes[O]['result']>;
73
5
  export declare function ensureProjectIndexServer(options: {
74
6
  projectRoot: string;
75
7
  indexDir?: string | undefined;
76
8
  watchExternal: boolean;
77
9
  debounceMs: number;
10
+ coalesceWindowMs?: number | undefined;
78
11
  }): Promise<void>;
79
12
  export declare function checkProjectIndexServerHealth(projectRoot: string, indexDir?: string, options?: {
80
13
  timeoutMs?: number | undefined;
@@ -82,5 +15,4 @@ export declare function checkProjectIndexServerHealth(projectRoot: string, index
82
15
  export declare function shutdownProjectIndexServer(projectRoot: string, indexDir?: string, reason?: string): Promise<ProjectIndexServerShutdownResult>;
83
16
  /** Disconnect this process from every project server without stopping them. */
84
17
  export declare function closeProjectIndexServerClients(): void;
85
- export {};
86
18
  //# sourceMappingURL=project-server-client.d.ts.map
@@ -79,6 +79,7 @@ export type ProjectServerClientMessage = {
79
79
  id: number;
80
80
  watchExternal: boolean;
81
81
  debounceMs: number;
82
+ coalesceWindowMs?: number | undefined;
82
83
  authToken?: string | undefined;
83
84
  } | {
84
85
  type: 'ping';