@onepointfour-packs/flaredeck-agent 0.2.129 → 0.2.131

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.
@@ -0,0 +1,288 @@
1
+ /**
2
+ * Merging and promoting, built into the harness: plain git, FlareDeck's GitHub connection, and the
3
+ * board's own release ladder. No `gh`, no project script, nothing installed on the machine — so it
4
+ * is the same everywhere.
5
+ *
6
+ * It exists because leads had no way to merge. JARVIS wrote its own clone-and-merge scripts and
7
+ * sent each one to a person for approval; they ran without GitHub credentials, failed, and were
8
+ * rewritten and sent again — four requests for one card in an hour, 243 merge-script mentions in
9
+ * its log (15 Oct).
10
+ *
11
+ * Who may do what, as decided by Cobus:
12
+ * · a lead merges a card's branch into the board's dev branch — the agents' playground — with no
13
+ * approval;
14
+ * · a manager promotes one level up the board's environments (dev → QA) with no approval;
15
+ * · a promotion INTO a live environment (QA → production) waits for the manager's own person.
16
+ *
17
+ * Work happens in a clone the harness owns, one per repository, under its config folder: never in
18
+ * an agent's checkout, so nothing an agent has open is touched. The token goes in a header for the
19
+ * one command and is never written to disk.
20
+ */
21
+ import { spawn } from 'node:child_process';
22
+ import { tool } from '@anthropic-ai/claude-agent-sdk';
23
+ import { z } from 'zod';
24
+ import { sdkServer } from './localmcp.js';
25
+ import { existsSync, mkdirSync } from 'node:fs';
26
+ import { join } from 'node:path';
27
+ /** git with FlareDeck's token for this one command, never prompting, never storing anything. */
28
+ export function gitWith(token, who = { name: 'FlareDeck agent', email: 'agent@flaredeck.app' }) {
29
+ return (args, cwd) => new Promise((resolve) => {
30
+ const auth = token ? ['-c', `http.extraHeader=Authorization: Basic ${Buffer.from(`x-access-token:${token}`).toString('base64')}`] : [];
31
+ const child = spawn('git', ['-c', `user.name=${who.name}`, '-c', `user.email=${who.email}`, ...auth, ...args], {
32
+ cwd,
33
+ stdio: ['ignore', 'pipe', 'pipe'],
34
+ env: { ...process.env, GIT_TERMINAL_PROMPT: '0', GIT_SSH_COMMAND: 'ssh -o BatchMode=yes', GCM_INTERACTIVE: 'never' },
35
+ });
36
+ let out = '';
37
+ const cap = (d) => { if (out.length < 20_000)
38
+ out += String(d); };
39
+ child.stdout.on('data', cap);
40
+ child.stderr.on('data', cap);
41
+ child.on('close', (c) => resolve({ code: c ?? 1, out: token ? out.split(token).join('[token]') : out }));
42
+ child.on('error', (e) => resolve({ code: 1, out: String(e) }));
43
+ });
44
+ }
45
+ /** `https://github.com/Owner/Repo(.git)` → `owner__repo`: the clone's folder name. */
46
+ export const cloneName = (url) => url.replace(/\.git$/, '').replace(/\/+$/, '').split(/[/:]/).slice(-2).join('__').toLowerCase().replace(/[^\w.-]/g, '_');
47
+ /** The harness's own clone of a repository, created on first use, with just these branches fetched. */
48
+ async function ready(git, root, url, branches) {
49
+ const dir = join(root, cloneName(url));
50
+ if (!existsSync(join(dir, '.git'))) {
51
+ mkdirSync(dir, { recursive: true });
52
+ const init = await git(['init', '-q'], dir);
53
+ if (init.code !== 0)
54
+ throw new Error(`could not create the merge clone: ${init.out.trim()}`);
55
+ await git(['remote', 'add', 'origin', url], dir);
56
+ }
57
+ else {
58
+ await git(['remote', 'set-url', 'origin', url], dir);
59
+ }
60
+ const refs = branches.map((b) => `+refs/heads/${b}:refs/remotes/origin/${b}`);
61
+ const got = await git(['fetch', '-q', '--no-tags', 'origin', ...refs], dir);
62
+ if (got.code !== 0)
63
+ throw new Error(`could not fetch ${branches.join(', ')} from ${url}: ${got.out.trim().split('\n').slice(-2).join(' ')}`);
64
+ return dir;
65
+ }
66
+ const sha = async (git, dir, ref) => {
67
+ const r = await git(['rev-parse', '--verify', '-q', ref], dir);
68
+ return r.code === 0 ? r.out.trim() : '';
69
+ };
70
+ const isAncestor = async (git, dir, a, b) => (await git(['merge-base', '--is-ancestor', a, b], dir)).code === 0;
71
+ /**
72
+ * Merge `source` into `target` and push `target`. Exactly the commit `pin` when given: a branch that
73
+ * moved after it was reviewed is refused, not merged. A conflict stops it with the files named.
74
+ */
75
+ export async function mergeBranch(git, root, o) {
76
+ let dir;
77
+ try {
78
+ dir = await ready(git, root, o.url, [o.source, o.target]);
79
+ }
80
+ catch (e) {
81
+ return { ok: false, why: e instanceof Error ? e.message : String(e) };
82
+ }
83
+ const src = await sha(git, dir, `refs/remotes/origin/${o.source}`);
84
+ const tgt = await sha(git, dir, `refs/remotes/origin/${o.target}`);
85
+ if (!src)
86
+ return { ok: false, why: `there is no branch ${o.source} on the repository — push it first` };
87
+ if (!tgt)
88
+ return { ok: false, why: `there is no branch ${o.target} on the repository` };
89
+ if (o.pin && !src.startsWith(o.pin) && !o.pin.startsWith(src))
90
+ return { ok: false, why: `${o.source} is at ${src.slice(0, 9)}, not ${o.pin.slice(0, 9)} as reviewed — it moved; look again before merging` };
91
+ if (await isAncestor(git, dir, src, tgt))
92
+ return { ok: true, already: true, target: o.target, sha: tgt, commits: [] };
93
+ const log = await git(['log', '--oneline', '--no-decorate', `${tgt}..${src}`], dir);
94
+ await git(['merge', '--abort'], dir);
95
+ const co = await git(['checkout', '-q', '-f', '-B', o.target, tgt], dir);
96
+ if (co.code !== 0)
97
+ return { ok: false, why: `could not check out ${o.target}: ${co.out.trim()}` };
98
+ const m = await git(['merge', '--no-ff', '-m', o.message, src], dir);
99
+ if (m.code !== 0) {
100
+ const files = (await git(['diff', '--name-only', '--diff-filter=U'], dir)).out.trim().split('\n').filter(Boolean);
101
+ await git(['merge', '--abort'], dir);
102
+ return { ok: false, why: files.length ? `${o.source} conflicts with ${o.target}` : `the merge failed: ${m.out.trim().split('\n').slice(-3).join(' ')}`, conflicts: files };
103
+ }
104
+ const merged = await sha(git, dir, 'HEAD');
105
+ // No force, ever: if the target moved meanwhile the push is refused and nothing is lost.
106
+ const push = await git(['push', '-q', 'origin', `HEAD:refs/heads/${o.target}`], dir);
107
+ if (push.code !== 0)
108
+ return { ok: false, why: `the push to ${o.target} was refused (it may have moved — try again): ${push.out.trim().split('\n').slice(-2).join(' ')}` };
109
+ return { ok: true, target: o.target, sha: merged, commits: log.out.trim().split('\n').filter(Boolean) };
110
+ }
111
+ /**
112
+ * Move `to` up to exactly what `from` is. Fast-forward only: a `to` with commits `from` does not
113
+ * have is a fork somebody has to look at, and it is refused rather than overwritten.
114
+ */
115
+ export async function promoteBranch(git, root, o) {
116
+ let dir;
117
+ try {
118
+ dir = await ready(git, root, o.url, [o.from, o.to]);
119
+ }
120
+ catch (e) {
121
+ return { ok: false, why: e instanceof Error ? e.message : String(e) };
122
+ }
123
+ const from = await sha(git, dir, `refs/remotes/origin/${o.from}`);
124
+ const to = await sha(git, dir, `refs/remotes/origin/${o.to}`);
125
+ if (!from)
126
+ return { ok: false, why: `there is no branch ${o.from} on the repository` };
127
+ if (to && from === to)
128
+ return { ok: true, already: true, target: o.to, sha: to, commits: [] };
129
+ if (to && !(await isAncestor(git, dir, to, from))) {
130
+ return { ok: false, why: `${o.to} has commits that ${o.from} does not (a fix made straight on ${o.to}?). It is not overwritten: merge ${o.to} back into ${o.from} first, or ask a person.` };
131
+ }
132
+ const log = to ? await git(['log', '--oneline', '--no-decorate', `${to}..${from}`], dir) : { out: '' };
133
+ const push = await git(['push', '-q', 'origin', `${from}:refs/heads/${o.to}`], dir);
134
+ if (push.code !== 0)
135
+ return { ok: false, why: `the push to ${o.to} was refused: ${push.out.trim().split('\n').slice(-2).join(' ')}` };
136
+ return { ok: true, target: o.to, sha: from, commits: log.out.trim().split('\n').filter(Boolean) };
137
+ }
138
+ /**
139
+ * The next step up the ladder for one repository: the environment after `from`, in the board's
140
+ * order, that has a branch for it. Null at the top, or when nothing above has a branch.
141
+ */
142
+ export function nextStep(ladder, repoUrl, from) {
143
+ const steps = ladder.environments;
144
+ const i = steps.findIndex((s) => s.name.toLowerCase() === from.trim().toLowerCase());
145
+ if (i < 0)
146
+ return null;
147
+ const fromBranch = steps[i].branches[repoUrl] ?? '';
148
+ if (!fromBranch)
149
+ return null;
150
+ for (const to of steps.slice(i + 1)) {
151
+ const toBranch = to.branches[repoUrl] ?? '';
152
+ if (toBranch && toBranch !== fromBranch)
153
+ return { from: steps[i], to, fromBranch, toBranch };
154
+ }
155
+ return null;
156
+ }
157
+ /** The board's ladder, from FlareDeck. */
158
+ export async function fetchLadder(mcpUrl, tenantId, boardId, auth) {
159
+ try {
160
+ const res = await fetch(`${new URL(mcpUrl).origin}/api/v1/${encodeURIComponent(tenantId)}/boards/${encodeURIComponent(boardId)}/ladder`, {
161
+ headers: { authorization: `Bearer ${await auth()}` }, signal: AbortSignal.timeout(15_000),
162
+ });
163
+ return res.ok ? (await res.json()) : null;
164
+ }
165
+ catch {
166
+ return null;
167
+ }
168
+ }
169
+ /** Who may release into a step: the role it names, or anyone above it. */
170
+ export function mayRelease(role, step) {
171
+ const who = step.who ?? 'manager';
172
+ if (who === 'none')
173
+ return false;
174
+ if (who === 'lead')
175
+ return role === 'lead' || role === 'manager';
176
+ return role === 'manager';
177
+ }
178
+ /**
179
+ * What releasing into `to` means for one repository: the first environment that has a branch takes
180
+ * a card's branch by merge; every one above it is moved up from the step below by fast-forward.
181
+ */
182
+ export function planRelease(ladder, repoUrl, to) {
183
+ const steps = ladder.environments.filter((s) => s.branches[repoUrl]);
184
+ const i = steps.findIndex((s) => s.name.toLowerCase() === to.trim().toLowerCase());
185
+ if (i < 0) {
186
+ const named = ladder.environments.find((s) => s.name.toLowerCase() === to.trim().toLowerCase());
187
+ return { why: named
188
+ ? `${named.name} has no branch for this repository. Set it in FlareDeck (board Details → branch for each environment).`
189
+ : `There is no environment called "${to}" on ${ladder.board.name}. Its environments: ${ladder.environments.map((s) => s.name).join(', ') || 'none'}.` };
190
+ }
191
+ const step = steps[i];
192
+ if (i === 0)
193
+ return { kind: 'merge', step, branch: step.branches[repoUrl] };
194
+ const from = steps[i - 1];
195
+ return { kind: 'promote', step, branch: step.branches[repoUrl], from, fromBranch: from.branches[repoUrl] };
196
+ }
197
+ const said = (text, isError = false) => ({ content: [{ type: 'text', text }], isError });
198
+ export const RELEASE_TOOL_NAMES = ['mcp__release__release'];
199
+ export function releaseTools(d) {
200
+ const server = sdkServer({
201
+ name: 'release',
202
+ version: '1.0.0',
203
+ tools: [
204
+ tool('release', 'Put work into one of the board\'s environments — the ONLY way to merge or promote. Never write ' +
205
+ 'your own merge or push script for a shared branch: it has no GitHub access and will fail.\n\n' +
206
+ 'Into the board\'s first environment (e.g. Development): merges the current card\'s branch into that ' +
207
+ 'environment\'s branch. Into any higher one (e.g. QA, Production): moves the branch of the ' +
208
+ 'environment below up to it. The board decides who may release where and who must agree; the ' +
209
+ 'harness does the git with FlareDeck\'s GitHub connection and tells you exactly what happened.', {
210
+ to: z.string().describe('The environment, by its name on the board — e.g. "Development", "QA", "Production".'),
211
+ repository: z.string().optional().describe('Which repository, when the board has several: its name or URL. Defaults to the current card\'s checkout, or the only one.'),
212
+ board: z.string().optional().describe('Which board, when you work several and no card is open. Its name or id.'),
213
+ card: z.string().optional().describe('The card this release is for, by code (e.g. HR-0855). Needed when someone must approve and no card is open.'),
214
+ }, async ({ to, repository, board, card }) => {
215
+ const role = d.role();
216
+ const job = d.job();
217
+ const boards = d.boards();
218
+ const b = board?.trim()
219
+ ? boards.find((x) => x.key === board.trim() || x.name.toLowerCase() === board.trim().toLowerCase())
220
+ : (job?.board ? boards.find((x) => x.key === job.board) ?? { key: job.board, name: job.board } : boards.length === 1 ? boards[0] : undefined);
221
+ if (!b)
222
+ return said(`Say which board: ${boards.map((x) => x.name).join(', ') || 'none'}.`, true);
223
+ const ladder = await d.ladder(b.key);
224
+ if (!ladder)
225
+ return said('FlareDeck did not answer with this board\'s environments. Try again shortly.', true);
226
+ // Which repository.
227
+ const urls = ladder.repositories.map((r) => r.url);
228
+ let url = '';
229
+ if (repository?.trim()) {
230
+ const q = repository.trim().toLowerCase();
231
+ url = urls.find((u) => u.toLowerCase() === q || cloneName(u).endsWith(`__${q}`) || u.toLowerCase().endsWith(`/${q}`)) ?? '';
232
+ if (!url)
233
+ return said(`${ladder.board.name} has no repository "${repository}". Its repositories: ${urls.join(', ')}.`, true);
234
+ }
235
+ else if (job) {
236
+ const origin = (await d.originOf(job.cwd)).replace(/\.git$/, '').toLowerCase();
237
+ url = urls.find((u) => u.replace(/\.git$/, '').toLowerCase() === origin) ?? '';
238
+ if (!url)
239
+ return said(`This card's checkout (${origin || 'no origin'}) is not one of ${ladder.board.name}'s repositories. Add it in FlareDeck, or name the repository.`, true);
240
+ }
241
+ else if (urls.length === 1)
242
+ url = urls[0];
243
+ else
244
+ return said(`Say which repository: ${urls.join(', ')}.`, true);
245
+ const plan = planRelease(ladder, url, to);
246
+ if ('why' in plan)
247
+ return said(plan.why, true);
248
+ if (!mayRelease(role, plan.step)) {
249
+ return said(`${plan.step.name} is released by ${plan.step.who === 'none' ? 'people only' : `the ${plan.step.who}`} on ${ladder.board.name}, not by a ${role}. ` +
250
+ (plan.step.who === 'manager' ? 'Tell your manager it is ready, with send-message.' : 'Ask a person.'), true);
251
+ }
252
+ if (plan.kind === 'merge' && !job)
253
+ return said(`Merging into ${plan.step.name} takes a card's branch, and no card is open. Release it from the card.`, true);
254
+ const what = plan.kind === 'merge'
255
+ ? `merge ${job.branch} into ${plan.branch} (${plan.step.name})`
256
+ : `promote ${plan.fromBranch} (${plan.from.name}) to ${plan.branch} (${plan.step.name})`;
257
+ const onCard = card?.trim() || job?.code || job?.card || '';
258
+ if (plan.step.approval && plan.step.approval !== 'none') {
259
+ if (!onCard)
260
+ return said(`${plan.step.name} needs a yes from ${plan.step.approval === 'person' ? 'the person you report to' : 'your manager'}, and that is asked on a card. Say which card (card: "HR-0855").`, true);
261
+ d.log(`release: asking ${plan.step.approval === 'person' ? 'your person' : 'your manager'} — ${what}`);
262
+ const yes = await d.approve(onCard, plan.step.approval, { repository: url, release: what, environment: plan.step.name });
263
+ if (!yes.allow)
264
+ return said(`Not released. ${yes.reason ?? 'It was not approved.'}`, true);
265
+ }
266
+ const git = gitWith(await d.token());
267
+ d.log(`release: ${what} in ${cloneName(url)}`);
268
+ const r = plan.kind === 'merge'
269
+ ? await mergeBranch(git, d.root, { url, source: job.branch, target: plan.branch, message: `Merge ${job.code || job.branch} into ${plan.branch}` })
270
+ : await promoteBranch(git, d.root, { url, from: plan.fromBranch, to: plan.branch });
271
+ if (!r.ok) {
272
+ d.log(`release refused: ${r.why}`);
273
+ return said(`Not released: ${r.why}${r.conflicts?.length ? `\n\nConflicting files:\n${r.conflicts.map((f) => ` · ${f}`).join('\n')}\n\nThe card's branch has to be brought up to date with ${plan.branch} first.` : ''}`, true);
274
+ }
275
+ const text = r.already
276
+ ? `Nothing to do: ${plan.step.name} (${plan.branch}) already has it, at ${r.sha.slice(0, 9)}.`
277
+ : `Released into ${plan.step.name}: ${plan.branch} is now ${r.sha.slice(0, 9)}.${r.commits.length ? `\n\n${r.commits.length} commit(s):\n${r.commits.slice(0, 15).map((c) => ` · ${c}`).join('\n')}` : ''}`;
278
+ d.log(`released: ${what} → ${r.sha.slice(0, 9)}`);
279
+ if (onCard && !r.already)
280
+ await d.record?.(onCard, `**Released into ${plan.step.name}** — ${what} → \`${r.sha.slice(0, 9)}\``).catch(() => { });
281
+ const next = ladder.environments.slice(ladder.environments.indexOf(plan.step) + 1).find((s) => s.branches[url]);
282
+ return said(text + (next && !r.already ? `\n\nNext up is ${next.name}, released by the ${next.who ?? 'manager'}${next.approval && next.approval !== 'none' ? ` with a yes from ${next.approval === 'person' ? 'their person' : 'the manager'}` : ''}.` : ''));
283
+ }),
284
+ ],
285
+ });
286
+ return { server, toolNames: RELEASE_TOOL_NAMES };
287
+ }
288
+ //# sourceMappingURL=release.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"release.js","sourceRoot":"","sources":["../src/release.ts"],"names":[],"mappings":"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"}
package/dist/runs.js CHANGED
@@ -578,6 +578,14 @@ checkBackFile) {
578
578
  `this — the card comes back to you when somebody clears it, and whatever you have done so ` +
579
579
  `far should be committed and said on the card before you stop.`);
