vibeostheog 0.23.33 → 0.23.34
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 +5 -0
- package/package.json +3 -3
- package/src/index.js +1 -31
- package/src/lib/trinity-tool.js +6 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
## 0.23.34
|
|
2
|
+
- fix: restore footer ML-driven display + 6 integration tests calling _appendFooter directly to prevent regression from stale .ts compilation
|
|
3
|
+
- fix: wire ensureProjectSkill into tool.execute.before and trinity guard
|
|
4
|
+
|
|
5
|
+
|
|
1
6
|
## 0.23.33
|
|
2
7
|
- feat: wire forensic + audit into ML pipeline — classifyTurnSimple detects security/forensic intent, autoSelectMode returns audit/forensic mode
|
|
3
8
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vibeostheog",
|
|
3
|
-
"version": "0.23.
|
|
3
|
+
"version": "0.23.34",
|
|
4
4
|
"description": "Cost-aware delegation enforcer for OpenCode. Tracks model usage, routes Task subagents to cheaper tiers, surfaces cumulative savings in chat. Includes research audit, reporting framework, project memory, progressive scratchpad decadence, and trinity CLI for brain/medium/cheap slot switching.",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"release": "node scripts/release.mjs",
|
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
"checkpoint:validate": "node scripts/checkpoint-validate.mjs",
|
|
15
15
|
"test:scripts": "node --test scripts/tests/checkpoint-validate.test.mjs tests/release-pack.test.mjs",
|
|
16
16
|
"ts:audit": "node scripts/ts-audit.mjs",
|
|
17
|
-
"test": "VIBEOS_MCP_PORT=0 node --test --test-timeout=240000 tests/deep_integration.test.mjs tests/production_regressions.test.mjs tests/release_hardening_tigerteam.test.mjs tests/test_api_migration.neutral.test.mjs tests/test_const_assignment_regression.test.mjs tests/test_delegation_enforcer.test.mjs tests/test_diagnose_cmd.test.mjs tests/test_install_and_recovery.test.mjs tests/test_internals_stress_patterns_offtopic.test.mjs tests/test_saveos_e2e_cleanup.test.mjs tests/test_tdd_enforcer.test.mjs tests/test_10fixes_regression.test.mjs tests/test_cross_session_regression.test.mjs tests/test_mega_all_fixes.test.mjs tests/test_smart_cache_regression.test.mjs src/tests/*.test.js src/utils/tests/*.test.mjs \"src/vibeOS-lib/tests/auto-select-mode.test.mjs\" \"src/vibeOS-lib/tests/blackbox-regression.test.mjs\" \"src/vibeOS-lib/tests/blackbox-smoke.test.mjs\" \"src/vibeOS-lib/tests/budget-first-mode.test.mjs\" \"src/vibeOS-lib/tests/flow-enforcer.test.mjs\" \"src/vibeOS-lib/tests/flow-secrets.test.mjs\" \"src/vibeOS-lib/tests/session-metrics.test.mjs\" \"src/vibeOS-lib/tests/test_stress.test.mjs\" tests/test_trinity_mega_regression.test.mjs tests/test_multisession_mega.test.mjs tests/test_blackbox_default_enabled.test.mjs tests/test_mega_regressions.test.mjs tests/test_agent_mode_integration.test.mjs tests/test_patterns_telemetry_integration.test.mjs tests/test_footer_dynamic_integration.test.mjs tests/test_ml_pipeline_e2e.test.mjs tests/test_vibeultrax_pipeline_integration.test.mjs tests/test_cv_ml_integration.test.mjs src/lib/hooks/tests/chat-transform-cv-gate.test.js src/lib/hooks/tests/sync-control-settings.test.mjs",
|
|
18
|
-
"test:ci": "VIBEOS_MCP_PORT=0 node --test --test-timeout=120000 tests/production_regressions.test.mjs tests/release_hardening_tigerteam.test.mjs tests/test_const_assignment_regression.test.mjs tests/test_diagnose_cmd.test.mjs tests/test_install_and_recovery.test.mjs tests/test_saveos_e2e_cleanup.test.mjs tests/test_tdd_enforcer.test.mjs tests/test_10fixes_regression.test.mjs tests/test_cross_session_regression.test.mjs tests/test_mega_all_fixes.test.mjs tests/test_smart_cache_regression.test.mjs src/tests/*.test.js src/utils/tests/*.test.mjs \"src/vibeOS-lib/tests/auto-select-mode.test.mjs\" \"src/vibeOS-lib/tests/blackbox-regression.test.mjs\" \"src/vibeOS-lib/tests/blackbox-smoke.test.mjs\" \"src/vibeOS-lib/tests/budget-first-mode.test.mjs\" \"src/vibeOS-lib/tests/flow-enforcer.test.mjs\" \"src/vibeOS-lib/tests/flow-secrets.test.mjs\" \"src/vibeOS-lib/tests/session-metrics.test.mjs\" \"src/vibeOS-lib/tests/test_stress.test.mjs\" tests/test_blackbox_default_enabled.test.mjs tests/test_mega_regressions.test.mjs tests/test_delegation_enforcer.test.mjs tests/test_first_install_autoconfig.mjs tests/deep_integration.test.mjs tests/e2e_workflows.test.mjs tests/integration_cross_module.test.mjs tests/privacy_telemetry.test.mjs tests/release-pack.test.mjs tests/test_api_migration.neutral.test.mjs tests/test_internals_stress_patterns_offtopic.test.mjs tests/test_ml_cache_mega.test.mjs tests/test_mode_brand.test.mjs tests/test_multisession_mega.test.mjs tests/test_trinity_mega_regression.test.mjs tests/test_agent_mode_integration.test.mjs tests/test_patterns_telemetry_integration.test.mjs tests/test_footer_dynamic_integration.test.mjs tests/test_ml_pipeline_e2e.test.mjs tests/test_vibeultrax_pipeline_integration.test.mjs tests/test_cv_ml_integration.test.mjs src/lib/hooks/tests/chat-transform-cv-gate.test.js src/lib/hooks/tests/sync-control-settings.test.mjs",
|
|
17
|
+
"test": "VIBEOS_MCP_PORT=0 node --test --test-timeout=240000 tests/deep_integration.test.mjs tests/production_regressions.test.mjs tests/release_hardening_tigerteam.test.mjs tests/test_api_migration.neutral.test.mjs tests/test_const_assignment_regression.test.mjs tests/test_delegation_enforcer.test.mjs tests/test_diagnose_cmd.test.mjs tests/test_install_and_recovery.test.mjs tests/test_internals_stress_patterns_offtopic.test.mjs tests/test_saveos_e2e_cleanup.test.mjs tests/test_tdd_enforcer.test.mjs tests/test_10fixes_regression.test.mjs tests/test_cross_session_regression.test.mjs tests/test_mega_all_fixes.test.mjs tests/test_smart_cache_regression.test.mjs src/tests/*.test.js src/utils/tests/*.test.mjs \"src/vibeOS-lib/tests/auto-select-mode.test.mjs\" \"src/vibeOS-lib/tests/blackbox-regression.test.mjs\" \"src/vibeOS-lib/tests/blackbox-smoke.test.mjs\" \"src/vibeOS-lib/tests/budget-first-mode.test.mjs\" \"src/vibeOS-lib/tests/flow-enforcer.test.mjs\" \"src/vibeOS-lib/tests/flow-secrets.test.mjs\" \"src/vibeOS-lib/tests/session-metrics.test.mjs\" \"src/vibeOS-lib/tests/test_stress.test.mjs\" tests/test_trinity_mega_regression.test.mjs tests/test_multisession_mega.test.mjs tests/test_blackbox_default_enabled.test.mjs tests/test_mega_regressions.test.mjs tests/test_footer_alert_regression.test.mjs tests/test_agent_mode_integration.test.mjs tests/test_patterns_telemetry_integration.test.mjs tests/test_footer_dynamic_integration.test.mjs tests/test_ml_pipeline_e2e.test.mjs tests/test_vibeultrax_pipeline_integration.test.mjs tests/test_cv_ml_integration.test.mjs src/lib/hooks/tests/chat-transform-cv-gate.test.js src/lib/hooks/tests/sync-control-settings.test.mjs",
|
|
18
|
+
"test:ci": "VIBEOS_MCP_PORT=0 node --test --test-timeout=120000 tests/production_regressions.test.mjs tests/release_hardening_tigerteam.test.mjs tests/test_const_assignment_regression.test.mjs tests/test_diagnose_cmd.test.mjs tests/test_install_and_recovery.test.mjs tests/test_saveos_e2e_cleanup.test.mjs tests/test_tdd_enforcer.test.mjs tests/test_10fixes_regression.test.mjs tests/test_cross_session_regression.test.mjs tests/test_mega_all_fixes.test.mjs tests/test_smart_cache_regression.test.mjs src/tests/*.test.js src/utils/tests/*.test.mjs \"src/vibeOS-lib/tests/auto-select-mode.test.mjs\" \"src/vibeOS-lib/tests/blackbox-regression.test.mjs\" \"src/vibeOS-lib/tests/blackbox-smoke.test.mjs\" \"src/vibeOS-lib/tests/budget-first-mode.test.mjs\" \"src/vibeOS-lib/tests/flow-enforcer.test.mjs\" \"src/vibeOS-lib/tests/flow-secrets.test.mjs\" \"src/vibeOS-lib/tests/session-metrics.test.mjs\" \"src/vibeOS-lib/tests/test_stress.test.mjs\" tests/test_blackbox_default_enabled.test.mjs tests/test_mega_regressions.test.mjs tests/test_delegation_enforcer.test.mjs tests/test_first_install_autoconfig.mjs tests/deep_integration.test.mjs tests/e2e_workflows.test.mjs tests/integration_cross_module.test.mjs tests/privacy_telemetry.test.mjs tests/release-pack.test.mjs tests/test_api_migration.neutral.test.mjs tests/test_internals_stress_patterns_offtopic.test.mjs tests/test_ml_cache_mega.test.mjs tests/test_mode_brand.test.mjs tests/test_multisession_mega.test.mjs tests/test_trinity_mega_regression.test.mjs tests/test_footer_alert_regression.test.mjs tests/test_agent_mode_integration.test.mjs tests/test_patterns_telemetry_integration.test.mjs tests/test_footer_dynamic_integration.test.mjs tests/test_ml_pipeline_e2e.test.mjs tests/test_vibeultrax_pipeline_integration.test.mjs tests/test_cv_ml_integration.test.mjs src/lib/hooks/tests/chat-transform-cv-gate.test.js src/lib/hooks/tests/sync-control-settings.test.mjs",
|
|
19
19
|
"guard": "bash plugins/vibetheog-guard/scripts/run-guard.sh",
|
|
20
20
|
"guard:full": "VIBETHEOG_GUARD_FULL=1 bash plugins/vibetheog-guard/scripts/run-guard.sh",
|
|
21
21
|
"hook:precommit": "bash plugins/vibetheog-guard/hooks/pre-commit.sh",
|
package/src/index.js
CHANGED
|
@@ -68,7 +68,6 @@ let context7Seen = new Set();
|
|
|
68
68
|
let _prevOutputText = "";
|
|
69
69
|
let _deferredBootstrapDone = false;
|
|
70
70
|
let _skillsEnsured = new Set();
|
|
71
|
-
|
|
72
71
|
let _runDeferredStartupBootstrap = null;
|
|
73
72
|
const SAVE_EST = {
|
|
74
73
|
WRITE_EDIT: 0.005,
|
|
@@ -433,7 +432,7 @@ export async function DelegationEnforcer({ client, directory } = {}) {
|
|
|
433
432
|
getBlackboxResolution, scoreStress, applySlot, saveOptimizationMode,
|
|
434
433
|
getFlowWarns, projectFingerprint, loadProjectState: loadProjectStateStable, saveProjectState: saveProjectStateStable,
|
|
435
434
|
ensureProjectBucket, mergeProjectBucket, clearProjectPatterns,
|
|
436
|
-
projectPatternRows, promotedProjectPatterns, detectTechStack, ensureProjectDocs,
|
|
435
|
+
projectPatternRows, promotedProjectPatterns, detectTechStack, ensureProjectDocs, ensureProjectSkill,
|
|
437
436
|
discoverAvailableModels, classifyAndRankModels, modelToCcAlias, probeModel,
|
|
438
437
|
setBlackboxEnabled, loadBlackboxState, saveBlackboxState,
|
|
439
438
|
reportsIndex: reportsIndexStable, saveReportsIndex: saveReportsIndexStable, backupFile: backupFileStable, writeSessionSlot, writeSessionOptMode, _refreshModel,
|
|
@@ -460,7 +459,6 @@ export async function DelegationEnforcer({ client, directory } = {}) {
|
|
|
460
459
|
_skillsEnsured.add(hookFp);
|
|
461
460
|
} catch (_e) {}
|
|
462
461
|
}
|
|
463
|
-
|
|
464
462
|
onToolExecuteBefore._directory = directory;
|
|
465
463
|
return onToolExecuteBefore(input, output);
|
|
466
464
|
},
|
|
@@ -475,13 +473,6 @@ export async function DelegationEnforcer({ client, directory } = {}) {
|
|
|
475
473
|
},
|
|
476
474
|
"experimental.chat.messages.transform": async (_input, output) => {
|
|
477
475
|
ensureDeferredBootstrap();
|
|
478
|
-
if (directory && hookFp && !_skillsEnsured.has(hookFp)) {
|
|
479
|
-
try {
|
|
480
|
-
ensureProjectSkill(directory, hookFp);
|
|
481
|
-
_skillsEnsured.add(hookFp);
|
|
482
|
-
} catch (_e) {}
|
|
483
|
-
}
|
|
484
|
-
|
|
485
476
|
return onMessagesTransform(_input, output);
|
|
486
477
|
},
|
|
487
478
|
"experimental.session.compacting": async (_input, output) => {
|
|
@@ -494,13 +485,6 @@ export async function DelegationEnforcer({ client, directory } = {}) {
|
|
|
494
485
|
setCurrentProjectName(directory ? directory.split("/").pop() : "unknown");
|
|
495
486
|
}
|
|
496
487
|
ensureDeferredBootstrap();
|
|
497
|
-
if (directory && hookFp && !_skillsEnsured.has(hookFp)) {
|
|
498
|
-
try {
|
|
499
|
-
ensureProjectSkill(directory, hookFp);
|
|
500
|
-
_skillsEnsured.add(hookFp);
|
|
501
|
-
} catch (_e) {}
|
|
502
|
-
}
|
|
503
|
-
|
|
504
488
|
onSystemTransform._directory = directory;
|
|
505
489
|
onSystemTransform._activeJob = activeJob;
|
|
506
490
|
onSystemTransform._briefedProjects = systemBriefedProjects;
|
|
@@ -523,13 +507,6 @@ export async function DelegationEnforcer({ client, directory } = {}) {
|
|
|
523
507
|
setCurrentProjectName(directory ? directory.split("/").pop() : "unknown");
|
|
524
508
|
}
|
|
525
509
|
ensureDeferredBootstrap();
|
|
526
|
-
if (directory && hookFp && !_skillsEnsured.has(hookFp)) {
|
|
527
|
-
try {
|
|
528
|
-
ensureProjectSkill(directory, hookFp);
|
|
529
|
-
_skillsEnsured.add(hookFp);
|
|
530
|
-
} catch (_e) {}
|
|
531
|
-
}
|
|
532
|
-
|
|
533
510
|
await _appendFooter(_input, output, directory);
|
|
534
511
|
},
|
|
535
512
|
"message.updated": async (_input, output) => {
|
|
@@ -539,13 +516,6 @@ export async function DelegationEnforcer({ client, directory } = {}) {
|
|
|
539
516
|
setCurrentProjectName(directory ? directory.split("/").pop() : "unknown");
|
|
540
517
|
}
|
|
541
518
|
ensureDeferredBootstrap();
|
|
542
|
-
if (directory && hookFp && !_skillsEnsured.has(hookFp)) {
|
|
543
|
-
try {
|
|
544
|
-
ensureProjectSkill(directory, hookFp);
|
|
545
|
-
_skillsEnsured.add(hookFp);
|
|
546
|
-
} catch (_e) {}
|
|
547
|
-
}
|
|
548
|
-
|
|
549
519
|
await _appendFooter(_input, output, directory);
|
|
550
520
|
},
|
|
551
521
|
tool: {
|
package/src/lib/trinity-tool.js
CHANGED
|
@@ -749,6 +749,12 @@ export function createTrinityTool(deps) {
|
|
|
749
749
|
return "Working directory not accessible.";
|
|
750
750
|
const techStack = deps.detectTechStack(deps.directory);
|
|
751
751
|
const result = deps.ensureProjectDocs(deps.directory, techStack);
|
|
752
|
+
const _fp = deps.projectFingerprint(deps.directory);
|
|
753
|
+
if (_fp) {
|
|
754
|
+
try {
|
|
755
|
+
deps.ensureProjectSkill(deps.directory, _fp);
|
|
756
|
+
} catch (_e) {}
|
|
757
|
+
}
|
|
752
758
|
if (result.created.length === 0 && result.skipped.length > 0) {
|
|
753
759
|
return `AGENTS.md and README.md already exist. Use \`trinity guard\` to check for missing features.`;
|
|
754
760
|
}
|