@devness/useai 0.4.0 → 0.4.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.
Files changed (2) hide show
  1. package/dist/index.js +9 -7
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -111,7 +111,7 @@ var VERSION;
111
111
  var init_version = __esm({
112
112
  "../shared/dist/constants/version.js"() {
113
113
  "use strict";
114
- VERSION = "0.3.0";
114
+ VERSION = "0.4.2";
115
115
  }
116
116
  });
117
117
 
@@ -582,7 +582,7 @@ async function ensureDaemon() {
582
582
  } catch {
583
583
  npxPath = "npx";
584
584
  }
585
- const child = spawn(npxPath, ["-y", "@devness/useai", "daemon", "--port", String(DAEMON_PORT)], {
585
+ const child = spawn(npxPath, ["-y", "@devness/useai@latest", "daemon", "--port", String(DAEMON_PORT)], {
586
586
  detached: true,
587
587
  stdio: "ignore"
588
588
  });
@@ -970,13 +970,13 @@ Session: ${session2.sessionId.slice(0, 8)} \xB7 Chain: ${record.hash.slice(0, 12
970
970
  );
971
971
  server2.tool(
972
972
  "useai_session_end",
973
- "End the current AI coding session and record milestones. IMPORTANT: Milestone descriptions must be GENERIC \u2014 no project names, file names, file paths, or company names. Use general terms like 'authentication system', 'data validation layer', 'responsive dashboard'.",
973
+ 'End the current AI coding session and record milestones. CRITICAL PRIVACY REQUIREMENT: Milestone titles must be COMPLETELY GENERIC. NEVER include project names, repository names, product names, package names, file names, file paths, class names, API endpoints, database names, or company names. Write as if describing the work to a stranger with zero knowledge of the codebase. GOOD: "Implemented user authentication", "Fixed race condition in background worker", "Added unit tests for data validation". BAD: "Fixed bug in Acme auth service", "Updated UserService.ts", "Investigated ProjectX pipeline".',
974
974
  {
975
975
  task_type: z2.enum(["coding", "debugging", "testing", "planning", "reviewing", "documenting", "learning", "other"]).optional().describe("What kind of task was the developer working on?"),
976
976
  languages: z2.array(z2.string()).optional().describe("Programming languages used (e.g. ['typescript', 'python'])"),
977
977
  files_touched_count: z2.number().optional().describe("Approximate number of files created or modified (count only, no names)"),
978
978
  milestones: z2.array(z2.object({
979
- title: z2.string().describe("Generic description of what was accomplished. PRIVACY RULES: Do NOT include project names, repository names, file names, file paths, API endpoints, database names, company names, or any project-specific details. Use generic terms only. GOOD examples: 'Implemented user authentication', 'Fixed race condition in background worker', 'Added unit tests for data validation', 'Refactored state management layer', 'Built responsive dashboard layout'. BAD examples: 'Fixed bug in /api/stripe/webhooks', 'Added auth to acme-corp project', 'Updated UserService.ts in src/services/'"),
979
+ title: z2.string().describe("PRIVACY-CRITICAL: Generic description of what was accomplished. NEVER include project names, repo names, product names, package names, file names, file paths, class names, API endpoints, database names, company names, or ANY identifier that could reveal which codebase this work was done in. Write as if describing the work to a stranger. GOOD: 'Implemented user authentication', 'Fixed race condition in background worker', 'Added unit tests for data validation', 'Refactored state management layer'. BAD: 'Fixed bug in Acme auth', 'Investigated ProjectX pipeline', 'Updated UserService.ts in src/services/', 'Added tests for coverit MCP tool'"),
980
980
  category: z2.enum(["feature", "bugfix", "refactor", "test", "docs", "setup", "deployment", "other"]).describe("Type of work completed"),
981
981
  complexity: z2.enum(["simple", "medium", "complex"]).optional().describe("How complex was this task?")
982
982
  })).optional().describe("What was accomplished this session? List each distinct piece of work completed. Describe generically \u2014 no project names, file names, or proprietary details.")
@@ -1412,14 +1412,15 @@ var init_tools = __esm({
1412
1412
  "## UseAI Session Tracking",
1413
1413
  "- At the START of every conversation, call `useai_session_start` with the appropriate task_type.",
1414
1414
  "- For LONG sessions (15+ min), call `useai_heartbeat` periodically.",
1415
- "- At the END of every conversation, call `useai_session_end` with languages used, files_touched_count, and milestones (generic descriptions only \u2014 no project names, file paths, or company names)."
1415
+ "- At the END of every conversation, call `useai_session_end` with languages used, files_touched_count, and milestones.",
1416
+ '- MILESTONES PRIVACY: Milestone titles must be COMPLETELY GENERIC. NEVER mention project names, repository names, product names, file names, file paths, class names, or company names. Write as if describing the work to a stranger who knows nothing about the codebase. GOOD: "Fixed race condition in background worker". BAD: "Fixed bug in ProjectX worker service".'
1416
1417
  ].join("\n");
1417
1418
  MCP_ENTRY = {
1418
1419
  command: "npx",
1419
1420
  args: ["-y", "@devness/useai"]
1420
1421
  };
1421
1422
  MCP_HTTP_URL = DAEMON_MCP_URL;
1422
- MCP_HTTP_ENTRY = { url: MCP_HTTP_URL };
1423
+ MCP_HTTP_ENTRY = { type: "http", url: MCP_HTTP_URL };
1423
1424
  home = homedir3();
1424
1425
  INSTRUCTIONS_START = "<!-- useai:start -->";
1425
1426
  INSTRUCTIONS_END = "<!-- useai:end -->";
@@ -1427,7 +1428,8 @@ var init_tools = __esm({
1427
1428
  "## UseAI Session Tracking",
1428
1429
  "- At the START of every conversation, call `useai_session_start` with the appropriate task_type.",
1429
1430
  "- For LONG sessions (15+ min), call `useai_heartbeat` periodically.",
1430
- "- At the END of every conversation, call `useai_session_end` with languages used, files_touched_count, and milestones (generic descriptions only \u2014 no project names, file paths, or company names)."
1431
+ "- At the END of every conversation, call `useai_session_end` with languages used, files_touched_count, and milestones.",
1432
+ '- MILESTONES PRIVACY: Milestone titles must be COMPLETELY GENERIC. NEVER mention project names, repository names, product names, file names, file paths, class names, or company names. Write as if describing the work to a stranger who knows nothing about the codebase. GOOD: "Fixed race condition in background worker". BAD: "Fixed bug in ProjectX worker service".'
1431
1433
  ].join("\n");
1432
1434
  USEAI_INSTRUCTIONS_BLOCK = `${INSTRUCTIONS_START}
1433
1435
  ${USEAI_INSTRUCTIONS}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devness/useai",
3
- "version": "0.4.0",
3
+ "version": "0.4.2",
4
4
  "description": "Track your AI-assisted development workflow. MCP server that records usage metrics across all your AI tools.",
5
5
  "keywords": [
6
6
  "mcp",