580
580
  }
581
+ // Merging and promoting have a tool of their own, with GitHub access and the board's rules.
582
+ // A hand-written merge script has neither: JARVIS sent four in an hour, each one failing.
583
+ if (/\bgit\s+(?:-C\s+\S+\s+)?(?:push|merge)\b|merge-and-promote/.test(body)) {
584
+ return say('Not sent. Merging and promoting go through the `release` tool, not a script: it has GitHub ' +
585
+ 'access, follows the board\'s rules for who may release where, and asks whoever must agree by ' +
586
+ 'itself. A script run here has no GitHub credentials and would fail. If you do not have ' +
587
+ '`release`, your role may not merge — tell your lead or manager the branch is ready.', true);
588
+ }
581
589
  const name = where?.trim() || 'shell';
582
590
  const t = targets[name];
583
591
  if (!t)
package/dist/runs.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"runs.js","sourceRoot":"","sources":["../src/runs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runs.js","sourceRoot":"","sources":["../src/runs.ts"],"names":[],"mappings":"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"}
package/dist/serve.js CHANGED
@@ -1,4 +1,4 @@
1
- import { execFile } from 'node:child_process';
1
+ import { execFile, spawn } from 'node:child_process';
2
2
  import { EventEmitter } from 'node:events';
3
3
  import { createRequire } from 'node:module';
