im_wower
·
2026-03-28
contracts.ts
1export type ClaudeCodedCliAction = "config" | "help" | "start" | "status";
2export type ClaudeCodedChildStatus = "failed" | "idle" | "running" | "starting" | "stopped";
3export type ClaudeCodedEventLevel = "error" | "info" | "warn";
4
5export type ClaudeCodedEnvironment = Record<string, string | undefined>;
6
7export interface ClaudeCodedRuntimePaths {
8 repoRoot: string;
9 logsRootDir: string;
10 stateRootDir: string;
11 logsDir: string;
12 stateDir: string;
13 structuredEventLogPath: string;
14 stdoutLogPath: string;
15 stderrLogPath: string;
16 identityPath: string;
17 daemonStatePath: string;
18}
19
20export interface ClaudeCodedChildConfig {
21 command: string;
22 args: string[];
23 cwd: string;
24 model: string | null;
25 extraArgs: string[];
26}
27
28export interface ClaudeCodedServiceConfig {
29 localApiBase: string;
30}
31
32export interface ClaudeCodedResolvedConfig {
33 nodeId: string;
34 version: string | null;
35 eventCacheSize: number;
36 turnTimeoutMs: number;
37 paths: ClaudeCodedRuntimePaths;
38 service: ClaudeCodedServiceConfig;
39 child: ClaudeCodedChildConfig;
40}
41
42export interface ClaudeCodedDaemonIdentity {
43 daemonId: string;
44 nodeId: string;
45 repoRoot: string;
46 createdAt: string;
47 version: string | null;
48}
49
50export interface ClaudeCodedManagedChildState {
51 status: ClaudeCodedChildStatus;
52 command: string | null;
53 args: string[];
54 cwd: string | null;
55 pid: number | null;
56 startedAt: string | null;
57 exitedAt: string | null;
58 exitCode: number | null;
59 signal: string | null;
60 lastError: string | null;
61 restartCount: number;
62}
63
64export interface ClaudeCodedDaemonState {
65 started: boolean;
66 startedAt: string | null;
67 stoppedAt: string | null;
68 updatedAt: string;
69 pid: number | null;
70 child: ClaudeCodedManagedChildState;
71}
72
73export interface ClaudeCodedRecentEvent {
74 seq: number;
75 createdAt: string;
76 level: ClaudeCodedEventLevel;
77 type: string;
78 message: string;
79 detail: Record<string, unknown> | null;
80}
81
82export interface ClaudeCodedRecentEventCache {
83 maxEntries: number;
84 updatedAt: string | null;
85 events: ClaudeCodedRecentEvent[];
86}
87
88export interface ClaudeCodedStatusSnapshot {
89 config: ClaudeCodedResolvedConfig;
90 identity: ClaudeCodedDaemonIdentity;
91 daemon: ClaudeCodedDaemonState;
92 recentEvents: ClaudeCodedRecentEventCache;
93}
94
95export interface ClaudeCodedStreamEvent {
96 type: string;
97 [key: string]: unknown;
98}
99
100export interface ClaudeCodedAskResult {
101 ok: boolean;
102 result: string | null;
103 sessionId: string | null;
104 costUsd: number | null;
105 durationMs: number | null;
106 isError: boolean;
107 events: ClaudeCodedStreamEvent[];
108}