@felan-ai/daemon 0.0.0-stage → 0.1.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 (288) hide show
  1. package/LICENSE +21 -0
  2. package/NOTICE +69 -0
  3. package/README.md +61 -2
  4. package/dist/client.d.ts +5 -0
  5. package/dist/client.d.ts.map +1 -0
  6. package/dist/client.js +4 -0
  7. package/dist/client.js.map +1 -0
  8. package/dist/daemon/admission.d.ts +39 -0
  9. package/dist/daemon/admission.d.ts.map +1 -0
  10. package/dist/daemon/admission.js +175 -0
  11. package/dist/daemon/admission.js.map +1 -0
  12. package/dist/daemon/agent-logs.d.ts +11 -0
  13. package/dist/daemon/agent-logs.d.ts.map +1 -0
  14. package/dist/daemon/agent-logs.js +31 -0
  15. package/dist/daemon/agent-logs.js.map +1 -0
  16. package/dist/daemon/bootstrap.d.ts +7 -0
  17. package/dist/daemon/bootstrap.d.ts.map +1 -0
  18. package/dist/daemon/bootstrap.js +4 -0
  19. package/dist/daemon/bootstrap.js.map +1 -0
  20. package/dist/daemon/broker.d.ts +94 -0
  21. package/dist/daemon/broker.d.ts.map +1 -0
  22. package/dist/daemon/broker.js +374 -0
  23. package/dist/daemon/broker.js.map +1 -0
  24. package/dist/daemon/commands.d.ts +47 -0
  25. package/dist/daemon/commands.d.ts.map +1 -0
  26. package/dist/daemon/commands.js +639 -0
  27. package/dist/daemon/commands.js.map +1 -0
  28. package/dist/daemon/control-recovery.d.ts +9 -0
  29. package/dist/daemon/control-recovery.d.ts.map +1 -0
  30. package/dist/daemon/control-recovery.js +68 -0
  31. package/dist/daemon/control-recovery.js.map +1 -0
  32. package/dist/daemon/control-state.d.ts +1915 -0
  33. package/dist/daemon/control-state.d.ts.map +1 -0
  34. package/dist/daemon/control-state.js +154 -0
  35. package/dist/daemon/control-state.js.map +1 -0
  36. package/dist/daemon/control-store.d.ts +113 -0
  37. package/dist/daemon/control-store.d.ts.map +1 -0
  38. package/dist/daemon/control-store.js +901 -0
  39. package/dist/daemon/control-store.js.map +1 -0
  40. package/dist/daemon/execution-policy.d.ts +15 -0
  41. package/dist/daemon/execution-policy.d.ts.map +1 -0
  42. package/dist/daemon/execution-policy.js +42 -0
  43. package/dist/daemon/execution-policy.js.map +1 -0
  44. package/dist/daemon/execution-services.d.ts +5 -0
  45. package/dist/daemon/execution-services.d.ts.map +1 -0
  46. package/dist/daemon/execution-services.js +73 -0
  47. package/dist/daemon/execution-services.js.map +1 -0
  48. package/dist/daemon/executions.d.ts +134 -0
  49. package/dist/daemon/executions.d.ts.map +1 -0
  50. package/dist/daemon/executions.js +486 -0
  51. package/dist/daemon/executions.js.map +1 -0
  52. package/dist/daemon/extension-ui.d.ts +24 -0
  53. package/dist/daemon/extension-ui.d.ts.map +1 -0
  54. package/dist/daemon/extension-ui.js +161 -0
  55. package/dist/daemon/extension-ui.js.map +1 -0
  56. package/dist/daemon/fanout.d.ts +40 -0
  57. package/dist/daemon/fanout.d.ts.map +1 -0
  58. package/dist/daemon/fanout.js +304 -0
  59. package/dist/daemon/fanout.js.map +1 -0
  60. package/dist/daemon/headless-json.d.ts +3 -0
  61. package/dist/daemon/headless-json.d.ts.map +1 -0
  62. package/dist/daemon/headless-json.js +20 -0
  63. package/dist/daemon/headless-json.js.map +1 -0
  64. package/dist/daemon/host-config.d.ts +61 -0
  65. package/dist/daemon/host-config.d.ts.map +1 -0
  66. package/dist/daemon/host-config.js +167 -0
  67. package/dist/daemon/host-config.js.map +1 -0
  68. package/dist/daemon/host-services.d.ts +61 -0
  69. package/dist/daemon/host-services.d.ts.map +1 -0
  70. package/dist/daemon/host-services.js +2 -0
  71. package/dist/daemon/host-services.js.map +1 -0
  72. package/dist/daemon/ipc.d.ts +14 -0
  73. package/dist/daemon/ipc.d.ts.map +1 -0
  74. package/dist/daemon/ipc.js +233 -0
  75. package/dist/daemon/ipc.js.map +1 -0
  76. package/dist/daemon/legacy-sessions.d.ts +48 -0
  77. package/dist/daemon/legacy-sessions.d.ts.map +1 -0
  78. package/dist/daemon/legacy-sessions.js +328 -0
  79. package/dist/daemon/legacy-sessions.js.map +1 -0
  80. package/dist/daemon/lifecycle.d.ts +44 -0
  81. package/dist/daemon/lifecycle.d.ts.map +1 -0
  82. package/dist/daemon/lifecycle.js +164 -0
  83. package/dist/daemon/lifecycle.js.map +1 -0
  84. package/dist/daemon/main.d.ts +3 -0
  85. package/dist/daemon/main.d.ts.map +1 -0
  86. package/dist/daemon/main.js +83 -0
  87. package/dist/daemon/main.js.map +1 -0
  88. package/dist/daemon/message-display.d.ts +4 -0
  89. package/dist/daemon/message-display.d.ts.map +1 -0
  90. package/dist/daemon/message-display.js +20 -0
  91. package/dist/daemon/message-display.js.map +1 -0
  92. package/dist/daemon/native-ownership.d.ts +13 -0
  93. package/dist/daemon/native-ownership.d.ts.map +1 -0
  94. package/dist/daemon/native-ownership.js +173 -0
  95. package/dist/daemon/native-ownership.js.map +1 -0
  96. package/dist/daemon/operational-log.d.ts +23 -0
  97. package/dist/daemon/operational-log.d.ts.map +1 -0
  98. package/dist/daemon/operational-log.js +79 -0
  99. package/dist/daemon/operational-log.js.map +1 -0
  100. package/dist/daemon/ownership.d.ts +35 -0
  101. package/dist/daemon/ownership.d.ts.map +1 -0
  102. package/dist/daemon/ownership.js +395 -0
  103. package/dist/daemon/ownership.js.map +1 -0
  104. package/dist/daemon/persistence.d.ts +110 -0
  105. package/dist/daemon/persistence.d.ts.map +1 -0
  106. package/dist/daemon/persistence.js +540 -0
  107. package/dist/daemon/persistence.js.map +1 -0
  108. package/dist/daemon/process-adapter.d.ts +23 -0
  109. package/dist/daemon/process-adapter.d.ts.map +1 -0
  110. package/dist/daemon/process-adapter.js +2 -0
  111. package/dist/daemon/process-adapter.js.map +1 -0
  112. package/dist/daemon/processes.d.ts +102 -0
  113. package/dist/daemon/processes.d.ts.map +1 -0
  114. package/dist/daemon/processes.js +691 -0
  115. package/dist/daemon/processes.js.map +1 -0
  116. package/dist/daemon/profile-storage.d.ts +16 -0
  117. package/dist/daemon/profile-storage.d.ts.map +1 -0
  118. package/dist/daemon/profile-storage.js +148 -0
  119. package/dist/daemon/profile-storage.js.map +1 -0
  120. package/dist/daemon/projection.d.ts +110 -0
  121. package/dist/daemon/projection.d.ts.map +1 -0
  122. package/dist/daemon/projection.js +661 -0
  123. package/dist/daemon/projection.js.map +1 -0
  124. package/dist/daemon/provider-loader.d.ts +28 -0
  125. package/dist/daemon/provider-loader.d.ts.map +1 -0
  126. package/dist/daemon/provider-loader.js +376 -0
  127. package/dist/daemon/provider-loader.js.map +1 -0
  128. package/dist/daemon/provider.d.ts +92 -0
  129. package/dist/daemon/provider.d.ts.map +1 -0
  130. package/dist/daemon/provider.js +31 -0
  131. package/dist/daemon/provider.js.map +1 -0
  132. package/dist/daemon/registry.d.ts +209 -0
  133. package/dist/daemon/registry.d.ts.map +1 -0
  134. package/dist/daemon/registry.js +1591 -0
  135. package/dist/daemon/registry.js.map +1 -0
  136. package/dist/daemon/runtime-dependencies.d.ts +5 -0
  137. package/dist/daemon/runtime-dependencies.d.ts.map +1 -0
  138. package/dist/daemon/runtime-dependencies.js +31 -0
  139. package/dist/daemon/runtime-dependencies.js.map +1 -0
  140. package/dist/daemon/server.d.ts +110 -0
  141. package/dist/daemon/server.d.ts.map +1 -0
  142. package/dist/daemon/server.js +556 -0
  143. package/dist/daemon/server.js.map +1 -0
  144. package/dist/daemon/service.d.ts +38 -0
  145. package/dist/daemon/service.d.ts.map +1 -0
  146. package/dist/daemon/service.js +275 -0
  147. package/dist/daemon/service.js.map +1 -0
  148. package/dist/daemon/session-cursor.d.ts +3 -0
  149. package/dist/daemon/session-cursor.d.ts.map +1 -0
  150. package/dist/daemon/session-cursor.js +4 -0
  151. package/dist/daemon/session-cursor.js.map +1 -0
  152. package/dist/daemon/session-execution.d.ts +88 -0
  153. package/dist/daemon/session-execution.d.ts.map +1 -0
  154. package/dist/daemon/session-execution.js +2 -0
  155. package/dist/daemon/session-execution.js.map +1 -0
  156. package/dist/daemon/session-executions.d.ts +5 -0
  157. package/dist/daemon/session-executions.d.ts.map +1 -0
  158. package/dist/daemon/session-executions.js +146 -0
  159. package/dist/daemon/session-executions.js.map +1 -0
  160. package/dist/daemon/session-files.d.ts +28 -0
  161. package/dist/daemon/session-files.d.ts.map +1 -0
  162. package/dist/daemon/session-files.js +189 -0
  163. package/dist/daemon/session-files.js.map +1 -0
  164. package/dist/daemon/session-lifecycle-contracts.d.ts +104 -0
  165. package/dist/daemon/session-lifecycle-contracts.d.ts.map +1 -0
  166. package/dist/daemon/session-lifecycle-contracts.js +2 -0
  167. package/dist/daemon/session-lifecycle-contracts.js.map +1 -0
  168. package/dist/daemon/session-lifecycle.d.ts +26 -0
  169. package/dist/daemon/session-lifecycle.d.ts.map +1 -0
  170. package/dist/daemon/session-lifecycle.js +246 -0
  171. package/dist/daemon/session-lifecycle.js.map +1 -0
  172. package/dist/daemon/session-runtime.d.ts +64 -0
  173. package/dist/daemon/session-runtime.d.ts.map +1 -0
  174. package/dist/daemon/session-runtime.js +3 -0
  175. package/dist/daemon/session-runtime.js.map +1 -0
  176. package/dist/daemon/session-services.d.ts +6 -0
  177. package/dist/daemon/session-services.d.ts.map +1 -0
  178. package/dist/daemon/session-services.js +144 -0
  179. package/dist/daemon/session-services.js.map +1 -0
  180. package/dist/daemon/shutdown-error.d.ts +12 -0
  181. package/dist/daemon/shutdown-error.d.ts.map +1 -0
  182. package/dist/daemon/shutdown-error.js +51 -0
  183. package/dist/daemon/shutdown-error.js.map +1 -0
  184. package/dist/daemon/supervisor.d.ts +28 -0
  185. package/dist/daemon/supervisor.d.ts.map +1 -0
  186. package/dist/daemon/supervisor.js +159 -0
  187. package/dist/daemon/supervisor.js.map +1 -0
  188. package/dist/daemon/target.d.ts +55 -0
  189. package/dist/daemon/target.d.ts.map +1 -0
  190. package/dist/daemon/target.js +191 -0
  191. package/dist/daemon/target.js.map +1 -0
  192. package/dist/daemon/tree.d.ts +7 -0
  193. package/dist/daemon/tree.d.ts.map +1 -0
  194. package/dist/daemon/tree.js +126 -0
  195. package/dist/daemon/tree.js.map +1 -0
  196. package/dist/daemon/ui-vocabulary.d.ts +29 -0
  197. package/dist/daemon/ui-vocabulary.d.ts.map +1 -0
  198. package/dist/daemon/ui-vocabulary.js +323 -0
  199. package/dist/daemon/ui-vocabulary.js.map +1 -0
  200. package/dist/daemon/worker.d.ts +5 -0
  201. package/dist/daemon/worker.d.ts.map +1 -0
  202. package/dist/daemon/worker.js +49 -0
  203. package/dist/daemon/worker.js.map +1 -0
  204. package/dist/index.d.ts +4 -0
  205. package/dist/index.d.ts.map +1 -0
  206. package/dist/index.js +12 -0
  207. package/dist/index.js.map +1 -0
  208. package/dist/lock.d.ts +27 -0
  209. package/dist/lock.d.ts.map +1 -0
  210. package/dist/lock.js +432 -0
  211. package/dist/lock.js.map +1 -0
  212. package/dist/logger.d.ts +9 -0
  213. package/dist/logger.d.ts.map +1 -0
  214. package/dist/logger.js +56 -0
  215. package/dist/logger.js.map +1 -0
  216. package/dist/remote/backoff.d.ts +17 -0
  217. package/dist/remote/backoff.d.ts.map +1 -0
  218. package/dist/remote/backoff.js +18 -0
  219. package/dist/remote/backoff.js.map +1 -0
  220. package/dist/remote/batch.d.ts +3 -0
  221. package/dist/remote/batch.d.ts.map +1 -0
  222. package/dist/remote/batch.js +27 -0
  223. package/dist/remote/batch.js.map +1 -0
  224. package/dist/remote/command-journal.d.ts +30 -0
  225. package/dist/remote/command-journal.d.ts.map +1 -0
  226. package/dist/remote/command-journal.js +72 -0
  227. package/dist/remote/command-journal.js.map +1 -0
  228. package/dist/remote/commands.d.ts +48 -0
  229. package/dist/remote/commands.d.ts.map +1 -0
  230. package/dist/remote/commands.js +145 -0
  231. package/dist/remote/commands.js.map +1 -0
  232. package/dist/remote/connector.d.ts +135 -0
  233. package/dist/remote/connector.d.ts.map +1 -0
  234. package/dist/remote/connector.js +1069 -0
  235. package/dist/remote/connector.js.map +1 -0
  236. package/dist/remote/content.d.ts +17 -0
  237. package/dist/remote/content.d.ts.map +1 -0
  238. package/dist/remote/content.js +116 -0
  239. package/dist/remote/content.js.map +1 -0
  240. package/dist/remote/outbox.d.ts +52 -0
  241. package/dist/remote/outbox.d.ts.map +1 -0
  242. package/dist/remote/outbox.js +321 -0
  243. package/dist/remote/outbox.js.map +1 -0
  244. package/dist/remote/platform.d.ts +53 -0
  245. package/dist/remote/platform.d.ts.map +1 -0
  246. package/dist/remote/platform.js +231 -0
  247. package/dist/remote/platform.js.map +1 -0
  248. package/dist/remote/realtime.d.ts +45 -0
  249. package/dist/remote/realtime.d.ts.map +1 -0
  250. package/dist/remote/realtime.js +265 -0
  251. package/dist/remote/realtime.js.map +1 -0
  252. package/dist/remote/sharing.d.ts +16 -0
  253. package/dist/remote/sharing.d.ts.map +1 -0
  254. package/dist/remote/sharing.js +24 -0
  255. package/dist/remote/sharing.js.map +1 -0
  256. package/dist/remote/state.d.ts +52 -0
  257. package/dist/remote/state.d.ts.map +1 -0
  258. package/dist/remote/state.js +156 -0
  259. package/dist/remote/state.js.map +1 -0
  260. package/dist/remote/text.d.ts +11 -0
  261. package/dist/remote/text.d.ts.map +1 -0
  262. package/dist/remote/text.js +188 -0
  263. package/dist/remote/text.js.map +1 -0
  264. package/dist/remote/token.d.ts +39 -0
  265. package/dist/remote/token.d.ts.map +1 -0
  266. package/dist/remote/token.js +238 -0
  267. package/dist/remote/token.js.map +1 -0
  268. package/dist/runtime-factory.d.ts +12 -0
  269. package/dist/runtime-factory.d.ts.map +1 -0
  270. package/dist/runtime-factory.js +12 -0
  271. package/dist/runtime-factory.js.map +1 -0
  272. package/dist/session-history.d.ts +29 -0
  273. package/dist/session-history.d.ts.map +1 -0
  274. package/dist/session-history.js +374 -0
  275. package/dist/session-history.js.map +1 -0
  276. package/dist/setup/dependencies.d.ts +15 -0
  277. package/dist/setup/dependencies.d.ts.map +1 -0
  278. package/dist/setup/dependencies.js +2 -0
  279. package/dist/setup/dependencies.js.map +1 -0
  280. package/dist/setup/open.d.ts +8 -0
  281. package/dist/setup/open.d.ts.map +1 -0
  282. package/dist/setup/open.js +16 -0
  283. package/dist/setup/open.js.map +1 -0
  284. package/dist/version.d.ts +2 -0
  285. package/dist/version.d.ts.map +1 -0
  286. package/dist/version.js +4 -0
  287. package/dist/version.js.map +1 -0
  288. package/package.json +65 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"control-state.d.ts","sourceRoot":"","sources":["../../src/daemon/control-state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,154 @@
1
+ import { isDeepStrictEqual } from 'node:util';
2
+ import { Type } from 'typebox';
3
+ import { AbsolutePathSchema, CounterSchema, IdSchema, InteractionSchema, JsonValueSchema, ModelSchema, PolicySchema, RunSchema, ThinkingSchema, UUID_V7_PATTERN, assertJson, parseSchema, enumOf, text, unboundedText } from '@felan-ai/session-protocol';
4
+ export const CONTROL_LIMITS = Object.freeze({
5
+ projections: 256,
6
+ projectionAgeMs: 7 * 24 * 60 * 60 * 1000,
7
+ });
8
+ export class ControlStoreError extends Error {
9
+ code;
10
+ constructor(code, message) {
11
+ super(message);
12
+ this.code = code;
13
+ this.name = 'ControlStoreError';
14
+ }
15
+ }
16
+ export const DigestSchema = Type.String({ pattern: '^[a-f0-9]{64}$' });
17
+ export const IdentitySchema = Type.Object({ sha256: DigestSchema, bytes: CounterSchema });
18
+ export const SessionProfileSchema = Type.Object({
19
+ extensionPaths: Type.Optional(Type.Array(AbsolutePathSchema, { uniqueItems: true })),
20
+ allowedTools: Type.Optional(Type.Array(IdSchema, { minItems: 1, uniqueItems: true })),
21
+ extensionConfigOverrides: Type.Optional(Type.Array(Type.Object({ extensionId: IdSchema, source: text(128, 1),
22
+ values: Type.Record(Type.String(), JsonValueSchema),
23
+ }))),
24
+ });
25
+ const message = Type.Object({ type: Type.Literal('message'), id: IdSchema, entryId: IdSchema, state: enumOf(['observed', 'missing']) });
26
+ /** Durable view records: message identities and the pending queue. Tool and status views are live-only. */
27
+ const projection = Type.Object({
28
+ key: text(256, 1), updatedAt: CounterSchema,
29
+ value: Type.Union([
30
+ message,
31
+ Type.Object({ type: Type.Literal('queue'), ids: Type.Array(IdSchema, { maxItems: 256 }), identity: IdentitySchema }),
32
+ ]),
33
+ });
34
+ export const ExecutionMetadataSchema = Type.Object({
35
+ request: Type.Object({
36
+ prompt: unboundedText(1), description: unboundedText(1), appendSystemPrompt: Type.Optional(unboundedText()),
37
+ model: Type.Optional(ModelSchema), thinking: Type.Optional(ThinkingSchema), label: Type.Optional(text(256, 1)),
38
+ maxTurns: Type.Optional(Type.Integer({ minimum: 1, maximum: 100 })),
39
+ timeoutMs: Type.Optional(Type.Integer({ minimum: 1, maximum: 86_400_000 })),
40
+ allowChildren: Type.Optional(Type.Boolean()), notifyOnCompletion: Type.Optional(Type.Boolean()),
41
+ excludedTools: Type.Optional(Type.Array(IdSchema, { maxItems: 256 })),
42
+ }),
43
+ createdAt: text(64, 1), startedAt: Type.Optional(text(64, 1)), completedAt: Type.Optional(text(64, 1)),
44
+ outcome: Type.Optional(enumOf(['completed', 'failed', 'timed_out', 'cancelled'])),
45
+ error: Type.Optional(Type.Object({ code: text(128, 1), message: unboundedText() })),
46
+ deliveryId: IdSchema, completionPending: Type.Boolean(),
47
+ message: Type.Optional(unboundedText()),
48
+ });
49
+ export const ControlSessionSchema = Type.Object({
50
+ id: IdSchema, root: IdSchema, parent: Type.Optional(IdSchema), cwd: AbsolutePathSchema, piPath: AbsolutePathSchema,
51
+ revision: CounterSchema, updatedAt: CounterSchema, state: enumOf(['open', 'closed']), residency: enumOf(['warm', 'evicted']),
52
+ run: RunSchema, policy: PolicySchema, title: unboundedText(), branch: Type.Optional(IdSchema), observedTip: Type.Optional(IdSchema),
53
+ model: Type.Optional(ModelSchema), thinking: Type.Optional(ThinkingSchema),
54
+ profile: Type.Optional(SessionProfileSchema), execution: Type.Optional(ExecutionMetadataSchema),
55
+ deletedAt: Type.Optional(CounterSchema),
56
+ draft: Type.Optional(Type.Boolean()),
57
+ projections: Type.Array(projection, { maxItems: CONTROL_LIMITS.projections }),
58
+ });
59
+ export const ControlSessionMetadataSchema = Type.Omit(ControlSessionSchema, ['projections']);
60
+ export const ControlProjectionRecordSchema = projection;
61
+ export const ControlRequestSchema = Type.Object({
62
+ id: Type.String({ pattern: UUID_V7_PATTERN }), principal: IdSchema, session: Type.Optional(IdSchema), op: IdSchema,
63
+ admittedAt: CounterSchema, retainUntil: CounterSchema, identity: IdentitySchema,
64
+ phase: enumOf(['intent', 'dispatch_intent', 'terminal']), response: Type.Optional(Type.Unknown()),
65
+ });
66
+ export const ControlContinuationSchema = Type.Object({
67
+ id: IdSchema, interaction: IdSchema, session: IdSchema,
68
+ phase: enumOf(['ready', 'dispatch_intent', 'completed', 'indeterminate', 'cancelled']),
69
+ createdAt: CounterSchema, updatedAt: CounterSchema,
70
+ });
71
+ export const ControlResourceSchema = Type.Object({
72
+ id: IdSchema, session: IdSchema, root: IdSchema, kind: enumOf(['foreground', 'pty', 'detached']),
73
+ state: enumOf(['running', 'exited', 'interrupted', 'missing', 'reconciling']),
74
+ reference: Type.Optional(AbsolutePathSchema), pid: Type.Optional(Type.Integer({ minimum: 1, maximum: 2_147_483_647 })),
75
+ startIdentity: Type.Optional(text(128, 1)), updatedAt: CounterSchema,
76
+ });
77
+ export const ControlStateSchema = Type.Object({
78
+ version: Type.Literal(1), namespace: IdSchema, agentDir: AbsolutePathSchema, clock: CounterSchema,
79
+ sessions: Type.Array(ControlSessionSchema),
80
+ requests: Type.Array(ControlRequestSchema),
81
+ interactions: Type.Array(InteractionSchema),
82
+ continuations: Type.Array(ControlContinuationSchema),
83
+ resources: Type.Array(ControlResourceSchema),
84
+ }, { additionalProperties: false });
85
+ export class ControlStateValidationError extends Error {
86
+ code;
87
+ constructor(code) {
88
+ super(code === 'unsupported_version' ? 'Control state version is unsupported.' : 'Control state is invalid.');
89
+ this.code = code;
90
+ this.name = 'ControlStateValidationError';
91
+ }
92
+ }
93
+ export function parseControlState(value) {
94
+ try {
95
+ checkObject(value);
96
+ if (value.version !== 1)
97
+ throw new ControlStateValidationError('unsupported_version');
98
+ return parseExact(ControlStateSchema, value);
99
+ }
100
+ catch (error) {
101
+ if (error instanceof ControlStateValidationError)
102
+ throw error;
103
+ throw new ControlStateValidationError('invalid_state');
104
+ }
105
+ }
106
+ const ROW_SCHEMAS = { sessions: ControlSessionMetadataSchema, requests: ControlRequestSchema, interactions: InteractionSchema, continuations: ControlContinuationSchema, resources: ControlResourceSchema, projections: ControlProjectionRecordSchema };
107
+ /** Validates one stored record (a session without its projections, or one projection) as `parseControlState` would. */
108
+ export function assertControlRow(table, value) {
109
+ try {
110
+ checkObject(value);
111
+ parseExact(ROW_SCHEMAS[table], value);
112
+ }
113
+ catch {
114
+ throw new ControlStateValidationError('invalid_state');
115
+ }
116
+ }
117
+ function parseExact(schema, value) {
118
+ assertJson(value);
119
+ checkJsonProperties(value);
120
+ const parsed = parseSchema(schema, value);
121
+ if (!isDeepStrictEqual(parsed, value))
122
+ throw new ControlStateValidationError('invalid_state');
123
+ return parsed;
124
+ }
125
+ function checkObject(value) {
126
+ if (value === null || typeof value !== 'object' || Array.isArray(value)
127
+ || Object.getPrototypeOf(value) !== Object.prototype && Object.getPrototypeOf(value) !== null)
128
+ throw new ControlStateValidationError('invalid_state');
129
+ for (const key of Reflect.ownKeys(value)) {
130
+ const descriptor = Object.getOwnPropertyDescriptor(value, key);
131
+ if (typeof key !== 'string' || !descriptor.enumerable || !('value' in descriptor))
132
+ throw new ControlStateValidationError('invalid_state');
133
+ }
134
+ }
135
+ function checkJsonProperties(value) {
136
+ if (value === null || typeof value !== 'object')
137
+ return;
138
+ if (Array.isArray(value)) {
139
+ if (Object.getPrototypeOf(value) !== Array.prototype || Reflect.ownKeys(value).length !== value.length + 1)
140
+ throw new ControlStateValidationError('invalid_state');
141
+ for (let index = 0; index < value.length; index++) {
142
+ const descriptor = Object.getOwnPropertyDescriptor(value, String(index));
143
+ if (!descriptor?.enumerable || !('value' in descriptor))
144
+ throw new ControlStateValidationError('invalid_state');
145
+ checkJsonProperties(descriptor.value);
146
+ }
147
+ }
148
+ else {
149
+ checkObject(value);
150
+ for (const child of Object.values(value))
151
+ checkJsonProperties(child);
152
+ }
153
+ }
154
+ //# sourceMappingURL=control-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"control-state.js","sourceRoot":"","sources":["../../src/daemon/control-state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,113 @@
1
+ import { type ControlContinuation, type ControlProjection, type ControlRequest, type ControlResource, type ControlSession, type ControlSessionMetadata, type ControlState, type SessionProfile } from './control-state.js';
2
+ import { type PersistenceBoundary, type RemoteDatabase } from './persistence.js';
3
+ import type { DaemonOwnership } from './ownership.js';
4
+ import { type RecoveryPlan } from './control-recovery.js';
5
+ import { type Interaction, type InteractionAnswer, type Response, type OperationParams } from '@felan-ai/session-protocol';
6
+ export interface ControlStoreOptions {
7
+ directory?: string;
8
+ now?: () => number;
9
+ fault?: (boundary: PersistenceBoundary) => void;
10
+ }
11
+ export interface ControlCommit<T> {
12
+ value: T;
13
+ revisions: Record<string, number>;
14
+ }
15
+ export declare class DaemonControlStore {
16
+ readonly owner: DaemonOwnership;
17
+ readonly directory: string;
18
+ private readonly file;
19
+ get database(): RemoteDatabase;
20
+ /** Committed rows are deep-frozen and shared with commit drafts, which replace a row before changing it. */
21
+ private state;
22
+ /** What the database holds for each row, so a commit writes only rows whose data or order changed. */
23
+ private persisted;
24
+ private maxOrd;
25
+ /** Whether the database holds this store's namespace; until then even an unchanged state is written. */
26
+ private initialized;
27
+ private readonly now;
28
+ private recoveryRequired;
29
+ private readonly unownedDirectories;
30
+ private readonly transientRevisionCeilings;
31
+ constructor(owner: DaemonOwnership, options?: ControlStoreOptions);
32
+ /** Only a foreign or structurally invalid file is discarded; individually inconsistent rows are dropped. */
33
+ private restore;
34
+ /**
35
+ * Session directories recorded outside the current store roots (for example after `daemon-store-roots.json` was lost)
36
+ * become owned roots again; rows whose directory cannot be owned are dropped individually.
37
+ */
38
+ ownPersistedRoots(): Promise<void>;
39
+ close(): void;
40
+ get needsRecovery(): boolean;
41
+ snapshot(): ControlState;
42
+ session(id: string): ControlSession;
43
+ /** Copies a session without its projections, which dominate the stored size. */
44
+ sessionMetadata(id: string): ControlSessionMetadata;
45
+ sessionMetadatas(): ControlSessionMetadata[];
46
+ findSessionMetadata(id: string): ControlSessionMetadata | undefined;
47
+ interactions(): Interaction[];
48
+ request(id: string): ControlRequest | undefined;
49
+ resource(id: string): ControlResource | undefined;
50
+ resources(): ControlResource[];
51
+ assertCurrent(): void;
52
+ createSession(input: Omit<ControlSession, 'revision' | 'updatedAt' | 'projections'>): ControlCommit<ControlSession>;
53
+ updateSession(id: string, patch: Partial<Pick<ControlSession, 'state' | 'residency' | 'run' | 'policy' | 'title' | 'branch' | 'observedTip' | 'model' | 'thinking' | 'execution' | 'draft'>>): ControlCommit<ControlSession>;
54
+ /** Tombstones a draft that was never used. Unlike deletion, no client request backs it. */
55
+ discardDraft(id: string): ControlCommit<ControlSession>;
56
+ configureSession(requestId: string, values: OperationParams<'config.set'>['values'], overrides: NonNullable<SessionProfile['extensionConfigOverrides']>): ControlCommit<ControlSession>;
57
+ interruptSessionRun(id: string, runId: string): ControlCommit<ControlSession>;
58
+ transitionSessionForSafety(id: string, transition: 'cancelling' | 'idle' | 'closed' | 'evicted'): ControlCommit<ControlSession>;
59
+ advanceTransientRevision(id: string): number;
60
+ project(id: string, values: readonly ControlProjection[]): ControlCommit<ControlSession>;
61
+ reconcilePi(id: string, observation: {
62
+ present: {
63
+ id: string;
64
+ entryId: string;
65
+ }[];
66
+ absentEntryIds: string[];
67
+ }): ControlCommit<ControlSession>;
68
+ admit(value: unknown, principal: string): ControlCommit<ControlRequest>;
69
+ markDispatched(id: string): ControlCommit<ControlRequest>;
70
+ markSessionDeleted(requestId: string): ControlCommit<ControlSession>;
71
+ finishRequest(id: string, response: unknown): ControlCommit<Response>;
72
+ putInteraction(value: unknown): ControlCommit<Interaction>;
73
+ deferInteraction(id: string): ControlCommit<Interaction>;
74
+ cancelInteraction(id: string, reason: 'abort' | 'timeout' | 'unsupported' | 'drain' | 'restart'): ControlCommit<Interaction>;
75
+ answerInteraction(requestId: string, answer: InteractionAnswer | {
76
+ cancelled: true;
77
+ reason: 'user';
78
+ }, continuationId?: string, responder?: string): ControlCommit<Interaction>;
79
+ transitionContinuation(id: string, phase: 'dispatch_intent' | 'completed' | 'indeterminate'): ControlCommit<ControlContinuation>;
80
+ putResource(value: unknown): ControlCommit<ControlState['resources'][number]>;
81
+ recover(): ControlCommit<Omit<RecoveryPlan, 'changedSessions'>>;
82
+ compact(): ControlCommit<void>;
83
+ /** `deep` gives the change a fully editable copy, for changes that update rows in place. */
84
+ private commit;
85
+ /**
86
+ * Writes the rows whose committed object, data or position changed. Changed rows are validated individually;
87
+ * cross-row references are rechecked for every row because a change can invalidate rows that refer to it.
88
+ * A session whose committed object is unchanged also has unchanged projections, which are not visited.
89
+ */
90
+ private persist;
91
+ /** The stored session row: metadata only, with any reserved transient revision ceiling. */
92
+ private durableSession;
93
+ private parseResponse;
94
+ private validate;
95
+ /** Drops individually inconsistent rows (and the rows that depend on them) from a structurally valid persisted state. */
96
+ private repair;
97
+ /** Records directories outside the current roots for re-ownership; a path whose canonical identity changed is unusable. */
98
+ private usablePersistedPath;
99
+ private dropSessions;
100
+ /** `structural` rechecks the record itself; unchanged committed records only need their references checked. */
101
+ private validRequest;
102
+ private validInteraction;
103
+ private validContinuation;
104
+ private validSession;
105
+ private validResource;
106
+ private prune;
107
+ private trimProjections;
108
+ private findSession;
109
+ private findRequest;
110
+ private findInteraction;
111
+ private time;
112
+ }
113
+ //# sourceMappingURL=control-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"control-store.d.ts","sourceRoot":"","sources":["../../src/daemon/control-store.ts"],"names":[],"mappings":"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"}