teamshare-bridge 0.5.3 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bridge/spawn.d.ts +1 -1
- package/dist/cli/commands/harness.js +58 -1
- package/dist/cli/commands/harness.js.map +1 -1
- package/dist/cli/index.js +1 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/utils.d.ts +2 -2
- package/dist/cli/utils.js.map +1 -1
- package/dist/lib/agy-pty.d.ts +25 -0
- package/dist/lib/agy-pty.js +85 -0
- package/dist/lib/agy-pty.js.map +1 -0
- package/dist/lib/api.d.ts +2 -2
- package/dist/lib/chat-reply.js +4 -4
- package/dist/lib/chat-reply.js.map +1 -1
- package/dist/lib/config.d.ts +1 -1
- package/dist/lib/doc-reply.js +4 -4
- package/dist/lib/doc-reply.js.map +1 -1
- package/dist/lib/git-auth.d.ts +13 -0
- package/dist/lib/git-auth.js +84 -0
- package/dist/lib/git-auth.js.map +1 -0
- package/dist/lib/harness-adapter.d.ts +12 -3
- package/dist/lib/harness-adapter.js +93 -9
- package/dist/lib/harness-adapter.js.map +1 -1
- package/dist/lib/harness.d.ts +9 -0
- package/dist/lib/harness.js +26 -0
- package/dist/lib/harness.js.map +1 -1
- package/dist/lib/models.js +1 -1
- package/dist/lib/models.js.map +1 -1
- package/dist/lib/orchestrator/client.js +16 -11
- package/dist/lib/orchestrator/client.js.map +1 -1
- package/dist/lib/orchestrator/worktree.js +6 -1
- package/dist/lib/orchestrator/worktree.js.map +1 -1
- package/package.json +4 -1
package/dist/bridge/spawn.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export interface SessionSettings {
|
|
|
7
7
|
maxTokens?: number | null;
|
|
8
8
|
systemPrompt?: string | null;
|
|
9
9
|
/** Server-side session driver (auto | opencode | claude | none). */
|
|
10
|
-
harness?: 'auto' | 'opencode' | 'claude' | 'none' | null;
|
|
10
|
+
harness?: 'auto' | 'opencode' | 'claude' | 'codex' | 'gemini' | 'antigravity' | 'copilot' | 'goose' | 'openhands' | 'aider' | 'none' | null;
|
|
11
11
|
/**
|
|
12
12
|
* Bridge wake dedupe cooldown (seconds; null = bridge defaults: 5 min
|
|
13
13
|
* generic wakes, 30 min task/build wakes).
|
|
@@ -4,11 +4,17 @@ exports.spawnHarness = spawnHarness;
|
|
|
4
4
|
/**
|
|
5
5
|
* Spawn harness with piped stdio for live console.
|
|
6
6
|
* Uses the adapter layer (lib/harness-adapter.ts) for pluggable harness support.
|
|
7
|
+
*
|
|
8
|
+
* TTY-gated harnesses (antigravity/agy gates stdout on isatty) are routed
|
|
9
|
+
* through node-pty when available so their output actually flows.
|
|
7
10
|
*/
|
|
8
11
|
const node_child_process_1 = require("node:child_process");
|
|
9
12
|
const config_1 = require("../../lib/config");
|
|
10
13
|
const api_1 = require("../../lib/api");
|
|
11
14
|
const harness_adapter_1 = require("../../lib/harness-adapter");
|
|
15
|
+
const harness_1 = require("../../lib/harness");
|
|
16
|
+
const agy_pty_1 = require("../../lib/agy-pty");
|
|
17
|
+
let warnedNoPty = false;
|
|
12
18
|
function spawnHarness(harness, prompt, log, settings = {}) {
|
|
13
19
|
if (harness === 'none') {
|
|
14
20
|
log('[harness] none - brief printed above; work it manually.');
|
|
@@ -21,13 +27,21 @@ function spawnHarness(harness, prompt, log, settings = {}) {
|
|
|
21
27
|
}
|
|
22
28
|
const adapter = (0, harness_adapter_1.getAdapter)(resolved);
|
|
23
29
|
log(`[harness] launching ${adapter.name}...`);
|
|
30
|
+
// TTY-gated harnesses must run under a pseudo-terminal or they emit nothing.
|
|
31
|
+
if (adapter.needsTty && (0, agy_pty_1.ptyAvailable)()) {
|
|
32
|
+
return spawnThroughPty(adapter.binary, prompt, log, settings, adapter.name);
|
|
33
|
+
}
|
|
34
|
+
if (adapter.needsTty && !warnedNoPty) {
|
|
35
|
+
warnedNoPty = true;
|
|
36
|
+
log(`[harness] ${adapter.name} requires a pseudo-terminal but node-pty is not installed - falling back to a piped spawn (output may be empty; see docs/harness-headless.md).`, 'stderr');
|
|
37
|
+
}
|
|
24
38
|
const args = adapter.headlessArgs(prompt, settings);
|
|
25
39
|
const extraEnv = adapter.envForSession(settings);
|
|
26
40
|
const hasEnv = Object.keys(extraEnv).length > 0;
|
|
27
41
|
// MCP wiring: per-session config override so the agent authenticates as itself
|
|
28
42
|
let mcpOverride = null;
|
|
29
43
|
if (adapter.supportsMcp && settings.agentKey && adapter.writeMcpConfig) {
|
|
30
|
-
mcpOverride = adapter.writeMcpConfig(settings.agentKey, settings.apiBaseUrl ?? process.env.TEAMSHARE_API_URL ?? api_1.DEFAULT_API_URL, settings.sessionMode);
|
|
44
|
+
mcpOverride = adapter.writeMcpConfig(settings.agentKey, settings.apiBaseUrl ?? process.env.TEAMSHARE_API_URL ?? api_1.DEFAULT_API_URL, settings.sessionMode, settings);
|
|
31
45
|
}
|
|
32
46
|
const quote = (a) => /[\s"]/.test(a) ? `"${a.replace(/"/g, '\\"')}"` : a;
|
|
33
47
|
const command = [adapter.binary, ...args.map(quote)].join(' ');
|
|
@@ -46,6 +60,7 @@ function spawnHarness(harness, prompt, log, settings = {}) {
|
|
|
46
60
|
else if (resolved === 'copilot')
|
|
47
61
|
childEnv.COPILOT_CONFIG_DIR = mcpOverride.file;
|
|
48
62
|
// codex, goose, openhands: config is passed via args or env depending on harness
|
|
63
|
+
// antigravity reads its workspace .agents/mcp_config.json from settings.cwd
|
|
49
64
|
}
|
|
50
65
|
return new Promise((resolve) => {
|
|
51
66
|
const child = (0, node_child_process_1.spawn)(command, {
|
|
@@ -83,4 +98,46 @@ function spawnHarness(harness, prompt, log, settings = {}) {
|
|
|
83
98
|
});
|
|
84
99
|
});
|
|
85
100
|
}
|
|
101
|
+
/** Pseudo-terminal path for TTY-gated adapters (antigravity). */
|
|
102
|
+
function spawnThroughPty(binary, prompt, log, settings, name) {
|
|
103
|
+
const bin = (0, harness_1.resolveBin)(binary);
|
|
104
|
+
if (!bin) {
|
|
105
|
+
log(`[harness] ${binary} not found - install it first.`, 'stderr');
|
|
106
|
+
return Promise.resolve(1);
|
|
107
|
+
}
|
|
108
|
+
const adapterLike = (0, harness_adapter_1.getAdapter)(name);
|
|
109
|
+
const args = adapterLike.headlessArgs(prompt, settings);
|
|
110
|
+
// Workspace-scoped MCP wiring (merge + restore around the session).
|
|
111
|
+
let mcpOverride = null;
|
|
112
|
+
if (adapterLike.supportsMcp && settings.agentKey && adapterLike.writeMcpConfig) {
|
|
113
|
+
mcpOverride = adapterLike.writeMcpConfig(settings.agentKey, settings.apiBaseUrl ?? process.env.TEAMSHARE_API_URL ?? api_1.DEFAULT_API_URL, settings.sessionMode, settings);
|
|
114
|
+
if (!mcpOverride) {
|
|
115
|
+
log(`[harness] ${name}: could not wire workspace MCP config - continuing without TeamShare tools.`, 'stderr');
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return (0, agy_pty_1.runAgyPty)({
|
|
119
|
+
file: bin.file,
|
|
120
|
+
args: [...(bin.args ?? []), ...args],
|
|
121
|
+
cwd: settings.cwd,
|
|
122
|
+
timeoutMin: settings.timeoutMin,
|
|
123
|
+
onLine: (line) => log(line),
|
|
124
|
+
}).then((result) => {
|
|
125
|
+
mcpOverride?.cleanup();
|
|
126
|
+
if (settings.cwd) {
|
|
127
|
+
try {
|
|
128
|
+
// Best-effort: drop the .agents dir we may have created for the config.
|
|
129
|
+
require('node:fs').rmdirSync(require('node:path').join(settings.cwd, '.agents'));
|
|
130
|
+
}
|
|
131
|
+
catch { /* non-empty or gone */ }
|
|
132
|
+
}
|
|
133
|
+
if (result.code !== 0) {
|
|
134
|
+
log(`[harness] ${name} exited with code ${result.code}`, 'stderr');
|
|
135
|
+
}
|
|
136
|
+
return result.code;
|
|
137
|
+
}).catch((err) => {
|
|
138
|
+
mcpOverride?.cleanup();
|
|
139
|
+
log(`[harness] ${name} failed: ${(0, config_1.msg)(err)}`, 'stderr');
|
|
140
|
+
return 1;
|
|
141
|
+
});
|
|
142
|
+
}
|
|
86
143
|
//# sourceMappingURL=harness.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harness.js","sourceRoot":"","sources":["../../../src/cli/commands/harness.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"harness.js","sourceRoot":"","sources":["../../../src/cli/commands/harness.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.js
CHANGED
|
@@ -56,7 +56,7 @@ function usage() {
|
|
|
56
56
|
' teamshare-agent key show | clear [--agent <agentId>]',
|
|
57
57
|
'',
|
|
58
58
|
'OPTIONS',
|
|
59
|
-
' --harness auto|opencode|claude|none session driver (default: config or auto)',
|
|
59
|
+
' --harness auto|opencode|claude|antigravity|none session driver (default: config or auto)',
|
|
60
60
|
' --self headless LLM loop (needs LLM_API_KEY env)',
|
|
61
61
|
' --no-report skip the closing summary comment',
|
|
62
62
|
' --continue resume previous --self session',
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;;AACA;;;;;;;;GAQG;AACH,iCAAmC;AAEnC,oCAA6D;AAC7D,0CAAoC;AAEpC,kBAAkB;AAClB,gDAAgD;AAChD,0CAAqD;AACrD,sDAAqD;AACrD,wCAAwC;AACxC,0CAA0C;AAC1C,wCAAwC;AACxC,4CAA4C;AAC5C,4CAA4C;AAC5C,8CAA8C;AAC9C,wCAAgD;AAChD,8CAAwD;AACxD,4CAA4C;AAC5C,kDAAkD;AAClD,gDAAgD;AAEhD,MAAM,UAAU,GAAG,oBAAc,CAAC;AAElC,SAAS,KAAK;IACZ,OAAO;QACL,uCAAuC;QACvC,EAAE;QACF,OAAO;QACP,4DAA4D;QAC5D,oGAAoG;QACpG,+BAA+B;QAC/B,gDAAgD;QAChD,kEAAkE;QAClE,oEAAoE;QACpE,kFAAkF;QAClF,sFAAsF;QACtF,mGAAmG;QACnG,oGAAoG;QACpG,0FAA0F;QAC1F,6EAA6E;QAC7E,wEAAwE;QACxE,gEAAgE;QAChE,iDAAiD;QACjD,yGAAyG;QACzG,kEAAkE;QAClE,oFAAoF;QACpF,sEAAsE;QACtE,wDAAwD;QACxD,EAAE;QACF,SAAS;QACT,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/utils.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ export interface AgentSettings {
|
|
|
8
8
|
maxTokens?: number;
|
|
9
9
|
systemPrompt?: string | null;
|
|
10
10
|
userId?: string | null;
|
|
11
|
-
harness?: 'auto' | 'opencode' | 'claude' | 'codex' | 'gemini' | 'copilot' | 'goose' | 'openhands' | 'aider' | 'none' | null;
|
|
11
|
+
harness?: 'auto' | 'opencode' | 'claude' | 'codex' | 'gemini' | 'antigravity' | 'copilot' | 'goose' | 'openhands' | 'aider' | 'none' | null;
|
|
12
12
|
providerKey?: string | null;
|
|
13
13
|
/** Default working folder (per-agent linked folder). */
|
|
14
14
|
folderPath?: string | null;
|
|
@@ -19,7 +19,7 @@ export type LogFn = (text: string, level?: 'stdout' | 'stderr') => void;
|
|
|
19
19
|
/** Console + live-stream logger. */
|
|
20
20
|
export declare function makeLog(stream: SessionStream | null): LogFn;
|
|
21
21
|
/** Session driver resolution: flag > agent setting > local config > auto. */
|
|
22
|
-
export declare function harnessOf(flags: Map<string, string>, agent?: AgentSettings): 'auto' | 'opencode' | 'claude' | 'codex' | 'gemini' | 'copilot' | 'goose' | 'openhands' | 'aider' | 'none';
|
|
22
|
+
export declare function harnessOf(flags: Map<string, string>, agent?: AgentSettings): 'auto' | 'opencode' | 'claude' | 'codex' | 'gemini' | 'antigravity' | 'copilot' | 'goose' | 'openhands' | 'aider' | 'none';
|
|
23
23
|
/** LLM provider key for self-loop / chat / doc sessions. */
|
|
24
24
|
export declare function sessionLlmApiKey(agent?: AgentSettings): string;
|
|
25
25
|
/** Phase D settings resolution: CLI flag > agent settings > env > default. */
|
package/dist/cli/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/cli/utils.ts"],"names":[],"mappings":";;;AAyBA,gDAwBC;AAKD,0BAKC;AAGD,8BAUC;AAGD,4CAEC;AAGD,0BAYC;AAGD,kCAiBC;AAGD,4CAoBC;AAGD,8CAIC;AAED,sCAQC;AAED,kCAQC;AAED,wCAMC;AAED,oBAQC;AApLD;;GAEG;AACH,qCAAmD;AAEnD,0CAA4F;AAC5F,0CAA6C;AAGhC,QAAA,OAAO,GAAG,OAAO,CAAC;AAe/B,wDAAwD;AACjD,KAAK,UAAU,kBAAkB,CACtC,GAAiB,EACjB,OAAe,EACf,GAAU;IAEV,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC9C,GAAG,CACD,kCAAkC,CAAC,CAAC,KAAK,IAAI,MAAM,gBAAgB,CAAC,CAAC,WAAW,IAAI,SAAS,cAAc,CAAC,CAAC,SAAS,IAAI,SAAS,YAAY,CAAC,CAAC,OAAO,IAAI,SAAS,WAAW,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,gBAAgB,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,eAAe,CAAC,CAAC,UAAU,IAAI,MAAM,EAAE,CACrS,CAAC;QACF,OAAO;YACL,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,SAAS;YAC3B,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,SAAS;YACvC,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,SAAS;YACnC,YAAY,EAAE,CAAC,CAAC,YAAY;YAC5B,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,SAAS;YAC7B,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,SAAS;SACtC,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,8CAA8C,IAAA,YAAG,EAAC,GAAG,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC;QAC3F,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAID,oCAAoC;AACpC,SAAgB,OAAO,CAAC,MAA4B;IAClD,OAAO,CAAC,IAAI,EAAE,KAAK,GAAG,QAAQ,EAAE,EAAE;QAChC,OAAO,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;QACpD,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC5B,CAAC,CAAC;AACJ,CAAC;AAED,6EAA6E;AAC7E,SAAgB,SAAS,CACvB,KAA0B,EAC1B,KAAqB;IAErB,OAAO,CACL,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;QACpB,KAAK,EAAE,OAAO;QACd,IAAA,mBAAU,GAAE,CAAC,OAAO;QACpB,MAAM,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/cli/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/** Whether a pseudo-terminal can be allocated on this machine. */
|
|
2
|
+
export declare function ptyAvailable(): boolean;
|
|
3
|
+
export interface PtyRunOpts {
|
|
4
|
+
/** Resolved executable (see resolveBin) run WITHOUT a shell. */
|
|
5
|
+
file: string;
|
|
6
|
+
args?: string[];
|
|
7
|
+
cwd?: string;
|
|
8
|
+
env?: NodeJS.ProcessEnv;
|
|
9
|
+
/** Hard kill after this many minutes; resolves exit code 124 (session cap). */
|
|
10
|
+
timeoutMin?: number;
|
|
11
|
+
/** Called per output line. A pty has no separate stderr - level is always 'stdout'. */
|
|
12
|
+
onLine?: (line: string, level: 'stdout' | 'stderr') => void;
|
|
13
|
+
}
|
|
14
|
+
export interface PtyRunResult {
|
|
15
|
+
/** Process exit code, or 124 when killed by the timeout cap. */
|
|
16
|
+
code: number;
|
|
17
|
+
/** Full transcript, ANSI stripped, newlines normalized. */
|
|
18
|
+
output: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Run a resolved binary through a fresh pseudo-terminal, tee every line to
|
|
22
|
+
* `onLine`, and resolve with the exit code + full cleaned transcript.
|
|
23
|
+
* A pty multiplexes stdout/stderr into one stream, hence the single level.
|
|
24
|
+
*/
|
|
25
|
+
export declare function runAgyPty(opts: PtyRunOpts): Promise<PtyRunResult>;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ptyAvailable = ptyAvailable;
|
|
4
|
+
exports.runAgyPty = runAgyPty;
|
|
5
|
+
let ptyModule;
|
|
6
|
+
function loadPty() {
|
|
7
|
+
if (ptyModule !== undefined)
|
|
8
|
+
return ptyModule;
|
|
9
|
+
try {
|
|
10
|
+
// Optional dependency - absent when its native build failed at install.
|
|
11
|
+
ptyModule = require('node-pty');
|
|
12
|
+
}
|
|
13
|
+
catch {
|
|
14
|
+
ptyModule = null;
|
|
15
|
+
}
|
|
16
|
+
return ptyModule;
|
|
17
|
+
}
|
|
18
|
+
/** Whether a pseudo-terminal can be allocated on this machine. */
|
|
19
|
+
function ptyAvailable() {
|
|
20
|
+
return loadPty() !== null;
|
|
21
|
+
}
|
|
22
|
+
/** Strips CSI/OSC escapes + carriage returns so logs stay parseable. */
|
|
23
|
+
function clean(line) {
|
|
24
|
+
return line
|
|
25
|
+
// eslint-disable-next-line no-control-regex
|
|
26
|
+
.replace(/\x1b\][^\x07]*(?:\x07|\x1b\\)/g, '')
|
|
27
|
+
// eslint-disable-next-line no-control-regex
|
|
28
|
+
.replace(/\x1b\[[0-9;?]*[ -/]*[@-~]/g, '')
|
|
29
|
+
.replace(/\r/g, '');
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Run a resolved binary through a fresh pseudo-terminal, tee every line to
|
|
33
|
+
* `onLine`, and resolve with the exit code + full cleaned transcript.
|
|
34
|
+
* A pty multiplexes stdout/stderr into one stream, hence the single level.
|
|
35
|
+
*/
|
|
36
|
+
function runAgyPty(opts) {
|
|
37
|
+
const pty = loadPty();
|
|
38
|
+
if (!pty)
|
|
39
|
+
return Promise.resolve({ code: -1, output: '' });
|
|
40
|
+
return new Promise((resolve) => {
|
|
41
|
+
const term = pty.spawn(opts.file, opts.args ?? [], {
|
|
42
|
+
name: 'xterm-256color',
|
|
43
|
+
cols: 160,
|
|
44
|
+
rows: 48,
|
|
45
|
+
cwd: opts.cwd,
|
|
46
|
+
env: (opts.env ?? process.env),
|
|
47
|
+
});
|
|
48
|
+
let output = '';
|
|
49
|
+
let lineBuf = '';
|
|
50
|
+
let done = false;
|
|
51
|
+
const emit = (chunk) => {
|
|
52
|
+
output += chunk;
|
|
53
|
+
lineBuf += chunk;
|
|
54
|
+
const parts = lineBuf.split(/\r\n|[\r\n]/);
|
|
55
|
+
lineBuf = parts.pop() ?? '';
|
|
56
|
+
for (const raw of parts) {
|
|
57
|
+
const line = clean(raw);
|
|
58
|
+
if (line.trim())
|
|
59
|
+
opts.onLine?.(line, 'stdout');
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
const finish = (code) => {
|
|
63
|
+
if (done)
|
|
64
|
+
return;
|
|
65
|
+
done = true;
|
|
66
|
+
clearTimeout(killTimer);
|
|
67
|
+
const tail = clean(lineBuf);
|
|
68
|
+
if (tail.trim())
|
|
69
|
+
opts.onLine?.(tail, 'stdout');
|
|
70
|
+
resolve({ code, output: clean(output) });
|
|
71
|
+
};
|
|
72
|
+
const dataHandler = term.onData.bind(term);
|
|
73
|
+
dataHandler((data) => emit(data));
|
|
74
|
+
term.onExit(({ exitCode }) => finish(exitCode ?? 1));
|
|
75
|
+
const timeoutMs = Math.max(1, opts.timeoutMin ?? 60) * 60_000;
|
|
76
|
+
const killTimer = setTimeout(() => {
|
|
77
|
+
try {
|
|
78
|
+
term.kill();
|
|
79
|
+
}
|
|
80
|
+
catch { /* already gone */ }
|
|
81
|
+
finish(124);
|
|
82
|
+
}, timeoutMs);
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=agy-pty.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agy-pty.js","sourceRoot":"","sources":["../../src/lib/agy-pty.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/api.d.ts
CHANGED
|
@@ -50,7 +50,7 @@ export declare class TeamshareApi {
|
|
|
50
50
|
temperature: number | null;
|
|
51
51
|
maxTokens: number | null;
|
|
52
52
|
systemPrompt: string | null;
|
|
53
|
-
harness: 'auto' | 'opencode' | 'claude' | 'none' | null;
|
|
53
|
+
harness: 'auto' | 'opencode' | 'claude' | 'codex' | 'gemini' | 'antigravity' | 'copilot' | 'goose' | 'openhands' | 'aider' | 'none' | null;
|
|
54
54
|
providerKey: string | null;
|
|
55
55
|
/** Default working folder (per-agent linked folder). */
|
|
56
56
|
folderPath?: string | null;
|
|
@@ -113,7 +113,7 @@ export declare class TeamshareApi {
|
|
|
113
113
|
temperature?: number | null;
|
|
114
114
|
maxTokens?: number | null;
|
|
115
115
|
systemPrompt?: string | null;
|
|
116
|
-
harness?: 'auto' | 'opencode' | 'claude' | 'none' | null;
|
|
116
|
+
harness?: 'auto' | 'opencode' | 'claude' | 'codex' | 'gemini' | 'antigravity' | 'copilot' | 'goose' | 'openhands' | 'aider' | 'none' | null;
|
|
117
117
|
};
|
|
118
118
|
}>;
|
|
119
119
|
getTask(taskId: string): Promise<Task>;
|
package/dist/lib/chat-reply.js
CHANGED
|
@@ -56,14 +56,14 @@ async function generateReply(agentName, target, prompt, projectId, opts, project
|
|
|
56
56
|
// Try the configured harness, then fall back to any available
|
|
57
57
|
const harnessName = (0, harness_adapter_1.resolveHarness)(opts.harness);
|
|
58
58
|
if (harnessName !== 'none' && (0, harness_1.hasBin)((0, harness_adapter_1.getAdapter)(harnessName).binary)) {
|
|
59
|
-
return (0, harness_1.
|
|
59
|
+
return (0, harness_1.runHarnessTtyAware)((0, harness_adapter_1.getAdapter)(harnessName).binary, (0, harness_adapter_1.getAdapter)(harnessName).headlessArgs(prompt, {
|
|
60
60
|
model: fallbackModel,
|
|
61
61
|
title: `TeamShare chat ${projectId}`,
|
|
62
62
|
agentKey: opts.api?.apiKey,
|
|
63
63
|
apiBaseUrl: opts.api?.baseUrl,
|
|
64
64
|
}), { opencodeAgentKey: opts.api?.apiKey, opencodeMcpUrl: opts.api?.baseUrl, opencodeSessionMode: 'chat' });
|
|
65
65
|
}
|
|
66
|
-
throw new Error('harness-only model requires a harness (install one of: opencode, claude, codex, gemini, copilot, goose, openhands)');
|
|
66
|
+
throw new Error('harness-only model requires a harness (install one of: opencode, claude, codex, gemini, antigravity, copilot, goose, openhands)');
|
|
67
67
|
}
|
|
68
68
|
if (opts.selfMode || opts.harness === 'none') {
|
|
69
69
|
if (!opts.llm?.apiKey) {
|
|
@@ -90,14 +90,14 @@ async function generateReply(agentName, target, prompt, projectId, opts, project
|
|
|
90
90
|
if (harnessName !== 'none') {
|
|
91
91
|
const adapter = (0, harness_adapter_1.getAdapter)(harnessName);
|
|
92
92
|
if ((0, harness_1.hasBin)(adapter.binary)) {
|
|
93
|
-
return (0, harness_1.
|
|
93
|
+
return (0, harness_1.runHarnessTtyAware)(adapter.binary, adapter.headlessArgs(prompt, {
|
|
94
94
|
title: `TeamShare chat ${projectId}`,
|
|
95
95
|
agentKey: opts.api?.apiKey,
|
|
96
96
|
apiBaseUrl: opts.api?.baseUrl,
|
|
97
97
|
}), { opencodeAgentKey: opts.api?.apiKey, opencodeMcpUrl: opts.api?.baseUrl, opencodeSessionMode: 'chat' });
|
|
98
98
|
}
|
|
99
99
|
}
|
|
100
|
-
throw new Error('No harness found (install one of: opencode, claude, codex, gemini, copilot, goose, openhands, or use --self with LLM_API_KEY)');
|
|
100
|
+
throw new Error('No harness found (install one of: opencode, claude, codex, gemini, antigravity, copilot, goose, openhands, or use --self with LLM_API_KEY)');
|
|
101
101
|
}
|
|
102
102
|
function mentionPrompt(agentName, target, context, projectId, projectName, agentUserId) {
|
|
103
103
|
const lines = context
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-reply.js","sourceRoot":"","sources":["../../src/lib/chat-reply.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmKA,oCAkFC;AAxOD,
|
|
1
|
+
{"version":3,"file":"chat-reply.js","sourceRoot":"","sources":["../../src/lib/chat-reply.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/config.d.ts
CHANGED
|
@@ -21,7 +21,7 @@ export interface ProjectLink {
|
|
|
21
21
|
export interface BridgeConfig {
|
|
22
22
|
agents: AgentConfig[];
|
|
23
23
|
port: number;
|
|
24
|
-
harness: 'auto' | 'opencode' | 'claude' | 'codex' | 'gemini' | 'copilot' | 'goose' | 'openhands' | 'aider' | 'none';
|
|
24
|
+
harness: 'auto' | 'opencode' | 'claude' | 'codex' | 'gemini' | 'antigravity' | 'copilot' | 'goose' | 'openhands' | 'aider' | 'none';
|
|
25
25
|
quietHours: {
|
|
26
26
|
start: string;
|
|
27
27
|
end: string;
|
package/dist/lib/doc-reply.js
CHANGED
|
@@ -24,14 +24,14 @@ function generateReply(agentName, target, prompt, opts) {
|
|
|
24
24
|
if (harnessName !== 'none') {
|
|
25
25
|
const adapter = (0, harness_adapter_1.getAdapter)(harnessName);
|
|
26
26
|
if ((0, harness_1.hasBin)(adapter.binary)) {
|
|
27
|
-
return
|
|
27
|
+
return (0, harness_1.runHarnessTtyAware)(adapter.binary, adapter.headlessArgs(prompt, {
|
|
28
28
|
title: `TeamShare doc ${opts.documentId}`,
|
|
29
29
|
agentKey: opts.api?.apiKey,
|
|
30
30
|
apiBaseUrl: opts.api?.baseUrl,
|
|
31
|
-
})
|
|
31
|
+
}));
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
|
-
throw new Error('No harness found (install one of: opencode, claude, codex, gemini, copilot, goose, openhands, or use --self with a provider API key)');
|
|
34
|
+
throw new Error('No harness found (install one of: opencode, claude, codex, gemini, antigravity, copilot, goose, openhands, or use --self with a provider API key)');
|
|
35
35
|
}
|
|
36
36
|
function docPrompt(agentName, docName, docText, target, context, maxChars) {
|
|
37
37
|
const thread = context
|
|
@@ -83,7 +83,7 @@ async function runDocReply(api, agentId, documentId, mentionToken, opts) {
|
|
|
83
83
|
const usesHarness = !opts.echo &&
|
|
84
84
|
!opts.selfMode &&
|
|
85
85
|
opts.harness !== 'none' &&
|
|
86
|
-
(opts.harness !== 'auto' || (0, harness_1.hasBin)('opencode') || (0, harness_1.hasBin)('claude') || (0, harness_1.hasBin)('codex') || (0, harness_1.hasBin)('gemini') || (0, harness_1.hasBin)('copilot') || (0, harness_1.hasBin)('goose') || (0, harness_1.hasBin)('openhands'));
|
|
86
|
+
(opts.harness !== 'auto' || (0, harness_1.hasBin)('opencode') || (0, harness_1.hasBin)('claude') || (0, harness_1.hasBin)('codex') || (0, harness_1.hasBin)('gemini') || (0, harness_1.hasBin)('agy') || (0, harness_1.hasBin)('copilot') || (0, harness_1.hasBin)('goose') || (0, harness_1.hasBin)('openhands'));
|
|
87
87
|
for (const target of targets.slice(0, MAX_TARGETS)) {
|
|
88
88
|
const targetIndex = rows.findIndex((r) => r.id === target.id);
|
|
89
89
|
const context = rows.slice(Math.max(0, targetIndex - CONTEXT_WINDOW), targetIndex + 1);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doc-reply.js","sourceRoot":"","sources":["../../src/lib/doc-reply.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"doc-reply.js","sourceRoot":"","sources":["../../src/lib/doc-reply.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** Stable short key for a repo URL. */
|
|
2
|
+
export declare function urlKey(url: string): string;
|
|
3
|
+
/** Remember a PAT for a repository URL (overwrites any previous entry). */
|
|
4
|
+
export declare function rememberGitToken(url: string, token: string): void;
|
|
5
|
+
/**
|
|
6
|
+
* Transient git `-c` args carrying Authorization for this repo URL.
|
|
7
|
+
* Returns [] for unknown URLs or ssh:// remotes (which use ambient keys).
|
|
8
|
+
*/
|
|
9
|
+
export declare function authArgsForUrl(url?: string | null): string[];
|
|
10
|
+
/** Best-effort origin URL of a local repo (null on failure). */
|
|
11
|
+
export declare function originUrlFor(repoPath: string): string | null;
|
|
12
|
+
/** Convenience: auth args for whatever origin a local repo points at. */
|
|
13
|
+
export declare function authArgsForRepo(repoPath: string): string[];
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.urlKey = urlKey;
|
|
4
|
+
exports.rememberGitToken = rememberGitToken;
|
|
5
|
+
exports.authArgsForUrl = authArgsForUrl;
|
|
6
|
+
exports.originUrlFor = originUrlFor;
|
|
7
|
+
exports.authArgsForRepo = authArgsForRepo;
|
|
8
|
+
const node_child_process_1 = require("node:child_process");
|
|
9
|
+
const node_crypto_1 = require("node:crypto");
|
|
10
|
+
const node_fs_1 = require("node:fs");
|
|
11
|
+
const node_os_1 = require("node:os");
|
|
12
|
+
const node_path_1 = require("node:path");
|
|
13
|
+
/**
|
|
14
|
+
* Per-repo git credential store for project-owned repositories.
|
|
15
|
+
*
|
|
16
|
+
* The backend sends a one-shot PAT with the create-worktree command for
|
|
17
|
+
* machines that lack ambient credentials for the project's repo. We persist
|
|
18
|
+
* it locally (0600, same trust boundary as ~/.teamshare/config.json which
|
|
19
|
+
* already holds the agent API key) so later merge/push commands in fresh
|
|
20
|
+
* daemon sessions can still authenticate.
|
|
21
|
+
*
|
|
22
|
+
* Tokens are NEVER written into git config or remote URLs, never logged,
|
|
23
|
+
* and only injected as transient `-c http.extraHeader=...` arguments.
|
|
24
|
+
*/
|
|
25
|
+
const TOKENS_FILE = (0, node_path_1.join)((0, node_os_1.homedir)(), '.teamshare', 'git-tokens.json');
|
|
26
|
+
function loadTokens() {
|
|
27
|
+
try {
|
|
28
|
+
if (!(0, node_fs_1.existsSync)(TOKENS_FILE))
|
|
29
|
+
return {};
|
|
30
|
+
return JSON.parse((0, node_fs_1.readFileSync)(TOKENS_FILE, 'utf-8'));
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
return {};
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
function saveTokens(map) {
|
|
37
|
+
(0, node_fs_1.mkdirSync)((0, node_path_1.join)(TOKENS_FILE, '..'), { recursive: true });
|
|
38
|
+
(0, node_fs_1.writeFileSync)(TOKENS_FILE, JSON.stringify(map, null, 2), { mode: 0o600 });
|
|
39
|
+
}
|
|
40
|
+
/** Stable short key for a repo URL. */
|
|
41
|
+
function urlKey(url) {
|
|
42
|
+
return (0, node_crypto_1.createHash)('sha256').update(url).digest('hex').slice(0, 16);
|
|
43
|
+
}
|
|
44
|
+
/** Remember a PAT for a repository URL (overwrites any previous entry). */
|
|
45
|
+
function rememberGitToken(url, token) {
|
|
46
|
+
if (!url || !token)
|
|
47
|
+
return;
|
|
48
|
+
const map = loadTokens();
|
|
49
|
+
map[urlKey(url)] = { url, token };
|
|
50
|
+
saveTokens(map);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Transient git `-c` args carrying Authorization for this repo URL.
|
|
54
|
+
* Returns [] for unknown URLs or ssh:// remotes (which use ambient keys).
|
|
55
|
+
*/
|
|
56
|
+
function authArgsForUrl(url) {
|
|
57
|
+
if (!url || !/^https?:\/\//i.test(url))
|
|
58
|
+
return [];
|
|
59
|
+
const entry = loadTokens()[urlKey(url)];
|
|
60
|
+
if (!entry?.token)
|
|
61
|
+
return [];
|
|
62
|
+
const basic = Buffer.from(`x-access-token:${entry.token}`).toString('base64');
|
|
63
|
+
// Header is process-scoped only - nothing is persisted into the repo.
|
|
64
|
+
return ['-c', `http.extraHeader=Authorization: Basic ${basic}`];
|
|
65
|
+
}
|
|
66
|
+
/** Best-effort origin URL of a local repo (null on failure). */
|
|
67
|
+
function originUrlFor(repoPath) {
|
|
68
|
+
try {
|
|
69
|
+
const out = (0, node_child_process_1.execFileSync)('git', ['remote', 'get-url', 'origin'], {
|
|
70
|
+
cwd: repoPath,
|
|
71
|
+
encoding: 'utf-8',
|
|
72
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
73
|
+
});
|
|
74
|
+
return out.trim() || null;
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
return null;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
/** Convenience: auth args for whatever origin a local repo points at. */
|
|
81
|
+
function authArgsForRepo(repoPath) {
|
|
82
|
+
return authArgsForUrl(originUrlFor(repoPath));
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=git-auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-auth.js","sourceRoot":"","sources":["../../src/lib/git-auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type HarnessName = 'auto' | 'opencode' | 'claude' | 'codex' | 'gemini' | 'copilot' | 'goose' | 'openhands' | 'aider' | 'none';
|
|
1
|
+
export type HarnessName = 'auto' | 'opencode' | 'claude' | 'codex' | 'gemini' | 'antigravity' | 'copilot' | 'goose' | 'openhands' | 'aider' | 'none';
|
|
2
2
|
export interface SpawnOpts {
|
|
3
3
|
model?: string;
|
|
4
4
|
temperature?: number;
|
|
@@ -25,8 +25,12 @@ export interface HarnessAdapter {
|
|
|
25
25
|
envForSession(opts: SpawnOpts): Record<string, string>;
|
|
26
26
|
/** Whether this harness supports MCP tool injection. */
|
|
27
27
|
supportsMcp: boolean;
|
|
28
|
-
/**
|
|
29
|
-
|
|
28
|
+
/**
|
|
29
|
+
* Write a per-session MCP config override (returns file path + cleanup).
|
|
30
|
+
* `opts` carries cwd for workspace-scoped configs (antigravity merges
|
|
31
|
+
* `.agents/mcp_config.json` inside the working folder and restores it).
|
|
32
|
+
*/
|
|
33
|
+
writeMcpConfig?(agentKey: string, apiBaseUrl: string, sessionMode?: string, opts?: SpawnOpts): {
|
|
30
34
|
file: string;
|
|
31
35
|
cleanup: () => void;
|
|
32
36
|
} | null;
|
|
@@ -34,6 +38,11 @@ export interface HarnessAdapter {
|
|
|
34
38
|
sessionResumeFlag?: string;
|
|
35
39
|
/** Whether the harness produces structured JSON output. */
|
|
36
40
|
structuredOutput: boolean;
|
|
41
|
+
/**
|
|
42
|
+
* The harness gates its stdout on isatty() (e.g. agy prints nothing when
|
|
43
|
+
* piped) — spawn through a pseudo-terminal when node-pty is available.
|
|
44
|
+
*/
|
|
45
|
+
needsTty?: boolean;
|
|
37
46
|
}
|
|
38
47
|
declare const adapters: Record<string, HarnessAdapter>;
|
|
39
48
|
/** Get a specific adapter by name. Throws if unknown. */
|