@pennyfarthing/shared 7.4.0 → 7.9.0
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/dist/generate-skill-docs.test.js +2 -2
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/marker/constants.d.ts +37 -0
- package/dist/marker/constants.d.ts.map +1 -0
- package/dist/marker/constants.js +43 -0
- package/dist/marker/constants.js.map +1 -0
- package/dist/marker/detect.d.ts +25 -0
- package/dist/marker/detect.d.ts.map +1 -0
- package/dist/marker/detect.js +53 -0
- package/dist/marker/detect.js.map +1 -0
- package/dist/marker/detect.test.d.ts +10 -0
- package/dist/marker/detect.test.d.ts.map +1 -0
- package/dist/marker/detect.test.js +417 -0
- package/dist/marker/detect.test.js.map +1 -0
- package/dist/marker/index.d.ts +14 -0
- package/dist/marker/index.d.ts.map +1 -0
- package/dist/marker/index.js +15 -0
- package/dist/marker/index.js.map +1 -0
- package/dist/marker/strip.d.ts +26 -0
- package/dist/marker/strip.d.ts.map +1 -0
- package/dist/marker/strip.js +39 -0
- package/dist/marker/strip.js.map +1 -0
- package/dist/marker/types.d.ts +23 -0
- package/dist/marker/types.d.ts.map +1 -0
- package/dist/marker/types.js +7 -0
- package/dist/marker/types.js.map +1 -0
- package/dist/migrate-theme-schema.test.d.ts +8 -0
- package/dist/migrate-theme-schema.test.d.ts.map +1 -0
- package/dist/migrate-theme-schema.test.js +67 -0
- package/dist/migrate-theme-schema.test.js.map +1 -0
- package/dist/skill-search.test.js +1 -1
- package/dist/theme-loader.d.ts +1 -1
- package/dist/theme-loader.d.ts.map +1 -1
- package/dist/theme-loader.js +2 -88
- package/dist/theme-loader.js.map +1 -1
- package/dist/theme-loader.test.d.ts +6 -0
- package/dist/theme-loader.test.d.ts.map +1 -1
- package/dist/theme-loader.test.js +52 -62
- package/dist/theme-loader.test.js.map +1 -1
- package/package.json +4 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detect.test.js","sourceRoot":"","sources":["../../src/marker/detect.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Marker Module - Shared marker parsing for Reflector protocol
|
|
3
|
+
*
|
|
4
|
+
* This module consolidates marker detection/stripping logic used by:
|
|
5
|
+
* - Cyclist terminal (quick-actions.js)
|
|
6
|
+
* - VS Code extension (reflector.ts)
|
|
7
|
+
*
|
|
8
|
+
* @see docs/adr/0011-reflector-marker-consolidation.md
|
|
9
|
+
*/
|
|
10
|
+
export { type MarkerType, type Marker } from './types.js';
|
|
11
|
+
export { MARKER_PATTERN, MARKER_TYPES, VALID_MARKER_TYPES } from './constants.js';
|
|
12
|
+
export { stripCodeBlocks, stripMarkers } from './strip.js';
|
|
13
|
+
export { detectMarkers } from './detect.js';
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/marker/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AAG1D,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAGlF,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Marker Module - Shared marker parsing for Reflector protocol
|
|
3
|
+
*
|
|
4
|
+
* This module consolidates marker detection/stripping logic used by:
|
|
5
|
+
* - Cyclist terminal (quick-actions.js)
|
|
6
|
+
* - VS Code extension (reflector.ts)
|
|
7
|
+
*
|
|
8
|
+
* @see docs/adr/0011-reflector-marker-consolidation.md
|
|
9
|
+
*/
|
|
10
|
+
// Constants
|
|
11
|
+
export { MARKER_PATTERN, MARKER_TYPES, VALID_MARKER_TYPES } from './constants.js';
|
|
12
|
+
// Functions
|
|
13
|
+
export { stripCodeBlocks, stripMarkers } from './strip.js';
|
|
14
|
+
export { detectMarkers } from './detect.js';
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/marker/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,YAAY;AACZ,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAElF,YAAY;AACZ,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Strip functions for the Reflector marker system.
|
|
3
|
+
*
|
|
4
|
+
* @see docs/adr/0011-reflector-marker-consolidation.md
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Strip fenced code blocks from text.
|
|
8
|
+
*
|
|
9
|
+
* Used before marker detection to ensure markers inside code blocks
|
|
10
|
+
* are not processed as actual markers.
|
|
11
|
+
*
|
|
12
|
+
* @param text - Text potentially containing fenced code blocks
|
|
13
|
+
* @returns Text with code blocks removed
|
|
14
|
+
*/
|
|
15
|
+
export declare function stripCodeBlocks(text: string): string;
|
|
16
|
+
/**
|
|
17
|
+
* Strip CYCLIST markers from text for display.
|
|
18
|
+
*
|
|
19
|
+
* Removes all CYCLIST markers while preserving surrounding text.
|
|
20
|
+
* Useful for cleaning agent output before displaying to users.
|
|
21
|
+
*
|
|
22
|
+
* @param text - Text containing markers
|
|
23
|
+
* @returns Text with markers removed
|
|
24
|
+
*/
|
|
25
|
+
export declare function stripMarkers(text: string): string;
|
|
26
|
+
//# sourceMappingURL=strip.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strip.d.ts","sourceRoot":"","sources":["../../src/marker/strip.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKpD;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOjD"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Strip functions for the Reflector marker system.
|
|
3
|
+
*
|
|
4
|
+
* @see docs/adr/0011-reflector-marker-consolidation.md
|
|
5
|
+
*/
|
|
6
|
+
import { MARKER_PATTERN } from './constants.js';
|
|
7
|
+
/**
|
|
8
|
+
* Strip fenced code blocks from text.
|
|
9
|
+
*
|
|
10
|
+
* Used before marker detection to ensure markers inside code blocks
|
|
11
|
+
* are not processed as actual markers.
|
|
12
|
+
*
|
|
13
|
+
* @param text - Text potentially containing fenced code blocks
|
|
14
|
+
* @returns Text with code blocks removed
|
|
15
|
+
*/
|
|
16
|
+
export function stripCodeBlocks(text) {
|
|
17
|
+
if (!text) {
|
|
18
|
+
return '';
|
|
19
|
+
}
|
|
20
|
+
return text.replace(/```[\s\S]*?```/g, '');
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Strip CYCLIST markers from text for display.
|
|
24
|
+
*
|
|
25
|
+
* Removes all CYCLIST markers while preserving surrounding text.
|
|
26
|
+
* Useful for cleaning agent output before displaying to users.
|
|
27
|
+
*
|
|
28
|
+
* @param text - Text containing markers
|
|
29
|
+
* @returns Text with markers removed
|
|
30
|
+
*/
|
|
31
|
+
export function stripMarkers(text) {
|
|
32
|
+
if (!text) {
|
|
33
|
+
return '';
|
|
34
|
+
}
|
|
35
|
+
// Reset lastIndex since MARKER_PATTERN is global
|
|
36
|
+
MARKER_PATTERN.lastIndex = 0;
|
|
37
|
+
return text.replace(MARKER_PATTERN, '').trim();
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=strip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strip.js","sourceRoot":"","sources":["../../src/marker/strip.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,iDAAiD;IACjD,cAAc,CAAC,SAAS,GAAG,CAAC,CAAC;IAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AACjD,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type definitions for the Reflector marker system.
|
|
3
|
+
*
|
|
4
|
+
* @see docs/adr/0011-reflector-marker-consolidation.md
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Marker types supported by the Reflector protocol.
|
|
8
|
+
* These map to UI actions in Cyclist and VS Code extension.
|
|
9
|
+
*/
|
|
10
|
+
export type MarkerType = 'handoff' | 'context_clear' | 'invoke' | 'question' | 'choices';
|
|
11
|
+
/**
|
|
12
|
+
* Parsed marker from agent output.
|
|
13
|
+
*
|
|
14
|
+
* @property type - The marker type (normalized to lowercase)
|
|
15
|
+
* @property value - The marker value (case preserved)
|
|
16
|
+
* @property source - Optional source identifier (always 'structured_marker' when detected)
|
|
17
|
+
*/
|
|
18
|
+
export interface Marker {
|
|
19
|
+
type: MarkerType;
|
|
20
|
+
value: string;
|
|
21
|
+
source?: 'structured_marker';
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/marker/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;GAGG;AACH,MAAM,MAAM,UAAU,GAClB,SAAS,GACT,eAAe,GACf,QAAQ,GACR,UAAU,GACV,SAAS,CAAC;AAEd;;;;;;GAMG;AACH,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,mBAAmB,CAAC;CAC9B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/marker/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Theme Schema Migration Tests - MSSCI-12478
|
|
3
|
+
*
|
|
4
|
+
* Tests for the migration script that consolidates quote into catchphrases.
|
|
5
|
+
* RED STATE: These tests should FAIL until implementation is complete.
|
|
6
|
+
*/
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=migrate-theme-schema.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate-theme-schema.test.d.ts","sourceRoot":"","sources":["../src/migrate-theme-schema.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Theme Schema Migration Tests - MSSCI-12478
|
|
3
|
+
*
|
|
4
|
+
* Tests for the migration script that consolidates quote into catchphrases.
|
|
5
|
+
* RED STATE: These tests should FAIL until implementation is complete.
|
|
6
|
+
*/
|
|
7
|
+
import { describe, it, before } from 'node:test';
|
|
8
|
+
import assert from 'node:assert';
|
|
9
|
+
import { readFileSync, readdirSync } from 'node:fs';
|
|
10
|
+
import { join, dirname } from 'node:path';
|
|
11
|
+
import { fileURLToPath } from 'node:url';
|
|
12
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
13
|
+
const __dirname = dirname(__filename);
|
|
14
|
+
// Path to themes directory (relative to test location)
|
|
15
|
+
const THEMES_DIR = join(__dirname, '..', '..', '..', 'pennyfarthing-dist', 'personas', 'themes');
|
|
16
|
+
describe('MSSCI-12478: Theme YAML Migration', () => {
|
|
17
|
+
let themeFiles;
|
|
18
|
+
before(() => {
|
|
19
|
+
themeFiles = readdirSync(THEMES_DIR).filter(f => f.endsWith('.yaml'));
|
|
20
|
+
});
|
|
21
|
+
describe('AC2: All 102 themes updated', () => {
|
|
22
|
+
it('should have 102 theme files', () => {
|
|
23
|
+
assert.strictEqual(themeFiles.length, 102, `Expected 102 themes, got ${themeFiles.length}`);
|
|
24
|
+
});
|
|
25
|
+
it('no theme file should contain quote: field under agents', () => {
|
|
26
|
+
const themesWithQuote = [];
|
|
27
|
+
for (const file of themeFiles) {
|
|
28
|
+
const content = readFileSync(join(THEMES_DIR, file), 'utf-8');
|
|
29
|
+
// Check for quote: at 4-space indent (under agent definition)
|
|
30
|
+
if (/^ {4}quote:/m.test(content)) {
|
|
31
|
+
themesWithQuote.push(file);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
assert.strictEqual(themesWithQuote.length, 0, `These themes still have quote field: ${themesWithQuote.slice(0, 5).join(', ')}${themesWithQuote.length > 5 ? ` and ${themesWithQuote.length - 5} more` : ''}`);
|
|
35
|
+
});
|
|
36
|
+
it('every theme should have catchphrases array for each agent', () => {
|
|
37
|
+
const themesWithMissingCatchphrases = [];
|
|
38
|
+
for (const file of themeFiles) {
|
|
39
|
+
// Skip control.yaml which is a special baseline theme
|
|
40
|
+
if (file === 'control.yaml')
|
|
41
|
+
continue;
|
|
42
|
+
const content = readFileSync(join(THEMES_DIR, file), 'utf-8');
|
|
43
|
+
// Count catchphrases section markers (10 agents expected)
|
|
44
|
+
const catchphrasesMatches = content.match(/^ {4}catchphrases:/gm);
|
|
45
|
+
if (!catchphrasesMatches || catchphrasesMatches.length < 10) {
|
|
46
|
+
themesWithMissingCatchphrases.push(file);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
assert.strictEqual(themesWithMissingCatchphrases.length, 0, `These themes have missing catchphrases: ${themesWithMissingCatchphrases.slice(0, 5).join(', ')}${themesWithMissingCatchphrases.length > 5 ? ` and ${themesWithMissingCatchphrases.length - 5} more` : ''}`);
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
describe('AC1: Migration preserves original quote in catchphrases', () => {
|
|
53
|
+
it('the-expanse orchestrator catchphrases should contain original quote', () => {
|
|
54
|
+
const content = readFileSync(join(THEMES_DIR, 'the-expanse.yaml'), 'utf-8');
|
|
55
|
+
// Original quote was: "Doors and corners, kid. That's where they get you."
|
|
56
|
+
// This should now be in the catchphrases array
|
|
57
|
+
assert.ok(content.includes("Doors and corners, kid. That's where they get you."), 'Quote should still be present in file');
|
|
58
|
+
assert.ok(/catchphrases:[\s\S]*?Doors and corners/.test(content), 'Quote should be within catchphrases array, not as separate quote field');
|
|
59
|
+
});
|
|
60
|
+
it('star-trek-tng picard catchphrases should contain original quote', () => {
|
|
61
|
+
const content = readFileSync(join(THEMES_DIR, 'star-trek-tng.yaml'), 'utf-8');
|
|
62
|
+
// Picard's famous quote should be in catchphrases
|
|
63
|
+
assert.ok(/catchphrases:[\s\S]*?(Make it so|Engage)/.test(content), 'Picard quote should be within catchphrases array');
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
//# sourceMappingURL=migrate-theme-schema.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate-theme-schema.test.js","sourceRoot":"","sources":["../src/migrate-theme-schema.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,7 +29,7 @@ describe('Story 9-2: Skill Search Utility', () => {
|
|
|
29
29
|
const results = await searchSkills({});
|
|
30
30
|
assert.ok(Array.isArray(results), 'Should return an array');
|
|
31
31
|
assert.ok(results.length > 0, 'Should return skills from registry');
|
|
32
|
-
assert.ok(results.length ===
|
|
32
|
+
assert.ok(results.length === 22, 'Should return all 22 skills when no filters');
|
|
33
33
|
});
|
|
34
34
|
it('should return skills with required fields', async () => {
|
|
35
35
|
// AC1: Each skill should have core metadata
|
package/dist/theme-loader.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme-loader.d.ts","sourceRoot":"","sources":["../src/theme-loader.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"theme-loader.d.ts","sourceRoot":"","sources":["../src/theme-loader.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CACpC;AAoBD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI,CAqCzD;AAED;;;GAGG;AACH,wBAAgB,UAAU,IAAI,MAAM,EAAE,CAqBrC;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAOvF"}
|
package/dist/theme-loader.js
CHANGED
|
@@ -3,94 +3,8 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { existsSync, readFileSync, readdirSync } from 'node:fs';
|
|
5
5
|
import { join, basename } from 'node:path';
|
|
6
|
+
import { parse as parseYaml } from 'yaml';
|
|
6
7
|
import { resolvePennyfarthingDist, getPortraitPaths } from './portrait-resolver.js';
|
|
7
|
-
/**
|
|
8
|
-
* Simple YAML parser for theme files
|
|
9
|
-
* Only handles the specific YAML structure we need
|
|
10
|
-
*/
|
|
11
|
-
function parseYaml(content) {
|
|
12
|
-
const result = { theme: {}, agents: {} };
|
|
13
|
-
const lines = content.split('\n');
|
|
14
|
-
let currentSection = null;
|
|
15
|
-
let currentAgent = null;
|
|
16
|
-
let currentSubsection = null;
|
|
17
|
-
for (const line of lines) {
|
|
18
|
-
const trimmed = line.trimEnd();
|
|
19
|
-
// Skip empty lines and comments
|
|
20
|
-
if (!trimmed || trimmed.startsWith('#'))
|
|
21
|
-
continue;
|
|
22
|
-
// Count leading spaces to determine indent level
|
|
23
|
-
const indent = line.length - line.trimStart().length;
|
|
24
|
-
const key = trimmed.split(':')[0].trim();
|
|
25
|
-
const value = trimmed.includes(':') ? trimmed.substring(trimmed.indexOf(':') + 1).trim() : '';
|
|
26
|
-
if (indent === 0) {
|
|
27
|
-
if (key === 'theme') {
|
|
28
|
-
currentSection = 'theme';
|
|
29
|
-
currentAgent = null;
|
|
30
|
-
}
|
|
31
|
-
else if (key === 'agents') {
|
|
32
|
-
currentSection = 'agents';
|
|
33
|
-
currentAgent = null;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
else if (indent === 2 && currentSection === 'theme') {
|
|
37
|
-
if (key === 'name') {
|
|
38
|
-
result.theme.name = value.replace(/^["']|["']$/g, '');
|
|
39
|
-
}
|
|
40
|
-
else if (key === 'description') {
|
|
41
|
-
result.theme.description = value.replace(/^["']|["']$/g, '');
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
else if (indent === 2 && currentSection === 'agents') {
|
|
45
|
-
currentAgent = key;
|
|
46
|
-
if (!result.agents[currentAgent]) {
|
|
47
|
-
result.agents[currentAgent] = {};
|
|
48
|
-
}
|
|
49
|
-
currentSubsection = null;
|
|
50
|
-
}
|
|
51
|
-
else if (indent === 4 && currentSection === 'agents' && currentAgent) {
|
|
52
|
-
const cleanValue = value.replace(/^["']|["']$/g, '');
|
|
53
|
-
if (key === 'character') {
|
|
54
|
-
result.agents[currentAgent].character = cleanValue;
|
|
55
|
-
}
|
|
56
|
-
else if (key === 'style') {
|
|
57
|
-
result.agents[currentAgent].style = cleanValue;
|
|
58
|
-
}
|
|
59
|
-
else if (key === 'role') {
|
|
60
|
-
result.agents[currentAgent].role = cleanValue;
|
|
61
|
-
}
|
|
62
|
-
else if (key === 'trait') {
|
|
63
|
-
result.agents[currentAgent].trait = cleanValue;
|
|
64
|
-
}
|
|
65
|
-
else if (key === 'quote') {
|
|
66
|
-
result.agents[currentAgent].quote = cleanValue;
|
|
67
|
-
}
|
|
68
|
-
else if (key === 'shortName') {
|
|
69
|
-
result.agents[currentAgent].shortName = cleanValue;
|
|
70
|
-
}
|
|
71
|
-
else if (key === 'helper') {
|
|
72
|
-
currentSubsection = 'helper';
|
|
73
|
-
result.agents[currentAgent].helper = {};
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
else if (indent === 6 && currentSubsection === 'helper' && currentAgent) {
|
|
77
|
-
const cleanValue = value.replace(/^["']|["']$/g, '');
|
|
78
|
-
if (key === 'name') {
|
|
79
|
-
if (!result.agents[currentAgent].helper) {
|
|
80
|
-
result.agents[currentAgent].helper = {};
|
|
81
|
-
}
|
|
82
|
-
result.agents[currentAgent].helper.name = cleanValue;
|
|
83
|
-
}
|
|
84
|
-
else if (key === 'style') {
|
|
85
|
-
if (!result.agents[currentAgent].helper) {
|
|
86
|
-
result.agents[currentAgent].helper = {};
|
|
87
|
-
}
|
|
88
|
-
result.agents[currentAgent].helper.style = cleanValue;
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
return result;
|
|
93
|
-
}
|
|
94
8
|
/**
|
|
95
9
|
* Load a theme configuration by name
|
|
96
10
|
* @param themeName - Name of the theme (e.g., 'shakespeare', 'norse-mythology')
|
|
@@ -116,7 +30,7 @@ export function loadTheme(themeName) {
|
|
|
116
30
|
style: agentData.style || '',
|
|
117
31
|
role: agentData.role || '',
|
|
118
32
|
trait: agentData.trait || '',
|
|
119
|
-
|
|
33
|
+
catchphrases: agentData.catchphrases || [],
|
|
120
34
|
helper: agentData.helper?.name,
|
|
121
35
|
};
|
|
122
36
|
}
|
package/dist/theme-loader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme-loader.js","sourceRoot":"","sources":["../src/theme-loader.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"theme-loader.js","sourceRoot":"","sources":["../src/theme-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme-loader.test.d.ts","sourceRoot":"","sources":["../src/theme-loader.test.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"theme-loader.test.d.ts","sourceRoot":"","sources":["../src/theme-loader.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -1,71 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Theme Schema Consolidation Tests - MSSCI-12478
|
|
3
|
+
*
|
|
4
|
+
* Tests for consolidating quote field into catchphrases array.
|
|
5
|
+
* RED STATE: These tests should FAIL until implementation is complete.
|
|
6
|
+
*/
|
|
1
7
|
import { describe, it } from 'node:test';
|
|
2
8
|
import assert from 'node:assert';
|
|
3
|
-
import { loadTheme
|
|
4
|
-
describe('
|
|
5
|
-
describe('
|
|
6
|
-
it('should
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
assert.
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
assert.
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
it('should parse agent properties correctly', () => {
|
|
25
|
-
const theme = loadTheme('shakespeare');
|
|
26
|
-
assert.ok(theme !== null);
|
|
27
|
-
const smAgent = theme.agents['sm'];
|
|
28
|
-
assert.ok('character' in smAgent, 'Agent should have character');
|
|
29
|
-
assert.ok('style' in smAgent, 'Agent should have style');
|
|
30
|
-
assert.ok('role' in smAgent, 'Agent should have role');
|
|
31
|
-
assert.ok('quote' in smAgent, 'Agent should have quote');
|
|
9
|
+
import { loadTheme } from './theme-loader.js';
|
|
10
|
+
describe('MSSCI-12478: Theme Schema Consolidation', () => {
|
|
11
|
+
describe('AC3: quote field removed from schema', () => {
|
|
12
|
+
it('ThemeAgent interface should have catchphrases array, not quote string', () => {
|
|
13
|
+
// Load any theme and check the agent structure
|
|
14
|
+
const theme = loadTheme('the-expanse');
|
|
15
|
+
assert.ok(theme !== null, 'Theme should load');
|
|
16
|
+
const agent = theme.agents['sm'];
|
|
17
|
+
assert.ok(agent !== undefined, 'SM agent should exist');
|
|
18
|
+
// Should have catchphrases array
|
|
19
|
+
assert.ok('catchphrases' in agent, 'Agent should have catchphrases property');
|
|
20
|
+
assert.ok(Array.isArray(agent.catchphrases), 'catchphrases should be an array');
|
|
21
|
+
// Should NOT have quote field (removed from schema)
|
|
22
|
+
assert.ok(!('quote' in agent), 'Agent should NOT have quote property after migration');
|
|
23
|
+
});
|
|
24
|
+
it('catchphrases array should contain at least one entry', () => {
|
|
25
|
+
const theme = loadTheme('the-expanse');
|
|
26
|
+
assert.ok(theme !== null, 'Theme should load');
|
|
27
|
+
const agent = theme.agents['tea'];
|
|
28
|
+
assert.ok(agent.catchphrases !== undefined, 'catchphrases should be defined');
|
|
29
|
+
assert.ok(agent.catchphrases.length > 0, 'catchphrases should have at least one entry');
|
|
32
30
|
});
|
|
33
31
|
});
|
|
34
|
-
describe('
|
|
35
|
-
it('should
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
32
|
+
describe('AC1: Migration script merges quote into catchphrases', () => {
|
|
33
|
+
it('original quote should be present in catchphrases array', () => {
|
|
34
|
+
// The Investigator's quote was "Doors and corners, kid. That's where they get you."
|
|
35
|
+
// After migration, this should be in the catchphrases array
|
|
36
|
+
const theme = loadTheme('the-expanse');
|
|
37
|
+
assert.ok(theme !== null, 'Theme should load');
|
|
38
|
+
const agent = theme.agents['orchestrator'];
|
|
39
|
+
assert.ok(agent.catchphrases.includes("Doors and corners, kid. That's where they get you."), 'Original quote should be in catchphrases array');
|
|
40
|
+
});
|
|
41
|
+
it('catchphrases should not have duplicates after migration', () => {
|
|
42
|
+
const theme = loadTheme('the-expanse');
|
|
43
|
+
assert.ok(theme !== null, 'Theme should load');
|
|
44
|
+
const agent = theme.agents['sm'];
|
|
45
|
+
// Check for duplicates
|
|
46
|
+
const uniqueCatchphrases = [...new Set(agent.catchphrases)];
|
|
47
|
+
assert.strictEqual(agent.catchphrases.length, uniqueCatchphrases.length, 'catchphrases should have no duplicates');
|
|
47
48
|
});
|
|
48
49
|
});
|
|
49
|
-
describe('
|
|
50
|
-
it('should
|
|
51
|
-
const
|
|
52
|
-
assert.ok(
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
});
|
|
59
|
-
it('should return null for invalid agent', () => {
|
|
60
|
-
const persona = getAgentPersona('shakespeare', 'nonexistent-agent');
|
|
61
|
-
assert.strictEqual(persona, null);
|
|
62
|
-
});
|
|
63
|
-
it('should return correct character for known persona', () => {
|
|
64
|
-
// We know shakespeare theme has specific characters
|
|
65
|
-
const persona = getAgentPersona('shakespeare', 'sm');
|
|
66
|
-
assert.ok(persona !== null);
|
|
67
|
-
assert.ok(typeof persona.character === 'string');
|
|
68
|
-
assert.ok(persona.character.length > 0);
|
|
50
|
+
describe('AC4: Theme validation updated', () => {
|
|
51
|
+
it('should parse catchphrases array from YAML', () => {
|
|
52
|
+
const theme = loadTheme('star-trek-tng');
|
|
53
|
+
assert.ok(theme !== null, 'Theme should load');
|
|
54
|
+
// Every agent should have catchphrases parsed
|
|
55
|
+
for (const [agentName, agent] of Object.entries(theme.agents)) {
|
|
56
|
+
assert.ok(agent.catchphrases !== undefined, `Agent ${agentName} should have catchphrases`);
|
|
57
|
+
assert.ok(Array.isArray(agent.catchphrases), `Agent ${agentName} catchphrases should be array`);
|
|
58
|
+
}
|
|
69
59
|
});
|
|
70
60
|
});
|
|
71
61
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme-loader.test.js","sourceRoot":"","sources":["../src/theme-loader.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,
|
|
1
|
+
{"version":3,"file":"theme-loader.test.js","sourceRoot":"","sources":["../src/theme-loader.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pennyfarthing/shared",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.9.0",
|
|
4
4
|
"description": "Shared utilities for Pennyfarthing including portrait path resolution",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -34,5 +34,8 @@
|
|
|
34
34
|
"devDependencies": {
|
|
35
35
|
"@types/node": "^20.10.0",
|
|
36
36
|
"typescript": "^5.3.3"
|
|
37
|
+
},
|
|
38
|
+
"dependencies": {
|
|
39
|
+
"yaml": "^2.8.2"
|
|
37
40
|
}
|
|
38
41
|
}
|