@kynetic-ai/spec 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 (278) hide show
  1. package/README.md +263 -0
  2. package/dist/acp/client.d.ts +159 -0
  3. package/dist/acp/client.d.ts.map +1 -0
  4. package/dist/acp/client.js +255 -0
  5. package/dist/acp/client.js.map +1 -0
  6. package/dist/acp/framing.d.ts +119 -0
  7. package/dist/acp/framing.d.ts.map +1 -0
  8. package/dist/acp/framing.js +302 -0
  9. package/dist/acp/framing.js.map +1 -0
  10. package/dist/acp/index.d.ts +14 -0
  11. package/dist/acp/index.d.ts.map +1 -0
  12. package/dist/acp/index.js +13 -0
  13. package/dist/acp/index.js.map +1 -0
  14. package/dist/acp/types.d.ts +89 -0
  15. package/dist/acp/types.d.ts.map +1 -0
  16. package/dist/acp/types.js +99 -0
  17. package/dist/acp/types.js.map +1 -0
  18. package/dist/agents/adapters.d.ts +55 -0
  19. package/dist/agents/adapters.d.ts.map +1 -0
  20. package/dist/agents/adapters.js +84 -0
  21. package/dist/agents/adapters.js.map +1 -0
  22. package/dist/agents/index.d.ts +8 -0
  23. package/dist/agents/index.d.ts.map +1 -0
  24. package/dist/agents/index.js +10 -0
  25. package/dist/agents/index.js.map +1 -0
  26. package/dist/agents/spawner.d.ts +53 -0
  27. package/dist/agents/spawner.d.ts.map +1 -0
  28. package/dist/agents/spawner.js +83 -0
  29. package/dist/agents/spawner.js.map +1 -0
  30. package/dist/cli/batch.d.ts +82 -0
  31. package/dist/cli/batch.d.ts.map +1 -0
  32. package/dist/cli/batch.js +162 -0
  33. package/dist/cli/batch.js.map +1 -0
  34. package/dist/cli/commands/clone-for-testing.d.ts +6 -0
  35. package/dist/cli/commands/clone-for-testing.d.ts.map +1 -0
  36. package/dist/cli/commands/clone-for-testing.js +176 -0
  37. package/dist/cli/commands/clone-for-testing.js.map +1 -0
  38. package/dist/cli/commands/derive.d.ts +6 -0
  39. package/dist/cli/commands/derive.d.ts.map +1 -0
  40. package/dist/cli/commands/derive.js +450 -0
  41. package/dist/cli/commands/derive.js.map +1 -0
  42. package/dist/cli/commands/help.d.ts +6 -0
  43. package/dist/cli/commands/help.d.ts.map +1 -0
  44. package/dist/cli/commands/help.js +196 -0
  45. package/dist/cli/commands/help.js.map +1 -0
  46. package/dist/cli/commands/inbox.d.ts +6 -0
  47. package/dist/cli/commands/inbox.d.ts.map +1 -0
  48. package/dist/cli/commands/inbox.js +235 -0
  49. package/dist/cli/commands/inbox.js.map +1 -0
  50. package/dist/cli/commands/index.d.ts +20 -0
  51. package/dist/cli/commands/index.d.ts.map +1 -0
  52. package/dist/cli/commands/index.js +21 -0
  53. package/dist/cli/commands/index.js.map +1 -0
  54. package/dist/cli/commands/init.d.ts +6 -0
  55. package/dist/cli/commands/init.d.ts.map +1 -0
  56. package/dist/cli/commands/init.js +245 -0
  57. package/dist/cli/commands/init.js.map +1 -0
  58. package/dist/cli/commands/item.d.ts +6 -0
  59. package/dist/cli/commands/item.d.ts.map +1 -0
  60. package/dist/cli/commands/item.js +1311 -0
  61. package/dist/cli/commands/item.js.map +1 -0
  62. package/dist/cli/commands/link.d.ts +6 -0
  63. package/dist/cli/commands/link.d.ts.map +1 -0
  64. package/dist/cli/commands/link.js +288 -0
  65. package/dist/cli/commands/link.js.map +1 -0
  66. package/dist/cli/commands/log.d.ts +16 -0
  67. package/dist/cli/commands/log.d.ts.map +1 -0
  68. package/dist/cli/commands/log.js +291 -0
  69. package/dist/cli/commands/log.js.map +1 -0
  70. package/dist/cli/commands/meta.d.ts +15 -0
  71. package/dist/cli/commands/meta.d.ts.map +1 -0
  72. package/dist/cli/commands/meta.js +1378 -0
  73. package/dist/cli/commands/meta.js.map +1 -0
  74. package/dist/cli/commands/module.d.ts +6 -0
  75. package/dist/cli/commands/module.d.ts.map +1 -0
  76. package/dist/cli/commands/module.js +102 -0
  77. package/dist/cli/commands/module.js.map +1 -0
  78. package/dist/cli/commands/ralph.d.ts +9 -0
  79. package/dist/cli/commands/ralph.d.ts.map +1 -0
  80. package/dist/cli/commands/ralph.js +465 -0
  81. package/dist/cli/commands/ralph.js.map +1 -0
  82. package/dist/cli/commands/search.d.ts +6 -0
  83. package/dist/cli/commands/search.d.ts.map +1 -0
  84. package/dist/cli/commands/search.js +134 -0
  85. package/dist/cli/commands/search.js.map +1 -0
  86. package/dist/cli/commands/session.d.ts +164 -0
  87. package/dist/cli/commands/session.d.ts.map +1 -0
  88. package/dist/cli/commands/session.js +745 -0
  89. package/dist/cli/commands/session.js.map +1 -0
  90. package/dist/cli/commands/setup.d.ts +26 -0
  91. package/dist/cli/commands/setup.d.ts.map +1 -0
  92. package/dist/cli/commands/setup.js +586 -0
  93. package/dist/cli/commands/setup.js.map +1 -0
  94. package/dist/cli/commands/shadow.d.ts +6 -0
  95. package/dist/cli/commands/shadow.d.ts.map +1 -0
  96. package/dist/cli/commands/shadow.js +299 -0
  97. package/dist/cli/commands/shadow.js.map +1 -0
  98. package/dist/cli/commands/task.d.ts +6 -0
  99. package/dist/cli/commands/task.d.ts.map +1 -0
  100. package/dist/cli/commands/task.js +1514 -0
  101. package/dist/cli/commands/task.js.map +1 -0
  102. package/dist/cli/commands/tasks.d.ts +6 -0
  103. package/dist/cli/commands/tasks.d.ts.map +1 -0
  104. package/dist/cli/commands/tasks.js +347 -0
  105. package/dist/cli/commands/tasks.js.map +1 -0
  106. package/dist/cli/commands/trait.d.ts +10 -0
  107. package/dist/cli/commands/trait.d.ts.map +1 -0
  108. package/dist/cli/commands/trait.js +295 -0
  109. package/dist/cli/commands/trait.js.map +1 -0
  110. package/dist/cli/commands/validate.d.ts +6 -0
  111. package/dist/cli/commands/validate.d.ts.map +1 -0
  112. package/dist/cli/commands/validate.js +626 -0
  113. package/dist/cli/commands/validate.js.map +1 -0
  114. package/dist/cli/exit-codes.d.ts +62 -0
  115. package/dist/cli/exit-codes.d.ts.map +1 -0
  116. package/dist/cli/exit-codes.js +65 -0
  117. package/dist/cli/exit-codes.js.map +1 -0
  118. package/dist/cli/help/content.d.ts +35 -0
  119. package/dist/cli/help/content.d.ts.map +1 -0
  120. package/dist/cli/help/content.js +312 -0
  121. package/dist/cli/help/content.js.map +1 -0
  122. package/dist/cli/index.d.ts +5 -0
  123. package/dist/cli/index.d.ts.map +1 -0
  124. package/dist/cli/index.js +85 -0
  125. package/dist/cli/index.js.map +1 -0
  126. package/dist/cli/introspection.d.ts +87 -0
  127. package/dist/cli/introspection.d.ts.map +1 -0
  128. package/dist/cli/introspection.js +127 -0
  129. package/dist/cli/introspection.js.map +1 -0
  130. package/dist/cli/output.d.ts +56 -0
  131. package/dist/cli/output.d.ts.map +1 -0
  132. package/dist/cli/output.js +467 -0
  133. package/dist/cli/output.js.map +1 -0
  134. package/dist/cli/suggest.d.ts +16 -0
  135. package/dist/cli/suggest.d.ts.map +1 -0
  136. package/dist/cli/suggest.js +72 -0
  137. package/dist/cli/suggest.js.map +1 -0
  138. package/dist/index.d.ts +3 -0
  139. package/dist/index.d.ts.map +1 -0
  140. package/dist/index.js +5 -0
  141. package/dist/index.js.map +1 -0
  142. package/dist/parser/alignment.d.ts +113 -0
  143. package/dist/parser/alignment.d.ts.map +1 -0
  144. package/dist/parser/alignment.js +261 -0
  145. package/dist/parser/alignment.js.map +1 -0
  146. package/dist/parser/assess.d.ts +81 -0
  147. package/dist/parser/assess.d.ts.map +1 -0
  148. package/dist/parser/assess.js +197 -0
  149. package/dist/parser/assess.js.map +1 -0
  150. package/dist/parser/convention-validation.d.ts +48 -0
  151. package/dist/parser/convention-validation.d.ts.map +1 -0
  152. package/dist/parser/convention-validation.js +167 -0
  153. package/dist/parser/convention-validation.js.map +1 -0
  154. package/dist/parser/fix.d.ts +38 -0
  155. package/dist/parser/fix.d.ts.map +1 -0
  156. package/dist/parser/fix.js +185 -0
  157. package/dist/parser/fix.js.map +1 -0
  158. package/dist/parser/index.d.ts +12 -0
  159. package/dist/parser/index.d.ts.map +1 -0
  160. package/dist/parser/index.js +13 -0
  161. package/dist/parser/index.js.map +1 -0
  162. package/dist/parser/items.d.ts +138 -0
  163. package/dist/parser/items.d.ts.map +1 -0
  164. package/dist/parser/items.js +321 -0
  165. package/dist/parser/items.js.map +1 -0
  166. package/dist/parser/meta.d.ts +120 -0
  167. package/dist/parser/meta.d.ts.map +1 -0
  168. package/dist/parser/meta.js +441 -0
  169. package/dist/parser/meta.js.map +1 -0
  170. package/dist/parser/refs.d.ts +185 -0
  171. package/dist/parser/refs.d.ts.map +1 -0
  172. package/dist/parser/refs.js +404 -0
  173. package/dist/parser/refs.js.map +1 -0
  174. package/dist/parser/shadow.d.ts +253 -0
  175. package/dist/parser/shadow.d.ts.map +1 -0
  176. package/dist/parser/shadow.js +1053 -0
  177. package/dist/parser/shadow.js.map +1 -0
  178. package/dist/parser/traits.d.ts +72 -0
  179. package/dist/parser/traits.d.ts.map +1 -0
  180. package/dist/parser/traits.js +120 -0
  181. package/dist/parser/traits.js.map +1 -0
  182. package/dist/parser/validate.d.ts +89 -0
  183. package/dist/parser/validate.d.ts.map +1 -0
  184. package/dist/parser/validate.js +817 -0
  185. package/dist/parser/validate.js.map +1 -0
  186. package/dist/parser/yaml.d.ts +326 -0
  187. package/dist/parser/yaml.d.ts.map +1 -0
  188. package/dist/parser/yaml.js +1383 -0
  189. package/dist/parser/yaml.js.map +1 -0
  190. package/dist/ralph/cli-renderer.d.ts +20 -0
  191. package/dist/ralph/cli-renderer.d.ts.map +1 -0
  192. package/dist/ralph/cli-renderer.js +179 -0
  193. package/dist/ralph/cli-renderer.js.map +1 -0
  194. package/dist/ralph/events.d.ts +65 -0
  195. package/dist/ralph/events.d.ts.map +1 -0
  196. package/dist/ralph/events.js +397 -0
  197. package/dist/ralph/events.js.map +1 -0
  198. package/dist/ralph/index.d.ts +8 -0
  199. package/dist/ralph/index.d.ts.map +1 -0
  200. package/dist/ralph/index.js +10 -0
  201. package/dist/ralph/index.js.map +1 -0
  202. package/dist/schema/common.d.ts +46 -0
  203. package/dist/schema/common.d.ts.map +1 -0
  204. package/dist/schema/common.js +71 -0
  205. package/dist/schema/common.js.map +1 -0
  206. package/dist/schema/inbox.d.ts +90 -0
  207. package/dist/schema/inbox.d.ts.map +1 -0
  208. package/dist/schema/inbox.js +30 -0
  209. package/dist/schema/inbox.js.map +1 -0
  210. package/dist/schema/index.d.ts +6 -0
  211. package/dist/schema/index.d.ts.map +1 -0
  212. package/dist/schema/index.js +7 -0
  213. package/dist/schema/index.js.map +1 -0
  214. package/dist/schema/meta.d.ts +762 -0
  215. package/dist/schema/meta.d.ts.map +1 -0
  216. package/dist/schema/meta.js +144 -0
  217. package/dist/schema/meta.js.map +1 -0
  218. package/dist/schema/spec.d.ts +912 -0
  219. package/dist/schema/spec.d.ts.map +1 -0
  220. package/dist/schema/spec.js +104 -0
  221. package/dist/schema/spec.js.map +1 -0
  222. package/dist/schema/task.d.ts +664 -0
  223. package/dist/schema/task.d.ts.map +1 -0
  224. package/dist/schema/task.js +130 -0
  225. package/dist/schema/task.js.map +1 -0
  226. package/dist/sessions/index.d.ts +11 -0
  227. package/dist/sessions/index.d.ts.map +1 -0
  228. package/dist/sessions/index.js +13 -0
  229. package/dist/sessions/index.js.map +1 -0
  230. package/dist/sessions/store.d.ts +144 -0
  231. package/dist/sessions/store.d.ts.map +1 -0
  232. package/dist/sessions/store.js +325 -0
  233. package/dist/sessions/store.js.map +1 -0
  234. package/dist/sessions/types.d.ts +157 -0
  235. package/dist/sessions/types.d.ts.map +1 -0
  236. package/dist/sessions/types.js +90 -0
  237. package/dist/sessions/types.js.map +1 -0
  238. package/dist/strings/errors.d.ts +420 -0
  239. package/dist/strings/errors.d.ts.map +1 -0
  240. package/dist/strings/errors.js +282 -0
  241. package/dist/strings/errors.js.map +1 -0
  242. package/dist/strings/guidance.d.ts +65 -0
  243. package/dist/strings/guidance.d.ts.map +1 -0
  244. package/dist/strings/guidance.js +66 -0
  245. package/dist/strings/guidance.js.map +1 -0
  246. package/dist/strings/index.d.ts +12 -0
  247. package/dist/strings/index.d.ts.map +1 -0
  248. package/dist/strings/index.js +12 -0
  249. package/dist/strings/index.js.map +1 -0
  250. package/dist/strings/labels.d.ts +74 -0
  251. package/dist/strings/labels.d.ts.map +1 -0
  252. package/dist/strings/labels.js +75 -0
  253. package/dist/strings/labels.js.map +1 -0
  254. package/dist/strings/validation.d.ts +126 -0
  255. package/dist/strings/validation.d.ts.map +1 -0
  256. package/dist/strings/validation.js +135 -0
  257. package/dist/strings/validation.js.map +1 -0
  258. package/dist/utils/commit.d.ts +23 -0
  259. package/dist/utils/commit.d.ts.map +1 -0
  260. package/dist/utils/commit.js +67 -0
  261. package/dist/utils/commit.js.map +1 -0
  262. package/dist/utils/git.d.ts +57 -0
  263. package/dist/utils/git.d.ts.map +1 -0
  264. package/dist/utils/git.js +192 -0
  265. package/dist/utils/git.js.map +1 -0
  266. package/dist/utils/grep.d.ts +28 -0
  267. package/dist/utils/grep.d.ts.map +1 -0
  268. package/dist/utils/grep.js +86 -0
  269. package/dist/utils/grep.js.map +1 -0
  270. package/dist/utils/index.d.ts +8 -0
  271. package/dist/utils/index.d.ts.map +1 -0
  272. package/dist/utils/index.js +6 -0
  273. package/dist/utils/index.js.map +1 -0
  274. package/dist/utils/time.d.ts +18 -0
  275. package/dist/utils/time.d.ts.map +1 -0
  276. package/dist/utils/time.js +61 -0
  277. package/dist/utils/time.js.map +1 -0
  278. package/package.json +62 -0
