@a1hvdy/cc-openclaw 0.30.0 → 0.32.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 (207) hide show
  1. package/dist/src/channels/telegram-mirror/card-renderer.js +9 -5
  2. package/dist/src/channels/telegram-mirror/commands.js +0 -8
  3. package/dist/src/channels/telegram-mirror/status-line.js +32 -2
  4. package/dist/src/constants.js +16 -2
  5. package/dist/src/engines/persistent-session.js +11 -0
  6. package/dist/src/lib/config.js +40 -0
  7. package/dist/src/openai-compat/non-streaming-handler.js +2 -2
  8. package/dist/src/openai-compat/streaming-handler.js +121 -9
  9. package/package.json +3 -2
  10. package/dist/src/channels/adapter.d.ts +0 -103
  11. package/dist/src/channels/telegram-mirror/askuser.d.ts +0 -107
  12. package/dist/src/channels/telegram-mirror/burst-accumulator.d.ts +0 -96
  13. package/dist/src/channels/telegram-mirror/callback-mapping.d.ts +0 -61
  14. package/dist/src/channels/telegram-mirror/card-renderer.d.ts +0 -68
  15. package/dist/src/channels/telegram-mirror/card-state.d.ts +0 -83
  16. package/dist/src/channels/telegram-mirror/commands.d.ts +0 -183
  17. package/dist/src/channels/telegram-mirror/compose-buffer.d.ts +0 -71
  18. package/dist/src/channels/telegram-mirror/cost-views.d.ts +0 -58
  19. package/dist/src/channels/telegram-mirror/failure/callback-data-overflow.d.ts +0 -21
  20. package/dist/src/channels/telegram-mirror/failure/gateway-down.d.ts +0 -15
  21. package/dist/src/channels/telegram-mirror/failure/in-flight-conflict.d.ts +0 -15
  22. package/dist/src/channels/telegram-mirror/failure/index.d.ts +0 -23
  23. package/dist/src/channels/telegram-mirror/failure/model-5xx.d.ts +0 -16
  24. package/dist/src/channels/telegram-mirror/failure/network-blip.d.ts +0 -17
  25. package/dist/src/channels/telegram-mirror/failure/pool-exhausted-fallback.d.ts +0 -15
  26. package/dist/src/channels/telegram-mirror/failure/rate-limit.d.ts +0 -16
  27. package/dist/src/channels/telegram-mirror/failure/returning-after-24h.d.ts +0 -14
  28. package/dist/src/channels/telegram-mirror/failure/types.d.ts +0 -30
  29. package/dist/src/channels/telegram-mirror/inbound-handler.d.ts +0 -73
  30. package/dist/src/channels/telegram-mirror/index.d.ts +0 -32
  31. package/dist/src/channels/telegram-mirror/plan-attachment.d.ts +0 -120
  32. package/dist/src/channels/telegram-mirror/quota-reader.d.ts +0 -42
  33. package/dist/src/channels/telegram-mirror/sessions-keyboard.d.ts +0 -84
  34. package/dist/src/channels/telegram-mirror/soak-log.d.ts +0 -99
  35. package/dist/src/channels/telegram-mirror/state-machine.d.ts +0 -113
  36. package/dist/src/channels/telegram-mirror/status-line.d.ts +0 -51
  37. package/dist/src/channels/telegram-mirror/sync-commands.d.ts +0 -100
  38. package/dist/src/channels/telegram-mirror/threshold-watcher.d.ts +0 -54
  39. package/dist/src/channels/telegram-mirror/turn-bridge.d.ts +0 -125
  40. package/dist/src/cli/checks/bridge-wiring.d.ts +0 -14
  41. package/dist/src/cli/checks/config-schema.d.ts +0 -11
  42. package/dist/src/cli/checks/critical-openclaw-json-keys.d.ts +0 -21
  43. package/dist/src/cli/checks/install-path.d.ts +0 -11
  44. package/dist/src/cli/checks/patch-scaffold.d.ts +0 -17
  45. package/dist/src/cli/doctor.d.ts +0 -20
  46. package/dist/src/cli/index.d.ts +0 -8
  47. package/dist/src/cli/migrate.d.ts +0 -29
  48. package/dist/src/command-router/cc-handler.d.ts +0 -67
  49. package/dist/src/command-router/index.d.ts +0 -2
  50. package/dist/src/command-router/launch-policy.d.ts +0 -92
  51. package/dist/src/command-router/resume-policy.d.ts +0 -18
  52. package/dist/src/command-router/turn-formatter.d.ts +0 -19
  53. package/dist/src/config/loader.d.ts +0 -8
  54. package/dist/src/config/schema.d.ts +0 -192
  55. package/dist/src/constants.d.ts +0 -191
  56. package/dist/src/council/build-agent-prompt.d.ts +0 -11
  57. package/dist/src/council/cleanup-worktrees.d.ts +0 -10
  58. package/dist/src/council/consensus.d.ts +0 -20
  59. package/dist/src/council/council.d.ts +0 -67
  60. package/dist/src/council/index.d.ts +0 -2
  61. package/dist/src/council/system-prompt.d.ts +0 -16
  62. package/dist/src/council/write-worktree-claude-md.d.ts +0 -10
  63. package/dist/src/engines/base-oneshot-session.d.ts +0 -87
  64. package/dist/src/engines/heartbeat-guard.d.ts +0 -93
  65. package/dist/src/engines/index.d.ts +0 -8
  66. package/dist/src/engines/persistent-codex-session.d.ts +0 -16
  67. package/dist/src/engines/persistent-cursor-session.d.ts +0 -21
  68. package/dist/src/engines/persistent-custom-session.d.ts +0 -78
  69. package/dist/src/engines/persistent-gemini-session.d.ts +0 -21
  70. package/dist/src/engines/persistent-session.d.ts +0 -95
  71. package/dist/src/engines/resolve-bin.d.ts +0 -14
  72. package/dist/src/engines/subprocess-pool.d.ts +0 -78
  73. package/dist/src/health/handler.d.ts +0 -39
  74. package/dist/src/health/index.d.ts +0 -1
  75. package/dist/src/health/metrics.d.ts +0 -52
  76. package/dist/src/index.d.ts +0 -57
  77. package/dist/src/lib/auto-recovery.d.ts +0 -43
  78. package/dist/src/lib/cache-parity-decide.d.ts +0 -64
  79. package/dist/src/lib/cache-parity.d.ts +0 -38
  80. package/dist/src/lib/cc-cli-scan.d.ts +0 -52
  81. package/dist/src/lib/circuit-breaker.d.ts +0 -21
  82. package/dist/src/lib/config-service.d.ts +0 -106
  83. package/dist/src/lib/config.d.ts +0 -136
  84. package/dist/src/lib/cost-rollup.d.ts +0 -36
  85. package/dist/src/lib/debounce.d.ts +0 -12
  86. package/dist/src/lib/debug-tap.d.ts +0 -13
  87. package/dist/src/lib/domain-error.d.ts +0 -59
  88. package/dist/src/lib/drift-detector.d.ts +0 -46
  89. package/dist/src/lib/env-overrides.d.ts +0 -47
  90. package/dist/src/lib/error-formatter.d.ts +0 -91
  91. package/dist/src/lib/error-renderer.d.ts +0 -20
  92. package/dist/src/lib/heartbeat-config.d.ts +0 -34
  93. package/dist/src/lib/heartbeat-workaround.d.ts +0 -44
  94. package/dist/src/lib/html-render.d.ts +0 -50
  95. package/dist/src/lib/http-agent.d.ts +0 -47
  96. package/dist/src/lib/index.d.ts +0 -7
  97. package/dist/src/lib/index.js +0 -10
  98. package/dist/src/lib/json-array.d.ts +0 -10
  99. package/dist/src/lib/markdown-to-mdv2.d.ts +0 -53
  100. package/dist/src/lib/markdown-v2.d.ts +0 -27
  101. package/dist/src/lib/perf/async-compact.d.ts +0 -26
  102. package/dist/src/lib/perf/direct-sdk.d.ts +0 -26
  103. package/dist/src/lib/perf/haiku-route.d.ts +0 -19
  104. package/dist/src/lib/perf/predictive-continuation.d.ts +0 -18
  105. package/dist/src/lib/perf/read-batch.d.ts +0 -33
  106. package/dist/src/lib/perf/skill-list-collapse.d.ts +0 -22
  107. package/dist/src/lib/perf/speculative-bubble.d.ts +0 -27
  108. package/dist/src/lib/perf/typing-prefetch.d.ts +0 -25
  109. package/dist/src/lib/probes.d.ts +0 -50
  110. package/dist/src/lib/register-guard.d.ts +0 -56
  111. package/dist/src/lib/req-shape-log.d.ts +0 -31
  112. package/dist/src/lib/safe-upstream-probes.d.ts +0 -25
  113. package/dist/src/lib/session-registry.d.ts +0 -66
  114. package/dist/src/lib/spawn-async.d.ts +0 -18
  115. package/dist/src/lib/status-tee-reader.d.ts +0 -29
  116. package/dist/src/lib/sysprompt-strip.d.ts +0 -53
  117. package/dist/src/lib/telegram-bot-api.d.ts +0 -146
  118. package/dist/src/lib/telemetry.d.ts +0 -38
  119. package/dist/src/lib/test-mode.d.ts +0 -26
  120. package/dist/src/lib/trajectory.d.ts +0 -44
  121. package/dist/src/lib/vendor-paths.d.ts +0 -12
  122. package/dist/src/lifecycle/boot.d.ts +0 -48
  123. package/dist/src/lifecycle/patch-manifest.d.ts +0 -82
  124. package/dist/src/lifecycle/phase-import-upstream.d.ts +0 -12
  125. package/dist/src/lifecycle/phase-install-patches.d.ts +0 -12
  126. package/dist/src/lifecycle/phase-schedule-jobs.d.ts +0 -12
  127. package/dist/src/lifecycle/phase-start-server.d.ts +0 -11
  128. package/dist/src/lifecycle/phase-validate-config.d.ts +0 -9
  129. package/dist/src/lifecycle/phase-validate-upstream.d.ts +0 -11
  130. package/dist/src/lifecycle/phase-wire-handlers.d.ts +0 -12
  131. package/dist/src/lifecycle/safe-restart.d.ts +0 -99
  132. package/dist/src/logger.d.ts +0 -14
  133. package/dist/src/mcp/bridge.d.ts +0 -21
  134. package/dist/src/mcp/index.d.ts +0 -2
  135. package/dist/src/models.d.ts +0 -68
  136. package/dist/src/observability/event-bus.d.ts +0 -86
  137. package/dist/src/observability/get-event-bus.d.ts +0 -25
  138. package/dist/src/observability/observability-service.d.ts +0 -19
  139. package/dist/src/observability/perf-telemetry.d.ts +0 -65
  140. package/dist/src/observability/subscribers/metrics.d.ts +0 -11
  141. package/dist/src/observability/subscribers/session-capture.d.ts +0 -15
  142. package/dist/src/openai-compat/autonomy-rule.d.ts +0 -26
  143. package/dist/src/openai-compat/bridges/allowlist.d.ts +0 -19
  144. package/dist/src/openai-compat/bridges/factory.d.ts +0 -30
  145. package/dist/src/openai-compat/bridges/media-bridge.d.ts +0 -34
  146. package/dist/src/openai-compat/bridges/openclaw-api-shim.d.ts +0 -54
  147. package/dist/src/openai-compat/bridges/openclaw-native-tools.d.ts +0 -61
  148. package/dist/src/openai-compat/bridges/openclaw-tool-registry.d.ts +0 -26
  149. package/dist/src/openai-compat/bridges/tts-media-bridge.d.ts +0 -19
  150. package/dist/src/openai-compat/chat-cwd.d.ts +0 -22
  151. package/dist/src/openai-compat/cli-stream-parser.d.ts +0 -134
  152. package/dist/src/openai-compat/index.d.ts +0 -1
  153. package/dist/src/openai-compat/message-extractor.d.ts +0 -84
  154. package/dist/src/openai-compat/mode-flags.d.ts +0 -34
  155. package/dist/src/openai-compat/non-streaming-handler.d.ts +0 -29
  156. package/dist/src/openai-compat/openai-chunk-types.d.ts +0 -35
  157. package/dist/src/openai-compat/openai-compat.d.ts +0 -49
  158. package/dist/src/openai-compat/openai-types.d.ts +0 -71
  159. package/dist/src/openai-compat/parse-route-body.d.ts +0 -24
  160. package/dist/src/openai-compat/prompts.d.ts +0 -47
  161. package/dist/src/openai-compat/request-coalescer.d.ts +0 -77
  162. package/dist/src/openai-compat/response-formatter.d.ts +0 -33
  163. package/dist/src/openai-compat/session-key-resolver.d.ts +0 -41
  164. package/dist/src/openai-compat/skill-resolver.d.ts +0 -59
  165. package/dist/src/openai-compat/sse-translator.d.ts +0 -51
  166. package/dist/src/openai-compat/status-reporter.d.ts +0 -30
  167. package/dist/src/openai-compat/streaming-handler.d.ts +0 -52
  168. package/dist/src/openai-compat/tool-calls-parser.d.ts +0 -34
  169. package/dist/src/openai-compat/tool-results-serializer.d.ts +0 -60
  170. package/dist/src/openai-compat/tts-rule.d.ts +0 -20
  171. package/dist/src/openai-compat/voice-recovery.d.ts +0 -56
  172. package/dist/src/patches/cache-parity-registry.d.ts +0 -103
  173. package/dist/src/patches/claude-md-injection.d.ts +0 -10
  174. package/dist/src/patches/cwd-redirect.d.ts +0 -10
  175. package/dist/src/patches/embedded-server-route.d.ts +0 -23
  176. package/dist/src/patches/pricing-overrides.d.ts +0 -10
  177. package/dist/src/patches/resume-registry-restore.d.ts +0 -11
  178. package/dist/src/patches/session-pid-tracking.d.ts +0 -10
  179. package/dist/src/patches/sysprompt-strip.d.ts +0 -46
  180. package/dist/src/patches/tools-restoration.d.ts +0 -12
  181. package/dist/src/persistence/migration-v0.d.ts +0 -24
  182. package/dist/src/persistence/session-registry.d.ts +0 -58
  183. package/dist/src/proxy/anthropic-adapter.d.ts +0 -136
  184. package/dist/src/proxy/handler.d.ts +0 -39
  185. package/dist/src/proxy/index.d.ts +0 -4
  186. package/dist/src/proxy/schema-cleaner.d.ts +0 -11
  187. package/dist/src/proxy/thought-cache.d.ts +0 -19
  188. package/dist/src/session/embedded-server.d.ts +0 -25
  189. package/dist/src/session/inbox-manager.d.ts +0 -38
  190. package/dist/src/session/index.d.ts +0 -3
  191. package/dist/src/session/persisted-sessions.d.ts +0 -50
  192. package/dist/src/session/session-manager.d.ts +0 -247
  193. package/dist/src/session/watchdogs.d.ts +0 -92
  194. package/dist/src/session-bootstrap/boot-self-heal.d.ts +0 -32
  195. package/dist/src/session-bootstrap/cwd-patch.d.ts +0 -50
  196. package/dist/src/session-bootstrap/index.d.ts +0 -3
  197. package/dist/src/session-bootstrap/resume-registry.d.ts +0 -27
  198. package/dist/src/session-bootstrap/session-hygiene.d.ts +0 -23
  199. package/dist/src/session-bootstrap/sysprompt-strip.d.ts +0 -24
  200. package/dist/src/session-bootstrap/think-conflict-resolver.d.ts +0 -32
  201. package/dist/src/types/route.d.ts +0 -11
  202. package/dist/src/types/runtime-config.d.ts +0 -208
  203. package/dist/src/types/sse.d.ts +0 -29
  204. package/dist/src/types/tool-bridge.d.ts +0 -82
  205. package/dist/src/types/upstream.d.ts +0 -580
  206. package/dist/src/types.d.ts +0 -498
  207. package/dist/src/validation.d.ts +0 -31
