@roackb2/heddle 0.0.27 → 0.0.29

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/README.md +65 -11
  2. package/dist/examples/programmatic-loop.js +12 -0
  3. package/dist/examples/programmatic-loop.js.map +1 -1
  4. package/dist/src/cli/ask.d.ts +2 -0
  5. package/dist/src/cli/ask.d.ts.map +1 -1
  6. package/dist/src/cli/ask.js +107 -5
  7. package/dist/src/cli/ask.js.map +1 -1
  8. package/dist/src/cli/chat/App.d.ts.map +1 -1
  9. package/dist/src/cli/chat/App.js +16 -4
  10. package/dist/src/cli/chat/App.js.map +1 -1
  11. package/dist/src/cli/chat/components/RuntimeHostInterstitial.d.ts +7 -0
  12. package/dist/src/cli/chat/components/RuntimeHostInterstitial.d.ts.map +1 -0
  13. package/dist/src/cli/chat/components/RuntimeHostInterstitial.js +22 -0
  14. package/dist/src/cli/chat/components/RuntimeHostInterstitial.js.map +1 -0
  15. package/dist/src/cli/chat/components/index.d.ts +1 -0
  16. package/dist/src/cli/chat/components/index.d.ts.map +1 -1
  17. package/dist/src/cli/chat/components/index.js +1 -0
  18. package/dist/src/cli/chat/components/index.js.map +1 -1
  19. package/dist/src/cli/chat/hooks/useAgentRun.d.ts +1 -0
  20. package/dist/src/cli/chat/hooks/useAgentRun.d.ts.map +1 -1
  21. package/dist/src/cli/chat/hooks/useAgentRun.js +118 -1
  22. package/dist/src/cli/chat/hooks/useAgentRun.js.map +1 -1
  23. package/dist/src/cli/chat/hooks/useApprovalFlow.d.ts +1 -0
  24. package/dist/src/cli/chat/hooks/useApprovalFlow.d.ts.map +1 -1
  25. package/dist/src/cli/chat/hooks/useApprovalFlow.js +3 -0
  26. package/dist/src/cli/chat/hooks/useApprovalFlow.js.map +1 -1
  27. package/dist/src/cli/chat/hooks/useChatSessions.d.ts +3 -1
  28. package/dist/src/cli/chat/hooks/useChatSessions.d.ts.map +1 -1
  29. package/dist/src/cli/chat/hooks/useChatSessions.js +7 -2
  30. package/dist/src/cli/chat/hooks/useChatSessions.js.map +1 -1
  31. package/dist/src/cli/chat/utils/format.d.ts.map +1 -1
  32. package/dist/src/cli/chat/utils/format.js +8 -0
  33. package/dist/src/cli/chat/utils/format.js.map +1 -1
  34. package/dist/src/cli/chat/utils/runtime.d.ts +3 -0
  35. package/dist/src/cli/chat/utils/runtime.d.ts.map +1 -1
  36. package/dist/src/cli/chat/utils/runtime.js +8 -3
  37. package/dist/src/cli/chat/utils/runtime.js.map +1 -1
  38. package/dist/src/cli/daemon.d.ts +1 -0
  39. package/dist/src/cli/daemon.d.ts.map +1 -1
  40. package/dist/src/cli/daemon.js +6 -1
  41. package/dist/src/cli/daemon.js.map +1 -1
  42. package/dist/src/cli/heartbeat/task-commands.d.ts.map +1 -1
  43. package/dist/src/cli/heartbeat/task-commands.js +10 -1
  44. package/dist/src/cli/heartbeat/task-commands.js.map +1 -1
  45. package/dist/src/cli/heartbeat/worker.d.ts.map +1 -1
  46. package/dist/src/cli/heartbeat/worker.js +9 -1
  47. package/dist/src/cli/heartbeat/worker.js.map +1 -1
  48. package/dist/src/cli/main.js +304 -7
  49. package/dist/src/cli/main.js.map +1 -1
  50. package/dist/src/cli/remote/control-plane-client.d.ts +290 -0
  51. package/dist/src/cli/remote/control-plane-client.d.ts.map +1 -0
  52. package/dist/src/cli/remote/control-plane-client.js +11 -0
  53. package/dist/src/cli/remote/control-plane-client.js.map +1 -0
  54. package/dist/src/core/agent/mutation-tracking.d.ts.map +1 -1
  55. package/dist/src/core/agent/mutation-tracking.js +3 -0
  56. package/dist/src/core/agent/mutation-tracking.js.map +1 -1
  57. package/dist/src/core/agent/post-mutation.js +2 -2
  58. package/dist/src/core/agent/post-mutation.js.map +1 -1
  59. package/dist/src/core/agent/run-agent.d.ts.map +1 -1
  60. package/dist/src/core/agent/run-agent.js +132 -28
  61. package/dist/src/core/agent/run-agent.js.map +1 -1
  62. package/dist/src/core/chat/conversation-lines.d.ts.map +1 -1
  63. package/dist/src/core/chat/conversation-lines.js +1 -26
  64. package/dist/src/core/chat/conversation-lines.js.map +1 -1
  65. package/dist/src/core/chat/session-lease.d.ts +23 -0
  66. package/dist/src/core/chat/session-lease.d.ts.map +1 -0
  67. package/dist/src/core/chat/session-lease.js +72 -0
  68. package/dist/src/core/chat/session-lease.js.map +1 -0
  69. package/dist/src/core/chat/session-submit.d.ts +5 -0
  70. package/dist/src/core/chat/session-submit.d.ts.map +1 -1
  71. package/dist/src/core/chat/session-submit.js +243 -108
  72. package/dist/src/core/chat/session-submit.js.map +1 -1
  73. package/dist/src/core/chat/storage.d.ts +4 -1
  74. package/dist/src/core/chat/storage.d.ts.map +1 -1
  75. package/dist/src/core/chat/storage.js +31 -0
  76. package/dist/src/core/chat/storage.js.map +1 -1
  77. package/dist/src/core/chat/trace-summary.d.ts.map +1 -1
  78. package/dist/src/core/chat/trace-summary.js +10 -0
  79. package/dist/src/core/chat/trace-summary.js.map +1 -1
  80. package/dist/src/core/chat/types.d.ts +9 -0
  81. package/dist/src/core/chat/types.d.ts.map +1 -1
  82. package/dist/src/core/memory/catalog.d.ts +46 -0
  83. package/dist/src/core/memory/catalog.d.ts.map +1 -0
  84. package/dist/src/core/memory/catalog.js +230 -0
  85. package/dist/src/core/memory/catalog.js.map +1 -0
  86. package/dist/src/core/memory/domain-prompt.d.ts +2 -0
  87. package/dist/src/core/memory/domain-prompt.d.ts.map +1 -0
  88. package/dist/src/core/memory/domain-prompt.js +35 -0
  89. package/dist/src/core/memory/domain-prompt.js.map +1 -0
  90. package/dist/src/core/memory/maintainer-tools.d.ts +5 -0
  91. package/dist/src/core/memory/maintainer-tools.d.ts.map +1 -0
  92. package/dist/src/core/memory/maintainer-tools.js +10 -0
  93. package/dist/src/core/memory/maintainer-tools.js.map +1 -0
  94. package/dist/src/core/memory/maintainer.d.ts +45 -0
  95. package/dist/src/core/memory/maintainer.d.ts.map +1 -0
  96. package/dist/src/core/memory/maintainer.js +204 -0
  97. package/dist/src/core/memory/maintainer.js.map +1 -0
  98. package/dist/src/core/memory/maintenance-integration.d.ts +20 -0
  99. package/dist/src/core/memory/maintenance-integration.d.ts.map +1 -0
  100. package/dist/src/core/memory/maintenance-integration.js +189 -0
  101. package/dist/src/core/memory/maintenance-integration.js.map +1 -0
  102. package/dist/src/core/memory/templates.d.ts +9 -0
  103. package/dist/src/core/memory/templates.d.ts.map +1 -0
  104. package/dist/src/core/memory/templates.js +32 -0
  105. package/dist/src/core/memory/templates.js.map +1 -0
  106. package/dist/src/core/memory/validation.d.ts +39 -0
  107. package/dist/src/core/memory/validation.d.ts.map +1 -0
  108. package/dist/src/core/memory/validation.js +94 -0
  109. package/dist/src/core/memory/validation.js.map +1 -0
  110. package/dist/src/core/memory/visibility.d.ts +42 -0
  111. package/dist/src/core/memory/visibility.d.ts.map +1 -0
  112. package/dist/src/core/memory/visibility.js +156 -0
  113. package/dist/src/core/memory/visibility.js.map +1 -0
  114. package/dist/src/core/prompts/system-prompt.d.ts.map +1 -1
  115. package/dist/src/core/prompts/system-prompt.js +0 -10
  116. package/dist/src/core/prompts/system-prompt.js.map +1 -1
  117. package/dist/src/core/runtime/daemon-registry.d.ts +39 -0
  118. package/dist/src/core/runtime/daemon-registry.d.ts.map +1 -0
  119. package/dist/src/core/runtime/daemon-registry.js +120 -0
  120. package/dist/src/core/runtime/daemon-registry.js.map +1 -0
  121. package/dist/src/core/runtime/default-tools.d.ts +1 -0
  122. package/dist/src/core/runtime/default-tools.d.ts.map +1 -1
  123. package/dist/src/core/runtime/default-tools.js +22 -4
  124. package/dist/src/core/runtime/default-tools.js.map +1 -1
  125. package/dist/src/core/runtime/heartbeat-task-store.d.ts +2 -0
  126. package/dist/src/core/runtime/heartbeat-task-store.d.ts.map +1 -1
  127. package/dist/src/core/runtime/heartbeat-task-store.js +1 -0
  128. package/dist/src/core/runtime/heartbeat-task-store.js.map +1 -1
  129. package/dist/src/core/runtime/heartbeat-views.d.ts +2 -0
  130. package/dist/src/core/runtime/heartbeat-views.d.ts.map +1 -1
  131. package/dist/src/core/runtime/heartbeat-views.js +2 -0
  132. package/dist/src/core/runtime/heartbeat-views.js.map +1 -1
  133. package/dist/src/core/runtime/heartbeat.d.ts.map +1 -1
  134. package/dist/src/core/runtime/heartbeat.js +9 -2
  135. package/dist/src/core/runtime/heartbeat.js.map +1 -1
  136. package/dist/src/core/runtime/runtime-hosts.d.ts +30 -0
  137. package/dist/src/core/runtime/runtime-hosts.d.ts.map +1 -0
  138. package/dist/src/core/runtime/runtime-hosts.js +95 -0
  139. package/dist/src/core/runtime/runtime-hosts.js.map +1 -0
  140. package/dist/src/core/runtime/workspaces.d.ts +48 -0
  141. package/dist/src/core/runtime/workspaces.d.ts.map +1 -0
  142. package/dist/src/core/runtime/workspaces.js +139 -0
  143. package/dist/src/core/runtime/workspaces.js.map +1 -0
  144. package/dist/src/core/tools/file-edit-core.d.ts +1 -0
  145. package/dist/src/core/tools/file-edit-core.d.ts.map +1 -1
  146. package/dist/src/core/tools/file-edit-core.js +10 -0
  147. package/dist/src/core/tools/file-edit-core.js.map +1 -1
  148. package/dist/src/core/tools/memory-checkpoint.d.ts +8 -0
  149. package/dist/src/core/tools/memory-checkpoint.d.ts.map +1 -0
  150. package/dist/src/core/tools/memory-checkpoint.js +131 -0
  151. package/dist/src/core/tools/memory-checkpoint.js.map +1 -0
  152. package/dist/src/core/tools/memory-notes.d.ts.map +1 -1
  153. package/dist/src/core/tools/memory-notes.js +4 -3
  154. package/dist/src/core/tools/memory-notes.js.map +1 -1
  155. package/dist/src/core/tools/record-knowledge.d.ts +9 -0
  156. package/dist/src/core/tools/record-knowledge.d.ts.map +1 -0
  157. package/dist/src/core/tools/record-knowledge.js +177 -0
  158. package/dist/src/core/tools/record-knowledge.js.map +1 -0
  159. package/dist/src/core/types.d.ts +33 -0
  160. package/dist/src/core/types.d.ts.map +1 -1
  161. package/dist/src/index.d.ts +13 -0
  162. package/dist/src/index.d.ts.map +1 -1
  163. package/dist/src/index.js +8 -0
  164. package/dist/src/index.js.map +1 -1
  165. package/dist/src/server/app.d.ts +5 -2
  166. package/dist/src/server/app.d.ts.map +1 -1
  167. package/dist/src/server/app.js +31 -7
  168. package/dist/src/server/app.js.map +1 -1
  169. package/dist/src/server/features/control-plane/router.d.ts +88 -0
  170. package/dist/src/server/features/control-plane/router.d.ts.map +1 -1
  171. package/dist/src/server/features/control-plane/router.js +131 -18
  172. package/dist/src/server/features/control-plane/router.js.map +1 -1
  173. package/dist/src/server/features/control-plane/services/ask.d.ts +17 -0
  174. package/dist/src/server/features/control-plane/services/ask.d.ts.map +1 -0
  175. package/dist/src/server/features/control-plane/services/ask.js +63 -0
  176. package/dist/src/server/features/control-plane/services/ask.js.map +1 -0
  177. package/dist/src/server/features/control-plane/services/chat-sessions.d.ts +8 -0
  178. package/dist/src/server/features/control-plane/services/chat-sessions.d.ts.map +1 -1
  179. package/dist/src/server/features/control-plane/services/chat-sessions.js +6 -2
  180. package/dist/src/server/features/control-plane/services/chat-sessions.js.map +1 -1
  181. package/dist/src/server/features/control-plane/services/control-plane-state.d.ts.map +1 -1
  182. package/dist/src/server/features/control-plane/services/control-plane-state.js +15 -6
  183. package/dist/src/server/features/control-plane/services/control-plane-state.js.map +1 -1
  184. package/dist/src/server/features/control-plane/services/memory.d.ts +22 -0
  185. package/dist/src/server/features/control-plane/services/memory.d.ts.map +1 -0
  186. package/dist/src/server/features/control-plane/services/memory.js +36 -0
  187. package/dist/src/server/features/control-plane/services/memory.js.map +1 -0
  188. package/dist/src/server/features/control-plane/types.d.ts +19 -0
  189. package/dist/src/server/features/control-plane/types.d.ts.map +1 -1
  190. package/dist/src/server/index.d.ts.map +1 -1
  191. package/dist/src/server/index.js +114 -6
  192. package/dist/src/server/index.js.map +1 -1
  193. package/dist/src/server/router.d.ts +92 -0
  194. package/dist/src/server/router.d.ts.map +1 -1
  195. package/dist/src/server/router.js +4 -0
  196. package/dist/src/server/router.js.map +1 -1
  197. package/dist/src/server/static.d.ts.map +1 -1
  198. package/dist/src/server/static.js +7 -5
  199. package/dist/src/server/static.js.map +1 -1
  200. package/dist/src/server/types.d.ts +22 -0
  201. package/dist/src/server/types.d.ts.map +1 -1
  202. package/dist/src/web/assets/index-BCCIDJRN.js +52 -0
  203. package/dist/src/web/assets/index-DarVaee6.css +2 -0
  204. package/dist/src/web/index.html +2 -2
  205. package/package.json +16 -2
  206. package/dist/src/web/assets/index-BPZ31ir-.js +0 -12
  207. package/dist/src/web/assets/index-C9sFoCL6.css +0 -2
