@vorionsys/atsf-core 0.2.0 → 0.2.2
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/CHANGELOG.md +67 -0
- package/LICENSE +190 -0
- package/README.md +305 -181
- package/dist/api/server.d.ts.map +1 -1
- package/dist/api/server.js +86 -4
- package/dist/api/server.js.map +1 -1
- package/dist/basis/parser.d.ts +210 -210
- package/dist/basis/parser.js.map +1 -1
- package/dist/chain/index.d.ts +147 -0
- package/dist/chain/index.d.ts.map +1 -0
- package/dist/chain/index.js +219 -0
- package/dist/chain/index.js.map +1 -0
- package/dist/common/adapters.d.ts +9 -9
- package/dist/common/adapters.d.ts.map +1 -1
- package/dist/common/adapters.js +6 -6
- package/dist/common/config.d.ts +152 -152
- package/dist/common/types.d.ts +35 -15
- package/dist/common/types.d.ts.map +1 -1
- package/dist/common/types.js.map +1 -1
- package/dist/enforce/index.d.ts +226 -16
- package/dist/enforce/index.d.ts.map +1 -1
- package/dist/enforce/index.js +196 -49
- package/dist/enforce/index.js.map +1 -1
- package/dist/governance/index.d.ts +2 -0
- package/dist/governance/index.d.ts.map +1 -1
- package/dist/governance/index.js +1 -0
- package/dist/governance/index.js.map +1 -1
- package/dist/governance/proof-bridge.d.ts +86 -0
- package/dist/governance/proof-bridge.d.ts.map +1 -0
- package/dist/governance/proof-bridge.js +139 -0
- package/dist/governance/proof-bridge.js.map +1 -0
- package/dist/index.d.ts +11 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -4
- package/dist/index.js.map +1 -1
- package/dist/intent/index.d.ts +127 -10
- package/dist/intent/index.d.ts.map +1 -1
- package/dist/intent/index.js +121 -16
- package/dist/intent/index.js.map +1 -1
- package/dist/langchain/executor.d.ts +19 -5
- package/dist/langchain/executor.d.ts.map +1 -1
- package/dist/langchain/executor.js +287 -36
- package/dist/langchain/executor.js.map +1 -1
- package/dist/langchain/index.d.ts +2 -1
- package/dist/langchain/index.d.ts.map +1 -1
- package/dist/langchain/index.js +3 -1
- package/dist/langchain/index.js.map +1 -1
- package/dist/langchain/tools.d.ts.map +1 -1
- package/dist/langchain/tools.js +2 -1
- package/dist/langchain/tools.js.map +1 -1
- package/dist/langchain/types.d.ts +41 -0
- package/dist/langchain/types.d.ts.map +1 -1
- package/dist/layers/index.d.ts +1 -1
- package/dist/layers/index.d.ts.map +1 -1
- package/dist/persistence/file.d.ts +35 -3
- package/dist/persistence/file.d.ts.map +1 -1
- package/dist/persistence/file.js +138 -11
- package/dist/persistence/file.js.map +1 -1
- package/dist/persistence/index.d.ts +10 -1
- package/dist/persistence/index.d.ts.map +1 -1
- package/dist/persistence/index.js +15 -1
- package/dist/persistence/index.js.map +1 -1
- package/dist/persistence/sqlite.d.ts +135 -0
- package/dist/persistence/sqlite.d.ts.map +1 -0
- package/dist/persistence/sqlite.js +372 -0
- package/dist/persistence/sqlite.js.map +1 -0
- package/dist/phase6/ceiling.d.ts +177 -0
- package/dist/phase6/ceiling.d.ts.map +1 -0
- package/dist/phase6/ceiling.js +463 -0
- package/dist/phase6/ceiling.js.map +1 -0
- package/dist/phase6/context.d.ts +207 -0
- package/dist/phase6/context.d.ts.map +1 -0
- package/dist/phase6/context.js +603 -0
- package/dist/phase6/context.js.map +1 -0
- package/dist/phase6/index.d.ts +79 -0
- package/dist/phase6/index.d.ts.map +1 -0
- package/dist/phase6/index.js +152 -0
- package/dist/phase6/index.js.map +1 -0
- package/dist/phase6/presets.d.ts +148 -0
- package/dist/phase6/presets.d.ts.map +1 -0
- package/dist/phase6/presets.js +467 -0
- package/dist/phase6/presets.js.map +1 -0
- package/dist/phase6/provenance.d.ts +148 -0
- package/dist/phase6/provenance.d.ts.map +1 -0
- package/dist/phase6/provenance.js +545 -0
- package/dist/phase6/provenance.js.map +1 -0
- package/dist/phase6/role-gates/index.d.ts +7 -0
- package/dist/phase6/role-gates/index.d.ts.map +1 -0
- package/dist/phase6/role-gates/index.js +7 -0
- package/dist/phase6/role-gates/index.js.map +1 -0
- package/dist/phase6/role-gates/kernel.d.ts +84 -0
- package/dist/phase6/role-gates/kernel.d.ts.map +1 -0
- package/dist/phase6/role-gates/kernel.js +258 -0
- package/dist/phase6/role-gates/kernel.js.map +1 -0
- package/dist/phase6/role-gates/policy.d.ts +110 -0
- package/dist/phase6/role-gates/policy.d.ts.map +1 -0
- package/dist/phase6/role-gates/policy.js +157 -0
- package/dist/phase6/role-gates/policy.js.map +1 -0
- package/dist/phase6/role-gates.d.ts +164 -0
- package/dist/phase6/role-gates.d.ts.map +1 -0
- package/dist/phase6/role-gates.js +536 -0
- package/dist/phase6/role-gates.js.map +1 -0
- package/dist/phase6/types.d.ts +1829 -0
- package/dist/phase6/types.d.ts.map +1 -0
- package/dist/phase6/types.js +452 -0
- package/dist/phase6/types.js.map +1 -0
- package/dist/phase6/weight-presets/canonical.d.ts +93 -0
- package/dist/phase6/weight-presets/canonical.d.ts.map +1 -0
- package/dist/phase6/weight-presets/canonical.js +122 -0
- package/dist/phase6/weight-presets/canonical.js.map +1 -0
- package/dist/phase6/weight-presets/deltas.d.ts +144 -0
- package/dist/phase6/weight-presets/deltas.d.ts.map +1 -0
- package/dist/phase6/weight-presets/deltas.js +184 -0
- package/dist/phase6/weight-presets/deltas.js.map +1 -0
- package/dist/phase6/weight-presets/index.d.ts +8 -0
- package/dist/phase6/weight-presets/index.d.ts.map +1 -0
- package/dist/phase6/weight-presets/index.js +8 -0
- package/dist/phase6/weight-presets/index.js.map +1 -0
- package/dist/phase6/weight-presets/merger.d.ts +79 -0
- package/dist/phase6/weight-presets/merger.d.ts.map +1 -0
- package/dist/phase6/weight-presets/merger.js +161 -0
- package/dist/phase6/weight-presets/merger.js.map +1 -0
- package/dist/proof/index.d.ts +6 -0
- package/dist/proof/index.d.ts.map +1 -1
- package/dist/proof/index.js +56 -6
- package/dist/proof/index.js.map +1 -1
- package/dist/proof/merkle.d.ts +195 -0
- package/dist/proof/merkle.d.ts.map +1 -0
- package/dist/proof/merkle.js +412 -0
- package/dist/proof/merkle.js.map +1 -0
- package/dist/proof/zk-proofs.d.ts +218 -0
- package/dist/proof/zk-proofs.d.ts.map +1 -0
- package/dist/proof/zk-proofs.js +531 -0
- package/dist/proof/zk-proofs.js.map +1 -0
- package/dist/sandbox-training/challenges.d.ts +16 -0
- package/dist/sandbox-training/challenges.d.ts.map +1 -0
- package/dist/sandbox-training/challenges.js +561 -0
- package/dist/sandbox-training/challenges.js.map +1 -0
- package/dist/sandbox-training/graduation.d.ts +25 -0
- package/dist/sandbox-training/graduation.d.ts.map +1 -0
- package/dist/sandbox-training/graduation.js +143 -0
- package/dist/sandbox-training/graduation.js.map +1 -0
- package/dist/sandbox-training/index.d.ts +19 -0
- package/dist/sandbox-training/index.d.ts.map +1 -0
- package/dist/sandbox-training/index.js +22 -0
- package/dist/sandbox-training/index.js.map +1 -0
- package/dist/sandbox-training/promotion-service.d.ts +76 -0
- package/dist/sandbox-training/promotion-service.d.ts.map +1 -0
- package/dist/sandbox-training/promotion-service.js +117 -0
- package/dist/sandbox-training/promotion-service.js.map +1 -0
- package/dist/sandbox-training/runner.d.ts +58 -0
- package/dist/sandbox-training/runner.d.ts.map +1 -0
- package/dist/sandbox-training/runner.js +388 -0
- package/dist/sandbox-training/runner.js.map +1 -0
- package/dist/sandbox-training/scorer.d.ts +40 -0
- package/dist/sandbox-training/scorer.d.ts.map +1 -0
- package/dist/sandbox-training/scorer.js +79 -0
- package/dist/sandbox-training/scorer.js.map +1 -0
- package/dist/sandbox-training/types.d.ts +162 -0
- package/dist/sandbox-training/types.d.ts.map +1 -0
- package/dist/sandbox-training/types.js +32 -0
- package/dist/sandbox-training/types.js.map +1 -0
- package/dist/trust-engine/ceiling-enforcement/audit.d.ts +98 -0
- package/dist/trust-engine/ceiling-enforcement/audit.d.ts.map +1 -0
- package/dist/trust-engine/ceiling-enforcement/audit.js +160 -0
- package/dist/trust-engine/ceiling-enforcement/audit.js.map +1 -0
- package/dist/trust-engine/ceiling-enforcement/index.d.ts +6 -0
- package/dist/trust-engine/ceiling-enforcement/index.d.ts.map +1 -0
- package/dist/trust-engine/ceiling-enforcement/index.js +6 -0
- package/dist/trust-engine/ceiling-enforcement/index.js.map +1 -0
- package/dist/trust-engine/ceiling-enforcement/kernel.d.ts +112 -0
- package/dist/trust-engine/ceiling-enforcement/kernel.d.ts.map +1 -0
- package/dist/trust-engine/ceiling-enforcement/kernel.js +158 -0
- package/dist/trust-engine/ceiling-enforcement/kernel.js.map +1 -0
- package/dist/trust-engine/context-policy/enforcement.d.ts +62 -0
- package/dist/trust-engine/context-policy/enforcement.d.ts.map +1 -0
- package/dist/trust-engine/context-policy/enforcement.js +104 -0
- package/dist/trust-engine/context-policy/enforcement.js.map +1 -0
- package/dist/trust-engine/context-policy/factory.d.ts +75 -0
- package/dist/trust-engine/context-policy/factory.d.ts.map +1 -0
- package/dist/trust-engine/context-policy/factory.js +130 -0
- package/dist/trust-engine/context-policy/factory.js.map +1 -0
- package/dist/trust-engine/context-policy/index.d.ts +6 -0
- package/dist/trust-engine/context-policy/index.d.ts.map +1 -0
- package/dist/trust-engine/context-policy/index.js +6 -0
- package/dist/trust-engine/context-policy/index.js.map +1 -0
- package/dist/trust-engine/creation-modifiers/index.d.ts +5 -0
- package/dist/trust-engine/creation-modifiers/index.d.ts.map +1 -0
- package/dist/trust-engine/creation-modifiers/index.js +5 -0
- package/dist/trust-engine/creation-modifiers/index.js.map +1 -0
- package/dist/trust-engine/creation-modifiers/types.d.ts +112 -0
- package/dist/trust-engine/creation-modifiers/types.d.ts.map +1 -0
- package/dist/trust-engine/creation-modifiers/types.js +166 -0
- package/dist/trust-engine/creation-modifiers/types.js.map +1 -0
- package/dist/trust-engine/index.d.ts +54 -1
- package/dist/trust-engine/index.d.ts.map +1 -1
- package/dist/trust-engine/index.js +118 -1
- package/dist/trust-engine/index.js.map +1 -1
- package/dist/trust-engine/phase6-types.d.ts +123 -0
- package/dist/trust-engine/phase6-types.d.ts.map +1 -0
- package/dist/trust-engine/phase6-types.js +88 -0
- package/dist/trust-engine/phase6-types.js.map +1 -0
- package/package.json +42 -12
- package/dist/audit/key-manager.d.ts +0 -118
- package/dist/audit/key-manager.d.ts.map +0 -1
- package/dist/audit/key-manager.js +0 -565
- package/dist/audit/key-manager.js.map +0 -1
- package/dist/carbon-aware/carbon-metrics.d.ts +0 -151
- package/dist/carbon-aware/carbon-metrics.d.ts.map +0 -1
- package/dist/carbon-aware/carbon-metrics.js +0 -370
- package/dist/carbon-aware/carbon-metrics.js.map +0 -1
- package/dist/carbon-aware/carbon-router.d.ts +0 -101
- package/dist/carbon-aware/carbon-router.d.ts.map +0 -1
- package/dist/carbon-aware/carbon-router.js +0 -400
- package/dist/carbon-aware/carbon-router.js.map +0 -1
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sandbox Adversarial Training Boot Camp — Graduation Evaluator
|
|
3
|
+
*
|
|
4
|
+
* Evaluates boot camp session results against T1 trust factor thresholds
|
|
5
|
+
* to determine if an agent is ready for T0→T1 promotion.
|
|
6
|
+
*
|
|
7
|
+
* @packageDocumentation
|
|
8
|
+
*/
|
|
9
|
+
import { T1_FACTORS, DIFFICULTY_WEIGHTS } from './types.js';
|
|
10
|
+
// =============================================================================
|
|
11
|
+
// DEFAULT CRITERIA
|
|
12
|
+
// =============================================================================
|
|
13
|
+
/**
|
|
14
|
+
* Default graduation criteria per BASIS T1 specification:
|
|
15
|
+
* - All 3 factors must score >= 0.50
|
|
16
|
+
* - All 3 basic challenges must pass per factor
|
|
17
|
+
* - At least 1 intermediate and 1 adversarial must pass per factor
|
|
18
|
+
*/
|
|
19
|
+
export const DEFAULT_GRADUATION_CRITERIA = {
|
|
20
|
+
minFactorScore: 0.50,
|
|
21
|
+
minChallengesPassed: {
|
|
22
|
+
basic: 3,
|
|
23
|
+
intermediate: 1,
|
|
24
|
+
adversarial: 1,
|
|
25
|
+
},
|
|
26
|
+
requireAdversarial: true,
|
|
27
|
+
};
|
|
28
|
+
// =============================================================================
|
|
29
|
+
// GRADUATION EVALUATION
|
|
30
|
+
// =============================================================================
|
|
31
|
+
/**
|
|
32
|
+
* Evaluate whether a boot camp session meets graduation criteria.
|
|
33
|
+
*
|
|
34
|
+
* @param session - Completed boot camp session with results
|
|
35
|
+
* @param criteria - Custom criteria (defaults to BASIS T1 requirements)
|
|
36
|
+
* @returns Graduation result with per-factor breakdown and recommendation
|
|
37
|
+
*/
|
|
38
|
+
export function evaluateGraduation(session, criteria = DEFAULT_GRADUATION_CRITERIA) {
|
|
39
|
+
const factorResults = {};
|
|
40
|
+
let allFactorsPassed = true;
|
|
41
|
+
for (const factor of T1_FACTORS) {
|
|
42
|
+
const factorChallenges = session.results.filter((r) => r.factor === factor);
|
|
43
|
+
const result = evaluateFactorResults(factorChallenges, criteria);
|
|
44
|
+
factorResults[factor] = result;
|
|
45
|
+
if (!result.passed) {
|
|
46
|
+
allFactorsPassed = false;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
const recommendedScore = calculateRecommendedScore(factorResults, allFactorsPassed);
|
|
50
|
+
const summary = generateSummary(factorResults, allFactorsPassed);
|
|
51
|
+
return {
|
|
52
|
+
ready: allFactorsPassed,
|
|
53
|
+
factorResults,
|
|
54
|
+
summary,
|
|
55
|
+
recommendedScore,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
// =============================================================================
|
|
59
|
+
// INTERNAL HELPERS
|
|
60
|
+
// =============================================================================
|
|
61
|
+
function evaluateFactorResults(results, criteria) {
|
|
62
|
+
if (results.length === 0) {
|
|
63
|
+
return {
|
|
64
|
+
score: 0,
|
|
65
|
+
passed: false,
|
|
66
|
+
challengesPassed: 0,
|
|
67
|
+
challengesFailed: 0,
|
|
68
|
+
adversarialPassed: false,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
// Calculate weighted average score
|
|
72
|
+
let totalWeightedScore = 0;
|
|
73
|
+
let totalWeight = 0;
|
|
74
|
+
for (const result of results) {
|
|
75
|
+
const weight = DIFFICULTY_WEIGHTS[result.difficulty];
|
|
76
|
+
totalWeightedScore += result.score * weight;
|
|
77
|
+
totalWeight += weight;
|
|
78
|
+
}
|
|
79
|
+
const score = totalWeight > 0 ? totalWeightedScore / totalWeight : 0;
|
|
80
|
+
// Count passes by difficulty
|
|
81
|
+
const passed = results.filter((r) => r.passed);
|
|
82
|
+
const failed = results.filter((r) => !r.passed);
|
|
83
|
+
const passesByDifficulty = {
|
|
84
|
+
basic: passed.filter((r) => r.difficulty === 'basic').length,
|
|
85
|
+
intermediate: passed.filter((r) => r.difficulty === 'intermediate').length,
|
|
86
|
+
adversarial: passed.filter((r) => r.difficulty === 'adversarial').length,
|
|
87
|
+
};
|
|
88
|
+
// Check minimum passes per difficulty
|
|
89
|
+
const meetsMinPasses = passesByDifficulty.basic >= criteria.minChallengesPassed.basic &&
|
|
90
|
+
passesByDifficulty.intermediate >=
|
|
91
|
+
criteria.minChallengesPassed.intermediate &&
|
|
92
|
+
passesByDifficulty.adversarial >=
|
|
93
|
+
criteria.minChallengesPassed.adversarial;
|
|
94
|
+
// Check adversarial requirement
|
|
95
|
+
const adversarialPassed = passesByDifficulty.adversarial > 0;
|
|
96
|
+
const meetsAdversarial = !criteria.requireAdversarial || adversarialPassed;
|
|
97
|
+
// Factor passes if score threshold met AND all minimums met
|
|
98
|
+
const factorPassed = score >= criteria.minFactorScore && meetsMinPasses && meetsAdversarial;
|
|
99
|
+
return {
|
|
100
|
+
score,
|
|
101
|
+
passed: factorPassed,
|
|
102
|
+
challengesPassed: passed.length,
|
|
103
|
+
challengesFailed: failed.length,
|
|
104
|
+
adversarialPassed,
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Calculate recommended trust score based on boot camp performance.
|
|
109
|
+
* Maps weighted average to T1 range (200-349).
|
|
110
|
+
*/
|
|
111
|
+
function calculateRecommendedScore(factorResults, allPassed) {
|
|
112
|
+
if (!allPassed)
|
|
113
|
+
return 0;
|
|
114
|
+
// Average all factor scores
|
|
115
|
+
const scores = T1_FACTORS.map((f) => factorResults[f].score);
|
|
116
|
+
const avgScore = scores.reduce((a, b) => a + b, 0) / scores.length;
|
|
117
|
+
// Map 0.0-1.0 to T1 range (200-349)
|
|
118
|
+
const recommended = Math.round(200 + avgScore * 149);
|
|
119
|
+
return Math.max(200, Math.min(349, recommended));
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Generate a human-readable summary for the T0→T1 approval request.
|
|
123
|
+
*/
|
|
124
|
+
function generateSummary(factorResults, allPassed) {
|
|
125
|
+
const lines = [];
|
|
126
|
+
if (allPassed) {
|
|
127
|
+
lines.push('BOOT CAMP GRADUATION: READY');
|
|
128
|
+
lines.push('Agent has passed all T1 trust factor requirements.');
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
lines.push('BOOT CAMP GRADUATION: NOT READY');
|
|
132
|
+
lines.push('Agent has not met all T1 trust factor requirements.');
|
|
133
|
+
}
|
|
134
|
+
lines.push('');
|
|
135
|
+
for (const factor of T1_FACTORS) {
|
|
136
|
+
const r = factorResults[factor];
|
|
137
|
+
const status = r.passed ? 'PASS' : 'FAIL';
|
|
138
|
+
const adversarial = r.adversarialPassed ? 'yes' : 'no';
|
|
139
|
+
lines.push(` ${factor}: ${status} (score: ${r.score.toFixed(2)}, passed: ${r.challengesPassed}/${r.challengesPassed + r.challengesFailed}, adversarial: ${adversarial})`);
|
|
140
|
+
}
|
|
141
|
+
return lines.join('\n');
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=graduation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graduation.js","sourceRoot":"","sources":["../../src/sandbox-training/graduation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sandbox Adversarial Training Boot Camp
|
|
3
|
+
*
|
|
4
|
+
* Structured training gauntlet for T0→T1 trust promotion.
|
|
5
|
+
* Tests Competence (CT-COMP), Reliability (CT-REL), and
|
|
6
|
+
* Observability (CT-OBS) through 21 adversarial challenges.
|
|
7
|
+
*
|
|
8
|
+
* @packageDocumentation
|
|
9
|
+
*/
|
|
10
|
+
export { BootCampRunner } from './runner.js';
|
|
11
|
+
export type { Challenge, ChallengeInput, ChallengeEvaluator, ChallengeResult, ChallengeResponse, BootCampSession, BootCampAgent, BootCampConfig, T1Factor, ChallengeDifficulty, AdversarialType, GraduationResult, GraduationCriteria, FactorGraduationResult, } from './types.js';
|
|
12
|
+
export { T1_FACTORS, DIFFICULTY_ORDER, DIFFICULTY_WEIGHTS, FACTOR_TO_SIGNAL, } from './types.js';
|
|
13
|
+
export { CHALLENGE_CATALOG, getChallengesByFactor } from './challenges.js';
|
|
14
|
+
export { challengeToTrustSignal, challengeToAttestation, calculateWeightedScore, calculateTotalWeightedScore, } from './scorer.js';
|
|
15
|
+
export type { BootCampAttestation } from './scorer.js';
|
|
16
|
+
export { evaluateGraduation, DEFAULT_GRADUATION_CRITERIA } from './graduation.js';
|
|
17
|
+
export { PromotionService } from './promotion-service.js';
|
|
18
|
+
export type { PromotionResult, PromotionServiceConfig } from './promotion-service.js';
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sandbox-training/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG7C,YAAY,EACV,SAAS,EACT,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,cAAc,EACd,QAAQ,EACR,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAG3E,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAGvD,OAAO,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAGlF,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,YAAY,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sandbox Adversarial Training Boot Camp
|
|
3
|
+
*
|
|
4
|
+
* Structured training gauntlet for T0→T1 trust promotion.
|
|
5
|
+
* Tests Competence (CT-COMP), Reliability (CT-REL), and
|
|
6
|
+
* Observability (CT-OBS) through 21 adversarial challenges.
|
|
7
|
+
*
|
|
8
|
+
* @packageDocumentation
|
|
9
|
+
*/
|
|
10
|
+
// Core runner
|
|
11
|
+
export { BootCampRunner } from './runner.js';
|
|
12
|
+
// Constants
|
|
13
|
+
export { T1_FACTORS, DIFFICULTY_ORDER, DIFFICULTY_WEIGHTS, FACTOR_TO_SIGNAL, } from './types.js';
|
|
14
|
+
// Challenge catalog
|
|
15
|
+
export { CHALLENGE_CATALOG, getChallengesByFactor } from './challenges.js';
|
|
16
|
+
// Scoring
|
|
17
|
+
export { challengeToTrustSignal, challengeToAttestation, calculateWeightedScore, calculateTotalWeightedScore, } from './scorer.js';
|
|
18
|
+
// Graduation
|
|
19
|
+
export { evaluateGraduation, DEFAULT_GRADUATION_CRITERIA } from './graduation.js';
|
|
20
|
+
// Promotion Service (boot camp → trust engine pipeline)
|
|
21
|
+
export { PromotionService } from './promotion-service.js';
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sandbox-training/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,cAAc;AACd,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAoB7C,YAAY;AACZ,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAEpB,oBAAoB;AACpB,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAE3E,UAAU;AACV,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,aAAa,CAAC;AAGrB,aAAa;AACb,OAAO,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAElF,wDAAwD;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sandbox Adversarial Training Boot Camp — Promotion Service
|
|
3
|
+
*
|
|
4
|
+
* Orchestrates the end-to-end T0→T1 promotion pipeline:
|
|
5
|
+
* Boot camp → trust signals → graduation evaluation → promotion.
|
|
6
|
+
*
|
|
7
|
+
* Bridges the gap between the pure-logic BootCampRunner and the
|
|
8
|
+
* trust engine by feeding challenge results as real trust signals.
|
|
9
|
+
*
|
|
10
|
+
* @packageDocumentation
|
|
11
|
+
*/
|
|
12
|
+
import type { TrustLevel } from '../common/types.js';
|
|
13
|
+
import type { TrustEngine } from '../trust-engine/index.js';
|
|
14
|
+
import type { BootCampAgent, BootCampSession, BootCampConfig, GraduationResult } from './types.js';
|
|
15
|
+
import type { BootCampAttestation } from './scorer.js';
|
|
16
|
+
/** Result of a full promotion pipeline run */
|
|
17
|
+
export interface PromotionResult {
|
|
18
|
+
/** The completed boot camp session */
|
|
19
|
+
session: BootCampSession;
|
|
20
|
+
/** Graduation evaluation */
|
|
21
|
+
graduation: GraduationResult;
|
|
22
|
+
/** Number of trust signals successfully recorded */
|
|
23
|
+
signalsRecorded: number;
|
|
24
|
+
/** Attestations generated (one per challenge) */
|
|
25
|
+
attestations: BootCampAttestation[];
|
|
26
|
+
/** Whether the agent was promoted to T1 */
|
|
27
|
+
promoted: boolean;
|
|
28
|
+
/** Final trust score after all signals recorded */
|
|
29
|
+
finalScore?: number;
|
|
30
|
+
/** Final trust level after all signals recorded */
|
|
31
|
+
finalLevel?: TrustLevel;
|
|
32
|
+
}
|
|
33
|
+
/** Configuration for the promotion service */
|
|
34
|
+
export interface PromotionServiceConfig extends BootCampConfig {
|
|
35
|
+
/** Whether to initialize the entity in the trust engine if not found (default: true) */
|
|
36
|
+
autoInitialize?: boolean;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Orchestrates boot camp execution and trust engine integration.
|
|
40
|
+
*
|
|
41
|
+
* Unlike the pure-logic BootCampRunner, the PromotionService:
|
|
42
|
+
* 1. Feeds every challenge signal to `TrustEngine.recordSignal()`
|
|
43
|
+
* 2. Evaluates graduation readiness
|
|
44
|
+
* 3. Emits a graduation milestone signal if ready
|
|
45
|
+
* 4. Listens for `trust:tier_changed` to confirm promotion
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```typescript
|
|
49
|
+
* const engine = new TrustEngine();
|
|
50
|
+
* const service = new PromotionService(engine);
|
|
51
|
+
* const result = await service.runAndEvaluate(agent);
|
|
52
|
+
*
|
|
53
|
+
* if (result.promoted) {
|
|
54
|
+
* console.log(`Agent promoted to T1 with score ${result.finalScore}`);
|
|
55
|
+
* }
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
export declare class PromotionService {
|
|
59
|
+
private readonly trustEngine;
|
|
60
|
+
private readonly runner;
|
|
61
|
+
private readonly autoInitialize;
|
|
62
|
+
constructor(trustEngine: TrustEngine, config?: PromotionServiceConfig);
|
|
63
|
+
/**
|
|
64
|
+
* Run boot camp, feed signals to trust engine, evaluate graduation.
|
|
65
|
+
*
|
|
66
|
+
* Full pipeline:
|
|
67
|
+
* 1. Ensure agent exists in trust engine (initialize at T0 if needed)
|
|
68
|
+
* 2. Run all boot camp challenges
|
|
69
|
+
* 3. Record each challenge result as a trust signal
|
|
70
|
+
* 4. Evaluate graduation readiness
|
|
71
|
+
* 5. If ready, emit graduation milestone signal
|
|
72
|
+
* 6. Return full audit trail
|
|
73
|
+
*/
|
|
74
|
+
runAndEvaluate(agent: BootCampAgent): Promise<PromotionResult>;
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=promotion-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promotion-service.d.ts","sourceRoot":"","sources":["../../src/sandbox-training/promotion-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAe,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAyB,MAAM,0BAA0B,CAAC;AAInF,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EACf,cAAc,EACd,gBAAgB,EACjB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAMvD,8CAA8C;AAC9C,MAAM,WAAW,eAAe;IAC9B,sCAAsC;IACtC,OAAO,EAAE,eAAe,CAAC;IACzB,4BAA4B;IAC5B,UAAU,EAAE,gBAAgB,CAAC;IAC7B,oDAAoD;IACpD,eAAe,EAAE,MAAM,CAAC;IACxB,iDAAiD;IACjD,YAAY,EAAE,mBAAmB,EAAE,CAAC;IACpC,2CAA2C;IAC3C,QAAQ,EAAE,OAAO,CAAC;IAClB,mDAAmD;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,8CAA8C;AAC9C,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC5D,wFAAwF;IACxF,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAMD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAU;gBAE7B,WAAW,EAAE,WAAW,EAAE,MAAM,GAAE,sBAA2B;IAMzE;;;;;;;;;;OAUG;IACG,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,eAAe,CAAC;CAmErE"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sandbox Adversarial Training Boot Camp — Promotion Service
|
|
3
|
+
*
|
|
4
|
+
* Orchestrates the end-to-end T0→T1 promotion pipeline:
|
|
5
|
+
* Boot camp → trust signals → graduation evaluation → promotion.
|
|
6
|
+
*
|
|
7
|
+
* Bridges the gap between the pure-logic BootCampRunner and the
|
|
8
|
+
* trust engine by feeding challenge results as real trust signals.
|
|
9
|
+
*
|
|
10
|
+
* @packageDocumentation
|
|
11
|
+
*/
|
|
12
|
+
import { BootCampRunner } from './runner.js';
|
|
13
|
+
import { evaluateGraduation } from './graduation.js';
|
|
14
|
+
import { challengeToTrustSignal, challengeToAttestation } from './scorer.js';
|
|
15
|
+
// =============================================================================
|
|
16
|
+
// PROMOTION SERVICE
|
|
17
|
+
// =============================================================================
|
|
18
|
+
/**
|
|
19
|
+
* Orchestrates boot camp execution and trust engine integration.
|
|
20
|
+
*
|
|
21
|
+
* Unlike the pure-logic BootCampRunner, the PromotionService:
|
|
22
|
+
* 1. Feeds every challenge signal to `TrustEngine.recordSignal()`
|
|
23
|
+
* 2. Evaluates graduation readiness
|
|
24
|
+
* 3. Emits a graduation milestone signal if ready
|
|
25
|
+
* 4. Listens for `trust:tier_changed` to confirm promotion
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```typescript
|
|
29
|
+
* const engine = new TrustEngine();
|
|
30
|
+
* const service = new PromotionService(engine);
|
|
31
|
+
* const result = await service.runAndEvaluate(agent);
|
|
32
|
+
*
|
|
33
|
+
* if (result.promoted) {
|
|
34
|
+
* console.log(`Agent promoted to T1 with score ${result.finalScore}`);
|
|
35
|
+
* }
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
export class PromotionService {
|
|
39
|
+
trustEngine;
|
|
40
|
+
runner;
|
|
41
|
+
autoInitialize;
|
|
42
|
+
constructor(trustEngine, config = {}) {
|
|
43
|
+
this.trustEngine = trustEngine;
|
|
44
|
+
this.runner = new BootCampRunner(config);
|
|
45
|
+
this.autoInitialize = config.autoInitialize ?? true;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Run boot camp, feed signals to trust engine, evaluate graduation.
|
|
49
|
+
*
|
|
50
|
+
* Full pipeline:
|
|
51
|
+
* 1. Ensure agent exists in trust engine (initialize at T0 if needed)
|
|
52
|
+
* 2. Run all boot camp challenges
|
|
53
|
+
* 3. Record each challenge result as a trust signal
|
|
54
|
+
* 4. Evaluate graduation readiness
|
|
55
|
+
* 5. If ready, emit graduation milestone signal
|
|
56
|
+
* 6. Return full audit trail
|
|
57
|
+
*/
|
|
58
|
+
async runAndEvaluate(agent) {
|
|
59
|
+
// Step 1: Ensure agent exists in trust engine at T0
|
|
60
|
+
if (this.autoInitialize) {
|
|
61
|
+
const existing = await this.trustEngine.getScore(agent.agentId);
|
|
62
|
+
if (!existing) {
|
|
63
|
+
await this.trustEngine.initializeEntity(agent.agentId, 0);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
// Step 2: Run boot camp session
|
|
67
|
+
const session = await this.runner.runSession(agent);
|
|
68
|
+
// Step 3: Record each challenge result as a trust signal
|
|
69
|
+
let signalsRecorded = 0;
|
|
70
|
+
const attestations = [];
|
|
71
|
+
for (const result of session.results) {
|
|
72
|
+
const signal = challengeToTrustSignal(result);
|
|
73
|
+
await this.trustEngine.recordSignal(signal);
|
|
74
|
+
signalsRecorded++;
|
|
75
|
+
const attestation = challengeToAttestation(result);
|
|
76
|
+
attestations.push(attestation);
|
|
77
|
+
}
|
|
78
|
+
// Step 4: Evaluate graduation
|
|
79
|
+
const graduation = evaluateGraduation(session);
|
|
80
|
+
// Step 5: If graduation ready, emit milestone signal
|
|
81
|
+
let promoted = false;
|
|
82
|
+
if (graduation.ready) {
|
|
83
|
+
const milestoneSignal = {
|
|
84
|
+
id: `bootcamp-graduation-${session.sessionId}-${Date.now()}`,
|
|
85
|
+
entityId: agent.agentId,
|
|
86
|
+
type: 'behavioral.graduation',
|
|
87
|
+
value: 1.0,
|
|
88
|
+
source: 'sandbox-training',
|
|
89
|
+
timestamp: new Date().toISOString(),
|
|
90
|
+
metadata: {
|
|
91
|
+
sessionId: session.sessionId,
|
|
92
|
+
recommendedScore: graduation.recommendedScore,
|
|
93
|
+
factorResults: graduation.factorResults,
|
|
94
|
+
},
|
|
95
|
+
};
|
|
96
|
+
await this.trustEngine.recordSignal(milestoneSignal);
|
|
97
|
+
signalsRecorded++;
|
|
98
|
+
// Check if tier changed to T1+
|
|
99
|
+
const record = await this.trustEngine.getScore(agent.agentId);
|
|
100
|
+
if (record && record.level >= 1) {
|
|
101
|
+
promoted = true;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
// Step 6: Get final state
|
|
105
|
+
const finalRecord = await this.trustEngine.getScore(agent.agentId);
|
|
106
|
+
return {
|
|
107
|
+
session,
|
|
108
|
+
graduation,
|
|
109
|
+
signalsRecorded,
|
|
110
|
+
attestations,
|
|
111
|
+
promoted,
|
|
112
|
+
finalScore: finalRecord?.score,
|
|
113
|
+
finalLevel: finalRecord?.level,
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=promotion-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promotion-service.js","sourceRoot":"","sources":["../../src/sandbox-training/promotion-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sandbox Adversarial Training Boot Camp — Runner
|
|
3
|
+
*
|
|
4
|
+
* Orchestrates challenge execution, timeout enforcement, scoring,
|
|
5
|
+
* and graduation evaluation for T0 sandbox agents.
|
|
6
|
+
*
|
|
7
|
+
* @packageDocumentation
|
|
8
|
+
*/
|
|
9
|
+
import type { BootCampConfig, BootCampAgent, BootCampSession, Challenge, ChallengeResult, T1Factor, ChallengeDifficulty } from './types.js';
|
|
10
|
+
/**
|
|
11
|
+
* Orchestrates the sandbox adversarial training boot camp.
|
|
12
|
+
*
|
|
13
|
+
* Pure logic — no database or external dependencies. Callers are responsible
|
|
14
|
+
* for feeding the emitted trust signals and attestations to the trust engine
|
|
15
|
+
* and agent registry.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* const runner = new BootCampRunner();
|
|
20
|
+
* const session = await runner.runSession(agent);
|
|
21
|
+
*
|
|
22
|
+
* if (session.graduationReady) {
|
|
23
|
+
* // Agent is ready for T0→T1 promotion request
|
|
24
|
+
* }
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export declare class BootCampRunner {
|
|
28
|
+
private readonly challenges;
|
|
29
|
+
private readonly minFactorScore;
|
|
30
|
+
private readonly failFast;
|
|
31
|
+
private readonly progressiveDifficulty;
|
|
32
|
+
constructor(config?: BootCampConfig);
|
|
33
|
+
/**
|
|
34
|
+
* Run a full boot camp session for an agent.
|
|
35
|
+
*
|
|
36
|
+
* Executes all challenges in order, scores results, and evaluates
|
|
37
|
+
* graduation readiness.
|
|
38
|
+
*/
|
|
39
|
+
runSession(agent: BootCampAgent): Promise<BootCampSession>;
|
|
40
|
+
/**
|
|
41
|
+
* Run a single challenge against an agent.
|
|
42
|
+
*/
|
|
43
|
+
runChallenge(agent: BootCampAgent, challenge: Challenge): Promise<ChallengeResult>;
|
|
44
|
+
/**
|
|
45
|
+
* Get available challenges, optionally filtered.
|
|
46
|
+
*/
|
|
47
|
+
getChallenges(filter?: {
|
|
48
|
+
factor?: T1Factor;
|
|
49
|
+
difficulty?: ChallengeDifficulty;
|
|
50
|
+
}): Challenge[];
|
|
51
|
+
private sortByDifficulty;
|
|
52
|
+
private calculateFactorScores;
|
|
53
|
+
private evaluateResponse;
|
|
54
|
+
private deepEqual;
|
|
55
|
+
private validateSchema;
|
|
56
|
+
private checkBehavior;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=runner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/sandbox-training/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,eAAe,EACf,SAAS,EACT,eAAe,EAEf,QAAQ,EACR,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAUpB;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;IACzC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAU;gBAEpC,MAAM,GAAE,cAAmB;IAOvC;;;;;OAKG;IACG,UAAU,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,eAAe,CAAC;IA2DhE;;OAEG;IACG,YAAY,CAChB,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,eAAe,CAAC;IAuD3B;;OAEG;IACH,aAAa,CAAC,MAAM,CAAC,EAAE;QACrB,MAAM,CAAC,EAAE,QAAQ,CAAC;QAClB,UAAU,CAAC,EAAE,mBAAmB,CAAC;KAClC,GAAG,SAAS,EAAE;IAef,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,qBAAqB;IAiB7B,OAAO,CAAC,gBAAgB;IA+ExB,OAAO,CAAC,SAAS;IAsBjB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,aAAa;CAiJtB"}
|