drafted 1.11.19 → 1.11.21

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/mcp/server.mjs +4 -4
  2. package/package.json +1 -1
package/mcp/server.mjs CHANGED
@@ -2043,7 +2043,7 @@ tool('frame', 'Frame CRUD in the ACTIVE PROJECT. Dispatch by `action`: read (by
2043
2043
  color: z.string().optional().describe('[write] CSS color for frame border (e.g. #ff0000, red).'),
2044
2044
  operations: z.array(z.object({
2045
2045
  type: z.enum(['replace', 'delete', 'insertAfter', 'insertBefore']).describe('Edit type'),
2046
- lineHash: z.string().describe('Hash of the target line (from read output). Use the full hash to avoid ambiguity in large frames.'),
2046
+ lineHash: z.string().describe('The full line anchor copied verbatim from read output — line number + 2-char hash, e.g. "182vi" (the token left of the "|"). NOT the bare 2-char hash "vi": that is rejected, since the same hash can recur on multiple lines.'),
2047
2047
  newContent: z.string().optional().describe('New content (for replace, insertAfter, insertBefore)'),
2048
2048
  })).optional().describe('[edit] hashline edit operations'),
2049
2049
  from: z.string().optional().describe('[mv] source path /{layer}/{lane}/{filename}'),
@@ -2559,9 +2559,9 @@ tool('batch', 'Batch operations on the ACTIVE PROJECT. Response includes "projec
2559
2559
  to: z.string().optional().describe('Destination path (for mv)'),
2560
2560
  operations: z.array(z.object({
2561
2561
  type: z.enum(['replace', 'delete', 'insertAfter', 'insertBefore']),
2562
- lineHash: z.string(),
2562
+ lineHash: z.string().describe('The full line anchor from read output — line number + 2-char hash, e.g. "182vi". NOT the bare 2-char hash.'),
2563
2563
  newContent: z.string().optional(),
2564
- })).optional().describe('Edit operations (for edit). Always include lineNum.'),
2564
+ })).optional().describe('Edit operations (for edit). lineHash is the full anchor (lineNum + hash), e.g. "182vi".'),
2565
2565
  asset_path: z.string().optional().describe('Relative asset path (for upload_asset, e.g., "css/styles.css")'),
2566
2566
  content_type: z.string().optional().describe('MIME type (for upload_asset, auto-detected if omitted)'),
2567
2567
  frame_id: z.string().optional().describe('Frame ID to associate asset with (for upload_asset)'),
@@ -3118,7 +3118,7 @@ tool('wiki', 'Per-org wiki. Markdown pages with paths as hierarchy. You and othe
3118
3118
  frontmatter: z.any().optional().describe('[write] frontmatter object'),
3119
3119
  operations: z.array(z.object({
3120
3120
  type: z.enum(['replace', 'delete', 'insertAfter', 'insertBefore']).describe('Edit type'),
3121
- lineHash: z.string().describe('Hash of the target line (from read output)'),
3121
+ lineHash: z.string().describe('The full line anchor copied verbatim from read output — line number + 2-char hash, e.g. "182vi" (the token left of the "|"). NOT the bare 2-char hash.'),
3122
3122
  newContent: z.string().optional().describe('New content (for replace, insertAfter, insertBefore)'),
3123
3123
  })).optional().describe('[edit] hashline edit operations — same shape as frame.edit'),
3124
3124
  from: z.string().optional().describe('[mv] source path'),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "drafted",
3
- "version": "1.11.19",
3
+ "version": "1.11.21",
4
4
  "description": "Drafted — visual thinking surface for humans and AI agents. Renders HTML, markdown, images, and code as frames on a zoomable canvas, with MCP tools for AI agents and real-time sync for humans.",
5
5
  "type": "module",
6
6
  "files": [