bioscode 0.1.5

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 (142) hide show
  1. package/LICENSE +306 -0
  2. package/NOTICE +45 -0
  3. package/README.md +277 -0
  4. package/dist/auth/index.d.ts +202 -0
  5. package/dist/brand/index.d.ts +7 -0
  6. package/dist/brand/loader.d.ts +463 -0
  7. package/dist/brand/rules.d.ts +25 -0
  8. package/dist/brand/schema.d.ts +246 -0
  9. package/dist/bus/bus-event.d.ts +10 -0
  10. package/dist/bus/global.d.ts +7 -0
  11. package/dist/bus/index.d.ts +26 -0
  12. package/dist/cli/auth.d.ts +23 -0
  13. package/dist/cli/brand.d.ts +6 -0
  14. package/dist/cli/index.d.ts +1 -0
  15. package/dist/cli/ui.d.ts +26 -0
  16. package/dist/command/index.d.ts +54 -0
  17. package/dist/config/config.d.ts +6036 -0
  18. package/dist/config/index.d.ts +2 -0
  19. package/dist/config/markdown.d.ts +415 -0
  20. package/dist/constants/index.d.ts +6 -0
  21. package/dist/constants/version.d.ts +5 -0
  22. package/dist/diff/engine.d.ts +15 -0
  23. package/dist/diff/index.d.ts +8 -0
  24. package/dist/diff/types.d.ts +66 -0
  25. package/dist/file/ignore.d.ts +7 -0
  26. package/dist/flag/index.d.ts +19 -0
  27. package/dist/gateway/bridge.d.ts +11 -0
  28. package/dist/gateway/handlers/llm.d.ts +7 -0
  29. package/dist/gateway/handlers/permission.d.ts +15 -0
  30. package/dist/gateway/handlers/session.d.ts +7 -0
  31. package/dist/gateway/handlers/system.d.ts +7 -0
  32. package/dist/gateway/handlers/tool.d.ts +7 -0
  33. package/dist/gateway/index.d.ts +18 -0
  34. package/dist/gateway/protocol.d.ts +159 -0
  35. package/dist/gateway/router.d.ts +7 -0
  36. package/dist/gateway/server.d.ts +24 -0
  37. package/dist/global/index.d.ts +23 -0
  38. package/dist/index.d.ts +2 -0
  39. package/dist/index.js +34 -0
  40. package/dist/permission/index.d.ts +2 -0
  41. package/dist/permission/permission.d.ts +172 -0
  42. package/dist/permission/types.d.ts +109 -0
  43. package/dist/project/index.d.ts +3 -0
  44. package/dist/project/instance.d.ts +33 -0
  45. package/dist/project/project.d.ts +82 -0
  46. package/dist/project/state.d.ts +4 -0
  47. package/dist/prompt/index.d.ts +5 -0
  48. package/dist/prompt/system.d.ts +29 -0
  49. package/dist/prompt/template.d.ts +24 -0
  50. package/dist/provider/index.d.ts +3 -0
  51. package/dist/provider/models.d.ts +14 -0
  52. package/dist/provider/provider.d.ts +848 -0
  53. package/dist/provider/types.d.ts +328 -0
  54. package/dist/server/index.d.ts +21 -0
  55. package/dist/server/routes/api.d.ts +2 -0
  56. package/dist/server/routes/auth.d.ts +2 -0
  57. package/dist/server/routes/events.d.ts +2 -0
  58. package/dist/server/routes/health.d.ts +2 -0
  59. package/dist/server/routes/sessions.d.ts +2 -0
  60. package/dist/server/services/agent.d.ts +40 -0
  61. package/dist/server/services/permission.d.ts +43 -0
  62. package/dist/server/sse/emitter.d.ts +57 -0
  63. package/dist/session/context-cache.d.ts +75 -0
  64. package/dist/session/context-optimization.d.ts +165 -0
  65. package/dist/session/index.d.ts +5 -0
  66. package/dist/session/llm.d.ts +68 -0
  67. package/dist/session/message-optimizer.d.ts +32 -0
  68. package/dist/session/session.d.ts +524 -0
  69. package/dist/session/title-generator.d.ts +11 -0
  70. package/dist/session/types.d.ts +713 -0
  71. package/dist/snapshot/index.d.ts +40 -0
  72. package/dist/storage/index.d.ts +1 -0
  73. package/dist/storage/storage.d.ts +34 -0
  74. package/dist/theme.d.ts +64 -0
  75. package/dist/tool/bash.d.ts +19 -0
  76. package/dist/tool/edit.d.ts +21 -0
  77. package/dist/tool/glob.d.ts +15 -0
  78. package/dist/tool/grep.d.ts +20 -0
  79. package/dist/tool/image.d.ts +22 -0
  80. package/dist/tool/index.d.ts +11 -0
  81. package/dist/tool/ls.d.ts +14 -0
  82. package/dist/tool/read.d.ts +17 -0
  83. package/dist/tool/registry.d.ts +30 -0
  84. package/dist/tool/think.d.ts +11 -0
  85. package/dist/tool/todo.d.ts +76 -0
  86. package/dist/tool/tool.d.ts +65 -0
  87. package/dist/tool/webfetch.d.ts +15 -0
  88. package/dist/tool/write.d.ts +16 -0
  89. package/dist/tui/App.d.ts +10 -0
  90. package/dist/tui/components/Header.d.ts +13 -0
  91. package/dist/tui/components/LoadingIndicator.d.ts +26 -0
  92. package/dist/tui/components/Message/AssistantMessage.d.ts +11 -0
  93. package/dist/tui/components/Message/ReasoningMessage.d.ts +21 -0
  94. package/dist/tui/components/Message/ToolCallMessage.d.ts +26 -0
  95. package/dist/tui/components/Message/UserMessage.d.ts +12 -0
  96. package/dist/tui/components/Message/index.d.ts +16 -0
  97. package/dist/tui/components/PermissionPrompt.d.ts +6 -0
  98. package/dist/tui/components/PromptInput.d.ts +33 -0
  99. package/dist/tui/components/REPL.d.ts +22 -0
  100. package/dist/tui/components/Spinner.d.ts +13 -0
  101. package/dist/tui/components/StatusBar.d.ts +13 -0
  102. package/dist/tui/components/TodoList.d.ts +17 -0
  103. package/dist/tui/components/WelcomeBox.d.ts +13 -0
  104. package/dist/tui/components/dialogs/DiagnosticsPanel.d.ts +12 -0
  105. package/dist/tui/components/dialogs/HelpPanel.d.ts +11 -0
  106. package/dist/tui/components/dialogs/ModelSelector.d.ts +14 -0
  107. package/dist/tui/components/dialogs/PermissionPrompt.d.ts +17 -0
  108. package/dist/tui/components/dialogs/SessionPicker.d.ts +20 -0
  109. package/dist/tui/components/dialogs/index.d.ts +10 -0
  110. package/dist/tui/components/diff/DiffHunk.d.ts +12 -0
  111. package/dist/tui/components/diff/DiffLine.d.ts +14 -0
  112. package/dist/tui/components/diff/DiffStats.d.ts +12 -0
  113. package/dist/tui/components/diff/DiffView.d.ts +15 -0
  114. package/dist/tui/components/diff/index.d.ts +9 -0
  115. package/dist/tui/hooks/useAnimatedLabel.d.ts +12 -0
  116. package/dist/tui/hooks/usePermission.d.ts +34 -0
  117. package/dist/tui/hooks/useTermWidth.d.ts +13 -0
  118. package/dist/tui/index.d.ts +20 -0
  119. package/dist/tui/theme.d.ts +8 -0
  120. package/dist/tui/utils/Cursor.d.ts +37 -0
  121. package/dist/tui/utils/clipboard.d.ts +3 -0
  122. package/dist/tui/utils/keypress.d.ts +39 -0
  123. package/dist/tui/utils/markdown.d.ts +13 -0
  124. package/dist/tui/utils/openContent.d.ts +22 -0
  125. package/dist/util/ascii.d.ts +22 -0
  126. package/dist/util/bell.d.ts +14 -0
  127. package/dist/util/color.d.ts +28 -0
  128. package/dist/util/context.d.ts +10 -0
  129. package/dist/util/debug.d.ts +51 -0
  130. package/dist/util/error.d.ts +294 -0
  131. package/dist/util/example-commands.d.ts +18 -0
  132. package/dist/util/filesystem.d.ts +17 -0
  133. package/dist/util/id.d.ts +24 -0
  134. package/dist/util/iife.d.ts +1 -0
  135. package/dist/util/index.d.ts +7 -0
  136. package/dist/util/lazy.d.ts +1 -0
  137. package/dist/util/log.d.ts +26 -0
  138. package/dist/util/paths.d.ts +45 -0
  139. package/dist/util/shell.d.ts +36 -0
  140. package/dist/util/timeout.d.ts +1 -0
  141. package/dist/util/wildcard.d.ts +8 -0
  142. package/package.json +87 -0
