@diff-review-system/drs 4.1.0 → 5.0.0-rc.1
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/.pi/agents/task/okf-wiki-maintainer.md +72 -0
- package/.pi/workflows/github-pr-fix-review-issues-stacked.yaml +2 -0
- package/.pi/workflows/github-pr-review-post.yaml +29 -19
- package/.pi/workflows/github-pr-review.yaml +23 -0
- package/.pi/workflows/github-pr-update-agents-md-stacked.yaml +2 -0
- package/.pi/workflows/gitlab-mr-fix-review-issues-stacked.yaml +2 -0
- package/.pi/workflows/gitlab-mr-review.yaml +6 -0
- package/.pi/workflows/gitlab-mr-update-agents-md-stacked.yaml +2 -0
- package/.pi/workflows/release-changelog-finalize.yaml +10 -0
- package/.pi/workflows/repository-wiki-check.yaml +40 -0
- package/.pi/workflows/repository-wiki-sync.yaml +187 -0
- package/.wiki-site/.vitepress/config.mts +452 -0
- package/.wiki-site/.vitepress/theme/PageLead.vue +122 -0
- package/.wiki-site/.vitepress/theme/index.ts +12 -0
- package/.wiki-site/.vitepress/theme/style.css +270 -0
- package/README.md +38 -4
- package/dist/cli/index.js +3 -127
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +0 -3
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/run-agent.d.ts +3 -0
- package/dist/cli/run-agent.d.ts.map +1 -1
- package/dist/cli/run-agent.js +56 -5
- package/dist/cli/run-agent.js.map +1 -1
- package/dist/cli/wiki.d.ts +3 -0
- package/dist/cli/wiki.d.ts.map +1 -0
- package/dist/cli/wiki.js +174 -0
- package/dist/cli/wiki.js.map +1 -0
- package/dist/cli/workflow.d.ts +2 -0
- package/dist/cli/workflow.d.ts.map +1 -1
- package/dist/cli/workflow.js +344 -31
- package/dist/cli/workflow.js.map +1 -1
- package/dist/github/client.d.ts.map +1 -1
- package/dist/github/client.js +2 -2
- package/dist/github/client.js.map +1 -1
- package/dist/github/platform-adapter.d.ts.map +1 -1
- package/dist/github/platform-adapter.js +15 -1
- package/dist/github/platform-adapter.js.map +1 -1
- package/dist/gitlab/client.d.ts +4 -0
- package/dist/gitlab/client.d.ts.map +1 -1
- package/dist/gitlab/client.js +17 -1
- package/dist/gitlab/client.js.map +1 -1
- package/dist/gitlab/platform-adapter.d.ts.map +1 -1
- package/dist/gitlab/platform-adapter.js +17 -1
- package/dist/gitlab/platform-adapter.js.map +1 -1
- package/dist/lib/agent-permissions.d.ts +44 -0
- package/dist/lib/agent-permissions.d.ts.map +1 -0
- package/dist/lib/agent-permissions.js +358 -0
- package/dist/lib/agent-permissions.js.map +1 -0
- package/dist/lib/agent-result.d.ts +2 -0
- package/dist/lib/agent-result.d.ts.map +1 -1
- package/dist/lib/comment-poster.d.ts +1 -1
- package/dist/lib/comment-poster.d.ts.map +1 -1
- package/dist/lib/comment-poster.js +38 -16
- package/dist/lib/comment-poster.js.map +1 -1
- package/dist/lib/config.d.ts +6 -1
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +17 -0
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/error-comment-poster.d.ts +1 -1
- package/dist/lib/error-comment-poster.d.ts.map +1 -1
- package/dist/lib/error-comment-poster.js +15 -7
- package/dist/lib/error-comment-poster.js.map +1 -1
- package/dist/lib/okf-wiki.d.ts +65 -0
- package/dist/lib/okf-wiki.d.ts.map +1 -0
- package/dist/lib/okf-wiki.js +647 -0
- package/dist/lib/okf-wiki.js.map +1 -0
- package/dist/lib/platform-client.d.ts +2 -0
- package/dist/lib/platform-client.d.ts.map +1 -1
- package/dist/lib/project-setup.d.ts +0 -3
- package/dist/lib/project-setup.d.ts.map +1 -1
- package/dist/lib/project-setup.js +1 -15
- package/dist/lib/project-setup.js.map +1 -1
- package/dist/lib/review-artifact.d.ts +11 -1
- package/dist/lib/review-artifact.d.ts.map +1 -1
- package/dist/lib/review-artifact.js +202 -0
- package/dist/lib/review-artifact.js.map +1 -1
- package/dist/lib/review-orchestrator.d.ts +6 -1
- package/dist/lib/review-orchestrator.d.ts.map +1 -1
- package/dist/lib/review-orchestrator.js +3 -1
- package/dist/lib/review-orchestrator.js.map +1 -1
- package/dist/lib/wiki-delta.d.ts +71 -0
- package/dist/lib/wiki-delta.d.ts.map +1 -0
- package/dist/lib/wiki-delta.js +524 -0
- package/dist/lib/wiki-delta.js.map +1 -0
- package/dist/lib/wiki-run-summary.d.ts +45 -0
- package/dist/lib/wiki-run-summary.d.ts.map +1 -0
- package/dist/lib/wiki-run-summary.js +168 -0
- package/dist/lib/wiki-run-summary.js.map +1 -0
- package/dist/lib/wiki-search.d.ts +24 -0
- package/dist/lib/wiki-search.d.ts.map +1 -0
- package/dist/lib/wiki-search.js +200 -0
- package/dist/lib/wiki-search.js.map +1 -0
- package/dist/lib/wiki-site-graph.d.ts +33 -0
- package/dist/lib/wiki-site-graph.d.ts.map +1 -0
- package/dist/lib/wiki-site-graph.js +446 -0
- package/dist/lib/wiki-site-graph.js.map +1 -0
- package/dist/lib/wiki-site-safety.d.ts +6 -0
- package/dist/lib/wiki-site-safety.d.ts.map +1 -0
- package/dist/lib/wiki-site-safety.js +83 -0
- package/dist/lib/wiki-site-safety.js.map +1 -0
- package/dist/lib/wiki-site-smoke.d.ts +16 -0
- package/dist/lib/wiki-site-smoke.d.ts.map +1 -0
- package/dist/lib/wiki-site-smoke.js +270 -0
- package/dist/lib/wiki-site-smoke.js.map +1 -0
- package/dist/lib/wiki-site.d.ts +26 -0
- package/dist/lib/wiki-site.d.ts.map +1 -0
- package/dist/lib/wiki-site.js +221 -0
- package/dist/lib/wiki-site.js.map +1 -0
- package/dist/lib/workflow/planning.d.ts +1 -0
- package/dist/lib/workflow/planning.d.ts.map +1 -1
- package/dist/lib/workflow/planning.js +53 -2
- package/dist/lib/workflow/planning.js.map +1 -1
- package/dist/lib/workflow/types.d.ts +5 -0
- package/dist/lib/workflow/types.d.ts.map +1 -1
- package/dist/lib/workflow-artifacts.d.ts.map +1 -1
- package/dist/lib/workflow-artifacts.js +23 -1
- package/dist/lib/workflow-artifacts.js.map +1 -1
- package/dist/pi/sdk.d.ts.map +1 -1
- package/dist/pi/sdk.js +270 -17
- package/dist/pi/sdk.js.map +1 -1
- package/dist/runtime/built-in-paths.d.ts +0 -1
- package/dist/runtime/built-in-paths.d.ts.map +1 -1
- package/dist/runtime/built-in-paths.js +0 -7
- package/dist/runtime/built-in-paths.js.map +1 -1
- package/dist/runtime/client.d.ts +3 -0
- package/dist/runtime/client.d.ts.map +1 -1
- package/dist/runtime/client.js +4 -0
- package/dist/runtime/client.js.map +1 -1
- package/dist/temporal/executor.d.ts.map +1 -1
- package/dist/temporal/executor.js +9 -2
- package/dist/temporal/executor.js.map +1 -1
- package/dist/temporal/retry-policy.d.ts +1 -1
- package/dist/temporal/retry-policy.d.ts.map +1 -1
- package/dist/temporal/retry-policy.js +6 -1
- package/dist/temporal/retry-policy.js.map +1 -1
- package/dist/temporal/workflows.d.ts.map +1 -1
- package/dist/temporal/workflows.js +16 -3
- package/dist/temporal/workflows.js.map +1 -1
- package/package.json +23 -13
- package/dist/lib/skills.d.ts +0 -16
- package/dist/lib/skills.d.ts.map +0 -1
- package/dist/lib/skills.js +0 -140
- package/dist/lib/skills.js.map +0 -1
package/dist/pi/sdk.js
CHANGED
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
import { randomUUID } from 'crypto';
|
|
2
2
|
import { spawn } from 'child_process';
|
|
3
|
-
import {
|
|
3
|
+
import { constants } from 'fs';
|
|
4
|
+
import { access, mkdir, readFile as readFsFile, unlink, writeFile as writeFsFile, } from 'fs/promises';
|
|
5
|
+
import { homedir } from 'os';
|
|
6
|
+
import { isAbsolute, join, relative, resolve, sep } from 'path';
|
|
7
|
+
import { fileURLToPath } from 'url';
|
|
4
8
|
import { Type } from '@sinclair/typebox';
|
|
5
|
-
import { AuthStorage, createAgentSession, DefaultResourceLoader, getAgentDir, ModelRegistry, SettingsManager, SessionManager, } from '@earendil-works/pi-coding-agent';
|
|
9
|
+
import { AuthStorage, createAgentSession, createEditToolDefinition, createFindToolDefinition, createGrepToolDefinition, createLsToolDefinition, createReadToolDefinition, createWriteToolDefinition, DefaultResourceLoader, getAgentDir, ModelRegistry, SettingsManager, SessionManager, } from '@earendil-works/pi-coding-agent';
|
|
6
10
|
import { writeJsonOutput } from '../lib/write-json-output.js';
|
|
7
|
-
import { writeArtifactOutput } from '../lib/html-artifact.js';
|
|
11
|
+
import { extractHtmlDocument, writeArtifactOutput } from '../lib/html-artifact.js';
|
|
8
12
|
import { isReviewArtifactPayload } from '../lib/review-artifact.js';
|
|
9
13
|
import { resolveWithinWorkingDir } from '../lib/path-utils.js';
|
|
14
|
+
import { AgentFilesystemAuthorizer, validateAgentPermissions, validateAgentValidation, } from '../lib/agent-permissions.js';
|
|
15
|
+
import { formatOkfValidationErrors, validateOkfBundle, validateOkfDocument, } from '../lib/okf-wiki.js';
|
|
16
|
+
import { OUTPUT_PATHS } from '../lib/output-paths.js';
|
|
10
17
|
const DEFAULT_GIT_DIFF_MAX_BYTES = 120_000;
|
|
11
18
|
const HARD_GIT_DIFF_MAX_BYTES = 500_000;
|
|
12
19
|
const GIT_DIFF_STDERR_MAX_BYTES = 16_384;
|
|
@@ -15,6 +22,44 @@ function asRecord(value) {
|
|
|
15
22
|
? value
|
|
16
23
|
: {};
|
|
17
24
|
}
|
|
25
|
+
function parseAgentPermissions(value) {
|
|
26
|
+
if (value === undefined)
|
|
27
|
+
return undefined;
|
|
28
|
+
validateAgentPermissions(value, 'Pi runtime permissions');
|
|
29
|
+
return value;
|
|
30
|
+
}
|
|
31
|
+
function parseAgentValidation(value) {
|
|
32
|
+
if (value === undefined)
|
|
33
|
+
return undefined;
|
|
34
|
+
validateAgentValidation(value, 'Pi runtime validation');
|
|
35
|
+
return value;
|
|
36
|
+
}
|
|
37
|
+
function toPosixPath(value) {
|
|
38
|
+
return sep === '/' ? value : value.split(sep).join('/');
|
|
39
|
+
}
|
|
40
|
+
function resolvePiToolPath(workingDir, requestedPath) {
|
|
41
|
+
let normalized = requestedPath.replace(/[\u00A0\u2000-\u200A\u202F\u205F\u3000]/gu, ' ');
|
|
42
|
+
if (normalized.startsWith('@'))
|
|
43
|
+
normalized = normalized.slice(1);
|
|
44
|
+
if (normalized === '~')
|
|
45
|
+
normalized = homedir();
|
|
46
|
+
else if (normalized.startsWith('~/') ||
|
|
47
|
+
(process.platform === 'win32' && normalized.startsWith('~\\'))) {
|
|
48
|
+
normalized = join(homedir(), normalized.slice(2));
|
|
49
|
+
}
|
|
50
|
+
if (/^file:\/\//u.test(normalized))
|
|
51
|
+
normalized = fileURLToPath(normalized);
|
|
52
|
+
return isAbsolute(normalized) ? resolve(normalized) : resolve(workingDir, normalized);
|
|
53
|
+
}
|
|
54
|
+
function allowsAggregateReadTools(permissions) {
|
|
55
|
+
return Boolean(permissions &&
|
|
56
|
+
(permissions.deny?.length ?? 0) === 0 &&
|
|
57
|
+
permissions.allow.some((pattern) => pattern.replaceAll('\\', '/').replace(/^\.\//u, '') === '**'));
|
|
58
|
+
}
|
|
59
|
+
function allowsFullRepositoryRead(permissions) {
|
|
60
|
+
return Boolean(allowsAggregateReadTools(permissions) &&
|
|
61
|
+
permissions?.roots.some((root) => root.replaceAll('\\', '/').replace(/\/$/u, '') === '.'));
|
|
62
|
+
}
|
|
18
63
|
function asString(value) {
|
|
19
64
|
return typeof value === 'string' ? value : undefined;
|
|
20
65
|
}
|
|
@@ -593,6 +638,11 @@ class PiSessionRuntime {
|
|
|
593
638
|
sessions = new Map();
|
|
594
639
|
sessionApi;
|
|
595
640
|
constructor(config) {
|
|
641
|
+
const permissions = parseAgentPermissions(config.permissions);
|
|
642
|
+
const validation = parseAgentValidation(config.validation);
|
|
643
|
+
if (validation && !permissions?.filesystem?.write && !permissions?.filesystem?.delete) {
|
|
644
|
+
throw new Error('Pi runtime validation requires filesystem write or delete permissions.');
|
|
645
|
+
}
|
|
596
646
|
this.runtimeConfig = {
|
|
597
647
|
tools: asRecord(config.tools),
|
|
598
648
|
agent: asRecord(config.agent),
|
|
@@ -602,6 +652,8 @@ class PiSessionRuntime {
|
|
|
602
652
|
thinkingLevel: asString(config.thinkingLevel),
|
|
603
653
|
fixChecks: parseFixChecks(config.fixChecks),
|
|
604
654
|
traceCollector: config.traceCollector,
|
|
655
|
+
permissions,
|
|
656
|
+
validation,
|
|
605
657
|
retry: asRecord(config.retry),
|
|
606
658
|
};
|
|
607
659
|
this.authStorage = AuthStorage.create();
|
|
@@ -729,30 +781,203 @@ class PiSessionRuntime {
|
|
|
729
781
|
}
|
|
730
782
|
resolveTools(_cwd, agentTools) {
|
|
731
783
|
const tools = [];
|
|
784
|
+
const filesystemPermissions = this.runtimeConfig.permissions?.filesystem;
|
|
785
|
+
const aggregateReadsAllowed = !filesystemPermissions?.read || allowsAggregateReadTools(filesystemPermissions.read);
|
|
732
786
|
if (this.isToolEnabled('Read', true, agentTools)) {
|
|
733
787
|
tools.push('read');
|
|
734
788
|
}
|
|
735
|
-
if (this.
|
|
789
|
+
if (this.runtimeConfig.permissions?.shell !== false &&
|
|
790
|
+
this.isToolEnabled('Bash', true, agentTools)) {
|
|
736
791
|
tools.push('bash');
|
|
737
792
|
}
|
|
738
|
-
if (
|
|
793
|
+
if ((!filesystemPermissions || filesystemPermissions.write !== undefined) &&
|
|
794
|
+
this.isToolEnabled('Edit', false, agentTools)) {
|
|
739
795
|
tools.push('edit');
|
|
740
796
|
}
|
|
741
|
-
if (
|
|
797
|
+
if ((!filesystemPermissions || filesystemPermissions.write !== undefined) &&
|
|
798
|
+
this.isToolEnabled('Write', false, agentTools)) {
|
|
742
799
|
tools.push('write');
|
|
743
800
|
}
|
|
744
|
-
if (this.isToolEnabled('Grep', true, agentTools)) {
|
|
801
|
+
if (aggregateReadsAllowed && this.isToolEnabled('Grep', true, agentTools)) {
|
|
745
802
|
tools.push('grep');
|
|
746
803
|
}
|
|
747
|
-
if (this.isToolEnabled('Glob', true, agentTools)) {
|
|
804
|
+
if (aggregateReadsAllowed && this.isToolEnabled('Glob', true, agentTools)) {
|
|
748
805
|
tools.push('find');
|
|
749
806
|
tools.push('ls');
|
|
750
807
|
}
|
|
751
|
-
|
|
752
|
-
|
|
808
|
+
return tools;
|
|
809
|
+
}
|
|
810
|
+
resolvePermissionTools(workingDir, agentTools) {
|
|
811
|
+
const filesystemPermissions = this.runtimeConfig.permissions?.filesystem;
|
|
812
|
+
if (!filesystemPermissions)
|
|
813
|
+
return [];
|
|
814
|
+
const authorizer = new AgentFilesystemAuthorizer(workingDir, filesystemPermissions);
|
|
815
|
+
const tools = [];
|
|
816
|
+
if (filesystemPermissions.read && this.isToolEnabled('Read', true, agentTools)) {
|
|
817
|
+
const readTool = createReadToolDefinition(workingDir, {
|
|
818
|
+
operations: {
|
|
819
|
+
access: async (filePath) => {
|
|
820
|
+
await authorizer.authorize('read', filePath);
|
|
821
|
+
await access(filePath, constants.R_OK);
|
|
822
|
+
},
|
|
823
|
+
readFile: async (filePath) => {
|
|
824
|
+
await authorizer.authorize('read', filePath);
|
|
825
|
+
return readFsFile(filePath);
|
|
826
|
+
},
|
|
827
|
+
},
|
|
828
|
+
});
|
|
829
|
+
const executeRead = readTool.execute.bind(readTool);
|
|
830
|
+
readTool.execute = async (toolCallId, params, signal, onUpdate, context) => {
|
|
831
|
+
await authorizer.authorize('read', resolvePiToolPath(workingDir, params.path));
|
|
832
|
+
return executeRead(toolCallId, params, signal, onUpdate, context);
|
|
833
|
+
};
|
|
834
|
+
tools.push(readTool);
|
|
835
|
+
}
|
|
836
|
+
if (filesystemPermissions.read && allowsAggregateReadTools(filesystemPermissions.read)) {
|
|
837
|
+
if (this.isToolEnabled('Grep', true, agentTools)) {
|
|
838
|
+
const grepTool = createGrepToolDefinition(workingDir);
|
|
839
|
+
const executeGrep = grepTool.execute.bind(grepTool);
|
|
840
|
+
grepTool.execute = async (toolCallId, params, signal, onUpdate, context) => {
|
|
841
|
+
await authorizer.authorize('read', resolvePiToolPath(workingDir, params.path ?? '.'));
|
|
842
|
+
return executeGrep(toolCallId, params, signal, onUpdate, context);
|
|
843
|
+
};
|
|
844
|
+
tools.push(grepTool);
|
|
845
|
+
}
|
|
846
|
+
if (this.isToolEnabled('Glob', true, agentTools)) {
|
|
847
|
+
const findTool = createFindToolDefinition(workingDir);
|
|
848
|
+
const executeFind = findTool.execute.bind(findTool);
|
|
849
|
+
findTool.execute = async (toolCallId, params, signal, onUpdate, context) => {
|
|
850
|
+
if (isAbsolute(params.pattern) ||
|
|
851
|
+
params.pattern.replaceAll('\\', '/').split('/').includes('..')) {
|
|
852
|
+
throw new Error(`Agent find pattern must stay within its search root: ${params.pattern}`);
|
|
853
|
+
}
|
|
854
|
+
await authorizer.authorize('read', resolvePiToolPath(workingDir, params.path ?? '.'));
|
|
855
|
+
return executeFind(toolCallId, params, signal, onUpdate, context);
|
|
856
|
+
};
|
|
857
|
+
tools.push(findTool);
|
|
858
|
+
const lsTool = createLsToolDefinition(workingDir);
|
|
859
|
+
const executeLs = lsTool.execute.bind(lsTool);
|
|
860
|
+
lsTool.execute = async (toolCallId, params, signal, onUpdate, context) => {
|
|
861
|
+
await authorizer.authorize('read', resolvePiToolPath(workingDir, params.path ?? '.'));
|
|
862
|
+
return executeLs(toolCallId, params, signal, onUpdate, context);
|
|
863
|
+
};
|
|
864
|
+
tools.push(lsTool);
|
|
865
|
+
}
|
|
866
|
+
}
|
|
867
|
+
if (filesystemPermissions.write && this.isToolEnabled('Write', false, agentTools)) {
|
|
868
|
+
const writeTool = createWriteToolDefinition(workingDir, {
|
|
869
|
+
operations: {
|
|
870
|
+
mkdir: async (directory) => mkdir(directory, { recursive: true }).then(() => undefined),
|
|
871
|
+
writeFile: async (filePath, content) => {
|
|
872
|
+
await authorizer.authorize('write', filePath);
|
|
873
|
+
this.validateProposedWrite(workingDir, filePath, content);
|
|
874
|
+
await writeFsFile(filePath, content, 'utf-8');
|
|
875
|
+
},
|
|
876
|
+
},
|
|
877
|
+
});
|
|
878
|
+
const executeWrite = writeTool.execute.bind(writeTool);
|
|
879
|
+
writeTool.execute = async (toolCallId, params, signal, onUpdate, context) => {
|
|
880
|
+
const filePath = await authorizer.authorize('write', resolvePiToolPath(workingDir, params.path));
|
|
881
|
+
this.validateProposedWrite(workingDir, filePath, params.content);
|
|
882
|
+
const result = await executeWrite(toolCallId, params, signal, onUpdate, context);
|
|
883
|
+
return this.appendAfterMutationValidation(workingDir, filePath, result);
|
|
884
|
+
};
|
|
885
|
+
tools.push(writeTool);
|
|
886
|
+
}
|
|
887
|
+
if (filesystemPermissions.write && this.isToolEnabled('Edit', false, agentTools)) {
|
|
888
|
+
const editTool = createEditToolDefinition(workingDir, {
|
|
889
|
+
operations: {
|
|
890
|
+
access: async (filePath) => {
|
|
891
|
+
if (filesystemPermissions.read)
|
|
892
|
+
await authorizer.authorize('read', filePath);
|
|
893
|
+
await access(filePath, constants.R_OK | constants.W_OK);
|
|
894
|
+
},
|
|
895
|
+
readFile: async (filePath) => {
|
|
896
|
+
if (filesystemPermissions.read)
|
|
897
|
+
await authorizer.authorize('read', filePath);
|
|
898
|
+
return readFsFile(filePath);
|
|
899
|
+
},
|
|
900
|
+
writeFile: async (filePath, content) => {
|
|
901
|
+
await authorizer.authorize('write', filePath);
|
|
902
|
+
this.validateProposedWrite(workingDir, filePath, content);
|
|
903
|
+
await writeFsFile(filePath, content, 'utf-8');
|
|
904
|
+
},
|
|
905
|
+
},
|
|
906
|
+
});
|
|
907
|
+
const executeEdit = editTool.execute.bind(editTool);
|
|
908
|
+
editTool.execute = async (toolCallId, params, signal, onUpdate, context) => {
|
|
909
|
+
const resolvedPath = resolvePiToolPath(workingDir, params.path);
|
|
910
|
+
const filePath = await authorizer.authorize('write', resolvedPath);
|
|
911
|
+
if (filesystemPermissions.read)
|
|
912
|
+
await authorizer.authorize('read', resolvedPath);
|
|
913
|
+
const result = await executeEdit(toolCallId, params, signal, onUpdate, context);
|
|
914
|
+
return this.appendAfterMutationValidation(workingDir, filePath, result);
|
|
915
|
+
};
|
|
916
|
+
tools.push(editTool);
|
|
917
|
+
}
|
|
918
|
+
if (filesystemPermissions.delete && this.isToolEnabled('delete_file', false, agentTools)) {
|
|
919
|
+
tools.push({
|
|
920
|
+
name: 'delete_file',
|
|
921
|
+
label: 'delete_file',
|
|
922
|
+
description: 'Delete one file permitted by the current workflow policy.',
|
|
923
|
+
parameters: Type.Object({ path: Type.String({ minLength: 1 }) }),
|
|
924
|
+
execute: async (_toolCallId, params) => {
|
|
925
|
+
const filePath = await authorizer.authorize('delete', params.path);
|
|
926
|
+
await unlink(filePath);
|
|
927
|
+
const result = {
|
|
928
|
+
content: [{ type: 'text', text: `Deleted ${params.path}` }],
|
|
929
|
+
details: { path: params.path },
|
|
930
|
+
};
|
|
931
|
+
return this.appendAfterMutationValidation(workingDir, filePath, result);
|
|
932
|
+
},
|
|
933
|
+
});
|
|
753
934
|
}
|
|
754
935
|
return tools;
|
|
755
936
|
}
|
|
937
|
+
validateProposedWrite(workingDir, filePath, content) {
|
|
938
|
+
for (const validator of this.runtimeConfig.validation?.afterMutation ?? []) {
|
|
939
|
+
const root = resolveWithinWorkingDir(workingDir, validator.root, 'access');
|
|
940
|
+
const relativePath = relative(root, filePath);
|
|
941
|
+
if (relativePath === '' ||
|
|
942
|
+
relativePath === '..' ||
|
|
943
|
+
relativePath.startsWith(`..${sep}`) ||
|
|
944
|
+
isAbsolute(relativePath))
|
|
945
|
+
continue;
|
|
946
|
+
if (validator.name === 'okf-document') {
|
|
947
|
+
const validation = validateOkfDocument(content, toPosixPath(relativePath));
|
|
948
|
+
if (!validation.valid) {
|
|
949
|
+
const errors = validation.errors
|
|
950
|
+
.map((issue) => `- ${issue.path ?? relativePath}: [${issue.code}] ${issue.message}`)
|
|
951
|
+
.join('\n');
|
|
952
|
+
throw new Error(`Proposed write failed ${validator.name} validation:\n${errors}`);
|
|
953
|
+
}
|
|
954
|
+
}
|
|
955
|
+
}
|
|
956
|
+
}
|
|
957
|
+
async appendAfterMutationValidation(workingDir, filePath, result) {
|
|
958
|
+
const feedback = [];
|
|
959
|
+
for (const validator of this.runtimeConfig.validation?.afterMutation ?? []) {
|
|
960
|
+
const root = resolveWithinWorkingDir(workingDir, validator.root, 'access');
|
|
961
|
+
const relativePath = relative(root, filePath);
|
|
962
|
+
if (relativePath === '' ||
|
|
963
|
+
relativePath === '..' ||
|
|
964
|
+
relativePath.startsWith(`..${sep}`) ||
|
|
965
|
+
isAbsolute(relativePath))
|
|
966
|
+
continue;
|
|
967
|
+
if (validator.name === 'okf-document') {
|
|
968
|
+
const validation = await validateOkfBundle(workingDir, validator.root);
|
|
969
|
+
feedback.push(validation.valid
|
|
970
|
+
? `OKF bundle validation passed with ${validation.warnings.length} warning(s).`
|
|
971
|
+
: `OKF bundle validation found ${validation.errors.length} error(s):\n${formatOkfValidationErrors(validation)}`);
|
|
972
|
+
}
|
|
973
|
+
}
|
|
974
|
+
if (feedback.length === 0)
|
|
975
|
+
return result;
|
|
976
|
+
return {
|
|
977
|
+
...result,
|
|
978
|
+
content: [...result.content, { type: 'text', text: feedback.join('\n') }],
|
|
979
|
+
};
|
|
980
|
+
}
|
|
756
981
|
resolveSkillSearchPaths(cwd) {
|
|
757
982
|
const configuredPaths = this.runtimeConfig.skillSearchPaths ?? [];
|
|
758
983
|
if (configuredPaths.length === 0) {
|
|
@@ -769,7 +994,12 @@ class PiSessionRuntime {
|
|
|
769
994
|
}
|
|
770
995
|
resolveCustomTools(workingDir, agentTools) {
|
|
771
996
|
const customTools = [];
|
|
772
|
-
|
|
997
|
+
const filesystemPermissions = this.runtimeConfig.permissions?.filesystem;
|
|
998
|
+
const authorizer = filesystemPermissions
|
|
999
|
+
? new AgentFilesystemAuthorizer(workingDir, filesystemPermissions)
|
|
1000
|
+
: undefined;
|
|
1001
|
+
if ((!filesystemPermissions || filesystemPermissions.write !== undefined) &&
|
|
1002
|
+
this.isToolEnabled('write_json_output', true, agentTools)) {
|
|
773
1003
|
customTools.push({
|
|
774
1004
|
name: 'write_json_output',
|
|
775
1005
|
label: 'write_json_output',
|
|
@@ -781,6 +1011,13 @@ class PiSessionRuntime {
|
|
|
781
1011
|
indent: Type.Optional(Type.Number({ minimum: 2, maximum: 8 })),
|
|
782
1012
|
}),
|
|
783
1013
|
execute: async (_toolCallId, params) => {
|
|
1014
|
+
const outputPath = OUTPUT_PATHS[params.outputType];
|
|
1015
|
+
const filePath = authorizer
|
|
1016
|
+
? await authorizer.authorize('write', outputPath)
|
|
1017
|
+
: resolveWithinWorkingDir(workingDir, outputPath, 'write');
|
|
1018
|
+
const jsonValue = typeof params.payload === 'string' ? JSON.parse(params.payload) : params.payload;
|
|
1019
|
+
const spacing = params.pretty === false ? undefined : (params.indent ?? 2);
|
|
1020
|
+
this.validateProposedWrite(workingDir, filePath, JSON.stringify(jsonValue, null, spacing));
|
|
784
1021
|
const pointer = await writeJsonOutput({
|
|
785
1022
|
outputType: params.outputType,
|
|
786
1023
|
payload: params.payload,
|
|
@@ -788,14 +1025,16 @@ class PiSessionRuntime {
|
|
|
788
1025
|
indent: params.indent,
|
|
789
1026
|
workingDir,
|
|
790
1027
|
});
|
|
791
|
-
|
|
1028
|
+
const result = {
|
|
792
1029
|
content: [{ type: 'text', text: JSON.stringify(pointer) }],
|
|
793
1030
|
details: pointer,
|
|
794
1031
|
};
|
|
1032
|
+
return this.appendAfterMutationValidation(workingDir, filePath, result);
|
|
795
1033
|
},
|
|
796
1034
|
});
|
|
797
1035
|
}
|
|
798
|
-
if (
|
|
1036
|
+
if ((!filesystemPermissions || filesystemPermissions.write !== undefined) &&
|
|
1037
|
+
this.isToolEnabled('write_artifact_output', false, agentTools)) {
|
|
799
1038
|
customTools.push({
|
|
800
1039
|
name: 'write_artifact_output',
|
|
801
1040
|
label: 'write_artifact_output',
|
|
@@ -805,19 +1044,26 @@ class PiSessionRuntime {
|
|
|
805
1044
|
content: Type.String({ minLength: 1 }),
|
|
806
1045
|
}),
|
|
807
1046
|
execute: async (_toolCallId, params) => {
|
|
1047
|
+
const filePath = authorizer
|
|
1048
|
+
? await authorizer.authorize('write', params.outputPath)
|
|
1049
|
+
: resolveWithinWorkingDir(workingDir, params.outputPath, 'write');
|
|
1050
|
+
const html = extractHtmlDocument(params.content);
|
|
1051
|
+
this.validateProposedWrite(workingDir, filePath, html);
|
|
808
1052
|
const pointer = await writeArtifactOutput({
|
|
809
1053
|
outputPath: params.outputPath,
|
|
810
1054
|
content: params.content,
|
|
811
1055
|
workingDir,
|
|
812
1056
|
});
|
|
813
|
-
|
|
1057
|
+
const result = {
|
|
814
1058
|
content: [{ type: 'text', text: JSON.stringify(pointer) }],
|
|
815
1059
|
details: pointer,
|
|
816
1060
|
};
|
|
1061
|
+
return this.appendAfterMutationValidation(workingDir, filePath, result);
|
|
817
1062
|
},
|
|
818
1063
|
});
|
|
819
1064
|
}
|
|
820
|
-
if (
|
|
1065
|
+
if ((!filesystemPermissions?.read || allowsFullRepositoryRead(filesystemPermissions.read)) &&
|
|
1066
|
+
this.isToolEnabled('git_diff', false, agentTools)) {
|
|
821
1067
|
customTools.push({
|
|
822
1068
|
name: 'git_diff',
|
|
823
1069
|
label: 'git_diff',
|
|
@@ -887,6 +1133,7 @@ class PiSessionRuntime {
|
|
|
887
1133
|
execute: async (_toolCallId, params) => {
|
|
888
1134
|
const { readFile } = await import('fs/promises');
|
|
889
1135
|
try {
|
|
1136
|
+
await authorizer?.authorize('read', params.artifactPath);
|
|
890
1137
|
const fullPath = resolveWithinWorkingDir(workingDir, params.artifactPath, 'read');
|
|
891
1138
|
const raw = JSON.parse(await readFile(fullPath, 'utf-8'));
|
|
892
1139
|
if (findingIdParamProvided(params)) {
|
|
@@ -936,7 +1183,9 @@ class PiSessionRuntime {
|
|
|
936
1183
|
},
|
|
937
1184
|
});
|
|
938
1185
|
}
|
|
939
|
-
if (this.
|
|
1186
|
+
if (this.runtimeConfig.permissions?.shell !== false &&
|
|
1187
|
+
this.isToolEnabled('drs_check', false, agentTools) &&
|
|
1188
|
+
this.runtimeConfig.fixChecks) {
|
|
940
1189
|
const configuredChecks = this.runtimeConfig.fixChecks;
|
|
941
1190
|
customTools.push({
|
|
942
1191
|
name: 'drs_check',
|
|
@@ -1008,6 +1257,7 @@ class PiSessionRuntime {
|
|
|
1008
1257
|
const resourceLoader = new DefaultResourceLoader({
|
|
1009
1258
|
cwd,
|
|
1010
1259
|
agentDir: getAgentDir(),
|
|
1260
|
+
noExtensions: this.runtimeConfig.permissions !== undefined,
|
|
1011
1261
|
noSkills: true,
|
|
1012
1262
|
additionalSkillPaths: skillSearchPaths,
|
|
1013
1263
|
skillsOverride: configuredSkillNames.size > 0
|
|
@@ -1042,7 +1292,10 @@ class PiSessionRuntime {
|
|
|
1042
1292
|
},
|
|
1043
1293
|
})
|
|
1044
1294
|
: undefined;
|
|
1045
|
-
const customTools =
|
|
1295
|
+
const customTools = [
|
|
1296
|
+
...this.resolveCustomTools(cwd, settings.tools),
|
|
1297
|
+
...this.resolvePermissionTools(cwd, settings.tools),
|
|
1298
|
+
];
|
|
1046
1299
|
const tools = [
|
|
1047
1300
|
...this.resolveTools(cwd, settings.tools),
|
|
1048
1301
|
...customTools.map((tool) => tool.name),
|
package/dist/pi/sdk.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../src/pi/sdk.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../src/pi/sdk.ts"],"names":[],"mappings":"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"}
|