@pennixrv/trellis-core 0.7.0-beta.9 → 0.7.1-beta.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 (231) hide show
  1. package/dist/index.d.ts +1 -1
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +3 -3
  4. package/dist/index.js.map +1 -1
  5. package/dist/mem/adapters/claude.d.ts +1 -1
  6. package/dist/mem/adapters/claude.js +1 -1
  7. package/dist/mem/adapters/codex.d.ts +1 -1
  8. package/dist/mem/adapters/codex.js +1 -1
  9. package/dist/mem/adapters/devin.d.ts +1 -1
  10. package/dist/mem/adapters/devin.js +1 -1
  11. package/dist/mem/adapters/grok.d.ts +1 -1
  12. package/dist/mem/adapters/grok.js +1 -1
  13. package/dist/mem/adapters/zcode.d.ts +1 -1
  14. package/dist/mem/adapters/zcode.js +1 -1
  15. package/dist/mem/index.d.ts +3 -3
  16. package/dist/mem/index.js +3 -3
  17. package/dist/mem/phase.d.ts +4 -4
  18. package/dist/mem/phase.d.ts.map +1 -1
  19. package/dist/mem/phase.js +23 -26
  20. package/dist/mem/phase.js.map +1 -1
  21. package/dist/mem/sessions.js +2 -2
  22. package/dist/mem/sessions.js.map +1 -1
  23. package/dist/mem/types.d.ts +6 -6
  24. package/dist/mem/types.d.ts.map +1 -1
  25. package/dist/mem/types.js +3 -3
  26. package/dist/task/index.d.ts +2 -2
  27. package/dist/task/index.d.ts.map +1 -1
  28. package/dist/task/index.js +2 -2
  29. package/dist/task/index.js.map +1 -1
  30. package/dist/task/phase.d.ts +61 -26
  31. package/dist/task/phase.d.ts.map +1 -1
  32. package/dist/task/phase.js +152 -21
  33. package/dist/task/phase.js.map +1 -1
  34. package/dist/teamwork/api/assert.d.ts +3 -0
  35. package/dist/teamwork/api/assert.d.ts.map +1 -0
  36. package/dist/teamwork/api/assert.js +11 -0
  37. package/dist/teamwork/api/assert.js.map +1 -0
  38. package/dist/{channel → teamwork}/api/context.d.ts +8 -8
  39. package/dist/teamwork/api/context.d.ts.map +1 -0
  40. package/dist/{channel → teamwork}/api/context.js +32 -32
  41. package/dist/teamwork/api/context.js.map +1 -0
  42. package/dist/teamwork/api/coordination.d.ts +40 -0
  43. package/dist/teamwork/api/coordination.d.ts.map +1 -0
  44. package/dist/teamwork/api/coordination.js +50 -0
  45. package/dist/teamwork/api/coordination.js.map +1 -0
  46. package/dist/teamwork/api/create.d.ts +9 -0
  47. package/dist/teamwork/api/create.d.ts.map +1 -0
  48. package/dist/{channel → teamwork}/api/create.js +17 -20
  49. package/dist/teamwork/api/create.js.map +1 -0
  50. package/dist/{channel → teamwork}/api/inbox.d.ts +9 -9
  51. package/dist/teamwork/api/inbox.d.ts.map +1 -0
  52. package/dist/{channel → teamwork}/api/inbox.js +22 -22
  53. package/dist/teamwork/api/inbox.js.map +1 -0
  54. package/dist/{channel → teamwork}/api/interrupt.d.ts +5 -5
  55. package/dist/teamwork/api/interrupt.d.ts.map +1 -0
  56. package/dist/{channel → teamwork}/api/interrupt.js +10 -10
  57. package/dist/teamwork/api/interrupt.js.map +1 -0
  58. package/dist/{channel → teamwork}/api/post-thread.d.ts +4 -4
  59. package/dist/teamwork/api/post-thread.d.ts.map +1 -0
  60. package/dist/{channel → teamwork}/api/post-thread.js +13 -13
  61. package/dist/teamwork/api/post-thread.js.map +1 -0
  62. package/dist/teamwork/api/read.d.ts +17 -0
  63. package/dist/teamwork/api/read.d.ts.map +1 -0
  64. package/dist/{channel → teamwork}/api/read.js +17 -17
  65. package/dist/teamwork/api/read.js.map +1 -0
  66. package/dist/teamwork/api/resolve.d.ts +21 -0
  67. package/dist/teamwork/api/resolve.d.ts.map +1 -0
  68. package/dist/teamwork/api/resolve.js +28 -0
  69. package/dist/teamwork/api/resolve.js.map +1 -0
  70. package/dist/{channel → teamwork}/api/runtime.d.ts +4 -4
  71. package/dist/teamwork/api/runtime.d.ts.map +1 -0
  72. package/dist/teamwork/api/runtime.js.map +1 -0
  73. package/dist/teamwork/api/send.d.ts +4 -0
  74. package/dist/teamwork/api/send.d.ts.map +1 -0
  75. package/dist/{channel → teamwork}/api/send.js +7 -7
  76. package/dist/teamwork/api/send.js.map +1 -0
  77. package/dist/{channel → teamwork}/api/spawn.d.ts +1 -1
  78. package/dist/teamwork/api/spawn.d.ts.map +1 -0
  79. package/dist/teamwork/api/spawn.js +54 -0
  80. package/dist/teamwork/api/spawn.js.map +1 -0
  81. package/dist/teamwork/api/title.d.ts +5 -0
  82. package/dist/teamwork/api/title.d.ts.map +1 -0
  83. package/dist/{channel → teamwork}/api/title.js +12 -12
  84. package/dist/teamwork/api/title.js.map +1 -0
  85. package/dist/{channel → teamwork}/api/types.d.ts +11 -13
  86. package/dist/teamwork/api/types.d.ts.map +1 -0
  87. package/dist/{channel → teamwork}/api/types.js.map +1 -1
  88. package/dist/teamwork/api/watch-sessions.d.ts +40 -0
  89. package/dist/teamwork/api/watch-sessions.d.ts.map +1 -0
  90. package/dist/{channel/api/watch-channels.js → teamwork/api/watch-sessions.js} +16 -16
  91. package/dist/teamwork/api/watch-sessions.js.map +1 -0
  92. package/dist/teamwork/api/watch.d.ts +11 -0
  93. package/dist/teamwork/api/watch.d.ts.map +1 -0
  94. package/dist/{channel → teamwork}/api/watch.js +5 -5
  95. package/dist/teamwork/api/watch.js.map +1 -0
  96. package/dist/{channel → teamwork}/api/workers.d.ts +10 -10
  97. package/dist/teamwork/api/workers.d.ts.map +1 -0
  98. package/dist/{channel → teamwork}/api/workers.js +14 -14
  99. package/dist/teamwork/api/workers.js.map +1 -0
  100. package/dist/teamwork/index.d.ts +42 -0
  101. package/dist/teamwork/index.d.ts.map +1 -0
  102. package/dist/teamwork/index.js +25 -0
  103. package/dist/teamwork/index.js.map +1 -0
  104. package/dist/teamwork/internal/store/coordination.d.ts +64 -0
  105. package/dist/teamwork/internal/store/coordination.d.ts.map +1 -0
  106. package/dist/teamwork/internal/store/coordination.js +311 -0
  107. package/dist/teamwork/internal/store/coordination.js.map +1 -0
  108. package/dist/teamwork/internal/store/delivery.d.ts.map +1 -0
  109. package/dist/teamwork/internal/store/delivery.js.map +1 -0
  110. package/dist/teamwork/internal/store/events.d.ts +232 -0
  111. package/dist/teamwork/internal/store/events.d.ts.map +1 -0
  112. package/dist/{channel → teamwork}/internal/store/events.js +24 -21
  113. package/dist/teamwork/internal/store/events.js.map +1 -0
  114. package/dist/{channel → teamwork}/internal/store/filter.d.ts +5 -5
  115. package/dist/teamwork/internal/store/filter.d.ts.map +1 -0
  116. package/dist/{channel → teamwork}/internal/store/filter.js +1 -1
  117. package/dist/teamwork/internal/store/filter.js.map +1 -0
  118. package/dist/{channel → teamwork}/internal/store/inbox.d.ts +3 -3
  119. package/dist/teamwork/internal/store/inbox.d.ts.map +1 -0
  120. package/dist/{channel → teamwork}/internal/store/inbox.js +1 -1
  121. package/dist/teamwork/internal/store/inbox.js.map +1 -0
  122. package/dist/teamwork/internal/store/lock.d.ts.map +1 -0
  123. package/dist/{channel → teamwork}/internal/store/lock.js +1 -1
  124. package/dist/teamwork/internal/store/lock.js.map +1 -0
  125. package/dist/{channel → teamwork}/internal/store/paths.d.ts +17 -23
  126. package/dist/teamwork/internal/store/paths.d.ts.map +1 -0
  127. package/dist/{channel → teamwork}/internal/store/paths.js +44 -98
  128. package/dist/teamwork/internal/store/paths.js.map +1 -0
  129. package/dist/{channel → teamwork}/internal/store/schema.d.ts +12 -19
  130. package/dist/teamwork/internal/store/schema.d.ts.map +1 -0
  131. package/dist/{channel → teamwork}/internal/store/schema.js +4 -7
  132. package/dist/teamwork/internal/store/schema.js.map +1 -0
  133. package/dist/{channel → teamwork}/internal/store/seq.d.ts +2 -2
  134. package/dist/teamwork/internal/store/seq.d.ts.map +1 -0
  135. package/dist/{channel → teamwork}/internal/store/seq.js +3 -3
  136. package/dist/teamwork/internal/store/seq.js.map +1 -0
  137. package/dist/teamwork/internal/store/teamwork-session-metadata.d.ts +15 -0
  138. package/dist/teamwork/internal/store/teamwork-session-metadata.d.ts.map +1 -0
  139. package/dist/{channel/internal/store/channel-metadata.js → teamwork/internal/store/teamwork-session-metadata.js} +13 -27
  140. package/dist/teamwork/internal/store/teamwork-session-metadata.js.map +1 -0
  141. package/dist/{channel → teamwork}/internal/store/thread-state.d.ts +4 -4
  142. package/dist/teamwork/internal/store/thread-state.d.ts.map +1 -0
  143. package/dist/{channel → teamwork}/internal/store/thread-state.js +1 -1
  144. package/dist/teamwork/internal/store/thread-state.js.map +1 -0
  145. package/dist/teamwork/internal/store/watch.d.ts +10 -0
  146. package/dist/teamwork/internal/store/watch.d.ts.map +1 -0
  147. package/dist/{channel → teamwork}/internal/store/watch.js +6 -6
  148. package/dist/teamwork/internal/store/watch.js.map +1 -0
  149. package/dist/{channel → teamwork}/internal/store/worker-state.d.ts +7 -9
  150. package/dist/teamwork/internal/store/worker-state.d.ts.map +1 -0
  151. package/dist/{channel → teamwork}/internal/store/worker-state.js +6 -29
  152. package/dist/teamwork/internal/store/worker-state.js.map +1 -0
  153. package/package.json +7 -7
  154. package/dist/channel/api/assert.d.ts +0 -3
  155. package/dist/channel/api/assert.d.ts.map +0 -1
  156. package/dist/channel/api/assert.js +0 -11
  157. package/dist/channel/api/assert.js.map +0 -1
  158. package/dist/channel/api/context.d.ts.map +0 -1
  159. package/dist/channel/api/context.js.map +0 -1
  160. package/dist/channel/api/create.d.ts +0 -9
  161. package/dist/channel/api/create.d.ts.map +0 -1
  162. package/dist/channel/api/create.js.map +0 -1
  163. package/dist/channel/api/inbox.d.ts.map +0 -1
  164. package/dist/channel/api/inbox.js.map +0 -1
  165. package/dist/channel/api/interrupt.d.ts.map +0 -1
  166. package/dist/channel/api/interrupt.js.map +0 -1
  167. package/dist/channel/api/post-thread.d.ts.map +0 -1
  168. package/dist/channel/api/post-thread.js.map +0 -1
  169. package/dist/channel/api/read.d.ts +0 -17
  170. package/dist/channel/api/read.d.ts.map +0 -1
  171. package/dist/channel/api/read.js.map +0 -1
  172. package/dist/channel/api/resolve.d.ts +0 -21
  173. package/dist/channel/api/resolve.d.ts.map +0 -1
  174. package/dist/channel/api/resolve.js +0 -28
  175. package/dist/channel/api/resolve.js.map +0 -1
  176. package/dist/channel/api/runtime.d.ts.map +0 -1
  177. package/dist/channel/api/runtime.js.map +0 -1
  178. package/dist/channel/api/send.d.ts +0 -4
  179. package/dist/channel/api/send.d.ts.map +0 -1
  180. package/dist/channel/api/send.js.map +0 -1
  181. package/dist/channel/api/spawn.d.ts.map +0 -1
  182. package/dist/channel/api/spawn.js +0 -74
  183. package/dist/channel/api/spawn.js.map +0 -1
  184. package/dist/channel/api/title.d.ts +0 -5
  185. package/dist/channel/api/title.d.ts.map +0 -1
  186. package/dist/channel/api/title.js.map +0 -1
  187. package/dist/channel/api/types.d.ts.map +0 -1
  188. package/dist/channel/api/watch-channels.d.ts +0 -40
  189. package/dist/channel/api/watch-channels.d.ts.map +0 -1
  190. package/dist/channel/api/watch-channels.js.map +0 -1
  191. package/dist/channel/api/watch.d.ts +0 -11
  192. package/dist/channel/api/watch.d.ts.map +0 -1
  193. package/dist/channel/api/watch.js.map +0 -1
  194. package/dist/channel/api/workers.d.ts.map +0 -1
  195. package/dist/channel/api/workers.js.map +0 -1
  196. package/dist/channel/index.d.ts +0 -38
  197. package/dist/channel/index.d.ts.map +0 -1
  198. package/dist/channel/index.js +0 -23
  199. package/dist/channel/index.js.map +0 -1
  200. package/dist/channel/internal/store/channel-metadata.d.ts +0 -23
  201. package/dist/channel/internal/store/channel-metadata.d.ts.map +0 -1
  202. package/dist/channel/internal/store/channel-metadata.js.map +0 -1
  203. package/dist/channel/internal/store/delivery.d.ts.map +0 -1
  204. package/dist/channel/internal/store/delivery.js.map +0 -1
  205. package/dist/channel/internal/store/events.d.ts +0 -221
  206. package/dist/channel/internal/store/events.d.ts.map +0 -1
  207. package/dist/channel/internal/store/events.js.map +0 -1
  208. package/dist/channel/internal/store/filter.d.ts.map +0 -1
  209. package/dist/channel/internal/store/filter.js.map +0 -1
  210. package/dist/channel/internal/store/inbox.d.ts.map +0 -1
  211. package/dist/channel/internal/store/inbox.js.map +0 -1
  212. package/dist/channel/internal/store/lock.d.ts.map +0 -1
  213. package/dist/channel/internal/store/lock.js.map +0 -1
  214. package/dist/channel/internal/store/paths.d.ts.map +0 -1
  215. package/dist/channel/internal/store/paths.js.map +0 -1
  216. package/dist/channel/internal/store/schema.d.ts.map +0 -1
  217. package/dist/channel/internal/store/schema.js.map +0 -1
  218. package/dist/channel/internal/store/seq.d.ts.map +0 -1
  219. package/dist/channel/internal/store/seq.js.map +0 -1
  220. package/dist/channel/internal/store/thread-state.d.ts.map +0 -1
  221. package/dist/channel/internal/store/thread-state.js.map +0 -1
  222. package/dist/channel/internal/store/watch.d.ts +0 -10
  223. package/dist/channel/internal/store/watch.d.ts.map +0 -1
  224. package/dist/channel/internal/store/watch.js.map +0 -1
  225. package/dist/channel/internal/store/worker-state.d.ts.map +0 -1
  226. package/dist/channel/internal/store/worker-state.js.map +0 -1
  227. /package/dist/{channel → teamwork}/api/runtime.js +0 -0
  228. /package/dist/{channel → teamwork}/api/types.js +0 -0
  229. /package/dist/{channel → teamwork}/internal/store/delivery.d.ts +0 -0
  230. /package/dist/{channel → teamwork}/internal/store/delivery.js +0 -0
  231. /package/dist/{channel → teamwork}/internal/store/lock.d.ts +0 -0
