teamshare-bridge 0.1.0 → 0.2.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/daemon.js +239 -8
- package/dist/bridge/daemon.js.map +1 -1
- package/dist/bridge/index.js +10 -0
- package/dist/bridge/index.js.map +1 -1
- package/dist/bridge/local-server.d.ts +6 -1
- package/dist/bridge/local-server.js +24 -0
- package/dist/bridge/local-server.js.map +1 -1
- package/dist/bridge/protocol.js +33 -4
- package/dist/bridge/protocol.js.map +1 -1
- package/dist/bridge/spawn.d.ts +20 -4
- package/dist/bridge/spawn.js +93 -29
- package/dist/bridge/spawn.js.map +1 -1
- package/dist/cli/index.js +1102 -64
- package/dist/cli/index.js.map +1 -1
- package/dist/lib/api.d.ts +203 -5
- package/dist/lib/api.js +144 -3
- package/dist/lib/api.js.map +1 -1
- package/dist/lib/chat-reply.d.ts +22 -2
- package/dist/lib/chat-reply.js +139 -67
- package/dist/lib/chat-reply.js.map +1 -1
- package/dist/lib/config.d.ts +103 -0
- package/dist/lib/config.js +272 -0
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/doc-reply.d.ts +11 -0
- package/dist/lib/doc-reply.js +18 -34
- package/dist/lib/doc-reply.js.map +1 -1
- package/dist/lib/harness.d.ts +38 -0
- package/dist/lib/harness.js +139 -0
- package/dist/lib/harness.js.map +1 -0
- package/dist/lib/llm.d.ts +30 -2
- package/dist/lib/llm.js +284 -30
- package/dist/lib/llm.js.map +1 -1
- package/dist/lib/lock.d.ts +1 -1
- package/dist/lib/models.d.ts +11 -0
- package/dist/lib/models.js +30 -1
- package/dist/lib/models.js.map +1 -1
- package/dist/lib/orchestrator/client.d.ts +27 -0
- package/dist/lib/orchestrator/client.js +135 -0
- package/dist/lib/orchestrator/client.js.map +1 -0
- package/dist/lib/orchestrator/index.d.ts +5 -0
- package/dist/lib/orchestrator/index.js +17 -0
- package/dist/lib/orchestrator/index.js.map +1 -0
- package/dist/lib/orchestrator/runner.d.ts +18 -0
- package/dist/lib/orchestrator/runner.js +177 -0
- package/dist/lib/orchestrator/runner.js.map +1 -0
- package/dist/lib/orchestrator/worktree.d.ts +43 -0
- package/dist/lib/orchestrator/worktree.js +243 -0
- package/dist/lib/orchestrator/worktree.js.map +1 -0
- package/dist/lib/session-stream.d.ts +1 -1
- package/dist/lib/skills.d.ts +21 -0
- package/dist/lib/skills.js +80 -0
- package/dist/lib/skills.js.map +1 -0
- package/dist/lib/usage.d.ts +52 -0
- package/dist/lib/usage.js +69 -0
- package/dist/lib/usage.js.map +1 -0
- package/package.json +3 -1
- package/skills/teamshare-auth-rbac/SKILL.md +79 -0
- package/skills/teamshare-cdd/SKILL.md +145 -0
- package/skills/teamshare-modularity/SKILL.md +92 -0
- package/tools/usage_report.py +223 -0
package/dist/lib/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/chat-reply.d.ts
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent chat-reply loop (`teamshare-agent chat`): replies to a single
|
|
3
|
+
* mentioning message (the one that triggered the wake). One mention → one
|
|
4
|
+
* reply → go to sleep. When no targetId is given, replies only to the
|
|
5
|
+
* *latest* mention (not all historical ones) as a fallback.
|
|
6
|
+
*
|
|
7
|
+
* Generation uses the configured harness (opencode `run` / `claude -p`,
|
|
8
|
+
* non-interactive, stdout captured) or the `--self` LLM completion.
|
|
9
|
+
* Phase C (IMP-530): `--self` replies stream token-by-token into the
|
|
10
|
+
* channel as `message:partial` frames when a stream socket is provided;
|
|
11
|
+
* the final message is still posted via POST /chat/messages.
|
|
12
|
+
*/
|
|
1
13
|
import { TeamshareApi } from './api';
|
|
2
14
|
export interface ChatReplyOptions {
|
|
3
15
|
harness: 'auto' | 'opencode' | 'claude' | 'none';
|
|
@@ -18,12 +30,20 @@ export interface ChatReplyOptions {
|
|
|
18
30
|
projectId: string;
|
|
19
31
|
channelId?: string;
|
|
20
32
|
};
|
|
33
|
+
/** Project this chat belongs to - recorded as the session title for spend attribution. */
|
|
34
|
+
projectId?: string;
|
|
35
|
+
/** API client for the tool loop (required when selfMode is true). */
|
|
36
|
+
api?: import('./api').TeamshareApi;
|
|
21
37
|
}
|
|
22
38
|
/**
|
|
23
39
|
* Runs the chat reply loop. Heartbeats working/online around the work and
|
|
24
|
-
*
|
|
40
|
+
* replies to at most ONE mentioning message:
|
|
41
|
+
* - If `targetId` is given (from the wake event's messageId), reply ONLY
|
|
42
|
+
* to that specific message.
|
|
43
|
+
* - Otherwise, reply to the single LATEST mention (not all of them).
|
|
44
|
+
* One mention → one reply → go to sleep.
|
|
25
45
|
*/
|
|
26
|
-
export declare function runChatReply(api: TeamshareApi, agentId: string, projectId: string, mentionToken: string, opts: ChatReplyOptions): Promise<{
|
|
46
|
+
export declare function runChatReply(api: TeamshareApi, agentId: string, projectId: string, mentionToken: string, opts: ChatReplyOptions, targetId?: string): Promise<{
|
|
27
47
|
replied: number;
|
|
28
48
|
skipped: number;
|
|
29
49
|
}>;
|
package/dist/lib/chat-reply.js
CHANGED
|
@@ -1,65 +1,101 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
36
|
exports.runChatReply = runChatReply;
|
|
4
|
-
|
|
5
|
-
* Agent chat-reply loop (`teamshare-agent chat`): reads the recent project
|
|
6
|
-
* channel and replies to EVERY message that mentions the agent, separately.
|
|
7
|
-
* Generation uses the configured harness (opencode `run` / `claude -p`,
|
|
8
|
-
* non-interactive, stdout captured) or the `--self` LLM completion.
|
|
9
|
-
* Phase C (IMP-530): `--self` replies stream token-by-token into the
|
|
10
|
-
* channel as `message:partial` frames when a stream socket is provided;
|
|
11
|
-
* the final message is still posted via POST /chat/messages.
|
|
12
|
-
*/
|
|
13
|
-
const node_child_process_1 = require("node:child_process");
|
|
37
|
+
const harness_1 = require("./harness");
|
|
14
38
|
const llm_1 = require("./llm");
|
|
15
39
|
const partial_stream_1 = require("./partial-stream");
|
|
16
|
-
const MAX_TARGETS = 10;
|
|
17
40
|
const CONTEXT_WINDOW = 10;
|
|
18
|
-
function hasBin(bin) {
|
|
19
|
-
try {
|
|
20
|
-
(0, node_child_process_1.execFileSync)(bin, ['--version'], { stdio: 'ignore' });
|
|
21
|
-
return true;
|
|
22
|
-
}
|
|
23
|
-
catch {
|
|
24
|
-
return false;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
41
|
/** Generates a reply via the harness (non-interactive) or headless LLM. */
|
|
28
|
-
async function generateReply(agentName, target, prompt, opts, onToken) {
|
|
42
|
+
async function generateReply(agentName, target, prompt, projectId, opts, projectName, onToken, agentUserId) {
|
|
29
43
|
if (opts.echo) {
|
|
30
44
|
const reply = `@${target.author?.name ?? 'there'} — this is an automated acknowledgment from ${agentName}. I saw your message and I'm on it.`;
|
|
31
45
|
if (onToken)
|
|
32
46
|
onToken(reply);
|
|
33
47
|
return reply;
|
|
34
48
|
}
|
|
49
|
+
// Check if the model is harness-only (opencode-go) — cannot use --self
|
|
50
|
+
const { resolveModel, HARNESS_NATIVE_PROVIDERS, getHarnessFallbackModel } = await Promise.resolve().then(() => __importStar(require('./models')));
|
|
51
|
+
const resolved = resolveModel(opts.llm?.model ?? '');
|
|
52
|
+
if (resolved.harnessOnly) {
|
|
53
|
+
// opencode-go models must go through the harness, not --self
|
|
54
|
+
const fallbackModel = getHarnessFallbackModel(opts.llm?.model);
|
|
55
|
+
console.log(`[chat-reply] opencode-go model detected - using harness with fallback: ${fallbackModel}`);
|
|
56
|
+
if (opts.harness === 'opencode' || (opts.harness === 'auto' && (0, harness_1.hasBin)('opencode'))) {
|
|
57
|
+
return (0, harness_1.runHarness)('opencode', ['run', '--model', fallbackModel, '--title', `TeamShare chat ${projectId}`, prompt], { opencodeAgentKey: opts.api?.apiKey, opencodeMcpUrl: opts.api?.baseUrl });
|
|
58
|
+
}
|
|
59
|
+
if (opts.harness === 'claude' || (opts.harness === 'auto' && (0, harness_1.hasBin)('claude'))) {
|
|
60
|
+
return (0, harness_1.runHarness)('claude', ['-p', prompt]);
|
|
61
|
+
}
|
|
62
|
+
throw new Error('opencode-go model requires opencode harness (install opencode or use a non-harness model with --self)');
|
|
63
|
+
}
|
|
35
64
|
if (opts.selfMode || opts.harness === 'none') {
|
|
36
65
|
if (!opts.llm?.apiKey) {
|
|
37
|
-
throw new Error('--self / --harness none requires
|
|
66
|
+
throw new Error('--self / --harness none requires a provider API key (set it on the agent in TeamShare, or LLM_API_KEY / CHAT_LLM_API_KEY env)');
|
|
38
67
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
return (0, llm_1.completeStream)(prompt, opts.llm, onToken);
|
|
68
|
+
if (!opts.api) {
|
|
69
|
+
throw new Error('--self mode requires opts.api (TeamshareApi) for the tool loop');
|
|
42
70
|
}
|
|
43
|
-
|
|
71
|
+
// Use the full tool loop — the agent can create tasks, list docs,
|
|
72
|
+
// search, add comments, etc. from chat.
|
|
73
|
+
const reply = await (0, llm_1.runProjectSession)(opts.api, projectId, prompt, {
|
|
74
|
+
baseUrl: opts.llm.baseUrl,
|
|
75
|
+
apiKey: opts.llm.apiKey,
|
|
76
|
+
model: opts.llm.model,
|
|
77
|
+
agentName,
|
|
78
|
+
temperature: opts.llm.temperature,
|
|
79
|
+
maxTokens: opts.llm.maxTokens,
|
|
80
|
+
agentUserId,
|
|
81
|
+
}, projectName);
|
|
82
|
+
if (onToken)
|
|
83
|
+
onToken(reply);
|
|
84
|
+
return reply;
|
|
44
85
|
}
|
|
45
|
-
if (opts.harness === 'opencode' || (opts.harness === 'auto' && hasBin('opencode'))) {
|
|
46
|
-
return (0,
|
|
47
|
-
encoding: 'utf8',
|
|
48
|
-
maxBuffer: 2 * 1024 * 1024,
|
|
49
|
-
}).trim();
|
|
86
|
+
if (opts.harness === 'opencode' || (opts.harness === 'auto' && (0, harness_1.hasBin)('opencode'))) {
|
|
87
|
+
return (0, harness_1.runHarness)('opencode', ['run', '--title', `TeamShare chat ${opts.projectId}`, prompt], { opencodeAgentKey: opts.api?.apiKey, opencodeMcpUrl: opts.api?.baseUrl });
|
|
50
88
|
}
|
|
51
|
-
if (opts.harness === 'claude' || (opts.harness === 'auto' && hasBin('claude'))) {
|
|
52
|
-
return (0,
|
|
53
|
-
encoding: 'utf8',
|
|
54
|
-
maxBuffer: 2 * 1024 * 1024,
|
|
55
|
-
}).trim();
|
|
89
|
+
if (opts.harness === 'claude' || (opts.harness === 'auto' && (0, harness_1.hasBin)('claude'))) {
|
|
90
|
+
return (0, harness_1.runHarness)('claude', ['-p', prompt]);
|
|
56
91
|
}
|
|
57
92
|
throw new Error('No harness found (install opencode or claude, or use --self with LLM_API_KEY)');
|
|
58
93
|
}
|
|
59
|
-
function mentionPrompt(agentName, target, context) {
|
|
94
|
+
function mentionPrompt(agentName, target, context, projectId, projectName, agentUserId) {
|
|
60
95
|
const lines = context
|
|
61
96
|
.map((m) => `[${m.createdAt}] ${m.author?.name ?? '?'}: ${m.body}`)
|
|
62
97
|
.join('\n');
|
|
98
|
+
const projectLabel = projectName ? `"${projectName}" (${projectId})` : projectId;
|
|
63
99
|
return [
|
|
64
100
|
`You are ${agentName}, a TeamShare project assistant. The project chat looks like this:`,
|
|
65
101
|
'',
|
|
@@ -69,58 +105,94 @@ function mentionPrompt(agentName, target, context) {
|
|
|
69
105
|
'',
|
|
70
106
|
`[${target.createdAt}] ${target.author?.name ?? 'someone'}: ${target.body}`,
|
|
71
107
|
'',
|
|
108
|
+
`You are working in project ${projectLabel}. create_task and create_document are pinned to THIS project - any projectId you supply is ignored in favor of it. Never try to create tasks in another project.`,
|
|
109
|
+
'Call get_project first to learn the project name and members.',
|
|
110
|
+
'Only claim you created/updated something (a task, a document) if a tool actually returned it - if a tool errors, report the error honestly.',
|
|
111
|
+
...(agentUserId
|
|
112
|
+
? [`Your TeamShare user id is ${agentUserId} - when asked to assign a task to yourself, pass assigneeId "me" (resolves to your user id).`]
|
|
113
|
+
: []),
|
|
72
114
|
'Reply to that message directly. Address the person by name if known. Be concise and useful.',
|
|
115
|
+
'If the person asks you to do something actionable (create a task, list items, search, etc.), use your tools.',
|
|
116
|
+
'Do NOT browse, reference, or claim to work on any local repository or folder on disk.',
|
|
117
|
+
'Never mention local folder names or repo names (e.g. teamshare-bridge, frontend, teamshare-backend).',
|
|
118
|
+
'If asked about code work, mention tasks or documents in TeamShare, not local folders.',
|
|
73
119
|
].join('\n');
|
|
74
120
|
}
|
|
75
121
|
/**
|
|
76
122
|
* Runs the chat reply loop. Heartbeats working/online around the work and
|
|
77
|
-
*
|
|
123
|
+
* replies to at most ONE mentioning message:
|
|
124
|
+
* - If `targetId` is given (from the wake event's messageId), reply ONLY
|
|
125
|
+
* to that specific message.
|
|
126
|
+
* - Otherwise, reply to the single LATEST mention (not all of them).
|
|
127
|
+
* One mention → one reply → go to sleep.
|
|
78
128
|
*/
|
|
79
|
-
async function runChatReply(api, agentId, projectId, mentionToken, opts) {
|
|
129
|
+
async function runChatReply(api, agentId, projectId, mentionToken, opts, targetId) {
|
|
80
130
|
const token = mentionToken.replace(/^@/, '').toLowerCase();
|
|
81
131
|
const selfName = mentionToken.replace(/^@/, '');
|
|
82
132
|
const page = await api.listChatMessages(projectId, 1, 50);
|
|
83
133
|
const rows = [...(page ?? [])].sort((a, b) => new Date(a.createdAt).getTime() - new Date(b.createdAt).getTime());
|
|
84
134
|
if (!rows.length)
|
|
85
135
|
return { replied: 0, skipped: 0 };
|
|
136
|
+
// Project name anchors the agent: without it the model cannot tell which
|
|
137
|
+
// project it is working in and may invent tasks in the wrong one.
|
|
138
|
+
const project = await api.getProject(projectId).catch(() => null);
|
|
139
|
+
const projectName = project && typeof project === 'object' && 'name' in project
|
|
140
|
+
? String(project.name ?? '')
|
|
141
|
+
: undefined;
|
|
86
142
|
// Every message that mentions the agent, excluding messages the agent
|
|
87
143
|
// itself authored (its own replies mention other people, not itself).
|
|
88
|
-
const
|
|
144
|
+
const mentions = rows.filter((m) => {
|
|
89
145
|
const mentionsAgent = m.body.toLowerCase().includes(`@${token}`);
|
|
90
146
|
const isAgent = m.author?.kind === 'agent' ||
|
|
91
147
|
(m.author?.name ?? '').toLowerCase() === selfName.toLowerCase();
|
|
92
148
|
return mentionsAgent && !isAgent;
|
|
93
149
|
});
|
|
94
|
-
if (!
|
|
150
|
+
if (!mentions.length)
|
|
95
151
|
return { replied: 0, skipped: 0 };
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
const
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
if (opts.stream && (opts.selfMode || opts.harness === 'none' || opts.echo)) {
|
|
106
|
-
stream = new partial_stream_1.PartialStream({
|
|
107
|
-
wsBase: opts.stream.wsBase,
|
|
108
|
-
apiKey: opts.stream.apiKey,
|
|
109
|
-
projectId: opts.stream.projectId,
|
|
110
|
-
channelId: opts.stream.channelId,
|
|
111
|
-
}, draftId);
|
|
112
|
-
stream.connect();
|
|
152
|
+
// Pick the single target: the specific message the wake triggered on,
|
|
153
|
+
// or the latest mention as a safe fallback.
|
|
154
|
+
let target;
|
|
155
|
+
if (targetId) {
|
|
156
|
+
const found = mentions.find((m) => m.id === targetId);
|
|
157
|
+
if (!found) {
|
|
158
|
+
// The target is not in the last 50 messages or already agent-replied;
|
|
159
|
+
// fall back to the latest mention.
|
|
160
|
+
target = mentions[mentions.length - 1];
|
|
113
161
|
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
stream?.end();
|
|
117
|
-
continue;
|
|
162
|
+
else {
|
|
163
|
+
target = found;
|
|
118
164
|
}
|
|
119
|
-
const posted = await api.postChatMessage(projectId, reply);
|
|
120
|
-
stream?.end(posted?.id ??
|
|
121
|
-
posted?.message?.id);
|
|
122
|
-
replied += 1;
|
|
123
165
|
}
|
|
124
|
-
|
|
166
|
+
else {
|
|
167
|
+
// No targetId (direct CLI run) — reply to only the latest mention.
|
|
168
|
+
target = mentions[mentions.length - 1];
|
|
169
|
+
}
|
|
170
|
+
const targetIndex = rows.findIndex((r) => r.id === target.id);
|
|
171
|
+
const context = rows.slice(Math.max(0, targetIndex - CONTEXT_WINDOW), targetIndex + 1);
|
|
172
|
+
// The agent's own user id: lets "assign to yourself" resolve to the agent
|
|
173
|
+
// (create_task accepts assigneeId "me"/"self").
|
|
174
|
+
const settings = await api.getAgentSettings(agentId).catch(() => null);
|
|
175
|
+
const agentUserId = settings?.userId ?? undefined;
|
|
176
|
+
const prompt = mentionPrompt(selfName, target, context, projectId, projectName, agentUserId);
|
|
177
|
+
const draftId = `draft_${target.id}`;
|
|
178
|
+
let stream = null;
|
|
179
|
+
if (opts.stream && (opts.selfMode || opts.harness === 'none' || opts.echo)) {
|
|
180
|
+
stream = new partial_stream_1.PartialStream({
|
|
181
|
+
wsBase: opts.stream.wsBase,
|
|
182
|
+
apiKey: opts.stream.apiKey,
|
|
183
|
+
projectId: opts.stream.projectId,
|
|
184
|
+
channelId: opts.stream.channelId,
|
|
185
|
+
}, draftId);
|
|
186
|
+
stream.connect();
|
|
187
|
+
}
|
|
188
|
+
const reply = await generateReply(selfName, target, prompt, projectId, { ...opts, api }, projectName, (delta) => stream?.token(delta), agentUserId);
|
|
189
|
+
if (!reply) {
|
|
190
|
+
stream?.end();
|
|
191
|
+
return { replied: 0, skipped: 1 };
|
|
192
|
+
}
|
|
193
|
+
const posted = await api.postChatMessage(projectId, reply);
|
|
194
|
+
stream?.end(posted?.id ??
|
|
195
|
+
posted?.message?.id);
|
|
196
|
+
return { replied: 1, skipped: 0 };
|
|
125
197
|
}
|
|
126
198
|
//# sourceMappingURL=chat-reply.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-reply.js","sourceRoot":"","sources":["../../src/lib/chat-reply.ts"],"names":[],"mappings":"
|
|
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
|
@@ -3,6 +3,20 @@ export declare const BRIDGE_CANDIDATE_PORTS: readonly [48231, 48242, 48253, 4826
|
|
|
3
3
|
export interface AgentConfig {
|
|
4
4
|
agentId: string;
|
|
5
5
|
apiKey: string;
|
|
6
|
+
/**
|
|
7
|
+
* Optional per-agent LLM provider key (e.g. an opencode-go API key) that
|
|
8
|
+
* OVERRIDES the global `opencodeKey`. Agents use this instead of the
|
|
9
|
+
* user's default opencode credentials so agent usage never bills the
|
|
10
|
+
* user's personal account.
|
|
11
|
+
*/
|
|
12
|
+
opencodeKey?: string;
|
|
13
|
+
}
|
|
14
|
+
/** Project -> local folder mapping (the "project guard", IMP-6xx). */
|
|
15
|
+
export interface ProjectLink {
|
|
16
|
+
/** Canonical absolute path the agent may work inside. */
|
|
17
|
+
path: string;
|
|
18
|
+
/** Strict mode (default true): unlinked projects are hard-blocked. */
|
|
19
|
+
guard?: boolean;
|
|
6
20
|
}
|
|
7
21
|
export interface BridgeConfig {
|
|
8
22
|
agents: AgentConfig[];
|
|
@@ -15,6 +29,21 @@ export interface BridgeConfig {
|
|
|
15
29
|
wakeRules: {
|
|
16
30
|
priorities: string[];
|
|
17
31
|
} | null;
|
|
32
|
+
projects: Record<string, ProjectLink>;
|
|
33
|
+
/**
|
|
34
|
+
* Default LLM provider key for agents (e.g. an opencode-go API key).
|
|
35
|
+
* Agents run the harness with this key via OPENCODE_API_KEY so their
|
|
36
|
+
* usage never touches the user's default opencode credentials. A
|
|
37
|
+
* per-agent `opencodeKey` overrides it. NEVER logged.
|
|
38
|
+
*/
|
|
39
|
+
opencodeKey?: string;
|
|
40
|
+
/**
|
|
41
|
+
* DeepSeek API key for chat replies (the lightweight chat model).
|
|
42
|
+
* Chat replies always use this key with deepseek:deepseek-chat at low
|
|
43
|
+
* settings, regardless of the agent's task model. Falls back to
|
|
44
|
+
* LLM_API_KEY / CHAT_LLM_API_KEY env vars.
|
|
45
|
+
*/
|
|
46
|
+
chatKey?: string;
|
|
18
47
|
}
|
|
19
48
|
export declare function configPath(): string;
|
|
20
49
|
export declare function defaultConfig(): BridgeConfig;
|
|
@@ -22,4 +51,78 @@ export declare function loadConfig(): BridgeConfig;
|
|
|
22
51
|
export declare function saveConfig(config: BridgeConfig): void;
|
|
23
52
|
/** Adds/updates an agent key entry (used by `connect` and `add-agent`). */
|
|
24
53
|
export declare function upsertAgent(agentId: string, apiKey: string): BridgeConfig;
|
|
54
|
+
export type PreflightResult = {
|
|
55
|
+
ok: true;
|
|
56
|
+
canonical: string;
|
|
57
|
+
} | {
|
|
58
|
+
ok: false;
|
|
59
|
+
reason: string;
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* Preflight a folder before linking it (the permission gate, IMP-6xx):
|
|
63
|
+
* must exist, be a directory, be readable AND writable by this user, and
|
|
64
|
+
* must not be a network location (UNC or mapped drive), OneDrive, or
|
|
65
|
+
* outside the user profile. The link command IS the permission grant - the
|
|
66
|
+
* agent never runs anywhere but linked folders.
|
|
67
|
+
*/
|
|
68
|
+
export declare function preflightFolder(rawPath: string): PreflightResult;
|
|
69
|
+
/** Links a project to a local folder (guard on by default). Returns the result. */
|
|
70
|
+
export declare function linkProject(projectId: string, path: string, guard?: boolean): PreflightResult & {
|
|
71
|
+
config?: BridgeConfig;
|
|
72
|
+
};
|
|
73
|
+
/** Removes a project link. */
|
|
74
|
+
export declare function unlinkProject(projectId: string): BridgeConfig;
|
|
75
|
+
/**
|
|
76
|
+
* Working folder for a project, or null when it is not linked (hard block -
|
|
77
|
+
* the caller must refuse the session and explain how to link it).
|
|
78
|
+
*/
|
|
79
|
+
export declare function projectCwd(projectId: string): string | null;
|
|
80
|
+
/** The exact command shown when a project is not linked (guard message). */
|
|
81
|
+
export declare function linkHint(projectId: string): string;
|
|
82
|
+
/**
|
|
83
|
+
* Sets the agent LLM provider key. Without `agentId` it is the GLOBAL
|
|
84
|
+
* default for every agent; with `agentId` it overrides that agent only.
|
|
85
|
+
* `null` clears it (global null falls back to the user's own credentials).
|
|
86
|
+
*/
|
|
87
|
+
export declare function setOpenCodeKey(key: string | null, agentId?: string): BridgeConfig;
|
|
88
|
+
/**
|
|
89
|
+
* Resolves the LLM provider key for an agent: per-agent override >
|
|
90
|
+
* global default > an already-set OPENCODE_API_KEY env (leave untouched) >
|
|
91
|
+
* none (opencode falls back to the user's auth.json). The key itself is
|
|
92
|
+
* NEVER logged - callers only ever log which source won.
|
|
93
|
+
*/
|
|
94
|
+
export declare function agentOpenCodeKey(agentId: string): string | null;
|
|
95
|
+
/**
|
|
96
|
+
* Sets the chat model API key (DeepSeek key for chat replies). Stored in
|
|
97
|
+
* config.json as `chatKey`. `null` clears it. Chat always uses this key
|
|
98
|
+
* with deepseek:deepseek-chat at low settings, regardless of agent model.
|
|
99
|
+
*/
|
|
100
|
+
export declare function setChatKey(key: string | null): BridgeConfig;
|
|
101
|
+
/**
|
|
102
|
+
* Resolves the chat model API key: config chatKey > CHAT_LLM_API_KEY env >
|
|
103
|
+
* LLM_API_KEY env > none.
|
|
104
|
+
*/
|
|
105
|
+
export declare function chatKey(): string | null;
|
|
25
106
|
export declare function msg(err: unknown): string;
|
|
107
|
+
/**
|
|
108
|
+
* Wires the TeamShare MCP server into opencode's config. Idempotent —
|
|
109
|
+
* skips if already wired. The entry is:
|
|
110
|
+
* mcp.teamshare = { type: "remote", url: "http://localhost:4000/api/mcp",
|
|
111
|
+
* headers: { "X-Api-Key": "<key>" } }
|
|
112
|
+
*
|
|
113
|
+
* Returns true if wired, false if already present.
|
|
114
|
+
*/
|
|
115
|
+
export declare function wireOpencodeMcp(apiKey: string): boolean;
|
|
116
|
+
/**
|
|
117
|
+
* Removes the TeamShare MCP entry from opencode's config.
|
|
118
|
+
* Returns true if removed, false if not present.
|
|
119
|
+
*/
|
|
120
|
+
export declare function unwireOpencodeMcp(): boolean;
|
|
121
|
+
/**
|
|
122
|
+
* Returns the current MCP wiring status for opencode.
|
|
123
|
+
*/
|
|
124
|
+
export declare function mcpStatus(): {
|
|
125
|
+
wired: boolean;
|
|
126
|
+
configPath: string | null;
|
|
127
|
+
entry?: unknown;
|
|
128
|
+
};
|