feat: compile evidence-bound persona language wakes
This commit is contained in:
parent
b0970ed0d2
commit
dff2521b41
21 changed files with 359 additions and 18 deletions
|
|
@ -0,0 +1,114 @@
|
|||
import { describe, expect, it } from 'vitest'
|
||||
import type { AiModelProvider } from './aiTargets'
|
||||
import { compilePersonaLanguageGoalBinding } from './personaLanguageGoalBinding'
|
||||
import type { PersonaRepositoryBinding } from './personaRepositoryBinding'
|
||||
|
||||
const provider: AiModelProvider = {
|
||||
id: 'local-model-service',
|
||||
name: 'Local model',
|
||||
kind: 'ollama',
|
||||
base_url: null,
|
||||
api_key_storage: 'none',
|
||||
api_key_env_var: null,
|
||||
headers: null,
|
||||
models: [{
|
||||
id: 'declared-model',
|
||||
capabilities: { streaming: false, tools: false, vision: false, json_mode: true, reasoning: false },
|
||||
}],
|
||||
}
|
||||
|
||||
const repositoryBinding: PersonaRepositoryBinding = {
|
||||
personaId: 'ICE-P-ZY001',
|
||||
repositoryPath: '/persona/ice-p-zy001',
|
||||
gitHead: 'a'.repeat(40),
|
||||
repositoryClean: true,
|
||||
brainEntry: 'brain/CORE.hdlp',
|
||||
currentCheckpoint: '.hololake/persona/CURRENT.hdlp',
|
||||
humanResponsibilitySubject: 'ICE-GL∞',
|
||||
modelProviderId: 'local-model-service',
|
||||
modelId: 'declared-model',
|
||||
modelBaseUrl: 'http://localhost:11434/v1',
|
||||
organContracts: [{
|
||||
organId: 'fact-sense.repository',
|
||||
kind: 'FACT_SENSE',
|
||||
mode: 'read-only',
|
||||
paths: ['brain/CORE.hdlp', 'brain/B0.hdlp'],
|
||||
inputSchema: 'hololake.pncc-fact-question/v1',
|
||||
outputSchema: 'hololake.pncc-fact-result/v1',
|
||||
permissions: ['READ_DECLARED_PATHS', 'RUN_MANIFEST_PINNED_MODEL'],
|
||||
modelInferenceAllowed: true,
|
||||
realityActionsAllowed: false,
|
||||
activatable: true,
|
||||
implementationState: 'IMPLEMENTED',
|
||||
}],
|
||||
cognitiveGravity: {
|
||||
schema: 'hololake.persona-cognitive-gravity-evidence/v1',
|
||||
subjectPersonaId: 'ICE-P-ZY001',
|
||||
sourcePath: 'brain/B0.hdlp',
|
||||
sourceHash: 'b'.repeat(64),
|
||||
frameSchema: 'guanghu.zhuyuan-cognitive-gravity-frame/v1',
|
||||
},
|
||||
}
|
||||
|
||||
const deviceIdentityReceipt = {
|
||||
schema: 'guanghu.router-device/v1',
|
||||
device_id: 'HL-12345678-1234-1234-1234-123456789abc',
|
||||
public_key: 'public-key-evidence',
|
||||
}
|
||||
|
||||
const common = {
|
||||
repositoryBinding,
|
||||
provider,
|
||||
modelId: 'declared-model',
|
||||
deviceIdentityReceipt,
|
||||
requestId: 'PNCC-LANGUAGE-001',
|
||||
modelInstanceId: 'MODEL-INSTANCE-001',
|
||||
developmentId: 'DEV-20260811-010',
|
||||
sourceLanguageAnchor: 'HLP-CURRENT-ARCH-001@2026-08-12.4',
|
||||
}
|
||||
|
||||
describe('compilePersonaLanguageGoalBinding', () => {
|
||||
it('materializes the catalog runtime endpoint and exact read-only wake evidence', () => {
|
||||
const binding = compilePersonaLanguageGoalBinding(common)
|
||||
expect(binding.provider.base_url).toBe('http://localhost:11434/v1')
|
||||
expect(binding.wake).toMatchObject({
|
||||
repositoryPath: '/persona/ice-p-zy001',
|
||||
expectedPersonaId: 'ICE-P-ZY001',
|
||||
nodeId: deviceIdentityReceipt.device_id,
|
||||
organId: 'fact-sense.repository',
|
||||
attribution: {
|
||||
humanResponsibilitySubject: 'ICE-GL∞',
|
||||
personaCognitiveAuthor: 'ICE-P-ZY001',
|
||||
authorizationScope: 'LOCAL_PERSONA_PARTNER_FACT_SENSE',
|
||||
},
|
||||
})
|
||||
})
|
||||
|
||||
it('refuses a dirty persona root', () => {
|
||||
expect(() => compilePersonaLanguageGoalBinding({
|
||||
...common, repositoryBinding: { ...repositoryBinding, repositoryClean: false },
|
||||
})).toThrow('PERSONA_LANGUAGE_REPOSITORY_DIRTY')
|
||||
})
|
||||
|
||||
it('refuses model or endpoint drift from the manifest', () => {
|
||||
expect(() => compilePersonaLanguageGoalBinding({
|
||||
...common, provider: { ...provider, base_url: 'http://127.0.0.1:1234/v1' },
|
||||
})).toThrow('PERSONA_LANGUAGE_MODEL_BINDING_MISMATCH')
|
||||
})
|
||||
|
||||
it('refuses an unregistered device receipt', () => {
|
||||
expect(() => compilePersonaLanguageGoalBinding({
|
||||
...common, deviceIdentityReceipt: { schema: 'wrong', device_id: 'LOCAL' },
|
||||
})).toThrow('PERSONA_LANGUAGE_DEVICE_IDENTITY_INVALID')
|
||||
})
|
||||
|
||||
it('refuses ambiguous fact-sense authority', () => {
|
||||
expect(() => compilePersonaLanguageGoalBinding({
|
||||
...common,
|
||||
repositoryBinding: {
|
||||
...repositoryBinding,
|
||||
organContracts: [...repositoryBinding.organContracts, { ...repositoryBinding.organContracts[0], organId: 'fact-sense.second' }],
|
||||
},
|
||||
})).toThrow('PERSONA_LANGUAGE_FACT_ORGAN_BINDING_AMBIGUOUS')
|
||||
})
|
||||
})
|
||||
Loading…
Reference in a new issue