mosse-agent-bridge 0.1.4
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/attachments.d.ts +11 -0
- package/dist/attachments.js +30 -0
- package/dist/attachments.js.map +1 -0
- package/dist/claude.d.ts +9 -0
- package/dist/claude.js +42 -0
- package/dist/claude.js.map +1 -0
- package/dist/credentials.d.ts +24 -0
- package/dist/credentials.js +123 -0
- package/dist/credentials.js.map +1 -0
- package/dist/drivers/claude.d.ts +2 -0
- package/dist/drivers/claude.js +120 -0
- package/dist/drivers/claude.js.map +1 -0
- package/dist/drivers/env.d.ts +11 -0
- package/dist/drivers/env.js +34 -0
- package/dist/drivers/env.js.map +1 -0
- package/dist/drivers/index.d.ts +4 -0
- package/dist/drivers/index.js +12 -0
- package/dist/drivers/index.js.map +1 -0
- package/dist/drivers/resolve.d.ts +17 -0
- package/dist/drivers/resolve.js +81 -0
- package/dist/drivers/resolve.js.map +1 -0
- package/dist/drivers/stream-json.d.ts +18 -0
- package/dist/drivers/stream-json.js +61 -0
- package/dist/drivers/stream-json.js.map +1 -0
- package/dist/drivers/types.d.ts +43 -0
- package/dist/drivers/types.js +4 -0
- package/dist/drivers/types.js.map +1 -0
- package/dist/fs-exec.d.ts +15 -0
- package/dist/fs-exec.js +161 -0
- package/dist/fs-exec.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +395 -0
- package/dist/index.js.map +1 -0
- package/dist/memory.d.ts +16 -0
- package/dist/memory.js +47 -0
- package/dist/memory.js.map +1 -0
- package/dist/prompt.d.ts +5 -0
- package/dist/prompt.js +5 -0
- package/dist/prompt.js.map +1 -0
- package/package.json +36 -0
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/** 把工具调用压成一行人话摘要(读了哪个文件、跑了什么命令)。 */
|
|
2
|
+
export function summarizeTool(tool, input) {
|
|
3
|
+
const i = (input ?? {});
|
|
4
|
+
const s = (k) => (typeof i[k] === "string" ? i[k] : "");
|
|
5
|
+
switch (tool) {
|
|
6
|
+
case "Read":
|
|
7
|
+
case "Edit":
|
|
8
|
+
case "Write":
|
|
9
|
+
case "NotebookEdit":
|
|
10
|
+
return s("file_path") || s("notebook_path") || "";
|
|
11
|
+
case "Bash":
|
|
12
|
+
return s("command").slice(0, 200);
|
|
13
|
+
case "Glob":
|
|
14
|
+
case "Grep":
|
|
15
|
+
return s("pattern") || s("query") || "";
|
|
16
|
+
case "WebFetch":
|
|
17
|
+
return s("url");
|
|
18
|
+
case "WebSearch":
|
|
19
|
+
return s("query");
|
|
20
|
+
case "Task":
|
|
21
|
+
return s("description");
|
|
22
|
+
default:
|
|
23
|
+
return "";
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* 消费一条 stream-json 消息:更新 state(sessionId / 最终文本),返回要发出的事件。
|
|
28
|
+
* - system/init → 记 session_id
|
|
29
|
+
* - stream_event/content_block_delta/text_delta → text 事件
|
|
30
|
+
* - assistant 的 tool_use 块 → activity 事件
|
|
31
|
+
* - result success → 最终文本;result is_error → 抛错
|
|
32
|
+
*/
|
|
33
|
+
export function reduceMessage(m, state) {
|
|
34
|
+
const events = [];
|
|
35
|
+
if (m.type === "system" && m.subtype === "init" && m.session_id) {
|
|
36
|
+
state.sessionId = m.session_id;
|
|
37
|
+
}
|
|
38
|
+
if (m.type === "stream_event") {
|
|
39
|
+
const ev = m.event;
|
|
40
|
+
if (ev?.type === "content_block_delta" && ev.delta?.type === "text_delta") {
|
|
41
|
+
events.push({ type: "text", delta: ev.delta.text });
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
if (m.type === "assistant" && Array.isArray(m.message?.content)) {
|
|
45
|
+
for (const b of m.message.content) {
|
|
46
|
+
if (b?.type === "tool_use") {
|
|
47
|
+
events.push({ type: "activity", tool: b.name, summary: summarizeTool(b.name, b.input) });
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
if (m.type === "result") {
|
|
52
|
+
if (m.subtype === "success" && typeof m.result === "string") {
|
|
53
|
+
state.text = m.result;
|
|
54
|
+
}
|
|
55
|
+
else if (m.is_error) {
|
|
56
|
+
throw new Error(String(m.result ?? m.subtype ?? "claude code error"));
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return events;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=stream-json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream-json.js","sourceRoot":"","sources":["../../src/drivers/stream-json.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/** 一轮 agent 的输入。 */
|
|
2
|
+
export interface AgentTurn {
|
|
3
|
+
prompt: string;
|
|
4
|
+
/** 上一轮 session id,用于 resume;首轮为空。 */
|
|
5
|
+
sessionId?: string | null;
|
|
6
|
+
/** 该 agent 的私有目录(= cwd = 记忆区)。 */
|
|
7
|
+
cwd: string;
|
|
8
|
+
model?: string | null;
|
|
9
|
+
/** 追加到 CLI 原生系统提示后的内容(Runtime Context + 记忆规约)。 */
|
|
10
|
+
systemPromptAppend?: string;
|
|
11
|
+
/** 用户为该 agent 注入的环境变量(白名单,会透传给子进程)。 */
|
|
12
|
+
env?: Record<string, string>;
|
|
13
|
+
/** MCP 配置 JSON 字符串(如知识服务);传则加 `--mcp-config <json>`。 */
|
|
14
|
+
mcpConfig?: string;
|
|
15
|
+
}
|
|
16
|
+
/** 流式事件:文本增量 / 工具活动。 */
|
|
17
|
+
export type CcEvent = {
|
|
18
|
+
type: "text";
|
|
19
|
+
delta: string;
|
|
20
|
+
} | {
|
|
21
|
+
type: "activity";
|
|
22
|
+
tool: string;
|
|
23
|
+
summary: string;
|
|
24
|
+
};
|
|
25
|
+
export interface TurnResult {
|
|
26
|
+
text: string;
|
|
27
|
+
/** 本轮 session id(供下轮 resume);无则 null。 */
|
|
28
|
+
sessionId: string | null;
|
|
29
|
+
}
|
|
30
|
+
export interface DriverInfo {
|
|
31
|
+
/** moss runtime id,如 "local:claude-code"。 */
|
|
32
|
+
id: string;
|
|
33
|
+
/** 解析出的绝对可执行路径(M2 起带绝对路径)。 */
|
|
34
|
+
bin: string;
|
|
35
|
+
version?: string;
|
|
36
|
+
}
|
|
37
|
+
export interface CliDriver {
|
|
38
|
+
id: string;
|
|
39
|
+
/** 本机是否可用 + 解析路径;不可用返回 null(供 detectRuntimes 与 run 共用)。 */
|
|
40
|
+
detect(): Promise<DriverInfo | null>;
|
|
41
|
+
/** 跑一轮,流式回调事件,最终返回全文 + sessionId。 */
|
|
42
|
+
run(turn: AgentTurn, onEvent: (ev: CcEvent) => void): Promise<TurnResult>;
|
|
43
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/drivers/types.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,yCAAyC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export type FsOp = "read_file" | "write_file" | "edit_file" | "list_files" | "bash";
|
|
2
|
+
export interface FsArgs {
|
|
3
|
+
path?: string;
|
|
4
|
+
content?: string;
|
|
5
|
+
old_string?: string;
|
|
6
|
+
new_string?: string;
|
|
7
|
+
glob?: string;
|
|
8
|
+
command?: string;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* 执行一个文件系统操作,返回作为工具结果的文本。失败(如文件不存在、edit 不唯一)抛错,
|
|
12
|
+
* 由上层(daemon 消息处理)转成 `fs_result { ok:false, error }` 回给服务端,再塞给模型自愈。
|
|
13
|
+
* bash 的非零退出**不抛**,作为正常输出返回(同真实 shell)。
|
|
14
|
+
*/
|
|
15
|
+
export declare function executeFsOp(cwd: string, op: FsOp, args: FsArgs): Promise<string>;
|
package/dist/fs-exec.js
ADDED
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
// daemon 本地文件系统执行器(M4):api:* agent 的工具循环在服务端编排,每次工具调用作为
|
|
2
|
+
// 一条 fs_op RPC 下发到这里在本机执行。与 local:claude-code 的 Claude Code 自带工具能力对齐。
|
|
3
|
+
//
|
|
4
|
+
// 工作目录(cwd)只是**默认起点**(相对路径基准 / 搜文件方便),**不是围栏**:绝对路径与 ~ 可达整机,
|
|
5
|
+
// agent 常需改 cwd 之外的文件(如 ~/.config)。安全靠真实机制(自己的机器 + git),不靠路径夹紧。
|
|
6
|
+
// 见 docs/agent-runtime-m4-remote-execution.md §5 与记忆 working-dir-is-convenience-not-confinement。
|
|
7
|
+
import { exec } from "node:child_process";
|
|
8
|
+
import { mkdir, readFile, readdir, writeFile } from "node:fs/promises";
|
|
9
|
+
import { homedir } from "node:os";
|
|
10
|
+
import { dirname, isAbsolute, join, resolve, sep } from "node:path";
|
|
11
|
+
import { buildSpawnEnv } from "./drivers/env.js";
|
|
12
|
+
/** 单次读取/输出文本上限(防把整轮上下文打爆;超出截断并标注)。 */
|
|
13
|
+
const MAX_TEXT = 100_000;
|
|
14
|
+
/** bash 默认超时(可被慢命令需要;比 fs op 宽)。 */
|
|
15
|
+
const BASH_TIMEOUT_MS = 120_000;
|
|
16
|
+
const BASH_MAX_BUFFER = 10 * 1024 * 1024;
|
|
17
|
+
/** 解析路径:`~`/`~/x` 展开到 home;相对路径基于 cwd;绝对路径原样(不夹紧)。 */
|
|
18
|
+
function resolvePath(cwd, p) {
|
|
19
|
+
if (p === "~" || p.startsWith("~/"))
|
|
20
|
+
return join(homedir(), p.slice(1));
|
|
21
|
+
return isAbsolute(p) ? p : resolve(cwd, p);
|
|
22
|
+
}
|
|
23
|
+
function clip(s) {
|
|
24
|
+
return s.length > MAX_TEXT
|
|
25
|
+
? `${s.slice(0, MAX_TEXT)}\n…[truncated ${s.length - MAX_TEXT} chars]`
|
|
26
|
+
: s;
|
|
27
|
+
}
|
|
28
|
+
function need(args, key) {
|
|
29
|
+
const v = args[key];
|
|
30
|
+
if (v === undefined || v === null)
|
|
31
|
+
throw new Error(`missing required arg: ${key}`);
|
|
32
|
+
return v;
|
|
33
|
+
}
|
|
34
|
+
/** glob → RegExp(支持 `**`、`*`、`?`;匹配相对 cwd 的 posix 风格路径)。 */
|
|
35
|
+
function globToRegExp(glob) {
|
|
36
|
+
let re = "";
|
|
37
|
+
for (let i = 0; i < glob.length; i++) {
|
|
38
|
+
const c = glob[i];
|
|
39
|
+
if (c === undefined)
|
|
40
|
+
continue;
|
|
41
|
+
if (c === "*") {
|
|
42
|
+
if (glob[i + 1] === "*") {
|
|
43
|
+
re += ".*";
|
|
44
|
+
i++;
|
|
45
|
+
if (glob[i + 1] === "/")
|
|
46
|
+
i++; // `**/` 也匹配零层
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
re += "[^/]*";
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
else if (c === "?") {
|
|
53
|
+
re += "[^/]";
|
|
54
|
+
}
|
|
55
|
+
else if (".+^${}()|[]\\".includes(c)) {
|
|
56
|
+
re += `\\${c}`;
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
re += c;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return new RegExp(`^${re}$`);
|
|
63
|
+
}
|
|
64
|
+
/** 递归列出 base 下所有文件的相对路径(posix 分隔),用于 glob 匹配。 */
|
|
65
|
+
async function walk(base, rel = "") {
|
|
66
|
+
const out = [];
|
|
67
|
+
const entries = await readdir(join(base, rel), { withFileTypes: true }).catch(() => []);
|
|
68
|
+
for (const e of entries) {
|
|
69
|
+
const childRel = rel ? `${rel}/${e.name}` : e.name;
|
|
70
|
+
if (e.isDirectory()) {
|
|
71
|
+
if (e.name === "node_modules" || e.name === ".git")
|
|
72
|
+
continue; // 别淹没结果
|
|
73
|
+
out.push(...(await walk(base, childRel)));
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
out.push(childRel);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return out;
|
|
80
|
+
}
|
|
81
|
+
async function listFiles(cwd, args) {
|
|
82
|
+
const base = args.path ? resolvePath(cwd, args.path) : cwd;
|
|
83
|
+
if (args.glob) {
|
|
84
|
+
const re = globToRegExp(args.glob);
|
|
85
|
+
const all = await walk(base);
|
|
86
|
+
const hits = all.filter((p) => re.test(p)).sort();
|
|
87
|
+
// 还原成平台分隔展示(测试用 [/\\] 兼容)。
|
|
88
|
+
return hits.length ? hits.map((p) => p.split("/").join(sep)).join("\n") : "(no matches)";
|
|
89
|
+
}
|
|
90
|
+
const entries = await readdir(base, { withFileTypes: true });
|
|
91
|
+
return (entries
|
|
92
|
+
.map((e) => (e.isDirectory() ? `${e.name}/` : e.name))
|
|
93
|
+
.sort()
|
|
94
|
+
.join("\n") || "(empty)");
|
|
95
|
+
}
|
|
96
|
+
async function editFile(cwd, args) {
|
|
97
|
+
const path = resolvePath(cwd, need(args, "path"));
|
|
98
|
+
const oldStr = need(args, "old_string");
|
|
99
|
+
const newStr = args.new_string ?? "";
|
|
100
|
+
const before = await readFile(path, "utf8");
|
|
101
|
+
const parts = before.split(oldStr);
|
|
102
|
+
const count = parts.length - 1;
|
|
103
|
+
if (count === 0)
|
|
104
|
+
throw new Error(`edit_file: old_string not found in ${path}`);
|
|
105
|
+
if (count > 1)
|
|
106
|
+
throw new Error(`edit_file: old_string is not unique (${count} matches) in ${path}; add context to disambiguate`);
|
|
107
|
+
await writeFile(path, parts.join(newStr));
|
|
108
|
+
return `Edited ${path}`;
|
|
109
|
+
}
|
|
110
|
+
async function runBash(cwd, command) {
|
|
111
|
+
const env = buildSpawnEnv({ base: process.env, nodeDir: dirname(process.execPath) });
|
|
112
|
+
return new Promise((resolveP) => {
|
|
113
|
+
exec(command, { cwd, env, timeout: BASH_TIMEOUT_MS, maxBuffer: BASH_MAX_BUFFER, shell: "/bin/sh" }, (err, stdout, stderr) => {
|
|
114
|
+
// 退出码:非零是正常信息(让模型看见命令失败),不当异常抛。
|
|
115
|
+
const e = err;
|
|
116
|
+
let code = 0;
|
|
117
|
+
if (typeof e?.code === "number")
|
|
118
|
+
code = e.code;
|
|
119
|
+
else if (e)
|
|
120
|
+
code = 1;
|
|
121
|
+
const killed = e?.killed ? " (killed: timeout)" : "";
|
|
122
|
+
const out = String(stdout ?? "");
|
|
123
|
+
const errOut = String(stderr ?? "");
|
|
124
|
+
const parts = [`exit code: ${code}${killed}`];
|
|
125
|
+
if (out)
|
|
126
|
+
parts.push(`--- stdout ---\n${clip(out)}`);
|
|
127
|
+
if (errOut)
|
|
128
|
+
parts.push(`--- stderr ---\n${clip(errOut)}`);
|
|
129
|
+
resolveP(parts.join("\n"));
|
|
130
|
+
});
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* 执行一个文件系统操作,返回作为工具结果的文本。失败(如文件不存在、edit 不唯一)抛错,
|
|
135
|
+
* 由上层(daemon 消息处理)转成 `fs_result { ok:false, error }` 回给服务端,再塞给模型自愈。
|
|
136
|
+
* bash 的非零退出**不抛**,作为正常输出返回(同真实 shell)。
|
|
137
|
+
*/
|
|
138
|
+
export async function executeFsOp(cwd, op, args) {
|
|
139
|
+
switch (op) {
|
|
140
|
+
case "read_file": {
|
|
141
|
+
const path = resolvePath(cwd, need(args, "path"));
|
|
142
|
+
return clip(await readFile(path, "utf8"));
|
|
143
|
+
}
|
|
144
|
+
case "write_file": {
|
|
145
|
+
const path = resolvePath(cwd, need(args, "path"));
|
|
146
|
+
await mkdir(dirname(path), { recursive: true });
|
|
147
|
+
const content = args.content ?? "";
|
|
148
|
+
await writeFile(path, content);
|
|
149
|
+
return `Wrote ${Buffer.byteLength(content)} bytes to ${path}`;
|
|
150
|
+
}
|
|
151
|
+
case "edit_file":
|
|
152
|
+
return editFile(cwd, args);
|
|
153
|
+
case "list_files":
|
|
154
|
+
return listFiles(cwd, args);
|
|
155
|
+
case "bash":
|
|
156
|
+
return runBash(cwd, need(args, "command"));
|
|
157
|
+
default:
|
|
158
|
+
throw new Error(`unknown fs op: ${op}`);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
//# sourceMappingURL=fs-exec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fs-exec.js","sourceRoot":"","sources":["../src/fs-exec.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED