@onepointfour-packs/flaredeck-agent 0.1.0 → 0.2.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.
- package/dist/agent.d.ts +16 -0
- package/dist/agent.js +38 -1
- package/dist/agent.js.map +1 -1
- package/dist/approval.js +39 -1
- package/dist/approval.js.map +1 -1
- package/dist/browser.d.ts +19 -0
- package/dist/browser.js +261 -0
- package/dist/browser.js.map +1 -0
- package/dist/config.d.ts +18 -0
- package/dist/config.js +2 -1
- package/dist/config.js.map +1 -1
- package/dist/desperation.d.ts +24 -0
- package/dist/desperation.js +64 -0
- package/dist/desperation.js.map +1 -0
- package/dist/engine-antigravity.d.ts +7 -0
- package/dist/engine-antigravity.js +280 -32
- package/dist/engine-antigravity.js.map +1 -1
- package/dist/engine.d.ts +28 -0
- package/dist/engine.js.map +1 -1
- package/dist/env.d.ts +5 -1
- package/dist/env.js +19 -1
- package/dist/env.js.map +1 -1
- package/dist/environment.d.ts +87 -2
- package/dist/environment.js +213 -11
- package/dist/environment.js.map +1 -1
- package/dist/flaredeck-proxy.d.ts +47 -1
- package/dist/flaredeck-proxy.js +120 -3
- package/dist/flaredeck-proxy.js.map +1 -1
- package/dist/gitguard.d.ts +6 -0
- package/dist/gitguard.js +30 -1
- package/dist/gitguard.js.map +1 -1
- package/dist/github.d.ts +23 -1
- package/dist/github.js +105 -28
- package/dist/github.js.map +1 -1
- package/dist/journal.d.ts +23 -0
- package/dist/journal.js +142 -0
- package/dist/journal.js.map +1 -0
- package/dist/localmcp.d.ts +50 -0
- package/dist/localmcp.js +229 -0
- package/dist/localmcp.js.map +1 -0
- package/dist/main.js +13 -1
- package/dist/main.js.map +1 -1
- package/dist/permissions.d.ts +17 -0
- package/dist/permissions.js +38 -1
- package/dist/permissions.js.map +1 -1
- package/dist/runs.js +3 -2
- package/dist/runs.js.map +1 -1
- package/dist/sandbox.d.ts +34 -0
- package/dist/sandbox.js +122 -2
- package/dist/sandbox.js.map +1 -1
- package/dist/schedules.d.ts +1 -1
- package/dist/schedules.js +3 -2
- package/dist/schedules.js.map +1 -1
- package/dist/serve.js +461 -39
- package/dist/serve.js.map +1 -1
- package/dist/setup.d.ts +1 -0
- package/dist/setup.js +99 -0
- package/dist/setup.js.map +1 -0
- package/dist/stream.d.ts +1 -0
- package/dist/team.d.ts +1 -1
- package/dist/team.js +3 -2
- package/dist/team.js.map +1 -1
- package/dist/ui.d.ts +2 -0
- package/dist/ui.js +34 -39
- package/dist/ui.js.map +1 -1
- package/dist/updater-python.d.ts +19 -0
- package/dist/updater-python.js +149 -0
- package/dist/updater-python.js.map +1 -0
- package/dist/workspace.d.ts +2 -0
- package/dist/workspace.js +1 -1
- package/dist/workspace.js.map +1 -1
- package/dist/worktree.d.ts +39 -1
- package/dist/worktree.js +147 -4
- package/dist/worktree.js.map +1 -1
- package/package.json +3 -2
- package/python/sidecar.py +209 -7
package/dist/flaredeck-proxy.js
CHANGED
|
@@ -130,13 +130,130 @@ export function zodFor(schema, notes, path = '') {
|
|
|
130
130
|
}
|
|
131
131
|
return schema.description ? out.describe(schema.description) : out;
|
|
132
132
|
}
|
|
133
|
+
/**
|
|
134
|
+
* What this agent has actually saved, appended to anything it SAYS.
|
|
135
|
+
*
|
|
136
|
+
* The finish gate guards the board: it refuses a card being moved or marked done on an empty
|
|
137
|
+
* branch. It cannot see prose. HAL told its lead a fix was "fully completed" in a message, never
|
|
138
|
+
* touched a status tool, and the gate was never consulted — the card sat in Doing with a branch
|
|
139
|
+
* holding nothing but lockfile churn from an install.
|
|
140
|
+
*
|
|
141
|
+
* So every comment and message from an agent working a card carries one line of ground truth.
|
|
142
|
+
* Not a judgement about what it wrote, which would need to guess at meaning and would guess
|
|
143
|
+
* wrong: just what is in the branch, every time, so a claim and its evidence arrive together.
|
|
144
|
+
*/
|
|
145
|
+
export function workFooter(state) {
|
|
146
|
+
if (!state)
|
|
147
|
+
return '';
|
|
148
|
+
// A footer that cannot see the answer must say nothing. It printed "nothing committed" under a
|
|
149
|
+
// comment quoting two real pushed commits — which does not just fail to help, it calls an
|
|
150
|
+
// honest agent a liar and teaches a lead to ignore the line.
|
|
151
|
+
if (state.known === false)
|
|
152
|
+
return '';
|
|
153
|
+
const what = state.commits === 0
|
|
154
|
+
? 'nothing committed'
|
|
155
|
+
: `${state.commits} commit${state.commits === 1 ? '' : 's'}, ${state.pushed ? 'pushed' : 'NOT pushed'}`;
|
|
156
|
+
return `\n\n*— ${state.branch}: ${what}*`;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Tools a worker is not given.
|
|
160
|
+
*
|
|
161
|
+
* Every tool costs its description and schema in the prompt on EVERY turn — about 3,200
|
|
162
|
+
* characters of description alone across the full set, before schemas — and a longer menu is also
|
|
163
|
+
* a worse menu: more ways to pick the wrong thing. None of these belong to an agent whose job is
|
|
164
|
+
* cards and code.
|
|
165
|
+
*
|
|
166
|
+
* A lead keeps the lot: the portfolio and conversation tools are its surface, not noise.
|
|
167
|
+
*/
|
|
168
|
+
export const NOT_FOR_WORKERS = [
|
|
169
|
+
// Billing hours is not this agent's job.
|
|
170
|
+
'add-timesheet-entry', 'get-timesheet-options',
|
|
171
|
+
// NOT attachments. I dropped the four attachment tools as dead weight for "an agent whose job
|
|
172
|
+
// is cards and code", and this board's cards ask for screenshots by name — before and after, at
|
|
173
|
+
// 1440 and at 390. HAL took one, found nothing to send it with, and wrote "real screenshot
|
|
174
|
+
// omitted", which its lead read as an agent making pictures up. Evidence a card asks for is
|
|
175
|
+
// not overhead. Cards also carry images IN their descriptions, so reading them matters too.
|
|
176
|
+
// The harness owns delivery. An agent editing its own subscriptions breaks its own feed.
|
|
177
|
+
'subscribe-to-channel', 'unsubscribe-from-channel', 'list-channel-subscriptions',
|
|
178
|
+
// A lead's surface.
|
|
179
|
+
'get-portfolio', 'list-conversations',
|
|
180
|
+
// One-time setup, or for a person at a keyboard.
|
|
181
|
+
'get-deploy-hook-setup', 'health-check', 'inspect-token', 'get-guide',
|
|
182
|
+
// Signing the agent out mid-card is not a capability it should have at all.
|
|
183
|
+
'logout',
|
|
184
|
+
// The harness serves the same thing as mcp__team__list_agents.
|
|
185
|
+
'list-agents',
|
|
186
|
+
];
|
|
187
|
+
/**
|
|
188
|
+
* The human card code a call names, if it names one. FlareDeck's card tools take `card_id`, which
|
|
189
|
+
* is documented as "the card ID, OR the human card code" — only the code is worth showing, so an
|
|
190
|
+
* opaque id is ignored rather than printed at somebody.
|
|
191
|
+
*/
|
|
192
|
+
const CARD_CODE = /^[A-Z][A-Z0-9]{0,9}-\d+$/i;
|
|
193
|
+
export function cardIn(args) {
|
|
194
|
+
for (const key of ['card_id', 'cardId', 'card_key', 'cardKey', 'card', 'code']) {
|
|
195
|
+
const v = args[key];
|
|
196
|
+
if (typeof v === 'string' && CARD_CODE.test(v.trim()))
|
|
197
|
+
return v.trim().toUpperCase();
|
|
198
|
+
}
|
|
199
|
+
return '';
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Which calls amount to "this card is finished". `mark_as_done` is a real parameter on
|
|
203
|
+
* create-card-comment, so a comment can close a card without any status tool being used.
|
|
204
|
+
*/
|
|
205
|
+
const DONE_LANES = /await|deploy|done|complete|review|signoff|sign-off|qa|test/i;
|
|
206
|
+
export function CLAIMS_DONE(name, args) {
|
|
207
|
+
if (name === 'mark-card-done')
|
|
208
|
+
return true;
|
|
209
|
+
if (args['mark_as_done'] === true)
|
|
210
|
+
return true;
|
|
211
|
+
if (name === 'update-card-status') {
|
|
212
|
+
const to = String(args['status'] ?? args['lane'] ?? args['column'] ?? '');
|
|
213
|
+
return DONE_LANES.test(to);
|
|
214
|
+
}
|
|
215
|
+
return false;
|
|
216
|
+
}
|
|
133
217
|
/** The in-process server: FlareDeck's tools, forwarded with a fresh token each time. */
|
|
134
|
-
export function flaredeckProxy(serverName, mcpUrl, token, discovered, warn = () => { }
|
|
218
|
+
export function flaredeckProxy(serverName, mcpUrl, token, discovered, warn = () => { },
|
|
219
|
+
/**
|
|
220
|
+
* Why this card may not be called finished yet, or null when it may. Consulted at the moment a
|
|
221
|
+
* tool would report it done, because that is the only moment a wrong claim can still be caught.
|
|
222
|
+
*/
|
|
223
|
+
tooEarly = async () => null,
|
|
224
|
+
/** The card a call names, so the pane can say what is being worked rather than what woke it. */
|
|
225
|
+
onCard = () => { },
|
|
226
|
+
/** Which tools this agent gets. Everything, for a lead. */
|
|
227
|
+
keep = () => true,
|
|
228
|
+
/** What is in this card's branch right now, for the footer on anything it says. */
|
|
229
|
+
saved = async () => null) {
|
|
135
230
|
const notes = [];
|
|
136
|
-
|
|
231
|
+
// One list, used for both. It was filtered for the SERVER and not for the names, so the count
|
|
232
|
+
// still said 43 and the other engine was told about tools it had not been given.
|
|
233
|
+
const offered = discovered.tools.filter((t) => keep(t.name));
|
|
234
|
+
const tools = offered.map((t) => {
|
|
137
235
|
const shape = zodFor(t.inputSchema, notes, t.name).shape ?? {};
|
|
138
236
|
return tool(t.name, t.description ?? '', shape, async (args) => {
|
|
139
237
|
const sending = (args ?? {});
|
|
238
|
+
// A card is only finished when the work is in the branch and the branch is published. An
|
|
239
|
+
// agent reported five pieces of work as done, one minute in, with an empty branch; nothing
|
|
240
|
+
// but a person looking caught it. Now the tool that would say so refuses first.
|
|
241
|
+
const named = cardIn(sending);
|
|
242
|
+
if (named)
|
|
243
|
+
onCard(named);
|
|
244
|
+
// Said and saved, together. See workFooter.
|
|
245
|
+
if (t.name === 'create-card-comment' || t.name === 'send-message') {
|
|
246
|
+
const field = t.name === 'send-message' ? 'message' : 'comment';
|
|
247
|
+
const body = sending[field];
|
|
248
|
+
const footer = workFooter(await saved());
|
|
249
|
+
if (typeof body === 'string' && footer && !body.includes('*— '))
|
|
250
|
+
sending[field] = body + footer;
|
|
251
|
+
}
|
|
252
|
+
if (CLAIMS_DONE(t.name, sending)) {
|
|
253
|
+
const why = await tooEarly();
|
|
254
|
+
if (why)
|
|
255
|
+
return { content: [{ type: 'text', text: `❌ ${why}` }], isError: true };
|
|
256
|
+
}
|
|
140
257
|
// Two retries on a blip; none on a rejection, which a retry will not change.
|
|
141
258
|
let last = '';
|
|
142
259
|
for (let attempt = 0; attempt < 3; attempt++) {
|
|
@@ -181,6 +298,6 @@ export function flaredeckProxy(serverName, mcpUrl, token, discovered, warn = ()
|
|
|
181
298
|
...(discovered.instructions ? { instructions: discovered.instructions } : {}),
|
|
182
299
|
tools,
|
|
183
300
|
});
|
|
184
|
-
return { server, toolNames:
|
|
301
|
+
return { server, toolNames: offered.map((t) => `mcp__${serverName}__${t.name}`) };
|
|
185
302
|
}
|
|
186
303
|
//# sourceMappingURL=flaredeck-proxy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flaredeck-proxy.js","sourceRoot":"","sources":["../src/flaredeck-proxy.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"flaredeck-proxy.js","sourceRoot":"","sources":["../src/flaredeck-proxy.ts"],"names":[],"mappings":"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"}
|
package/dist/gitguard.d.ts
CHANGED
|
@@ -1,2 +1,8 @@
|
|
|
1
1
|
import type { HookCallbackMatcher, HookEvent } from '@anthropic-ai/claude-agent-sdk';
|
|
2
|
+
/**
|
|
3
|
+
* Why this command may not run, or null. Exported because the OTHER engine's shell went straight
|
|
4
|
+
* to the Jev gate and never saw these rules at all: the fence existed for one engine only, which
|
|
5
|
+
* is the same as not existing.
|
|
6
|
+
*/
|
|
7
|
+
export declare function blockedGitCommand(command: string): string | null;
|
|
2
8
|
export declare function gitGuard(onNote: (text: string) => void): Partial<Record<HookEvent, HookCallbackMatcher[]>>;
|
package/dist/gitguard.js
CHANGED
|
@@ -13,10 +13,39 @@
|
|
|
13
13
|
* feedback and a closed front door, not the fence.
|
|
14
14
|
*/
|
|
15
15
|
/** Publishing, merging and anything that rewrites shared history. */
|
|
16
|
+
/**
|
|
17
|
+
* What to do instead, said the same way everywhere.
|
|
18
|
+
*
|
|
19
|
+
* An agent hit "use push_branch", did not have that tool in the turn it was in, and spent the
|
|
20
|
+
* rest of the turn looking for a binary called push_branch. A refusal has to name something the
|
|
21
|
+
* agent can actually reach, and `submit_work` is one step rather than four: it stages, commits,
|
|
22
|
+
* and publishes.
|
|
23
|
+
*/
|
|
24
|
+
const INSTEAD = 'Use the `submit_work` tool with a short summary of what you changed — it stages, commits and ' +
|
|
25
|
+
'publishes in one step. It is a TOOL, not a shell command: call it the way you call any other ' +
|
|
26
|
+
'tool. If you cannot see it, this turn has no checkout to publish from — say so on the card ' +
|
|
27
|
+
'rather than trying to do it by hand.';
|
|
16
28
|
const BLOCKED = [
|
|
17
|
-
{ re: /(^|[\s;&|(])git\b[^\n;&|]*\bpush\b/, why:
|
|
29
|
+
{ re: /(^|[\s;&|(])git\b[^\n;&|]*\bpush\b/, why: `Publishing does not go through git here. ${INSTEAD}` },
|
|
18
30
|
{ re: /(^|[\s;&|(])git\b[^\n;&|]*\bremote\b[^\n;&|]*\b(add|set-url)\b/, why: 'Pointing the repo at another remote is not something a job does.' },
|
|
31
|
+
// `git remote set-url` was blocked and `git config remote.origin.pushurl` was not — the same
|
|
32
|
+
// act, spelled differently, and it is how the no-push URL on a checkout got replaced with the
|
|
33
|
+
// real one. Reads are still fine: an agent may look at the remote, not rewrite it.
|
|
34
|
+
{
|
|
35
|
+
re: /(^|[\s;&|(])git\b(?![^\n;&|]*(--get|--list|\s-l\b))[^\n;&|]*\bconfig\b[^\n;&|]*\bremote\./,
|
|
36
|
+
why: 'Changing the remote configuration is how the publishing guard gets taken off. push_branch is the way to publish.',
|
|
37
|
+
},
|
|
19
38
|
];
|
|
39
|
+
/**
|
|
40
|
+
* Why this command may not run, or null. Exported because the OTHER engine's shell went straight
|
|
41
|
+
* to the Jev gate and never saw these rules at all: the fence existed for one engine only, which
|
|
42
|
+
* is the same as not existing.
|
|
43
|
+
*/
|
|
44
|
+
export function blockedGitCommand(command) {
|
|
45
|
+
if (ghIsReadOnly(command) && !BLOCKED.some((b) => b.re.test(command)))
|
|
46
|
+
return null;
|
|
47
|
+
return BLOCKED.find((b) => b.re.test(command))?.why ?? null;
|
|
48
|
+
}
|
|
20
49
|
/**
|
|
21
50
|
* READING GitHub is not publishing to it.
|
|
22
51
|
*
|
package/dist/gitguard.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gitguard.js","sourceRoot":"","sources":["../src/gitguard.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AAEH,qEAAqE;AACrE,MAAM,OAAO,GAAG;IACd,EAAE,EAAE,EAAE,oCAAoC,EAAE,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"gitguard.js","sourceRoot":"","sources":["../src/gitguard.ts"],"names":[],"mappings":"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"}
|
package/dist/github.d.ts
CHANGED
|
@@ -23,6 +23,28 @@ export type Job = {
|
|
|
23
23
|
base: string;
|
|
24
24
|
card: string;
|
|
25
25
|
};
|
|
26
|
+
/**
|
|
27
|
+
* Publish a job's branch. Extracted from the tool it used to live inside because the OTHER engine
|
|
28
|
+
* cannot reach an in-process tool at all: a Gemini agent had no way to publish, which did not stop
|
|
29
|
+
* it reporting that it had. One implementation, so both engines publish the same way or not at all.
|
|
30
|
+
*/
|
|
31
|
+
/**
|
|
32
|
+
* Everything between "I have finished editing" and "it is on the remote", done by the harness.
|
|
33
|
+
*
|
|
34
|
+
* An agent spent a morning on this: it committed by hand, hit the deliberately dead push URL,
|
|
35
|
+
* was told to use push_branch, did not have that tool in the turn it was in, and went looking
|
|
36
|
+
* for `push_branch` on the filesystem — then for a git alias. None of that is the work. The
|
|
37
|
+
* harness knows the worktree, the branch, the remote and the credentials; the agent knows what
|
|
38
|
+
* it changed. So it says what it changed, and this does the rest.
|
|
39
|
+
*/
|
|
40
|
+
export declare function submitWork(j: Job, summary: string): Promise<{
|
|
41
|
+
ok: boolean;
|
|
42
|
+
text: string;
|
|
43
|
+
}>;
|
|
44
|
+
export declare function publishBranch(j: Job): Promise<{
|
|
45
|
+
ok: boolean;
|
|
46
|
+
text: string;
|
|
47
|
+
}>;
|
|
26
48
|
export declare function githubTools(job: () => Job | null,
|
|
27
49
|
/**
|
|
28
50
|
* Present only where a project declares a merge command AND this agent may merge. `config` is
|
|
@@ -33,6 +55,6 @@ export declare function githubTools(job: () => Job | null,
|
|
|
33
55
|
merge?: {
|
|
34
56
|
config: () => MergeConfig | null;
|
|
35
57
|
decider: Decider;
|
|
36
|
-
}):
|
|
58
|
+
}): unknown;
|
|
37
59
|
/** The tool names to pre-approve: publishing your own branch needs no one's permission. */
|
|
38
60
|
export declare const GIT_TOOL_NAMES: string[];
|
package/dist/github.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { spawn } from 'node:child_process';
|
|
2
|
-
import {
|
|
2
|
+
import { tool } from '@anthropic-ai/claude-agent-sdk';
|
|
3
|
+
import { sdkServer } from './localmcp.js';
|
|
3
4
|
import { z } from 'zod';
|
|
4
5
|
function run(command, args, cwd, token) {
|
|
5
6
|
return new Promise((resolve) => {
|
|
@@ -34,21 +35,99 @@ function run(command, args, cwd, token) {
|
|
|
34
35
|
* is a reading nobody would notice was wrong. So: publishing requires HEAD to be where the job
|
|
35
36
|
* put it, and says so plainly when it is not.
|
|
36
37
|
*/
|
|
37
|
-
|
|
38
|
+
/** Branches that belong to everyone, so no card may publish from one. */
|
|
39
|
+
const SHARED = /^(dev|develop|main|master|trunk|qa|uat|staging|stage|prod|production|release(\/.*)?)$/i;
|
|
40
|
+
/**
|
|
41
|
+
* Which branch this job publishes, or why it cannot.
|
|
42
|
+
*
|
|
43
|
+
* It used to insist on the exact branch the harness cut, and an agent that renamed its branch —
|
|
44
|
+
* `ui/learning-guide-align` rather than `agent/xgv0osv9oxanzvh6xfgc` — was told to merge back
|
|
45
|
+
* onto a name no reviewer wants to read. The name was never the protection. What matters is that
|
|
46
|
+
* the work is on a branch of its own, in this card's checkout, and not on a shared one.
|
|
47
|
+
*/
|
|
48
|
+
async function branchToPublish(j) {
|
|
38
49
|
const head = await run('git', ['rev-parse', '--abbrev-ref', 'HEAD'], j.cwd);
|
|
39
50
|
if (head.code !== 0)
|
|
40
|
-
return `Could not read the current branch in ${j.cwd}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
51
|
+
return { why: `Could not read the current branch in ${j.cwd}.` };
|
|
52
|
+
const branch = head.out.trim();
|
|
53
|
+
if (!branch || branch === 'HEAD') {
|
|
54
|
+
return { why: `${j.cwd} is not on a branch (detached HEAD). Make one and commit your work to it.` };
|
|
55
|
+
}
|
|
56
|
+
if (SHARED.test(branch) || branch === j.base) {
|
|
57
|
+
return {
|
|
58
|
+
why: `${j.cwd} is on ${branch}, which is shared. Put this card's work on a branch of its own ` +
|
|
59
|
+
`(git switch -c something-descriptive) and publish that.`,
|
|
60
|
+
};
|
|
45
61
|
}
|
|
46
|
-
return
|
|
62
|
+
return { branch };
|
|
47
63
|
}
|
|
48
64
|
const say = (text, isError = false) => ({
|
|
49
65
|
content: [{ type: 'text', text }],
|
|
50
66
|
...(isError ? { isError: true } : {}),
|
|
51
67
|
});
|
|
68
|
+
/**
|
|
69
|
+
* Publish a job's branch. Extracted from the tool it used to live inside because the OTHER engine
|
|
70
|
+
* cannot reach an in-process tool at all: a Gemini agent had no way to publish, which did not stop
|
|
71
|
+
* it reporting that it had. One implementation, so both engines publish the same way or not at all.
|
|
72
|
+
*/
|
|
73
|
+
/**
|
|
74
|
+
* Everything between "I have finished editing" and "it is on the remote", done by the harness.
|
|
75
|
+
*
|
|
76
|
+
* An agent spent a morning on this: it committed by hand, hit the deliberately dead push URL,
|
|
77
|
+
* was told to use push_branch, did not have that tool in the turn it was in, and went looking
|
|
78
|
+
* for `push_branch` on the filesystem — then for a git alias. None of that is the work. The
|
|
79
|
+
* harness knows the worktree, the branch, the remote and the credentials; the agent knows what
|
|
80
|
+
* it changed. So it says what it changed, and this does the rest.
|
|
81
|
+
*/
|
|
82
|
+
export async function submitWork(j, summary) {
|
|
83
|
+
const picked = await branchToPublish(j);
|
|
84
|
+
if ('why' in picked)
|
|
85
|
+
return { ok: false, text: picked.why };
|
|
86
|
+
const dirty = await run('git', ['status', '--porcelain'], j.cwd);
|
|
87
|
+
if (dirty.code !== 0)
|
|
88
|
+
return { ok: false, text: `Could not read ${j.cwd}: ${dirty.out}` };
|
|
89
|
+
if (dirty.out.trim()) {
|
|
90
|
+
const add = await run('git', ['add', '-A'], j.cwd);
|
|
91
|
+
if (add.code !== 0)
|
|
92
|
+
return { ok: false, text: `Could not stage your changes:\n${add.out}` };
|
|
93
|
+
// The card's code goes in the subject line, because a reviewer reading `git log` on a shared
|
|
94
|
+
// branch needs to know which card a commit belongs to without opening anything.
|
|
95
|
+
const subject = `${j.card}: ${summary.split('\n')[0].trim()}`.slice(0, 100);
|
|
96
|
+
const body = summary.split('\n').slice(1).join('\n').trim();
|
|
97
|
+
const commit = await run('git', ['commit', '-m', subject, ...(body ? ['-m', body] : [])], j.cwd);
|
|
98
|
+
if (commit.code !== 0)
|
|
99
|
+
return { ok: false, text: `Could not commit:\n${commit.out}` };
|
|
100
|
+
}
|
|
101
|
+
const published = await publishBranch(j);
|
|
102
|
+
if (!published.ok)
|
|
103
|
+
return published;
|
|
104
|
+
const count = await run('git', ['rev-list', '--count', `origin/${j.base}..HEAD`], j.cwd);
|
|
105
|
+
const n = Number.parseInt(count.out.trim(), 10);
|
|
106
|
+
return {
|
|
107
|
+
ok: true,
|
|
108
|
+
text: `${dirty.out.trim() ? 'Committed and published' : 'Nothing new to commit; published'} ` +
|
|
109
|
+
`${picked.branch}${Number.isFinite(n) && n > 0 ? ` — ${n} commit(s) ahead of ${j.base}` : ''}.\n` +
|
|
110
|
+
`${published.text}`,
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
export async function publishBranch(j) {
|
|
114
|
+
const picked = await branchToPublish(j);
|
|
115
|
+
if ('why' in picked)
|
|
116
|
+
return { ok: false, text: picked.why };
|
|
117
|
+
const branch = picked.branch;
|
|
118
|
+
const token = await j.token();
|
|
119
|
+
// Push over an authenticated URL for this call only, rather than rewriting the remote: the
|
|
120
|
+
// checkout keeps its normal origin and no credential is left behind in it.
|
|
121
|
+
const origin = await run('git', ['remote', 'get-url', 'origin'], j.cwd);
|
|
122
|
+
const url = origin.out.replace(/^https:\/\//, `https://x-access-token:${token}@`);
|
|
123
|
+
const { code, out } = await run('git', ['push', '-u', url, `${branch}:${branch}`], j.cwd, token);
|
|
124
|
+
// Redact before anything is shown: git echoes the remote URL on failure, and that URL now
|
|
125
|
+
// carries the token.
|
|
126
|
+
const safe = out.split(token).join('[REDACTED]');
|
|
127
|
+
return code === 0
|
|
128
|
+
? { ok: true, text: `Pushed ${branch}.\n${safe}` }
|
|
129
|
+
: { ok: false, text: `Could not push ${branch}:\n${safe}` };
|
|
130
|
+
}
|
|
52
131
|
export function githubTools(job,
|
|
53
132
|
/**
|
|
54
133
|
* Present only where a project declares a merge command AND this agent may merge. `config` is
|
|
@@ -63,28 +142,25 @@ merge) {
|
|
|
63
142
|
throw new Error('There is no job running, so there is nothing to publish.');
|
|
64
143
|
return j;
|
|
65
144
|
};
|
|
66
|
-
return
|
|
145
|
+
return sdkServer({
|
|
67
146
|
name: 'git',
|
|
68
147
|
version: '1.0.0',
|
|
69
148
|
tools: [
|
|
149
|
+
tool('submit_work', 'Save and publish everything you have changed for this card, in one step: it stages your ' +
|
|
150
|
+
'changes, commits them, and pushes the branch. Use this when the work is done — you do ' +
|
|
151
|
+
'not need git for any of it. Takes one argument: a short summary of what you changed, ' +
|
|
152
|
+
'written for whoever reviews it.', { summary: z.string().describe('What you changed, in a line or two. Becomes the commit message.') }, async (args) => {
|
|
153
|
+
const j = needJob();
|
|
154
|
+
const summary = String(args.summary ?? '').trim();
|
|
155
|
+
if (!summary)
|
|
156
|
+
return say('Say what you changed — it becomes the commit message.', true);
|
|
157
|
+
const result = await submitWork(j, summary);
|
|
158
|
+
return say(result.text, !result.ok);
|
|
159
|
+
}),
|
|
70
160
|
tool('push_branch', 'Publish this job\'s branch to GitHub. Takes no arguments: it pushes the branch this job ' +
|
|
71
161
|
'created, which is the only branch you may publish.', {}, async () => {
|
|
72
|
-
const
|
|
73
|
-
|
|
74
|
-
if (wrong)
|
|
75
|
-
return say(wrong, true);
|
|
76
|
-
const token = await j.token();
|
|
77
|
-
// Push over an authenticated URL for this call only, rather than rewriting the remote:
|
|
78
|
-
// the checkout keeps its normal origin and no credential is left behind in it.
|
|
79
|
-
const origin = await run('git', ['remote', 'get-url', 'origin'], j.cwd);
|
|
80
|
-
const url = origin.out.replace(/^https:\/\//, `https://x-access-token:${token}@`);
|
|
81
|
-
const { code, out } = await run('git', ['push', '-u', url, `${j.branch}:${j.branch}`], j.cwd, token);
|
|
82
|
-
// Redact before anything is shown: git echoes the remote URL on failure, and that URL
|
|
83
|
-
// now carries the token.
|
|
84
|
-
const safe = out.split(token).join('[REDACTED]');
|
|
85
|
-
return code === 0
|
|
86
|
-
? say(`Pushed ${j.branch}.\n${safe}`)
|
|
87
|
-
: say(`Could not push ${j.branch}:\n${safe}`, true);
|
|
162
|
+
const result = await publishBranch(needJob());
|
|
163
|
+
return say(result.text, !result.ok);
|
|
88
164
|
}),
|
|
89
165
|
tool('open_pull_request', 'Open a pull request from this job\'s branch. The source and target branches are fixed by ' +
|
|
90
166
|
'the job and the board, so you choose only the title and the description.', {
|
|
@@ -102,9 +178,9 @@ merge) {
|
|
|
102
178
|
'Takes no arguments: the branch is this job\'s, and a person approves the result ' +
|
|
103
179
|
'of a dry run before anything is pushed.', {}, async () => {
|
|
104
180
|
const j = needJob();
|
|
105
|
-
const
|
|
106
|
-
if (
|
|
107
|
-
return say(
|
|
181
|
+
const picked = await branchToPublish(j);
|
|
182
|
+
if ('why' in picked)
|
|
183
|
+
return say(picked.why, true);
|
|
108
184
|
const cfg = merge.config();
|
|
109
185
|
if (!cfg) {
|
|
110
186
|
return say(`${j.cwd} declares no merge command, so there is nothing to promote here. ` +
|
|
@@ -143,6 +219,7 @@ merge) {
|
|
|
143
219
|
}
|
|
144
220
|
/** The tool names to pre-approve: publishing your own branch needs no one's permission. */
|
|
145
221
|
export const GIT_TOOL_NAMES = [
|
|
222
|
+
'mcp__git__submit_work',
|
|
146
223
|
'mcp__git__push_branch',
|
|
147
224
|
'mcp__git__open_pull_request',
|
|
148
225
|
'mcp__git__pull_request_status',
|
package/dist/github.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github.js","sourceRoot":"","sources":["../src/github.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"github.js","sourceRoot":"","sources":["../src/github.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type Worktree } from './worktree.js';
|
|
2
|
+
/** Note something this card's session did. Cheap: one appended line, trimmed when it grows. */
|
|
3
|
+
export declare function note(card: string, text: string): void;
|
|
4
|
+
/**
|
|
5
|
+
* What to tell an agent picking a card back up. Empty when there is nothing to say — a card being
|
|
6
|
+
* started for the first time should not be handed a section explaining that nothing has happened.
|
|
7
|
+
*/
|
|
8
|
+
export declare function resumeBrief(card: string, tree: Worktree | null): Promise<string>;
|
|
9
|
+
export declare const journalFile: (card: string) => string;
|
|
10
|
+
/**
|
|
11
|
+
* Where a card's work actually is.
|
|
12
|
+
*
|
|
13
|
+
* A worktree is named from the card's internal id and its branch is whatever the agent called it,
|
|
14
|
+
* so neither contains the card CODE — which is the only name a person or a lead ever uses. A
|
|
15
|
+
* message saying "HR-0624, push what you have" found no checkout, so the turn got no job, so it
|
|
16
|
+
* had no publishing tool, and the agent said its tool was missing. It was not missing; nothing
|
|
17
|
+
* had connected the code to the directory.
|
|
18
|
+
*/
|
|
19
|
+
export declare function rememberWorktree(card: string, path: string, branch: string): void;
|
|
20
|
+
export declare function recallWorktree(card: string): {
|
|
21
|
+
path: string;
|
|
22
|
+
branch: string;
|
|
23
|
+
} | null;
|