4
4
  import { ensureTmuxScrollback } from './tmux.js';
@@ -8,6 +8,7 @@ import { freshGitHubToken } from './githubauth.js';
8
8
  import { answerFrom, createPresence, heldFor, modeCommand } from './presence.js';
9
9
  import { defaultUploadRoots, fileTools, flaredeckStores } from './filestore.js';
10
10
  import { scratchFor } from './cardmess.js';
11
+ import { fetchLadder, releaseTools } from './release.js';
11
12
  import { LiveFeed, liveSender, midTurnMessage, ASSISTANT_KEY, claudeProjectDir, historyMessage, recentExchanges, latestCliSession, assistantBrief, assistantIgnores, assistantPerson, asAssistantEvent, loadAssistantSession, saveAssistantSession } from './assistant.js';
12
13
  import { codePrefix, loadPrefixes, savePrefixes, SCRATCH_SWEEP_EVERY_MS, sweepScratch } from './scratch.js';
13
14
  import { findImages, namedForAgent } from './images.js';
@@ -826,6 +827,8 @@ export async function serve(opts) {
826
827
  * lesser problem than an agent that refuses to start work because of it.
827
828
  */
828
829
  let teamSet;
830
+ /** `release` — merge and promote along the board's environments. Built once the role is known. */
831
+ let releaseSet;
829
832
  /** Set once this agent is known to be a lead — the id its reports point at. */
830
833
  let leadOfTeam = null;
831
834
  const teamTimers = [];
@@ -912,7 +915,7 @@ export async function serve(opts) {
912
915
  if (person)
913
916
  state.waitingFor = person.name;
914
917
  log('event', person
915
- ? `You are ${person.name}'s assistant — you listen only to them, in FlareDeck chat${kept ? ', carrying on your conversation from before' : ''}.`
918
+ ? `You are ${person.name}'s assistant — you listen to them in FlareDeck chat, and to whoever types here${kept ? ', carrying on your conversation from before' : ''}.`
916
919
  : 'You are an assistant, but nobody is set as the person you work for — set "Works for" on this agent in FlareDeck. Until then nothing reaches you.');
917
920
  }
918
921
  showPresence();
@@ -922,6 +925,46 @@ export async function serve(opts) {
922
925
  log('event', 'At this pane? Type /local and questions for you are shown here instead of on your phone (back to /remote after ten minutes unanswered).');
923
926
  log('warn', 'Not enforced yet: approvals and heads-ups. Nothing here stops a promote, a merge or a delete — those limits are instructions for now. See docs/spec-manager-role.md §14.');
924
927
  }
928
+ if ((isLead || isManager) && opts.deck && !releaseSet) {
929
+ const tenant = tenantFromToken(await opts.auth());
930
+ const deck = opts.deck;
931
+ if (tenant) {
932
+ const self = await fetch(`${new URL(config.mcpUrl).origin}/api/v1/${encodeURIComponent(tenant)}/agent/self`, { headers: { authorization: `Bearer ${await opts.auth()}` }, signal: AbortSignal.timeout(15_000) })
933
+ .then((r) => (r.ok ? r.json() : {})).catch(() => ({}));
934
+ releaseSet = releaseTools({
935
+ role: () => (isManager ? 'manager' : isLead ? 'lead' : isAssistant ? 'assistant' : 'worker'),
936
+ boards: () => config.boards ?? [],
937
+ ladder: (boardId) => fetchLadder(config.mcpUrl, tenant, boardId, () => opts.auth()),
938
+ job: () => (job ? { branch: job.branch, cwd: job.cwd, card: onCard?.card ?? job.card, ...(onCard?.code ? { code: onCard.code } : {}), ...(onCard?.board ? { board: onCard.board } : {}) } : null),
939
+ token: async () => {
940
+ if (flaredeckGithub) {
941
+ await refreshMcp();
942
+ if (flaredeckGithub)
943
+ return flaredeckGithub.token;
944
+ }
945
+ throw new Error('FlareDeck has no GitHub connection to release with — connect GitHub on Integrations.');
946
+ },
947
+ root: join(configDir(), 'release'),
948
+ approve: async (card, who, what) => {
949
+ const approvers = [who === 'person' ? self.person : self.manager].filter((x) => !!x);
950
+ if (!approvers.length)
951
+ return { allow: false, reason: `nobody is set as your ${who === 'person' ? 'person (Works for / reports to)' : 'manager'} in FlareDeck to approve it` };
952
+ const ask = flaredeckDecider(deck, card, 60 * 60_000, { approvers });
953
+ const v = await ask({ toolName: 'release', input: what }, { signal: new AbortController().signal });
954
+ return v.allow ? { allow: true } : { allow: false, reason: v.reason };
955
+ },
956
+ originOf: (cwd) => new Promise((res) => {
957
+ const c = spawn('git', ['remote', 'get-url', 'origin'], { cwd, stdio: ['ignore', 'pipe', 'ignore'] });
958
+ let out = '';
959
+ c.stdout.on('data', (d) => (out += String(d)));
960
+ c.on('close', () => res(out.trim()));
961
+ c.on('error', () => res(''));
962
+ }),
963
+ log: (t) => log('tool', t),
964
+ record: async (card, text) => { await callFlaredeckTool(config.mcpUrl, await opts.auth(), 'create-card-comment', { card_id: card, comment: text }); },
965
+ });
966
+ }
967
+ }
925
968
  selfId = team.you.agentId;
926
969
  teamIds = new Set(team.agents.filter((a) => a.reportsTo === team.you.agentId).map((a) => a.agentId));
927
970
  if (team.you.role === 'lead') {
@@ -3188,6 +3231,7 @@ export async function serve(opts) {
3188
3231
  flaredeck,
3189
3232
  runs: runsSet,
3190
3233
  schedules: schedulesSet,
3234
+ ...(releaseSet && (isLead || isManager) ? { release: releaseSet } : {}),
3191
3235
  },
3192
3236
  guard: {
3193
3237
  ...guard,