@outerlayer/cli 0.34.0-next.20261026214534 → 0.34.0-next.20261026230708
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 -4
- package/dist/{build-BBWAD5LR.js → build-M4UYZAFH.js} +3 -2
- package/dist/{build-disk-TGLM5XK7.js → build-disk-ZDVSSHO2.js} +3 -2
- package/dist/build-info.json +1 -1
- package/dist/{builder-FD53GTWL.js → builder-IORYS76D.js} +2 -1
- package/dist/{check-FOWN6M3C.js → check-V66LZDNK.js} +15 -14
- package/dist/{chunk-T2HH7IHT.js → chunk-63A6NUEZ.js} +1 -1
- package/dist/{chunk-3HJMY3H5.js → chunk-6NXBXWOP.js} +1 -1
- package/dist/{chunk-3PUOHONX.js → chunk-DFBY6LX3.js} +6 -5
- package/dist/{chunk-RNMCFAYH.js → chunk-F5H3LVHR.js} +2 -2
- package/dist/chunk-HDLON3RJ.js +274 -0
- package/dist/{chunk-FVF2LMVG.js → chunk-IZVDQXTC.js} +9 -9
- package/dist/{chunk-LY62UHRR.js → chunk-JZLMFYFM.js} +1 -1
- package/dist/{chunk-XYLHSCLR.js → chunk-KOZ6IBEI.js} +8 -279
- package/dist/{chunk-K3ACC2CV.js → chunk-MIRCFK4X.js} +2 -33
- package/dist/{chunk-5ZBVKRDK.js → chunk-PN7RMFPP.js} +2 -2
- package/dist/{chunk-BQQPDBSF.js → chunk-Q3L5AC75.js} +2 -2
- package/dist/{chunk-2GDKM2O4.js → chunk-T6HSNQAT.js} +4 -4
- package/dist/{chunk-KR2TIRNQ.js → chunk-T7HUNNJ2.js} +30 -16
- package/dist/{chunk-JKLSQOYO.js → chunk-TGBST2QL.js} +11 -7
- package/dist/{chunk-3NCWHEGM.js → chunk-TLIZ7FY4.js} +2 -2
- package/dist/{chunk-XHZBLIB2.js → chunk-XDJ376OP.js} +7 -1
- package/dist/{chunk-ZADRW2V2.js → chunk-XLJXO4QC.js} +4 -4
- package/dist/{cli-3RDQSLYI.js → cli-HQWQEHXJ.js} +79 -44
- package/dist/{command-C5YKBTK4.js → command-TONUMZ2A.js} +8 -7
- package/dist/{config-EBT5VYPX.js → config-4K6OG2SZ.js} +4 -3
- package/dist/{container-start-RLX2PL3C.js → container-start-R74IO7CI.js} +12 -11
- package/dist/demo-record-cmd-7HJ5C7KM.js +208 -0
- package/dist/{demo-voice-cmd-DF6C7EST.js → demo-voice-cmd-MBK3BGHZ.js} +1 -2
- package/dist/{docker-CP656XNO.js → docker-XWQM4F7B.js} +2 -1
- package/dist/{doctor-EQIAHHZD.js → doctor-SF4GAWAO.js} +9 -8
- package/dist/{emit-demo-cmd-YKTL6XWP.js → emit-demo-cmd-6VTA5BSJ.js} +1 -2
- package/dist/{find-unit-O6WL6UIW.js → find-unit-I4GWKY4T.js} +6 -5
- package/dist/{host-checks-V25YUP4Q.js → host-checks-FKLQST3J.js} +10 -9
- package/dist/index.js +1 -1
- package/dist/{init-KO3FT2XP.js → init-3MO5WCU3.js} +8 -7
- package/dist/{init-YYZ7B4ZD.js → init-TDLUTI6F.js} +8 -7
- package/dist/{init-cmd-D3BDS7KY.js → init-cmd-MQ5R35O2.js} +1 -1
- package/dist/{loop-UVONXWXB.js → loop-NNNDBFAS.js} +14 -13
- package/dist/{machine-2BI76JZO.js → machine-GCW2GGI2.js} +8 -7
- package/dist/recorder.cjs +916 -0
- package/dist/{runner-env-QN4BLTVZ.js → runner-env-LVVLUHY2.js} +6 -5
- package/dist/{runner-identity-53I4UTVY.js → runner-identity-73F2IWBT.js} +2 -1
- package/dist/{runner-key-JKXJWGGY.js → runner-key-ASPZ7TQH.js} +8 -7
- package/dist/{status-YCQHAY45.js → status-35Z3TW42.js} +10 -9
- package/dist/{update-steps-MC3IUHW7.js → update-steps-ZTNIK7LA.js} +11 -10
- package/dist/{work-claim-cmd-O54L5DSL.js → work-claim-cmd-QPYCZUMI.js} +4 -3
- package/dist/{work-proofs-cmd-LIXV252G.js → work-proofs-cmd-56EY7O45.js} +1 -1
- package/dist/{work-proofs-record-MCSA56F5.js → work-proofs-record-SPGI47OS.js} +2 -3
- package/package.json +5 -4
- package/skill-pack/maintained/outerlayer-amend/SKILL.md +2 -2
- package/skill-pack/maintained/outerlayer-build/references/evidence.md +12 -11
- package/skill-pack/maintained/outerlayer-evidence/SKILL.md +6 -6
- package/skill-pack/maintained/outerlayer-evidence/references/demo.md +12 -11
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
export { AGENT_COMMANDS, RunnerEnvError, credentialFromStdin, hasStoredCredential, isAgentName, restartForCredential, storeClaudeCredential } from './chunk-
|
|
4
|
-
import './chunk-
|
|
5
|
-
import './chunk-
|
|
6
|
-
import './chunk-
|
|
7
|
-
import './chunk-
|
|
3
|
+
export { AGENT_COMMANDS, RunnerEnvError, credentialFromStdin, hasStoredCredential, isAgentName, restartForCredential, storeClaudeCredential } from './chunk-63A6NUEZ.js';
|
|
4
|
+
import './chunk-TLIZ7FY4.js';
|
|
5
|
+
import './chunk-Q3L5AC75.js';
|
|
6
|
+
import './chunk-6NXBXWOP.js';
|
|
7
|
+
import './chunk-KOZ6IBEI.js';
|
|
8
8
|
import './chunk-4UPET3R7.js';
|
|
9
|
+
import './chunk-HDLON3RJ.js';
|
|
9
10
|
import './chunk-L5VHGRQE.js';
|
|
10
11
|
import './chunk-OOD5NDQA.js';
|
|
11
12
|
import './chunk-DINRXUQA.js';
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
export { RUNNER_LABEL, builderNameFor, dockerIdentity, ensureRunnerIdentity, identityDockerFor, pathLabelValue, readRunnerIdentity } from './chunk-
|
|
3
|
+
export { RUNNER_LABEL, builderNameFor, dockerIdentity, ensureRunnerIdentity, identityDockerFor, pathLabelValue, readRunnerIdentity } from './chunk-KOZ6IBEI.js';
|
|
4
4
|
import './chunk-4UPET3R7.js';
|
|
5
|
+
import './chunk-HDLON3RJ.js';
|
|
5
6
|
import './chunk-L5VHGRQE.js';
|
|
6
7
|
import './chunk-OOD5NDQA.js';
|
|
7
8
|
import './chunk-DINRXUQA.js';
|
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { readConfigObject, RunnerInitError } from './chunk-
|
|
3
|
+
import { readConfigObject, RunnerInitError } from './chunk-DFBY6LX3.js';
|
|
4
4
|
import './chunk-2PGI6RDE.js';
|
|
5
|
-
import './chunk-
|
|
5
|
+
import './chunk-XDJ376OP.js';
|
|
6
6
|
import './chunk-OGFGZQA3.js';
|
|
7
7
|
import './chunk-3VZTNXK5.js';
|
|
8
8
|
import './chunk-6KFJIU73.js';
|
|
9
9
|
import './chunk-77VBS2RT.js';
|
|
10
10
|
import './chunk-SDELQEG4.js';
|
|
11
11
|
import './chunk-TQMI335S.js';
|
|
12
|
-
import './chunk-
|
|
13
|
-
import './chunk-
|
|
14
|
-
import { runnerCredentialProblem } from './chunk-
|
|
15
|
-
import './chunk-
|
|
16
|
-
import './chunk-
|
|
12
|
+
import './chunk-63A6NUEZ.js';
|
|
13
|
+
import './chunk-TLIZ7FY4.js';
|
|
14
|
+
import { runnerCredentialProblem } from './chunk-Q3L5AC75.js';
|
|
15
|
+
import './chunk-6NXBXWOP.js';
|
|
16
|
+
import './chunk-KOZ6IBEI.js';
|
|
17
17
|
import './chunk-4UPET3R7.js';
|
|
18
|
+
import './chunk-HDLON3RJ.js';
|
|
18
19
|
import './chunk-LQHCNXPK.js';
|
|
19
20
|
import './chunk-JBJTC3UU.js';
|
|
20
21
|
import { getJson } from './chunk-QABXXQ67.js';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { isReadable, ALREADY_RELEASED, RENEW_INTERVAL_SECONDS } from './chunk-
|
|
4
|
-
import { jobStateFormatOf } from './chunk-ZVB57WI6.js';
|
|
3
|
+
import { isReadable, ALREADY_RELEASED, RENEW_INTERVAL_SECONDS } from './chunk-TGBST2QL.js';
|
|
5
4
|
import './chunk-6CK2OC4Q.js';
|
|
5
|
+
import { jobStateFormatOf } from './chunk-ZVB57WI6.js';
|
|
6
6
|
import './chunk-P3NPTFLF.js';
|
|
7
7
|
import './chunk-I3LTIAOR.js';
|
|
8
8
|
import './chunk-WBTPI5MP.js';
|
|
@@ -12,21 +12,22 @@ import './chunk-ESVW4MJY.js';
|
|
|
12
12
|
import './chunk-CFFVCI2I.js';
|
|
13
13
|
import './chunk-TBT347UY.js';
|
|
14
14
|
import './chunk-TZMDRHWB.js';
|
|
15
|
-
import { LEASE_SECONDS } from './chunk-
|
|
15
|
+
import { LEASE_SECONDS } from './chunk-DFBY6LX3.js';
|
|
16
16
|
import './chunk-2PGI6RDE.js';
|
|
17
|
-
import './chunk-
|
|
17
|
+
import './chunk-XDJ376OP.js';
|
|
18
18
|
import './chunk-OGFGZQA3.js';
|
|
19
19
|
import './chunk-3VZTNXK5.js';
|
|
20
20
|
import './chunk-6KFJIU73.js';
|
|
21
21
|
import { formatDuration, formatClock, relativeToRunner } from './chunk-77VBS2RT.js';
|
|
22
22
|
import { pullInstruction } from './chunk-SDELQEG4.js';
|
|
23
23
|
import './chunk-TQMI335S.js';
|
|
24
|
-
import './chunk-
|
|
25
|
-
import './chunk-
|
|
26
|
-
import './chunk-
|
|
27
|
-
import { formatBytes } from './chunk-
|
|
28
|
-
import './chunk-
|
|
24
|
+
import './chunk-63A6NUEZ.js';
|
|
25
|
+
import './chunk-TLIZ7FY4.js';
|
|
26
|
+
import './chunk-Q3L5AC75.js';
|
|
27
|
+
import { formatBytes } from './chunk-6NXBXWOP.js';
|
|
28
|
+
import './chunk-KOZ6IBEI.js';
|
|
29
29
|
import './chunk-4UPET3R7.js';
|
|
30
|
+
import './chunk-HDLON3RJ.js';
|
|
30
31
|
import './chunk-LQHCNXPK.js';
|
|
31
32
|
import './chunk-JBJTC3UU.js';
|
|
32
33
|
import './chunk-KT4CN6OU.js';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
export { readOwnContainer, renderUpdateSteps, runUpdateSteps } from './chunk-
|
|
4
|
-
import './chunk-
|
|
5
|
-
import './chunk-ZVB57WI6.js';
|
|
3
|
+
export { readOwnContainer, renderUpdateSteps, runUpdateSteps } from './chunk-PN7RMFPP.js';
|
|
4
|
+
import './chunk-TGBST2QL.js';
|
|
6
5
|
import './chunk-6CK2OC4Q.js';
|
|
6
|
+
import './chunk-ZVB57WI6.js';
|
|
7
7
|
import './chunk-P3NPTFLF.js';
|
|
8
8
|
import './chunk-I3LTIAOR.js';
|
|
9
9
|
import './chunk-WBTPI5MP.js';
|
|
@@ -13,21 +13,22 @@ import './chunk-ESVW4MJY.js';
|
|
|
13
13
|
import './chunk-CFFVCI2I.js';
|
|
14
14
|
import './chunk-TBT347UY.js';
|
|
15
15
|
import './chunk-TZMDRHWB.js';
|
|
16
|
-
import './chunk-
|
|
16
|
+
import './chunk-DFBY6LX3.js';
|
|
17
17
|
import './chunk-2PGI6RDE.js';
|
|
18
|
-
import './chunk-
|
|
18
|
+
import './chunk-XDJ376OP.js';
|
|
19
19
|
import './chunk-OGFGZQA3.js';
|
|
20
20
|
import './chunk-3VZTNXK5.js';
|
|
21
21
|
import './chunk-6KFJIU73.js';
|
|
22
22
|
import './chunk-77VBS2RT.js';
|
|
23
23
|
import './chunk-SDELQEG4.js';
|
|
24
24
|
import './chunk-TQMI335S.js';
|
|
25
|
-
import './chunk-
|
|
26
|
-
import './chunk-
|
|
27
|
-
import './chunk-
|
|
28
|
-
import './chunk-
|
|
29
|
-
import './chunk-
|
|
25
|
+
import './chunk-63A6NUEZ.js';
|
|
26
|
+
import './chunk-TLIZ7FY4.js';
|
|
27
|
+
import './chunk-Q3L5AC75.js';
|
|
28
|
+
import './chunk-6NXBXWOP.js';
|
|
29
|
+
import './chunk-KOZ6IBEI.js';
|
|
30
30
|
import './chunk-4UPET3R7.js';
|
|
31
|
+
import './chunk-HDLON3RJ.js';
|
|
31
32
|
import './chunk-LQHCNXPK.js';
|
|
32
33
|
import './chunk-JBJTC3UU.js';
|
|
33
34
|
import './chunk-KT4CN6OU.js';
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { RUNNER_PROTOCOL } from './chunk-MH6QLXUO.js';
|
|
4
|
-
import { defaultRunnerConfigPath } from './chunk-
|
|
5
|
-
import './chunk-
|
|
6
|
-
import './chunk-
|
|
4
|
+
import { defaultRunnerConfigPath } from './chunk-Q3L5AC75.js';
|
|
5
|
+
import './chunk-6NXBXWOP.js';
|
|
6
|
+
import './chunk-KOZ6IBEI.js';
|
|
7
7
|
import './chunk-4UPET3R7.js';
|
|
8
|
+
import './chunk-HDLON3RJ.js';
|
|
8
9
|
import { resolveCredentials, WorkCommandError, parsePositiveInt, postJson, environmentFacts, findLiveItemForIssue } from './chunk-QABXXQ67.js';
|
|
9
10
|
export { WorkCommandError } from './chunk-QABXXQ67.js';
|
|
10
11
|
import './chunk-IP7BIBXJ.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
export { classifyProofs, classifyProofsAt, otherPullRequestHeads, resolveProofsItem, runWorkProofs, runWorkProofsCommand } from './chunk-
|
|
3
|
+
export { classifyProofs, classifyProofsAt, otherPullRequestHeads, resolveProofsItem, runWorkProofs, runWorkProofsCommand } from './chunk-T7HUNNJ2.js';
|
|
4
4
|
import './chunk-6CK2OC4Q.js';
|
|
5
5
|
import './chunk-QABXXQ67.js';
|
|
6
6
|
import './chunk-IP7BIBXJ.js';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { resolveProofsItem, ownPullRequest, proofsCommentId, otherPullRequestHeads, classifyProofsAt, kindProblem, proofsCommentBody, runWorkProofs } from './chunk-
|
|
3
|
+
import { resolveProofsItem, ownPullRequest, proofsCommentId, otherPullRequestHeads, classifyProofsAt, kindProblem, proofsCommentBody, runWorkProofs } from './chunk-T7HUNNJ2.js';
|
|
4
4
|
import { runWorkComment } from './chunk-EBVK3QBO.js';
|
|
5
5
|
import './chunk-6CK2OC4Q.js';
|
|
6
|
-
import { runEmitDemo } from './chunk-
|
|
6
|
+
import { runEmitDemo } from './chunk-MIRCFK4X.js';
|
|
7
7
|
import { readNewestDemo } from './chunk-ER6KQCVJ.js';
|
|
8
8
|
import { runEmitArtifact } from './chunk-QWXBWOVV.js';
|
|
9
9
|
import { runSync } from './chunk-QRJIBTNQ.js';
|
|
@@ -11,7 +11,6 @@ import './chunk-7DK2FOZ4.js';
|
|
|
11
11
|
import './chunk-ESVW4MJY.js';
|
|
12
12
|
import './chunk-TBT347UY.js';
|
|
13
13
|
import './chunk-2PGI6RDE.js';
|
|
14
|
-
import './chunk-TQMI335S.js';
|
|
15
14
|
import './chunk-4UPET3R7.js';
|
|
16
15
|
import { WorkCommandError, resolveCredentials, getJson } from './chunk-QABXXQ67.js';
|
|
17
16
|
import './chunk-IP7BIBXJ.js';
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@outerlayer/cli",
|
|
3
|
-
"version": "0.34.0-next.
|
|
4
|
-
"description": "OuterLayer CLI — commands: init, claude, connect, doctor, login, logout, sync, daemon (alias: watch), emit, findings, work, spec, runner, hooks, mcp, context. Capture and sync coding-agent sessions, and record proof of factory work.",
|
|
3
|
+
"version": "0.34.0-next.20261026230708",
|
|
4
|
+
"description": "OuterLayer CLI — commands: init, claude, connect, doctor, login, logout, sync, daemon (alias: watch), emit, demo, findings, work, spec, runner, hooks, mcp, context. Capture and sync coding-agent sessions, and record proof of factory work.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Magu Studios, Inc.",
|
|
7
7
|
"repository": {
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"access": "public"
|
|
34
34
|
},
|
|
35
35
|
"scripts": {
|
|
36
|
-
"build": "tsup",
|
|
36
|
+
"build": "tsup && tsup --config tsup.recorder.config.ts",
|
|
37
37
|
"test": "vitest run ${CLI_VITEST_PROJECT:+--project=$CLI_VITEST_PROJECT}",
|
|
38
38
|
"test:watch": "vitest",
|
|
39
39
|
"test:mutate": "stryker run",
|
|
@@ -68,6 +68,7 @@
|
|
|
68
68
|
"node": ">=22"
|
|
69
69
|
},
|
|
70
70
|
"dependencies": {
|
|
71
|
-
"@devcontainers/cli": "0.89.0"
|
|
71
|
+
"@devcontainers/cli": "0.89.0",
|
|
72
|
+
"@playwright/test": "1.64.1"
|
|
72
73
|
}
|
|
73
74
|
}
|
|
@@ -129,8 +129,8 @@ repository. Commit and push in each checkout you change, to its own branch only.
|
|
|
129
129
|
thread back to a person.
|
|
130
130
|
9. **Check nothing is left waiting.** Reread threads. A thread still waiting
|
|
131
131
|
on an agent has a reply that did not land or was flagged `unchanged`. Fix
|
|
132
|
-
or report it. Run `outerlayer sync` and `outerlayer work proofs`. Fix
|
|
133
|
-
|
|
132
|
+
or report it. Run `outerlayer sync` and `outerlayer work proofs`. Fix every
|
|
133
|
+
listed row that is not current.
|
|
134
134
|
10. **Report.** Write one line per thread: the criterion (or the general
|
|
135
135
|
thread), and fixed (with the replacement) or handed off (with the reason).
|
|
136
136
|
Add a line for a merge conflict (merged with the base sha, or handed off
|
|
@@ -29,13 +29,13 @@ session can run it again.
|
|
|
29
29
|
|
|
30
30
|
After the evidence agent returns, run `outerlayer sync`, then
|
|
31
31
|
`outerlayer work proofs --item "$OUTERLAYER_WORK"`. It lists each declared proof
|
|
32
|
-
as current, out of date or missing at the checkout's head.
|
|
33
|
-
|
|
34
|
-
host's criteria judge fails without reading a test. A
|
|
35
|
-
no proof and no test at HEAD that cites it: put the id
|
|
36
|
-
comment above it, as in `// proves AC-7-02`, and
|
|
37
|
-
names a criterion that the judge failed, whose
|
|
38
|
-
change a test that cites it, and commit.
|
|
32
|
+
as current, out of date or missing at the checkout's head. It lists a `test`
|
|
33
|
+
proof too, unless the policy file sets `criteria.test_proof: ci`. It also lists
|
|
34
|
+
each criterion that the host's criteria judge fails without reading a test. A
|
|
35
|
+
row marked `uncited` has no proof and no test at HEAD that cites it: put the id
|
|
36
|
+
in a test's title or in a comment above it, as in `// proves AC-7-02`, and
|
|
37
|
+
commit. A row marked `failed` names a criterion that the judge failed, whose
|
|
38
|
+
citing tests have not changed: change a test that cites it, and commit.
|
|
39
39
|
|
|
40
40
|
A commit makes every proof out of date, and each `--record` run starts the app
|
|
41
41
|
again. So record only at the run's last head. First make every commit the run
|
|
@@ -45,10 +45,11 @@ proof that is not current and skips the rest. If a commit lands after that,
|
|
|
45
45
|
record once more after it. The final report names that head and the proofs
|
|
46
46
|
recorded there.
|
|
47
47
|
|
|
48
|
-
`--record` skips a criterion that declares `proof: test
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
48
|
+
`--record` skips a criterion that declares `proof: test`. So at that same head,
|
|
49
|
+
record each one as the Evidence brief in [agent-briefs.md](agent-briefs.md)
|
|
50
|
+
says, unless the policy file sets `criteria.test_proof: ci`. The list command
|
|
51
|
+
shows it as out of date or missing until you do. The final report names each
|
|
52
|
+
one with its artifact.
|
|
52
53
|
|
|
53
54
|
Run the list command once more before the run ends. A criterion still listed
|
|
54
55
|
as out of date or missing goes in `build-reports/evidence.md` with the reason.
|
|
@@ -85,15 +85,15 @@ only when Playwright cannot drive the flow.
|
|
|
85
85
|
A demo plays like a person showing the app. Tell each chapter in beats with
|
|
86
86
|
`demo.say(line, steps)`: the line is spoken while its steps run on screen.
|
|
87
87
|
The demo shows only beats, so sign in, seed data and wait outside them. Show
|
|
88
|
-
a CLI step with `demo.terminal()`. The recorder,
|
|
89
|
-
|
|
90
|
-
the rules a reviewer holds it to, are in
|
|
88
|
+
a CLI step with `demo.terminal()`. The recorder ships inside the CLI, so
|
|
89
|
+
install nothing. The script, and the rules a reviewer holds it to, are in
|
|
91
90
|
[references/demo.md](references/demo.md).
|
|
92
91
|
|
|
93
|
-
Commit the
|
|
94
|
-
then emit the demo:
|
|
92
|
+
Commit the script, named `*.demo.ts`: `work proofs --record` finds it by its
|
|
93
|
+
chapter ids. Record it, then emit the demo:
|
|
95
94
|
|
|
96
|
-
outerlayer
|
|
95
|
+
outerlayer demo record e2e/<name>.demo.ts --config <playwright config> --project <name>
|
|
96
|
+
outerlayer emit demo <the manifest it prints>
|
|
97
97
|
|
|
98
98
|
Pass `--output demo.webm` first and watch the demo. The command shows only
|
|
99
99
|
the beats and cuts each stretch in which the screen does not move and nothing
|
|
@@ -4,14 +4,12 @@ A demo is a reviewer's first look at the change. It plays like a person
|
|
|
4
4
|
showing the app: each step happens on screen while a line says what it is.
|
|
5
5
|
Setup, sign-ins and waits never reach the video.
|
|
6
6
|
|
|
7
|
-
## The
|
|
7
|
+
## The script
|
|
8
8
|
|
|
9
|
-
The
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
keep a `workspace:` dependency as it is. Import `test` and `expect` from the
|
|
14
|
-
fixture:
|
|
9
|
+
The recorder ships inside the CLI. Install nothing. Name the script
|
|
10
|
+
`*.demo.ts`, so the repository's own test runs never pick it up, and write
|
|
11
|
+
it against the app as it is now, not from an older demo. Import `test` and
|
|
12
|
+
`expect` from `@outerlayer/playwright`:
|
|
15
13
|
|
|
16
14
|
import { expect, test } from "@outerlayer/playwright";
|
|
17
15
|
|
|
@@ -33,8 +31,12 @@ fixture:
|
|
|
33
31
|
});
|
|
34
32
|
|
|
35
33
|
Each beat lasts as long as its line. Inside a beat a pointer moves to each
|
|
36
|
-
click, `fill` types its text, and the page scrolls smoothly.
|
|
37
|
-
|
|
34
|
+
click, `fill` types its text, and the page scrolls smoothly.
|
|
35
|
+
|
|
36
|
+
Record it with `outerlayer demo record <script>`. In a repository with its
|
|
37
|
+
own Playwright config, add `--config <file>` and `--project <name>` to reuse
|
|
38
|
+
its setup and sign-in. Without one, add `--base-url <url>`. The command
|
|
39
|
+
prints the manifest's path.
|
|
38
40
|
|
|
39
41
|
## Rules
|
|
40
42
|
|
|
@@ -71,5 +73,4 @@ click, `fill` types its text, and the page scrolls smoothly. Set
|
|
|
71
73
|
Render the demo with `outerlayer emit demo <manifest> --output demo.webm`
|
|
72
74
|
and watch it. Fix a beat that shows a loading screen, a sign-in or a step
|
|
73
75
|
its line does not name. The command exits 1 while the demo holds a frozen,
|
|
74
|
-
silent stretch over 2 s.
|
|
75
|
-
CLI's, install the version it names and record the demo again.
|
|
76
|
+
silent stretch over 2 s.
|