askshepherd 0.1.32 → 0.1.36
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 +45 -5
- package/bin/shepherd-onboard.js +1408 -70
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -18,7 +18,7 @@ claude "Run Shepherd customer onboarding with: npx -y askshepherd@latest agent.
|
|
|
18
18
|
```
|
|
19
19
|
|
|
20
20
|
The underlying `askshepherd agent` command defaults to the customer-facing production Shepherd cloud. In coding-agent shells, it gives the agent the public onboarding checklist and follow-up commands. In a normal interactive terminal, it does not print the checklist; it points the user to the direct terminal onboarding flow instead.
|
|
21
|
-
Claude Code onboarding asks short selection questions first: existing/new org, sources to connect,
|
|
21
|
+
Claude Code onboarding asks short selection questions first: existing/new org, sources to connect, Messages skip/provide-handle, and whether to sync Coding Sessions from Codex/Claude Code. If Messages is selected, the agent runs `messages-chats`, opens a minimal searchable local webpage, and has the user select which contacts/groups to sync. If Coding Sessions is selected, onboarding installs a local LaunchAgent that syncs redacted session summaries, not full raw transcripts. Account creation/relinking always starts with Shepherd WorkOS auth. After onboarding completes, the agent asks whether to install Shepherd MCP for the signed-in customer into Codex, Claude Code, Cursor, any subset, or none.
|
|
22
22
|
Existing-organization joins are verified from Shepherd login and company email domain; the typed org name is not trusted by itself.
|
|
23
23
|
|
|
24
24
|
For experiments, pass a separate non-production API explicitly:
|
|
@@ -47,7 +47,8 @@ The command:
|
|
|
47
47
|
- asks the user to grant or confirm macOS Full Disk Access before local Messages sync
|
|
48
48
|
- checks local Messages access and keeps prompting in interactive onboarding until Full Disk Access works
|
|
49
49
|
- opens a minimal searchable local webpage with contact/group names and only syncs the chats selected by the user
|
|
50
|
-
- sets up local macOS Messages raw sync with a background LaunchAgent scoped to the selected chats
|
|
50
|
+
- sets up local macOS Messages raw sync with a background LaunchAgent scoped to the selected chats, including contact-name hydration for observed conversations
|
|
51
|
+
- optionally sets up local Codex/Claude Code coding-session summary sync with a background LaunchAgent
|
|
51
52
|
- starts raw polling/backfill for connected sources
|
|
52
53
|
- asks the customer-facing production cloud to schedule downstream processing; wiki ingestion, memory artifacts, and document summaries run in separate brain services, not in the local CLI
|
|
53
54
|
|
|
@@ -110,6 +111,7 @@ Use Shepherd to catch me up on what the team discussed yesterday.
|
|
|
110
111
|
Use Shepherd to search Slack, Gmail, Messages, Granola, and the wiki for launch blockers.
|
|
111
112
|
Use Shepherd to find the last meeting where we discussed the enterprise pilot.
|
|
112
113
|
Use Shepherd to summarize open follow-ups from this week's memory.
|
|
114
|
+
Use Shepherd to tell me what coding agents already worked on in this repo.
|
|
113
115
|
```
|
|
114
116
|
|
|
115
117
|
The production MCP gives onboarded customers the same read/QA behavior that made
|
|
@@ -141,7 +143,7 @@ Shepherd must still enforce selected users and groups internally before imperson
|
|
|
141
143
|
--org <name> Organization name
|
|
142
144
|
--granola-api-key <key> Granola API key
|
|
143
145
|
--messages-handle <value> Messages phone number or Apple ID email
|
|
144
|
-
--messages-chat-ids <ids> Comma-separated chat IDs selected from messages-chats
|
|
146
|
+
--messages-chat-ids <ids> Comma-separated chat IDs selected from messages-chats, or `all` to watch every current and future chat
|
|
145
147
|
--messages-backfill-days Local Messages backfill window, default all selected chat history
|
|
146
148
|
--api <url> Advanced: Shepherd API URL. Use only for non-production experiments or local/staging testing.
|
|
147
149
|
--no-google Skip Google Workspace (Gmail/Drive/Docs/Calendar/Sheets/Slides/Tasks/Contacts)
|
|
@@ -149,9 +151,41 @@ Shepherd must still enforce selected users and groups internally before imperson
|
|
|
149
151
|
--no-granola Skip Granola
|
|
150
152
|
--no-open-granola Do not open the Granola API key screen
|
|
151
153
|
--no-messages Skip local Messages
|
|
154
|
+
--coding-sessions Opt in to local Codex/Claude Code session summary sync
|
|
155
|
+
--sources <list> Exact sources to connect: google,slack,granola,messages,coding-sessions,all
|
|
156
|
+
--add-sources <list> Same as --sources, named for second-time onboarding
|
|
152
157
|
--no-open Print auth URLs instead of opening the browser
|
|
153
158
|
```
|
|
154
159
|
|
|
160
|
+
## Coding Sessions
|
|
161
|
+
|
|
162
|
+
Customers can add coding-session sync during first onboarding by selecting
|
|
163
|
+
Coding Sessions or by passing:
|
|
164
|
+
|
|
165
|
+
```sh
|
|
166
|
+
npx -y askshepherd@latest agent --sources coding-sessions --name "<name>" --org "<organization>"
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
Already-onboarded customers can add it later:
|
|
170
|
+
|
|
171
|
+
```sh
|
|
172
|
+
npx -y askshepherd@latest agent --add-sources coding-sessions --name "<name>" --org "<organization>"
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
The local collector reads Codex session JSONL under `~/.codex/sessions` and
|
|
176
|
+
Claude Code JSONL under `~/.claude/projects`, redacts sensitive values locally,
|
|
177
|
+
and uploads bounded summaries with repo, command, file, verification, and
|
|
178
|
+
follow-up metadata. It does not upload full raw transcripts. In production,
|
|
179
|
+
Shepherd writes a concise `building/index.md` recent-work ledger plus detailed
|
|
180
|
+
session pages under `coding-sessions/` for MCP drill-in.
|
|
181
|
+
|
|
182
|
+
Check local and production sync health:
|
|
183
|
+
|
|
184
|
+
```sh
|
|
185
|
+
npx -y askshepherd@latest coding-sessions-status
|
|
186
|
+
npx -y askshepherd@latest coding-sessions-status --json
|
|
187
|
+
```
|
|
188
|
+
|
|
155
189
|
## Messages Chat Selection
|
|
156
190
|
|
|
157
191
|
Local Messages sync on macOS needs Full Disk Access. During onboarding, Shepherd asks the user to grant or confirm Full Disk Access for:
|
|
@@ -159,7 +193,7 @@ Local Messages sync on macOS needs Full Disk Access. During onboarding, Shepherd
|
|
|
159
193
|
- the app running onboarding, such as Terminal, iTerm, Claude Code, or Codex
|
|
160
194
|
- the Node.js binary used by the background LaunchAgent
|
|
161
195
|
|
|
162
|
-
The Messages selector validates access to `~/Library/Messages/chat.db`, opens System Settings -> Privacy & Security -> Full Disk Access if access is missing, and keeps checking in interactive onboarding until access works. Background sync install also checks that launchd can start the Messages agent. Contacts permission may also appear when Shepherd resolves local contact names for
|
|
196
|
+
The Messages selector validates access to `~/Library/Messages/chat.db`, opens System Settings -> Privacy & Security -> Full Disk Access if access is missing, and keeps checking in interactive onboarding until access works. Background sync install also checks that launchd can start the Messages agent. Contacts permission may also appear when Shepherd resolves local contact names. The background agent reloads Contacts on startup, watches AddressBook changes when available, and runs a periodic fallback sync so renamed contacts can hydrate prior ingested Messages rows for that customer account.
|
|
163
197
|
|
|
164
198
|
Open the local Messages chat selector:
|
|
165
199
|
|
|
@@ -169,7 +203,7 @@ npx -y askshepherd@latest messages-chats
|
|
|
169
203
|
|
|
170
204
|
Use `--json` for machine-readable chat metadata, or `--text` for a terminal list.
|
|
171
205
|
|
|
172
|
-
The browser selector displays the first page of recent chats and lets the user search contacts or groups loaded from local Messages.
|
|
206
|
+
The browser selector displays the first page of recent chats and lets the user search contacts or groups loaded from local Messages. It also has an explicit "Sync all current and future chats" option for users who want Shepherd to backfill every current local Messages chat and keep watching chats that appear later. Do not use this option by default; it is for explicit user approval.
|
|
173
207
|
|
|
174
208
|
Pass the selected chat IDs when finishing onboarding:
|
|
175
209
|
|
|
@@ -177,6 +211,12 @@ Pass the selected chat IDs when finishing onboarding:
|
|
|
177
211
|
npx -y askshepherd@latest agent --continue --messages-handle "<phone_or_apple_id>" --messages-chat-ids "<id1>,<id2>"
|
|
178
212
|
```
|
|
179
213
|
|
|
214
|
+
Or, with explicit approval to sync all local Messages chats:
|
|
215
|
+
|
|
216
|
+
```sh
|
|
217
|
+
npx -y askshepherd@latest agent --continue --messages-handle "<phone_or_apple_id>" --messages-chat-ids all
|
|
218
|
+
```
|
|
219
|
+
|
|
180
220
|
## Granola API Keys
|
|
181
221
|
|
|
182
222
|
If Granola does not land on the API keys page, run:
|