import test from 'node:test'; import assert from 'node:assert/strict'; import { ACTIONS, GATED_ONLY } from '../src/vocabulary.mjs'; import { loadRole } from '../src/index.mjs'; import { REPO_ROLES } from './helpers.mjs'; const ROLES = ['assistant', 'chief-executive-officer', 'chief-financial-officer', 'chief-information-officer', 'chief-information-security-officer', 'chief-marketing-officer', 'chief-of-staff', 'coder', 'cto', 'pm', 'reviewer']; test('record.write is within-role for the eleven approved v2 agents, never gated-only', () => { assert.ok(ACTIONS.includes('record.write')); assert.ok(!GATED_ONLY.includes('record.write')); for (const name of ROLES) { const role = loadRole(REPO_ROLES, name); assert.equal(role.roleVersion, 2); assert.ok(role.authority.withinRole.includes('record.write'), name); assert.ok(!role.authority.crossRole.includes('record.write'), name); } });