@liangjie559567/ultrapower 5.1.0 → 5.2.1
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/.claude-plugin/plugin.json +1 -1
- package/dist/__tests__/skills.test.js +3 -2
- package/dist/__tests__/skills.test.js.map +1 -1
- package/dist/hooks/learner/session-reflector.d.ts.map +1 -1
- package/dist/hooks/learner/session-reflector.js +7 -0
- package/dist/hooks/learner/session-reflector.js.map +1 -1
- package/dist/hooks/learner/usage-tracker.d.ts.map +1 -1
- package/dist/hooks/learner/usage-tracker.js +4 -1
- package/dist/hooks/learner/usage-tracker.js.map +1 -1
- package/dist/hooks/nexus/__tests__/config.test.d.ts +2 -0
- package/dist/hooks/nexus/__tests__/config.test.d.ts.map +1 -0
- package/dist/hooks/nexus/__tests__/config.test.js +38 -0
- package/dist/hooks/nexus/__tests__/config.test.js.map +1 -0
- package/dist/hooks/nexus/__tests__/consciousness-sync.test.d.ts +2 -0
- package/dist/hooks/nexus/__tests__/consciousness-sync.test.d.ts.map +1 -0
- package/dist/hooks/nexus/__tests__/consciousness-sync.test.js +28 -0
- package/dist/hooks/nexus/__tests__/consciousness-sync.test.js.map +1 -0
- package/dist/hooks/nexus/__tests__/data-collector.test.d.ts +2 -0
- package/dist/hooks/nexus/__tests__/data-collector.test.d.ts.map +1 -0
- package/dist/hooks/nexus/__tests__/data-collector.test.js +61 -0
- package/dist/hooks/nexus/__tests__/data-collector.test.js.map +1 -0
- package/dist/hooks/nexus/__tests__/improvement-puller.test.d.ts +2 -0
- package/dist/hooks/nexus/__tests__/improvement-puller.test.d.ts.map +1 -0
- package/dist/hooks/nexus/__tests__/improvement-puller.test.js +49 -0
- package/dist/hooks/nexus/__tests__/improvement-puller.test.js.map +1 -0
- package/dist/hooks/nexus/__tests__/session-end-hook.test.d.ts +2 -0
- package/dist/hooks/nexus/__tests__/session-end-hook.test.d.ts.map +1 -0
- package/dist/hooks/nexus/__tests__/session-end-hook.test.js +39 -0
- package/dist/hooks/nexus/__tests__/session-end-hook.test.js.map +1 -0
- package/dist/hooks/nexus/config.d.ts +5 -0
- package/dist/hooks/nexus/config.d.ts.map +1 -0
- package/dist/hooks/nexus/config.js +35 -0
- package/dist/hooks/nexus/config.js.map +1 -0
- package/dist/hooks/nexus/consciousness-sync.d.ts +8 -0
- package/dist/hooks/nexus/consciousness-sync.d.ts.map +1 -0
- package/dist/hooks/nexus/consciousness-sync.js +57 -0
- package/dist/hooks/nexus/consciousness-sync.js.map +1 -0
- package/dist/hooks/nexus/data-collector.d.ts +4 -0
- package/dist/hooks/nexus/data-collector.d.ts.map +1 -0
- package/dist/hooks/nexus/data-collector.js +23 -0
- package/dist/hooks/nexus/data-collector.js.map +1 -0
- package/dist/hooks/nexus/improvement-puller.d.ts +9 -0
- package/dist/hooks/nexus/improvement-puller.d.ts.map +1 -0
- package/dist/hooks/nexus/improvement-puller.js +42 -0
- package/dist/hooks/nexus/improvement-puller.js.map +1 -0
- package/dist/hooks/nexus/session-end-hook.d.ts +16 -0
- package/dist/hooks/nexus/session-end-hook.d.ts.map +1 -0
- package/dist/hooks/nexus/session-end-hook.js +71 -0
- package/dist/hooks/nexus/session-end-hook.js.map +1 -0
- package/dist/hooks/nexus/types.d.ts +54 -0
- package/dist/hooks/nexus/types.d.ts.map +1 -0
- package/dist/hooks/nexus/types.js +2 -0
- package/dist/hooks/nexus/types.js.map +1 -0
- package/dist/hooks/session-end/__tests__/nexus-integration.test.d.ts +2 -0
- package/dist/hooks/session-end/__tests__/nexus-integration.test.d.ts.map +1 -0
- package/dist/hooks/session-end/__tests__/nexus-integration.test.js +30 -0
- package/dist/hooks/session-end/__tests__/nexus-integration.test.js.map +1 -0
- package/dist/hooks/session-end/index.d.ts.map +1 -1
- package/dist/hooks/session-end/index.js +15 -0
- package/dist/hooks/session-end/index.js.map +1 -1
- package/docs/CLAUDE.md +1 -1
- package/docs/README.codex.md +6 -0
- package/docs/REFERENCE.md +2 -1
- package/docs/plans/2026-01-17-visual-brainstorming.md +571 -0
- package/docs/plans/2026-02-26-nexus-design.md +354 -0
- package/docs/plans/2026-02-26-nexus-implementation-plan.md +2538 -0
- package/docs/plans/2026-02-26-phase2-active-learning-design.md +377 -0
- package/docs/standards/contribution-guide.md +72 -2
- package/docs/superpowers/plans/2026-01-22-document-review-system.md +301 -0
- package/docs/superpowers/plans/2026-02-19-visual-brainstorming-refactor.md +523 -0
- package/docs/superpowers/specs/2026-01-22-document-review-system-design.md +136 -0
- package/docs/superpowers/specs/2026-02-19-visual-brainstorming-refactor-design.md +162 -0
- package/hooks/run-hook.cmd +32 -29
- package/package.json +4 -2
- package/skills/brainstorming/spec-document-reviewer-prompt.md +50 -0
- package/skills/brainstorming/visual-companion.md +249 -0
- package/skills/nexus/SKILL.md +35 -0
- package/skills/nexus/nexus-evolve/SKILL.md +31 -0
- package/skills/nexus/nexus-review/SKILL.md +39 -0
- package/skills/nexus/nexus-status/SKILL.md +31 -0
- package/skills/release/SKILL.md +3 -0
- package/skills/requesting-code-review/SKILL.md +1 -1
- package/skills/using-superpowers/references/codex-tools.md +25 -0
- package/skills/writing-plans/plan-document-reviewer-prompt.md +52 -0
- /package/hooks/{session-start.sh → session-start} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ultrapower",
|
|
3
3
|
"description": "Disciplined multi-agent orchestration: workflow enforcement + parallel execution. Combines superpowers' TDD/debugging discipline with OMC's multi-agent execution capabilities.",
|
|
4
|
-
"version": "5.1
|
|
4
|
+
"version": "5.2.1",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Jesse Vincent & oh-my-claudecode contributors"
|
|
7
7
|
},
|
|
@@ -8,7 +8,7 @@ describe('Builtin Skills', () => {
|
|
|
8
8
|
describe('createBuiltinSkills()', () => {
|
|
9
9
|
it('should return correct number of skills (70)', () => {
|
|
10
10
|
const skills = createBuiltinSkills();
|
|
11
|
-
expect(skills).toHaveLength(
|
|
11
|
+
expect(skills).toHaveLength(71);
|
|
12
12
|
});
|
|
13
13
|
it('should return an array of BuiltinSkill objects', () => {
|
|
14
14
|
const skills = createBuiltinSkills();
|
|
@@ -121,6 +121,7 @@ describe('Builtin Skills', () => {
|
|
|
121
121
|
'writing-plans',
|
|
122
122
|
'wizard',
|
|
123
123
|
'writing-skills',
|
|
124
|
+
'nexus',
|
|
124
125
|
];
|
|
125
126
|
const actualSkillNames = skills.map((s) => s.name);
|
|
126
127
|
expect(actualSkillNames).toEqual(expect.arrayContaining(expectedSkills));
|
|
@@ -157,7 +158,7 @@ describe('Builtin Skills', () => {
|
|
|
157
158
|
describe('listBuiltinSkillNames()', () => {
|
|
158
159
|
it('should return all skill names', () => {
|
|
159
160
|
const names = listBuiltinSkillNames();
|
|
160
|
-
expect(names).toHaveLength(
|
|
161
|
+
expect(names).toHaveLength(71);
|
|
161
162
|
expect(names).toContain('autopilot');
|
|
162
163
|
expect(names).toContain('cancel');
|
|
163
164
|
expect(names).toContain('ccg');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills.test.js","sourceRoot":"","sources":["../../src/__tests__/skills.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"skills.test.js","sourceRoot":"","sources":["../../src/__tests__/skills.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-reflector.d.ts","sourceRoot":"","sources":["../../../src/hooks/learner/session-reflector.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,mBAAmB,GACzB,OAAO,CAAC,oBAAoB,CAAC,
|
|
1
|
+
{"version":3,"file":"session-reflector.d.ts","sourceRoot":"","sources":["../../../src/hooks/learner/session-reflector.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,mBAAmB,GACzB,OAAO,CAAC,oBAAoB,CAAC,CA2D/B"}
|
|
@@ -13,6 +13,13 @@ export async function reflectOnSessionEnd(input) {
|
|
|
13
13
|
if (!isAxiomEnabled(input.directory)) {
|
|
14
14
|
return { reflected: false, queuedItems: 0 };
|
|
15
15
|
}
|
|
16
|
+
// Guard: skip empty sessions with no substantive activity
|
|
17
|
+
const hasAgents = (input.agentsSpawned ?? 0) > 0;
|
|
18
|
+
const hasModes = (input.modesUsed?.length ?? 0) > 0;
|
|
19
|
+
const hasSignificantDuration = (input.durationMs ?? 0) >= 60000;
|
|
20
|
+
if (!hasAgents && !hasModes && !hasSignificantDuration) {
|
|
21
|
+
return { reflected: false, queuedItems: 0 };
|
|
22
|
+
}
|
|
16
23
|
const sessionName = `auto-${input.sessionId.slice(0, 8)}`;
|
|
17
24
|
const durationMin = input.durationMs != null ? Math.round(input.durationMs / 60000) : 0;
|
|
18
25
|
const orchestrator = new EvolutionOrchestrator(input.directory);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-reflector.js","sourceRoot":"","sources":["../../../src/hooks/learner/session-reflector.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAmBpD,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,KAA0B;IAE1B,MAAM,IAAI,GAAG,KAAK,IAAmC,EAAE;QACrD,IAAI,CAAC;YACH,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;gBACrC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;YAC9C,CAAC;YAED,MAAM,WAAW,GAAG,QAAQ,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YAC1D,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAExF,MAAM,YAAY,GAAG,IAAI,qBAAqB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAChE,MAAM,YAAY,CAAC,OAAO,CAAC;gBACzB,WAAW;gBACX,WAAW;gBACX,cAAc,EAAE,KAAK,CAAC,eAAe;gBACrC,UAAU,EAAE,KAAK,CAAC,aAAa;aAChC,CAAC,CAAC;YAEH,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC;YAEpF,IAAI,WAAW,GAAG,CAAC,CAAC;YACpB,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClD,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBACzD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;oBACnC,MAAM,aAAa,CAAC,OAAO,CACzB,cAAc,EACd,IAAI,EACJ,IAAI,EACJ,wBAAwB,WAAW,EAAE,CACtC,CAAC;oBACF,WAAW,EAAE,CAAC;gBAChB,CAAC;YACH,CAAC;YAED,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;QACtD,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACvD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;QAC1D,CAAC;IACH,CAAC,CAAC;IAEF,IAAI,aAAwD,CAAC;IAC7D,MAAM,OAAO,GAAG,IAAI,OAAO,CAAuB,OAAO,CAAC,EAAE;QAC1D,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IAC1G,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;IAC/C,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,aAAa,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"session-reflector.js","sourceRoot":"","sources":["../../../src/hooks/learner/session-reflector.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage-tracker.d.ts","sourceRoot":"","sources":["../../../src/hooks/learner/usage-tracker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAWH,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,CAAC,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CAClC;AAqGD;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,OAAO,GACjB,MAAM,GAAG,SAAS,CAUpB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,OAAO,GACjB,MAAM,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"usage-tracker.d.ts","sourceRoot":"","sources":["../../../src/hooks/learner/usage-tracker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAWH,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,CAAC,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CAClC;AAqGD;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,OAAO,GACjB,MAAM,GAAG,SAAS,CAUpB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,OAAO,GACjB,MAAM,GAAG,SAAS,CAMpB;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,UAAU,GAChB,OAAO,CAAC,IAAI,CAAC,CA6Bf"}
|
|
@@ -105,7 +105,8 @@ export function extractAgentRole(_toolName, toolInput) {
|
|
|
105
105
|
* Only applies when toolName === 'Task' and toolInput.skill is present.
|
|
106
106
|
*/
|
|
107
107
|
export function extractSkillName(toolName, toolInput) {
|
|
108
|
-
|
|
108
|
+
const lowerTool = toolName.toLowerCase();
|
|
109
|
+
if (lowerTool !== 'task' && lowerTool !== 'skill')
|
|
109
110
|
return undefined;
|
|
110
111
|
if (toolInput === null || typeof toolInput !== 'object')
|
|
111
112
|
return undefined;
|
|
@@ -120,6 +121,8 @@ export async function recordUsage(directory, event) {
|
|
|
120
121
|
try {
|
|
121
122
|
if (!isAxiomEnabled(directory))
|
|
122
123
|
return;
|
|
124
|
+
if (!event.toolName)
|
|
125
|
+
return;
|
|
123
126
|
const metricsPath = getMetricsPath(directory);
|
|
124
127
|
const metrics = loadMetrics(metricsPath);
|
|
125
128
|
const now = new Date(event.timestamp).toISOString();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage-tracker.js","sourceRoot":"","sources":["../../../src/hooks/learner/usage-tracker.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"usage-tracker.js","sourceRoot":"","sources":["../../../src/hooks/learner/usage-tracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.test.d.ts","sourceRoot":"","sources":["../../../../src/hooks/nexus/__tests__/config.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { describe, it, expect, beforeEach, afterEach } from 'vitest';
|
|
2
|
+
import { mkdirSync, rmSync, writeFileSync } from 'fs';
|
|
3
|
+
import { join } from 'path';
|
|
4
|
+
import { tmpdir } from 'os';
|
|
5
|
+
import { loadNexusConfig, DEFAULT_NEXUS_CONFIG } from '../config.js';
|
|
6
|
+
describe('loadNexusConfig', () => {
|
|
7
|
+
let tmpDir;
|
|
8
|
+
beforeEach(() => {
|
|
9
|
+
tmpDir = join(tmpdir(), `nexus-test-${Date.now()}`);
|
|
10
|
+
mkdirSync(tmpDir, { recursive: true });
|
|
11
|
+
});
|
|
12
|
+
afterEach(() => {
|
|
13
|
+
rmSync(tmpDir, { recursive: true, force: true });
|
|
14
|
+
});
|
|
15
|
+
it('returns default config when file does not exist', () => {
|
|
16
|
+
const config = loadNexusConfig(tmpDir);
|
|
17
|
+
expect(config).toEqual(DEFAULT_NEXUS_CONFIG);
|
|
18
|
+
});
|
|
19
|
+
it('loads and merges config from .omc/nexus/config.json', () => {
|
|
20
|
+
const configDir = join(tmpDir, '.omc', 'nexus');
|
|
21
|
+
mkdirSync(configDir, { recursive: true });
|
|
22
|
+
writeFileSync(join(configDir, 'config.json'), JSON.stringify({ enabled: true, gitRemote: 'git@github.com:user/nexus-daemon.git' }));
|
|
23
|
+
const config = loadNexusConfig(tmpDir);
|
|
24
|
+
expect(config.enabled).toBe(true);
|
|
25
|
+
expect(config.gitRemote).toBe('git@github.com:user/nexus-daemon.git');
|
|
26
|
+
expect(config.autoApplyThreshold).toBe(80);
|
|
27
|
+
expect(config.consciousnessInterval).toBe(300);
|
|
28
|
+
expect(config.consciousnessBudgetPercent).toBe(10);
|
|
29
|
+
});
|
|
30
|
+
it('returns default config on malformed JSON', () => {
|
|
31
|
+
const configDir = join(tmpDir, '.omc', 'nexus');
|
|
32
|
+
mkdirSync(configDir, { recursive: true });
|
|
33
|
+
writeFileSync(join(configDir, 'config.json'), 'not json');
|
|
34
|
+
const config = loadNexusConfig(tmpDir);
|
|
35
|
+
expect(config.enabled).toBe(false);
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
//# sourceMappingURL=config.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.test.js","sourceRoot":"","sources":["../../../../src/hooks/nexus/__tests__/config.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAErE,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,IAAI,MAAc,CAAC;IACnB,UAAU,CAAC,GAAG,EAAE;QACd,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACpD,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IACH,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAChD,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,aAAa,CACX,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,EAC9B,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,sCAAsC,EAAE,CAAC,CACrF,CAAC;QACF,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QACtE,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAChD,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,EAAE,UAAU,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consciousness-sync.test.d.ts","sourceRoot":"","sources":["../../../../src/hooks/nexus/__tests__/consciousness-sync.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { syncToRemote, buildGitCommitMessage } from '../consciousness-sync.js';
|
|
3
|
+
describe('buildGitCommitMessage', () => {
|
|
4
|
+
it('includes session ID in commit message', () => {
|
|
5
|
+
const msg = buildGitCommitMessage('abc123', 3);
|
|
6
|
+
expect(msg).toContain('abc123');
|
|
7
|
+
expect(msg).toContain('3 event');
|
|
8
|
+
});
|
|
9
|
+
it('sanitizes special characters in session ID', () => {
|
|
10
|
+
const msg = buildGitCommitMessage('abc/123!@#', 1);
|
|
11
|
+
expect(msg).not.toContain('/');
|
|
12
|
+
expect(msg).not.toContain('!');
|
|
13
|
+
expect(msg).not.toContain('@');
|
|
14
|
+
expect(msg).not.toContain('#');
|
|
15
|
+
});
|
|
16
|
+
it('truncates session ID to 8 characters', () => {
|
|
17
|
+
const msg = buildGitCommitMessage('abcdefghijklmnop', 2);
|
|
18
|
+
expect(msg).toContain('abcdefgh');
|
|
19
|
+
expect(msg).not.toContain('abcdefghi');
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
describe('syncToRemote', () => {
|
|
23
|
+
it('returns false when nexus is disabled', async () => {
|
|
24
|
+
const result = await syncToRemote('/nonexistent/dir', 'sess-001');
|
|
25
|
+
expect(result.success).toBe(false);
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
//# sourceMappingURL=consciousness-sync.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consciousness-sync.test.js","sourceRoot":"","sources":["../../../../src/hooks/nexus/__tests__/consciousness-sync.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAE/E,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,GAAG,GAAG,qBAAqB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC/C,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAChC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,GAAG,GAAG,qBAAqB,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QACnD,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,GAAG,GAAG,qBAAqB,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;QACzD,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAClC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;QAClE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-collector.test.d.ts","sourceRoot":"","sources":["../../../../src/hooks/nexus/__tests__/data-collector.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { describe, it, expect, beforeEach, afterEach } from 'vitest';
|
|
2
|
+
import { mkdirSync, rmSync, existsSync, readFileSync, readdirSync, writeFileSync } from 'fs';
|
|
3
|
+
import { join } from 'path';
|
|
4
|
+
import { tmpdir } from 'os';
|
|
5
|
+
import { collectSessionEvent, getEventsDir } from '../data-collector.js';
|
|
6
|
+
describe('collectSessionEvent', () => {
|
|
7
|
+
let tmpDir;
|
|
8
|
+
beforeEach(() => {
|
|
9
|
+
tmpDir = join(tmpdir(), `nexus-dc-test-${Date.now()}`);
|
|
10
|
+
mkdirSync(tmpDir, { recursive: true });
|
|
11
|
+
// Enable nexus in config
|
|
12
|
+
const configDir = join(tmpDir, '.omc', 'nexus');
|
|
13
|
+
mkdirSync(configDir, { recursive: true });
|
|
14
|
+
writeFileSync(join(configDir, 'config.json'), JSON.stringify({ enabled: true }));
|
|
15
|
+
});
|
|
16
|
+
afterEach(() => {
|
|
17
|
+
rmSync(tmpDir, { recursive: true, force: true });
|
|
18
|
+
});
|
|
19
|
+
it('writes event JSON to .omc/nexus/events/', async () => {
|
|
20
|
+
const event = {
|
|
21
|
+
sessionId: 'test-session-123',
|
|
22
|
+
timestamp: '2026-02-26T14:00:00Z',
|
|
23
|
+
directory: tmpDir,
|
|
24
|
+
toolCalls: [],
|
|
25
|
+
agentsSpawned: 2,
|
|
26
|
+
agentsCompleted: 2,
|
|
27
|
+
modesUsed: ['ultrawork'],
|
|
28
|
+
skillsInjected: [],
|
|
29
|
+
patternsSeen: [],
|
|
30
|
+
};
|
|
31
|
+
await collectSessionEvent(tmpDir, event);
|
|
32
|
+
const eventsDir = getEventsDir(tmpDir);
|
|
33
|
+
expect(existsSync(eventsDir)).toBe(true);
|
|
34
|
+
const files = readdirSync(eventsDir);
|
|
35
|
+
expect(files.length).toBe(1);
|
|
36
|
+
expect(files[0]).toMatch(/^test-session-123-\d+\.json$/);
|
|
37
|
+
const content = JSON.parse(readFileSync(join(eventsDir, files[0]), 'utf-8'));
|
|
38
|
+
expect(content.sessionId).toBe('test-session-123');
|
|
39
|
+
expect(content.agentsSpawned).toBe(2);
|
|
40
|
+
});
|
|
41
|
+
it('does nothing when nexus is disabled', async () => {
|
|
42
|
+
const disabledDir = join(tmpdir(), `nexus-disabled-${Date.now()}`);
|
|
43
|
+
mkdirSync(disabledDir, { recursive: true });
|
|
44
|
+
const event = {
|
|
45
|
+
sessionId: 'test-session-456',
|
|
46
|
+
timestamp: '2026-02-26T14:00:00Z',
|
|
47
|
+
directory: disabledDir,
|
|
48
|
+
toolCalls: [],
|
|
49
|
+
agentsSpawned: 0,
|
|
50
|
+
agentsCompleted: 0,
|
|
51
|
+
modesUsed: [],
|
|
52
|
+
skillsInjected: [],
|
|
53
|
+
patternsSeen: [],
|
|
54
|
+
};
|
|
55
|
+
await collectSessionEvent(disabledDir, event);
|
|
56
|
+
const eventsDir = getEventsDir(disabledDir);
|
|
57
|
+
expect(existsSync(eventsDir)).toBe(false);
|
|
58
|
+
rmSync(disabledDir, { recursive: true, force: true });
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
//# sourceMappingURL=data-collector.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-collector.test.js","sourceRoot":"","sources":["../../../../src/hooks/nexus/__tests__/data-collector.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"improvement-puller.test.d.ts","sourceRoot":"","sources":["../../../../src/hooks/nexus/__tests__/improvement-puller.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { describe, it, expect, beforeEach, afterEach } from 'vitest';
|
|
2
|
+
import { mkdirSync, writeFileSync, rmSync } from 'fs';
|
|
3
|
+
import { join } from 'path';
|
|
4
|
+
import { tmpdir } from 'os';
|
|
5
|
+
import { loadPendingImprovements } from '../improvement-puller.js';
|
|
6
|
+
describe('loadPendingImprovements', () => {
|
|
7
|
+
let testDir;
|
|
8
|
+
beforeEach(() => {
|
|
9
|
+
testDir = join(tmpdir(), `nexus-test-${Date.now()}`);
|
|
10
|
+
mkdirSync(testDir, { recursive: true });
|
|
11
|
+
});
|
|
12
|
+
afterEach(() => {
|
|
13
|
+
rmSync(testDir, { recursive: true, force: true });
|
|
14
|
+
});
|
|
15
|
+
it('returns empty array when no improvement files', () => {
|
|
16
|
+
const result = loadPendingImprovements(testDir);
|
|
17
|
+
expect(result).toEqual([]);
|
|
18
|
+
});
|
|
19
|
+
it('loads pending improvement files', () => {
|
|
20
|
+
const improvementsDir = join(testDir, '.omc/nexus/improvements');
|
|
21
|
+
mkdirSync(improvementsDir, { recursive: true });
|
|
22
|
+
const imp = {
|
|
23
|
+
id: 'imp-001',
|
|
24
|
+
createdAt: '2026-02-26T00:00:00Z',
|
|
25
|
+
source: 'evolution_engine',
|
|
26
|
+
type: 'skill_update',
|
|
27
|
+
targetFile: 'skills/test/SKILL.md',
|
|
28
|
+
confidence: 85,
|
|
29
|
+
diff: '--- a\n+++ b',
|
|
30
|
+
reason: 'test reason',
|
|
31
|
+
evidence: {},
|
|
32
|
+
status: 'pending',
|
|
33
|
+
testResult: null,
|
|
34
|
+
};
|
|
35
|
+
writeFileSync(join(improvementsDir, 'imp-001.json'), JSON.stringify(imp));
|
|
36
|
+
const result = loadPendingImprovements(testDir);
|
|
37
|
+
expect(result).toHaveLength(1);
|
|
38
|
+
expect(result[0].id).toBe('imp-001');
|
|
39
|
+
});
|
|
40
|
+
it('skips non-pending improvements', () => {
|
|
41
|
+
const improvementsDir = join(testDir, '.omc/nexus/improvements');
|
|
42
|
+
mkdirSync(improvementsDir, { recursive: true });
|
|
43
|
+
const applied = { id: 'imp-002', status: 'applied' };
|
|
44
|
+
writeFileSync(join(improvementsDir, 'imp-002.json'), JSON.stringify(applied));
|
|
45
|
+
const result = loadPendingImprovements(testDir);
|
|
46
|
+
expect(result).toEqual([]);
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
//# sourceMappingURL=improvement-puller.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"improvement-puller.test.js","sourceRoot":"","sources":["../../../../src/hooks/nexus/__tests__/improvement-puller.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAC5B,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,IAAI,OAAe,CAAC;IAEpB,UAAU,CAAC,GAAG,EAAE;QACd,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACrD,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,MAAM,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAC;QACjE,SAAS,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,MAAM,GAAG,GAAG;YACV,EAAE,EAAE,SAAS;YACb,SAAS,EAAE,sBAAsB;YACjC,MAAM,EAAE,kBAAkB;YAC1B,IAAI,EAAE,cAAc;YACpB,UAAU,EAAE,sBAAsB;YAClC,UAAU,EAAE,EAAE;YACd,IAAI,EAAE,cAAc;YACpB,MAAM,EAAE,aAAa;YACrB,QAAQ,EAAE,EAAE;YACZ,MAAM,EAAE,SAAS;YACjB,UAAU,EAAE,IAAI;SACjB,CAAC;QACF,aAAa,CAAC,IAAI,CAAC,eAAe,EAAE,cAAc,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAC;QACjE,SAAS,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;QACrD,aAAa,CAAC,IAAI,CAAC,eAAe,EAAE,cAAc,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9E,MAAM,MAAM,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-end-hook.test.d.ts","sourceRoot":"","sources":["../../../../src/hooks/nexus/__tests__/session-end-hook.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { describe, it, expect, beforeEach, afterEach } from 'vitest';
|
|
2
|
+
import { mkdirSync, rmSync, writeFileSync } from 'fs';
|
|
3
|
+
import { join } from 'path';
|
|
4
|
+
import { tmpdir } from 'os';
|
|
5
|
+
import { handleNexusSessionEnd } from '../session-end-hook.js';
|
|
6
|
+
describe('handleNexusSessionEnd', () => {
|
|
7
|
+
let tmpDir;
|
|
8
|
+
beforeEach(() => {
|
|
9
|
+
tmpDir = join(tmpdir(), `nexus-se-test-${Date.now()}`);
|
|
10
|
+
mkdirSync(join(tmpDir, '.omc', 'nexus'), { recursive: true });
|
|
11
|
+
writeFileSync(join(tmpDir, '.omc', 'nexus', 'config.json'), JSON.stringify({ enabled: true, gitRemote: '' }) // no remote = no push
|
|
12
|
+
);
|
|
13
|
+
});
|
|
14
|
+
afterEach(() => {
|
|
15
|
+
rmSync(tmpDir, { recursive: true, force: true });
|
|
16
|
+
});
|
|
17
|
+
it('collects event and returns result', async () => {
|
|
18
|
+
const result = await handleNexusSessionEnd({
|
|
19
|
+
sessionId: 'test-sess-789',
|
|
20
|
+
directory: tmpDir,
|
|
21
|
+
durationMs: 60000,
|
|
22
|
+
agentsSpawned: 1,
|
|
23
|
+
agentsCompleted: 1,
|
|
24
|
+
modesUsed: ['ultrawork'],
|
|
25
|
+
});
|
|
26
|
+
expect(result.collected).toBe(true);
|
|
27
|
+
// sync skipped because gitRemote is empty
|
|
28
|
+
expect(result.synced).toBe(false);
|
|
29
|
+
});
|
|
30
|
+
it('returns not collected when nexus disabled', async () => {
|
|
31
|
+
writeFileSync(join(tmpDir, '.omc', 'nexus', 'config.json'), JSON.stringify({ enabled: false }));
|
|
32
|
+
const result = await handleNexusSessionEnd({
|
|
33
|
+
sessionId: 'test-sess-000',
|
|
34
|
+
directory: tmpDir,
|
|
35
|
+
});
|
|
36
|
+
expect(result.collected).toBe(false);
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
//# sourceMappingURL=session-end-hook.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-end-hook.test.js","sourceRoot":"","sources":["../../../../src/hooks/nexus/__tests__/session-end-hook.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAM,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAC5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,IAAI,MAAc,CAAC;IAEnB,UAAU,CAAC,GAAG,EAAE;QACd,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,iBAAiB,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACvD,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9D,aAAa,CACX,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,EAC5C,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,sBAAsB;SACxE,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QACjD,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC;YACzC,SAAS,EAAE,eAAe;YAC1B,SAAS,EAAE,MAAM;YACjB,UAAU,EAAE,KAAK;YACjB,aAAa,EAAE,CAAC;YAChB,eAAe,EAAE,CAAC;YAClB,SAAS,EAAE,CAAC,WAAW,CAAC;SACzB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,0CAA0C;QAC1C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,aAAa,CACX,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,EAC5C,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CACnC,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC;YACzC,SAAS,EAAE,eAAe;YAC1B,SAAS,EAAE,MAAM;SAClB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { NexusConfig } from './types.js';
|
|
2
|
+
export declare const DEFAULT_NEXUS_CONFIG: NexusConfig;
|
|
3
|
+
export declare function loadNexusConfig(directory: string): NexusConfig;
|
|
4
|
+
export declare function isNexusEnabled(directory: string): boolean;
|
|
5
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/hooks/nexus/config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAI9C,eAAO,MAAM,oBAAoB,EAAE,WAMlC,CAAC;AAIF,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,CAkB9D;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAEzD"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from 'fs';
|
|
2
|
+
import { join } from 'path';
|
|
3
|
+
const DEBUG_ENABLED = process.env.OMC_DEBUG === '1';
|
|
4
|
+
export const DEFAULT_NEXUS_CONFIG = {
|
|
5
|
+
enabled: false,
|
|
6
|
+
gitRemote: '',
|
|
7
|
+
autoApplyThreshold: 80,
|
|
8
|
+
consciousnessInterval: 300,
|
|
9
|
+
consciousnessBudgetPercent: 10,
|
|
10
|
+
};
|
|
11
|
+
const CONFIG_RELATIVE_PATH = '.omc/nexus/config.json';
|
|
12
|
+
export function loadNexusConfig(directory) {
|
|
13
|
+
const configPath = join(directory, CONFIG_RELATIVE_PATH);
|
|
14
|
+
if (!existsSync(configPath)) {
|
|
15
|
+
return { ...DEFAULT_NEXUS_CONFIG };
|
|
16
|
+
}
|
|
17
|
+
try {
|
|
18
|
+
const raw = readFileSync(configPath, 'utf-8');
|
|
19
|
+
const parsed = JSON.parse(raw);
|
|
20
|
+
if (typeof parsed !== 'object' || parsed === null) {
|
|
21
|
+
return { ...DEFAULT_NEXUS_CONFIG };
|
|
22
|
+
}
|
|
23
|
+
return { ...DEFAULT_NEXUS_CONFIG, ...parsed };
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
if (DEBUG_ENABLED) {
|
|
27
|
+
console.error('[nexus] Error loading config:', error);
|
|
28
|
+
}
|
|
29
|
+
return { ...DEFAULT_NEXUS_CONFIG };
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
export function isNexusEnabled(directory) {
|
|
33
|
+
return loadNexusConfig(directory).enabled;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/hooks/nexus/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,GAAG,CAAC;AAEpD,MAAM,CAAC,MAAM,oBAAoB,GAAgB;IAC/C,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,EAAE;IACb,kBAAkB,EAAE,EAAE;IACtB,qBAAqB,EAAE,GAAG;IAC1B,0BAA0B,EAAE,EAAE;CAC/B,CAAC;AAEF,MAAM,oBAAoB,GAAG,wBAAwB,CAAC;AAEtD,MAAM,UAAU,eAAe,CAAC,SAAiB;IAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;IACzD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,GAAG,oBAAoB,EAAE,CAAC;IACrC,CAAC;IACD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;QAC1C,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YAClD,OAAO,EAAE,GAAG,oBAAoB,EAAE,CAAC;QACrC,CAAC;QACD,OAAO,EAAE,GAAG,oBAAoB,EAAE,GAAI,MAA+B,EAAE,CAAC;IAC1E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;QACxD,CAAC;QACD,OAAO,EAAE,GAAG,oBAAoB,EAAE,CAAC;IACrC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,SAAiB;IAC9C,OAAO,eAAe,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC;AAC5C,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export interface SyncResult {
|
|
2
|
+
success: boolean;
|
|
3
|
+
error?: string;
|
|
4
|
+
filesCommitted?: number;
|
|
5
|
+
}
|
|
6
|
+
export declare function buildGitCommitMessage(sessionId: string, fileCount: number): string;
|
|
7
|
+
export declare function syncToRemote(directory: string, sessionId: string): Promise<SyncResult>;
|
|
8
|
+
//# sourceMappingURL=consciousness-sync.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consciousness-sync.d.ts","sourceRoot":"","sources":["../../../src/hooks/nexus/consciousness-sync.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAGlF;AAWD,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CA6C5F"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { spawnSync } from 'child_process';
|
|
2
|
+
import { existsSync } from 'fs';
|
|
3
|
+
import { join } from 'path';
|
|
4
|
+
import { isNexusEnabled, loadNexusConfig } from './config.js';
|
|
5
|
+
import { getEventsDir } from './data-collector.js';
|
|
6
|
+
export function buildGitCommitMessage(sessionId, fileCount) {
|
|
7
|
+
const safeId = sessionId.replace(/[^a-zA-Z0-9-]/g, '').slice(0, 8);
|
|
8
|
+
return `nexus: sync ${fileCount} event(s) from session ${safeId}`;
|
|
9
|
+
}
|
|
10
|
+
function git(args, cwd) {
|
|
11
|
+
const result = spawnSync('git', args, { cwd, encoding: 'utf-8' });
|
|
12
|
+
return {
|
|
13
|
+
ok: result.status === 0,
|
|
14
|
+
stdout: result.stdout ?? '',
|
|
15
|
+
stderr: result.stderr ?? '',
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export async function syncToRemote(directory, sessionId) {
|
|
19
|
+
try {
|
|
20
|
+
if (!isNexusEnabled(directory)) {
|
|
21
|
+
return { success: false, error: 'nexus disabled' };
|
|
22
|
+
}
|
|
23
|
+
const config = loadNexusConfig(directory);
|
|
24
|
+
if (!config.gitRemote) {
|
|
25
|
+
return { success: false, error: 'gitRemote not configured' };
|
|
26
|
+
}
|
|
27
|
+
const eventsDir = getEventsDir(directory);
|
|
28
|
+
if (!existsSync(eventsDir)) {
|
|
29
|
+
return { success: true, filesCommitted: 0 };
|
|
30
|
+
}
|
|
31
|
+
const addResult = git(['add', join('.omc', 'nexus', 'events')], directory);
|
|
32
|
+
if (!addResult.ok) {
|
|
33
|
+
return { success: false, error: addResult.stderr };
|
|
34
|
+
}
|
|
35
|
+
const statusResult = git(['status', '--porcelain'], directory);
|
|
36
|
+
const nexusLines = statusResult.stdout
|
|
37
|
+
.split('\n')
|
|
38
|
+
.filter(l => l.includes('.omc/nexus/events'));
|
|
39
|
+
if (nexusLines.length === 0) {
|
|
40
|
+
return { success: true, filesCommitted: 0 };
|
|
41
|
+
}
|
|
42
|
+
const msg = buildGitCommitMessage(sessionId, nexusLines.length);
|
|
43
|
+
const commitResult = git(['commit', '-m', msg], directory);
|
|
44
|
+
if (!commitResult.ok) {
|
|
45
|
+
return { success: false, error: commitResult.stderr };
|
|
46
|
+
}
|
|
47
|
+
const pushResult = git(['push', 'origin', 'HEAD'], directory);
|
|
48
|
+
if (!pushResult.ok) {
|
|
49
|
+
return { success: false, error: pushResult.stderr };
|
|
50
|
+
}
|
|
51
|
+
return { success: true, filesCommitted: nexusLines.length };
|
|
52
|
+
}
|
|
53
|
+
catch (e) {
|
|
54
|
+
return { success: false, error: e instanceof Error ? e.message : String(e) };
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=consciousness-sync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consciousness-sync.js","sourceRoot":"","sources":["../../../src/hooks/nexus/consciousness-sync.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-collector.d.ts","sourceRoot":"","sources":["../../../src/hooks/nexus/data-collector.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAI/C,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,IAAI,CAAC,CAef"}
|