feat(plugins): move game resources behind marketplace

This commit is contained in:
2026-08-31 10:45:20 +08:00
parent 62304dc85b
commit fe656dd865
33 changed files with 1413 additions and 1018 deletions

View File

@@ -143,6 +143,13 @@ describe('Marketplace Release A package contract', () => {
})).toThrow(CodingPluginManifestError);
});
it('allows a hosted write tool to request the Main-owned project write lease', () => {
const source = structuredClone(HOSTED_CAPABILITY) as Record<string, unknown>;
(source.tools as Array<Record<string, unknown>>)[0]!.projectWriteLease = true;
expect(parse(source).tools[0]?.projectWriteLease).toBe(true);
});
it.each([
['unknown capability field', (value: Record<string, unknown>) => { value.unknown = true; }],
['unknown runtime field', (value: Record<string, unknown>) => {
@@ -162,8 +169,10 @@ describe('Marketplace Release A package contract', () => {
['hosted foreign permission namespace', (value: Record<string, unknown>) => {
(value.tools as Array<Record<string, unknown>>)[0]!.permissions = ['hosted.makelore.example.generate'];
}],
['hosted project lease', (value: Record<string, unknown>) => {
(value.tools as Array<Record<string, unknown>>)[0]!.projectWriteLease = true;
['hosted read-only project lease', (value: Record<string, unknown>) => {
const tool = (value.tools as Array<Record<string, unknown>>)[0]!;
tool.mutation = 'read';
tool.projectWriteLease = true;
}],
['unbounded schema', (value: Record<string, unknown>) => {
const tool = (value.tools as Array<Record<string, unknown>>)[0]!;