@nail00749/agent-gvozd 0.1.3 → 0.1.4
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 +12 -6
- package/defaults/agents/devops.jsonc +0 -780
- package/defaults/agents/git.jsonc +284 -369
- package/defaults/agents/verifier.jsonc +449 -39
- package/defaults/prompts/back-deep.md +1 -1
- package/defaults/prompts/back-fast.md +1 -1
- package/defaults/prompts/devops.md +1 -1
- package/defaults/prompts/docs.md +1 -1
- package/defaults/prompts/front-deep.md +1 -1
- package/defaults/prompts/front-fast.md +1 -1
- package/defaults/prompts/git.md +2 -2
- package/defaults/prompts/master.md +4 -4
- package/defaults/prompts/researcher.md +1 -1
- package/defaults/prompts/review-deep.md +1 -1
- package/defaults/prompts/verifier.md +1 -1
- package/dist/cli.js +16 -8
- package/dist/index.js +15 -7
- package/package.json +1 -1
|
@@ -14,14 +14,14 @@ Before delegating work to more than one writer, use Explorer to identify the exa
|
|
|
14
14
|
|
|
15
15
|
Every writer, including Master when editing directly, needs a reserved and claimed lease.
|
|
16
16
|
|
|
17
|
-
Lease
|
|
17
|
+
Lease lifetimes default to 5 minutes reserved and 30 minutes active (configurable per layer via `lease.reservationTtlMinutes` / `lease.activeTtlMinutes`). The reservation window is the fragile one: a claimed lease refreshes itself on every writer tool call and expires only after the configured minutes of writer inactivity, so there is no active-lease countdown to monitor.
|
|
18
18
|
|
|
19
|
-
- Dispatch short, single-file packages synchronously
|
|
20
|
-
-
|
|
19
|
+
- Dispatch short, single-file packages synchronously, and reserve immediately before handing the task to the writer so the claim happens without delay.
|
|
20
|
+
- `gvozd_lease` operation `extend` adds files to a lease after a conflict check and also refreshes its expiry; do not use it as a routine renewal, but re-extending with the same file set is the emergency escape hatch for an inactive writer that is about to lose its lease.
|
|
21
21
|
- If a lease still expires with no changes made, re-reserve the exact same file set and continue the same writer session; never re-plan completed work.
|
|
22
22
|
- Release writer leases as soon as their package completes; shell-based verification (tests, builds, read-only Git) runs while leases are active, so do not serialize verification behind unrelated writers.
|
|
23
23
|
|
|
24
|
-
Route verification work to Verifier, which holds a pre-approved read-only toolchain shell baseline (test, build, typecheck, lint entrypoints across bun/npm/pnpm/yarn, cargo, go, pytest, maven/gradle, make, plus read-only Git and inspection utilities). Only route shell checks to Git or the user when a command falls outside that baseline. If a writer reports that another file is required, use `gvozd_lease` operation `extend` only after checking the added file does not conflict. Release abandoned reservations explicitly. Before sending work to Verifier or asking another agent to run approval-gated shell commands, check with `gvozd_lease` operation `status` that every writer lease has been released; active writer leases pause approval-gated shell work, so wait or release first.
|
|
24
|
+
Route verification work to Verifier, which holds a pre-approved read-only toolchain shell baseline (test, build, typecheck, lint entrypoints across bun/npm/pnpm/yarn, cargo, go, pytest, maven/gradle, make, plus read-only Git and inspection utilities). You cannot run shell commands yourself; route every shell need to Verifier, Git, or the user. Only route shell checks to Git or the user when a command falls outside that baseline. If a writer reports that another file is required, use `gvozd_lease` operation `extend` only after checking the added file does not conflict. Release abandoned reservations explicitly. Before sending work to Verifier or asking another agent to run approval-gated shell commands, check with `gvozd_lease` operation `status` that every writer lease has been released; active writer leases pause approval-gated shell work, so wait or release first.
|
|
25
25
|
|
|
26
26
|
Use Researcher for current external information that requires internet sources. Use Explorer for focused, read-only discovery of files, symbols, dependencies, and execution paths in the local workspace. Use Git for repository status, history, diffs, branches, staging, commits, and other explicitly authorized Git operations. Use Docs for focused documentation, examples, and migration notes. Do not delegate a task merely to restate work that is already clear from the current context.
|
|
27
27
|
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
You are Researcher. Investigate current external information on the internet and return a concise, source-backed answer. Prefer primary and authoritative sources, compare dates when recency matters, distinguish verified facts from inference, and include direct links to the sources that support each material claim.
|
|
1
|
+
You are Researcher. Investigate current external information on the internet and return a concise, source-backed answer. Prefer primary and authoritative sources, compare dates when recency matters, distinguish verified facts from inference, and include direct links to the sources that support each material claim. The Context7 documentation server is available for current library references when it helps the answer.
|
|
2
2
|
|
|
3
3
|
Do not modify files, run shell commands, or delegate work. If the requested answer depends on local code rather than external sources, stop and tell Master to use Explorer instead.
|
|
@@ -2,4 +2,4 @@ You are Review Deep. Independently perform a read-only review of material, cross
|
|
|
2
2
|
|
|
3
3
|
Report actionable findings first with severity and file and line references. Include missing verification and residual risk, then give a clear merge verdict.
|
|
4
4
|
|
|
5
|
-
Use GitNexus only when graph
|
|
5
|
+
Use GitNexus only when the graph is current and its impact evidence materially changes the findings. GitLab access is read-only; do not post comments, approvals, resolutions, or any other external change.
|
|
@@ -2,6 +2,6 @@ You are Verifier. Independently verify the implemented behavior using the smalle
|
|
|
2
2
|
|
|
3
3
|
Do not modify files, create tests, or delegate work.
|
|
4
4
|
|
|
5
|
-
Read-only inspection and toolchain verification commands are pre-approved and must not request approval: test/build/typecheck/lint entrypoints (bun test, bun run build, bun run typecheck, npm test, npm run build, cargo test, go test ./..., pytest, mvn test, gradle check, make test, tsc --noEmit, and equivalents), read-only Git (status, diff, log, show, rev-parse, ls-files, branch, remote), and inspection utilities (cat, grep, find, diff, cmp, mktemp, wc, ls, du, shasum). Run the smallest relevant check first
|
|
5
|
+
Read-only inspection and toolchain verification commands are pre-approved and must not request approval: test/build/typecheck/lint entrypoints (bun test, bun run build, bun run typecheck, npm test, npm run build, cargo test, go test ./..., pytest, mvn test, gradle check, make test, tsc --noEmit, and equivalents), read-only Git (status, diff, log, show, rev-parse, ls-files, branch, tag, remote, symbolic-ref HEAD, worktree list), and inspection utilities (cat, grep, find, diff, cmp, mktemp, wc, ls, du, shasum). Run the smallest relevant check first. Anything that mutates the working tree or external state (package installs, publish, deploy, git add/commit/push) still requires approval; request it with the exact command. Report each check with its result, the environment boundary, and any remaining unverified behavior.
|
|
6
6
|
|
|
7
7
|
Use GitNexus for structural checks only when its index matches the checkout. Playwright observation is available for UI evidence; interactive browser actions require approval.
|
package/dist/cli.js
CHANGED
|
@@ -7239,6 +7239,9 @@ function family(command, ...variants) {
|
|
|
7239
7239
|
wildcard: `${entry} *`
|
|
7240
7240
|
}));
|
|
7241
7241
|
}
|
|
7242
|
+
function exactOnly(command, ...variants) {
|
|
7243
|
+
return [command, ...variants].map((entry) => ({ exact: entry, wildcard: entry }));
|
|
7244
|
+
}
|
|
7242
7245
|
var INSPECTION_COMMANDS = [
|
|
7243
7246
|
...family("pwd", "true", "test"),
|
|
7244
7247
|
...family("cat", "head", "tail", "wc", "sort", "uniq"),
|
|
@@ -7271,20 +7274,25 @@ var TOOLCHAIN_COMMANDS = [
|
|
|
7271
7274
|
var GIT_READONLY_COMMANDS = [
|
|
7272
7275
|
...family("git status", "git status --short", "git status --short --branch", "git status --porcelain", "git status --porcelain=v1 --branch"),
|
|
7273
7276
|
...family("git diff", "git diff --stat", "git diff --cached", "git diff --check"),
|
|
7274
|
-
...family("git log", "git show"
|
|
7275
|
-
...family("git rev-parse", "git rev-list", "git show-ref", "git cat-file"
|
|
7277
|
+
...family("git log", "git show"),
|
|
7278
|
+
...family("git rev-parse", "git rev-list", "git show-ref", "git cat-file"),
|
|
7279
|
+
...exactOnly("git symbolic-ref HEAD", "git symbolic-ref --short HEAD"),
|
|
7276
7280
|
...family("git ls-files", "git ls-remote", "git grep"),
|
|
7277
|
-
...
|
|
7278
|
-
...family("git
|
|
7279
|
-
...family("git -
|
|
7281
|
+
...exactOnly("git branch", "git tag", "git remote", "git reflog"),
|
|
7282
|
+
...family("git branch --list", "git branch -l", "git branch -a", "git branch -r", "git branch -v", "git branch -vv", "git branch --all", "git branch --remotes", "git branch --show-current", "git branch --contains"),
|
|
7283
|
+
...family("git tag --list", "git tag -l", "git tag -n"),
|
|
7284
|
+
...family("git remote -v", "git remote --verbose", "git remote show", "git remote get-url"),
|
|
7285
|
+
...family("git reflog show"),
|
|
7286
|
+
...family("git stash list", "git describe", "git worktree list"),
|
|
7287
|
+
...family("git config --get", "git config --get-regexp")
|
|
7280
7288
|
];
|
|
7281
7289
|
var GIT_MUTATING_COMMANDS = [
|
|
7282
7290
|
...family("git add", "git rm --cached"),
|
|
7283
7291
|
...family("git commit", "git merge --ff-only", "git merge --no-ff"),
|
|
7284
7292
|
...family("git push", "git fetch", "git pull --ff-only"),
|
|
7285
|
-
...family("git tag -a", "git tag -v", "git tag --list"),
|
|
7286
7293
|
...family("git stash", "git cherry-pick", "git revert"),
|
|
7287
|
-
...family("git switch", "git checkout -b", "git worktree
|
|
7294
|
+
...family("git switch", "git checkout -b", "git worktree add"),
|
|
7295
|
+
...exactOnly("git branch *", "git tag *", "git remote *", "git symbolic-ref *", "git reflog *")
|
|
7288
7296
|
];
|
|
7289
7297
|
var GIT_ENV_PREFIXES = ["GIT_OPTIONAL_LOCKS=0"];
|
|
7290
7298
|
function withEnvPrefixes(rule, prefixes = GIT_ENV_PREFIXES) {
|
|
@@ -7328,7 +7336,7 @@ function buildAgentPermissions(agent, mcpServers) {
|
|
|
7328
7336
|
|
|
7329
7337
|
// src/release-metadata.ts
|
|
7330
7338
|
var PACKAGE_NAME = "@nail00749/agent-gvozd";
|
|
7331
|
-
var PACKAGE_VERSION = "0.1.
|
|
7339
|
+
var PACKAGE_VERSION = "0.1.4";
|
|
7332
7340
|
var PACKAGE_SPEC = `${PACKAGE_NAME}@${PACKAGE_VERSION}`;
|
|
7333
7341
|
var SUPPORTED_OPENCODE_VERSION = "0.0.0-beta-19425";
|
|
7334
7342
|
var CONFIG_SCHEMA_VERSION = 2;
|
package/dist/index.js
CHANGED
|
@@ -9,6 +9,9 @@ function family(command, ...variants) {
|
|
|
9
9
|
wildcard: `${entry} *`
|
|
10
10
|
}));
|
|
11
11
|
}
|
|
12
|
+
function exactOnly(command, ...variants) {
|
|
13
|
+
return [command, ...variants].map((entry) => ({ exact: entry, wildcard: entry }));
|
|
14
|
+
}
|
|
12
15
|
var INSPECTION_COMMANDS = [
|
|
13
16
|
...family("pwd", "true", "test"),
|
|
14
17
|
...family("cat", "head", "tail", "wc", "sort", "uniq"),
|
|
@@ -41,20 +44,25 @@ var TOOLCHAIN_COMMANDS = [
|
|
|
41
44
|
var GIT_READONLY_COMMANDS = [
|
|
42
45
|
...family("git status", "git status --short", "git status --short --branch", "git status --porcelain", "git status --porcelain=v1 --branch"),
|
|
43
46
|
...family("git diff", "git diff --stat", "git diff --cached", "git diff --check"),
|
|
44
|
-
...family("git log", "git show"
|
|
45
|
-
...family("git rev-parse", "git rev-list", "git show-ref", "git cat-file"
|
|
47
|
+
...family("git log", "git show"),
|
|
48
|
+
...family("git rev-parse", "git rev-list", "git show-ref", "git cat-file"),
|
|
49
|
+
...exactOnly("git symbolic-ref HEAD", "git symbolic-ref --short HEAD"),
|
|
46
50
|
...family("git ls-files", "git ls-remote", "git grep"),
|
|
47
|
-
...
|
|
48
|
-
...family("git
|
|
49
|
-
...family("git -
|
|
51
|
+
...exactOnly("git branch", "git tag", "git remote", "git reflog"),
|
|
52
|
+
...family("git branch --list", "git branch -l", "git branch -a", "git branch -r", "git branch -v", "git branch -vv", "git branch --all", "git branch --remotes", "git branch --show-current", "git branch --contains"),
|
|
53
|
+
...family("git tag --list", "git tag -l", "git tag -n"),
|
|
54
|
+
...family("git remote -v", "git remote --verbose", "git remote show", "git remote get-url"),
|
|
55
|
+
...family("git reflog show"),
|
|
56
|
+
...family("git stash list", "git describe", "git worktree list"),
|
|
57
|
+
...family("git config --get", "git config --get-regexp")
|
|
50
58
|
];
|
|
51
59
|
var GIT_MUTATING_COMMANDS = [
|
|
52
60
|
...family("git add", "git rm --cached"),
|
|
53
61
|
...family("git commit", "git merge --ff-only", "git merge --no-ff"),
|
|
54
62
|
...family("git push", "git fetch", "git pull --ff-only"),
|
|
55
|
-
...family("git tag -a", "git tag -v", "git tag --list"),
|
|
56
63
|
...family("git stash", "git cherry-pick", "git revert"),
|
|
57
|
-
...family("git switch", "git checkout -b", "git worktree
|
|
64
|
+
...family("git switch", "git checkout -b", "git worktree add"),
|
|
65
|
+
...exactOnly("git branch *", "git tag *", "git remote *", "git symbolic-ref *", "git reflog *")
|
|
58
66
|
];
|
|
59
67
|
var GIT_ENV_PREFIXES = ["GIT_OPTIONAL_LOCKS=0"];
|
|
60
68
|
function withEnvPrefixes(rule, prefixes = GIT_ENV_PREFIXES) {
|
package/package.json
CHANGED