@projitive/mcp 1.0.7 → 1.0.8
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/README.md +3 -3
- package/output/package.json +1 -1
- package/output/source/projitive.js +2 -3
- package/output/source/tasks.js +4 -5
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Language: English | [简体中文](README_CN.md)
|
|
4
4
|
|
|
5
|
-
**Current Spec Version: projitive-spec v1.0.0 | MCP Version: 1.0.
|
|
5
|
+
**Current Spec Version: projitive-spec v1.0.0 | MCP Version: 1.0.8**
|
|
6
6
|
|
|
7
7
|
Projitive MCP server (semantic interface edition) helps agents discover projects, select tasks, locate evidence, and execute under governance workflows.
|
|
8
8
|
|
|
@@ -177,7 +177,7 @@ npm run test
|
|
|
177
177
|
#### `projectNext`
|
|
178
178
|
|
|
179
179
|
- **Purpose**: directly list recently actionable projects (ranked by actionable task count and recency).
|
|
180
|
-
- **Input**: `
|
|
180
|
+
- **Input**: `limit?`
|
|
181
181
|
- **Output Example (Markdown)**:
|
|
182
182
|
|
|
183
183
|
```markdown
|
|
@@ -294,7 +294,7 @@ npm run test
|
|
|
294
294
|
#### `taskNext`
|
|
295
295
|
|
|
296
296
|
- **Purpose**: one-step workflow for project discovery + best task selection + evidence/read-order output.
|
|
297
|
-
- **Input**: `
|
|
297
|
+
- **Input**: `limit?`
|
|
298
298
|
- **Output Example (Markdown)**:
|
|
299
299
|
|
|
300
300
|
```markdown
|
package/output/package.json
CHANGED
|
@@ -397,12 +397,11 @@ export function registerProjectTools(server) {
|
|
|
397
397
|
title: "Project Next",
|
|
398
398
|
description: "Rank actionable projects and return the best execution target",
|
|
399
399
|
inputSchema: {
|
|
400
|
-
maxDepth: z.number().int().min(0).max(8).optional(),
|
|
401
400
|
limit: z.number().int().min(1).max(50).optional(),
|
|
402
401
|
},
|
|
403
|
-
}, async ({
|
|
402
|
+
}, async ({ limit }) => {
|
|
404
403
|
const root = resolveScanRoot();
|
|
405
|
-
const depth = resolveScanDepth(
|
|
404
|
+
const depth = resolveScanDepth();
|
|
406
405
|
const projects = await discoverProjects(root, depth);
|
|
407
406
|
const snapshots = await Promise.all(projects.map(async (governanceDir) => {
|
|
408
407
|
const snapshot = await readTasksSnapshot(governanceDir);
|
package/output/source/tasks.js
CHANGED
|
@@ -545,12 +545,11 @@ export function registerTaskTools(server) {
|
|
|
545
545
|
title: "Task Next",
|
|
546
546
|
description: "Start here to auto-select the highest-priority actionable task",
|
|
547
547
|
inputSchema: {
|
|
548
|
-
|
|
549
|
-
topCandidates: z.number().int().min(1).max(20).optional(),
|
|
548
|
+
limit: z.number().int().min(1).max(20).optional(),
|
|
550
549
|
},
|
|
551
|
-
}, async ({
|
|
550
|
+
}, async ({ limit }) => {
|
|
552
551
|
const root = resolveScanRoot();
|
|
553
|
-
const depth = resolveScanDepth(
|
|
552
|
+
const depth = resolveScanDepth();
|
|
554
553
|
const projects = await discoverProjects(root, depth);
|
|
555
554
|
const rankedCandidates = rankActionableTaskCandidates(await readActionableTaskCandidates(projects));
|
|
556
555
|
if (rankedCandidates.length === 0) {
|
|
@@ -624,7 +623,7 @@ export function registerTaskTools(server) {
|
|
|
624
623
|
const taskLocation = (await findTextReferences(selected.tasksPath, selected.task.id))[0];
|
|
625
624
|
const relatedArtifacts = Array.from(new Set(referenceLocations.map((item) => item.filePath)));
|
|
626
625
|
const suggestedReadOrder = [selected.tasksPath, ...relatedArtifacts.filter((item) => item !== selected.tasksPath)];
|
|
627
|
-
const candidateLimit =
|
|
626
|
+
const candidateLimit = limit ?? 5;
|
|
628
627
|
const markdown = renderToolResponseMarkdown({
|
|
629
628
|
toolName: "taskNext",
|
|
630
629
|
sections: [
|