@cratylus/canon 0.13.2 → 0.13.3
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/dist/hook-cells.js +2 -0
- package/dist/hook-cells.js.map +1 -1
- package/dist/hooks/line-worktree.d.ts +2 -0
- package/dist/hooks/line-worktree.js +251 -0
- package/dist/hooks/line-worktree.js.map +1 -0
- package/dist/manifest.d.ts +1 -1
- package/dist/manifest.js +9 -0
- package/dist/manifest.js.map +1 -1
- package/dist/practices.js +11 -1
- package/dist/practices.js.map +1 -1
- package/dist/roles/hold.d.ts +8 -1
- package/dist/roles/hold.js +1 -0
- package/dist/roles/hold.js.map +1 -1
- package/dist/roles/implementer.js +4 -0
- package/dist/roles/implementer.js.map +1 -1
- package/package.json +4 -4
package/dist/hook-cells.js
CHANGED
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
// exist before any adapter was chosen — so every cell spelled out a claude path.
|
|
19
19
|
// The lift is the projector's, per adapter, from `HarnessAdapter.hookCommand`.
|
|
20
20
|
import { deployDriftNotice } from './hooks/deploy-drift-notice.js';
|
|
21
|
+
import { lineWorktree } from './hooks/line-worktree.js';
|
|
21
22
|
import { stanceGuardrailPre } from './hooks/stance-guardrail-pre.js';
|
|
22
23
|
import { stanceGuardrail } from './hooks/stance-guardrail.js';
|
|
23
24
|
/** The harness-substrate hook cells forge projects into settings.json + hooks/<id>/. */
|
|
@@ -25,5 +26,6 @@ export const harnessHookCells = [
|
|
|
25
26
|
stanceGuardrail,
|
|
26
27
|
stanceGuardrailPre,
|
|
27
28
|
deployDriftNotice,
|
|
29
|
+
lineWorktree,
|
|
28
30
|
];
|
|
29
31
|
//# sourceMappingURL=hook-cells.js.map
|
package/dist/hook-cells.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-cells.js","sourceRoot":"","sources":["../src/hook-cells.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,2EAA2E;AAC3E,kFAAkF;AAClF,mFAAmF;AACnF,4EAA4E;AAC5E,kDAAkD;AAClD,kFAAkF;AAClF,gFAAgF;AAChF,kFAAkF;AAClF,oFAAoF;AACpF,oFAAoF;AACpF,oFAAoF;AACpF,qEAAqE;AACrE,EAAE;AACF,0EAA0E;AAC1E,iFAAiF;AACjF,oFAAoF;AACpF,iFAAiF;AACjF,+EAA+E;AAE/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAG9D,wFAAwF;AACxF,MAAM,CAAC,MAAM,gBAAgB,GAAwB;IACnD,eAAe;IACf,kBAAkB;IAClB,iBAAiB;
|
|
1
|
+
{"version":3,"file":"hook-cells.js","sourceRoot":"","sources":["../src/hook-cells.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,2EAA2E;AAC3E,kFAAkF;AAClF,mFAAmF;AACnF,4EAA4E;AAC5E,kDAAkD;AAClD,kFAAkF;AAClF,gFAAgF;AAChF,kFAAkF;AAClF,oFAAoF;AACpF,oFAAoF;AACpF,oFAAoF;AACpF,qEAAqE;AACrE,EAAE;AACF,0EAA0E;AAC1E,iFAAiF;AACjF,oFAAoF;AACpF,iFAAiF;AACjF,+EAA+E;AAE/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAG9D,wFAAwF;AACxF,MAAM,CAAC,MAAM,gBAAgB,GAAwB;IACnD,eAAe;IACf,kBAAkB;IAClB,iBAAiB;IACjB,YAAY;CACb,CAAC"}
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
// line-worktree — the creation of the implementer's worktree, cut from the tip of the
|
|
2
|
+
// bound plan's line.
|
|
3
|
+
//
|
|
4
|
+
// THE GAP IT CLOSES. The implementer declares that it runs in a worktree of its own
|
|
5
|
+
// (`Agent.isolation`), and Claude Code honours that by making one. But Claude Code cuts
|
|
6
|
+
// that worktree from origin's default branch, or from the HEAD of the session that
|
|
7
|
+
// dispatched it — and the dispatcher runs in the main checkout on main. So the
|
|
8
|
+
// implementer started in a worktree that was isolated and was nowhere near the plan's
|
|
9
|
+
// line: its first commit ran from main, and moving it onto the line was left to
|
|
10
|
+
// whatever care the agent had. A rule that depends on the agent remembering to follow it
|
|
11
|
+
// is the rule that was broken in the first place. The agent definition has no base ref
|
|
12
|
+
// to give, and a worktree's base is not the agent's to choose: it is the creation's.
|
|
13
|
+
//
|
|
14
|
+
// THE HOOK PERFORMS THE CREATION. `WorktreeCreate` is not a notification. Claude Code
|
|
15
|
+
// hands the hook the new worktree's `name`, takes the absolute path the hook prints, and
|
|
16
|
+
// uses that directory as the agent's working copy; a hook that prints none fails the
|
|
17
|
+
// creation. So the cell is where the worktree's base can be decided, and this is the one
|
|
18
|
+
// place it is decided: for the implementer's worktree, while a plan is bound, the
|
|
19
|
+
// worktree is cut on a new branch from the tip of that plan's line, and the agent's
|
|
20
|
+
// first commit already runs from the line.
|
|
21
|
+
//
|
|
22
|
+
// IT ACTS FOR THE IMPLEMENTER'S WORKTREE AND FOR NO OTHER. The plan places a unit's
|
|
23
|
+
// worktree off its plan's line and says nothing about any other worktree, yet the hook is
|
|
24
|
+
// registered on the host and Claude Code fires `WorktreeCreate` for every worktree it
|
|
25
|
+
// makes there: a `claude --worktree` session, a background session isolated in a worktree
|
|
26
|
+
// (`bridge-<id>`), and every subagent that declares `isolation: worktree`. Cutting an
|
|
27
|
+
// architect's background session from a plan's line, or failing a session's creation
|
|
28
|
+
// because `cratylus` is not installed, is the cell reaching past what the plan placed.
|
|
29
|
+
// The input names no subagent — its `agent_type` is the dispatcher's — so the worker tells
|
|
30
|
+
// the implementer's worktree by the name Claude Code gives a subagent's: `agent-a` and
|
|
31
|
+
// 7 or 16 hex digits. In this corpus only the implementer declares `isolation: worktree`,
|
|
32
|
+
// so that name is the implementer's; a worktree whose name is not that one is not the
|
|
33
|
+
// implementer's, and where the worker cannot tell it passes through.
|
|
34
|
+
//
|
|
35
|
+
// WHICH PLAN, AND WHERE ITS LINE IS, IS THE RUNTIME'S TO SAY. The cell does not know
|
|
36
|
+
// that plans exist, what a line is called or where it lives: it asks the host's
|
|
37
|
+
// `cratylus plan show`, the way `deploy-drift-notice` asks `deploy --check`, and takes
|
|
38
|
+
// from the answer the one fact it needs — the commit the bound plan's line stands at. It
|
|
39
|
+
// spells no plan name, no branch and no path the runtime does not give it, so a rename of
|
|
40
|
+
// the line's branch, or of the plan lifecycle's states, leaves it untouched.
|
|
41
|
+
//
|
|
42
|
+
// EVERYTHING ELSE IS LEFT AS THE HARNESS WOULD DO IT. For every worktree that is not the
|
|
43
|
+
// implementer's, and for the implementer's when there is no line to cut from — no plan
|
|
44
|
+
// bound, `cratylus` missing, a `plan show` answer the worker does not recognise
|
|
45
|
+
// (`with nothing committed yet`) — the worker creates what Claude Code's own creation
|
|
46
|
+
// would: a worktree at `<project>/.<harness>/worktrees/<name>` on a branch
|
|
47
|
+
// `worktree-<name>`, cut from origin's default branch, or from the session's HEAD where
|
|
48
|
+
// the host's `worktree.baseRef` is `head` or where there is no origin, and prints its
|
|
49
|
+
// path. The hook has replaced that creation for every worktree on the host, so it owes
|
|
50
|
+
// the same behaviour for every one it is not cutting from a line, and it never fails one
|
|
51
|
+
// for want of a line. It says on stderr when the implementer's was made without one.
|
|
52
|
+
//
|
|
53
|
+
// `jq` IS NOT WHAT THE LINE NEEDS. It reads the request and the host's `baseRef`, and
|
|
54
|
+
// where it is not installed the worker reads the one flat string each holds with `sed`;
|
|
55
|
+
// finding the line's tip asks the runtime and uses no `jq`, so a host without `jq` still
|
|
56
|
+
// has the implementer's worktree cut from the line.
|
|
57
|
+
//
|
|
58
|
+
// WHAT IT STILL REFUSES is a creation Claude Code's would refuse as well: a request that
|
|
59
|
+
// names no readable `cwd` or an unusable `name`, a `cwd` inside no repository, a path that
|
|
60
|
+
// is taken, a `git worktree add` that fails. There is no creation to pass through to, and
|
|
61
|
+
// answering with the checkout the session is already in is a worktree that isolates
|
|
62
|
+
// nothing and reads as one. That failure is a message on stderr, a non-zero exit, no path
|
|
63
|
+
// on stdout and no worktree on disk.
|
|
64
|
+
//
|
|
65
|
+
// REMOVAL IS NOT BOUND, AND THAT IS THE CHOICE. With a `WorktreeCreate` hook and no
|
|
66
|
+
// `WorktreeRemove` hook Claude Code keeps the worktree when the agent is done and says so.
|
|
67
|
+
// The worktree holds the unit's commits, and a removal hook would have to decide whether
|
|
68
|
+
// they are safe to discard; the unit's work is landed by recording its commit, and the
|
|
69
|
+
// worktree outliving the agent is what keeps that commit reachable until it is. A
|
|
70
|
+
// removal binding that deleted exactly what this cell created would be a second
|
|
71
|
+
// mechanism owning a judgement the operator's `git worktree remove` already makes.
|
|
72
|
+
//
|
|
73
|
+
// THE WORKER SPEAKS NOTHING. Its stdout is the path and nothing else — Claude Code takes
|
|
74
|
+
// the whole of it as the path — so everything it has to say goes to stderr.
|
|
75
|
+
//
|
|
76
|
+
// `workers[].content` is the TEMPLATE the committed worker at `targetPath` regenerates
|
|
77
|
+
// from, byte-locked by `test/hook-rule-boundary.test.ts`. EDIT THE CELL AND REGENERATE
|
|
78
|
+
// (`pnpm canon:project:targets`) — never the committed `.sh` alone.
|
|
79
|
+
export const lineWorktree = {
|
|
80
|
+
id: 'line-worktree',
|
|
81
|
+
residue: 'creation-moment ↦ WorktreeCreate ⟨hook PERFORMS the creation ¬ observes it · prints path ∧ nothing else⟩ · acts ↾ implementer-copy ⟨name ≜ agent-a⟨hex⁷ ∨ hex¹⁶⟩ ¬ agent_type ∵ input names the dispatcher⟩ ∧ plan bound ⇒ cut(copy, tip(plan-integration)) ⟨new branch ∉ ⟨main · integration⟩ · tip ↦ runtime-answer ¬ spelled · ∄ plan-name ∧ ∄ branch-name ∧ ∄ path ∉ runtime⟩ · ∀ other copy ∨ ∀ failure ⟨∄ plan bound · runtime missing · answer unknown⟩ ⇒ create as host would ⟨origin-default ∨ HEAD ↾ baseRef · <project>/.<harness>/worktrees/<name> · ¬ fail⟩ · creation impossible ⟨¬ cwd · ¬ name · ¬ repository · path taken · git refuses⟩ ⇒ FAIL LOUD ⟨stderr ∧ non-zero ∧ ∅ path ∧ ∅ copy⟩ ⟨¬ fall back to main checkout ∵ isolates nothing ∧ reads as isolation⟩ · removal ≜ kept ⟨∄ WorktreeRemove ∵ copy holds the unit’s commits⟩ · ∄ speech',
|
|
82
|
+
substrate: 'harness',
|
|
83
|
+
events: ['worktree.create'],
|
|
84
|
+
entry: 'line-worktree.sh',
|
|
85
|
+
timeout: 60,
|
|
86
|
+
refs: [],
|
|
87
|
+
workers: [
|
|
88
|
+
{
|
|
89
|
+
filename: 'line-worktree.sh',
|
|
90
|
+
targetPath: 'packages/canon/targets/guardrail/line-worktree.sh',
|
|
91
|
+
executable: true,
|
|
92
|
+
content: `#!/usr/bin/env sh
|
|
93
|
+
# line-worktree — creates the worktree an agent runs in, and prints its path.
|
|
94
|
+
#
|
|
95
|
+
# This hook REPLACES the harness's own worktree creation for every worktree the harness
|
|
96
|
+
# makes on the host: the harness gives it the worktree's name, takes the one path it
|
|
97
|
+
# prints on stdout, and uses that directory as the agent's working copy. A hook that
|
|
98
|
+
# prints none fails the creation.
|
|
99
|
+
#
|
|
100
|
+
# CONTRACT:
|
|
101
|
+
# - THE IMPLEMENTER'S WORKTREE, WITH A PLAN BOUND: the worktree is cut, on a new
|
|
102
|
+
# branch, from the commit the bound plan's line stands at, so the
|
|
103
|
+
# agent's first commit runs from it. The implementer's is the one the
|
|
104
|
+
# harness names agent-a<7 or 16 hex digits>; the input names no
|
|
105
|
+
# subagent, so the name is what there is to tell it by.
|
|
106
|
+
# - EVERY OTHER WORKTREE, AND THE IMPLEMENTER'S WHEN THERE IS NO LINE TO CUT FROM
|
|
107
|
+
# (no plan bound, cratylus missing, a plan show answer this does not
|
|
108
|
+
# know): the worktree is made as the harness would have made it,
|
|
109
|
+
# at <project>/.<harness>/worktrees/<name> from the origin's default
|
|
110
|
+
# branch, or from HEAD where the host's worktree.baseRef is "head", or
|
|
111
|
+
# where there is no origin. This never fails one for want of a line.
|
|
112
|
+
# - NEVER THE MAIN CHECKOUT. A worktree the harness's own creation could not make
|
|
113
|
+
# either (no usable cwd or name, no repository, a path that is taken,
|
|
114
|
+
# a git refusal) is a failure: a message on stderr, a non-zero exit,
|
|
115
|
+
# no path on stdout, nothing on disk.
|
|
116
|
+
# - STDOUT IS THE PATH AND NOTHING ELSE. Every other word goes to stderr.
|
|
117
|
+
# - NOT REMOVED. No removal hook is bound, so the harness keeps the worktree when the
|
|
118
|
+
# agent is done: it holds the unit's commits until they are landed.
|
|
119
|
+
#
|
|
120
|
+
# WHICH PLAN IS BOUND, AND WHERE ITS LINE STANDS, IS THE RUNTIME'S ANSWER. This names no
|
|
121
|
+
# plan, no branch and no path the runtime does not give it.
|
|
122
|
+
#
|
|
123
|
+
# INPUT : WorktreeCreate hook JSON on stdin (cwd, name, session_id, ...).
|
|
124
|
+
# OUTPUT : the new worktree's absolute path, on stdout, and nothing else.
|
|
125
|
+
|
|
126
|
+
set -eu
|
|
127
|
+
|
|
128
|
+
die() {
|
|
129
|
+
printf 'line-worktree: %s\\n' "$*" >&2
|
|
130
|
+
exit 1
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
note() {
|
|
134
|
+
printf 'line-worktree: %s\\n' "$*" >&2
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
# ── WHAT PROJECTION TOLD US ────────────────────────────────────────────────────
|
|
138
|
+
RUNTIME={{fact:runtime-bin}}
|
|
139
|
+
HARNESS={{fact:harness-name}}
|
|
140
|
+
HARNESS_SETTINGS={{fact:harness-hooks-file}}
|
|
141
|
+
|
|
142
|
+
command -v git >/dev/null 2>&1 || die "git is required to create a worktree, and is not installed"
|
|
143
|
+
|
|
144
|
+
have_jq=no
|
|
145
|
+
if command -v jq >/dev/null 2>&1; then
|
|
146
|
+
have_jq=yes
|
|
147
|
+
fi
|
|
148
|
+
|
|
149
|
+
# jstr KEY — the string KEY holds in the JSON on stdin, empty where it holds none. jq
|
|
150
|
+
# reads it where jq is installed; without jq, the one flat string a request or a settings
|
|
151
|
+
# file states plainly (a value with an escape in it is not read, and reads as empty).
|
|
152
|
+
jstr() {
|
|
153
|
+
if [ "$have_jq" = yes ]; then
|
|
154
|
+
jq -r --arg k "$1" '[.. | objects | select(has($k)) | .[$k] | strings] | first // ""'
|
|
155
|
+
else
|
|
156
|
+
sed -n "s/.*\\"$1\\"[[:space:]]*:[[:space:]]*\\"\\([^\\"\\\\]*\\)\\".*/\\1/p" | sed -n 1p
|
|
157
|
+
fi
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
# ── THE REQUEST ────────────────────────────────────────────────────────────────
|
|
161
|
+
input="$(cat)"
|
|
162
|
+
cwd="$(printf '%s' "$input" | jstr cwd 2>/dev/null)" || die "the worktree request is not JSON"
|
|
163
|
+
name="$(printf '%s' "$input" | jstr name 2>/dev/null)" || die "the worktree request is not JSON"
|
|
164
|
+
|
|
165
|
+
[ -n "$cwd" ] && [ -d "$cwd" ] || die "the worktree request names no existing cwd (got '$cwd')"
|
|
166
|
+
# THE NAME BECOMES A PATH AND A BRANCH, so it is examined before it is used: plain
|
|
167
|
+
# path segments only, none empty, none leading with a dash, none climbing out.
|
|
168
|
+
case "$name" in
|
|
169
|
+
'' | -* | /* | */ | *//* | *[!A-Za-z0-9._/-]* | *..*)
|
|
170
|
+
die "refusing the worktree name '$name': it must be plain path segments, none empty or climbing out"
|
|
171
|
+
;;
|
|
172
|
+
esac
|
|
173
|
+
|
|
174
|
+
top="$(git -C "$cwd" rev-parse --show-toplevel 2>/dev/null)" || die "'$cwd' is not inside a git repository"
|
|
175
|
+
path="$top/.$HARNESS/worktrees/$name"
|
|
176
|
+
branch="worktree-$name"
|
|
177
|
+
[ ! -e "$path" ] || die "'$path' already exists"
|
|
178
|
+
|
|
179
|
+
# ── IS IT THE IMPLEMENTER'S? the name the harness gives a subagent's worktree ─────
|
|
180
|
+
h='[0-9a-f]'
|
|
181
|
+
implementer=no
|
|
182
|
+
case "$name" in
|
|
183
|
+
agent-a$h$h$h$h$h$h$h | agent-a$h$h$h$h$h$h$h$h$h$h$h$h$h$h$h$h) implementer=yes ;;
|
|
184
|
+
esac
|
|
185
|
+
|
|
186
|
+
# line_tip — the commit the bound plan's line stands at, or nothing and a non-zero status
|
|
187
|
+
# where the runtime cannot say: it is not installed, it fails, no plan is bound, or its
|
|
188
|
+
# answer is in a shape this does not know.
|
|
189
|
+
line_tip() {
|
|
190
|
+
command -v "$RUNTIME" >/dev/null 2>&1 || return 1
|
|
191
|
+
answer="$(cd "$top" && "$RUNTIME" plan show 2>/dev/null)" || return 1
|
|
192
|
+
first="$(printf '%s\\n' "$answer" | sed -n 1p)"
|
|
193
|
+
case "$first" in
|
|
194
|
+
'plan '*' at '*:*)
|
|
195
|
+
# "plan <name> (<state>) at <commit>: <counts>". More than one plan reads "plans".
|
|
196
|
+
commit="$(printf '%s\\n' "$first" | sed -n 's/^plan .* at \\([0-9a-f][0-9a-f]*\\): .*$/\\1/p')"
|
|
197
|
+
[ -n "$commit" ] || return 1
|
|
198
|
+
git -C "$top" rev-parse --verify --quiet "$commit^{commit}"
|
|
199
|
+
;;
|
|
200
|
+
*) return 1 ;;
|
|
201
|
+
esac
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
# harness_start — what the harness cuts a worktree from: origin's default branch, where
|
|
205
|
+
# there is one, or HEAD where the host's worktree.baseRef is "head".
|
|
206
|
+
harness_start() {
|
|
207
|
+
base="fresh"
|
|
208
|
+
for f in \\
|
|
209
|
+
"$top/.$HARNESS/\${HARNESS_SETTINGS%.json}.local.json" \\
|
|
210
|
+
"$top/.$HARNESS/$HARNESS_SETTINGS" \\
|
|
211
|
+
"\${HOME:-/nonexistent}/.$HARNESS/$HARNESS_SETTINGS"; do
|
|
212
|
+
[ -f "$f" ] || continue
|
|
213
|
+
set_to="$(jstr baseRef <"$f" 2>/dev/null || true)"
|
|
214
|
+
if [ -n "$set_to" ]; then
|
|
215
|
+
base="$set_to"
|
|
216
|
+
break
|
|
217
|
+
fi
|
|
218
|
+
done
|
|
219
|
+
if [ "$base" != "head" ]; then
|
|
220
|
+
if remote="$(git -C "$top" symbolic-ref --quiet --short refs/remotes/origin/HEAD 2>/dev/null)"; then
|
|
221
|
+
printf '%s\\n' "$remote"
|
|
222
|
+
return 0
|
|
223
|
+
fi
|
|
224
|
+
fi
|
|
225
|
+
printf 'HEAD\\n'
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
# ── WHERE FROM? the line, for the implementer's, if the runtime says there is one ──
|
|
229
|
+
start=""
|
|
230
|
+
if [ "$implementer" = yes ]; then
|
|
231
|
+
if start="$(line_tip)" && [ -n "$start" ]; then
|
|
232
|
+
:
|
|
233
|
+
else
|
|
234
|
+
start=""
|
|
235
|
+
note "no plan's line to cut the implementer's worktree from: it is made as the harness would make it"
|
|
236
|
+
fi
|
|
237
|
+
fi
|
|
238
|
+
if [ -z "$start" ]; then
|
|
239
|
+
start="$(harness_start)"
|
|
240
|
+
fi
|
|
241
|
+
|
|
242
|
+
# ── THE WORKTREE ───────────────────────────────────────────────────────────────
|
|
243
|
+
mkdir -p "\${path%/*}" || die "cannot create the directory for '$path'"
|
|
244
|
+
git -C "$top" worktree add -q -b "$branch" "$path" "$start" >&2 || die "git could not create the worktree '$path' on branch '$branch' from '$start'"
|
|
245
|
+
|
|
246
|
+
printf '%s\\n' "$path"
|
|
247
|
+
`,
|
|
248
|
+
},
|
|
249
|
+
],
|
|
250
|
+
};
|
|
251
|
+
//# sourceMappingURL=line-worktree.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"line-worktree.js","sourceRoot":"","sources":["../../src/hooks/line-worktree.ts"],"names":[],"mappings":"AAEA,sFAAsF;AACtF,qBAAqB;AACrB,EAAE;AACF,oFAAoF;AACpF,wFAAwF;AACxF,mFAAmF;AACnF,+EAA+E;AAC/E,sFAAsF;AACtF,gFAAgF;AAChF,yFAAyF;AACzF,uFAAuF;AACvF,qFAAqF;AACrF,EAAE;AACF,sFAAsF;AACtF,yFAAyF;AACzF,qFAAqF;AACrF,yFAAyF;AACzF,kFAAkF;AAClF,oFAAoF;AACpF,2CAA2C;AAC3C,EAAE;AACF,oFAAoF;AACpF,0FAA0F;AAC1F,sFAAsF;AACtF,0FAA0F;AAC1F,sFAAsF;AACtF,qFAAqF;AACrF,uFAAuF;AACvF,2FAA2F;AAC3F,uFAAuF;AACvF,0FAA0F;AAC1F,sFAAsF;AACtF,qEAAqE;AACrE,EAAE;AACF,qFAAqF;AACrF,gFAAgF;AAChF,uFAAuF;AACvF,yFAAyF;AACzF,0FAA0F;AAC1F,6EAA6E;AAC7E,EAAE;AACF,yFAAyF;AACzF,uFAAuF;AACvF,gFAAgF;AAChF,sFAAsF;AACtF,2EAA2E;AAC3E,wFAAwF;AACxF,sFAAsF;AACtF,uFAAuF;AACvF,yFAAyF;AACzF,qFAAqF;AACrF,EAAE;AACF,sFAAsF;AACtF,wFAAwF;AACxF,yFAAyF;AACzF,oDAAoD;AACpD,EAAE;AACF,yFAAyF;AACzF,2FAA2F;AAC3F,0FAA0F;AAC1F,oFAAoF;AACpF,0FAA0F;AAC1F,qCAAqC;AACrC,EAAE;AACF,oFAAoF;AACpF,2FAA2F;AAC3F,yFAAyF;AACzF,uFAAuF;AACvF,kFAAkF;AAClF,gFAAgF;AAChF,mFAAmF;AACnF,EAAE;AACF,yFAAyF;AACzF,4EAA4E;AAC5E,EAAE;AACF,uFAAuF;AACvF,uFAAuF;AACvF,oEAAoE;AAEpE,MAAM,CAAC,MAAM,YAAY,GAAa;IACpC,EAAE,EAAE,eAAe;IACnB,OAAO,EACL,m0BAAm0B;IACr0B,SAAS,EAAE,SAAS;IACpB,MAAM,EAAE,CAAC,iBAAiB,CAAC;IAC3B,KAAK,EAAE,kBAAkB;IACzB,OAAO,EAAE,EAAE;IACX,IAAI,EAAE,EAAE;IACR,OAAO,EAAE;QACP;YACE,QAAQ,EAAE,kBAAkB;YAC5B,UAAU,EAAE,mDAAmD;YAC/D,UAAU,EAAE,IAAI;YAChB,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2Jd;SACI;KACF;CACF,CAAC"}
|
package/dist/manifest.d.ts
CHANGED
|
@@ -184,7 +184,7 @@ export type RuntimeCapability = (typeof RUNTIME_CAPABILITIES)[number];
|
|
|
184
184
|
/** This corpus's `Skill`: schema's shape, narrowed to the capabilities above. */
|
|
185
185
|
export type Skill = SkillOf<RuntimeCapability>;
|
|
186
186
|
export type { SkillExpression };
|
|
187
|
-
export declare const CANONICAL_EVENTS: readonly ["session.start", "session.resume", "session.end", "prompt.submit", "turn.end", "turn.fail", "agent.idle", "model.request.pre", "model.response.post", "tool.use.pre", "tool.use.post", "tool.use.fail", "file.edit.post", "file.read.pre", "file.change.external", "shell.exec.pre", "shell.exec.post", "mcp.exec.pre", "mcp.exec.post", "subagent.dispatch.pre", "subagent.start", "subagent.end", "operator.consult.pre", "permission.request", "permission.deny", "notification", "context.compact.pre", "context.compact.post", "config.changed", "instructions.loaded", "vcs.commit.post"];
|
|
187
|
+
export declare const CANONICAL_EVENTS: readonly ["session.start", "session.resume", "session.end", "prompt.submit", "turn.end", "turn.fail", "agent.idle", "model.request.pre", "model.response.post", "tool.use.pre", "tool.use.post", "tool.use.fail", "file.edit.post", "file.read.pre", "file.change.external", "shell.exec.pre", "shell.exec.post", "mcp.exec.pre", "mcp.exec.post", "subagent.dispatch.pre", "subagent.start", "subagent.end", "worktree.create", "operator.consult.pre", "permission.request", "permission.deny", "notification", "context.compact.pre", "context.compact.post", "config.changed", "instructions.loaded", "vcs.commit.post"];
|
|
188
188
|
/** One moment this corpus has a name for — the pivot every adapter maps FROM. */
|
|
189
189
|
export type CanonicalEvent = (typeof CANONICAL_EVENTS)[number];
|
|
190
190
|
/** This corpus's `HookCell`: schema's shape, narrowed to the events above and to
|
package/dist/manifest.js
CHANGED
|
@@ -193,6 +193,13 @@ export const RUNTIME_CAPABILITIES = [
|
|
|
193
193
|
// and `substrate` is a declared axis (`Substrate = 'harness' | 'git'`) that already
|
|
194
194
|
// routes it. With an open `EventName` the union has nothing to widen, so it
|
|
195
195
|
// dissolved on its own.
|
|
196
|
+
//
|
|
197
|
+
// `worktree.create` NAMES THE MOMENT A WORKTREE IS MADE FOR AN AGENT, and a hook bound to
|
|
198
|
+
// it does not observe the moment, it PERFORMS it: the harness asks the hook to create the
|
|
199
|
+
// worktree and take the path it answers with. Claude Code fires it as WorktreeCreate,
|
|
200
|
+
// replacing its own creation; omp has no per-agent worktree and fires nothing here, so the
|
|
201
|
+
// moment is absent from its map and projection declares the loss. There is no `.pre` or
|
|
202
|
+
// `.post` in the name because there is no before and after: the hook IS the creation.
|
|
196
203
|
export const CANONICAL_EVENTS = [
|
|
197
204
|
// harness substrate — a session's shape
|
|
198
205
|
'session.start',
|
|
@@ -221,6 +228,8 @@ export const CANONICAL_EVENTS = [
|
|
|
221
228
|
'subagent.dispatch.pre',
|
|
222
229
|
'subagent.start',
|
|
223
230
|
'subagent.end',
|
|
231
|
+
// harness substrate — the working copy an agent is given
|
|
232
|
+
'worktree.create',
|
|
224
233
|
// harness substrate — what the operator is asked and told
|
|
225
234
|
'operator.consult.pre',
|
|
226
235
|
'permission.request',
|
package/dist/manifest.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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"}
|
package/dist/practices.js
CHANGED
|
@@ -13,7 +13,11 @@
|
|
|
13
13
|
// lists those four beside it. It lists SKILLS only where no agent carries them: a
|
|
14
14
|
// skill an agent is given travels with the agent, and whatever a skill composes
|
|
15
15
|
// travels with it. A guard (a hook cell that binds a composition) is listed nowhere:
|
|
16
|
-
// it is registered exactly when a rendered agent composes what it binds.
|
|
16
|
+
// it is registered exactly when a rendered agent composes what it binds. A hook cell
|
|
17
|
+
// that binds no composition but serves what an agent DECLARES is listed by the
|
|
18
|
+
// practices that place that agent: the worktree the implementer is started in is cut
|
|
19
|
+
// from the plan's line by `line-worktree`, so every practice that places the
|
|
20
|
+
// implementer lists it.
|
|
17
21
|
//
|
|
18
22
|
// The practice names are signs of THIS corpus's own making; the consumer-facing
|
|
19
23
|
// description is the one line an install shows beside each.
|
|
@@ -21,17 +25,22 @@
|
|
|
21
25
|
/** The architect role's dispatch, as agent names: what a practice that places an
|
|
22
26
|
* architect-holder must also place. */
|
|
23
27
|
const WRITERS = ['planner', 'implementer', 'assayer', 'integrator'];
|
|
28
|
+
/** The hook cells every practice placing the `WRITERS` lists: the implementer declares
|
|
29
|
+
* that it runs in a worktree of its own, and this cell makes that worktree off the line. */
|
|
30
|
+
const WRITER_HOOKS = ['line-worktree'];
|
|
24
31
|
export const PRACTICES = [
|
|
25
32
|
{
|
|
26
33
|
name: 'cdd',
|
|
27
34
|
description: 'Concept-driven development: an architect holds the design and hands it out, a planner cuts it into units, an implementer builds each one, an assayer judges it against the design, and an integrator makes the approved work whole.',
|
|
28
35
|
agents: ['mav', 'architect', ...WRITERS],
|
|
36
|
+
hooks: WRITER_HOOKS,
|
|
29
37
|
preselected: true,
|
|
30
38
|
},
|
|
31
39
|
{
|
|
32
40
|
name: 'corpus-authoring',
|
|
33
41
|
description: 'Author the corpus of named concepts itself: discover the signs a model already holds, canonize them, and write the agents and skills that carry them.',
|
|
34
42
|
agents: ['nico', ...WRITERS],
|
|
43
|
+
hooks: WRITER_HOOKS,
|
|
35
44
|
skills: [
|
|
36
45
|
'signify',
|
|
37
46
|
'probe',
|
|
@@ -49,6 +58,7 @@ export const PRACTICES = [
|
|
|
49
58
|
name: 'film-production',
|
|
50
59
|
description: 'Make films with software: a film-floor architect holds what the craft requires and hands the building to the same planner-to-integrator line.',
|
|
51
60
|
agents: ['kino', ...WRITERS],
|
|
61
|
+
hooks: WRITER_HOOKS,
|
|
52
62
|
},
|
|
53
63
|
{
|
|
54
64
|
name: 'carry-on',
|
package/dist/practices.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"practices.js","sourceRoot":"","sources":["../src/practices.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,yEAAyE;AACzE,EAAE;AACF,qFAAqF;AACrF,iFAAiF;AACjF,mFAAmF;AACnF,kDAAkD;AAClD,EAAE;AACF,mFAAmF;AACnF,oFAAoF;AACpF,oFAAoF;AACpF,kFAAkF;AAClF,kFAAkF;AAClF,gFAAgF;AAChF,qFAAqF;AACrF,
|
|
1
|
+
{"version":3,"file":"practices.js","sourceRoot":"","sources":["../src/practices.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,yEAAyE;AACzE,EAAE;AACF,qFAAqF;AACrF,iFAAiF;AACjF,mFAAmF;AACnF,kDAAkD;AAClD,EAAE;AACF,mFAAmF;AACnF,oFAAoF;AACpF,oFAAoF;AACpF,kFAAkF;AAClF,kFAAkF;AAClF,gFAAgF;AAChF,qFAAqF;AACrF,qFAAqF;AACrF,+EAA+E;AAC/E,qFAAqF;AACrF,6EAA6E;AAC7E,wBAAwB;AACxB,EAAE;AACF,gFAAgF;AAChF,4DAA4D;AAC5D,gFAAgF;AAIhF;wCACwC;AACxC,MAAM,OAAO,GAAG,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,CAAU,CAAC;AAE7E;6FAC6F;AAC7F,MAAM,YAAY,GAAG,CAAC,eAAe,CAAU,CAAC;AAEhD,MAAM,CAAC,MAAM,SAAS,GAAwB;IAC5C;QACE,IAAI,EAAE,KAAK;QACX,WAAW,EACT,qOAAqO;QACvO,MAAM,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;QACxC,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,IAAI;KAClB;IACD;QACE,IAAI,EAAE,kBAAkB;QACxB,WAAW,EACT,uJAAuJ;QACzJ,MAAM,EAAE,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC;QAC5B,KAAK,EAAE,YAAY;QACnB,MAAM,EAAE;YACN,SAAS;YACT,OAAO;YACP,QAAQ;YACR,eAAe;YACf,WAAW;YACX,aAAa;YACb,WAAW;YACX,cAAc;YACd,cAAc;YACd,YAAY;SACb;KACF;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,WAAW,EACT,+IAA+I;QACjJ,MAAM,EAAE,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC;QAC5B,KAAK,EAAE,YAAY;KACpB;IACD;QACE,IAAI,EAAE,UAAU;QAChB,WAAW,EACT,mIAAmI;QACrI,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,CAAC,UAAU,CAAC;KACrB;CACF,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAa;IAChC,MAAM,EAAE,CAAC,WAAW,CAAC;IACrB,KAAK,EAAE,CAAC,qBAAqB,CAAC;CAC/B,CAAC"}
|
package/dist/roles/hold.d.ts
CHANGED
|
@@ -42,6 +42,13 @@ export interface RoleCell {
|
|
|
42
42
|
* their anchors to `Agent.dispatches`, as it does the held role to `Agent.holds`.
|
|
43
43
|
*/
|
|
44
44
|
readonly dispatches: readonly Role[];
|
|
45
|
+
/**
|
|
46
|
+
* That every holder of the role runs in a git worktree of its own. Absent for a
|
|
47
|
+
* role whose holders run where their dispatcher does. The fold copies it to
|
|
48
|
+
* `Agent.isolation`, as it does `dispatches`; a persona cannot state it, because
|
|
49
|
+
* where an agent runs is the role's to say.
|
|
50
|
+
*/
|
|
51
|
+
readonly isolation?: 'worktree';
|
|
45
52
|
/** The aspects expected of anyone holding the role — DEFAULTS, every one. */
|
|
46
53
|
readonly vector: RoleVector;
|
|
47
54
|
}
|
|
@@ -55,7 +62,7 @@ export interface RoleCell {
|
|
|
55
62
|
* `role` is absent, because the contract is the role's. An aspect stated here
|
|
56
63
|
* OVERRIDES a scalar the role supplies and EXTENDS a set.
|
|
57
64
|
*/
|
|
58
|
-
export type Persona = Omit<AgentIdentity, 'holds' | 'dispatches' | 'provenance'> & {
|
|
65
|
+
export type Persona = Omit<AgentIdentity, 'holds' | 'dispatches' | 'isolation' | 'provenance'> & {
|
|
59
66
|
readonly provenance: {
|
|
60
67
|
readonly mark: Mark;
|
|
61
68
|
};
|
package/dist/roles/hold.js
CHANGED
|
@@ -83,6 +83,7 @@ export function holds(role, persona) {
|
|
|
83
83
|
...(role.dispatches.length > 0
|
|
84
84
|
? { dispatches: role.dispatches.map((r) => anchorOf(r)) }
|
|
85
85
|
: {}),
|
|
86
|
+
...(role.isolation !== undefined ? { isolation: role.isolation } : {}),
|
|
86
87
|
};
|
|
87
88
|
if (declared.preamble !== undefined) {
|
|
88
89
|
resolved.preamble = declared.preamble;
|
package/dist/roles/hold.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hold.js","sourceRoot":"","sources":["../../src/roles/hold.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,0CAA0C;AAC1C,EAAE;AACF,oFAAoF;AACpF,qFAAqF;AACrF,sFAAsF;AACtF,+EAA+E;AAC/E,qBAAqB;AACrB,EAAE;AACF,oFAAoF;AACpF,qFAAqF;AACrF,qFAAqF;AACrF,oFAAoF;AACpF,qFAAqF;AACrF,qFAAqF;AACrF,+CAA+C;AAC/C,EAAE;AACF,iFAAiF;AACjF,qFAAqF;AACrF,iFAAiF;AACjF,mFAAmF;AACnF,uDAAuD;AACvD,EAAE;AACF,uFAAuF;AACvF,uFAAuF;AACvF,kFAAkF;AAClF,+EAA+E;AAC/E,uFAAuF;AACvF,sFAAsF;AACtF,uFAAuF;AACvF,kFAAkF;AAClF,4BAA4B;AAC5B,EAAE;AACF,mFAAmF;AACnF,oFAAoF;AACpF,gFAAgF;AAChF,iFAAiF;AACjF,kFAAkF;AAClF,sFAAsF;AACtF,mEAAmE;AACnE,EAAE;AACF,kFAAkF;AAClF,sFAAsF;AACtF,oFAAoF;AACpF,uFAAuF;AACvF,uFAAuF;AACvF,uFAAuF;AACvF,uFAAuF;AACvF,oEAAoE;AACpE,gFAAgF;AAOhF,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"hold.js","sourceRoot":"","sources":["../../src/roles/hold.ts"],"names":[],"mappings":"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"}
|
|
@@ -47,6 +47,10 @@ export const implementerRole = {
|
|
|
47
47
|
skills: ['note'],
|
|
48
48
|
// Dispatches no role: it builds its one unit and returns a name.
|
|
49
49
|
dispatches: [],
|
|
50
|
+
// Runs in a git worktree of its own, started there by the harness: the rule that its
|
|
51
|
+
// unit is built off the plan's line, and never in the operator's main checkout, then
|
|
52
|
+
// holds from the first instruction and does not wait on the agent's own care.
|
|
53
|
+
isolation: 'worktree',
|
|
50
54
|
vector: {
|
|
51
55
|
formality: plain_formality,
|
|
52
56
|
audienceAdaptation: maintenance_audienceAdaptation,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"implementer.js","sourceRoot":"","sources":["../../src/roles/implementer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"implementer.js","sourceRoot":"","sources":["../../src/roles/implementer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cratylus/canon",
|
|
3
|
-
"version": "0.13.
|
|
3
|
+
"version": "0.13.3",
|
|
4
4
|
"description": "The canonical corpus of discovered optimal-signifiers — agents, skills, dimensions and rules as typed TS source. Markdown is a projection of these modules.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"engines": {
|
|
@@ -18,11 +18,11 @@
|
|
|
18
18
|
],
|
|
19
19
|
"//test": "`test` builds FIRST because `test/runtime-shim.test.ts` drives the shipped `cratylus project` over the repository's own `cratylus.config.ts`, and that config extends `@cratylus/canon` — the PACKAGE, i.e. this package's `dist`. turbo's `test.dependsOn: [^build]` builds this package's DEPENDENCIES, never this package, so a cold clone would run the consumer path against a dist that does not exist.",
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@cratylus/schema": "0.
|
|
21
|
+
"@cratylus/schema": "0.9.0"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
|
-
"@cratylus/forge": "0.14.
|
|
25
|
-
"@cratylus/runtime": "0.9.
|
|
24
|
+
"@cratylus/forge": "0.14.3",
|
|
25
|
+
"@cratylus/runtime": "0.9.4",
|
|
26
26
|
"@cratylus/tooling": "0.0.0",
|
|
27
27
|
"@types/node": "^22.0.0",
|
|
28
28
|
"tsx": "^4.19.0",
|