llm-wb 0.1.0-beta.0 → 0.1.0-beta.1
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/.agentic/00.chat/checklists/llm-workbench-public-beta.md +1 -0
- package/.agentic/00.chat/commands/README.md +4 -0
- package/.agentic/00.chat/standards/llm-workbench-public-beta-contract.md +1 -0
- package/docs/workflows.md +19 -0
- package/package.json +4 -1
- package/scripts/00.chat/command/README.md +3 -0
- package/scripts/00.chat/command/dispatcher/script.sh +9 -0
- package/scripts/00.chat/command/dispatcher/smoke-test.sh +34 -1
- package/scripts/00.chat/command/download-repo/README.md +23 -0
- package/scripts/00.chat/command/download-repo/script.sh +25 -0
- package/scripts/00.chat/command/download-repo-diff/README.md +23 -0
- package/scripts/00.chat/command/download-repo-diff/script.sh +25 -0
- package/scripts/00.chat/command/package-scripts/smoke-test.sh +22 -0
- package/scripts/00.chat/export/README.md +29 -0
- package/scripts/00.chat/export/create-worktree-bundle/README.md +37 -0
- package/scripts/00.chat/export/create-worktree-bundle/script.js +640 -0
- package/scripts/00.chat/export/smoke-test.sh +210 -0
- package/scripts/00.chat/export/worktree/README.md +28 -0
- package/scripts/00.chat/export/worktree/script.sh +25 -0
- package/scripts/00.chat/export/worktree-diff/README.md +28 -0
- package/scripts/00.chat/export/worktree-diff/script.sh +25 -0
- package/scripts/01.harness/check-governed-script-command-drift.sh +0 -0
- package/tests/smoke-test-install.sh +12 -1
|
@@ -58,6 +58,7 @@ bash scripts/01.harness/run-governed-script.sh --approved-action scripts/00.chat
|
|
|
58
58
|
bash scripts/01.harness/run-governed-script.sh --approved-action scripts/00.chat/session-log/record-chat-commit/smoke-test.sh
|
|
59
59
|
bash scripts/01.harness/run-governed-script.sh --approved-action scripts/00.chat/command/package-scripts/smoke-test.sh
|
|
60
60
|
bash scripts/01.harness/run-governed-script.sh --approved-action scripts/00.chat/command/dispatcher/smoke-test.sh
|
|
61
|
+
bash scripts/01.harness/run-governed-script.sh --approved-action scripts/00.chat/export/smoke-test.sh
|
|
61
62
|
bash scripts/01.harness/run-governed-script.sh --approved-action scripts/01.harness/artifact-metadata/check-headers/smoke-test.sh
|
|
62
63
|
bash scripts/01.harness/artifact-metadata/check-headers/script.sh --all
|
|
63
64
|
bash scripts/01.harness/check-governed-script-command-drift.sh
|
|
@@ -68,6 +68,10 @@ scripts/00.chat/command/dispatcher/README.md
|
|
|
68
68
|
- `new <prompt>` - starts a new chat session from an explicit prompt.
|
|
69
69
|
- `open window [worktree-path|session-log]` - opens a new VS Code window for the
|
|
70
70
|
current or specified chat-owned worktree.
|
|
71
|
+
- `download repo [worktree-path|session-log]` - exports the selected chat
|
|
72
|
+
worktree as a portable review bundle.
|
|
73
|
+
- `download repo diff [--base <ref>] [worktree-path|session-log]` - exports only
|
|
74
|
+
files changed relative to a base ref, defaulting to local `main`.
|
|
71
75
|
- `close` - prints or copies a governed prompt for committing approved work, if
|
|
72
76
|
needed, then promoting the chat branch into local `main`.
|
|
73
77
|
|
|
@@ -151,6 +151,7 @@ bash scripts/01.harness/run-governed-script.sh --approved-action scripts/00.chat
|
|
|
151
151
|
bash scripts/01.harness/run-governed-script.sh --approved-action scripts/00.chat/session-log/record-chat-commit/smoke-test.sh
|
|
152
152
|
bash scripts/01.harness/run-governed-script.sh --approved-action scripts/00.chat/command/package-scripts/smoke-test.sh
|
|
153
153
|
bash scripts/01.harness/run-governed-script.sh --approved-action scripts/00.chat/command/dispatcher/smoke-test.sh
|
|
154
|
+
bash scripts/01.harness/run-governed-script.sh --approved-action scripts/00.chat/export/smoke-test.sh
|
|
154
155
|
bash scripts/01.harness/run-governed-script.sh --approved-action scripts/01.harness/artifact-metadata/check-headers/smoke-test.sh
|
|
155
156
|
bash scripts/01.harness/artifact-metadata/check-headers/script.sh --all
|
|
156
157
|
bash scripts/01.harness/check-governed-script-command-drift.sh
|
package/docs/workflows.md
CHANGED
|
@@ -101,3 +101,22 @@ empty chat branches when it is safe.
|
|
|
101
101
|
|
|
102
102
|
`llm-wb list` intentionally lists installed workbench commands. Use
|
|
103
103
|
`llm-wb sessions list` to list active chat sessions.
|
|
104
|
+
|
|
105
|
+
## Export Work For Review
|
|
106
|
+
|
|
107
|
+
To send the active chat worktree to another model, engineer, or verification
|
|
108
|
+
environment:
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
npm run chat -- download repo
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
To send only files changed relative to local `main`:
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
npm run chat -- download repo diff
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Both commands create a zip review bundle outside the repo by default and include
|
|
121
|
+
`llm-workbench-export-manifest.json` with branch, base ref, included files,
|
|
122
|
+
deleted files, and untracked files.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "llm-wb",
|
|
3
|
-
"version": "0.1.0-beta.
|
|
3
|
+
"version": "0.1.0-beta.1",
|
|
4
4
|
"description": "A portable chat harness for governed agentic development workflows.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Gordon Rose",
|
|
@@ -55,6 +55,7 @@
|
|
|
55
55
|
"scripts/00.chat/bootstrap/",
|
|
56
56
|
"scripts/00.chat/closeout/",
|
|
57
57
|
"scripts/00.chat/command/",
|
|
58
|
+
"scripts/00.chat/export/",
|
|
58
59
|
"scripts/00.chat/git/",
|
|
59
60
|
"scripts/00.chat/local-merge/",
|
|
60
61
|
"scripts/00.chat/main-refresh/",
|
|
@@ -80,6 +81,8 @@
|
|
|
80
81
|
"chat:list": "bash scripts/00.chat/command/dispatcher/script.sh list",
|
|
81
82
|
"chat:new": "bash scripts/00.chat/command/dispatcher/script.sh new",
|
|
82
83
|
"chat:open-window": "bash scripts/00.chat/command/dispatcher/script.sh open-window",
|
|
84
|
+
"chat:download-repo": "bash scripts/00.chat/command/dispatcher/script.sh download-repo",
|
|
85
|
+
"chat:download-repo-diff": "bash scripts/00.chat/command/dispatcher/script.sh download-repo-diff",
|
|
83
86
|
"chat:close": "bash scripts/00.chat/command/dispatcher/script.sh close",
|
|
84
87
|
"chat:audit-bootstrap": "bash scripts/00.chat/bootstrap/audit-chat-bootstrap-file-set/script.sh",
|
|
85
88
|
"chat:audit-layer-migration": "bash scripts/00.chat/migration/audit-chat-layer-migration/script.sh",
|
|
@@ -29,3 +29,6 @@ capabilities to live in domain folders such as `startup`, `closeout`, or
|
|
|
29
29
|
The command domain is mostly routing. A command entrypoint should delegate to a
|
|
30
30
|
capability script rather than duplicating the capability's logic.
|
|
31
31
|
|
|
32
|
+
Spaced human commands may be normalized by the dispatcher. For example,
|
|
33
|
+
`download repo` routes to `download-repo`, while `download repo diff` routes to
|
|
34
|
+
`download-repo-diff`.
|
|
@@ -66,6 +66,15 @@ if [ "$COMMAND_NAME" = "open" ] && [ "${1:-}" = "window" ]; then
|
|
|
66
66
|
shift
|
|
67
67
|
fi
|
|
68
68
|
|
|
69
|
+
if [ "$COMMAND_NAME" = "download" ] && [ "${1:-}" = "repo" ]; then
|
|
70
|
+
COMMAND_NAME="download-repo"
|
|
71
|
+
shift
|
|
72
|
+
if [ "${1:-}" = "diff" ]; then
|
|
73
|
+
COMMAND_NAME="download-repo-diff"
|
|
74
|
+
shift
|
|
75
|
+
fi
|
|
76
|
+
fi
|
|
77
|
+
|
|
69
78
|
case "$COMMAND_NAME" in
|
|
70
79
|
*[!a-zA-Z0-9_-]*|'')
|
|
71
80
|
echo "ERROR: invalid chat command name: $COMMAND_NAME" >&2
|
|
@@ -50,8 +50,13 @@ mkdir -p \
|
|
|
50
50
|
"$REPO/scripts/00.chat/closeout/build-closeout-prompt" \
|
|
51
51
|
"$REPO/scripts/00.chat/command/close" \
|
|
52
52
|
"$REPO/scripts/00.chat/command/dispatcher" \
|
|
53
|
+
"$REPO/scripts/00.chat/command/download-repo" \
|
|
54
|
+
"$REPO/scripts/00.chat/command/download-repo-diff" \
|
|
53
55
|
"$REPO/scripts/00.chat/command/new" \
|
|
54
56
|
"$REPO/scripts/00.chat/command/open-window" \
|
|
57
|
+
"$REPO/scripts/00.chat/export/create-worktree-bundle" \
|
|
58
|
+
"$REPO/scripts/00.chat/export/worktree" \
|
|
59
|
+
"$REPO/scripts/00.chat/export/worktree-diff" \
|
|
55
60
|
"$REPO/scripts/00.chat/git/cleanup-empty-chat-branches" \
|
|
56
61
|
"$REPO/scripts/00.chat/session-log/paths" \
|
|
57
62
|
"$REPO/scripts/00.chat/startup/auto-start-missing-session" \
|
|
@@ -65,6 +70,11 @@ cp "$SOURCE_ROOT/scripts/00.chat/command/dispatcher/script.sh" "$REPO/scripts/00
|
|
|
65
70
|
cp "$SOURCE_ROOT/scripts/00.chat/command/new/script.sh" "$REPO/scripts/00.chat/command/new/script.sh"
|
|
66
71
|
cp "$SOURCE_ROOT/scripts/00.chat/command/close/script.sh" "$REPO/scripts/00.chat/command/close/script.sh"
|
|
67
72
|
cp "$SOURCE_ROOT/scripts/00.chat/command/open-window/script.sh" "$REPO/scripts/00.chat/command/open-window/script.sh"
|
|
73
|
+
cp "$SOURCE_ROOT/scripts/00.chat/command/download-repo/script.sh" "$REPO/scripts/00.chat/command/download-repo/script.sh"
|
|
74
|
+
cp "$SOURCE_ROOT/scripts/00.chat/command/download-repo-diff/script.sh" "$REPO/scripts/00.chat/command/download-repo-diff/script.sh"
|
|
75
|
+
cp "$SOURCE_ROOT/scripts/00.chat/export/create-worktree-bundle/script.js" "$REPO/scripts/00.chat/export/create-worktree-bundle/script.js"
|
|
76
|
+
cp "$SOURCE_ROOT/scripts/00.chat/export/worktree/script.sh" "$REPO/scripts/00.chat/export/worktree/script.sh"
|
|
77
|
+
cp "$SOURCE_ROOT/scripts/00.chat/export/worktree-diff/script.sh" "$REPO/scripts/00.chat/export/worktree-diff/script.sh"
|
|
68
78
|
cp "$SOURCE_ROOT/scripts/00.chat/session-log/paths/lib.sh" "$REPO/scripts/00.chat/session-log/paths/lib.sh"
|
|
69
79
|
cp "$SOURCE_ROOT/scripts/00.chat/worktree/paths/lib.sh" "$REPO/scripts/00.chat/worktree/paths/lib.sh"
|
|
70
80
|
cp "$SOURCE_ROOT/scripts/00.chat/worktree/ensure-chat-worktree/script.sh" "$REPO/scripts/00.chat/worktree/ensure-chat-worktree/script.sh"
|
|
@@ -74,7 +84,7 @@ cp "$SOURCE_ROOT/scripts/00.chat/startup/start-new-chat/script.sh" "$REPO/script
|
|
|
74
84
|
cp "$SOURCE_ROOT/scripts/00.chat/closeout/build-closeout-prompt/script.sh" "$REPO/scripts/00.chat/closeout/build-closeout-prompt/script.sh"
|
|
75
85
|
cp "$SOURCE_ROOT/scripts/00.chat/startup/auto-start-missing-session/script.sh" "$REPO/scripts/00.chat/startup/auto-start-missing-session/script.sh"
|
|
76
86
|
cp "$SOURCE_ROOT/scripts/00.chat/git/cleanup-empty-chat-branches/script.sh" "$REPO/scripts/00.chat/git/cleanup-empty-chat-branches/script.sh"
|
|
77
|
-
chmod +x "$REPO/scripts/00.chat/closeout/build-closeout-prompt/script.sh" "$REPO/scripts/00.chat/command/dispatcher/script.sh" "$REPO/scripts/00.chat/command/new/script.sh" "$REPO/scripts/00.chat/command/close/script.sh" "$REPO/scripts/00.chat/command/open-window/script.sh" "$REPO/scripts/00.chat/startup/auto-start-missing-session/script.sh" "$REPO/scripts/00.chat/startup/start-chat-session/script.sh" "$REPO/scripts/00.chat/startup/start-new-chat/script.sh" "$REPO/scripts/00.chat/worktree/ensure-chat-worktree/script.sh" "$REPO/scripts/00.chat/worktree/open-window/script.sh" "$REPO/scripts/00.chat/git/cleanup-empty-chat-branches/script.sh"
|
|
87
|
+
chmod +x "$REPO/scripts/00.chat/closeout/build-closeout-prompt/script.sh" "$REPO/scripts/00.chat/command/dispatcher/script.sh" "$REPO/scripts/00.chat/command/new/script.sh" "$REPO/scripts/00.chat/command/close/script.sh" "$REPO/scripts/00.chat/command/open-window/script.sh" "$REPO/scripts/00.chat/command/download-repo/script.sh" "$REPO/scripts/00.chat/command/download-repo-diff/script.sh" "$REPO/scripts/00.chat/export/worktree/script.sh" "$REPO/scripts/00.chat/export/worktree-diff/script.sh" "$REPO/scripts/00.chat/startup/auto-start-missing-session/script.sh" "$REPO/scripts/00.chat/startup/start-chat-session/script.sh" "$REPO/scripts/00.chat/startup/start-new-chat/script.sh" "$REPO/scripts/00.chat/worktree/ensure-chat-worktree/script.sh" "$REPO/scripts/00.chat/worktree/open-window/script.sh" "$REPO/scripts/00.chat/git/cleanup-empty-chat-branches/script.sh"
|
|
78
88
|
chmod 0644 "$REPO/scripts/00.chat/command/new/script.sh"
|
|
79
89
|
|
|
80
90
|
printf 'base\n' > "$REPO/README.md"
|
|
@@ -89,6 +99,8 @@ CHAT_COPY_PROMPT=skip \
|
|
|
89
99
|
grep -q '^ new$' "$TMP_ROOT/list.out" || fail "new command was not listed"
|
|
90
100
|
grep -q '^ close$' "$TMP_ROOT/list.out" || fail "close command was not listed"
|
|
91
101
|
grep -q '^ open-window$' "$TMP_ROOT/list.out" || fail "open-window command was not listed"
|
|
102
|
+
grep -q '^ download-repo$' "$TMP_ROOT/list.out" || fail "download-repo command was not listed"
|
|
103
|
+
grep -q '^ download-repo-diff$' "$TMP_ROOT/list.out" || fail "download-repo-diff command was not listed"
|
|
92
104
|
|
|
93
105
|
AGENTIC_CHAT_WORKTREE_ROOT="$TMP_ROOT/worktrees" \
|
|
94
106
|
CHAT_CLEANUP_EMPTY_BRANCHES=skip \
|
|
@@ -153,6 +165,27 @@ grep -q '^Opened VS Code window: ' "$TMP_ROOT/open-window.out" \
|
|
|
153
165
|
grep -q -- '^--new-window ' "$TMP_ROOT/code-args.out" \
|
|
154
166
|
|| fail "open window command did not call code with the chat worktree"
|
|
155
167
|
|
|
168
|
+
bash -c 'cd "$1" && shift && "$@"' sh "$worktree_path" \
|
|
169
|
+
bash scripts/00.chat/command/dispatcher/script.sh download repo \
|
|
170
|
+
--output "$TMP_ROOT/dispatcher-full.zip" \
|
|
171
|
+
>"$TMP_ROOT/download-repo.out"
|
|
172
|
+
|
|
173
|
+
test -f "$TMP_ROOT/dispatcher-full.zip" \
|
|
174
|
+
|| fail "download repo command did not create an export zip"
|
|
175
|
+
grep -q '^Export kind: worktree$' "$TMP_ROOT/download-repo.out" \
|
|
176
|
+
|| fail "download repo command did not route to full worktree export"
|
|
177
|
+
|
|
178
|
+
bash -c 'cd "$1" && shift && "$@"' sh "$worktree_path" \
|
|
179
|
+
bash scripts/00.chat/command/dispatcher/script.sh download repo diff \
|
|
180
|
+
--base main \
|
|
181
|
+
--output "$TMP_ROOT/dispatcher-diff.zip" \
|
|
182
|
+
>"$TMP_ROOT/download-repo-diff.out"
|
|
183
|
+
|
|
184
|
+
test -f "$TMP_ROOT/dispatcher-diff.zip" \
|
|
185
|
+
|| fail "download repo diff command did not create an export zip"
|
|
186
|
+
grep -q '^Export kind: worktree-diff$' "$TMP_ROOT/download-repo-diff.out" \
|
|
187
|
+
|| fail "download repo diff command did not route to changed-files export"
|
|
188
|
+
|
|
156
189
|
CHAT_COPY_PROMPT=skip \
|
|
157
190
|
bash -c 'cd "$1" && shift && "$@"' sh "$worktree_path" \
|
|
158
191
|
bash scripts/00.chat/command/dispatcher/script.sh close \
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<!-- agentic-artifact:
|
|
2
|
+
schema: agentic-artifact/v2
|
|
3
|
+
id: chat.script.command.download-repo.readme
|
|
4
|
+
version: 1
|
|
5
|
+
status: active
|
|
6
|
+
layer: 00.chat
|
|
7
|
+
domain: command
|
|
8
|
+
disciplines:
|
|
9
|
+
- agentic
|
|
10
|
+
kind: capability-readme
|
|
11
|
+
purpose: Explain the public download repo chat command.
|
|
12
|
+
portability:
|
|
13
|
+
class: required
|
|
14
|
+
targets:
|
|
15
|
+
- llm-workbench
|
|
16
|
+
used_by:
|
|
17
|
+
- id: chat.script.command.download-repo
|
|
18
|
+
path: scripts/00.chat/command/download-repo/script.sh
|
|
19
|
+
-->
|
|
20
|
+
# Download Repo Command
|
|
21
|
+
|
|
22
|
+
Routes the public `download repo` command to the full chat worktree export
|
|
23
|
+
capability.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
# agentic-artifact:
|
|
5
|
+
# schema: agentic-artifact/v2
|
|
6
|
+
# id: chat.script.command.download-repo
|
|
7
|
+
# version: 1
|
|
8
|
+
# status: active
|
|
9
|
+
# layer: 00.chat
|
|
10
|
+
# domain: command
|
|
11
|
+
# disciplines:
|
|
12
|
+
# - agentic
|
|
13
|
+
# kind: script
|
|
14
|
+
# purpose: Dispatch the public download repo command to the worktree export capability.
|
|
15
|
+
# portability:
|
|
16
|
+
# class: required
|
|
17
|
+
# targets:
|
|
18
|
+
# - llm-workbench
|
|
19
|
+
# used_by:
|
|
20
|
+
# - id: chat.script.command.dispatcher
|
|
21
|
+
# path: scripts/00.chat/command/dispatcher/script.sh
|
|
22
|
+
# effects:
|
|
23
|
+
# - writes-files
|
|
24
|
+
|
|
25
|
+
exec bash scripts/00.chat/export/worktree/script.sh "$@"
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<!-- agentic-artifact:
|
|
2
|
+
schema: agentic-artifact/v2
|
|
3
|
+
id: chat.script.command.download-repo-diff.readme
|
|
4
|
+
version: 1
|
|
5
|
+
status: active
|
|
6
|
+
layer: 00.chat
|
|
7
|
+
domain: command
|
|
8
|
+
disciplines:
|
|
9
|
+
- agentic
|
|
10
|
+
kind: capability-readme
|
|
11
|
+
purpose: Explain the public download repo diff chat command.
|
|
12
|
+
portability:
|
|
13
|
+
class: required
|
|
14
|
+
targets:
|
|
15
|
+
- llm-workbench
|
|
16
|
+
used_by:
|
|
17
|
+
- id: chat.script.command.download-repo-diff
|
|
18
|
+
path: scripts/00.chat/command/download-repo-diff/script.sh
|
|
19
|
+
-->
|
|
20
|
+
# Download Repo Diff Command
|
|
21
|
+
|
|
22
|
+
Routes the public `download repo diff` command to the changed-files chat
|
|
23
|
+
worktree export capability.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
# agentic-artifact:
|
|
5
|
+
# schema: agentic-artifact/v2
|
|
6
|
+
# id: chat.script.command.download-repo-diff
|
|
7
|
+
# version: 1
|
|
8
|
+
# status: active
|
|
9
|
+
# layer: 00.chat
|
|
10
|
+
# domain: command
|
|
11
|
+
# disciplines:
|
|
12
|
+
# - agentic
|
|
13
|
+
# kind: script
|
|
14
|
+
# purpose: Dispatch the public download repo diff command to the changed-files export capability.
|
|
15
|
+
# portability:
|
|
16
|
+
# class: required
|
|
17
|
+
# targets:
|
|
18
|
+
# - llm-workbench
|
|
19
|
+
# used_by:
|
|
20
|
+
# - id: chat.script.command.dispatcher
|
|
21
|
+
# path: scripts/00.chat/command/dispatcher/script.sh
|
|
22
|
+
# effects:
|
|
23
|
+
# - writes-files
|
|
24
|
+
|
|
25
|
+
exec bash scripts/00.chat/export/worktree-diff/script.sh "$@"
|
|
@@ -43,8 +43,13 @@ mkdir -p \
|
|
|
43
43
|
"$REPO/scripts/00.chat/closeout/build-closeout-prompt" \
|
|
44
44
|
"$REPO/scripts/00.chat/command/close" \
|
|
45
45
|
"$REPO/scripts/00.chat/command/dispatcher" \
|
|
46
|
+
"$REPO/scripts/00.chat/command/download-repo" \
|
|
47
|
+
"$REPO/scripts/00.chat/command/download-repo-diff" \
|
|
46
48
|
"$REPO/scripts/00.chat/command/new" \
|
|
47
49
|
"$REPO/scripts/00.chat/command/open-window" \
|
|
50
|
+
"$REPO/scripts/00.chat/export/create-worktree-bundle" \
|
|
51
|
+
"$REPO/scripts/00.chat/export/worktree" \
|
|
52
|
+
"$REPO/scripts/00.chat/export/worktree-diff" \
|
|
48
53
|
"$REPO/scripts/00.chat/git/cleanup-empty-chat-branches" \
|
|
49
54
|
"$REPO/scripts/00.chat/reporting/generate-commit-log-summary" \
|
|
50
55
|
"$REPO/scripts/00.chat/reporting/report-chat-workspaces" \
|
|
@@ -61,6 +66,11 @@ cp "$SOURCE_ROOT/scripts/00.chat/command/dispatcher/script.sh" "$REPO/scripts/00
|
|
|
61
66
|
cp "$SOURCE_ROOT/scripts/00.chat/command/new/script.sh" "$REPO/scripts/00.chat/command/new/script.sh"
|
|
62
67
|
cp "$SOURCE_ROOT/scripts/00.chat/command/close/script.sh" "$REPO/scripts/00.chat/command/close/script.sh"
|
|
63
68
|
cp "$SOURCE_ROOT/scripts/00.chat/command/open-window/script.sh" "$REPO/scripts/00.chat/command/open-window/script.sh"
|
|
69
|
+
cp "$SOURCE_ROOT/scripts/00.chat/command/download-repo/script.sh" "$REPO/scripts/00.chat/command/download-repo/script.sh"
|
|
70
|
+
cp "$SOURCE_ROOT/scripts/00.chat/command/download-repo-diff/script.sh" "$REPO/scripts/00.chat/command/download-repo-diff/script.sh"
|
|
71
|
+
cp "$SOURCE_ROOT/scripts/00.chat/export/create-worktree-bundle/script.js" "$REPO/scripts/00.chat/export/create-worktree-bundle/script.js"
|
|
72
|
+
cp "$SOURCE_ROOT/scripts/00.chat/export/worktree/script.sh" "$REPO/scripts/00.chat/export/worktree/script.sh"
|
|
73
|
+
cp "$SOURCE_ROOT/scripts/00.chat/export/worktree-diff/script.sh" "$REPO/scripts/00.chat/export/worktree-diff/script.sh"
|
|
64
74
|
cp "$SOURCE_ROOT/scripts/00.chat/reporting/generate-commit-log-summary/script.sh" "$REPO/scripts/00.chat/reporting/generate-commit-log-summary/script.sh"
|
|
65
75
|
cp "$SOURCE_ROOT/scripts/00.chat/reporting/report-chat-workspaces/script.sh" "$REPO/scripts/00.chat/reporting/report-chat-workspaces/script.sh"
|
|
66
76
|
cp "$SOURCE_ROOT/scripts/00.chat/session-log/paths/lib.sh" "$REPO/scripts/00.chat/session-log/paths/lib.sh"
|
|
@@ -75,6 +85,10 @@ chmod +x \
|
|
|
75
85
|
"$REPO/scripts/00.chat/command/new/script.sh" \
|
|
76
86
|
"$REPO/scripts/00.chat/command/close/script.sh" \
|
|
77
87
|
"$REPO/scripts/00.chat/command/open-window/script.sh" \
|
|
88
|
+
"$REPO/scripts/00.chat/command/download-repo/script.sh" \
|
|
89
|
+
"$REPO/scripts/00.chat/command/download-repo-diff/script.sh" \
|
|
90
|
+
"$REPO/scripts/00.chat/export/worktree/script.sh" \
|
|
91
|
+
"$REPO/scripts/00.chat/export/worktree-diff/script.sh" \
|
|
78
92
|
"$REPO/scripts/00.chat/reporting/generate-commit-log-summary/script.sh" \
|
|
79
93
|
"$REPO/scripts/00.chat/reporting/report-chat-workspaces/script.sh" \
|
|
80
94
|
"$REPO/scripts/00.chat/worktree/open-window/script.sh" \
|
|
@@ -101,13 +115,21 @@ git -C "$REPO" -c user.name='Smoke Test' -c user.email='smoke@example.invalid' c
|
|
|
101
115
|
npm run --silent chat:commit-log-summary > "$TMP_ROOT/summary.out"
|
|
102
116
|
npm run --silent chat:cleanup-empty-branches -- --dry-run > "$TMP_ROOT/cleanup.out"
|
|
103
117
|
CHAT_OPEN_WORKTREE_WINDOW=skip npm run --silent chat:open-window -- "$REPO" > "$TMP_ROOT/open-window.out"
|
|
118
|
+
npm run --silent chat:download-repo -- --output "$TMP_ROOT/package-full.zip" "$REPO" > "$TMP_ROOT/download-repo.out"
|
|
119
|
+
npm run --silent chat:download-repo-diff -- --base main --output "$TMP_ROOT/package-diff.zip" "$REPO" > "$TMP_ROOT/download-repo-diff.out"
|
|
104
120
|
)
|
|
105
121
|
|
|
106
122
|
grep -q '^ close$' "$TMP_ROOT/list.out" || fail "chat:list did not list close"
|
|
107
123
|
grep -q '^ new$' "$TMP_ROOT/list.out" || fail "chat:list did not list new"
|
|
108
124
|
grep -q '^ open-window$' "$TMP_ROOT/list.out" || fail "chat:list did not list open-window"
|
|
125
|
+
grep -q '^ download-repo$' "$TMP_ROOT/list.out" || fail "chat:list did not list download-repo"
|
|
126
|
+
grep -q '^ download-repo-diff$' "$TMP_ROOT/list.out" || fail "chat:list did not list download-repo-diff"
|
|
109
127
|
grep -q '| Total | USD 0.0006 |' "$TMP_ROOT/summary.out" || fail "chat:commit-log-summary did not delegate"
|
|
110
128
|
grep -q 'Mode: dry-run' "$TMP_ROOT/cleanup.out" || fail "chat:cleanup-empty-branches did not delegate"
|
|
111
129
|
grep -q '^Skipping VS Code window open: ' "$TMP_ROOT/open-window.out" || fail "chat:open-window did not delegate"
|
|
130
|
+
test -f "$TMP_ROOT/package-full.zip" || fail "chat:download-repo did not create a zip"
|
|
131
|
+
test -f "$TMP_ROOT/package-diff.zip" || fail "chat:download-repo-diff did not create a zip"
|
|
132
|
+
grep -q '^Export kind: worktree$' "$TMP_ROOT/download-repo.out" || fail "chat:download-repo did not delegate"
|
|
133
|
+
grep -q '^Export kind: worktree-diff$' "$TMP_ROOT/download-repo-diff.out" || fail "chat:download-repo-diff did not delegate"
|
|
112
134
|
|
|
113
135
|
echo "chat package scripts smoke test passed."
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
<!-- agentic-artifact:
|
|
2
|
+
schema: agentic-artifact/v2
|
|
3
|
+
id: chat.script.export.readme
|
|
4
|
+
version: 1
|
|
5
|
+
status: active
|
|
6
|
+
layer: 00.chat
|
|
7
|
+
domain: export
|
|
8
|
+
disciplines:
|
|
9
|
+
- agentic
|
|
10
|
+
kind: script-domain-readme
|
|
11
|
+
purpose: Explain chat worktree export capabilities.
|
|
12
|
+
portability:
|
|
13
|
+
class: required
|
|
14
|
+
targets:
|
|
15
|
+
- llm-workbench
|
|
16
|
+
used_by:
|
|
17
|
+
- id: chat.commands.readme
|
|
18
|
+
path: .agentic/00.chat/commands/README.md
|
|
19
|
+
- id: chat.script.command.readme
|
|
20
|
+
path: scripts/00.chat/command/README.md
|
|
21
|
+
-->
|
|
22
|
+
# Export Scripts
|
|
23
|
+
|
|
24
|
+
Export scripts create portable review bundles from chat-owned worktrees.
|
|
25
|
+
|
|
26
|
+
Use this domain when the user needs to hand the active chat worktree, or only
|
|
27
|
+
its changed files, to another model, engineer, or verification environment.
|
|
28
|
+
The export capability owns the selection and manifest semantics. Zip is only
|
|
29
|
+
the default transport format for the resulting bundle.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
<!-- agentic-artifact:
|
|
2
|
+
schema: agentic-artifact/v2
|
|
3
|
+
id: chat.script.export.create-worktree-bundle.readme
|
|
4
|
+
version: 1
|
|
5
|
+
status: active
|
|
6
|
+
layer: 00.chat
|
|
7
|
+
domain: export
|
|
8
|
+
disciplines:
|
|
9
|
+
- agentic
|
|
10
|
+
kind: capability-readme
|
|
11
|
+
purpose: Explain the internal chat worktree bundle writer.
|
|
12
|
+
portability:
|
|
13
|
+
class: required
|
|
14
|
+
targets:
|
|
15
|
+
- llm-workbench
|
|
16
|
+
used_by:
|
|
17
|
+
- id: chat.script.export.create-worktree-bundle
|
|
18
|
+
path: scripts/00.chat/export/create-worktree-bundle/script.js
|
|
19
|
+
- id: chat.script.export.worktree
|
|
20
|
+
path: scripts/00.chat/export/worktree/script.sh
|
|
21
|
+
- id: chat.script.export.worktree-diff
|
|
22
|
+
path: scripts/00.chat/export/worktree-diff/script.sh
|
|
23
|
+
-->
|
|
24
|
+
# Create Worktree Bundle
|
|
25
|
+
|
|
26
|
+
This internal helper writes portable zip bundles for chat worktree exports.
|
|
27
|
+
|
|
28
|
+
Public callers should use:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
npm run chat -- download repo
|
|
32
|
+
npm run chat -- download repo diff
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
The helper is intentionally dependency-light: it uses Node built-in modules and
|
|
36
|
+
Git only, so exported `llm-workbench` installs do not depend on a system `zip`
|
|
37
|
+
binary.
|