@majkapp/plugin-kit 3.5.0 → 3.5.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/dist/plugin-kit.d.ts +14 -0
- package/dist/plugin-kit.d.ts.map +1 -1
- package/dist/plugin-kit.js +95 -0
- package/package.json +1 -1
package/dist/plugin-kit.d.ts
CHANGED
|
@@ -140,6 +140,20 @@ export interface FluentBuilder<Id extends string> {
|
|
|
140
140
|
* Use this to manage services manually.
|
|
141
141
|
*/
|
|
142
142
|
noPluginService(): this;
|
|
143
|
+
/**
|
|
144
|
+
* Set instructions for the auto-generated default teammate.
|
|
145
|
+
* If not provided, the default teammate will have no system instructions.
|
|
146
|
+
*
|
|
147
|
+
* @example
|
|
148
|
+
* .instructions('You are an expert assistant for managing tasks...')
|
|
149
|
+
*/
|
|
150
|
+
instructions(text: string): this;
|
|
151
|
+
/**
|
|
152
|
+
* Disable automatic default teammate generation.
|
|
153
|
+
* By default, plugin-kit creates a "<Plugin Name> Expert" teammate with all plugin functions.
|
|
154
|
+
* Use this to manage teammates manually.
|
|
155
|
+
*/
|
|
156
|
+
noDefaultTeammate(): this;
|
|
143
157
|
/** Build the plugin */
|
|
144
158
|
build(): InProcessPlugin;
|
|
145
159
|
}
|
package/dist/plugin-kit.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-kit.d.ts","sourceRoot":"","sources":["../src/plugin-kit.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,aAAa,EAGb,eAAe,EACf,QAAQ,EACR,WAAW,EACX,WAAW,EACX,UAAU,EACV,QAAQ,EACR,WAAW,EACX,UAAU,EACV,mBAAmB,EACnB,eAAe,EACf,WAAW,EACX,KAAK,EACL,UAAU,EACV,SAAS,EACT,aAAa,EAEb,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EAGjB,sBAAsB,EAStB,kBAAkB,EAElB,oBAAoB,EACpB,yBAAyB,EACzB,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"plugin-kit.d.ts","sourceRoot":"","sources":["../src/plugin-kit.ts"],"names":[],"mappings":"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"}
|
package/dist/plugin-kit.js
CHANGED
|
@@ -58,6 +58,31 @@ function validateDescription(desc, name) {
|
|
|
58
58
|
throw new PluginBuildError(`Description for "${name}" must be at least 3 characters`, `Provide a meaningful description. Current: "${desc}"`);
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
* Transform plugin ID to camelCase format for teammate ID
|
|
63
|
+
* Examples:
|
|
64
|
+
* "task-manager-sample" -> "taskManagerSampleExpert"
|
|
65
|
+
* "my-plugin" -> "myPluginExpert"
|
|
66
|
+
*/
|
|
67
|
+
function generateTeammateId(pluginId) {
|
|
68
|
+
return pluginId
|
|
69
|
+
.split('-')
|
|
70
|
+
.map((word, index) => {
|
|
71
|
+
if (index === 0)
|
|
72
|
+
return word.toLowerCase();
|
|
73
|
+
return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
|
|
74
|
+
})
|
|
75
|
+
.join('') + 'Expert';
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Generate teammate name from plugin name
|
|
79
|
+
* Examples:
|
|
80
|
+
* "Task Manager Sample" -> "Task Manager Sample Expert"
|
|
81
|
+
* "My Plugin" -> "My Plugin Expert"
|
|
82
|
+
*/
|
|
83
|
+
function generateTeammateName(pluginName) {
|
|
84
|
+
return `${pluginName} Expert`;
|
|
85
|
+
}
|
|
61
86
|
/**
|
|
62
87
|
* Normalize service function bindings during plugin build
|
|
63
88
|
* Converts strings to full ServiceFunctionBinding objects
|
|
@@ -760,6 +785,8 @@ function definePlugin(id, name, version) {
|
|
|
760
785
|
let _healthCheck = null;
|
|
761
786
|
let _pluginRoot = undefined;
|
|
762
787
|
let _autoPluginService = true; // Auto-generate plugin service by default
|
|
788
|
+
let _autoDefaultTeammate = true; // Auto-generate default teammate by default
|
|
789
|
+
let _instructions = null; // Instructions for default teammate
|
|
763
790
|
const builder = {
|
|
764
791
|
topbar(route, opts) {
|
|
765
792
|
_topbars.push({
|
|
@@ -1203,6 +1230,16 @@ function definePlugin(id, name, version) {
|
|
|
1203
1230
|
log(` 🚫 Disabled auto-generated plugin service`);
|
|
1204
1231
|
return this;
|
|
1205
1232
|
},
|
|
1233
|
+
instructions(text) {
|
|
1234
|
+
_instructions = text;
|
|
1235
|
+
log(` 📝 Set default teammate instructions (${text.length} characters)`);
|
|
1236
|
+
return this;
|
|
1237
|
+
},
|
|
1238
|
+
noDefaultTeammate() {
|
|
1239
|
+
_autoDefaultTeammate = false;
|
|
1240
|
+
log(` 🚫 Disabled auto-generated default teammate`);
|
|
1241
|
+
return this;
|
|
1242
|
+
},
|
|
1206
1243
|
build() {
|
|
1207
1244
|
// ========== Load Package Info ==========
|
|
1208
1245
|
let packageName;
|
|
@@ -1287,6 +1324,64 @@ function definePlugin(id, name, version) {
|
|
|
1287
1324
|
}
|
|
1288
1325
|
}
|
|
1289
1326
|
}
|
|
1327
|
+
// Auto-generate default teammate unless explicitly disabled
|
|
1328
|
+
if (_autoDefaultTeammate && packageName && _functionRegistry.functions.size > 0) {
|
|
1329
|
+
const teammateId = generateTeammateId(id);
|
|
1330
|
+
const teammateName = generateTeammateName(name);
|
|
1331
|
+
// Check if a teammate with this ID already exists
|
|
1332
|
+
const existingTeammate = _entities.find(e => e.entityType === 'teamMember' &&
|
|
1333
|
+
e.entities.some((tm) => tm.id === teammateId));
|
|
1334
|
+
if (!existingTeammate) {
|
|
1335
|
+
// Collect all function names
|
|
1336
|
+
const allFunctions = Array.from(_functionRegistry.functions.keys());
|
|
1337
|
+
// Create default teammate
|
|
1338
|
+
const defaultTeammate = {
|
|
1339
|
+
id: teammateId,
|
|
1340
|
+
name: teammateName,
|
|
1341
|
+
systemPrompt: _instructions || `You are a helpful AI assistant specialized in ${name}. You have access to specialized functions and tools for this domain. When assisting users, always utilize the available functions when they can help accomplish tasks. Provide clear explanations of your actions, be proactive in suggesting relevant capabilities, and deliver accurate information based on function results.`,
|
|
1342
|
+
expertise: [name],
|
|
1343
|
+
skills: {
|
|
1344
|
+
primary: ['Plugin Functions'],
|
|
1345
|
+
secondary: [],
|
|
1346
|
+
languages: [],
|
|
1347
|
+
frameworks: [],
|
|
1348
|
+
tools: []
|
|
1349
|
+
},
|
|
1350
|
+
personality: {
|
|
1351
|
+
workStyle: 'methodical',
|
|
1352
|
+
codeStyle: 'concise',
|
|
1353
|
+
reviewStyle: 'pragmatic',
|
|
1354
|
+
communicationStyle: 'concise'
|
|
1355
|
+
},
|
|
1356
|
+
metadata: {
|
|
1357
|
+
totalTasks: 0,
|
|
1358
|
+
successfulTasks: 0,
|
|
1359
|
+
projectHistory: [],
|
|
1360
|
+
codeStats: {
|
|
1361
|
+
linesWritten: 0,
|
|
1362
|
+
filesModified: 0,
|
|
1363
|
+
testsWritten: 0,
|
|
1364
|
+
reviewsPassed: 0,
|
|
1365
|
+
commitsCreated: 0
|
|
1366
|
+
}
|
|
1367
|
+
},
|
|
1368
|
+
mcpServerIds: [],
|
|
1369
|
+
functions: allFunctions
|
|
1370
|
+
};
|
|
1371
|
+
// Validate the default teammate
|
|
1372
|
+
const errors = validateEntity('teamMember', defaultTeammate, {
|
|
1373
|
+
pluginId: id,
|
|
1374
|
+
packageName: packageName,
|
|
1375
|
+
functionRegistry: _functionRegistry
|
|
1376
|
+
});
|
|
1377
|
+
if (errors.length > 0) {
|
|
1378
|
+
throw new PluginBuildError(`Failed to create default teammate "${teammateName}"`, 'Auto-generated teammate validation failed', { errors, teammate: defaultTeammate });
|
|
1379
|
+
}
|
|
1380
|
+
// Add to entities
|
|
1381
|
+
_entities.push({ entityType: 'teamMember', entities: [defaultTeammate] });
|
|
1382
|
+
log(` 🤖 Auto-generated default teammate: ${teammateName} (${allFunctions.length} functions)`);
|
|
1383
|
+
}
|
|
1384
|
+
}
|
|
1290
1385
|
// Validate API route uniqueness
|
|
1291
1386
|
const apiSignatures = new Set();
|
|
1292
1387
|
for (const route of _apiRoutes) {
|
package/package.json
CHANGED