@clawtrail/context-graph-openclaw 0.7.5 → 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/README.md +64 -56
- package/dist/OpenClawAdapter.d.ts +6 -6
- package/dist/OpenClawAdapter.d.ts.map +1 -1
- package/dist/OpenClawAdapter.js +46 -36
- package/dist/OpenClawAdapter.js.map +1 -1
- package/dist/detectors/BuildDetector.js +11 -11
- package/dist/detectors/HttpDetector.d.ts.map +1 -1
- package/dist/detectors/HttpDetector.js +20 -17
- package/dist/detectors/HttpDetector.js.map +1 -1
- package/dist/detectors/TestDetector.js +9 -9
- package/dist/hooks/lifecycle.d.ts +1 -1
- package/dist/hooks/lifecycle.js +4 -4
- package/dist/hooks/llmOutput.d.ts +2 -2
- package/dist/hooks/llmOutput.js +5 -5
- package/dist/hooks/toolCall.d.ts +3 -3
- package/dist/hooks/toolCall.d.ts.map +1 -1
- package/dist/hooks/toolCall.js +4 -4
- package/dist/hooks/toolCall.js.map +1 -1
- package/dist/index.d.ts +29 -29
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -18
- package/dist/index.js.map +1 -1
- package/dist/mappers/MapperRegistry.d.ts +4 -0
- package/dist/mappers/MapperRegistry.d.ts.map +1 -1
- package/dist/mappers/MapperRegistry.js +8 -0
- package/dist/mappers/MapperRegistry.js.map +1 -1
- package/dist/mappers/browser.d.ts +11 -0
- package/dist/mappers/browser.d.ts.map +1 -0
- package/dist/mappers/browser.js +66 -0
- package/dist/mappers/browser.js.map +1 -0
- package/dist/mappers/document.d.ts +7 -0
- package/dist/mappers/document.d.ts.map +1 -0
- package/dist/mappers/document.js +49 -0
- package/dist/mappers/document.js.map +1 -0
- package/dist/mappers/fallback.d.ts +1 -1
- package/dist/mappers/fallback.js +3 -3
- package/dist/mappers/fs.d.ts +1 -1
- package/dist/mappers/fs.d.ts.map +1 -1
- package/dist/mappers/fs.js +11 -11
- package/dist/mappers/fs.js.map +1 -1
- package/dist/mappers/git.d.ts +1 -1
- package/dist/mappers/git.d.ts.map +1 -1
- package/dist/mappers/git.js +21 -14
- package/dist/mappers/git.js.map +1 -1
- package/dist/mappers/message.d.ts +11 -0
- package/dist/mappers/message.d.ts.map +1 -0
- package/dist/mappers/message.js +72 -0
- package/dist/mappers/message.js.map +1 -0
- package/dist/mappers/session.d.ts +12 -0
- package/dist/mappers/session.d.ts.map +1 -0
- package/dist/mappers/session.js +71 -0
- package/dist/mappers/session.js.map +1 -0
- package/dist/mappers/shell.d.ts +4 -4
- package/dist/mappers/shell.d.ts.map +1 -1
- package/dist/mappers/shell.js +17 -15
- package/dist/mappers/shell.js.map +1 -1
- package/dist/mappers/web.d.ts +11 -0
- package/dist/mappers/web.d.ts.map +1 -0
- package/dist/mappers/web.js +89 -0
- package/dist/mappers/web.js.map +1 -0
- package/dist/register.d.ts.map +1 -1
- package/dist/register.js +123 -4
- package/dist/register.js.map +1 -1
- package/dist/rules/openclaw-rules.d.ts +7 -1
- package/dist/rules/openclaw-rules.d.ts.map +1 -1
- package/dist/rules/openclaw-rules.js +321 -120
- package/dist/rules/openclaw-rules.js.map +1 -1
- package/dist/tools/status.d.ts +1 -1
- package/dist/tools/status.js +3 -3
- package/dist/tools/summarize.d.ts +1 -1
- package/dist/tools/summarize.d.ts.map +1 -1
- package/dist/tools/summarize.js +5 -5
- package/dist/tools/summarize.js.map +1 -1
- package/dist/util/hash.d.ts +1 -1
- package/dist/util/hash.d.ts.map +1 -1
- package/dist/util/hash.js +52 -43
- package/dist/util/hash.js.map +1 -1
- package/openclaw.plugin.json +5 -1
- package/package.json +6 -4
package/dist/mappers/fs.js
CHANGED
|
@@ -2,24 +2,24 @@
|
|
|
2
2
|
* Filesystem mapper — maps read/write/edit tool calls to FILE_READ/FILE_WRITE events.
|
|
3
3
|
* File contents are NEVER logged — only hashes, extensions, and byte counts.
|
|
4
4
|
*/
|
|
5
|
-
import { extname, basename } from
|
|
6
|
-
import { sha256, mimeFromExtension } from
|
|
5
|
+
import { extname, basename } from "node:path";
|
|
6
|
+
import { sha256, mimeFromExtension } from "../util/hash.js";
|
|
7
7
|
/** Safely coerce unknown values to string */
|
|
8
8
|
function str(val) {
|
|
9
|
-
if (typeof val ===
|
|
9
|
+
if (typeof val === "string")
|
|
10
10
|
return val;
|
|
11
11
|
if (Array.isArray(val))
|
|
12
|
-
return val.join(
|
|
13
|
-
return val == null ?
|
|
12
|
+
return val.join(" ");
|
|
13
|
+
return val == null ? "" : String(val);
|
|
14
14
|
}
|
|
15
15
|
export class FsMapper {
|
|
16
|
-
toolNames = [
|
|
16
|
+
toolNames = ["read", "write", "edit"];
|
|
17
17
|
mapStart(toolName, params) {
|
|
18
18
|
const filePath = str(params.path || params.file);
|
|
19
19
|
const ext = extname(filePath);
|
|
20
|
-
const isRead = toolName ===
|
|
20
|
+
const isRead = toolName === "read";
|
|
21
21
|
return {
|
|
22
|
-
type: isRead ?
|
|
22
|
+
type: isRead ? "FILE_READ" : "FILE_WRITE",
|
|
23
23
|
data: {
|
|
24
24
|
path_hash: sha256(filePath),
|
|
25
25
|
path_extension: ext || undefined,
|
|
@@ -30,10 +30,10 @@ export class FsMapper {
|
|
|
30
30
|
mapEnd(toolName, params, result, _error) {
|
|
31
31
|
const filePath = str(params.path || params.file);
|
|
32
32
|
const ext = extname(filePath);
|
|
33
|
-
if (toolName ===
|
|
33
|
+
if (toolName === "read") {
|
|
34
34
|
const content = str(result?.content);
|
|
35
35
|
return {
|
|
36
|
-
type:
|
|
36
|
+
type: "FILE_READ",
|
|
37
37
|
data: {
|
|
38
38
|
path_hash: sha256(filePath),
|
|
39
39
|
path_extension: ext || undefined,
|
|
@@ -47,7 +47,7 @@ export class FsMapper {
|
|
|
47
47
|
const diff = str(result?.diff || result?.content);
|
|
48
48
|
const bytesWritten = result?.bytesWritten ?? diff.length ?? 0;
|
|
49
49
|
return {
|
|
50
|
-
type:
|
|
50
|
+
type: "FILE_WRITE",
|
|
51
51
|
data: {
|
|
52
52
|
path_hash: sha256(filePath),
|
|
53
53
|
path_extension: ext || undefined,
|
package/dist/mappers/fs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/mappers/fs.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE9C,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAE5D,6CAA6C;AAC7C,SAAS,GAAG,CAAC,GAAY;IACvB,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC;IACxC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7C,OAAO,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,OAAO,QAAQ;IACnB,SAAS,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAEtC,QAAQ,CAAC,QAAgB,EAAE,MAA+B;QACxD,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC9B,MAAM,MAAM,GAAG,QAAQ,KAAK,MAAM,CAAC;QAEnC,OAAO;YACL,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY;YACzC,IAAI,EAAE;gBACJ,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC;gBAC3B,cAAc,EAAE,GAAG,IAAI,SAAS;gBAChC,aAAa,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,SAAS;aAC/C;SACF,CAAC;IACJ,CAAC;IAED,MAAM,CACJ,QAAgB,EAChB,MAA+B,EAC/B,MAAsC,EACtC,MAAc;QAEd,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QAE9B,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACrC,OAAO;gBACL,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE;oBACJ,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC;oBAC3B,cAAc,EAAE,GAAG,IAAI,SAAS;oBAChC,aAAa,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,SAAS;oBAC9C,UAAU,EAAE,OAAO,CAAC,MAAM;oBAC1B,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;iBAC/C;aACF,CAAC;QACJ,CAAC;QAED,gBAAgB;QAChB,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,EAAE,IAAI,IAAI,MAAM,EAAE,OAAO,CAAC,CAAC;QAClD,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/mappers/fs.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE9C,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAE5D,6CAA6C;AAC7C,SAAS,GAAG,CAAC,GAAY;IACvB,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC;IACxC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7C,OAAO,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,OAAO,QAAQ;IACnB,SAAS,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAEtC,QAAQ,CAAC,QAAgB,EAAE,MAA+B;QACxD,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC9B,MAAM,MAAM,GAAG,QAAQ,KAAK,MAAM,CAAC;QAEnC,OAAO;YACL,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY;YACzC,IAAI,EAAE;gBACJ,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC;gBAC3B,cAAc,EAAE,GAAG,IAAI,SAAS;gBAChC,aAAa,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,SAAS;aAC/C;SACF,CAAC;IACJ,CAAC;IAED,MAAM,CACJ,QAAgB,EAChB,MAA+B,EAC/B,MAAsC,EACtC,MAAc;QAEd,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QAE9B,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACrC,OAAO;gBACL,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE;oBACJ,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC;oBAC3B,cAAc,EAAE,GAAG,IAAI,SAAS;oBAChC,aAAa,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,SAAS;oBAC9C,UAAU,EAAE,OAAO,CAAC,MAAM;oBAC1B,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;iBAC/C;aACF,CAAC;QACJ,CAAC;QAED,gBAAgB;QAChB,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,EAAE,IAAI,IAAI,MAAM,EAAE,OAAO,CAAC,CAAC;QAClD,MAAM,YAAY,GAAI,MAAM,EAAE,YAAuB,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;QAE1E,OAAO;YACL,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE;gBACJ,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC;gBAC3B,cAAc,EAAE,GAAG,IAAI,SAAS;gBAChC,aAAa,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,SAAS;gBAC9C,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC;gBACvB,aAAa,EAAE,YAAY;gBAC3B,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;aAC/C;SACF,CAAC;IACJ,CAAC;CACF"}
|
package/dist/mappers/git.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Git mapper — maps git tool calls to GIT_DIFF / GIT_COMMIT / generic TOOL_CALL.
|
|
3
3
|
*/
|
|
4
|
-
import type { EventMapper, MappedEvent } from
|
|
4
|
+
import type { EventMapper, MappedEvent } from "./MapperRegistry.js";
|
|
5
5
|
export declare class GitMapper implements EventMapper {
|
|
6
6
|
toolNames: string[];
|
|
7
7
|
mapStart(toolName: string, params: Record<string, unknown>): MappedEvent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/mappers/git.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGpE,qBAAa,SAAU,YAAW,WAAW;IAC3C,SAAS,WAAW;IAEpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,WAAW;
|
|
1
|
+
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/mappers/git.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGpE,qBAAa,SAAU,YAAW,WAAW;IAC3C,SAAS,WAAW;IAEpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,WAAW;IAgBxE,MAAM,CACJ,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EACtC,MAAM,CAAC,EAAE,KAAK,GACb,WAAW;CAwCf"}
|
package/dist/mappers/git.js
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
|
-
import { sha256, hashArgs } from
|
|
1
|
+
import { sha256, hashArgs } from "../util/hash.js";
|
|
2
2
|
export class GitMapper {
|
|
3
|
-
toolNames = [
|
|
3
|
+
toolNames = ["git"];
|
|
4
4
|
mapStart(toolName, params) {
|
|
5
5
|
const subcommand = extractGitSubcommand(params);
|
|
6
6
|
return {
|
|
7
|
-
type: subcommand ===
|
|
7
|
+
type: subcommand === "diff"
|
|
8
|
+
? "GIT_DIFF"
|
|
9
|
+
: subcommand === "commit"
|
|
10
|
+
? "GIT_COMMIT"
|
|
11
|
+
: "TOOL_CALL",
|
|
8
12
|
data: {
|
|
9
13
|
tool: `git:${subcommand}`,
|
|
10
14
|
args_hash: hashArgs(params),
|
|
@@ -13,11 +17,11 @@ export class GitMapper {
|
|
|
13
17
|
}
|
|
14
18
|
mapEnd(toolName, params, result, _error) {
|
|
15
19
|
const subcommand = extractGitSubcommand(params);
|
|
16
|
-
const output = (result?.output || result?.stdout ||
|
|
17
|
-
if (subcommand ===
|
|
20
|
+
const output = (result?.output || result?.stdout || "");
|
|
21
|
+
if (subcommand === "diff") {
|
|
18
22
|
const stat = parseDiffStat(output);
|
|
19
23
|
return {
|
|
20
|
-
type:
|
|
24
|
+
type: "GIT_DIFF",
|
|
21
25
|
data: {
|
|
22
26
|
diff_hash: sha256(output),
|
|
23
27
|
files_changed: stat.filesChanged,
|
|
@@ -26,11 +30,11 @@ export class GitMapper {
|
|
|
26
30
|
},
|
|
27
31
|
};
|
|
28
32
|
}
|
|
29
|
-
if (subcommand ===
|
|
33
|
+
if (subcommand === "commit") {
|
|
30
34
|
const commitHash = parseCommitHash(output);
|
|
31
|
-
const message = (params.message || params.m ||
|
|
35
|
+
const message = (params.message || params.m || "");
|
|
32
36
|
return {
|
|
33
|
-
type:
|
|
37
|
+
type: "GIT_COMMIT",
|
|
34
38
|
data: {
|
|
35
39
|
commit_hash: commitHash,
|
|
36
40
|
message_hash: sha256(message),
|
|
@@ -40,7 +44,7 @@ export class GitMapper {
|
|
|
40
44
|
}
|
|
41
45
|
// Other git subcommands
|
|
42
46
|
return {
|
|
43
|
-
type:
|
|
47
|
+
type: "TOOL_CALL",
|
|
44
48
|
data: {
|
|
45
49
|
tool: `git:${subcommand}`,
|
|
46
50
|
args_hash: hashArgs(params),
|
|
@@ -52,12 +56,15 @@ export class GitMapper {
|
|
|
52
56
|
// ── Helpers ────────────────────────────────────────────────────────
|
|
53
57
|
function extractGitSubcommand(params) {
|
|
54
58
|
// Support multiple param shapes
|
|
55
|
-
const cmd = (params.command ||
|
|
59
|
+
const cmd = (params.command ||
|
|
60
|
+
params.cmd ||
|
|
61
|
+
params.subcommand ||
|
|
62
|
+
"");
|
|
56
63
|
const parts = cmd.trim().split(/\s+/);
|
|
57
64
|
// If first part is "git", take the second
|
|
58
|
-
if (parts[0] ===
|
|
65
|
+
if (parts[0] === "git" && parts.length > 1)
|
|
59
66
|
return parts[1];
|
|
60
|
-
return parts[0] ||
|
|
67
|
+
return parts[0] || "unknown";
|
|
61
68
|
}
|
|
62
69
|
function parseDiffStat(output) {
|
|
63
70
|
// "3 files changed, 42 insertions(+), 15 deletions(-)"
|
|
@@ -74,6 +81,6 @@ function parseDiffStat(output) {
|
|
|
74
81
|
function parseCommitHash(output) {
|
|
75
82
|
// "[main abc1234] commit message"
|
|
76
83
|
const match = output.match(/\[[\w/.-]+\s+([a-f0-9]+)\]/);
|
|
77
|
-
return match?.[1] ||
|
|
84
|
+
return match?.[1] || "";
|
|
78
85
|
}
|
|
79
86
|
//# sourceMappingURL=git.js.map
|
package/dist/mappers/git.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/mappers/git.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEnD,MAAM,OAAO,SAAS;IACpB,SAAS,GAAG,CAAC,KAAK,CAAC,CAAC;IAEpB,QAAQ,CAAC,QAAgB,EAAE,MAA+B;QACxD,MAAM,UAAU,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAChD,OAAO;YACL,IAAI,
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/mappers/git.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Message mapper — maps message tool calls to MESSAGE_SEND events.
|
|
3
|
+
* Privacy: No raw content, no recipient IDs, no channel names.
|
|
4
|
+
*/
|
|
5
|
+
import type { EventMapper, MappedEvent } from "./MapperRegistry.js";
|
|
6
|
+
export declare class MessageMapper implements EventMapper {
|
|
7
|
+
toolNames: string[];
|
|
8
|
+
mapStart(_toolName: string, params: Record<string, unknown>): MappedEvent;
|
|
9
|
+
mapEnd(_toolName: string, params: Record<string, unknown>, result: Record<string, unknown> | null, _error?: Error): MappedEvent;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=message.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/mappers/message.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAmCpE,qBAAa,aAAc,YAAW,WAAW;IAC/C,SAAS,WAAe;IAExB,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,WAAW;IAazE,MAAM,CACJ,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EACtC,MAAM,CAAC,EAAE,KAAK,GACb,WAAW;CAoBf"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { sha256 } from "../util/hash.js";
|
|
2
|
+
/** Safely coerce unknown values to string */
|
|
3
|
+
function str(val) {
|
|
4
|
+
if (typeof val === "string")
|
|
5
|
+
return val;
|
|
6
|
+
if (Array.isArray(val))
|
|
7
|
+
return val.join(" ");
|
|
8
|
+
return val == null ? "" : String(val);
|
|
9
|
+
}
|
|
10
|
+
/** Known messaging platforms */
|
|
11
|
+
const KNOWN_CHANNELS = new Set([
|
|
12
|
+
"discord",
|
|
13
|
+
"slack",
|
|
14
|
+
"telegram",
|
|
15
|
+
"whatsapp",
|
|
16
|
+
"signal",
|
|
17
|
+
"imessage",
|
|
18
|
+
"matrix",
|
|
19
|
+
"teams",
|
|
20
|
+
"irc",
|
|
21
|
+
"google_chat",
|
|
22
|
+
]);
|
|
23
|
+
/** Classify the message action */
|
|
24
|
+
function classifyAction(action) {
|
|
25
|
+
if (["send", ""].includes(action))
|
|
26
|
+
return "send";
|
|
27
|
+
if (["edit", "delete"].includes(action))
|
|
28
|
+
return action;
|
|
29
|
+
if (["react", "reactions"].includes(action))
|
|
30
|
+
return "react";
|
|
31
|
+
if (action.startsWith("thread"))
|
|
32
|
+
return "thread";
|
|
33
|
+
if (["pin", "unpin", "list-pins"].includes(action))
|
|
34
|
+
return "pin";
|
|
35
|
+
if (["search"].includes(action))
|
|
36
|
+
return "search";
|
|
37
|
+
return action;
|
|
38
|
+
}
|
|
39
|
+
export class MessageMapper {
|
|
40
|
+
toolNames = ["message"];
|
|
41
|
+
mapStart(_toolName, params) {
|
|
42
|
+
const action = str(params.action || "send");
|
|
43
|
+
const channel = str(params.channel || params.platform || "");
|
|
44
|
+
return {
|
|
45
|
+
type: "MESSAGE_SEND",
|
|
46
|
+
data: {
|
|
47
|
+
action: classifyAction(action),
|
|
48
|
+
channel: KNOWN_CHANNELS.has(channel) ? channel : undefined,
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
mapEnd(_toolName, params, result, _error) {
|
|
53
|
+
const action = str(params.action || "send");
|
|
54
|
+
const channel = str(params.channel || params.platform || "");
|
|
55
|
+
const content = str(params.text || params.message || params.content || "");
|
|
56
|
+
const media = params.media || params.attachment || params.file;
|
|
57
|
+
return {
|
|
58
|
+
type: "MESSAGE_SEND",
|
|
59
|
+
data: {
|
|
60
|
+
action: classifyAction(action),
|
|
61
|
+
channel: KNOWN_CHANNELS.has(channel) ? channel : undefined,
|
|
62
|
+
message_hash: content ? sha256(content) : undefined,
|
|
63
|
+
message_length: content.length || undefined,
|
|
64
|
+
has_attachment: media != null,
|
|
65
|
+
message_id_hash: result?.messageId
|
|
66
|
+
? sha256(str(result.messageId))
|
|
67
|
+
: undefined,
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=message.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/mappers/message.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session mapper — maps multi-agent coordination tools to MULTI_AGENT_ACTION events.
|
|
3
|
+
* Covers sessions_list, sessions_history, sessions_send, sessions_spawn,
|
|
4
|
+
* session_status, and agents_list.
|
|
5
|
+
*/
|
|
6
|
+
import type { EventMapper, MappedEvent } from "./MapperRegistry.js";
|
|
7
|
+
export declare class SessionMapper implements EventMapper {
|
|
8
|
+
toolNames: string[];
|
|
9
|
+
mapStart(toolName: string, params: Record<string, unknown>): MappedEvent;
|
|
10
|
+
mapEnd(toolName: string, params: Record<string, unknown>, result: Record<string, unknown> | null, _error?: Error): MappedEvent;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/mappers/session.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AA8BpE,qBAAa,aAAc,YAAW,WAAW;IAC/C,SAAS,WAOP;IAEF,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,WAAW;IAcxE,MAAM,CACJ,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EACtC,MAAM,CAAC,EAAE,KAAK,GACb,WAAW;CAwBf"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { sha256 } from "../util/hash.js";
|
|
2
|
+
/** Safely coerce unknown values to string */
|
|
3
|
+
function str(val) {
|
|
4
|
+
if (typeof val === "string")
|
|
5
|
+
return val;
|
|
6
|
+
if (Array.isArray(val))
|
|
7
|
+
return val.join(" ");
|
|
8
|
+
return val == null ? "" : String(val);
|
|
9
|
+
}
|
|
10
|
+
/** Map tool names to action verbs */
|
|
11
|
+
function actionFromTool(toolName) {
|
|
12
|
+
switch (toolName) {
|
|
13
|
+
case "sessions_list":
|
|
14
|
+
return "list";
|
|
15
|
+
case "sessions_history":
|
|
16
|
+
return "history";
|
|
17
|
+
case "sessions_send":
|
|
18
|
+
return "send";
|
|
19
|
+
case "sessions_spawn":
|
|
20
|
+
return "spawn";
|
|
21
|
+
case "session_status":
|
|
22
|
+
return "status";
|
|
23
|
+
case "agents_list":
|
|
24
|
+
return "agents_list";
|
|
25
|
+
default:
|
|
26
|
+
return toolName;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
export class SessionMapper {
|
|
30
|
+
toolNames = [
|
|
31
|
+
"sessions_list",
|
|
32
|
+
"sessions_history",
|
|
33
|
+
"sessions_send",
|
|
34
|
+
"sessions_spawn",
|
|
35
|
+
"session_status",
|
|
36
|
+
"agents_list",
|
|
37
|
+
];
|
|
38
|
+
mapStart(toolName, params) {
|
|
39
|
+
const action = actionFromTool(toolName);
|
|
40
|
+
const target = str(params.sessionKey || params.sessionId || params.agentId || "");
|
|
41
|
+
return {
|
|
42
|
+
type: "MULTI_AGENT_ACTION",
|
|
43
|
+
data: {
|
|
44
|
+
action,
|
|
45
|
+
target_hash: target ? sha256(target) : undefined,
|
|
46
|
+
},
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
mapEnd(toolName, params, result, _error) {
|
|
50
|
+
const action = actionFromTool(toolName);
|
|
51
|
+
const target = str(params.sessionKey || params.sessionId || params.agentId || "");
|
|
52
|
+
// Extract counts from list-type results
|
|
53
|
+
const sessions = result?.sessions;
|
|
54
|
+
const sessionCount = Array.isArray(sessions) ? sessions.length : undefined;
|
|
55
|
+
const agents = result?.agents;
|
|
56
|
+
const agentCount = Array.isArray(agents) ? agents.length : undefined;
|
|
57
|
+
return {
|
|
58
|
+
type: "MULTI_AGENT_ACTION",
|
|
59
|
+
data: {
|
|
60
|
+
action,
|
|
61
|
+
target_hash: target ? sha256(target) : undefined,
|
|
62
|
+
session_count: sessionCount,
|
|
63
|
+
agent_count: agentCount,
|
|
64
|
+
runtime: str(params.runtime) || undefined,
|
|
65
|
+
mode: str(params.mode) || undefined,
|
|
66
|
+
has_task: toolName === "sessions_spawn" ? !!params.task : undefined,
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/mappers/session.ts"],"names":[],"mappings":"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"}
|
package/dist/mappers/shell.d.ts
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
* Shell mapper — maps bash/shell tool calls to SHELL_COMMAND events,
|
|
3
3
|
* promoting to TEST_RUN or BUILD_RUN when detected.
|
|
4
4
|
*/
|
|
5
|
-
import type { EventMapper, MappedEvent } from
|
|
6
|
-
import { TestDetector } from
|
|
7
|
-
import { BuildDetector } from
|
|
8
|
-
import { HttpDetector } from
|
|
5
|
+
import type { EventMapper, MappedEvent } from "./MapperRegistry.js";
|
|
6
|
+
import { TestDetector } from "../detectors/TestDetector.js";
|
|
7
|
+
import { BuildDetector } from "../detectors/BuildDetector.js";
|
|
8
|
+
import { HttpDetector } from "../detectors/HttpDetector.js";
|
|
9
9
|
export declare class ShellMapper implements EventMapper {
|
|
10
10
|
toolNames: string[];
|
|
11
11
|
private testDetector;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../src/mappers/shell.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAW5D,qBAAa,WAAY,YAAW,WAAW;IAC7C,SAAS,WAA6B;IAEtC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,YAAY,CAAe;gBAGjC,YAAY,CAAC,EAAE,YAAY,EAC3B,aAAa,CAAC,EAAE,aAAa,EAC7B,YAAY,CAAC,EAAE,YAAY;IAO7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,WAAW;IAWxE,MAAM,CACJ,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EACtC,KAAK,CAAC,EAAE,KAAK,GACZ,WAAW;
|
|
1
|
+
{"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../src/mappers/shell.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAW5D,qBAAa,WAAY,YAAW,WAAW;IAC7C,SAAS,WAA6B;IAEtC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,YAAY,CAAe;gBAGjC,YAAY,CAAC,EAAE,YAAY,EAC3B,aAAa,CAAC,EAAE,aAAa,EAC7B,YAAY,CAAC,EAAE,YAAY;IAO7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,WAAW;IAWxE,MAAM,CACJ,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EACtC,KAAK,CAAC,EAAE,KAAK,GACZ,WAAW;CAmFf"}
|
package/dist/mappers/shell.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import { TestDetector } from
|
|
2
|
-
import { BuildDetector } from
|
|
3
|
-
import { HttpDetector } from
|
|
4
|
-
import { hashCommand, extractBaseCommand } from
|
|
5
|
-
import { sha256 } from
|
|
1
|
+
import { TestDetector } from "../detectors/TestDetector.js";
|
|
2
|
+
import { BuildDetector } from "../detectors/BuildDetector.js";
|
|
3
|
+
import { HttpDetector } from "../detectors/HttpDetector.js";
|
|
4
|
+
import { hashCommand, extractBaseCommand } from "../util/hash.js";
|
|
5
|
+
import { sha256 } from "../util/hash.js";
|
|
6
6
|
/** Safely coerce unknown values to string (handles Arrays from OpenClaw) */
|
|
7
7
|
function str(val) {
|
|
8
|
-
if (typeof val ===
|
|
8
|
+
if (typeof val === "string")
|
|
9
9
|
return val;
|
|
10
10
|
if (Array.isArray(val))
|
|
11
|
-
return val.join(
|
|
12
|
-
return val == null ?
|
|
11
|
+
return val.join(" ");
|
|
12
|
+
return val == null ? "" : String(val);
|
|
13
13
|
}
|
|
14
14
|
export class ShellMapper {
|
|
15
|
-
toolNames = [
|
|
15
|
+
toolNames = ["bash", "shell", "exec"];
|
|
16
16
|
testDetector;
|
|
17
17
|
buildDetector;
|
|
18
18
|
httpDetector;
|
|
@@ -24,7 +24,7 @@ export class ShellMapper {
|
|
|
24
24
|
mapStart(toolName, params) {
|
|
25
25
|
const cmd = str(params.command || params.cmd);
|
|
26
26
|
return {
|
|
27
|
-
type:
|
|
27
|
+
type: "SHELL_COMMAND",
|
|
28
28
|
data: {
|
|
29
29
|
cmd_hash: hashCommand(cmd),
|
|
30
30
|
cmd_display: extractBaseCommand(cmd),
|
|
@@ -33,14 +33,16 @@ export class ShellMapper {
|
|
|
33
33
|
}
|
|
34
34
|
mapEnd(toolName, params, result, error) {
|
|
35
35
|
const cmd = str(params.command || params.cmd);
|
|
36
|
-
const exitCode = (result?.exitCode ??
|
|
36
|
+
const exitCode = (result?.exitCode ??
|
|
37
|
+
result?.exit_code ??
|
|
38
|
+
(error ? 1 : 0));
|
|
37
39
|
const stdout = str(result?.stdout);
|
|
38
40
|
const stderr = str(result?.stderr);
|
|
39
41
|
// Try to promote to HTTP_REQUEST (most specific for curl/wget commands)
|
|
40
42
|
const httpResult = this.httpDetector.detect(cmd, stdout, stderr, exitCode);
|
|
41
43
|
if (httpResult) {
|
|
42
44
|
return {
|
|
43
|
-
type:
|
|
45
|
+
type: "HTTP_REQUEST",
|
|
44
46
|
data: {
|
|
45
47
|
method: httpResult.method,
|
|
46
48
|
host_hash: httpResult.hostHash,
|
|
@@ -61,7 +63,7 @@ export class ShellMapper {
|
|
|
61
63
|
const testResult = this.testDetector.detect(cmd, stdout, stderr, exitCode);
|
|
62
64
|
if (testResult) {
|
|
63
65
|
return {
|
|
64
|
-
type:
|
|
66
|
+
type: "TEST_RUN",
|
|
65
67
|
data: {
|
|
66
68
|
framework: testResult.framework,
|
|
67
69
|
passed: testResult.passed,
|
|
@@ -79,7 +81,7 @@ export class ShellMapper {
|
|
|
79
81
|
const buildResult = this.buildDetector.detect(cmd, stdout, stderr, exitCode);
|
|
80
82
|
if (buildResult) {
|
|
81
83
|
return {
|
|
82
|
-
type:
|
|
84
|
+
type: "BUILD_RUN",
|
|
83
85
|
data: {
|
|
84
86
|
tool: buildResult.tool,
|
|
85
87
|
exit_code: exitCode,
|
|
@@ -92,7 +94,7 @@ export class ShellMapper {
|
|
|
92
94
|
}
|
|
93
95
|
// Default: generic shell command
|
|
94
96
|
return {
|
|
95
|
-
type:
|
|
97
|
+
type: "SHELL_COMMAND",
|
|
96
98
|
data: {
|
|
97
99
|
cmd_hash: hashCommand(cmd),
|
|
98
100
|
cmd_display: extractBaseCommand(cmd),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell.js","sourceRoot":"","sources":["../../src/mappers/shell.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,4EAA4E;AAC5E,SAAS,GAAG,CAAC,GAAY;IACvB,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC;IACxC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7C,OAAO,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,OAAO,WAAW;IACtB,SAAS,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAE9B,YAAY,CAAe;IAC3B,aAAa,CAAgB;IAC7B,YAAY,CAAe;IAEnC,YACE,YAA2B,EAC3B,aAA6B,EAC7B,YAA2B;QAE3B,IAAI,CAAC,YAAY,GAAG,YAAY,IAAI,IAAI,YAAY,EAAE,CAAC;QACvD,IAAI,CAAC,aAAa,GAAG,aAAa,IAAI,IAAI,aAAa,EAAE,CAAC;QAC1D,IAAI,CAAC,YAAY,GAAG,YAAY,IAAI,IAAI,YAAY,EAAE,CAAC;IACzD,CAAC;IAED,QAAQ,CAAC,QAAgB,EAAE,MAA+B;QACxD,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;QAC9C,OAAO;YACL,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE;gBACJ,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC;gBAC1B,WAAW,EAAE,kBAAkB,CAAC,GAAG,CAAC;aACrC;SACF,CAAC;IACJ,CAAC;IAED,MAAM,CACJ,QAAgB,EAChB,MAA+B,EAC/B,MAAsC,EACtC,KAAa;QAEb,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"shell.js","sourceRoot":"","sources":["../../src/mappers/shell.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Web mapper — maps web_search and web_fetch tool calls to
|
|
3
|
+
* WEB_SEARCH / WEB_FETCH events with privacy-safe metadata.
|
|
4
|
+
*/
|
|
5
|
+
import type { EventMapper, MappedEvent } from "./MapperRegistry.js";
|
|
6
|
+
export declare class WebMapper implements EventMapper {
|
|
7
|
+
toolNames: string[];
|
|
8
|
+
mapStart(toolName: string, params: Record<string, unknown>): MappedEvent;
|
|
9
|
+
mapEnd(toolName: string, params: Record<string, unknown>, result: Record<string, unknown> | null, _error?: Error): MappedEvent;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=web.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../src/mappers/web.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AA4BpE,qBAAa,SAAU,YAAW,WAAW;IAC3C,SAAS,WAA+B;IAExC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,WAAW;IAuBxE,MAAM,CACJ,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EACtC,MAAM,CAAC,EAAE,KAAK,GACb,WAAW;CAgDf"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { sha256 } from "../util/hash.js";
|
|
2
|
+
/** Safely coerce unknown values to string */
|
|
3
|
+
function str(val) {
|
|
4
|
+
if (typeof val === "string")
|
|
5
|
+
return val;
|
|
6
|
+
if (Array.isArray(val))
|
|
7
|
+
return val.join(" ");
|
|
8
|
+
return val == null ? "" : String(val);
|
|
9
|
+
}
|
|
10
|
+
/** Extract host and path from a URL string */
|
|
11
|
+
function parseUrl(raw) {
|
|
12
|
+
try {
|
|
13
|
+
const url = new URL(raw);
|
|
14
|
+
return {
|
|
15
|
+
host: url.host,
|
|
16
|
+
path: url.pathname + url.search,
|
|
17
|
+
hostDisplay: url.hostname,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
return { host: raw, path: "", hostDisplay: raw };
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
export class WebMapper {
|
|
25
|
+
toolNames = ["web_search", "web_fetch"];
|
|
26
|
+
mapStart(toolName, params) {
|
|
27
|
+
if (toolName === "web_search") {
|
|
28
|
+
return {
|
|
29
|
+
type: "WEB_SEARCH",
|
|
30
|
+
data: {
|
|
31
|
+
query_hash: sha256(str(params.query)),
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
// web_fetch
|
|
36
|
+
const url = str(params.url);
|
|
37
|
+
const parsed = parseUrl(url);
|
|
38
|
+
return {
|
|
39
|
+
type: "WEB_FETCH",
|
|
40
|
+
data: {
|
|
41
|
+
host_hash: sha256(parsed.host),
|
|
42
|
+
host_display: parsed.hostDisplay,
|
|
43
|
+
path_hash: sha256(parsed.path),
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
mapEnd(toolName, params, result, _error) {
|
|
48
|
+
if (toolName === "web_search") {
|
|
49
|
+
const query = str(params.query);
|
|
50
|
+
// Provider may be in params or result metadata
|
|
51
|
+
const provider = str(params.provider || result?.provider || result?.source || "");
|
|
52
|
+
// Result count from array length or explicit count
|
|
53
|
+
const results = result?.results;
|
|
54
|
+
const resultCount = Array.isArray(results)
|
|
55
|
+
? results.length
|
|
56
|
+
: typeof result?.count === "number"
|
|
57
|
+
? result.count
|
|
58
|
+
: undefined;
|
|
59
|
+
return {
|
|
60
|
+
type: "WEB_SEARCH",
|
|
61
|
+
data: {
|
|
62
|
+
query_hash: sha256(query),
|
|
63
|
+
provider: provider || undefined,
|
|
64
|
+
result_count: resultCount,
|
|
65
|
+
country: str(params.country) || undefined,
|
|
66
|
+
freshness: str(params.freshness) || undefined,
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
// web_fetch
|
|
71
|
+
const url = str(params.url);
|
|
72
|
+
const parsed = parseUrl(url);
|
|
73
|
+
const content = str(result?.content || result?.text || result?.body);
|
|
74
|
+
const contentType = str(result?.contentType || result?.content_type || "");
|
|
75
|
+
return {
|
|
76
|
+
type: "WEB_FETCH",
|
|
77
|
+
data: {
|
|
78
|
+
host_hash: sha256(parsed.host),
|
|
79
|
+
host_display: parsed.hostDisplay,
|
|
80
|
+
path_hash: sha256(parsed.path),
|
|
81
|
+
url_display: `${parsed.hostDisplay}${parsed.path.split("?")[0]}`,
|
|
82
|
+
content_type: contentType || undefined,
|
|
83
|
+
response_size: content.length || undefined,
|
|
84
|
+
extract_mode: str(params.extractMode) || undefined,
|
|
85
|
+
},
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=web.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/mappers/web.ts"],"names":[],"mappings":"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"}
|
package/dist/register.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"AAqBA,oEAAoE;AACpE,KAAK,QAAQ,GACT,kBAAkB,GAClB,qBAAqB,GACrB,iBAAiB,GACjB,eAAe,GACf,aAAa,GACb,cAAc,GACd,WAAW,GACX,cAAc,GACd,YAAY,GACZ,WAAW,CAAC;AAEhB,UAAU,SAAS;IACjB,MAAM,CAAC,EAAE;QACP,OAAO,CAAC,EAAE;YACR,OAAO,CAAC,EAAE,MAAM,CACd,MAAM,EACN;gBAAE,OAAO,CAAC,EAAE,OAAO,CAAC;gBAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;aAAE,CACxD,CAAC;SACH,CAAC;KACH,CAAC;IACF,MAAM,CAAC,EAAE;QACP,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QAC/B,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;KACjC,CAAC;IACF,wEAAwE;IACxE,YAAY,CAAC,CACX,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,EACjE,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAC7C,IAAI,CAAC;IACR,iEAAiE;IACjE,EAAE,CAAC,CACD,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,EACrD,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAC3B,IAAI,CAAC;IACR,YAAY,CAAC,CAAC,IAAI,EAAE;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACpC,OAAO,EAAE,CACP,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KACzB,OAAO,CAAC,OAAO,CAAC,CAAC;KACvB,GAAG,IAAI,CAAC;CACV;
|
|
1
|
+
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"AAqBA,oEAAoE;AACpE,KAAK,QAAQ,GACT,kBAAkB,GAClB,qBAAqB,GACrB,iBAAiB,GACjB,eAAe,GACf,aAAa,GACb,cAAc,GACd,WAAW,GACX,cAAc,GACd,YAAY,GACZ,WAAW,CAAC;AAEhB,UAAU,SAAS;IACjB,MAAM,CAAC,EAAE;QACP,OAAO,CAAC,EAAE;YACR,OAAO,CAAC,EAAE,MAAM,CACd,MAAM,EACN;gBAAE,OAAO,CAAC,EAAE,OAAO,CAAC;gBAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;aAAE,CACxD,CAAC;SACH,CAAC;KACH,CAAC;IACF,MAAM,CAAC,EAAE;QACP,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QAC/B,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;KACjC,CAAC;IACF,wEAAwE;IACxE,YAAY,CAAC,CACX,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,EACjE,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAC7C,IAAI,CAAC;IACR,iEAAiE;IACjE,EAAE,CAAC,CACD,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,EACrD,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAC3B,IAAI,CAAC;IACR,YAAY,CAAC,CAAC,IAAI,EAAE;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACpC,OAAO,EAAE,CACP,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KACzB,OAAO,CAAC,OAAO,CAAC,CAAC;KACvB,GAAG,IAAI,CAAC;CACV;AA0kBD,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CA4brD"}
|