@jinion/core 0.4.0 → 0.5.1

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 (250) hide show
  1. package/dist/agent/agent.d.ts +8 -1
  2. package/dist/agent/agent.d.ts.map +1 -1
  3. package/dist/agent/agent.js +3 -2
  4. package/dist/agent/agent.js.map +1 -1
  5. package/dist/agent/claude/approvals.d.ts +2 -1
  6. package/dist/agent/claude/approvals.d.ts.map +1 -1
  7. package/dist/agent/claude/approvals.js +2 -2
  8. package/dist/agent/claude/approvals.js.map +1 -1
  9. package/dist/agent/claude/backend.d.ts +1 -1
  10. package/dist/agent/claude/backend.d.ts.map +1 -1
  11. package/dist/agent/claude/backend.js +3 -2
  12. package/dist/agent/claude/backend.js.map +1 -1
  13. package/dist/agent/claude/jinion-tools.d.ts +3 -1
  14. package/dist/agent/claude/jinion-tools.d.ts.map +1 -1
  15. package/dist/agent/claude/jinion-tools.js +10 -1
  16. package/dist/agent/claude/jinion-tools.js.map +1 -1
  17. package/dist/agent/claude/options.d.ts +4 -1
  18. package/dist/agent/claude/options.d.ts.map +1 -1
  19. package/dist/agent/claude/options.js +6 -4
  20. package/dist/agent/claude/options.js.map +1 -1
  21. package/dist/agent/claude/policy.d.ts +1 -1
  22. package/dist/agent/claude/policy.d.ts.map +1 -1
  23. package/dist/agent/claude/policy.js +1 -0
  24. package/dist/agent/claude/policy.js.map +1 -1
  25. package/dist/agent/claude/prompt.d.ts +2 -1
  26. package/dist/agent/claude/prompt.d.ts.map +1 -1
  27. package/dist/agent/claude/prompt.js +3 -1
  28. package/dist/agent/claude/prompt.js.map +1 -1
  29. package/dist/agent/claude/session.d.ts +10 -2
  30. package/dist/agent/claude/session.d.ts.map +1 -1
  31. package/dist/agent/claude/session.js +14 -3
  32. package/dist/agent/claude/session.js.map +1 -1
  33. package/dist/agent/claude/tool-calls.d.ts.map +1 -1
  34. package/dist/agent/claude/tool-calls.js +11 -2
  35. package/dist/agent/claude/tool-calls.js.map +1 -1
  36. package/dist/agent/codex/approvals.d.ts +1 -1
  37. package/dist/agent/codex/approvals.d.ts.map +1 -1
  38. package/dist/agent/codex/approvals.js +1 -1
  39. package/dist/agent/codex/approvals.js.map +1 -1
  40. package/dist/agent/codex/backend.d.ts +1 -1
  41. package/dist/agent/codex/backend.d.ts.map +1 -1
  42. package/dist/agent/codex/backend.js +3 -2
  43. package/dist/agent/codex/backend.js.map +1 -1
  44. package/dist/agent/codex/events.d.ts.map +1 -1
  45. package/dist/agent/codex/events.js +7 -4
  46. package/dist/agent/codex/events.js.map +1 -1
  47. package/dist/agent/codex/jinion-tools.d.ts +27 -4
  48. package/dist/agent/codex/jinion-tools.d.ts.map +1 -1
  49. package/dist/agent/codex/jinion-tools.js +18 -4
  50. package/dist/agent/codex/jinion-tools.js.map +1 -1
  51. package/dist/agent/codex/modes.d.ts +2 -2
  52. package/dist/agent/codex/modes.d.ts.map +1 -1
  53. package/dist/agent/codex/modes.js +4 -3
  54. package/dist/agent/codex/modes.js.map +1 -1
  55. package/dist/agent/codex/session.d.ts +4 -1
  56. package/dist/agent/codex/session.d.ts.map +1 -1
  57. package/dist/agent/codex/session.js +5 -2
  58. package/dist/agent/codex/session.js.map +1 -1
  59. package/dist/agent/demo/script.d.ts +2 -2
  60. package/dist/agent/demo/sessions.d.ts.map +1 -1
  61. package/dist/agent/demo/sessions.js +26 -1
  62. package/dist/agent/demo/sessions.js.map +1 -1
  63. package/dist/agent/demo/tasks.d.ts +1 -1
  64. package/dist/agent/events.d.ts +1 -0
  65. package/dist/agent/events.d.ts.map +1 -1
  66. package/dist/agent/modes.d.ts +15 -1
  67. package/dist/agent/modes.d.ts.map +1 -1
  68. package/dist/agent/modes.js +16 -1
  69. package/dist/agent/modes.js.map +1 -1
  70. package/dist/agent/review.d.ts +8 -2
  71. package/dist/agent/review.d.ts.map +1 -1
  72. package/dist/agent/review.js +27 -7
  73. package/dist/agent/review.js.map +1 -1
  74. package/dist/api/client.d.ts +216 -4
  75. package/dist/api/client.d.ts.map +1 -1
  76. package/dist/api/connection.d.ts +54 -2
  77. package/dist/api/connection.d.ts.map +1 -1
  78. package/dist/api/connection.js +2 -0
  79. package/dist/api/connection.js.map +1 -1
  80. package/dist/api/fields.d.ts +235 -7
  81. package/dist/api/fields.d.ts.map +1 -1
  82. package/dist/api/fields.js +3 -1
  83. package/dist/api/fields.js.map +1 -1
  84. package/dist/api/json-schema.d.ts +831 -187
  85. package/dist/api/json-schema.d.ts.map +1 -1
  86. package/dist/api/methods/git.js +1 -1
  87. package/dist/api/methods/git.js.map +1 -1
  88. package/dist/api/methods/sessions.d.ts.map +1 -1
  89. package/dist/api/methods/sessions.js +3 -2
  90. package/dist/api/methods/sessions.js.map +1 -1
  91. package/dist/api/methods/team.d.ts +4 -0
  92. package/dist/api/methods/team.d.ts.map +1 -0
  93. package/dist/api/methods/team.js +30 -0
  94. package/dist/api/methods/team.js.map +1 -0
  95. package/dist/api/protocol.d.ts +791 -8
  96. package/dist/api/protocol.d.ts.map +1 -1
  97. package/dist/api/protocol.js +36 -5
  98. package/dist/api/protocol.js.map +1 -1
  99. package/dist/api/schemas.d.ts +504 -2
  100. package/dist/api/schemas.d.ts.map +1 -1
  101. package/dist/api/schemas.js +6 -0
  102. package/dist/api/schemas.js.map +1 -1
  103. package/dist/commands/agent.js +3 -3
  104. package/dist/commands/agent.js.map +1 -1
  105. package/dist/commands/builtin.d.ts.map +1 -1
  106. package/dist/commands/builtin.js +3 -0
  107. package/dist/commands/builtin.js.map +1 -1
  108. package/dist/commands/team.d.ts +4 -0
  109. package/dist/commands/team.d.ts.map +1 -0
  110. package/dist/commands/team.js +11 -0
  111. package/dist/commands/team.js.map +1 -0
  112. package/dist/controllers/context.d.ts +4 -0
  113. package/dist/controllers/context.d.ts.map +1 -1
  114. package/dist/controllers/context.js +4 -0
  115. package/dist/controllers/context.js.map +1 -1
  116. package/dist/controllers/conversation.d.ts +16 -0
  117. package/dist/controllers/conversation.d.ts.map +1 -1
  118. package/dist/controllers/decision-view.d.ts +20 -0
  119. package/dist/controllers/decision-view.d.ts.map +1 -0
  120. package/dist/controllers/decision-view.js +59 -0
  121. package/dist/controllers/decision-view.js.map +1 -0
  122. package/dist/controllers/decisions.d.ts +29 -0
  123. package/dist/controllers/decisions.d.ts.map +1 -0
  124. package/dist/controllers/decisions.js +199 -0
  125. package/dist/controllers/decisions.js.map +1 -0
  126. package/dist/controllers/jinion.d.ts +17 -1
  127. package/dist/controllers/jinion.d.ts.map +1 -1
  128. package/dist/controllers/jinion.js +89 -5
  129. package/dist/controllers/jinion.js.map +1 -1
  130. package/dist/controllers/mode.d.ts +8 -4
  131. package/dist/controllers/mode.d.ts.map +1 -1
  132. package/dist/controllers/mode.js +30 -4
  133. package/dist/controllers/mode.js.map +1 -1
  134. package/dist/controllers/session.d.ts +21 -1
  135. package/dist/controllers/session.d.ts.map +1 -1
  136. package/dist/controllers/session.js +64 -2
  137. package/dist/controllers/session.js.map +1 -1
  138. package/dist/controllers/team.d.ts +216 -0
  139. package/dist/controllers/team.d.ts.map +1 -0
  140. package/dist/controllers/team.js +208 -0
  141. package/dist/controllers/team.js.map +1 -0
  142. package/dist/controllers/turns.d.ts +7 -0
  143. package/dist/controllers/turns.d.ts.map +1 -1
  144. package/dist/controllers/turns.js +21 -4
  145. package/dist/controllers/turns.js.map +1 -1
  146. package/dist/conversation/dialogs.d.ts +1 -0
  147. package/dist/conversation/dialogs.d.ts.map +1 -1
  148. package/dist/conversation/entries.d.ts +36 -0
  149. package/dist/conversation/entries.d.ts.map +1 -1
  150. package/dist/conversation/entries.js +26 -0
  151. package/dist/conversation/entries.js.map +1 -1
  152. package/dist/conversation/reducer.d.ts +135 -0
  153. package/dist/conversation/reducer.d.ts.map +1 -1
  154. package/dist/conversation/reducer.js +30 -1
  155. package/dist/conversation/reducer.js.map +1 -1
  156. package/dist/conversation/session.d.ts +24 -0
  157. package/dist/conversation/session.d.ts.map +1 -1
  158. package/dist/conversation/store.d.ts +13 -0
  159. package/dist/conversation/store.d.ts.map +1 -1
  160. package/dist/conversation/store.js +31 -7
  161. package/dist/conversation/store.js.map +1 -1
  162. package/dist/feedback/shared.d.ts +16 -0
  163. package/dist/feedback/shared.d.ts.map +1 -1
  164. package/dist/git/repos.d.ts.map +1 -1
  165. package/dist/git/repos.js +3 -1
  166. package/dist/git/repos.js.map +1 -1
  167. package/dist/git/staging.d.ts +2 -2
  168. package/dist/git/staging.d.ts.map +1 -1
  169. package/dist/git/staging.js +3 -3
  170. package/dist/git/staging.js.map +1 -1
  171. package/dist/git/types.d.ts +2 -0
  172. package/dist/git/types.d.ts.map +1 -1
  173. package/dist/git/types.js +2 -0
  174. package/dist/git/types.js.map +1 -1
  175. package/dist/jinion-account/account.d.ts +178 -0
  176. package/dist/jinion-account/account.d.ts.map +1 -1
  177. package/dist/jinion-account/account.js +30 -0
  178. package/dist/jinion-account/account.js.map +1 -1
  179. package/dist/jinion-account/api.d.ts +169 -0
  180. package/dist/jinion-account/api.d.ts.map +1 -1
  181. package/dist/jinion-account/api.js +39 -1
  182. package/dist/jinion-account/api.js.map +1 -1
  183. package/dist/jinion-account/user.d.ts +22 -0
  184. package/dist/jinion-account/user.d.ts.map +1 -1
  185. package/dist/jinion-account/user.js +9 -0
  186. package/dist/jinion-account/user.js.map +1 -1
  187. package/dist/map/review.d.ts +6 -4
  188. package/dist/map/review.d.ts.map +1 -1
  189. package/dist/map/review.js +21 -7
  190. package/dist/map/review.js.map +1 -1
  191. package/dist/settings/user.d.ts +2 -0
  192. package/dist/settings/user.d.ts.map +1 -1
  193. package/dist/settings/user.js.map +1 -1
  194. package/dist/state/agent.d.ts +2 -2
  195. package/dist/state/jinion-account.d.ts +6 -0
  196. package/dist/state/jinion-account.d.ts.map +1 -1
  197. package/dist/state/session.d.ts +155 -5
  198. package/dist/state/session.d.ts.map +1 -1
  199. package/dist/state/session.js +2 -0
  200. package/dist/state/session.js.map +1 -1
  201. package/dist/state/team.d.ts +151 -0
  202. package/dist/state/team.d.ts.map +1 -0
  203. package/dist/state/team.js +4 -0
  204. package/dist/state/team.js.map +1 -0
  205. package/dist/team/anchoring.d.ts +9 -0
  206. package/dist/team/anchoring.d.ts.map +1 -0
  207. package/dist/team/anchoring.js +26 -0
  208. package/dist/team/anchoring.js.map +1 -0
  209. package/dist/team/config.d.ts +16 -0
  210. package/dist/team/config.d.ts.map +1 -0
  211. package/dist/team/config.js +37 -0
  212. package/dist/team/config.js.map +1 -0
  213. package/dist/team/decision.d.ts +255 -0
  214. package/dist/team/decision.d.ts.map +1 -0
  215. package/dist/team/decision.js +82 -0
  216. package/dist/team/decision.js.map +1 -0
  217. package/dist/team/decisions.d.ts +98 -0
  218. package/dist/team/decisions.d.ts.map +1 -0
  219. package/dist/team/decisions.js +166 -0
  220. package/dist/team/decisions.js.map +1 -0
  221. package/dist/team/history.d.ts +27 -0
  222. package/dist/team/history.d.ts.map +1 -0
  223. package/dist/team/history.js +49 -0
  224. package/dist/team/history.js.map +1 -0
  225. package/dist/team/prompt.d.ts +20 -0
  226. package/dist/team/prompt.d.ts.map +1 -0
  227. package/dist/team/prompt.js +44 -0
  228. package/dist/team/prompt.js.map +1 -0
  229. package/dist/team/repository.d.ts +12 -0
  230. package/dist/team/repository.d.ts.map +1 -0
  231. package/dist/team/repository.js +32 -0
  232. package/dist/team/repository.js.map +1 -0
  233. package/dist/team/secrets.d.ts +3 -0
  234. package/dist/team/secrets.d.ts.map +1 -0
  235. package/dist/team/secrets.js +18 -0
  236. package/dist/team/secrets.js.map +1 -0
  237. package/dist/team/tools.d.ts +82 -0
  238. package/dist/team/tools.d.ts.map +1 -0
  239. package/dist/team/tools.js +46 -0
  240. package/dist/team/tools.js.map +1 -0
  241. package/dist/team/types.d.ts +178 -0
  242. package/dist/team/types.d.ts.map +1 -0
  243. package/dist/team/types.js +60 -0
  244. package/dist/team/types.js.map +1 -0
  245. package/dist/team/visibility.d.ts +9 -0
  246. package/dist/team/visibility.d.ts.map +1 -0
  247. package/dist/team/visibility.js +36 -0
  248. package/dist/team/visibility.js.map +1 -0
  249. package/package.json +1 -1
  250. package/schema/api.json +3372 -503
@@ -1 +1 @@
1
- {"version":3,"file":"jinion.d.ts","sourceRoot":"","sources":["../../src/controllers/jinion.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jinion.d.ts","sourceRoot":"","sources":["../../src/controllers/jinion.ts"],"names":[],"mappings":"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"}
@@ -16,8 +16,14 @@ import { notificationsAtom, worktreesAtom } from '../state/preferences.js';
16
16
  import { announcementsAtom, jinionUserAtom } from '../state/jinion-account.js';
17
17
  import { DEFAULT_CONTEXT_WINDOW } from '../state/session.js';
18
18
  import { AccountController } from './accounts.js';
19
+ import { SessionDecisions } from './decisions.js';
19
20
  import { McpController } from './mcp.js';
20
21
  import { Session } from './session.js';
22
+ import { TeamController } from './team.js';
23
+ /** How often a Jinion looks for another one asking to take over a conversation it has open. */
24
+ const HAND_OVER_CHECK = 500;
25
+ /** How long taking over waits for the other Jinion, which may stop a turn first, before it gives up. */
26
+ const HAND_OVER_WAIT = 10_000;
21
27
  /** The app: what every session shares, the sessions open in it, and the one the user looks at. */
22
28
  export class Jinion {
23
29
  options;
@@ -36,6 +42,8 @@ export class Jinion {
36
42
  accounts;
37
43
  mcp;
38
44
  jinionAccount;
45
+ /** Whether the project belongs to a team, as its jinion.config.json says and api.jinion.co answers. */
46
+ team;
39
47
  signals;
40
48
  open = [];
41
49
  active;
@@ -44,6 +52,8 @@ export class Jinion {
44
52
  started = false;
45
53
  onExit;
46
54
  sessionListeners = new Set();
55
+ handOvers;
56
+ handingOver = new Set();
47
57
  constructor(options, screen) {
48
58
  this.options = options;
49
59
  this.screen = screen;
@@ -67,11 +77,13 @@ export class Jinion {
67
77
  this.mcp = new McpController(context, (backend) => this.reloadSkills(backend));
68
78
  this.jinionAccount = new JinionAccount((user) => {
69
79
  this.store.set(jinionUserAtom, user);
80
+ void this.team.refresh();
70
81
  if (user?.activated)
71
82
  void this.loadAnnouncements();
72
83
  else
73
84
  this.store.set(announcementsAtom, []);
74
85
  });
86
+ this.team = new TeamController(this.store, this.info.cwd, this.jinionAccount);
75
87
  this.signals = options.signals;
76
88
  this.store.set(agentsAtom, this.backends.map(agentInfo));
77
89
  this.activate(this.openFirst(options.initial));
@@ -94,6 +106,10 @@ export class Jinion {
94
106
  for (const session of this.open)
95
107
  this.load(session.backend);
96
108
  this.refreshMap(this.open[0]?.backend);
109
+ this.team.start();
110
+ // Another Jinion asks through a file beside the conversation, so this one looks for one now and then.
111
+ this.handOvers = setInterval(() => this.answerHandOvers(), HAND_OVER_CHECK);
112
+ this.handOvers.unref?.();
97
113
  // What waits from before, such as an error the last run crashed with, goes once the account is known to be active.
98
114
  void this.jinionAccount.refresh().then(() => this.signals?.send());
99
115
  }
@@ -160,12 +176,16 @@ export class Jinion {
160
176
  const state = saved ? fromSaved(gone ? { ...saved, worktree: undefined } : saved) : createSessionState(contextWindow);
161
177
  this.claim(state.id, saved?.title);
162
178
  const current = active && store.get(active.atoms.mode);
179
+ // The agent's session comes first and the session that holds it after, which the recorder only needs once a turn runs.
180
+ let opened;
181
+ const recorder = new SessionDecisions(this, () => opened);
163
182
  const agent = backend.session({
164
183
  cwd: (!gone && saved?.worktree?.folder) || this.info.cwd,
165
184
  selection: active?.backend === backend ? store.get(active.atoms.selection) : this.selectionFor(backend),
166
185
  // Debug is on for one problem, so another conversation starts in the mode the project keeps.
167
186
  mode: this.modeFor(backend, current === 'debug' ? loadProjectSettings(this.info.cwd).mode : current),
168
187
  resume: saved && resumeOf(saved),
188
+ decisions: recorder,
169
189
  });
170
190
  const session = new Session(this, backend, agent, {
171
191
  state: { ...state, agent: backend.name },
@@ -173,7 +193,8 @@ export class Jinion {
173
193
  selection: agent.selection,
174
194
  mode: agent.mode,
175
195
  worktree: worktree ?? store.get(worktreesAtom),
176
- });
196
+ }, recorder);
197
+ opened = session;
177
198
  this.open.push(session);
178
199
  this.load(backend);
179
200
  this.sessionsChanged();
@@ -182,6 +203,28 @@ export class Jinion {
182
203
  }
183
204
  return session;
184
205
  }
206
+ /**
207
+ * The saved conversation `id`, also when another Jinion has it open: that one is asked to let go of it, stops its turn
208
+ * and closes it, and it opens here as it was left there.
209
+ */
210
+ async takeOver(id, options) {
211
+ const already = this.open.find((session) => session.id === id);
212
+ if (already)
213
+ return already;
214
+ const owner = this.saved.openElsewhere(id);
215
+ if (owner !== undefined) {
216
+ this.saved.askToHandOver(id);
217
+ const freed = await settled(() => this.saved.openElsewhere(id) === undefined, HAND_OVER_WAIT);
218
+ if (!freed) {
219
+ this.saved.withdrawHandOver(id);
220
+ throw new OpenElsewhere(owner, this.savedOne(id)?.title, true);
221
+ }
222
+ }
223
+ const saved = this.savedOne(id);
224
+ if (!saved)
225
+ throw new Error(`There is no saved conversation ${id}.`);
226
+ return this.openSession(saved, options);
227
+ }
185
228
  activate(session) {
186
229
  this.active = session;
187
230
  this.sessionsChanged();
@@ -231,7 +274,9 @@ export class Jinion {
231
274
  }
232
275
  async quit() {
233
276
  const kept = await Promise.all(this.open.map((session) => session.quit()));
277
+ clearInterval(this.handOvers);
234
278
  this.terminals.closeAll();
279
+ this.team.stop();
235
280
  await this.code.closeAll();
236
281
  for (const session of this.open)
237
282
  this.saved.release(session.id);
@@ -280,6 +325,31 @@ export class Jinion {
280
325
  startingBackend() {
281
326
  return this.named(this.options.agent ?? this.backends[0].name);
282
327
  }
328
+ savedOne(id) {
329
+ return this.saved.list().find((session) => session.id === id);
330
+ }
331
+ answerHandOvers() {
332
+ for (const session of this.open) {
333
+ if (!this.handingOver.has(session.id) && this.saved.handOverAsked(session.id))
334
+ void this.handOver(session);
335
+ }
336
+ }
337
+ /** Lets another Jinion go on with `session`, and says so in the one shown. */
338
+ async handOver(session) {
339
+ const { title } = this.store.get(session.atoms.state);
340
+ this.handingOver.add(session.id);
341
+ await session.handOver();
342
+ this.open.splice(this.open.indexOf(session), 1);
343
+ this.saved.release(session.id);
344
+ this.handingOver.delete(session.id);
345
+ this.sessionsChanged();
346
+ const notices = [{ text: `“${title ?? 'This conversation'}” went on in another Jinion.`, tone: 'muted' }];
347
+ if (session === this.active)
348
+ this.show(this.open.at(-1) ?? this.openSession(), notices);
349
+ else
350
+ for (const { text, tone } of notices)
351
+ this.session.notice(text, tone);
352
+ }
283
353
  claim(id, title) {
284
354
  const owner = this.saved.claim(id);
285
355
  if (owner !== undefined)
@@ -314,11 +384,25 @@ export class Jinion {
314
384
  /** Two processes writing one conversation would undo each other's turns. */
315
385
  export class OpenElsewhere extends Error {
316
386
  pid;
317
- constructor(pid, title = 'This conversation') {
318
- super(isServer(pid)
319
- ? `“${title}” is open in jinion serve (pid ${pid}); jinion --attach shows it.`
320
- : `“${title}” is open in another jinion (pid ${pid}). Close it there to open it here.`);
387
+ constructor(pid, title = 'This conversation',
388
+ /** Asked to let go of it, the other didn't, as a Jinion from before taking over did. */
389
+ asked = false) {
390
+ super(asked
391
+ ? `“${title}” is still open in another jinion (pid ${pid}), which didn't let go of it. It may be an older version: close it there, or update it.`
392
+ : isServer(pid)
393
+ ? `“${title}” is open in jinion serve (pid ${pid}); jinion --attach shows it.`
394
+ : `“${title}” is open in another jinion (pid ${pid}). Close it there to open it here.`);
321
395
  this.pid = pid;
322
396
  }
323
397
  }
398
+ /** Whether `check` holds within `within` milliseconds, asked a few times a second. */
399
+ async function settled(check, within) {
400
+ const until = Date.now() + within;
401
+ while (!check()) {
402
+ if (Date.now() > until)
403
+ return false;
404
+ await new Promise((resolve) => setTimeout(resolve, 100));
405
+ }
406
+ return true;
407
+ }
324
408
  //# sourceMappingURL=jinion.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"jinion.js","sourceRoot":"","sources":["../../src/controllers/jinion.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jinion.js","sourceRoot":"","sources":["../../src/controllers/jinion.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,18 @@
1
1
  import type { AgentMode } from '../agent/agent.js';
2
2
  import type { SessionContext } from './context.js';
3
+ import type { DialogController } from './dialogs.js';
3
4
  export declare class ModeController {
4
5
  private readonly context;
6
+ private readonly dialogs;
5
7
  private switches;
6
- constructor(context: SessionContext);
7
- get current(): "auto" | "debug" | "edits" | "manual" | "plan";
8
- select(next: AgentMode): void;
9
- cycle(): void;
8
+ constructor(context: SessionContext, dialogs: DialogController);
9
+ get current(): "auto" | "debug" | "edits" | "full" | "manual" | "plan";
10
+ select(next: AgentMode): Promise<void>;
11
+ cycle(): Promise<void>;
10
12
  show(mode: AgentMode): void;
11
13
  /** The project starts its next session in it too. */
12
14
  keep(mode: AgentMode): void;
15
+ /** Asked the first time only, in whichever app and project that is; staying is first, so a quick Enter changes nothing. */
16
+ private fullAccessAccepted;
13
17
  }
14
18
  //# sourceMappingURL=mode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mode.d.ts","sourceRoot":"","sources":["../../src/controllers/mode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAInD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,qBAAa,cAAc;IAGb,OAAO,CAAC,QAAQ,CAAC,OAAO;IAFpC,OAAO,CAAC,QAAQ,CAAqB;IAErC,YAA6B,OAAO,EAAE,cAAc,EAAI;IAExD,IAAI,OAAO,mDAEV;IAED,MAAM,CAAC,IAAI,EAAE,SAAS,QAWrB;IAED,KAAK,SAEJ;IAED,IAAI,CAAC,IAAI,EAAE,SAAS,QAEnB;IAED,qDAAqD;IACrD,IAAI,CAAC,IAAI,EAAE,SAAS,QAGnB;CACF"}
1
+ {"version":3,"file":"mode.d.ts","sourceRoot":"","sources":["../../src/controllers/mode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAKnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,qBAAa,cAAc;IAIvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJ1B,OAAO,CAAC,QAAQ,CAAqB;IAErC,YACmB,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,gBAAgB,EACxC;IAEJ,IAAI,OAAO,4DAEV;IAEK,MAAM,CAAC,IAAI,EAAE,SAAS,iBAY3B;IAED,KAAK,kBAEJ;IAED,IAAI,CAAC,IAAI,EAAE,SAAS,QAEnB;IAED,qDAAqD;IACrD,IAAI,CAAC,IAAI,EAAE,SAAS,QAGnB;IAED,2HAA2H;YAC7G,kBAAkB;CAqBjC"}
@@ -1,19 +1,24 @@
1
1
  import { errorMessage } from '../lib/errors.js';
2
2
  import { saveProjectSettings } from '../settings/project.js';
3
- import { MODES, nextMode } from '../agent/modes.js';
3
+ import { loadSettings, updateSettings } from '../settings/user.js';
4
+ import { FULL_ACCESS_WARNING, MODES, nextMode } from '../agent/modes.js';
4
5
  export class ModeController {
5
6
  context;
7
+ dialogs;
6
8
  switches = Promise.resolve();
7
- constructor(context) {
9
+ constructor(context, dialogs) {
8
10
  this.context = context;
11
+ this.dialogs = dialogs;
9
12
  }
10
13
  get current() {
11
14
  return this.context.store.get(this.context.atoms.mode);
12
15
  }
13
- select(next) {
16
+ async select(next) {
14
17
  const { backend, agent, notice } = this.context;
15
18
  if (!backend.modes.includes(next))
16
19
  return notice(`${backend.name} has no ${MODES[next].name} mode.`, 'warning');
20
+ if (next === 'full' && !(await this.fullAccessAccepted()))
21
+ return;
17
22
  // Debug is on for one problem, so the project's next conversation doesn't start in it.
18
23
  if (next === 'debug')
19
24
  this.show(next);
@@ -24,7 +29,7 @@ export class ModeController {
24
29
  .catch((error) => notice(`Couldn't switch the mode: ${errorMessage(error)}`, 'error'));
25
30
  }
26
31
  cycle() {
27
- this.select(nextMode(this.context.backend.modes, this.current));
32
+ return this.select(nextMode(this.context.backend.modes, this.current));
28
33
  }
29
34
  show(mode) {
30
35
  this.context.store.set(this.context.atoms.mode, mode);
@@ -34,5 +39,26 @@ export class ModeController {
34
39
  this.show(mode);
35
40
  saveProjectSettings(this.context.info.cwd, { mode });
36
41
  }
42
+ /** Asked the first time only, in whichever app and project that is; staying is first, so a quick Enter changes nothing. */
43
+ async fullAccessAccepted() {
44
+ if (loadSettings().fullAccessAccepted)
45
+ return true;
46
+ const question = {
47
+ id: 'full-access',
48
+ prompt: FULL_ACCESS_WARNING.prompt,
49
+ other: false,
50
+ options: [FULL_ACCESS_WARNING.off(MODES[this.current].name), FULL_ACCESS_WARNING.on],
51
+ };
52
+ try {
53
+ const [answer] = await this.dialogs.open({ id: 'ask', questions: [question] });
54
+ if (answer?.options[0] !== 1)
55
+ return false;
56
+ updateSettings(() => ({ fullAccessAccepted: true }));
57
+ return true;
58
+ }
59
+ catch {
60
+ return false;
61
+ }
62
+ }
37
63
  }
38
64
  //# sourceMappingURL=mode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mode.js","sourceRoot":"","sources":["../../src/controllers/mode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAGpD,MAAM,OAAO,cAAc;IAGI,OAAO;IAF5B,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAErC,YAA6B,OAAuB;uBAAvB,OAAO;IAAmB,CAAC;IAExD,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,CAAC,IAAe;QACpB,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QAChD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,WAAW,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,QAAQ,EAAE,SAAS,CAAC,CAAC;QAEhH,uFAAuF;QACvF,IAAI,IAAI,KAAK,OAAO;YAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;YACjC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAErB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;aAC1B,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;aAC/B,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE,CAAC,MAAM,CAAC,6BAA6B,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;IACpG,CAAC;IAED,KAAK;QACH,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,IAAI,CAAC,IAAe;QAClB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACxD,CAAC;IAED,qDAAqD;IACrD,IAAI,CAAC,IAAe;QAClB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;CACF"}
1
+ {"version":3,"file":"mode.js","sourceRoot":"","sources":["../../src/controllers/mode.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,12 @@
1
1
  import { type AgentBackend, type AgentSession } from '../agent/agent.js';
2
2
  import type { NoticeTone } from '../conversation/entries.js';
3
3
  import type { SentAction } from '../conversation/reducer.js';
4
+ import type { Decision } from '../team/decision.js';
4
5
  import { type SessionAtoms, type SessionStart } from '../state/session.js';
5
6
  import { AttachmentController } from './attachments.js';
6
7
  import { ConversationController } from './conversation.js';
8
+ import { DecisionView } from './decision-view.js';
9
+ import type { SessionDecisions } from './decisions.js';
7
10
  import { DialogController } from './dialogs.js';
8
11
  import { FeedbackController } from './feedback.js';
9
12
  import { InputController } from './input.js';
@@ -20,6 +23,8 @@ export interface Notice {
20
23
  /** One conversation: its agent session, its atoms and what it does. Several can be open; a client shows one or more. */
21
24
  export declare class Session {
22
25
  private readonly app;
26
+ /** Its part in the project's team decisions, which every agent it runs on gets. */
27
+ readonly recorder: SessionDecisions;
23
28
  readonly atoms: SessionAtoms;
24
29
  /** What it waits for the user to answer; a client answers through it. */
25
30
  readonly dialogs: DialogController;
@@ -32,11 +37,15 @@ export declare class Session {
32
37
  readonly attachments: AttachmentController;
33
38
  readonly feedback: FeedbackController;
34
39
  readonly worktrees: WorktreeController;
40
+ readonly decisions: DecisionView;
35
41
  private readonly context;
36
42
  private unsubscribe;
43
+ private readonly stopSortingDecisions;
37
44
  private readonly listeners;
38
45
  private sent;
39
- constructor(app: Jinion, backend: AgentBackend, agent: AgentSession, start: SessionStart);
46
+ constructor(app: Jinion, backend: AgentBackend, agent: AgentSession, start: SessionStart,
47
+ /** Its part in the project's team decisions, which every agent it runs on gets. */
48
+ recorder: SessionDecisions);
40
49
  get backend(): AgentBackend;
41
50
  get agent(): AgentSession;
42
51
  /** The conversation it holds, as saved, so one can't be open in two sessions. */
@@ -45,6 +54,13 @@ export declare class Session {
45
54
  /** Where it works: its worktree, or the project. */
46
55
  get folder(): string;
47
56
  notice(text: string, tone?: NoticeTone): void;
57
+ /** A decision the agent recorded for the project's team, shown in its conversation. */
58
+ decisionRecorded({ id, title, origin }: Pick<Decision, 'id' | 'title' | 'origin'>): void;
59
+ decisionDeleted(id: string): void;
60
+ /** A decision of the team the agent kept to this turn. */
61
+ decisionKept(decision: Decision): void;
62
+ /** A teammate's decision on another branch that concerns `paths`, which this turn changed. */
63
+ decisionElsewhere(decision: Decision, paths: string[]): void;
48
64
  /** How many actions its conversation has taken since it opened; the next one is `seq + 1`. */
49
65
  get seq(): number;
50
66
  /** Follows every change to its conversation, in order, as a client replaying them needs. */
@@ -56,6 +72,8 @@ export declare class Session {
56
72
  close(): Promise<Notice[] | undefined>;
57
73
  /** On quit nobody is asked: saves, ends it, and says where a worktree with work in it stays. */
58
74
  quit(): Promise<string | undefined>;
75
+ /** Lets go of the conversation for another Jinion to go on with: its turn stops, and its worktree stays as it is. */
76
+ handOver(): Promise<void>;
59
77
  /**
60
78
  * Goes on with `backend`, in a conversation of its own there that gets this one handed over with the next prompt.
61
79
  * What ran in the background stops with the agent it ran in.
@@ -64,6 +82,8 @@ export declare class Session {
64
82
  private follow;
65
83
  /** The one way its conversation changes: stamped once, so replaying it anywhere gives the same result. */
66
84
  private dispatch;
85
+ /** Once the turn interrupted has ended, or a few seconds on when the agent doesn't say so. */
86
+ private stopped;
67
87
  private end;
68
88
  private apply;
69
89
  }
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/controllers/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/controllers/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAmB,MAAM,mBAAmB,CAAC;AAG1F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAU,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAErE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAgB,MAAM,qBAAqB,CAAC;AAEzF,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB;AAED,wHAAwH;AACxH,qBAAa,OAAO;IAqBhB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAIpB,mFAAmF;IACnF,QAAQ,CAAC,QAAQ,EAAE,gBAAgB;IAzBrC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,yEAAyE;IACzE,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,YAAY,EAAE,sBAAsB,CAAC;IAC9C,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACvC,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAa;IAClD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyC;IACnE,OAAO,CAAC,IAAI,CAAK;IAEjB,YACmB,GAAG,EAAE,MAAM,EAC5B,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,YAAY;IACnB,mFAAmF;IAC1E,QAAQ,EAAE,gBAAgB,EAsDpC;IAED,IAAI,OAAO,iBAEV;IAED,IAAI,KAAK,iBAER;IAED,iFAAiF;IACjF,IAAI,EAAE,WAEL;IAED,IAAI,OAAO,YAEV;IAED,oDAAoD;IACpD,IAAI,MAAM,WAET;IAED,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,QAErC;IAED,uFAAuF;IACvF,gBAAgB,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,GAAG,OAAO,GAAG,QAAQ,CAAC,QAEhF;IAED,eAAe,CAAC,EAAE,EAAE,MAAM,QAEzB;IAED,0DAA0D;IAC1D,YAAY,CAAC,QAAQ,EAAE,QAAQ,QAE9B;IAED,8FAA8F;IAC9F,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,QAYpD;IAED,8FAA8F;IAC9F,IAAI,GAAG,WAEN;IAED,4FAA4F;IAC5F,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,mBAI5C;IAED;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,CAwB3C;IAED,gGAAgG;IAC1F,IAAI,gCAOT;IAED,qHAAqH;IAC/G,QAAQ,kBAQb;IAED;;;OAGG;IACH,OAAO,CAAC,QAAQ;IAyBhB,OAAO,CAAC,MAAM;IAId,0GAA0G;IAC1G,OAAO,CAAC,QAAQ;IAOhB,8FAA8F;IAC9F,OAAO,CAAC,OAAO;IAaf,OAAO,CAAC,GAAG;IAUX,OAAO,CAAC,KAAK;CAqCd"}
@@ -1,9 +1,12 @@
1
1
  import { sessionFeatures } from '../agent/agent.js';
2
2
  import { firstLine } from '../lib/text.js';
3
+ import { authorOf } from '../team/prompt.js';
3
4
  import { sessionAtoms } from '../state/session.js';
5
+ import { teamAtom } from '../state/team.js';
4
6
  import { AttachmentController } from './attachments.js';
5
7
  import { BUSY } from './context.js';
6
8
  import { ConversationController } from './conversation.js';
9
+ import { DecisionView } from './decision-view.js';
7
10
  import { DialogController } from './dialogs.js';
8
11
  import { FeedbackController } from './feedback.js';
9
12
  import { InputController } from './input.js';
@@ -15,6 +18,7 @@ import { WorktreeController } from './worktrees.js';
15
18
  /** One conversation: its agent session, its atoms and what it does. Several can be open; a client shows one or more. */
16
19
  export class Session {
17
20
  app;
21
+ recorder;
18
22
  atoms;
19
23
  /** What it waits for the user to answer; a client answers through it. */
20
24
  dialogs;
@@ -27,12 +31,17 @@ export class Session {
27
31
  attachments;
28
32
  feedback;
29
33
  worktrees;
34
+ decisions;
30
35
  context;
31
36
  unsubscribe;
37
+ stopSortingDecisions;
32
38
  listeners = new Set();
33
39
  sent = 0;
34
- constructor(app, backend, agent, start) {
40
+ constructor(app, backend, agent, start,
41
+ /** Its part in the project's team decisions, which every agent it runs on gets. */
42
+ recorder) {
35
43
  this.app = app;
44
+ this.recorder = recorder;
36
45
  this.atoms = sessionAtoms(start);
37
46
  const context = {
38
47
  store: app.store,
@@ -53,7 +62,7 @@ export class Session {
53
62
  this.worktrees = new WorktreeController(context, this.dialogs);
54
63
  this.conversation = new ConversationController(context, app.saved);
55
64
  this.models = new ModelController(context, app, (next, selection) => this.switchTo(next, selection));
56
- this.modes = new ModeController(context);
65
+ this.modes = new ModeController(context, this.dialogs);
57
66
  this.tasks = new TaskController(context);
58
67
  this.attachments = new AttachmentController(context);
59
68
  this.feedback = new FeedbackController(context, app.jinionAccount);
@@ -72,10 +81,16 @@ export class Session {
72
81
  if (entry)
73
82
  this.feedback.turnEnded(entry, turn);
74
83
  app.signals?.turn({ ...turn, backend: this.backend.name, model: context.store.get(context.atoms.selection).model, session: this.id, folder: this.folder });
84
+ void app.team.syncDecisions();
75
85
  },
86
+ recordsDecisions: () => app.store.get(teamAtom)?.state === 'member',
87
+ decisionsNote: () => recorder.indexChange(),
76
88
  });
77
89
  this.input = new InputController(context, app, app.commands, this.turns);
78
90
  this.unsubscribe = this.follow(agent);
91
+ this.decisions = new DecisionView(app, this);
92
+ this.stopSortingDecisions = app.team.onChange(() => void this.decisions.refresh());
93
+ void this.decisions.refresh();
79
94
  }
80
95
  get backend() {
81
96
  return this.context.backend;
@@ -97,6 +112,30 @@ export class Session {
97
112
  notice(text, tone) {
98
113
  this.dispatch({ type: 'notice', text, tone });
99
114
  }
115
+ /** A decision the agent recorded for the project's team, shown in its conversation. */
116
+ decisionRecorded({ id, title, origin }) {
117
+ this.dispatch({ type: 'decision', decision: id, title, origin });
118
+ }
119
+ decisionDeleted(id) {
120
+ this.dispatch({ type: 'decision-deleted', decision: id });
121
+ }
122
+ /** A decision of the team the agent kept to this turn. */
123
+ decisionKept(decision) {
124
+ this.dispatch({ type: 'decision-kept', decision: decision.id, title: decision.title, origin: decision.origin, by: authorOf(decision), madeAt: decision.createdAt });
125
+ }
126
+ /** A teammate's decision on another branch that concerns `paths`, which this turn changed. */
127
+ decisionElsewhere(decision, paths) {
128
+ const request = decision.anchors.find((anchor) => anchor.pullRequest !== null);
129
+ this.dispatch({
130
+ type: 'decision-elsewhere',
131
+ decision: decision.id,
132
+ title: decision.title,
133
+ origin: decision.origin,
134
+ by: authorOf(decision),
135
+ madeAt: decision.createdAt,
136
+ elsewhere: { branch: decision.branch, pullRequest: request?.pullRequest ?? null, pullRequestState: request?.pullRequestState ?? null, paths },
137
+ });
138
+ }
100
139
  /** How many actions its conversation has taken since it opened; the next one is `seq + 1`. */
101
140
  get seq() {
102
141
  return this.sent;
@@ -136,6 +175,15 @@ export class Session {
136
175
  this.end();
137
176
  return kept;
138
177
  }
178
+ /** Lets go of the conversation for another Jinion to go on with: its turn stops, and its worktree stays as it is. */
179
+ async handOver() {
180
+ if (this.working) {
181
+ this.turns.interrupt();
182
+ await this.stopped();
183
+ }
184
+ this.conversation.save();
185
+ this.end();
186
+ }
139
187
  /**
140
188
  * Goes on with `backend`, in a conversation of its own there that gets this one handed over with the next prompt.
141
189
  * What ran in the background stops with the agent it ran in.
@@ -147,6 +195,7 @@ export class Session {
147
195
  cwd: this.folder,
148
196
  selection,
149
197
  mode: this.app.modeFor(backend, store.get(atoms.mode)),
198
+ decisions: this.recorder,
150
199
  });
151
200
  this.unsubscribe();
152
201
  this.context.agent.close();
@@ -170,12 +219,25 @@ export class Session {
170
219
  for (const listener of this.listeners)
171
220
  listener(sent);
172
221
  }
222
+ /** Once the turn interrupted has ended, or a few seconds on when the agent doesn't say so. */
223
+ stopped() {
224
+ return new Promise((resolve) => {
225
+ const done = () => {
226
+ clearTimeout(timer);
227
+ unsubscribe();
228
+ resolve();
229
+ };
230
+ const timer = setTimeout(done, 5000);
231
+ const unsubscribe = this.app.store.sub(this.atoms.working, () => !this.working && done());
232
+ });
233
+ }
173
234
  end() {
174
235
  // Nothing was sent, so nothing ever names the files put in its prompt.
175
236
  if (!this.app.store.get(this.atoms.entries).some((entry) => entry.kind === 'user'))
176
237
  this.attachments.discard();
177
238
  this.listeners.clear();
178
239
  this.unsubscribe();
240
+ this.stopSortingDecisions();
179
241
  this.context.agent.close();
180
242
  }
181
243
  apply(event) {