@marifold/core 0.61.0 → 0.64.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/agent/AgentEvents.d.ts +7 -0
- package/dist/agent/AgentEvents.d.ts.map +1 -1
- package/dist/agent/AgentRunner.d.ts.map +1 -1
- package/dist/agent/AgentRunner.js +57 -15
- package/dist/agent/AgentRunner.js.map +1 -1
- package/dist/agent/AttachmentResources.d.ts +40 -0
- package/dist/agent/AttachmentResources.d.ts.map +1 -0
- package/dist/agent/AttachmentResources.js +192 -0
- package/dist/agent/AttachmentResources.js.map +1 -0
- package/dist/agent/RunArtifacts.d.ts +18 -0
- package/dist/agent/RunArtifacts.d.ts.map +1 -0
- package/dist/agent/RunArtifacts.js +137 -0
- package/dist/agent/RunArtifacts.js.map +1 -0
- package/dist/agent/tools/InspectAttachmentTool.d.ts.map +1 -1
- package/dist/agent/tools/InspectAttachmentTool.js +4 -69
- package/dist/agent/tools/InspectAttachmentTool.js.map +1 -1
- package/dist/agent/tools/ReadAttachmentTool.d.ts +34 -0
- package/dist/agent/tools/ReadAttachmentTool.d.ts.map +1 -0
- package/dist/agent/tools/ReadAttachmentTool.js +84 -0
- package/dist/agent/tools/ReadAttachmentTool.js.map +1 -0
- package/dist/agent/tools/SearchAttachmentTool.d.ts +33 -0
- package/dist/agent/tools/SearchAttachmentTool.d.ts.map +1 -0
- package/dist/agent/tools/SearchAttachmentTool.js +76 -0
- package/dist/agent/tools/SearchAttachmentTool.js.map +1 -0
- package/dist/agent/tools/SkillManagementTool.d.ts +75 -0
- package/dist/agent/tools/SkillManagementTool.d.ts.map +1 -0
- package/dist/agent/tools/SkillManagementTool.js +312 -0
- package/dist/agent/tools/SkillManagementTool.js.map +1 -0
- package/dist/config/MarifoldOpenAICompatProvider.d.ts.map +1 -1
- package/dist/config/MarifoldOpenAICompatProvider.js +9 -0
- package/dist/config/MarifoldOpenAICompatProvider.js.map +1 -1
- package/dist/errors/MarifoldError.d.ts +2 -1
- package/dist/errors/MarifoldError.d.ts.map +1 -1
- package/dist/errors/MarifoldError.js +3 -0
- package/dist/errors/MarifoldError.js.map +1 -1
- package/dist/index.d.ts +9 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +26 -3
- package/dist/index.js.map +1 -1
- package/dist/runs/RunRegistry.d.ts +4 -0
- package/dist/runs/RunRegistry.d.ts.map +1 -1
- package/dist/runs/RunRegistry.js +22 -1
- package/dist/runs/RunRegistry.js.map +1 -1
- package/dist/runtime/MarifoldRuntime.d.ts.map +1 -1
- package/dist/runtime/MarifoldRuntime.js +24 -3
- package/dist/runtime/MarifoldRuntime.js.map +1 -1
- package/dist/skill/BuiltInSkillManager.d.ts.map +1 -1
- package/dist/skill/BuiltInSkillManager.js +2 -1
- package/dist/skill/BuiltInSkillManager.js.map +1 -1
- package/dist/skill/BuiltInSkills.d.ts +6 -0
- package/dist/skill/BuiltInSkills.d.ts.map +1 -0
- package/dist/skill/BuiltInSkills.js +91 -0
- package/dist/skill/BuiltInSkills.js.map +1 -0
- package/dist/skill/SkillSchema.d.ts +2 -2
- package/dist/skill/SkillSchema.d.ts.map +1 -1
- package/dist/skill/SkillStore.d.ts +9 -0
- package/dist/skill/SkillStore.d.ts.map +1 -1
- package/dist/skill/SkillStore.js +87 -14
- package/dist/skill/SkillStore.js.map +1 -1
- package/dist/skill/index.d.ts +1 -0
- package/dist/skill/index.d.ts.map +1 -1
- package/dist/skill/index.js +5 -1
- package/dist/skill/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AttachmentResources.js","sourceRoot":"","sources":["../../src/agent/AttachmentResources.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { RunWorkspace } from './RunWorkspace';
|
|
2
|
+
export declare const MAX_RUN_ARTIFACTS = 50;
|
|
3
|
+
export declare const MAX_RUN_ARTIFACT_BYTES: number;
|
|
4
|
+
export interface RunArtifact {
|
|
5
|
+
id: string;
|
|
6
|
+
name: string;
|
|
7
|
+
mediaType: string;
|
|
8
|
+
size: number;
|
|
9
|
+
}
|
|
10
|
+
export interface ResolvedRunArtifact extends RunArtifact {
|
|
11
|
+
path: string;
|
|
12
|
+
}
|
|
13
|
+
/** List regular output files without following symlinks. The model can write
|
|
14
|
+
* only inside the run capability set, but download resolution independently
|
|
15
|
+
* revalidates containment so an output symlink cannot expose another file. */
|
|
16
|
+
export declare function listRunArtifacts(workspace: Pick<RunWorkspace, 'outputDir'>): RunArtifact[];
|
|
17
|
+
export declare function resolveRunArtifact(runId: string, artifactId: string): ResolvedRunArtifact | undefined;
|
|
18
|
+
//# sourceMappingURL=RunArtifacts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RunArtifacts.d.ts","sourceRoot":"","sources":["../../src/agent/RunArtifacts.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,sBAAsB,QAAoB,CAAC;AAExD,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACtD,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;8EAE8E;AAC9E,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,GACzC,WAAW,EAAE,CAEf;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAIrG"}
|
|
@@ -0,0 +1,137 @@
|
|
|
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
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.MAX_RUN_ARTIFACT_BYTES = exports.MAX_RUN_ARTIFACTS = void 0;
|
|
37
|
+
exports.listRunArtifacts = listRunArtifacts;
|
|
38
|
+
exports.resolveRunArtifact = resolveRunArtifact;
|
|
39
|
+
const crypto = __importStar(require("crypto"));
|
|
40
|
+
const fs = __importStar(require("fs"));
|
|
41
|
+
const path = __importStar(require("path"));
|
|
42
|
+
const WorkspacePaths_1 = require("../workspace/WorkspacePaths");
|
|
43
|
+
exports.MAX_RUN_ARTIFACTS = 50;
|
|
44
|
+
exports.MAX_RUN_ARTIFACT_BYTES = 512 * 1024 * 1024;
|
|
45
|
+
/** List regular output files without following symlinks. The model can write
|
|
46
|
+
* only inside the run capability set, but download resolution independently
|
|
47
|
+
* revalidates containment so an output symlink cannot expose another file. */
|
|
48
|
+
function listRunArtifacts(workspace) {
|
|
49
|
+
return listResolvedArtifacts(workspace.outputDir).map(({ path: _path, ...artifact }) => artifact);
|
|
50
|
+
}
|
|
51
|
+
function resolveRunArtifact(runId, artifactId) {
|
|
52
|
+
if (!/^[A-Za-z0-9_-]{1,160}$/.test(runId) || !/^[a-f0-9]{24}$/.test(artifactId))
|
|
53
|
+
return undefined;
|
|
54
|
+
const outputDir = path.join((0, WorkspacePaths_1.marifoldHome)(), 'runs', runId, 'output');
|
|
55
|
+
return listResolvedArtifacts(outputDir).find(artifact => artifact.id === artifactId);
|
|
56
|
+
}
|
|
57
|
+
function listResolvedArtifacts(outputDir) {
|
|
58
|
+
let root;
|
|
59
|
+
try {
|
|
60
|
+
root = fs.realpathSync(outputDir);
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
return [];
|
|
64
|
+
}
|
|
65
|
+
const artifacts = [];
|
|
66
|
+
const pending = [root];
|
|
67
|
+
while (pending.length > 0 && artifacts.length < exports.MAX_RUN_ARTIFACTS) {
|
|
68
|
+
const directory = pending.shift();
|
|
69
|
+
let entries;
|
|
70
|
+
try {
|
|
71
|
+
entries = fs.readdirSync(directory, { withFileTypes: true })
|
|
72
|
+
.sort((left, right) => left.name.localeCompare(right.name));
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
continue;
|
|
76
|
+
}
|
|
77
|
+
for (const entry of entries) {
|
|
78
|
+
if (artifacts.length >= exports.MAX_RUN_ARTIFACTS)
|
|
79
|
+
break;
|
|
80
|
+
const candidate = path.join(directory, entry.name);
|
|
81
|
+
if (entry.isSymbolicLink())
|
|
82
|
+
continue;
|
|
83
|
+
if (entry.isDirectory()) {
|
|
84
|
+
pending.push(candidate);
|
|
85
|
+
continue;
|
|
86
|
+
}
|
|
87
|
+
if (!entry.isFile())
|
|
88
|
+
continue;
|
|
89
|
+
try {
|
|
90
|
+
const real = fs.realpathSync(candidate);
|
|
91
|
+
if (!isInside(real, root))
|
|
92
|
+
continue;
|
|
93
|
+
const stat = fs.statSync(real);
|
|
94
|
+
if (!stat.isFile() || stat.size > exports.MAX_RUN_ARTIFACT_BYTES)
|
|
95
|
+
continue;
|
|
96
|
+
const relative = path.relative(root, real).split(path.sep).join('/');
|
|
97
|
+
artifacts.push({
|
|
98
|
+
id: crypto.createHash('sha256').update(relative).digest('hex').slice(0, 24),
|
|
99
|
+
name: relative,
|
|
100
|
+
mediaType: mediaTypeFor(relative),
|
|
101
|
+
size: stat.size,
|
|
102
|
+
path: real,
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
catch {
|
|
106
|
+
// An output may disappear while a process is finishing; omit it.
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return artifacts;
|
|
111
|
+
}
|
|
112
|
+
function isInside(candidate, root) {
|
|
113
|
+
const relative = path.relative(root, candidate);
|
|
114
|
+
return relative === '' || (!relative.startsWith(`..${path.sep}`) && relative !== '..' && !path.isAbsolute(relative));
|
|
115
|
+
}
|
|
116
|
+
function mediaTypeFor(name) {
|
|
117
|
+
switch (path.extname(name).toLowerCase()) {
|
|
118
|
+
case '.xlsx': return 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';
|
|
119
|
+
case '.xls': return 'application/vnd.ms-excel';
|
|
120
|
+
case '.docx': return 'application/vnd.openxmlformats-officedocument.wordprocessingml.document';
|
|
121
|
+
case '.doc': return 'application/msword';
|
|
122
|
+
case '.pptx': return 'application/vnd.openxmlformats-officedocument.presentationml.presentation';
|
|
123
|
+
case '.ppt': return 'application/vnd.ms-powerpoint';
|
|
124
|
+
case '.pdf': return 'application/pdf';
|
|
125
|
+
case '.epub': return 'application/epub+zip';
|
|
126
|
+
case '.csv': return 'text/csv; charset=utf-8';
|
|
127
|
+
case '.txt': return 'text/plain; charset=utf-8';
|
|
128
|
+
case '.json': return 'application/json';
|
|
129
|
+
case '.zip': return 'application/zip';
|
|
130
|
+
case '.png': return 'image/png';
|
|
131
|
+
case '.jpg':
|
|
132
|
+
case '.jpeg': return 'image/jpeg';
|
|
133
|
+
case '.webp': return 'image/webp';
|
|
134
|
+
default: return 'application/octet-stream';
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=RunArtifacts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RunArtifacts.js","sourceRoot":"","sources":["../../src/agent/RunArtifacts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InspectAttachmentTool.d.ts","sourceRoot":"","sources":["../../../src/agent/tools/InspectAttachmentTool.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"InspectAttachmentTool.d.ts","sourceRoot":"","sources":["../../../src/agent/tools/InspectAttachmentTool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EACL,SAAS,EAET,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,iBAAiB,CAAC;AAGzB;gFACgF;AAChF,qBAAa,qBAAsB,YAAW,SAAS;IACrD,QAAQ,CAAC,IAAI,EAAG,MAAM,CAAU;IAChC,QAAQ,CAAC,UAAU;QACjB,IAAI;QACJ,WAAW;QAMX,UAAU;YACR,IAAI;YACJ,UAAU;gBACR,aAAa;oBACX,IAAI;oBACJ,WAAW;;;YAGf,QAAQ;;MAEV;IAEF,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,MAAM,CAEtD;IAED,UAAU,IAAI,kBAAkB,CAK/B;IAEK,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAyBvG;CACF"}
|
|
@@ -1,49 +1,8 @@
|
|
|
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
|
-
})();
|
|
35
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
3
|
exports.InspectAttachmentTool = void 0;
|
|
37
|
-
const fs = __importStar(require("fs"));
|
|
38
|
-
const path = __importStar(require("path"));
|
|
39
4
|
const ToolRegistry_1 = require("../ToolRegistry");
|
|
40
|
-
const
|
|
41
|
-
const TEXT_EXTENSIONS = new Set([
|
|
42
|
-
'.txt', '.md', '.markdown', '.json', '.jsonl', '.yaml', '.yml', '.toml', '.ini',
|
|
43
|
-
'.csv', '.tsv', '.xml', '.html', '.css', '.js', '.mjs', '.cjs', '.ts', '.tsx',
|
|
44
|
-
'.jsx', '.py', '.rb', '.go', '.rs', '.java', '.kt', '.swift', '.c', '.h', '.cpp',
|
|
45
|
-
'.hpp', '.cs', '.sh', '.zsh', '.bash', '.fish', '.sql', '.log', '.diff', '.patch',
|
|
46
|
-
]);
|
|
5
|
+
const AttachmentResources_1 = require("../AttachmentResources");
|
|
47
6
|
/** Attachment-scoped, read-only inspection. The model supplies an opaque ID,
|
|
48
7
|
* never a host path; the run workspace resolves that ID to the exact upload. */
|
|
49
8
|
class InspectAttachmentTool {
|
|
@@ -52,7 +11,7 @@ class InspectAttachmentTool {
|
|
|
52
11
|
name: 'inspect_attachment',
|
|
53
12
|
description: [
|
|
54
13
|
'Inspect one attachment uploaded for the current run by its attachment ID.',
|
|
55
|
-
'Images become visible to the model;
|
|
14
|
+
'Images become visible to the model; documents return metadata, their read-only run path, capabilities, and a small bounded preview when available.',
|
|
56
15
|
'When to use: the objective or skill depends on an attached image, document, spreadsheet, audio file, or other upload.',
|
|
57
16
|
'When NOT to use: arbitrary filesystem paths, bundled skill files, or information already present in the prompt.',
|
|
58
17
|
].join(' '),
|
|
@@ -94,36 +53,12 @@ class InspectAttachmentTool {
|
|
|
94
53
|
summary: `opened image ${attachment.name}`,
|
|
95
54
|
};
|
|
96
55
|
}
|
|
97
|
-
const
|
|
98
|
-
if (text !== undefined) {
|
|
99
|
-
return {
|
|
100
|
-
content: (0, ToolRegistry_1.capToolOutput)(text, ctx.outputLimit),
|
|
101
|
-
summary: `inspected ${attachment.name}`,
|
|
102
|
-
};
|
|
103
|
-
}
|
|
104
|
-
const location = attachment.path ? `\nRead-only run path: ${attachment.path}` : '';
|
|
56
|
+
const inspection = new AttachmentResources_1.AttachmentResource(attachment).inspect(ctx.outputLimit);
|
|
105
57
|
return {
|
|
106
|
-
content:
|
|
107
|
-
`Attachment: ${attachment.name}`,
|
|
108
|
-
`Media type: ${attachment.mediaType}`,
|
|
109
|
-
`Size: ${(0, ReadFileTool_1.formatBytes)(attachment.size)}`,
|
|
110
|
-
location,
|
|
111
|
-
'No built-in readable preview is available for this format. Use a format-specific local tool against the run path if the task requires deeper inspection.',
|
|
112
|
-
].filter(Boolean).join('\n'),
|
|
58
|
+
content: inspection.content,
|
|
113
59
|
summary: `inspected metadata for ${attachment.name}`,
|
|
114
60
|
};
|
|
115
61
|
}
|
|
116
62
|
}
|
|
117
63
|
exports.InspectAttachmentTool = InspectAttachmentTool;
|
|
118
|
-
function readTextAttachment(filePath, name, mediaType) {
|
|
119
|
-
if (!filePath || (!mediaType.startsWith('text/') && !TEXT_EXTENSIONS.has(path.extname(name).toLowerCase()))) {
|
|
120
|
-
return undefined;
|
|
121
|
-
}
|
|
122
|
-
try {
|
|
123
|
-
return fs.readFileSync(filePath, 'utf8');
|
|
124
|
-
}
|
|
125
|
-
catch (error) {
|
|
126
|
-
return `Could not read ${name}: ${error instanceof Error ? error.message : String(error)}`;
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
64
|
//# sourceMappingURL=InspectAttachmentTool.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InspectAttachmentTool.js","sourceRoot":"","sources":["../../../src/agent/tools/InspectAttachmentTool.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"InspectAttachmentTool.js","sourceRoot":"","sources":["../../../src/agent/tools/InspectAttachmentTool.ts"],"names":[],"mappings":";;;AACA,kDAMyB;AACzB,gEAA4D;AAE5D;gFACgF;AAChF;IACW,IAAI,GAAG,MAAe,CAAC;IACvB,UAAU,GAAG;QACpB,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EAAE;YACX,2EAA2E;YAC3E,oJAAoJ;YACpJ,uHAAuH;YACvH,iHAAiH;SAClH,CAAC,IAAI,CAAC,GAAG,CAAC;QACX,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,aAAa,EAAE;oBACb,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,2EAA2E;iBACzF;aACF;YACD,QAAQ,EAAE,CAAC,eAAe,CAAC;SAC5B;KACF,CAAC;IAEF,aAAa,CAAC,KAAgC;QAC5C,OAAO,WAAW,OAAO,KAAK,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,sBAAsB,EAAE,CAAC;IAC7G,CAAC;IAED,UAAU;QACR,yEAAyE;QACzE,0EAA0E;QAC1E,iCAAiC;QACjC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAAgC,EAAE,GAAyB;QACvE,MAAM,EAAE,GAAG,IAAA,iCAAkB,EAAC,KAAK,EAAE,eAAe,EAAE,oBAAoB,CAAC,CAAC;QAC5E,MAAM,UAAU,GAAG,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACrF,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC;YACnG,OAAO;gBACL,OAAO,EAAE,eAAe,EAAE,6DAA6D,SAAS,GAAG;gBACnG,OAAO,EAAE,cAAc,EAAE,YAAY;gBACrC,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;YACrB,OAAO;gBACL,OAAO,EAAE,cAAc,UAAU,CAAC,EAAE,KAAK,UAAU,CAAC,IAAI,KAAK,UAAU,CAAC,SAAS,6EAA6E;gBAC9J,MAAM,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;gBAC1B,OAAO,EAAE,gBAAgB,UAAU,CAAC,IAAI,EAAE;aAC3C,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,wCAAkB,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC/E,OAAO;YACL,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,OAAO,EAAE,0BAA0B,UAAU,CAAC,IAAI,EAAE;SACrD,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { JSONValue } from '@priest-ai/core';
|
|
2
|
+
import { AgentTool, ToolExecutionContext, ToolExecutionResult, ToolRiskAssessment } from '../ToolRegistry';
|
|
3
|
+
export declare class ReadAttachmentTool implements AgentTool {
|
|
4
|
+
readonly kind: 'read';
|
|
5
|
+
readonly definition: {
|
|
6
|
+
name: string;
|
|
7
|
+
description: string;
|
|
8
|
+
parameters: {
|
|
9
|
+
type: string;
|
|
10
|
+
properties: {
|
|
11
|
+
attachment_id: {
|
|
12
|
+
type: string;
|
|
13
|
+
description: string;
|
|
14
|
+
};
|
|
15
|
+
start: {
|
|
16
|
+
type: string;
|
|
17
|
+
minimum: number;
|
|
18
|
+
description: string;
|
|
19
|
+
};
|
|
20
|
+
max_chars: {
|
|
21
|
+
type: string;
|
|
22
|
+
minimum: number;
|
|
23
|
+
maximum: number;
|
|
24
|
+
description: string;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
required: string[];
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
summarizeCall(input: Record<string, JSONValue>): string;
|
|
31
|
+
assessRisk(): ToolRiskAssessment;
|
|
32
|
+
execute(input: Record<string, JSONValue>, ctx: ToolExecutionContext): Promise<ToolExecutionResult>;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=ReadAttachmentTool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReadAttachmentTool.d.ts","sourceRoot":"","sources":["../../../src/agent/tools/ReadAttachmentTool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAMjD,OAAO,EACL,SAAS,EAET,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,iBAAiB,CAAC;AAEzB,qBAAa,kBAAmB,YAAW,SAAS;IAClD,QAAQ,CAAC,IAAI,EAAG,MAAM,CAAU;IAChC,QAAQ,CAAC,UAAU;;;;;;;oBAUI,IAAI;oBAAY,WAAW;;;oBACnC,IAAI;oBAAa,OAAO;oBAAK,WAAW;;;;;;;;;;;MAUrD;IAEF,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,MAAM,CAItD;IAED,UAAU,IAAI,kBAAkB,CAE/B;IAEK,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CA+BvG;CACF"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ReadAttachmentTool = void 0;
|
|
4
|
+
const AttachmentResources_1 = require("../AttachmentResources");
|
|
5
|
+
const ToolRegistry_1 = require("../ToolRegistry");
|
|
6
|
+
class ReadAttachmentTool {
|
|
7
|
+
kind = 'read';
|
|
8
|
+
definition = {
|
|
9
|
+
name: 'read_attachment',
|
|
10
|
+
description: [
|
|
11
|
+
'Read one bounded range from the derived readable view of an uploaded attachment.',
|
|
12
|
+
'When to use: inspect a relevant section after inspect_attachment identified the document structure or search_attachment found a location.',
|
|
13
|
+
'When NOT to use: load an entire large document, transform a complete file, or access an arbitrary filesystem path. Complete-file operations should use local tools against the read-only run path.',
|
|
14
|
+
].join(' '),
|
|
15
|
+
parameters: {
|
|
16
|
+
type: 'object',
|
|
17
|
+
properties: {
|
|
18
|
+
attachment_id: { type: 'string', description: 'Opaque attachment ID from the current run manifest.' },
|
|
19
|
+
start: { type: 'integer', minimum: 0, description: 'Zero-based character offset in the readable view. Defaults to 0.' },
|
|
20
|
+
max_chars: {
|
|
21
|
+
type: 'integer',
|
|
22
|
+
minimum: 1,
|
|
23
|
+
maximum: AttachmentResources_1.MAX_ATTACHMENT_READ_CHARS,
|
|
24
|
+
description: `Maximum characters to return. Defaults to ${AttachmentResources_1.DEFAULT_ATTACHMENT_READ_CHARS}.`,
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
required: ['attachment_id'],
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
summarizeCall(input) {
|
|
31
|
+
const id = typeof input.attachment_id === 'string' ? input.attachment_id : '<missing attachment>';
|
|
32
|
+
const start = integerInput(input.start, 0);
|
|
33
|
+
return `read ${id} from character ${start}`;
|
|
34
|
+
}
|
|
35
|
+
assessRisk() {
|
|
36
|
+
return { escalate: false, trusted: true };
|
|
37
|
+
}
|
|
38
|
+
async execute(input, ctx) {
|
|
39
|
+
const id = (0, ToolRegistry_1.requireStringInput)(input, 'attachment_id', 'read_attachment');
|
|
40
|
+
const attachment = ctx.workspace?.attachments.find(candidate => candidate.id === id);
|
|
41
|
+
if (!attachment)
|
|
42
|
+
return missingAttachment(id, ctx);
|
|
43
|
+
const start = integerInput(input.start, 0);
|
|
44
|
+
const maxChars = integerInput(input.max_chars, AttachmentResources_1.DEFAULT_ATTACHMENT_READ_CHARS);
|
|
45
|
+
if (start < 0 || maxChars < 1 || maxChars > AttachmentResources_1.MAX_ATTACHMENT_READ_CHARS) {
|
|
46
|
+
return {
|
|
47
|
+
content: `read_attachment requires start >= 0 and max_chars between 1 and ${AttachmentResources_1.MAX_ATTACHMENT_READ_CHARS}.`,
|
|
48
|
+
summary: `invalid read range for ${attachment.name}`,
|
|
49
|
+
isError: true,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
const result = new AttachmentResources_1.AttachmentResource(attachment).read(start, maxChars);
|
|
53
|
+
if (!result) {
|
|
54
|
+
return {
|
|
55
|
+
content: `No built-in readable view is available for ${attachment.name}. Use a format-specific local tool against ${attachment.path ?? 'its staged run path'}.`,
|
|
56
|
+
summary: `no readable view for ${attachment.name}`,
|
|
57
|
+
isError: true,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
return {
|
|
61
|
+
content: [
|
|
62
|
+
`Attachment: ${attachment.name}`,
|
|
63
|
+
`Characters ${result.start}-${result.end} of ${result.total}`,
|
|
64
|
+
'',
|
|
65
|
+
result.content || '(empty range)',
|
|
66
|
+
...(result.end < result.total ? [`[more available; continue with start=${result.end}]`] : []),
|
|
67
|
+
].join('\n'),
|
|
68
|
+
summary: `read characters ${result.start}-${result.end} from ${attachment.name}`,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
exports.ReadAttachmentTool = ReadAttachmentTool;
|
|
73
|
+
function integerInput(value, fallback) {
|
|
74
|
+
return typeof value === 'number' && Number.isInteger(value) ? value : fallback;
|
|
75
|
+
}
|
|
76
|
+
function missingAttachment(id, ctx) {
|
|
77
|
+
const available = ctx.workspace?.attachments.map(candidate => candidate.id).join(', ') || '(none)';
|
|
78
|
+
return {
|
|
79
|
+
content: `Attachment '${id}' is not available in this run. Available attachment IDs: ${available}.`,
|
|
80
|
+
summary: `attachment ${id} not found`,
|
|
81
|
+
isError: true,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=ReadAttachmentTool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReadAttachmentTool.js","sourceRoot":"","sources":["../../../src/agent/tools/ReadAttachmentTool.ts"],"names":[],"mappings":";;;AACA,gEAIgC;AAChC,kDAMyB;AAEzB;IACW,IAAI,GAAG,MAAe,CAAC;IACvB,UAAU,GAAG;QACpB,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE;YACX,kFAAkF;YAClF,2IAA2I;YAC3I,oMAAoM;SACrM,CAAC,IAAI,CAAC,GAAG,CAAC;QACX,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qDAAqD,EAAE;gBACrG,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,kEAAkE,EAAE;gBACvH,SAAS,EAAE;oBACT,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,+CAAyB;oBAClC,WAAW,EAAE,6CAA6C,mDAA6B,GAAG;iBAC3F;aACF;YACD,QAAQ,EAAE,CAAC,eAAe,CAAC;SAC5B;KACF,CAAC;IAEF,aAAa,CAAC,KAAgC;QAC5C,MAAM,EAAE,GAAG,OAAO,KAAK,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,sBAAsB,CAAC;QAClG,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC3C,OAAO,QAAQ,EAAE,mBAAmB,KAAK,EAAE,CAAC;IAC9C,CAAC;IAED,UAAU;QACR,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAAgC,EAAE,GAAyB;QACvE,MAAM,EAAE,GAAG,IAAA,iCAAkB,EAAC,KAAK,EAAE,eAAe,EAAE,iBAAiB,CAAC,CAAC;QACzE,MAAM,UAAU,GAAG,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACrF,IAAI,CAAC,UAAU;YAAE,OAAO,iBAAiB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QACnD,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,SAAS,EAAE,mDAA6B,CAAC,CAAC;QAC9E,IAAI,KAAK,GAAG,CAAC,IAAI,QAAQ,GAAG,CAAC,IAAI,QAAQ,GAAG,+CAAyB,EAAE,CAAC;YACtE,OAAO;gBACL,OAAO,EAAE,mEAAmE,+CAAyB,GAAG;gBACxG,OAAO,EAAE,0BAA0B,UAAU,CAAC,IAAI,EAAE;gBACpD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,wCAAkB,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACxE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;gBACL,OAAO,EAAE,8CAA8C,UAAU,CAAC,IAAI,8CAA8C,UAAU,CAAC,IAAI,IAAI,qBAAqB,GAAG;gBAC/J,OAAO,EAAE,wBAAwB,UAAU,CAAC,IAAI,EAAE;gBAClD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QACD,OAAO;YACL,OAAO,EAAE;gBACP,eAAe,UAAU,CAAC,IAAI,EAAE;gBAChC,cAAc,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,GAAG,OAAO,MAAM,CAAC,KAAK,EAAE;gBAC7D,EAAE;gBACF,MAAM,CAAC,OAAO,IAAI,eAAe;gBACjC,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,wCAAwC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;aAC9F,CAAC,IAAI,CAAC,IAAI,CAAC;YACZ,OAAO,EAAE,mBAAmB,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,GAAG,SAAS,UAAU,CAAC,IAAI,EAAE;SACjF,CAAC;IACJ,CAAC;CACF;;AAED,SAAS,YAAY,CAAC,KAA4B,EAAE,QAAgB;IAClE,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;AACjF,CAAC;AAED,SAAS,iBAAiB,CAAC,EAAU,EAAE,GAAyB;IAC9D,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC;IACnG,OAAO;QACL,OAAO,EAAE,eAAe,EAAE,6DAA6D,SAAS,GAAG;QACnG,OAAO,EAAE,cAAc,EAAE,YAAY;QACrC,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { JSONValue } from '@priest-ai/core';
|
|
2
|
+
import { AgentTool, ToolExecutionContext, ToolExecutionResult, ToolRiskAssessment } from '../ToolRegistry';
|
|
3
|
+
export declare class SearchAttachmentTool implements AgentTool {
|
|
4
|
+
readonly kind: 'read';
|
|
5
|
+
readonly definition: {
|
|
6
|
+
name: string;
|
|
7
|
+
description: string;
|
|
8
|
+
parameters: {
|
|
9
|
+
type: string;
|
|
10
|
+
properties: {
|
|
11
|
+
attachment_id: {
|
|
12
|
+
type: string;
|
|
13
|
+
description: string;
|
|
14
|
+
};
|
|
15
|
+
query: {
|
|
16
|
+
type: string;
|
|
17
|
+
description: string;
|
|
18
|
+
};
|
|
19
|
+
max_results: {
|
|
20
|
+
type: string;
|
|
21
|
+
minimum: number;
|
|
22
|
+
maximum: number;
|
|
23
|
+
description: string;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
required: string[];
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
summarizeCall(input: Record<string, JSONValue>): string;
|
|
30
|
+
assessRisk(): ToolRiskAssessment;
|
|
31
|
+
execute(input: Record<string, JSONValue>, ctx: ToolExecutionContext): Promise<ToolExecutionResult>;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=SearchAttachmentTool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SearchAttachmentTool.d.ts","sourceRoot":"","sources":["../../../src/agent/tools/SearchAttachmentTool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAOjD,OAAO,EACL,SAAS,EAET,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,iBAAiB,CAAC;AAEzB,qBAAa,oBAAqB,YAAW,SAAS;IACpD,QAAQ,CAAC,IAAI,EAAG,MAAM,CAAU;IAChC,QAAQ,CAAC,UAAU;;;;;;;oBAUI,IAAI;oBAAY,WAAW;;;oBACnC,IAAI;oBAAY,WAAW;;;;;;;;;;;MAUxC;IAEF,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,MAAM,CAItD;IAED,UAAU,IAAI,kBAAkB,CAE/B;IAEK,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAgCvG;CACF"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SearchAttachmentTool = void 0;
|
|
4
|
+
const AttachmentResources_1 = require("../AttachmentResources");
|
|
5
|
+
const ToolRegistry_1 = require("../ToolRegistry");
|
|
6
|
+
class SearchAttachmentTool {
|
|
7
|
+
kind = 'read';
|
|
8
|
+
definition = {
|
|
9
|
+
name: 'search_attachment',
|
|
10
|
+
description: [
|
|
11
|
+
'Search the derived readable view of one uploaded attachment and return bounded line matches.',
|
|
12
|
+
'When to use: locate a heading, identifier, name, table label, or passage without loading the complete document into model context.',
|
|
13
|
+
'When NOT to use: transform a file, search an arbitrary filesystem path, or repeatedly enumerate an entire document. Use a local format-specific tool for complete-file processing.',
|
|
14
|
+
].join(' '),
|
|
15
|
+
parameters: {
|
|
16
|
+
type: 'object',
|
|
17
|
+
properties: {
|
|
18
|
+
attachment_id: { type: 'string', description: 'Opaque attachment ID from the current run manifest.' },
|
|
19
|
+
query: { type: 'string', description: 'Case-insensitive literal text to find.' },
|
|
20
|
+
max_results: {
|
|
21
|
+
type: 'integer',
|
|
22
|
+
minimum: 1,
|
|
23
|
+
maximum: AttachmentResources_1.MAX_ATTACHMENT_SEARCH_RESULTS,
|
|
24
|
+
description: `Maximum matches to return. Defaults to ${AttachmentResources_1.DEFAULT_ATTACHMENT_SEARCH_RESULTS}.`,
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
required: ['attachment_id', 'query'],
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
summarizeCall(input) {
|
|
31
|
+
const id = typeof input.attachment_id === 'string' ? input.attachment_id : '<missing attachment>';
|
|
32
|
+
const query = typeof input.query === 'string' ? input.query : '<missing query>';
|
|
33
|
+
return `search ${id} for ${JSON.stringify(query)}`;
|
|
34
|
+
}
|
|
35
|
+
assessRisk() {
|
|
36
|
+
return { escalate: false, trusted: true };
|
|
37
|
+
}
|
|
38
|
+
async execute(input, ctx) {
|
|
39
|
+
const id = (0, ToolRegistry_1.requireStringInput)(input, 'attachment_id', 'search_attachment');
|
|
40
|
+
const query = (0, ToolRegistry_1.requireStringInput)(input, 'query', 'search_attachment');
|
|
41
|
+
const attachment = ctx.workspace?.attachments.find(candidate => candidate.id === id);
|
|
42
|
+
if (!attachment) {
|
|
43
|
+
const available = ctx.workspace?.attachments.map(candidate => candidate.id).join(', ') || '(none)';
|
|
44
|
+
return {
|
|
45
|
+
content: `Attachment '${id}' is not available in this run. Available attachment IDs: ${available}.`,
|
|
46
|
+
summary: `attachment ${id} not found`,
|
|
47
|
+
isError: true,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
const maxResults = integerInput(input.max_results, AttachmentResources_1.DEFAULT_ATTACHMENT_SEARCH_RESULTS);
|
|
51
|
+
if (maxResults < 1 || maxResults > AttachmentResources_1.MAX_ATTACHMENT_SEARCH_RESULTS) {
|
|
52
|
+
return {
|
|
53
|
+
content: `search_attachment requires max_results between 1 and ${AttachmentResources_1.MAX_ATTACHMENT_SEARCH_RESULTS}.`,
|
|
54
|
+
summary: `invalid search limit for ${attachment.name}`,
|
|
55
|
+
isError: true,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
const result = new AttachmentResources_1.AttachmentResource(attachment).search(query, maxResults);
|
|
59
|
+
if (!result) {
|
|
60
|
+
return {
|
|
61
|
+
content: `No built-in searchable view is available for ${attachment.name}. Use a format-specific local tool against ${attachment.path ?? 'its staged run path'}.`,
|
|
62
|
+
summary: `no searchable view for ${attachment.name}`,
|
|
63
|
+
isError: true,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
return {
|
|
67
|
+
content: (0, AttachmentResources_1.formatAttachmentSearch)(result, query),
|
|
68
|
+
summary: `found ${result.matches.length} match${result.matches.length === 1 ? '' : 'es'} in ${attachment.name}`,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
exports.SearchAttachmentTool = SearchAttachmentTool;
|
|
73
|
+
function integerInput(value, fallback) {
|
|
74
|
+
return typeof value === 'number' && Number.isInteger(value) ? value : fallback;
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=SearchAttachmentTool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SearchAttachmentTool.js","sourceRoot":"","sources":["../../../src/agent/tools/SearchAttachmentTool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import type { JSONValue } from '@priest-ai/core';
|
|
2
|
+
import { SkillStore } from '../../skill/SkillStore';
|
|
3
|
+
import { AgentTool, ToolExecutionContext, ToolExecutionResult, ToolRiskAssessment } from '../ToolRegistry';
|
|
4
|
+
export interface SkillManagementToolOptions {
|
|
5
|
+
store: SkillStore;
|
|
6
|
+
profile: string;
|
|
7
|
+
globalDir: string;
|
|
8
|
+
profileDir: string;
|
|
9
|
+
}
|
|
10
|
+
/** Validated mutation boundary used by Marifold's protected management skills. */
|
|
11
|
+
export declare class SkillManagementTool implements AgentTool {
|
|
12
|
+
private readonly options;
|
|
13
|
+
readonly kind: 'write';
|
|
14
|
+
readonly definition: {
|
|
15
|
+
name: string;
|
|
16
|
+
description: string;
|
|
17
|
+
parameters: {
|
|
18
|
+
type: string;
|
|
19
|
+
properties: {
|
|
20
|
+
action: {
|
|
21
|
+
type: string;
|
|
22
|
+
enum: string[];
|
|
23
|
+
description: string;
|
|
24
|
+
};
|
|
25
|
+
scope: {
|
|
26
|
+
type: string;
|
|
27
|
+
enum: string[];
|
|
28
|
+
description: string;
|
|
29
|
+
};
|
|
30
|
+
name: {
|
|
31
|
+
type: string;
|
|
32
|
+
description: string;
|
|
33
|
+
};
|
|
34
|
+
source: {
|
|
35
|
+
type: string;
|
|
36
|
+
description: string;
|
|
37
|
+
};
|
|
38
|
+
content: {
|
|
39
|
+
type: string;
|
|
40
|
+
description: string;
|
|
41
|
+
};
|
|
42
|
+
files: {
|
|
43
|
+
type: string;
|
|
44
|
+
description: string;
|
|
45
|
+
items: {
|
|
46
|
+
type: string;
|
|
47
|
+
properties: {
|
|
48
|
+
path: {
|
|
49
|
+
type: string;
|
|
50
|
+
};
|
|
51
|
+
content: {
|
|
52
|
+
type: string;
|
|
53
|
+
};
|
|
54
|
+
};
|
|
55
|
+
required: string[];
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
required: string[];
|
|
60
|
+
};
|
|
61
|
+
};
|
|
62
|
+
constructor(options: SkillManagementToolOptions);
|
|
63
|
+
summarizeCall(input: Record<string, JSONValue>): string;
|
|
64
|
+
assessRisk(input: Record<string, JSONValue>): ToolRiskAssessment;
|
|
65
|
+
execute(input: Record<string, JSONValue>, ctx: ToolExecutionContext): Promise<ToolExecutionResult>;
|
|
66
|
+
private create;
|
|
67
|
+
private install;
|
|
68
|
+
private update;
|
|
69
|
+
private remove;
|
|
70
|
+
private exactSkill;
|
|
71
|
+
private verify;
|
|
72
|
+
private dirForScope;
|
|
73
|
+
private scopeLabel;
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=SkillManagementTool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SkillManagementTool.d.ts","sourceRoot":"","sources":["../../../src/agent/tools/SkillManagementTool.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,OAAO,EAA+B,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGjF,OAAO,EACL,SAAS,EAET,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,iBAAiB,CAAC;AAOzB,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,UAAU,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,kFAAkF;AAClF,qBAAa,mBAAoB,YAAW,SAAS;IAoDvC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAnDpC,QAAQ,CAAC,IAAI,EAAG,OAAO,CAAU;IACjC,QAAQ,CAAC,UAAU;QACjB,IAAI;QACJ,WAAW;QAMX,UAAU;YACR,IAAI;YACJ,UAAU;gBACR,MAAM;oBACJ,IAAI;oBACJ,IAAI;oBACJ,WAAW;;gBAEb,KAAK;oBACH,IAAI;oBACJ,IAAI;oBACJ,WAAW;;gBAEb,IAAI;oBACF,IAAI;oBACJ,WAAW;;gBAEb,MAAM;oBACJ,IAAI;oBACJ,WAAW;;gBAEb,OAAO;oBACL,IAAI;oBACJ,WAAW;;gBAEb,KAAK;oBACH,IAAI;oBACJ,WAAW;oBACX,KAAK;wBACH,IAAI;wBACJ,UAAU;4BACR,IAAI;gCAAI,IAAI;;4BACZ,OAAO;gCAAI,IAAI;;;wBAEjB,QAAQ;;;;YAId,QAAQ;;MAEV;IAEF,YAA6B,OAAO,EAAE,0BAA0B,EAAI;IAEpE,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,MAAM,CAStD;IAED,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,kBAAkB,CAa/D;IAEK,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CA2BvG;IAED,OAAO,CAAC,MAAM;IAgCd,OAAO,CAAC,OAAO;IAoBf,OAAO,CAAC,MAAM;IAwBd,OAAO,CAAC,MAAM;IAkBd,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,MAAM;IAMd,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,UAAU;CAGnB"}
|