@@ -1,498 +0,0 @@
1
- /**
2
- * Shared types for openclaw-claude-code plugin
3
- */
4
- import type { ModelPricing } from './models.js';
5
- export { getModelPricing, overrideModelPricing } from './models.js';
6
- type PermissionMode = 'acceptEdits' | 'bypassPermissions' | 'default' | 'delegate' | 'dontAsk' | 'plan' | 'auto';
7
- export type EffortLevel = 'low' | 'medium' | 'high' | 'max' | 'auto';
8
- export type EngineType = 'claude' | 'codex' | 'gemini' | 'cursor' | 'custom';
9
- export interface CustomEngineConfig {
10
- /** Display name for this engine (used in logs and session IDs) */
11
- name: string;
12
- /** Binary path or command name, e.g. 'my-agent' or '/usr/local/bin/my-agent' */
13
- bin: string;
14
- /**
15
- * Environment variable name that overrides `bin` at runtime.
16
- * e.g. 'MY_AGENT_BIN' — the value of that env var takes precedence over `bin`.
17
- */
18
- binEnv?: string;
19
- /**
20
- * true = persistent subprocess (Claude Code style: start once, JSON I/O on stdin/stdout)
21
- * false = one-shot per send (Gemini/Codex style: spawn per message)
22
- * @default false
23
- */
24
- persistent?: boolean;
25
- /**
26
- * CLI flag mappings. Each key is an OpenClaw concept; the value is the CLI
27
- * flag string your agent expects. Omit any flag your CLI doesn't support.
28
- *
29
- * Example for a Claude Code-compatible CLI:
30
- * ```json
31
- * {
32
- * "print": "-p",
33
- * "outputFormat": "--output-format",
34
- * "outputFormatValue": "stream-json",
35
- * "inputFormat": "--input-format",
36
- * "inputFormatValue": "stream-json",
37
- * "skipPermissions": "-y",
38
- * "permissionMode": "--permission-mode",
39
- * "model": "--model",
40
- * "systemPrompt": "--system-prompt",
41
- * "appendSystemPrompt": "--append-system-prompt",
42
- * "maxTurns": "--max-turns",
43
- * "resume": "--resume",
44
- * "verbose": "--verbose",
45
- * "replayUserMessages": "--replay-user-messages",
46
- * "includePartialMessages": "--include-partial-messages"
47
- * }
48
- * ```
49
- */
50
- args: {
51
- /** Flag for non-interactive / print mode, e.g. '-p' */
52
- print?: string;
53
- /** Flag for output format, e.g. '--output-format' */
54
- outputFormat?: string;
55
- /** Value for stream-json output format, e.g. 'stream-json' */
56
- outputFormatValue?: string;
57
- /** Flag for input format (persistent mode only), e.g. '--input-format' */
58
- inputFormat?: string;
59
- /** Value for stream-json input format, e.g. 'stream-json' */
60
- inputFormatValue?: string;
61
- /** Flag to skip all permissions, e.g. '-y' or '--dangerously-skip-permissions' */
62
- skipPermissions?: string;
63
- /** Flag for permission mode, e.g. '--permission-mode' */
64
- permissionMode?: string;
65
- /** Flag for model selection, e.g. '--model' */
66
- model?: string;
67
- /** Flag for system prompt override, e.g. '--system-prompt' */
68
- systemPrompt?: string;
69
- /** Flag for appending to system prompt, e.g. '--append-system-prompt' */
70
- appendSystemPrompt?: string;
71
- /** Flag for max agent turns, e.g. '--max-turns' */
72
- maxTurns?: string;
73
- /** Flag for resuming a session, e.g. '--resume' */
74
- resume?: string;
75
- /** Flag for verbose output, e.g. '--verbose' */
76
- verbose?: string;
77
- /** Flag for replaying user messages, e.g. '--replay-user-messages' (persistent only) */
78
- replayUserMessages?: string;
79
- /** Flag for including partial messages, e.g. '--include-partial-messages' (persistent only) */
80
- includePartialMessages?: string;
81
- /** Flag for effort level, e.g. '--effort' */
82
- effort?: string;
83
- /** Flag for workspace/cwd, e.g. '--workspace' (one-shot only; overrides cwd) */
84
- workspace?: string;
85
- /** Additional static arguments always appended to the CLI invocation */
86
- extra?: string[];
87
- };
88
- /**
89
- * Maps OpenClaw permission mode names to CLI-specific values.
90
- * e.g. { bypassPermissions: 'yolo', default: 'sandbox' }
91
- * If omitted, mode names are passed through as-is.
92
- */
93
- permissionModes?: Record<string, string>;
94
- /**
95
- * Default pricing per 1M tokens (for cost estimation when model is unknown).
96
- * Falls back to { input: 0, output: 0 } if omitted.
97
- */
98
- pricing?: {
99
- input: number;
100
- output: number;
101
- cached?: number;
102
- };
103
- /** Context window size in tokens. @default 200000 */
104
- contextWindow?: number;
105
- /** Extra environment variables to set when spawning the CLI process */
106
- env?: Record<string, string>;
107
- /**
108
- * Regex patterns to sanitize from stderr output (e.g. API key patterns).
109
- * Applied as global replacements with '***'.
110
- */
111
- sanitizePatterns?: string[];
112
- }
113
- export interface SessionConfig {
114
- name: string;
115
- cwd: string;
116
- engine?: EngineType;
117
- model?: string;
118
- baseUrl?: string;
119
- permissionMode: PermissionMode;
120
- allowedTools?: string[];
121
- disallowedTools?: string[];
122
- tools?: string[];
123
- maxTurns?: number;
124
- maxBudgetUsd?: number;
125
- systemPrompt?: string;
126
- appendSystemPrompt?: string;
127
- dangerouslySkipPermissions?: boolean;
128
- includePartialMessages?: boolean;
129
- agents?: Record<string, {
130
- description?: string;
131
- prompt: string;
132
- }>;
133
- agent?: string;
134
- customSessionId?: string;
135
- sessionName?: string;
136
- claudeResumeId?: string;
137
- resumeSessionId?: string;
138
- /** v0.27.4 (M4/M6) — opt a skipPersistence session into freshness-windowed
139
- * --resume across restart / watchdog-kill. When set (ms), the SessionManager
140
- * persists this session's claudeSessionId and, on the next start for the same
141
- * name, resumes it iff its last activity is within this window. Used by the
142
- * openai-compat bridge so Savvy keeps context across a gateway restart while
143
- * still starting fresh after a long idle gap. */
144
- resumeFreshnessMs?: number;
145
- forkSession?: boolean;
146
- addDir?: string[];
147
- effort?: EffortLevel;
148
- modelOverrides?: Record<string, string>;
149
- enableAutoMode?: boolean;
150
- resolvedModel?: string;
151
- bare?: boolean;
152
- worktree?: string | boolean;
153
- fallbackModel?: string;
154
- jsonSchema?: string;
155
- mcpConfig?: string | string[];
156
- settings?: string;
157
- noSessionPersistence?: boolean;
158
- betas?: string | string[];
159
- enableAgentTeams?: boolean;
160
- /** Stream hook lifecycle events (PreToolUse/PostToolUse) */
161
- includeHookEvents?: boolean;
162
- /** Delegate permission prompts to an MCP tool for non-interactive use */
163
- permissionPromptTool?: string;
164
- /** Move cwd/env/git status from system prompt to user message for better prompt cache hits */
165
- excludeDynamicSystemPromptSections?: boolean;
166
- /** Enable debug output for specific categories (e.g. "api", "mcp") */
167
- debug?: string | string[];
168
- /** Write debug output to file instead of stderr */
169
- debugFile?: string;
170
- /** Resume session linked to a GitHub PR number or URL */
171
- fromPr?: string;
172
- /** MCP channel subscriptions (research preview) */
173
- channels?: string | string[];
174
- /** Load development MCP channels */
175
- dangerouslyLoadDevelopmentChannels?: string | string[];
176
- /** Enable 1-hour prompt cache TTL (vs default 5-min) */
177
- enablePromptCaching1H?: boolean;
178
- /** Custom engine configuration — required when engine is 'custom' */
179
- customEngine?: CustomEngineConfig;
180
- }
181
- export interface SessionStats {
182
- turns: number;
183
- toolCalls: number;
184
- toolErrors: number;
185
- tokensIn: number;
186
- tokensOut: number;
187
- cachedTokens: number;
188
- costUsd: number;
189
- isReady: boolean;
190
- startTime: string | null;
191
- lastActivity: string | null;
192
- /** v0.27.x — wall-clock ISO of the last PROGRESS event (text / tool_use /
193
- * tool_result / thinking / result / init) — i.e. the subprocess produced
194
- * real output. Distinct from lastActivity, which also moves on non-progress
195
- * events like `system/api_retry`. The stalled-session watchdog keys off this
196
- * so an API retry-storm (no output) is fast-failed instead of looking busy. */
197
- lastProgressAt: string | null;
198
- /** v0.27.6 — tool calls currently in flight (dispatched without a matching
199
- * result yet). Optional: only the Claude persistent-session engine populates
200
- * it; the stalled-session watchdog treats > 0 as "alive, don't kill". */
201
- inFlightTools?: number;
202
- /**
203
- * Approximate context window utilization (0-100).
204
- * Estimated as (tokensIn + tokensOut) / 200,000 * 100.
205
- * Claude Code does not expose exact context usage via the JSON protocol,
206
- * so this is a best-effort heuristic that may overcount on long conversations.
207
- */
208
- contextPercent: number;
209
- /** Total API retry attempts during this session */
210
- retries: number;
211
- /** Last API retry error category (e.g. "overloaded", "rate_limit") */
212
- lastRetryError?: string;
213
- }
214
- export interface HookConfig {
215
- onToolError?: string;
216
- onContextHigh?: string;
217
- onStop?: string;
218
- onTurnComplete?: string;
219
- onStopFailure?: string;
220
- }
221
- export interface SendOptions {
222
- effort?: EffortLevel;
223
- plan?: boolean;
224
- autoResume?: boolean;
225
- timeout?: number;
226
- stream?: boolean;
227
- onChunk?: (chunk: string) => void;
228
- onEvent?: (event: StreamEvent) => void;
229
- }
230
- export interface StreamEvent {
231
- type: string;
232
- subtype?: string;
233
- session_id?: string;
234
- message?: {
235
- content?: Array<{
236
- type: string;
237
- text?: string;
238
- }>;
239
- usage?: {
240
- input_tokens?: number;
241
- output_tokens?: number;
242
- cache_read_input_tokens?: number;
243
- };
244
- };
245
- result?: string;
246
- is_error?: boolean;
247
- num_turns?: number;
248
- total_cost_usd?: number;
249
- [key: string]: unknown;
250
- }
251
- export interface SessionInfo {
252
- name: string;
253
- claudeSessionId?: string;
254
- created: string;
255
- cwd: string;
256
- model?: string;
257
- paused: boolean;
258
- stats: SessionStats;
259
- }
260
- export interface SendResult {
261
- output: string;
262
- sessionId?: string;
263
- error?: string;
264
- events: StreamEvent[];
265
- }
266
- export interface AgentInfo {
267
- name: string;
268
- file: string;
269
- description: string;
270
- }
271
- export interface SkillInfo {
272
- name: string;
273
- hasSkillMd: boolean;
274
- description: string;
275
- }
276
- export interface RuleInfo {
277
- name: string;
278
- file: string;
279
- description: string;
280
- paths: string;
281
- condition: string;
282
- }
283
- export interface SessionSendOptions {
284
- effort?: EffortLevel;
285
- plan?: boolean;
286
- waitForComplete?: boolean;
287
- timeout?: number;
288
- callbacks?: StreamCallbacks;
289
- }
290
- export interface StreamCallbacks {
291
- onText?: (text: string) => void;
292
- onToolUse?: (event: unknown) => void;
293
- onToolResult?: (event: unknown) => void;
294
- /**
295
- * v0.7.1: extended-thinking content (opus-4-7+ with reasoning enabled).
296
- * Fires once per `thinking_delta` event with the partial reasoning text.
297
- * The caller is responsible for accumulation. Privacy-sensitive — most
298
- * paths should gate this on `getSurfaceThinkingEnabled()` from
299
- * `lib/config.ts` before subscribing. NEVER receives `signature_delta`
300
- * content (Anthropic-internal cryptographic field).
301
- */
302
- onThinking?: (text: string) => void;
303
- }
304
- export interface TurnResult {
305
- text: string;
306
- event: StreamEvent;
307
- }
308
- export interface CostBreakdown {
309
- model: string;
310
- tokensIn: number;
311
- tokensOut: number;
312
- cachedTokens: number;
313
- pricing: {
314
- inputPer1M: number;
315
- outputPer1M: number;
316
- cachedPer1M: number | undefined;
317
- };
318
- breakdown: {
319
- inputCost: number;
320
- cachedCost: number;
321
- outputCost: number;
322
- };
323
- totalUsd: number;
324
- }
325
- export interface ISession {
326
- sessionId?: string;
327
- readonly pid?: number;
328
- readonly isReady: boolean;
329
- readonly isPaused: boolean;
330
- readonly isBusy: boolean;
331
- /** Initialise the engine subprocess. Engine-specific; config passed via constructor. */
332
- start(): Promise<this>;
333
- stop(): void;
334
- pause(): void;
335
- resume(): void;
336
- send(message: string | unknown[], options?: SessionSendOptions): Promise<TurnResult | {
337
- requestId: number;
338
- sent: boolean;
339
- }>;
340
- getStats(): SessionStats & {
341
- sessionId?: string;
342
- uptime: number;
343
- };
344
- getHistory(limit?: number): Array<{
345
- time: string;
346
- type: string;
347
- event: unknown;
348
- }>;
349
- getCost(): CostBreakdown;
350
- compact(summary?: string): Promise<TurnResult | {
351
- requestId: number;
352
- sent: boolean;
353
- }>;
354
- getEffort(): EffortLevel;
355
- setEffort(level: EffortLevel): void;
356
- resolveModel(alias: string): string;
357
- on(event: string, listener: (...args: unknown[]) => void): this;
358
- once(event: string, listener: (...args: unknown[]) => void): this;
359
- emit(event: string, ...args: unknown[]): boolean;
360
- removeListener(event: string, listener: (...args: unknown[]) => void): this;
361
- }
362
- export interface PluginConfig {
363
- claudeBin: string;
364
- defaultModel?: string;
365
- defaultPermissionMode: PermissionMode;
366
- defaultEffort: EffortLevel;
367
- maxConcurrentSessions: number;
368
- sessionTtlMinutes: number;
369
- proxy?: ProxyConfig;
370
- /** Override or extend model pricing at runtime without a new release. */
371
- pricingOverrides?: Record<string, Partial<ModelPricing>>;
372
- }
373
- export interface ProxyConfig {
374
- enabled: boolean;
375
- bigModel: string;
376
- smallModel: string;
377
- }
378
- export interface InboxMessage {
379
- from: string;
380
- text: string;
381
- timestamp: string;
382
- read: boolean;
383
- summary?: string;
384
- }
385
- export interface UltraplanResult {
386
- id: string;
387
- status: 'running' | 'completed' | 'error' | 'timeout';
388
- plan?: string;
389
- sessionName: string;
390
- startTime: string;
391
- endTime?: string;
392
- error?: string;
393
- }
394
- export interface UltrareviewResult {
395
- id: string;
396
- status: 'running' | 'completed' | 'error';
397
- councilId: string;
398
- findings?: string;
399
- agentCount: number;
400
- startTime: string;
401
- endTime?: string;
402
- error?: string;
403
- }
404
- type CouncilEventType = 'session-start' | 'round-start' | 'agent-start' | 'agent-chunk' | 'agent-tool' | 'agent-complete' | 'round-end' | 'complete' | 'error';
405
- export interface CouncilEvent {
406
- type: CouncilEventType;
407
- sessionId: string;
408
- timestamp: string;
409
- round?: number;
410
- agent?: string;
411
- content?: string;
412
- consensus?: boolean;
413
- status?: string;
414
- task?: string;
415
- error?: string;
416
- tool?: string;
417
- toolInput?: string;
418
- toolStatus?: 'start' | 'end';
419
- }
420
- export interface AgentPersona {
421
- name: string;
422
- emoji: string;
423
- persona: string;
424
- engine?: EngineType;
425
- role?: string;
426
- model?: string;
427
- baseUrl?: string;
428
- permissionMode?: PermissionMode;
429
- customEngine?: CustomEngineConfig;
430
- }
431
- export interface CouncilConfig {
432
- name?: string;
433
- agents: AgentPersona[];
434
- maxRounds: number;
435
- projectDir: string;
436
- agentTimeoutMs?: number;
437
- maxTurnsPerAgent?: number;
438
- maxBudgetUsd?: number;
439
- defaultPermissionMode?: PermissionMode;
440
- }
441
- export interface AgentResponse {
442
- agent: string;
443
- round: number;
444
- content: string;
445
- consensus: boolean;
446
- sessionKey: string;
447
- timestamp: string;
448
- }
449
- export interface CouncilSession {
450
- id: string;
451
- task: string;
452
- config: CouncilConfig;
453
- responses: AgentResponse[];
454
- status: 'running' | 'consensus' | 'awaiting_user' | 'max_rounds' | 'error' | 'accepted' | 'rejected';
455
- startTime: string;
456
- endTime?: string;
457
- finalSummary?: string;
458
- compactContext?: string;
459
- }
460
- type CouncilFileStatus = 'clean' | 'needs_rework' | 'redundant' | 'missing';
461
- export interface CouncilChangedFile {
462
- file: string;
463
- status: CouncilFileStatus;
464
- insertions: number;
465
- deletions: number;
466
- note?: string;
467
- }
468
- export interface CouncilReviewResult {
469
- councilId: string;
470
- projectDir: string;
471
- status: 'consensus' | 'max_rounds' | 'error';
472
- rounds: number;
473
- planExists: boolean;
474
- planContent?: string;
475
- changedFiles: CouncilChangedFile[];
476
- branches: string[];
477
- worktrees: string[];
478
- reviews: string[];
479
- agentSummaries: Array<{
480
- agent: string;
481
- consensus: boolean;
482
- preview: string;
483
- }>;
484
- /** Reviewer guidance loaded from configs/council-reviewer-prompt.md */
485
- reviewerGuidance: string;
486
- }
487
- export interface CouncilAcceptResult {
488
- councilId: string;
489
- branchesDeleted: string[];
490
- worktreesRemoved: string[];
491
- planDeleted: boolean;
492
- reviewsDeleted: boolean;
493
- }
494
- export interface CouncilRejectResult {
495
- councilId: string;
496
- planRewritten: boolean;
497
- feedback: string;
498
- }
@@ -1,31 +0,0 @@
1
- /**
2
- * Shared validation utilities for input sanitization.
3
- *
4
- * Used by both the plugin tool handlers (index.ts) and the embedded HTTP
5
- * server (embedded-server.ts) to ensure consistent protection regardless
6
- * of entry point.
7
- */
8
- /**
9
- * Resolve and validate a working directory path.
10
- *
11
- * Prevents path traversal and blocks access to system-critical and
12
- * sensitive directories. Resolves symlinks where possible to defeat
13
- * symlink-based bypasses.
14
- */
15
- export declare function sanitizeCwd(cwd: string | undefined): string | undefined;
16
- /**
17
- * Validate that a string is a syntactically valid regular expression.
18
- *
19
- * Returns the compiled RegExp if valid, throws on invalid syntax.
20
- * Note: this validates syntax only — it does not detect catastrophic
21
- * backtracking (ReDoS) patterns.
22
- */
23
- export declare function validateRegex(pattern: string): RegExp;
24
- /**
25
- * Validate a resource name (agent, skill, rule) to prevent path injection.
26
- *
27
- * Only allows alphanumeric characters, hyphens, and underscores.
28
- * Rejects empty strings, dots, slashes, spaces, and any other characters
29
- * that could be used for path traversal.
30
- */
31
- export declare function validateName(name: string): string;