@@ -19,6 +19,8 @@ export declare const controlPlaneRouter: import("@trpc/server").TRPCBuiltRouter<
19
19
  sessionCreate: import("@trpc/server").TRPCMutationProcedure<{
20
20
  input: {
21
21
  name?: string | undefined;
22
+ model?: string | undefined;
23
+ apiKeyPresent?: boolean | undefined;
22
24
  } | undefined;
23
25
  output: import("./types.js").ChatSessionDetail;
24
26
  meta: object;
@@ -26,6 +28,7 @@ export declare const controlPlaneRouter: import("@trpc/server").TRPCBuiltRouter<
26
28
  session: import("@trpc/server").TRPCQueryProcedure<{
27
29
  input: {
28
30
  id: string;
31
+ apiKey?: string | undefined;
29
32
  };
30
33
  output: import("./types.js").ChatSessionDetail | null;
31
34
  meta: object;
@@ -57,6 +60,7 @@ export declare const controlPlaneRouter: import("@trpc/server").TRPCBuiltRouter<
57
60
  sessionPendingApproval: import("@trpc/server").TRPCQueryProcedure<{
58
61
  input: {
59
62
  id: string;
63
+ apiKey?: string | undefined;
60
64
  };
61
65
  output: import("./types.js").ControlPlanePendingApproval | null;
62
66
  meta: object;
@@ -64,6 +68,7 @@ export declare const controlPlaneRouter: import("@trpc/server").TRPCBuiltRouter<
64
68
  sessionRunning: import("@trpc/server").TRPCQueryProcedure<{
65
69
  input: {
66
70
  id: string;
71
+ apiKey?: string | undefined;
67
72
  };
68
73
  output: {
69
74
  running: boolean;
@@ -84,6 +89,7 @@ export declare const controlPlaneRouter: import("@trpc/server").TRPCBuiltRouter<
84
89
  sessionCancel: import("@trpc/server").TRPCMutationProcedure<{
85
90
  input: {
86
91
  id: string;
92
+ apiKey?: string | undefined;
87
93
  };
88
94
  output: {
89
95
  cancelled: boolean;
@@ -94,6 +100,9 @@ export declare const controlPlaneRouter: import("@trpc/server").TRPCBuiltRouter<
94
100
  input: {
95
101
  sessionId: string;
96
102
  prompt: string;
103
+ apiKey?: string | undefined;
104
+ systemContext?: string | undefined;
105
+ memoryMaintenanceMode?: "background" | "none" | "inline" | undefined;
97
106
  };
98
107
  output: {
99
108
  session: import("./types.js").ChatSessionDetail;
@@ -105,6 +114,7 @@ export declare const controlPlaneRouter: import("@trpc/server").TRPCBuiltRouter<
105
114
  sessionContinue: import("@trpc/server").TRPCMutationProcedure<{
106
115
  input: {
107
116
  id: string;
117
+ apiKey?: string | undefined;
108
118
  };
109
119
  output: {
110
120
  session: import("./types.js").ChatSessionDetail;
@@ -113,6 +123,18 @@ export declare const controlPlaneRouter: import("@trpc/server").TRPCBuiltRouter<
113
123
  };
114
124
  meta: object;
115
125
  }>;
126
+ agentAsk: import("@trpc/server").TRPCMutationProcedure<{
127
+ input: {
128
+ goal: string;
129
+ model?: string | undefined;
130
+ maxSteps?: number | undefined;
131
+ apiKey?: string | undefined;
132
+ searchIgnoreDirs?: string[] | undefined;
133
+ systemContext?: string | undefined;
134
+ };
135
+ output: import("./services/ask.js").ControlPlaneAskResult;
136
+ meta: object;
137
+ }>;
116
138
  heartbeatTasks: import("@trpc/server").TRPCQueryProcedure<{
117
139
  input: void;
118
140
  output: {
@@ -130,6 +152,47 @@ export declare const controlPlaneRouter: import("@trpc/server").TRPCBuiltRouter<
130
152
  };
131
153
  meta: object;
132
154
  }>;
155
+ memoryStatus: import("@trpc/server").TRPCQueryProcedure<{
156
+ input: void;
157
+ output: import("../../../core/memory/visibility.js").MemoryStatusView;
158
+ meta: object;
159
+ }>;
160
+ memoryList: import("@trpc/server").TRPCQueryProcedure<{
161
+ input: {
162
+ path?: string | undefined;
163
+ } | undefined;
164
+ output: {
165
+ memoryRoot: string;
166
+ notes: string[];
167
+ };
168
+ meta: object;
169
+ }>;
170
+ memoryRead: import("@trpc/server").TRPCQueryProcedure<{
171
+ input: {
172
+ path: string;
173
+ offset?: number | undefined;
174
+ maxLines?: number | undefined;
175
+ };
176
+ output: {
177
+ memoryRoot: string;
178
+ path: string;
179
+ content: string;
180
+ };
181
+ meta: object;
182
+ }>;
183
+ memorySearch: import("@trpc/server").TRPCQueryProcedure<{
184
+ input: {
185
+ query: string;
186
+ path?: string | undefined;
187
+ maxResults?: number | undefined;
188
+ };
189
+ output: {
190
+ memoryRoot: string;
191
+ query: string;
192
+ matches: string;
193
+ };
194
+ meta: object;
195
+ }>;
133
196
  heartbeatTaskEnable: import("@trpc/server").TRPCMutationProcedure<{
134
197
  input: {
135
198
  taskId: string;
@@ -167,6 +230,31 @@ export declare const controlPlaneRouter: import("@trpc/server").TRPCBuiltRouter<
167
230
  };
168
231
  meta: object;
169
232
  }>;
233
+ workspaceSetActive: import("@trpc/server").TRPCMutationProcedure<{
234
+ input: {
235
+ workspaceId: string;
236
+ };
237
+ output: {
238
+ activeWorkspaceId: string;
239
+ workspace: import("../../../core/runtime/workspaces.js").WorkspaceDescriptor;
240
+ workspaces: import("../../../core/runtime/workspaces.js").WorkspaceDescriptor[];
241
+ };
242
+ meta: object;
243
+ }>;
244
+ workspaceCreate: import("@trpc/server").TRPCMutationProcedure<{
245
+ input: {
246
+ name: string;
247
+ anchorRoot: string;
248
+ repoRoots?: string[] | undefined;
249
+ setActive?: boolean | undefined;
250
+ };
251
+ output: {
252
+ activeWorkspaceId: string;
253
+ workspace: import("../../../core/runtime/workspaces.js").WorkspaceDescriptor;
254
+ workspaces: import("../../../core/runtime/workspaces.js").WorkspaceDescriptor[];
255
+ };
256
+ meta: object;
257
+ }>;
170
258
  layoutSnapshotSave: import("@trpc/server").TRPCMutationProcedure<{
171
259
  input: {
172
260
  snapshot: unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../../../../src/server/features/control-plane/router.ts"],"names":[],"mappings":"AA2EA,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8G7B,CAAC"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../../../../src/server/features/control-plane/router.ts"],"names":[],"mappings":"AA6HA,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwL7B,CAAC"}
@@ -3,19 +3,36 @@ import { z } from 'zod';
3
3
  import { BUILT_IN_MODEL_GROUPS } from '../../../core/llm/openai-models.js';
4
4
  import { procedure, router } from '../../trpc.js';
5
5
  import { cancelControlPlaneSessionRun, continueChatPrompt, createControlPlaneChatSession, getPendingControlPlaneApproval, isControlPlaneSessionRunning, readChatSessionDetail, readChatSessionViews, readChatTurnReview, resolvePendingControlPlaneApproval, submitChatPrompt, updateControlPlaneChatSessionSettings, } from './services/chat-sessions.js';
6
+ import { runControlPlaneAsk } from './services/ask.js';
6
7
  import { loadControlPlaneState } from './services/control-plane-state.js';
7
8
  import { listControlPlaneHeartbeatRuns, listControlPlaneHeartbeatTasks, setControlPlaneHeartbeatTaskEnabled, triggerControlPlaneHeartbeatTaskRun, } from './services/heartbeat.js';
9
+ import { listControlPlaneMemoryNotes, readControlPlaneMemoryNote, readControlPlaneMemoryStatus, searchControlPlaneMemoryNotes, } from './services/memory.js';
8
10
  import { saveControlPlaneLayoutSnapshot } from './services/layout-snapshots.js';
9
11
  import { searchWorkspaceFiles } from './services/workspace-files.js';
12
+ import { createWorkspaceDescriptor, setActiveWorkspace } from '../../../core/runtime/workspaces.js';
10
13
  const sessionInputSchema = z.object({
11
14
  id: z.string().min(1),
15
+ apiKey: z.string().min(1).optional(),
12
16
  });
13
17
  const createSessionInputSchema = z.object({
14
18
  name: z.string().min(1).optional(),
19
+ model: z.string().min(1).optional(),
20
+ apiKeyPresent: z.boolean().optional(),
15
21
  }).optional();
16
22
  const sessionMessageInputSchema = z.object({
17
23
  sessionId: z.string().min(1),
18
24
  prompt: z.string().min(1),
25
+ apiKey: z.string().min(1).optional(),
26
+ systemContext: z.string().min(1).optional(),
27
+ memoryMaintenanceMode: z.enum(['background', 'inline', 'none']).optional(),
28
+ });
29
+ const agentAskInputSchema = z.object({
30
+ goal: z.string().min(1),
31
+ model: z.string().min(1).optional(),
32
+ maxSteps: z.number().int().min(1).max(500).optional(),
33
+ apiKey: z.string().min(1).optional(),
34
+ searchIgnoreDirs: z.array(z.string().min(1)).optional(),
35
+ systemContext: z.string().min(1).optional(),
19
36
  });
20
37
  const turnReviewInputSchema = z.object({
21
38
  sessionId: z.string().min(1),
@@ -42,26 +59,51 @@ const fileSearchInputSchema = z.object({
42
59
  query: z.string().max(200).optional(),
43
60
  limit: z.number().int().min(1).max(50).optional(),
44
61
  }).optional();
62
+ const memoryListInputSchema = z.object({
63
+ path: z.string().min(1).optional(),
64
+ }).optional();
65
+ const memoryReadInputSchema = z.object({
66
+ path: z.string().min(1),
67
+ offset: z.number().int().min(0).optional(),
68
+ maxLines: z.number().int().min(1).max(1000).optional(),
69
+ });
70
+ const memorySearchInputSchema = z.object({
71
+ query: z.string().min(1).max(200),
72
+ path: z.string().min(1).optional(),
73
+ maxResults: z.number().int().min(1).max(200).optional(),
74
+ });
45
75
  const layoutSnapshotInputSchema = z.object({
46
76
  snapshot: z.unknown(),
47
77
  });
78
+ const workspaceSetActiveInputSchema = z.object({
79
+ workspaceId: z.string().min(1),
80
+ });
81
+ const workspaceCreateInputSchema = z.object({
82
+ name: z.string().min(1),
83
+ anchorRoot: z.string().min(1),
84
+ repoRoots: z.array(z.string().min(1)).optional(),
85
+ setActive: z.boolean().optional(),
86
+ });
48
87
  export const controlPlaneRouter = router({
49
88
  state: procedure.query(async ({ ctx }) => {
50
89
  return await loadControlPlaneState(ctx);
51
90
  }),
52
91
  sessions: procedure.query(({ ctx }) => {
53
92
  return {
54
- sessions: readChatSessionViews(resolve(ctx.stateRoot, 'chat-sessions.catalog.json')),
93
+ sessions: readChatSessionViews(resolve(ctx.activeWorkspace.stateRoot, 'chat-sessions.catalog.json')),
55
94
  };
56
95
  }),
57
96
  sessionCreate: procedure.input(createSessionInputSchema).mutation(({ ctx, input }) => {
58
97
  return createControlPlaneChatSession({
59
- sessionStoragePath: resolve(ctx.stateRoot, 'chat-sessions.catalog.json'),
98
+ sessionStoragePath: resolve(ctx.activeWorkspace.stateRoot, 'chat-sessions.catalog.json'),
60
99
  suggestedName: input?.name,
100
+ workspaceId: ctx.activeWorkspace.id,
101
+ model: input?.model,
102
+ apiKeyPresent: input?.apiKeyPresent,
61
103
  });
62
104
  }),
63
105
  session: procedure.input(sessionInputSchema).query(({ ctx, input }) => {
64
- return readChatSessionDetail(resolve(ctx.stateRoot, 'chat-sessions.catalog.json'), input.id) ?? null;
106
+ return readChatSessionDetail(resolve(ctx.activeWorkspace.stateRoot, 'chat-sessions.catalog.json'), input.id) ?? null;
65
107
  }),
66
108
  modelOptions: procedure.query(() => {
67
109
  return {
@@ -70,14 +112,14 @@ export const controlPlaneRouter = router({
70
112
  }),
71
113
  sessionSettingsUpdate: procedure.input(sessionSettingsInputSchema).mutation(({ ctx, input }) => {
72
114
  return updateControlPlaneChatSessionSettings({
73
- sessionStoragePath: resolve(ctx.stateRoot, 'chat-sessions.catalog.json'),
115
+ sessionStoragePath: resolve(ctx.activeWorkspace.stateRoot, 'chat-sessions.catalog.json'),
74
116
  sessionId: input.id,
75
117
  model: input.model,
76
118
  driftEnabled: input.driftEnabled,
77
119
  });
78
120
  }),
79
121
  sessionTurnReview: procedure.input(turnReviewInputSchema).query(({ ctx, input }) => {
80
- return readChatTurnReview(resolve(ctx.stateRoot, 'chat-sessions.catalog.json'), input.sessionId, input.turnId) ?? null;
122
+ return readChatTurnReview(resolve(ctx.activeWorkspace.stateRoot, 'chat-sessions.catalog.json'), input.sessionId, input.turnId) ?? null;
81
123
  }),
82
124
  sessionPendingApproval: procedure.input(sessionInputSchema).query(({ input }) => {
83
125
  return getPendingControlPlaneApproval(input.id) ?? null;
@@ -100,60 +142,131 @@ export const controlPlaneRouter = router({
100
142
  }),
101
143
  sessionSendPrompt: procedure.input(sessionMessageInputSchema).mutation(async ({ ctx, input }) => {
102
144
  return await submitChatPrompt({
103
- workspaceRoot: ctx.workspaceRoot,
104
- stateRoot: ctx.stateRoot,
105
- sessionStoragePath: resolve(ctx.stateRoot, 'chat-sessions.catalog.json'),
145
+ workspaceRoot: ctx.activeWorkspace.anchorRoot,
146
+ stateRoot: ctx.activeWorkspace.stateRoot,
147
+ sessionStoragePath: resolve(ctx.activeWorkspace.stateRoot, 'chat-sessions.catalog.json'),
106
148
  sessionId: input.sessionId,
107
149
  prompt: input.prompt,
150
+ apiKey: input.apiKey,
151
+ systemContext: input.systemContext,
152
+ memoryMaintenanceMode: input.memoryMaintenanceMode,
153
+ leaseOwner: {
154
+ ownerKind: 'daemon',
155
+ ownerId: ctx.runtimeHost?.ownerId ?? `daemon-${process.pid}`,
156
+ clientLabel: 'control plane',
157
+ },
108
158
  });
109
159
  }),
110
160
  sessionContinue: procedure.input(sessionInputSchema).mutation(async ({ ctx, input }) => {
111
161
  return await continueChatPrompt({
112
- workspaceRoot: ctx.workspaceRoot,
113
- stateRoot: ctx.stateRoot,
114
- sessionStoragePath: resolve(ctx.stateRoot, 'chat-sessions.catalog.json'),
162
+ workspaceRoot: ctx.activeWorkspace.anchorRoot,
163
+ stateRoot: ctx.activeWorkspace.stateRoot,
164
+ sessionStoragePath: resolve(ctx.activeWorkspace.stateRoot, 'chat-sessions.catalog.json'),
115
165
  sessionId: input.id,
166
+ apiKey: input.apiKey,
167
+ leaseOwner: {
168
+ ownerKind: 'daemon',
169
+ ownerId: ctx.runtimeHost?.ownerId ?? `daemon-${process.pid}`,
170
+ clientLabel: 'control plane',
171
+ },
172
+ });
173
+ }),
174
+ agentAsk: procedure.input(agentAskInputSchema).mutation(async ({ ctx, input }) => {
175
+ return await runControlPlaneAsk({
176
+ goal: input.goal,
177
+ workspaceRoot: ctx.activeWorkspace.anchorRoot,
178
+ stateRoot: ctx.activeWorkspace.stateRoot,
179
+ model: input.model,
180
+ maxSteps: input.maxSteps,
181
+ apiKey: input.apiKey,
182
+ searchIgnoreDirs: input.searchIgnoreDirs,
183
+ systemContext: input.systemContext,
116
184
  });
117
185
  }),
118
186
  heartbeatTasks: procedure.query(async ({ ctx }) => {
119
187
  return {
120
- tasks: await listControlPlaneHeartbeatTasks(ctx.stateRoot),
188
+ tasks: await listControlPlaneHeartbeatTasks(ctx.activeWorkspace.stateRoot),
121
189
  };
122
190
  }),
123
191
  heartbeatRuns: procedure.input(heartbeatRunsInputSchema).query(async ({ ctx, input }) => {
124
192
  return {
125
- runs: await listControlPlaneHeartbeatRuns(ctx.stateRoot, {
193
+ runs: await listControlPlaneHeartbeatRuns(ctx.activeWorkspace.stateRoot, {
126
194
  taskId: input?.taskId,
127
195
  limit: input?.limit ?? 20,
128
196
  }),
129
197
  };
130
198
  }),
199
+ memoryStatus: procedure.query(async ({ ctx }) => {
200
+ return await readControlPlaneMemoryStatus(ctx.activeWorkspace.stateRoot);
201
+ }),
202
+ memoryList: procedure.input(memoryListInputSchema).query(async ({ ctx, input }) => {
203
+ return await listControlPlaneMemoryNotes(ctx.activeWorkspace.stateRoot, input?.path);
204
+ }),
205
+ memoryRead: procedure.input(memoryReadInputSchema).query(async ({ ctx, input }) => {
206
+ return await readControlPlaneMemoryNote(ctx.activeWorkspace.stateRoot, input.path, {
207
+ offset: input.offset,
208
+ maxLines: input.maxLines,
209
+ });
210
+ }),
211
+ memorySearch: procedure.input(memorySearchInputSchema).query(async ({ ctx, input }) => {
212
+ return await searchControlPlaneMemoryNotes(ctx.activeWorkspace.stateRoot, input.query, {
213
+ path: input.path,
214
+ maxResults: input.maxResults,
215
+ });
216
+ }),
131
217
  heartbeatTaskEnable: procedure.input(heartbeatTaskInputSchema).mutation(async ({ ctx, input }) => {
132
218
  return {
133
- task: await setControlPlaneHeartbeatTaskEnabled(ctx.stateRoot, input.taskId, true),
219
+ task: await setControlPlaneHeartbeatTaskEnabled(ctx.activeWorkspace.stateRoot, input.taskId, true),
134
220
  };
135
221
  }),
136
222
  heartbeatTaskDisable: procedure.input(heartbeatTaskInputSchema).mutation(async ({ ctx, input }) => {
137
223
  return {
138
- task: await setControlPlaneHeartbeatTaskEnabled(ctx.stateRoot, input.taskId, false),
224
+ task: await setControlPlaneHeartbeatTaskEnabled(ctx.activeWorkspace.stateRoot, input.taskId, false),
139
225
  };
140
226
  }),
141
227
  heartbeatTaskTrigger: procedure.input(heartbeatTaskInputSchema).mutation(async ({ ctx, input }) => {
142
228
  return {
143
- task: await triggerControlPlaneHeartbeatTaskRun(ctx.stateRoot, input.taskId),
229
+ task: await triggerControlPlaneHeartbeatTaskRun(ctx.activeWorkspace.stateRoot, input.taskId),
144
230
  };
145
231
  }),
146
232
  workspaceFileSearch: procedure.input(fileSearchInputSchema).query(async ({ ctx, input }) => {
147
233
  return {
148
234
  files: await searchWorkspaceFiles({
149
- workspaceRoot: ctx.workspaceRoot,
235
+ workspaceRoot: ctx.activeWorkspace.anchorRoot,
150
236
  query: input?.query ?? '',
151
237
  limit: input?.limit ?? 20,
152
238
  }),
153
239
  };
154
240
  }),
241
+ workspaceSetActive: procedure.input(workspaceSetActiveInputSchema).mutation(({ ctx, input }) => {
242
+ const resolved = setActiveWorkspace({
243
+ workspaceRoot: ctx.workspaceRoot,
244
+ stateRoot: ctx.stateRoot,
245
+ workspaceId: input.workspaceId,
246
+ });
247
+ return {
248
+ activeWorkspaceId: resolved.activeWorkspaceId,
249
+ workspace: resolved.activeWorkspace,
250
+ workspaces: resolved.workspaces,
251
+ };
252
+ }),
253
+ workspaceCreate: procedure.input(workspaceCreateInputSchema).mutation(({ ctx, input }) => {
254
+ const resolved = createWorkspaceDescriptor({
255
+ workspaceRoot: ctx.workspaceRoot,
256
+ stateRoot: ctx.stateRoot,
257
+ name: input.name,
258
+ anchorRoot: input.anchorRoot,
259
+ repoRoots: input.repoRoots,
260
+ setActive: input.setActive,
261
+ });
262
+ return {
263
+ activeWorkspaceId: resolved.activeWorkspaceId,
264
+ workspace: resolved.activeWorkspace,
265
+ workspaces: resolved.workspaces,
266
+ };
267
+ }),
155
268
  layoutSnapshotSave: procedure.input(layoutSnapshotInputSchema).mutation(async ({ ctx, input }) => {
156
- return await saveControlPlaneLayoutSnapshot(ctx.stateRoot, input.snapshot);
269
+ return await saveControlPlaneLayoutSnapshot(ctx.activeWorkspace.stateRoot, input.snapshot);
157
270
  }),
158
271
  });
159
272
  //# sourceMappingURL=router.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../../../../../src/server/features/control-plane/router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../../../../src/server/features/control-plane/router.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { type RunResult } from '../../../../index.js';
2
+ export type RunControlPlaneAskArgs = {
3
+ goal: string;
4
+ workspaceRoot: string;
5
+ stateRoot: string;
6
+ model?: string;
7
+ maxSteps?: number;
8
+ apiKey?: string;
9
+ searchIgnoreDirs?: string[];
10
+ systemContext?: string;
11
+ };
12
+ export type ControlPlaneAskResult = Pick<RunResult, 'outcome' | 'summary' | 'trace' | 'transcript'> & {
13
+ traceFile: string;
14
+ consoleOutput: string;
15
+ };
16
+ export declare function runControlPlaneAsk(args: RunControlPlaneAskArgs): Promise<ControlPlaneAskResult>;
17
+ //# sourceMappingURL=ask.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ask.d.ts","sourceRoot":"","sources":["../../../../../../src/server/features/control-plane/services/ask.ts"],"names":[],"mappings":"AAEA,OAAO,EASL,KAAK,SAAS,EACf,MAAM,sBAAsB,CAAC;AAG9B,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,YAAY,CAAC,GAAG;IACpG,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CA8CrG"}
@@ -0,0 +1,63 @@
1
+ import { mkdirSync, writeFileSync } from 'node:fs';
2
+ import { join } from 'node:path';
3
+ import { appendMemoryCatalogSystemContext, DEFAULT_OPENAI_MODEL, createLlmAdapter, createLogger, formatTraceForConsole, inferProviderFromModel, resolveProviderApiKey, runAgentLoop, } from '../../../../index.js';
4
+ import { runMaintenanceForRecordedCandidates } from '../../../../core/memory/maintenance-integration.js';
5
+ export async function runControlPlaneAsk(args) {
6
+ const model = args.model ?? process.env.OPENAI_MODEL ?? process.env.ANTHROPIC_MODEL ?? DEFAULT_OPENAI_MODEL;
7
+ const maxSteps = args.maxSteps ?? parsePositiveInt(process.env.HEDDLE_MAX_STEPS) ?? 100;
8
+ const provider = inferProviderFromModel(model);
9
+ const logger = createLogger({ pretty: true, level: 'debug' });
10
+ const memoryDir = join(args.stateRoot, 'memory');
11
+ const apiKey = args.apiKey ?? resolveProviderApiKey(provider);
12
+ const llm = createLlmAdapter({ model, apiKey });
13
+ const result = await runAgentLoop({
14
+ goal: args.goal,
15
+ model,
16
+ apiKey,
17
+ maxSteps,
18
+ logger,
19
+ workspaceRoot: args.workspaceRoot,
20
+ stateDir: relativeStateDir(args.workspaceRoot, args.stateRoot),
21
+ searchIgnoreDirs: args.searchIgnoreDirs,
22
+ memoryDir,
23
+ systemContext: appendMemoryCatalogSystemContext({
24
+ systemContext: args.systemContext,
25
+ memoryRoot: memoryDir,
26
+ }),
27
+ includePlanTool: false,
28
+ llm,
29
+ });
30
+ const maintenance = await runMaintenanceForRecordedCandidates({
31
+ memoryRoot: memoryDir,
32
+ llm,
33
+ source: 'control plane ask',
34
+ trace: result.trace,
35
+ maxSteps: 20,
36
+ });
37
+ const trace = maintenance.events.length > 0 ? [...result.trace, ...maintenance.events] : result.trace;
38
+ const traceDir = join(args.stateRoot, 'traces');
39
+ mkdirSync(traceDir, { recursive: true });
40
+ const traceFile = join(traceDir, `trace-${Date.now()}.json`);
41
+ writeFileSync(traceFile, JSON.stringify(trace, null, 2));
42
+ return {
43
+ ...result,
44
+ trace,
45
+ traceFile,
46
+ consoleOutput: formatTraceForConsole(trace),
47
+ };
48
+ }
49
+ function relativeStateDir(workspaceRoot, stateRoot) {
50
+ if (!stateRoot.startsWith(workspaceRoot)) {
51
+ return undefined;
52
+ }
53
+ const suffix = stateRoot.slice(workspaceRoot.length).replace(/^\/+/, '');
54
+ return suffix || '.heddle';
55
+ }
56
+ function parsePositiveInt(raw) {
57
+ if (!raw) {
58
+ return undefined;
59
+ }
60
+ const value = Number.parseInt(raw, 10);
61
+ return Number.isFinite(value) && value > 0 ? value : undefined;
62
+ }
63
+ //# sourceMappingURL=ask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ask.js","sourceRoot":"","sources":["../../../../../../src/server/features/control-plane/services/ask.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { ChatSessionLeaseOwner } from '../../../../core/chat/session-lease.js';
1
2
  import type { ChatSession } from '../../../../core/chat/types.js';
2
3
  import type { ChatSessionDetail, ChatSessionView, ChatTurnReview, ControlPlanePendingApproval, ControlPlaneSessionLiveEvent } from '../types.js';
3
4
  type SubmitChatPromptArgs = {
@@ -6,10 +7,17 @@ type SubmitChatPromptArgs = {
6
7
  sessionStoragePath: string;
7
8
  sessionId: string;
8
9
  prompt: string;
10
+ apiKey?: string;
11
+ systemContext?: string;
12
+ memoryMaintenanceMode?: 'none' | 'background' | 'inline';
13
+ leaseOwner: ChatSessionLeaseOwner;
9
14
  };
10
15
  export declare function createControlPlaneChatSession(args: {
11
16
  sessionStoragePath: string;
12
17
  suggestedName?: string;
18
+ workspaceId?: string;
19
+ model?: string;
20
+ apiKeyPresent?: boolean;
13
21
  }): ChatSessionDetail;
14
22
  export declare function updateControlPlaneChatSessionSettings(args: {
15
23
  sessionStoragePath: string;
@@ -1 +1 @@
1
- {"version":3,"file":"chat-sessions.d.ts","sourceRoot":"","sources":["../../../../../../src/server/features/control-plane/services/chat-sessions.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAElE,OAAO,KAAK,EAEV,iBAAiB,EAEjB,eAAe,EACf,cAAc,EAGd,2BAA2B,EAC3B,4BAA4B,EAC7B,MAAM,aAAa,CAAC;AAIrB,KAAK,oBAAoB,GAAG;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAIF,wBAAgB,6BAA6B,CAAC,IAAI,EAAE;IAClD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG,iBAAiB,CAgBpB;AAED,wBAAgB,qCAAqC,CAAC,IAAI,EAAE;IAC1D,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,GAAG,iBAAiB,CAqBpB;AASD,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,oBAAoB;;;;GAiEhE;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,oBAAoB,EAAE,QAAQ,CAAC;;;;GAclF;AAED,wBAAgB,oCAAoC,CAClD,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,4BAA4B,KAAK,IAAI,GACtD,MAAM,IAAI,CAKZ;AAED,wBAAgB,8BAA8B,CAAC,SAAS,EAAE,MAAM,GAAG,2BAA2B,GAAG,SAAS,CAEzG;AAED,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAEvE;AAED,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CASvE;AAED,wBAAgB,kCAAkC,CAChD,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/C,OAAO,CAST;AAED,wBAAgB,oBAAoB,CAAC,kBAAkB,EAAE,MAAM,GAAG,eAAe,EAAE,CAIlF;AAED,wBAAgB,qBAAqB,CAAC,kBAAkB,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAG3G;AAED,wBAAgB,kBAAkB,CAAC,kBAAkB,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAQ5H;AAED,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEvF;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW,GAAG,eAAe,EAAE,CAkFpF;AAgDD,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW,GAAG,iBAAiB,EAAE,CAgBxF"}
1
+ {"version":3,"file":"chat-sessions.d.ts","sourceRoot":"","sources":["../../../../../../src/server/features/control-plane/services/chat-sessions.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AACpF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAElE,OAAO,KAAK,EAEV,iBAAiB,EAEjB,eAAe,EACf,cAAc,EAGd,2BAA2B,EAC3B,4BAA4B,EAC7B,MAAM,aAAa,CAAC;AAIrB,KAAK,oBAAoB,GAAG;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qBAAqB,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,QAAQ,CAAC;IACzD,UAAU,EAAE,qBAAqB,CAAC;CACnC,CAAC;AAIF,wBAAgB,6BAA6B,CAAC,IAAI,EAAE;IAClD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,GAAG,iBAAiB,CAiBpB;AAED,wBAAgB,qCAAqC,CAAC,IAAI,EAAE;IAC1D,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,GAAG,iBAAiB,CAqBpB;AASD,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,oBAAoB;;;;GAmEhE;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,oBAAoB,EAAE,QAAQ,CAAC;;;;GAclF;AAED,wBAAgB,oCAAoC,CAClD,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,4BAA4B,KAAK,IAAI,GACtD,MAAM,IAAI,CAKZ;AAED,wBAAgB,8BAA8B,CAAC,SAAS,EAAE,MAAM,GAAG,2BAA2B,GAAG,SAAS,CAEzG;AAED,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAEvE;AAED,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CASvE;AAED,wBAAgB,kCAAkC,CAChD,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/C,OAAO,CAST;AAED,wBAAgB,oBAAoB,CAAC,kBAAkB,EAAE,MAAM,GAAG,eAAe,EAAE,CAIlF;AAED,wBAAgB,qBAAqB,CAAC,kBAAkB,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAG3G;AAED,wBAAgB,kBAAkB,CAAC,kBAAkB,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAQ5H;AAED,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEvF;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW,GAAG,eAAe,EAAE,CAmFpF;AAgDD,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW,GAAG,iBAAiB,EAAE,CAgBxF"}
@@ -9,12 +9,13 @@ const DEFAULT_CONTINUE_PROMPT = 'Continue from where you left off.';
9
9
  export function createControlPlaneChatSession(args) {
10
10
  const existing = readChatSessionViews(args.sessionStoragePath);
11
11
  const nextNumber = existing.length + 1;
12
- const model = process.env.OPENAI_MODEL ?? process.env.ANTHROPIC_MODEL ?? DEFAULT_OPENAI_MODEL;
12
+ const model = args.model ?? process.env.OPENAI_MODEL ?? process.env.ANTHROPIC_MODEL ?? DEFAULT_OPENAI_MODEL;
13
13
  const session = createChatSession({
14
14
  id: `session-${Date.now()}`,
15
15
  name: args.suggestedName?.trim() || `Session ${nextNumber}`,
16
- apiKeyPresent: Boolean(resolveApiKeyForModel(model)),
16
+ apiKeyPresent: args.apiKeyPresent ?? Boolean(resolveApiKeyForModel(model)),
17
17
  model,
18
+ workspaceId: args.workspaceId,
18
19
  });
19
20
  const currentSessions = readChatSessionCatalog(args.sessionStoragePath)
20
21
  .map((entry) => readChatSession(args.sessionStoragePath, entry.id, Boolean(resolveApiKeyForModel(model))))
@@ -53,6 +54,8 @@ export async function submitChatPrompt(args) {
53
54
  try {
54
55
  const result = await submitChatSessionPrompt({
55
56
  ...args,
57
+ apiKey: args.apiKey,
58
+ memoryMaintenanceMode: args.memoryMaintenanceMode,
56
59
  abortSignal: controller.signal,
57
60
  onEvent: (event) => {
58
61
  sessionEventBus.emit(args.sessionId, {
@@ -233,6 +236,7 @@ export function projectChatSessionView(raw) {
233
236
  return [omitUndefined({
234
237
  id,
235
238
  name,
239
+ workspaceId: readString(candidate.workspaceId),
236
240
  createdAt: readString(candidate.createdAt),
237
241
  updatedAt: readString(candidate.updatedAt),
238
242
  model: readString(candidate.model),