@projectctx/agent 0.1.0-alpha.2 → 0.1.0-alpha.3

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/dist/mcp.js +1 -1
  2. package/package.json +3 -3
package/dist/mcp.js CHANGED
@@ -29,7 +29,7 @@ export function createMcpServer(logger) {
29
29
  logger?.debug("creating MCP server");
30
30
  const server = new McpServer({ name: "projectctx-agent", version: "0.1.0-alpha.0" });
31
31
  logger?.debug("registering MCP tool: scan_workspace");
32
- server.tool("scan_workspace", "Scan a local workspace with the ProjectCtx scanner and return structured JSON. Read-only: no memory writes or cloud calls. The result includes auditTargets[]: EVERY content-bearing folder — git repos AND plain folders (docs, notes, research, campaigns) — each with facts and a suggestedReadPlan. Coverage mandate: do not silently skip any audit target, and never infer meaning from folder or file names — meaning comes from reading the actual file contents. If your host can spawn subagents, fan out MULTIPLE IN PARALLEL, roughly one focused subagent per audit target; when targets number in the dozens or more, cluster related targets per subagent rather than skipping any. If the host cannot spawn subagents, make sequential focused passes over each target. Each subagent must open and read its target's suggestedReadPlan files, then read further into the real source/docs/notes until it genuinely understands the target (read real code in repos, not just the README), and report anything meaningful it finds. Subagents return memory candidates — never writes — e.g. Project, Person, Decision, Research Thread, Campaign, Experiment, Service, Dataset, Open Question, Source (open-ended; capture other meaningful things too), each with title, type, why it matters, source file path(s), confidence, suggested collection, and suggested relationships. Then dedupe candidates against existing memory (get_workspace_schema + search_memory/query_records): exact match reuse/update; similar warn and ask the user; propose a new collection only if genuinely needed. Ask the user before writing anything; use the preview/apply flow only.", {
32
+ server.tool("scan_workspace", "Scan a local workspace with the ProjectCtx scanner and return structured JSON. Read-only: no memory writes or cloud calls. The result includes auditTargets[]: EVERY content-bearing target — git repos, plain folders (docs, notes, research, campaigns), a root-level loose-file cluster (kind file_cluster), and allowlisted agent/tool dot folders such as .claude, .codex, .agents, .cursor, .windsurf, and .github — each with facts, overview excerpts, importantLookingFiles, and a suggestedReadPlan. Coverage mandate: do not silently skip any audit target, and never infer meaning from folder or file names — meaning comes from reading the actual file contents. If skipped contains beyond maxDepth, re-invoke scan_workspace on that subtree with higher maxDepth; depth is iterative, not a reason to stop. Delegation: <=3 targets inspect inline; 4-15 targets use one focused subagent per target; >15 targets cluster related targets by parent folder at 3-5 targets per subagent; never skip a target to save agents. Each subagent prompt must include the target facts block verbatim, overview excerpts, importantLookingFiles, and suggestedReadPlan as a starting point, then read beyond the plan until it can state what the target is for, what decisions/knowledge it holds, and what would be lost if it vanished. Subagents return memory candidates — never writes — e.g. Project, Person, Decision, Research Thread, Campaign, Experiment, Service, Dataset, Open Question, Source (open-ended; capture other meaningful things too), each with title, type, why it matters, source file path(s), confidence, suggested collection, and suggested relationships. Then run a verification pass: confirm each candidate is supported by cited files, not already in memory (get_workspace_schema + search_memory/query_records), and captures meaning rather than file inventory. Run a completeness critic: every target has candidates or a concrete 'nothing meaningful' explanation, no skipped deep subtree is left unre-scanned, and another bounded round would produce nothing new. Present a coverage table to the user before preview/apply; ask before writing anything; use the preview/apply flow only.", {
33
33
  rootPath: z.string().optional(),
34
34
  maxRepos: z.number().int().positive().optional(),
35
35
  maxTargets: z.number().int().positive().optional(),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@projectctx/agent",
3
- "version": "0.1.0-alpha.2",
3
+ "version": "0.1.0-alpha.3",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist",
@@ -29,8 +29,8 @@
29
29
  "pack:verify": "node scripts/verify-package.mjs"
30
30
  },
31
31
  "dependencies": {
32
- "@projectctx/contracts": "0.1.0-alpha.2",
33
- "@projectctx/indexer": "0.1.0-alpha.2",
32
+ "@projectctx/contracts": "0.1.0-alpha.3",
33
+ "@projectctx/indexer": "0.1.0-alpha.3",
34
34
  "@modelcontextprotocol/sdk": "^1.13.1",
35
35
  "@napi-rs/keyring": "^1.3.0",
36
36
  "zod": "^3.25.67"