@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
@@ -1,39 +1,39 @@
1
1
  import fs from "node:fs";
2
2
  import path from "node:path";
3
3
  import { appendEvent, } from "../internal/store/events.js";
4
- import { channelDir, ensureBucketMarker, eventsPath, } from "../internal/store/paths.js";
5
- import { parseChannelType } from "../internal/store/schema.js";
6
- import { resolveChannelRef } from "./resolve.js";
4
+ import { sessionDir, ensureBucketMarker, eventsPath, } from "../internal/store/paths.js";
5
+ import { parseTeamworkSessionType } from "../internal/store/schema.js";
6
+ import { resolveTeamworkSession } from "./resolve.js";
7
7
  /**
8
- * Create a new channel. Throws when the channel already exists unless
9
- * `force` is set, in which case the existing channel directory is wiped
8
+ * Create a new Teamwork Session. Throws when it already exists unless
9
+ * `force` is set, in which case the existing Teamwork Session directory is wiped
10
10
  * before the create event is appended.
11
11
  */
12
- export async function createChannel(opts) {
13
- const ref = resolveChannelRef({
14
- channel: opts.channel,
12
+ export async function createTeamworkSession(opts) {
13
+ const ref = resolveTeamworkSession({
14
+ sessionId: opts.sessionId,
15
15
  scope: opts.scope ?? "project",
16
16
  ...(opts.projectKey !== undefined ? { projectKey: opts.projectKey } : {}),
17
17
  ...(opts.cwd !== undefined ? { cwd: opts.cwd } : {}),
18
18
  forCreate: true,
19
19
  });
20
- const channelType = parseChannelType(opts.type);
21
- const events = eventsPath(opts.channel, ref.project);
20
+ const sessionType = parseTeamworkSessionType(opts.type);
21
+ const events = eventsPath(opts.sessionId, ref.project);
22
22
  const dir = ref.dir;
23
23
  if (fs.existsSync(events) && !opts.force) {
24
- throw new Error(`Channel '${opts.channel}' already exists at ${dir}. Use --force to overwrite.`);
24
+ throw new Error(`Teamwork Session '${opts.sessionId}' already exists at ${dir}. Use --force to overwrite.`);
25
25
  }
26
26
  if (opts.force && fs.existsSync(dir)) {
27
- await forceCleanChannel(opts.channel, ref.project);
27
+ await forceCleanTeamworkSession(opts.sessionId, ref.project);
28
28
  }
29
29
  ensureBucketMarker(ref.project);
30
30
  const cwd = opts.cwd ?? process.cwd();
31
- const event = await appendEvent(opts.channel, {
31
+ const event = await appendEvent(opts.sessionId, {
32
32
  kind: "create",
33
33
  by: opts.by,
34
34
  cwd,
35
35
  scope: ref.scope,
36
- type: channelType,
36
+ type: sessionType,
37
37
  ...(opts.task ? { task: opts.task } : {}),
38
38
  ...(opts.project ? { project: opts.project } : {}),
39
39
  ...(opts.labels && opts.labels.length > 0 ? { labels: opts.labels } : {}),
@@ -42,16 +42,13 @@ export async function createChannel(opts) {
42
42
  ? { context: opts.context }
43
43
  : {}),
44
44
  ...(opts.ephemeral ? { ephemeral: true } : {}),
45
- ...(channelType !== "forum" && opts.ownerSessionId
46
- ? { ownerSessionId: opts.ownerSessionId }
47
- : {}),
48
45
  ...(opts.origin ? { origin: opts.origin } : {}),
49
46
  ...(opts.meta ? { meta: opts.meta } : {}),
50
47
  }, ref.project);
51
48
  return event;
52
49
  }
53
- async function forceCleanChannel(name, project) {
54
- const dir = channelDir(name, project);
50
+ async function forceCleanTeamworkSession(name, project) {
51
+ const dir = sessionDir(name, project);
55
52
  let entries;
56
53
  try {
57
54
  entries = fs.readdirSync(dir);
@@ -89,7 +86,7 @@ async function forceCleanChannel(name, project) {
89
86
  fs.rmSync(dir, { recursive: true, force: true });
90
87
  }
91
88
  catch (err) {
92
- process.stderr.write(`[channel create --force] warning: failed to fully clean ${dir}: ${err instanceof Error ? err.message : err}\n`);
89
+ process.stderr.write(`[trellis teamwork create --force] warning: failed to fully clean ${dir}: ${err instanceof Error ? err.message : err}\n`);
93
90
  }
94
91
  }
95
92
  function pidAlive(pid) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/teamwork/api/create.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,19 @@
1
- import { type MessageChannelEvent } from "../internal/store/events.js";
2
- import type { ChannelAddressOptions } from "./types.js";
1
+ import { type MessageTeamworkEvent } from "../internal/store/events.js";
2
+ import type { TeamworkSessionAddressOptions } from "./types.js";
3
3
  export type WorkerInboxErrorCode = "WORKER_INBOX_WORKER_NOT_FOUND" | "WORKER_INBOX_WORKER_TERMINAL";
4
4
  export declare class WorkerInboxError extends Error {
5
5
  readonly code: WorkerInboxErrorCode;
6
- readonly channel: string;
6
+ readonly sessionId: string;
7
7
  readonly workerId: string;
8
- constructor(code: WorkerInboxErrorCode, channel: string, workerId: string, message?: string);
8
+ constructor(code: WorkerInboxErrorCode, sessionId: string, workerId: string, message?: string);
9
9
  }
10
- export interface ReadWorkerInboxInput extends ChannelAddressOptions {
10
+ export interface ReadWorkerInboxInput extends TeamworkSessionAddressOptions {
11
11
  workerId: string;
12
12
  afterSeq?: number;
13
13
  limit?: number;
14
14
  includeTerminal?: boolean;
15
15
  }
16
- export interface WatchWorkerInboxInput extends ChannelAddressOptions {
16
+ export interface WatchWorkerInboxInput extends TeamworkSessionAddressOptions {
17
17
  workerId: string;
18
18
  sinceSeq?: number;
19
19
  fromStart?: boolean;
@@ -21,14 +21,14 @@ export interface WatchWorkerInboxInput extends ChannelAddressOptions {
21
21
  }
22
22
  export interface WorkerInboxMessage {
23
23
  workerId: string;
24
- event: MessageChannelEvent;
24
+ event: MessageTeamworkEvent;
25
25
  seq: number;
26
26
  cursor: number;
27
27
  }
28
28
  /**
29
29
  * Read durable inbox messages for a specific worker.
30
30
  *
31
- * Reduces the worker registry from the channel event log, finds the worker,
31
+ * Reduces the teammate registry from the Teamwork Session event log, finds the teammate,
32
32
  * and filters `message` events through `matchesInboxPolicy()` using the
33
33
  * worker's latest `inboxPolicy`. Core only reasons from the durable event
34
34
  * log; it does not claim the OS process is live.
@@ -39,7 +39,7 @@ export declare function readWorkerInbox(input: ReadWorkerInboxInput): Promise<Wo
39
39
  *
40
40
  * Performs upfront worker validation and captures the current `lastSeq`,
41
41
  * then returns a generator that yields future inbox-matching messages
42
- * through the channel watch primitives. The generator ends when a terminal
42
+ * through the Teamwork Session watch primitives. The generator ends when a terminal
43
43
  * event for the watched worker arrives; it does not cross a terminal event
44
44
  * into a later respawn with the same id.
45
45
  *
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inbox.d.ts","sourceRoot":"","sources":["../../../src/teamwork/api/inbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,6BAA6B,CAAC;AAKrC,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,YAAY,CAAC;AAEhE,MAAM,MAAM,oBAAoB,GAC5B,+BAA+B,GAC/B,8BAA8B,CAAC;AAEnC,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAGxB,IAAI,EAAE,oBAAoB,EAC1B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM;CAQnB;AAeD,MAAM,WAAW,oBAAqB,SAAQ,6BAA6B;IACzE,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,qBAAsB,SAAQ,6BAA6B;IAC1E,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,oBAAoB,CAAC;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB;AAWD;;;;;;;GAOG;AACH,wBAAsB,eAAe,CACnC,KAAK,EAAE,oBAAoB,GAC1B,OAAO,CAAC,kBAAkB,EAAE,CAAC,CA0C/B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAAC,cAAc,CAAC,kBAAkB,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAsC5D"}
@@ -1,31 +1,31 @@
1
- import { readChannelEvents as readEventsInternal, } from "../internal/store/events.js";
1
+ import { readTeamworkEvents as readEventsInternal, } from "../internal/store/events.js";
2
2
  import { matchesInboxPolicy } from "../internal/store/inbox.js";
3
3
  import { watchEvents } from "../internal/store/watch.js";
4
4
  import { reduceWorkerRegistry } from "../internal/store/worker-state.js";
5
- import { resolveChannelRef } from "./resolve.js";
5
+ import { resolveTeamworkSession } from "./resolve.js";
6
6
  export class WorkerInboxError extends Error {
7
7
  code;
8
- channel;
8
+ sessionId;
9
9
  workerId;
10
- constructor(code, channel, workerId, message) {
11
- super(message ?? defaultMessage(code, channel, workerId));
10
+ constructor(code, sessionId, workerId, message) {
11
+ super(message ?? defaultMessage(code, sessionId, workerId));
12
12
  this.name = "WorkerInboxError";
13
13
  this.code = code;
14
- this.channel = channel;
14
+ this.sessionId = sessionId;
15
15
  this.workerId = workerId;
16
16
  }
17
17
  }
18
- function defaultMessage(code, channel, workerId) {
18
+ function defaultMessage(code, sessionId, workerId) {
19
19
  switch (code) {
20
20
  case "WORKER_INBOX_WORKER_NOT_FOUND":
21
- return `Worker '${workerId}' not found in channel '${channel}'`;
21
+ return `Teammate '${workerId}' not found in Teamwork Session '${sessionId}'`;
22
22
  case "WORKER_INBOX_WORKER_TERMINAL":
23
- return `Worker '${workerId}' in channel '${channel}' is terminal`;
23
+ return `Teammate '${workerId}' in Teamwork Session '${sessionId}' is terminal`;
24
24
  }
25
25
  }
26
26
  function resolve(input) {
27
- return resolveChannelRef({
28
- channel: input.channel,
27
+ return resolveTeamworkSession({
28
+ sessionId: input.sessionId,
29
29
  ...(input.scope !== undefined ? { scope: input.scope } : {}),
30
30
  ...(input.projectKey !== undefined ? { projectKey: input.projectKey } : {}),
31
31
  ...(input.cwd !== undefined ? { cwd: input.cwd } : {}),
@@ -34,21 +34,21 @@ function resolve(input) {
34
34
  /**
35
35
  * Read durable inbox messages for a specific worker.
36
36
  *
37
- * Reduces the worker registry from the channel event log, finds the worker,
37
+ * Reduces the teammate registry from the Teamwork Session event log, finds the teammate,
38
38
  * and filters `message` events through `matchesInboxPolicy()` using the
39
39
  * worker's latest `inboxPolicy`. Core only reasons from the durable event
40
40
  * log; it does not claim the OS process is live.
41
41
  */
42
42
  export async function readWorkerInbox(input) {
43
43
  const ref = resolve(input);
44
- const events = await readEventsInternal(input.channel, ref.project);
44
+ const events = await readEventsInternal(input.sessionId, ref.project);
45
45
  const registry = reduceWorkerRegistry(events, ref);
46
46
  const worker = registry.workers.find((w) => w.workerId === input.workerId);
47
47
  if (!worker) {
48
- throw new WorkerInboxError("WORKER_INBOX_WORKER_NOT_FOUND", input.channel, input.workerId);
48
+ throw new WorkerInboxError("WORKER_INBOX_WORKER_NOT_FOUND", input.sessionId, input.workerId);
49
49
  }
50
50
  if (worker.terminal && !input.includeTerminal) {
51
- throw new WorkerInboxError("WORKER_INBOX_WORKER_TERMINAL", input.channel, input.workerId);
51
+ throw new WorkerInboxError("WORKER_INBOX_WORKER_TERMINAL", input.sessionId, input.workerId);
52
52
  }
53
53
  if (input.limit !== undefined &&
54
54
  (!Number.isInteger(input.limit) || input.limit < 0)) {
@@ -79,7 +79,7 @@ export async function readWorkerInbox(input) {
79
79
  *
80
80
  * Performs upfront worker validation and captures the current `lastSeq`,
81
81
  * then returns a generator that yields future inbox-matching messages
82
- * through the channel watch primitives. The generator ends when a terminal
82
+ * through the Teamwork Session watch primitives. The generator ends when a terminal
83
83
  * event for the watched worker arrives; it does not cross a terminal event
84
84
  * into a later respawn with the same id.
85
85
  *
@@ -89,14 +89,14 @@ export async function readWorkerInbox(input) {
89
89
  */
90
90
  export async function watchWorkerInbox(input) {
91
91
  const ref = resolve(input);
92
- const events = await readEventsInternal(input.channel, ref.project);
92
+ const events = await readEventsInternal(input.sessionId, ref.project);
93
93
  const registry = reduceWorkerRegistry(events, ref);
94
94
  const worker = registry.workers.find((w) => w.workerId === input.workerId);
95
95
  if (!worker) {
96
- throw new WorkerInboxError("WORKER_INBOX_WORKER_NOT_FOUND", input.channel, input.workerId);
96
+ throw new WorkerInboxError("WORKER_INBOX_WORKER_NOT_FOUND", input.sessionId, input.workerId);
97
97
  }
98
98
  if (worker.terminal) {
99
- throw new WorkerInboxError("WORKER_INBOX_WORKER_TERMINAL", input.channel, input.workerId);
99
+ throw new WorkerInboxError("WORKER_INBOX_WORKER_TERMINAL", input.sessionId, input.workerId);
100
100
  }
101
101
  const policy = worker.inboxPolicy;
102
102
  const lastSeq = events.length > 0 ? events[events.length - 1].seq : 0;
@@ -113,10 +113,10 @@ export async function watchWorkerInbox(input) {
113
113
  else {
114
114
  watchOpts.sinceSeq = lastSeq;
115
115
  }
116
- return inboxWatchGenerator(input.channel, input.workerId, policy, watchOpts);
116
+ return inboxWatchGenerator(input.sessionId, input.workerId, policy, watchOpts);
117
117
  }
118
- async function* inboxWatchGenerator(channel, workerId, policy, watchOpts) {
119
- for await (const ev of watchEvents(channel, { includeNonMeaningful: true, includeProgress: false }, watchOpts)) {
118
+ async function* inboxWatchGenerator(sessionId, workerId, policy, watchOpts) {
119
+ for await (const ev of watchEvents(sessionId, { includeNonMeaningful: true, includeProgress: false }, watchOpts)) {
120
120
  if (isTerminalForWorker(ev, workerId))
121
121
  return;
122
122
  if (matchesInboxPolicy(ev, workerId, policy)) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inbox.js","sourceRoot":"","sources":["../../../src/teamwork/api/inbox.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { type ChannelEvent, type InterruptReason } from "../internal/store/events.js";
1
+ import { type TeamworkEvent, type InterruptReason } from "../internal/store/events.js";
2
2
  import type { WorkerRuntime } from "./runtime.js";
3
- import type { ChannelAddressOptions, MutationCommonOptions } from "./types.js";
4
- export interface InterruptWorkerInput extends ChannelAddressOptions, MutationCommonOptions {
3
+ import type { TeamworkSessionAddressOptions, MutationCommonOptions } from "./types.js";
4
+ export interface InterruptWorkerInput extends TeamworkSessionAddressOptions, MutationCommonOptions {
5
5
  workerId: string;
6
6
  message?: string;
7
7
  reason?: InterruptReason;
@@ -9,7 +9,7 @@ export interface InterruptWorkerInput extends ChannelAddressOptions, MutationCom
9
9
  export type InterruptDelivery = "interrupted-current-turn" | "no-active-turn" | "worker-terminal" | "worker-unknown";
10
10
  export interface InterruptWorkerResult {
11
11
  /** Last durable event appended (`interrupted` if attempted, else `interrupt_requested`). */
12
- event: ChannelEvent;
12
+ event: TeamworkEvent;
13
13
  interrupted: boolean;
14
14
  delivery: InterruptDelivery;
15
15
  }
@@ -17,7 +17,7 @@ export interface InterruptWorkerResult {
17
17
  * Durable-event-only interrupt. Appends an `interrupt_requested` event
18
18
  * recording intent. Does not touch any worker runtime.
19
19
  */
20
- export declare function requestInterrupt(input: InterruptWorkerInput): Promise<ChannelEvent>;
20
+ export declare function requestInterrupt(input: InterruptWorkerInput): Promise<TeamworkEvent>;
21
21
  /**
22
22
  * Orchestration interrupt. Appends `interrupt_requested`, asks the
23
23
  * injected runtime to interrupt the worker, then appends `interrupted`
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interrupt.d.ts","sourceRoot":"","sources":["../../../src/teamwork/api/interrupt.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,eAAe,EACrB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,KAAK,EAAyB,aAAa,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,KAAK,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEvF,MAAM,WAAW,oBACf,SAAQ,6BAA6B,EACnC,qBAAqB;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,eAAe,CAAC;CAC1B;AAED,MAAM,MAAM,iBAAiB,GACzB,0BAA0B,GAC1B,gBAAgB,GAChB,iBAAiB,GACjB,gBAAgB,CAAC;AAErB,MAAM,WAAW,qBAAqB;IACpC,4FAA4F;IAC5F,KAAK,EAAE,aAAa,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,iBAAiB,CAAC;CAC7B;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,oBAAoB,GAC1B,OAAO,CAAC,aAAa,CAAC,CAsBxB;AAED;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CACnC,KAAK,EAAE,oBAAoB,EAC3B,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,qBAAqB,CAAC,CAiFhC"}
@@ -1,20 +1,20 @@
1
- import { appendEvent, readChannelEvents, } from "../internal/store/events.js";
1
+ import { appendEvent, readTeamworkEvents, } from "../internal/store/events.js";
2
2
  import { reduceWorkerRegistry } from "../internal/store/worker-state.js";
3
- import { resolveChannelRef } from "./resolve.js";
3
+ import { resolveTeamworkSession } from "./resolve.js";
4
4
  /**
5
5
  * Durable-event-only interrupt. Appends an `interrupt_requested` event
6
6
  * recording intent. Does not touch any worker runtime.
7
7
  */
8
8
  export async function requestInterrupt(input) {
9
- const ref = resolveChannelRef({
10
- channel: input.channel,
9
+ const ref = resolveTeamworkSession({
10
+ sessionId: input.sessionId,
11
11
  ...(input.scope !== undefined ? { scope: input.scope } : {}),
12
12
  ...(input.projectKey !== undefined
13
13
  ? { projectKey: input.projectKey }
14
14
  : {}),
15
15
  ...(input.cwd !== undefined ? { cwd: input.cwd } : {}),
16
16
  });
17
- return appendEvent(input.channel, {
17
+ return appendEvent(input.sessionId, {
18
18
  kind: "interrupt_requested",
19
19
  by: input.by,
20
20
  worker: input.workerId,
@@ -34,19 +34,19 @@ export async function requestInterrupt(input) {
34
34
  * is unknown or terminal in the durable registry.
35
35
  */
36
36
  export async function interruptWorker(input, runtime) {
37
- const ref = resolveChannelRef({
38
- channel: input.channel,
37
+ const ref = resolveTeamworkSession({
38
+ sessionId: input.sessionId,
39
39
  ...(input.scope !== undefined ? { scope: input.scope } : {}),
40
40
  ...(input.projectKey !== undefined
41
41
  ? { projectKey: input.projectKey }
42
42
  : {}),
43
43
  ...(input.cwd !== undefined ? { cwd: input.cwd } : {}),
44
44
  });
45
- const events = await readChannelEvents(input.channel, ref.project);
45
+ const events = await readTeamworkEvents(input.sessionId, ref.project);
46
46
  const registry = reduceWorkerRegistry(events);
47
47
  const worker = registry.workers.find((w) => w.workerId === input.workerId);
48
48
  const turnId = worker?.activeTurnId;
49
- const requestEvent = await appendEvent(input.channel, {
49
+ const requestEvent = await appendEvent(input.sessionId, {
50
50
  kind: "interrupt_requested",
51
51
  by: input.by,
52
52
  worker: input.workerId,
@@ -78,7 +78,7 @@ export async function interruptWorker(input, runtime) {
78
78
  ...(input.message !== undefined ? { message: input.message } : {}),
79
79
  })
80
80
  : { method: "none", outcome: "unsupported" };
81
- const interruptedEvent = await appendEvent(input.channel, {
81
+ const interruptedEvent = await appendEvent(input.sessionId, {
82
82
  kind: "interrupted",
83
83
  by: input.by,
84
84
  worker: input.workerId,
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interrupt.js","sourceRoot":"","sources":["../../../src/teamwork/api/interrupt.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,14 @@
1
- import { type ThreadChannelEvent } from "../internal/store/events.js";
1
+ import { type ThreadTeamworkEvent } from "../internal/store/events.js";
2
2
  import type { PostThreadOptions, RenameThreadOptions } from "./types.js";
3
3
  /**
4
- * Append a structured thread event. Throws when the channel is not of
4
+ * Append a structured thread event. Throws when the Teamwork Session is not of
5
5
  * `forum` type, when `action` is invalid, or when a non-`opened` event
6
6
  * is missing a thread key.
7
7
  */
8
- export declare function postThread(opts: PostThreadOptions): Promise<ThreadChannelEvent>;
8
+ export declare function postThread(opts: PostThreadOptions): Promise<ThreadTeamworkEvent>;
9
9
  /**
10
10
  * Rename a thread. Records a `kind:"thread", action:"rename"` event so
11
11
  * subsequent reducers can flatten alias chains.
12
12
  */
13
- export declare function renameThread(opts: RenameThreadOptions): Promise<ThreadChannelEvent>;
13
+ export declare function renameThread(opts: RenameThreadOptions): Promise<ThreadTeamworkEvent>;
14
14
  //# sourceMappingURL=post-thread.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"post-thread.d.ts","sourceRoot":"","sources":["../../../src/teamwork/api/post-thread.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,6BAA6B,CAAC;AAOrC,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAYzE;;;;GAIG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,mBAAmB,CAAC,CA0C9B;AAWD;;;GAGG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,mBAAmB,CAAC,CAyD9B"}
@@ -1,8 +1,8 @@
1
1
  import { appendEvent, } from "../internal/store/events.js";
2
2
  import { normalizeThreadKey } from "../internal/store/schema.js";
3
3
  import { buildThreadAliasResolver, } from "../internal/store/thread-state.js";
4
- import { readForumChannelEvents } from "./assert.js";
5
- import { resolveChannelRef } from "./resolve.js";
4
+ import { readForumTeamworkEvents } from "./assert.js";
5
+ import { resolveTeamworkSession } from "./resolve.js";
6
6
  const VALID_ACTIONS = new Set([
7
7
  "opened",
8
8
  "comment",
@@ -13,13 +13,13 @@ const VALID_ACTIONS = new Set([
13
13
  "processed",
14
14
  ]);
15
15
  /**
16
- * Append a structured thread event. Throws when the channel is not of
16
+ * Append a structured thread event. Throws when the Teamwork Session is not of
17
17
  * `forum` type, when `action` is invalid, or when a non-`opened` event
18
18
  * is missing a thread key.
19
19
  */
20
20
  export async function postThread(opts) {
21
- const ref = resolveChannelRef({
22
- channel: opts.channel,
21
+ const ref = resolveTeamworkSession({
22
+ sessionId: opts.sessionId,
23
23
  ...(opts.scope !== undefined ? { scope: opts.scope } : {}),
24
24
  ...(opts.projectKey !== undefined ? { projectKey: opts.projectKey } : {}),
25
25
  ...(opts.cwd !== undefined ? { cwd: opts.cwd } : {}),
@@ -27,9 +27,9 @@ export async function postThread(opts) {
27
27
  if (!VALID_ACTIONS.has(opts.action)) {
28
28
  throw new Error(`Invalid thread action '${opts.action}'. Must be one of: ${[...VALID_ACTIONS].join(", ")}`);
29
29
  }
30
- await readForumChannelEvents(opts.channel, ref.project, "post");
30
+ await readForumTeamworkEvents(opts.sessionId, ref.project, "post");
31
31
  const thread = resolveThreadKey(opts.action, opts.thread);
32
- const event = await appendEvent(opts.channel, {
32
+ const event = await appendEvent(opts.sessionId, {
33
33
  kind: "thread",
34
34
  by: opts.by,
35
35
  ...(opts.idempotencyKey !== undefined
@@ -66,13 +66,13 @@ function resolveThreadKey(action, value) {
66
66
  * subsequent reducers can flatten alias chains.
67
67
  */
68
68
  export async function renameThread(opts) {
69
- const ref = resolveChannelRef({
70
- channel: opts.channel,
69
+ const ref = resolveTeamworkSession({
70
+ sessionId: opts.sessionId,
71
71
  ...(opts.scope !== undefined ? { scope: opts.scope } : {}),
72
72
  ...(opts.projectKey !== undefined ? { projectKey: opts.projectKey } : {}),
73
73
  ...(opts.cwd !== undefined ? { cwd: opts.cwd } : {}),
74
74
  });
75
- const events = await readForumChannelEvents(opts.channel, ref.project, "thread rename");
75
+ const events = await readForumTeamworkEvents(opts.sessionId, ref.project, "thread rename");
76
76
  const oldKey = normalizeThreadKey(opts.thread);
77
77
  const newKey = normalizeThreadKey(opts.newThread);
78
78
  if (oldKey === newKey) {
@@ -90,12 +90,12 @@ export async function renameThread(opts) {
90
90
  }
91
91
  }
92
92
  if (!knownKeys.has(oldCurrent)) {
93
- throw new Error(`Thread '${oldKey}' not found in channel '${opts.channel}'.`);
93
+ throw new Error(`Thread '${oldKey}' not found in Teamwork Session '${opts.sessionId}'.`);
94
94
  }
95
95
  if (knownKeys.has(currentTarget) && currentTarget !== oldCurrent) {
96
- throw new Error(`Thread '${newKey}' already exists in channel '${opts.channel}'. Refusing to merge two timelines.`);
96
+ throw new Error(`Thread '${newKey}' already exists in Teamwork Session '${opts.sessionId}'. Refusing to merge two timelines.`);
97
97
  }
98
- const event = await appendEvent(opts.channel, {
98
+ const event = await appendEvent(opts.sessionId, {
99
99
  kind: "thread",
100
100
  by: opts.by,
101
101
  action: "rename",
@@ -0,0 +1 @@
1
+ {"version":3,"file":"post-thread.js","sourceRoot":"","sources":["../../../src/teamwork/api/post-thread.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { type TeamworkEvent, type ContextTeamworkEvent, type ReadTeamworkEventsPagination, type ThreadTeamworkEvent } from "../internal/store/events.js";
2
+ import { type ThreadState } from "../internal/store/thread-state.js";
3
+ import type { TeamworkSessionMetadata } from "../internal/store/schema.js";
4
+ import type { TeamworkSessionAddressOptions } from "./types.js";
5
+ /**
6
+ * Cursor pagination options. Omitting all of them returns every event,
7
+ * preserving the read-all default for existing callers.
8
+ */
9
+ export interface ReadTeamworkEventsOptions extends TeamworkSessionAddressOptions, ReadTeamworkEventsPagination {
10
+ }
11
+ export declare function readTeamworkEvents(opts: ReadTeamworkEventsOptions): Promise<TeamworkEvent[]>;
12
+ export declare function readTeamworkSessionMetadata(opts: TeamworkSessionAddressOptions): Promise<TeamworkSessionMetadata>;
13
+ export declare function listForumThreads(opts: TeamworkSessionAddressOptions): Promise<ThreadState[]>;
14
+ export declare function showThread(opts: TeamworkSessionAddressOptions & {
15
+ thread: string;
16
+ }): Promise<(ThreadTeamworkEvent | ContextTeamworkEvent)[]>;
17
+ //# sourceMappingURL=read.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../../src/teamwork/api/read.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,4BAA4B,EACjC,KAAK,mBAAmB,EACzB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAGL,KAAK,WAAW,EACjB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAG3E,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,YAAY,CAAC;AAEhE;;;GAGG;AACH,MAAM,WAAW,yBACf,SAAQ,6BAA6B,EACnC,4BAA4B;CAAG;AAEnC,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,yBAAyB,GAC9B,OAAO,CAAC,aAAa,EAAE,CAAC,CAY1B;AAED,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,6BAA6B,GAClC,OAAO,CAAC,uBAAuB,CAAC,CAGlC;AAED,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,6BAA6B,GAClC,OAAO,CAAC,WAAW,EAAE,CAAC,CAaxB;AAED,wBAAsB,UAAU,CAC9B,IAAI,EAAE,6BAA6B,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GACvD,OAAO,CAAC,CAAC,mBAAmB,GAAG,oBAAoB,CAAC,EAAE,CAAC,CAazD"}
@@ -1,44 +1,44 @@
1
- import { readChannelEvents as readEventsInternal, } from "../internal/store/events.js";
2
- import { reduceChannelMetadata } from "../internal/store/channel-metadata.js";
1
+ import { readTeamworkEvents as readEventsInternal, } from "../internal/store/events.js";
2
+ import { reduceTeamworkSessionMetadata } from "../internal/store/teamwork-session-metadata.js";
3
3
  import { collectThreadTimeline, reduceThreads, } from "../internal/store/thread-state.js";
4
4
  import { normalizeThreadKey } from "../internal/store/schema.js";
5
- import { readForumChannelEvents } from "./assert.js";
6
- import { resolveChannelRef } from "./resolve.js";
7
- export async function readChannelEvents(opts) {
8
- const ref = resolveChannelRef({
9
- channel: opts.channel,
5
+ import { readForumTeamworkEvents } from "./assert.js";
6
+ import { resolveTeamworkSession } from "./resolve.js";
7
+ export async function readTeamworkEvents(opts) {
8
+ const ref = resolveTeamworkSession({
9
+ sessionId: opts.sessionId,
10
10
  ...(opts.scope !== undefined ? { scope: opts.scope } : {}),
11
11
  ...(opts.projectKey !== undefined ? { projectKey: opts.projectKey } : {}),
12
12
  ...(opts.cwd !== undefined ? { cwd: opts.cwd } : {}),
13
13
  });
14
- return readEventsInternal(opts.channel, ref.project, {
14
+ return readEventsInternal(opts.sessionId, ref.project, {
15
15
  ...(opts.afterSeq !== undefined ? { afterSeq: opts.afterSeq } : {}),
16
16
  ...(opts.beforeSeq !== undefined ? { beforeSeq: opts.beforeSeq } : {}),
17
17
  ...(opts.limit !== undefined ? { limit: opts.limit } : {}),
18
18
  });
19
19
  }
20
- export async function readChannelMetadata(opts) {
21
- const events = await readChannelEvents(opts);
22
- return reduceChannelMetadata(events);
20
+ export async function readTeamworkSessionMetadata(opts) {
21
+ const events = await readTeamworkEvents(opts);
22
+ return reduceTeamworkSessionMetadata(events);
23
23
  }
24
24
  export async function listForumThreads(opts) {
25
- const ref = resolveChannelRef({
26
- channel: opts.channel,
25
+ const ref = resolveTeamworkSession({
26
+ sessionId: opts.sessionId,
27
27
  ...(opts.scope !== undefined ? { scope: opts.scope } : {}),
28
28
  ...(opts.projectKey !== undefined ? { projectKey: opts.projectKey } : {}),
29
29
  ...(opts.cwd !== undefined ? { cwd: opts.cwd } : {}),
30
30
  });
31
- const events = await readForumChannelEvents(opts.channel, ref.project, "forum");
31
+ const events = await readForumTeamworkEvents(opts.sessionId, ref.project, "forum");
32
32
  return reduceThreads(events);
33
33
  }
34
34
  export async function showThread(opts) {
35
- const ref = resolveChannelRef({
36
- channel: opts.channel,
35
+ const ref = resolveTeamworkSession({
36
+ sessionId: opts.sessionId,
37
37
  ...(opts.scope !== undefined ? { scope: opts.scope } : {}),
38
38
  ...(opts.projectKey !== undefined ? { projectKey: opts.projectKey } : {}),
39
39
  ...(opts.cwd !== undefined ? { cwd: opts.cwd } : {}),
40
40
  });
41
- const events = await readForumChannelEvents(opts.channel, ref.project, "thread");
41
+ const events = await readForumTeamworkEvents(opts.sessionId, ref.project, "thread");
42
42
  return collectThreadTimeline(events, normalizeThreadKey(opts.thread));
43
43
  }
44
44
  //# sourceMappingURL=read.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read.js","sourceRoot":"","sources":["../../../src/teamwork/api/read.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { TeamworkSessionRef, TeamworkSessionScope } from "../internal/store/schema.js";
2
+ export interface ResolveTeamworkSessionOptions {
3
+ sessionId: string;
4
+ scope?: TeamworkSessionScope;
5
+ /** Storage project bucket key. Wins when set. */
6
+ projectKey?: string;
7
+ /** cwd used to derive the project bucket when scope is "project". */
8
+ cwd?: string;
9
+ /**
10
+ * If true, do not require the Teamwork Session to exist on disk. Used for the
11
+ * create path. Defaults to false (existence required).
12
+ */
13
+ forCreate?: boolean;
14
+ }
15
+ /**
16
+ * Resolve a `TeamworkSessionRef` honoring `--scope`, an explicit `projectKey`,
17
+ * or cwd-derived defaults. Mirrors the CLI's scope-resolution rules so
18
+ * downstream consumers behave the same way.
19
+ */
20
+ export declare function resolveTeamworkSession(opts: ResolveTeamworkSessionOptions): TeamworkSessionRef;
21
+ //# sourceMappingURL=resolve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../../src/teamwork/api/resolve.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EACrB,MAAM,6BAA6B,CAAC;AAErC,MAAM,WAAW,6BAA6B;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAC7B,iDAAiD;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,6BAA6B,GAAG,kBAAkB,CAoB9F"}