@procedures/mark 0.6.0 → 0.8.0

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/CHANGELOG.md CHANGED
@@ -1,5 +1,56 @@
1
1
  # @procedures/mark
2
2
 
3
+ ## 0.8.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 3f376af: The root of the files confines each procedure, not only `fs.*` (roadmap R33). `mark --fs-root`, `procedure-server --fs-root` and `MCP_FS_ROOT` start `confineToRoot()` of `@procedures/fs`. Each procedure keeps its paths in the root, or the host refuses it with `FORBIDDEN` and the reason `outside-root`.
8
+
9
+ This change is breaking under a root. The hosts refuse procedures that they ran before: `git.*`, `pnpm.*`, `docker.run`, `docker.build`, `docker.compose.*`, a call of `shell.run`, and each procedure that reaches files without `metadata.fsRoot`. `lib.scan` of a workspace outside the root gives `FORBIDDEN`, not a warning. Without a root, nothing changes. The list of the MCP tools does not change.
10
+
11
+ ### Patch Changes
12
+
13
+ - 808a508: Each argument of a last array positional is one item, also when there is only one. Before, one argument was read as the whole array: `[]` gave no item, and `["a","b"]` gave two. The README rule says "A last array field takes the rest". A property test of the command line found it.
14
+ - Updated dependencies [4b09a03]
15
+ - Updated dependencies [4b09a03]
16
+ - Updated dependencies [aa6e3aa]
17
+ - Updated dependencies [698e24d]
18
+ - Updated dependencies [4b09a03]
19
+ - Updated dependencies [600c497]
20
+ - Updated dependencies [7c2e7f7]
21
+ - Updated dependencies [90ea741]
22
+ - Updated dependencies [3f376af]
23
+ - Updated dependencies [90ea741]
24
+ - Updated dependencies [c4cfa34]
25
+ - Updated dependencies [d25805a]
26
+ - @procedures/client@0.8.0
27
+ - @procedures/peer@0.8.0
28
+ - @procedures/server@0.8.0
29
+ - @procedures/mcp-dev-tools@0.8.0
30
+ - @procedures/shell@0.8.0
31
+ - @procedures/pnpm@0.8.0
32
+ - @procedures/lib@0.8.0
33
+ - @procedures/procedure@0.8.0
34
+ - @procedures/cli-run@0.8.0
35
+ - @procedures/vitest@0.8.0
36
+
37
+ ## 0.7.0
38
+
39
+ ### Patch Changes
40
+
41
+ - Updated dependencies [841d083]
42
+ - Updated dependencies [389b054]
43
+ - @procedures/client@0.7.0
44
+ - @procedures/peer@0.7.0
45
+ - @procedures/cli-run@0.7.0
46
+ - @procedures/lib@0.7.0
47
+ - @procedures/pnpm@0.7.0
48
+ - @procedures/procedure@0.7.0
49
+ - @procedures/shell@0.7.0
50
+ - @procedures/vitest@0.7.0
51
+ - @procedures/mcp-dev-tools@0.7.0
52
+ - @procedures/server@0.7.0
53
+
3
54
  ## 0.6.0
4
55
 
5
56
  ### Patch Changes
package/README.md CHANGED
@@ -167,20 +167,23 @@ mark --server --transport both --events "orders.*"
167
167
  mark serve --procedures ./my-procedures.js --events orders.created --events audit.created
168
168
  ```
169
169
 
170
- #### The root of the file procedures
170
+ #### The root of the files
171
171
 
172
- `--fs-root <folder>` confines each path of the `fs.*` procedures to the folder (roadmap R33). It applies to each mode and host of `mark`:
172
+ `--fs-root <folder>` confines each procedure to the folder (roadmap R33). Each procedure keeps its paths in the folder, or `mark` refuses it. It applies to each mode and host of `mark`:
173
173
 
174
- - A command in this process, the REPL (`-i`) and the CLI server (`--server`): the registry of `mark` gets the root.
174
+ - A command in this process, the REPL (`-i`) and the CLI server (`--server`): the registry of `mark` gets the root (`confineToRoot()` of `@procedures/fs`).
175
175
  - `mark serve` and `mark mcp`: the root goes to their servers. `mark mcp` also reads `MCP_FS_ROOT`.
176
- - A path outside the folder gives `FORBIDDEN` with the reason `outside-root`. A relative path starts at the folder.
177
- - The nested `fs.*` calls of the other commands are confined too. For example, `mark --fs-root ./data lib scan` cannot list the packages of a workspace outside `./data`.
176
+ - A path outside the folder gives `FORBIDDEN` with the reason `outside-root`. A relative path starts at the folder. A working folder without a value is the folder.
177
+ - The nested calls are confined too. For example, `mark --fs-root ./data lib scan` cannot list the packages of a workspace outside `./data`.
178
+ - A procedure that the folder cannot confine gives the same error, also for a path in the folder. Examples are `git.*`, `pnpm.*`, `docker.run`, `docker.compose.*`, `shell.run` and `vitest.run`.
178
179
  - Give `--fs-root` before the command. After the command, it is an error, because the procedures loaded without it.
179
180
  - A command uses a CLI server only when the server has the same root. The lockfile of the server records its root.
180
- - A procedure that reads files with `node:fs`, or that starts a program, is not confined. The [README of the MCP server](../impl-mcp-dev/README.md) lists them.
181
+
182
+ The rules and the table of the procedures are in [CAPABILITIES-2026-10.md](../documentation/CAPABILITIES-2026-10.md#the-root-of-the-files-roadmap-r33).
181
183
 
182
184
  ```bash
183
185
  mark --fs-root ./data fs read notes.txt
186
+ mark --fs-root ./data sqlite tables --dbPath notes.db
184
187
  mark --fs-root ./data --server
185
188
  ```
186
189
 
@@ -196,7 +199,7 @@ A flag before the command path is a global flag. After the path, a flag is the c
196
199
  | `--format <format>` | `-f` | Override output format (text, json, table, streaming) |
197
200
  | `--local` | | Run the command in this process, not on the CLI server |
198
201
  | `--json <json>` | | Execute raw procedure reference |
199
- | `--fs-root <folder>` | | Confine each path of `fs.*` to the folder, also in the nested calls. Give it before the command. |
202
+ | `--fs-root <folder>` | | Keep each path of each procedure in the folder, also in the nested calls, and refuse the procedures that it cannot confine. Give it before the command. |
200
203
  | `--server` | | Start the CLI server (with `--port`, `--host`, `--transport`, `--events`) |
201
204
  | `--interactive` | `-i` | Start the REPL |
202
205