@karmaniverous/jeeves-watcher-openclaw 0.14.10 → 0.15.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/README.md +7 -0
- package/content/tools-platform.md +14 -0
- package/dist/cli.js +260 -21563
- package/dist/index.js +349 -22888
- package/dist/rollup.config.d.ts +3 -3
- package/dist/skills/jeeves-watcher/SKILL.md +65 -1
- package/dist/src/watcherTools.d.ts +2 -2
- package/openclaw.plugin.json +23 -1
- package/package.json +58 -58
package/dist/rollup.config.d.ts
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
* Rollup configuration for the OpenClaw plugin package.
|
|
3
3
|
* Two entry points: plugin (ESM + declarations) and CLI (ESM executable).
|
|
4
4
|
*
|
|
5
|
-
* `@karmaniverous/jeeves` is
|
|
6
|
-
*
|
|
7
|
-
*
|
|
5
|
+
* `@karmaniverous/jeeves` is externalized — the plugin installer copies
|
|
6
|
+
* the jeeves core lib into the extensions directory alongside the plugin
|
|
7
|
+
* output, so it is always resolvable at runtime.
|
|
8
8
|
*
|
|
9
9
|
* @module rollup.config
|
|
10
10
|
*/
|
|
@@ -397,7 +397,7 @@ Apply config changes atomically.
|
|
|
397
397
|
Validates, writes to disk, and triggers configured reindex behavior. Returns validation errors if invalid. Config changes take full effect without service restart — including new/removed watch paths (filesystem watcher is rebuilt), inference rule changes, move detection settings, and gitignore filter updates.
|
|
398
398
|
|
|
399
399
|
### `watcher_reindex`
|
|
400
|
-
Trigger a reindex operation.
|
|
400
|
+
Trigger a reindex operation. Non-prune scopes return a `plan` object showing blast area before execution begins. Live prune (non-dry-run) returns immediately without a plan.
|
|
401
401
|
|
|
402
402
|
**Parameters:**
|
|
403
403
|
- `scope` (string, optional) — Reindex scope. Default: `"rules"`. One of:
|
|
@@ -837,6 +837,70 @@ Use `watcher_enrich` to tag documents after analysis (e.g., `reviewed: true`, pr
|
|
|
837
837
|
|
|
838
838
|
---
|
|
839
839
|
|
|
840
|
+
## Version Tracking
|
|
841
|
+
|
|
842
|
+
The watcher includes built-in history and undo for your watched files. When enabled, every change to a watched file is automatically versioned. You can view the history of any file or folder, see exactly what changed between versions, retrieve old versions, and undo changes — all through the `watcher_vcs_*` tools.
|
|
843
|
+
|
|
844
|
+
### Tools
|
|
845
|
+
|
|
846
|
+
| Tool | Purpose |
|
|
847
|
+
|------|---------|
|
|
848
|
+
| `watcher_vcs_status` | Check version tracking health: enabled state, tracked roots, remote sync status |
|
|
849
|
+
| `watcher_vcs_history` | View change history for a file or folder, with optional date range and limit |
|
|
850
|
+
| `watcher_vcs_show` | Retrieve the content of a file at a specific past version |
|
|
851
|
+
| `watcher_vcs_diff` | Show what changed between two versions, or between a past version and now |
|
|
852
|
+
| `watcher_vcs_revert` | Undo changes by restoring files to a specific past version |
|
|
853
|
+
| `watcher_vcs_exclude` | Exclude (or re-include) paths from version tracking |
|
|
854
|
+
| `watcher_vcs_check` | Check whether a path is excluded from version tracking and why |
|
|
855
|
+
|
|
856
|
+
### Usage Patterns
|
|
857
|
+
|
|
858
|
+
**View recent changes to a file:**
|
|
859
|
+
```
|
|
860
|
+
watcher_vcs_history: glob="J:/domains/jira/PROJ-123.json", limit=10
|
|
861
|
+
```
|
|
862
|
+
|
|
863
|
+
**See what changed between two versions:**
|
|
864
|
+
```
|
|
865
|
+
watcher_vcs_diff: glob="J:/domains/jira/PROJ-123.json", commit="abc1234"
|
|
866
|
+
```
|
|
867
|
+
|
|
868
|
+
**Restore a file to a previous version:**
|
|
869
|
+
```
|
|
870
|
+
watcher_vcs_revert: glob="J:/domains/jira/PROJ-123.json", commit="abc1234"
|
|
871
|
+
```
|
|
872
|
+
|
|
873
|
+
**View old content without restoring:**
|
|
874
|
+
```
|
|
875
|
+
watcher_vcs_show: path="J:/domains/jira/PROJ-123.json", commit="abc1234"
|
|
876
|
+
```
|
|
877
|
+
|
|
878
|
+
**Exclude files that don't need versioning** (e.g., Jira issues that are read-only syncs):
|
|
879
|
+
```
|
|
880
|
+
watcher_vcs_exclude: glob="J:/domains/jira/**/*.json"
|
|
881
|
+
```
|
|
882
|
+
|
|
883
|
+
**Check if a file is excluded and why:**
|
|
884
|
+
```
|
|
885
|
+
watcher_vcs_check: path="J:/domains/jira/PROJ-123.json"
|
|
886
|
+
```
|
|
887
|
+
|
|
888
|
+
### Enabling Version Tracking
|
|
889
|
+
|
|
890
|
+
Version tracking is controlled by the `vcs.enabled` config setting. When set to `true`, the watcher automatically versions all watched files. No additional setup is required — just enable it and history starts accumulating.
|
|
891
|
+
|
|
892
|
+
### Excluding Paths
|
|
893
|
+
|
|
894
|
+
Not all watched files need version history. For example, if Jira issues are synced read-only, there's nothing to "undo." Use `watcher_vcs_exclude` to stop tracking specific paths.
|
|
895
|
+
|
|
896
|
+
Exclusions are placed as close to the target as possible: if you exclude `J:/domains/jira/**/*.json`, the exclusion rule is written inside the `J:/domains/jira/` directory, not at the root. This keeps exclusions local and easy to reason about. Re-include a path by calling `watcher_vcs_exclude` with `remove: true`.
|
|
897
|
+
|
|
898
|
+
### Score Interpretation
|
|
899
|
+
|
|
900
|
+
VCS tools do not use vector search. There are no relevance scores to interpret — results are exact history lookups, diffs, and file retrievals.
|
|
901
|
+
|
|
902
|
+
---
|
|
903
|
+
|
|
840
904
|
## Error Handling
|
|
841
905
|
|
|
842
906
|
If the watcher is unreachable:
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module plugin/watcherTools
|
|
3
|
-
* Domain-specific watcher tool registrations (
|
|
3
|
+
* Domain-specific watcher tool registrations (14 tools) for the OpenClaw plugin.
|
|
4
4
|
*/
|
|
5
5
|
import { type PluginApi } from '@karmaniverous/jeeves';
|
|
6
|
-
/** Register the
|
|
6
|
+
/** Register the 14 domain-specific watcher_* tools with the OpenClaw plugin API. */
|
|
7
7
|
export declare function registerWatcherTools(api: PluginApi, baseUrl: string): void;
|
package/openclaw.plugin.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"id": "jeeves-watcher-openclaw",
|
|
3
3
|
"name": "Jeeves Watcher",
|
|
4
4
|
"description": "Semantic search, metadata enrichment, and instance administration for a jeeves-watcher deployment.",
|
|
5
|
-
"version": "0.
|
|
5
|
+
"version": "0.15.0",
|
|
6
6
|
"skills": [
|
|
7
7
|
"dist/skills/jeeves-watcher"
|
|
8
8
|
],
|
|
@@ -22,6 +22,28 @@
|
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
},
|
|
25
|
+
"contracts": {
|
|
26
|
+
"tools": [
|
|
27
|
+
"watcher_status",
|
|
28
|
+
"watcher_config",
|
|
29
|
+
"watcher_config_apply",
|
|
30
|
+
"watcher_service",
|
|
31
|
+
"watcher_search",
|
|
32
|
+
"watcher_enrich",
|
|
33
|
+
"watcher_validate",
|
|
34
|
+
"watcher_reindex",
|
|
35
|
+
"watcher_scan",
|
|
36
|
+
"watcher_issues",
|
|
37
|
+
"watcher_walk",
|
|
38
|
+
"watcher_vcs_status",
|
|
39
|
+
"watcher_vcs_history",
|
|
40
|
+
"watcher_vcs_show",
|
|
41
|
+
"watcher_vcs_diff",
|
|
42
|
+
"watcher_vcs_revert",
|
|
43
|
+
"watcher_vcs_exclude",
|
|
44
|
+
"watcher_vcs_check"
|
|
45
|
+
]
|
|
46
|
+
},
|
|
25
47
|
"uiHints": {
|
|
26
48
|
"apiUrl": {
|
|
27
49
|
"label": "Watcher API URL",
|
package/package.json
CHANGED
|
@@ -1,15 +1,32 @@
|
|
|
1
1
|
{
|
|
2
|
-
"name": "@karmaniverous/jeeves-watcher-openclaw",
|
|
3
|
-
"version": "0.14.10",
|
|
4
2
|
"author": "Jason Williscroft",
|
|
5
|
-
"description": "OpenClaw plugin for jeeves-watcher — semantic search and metadata enrichment tools",
|
|
6
|
-
"license": "BSD-3-Clause",
|
|
7
|
-
"type": "module",
|
|
8
|
-
"main": "dist/index.js",
|
|
9
|
-
"types": "dist/index.d.ts",
|
|
10
3
|
"bin": {
|
|
11
4
|
"jeeves-watcher-openclaw": "./dist/cli.js"
|
|
12
5
|
},
|
|
6
|
+
"bugs": {
|
|
7
|
+
"url": "https://github.com/karmaniverous/jeeves-watcher/issues"
|
|
8
|
+
},
|
|
9
|
+
"dependencies": {
|
|
10
|
+
"@karmaniverous/jeeves": "^0.5.11",
|
|
11
|
+
"@karmaniverous/jeeves-watcher-core": "^0.2.0"
|
|
12
|
+
},
|
|
13
|
+
"description": "OpenClaw plugin for jeeves-watcher — semantic search and metadata enrichment tools",
|
|
14
|
+
"devDependencies": {
|
|
15
|
+
"@dotenvx/dotenvx": "^1.69.1",
|
|
16
|
+
"@rollup/plugin-commonjs": "^29.0.2",
|
|
17
|
+
"@rollup/plugin-json": "^6.1.0",
|
|
18
|
+
"@rollup/plugin-node-resolve": "^16.0.3",
|
|
19
|
+
"@rollup/plugin-typescript": "^12.3.0",
|
|
20
|
+
"cross-env": "^10.1.0",
|
|
21
|
+
"knip": "^6.14.2",
|
|
22
|
+
"release-it": "^20.0.1",
|
|
23
|
+
"rollup": "^4.60.4",
|
|
24
|
+
"tslib": "^2.8.1",
|
|
25
|
+
"vitest": "^4.1.7"
|
|
26
|
+
},
|
|
27
|
+
"engines": {
|
|
28
|
+
"node": ">=22"
|
|
29
|
+
},
|
|
13
30
|
"exports": {
|
|
14
31
|
".": {
|
|
15
32
|
"import": {
|
|
@@ -23,17 +40,6 @@
|
|
|
23
40
|
"content",
|
|
24
41
|
"openclaw.plugin.json"
|
|
25
42
|
],
|
|
26
|
-
"publishConfig": {
|
|
27
|
-
"access": "public"
|
|
28
|
-
},
|
|
29
|
-
"repository": {
|
|
30
|
-
"type": "git",
|
|
31
|
-
"url": "git+https://github.com/karmaniverous/jeeves-watcher.git",
|
|
32
|
-
"directory": "packages/openclaw"
|
|
33
|
-
},
|
|
34
|
-
"bugs": {
|
|
35
|
-
"url": "https://github.com/karmaniverous/jeeves-watcher/issues"
|
|
36
|
-
},
|
|
37
43
|
"homepage": "https://github.com/karmaniverous/jeeves-watcher#readme",
|
|
38
44
|
"keywords": [
|
|
39
45
|
"openclaw",
|
|
@@ -41,76 +47,70 @@
|
|
|
41
47
|
"jeeves-watcher",
|
|
42
48
|
"semantic-search"
|
|
43
49
|
],
|
|
44
|
-
"
|
|
45
|
-
|
|
46
|
-
|
|
50
|
+
"license": "BSD-3-Clause",
|
|
51
|
+
"main": "dist/index.js",
|
|
52
|
+
"name": "@karmaniverous/jeeves-watcher-openclaw",
|
|
47
53
|
"openclaw": {
|
|
48
54
|
"extensions": [
|
|
49
55
|
"./dist/index.js"
|
|
50
56
|
]
|
|
51
57
|
},
|
|
52
|
-
"
|
|
53
|
-
"
|
|
54
|
-
"@rollup/plugin-commonjs": "^29.0.2",
|
|
55
|
-
"@rollup/plugin-json": "^6.1.0",
|
|
56
|
-
"@rollup/plugin-node-resolve": "^16.0.3",
|
|
57
|
-
"@rollup/plugin-typescript": "^12.3.0",
|
|
58
|
-
"cross-env": "^10.1.0",
|
|
59
|
-
"knip": "^6.13.1",
|
|
60
|
-
"release-it": "^20.0.1",
|
|
61
|
-
"rollup": "^4.60.3",
|
|
62
|
-
"tslib": "^2.8.1",
|
|
63
|
-
"vitest": "^4.1.6"
|
|
64
|
-
},
|
|
65
|
-
"scripts": {
|
|
66
|
-
"build:plugin": "rimraf dist && cross-env NO_COLOR=1 rollup --config rollup.config.ts --configPlugin @rollup/plugin-typescript",
|
|
67
|
-
"build:skills": "tsx scripts/build-skills.ts",
|
|
68
|
-
"build": "npm run build:plugin && npm run build:skills && npm run build:content",
|
|
69
|
-
"build:content": "node scripts/copy-content.mjs",
|
|
70
|
-
"changelog": "git-cliff -o CHANGELOG.md",
|
|
71
|
-
"lint": "eslint .",
|
|
72
|
-
"lint:fix": "eslint --fix .",
|
|
73
|
-
"release": "dotenvx run -f .env.local -- release-it",
|
|
74
|
-
"release:pre": "dotenvx run -f .env.local -- release-it --no-git.requireBranch --github.prerelease --preRelease",
|
|
75
|
-
"test": "vitest run",
|
|
76
|
-
"typecheck": "tsc"
|
|
58
|
+
"publishConfig": {
|
|
59
|
+
"access": "public"
|
|
77
60
|
},
|
|
78
61
|
"release-it": {
|
|
79
62
|
"git": {
|
|
80
63
|
"changelog": "npx git-cliff --unreleased --strip header",
|
|
81
64
|
"commitMessage": "chore: release @karmaniverous/jeeves-watcher-openclaw v${version}",
|
|
82
|
-
"
|
|
83
|
-
"
|
|
65
|
+
"requireBranch": "main",
|
|
66
|
+
"tagName": "openclaw/${version}"
|
|
84
67
|
},
|
|
85
68
|
"github": {
|
|
86
69
|
"release": true
|
|
87
70
|
},
|
|
88
71
|
"hooks": {
|
|
72
|
+
"after:bump": [
|
|
73
|
+
"node -e \"const f='openclaw.plugin.json';const j=JSON.parse(require('fs').readFileSync(f,'utf8'));j.version='${version}';require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'')\""
|
|
74
|
+
],
|
|
89
75
|
"after:init": [
|
|
90
76
|
"npm run lint",
|
|
91
77
|
"npm run typecheck",
|
|
92
78
|
"npm run test",
|
|
93
79
|
"npm run build"
|
|
94
80
|
],
|
|
95
|
-
"before:npm:release": [
|
|
96
|
-
"npx git-cliff -o CHANGELOG.md",
|
|
97
|
-
"git add -A"
|
|
98
|
-
],
|
|
99
81
|
"after:release": [
|
|
100
82
|
"git switch -c release/openclaw/${version}",
|
|
101
83
|
"git push -u origin release/openclaw/${version}",
|
|
102
84
|
"git switch ${branchName}"
|
|
103
85
|
],
|
|
104
|
-
"
|
|
105
|
-
"
|
|
86
|
+
"before:npm:release": [
|
|
87
|
+
"npx git-cliff -o CHANGELOG.md",
|
|
88
|
+
"git add -A"
|
|
106
89
|
]
|
|
107
90
|
},
|
|
108
91
|
"npm": {
|
|
109
92
|
"publish": true
|
|
110
93
|
}
|
|
111
94
|
},
|
|
112
|
-
"
|
|
113
|
-
"
|
|
114
|
-
"
|
|
115
|
-
|
|
95
|
+
"repository": {
|
|
96
|
+
"directory": "packages/openclaw",
|
|
97
|
+
"type": "git",
|
|
98
|
+
"url": "git+https://github.com/karmaniverous/jeeves-watcher.git"
|
|
99
|
+
},
|
|
100
|
+
"scripts": {
|
|
101
|
+
"build": "npm run build:plugin && npm run build:skills && npm run build:content",
|
|
102
|
+
"build:content": "node scripts/copy-content.mjs",
|
|
103
|
+
"build:plugin": "rimraf dist && cross-env NO_COLOR=1 rollup --config rollup.config.ts --configPlugin @rollup/plugin-typescript",
|
|
104
|
+
"build:skills": "tsx scripts/build-skills.ts",
|
|
105
|
+
"changelog": "git-cliff -o CHANGELOG.md",
|
|
106
|
+
"lint": "eslint .",
|
|
107
|
+
"lint:fix": "eslint --fix .",
|
|
108
|
+
"release": "dotenvx run -f .env.local -- release-it",
|
|
109
|
+
"release:pre": "dotenvx run -f .env.local -- release-it --no-git.requireBranch --github.prerelease --preRelease",
|
|
110
|
+
"test": "vitest run",
|
|
111
|
+
"typecheck": "tsc"
|
|
112
|
+
},
|
|
113
|
+
"type": "module",
|
|
114
|
+
"types": "dist/index.d.ts",
|
|
115
|
+
"version": "0.15.0"
|
|
116
116
|
}
|