feat(ql3): establish 3.0 incubation baseline

This commit is contained in:
whyour
2026-08-12 00:25:26 +08:00
parent 4bf92dcfeb
commit c699c32461
2817 changed files with 779642 additions and 653 deletions
@@ -0,0 +1,293 @@
const assert = require('node:assert/strict');
const { readFileSync } = require('node:fs');
const { join } = require('node:path');
const { test } = require('node:test');
const {
InvalidPluginPackageQuarantineError,
MAX_PLUGIN_PACKAGE_QUARANTINE_TASK_WITHDRAWALS,
assertPluginPackageWithdrawalMatchesEvent,
createPluginPackageQuarantineEvent,
createPluginPackageWithdrawalReceipt,
normalizePluginPackageQuarantineEvent,
normalizePluginPackageWithdrawalReceipt,
pluginPackageQuarantineMutationId,
pluginPackageQuarantineTaskMutationId,
} = require('../dist/plugin-package/lifecycle/pluginPackageQuarantine');
const digest = (value) => value.repeat(64);
function target(state = 'active') {
return {
projectId: 'default',
packageName: 'example-monitor',
installationId: 'install-example-v1',
lockDigest: digest('a'),
installState: state,
installVersion: 4,
installRecordDigest: digest('b'),
activeLockDigest: state === 'active' ? digest('a') : digest('c'),
};
}
function eventInput(overrides = {}) {
return {
mutationId: 'quarantine-example-v1',
revocationReceiptDigest: digest('d'),
impactDigest: digest('e'),
target: target(),
proposer: { type: 'user', id: 'owner-a' },
confirmer: { type: 'user', id: 'owner-b' },
authorizationMode: 'dual_control',
reasonCode: 'confirmed_key_compromise',
occurredAtMs: 100,
...overrides,
};
}
function activeCapability(overrides = {}) {
return {
status: 'withdrawn',
taskWithdrawals: [
{
taskId: 'collect',
previousRevision: 2,
disabledRevision: 3,
previousContentDigest: digest('f'),
disabledContentDigest: digest('1'),
},
{
taskId: 'report',
previousRevision: 7,
disabledRevision: 8,
previousContentDigest: digest('2'),
disabledContentDigest: digest('3'),
},
],
previousActiveVectorDigest: digest('4'),
currentActiveVectorDigest: digest('5'),
currentToolSnapshotDigest: digest('6'),
retainedSourceCount: 2,
...overrides,
};
}
test('binds dual-control quarantine to one exact active capability withdrawal', () => {
const event = createPluginPackageQuarantineEvent(eventInput());
const reordered = createPluginPackageQuarantineEvent({
...eventInput(),
target: {
activeLockDigest: digest('a'),
installRecordDigest: digest('b'),
installVersion: 4,
installState: 'active',
lockDigest: digest('a'),
installationId: 'install-example-v1',
packageName: 'example-monitor',
projectId: 'default',
},
});
assert.equal(reordered.eventDigest, event.eventDigest);
const receipt = createPluginPackageWithdrawalReceipt({
eventDigest: event.eventDigest,
target: event.target,
capability: activeCapability(),
committedAtMs: 101,
});
assert.deepEqual(normalizePluginPackageQuarantineEvent(event), event);
assert.deepEqual(normalizePluginPackageWithdrawalReceipt(receipt), receipt);
assert.doesNotThrow(() =>
assertPluginPackageWithdrawalMatchesEvent(event, receipt),
);
assert.equal(receipt.capability.taskWithdrawals.length, 2);
assert.notEqual(
receipt.capability.previousActiveVectorDigest,
receipt.capability.currentActiveVectorDigest,
);
});
test('publishes quarantine only through its explicit subpath', () => {
const root = require('../dist');
assert.equal(root.createPluginPackageQuarantineEvent, undefined);
const manifest = JSON.parse(
readFileSync(join(__dirname, '../package.json'), 'utf8'),
);
assert.deepEqual(manifest.exports['./plugin-package-quarantine'], {
types: './dist/plugin-package/lifecycle/pluginPackageQuarantine.d.ts',
require: './dist/plugin-package/lifecycle/pluginPackageQuarantine.js',
default: './dist/plugin-package/lifecycle/pluginPackageQuarantine.js',
});
});
test('requires distinct subjects for dual-control and permits explicit break-glass', () => {
assert.throws(
() =>
createPluginPackageQuarantineEvent(
eventInput({
confirmer: { type: 'user', id: 'owner-a' },
}),
),
/distinct subjects/,
);
const event = createPluginPackageQuarantineEvent(
eventInput({
confirmer: { type: 'user', id: 'owner-a' },
authorizationMode: 'break_glass',
reasonCode: 'suspected_key_compromise',
}),
);
assert.equal(event.authorizationMode, 'break_glass');
});
test('records non-active locks without inventing Task or Tool withdrawal', () => {
for (const state of ['queued', 'staged', 'activating']) {
const event = createPluginPackageQuarantineEvent(
eventInput({ target: target(state) }),
);
const receipt = createPluginPackageWithdrawalReceipt({
eventDigest: event.eventDigest,
target: event.target,
capability: {
status: 'not_active',
taskWithdrawals: [],
previousActiveVectorDigest: null,
currentActiveVectorDigest: null,
currentToolSnapshotDigest: null,
retainedSourceCount: 0,
},
committedAtMs: 101,
});
assert.doesNotThrow(() =>
assertPluginPackageWithdrawalMatchesEvent(event, receipt),
);
}
const activeEvent = createPluginPackageQuarantineEvent(eventInput());
assert.throws(
() =>
createPluginPackageWithdrawalReceipt({
eventDigest: activeEvent.eventDigest,
target: activeEvent.target,
capability: {
status: 'not_active',
taskWithdrawals: [],
previousActiveVectorDigest: null,
currentActiveVectorDigest: null,
currentToolSnapshotDigest: null,
retainedSourceCount: 0,
},
committedAtMs: 101,
}),
/inconsistent/,
);
});
test('fails closed on tampering, unsorted tasks and reviewed bounds', () => {
const event = createPluginPackageQuarantineEvent(eventInput());
assert.throws(
() =>
normalizePluginPackageQuarantineEvent({
...event,
impactDigest: digest('9'),
}),
/eventDigest/,
);
assert.throws(
() =>
createPluginPackageWithdrawalReceipt({
eventDigest: event.eventDigest,
target: event.target,
capability: activeCapability({
taskWithdrawals: [...activeCapability().taskWithdrawals].reverse(),
}),
committedAtMs: 101,
}),
/unique and sorted/,
);
assert.throws(
() =>
createPluginPackageWithdrawalReceipt({
eventDigest: event.eventDigest,
target: event.target,
capability: activeCapability({
taskWithdrawals: Array.from(
{
length: MAX_PLUGIN_PACKAGE_QUARANTINE_TASK_WITHDRAWALS + 1,
},
(_, index) => ({
taskId: `task-${index.toString().padStart(3, '0')}`,
previousRevision: 1,
disabledRevision: 2,
previousContentDigest: digest('7'),
disabledContentDigest: digest('8'),
}),
),
}),
committedAtMs: 101,
}),
/disposition is invalid/,
);
const receipt = createPluginPackageWithdrawalReceipt({
eventDigest: event.eventDigest,
target: event.target,
capability: activeCapability(),
committedAtMs: 101,
});
assert.throws(
() =>
normalizePluginPackageWithdrawalReceipt({
...receipt,
committedAtMs: 102,
}),
/receiptDigest/,
);
assert.throws(
() =>
assertPluginPackageWithdrawalMatchesEvent(
event,
createPluginPackageWithdrawalReceipt({
eventDigest: event.eventDigest,
target: { ...event.target, installVersion: 5 },
capability: activeCapability(),
committedAtMs: 101,
}),
),
InvalidPluginPackageQuarantineError,
);
});
test('derives stable distinct UUID task mutation identities from quarantine evidence', () => {
const event = createPluginPackageQuarantineEvent(eventInput());
const collect = pluginPackageQuarantineTaskMutationId(
event.eventDigest,
'collect',
);
assert.match(
collect,
/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-a[0-9a-f]{3}-[0-9a-f]{12}$/,
);
assert.equal(
collect,
pluginPackageQuarantineTaskMutationId(event.eventDigest, 'collect'),
);
assert.notEqual(
collect,
pluginPackageQuarantineTaskMutationId(event.eventDigest, 'report'),
);
assert.match(
pluginPackageQuarantineMutationId(
event.revocationReceiptDigest,
event.target,
),
/^quarantine:[0-9a-f]{64}$/,
);
assert.equal(
pluginPackageQuarantineMutationId(
event.revocationReceiptDigest,
event.target,
),
pluginPackageQuarantineMutationId(
event.revocationReceiptDigest,
event.target,
),
);
});