@o-lang/olang 1.0.19 → 1.0.20

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.
Files changed (2) hide show
  1. package/cli.js +16 -7
  2. package/package.json +1 -1
package/cli.js CHANGED
@@ -94,7 +94,17 @@ function loadSingleResolver(specifier) {
94
94
  throw new Error('Empty resolver specifier provided');
95
95
  }
96
96
 
97
- let resolver;
97
+ let resolver, pkgName;
98
+
99
+ // Extract clean package name (e.g., @o-lang/extractor → extractor)
100
+ if (specifier.startsWith('./') || specifier.startsWith('../') || specifier.startsWith('/')) {
101
+ // Local file: use filename without extension
102
+ pkgName = path.basename(specifier, path.extname(specifier));
103
+ } else {
104
+ // npm package: strip scope (e.g., @o-lang/extractor → extractor)
105
+ pkgName = specifier.replace(/^@[^/]+\//, '');
106
+ }
107
+
98
108
  try {
99
109
  resolver = require(specifier);
100
110
  } catch (e1) {
@@ -113,15 +123,14 @@ function loadSingleResolver(specifier) {
113
123
  throw new Error(`Resolver must export a function`);
114
124
  }
115
125
 
116
- // ✅ Enforce that resolvers self-identify
126
+ // ✅ Auto-assign resolverName from package/filename if missing
117
127
  if (!resolver.resolverName || typeof resolver.resolverName !== 'string') {
118
- throw new Error(
119
- `Resolver from '${specifier}' is missing a valid .resolverName property.\n` +
120
- `All O-Lang resolvers must export: \`module.exports.resolverName = "MyResolver";\``
121
- );
128
+ resolver.resolverName = pkgName;
129
+ console.log(` 🏷️ Auto-assigned resolverName: "${pkgName}" (from ${specifier})`);
130
+ } else {
131
+ console.log(` 📦 Loaded resolver: ${specifier} (name: ${resolver.resolverName})`);
122
132
  }
123
133
 
124
- console.log(` 📦 Loaded resolver: ${specifier} (name: ${resolver.resolverName})`);
125
134
  return resolver;
126
135
  }
127
136
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@o-lang/olang",
3
- "version": "1.0.19",
3
+ "version": "1.0.20",
4
4
  "author": "Olalekan Ogundipe <info@workfily.com>",
5
5
  "description": "O-Lang: A governance language for user-directed, rule-enforced agent workflows",
6
6
  "main": "./src/index.js",