@atolis-hq/wake 0.3.0 → 0.3.2

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 CHANGED
@@ -108,8 +108,8 @@ For more detail, see [docs/vision.md](docs/vision.md) and
108
108
  provider.
109
109
  - **Human resumption.** A human can pick up the exact local agent session when a
110
110
  direct terminal intervention is the best way forward.
111
- - **Operator correlation escape hatch.** `wake correlate <workItemKey>
112
- <resourceUri>` lets an operator hand-declare that a resource (a PR, a Slack
111
+ - **Operator correlation escape hatch.** `wake correlate <resourceUri>
112
+ <workItemId>` lets an operator hand-declare that a resource (a PR, a Slack
113
113
  thread, etc.) belongs to an existing work item when nothing detected the
114
114
  link automatically. See [docs/configuration.md](docs/configuration.md).
115
115
 
@@ -138,10 +138,10 @@ adapters currently exist for:
138
138
  - **[Codex](https://openai.com/codex/)**
139
139
  - **[Cursor](https://cursor.com/cli)**
140
140
 
141
- Each runner sits behind the same `AgentRunner` contract, so Wake's routing,
141
+ Each runner sits behind the same execution contract, so Wake's routing,
142
142
  lifecycle, and sandbox behavior stay the same regardless of which CLI executes
143
- a given step. A fake runner adapter also exists for zero-token testing of the
144
- control plane itself. See [docs/runner-comparison.md](docs/runner-comparison.md)
143
+ a given activity. A fake runner adapter also exists for zero-token testing of
144
+ the control plane itself. See [docs/runner-comparison.md](docs/runner-comparison.md)
145
145
  for capability differences between runners.
146
146
 
147
147
  ## Getting Started
@@ -228,26 +228,28 @@ and either:
228
228
 
229
229
  ## 2. External integrations
230
230
 
231
- Ask the user which external source(s) should feed Wake work items (an issue
232
- tracker, for example), and whether it should start polling immediately or
233
- stay off until they're ready.
231
+ Ask the user:
234
232
 
235
- Add an entry under \`integrations\` in \`config.yaml\`, for example:
233
+ - Which external source or sources should feed Wake work items?
234
+ - Which provider-specific rule should opt work in?
235
+ - Should polling start immediately, or stay disabled until they are ready?
236
+
237
+ Configure each provider under \`integrations\` in \`config.yaml\`:
236
238
 
237
239
  \`\`\`yaml
238
240
  integrations:
239
241
  <name>:
240
242
  provider: <provider-id>
241
243
  enabled: true # or leave false to configure now, enable later
242
- # the remaining fields are specific to that provider — ask the user, or
243
- # check that provider's own configuration reference, for the exact
244
- # fields it needs (which repositories/projects to watch, credentials,
245
- # which events opt an item in).
244
+ # Provider-specific fields select resources, configure credentials,
245
+ # and define which observed work is admitted.
246
246
  \`\`\`
247
247
 
248
- This file intentionally does not hardcode any one provider's field shape
249
- Wake's integration providers are pluggable, and each owns its own
250
- configuration schema.
248
+ The fields beneath an integration entry are provider-owned and validated by
249
+ that provider. Consult
250
+ https://github.com/atolis-hq/wake/blob/main/docs/configuration.md for each
251
+ supported provider's current schema, credential guidance, polling controls,
252
+ and intake rules.
251
253
 
252
254
  ## 3. Credential mounts (check before asking)
253
255
 
@@ -108,4 +108,4 @@ export function resolveWakeVersion(options = {}) {
108
108
  return `g${headHash.slice(0, 7)}`;
109
109
  return '0.1.0-dev';
110
110
  }
111
- export const wakeVersion = "g31cb844";
111
+ export const wakeVersion = "gfcc686b";
package/dist/src/main.js CHANGED
@@ -1,3 +1,4 @@
1
+ #!/usr/bin/env node
1
2
  import { spawn } from 'node:child_process';
2
3
  import { access } from 'node:fs/promises';
3
4
  import { join } from 'node:path';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atolis-hq/wake",
3
- "version": "0.3.0",
3
+ "version": "0.3.2",
4
4
  "description": "Local autonomous agent control plane for software development",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -32,7 +32,7 @@
32
32
  "access": "public"
33
33
  },
34
34
  "scripts": {
35
- "build": "tsc -p tsconfig.json && node scripts/embed-version.mjs",
35
+ "build": "tsc -p tsconfig.json && node scripts/embed-version.mjs && node scripts/check-cli-entrypoint.mjs",
36
36
  "prepack": "npm run build && npm run build:web",
37
37
  "test": "vitest run",
38
38
  "test:fast": "npm run test:unit",
@@ -1,115 +0,0 @@
1
- ?# Wake Setup Guide (for the assisting agent)
2
-
3
- You are reading this because a human just ran `wake init` and asked you to
4
- help finish configuring this Wake home. This file is written as instructions
5
- to you, the assisting agent — not as prose for a human to read top to bottom.
6
-
7
- Read `config.yaml` and `config.workflows.yaml` in this directory now — both
8
- already exist with working defaults from `wake init`. Everything below tells
9
- you which fields in those two files to change. Edit them directly; don't
10
- create a new `config.<label>.yaml` split unless the user asks for one.
11
-
12
- Work through the three sections below in order, asking the user only what's
13
- asked in each section. Each section links the relevant part of the hosted
14
- `docs/configuration.md` for full field-by-field reference beyond what's
15
- summarized here.
16
-
17
- ## 1. GitHub source
18
-
19
- Ask the user:
20
-
21
- - Which GitHub repo(s) should Wake monitor for issues? (`owner/repo` format)
22
- - Should polling start immediately, or stay off until they're ready?
23
-
24
- Edit in `config.yaml`:
25
-
26
- ```yaml
27
- sources:
28
- github:
29
- enabled: true # or leave false to configure now, enable later
30
- repos: [owner/repo] # one or more, owner/repo format
31
- ```
32
-
33
- Tell the user: once enabled, Wake adds/removes a
34
- `wake:status.pending|working|failed|completed` label on issues it works, and
35
- preserves any other labels already on the issue.
36
-
37
- Full reference:
38
- https://github.com/atolis-hq/wake/blob/main/docs/configuration.md#sourcesgithub
39
-
40
- ## 2. Runner and runnerPool
41
-
42
- Ask the user which agent CLI(s) they have authenticated on this host:
43
- Claude, Codex, and/or Cursor.
44
-
45
- `config.workflows.yaml` already has example `runners` entries for
46
- `claude-haiku`, `claude-opus`, `codex-mini`, `codex-flagship`, and
47
- `cursor-composer`, but every runnerPool (`light`/`standard`/`deep`, with
48
- `defaultRunnerPool: standard`) still points at the placeholder `fake` runner — none
49
- of them route to a real runner yet. Don't rewrite this from scratch — pick
50
- which runner(s) the user actually has access to, and either:
51
-
52
- - repoint `runnerPools` so each runnerPool lists the real named runner(s) the user can
53
- actually use instead of `fake`, or
54
- - if the user has a runner not already listed (a different model, a
55
- different CLI), add a new named entry under `runners` following the
56
- existing pattern, then reference it from `runnerPools`.
57
- - remove entries which are not needed.
58
-
59
- Full reference:
60
- https://github.com/atolis-hq/wake/blob/main/docs/configuration.md#runners
61
- and
62
- https://github.com/atolis-hq/wake/blob/main/docs/configuration.md#runnerPools
63
-
64
- ## 3. Credential mounts (check before asking)
65
-
66
- Do not start by asking the user where their credentials are. First check the
67
- host filesystem yourself for the files below, matching whichever runner(s)
68
- were chosen in step 2:
69
-
70
- - Claude: `~/.claude/.credentials.json` and `~/.claude/settings.json`
71
- - Codex: `~/.codex/config.toml` and `~/.codex/auth.json`
72
- - Cursor: `~/.config/cursor/auth.json`
73
-
74
- For each file that exists, propose adding it to `sandbox.extraMounts` in
75
- `config.yaml`, for example:
76
-
77
- ```yaml
78
- sandbox:
79
- extraMounts:
80
- - source: /home/alice/.claude/.credentials.json
81
- target: /home/wake/.claude/.credentials.json
82
- readOnly: true
83
- - source: /home/alice/.claude/settings.json
84
- target: /home/wake/.claude/settings.json
85
- readOnly: false
86
- ```
87
-
88
- `.credentials.json`/`auth.json` should be `readOnly: true` unless the user
89
- wants the sandbox able to refresh tokens on the host's behalf. `settings.json`
90
- must stay `readOnly: false` — Claude plugin commands write to it. Use the
91
- actual host home directory path (resolve `~` yourself; don't write a literal
92
- tilde into YAML).
93
-
94
- Never mount the whole `~/.claude`, `~/.codex`, or `~/.cursor` directory —
95
- only the specific files listed above. Mounting the whole directory leaks
96
- OS-specific absolute paths (e.g. Windows plugin cache paths) into the Linux
97
- sandbox and can cause the sandbox to overwrite the host's plugin bookkeeping.
98
-
99
- Only if none of the expected files exist for the runner the user chose, ask
100
- them directly where their credentials live (e.g. a custom `CODEX_HOME`).
101
-
102
- Full reference:
103
- https://github.com/atolis-hq/wake/blob/main/docs/configuration.md#sandbox
104
-
105
- ## After config looks right
106
-
107
- Don't try to explain the sandbox lifecycle yourself — point the user at (or
108
- fetch, if you have web access):
109
-
110
- - https://github.com/atolis-hq/wake/blob/main/docs/getting-started.md —
111
- `wake sandbox build` / `up` / `setup` / `exec` / `down`
112
- - https://github.com/atolis-hq/wake/blob/main/docs/runner-comparison.md —
113
- deeper comparison of runner tradeoffs if the user asks which to pick
114
- - https://github.com/atolis-hq/wake/blob/main/docs/configuration.md — every
115
- config field, if something here doesn't cover their situation