@@ -0,0 +1,232 @@
1
+ import type { TeamworkSessionType, ContextEntry, ContextMutationAction, ContextTarget, EventOrigin, InboxPolicy, ThreadAction } from "./schema.js";
2
+ export type TeamworkEventKind = "create" | "join" | "leave" | "message" | "thread" | "context" | "teamwork" | "spawned" | "killed" | "respawned" | "progress" | "done" | "error" | "waiting" | "awake" | "undeliverable" | "interrupt_requested" | "turn_started" | "turn_finished" | "interrupted" | "supervisor_warning" | "coordination";
3
+ export declare const TEAMWORK_EVENT_KINDS: ReadonlySet<TeamworkEventKind>;
4
+ export declare function parseTeamworkEventKind(v: string | undefined): TeamworkEventKind | undefined;
5
+ /**
6
+ * Parse a CSV of event kinds into a typed list. Each member is validated
7
+ * through {@link parseTeamworkEventKind} so the single-value error message and
8
+ * whitelist remain the SOT. Returns `undefined` when input is undefined
9
+ * or contains no non-empty members.
10
+ */
11
+ export declare function parseTeamworkEventKinds(v: string | undefined): TeamworkEventKind[] | undefined;
12
+ export interface BaseTeamworkEvent<K extends TeamworkEventKind = TeamworkEventKind> {
13
+ seq: number;
14
+ ts: string;
15
+ kind: K;
16
+ by: string;
17
+ idempotencyKey?: string;
18
+ to?: string | string[];
19
+ origin?: EventOrigin;
20
+ meta?: Record<string, unknown>;
21
+ [extra: string]: unknown;
22
+ }
23
+ export interface CreateTeamworkEvent extends BaseTeamworkEvent<"create"> {
24
+ cwd?: string;
25
+ task?: string;
26
+ type?: TeamworkSessionType;
27
+ description?: string;
28
+ context?: ContextEntry[];
29
+ labels?: string[];
30
+ ephemeral?: boolean;
31
+ }
32
+ export interface MessageTeamworkEvent extends BaseTeamworkEvent<"message"> {
33
+ text?: string;
34
+ }
35
+ export interface ThreadTeamworkEvent extends BaseTeamworkEvent<"thread"> {
36
+ action?: ThreadAction;
37
+ thread: string;
38
+ title?: string;
39
+ text?: string;
40
+ description?: string;
41
+ status?: string;
42
+ labels?: string[];
43
+ assignees?: string[];
44
+ summary?: string;
45
+ context?: ContextEntry[];
46
+ /** Rename target (action === "rename"). */
47
+ newThread?: string;
48
+ }
49
+ export interface ContextTeamworkEvent extends BaseTeamworkEvent<"context"> {
50
+ target: ContextTarget;
51
+ action: ContextMutationAction;
52
+ context: ContextEntry[];
53
+ thread?: string;
54
+ }
55
+ export interface TeamworkMetadataEvent extends BaseTeamworkEvent<"teamwork"> {
56
+ action: "title";
57
+ title?: string | null;
58
+ }
59
+ export interface SpawnedTeamworkEvent extends BaseTeamworkEvent<"spawned"> {
60
+ as?: string;
61
+ provider?: string;
62
+ pid?: number;
63
+ agent?: string;
64
+ files?: string[];
65
+ manifests?: string[];
66
+ /**
67
+ * Inbox delivery policy selected at spawn. Durable worker state — the
68
+ * worker registry projects `spawned` events without this field as
69
+ * `explicitOnly`.
70
+ */
71
+ inboxPolicy?: InboxPolicy;
72
+ }
73
+ export interface KilledTeamworkEvent extends BaseTeamworkEvent<"killed"> {
74
+ /**
75
+ * Why the worker was killed. Well-known supervisor / CLI reasons:
76
+ * `"explicit-kill"` (CLI `teamwork kill` or signal),
77
+ * `"timeout"` (explicit `--timeout`), `"crash"` (post-spawn worker
78
+ * error — projected to the `crashed` lifecycle), and
79
+ * `"idle-timeout"` (OOM-guard idle TTL). Additional string values may
80
+ * appear from custom runtimes; consumers should treat unknown reasons
81
+ * as opaque.
82
+ */
83
+ reason?: string;
84
+ signal?: string;
85
+ /** Worker the kill targeted (when written by the CLI kill path). */
86
+ worker?: string;
87
+ timeout_ms?: number;
88
+ /** Idle TTL in ms that the worker exceeded, when `reason="idle-timeout"`. */
89
+ idle_timeout_ms?: number;
90
+ }
91
+ export interface DoneTeamworkEvent extends BaseTeamworkEvent<"done"> {
92
+ duration_ms?: number;
93
+ exit_code?: number;
94
+ synthesized?: boolean;
95
+ }
96
+ export interface ErrorTeamworkEvent extends BaseTeamworkEvent<"error"> {
97
+ message?: string;
98
+ provider?: string;
99
+ synthesized?: boolean;
100
+ exit_code?: number;
101
+ exit_signal?: string;
102
+ }
103
+ export interface ProgressTeamworkEvent extends BaseTeamworkEvent<"progress"> {
104
+ detail?: Record<string, unknown>;
105
+ }
106
+ /** Why a worker interrupt was requested. */
107
+ export type InterruptReason = "user" | "system" | "timeout" | "superseded";
108
+ /** How an interrupt was attempted by the worker runtime. */
109
+ export type InterruptMethod = "provider" | "stdin" | "signal" | "none";
110
+ /** Result of an interrupt attempt as reported by the worker runtime. */
111
+ export type InterruptOutcome = "interrupted" | "queued" | "unsupported" | "no-active-turn" | "failed";
112
+ /** Why a message could not be delivered to a targeted worker. */
113
+ export type UndeliverableReason = "worker-terminal" | "worker-unknown";
114
+ export interface UndeliverableTeamworkEvent extends BaseTeamworkEvent<"undeliverable"> {
115
+ targetWorker: string;
116
+ messageSeq: number;
117
+ reason: UndeliverableReason;
118
+ }
119
+ export interface InterruptRequestedTeamworkEvent extends BaseTeamworkEvent<"interrupt_requested"> {
120
+ worker: string;
121
+ turnId?: string;
122
+ reason?: InterruptReason;
123
+ message?: string;
124
+ }
125
+ export interface TurnStartedTeamworkEvent extends BaseTeamworkEvent<"turn_started"> {
126
+ worker: string;
127
+ /**
128
+ * Durable link to the Teamwork Session `message` event seq that initiated this
129
+ * turn. The worker registry uses this as the "consumed" marker for
130
+ * pending-message projection.
131
+ */
132
+ inputSeq: number;
133
+ turnId?: string;
134
+ }
135
+ export interface TurnFinishedTeamworkEvent extends BaseTeamworkEvent<"turn_finished"> {
136
+ worker: string;
137
+ inputSeq?: number;
138
+ turnId?: string;
139
+ outcome?: "done" | "error" | "aborted";
140
+ }
141
+ export interface InterruptedTeamworkEvent extends BaseTeamworkEvent<"interrupted"> {
142
+ worker: string;
143
+ turnId?: string;
144
+ reason?: InterruptReason;
145
+ method: InterruptMethod;
146
+ outcome: InterruptOutcome;
147
+ message?: string;
148
+ }
149
+ /** Reason for a supervisor pre-terminal warning event. */
150
+ export type SupervisorWarningReason = "approaching_timeout";
151
+ /**
152
+ * Pre-timeout observability event. Emitted at most once per worker run.
153
+ * Not part of {@link MEANINGFUL_EVENT_KINDS} so plain `wait` does not
154
+ * wake on it; explicit `--kind supervisor_warning` does match.
155
+ */
156
+ export interface SupervisorWarningTeamworkEvent extends BaseTeamworkEvent<"supervisor_warning"> {
157
+ worker: string;
158
+ reason: SupervisorWarningReason;
159
+ timeout_ms: number;
160
+ remaining_ms: number;
161
+ }
162
+ export type CoordinationEntity = "batch" | "assignment" | "attempt" | "teammate";
163
+ export type CoordinationBatchState = "PREPARED" | "VALIDATING_PLAN" | "RUNNING" | "SETTLING" | "ALL_ACCEPTED" | "SETTLED_WITH_FAILURE" | "SUSPENDED" | "CANCEL_PENDING" | "RECONCILIATION_REQUIRED";
164
+ export type CoordinationAssignmentState = "QUEUED" | "ASSIGNED" | "EXECUTING" | "REPORT_PENDING" | "VALIDATING" | "ACCEPTED" | "FINAL_FAILED" | "WAITING_FOR_MAIN_COMMAND";
165
+ export type CoordinationAttemptState = "ASSIGNED" | "RUNNING" | "REPORT_SUBMITTED" | "FAILED" | "TIMEOUT_YIELDED" | "WAITING_FOR_MAIN_COMMAND" | "FINAL_FAILED";
166
+ export type CoordinationTeammateState = "ASSIGNED" | "RUNNING" | "REPORT_SUBMITTED" | "FAILED" | "TIMEOUT_YIELDED" | "WAITING_FOR_MAIN_COMMAND";
167
+ export type CoordinationState = CoordinationBatchState | CoordinationAssignmentState | CoordinationAttemptState | CoordinationTeammateState;
168
+ export type CoordinationAction = "state_transition" | "terminal_observed" | "claim_created" | "command_issued" | "receipt_recorded" | "lease_acquired" | "lease_released" | "reconciliation_required";
169
+ export interface CoordinationTeamworkEvent extends BaseTeamworkEvent<"coordination"> {
170
+ action: CoordinationAction;
171
+ entity: CoordinationEntity;
172
+ batchId: string;
173
+ assignmentId?: string;
174
+ attemptId?: string;
175
+ teammateId?: string;
176
+ slot?: number;
177
+ retryCount?: number;
178
+ state?: CoordinationState;
179
+ planHash?: string;
180
+ commandId?: string;
181
+ claimId?: string;
182
+ receiptId?: string;
183
+ leaseId?: string;
184
+ protected?: boolean;
185
+ /** Provider session associated with this attempt, when the host exposes one. */
186
+ providerSessionId?: string;
187
+ /** True only when the external process has reported a terminal fact. */
188
+ terminal?: boolean;
189
+ reason?: string;
190
+ outcome?: string;
191
+ payload?: Record<string, unknown>;
192
+ }
193
+ export type GenericTeamworkEvent = BaseTeamworkEvent<Exclude<TeamworkEventKind, "create" | "message" | "thread" | "context" | "teamwork" | "spawned" | "killed" | "done" | "error" | "progress" | "undeliverable" | "interrupt_requested" | "turn_started" | "turn_finished" | "interrupted" | "supervisor_warning" | "coordination">>;
194
+ export type TeamworkEvent = CreateTeamworkEvent | MessageTeamworkEvent | ThreadTeamworkEvent | ContextTeamworkEvent | TeamworkMetadataEvent | SpawnedTeamworkEvent | KilledTeamworkEvent | DoneTeamworkEvent | ErrorTeamworkEvent | ProgressTeamworkEvent | UndeliverableTeamworkEvent | InterruptRequestedTeamworkEvent | TurnStartedTeamworkEvent | TurnFinishedTeamworkEvent | InterruptedTeamworkEvent | SupervisorWarningTeamworkEvent | CoordinationTeamworkEvent | GenericTeamworkEvent;
195
+ export declare function isCoordinationEvent(ev: TeamworkEvent): ev is CoordinationTeamworkEvent;
196
+ export declare function isCreateEvent(ev: TeamworkEvent): ev is CreateTeamworkEvent;
197
+ export declare function isThreadEvent(ev: TeamworkEvent): ev is ThreadTeamworkEvent;
198
+ export declare function isContextEvent(ev: TeamworkEvent): ev is ContextTeamworkEvent;
199
+ export declare function isTeamworkMetadataEvent(ev: TeamworkEvent): ev is TeamworkMetadataEvent;
200
+ export declare function ensureSessionDir(name: string, project?: string): Promise<string>;
201
+ /**
202
+ * Read the last committed seq for a Teamwork Session. Uses the same reconcile
203
+ * path as `appendEvent` so callers that need a snapshot do not see a
204
+ * stale sidecar.
205
+ */
206
+ export declare function readLastSeq(name: string, project?: string): Promise<number>;
207
+ export interface AppendablePartial {
208
+ kind: TeamworkEventKind;
209
+ by: string;
210
+ ts?: string;
211
+ idempotencyKey?: string;
212
+ [extra: string]: unknown;
213
+ }
214
+ /**
215
+ * Cursor pagination options for {@link readTeamworkEvents}. When no field
216
+ * is set the reader returns every event (compatibility default).
217
+ */
218
+ export interface ReadTeamworkEventsPagination {
219
+ /** Return events with `seq > afterSeq`, ascending. */
220
+ afterSeq?: number;
221
+ /** Return events with `seq < beforeSeq`, ascending. */
222
+ beforeSeq?: number;
223
+ /**
224
+ * Cap the page size. With a cursor, caps the page. Without a cursor,
225
+ * returns the latest N events in ascending seq order.
226
+ */
227
+ limit?: number;
228
+ }
229
+ /** Default page size applied when a cursor is present but `limit` is not. */
230
+ export declare const DEFAULT_CURSOR_PAGE_SIZE = 200;
231
+ export declare function readTeamworkEvents(name: string, project?: string, pagination?: ReadTeamworkEventsPagination): Promise<TeamworkEvent[]>;
232
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../../src/teamwork/internal/store/events.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,18 @@
1
1
  import fs from "node:fs";
