drafted 1.19.32 → 1.19.33
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/mcp/server.mjs +5 -5
- package/package.json +1 -1
- package/src/shared/folder-path.mjs +11 -5
package/mcp/server.mjs
CHANGED
|
@@ -3384,14 +3384,14 @@ tool('fs', 'Navigate Drafted like a local filesystem. A FOLDER is the single con
|
|
|
3384
3384
|
: (note ? note.trimStart() : '');
|
|
3385
3385
|
});
|
|
3386
3386
|
|
|
3387
|
-
// Which of these hits are read-only in Drafted
|
|
3388
|
-
//
|
|
3389
|
-
//
|
|
3390
|
-
//
|
|
3387
|
+
// Which of these hits are read-only in Drafted, and precisely which part.
|
|
3388
|
+
// A link makes the folder's WIKI and SKILLS git-owned (409 repo_owned on
|
|
3389
|
+
// write); its TASKS and PROJECTS write normally. Naming the folder alone
|
|
3390
|
+
// would tell an agent not to attempt a frame write it is entitled to make.
|
|
3391
3391
|
const linked = (Array.isArray(repos.v?.repos) ? repos.v.repos : [])
|
|
3392
3392
|
.map(r => `${r.folderName ? r.folderName : '(org root)'} → ${r.slug}@${r.branch}`);
|
|
3393
3393
|
if (linked.length) {
|
|
3394
|
-
out.push(`Git-owned (
|
|
3394
|
+
out.push(`Git-owned WIKI + SKILLS (edit those via commit; tasks + projects write normally): ${linked.join('; ')}`);
|
|
3395
3395
|
}
|
|
3396
3396
|
|
|
3397
3397
|
const searched = orgFromPath || org || null;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "drafted",
|
|
3
|
-
"version": "1.19.
|
|
3
|
+
"version": "1.19.33",
|
|
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": [
|
|
@@ -120,10 +120,16 @@ export function liftFolderScope(path, to) {
|
|
|
120
120
|
* org's folder names (each of which is its full path). One segment deeper only —
|
|
121
121
|
* `ls` shows a level, not a tree.
|
|
122
122
|
*/
|
|
123
|
-
/** `repoOf(fullFolderName)` -> "slug@branch" when
|
|
124
|
-
*
|
|
125
|
-
*
|
|
126
|
-
*
|
|
123
|
+
/** `repoOf(fullFolderName)` -> "slug@branch" when a repo is linked to that
|
|
124
|
+
* folder, else null.
|
|
125
|
+
*
|
|
126
|
+
* SAY WHAT IS OWNED, NOT "THE FOLDER". A link makes the folder's WIKI and
|
|
127
|
+
* SKILLS git-owned — those answer 409 repo_owned on write. Its TASKS and
|
|
128
|
+
* PROJECTS are untouched and write normally (verified: a frame write into a
|
|
129
|
+
* project inside a linked folder succeeds). A bare "GIT-OWNED" on the folder
|
|
130
|
+
* overclaims, and an agent that believes it will not attempt a frame write it
|
|
131
|
+
* is perfectly entitled to make — a false negative costs more here than the
|
|
132
|
+
* 409 it was meant to prevent. */
|
|
127
133
|
export function subfolderEntries(base, prefix, names, repoOf = null) {
|
|
128
134
|
const depth = prefix ? normalizeFolder(prefix).split('/').length : 0;
|
|
129
135
|
const kids = new Set();
|
|
@@ -142,7 +148,7 @@ export function subfolderEntries(base, prefix, names, repoOf = null) {
|
|
|
142
148
|
type: 'directory',
|
|
143
149
|
path: `${String(base || '').replace(/\/+$/, '')}/${name}`,
|
|
144
150
|
hint: repo
|
|
145
|
-
? `folder — carries its own wiki, skills, tasks and projects · GIT-OWNED by ${repo} (
|
|
151
|
+
? `folder — carries its own wiki, skills, tasks and projects · wiki + skills GIT-OWNED by ${repo} (edit those via commit); tasks + projects write normally`
|
|
146
152
|
: 'folder — carries its own wiki, skills, tasks and projects',
|
|
147
153
|
};
|
|
148
154
|
});
|