@@ -0,0 +1,328 @@
1
+ import z from "zod";
2
+ /**
3
+ * Model capabilities and configuration types
4
+ */
5
+ export declare const ModelCapabilities: z.ZodObject<{
6
+ temperature: z.ZodDefault<z.ZodBoolean>;
7
+ reasoning: z.ZodDefault<z.ZodBoolean>;
8
+ vision: z.ZodDefault<z.ZodBoolean>;
9
+ toolUse: z.ZodDefault<z.ZodBoolean>;
10
+ streaming: z.ZodDefault<z.ZodBoolean>;
11
+ }, "strip", z.ZodTypeAny, {
12
+ temperature: boolean;
13
+ reasoning: boolean;
14
+ vision: boolean;
15
+ toolUse: boolean;
16
+ streaming: boolean;
17
+ }, {
18
+ temperature?: boolean | undefined;
19
+ reasoning?: boolean | undefined;
20
+ vision?: boolean | undefined;
21
+ toolUse?: boolean | undefined;
22
+ streaming?: boolean | undefined;
23
+ }>;
24
+ export type ModelCapabilities = z.infer<typeof ModelCapabilities>;
25
+ export declare const ModelCost: z.ZodObject<{
26
+ input: z.ZodNumber;
27
+ output: z.ZodNumber;
28
+ cacheRead: z.ZodOptional<z.ZodNumber>;
29
+ cacheWrite: z.ZodOptional<z.ZodNumber>;
30
+ }, "strip", z.ZodTypeAny, {
31
+ input: number;
32
+ output: number;
33
+ cacheRead?: number | undefined;
34
+ cacheWrite?: number | undefined;
35
+ }, {
36
+ input: number;
37
+ output: number;
38
+ cacheRead?: number | undefined;
39
+ cacheWrite?: number | undefined;
40
+ }>;
41
+ export type ModelCost = z.infer<typeof ModelCost>;
42
+ export declare const ModelLimits: z.ZodObject<{
43
+ context: z.ZodNumber;
44
+ output: z.ZodNumber;
45
+ }, "strip", z.ZodTypeAny, {
46
+ output: number;
47
+ context: number;
48
+ }, {
49
+ output: number;
50
+ context: number;
51
+ }>;
52
+ export type ModelLimits = z.infer<typeof ModelLimits>;
53
+ export declare const ModelInfo: z.ZodObject<{
54
+ id: z.ZodString;
55
+ name: z.ZodString;
56
+ provider: z.ZodString;
57
+ family: z.ZodOptional<z.ZodString>;
58
+ capabilities: z.ZodObject<{
59
+ temperature: z.ZodDefault<z.ZodBoolean>;
60
+ reasoning: z.ZodDefault<z.ZodBoolean>;
61
+ vision: z.ZodDefault<z.ZodBoolean>;
62
+ toolUse: z.ZodDefault<z.ZodBoolean>;
63
+ streaming: z.ZodDefault<z.ZodBoolean>;
64
+ }, "strip", z.ZodTypeAny, {
65
+ temperature: boolean;
66
+ reasoning: boolean;
67
+ vision: boolean;
68
+ toolUse: boolean;
69
+ streaming: boolean;
70
+ }, {
71
+ temperature?: boolean | undefined;
72
+ reasoning?: boolean | undefined;
73
+ vision?: boolean | undefined;
74
+ toolUse?: boolean | undefined;
75
+ streaming?: boolean | undefined;
76
+ }>;
77
+ cost: z.ZodObject<{
78
+ input: z.ZodNumber;
79
+ output: z.ZodNumber;
80
+ cacheRead: z.ZodOptional<z.ZodNumber>;
81
+ cacheWrite: z.ZodOptional<z.ZodNumber>;
82
+ }, "strip", z.ZodTypeAny, {
83
+ input: number;
84
+ output: number;
85
+ cacheRead?: number | undefined;
86
+ cacheWrite?: number | undefined;
87
+ }, {
88
+ input: number;
89
+ output: number;
90
+ cacheRead?: number | undefined;
91
+ cacheWrite?: number | undefined;
92
+ }>;
93
+ limits: z.ZodObject<{
94
+ context: z.ZodNumber;
95
+ output: z.ZodNumber;
96
+ }, "strip", z.ZodTypeAny, {
97
+ output: number;
98
+ context: number;
99
+ }, {
100
+ output: number;
101
+ context: number;
102
+ }>;
103
+ status: z.ZodDefault<z.ZodEnum<["active", "beta", "deprecated"]>>;
104
+ }, "strip", z.ZodTypeAny, {
105
+ status: "active" | "beta" | "deprecated";
106
+ id: string;
107
+ name: string;
108
+ provider: string;
109
+ capabilities: {
110
+ temperature: boolean;
111
+ reasoning: boolean;
112
+ vision: boolean;
113
+ toolUse: boolean;
114
+ streaming: boolean;
115
+ };
116
+ cost: {
117
+ input: number;
118
+ output: number;
119
+ cacheRead?: number | undefined;
120
+ cacheWrite?: number | undefined;
121
+ };
122
+ limits: {
123
+ output: number;
124
+ context: number;
125
+ };
126
+ family?: string | undefined;
127
+ }, {
128
+ id: string;
129
+ name: string;
130
+ provider: string;
131
+ capabilities: {
132
+ temperature?: boolean | undefined;
133
+ reasoning?: boolean | undefined;
134
+ vision?: boolean | undefined;
135
+ toolUse?: boolean | undefined;
136
+ streaming?: boolean | undefined;
137
+ };
138
+ cost: {
139
+ input: number;
140
+ output: number;
141
+ cacheRead?: number | undefined;
142
+ cacheWrite?: number | undefined;
143
+ };
144
+ limits: {
145
+ output: number;
146
+ context: number;
147
+ };
148
+ status?: "active" | "beta" | "deprecated" | undefined;
149
+ family?: string | undefined;
150
+ }>;
151
+ export type ModelInfo = z.infer<typeof ModelInfo>;
152
+ export declare const ProviderInfo: z.ZodObject<{
153
+ id: z.ZodString;
154
+ name: z.ZodString;
155
+ envKeys: z.ZodArray<z.ZodString, "many">;
156
+ models: z.ZodRecord<z.ZodString, z.ZodObject<{
157
+ id: z.ZodString;
158
+ name: z.ZodString;
159
+ provider: z.ZodString;
160
+ family: z.ZodOptional<z.ZodString>;
161
+ capabilities: z.ZodObject<{
162
+ temperature: z.ZodDefault<z.ZodBoolean>;
163
+ reasoning: z.ZodDefault<z.ZodBoolean>;
164
+ vision: z.ZodDefault<z.ZodBoolean>;
165
+ toolUse: z.ZodDefault<z.ZodBoolean>;
166
+ streaming: z.ZodDefault<z.ZodBoolean>;
167
+ }, "strip", z.ZodTypeAny, {
168
+ temperature: boolean;
169
+ reasoning: boolean;
170
+ vision: boolean;
171
+ toolUse: boolean;
172
+ streaming: boolean;
173
+ }, {
174
+ temperature?: boolean | undefined;
175
+ reasoning?: boolean | undefined;
176
+ vision?: boolean | undefined;
177
+ toolUse?: boolean | undefined;
178
+ streaming?: boolean | undefined;
179
+ }>;
180
+ cost: z.ZodObject<{
181
+ input: z.ZodNumber;
182
+ output: z.ZodNumber;
183
+ cacheRead: z.ZodOptional<z.ZodNumber>;
184
+ cacheWrite: z.ZodOptional<z.ZodNumber>;
185
+ }, "strip", z.ZodTypeAny, {
186
+ input: number;
187
+ output: number;
188
+ cacheRead?: number | undefined;
189
+ cacheWrite?: number | undefined;
190
+ }, {
191
+ input: number;
192
+ output: number;
193
+ cacheRead?: number | undefined;
194
+ cacheWrite?: number | undefined;
195
+ }>;
196
+ limits: z.ZodObject<{
197
+ context: z.ZodNumber;
198
+ output: z.ZodNumber;
199
+ }, "strip", z.ZodTypeAny, {
200
+ output: number;
201
+ context: number;
202
+ }, {
203
+ output: number;
204
+ context: number;
205
+ }>;
206
+ status: z.ZodDefault<z.ZodEnum<["active", "beta", "deprecated"]>>;
207
+ }, "strip", z.ZodTypeAny, {
208
+ status: "active" | "beta" | "deprecated";
209
+ id: string;
210
+ name: string;
211
+ provider: string;
212
+ capabilities: {
213
+ temperature: boolean;
214
+ reasoning: boolean;
215
+ vision: boolean;
216
+ toolUse: boolean;
217
+ streaming: boolean;
218
+ };
219
+ cost: {
220
+ input: number;
221
+ output: number;
222
+ cacheRead?: number | undefined;
223
+ cacheWrite?: number | undefined;
224
+ };
225
+ limits: {
226
+ output: number;
227
+ context: number;
228
+ };
229
+ family?: string | undefined;
230
+ }, {
231
+ id: string;
232
+ name: string;
233
+ provider: string;
234
+ capabilities: {
235
+ temperature?: boolean | undefined;
236
+ reasoning?: boolean | undefined;
237
+ vision?: boolean | undefined;
238
+ toolUse?: boolean | undefined;
239
+ streaming?: boolean | undefined;
240
+ };
241
+ cost: {
242
+ input: number;
243
+ output: number;
244
+ cacheRead?: number | undefined;
245
+ cacheWrite?: number | undefined;
246
+ };
247
+ limits: {
248
+ output: number;
249
+ context: number;
250
+ };
251
+ status?: "active" | "beta" | "deprecated" | undefined;
252
+ family?: string | undefined;
253
+ }>>;
254
+ }, "strip", z.ZodTypeAny, {
255
+ id: string;
256
+ name: string;
257
+ envKeys: string[];
258
+ models: Record<string, {
259
+ status: "active" | "beta" | "deprecated";
260
+ id: string;
261
+ name: string;
262
+ provider: string;
263
+ capabilities: {
264
+ temperature: boolean;
265
+ reasoning: boolean;
266
+ vision: boolean;
267
+ toolUse: boolean;
268
+ streaming: boolean;
269
+ };
270
+ cost: {
271
+ input: number;
272
+ output: number;
273
+ cacheRead?: number | undefined;
274
+ cacheWrite?: number | undefined;
275
+ };
276
+ limits: {
277
+ output: number;
278
+ context: number;
279
+ };
280
+ family?: string | undefined;
281
+ }>;
282
+ }, {
283
+ id: string;
284
+ name: string;
285
+ envKeys: string[];
286
+ models: Record<string, {
287
+ id: string;
288
+ name: string;
289
+ provider: string;
290
+ capabilities: {
291
+ temperature?: boolean | undefined;
292
+ reasoning?: boolean | undefined;
293
+ vision?: boolean | undefined;
294
+ toolUse?: boolean | undefined;
295
+ streaming?: boolean | undefined;
296
+ };
297
+ cost: {
298
+ input: number;
299
+ output: number;
300
+ cacheRead?: number | undefined;
301
+ cacheWrite?: number | undefined;
302
+ };
303
+ limits: {
304
+ output: number;
305
+ context: number;
306
+ };
307
+ status?: "active" | "beta" | "deprecated" | undefined;
308
+ family?: string | undefined;
309
+ }>;
310
+ }>;
311
+ export type ProviderInfo = z.infer<typeof ProviderInfo>;
312
+ /**
313
+ * Provider configuration from user config
314
+ */
315
+ export declare const ProviderConfig: z.ZodObject<{
316
+ apiKey: z.ZodOptional<z.ZodString>;
317
+ baseUrl: z.ZodOptional<z.ZodString>;
318
+ options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
319
+ }, "strip", z.ZodTypeAny, {
320
+ options?: Record<string, any> | undefined;
321
+ apiKey?: string | undefined;
322
+ baseUrl?: string | undefined;
323
+ }, {
324
+ options?: Record<string, any> | undefined;
325
+ apiKey?: string | undefined;
326
+ baseUrl?: string | undefined;
327
+ }>;
328
+ export type ProviderConfig = z.infer<typeof ProviderConfig>;
@@ -0,0 +1,21 @@
1
+ export interface ServerInfo {
2
+ port: number;
3
+ projectDir: string;
4
+ startedAt: number;
5
+ }
6
+ /**
7
+ * Start the HTTP server
8
+ */
9
+ export declare function startServer(port?: number): Promise<ServerInfo>;
10
+ /**
11
+ * Stop the HTTP server
12
+ */
13
+ export declare function stopServer(): void;
14
+ /**
15
+ * Get current server info
16
+ */
17
+ export declare function getServerInfo(): ServerInfo | null;
18
+ /**
19
+ * Get the SSE emitter for broadcasting events
20
+ */
21
+ export { SSEEmitter } from "./sse/emitter";
@@ -0,0 +1,2 @@
1
+ import { Hono } from "hono";
2
+ export declare const apiRoutes: Hono<import("hono/types").BlankEnv, import("hono/types").BlankSchema, "/">;
@@ -0,0 +1,2 @@
1
+ import { Hono } from "hono";
2
+ export declare const authRoutes: Hono<import("hono/types").BlankEnv, import("hono/types").BlankSchema, "/">;
@@ -0,0 +1,2 @@
1
+ import { Hono } from "hono";
2
+ export declare const eventsRoutes: Hono<import("hono/types").BlankEnv, import("hono/types").BlankSchema, "/">;
@@ -0,0 +1,2 @@
1
+ import { Hono } from "hono";
2
+ export declare const healthRoutes: Hono<import("hono/types").BlankEnv, import("hono/types").BlankSchema, "/">;
@@ -0,0 +1,2 @@
1
+ import { Hono } from "hono";
2
+ export declare const sessionsRoutes: Hono<import("hono/types").BlankEnv, import("hono/types").BlankSchema, "/">;
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Agent Service
3
+ *
4
+ * Handles LLM invocation and streaming for the HTTP API.
5
+ * Extracted from TUI REPL for reuse.
6
+ */
7
+ export type AgentMode = "ask" | "auto" | "plan";
8
+ export declare namespace AgentService {
9
+ interface ImageAttachment {
10
+ data: string;
11
+ mimeType: "image/png" | "image/jpeg" | "image/gif" | "image/webp";
12
+ filename?: string;
13
+ }
14
+ interface RunOptions {
15
+ sessionId: string;
16
+ content: string;
17
+ requestId: string;
18
+ images?: ImageAttachment[];
19
+ mode?: AgentMode;
20
+ }
21
+ /**
22
+ * Run the agent for a prompt
23
+ */
24
+ function run(options: RunOptions): Promise<void>;
25
+ /**
26
+ * Cancel an active generation
27
+ */
28
+ function cancel(sessionId: string): boolean;
29
+ /**
30
+ * Optimize context for a session by generating a summary
31
+ */
32
+ function optimizeContext(options: {
33
+ sessionId: string;
34
+ requestId: string;
35
+ }): Promise<void>;
36
+ /**
37
+ * Cancel an active context optimization
38
+ */
39
+ function cancelOptimization(sessionId: string): boolean;
40
+ }
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Permission Service
3
+ *
4
+ * Manages permission requests for tool execution in "ask" mode.
5
+ * Tools wait for user approval before executing.
6
+ */
7
+ export type PermissionResponse = "allow" | "allow_always" | "deny" | "deny_with_message";
8
+ export interface PermissionRequest {
9
+ id: string;
10
+ sessionId: string;
11
+ requestId: string;
12
+ toolName: string;
13
+ toolCallId: string;
14
+ args: Record<string, unknown>;
15
+ description?: string;
16
+ createdAt: number;
17
+ }
18
+ export declare namespace PermissionService {
19
+ /**
20
+ * Request permission for a tool execution
21
+ * Returns a promise that resolves when the user responds
22
+ */
23
+ function request(sessionId: string, requestId: string, toolName: string, toolCallId: string, args: Record<string, unknown>, description?: string): Promise<{
24
+ allowed: boolean;
25
+ message?: string;
26
+ }>;
27
+ /**
28
+ * Respond to a pending permission request
29
+ */
30
+ function respond(permissionId: string, response: PermissionResponse, message?: string): boolean;
31
+ /**
32
+ * Cancel a pending permission request
33
+ */
34
+ function cancel(permissionId: string): boolean;
35
+ /**
36
+ * Cancel all pending permissions for a session
37
+ */
38
+ function cancelSession(sessionId: string): number;
39
+ /**
40
+ * Get all pending permissions for a session
41
+ */
42
+ function getPending(sessionId: string): PermissionRequest[];
43
+ }
@@ -0,0 +1,57 @@
1
+ export interface SSEClient {
2
+ id: string;
3
+ controller: ReadableStreamDefaultController<Uint8Array>;
4
+ connectedAt: number;
5
+ }
6
+ export interface SSEEvent {
7
+ type: string;
8
+ data: unknown;
9
+ id?: string;
10
+ }
11
+ declare class SSEEmitterClass {
12
+ private clients;
13
+ private heartbeatInterval;
14
+ private encoder;
15
+ /**
16
+ * Start heartbeat to keep connections alive
17
+ */
18
+ startHeartbeat(intervalMs?: number): void;
19
+ /**
20
+ * Stop heartbeat
21
+ */
22
+ stopHeartbeat(): void;
23
+ /**
24
+ * Add a new SSE client
25
+ */
26
+ addClient(id: string, controller: ReadableStreamDefaultController<Uint8Array>): void;
27
+ /**
28
+ * Remove an SSE client
29
+ */
30
+ removeClient(id: string): void;
31
+ /**
32
+ * Send event to a specific client
33
+ */
34
+ sendToClient(clientId: string, event: SSEEvent): void;
35
+ /**
36
+ * Broadcast event to all connected clients
37
+ */
38
+ broadcast(event: SSEEvent): void;
39
+ /**
40
+ * Format event for SSE protocol
41
+ */
42
+ private formatSSE;
43
+ /**
44
+ * Get connected client count
45
+ */
46
+ get clientCount(): number;
47
+ /**
48
+ * Get all client IDs
49
+ */
50
+ getClientIds(): string[];
51
+ /**
52
+ * Reset emitter state (for testing)
53
+ */
54
+ reset(): void;
55
+ }
56
+ export declare const SSEEmitter: SSEEmitterClass;
57
+ export {};
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Context Memoization Cache
3
+ *
4
+ * Caches frequently-accessed context information to reduce redundant tool calls:
5
+ * - Git status
6
+ * - README contents
7
+ * - Directory structure
8
+ *
9
+ * Cache is cleared when:
10
+ * - /optimize command is executed
11
+ * - Session is restarted
12
+ * - Manual invalidation
13
+ */
14
+ export interface CachedContext {
15
+ gitStatus?: {
16
+ output: string;
17
+ timestamp: number;
18
+ };
19
+ readme?: {
20
+ content: string;
21
+ path: string;
22
+ timestamp: number;
23
+ };
24
+ dirStructure?: {
25
+ output: string;
26
+ depth: number;
27
+ timestamp: number;
28
+ };
29
+ }
30
+ /**
31
+ * Context Cache - Memoizes expensive context operations
32
+ */
33
+ export declare class ContextCache {
34
+ private static cache;
35
+ private static sessionCaches;
36
+ /**
37
+ * Get cached value for a session
38
+ */
39
+ static get<T>(sessionId: string, key: string): T | undefined;
40
+ /**
41
+ * Set cached value for a session
42
+ */
43
+ static set<T>(sessionId: string, key: string, value: T): void;
44
+ /**
45
+ * Check if key exists in cache
46
+ */
47
+ static has(sessionId: string, key: string): boolean;
48
+ /**
49
+ * Clear cache for specific session
50
+ */
51
+ static clearSession(sessionId: string): void;
52
+ /**
53
+ * Clear specific key for session
54
+ */
55
+ static clearKey(sessionId: string, key: string): void;
56
+ /**
57
+ * Clear all caches
58
+ */
59
+ static clearAll(): void;
60
+ /**
61
+ * Get cache statistics
62
+ */
63
+ static stats(): {
64
+ sessions: number;
65
+ totalEntries: number;
66
+ };
67
+ }
68
+ /**
69
+ * Cache keys for common context operations
70
+ */
71
+ export declare const CacheKeys: {
72
+ readonly GIT_STATUS: "git:status";
73
+ readonly README: "readme:content";
74
+ readonly DIR_STRUCTURE: "dir:structure";
75
+ };