2
2
  import fsp from "node:fs/promises";
3
3
  import { withLock } from "./lock.js";
4
- import { channelDir, eventsPath, lockPath, seqSidecarPath, } from "./paths.js";
4
+ import { sessionDir, eventsPath, lockPath, seqSidecarPath, } from "./paths.js";
5
5
  import { reconcileSeq, truncateIncompleteTail, writeSidecar } from "./seq.js";
6
6
  import { parseEventOrigin } from "./schema.js";
7
- export const CHANNEL_EVENT_KINDS = new Set([
7
+ export const TEAMWORK_EVENT_KINDS = new Set([
8
8
  "create",
9
9
  "join",
10
10
  "leave",
11
11
  "message",
12
12
  "thread",
13
13
  "context",
14
- "channel",
14
+ "teamwork",
15
15
  "spawned",
16
- "session_bound",
17
16
  "killed",
18
17
  "respawned",
19
18
  "progress",
@@ -27,22 +26,23 @@ export const CHANNEL_EVENT_KINDS = new Set([
27
26
  "turn_finished",
28
27
  "interrupted",
29
28
  "supervisor_warning",
29
+ "coordination",
30
30
  ]);
31
- export function parseChannelKind(v) {
31
+ export function parseTeamworkEventKind(v) {
32
32
  if (v === undefined)
33
33
  return undefined;
34
- if (!CHANNEL_EVENT_KINDS.has(v)) {
35
- throw new Error(`Invalid --kind '${v}'. Must be one of: ${[...CHANNEL_EVENT_KINDS].join(", ")}`);
34
+ if (!TEAMWORK_EVENT_KINDS.has(v)) {
35
+ throw new Error(`Invalid --kind '${v}'. Must be one of: ${[...TEAMWORK_EVENT_KINDS].join(", ")}`);
36
36
  }
37
37
  return v;
38
38
  }
39
39
  /**
40
40
  * Parse a CSV of event kinds into a typed list. Each member is validated
41
- * through {@link parseChannelKind} so the single-value error message and
41
+ * through {@link parseTeamworkEventKind} so the single-value error message and
42
42
  * whitelist remain the SOT. Returns `undefined` when input is undefined
43
43
  * or contains no non-empty members.
44
44
  */
45
- export function parseChannelKinds(v) {
45
+ export function parseTeamworkEventKinds(v) {
46
46
  if (v === undefined)
47
47
  return undefined;
48
48
  const parts = v
@@ -54,7 +54,7 @@ export function parseChannelKinds(v) {
54
54
  const out = [];
55
55
  const seen = new Set();
56
56
  for (const part of parts) {
57
- const parsed = parseChannelKind(part);
57
+ const parsed = parseTeamworkEventKind(part);
58
58
  if (parsed === undefined)
59
59
  continue;
60
60
  if (seen.has(parsed))
@@ -64,6 +64,9 @@ export function parseChannelKinds(v) {
64
64
  }
65
65
  return out;
66
66
  }
67
+ export function isCoordinationEvent(ev) {
68
+ return ev.kind === "coordination" && typeof ev.batchId === "string";
69
+ }
67
70
  export function isCreateEvent(ev) {
68
71
  return ev.kind === "create";
69
72
  }
@@ -73,16 +76,16 @@ export function isThreadEvent(ev) {
73
76
  export function isContextEvent(ev) {
74
77
  return ev.kind === "context";
75
78
  }
76
- export function isChannelMetadataEvent(ev) {
77
- return ev.kind === "channel";
79
+ export function isTeamworkMetadataEvent(ev) {
80
+ return ev.kind === "teamwork";
78
81
  }
79
- export async function ensureChannelDir(name, project) {
80
- const dir = channelDir(name, project);
82
+ export async function ensureSessionDir(name, project) {
83
+ const dir = sessionDir(name, project);
81
84
  await fsp.mkdir(dir, { recursive: true, mode: 0o700 });
82
85
  return dir;
83
86
  }
84
87
  /**
85
- * Read the last committed seq for a channel. Uses the same reconcile
88
+ * Read the last committed seq for a Teamwork Session. Uses the same reconcile
86
89
  * path as `appendEvent` so callers that need a snapshot do not see a
87
90
  * stale sidecar.
88
91
  */
@@ -93,7 +96,7 @@ export async function readLastSeq(name, project) {
93
96
  return reconcileSeq(file, seqSidecarPath(name, project));
94
97
  }
95
98
  /**
96
- * Append a channel event atomically under the channel lock.
99
+ * Append a Teamwork Session event atomically under its lock.
97
100
  *
98
101
  * Internally truncates a torn JSONL tail (missing final newline), then
99
102
  * reconciles the `.seq` sidecar with the JSONL tail. Sidecar repair
@@ -102,12 +105,12 @@ export async function readLastSeq(name, project) {
102
105
  * the next record onto the incomplete line.
103
106
  *
104
107
  * @internal Trellis CLI-internal write primitive — downstream consumers
105
- * must go through the typed mutation APIs (`createChannel`,
108
+ * must go through the typed mutation APIs (`createTeamworkSession`,
106
109
  * `sendMessage`, etc.).
107
110
  */
108
111
  export async function appendEvent(name, partial, project) {
109
112
  validateEventBase(partial);
110
- await ensureChannelDir(name, project);
113
+ await ensureSessionDir(name, project);
111
114
  const jsonl = eventsPath(name, project);
112
115
  const sidecar = seqSidecarPath(name, project);
113
116
  return withLock(lockPath(name, project), async () => {
@@ -174,7 +177,7 @@ function readAllEvents(file) {
174
177
  }
175
178
  return events;
176
179
  }
177
- export async function readChannelEvents(name, project, pagination) {
180
+ export async function readTeamworkEvents(name, project, pagination) {
178
181
  const file = eventsPath(name, project);
179
182
  const all = readAllEvents(file);
180
183
  if (!pagination ||
@@ -185,10 +188,10 @@ export async function readChannelEvents(name, project, pagination) {
185
188
  }
186
189
  const { afterSeq, beforeSeq, limit } = pagination;
187
190
  if (afterSeq !== undefined && beforeSeq !== undefined) {
188
- throw new Error("readChannelEvents: pass only one of afterSeq / beforeSeq");
191
+ throw new Error("readTeamworkEvents: pass only one of afterSeq / beforeSeq");
189
192
  }
190
193
  if (limit !== undefined && (!Number.isInteger(limit) || limit < 0)) {
191
- throw new Error("readChannelEvents: limit must be a non-negative integer");
194
+ throw new Error("readTeamworkEvents: limit must be a non-negative integer");
192
195
  }
193
196
  // Events are appended in monotonic seq order; keep that as the contract.
194
197
  if (afterSeq !== undefined) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../../src/teamwork/internal/store/events.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { type ChannelEvent, type ChannelEventKind } from "./events.js";
1
+ import { type TeamworkEvent, type TeamworkEventKind } from "./events.js";
2
2
  import type { ThreadAction } from "./schema.js";
3
- export declare const MEANINGFUL_EVENT_KINDS: ReadonlySet<ChannelEventKind>;
4
- export interface ChannelEventFilter {
3
+ export declare const MEANINGFUL_EVENT_KINDS: ReadonlySet<TeamworkEventKind>;
4
+ export interface TeamworkEventFilter {
5
5
  from?: string[];
6
6
  /**
7
7
  * Restrict to one kind (legacy single value) or any of a list (OR
@@ -9,7 +9,7 @@ export interface ChannelEventFilter {
9
9
  * meaningful-kinds filter so non-meaningful kinds can still match
10
10
  * when requested directly (e.g. `supervisor_warning`).
11
11
  */
12
- kind?: ChannelEventKind | readonly ChannelEventKind[];
12
+ kind?: TeamworkEventKind | readonly TeamworkEventKind[];
13
13
  to?: string;
14
14
  self?: string;
15
15
  includeProgress?: boolean;
@@ -17,5 +17,5 @@ export interface ChannelEventFilter {
17
17
  thread?: string;
18
18
  action?: ThreadAction;
19
19
  }
20
- export declare function matchesEventFilter(ev: ChannelEvent, filter: ChannelEventFilter): boolean;
20
+ export declare function matchesEventFilter(ev: TeamworkEvent, filter: TeamworkEventFilter): boolean;
21
21
  //# sourceMappingURL=filter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../../../src/teamwork/internal/store/filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACvB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,iBAAiB,CAazC,CAAC;AAE1B,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,iBAAiB,GAAG,SAAS,iBAAiB,EAAE,CAAC;IACxD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAaD,wBAAgB,kBAAkB,CAChC,EAAE,EAAE,aAAa,EACjB,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAgDT"}
@@ -6,7 +6,7 @@ export const MEANINGFUL_EVENT_KINDS = new Set([
6
6
  "message",
7
7
  "thread",
8
8
  "context",
9
- "channel",
9
+ "teamwork",
10
10
  "spawned",
11
11
  "killed",
12
12
  "respawned",
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter.js","sourceRoot":"","sources":["../../../../src/teamwork/internal/store/filter.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import type { ChannelEvent, MessageChannelEvent } from "./events.js";
1
+ import type { TeamworkEvent, MessageTeamworkEvent } from "./events.js";
2
2
  import type { InboxPolicy } from "./schema.js";
3
3
  /** Default inbox policy applied to workers / spawned events without one. */
4
4
  export declare const DEFAULT_INBOX_POLICY: InboxPolicy;
5
5
  /**
6
- * Decide whether a channel `message` event should be delivered to a
6
+ * Decide whether a Teamwork Session `message` event should be delivered to a
7
7
  * worker's inbox under the given policy. Single source of truth shared
8
8
  * by the worker registry reducer, the delivery helper, and the CLI
9
9
  * supervisor inbox watcher.
@@ -13,5 +13,5 @@ export declare const DEFAULT_INBOX_POLICY: InboxPolicy;
13
13
  *
14
14
  * A worker never consumes its own message events.
15
15
  */
16
- export declare function matchesInboxPolicy(ev: ChannelEvent, workerId: string, policy: InboxPolicy): ev is MessageChannelEvent;
16
+ export declare function matchesInboxPolicy(ev: TeamworkEvent, workerId: string, policy: InboxPolicy): ev is MessageTeamworkEvent;
17
17
  //# sourceMappingURL=inbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inbox.d.ts","sourceRoot":"","sources":["../../../../src/teamwork/internal/store/inbox.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,4EAA4E;AAC5E,eAAO,MAAM,oBAAoB,EAAE,WAA4B,CAAC;AAOhE;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAChC,EAAE,EAAE,aAAa,EACjB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,WAAW,GAClB,EAAE,IAAI,oBAAoB,CAO5B"}
@@ -6,7 +6,7 @@ function toList(to) {
6
6
  return Array.isArray(to) ? to : [to];
7
7
  }
8
8
  /**
9
- * Decide whether a channel `message` event should be delivered to a
9
+ * Decide whether a Teamwork Session `message` event should be delivered to a
10
10
  * worker's inbox under the given policy. Single source of truth shared
11
11
  * by the worker registry reducer, the delivery helper, and the CLI
12
12
  * supervisor inbox watcher.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inbox.js","sourceRoot":"","sources":["../../../../src/teamwork/internal/store/inbox.ts"],"names":[],"mappings":"AAGA,4EAA4E;AAC5E,MAAM,CAAC,MAAM,oBAAoB,GAAgB,cAAc,CAAC;AAEhE,SAAS,MAAM,CAAC,EAAiC;IAC/C,IAAI,EAAE,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IAChC,OAAO,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACvC,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,kBAAkB,CAChC,EAAiB,EACjB,QAAgB,EAChB,MAAmB;IAEnB,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACxC,IAAI,EAAE,CAAC,EAAE,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACrC,MAAM,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC9B,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC1D,uBAAuB;IACvB,OAAO,MAAM,KAAK,sBAAsB,CAAC;AAC3C,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lock.d.ts","sourceRoot":"","sources":["../../../../src/teamwork/internal/store/lock.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH,UAAU,cAAc;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,cAAmB,GACxB,OAAO,CAAC,IAAI,CAAC,CAyBf;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CASlD;AAED,wBAAsB,QAAQ,CAAC,CAAC,EAC9B,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EACxB,IAAI,CAAC,EAAE,cAAc,GACpB,OAAO,CAAC,CAAC,CAAC,CAOZ"}
@@ -64,7 +64,7 @@ async function checkAndStealStale(lockFile) {
64
64
  if (!holderPid || !pidAlive(holderPid)) {
65
65
  try {
66
66
  fs.unlinkSync(lockFile);
67
- process.stderr.write(`[channel lock] stale lock from dead pid ${holderPid} stolen at ${lockFile}\n`);
67
+ process.stderr.write(`[Teamwork Session lock] stale lock from dead pid ${holderPid} stolen at ${lockFile}\n`);
68
68
  return true;
69
69
  }
70
70
  catch {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lock.js","sourceRoot":"","sources":["../../../../src/teamwork/internal/store/lock.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { type ChannelRef, type ChannelScope } from "./schema.js";
2
- /** Top-level Trellis channels directory. */
3
- export declare function channelRoot(): string;
1
+ import { type TeamworkSessionRef, type TeamworkSessionScope } from "./schema.js";
2
+ /** Top-level Trellis Teamwork directory. */
3
+ export declare function teamworkRoot(): string;
4
4
  /**
5
5
  * Derive a per-project bucket name from an absolute cwd, mirroring
6
6
  * Claude Code's `~/.claude/projects/<sanitized-cwd>/` convention.
@@ -8,50 +8,44 @@ export declare function channelRoot(): string;
8
8
  export declare function projectKey(cwd: string): string;
9
9
  /**
10
10
  * Project key for the current CLI invocation. Reads
11
- * `TRELLIS_CHANNEL_PROJECT` env first, then falls back to deriving from
11
+ * `TRELLIS_TEAMWORK_PROJECT` env first, then falls back to deriving from
12
12
  * `process.cwd()`.
13
13
  */
14
14
  export declare function currentProjectKey(): string;
15
15
  export declare function projectDir(project?: string): string;
16
16
  /**
17
- * Whether a channel/worker name is usable as a filesystem segment.
17
+ * Whether a Teamwork Session or teammate name is usable as a filesystem segment.
18
18
  * Discovery scans use this to skip directories created before name
19
19
  * validation existed (spaces, CJK, ...) — they can never be valid
20
- * channels, and `assertSafeName` throwing mid-scan would kill the scan.
20
+ * valid Teamwork Sessions, and `assertSafeName` throwing mid-scan would kill the scan.
21
21
  */
22
22
  export declare function isSafeName(name: string): boolean;
23
23
  /**
24
24
  * Reject names that would escape their bucket when joined into a path.
25
- * A channel/worker name becomes a filesystem segment; without this guard
25
+ * A Teamwork Session or teammate name becomes a filesystem segment; without this guard
26
26
  * a name like `../../x` lets `path.join` resolve outside the store and a
27
27
  * later `fs.rmSync(recursive)` deletes arbitrary directories.
28
28
  */
29
29
  export declare function assertSafeName(name: string, kind?: string): void;
30
- export declare function channelDir(name: string, project?: string): string;
30
+ export declare function sessionDir(name: string, project?: string): string;
31
31
  export declare function eventsPath(name: string, project?: string): string;
32
32
  export declare function seqSidecarPath(name: string, project?: string): string;
33
33
  export declare function lockPath(name: string, project?: string): string;
34
34
  export declare function workerFile(name: string, worker: string, suffix: string, project?: string): string;
35
35
  export declare function workerLockPath(name: string, worker: string, project?: string): string;
36
- /**
37
- * One-shot migration: move legacy flat channels at `<root>/<name>/` into
38
- * a `_legacy/` bucket so the new project-scoped layout can use the top
39
- * level. Idempotent.
40
- */
41
- export declare function migrateLegacyChannels(): void;
42
36
  export declare function ensureBucketMarker(project: string): void;
43
37
  export declare function listProjects(): string[];
44
38
  /**
45
- * List channel names inside a project bucket — subdirectories that
46
- * contain an `events.jsonl` file. Used by the cross-channel watcher for
47
- * dynamic channel discovery.
39
+ * List Teamwork Session names inside a project bucket — subdirectories that
40
+ * contain an `events.jsonl` file. Used by the cross-session watcher for
41
+ * dynamic Teamwork Session discovery.
48
42
  */
49
- export declare function listChannelNamesInProject(project: string): string[];
50
- export interface ResolveChannelOptions {
51
- scope?: ChannelScope;
43
+ export declare function listSessionIdsInProject(project: string): string[];
44
+ export interface ResolveTeamworkSessionOptions {
45
+ scope?: TeamworkSessionScope;
52
46
  cwd?: string;
53
47
  }
54
- export declare function resolveChannelProjectForCreate(name: string, opts?: ResolveChannelOptions): ChannelRef;
55
- export declare function resolveExistingChannelRef(name: string, opts?: ResolveChannelOptions): ChannelRef;
56
- export declare function selectExistingChannelProject(name: string): string;
48
+ export declare function resolveTeamworkSessionProjectForCreate(name: string, opts?: ResolveTeamworkSessionOptions): TeamworkSessionRef;
49
+ export declare function resolveExistingTeamworkSession(name: string, opts?: ResolveTeamworkSessionOptions): TeamworkSessionRef;
50
+ export declare function selectExistingTeamworkSessionProject(name: string): string;
57
51
  //# sourceMappingURL=paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../../../src/teamwork/internal/store/paths.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EAC1B,MAAM,aAAa,CAAC;AAErB,4CAA4C;AAC5C,wBAAgB,YAAY,IAAI,MAAM,CAIrC;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAI9C;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAI1C;AAED,wBAAgB,UAAU,CAAC,OAAO,GAAE,MAA4B,GAAG,MAAM,CAExE;AAOD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEhD;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,SAAqB,GAAG,IAAI,CAO5E;AAED,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,MAA4B,GACpC,MAAM,CAGR;AAED,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,MAA4B,GACpC,MAAM,CAER;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,MAA4B,GACpC,MAAM,CAER;AAED,wBAAgB,QAAQ,CACtB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,MAA4B,GACpC,MAAM,CAER;AAED,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,MAA4B,GACpC,MAAM,CAGR;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,MAA4B,GACpC,MAAM,CAGR;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAOxD;AAED,wBAAgB,YAAY,IAAI,MAAM,EAAE,CAmBvC;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAoBjE;AAED,MAAM,WAAW,6BAA6B;IAC5C,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,sCAAsC,CACpD,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,6BAAkC,GACvC,kBAAkB,CAcpB;AAED,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,6BAAkC,GACvC,kBAAkB,CAoEpB;AAED,wBAAgB,oCAAoC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzE"}