@@ -0,0 +1,157 @@
1
+ /**
2
+ * Session event storage types and schemas.
3
+ *
4
+ * Provides JSONL-based event storage for agent sessions with:
5
+ * - Session metadata tracking
6
+ * - Append-only event logs
7
+ * - Integration with kspec commit boundaries
8
+ */
9
+ import { z } from 'zod';
10
+ /**
11
+ * Session status enum.
12
+ * - active: Session is in progress
13
+ * - completed: Session ended normally
14
+ * - abandoned: Session ended without explicit close
15
+ */
16
+ export declare const SessionStatusSchema: z.ZodEnum<["active", "completed", "abandoned"]>;
17
+ export type SessionStatus = z.infer<typeof SessionStatusSchema>;
18
+ /**
19
+ * Session metadata stored in session.yaml.
20
+ * AC-5: includes task_id (optional), agent_type, status, started_at, ended_at
21
+ */
22
+ export declare const SessionMetadataSchema: z.ZodObject<{
23
+ /** Session ULID */
24
+ id: z.ZodString;
25
+ /** Optional task being worked on */
26
+ task_id: z.ZodOptional<z.ZodString>;
27
+ /** Type of agent running the session */
28
+ agent_type: z.ZodString;
29
+ /** Current session status */
30
+ status: z.ZodEnum<["active", "completed", "abandoned"]>;
31
+ /** When session started (ISO 8601) */
32
+ started_at: z.ZodString;
33
+ /** When session ended (ISO 8601) - only set when status != 'active' */
34
+ ended_at: z.ZodOptional<z.ZodString>;
35
+ }, "strip", z.ZodTypeAny, {
36
+ status: "completed" | "active" | "abandoned";
37
+ id: string;
38
+ started_at: string;
39
+ agent_type: string;
40
+ task_id?: string | undefined;
41
+ ended_at?: string | undefined;
42
+ }, {
43
+ status: "completed" | "active" | "abandoned";
44
+ id: string;
45
+ started_at: string;
46
+ agent_type: string;
47
+ task_id?: string | undefined;
48
+ ended_at?: string | undefined;
49
+ }>;
50
+ export type SessionMetadata = z.infer<typeof SessionMetadataSchema>;
51
+ /**
52
+ * Input for creating a new session.
53
+ */
54
+ export declare const SessionMetadataInputSchema: z.ZodObject<Omit<{
55
+ /** Session ULID */
56
+ id: z.ZodString;
57
+ /** Optional task being worked on */
58
+ task_id: z.ZodOptional<z.ZodString>;
59
+ /** Type of agent running the session */
60
+ agent_type: z.ZodString;
61
+ /** Current session status */
62
+ status: z.ZodEnum<["active", "completed", "abandoned"]>;
63
+ /** When session started (ISO 8601) */
64
+ started_at: z.ZodString;
65
+ /** When session ended (ISO 8601) - only set when status != 'active' */
66
+ ended_at: z.ZodOptional<z.ZodString>;
67
+ }, "status" | "started_at" | "ended_at"> & {
68
+ status: z.ZodOptional<z.ZodEnum<["active", "completed", "abandoned"]>>;
69
+ started_at: z.ZodOptional<z.ZodString>;
70
+ }, "strip", z.ZodTypeAny, {
71
+ id: string;
72
+ agent_type: string;
73
+ status?: "completed" | "active" | "abandoned" | undefined;
74
+ started_at?: string | undefined;
75
+ task_id?: string | undefined;
76
+ }, {
77
+ id: string;
78
+ agent_type: string;
79
+ status?: "completed" | "active" | "abandoned" | undefined;
80
+ started_at?: string | undefined;
81
+ task_id?: string | undefined;
82
+ }>;
83
+ export type SessionMetadataInput = z.infer<typeof SessionMetadataInputSchema>;
84
+ /**
85
+ * Supported event types for session tracking.
86
+ */
87
+ export declare const EventTypeSchema: z.ZodEnum<["session.start", "session.update", "session.end", "prompt.sent", "tool.call", "tool.result", "note"]>;
88
+ export type EventType = z.infer<typeof EventTypeSchema>;
89
+ /**
90
+ * A single event in the session log.
91
+ * AC-2: Events include ts and seq auto-assigned on append.
92
+ */
93
+ export declare const SessionEventSchema: z.ZodObject<{
94
+ /** Unix timestamp in milliseconds (auto-assigned) */
95
+ ts: z.ZodNumber;
96
+ /** Sequence number in session (auto-assigned, 0-indexed) */
97
+ seq: z.ZodNumber;
98
+ /** Event type */
99
+ type: z.ZodEnum<["session.start", "session.update", "session.end", "prompt.sent", "tool.call", "tool.result", "note"]>;
100
+ /** Session this event belongs to */
101
+ session_id: z.ZodString;
102
+ /** Optional trace ID for correlation */
103
+ trace_id: z.ZodOptional<z.ZodString>;
104
+ /** Type-specific event payload */
105
+ data: z.ZodUnknown;
106
+ }, "strip", z.ZodTypeAny, {
107
+ type: "note" | "session.start" | "session.update" | "session.end" | "prompt.sent" | "tool.call" | "tool.result";
108
+ ts: number;
109
+ seq: number;
110
+ session_id: string;
111
+ data?: unknown;
112
+ trace_id?: string | undefined;
113
+ }, {
114
+ type: "note" | "session.start" | "session.update" | "session.end" | "prompt.sent" | "tool.call" | "tool.result";
115
+ ts: number;
116
+ seq: number;
117
+ session_id: string;
118
+ data?: unknown;
119
+ trace_id?: string | undefined;
120
+ }>;
121
+ export type SessionEvent = z.infer<typeof SessionEventSchema>;
122
+ /**
123
+ * Input for appending an event (without auto-assigned fields).
124
+ */
125
+ export declare const SessionEventInputSchema: z.ZodObject<Omit<{
126
+ /** Unix timestamp in milliseconds (auto-assigned) */
127
+ ts: z.ZodNumber;
128
+ /** Sequence number in session (auto-assigned, 0-indexed) */
129
+ seq: z.ZodNumber;
130
+ /** Event type */
131
+ type: z.ZodEnum<["session.start", "session.update", "session.end", "prompt.sent", "tool.call", "tool.result", "note"]>;
132
+ /** Session this event belongs to */
133
+ session_id: z.ZodString;
134
+ /** Optional trace ID for correlation */
135
+ trace_id: z.ZodOptional<z.ZodString>;
136
+ /** Type-specific event payload */
137
+ data: z.ZodUnknown;
138
+ }, "ts" | "seq"> & {
139
+ ts: z.ZodOptional<z.ZodNumber>;
140
+ seq: z.ZodOptional<z.ZodNumber>;
141
+ }, "strip", z.ZodTypeAny, {
142
+ type: "note" | "session.start" | "session.update" | "session.end" | "prompt.sent" | "tool.call" | "tool.result";
143
+ session_id: string;
144
+ data?: unknown;
145
+ ts?: number | undefined;
146
+ seq?: number | undefined;
147
+ trace_id?: string | undefined;
148
+ }, {
149
+ type: "note" | "session.start" | "session.update" | "session.end" | "prompt.sent" | "tool.call" | "tool.result";
150
+ session_id: string;
151
+ data?: unknown;
152
+ ts?: number | undefined;
153
+ seq?: number | undefined;
154
+ trace_id?: string | undefined;
155
+ }>;
156
+ export type SessionEventInput = z.infer<typeof SessionEventInputSchema>;
157
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/sessions/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,iDAA+C,CAAC;AAChF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAIhE;;;GAGG;AACH,eAAO,MAAM,qBAAqB;IAChC,mBAAmB;;IAGnB,oCAAoC;;IAGpC,wCAAwC;;IAGxC,6BAA6B;;IAG7B,sCAAsC;;IAGtC,uEAAuE;;;;;;;;;;;;;;;;EAEvE,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE;;GAEG;AACH,eAAO,MAAM,0BAA0B;IAxBrC,mBAAmB;;IAGnB,oCAAoC;;IAGpC,wCAAwC;;IAGxC,6BAA6B;;IAG7B,sCAAsC;;IAGtC,uEAAuE;;;;;;;;;;;;;;;;;EAgBvE,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAI9E;;GAEG;AACH,eAAO,MAAM,eAAe,kHAQ1B,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAIxD;;;GAGG;AACH,eAAO,MAAM,kBAAkB;IAC7B,qDAAqD;;IAGrD,4DAA4D;;IAG5D,iBAAiB;;IAGjB,oCAAoC;;IAGpC,wCAAwC;;IAGxC,kCAAkC;;;;;;;;;;;;;;;;EAElC,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;GAEG;AACH,eAAO,MAAM,uBAAuB;IAxBlC,qDAAqD;;IAGrD,4DAA4D;;IAG5D,iBAAiB;;IAGjB,oCAAoC;;IAGpC,wCAAwC;;IAGxC,kCAAkC;;;;;;;;;;;;;;;;;;;EAelC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Session event storage types and schemas.
3
+ *
4
+ * Provides JSONL-based event storage for agent sessions with:
5
+ * - Session metadata tracking
6
+ * - Append-only event logs
7
+ * - Integration with kspec commit boundaries
8
+ */
9
+ import { z } from 'zod';
10
+ // ─── Session Status ──────────────────────────────────────────────────────────
11
+ /**
12
+ * Session status enum.
13
+ * - active: Session is in progress
14
+ * - completed: Session ended normally
15
+ * - abandoned: Session ended without explicit close
16
+ */
17
+ export const SessionStatusSchema = z.enum(['active', 'completed', 'abandoned']);
18
+ // ─── Session Metadata ────────────────────────────────────────────────────────
19
+ /**
20
+ * Session metadata stored in session.yaml.
21
+ * AC-5: includes task_id (optional), agent_type, status, started_at, ended_at
22
+ */
23
+ export const SessionMetadataSchema = z.object({
24
+ /** Session ULID */
25
+ id: z.string(),
26
+ /** Optional task being worked on */
27
+ task_id: z.string().optional(),
28
+ /** Type of agent running the session */
29
+ agent_type: z.string(),
30
+ /** Current session status */
31
+ status: SessionStatusSchema,
32
+ /** When session started (ISO 8601) */
33
+ started_at: z.string().datetime(),
34
+ /** When session ended (ISO 8601) - only set when status != 'active' */
35
+ ended_at: z.string().datetime().optional(),
36
+ });
37
+ /**
38
+ * Input for creating a new session.
39
+ */
40
+ export const SessionMetadataInputSchema = SessionMetadataSchema.omit({
41
+ status: true,
42
+ started_at: true,
43
+ ended_at: true,
44
+ }).extend({
45
+ status: SessionStatusSchema.optional(),
46
+ started_at: z.string().datetime().optional(),
47
+ });
48
+ // ─── Event Types ─────────────────────────────────────────────────────────────
49
+ /**
50
+ * Supported event types for session tracking.
51
+ */
52
+ export const EventTypeSchema = z.enum([
53
+ 'session.start',
54
+ 'session.update',
55
+ 'session.end',
56
+ 'prompt.sent',
57
+ 'tool.call',
58
+ 'tool.result',
59
+ 'note',
60
+ ]);
61
+ // ─── Session Event ───────────────────────────────────────────────────────────
62
+ /**
63
+ * A single event in the session log.
64
+ * AC-2: Events include ts and seq auto-assigned on append.
65
+ */
66
+ export const SessionEventSchema = z.object({
67
+ /** Unix timestamp in milliseconds (auto-assigned) */
68
+ ts: z.number(),
69
+ /** Sequence number in session (auto-assigned, 0-indexed) */
70
+ seq: z.number().int().nonnegative(),
71
+ /** Event type */
72
+ type: EventTypeSchema,
73
+ /** Session this event belongs to */
74
+ session_id: z.string(),
75
+ /** Optional trace ID for correlation */
76
+ trace_id: z.string().optional(),
77
+ /** Type-specific event payload */
78
+ data: z.unknown(),
79
+ });
80
+ /**
81
+ * Input for appending an event (without auto-assigned fields).
82
+ */
83
+ export const SessionEventInputSchema = SessionEventSchema.omit({
84
+ ts: true,
85
+ seq: true,
86
+ }).extend({
87
+ ts: z.number().optional(),
88
+ seq: z.number().int().nonnegative().optional(),
89
+ });
90
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/sessions/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,gFAAgF;AAEhF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;AAGhF,gFAAgF;AAEhF;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,mBAAmB;IACnB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IAEd,oCAAoC;IACpC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAE9B,wCAAwC;IACxC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IAEtB,6BAA6B;IAC7B,MAAM,EAAE,mBAAmB;IAE3B,sCAAsC;IACtC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAEjC,uEAAuE;IACvE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAC3C,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,qBAAqB,CAAC,IAAI,CAAC;IACnE,MAAM,EAAE,IAAI;IACZ,UAAU,EAAE,IAAI;IAChB,QAAQ,EAAE,IAAI;CACf,CAAC,CAAC,MAAM,CAAC;IACR,MAAM,EAAE,mBAAmB,CAAC,QAAQ,EAAE;IACtC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAC7C,CAAC,CAAC;AAIH,gFAAgF;AAEhF;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC;IACpC,eAAe;IACf,gBAAgB;IAChB,aAAa;IACb,aAAa;IACb,WAAW;IACX,aAAa;IACb,MAAM;CACP,CAAC,CAAC;AAIH,gFAAgF;AAEhF;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,qDAAqD;IACrD,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IAEd,4DAA4D;IAC5D,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAEnC,iBAAiB;IACjB,IAAI,EAAE,eAAe;IAErB,oCAAoC;IACpC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IAEtB,wCAAwC;IACxC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAE/B,kCAAkC;IAClC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE;CAClB,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,kBAAkB,CAAC,IAAI,CAAC;IAC7D,EAAE,EAAE,IAAI;IACR,GAAG,EAAE,IAAI;CACV,CAAC,CAAC,MAAM,CAAC;IACR,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACzB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;CAC/C,CAAC,CAAC"}