@valescoagency/runway 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,6 +6,8 @@ You are an autonomous coding agent working on a single Linear issue.
6
6
 
7
7
  {{ISSUE_DESCRIPTION}}
8
8
 
9
+ {{PREVIOUS_ITERATIONS}}
10
+
9
11
  # Repository context
10
12
 
11
13
  You are operating inside a clean checkout of the target repository on a
@@ -29,9 +31,51 @@ fresh branch named `agent/{{ISSUE_IDENTIFIER}}`. Branch off `main`.
29
31
  - If the issue is ambiguous and you can't make a reasonable judgment
30
32
  call, stop and explain what's missing in your final message — runway
31
33
  will route to a human.
32
- - Never modify `.github/workflows/**`, `.env*`, `*.pem`, `*.key`,
33
- `pnpm-lock.yaml` (unless the task is a dep bump), or `.sandcastle/**`.
34
+ {{POLICY_FORBIDDEN_BULLET}}
34
35
 
35
36
  # Stop conditions
36
37
 
37
38
  When all five "done" criteria pass, stop. Don't keep polishing.
39
+
40
+ # Termination contract — REQUIRED
41
+
42
+ End **every** response with exactly one of these markers, on its own
43
+ line, as the **last non-empty line** of your message. Nothing after it.
44
+
45
+ - `IMPL: DONE` — all five "done" criteria are met. The reviewer pass
46
+ will run next; no further iterations are needed.
47
+ - `IMPL: BLOCKED — <one-line reason>` — you cannot proceed without
48
+ human input (issue is ambiguous, requires a decision outside the
49
+ agent's purview, conflicts with a working-style constraint, hits a
50
+ permission wall, etc.). Runway will route the issue to a human with
51
+ your reason attached and will not run the reviewer pass.
52
+ - `IMPL: CONTINUE` — you made progress but the work isn't done yet.
53
+ Runway will run another iteration so you can pick up where you left
54
+ off.
55
+
56
+ Examples:
57
+
58
+ ```
59
+ …all tests pass, typecheck clean, lint clean. Commit pushed.
60
+
61
+ IMPL: DONE
62
+ ```
63
+
64
+ ```
65
+ …the issue's acceptance criteria require modifying
66
+ `.github/workflows/release.yml`, which the working-style policy
67
+ forbids. Cannot proceed.
68
+
69
+ IMPL: BLOCKED — issue requires CI workflow changes that working-style policy forbids
70
+ ```
71
+
72
+ ```
73
+ …added the migration and the RLS policy. Tests for the policy
74
+ helper still need to be written next iteration.
75
+
76
+ IMPL: CONTINUE
77
+ ```
78
+
79
+ The marker is parsed mechanically by runway. A missing or malformed
80
+ marker is treated as `CONTINUE` for back-compat, but **always** emit
81
+ one explicitly — silent completions waste budget on re-exploration.
@@ -18,13 +18,20 @@
18
18
  # `op://<account>/<vault>/<item>/<field>`. For API_CREDENTIAL items
19
19
  # (the natural category for API keys), the field is `credential`.
20
20
  #
21
+ # Note on Claude Code auth: ANTHROPIC_API_KEY is a pay-per-token API
22
+ # key (sk-ant-api03-…). CLAUDE_CODE_OAUTH_TOKEN is a Pro/Max
23
+ # subscription token from `claude setup-token` (sk-ant-oat01-…). They
24
+ # are NOT interchangeable. Runway init writes whichever the user
25
+ # selected with --auth-mode; see runway's README "Claude Code auth"
26
+ # section for details.
27
+ #
21
28
  # To add another secret, copy one of the two live entries below. Do
22
29
  # NOT leave a commented-out example block here: varlock parses any
23
30
  # `# @decorator` line as a real decorator, and a decorator with no
24
31
  # attached config line fails validation ("detached comment block").
25
32
 
26
33
  # @sensitive @required
27
- ANTHROPIC_API_KEY=exec('op read "op://{{OP_VAULT}}/{{ANTHROPIC_ITEM}}/credential"')
34
+ {{ANTHROPIC_ENV_VAR}}=exec('op read "op://{{OP_VAULT}}/{{ANTHROPIC_ITEM}}/credential"')
28
35
 
29
36
  # @sensitive @required
30
37
  GH_TOKEN=exec('op read "op://{{OP_VAULT}}/{{GH_TOKEN_ITEM}}/credential"')
@@ -39,6 +39,30 @@ RUN if ! getent group $AGENT_GID >/dev/null; then \
39
39
  groupmod -g $AGENT_GID node; \
40
40
  fi \
41
41
  && usermod -u $AGENT_UID -g $AGENT_GID -d /home/agent -m -l agent node
42
+
43
+ # VA-351: bake the container env up front so agents don't manually
44
+ # work around host-path leaks, missing pnpm, or unset HOME on every
45
+ # iteration. Without these, every agent run repeats the same
46
+ # corepack/TURBO_CACHE_DIR/HOME setup commands — see VA-312's run log
47
+ # for the receipts.
48
+ ENV HOME=/home/agent
49
+ ENV XDG_CACHE_HOME=/home/agent/.cache
50
+ ENV TURBO_CACHE_DIR=/tmp/turbo-cache
51
+ ENV npm_config_cache=/home/agent/.cache/npm
52
+
53
+ # Pre-create cache dirs with agent ownership so the first pnpm/turbo
54
+ # run doesn't have to chown them. Both are inside paths the agent owns
55
+ # anyway; this just makes them exist.
56
+ RUN mkdir -p /home/agent/.cache /home/agent/.cache/npm /tmp/turbo-cache \
57
+ && chown -R $AGENT_UID:$AGENT_GID /home/agent/.cache /tmp/turbo-cache
58
+
59
+ # Bake pnpm via corepack at build time so `pnpm` is on PATH inside the
60
+ # container before any agent command runs. Pin a default; target repos
61
+ # can override at runtime via `packageManager` in package.json +
62
+ # `corepack use`.
63
+ RUN corepack enable \
64
+ && corepack prepare pnpm@10.0.0 --activate
65
+
42
66
  USER ${AGENT_UID}:${AGENT_GID}
43
67
 
44
68
  # Install Claude Code CLI