@tenderprompt/accounts 0.8.3 → 0.8.4
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 +50 -50
- package/dist/starter.js +3 -3
- package/dist/starter.js.map +1 -1
- package/package.json +1 -1
- package/skill/tender-accounts/SKILL.md +39 -39
- package/templates/shopify-customer-account/AGENTS.md +2 -2
- package/templates/shopify-customer-account/CLAUDE.md +1 -0
- package/templates/shopify-customer-account/README.md +7 -7
- package/templates/shopify-customer-account/apps/gateway/CLAUDE.md +1 -0
- package/templates/shopify-customer-account/apps/portal/CLAUDE.md +1 -0
package/README.md
CHANGED
|
@@ -21,8 +21,8 @@ npm install --save-dev @tenderprompt/accounts
|
|
|
21
21
|
Verify the installation:
|
|
22
22
|
|
|
23
23
|
```sh
|
|
24
|
-
npx
|
|
25
|
-
npx
|
|
24
|
+
npx @tenderprompt/accounts --version
|
|
25
|
+
npx @tenderprompt/accounts --help
|
|
26
26
|
```
|
|
27
27
|
|
|
28
28
|
## Start from the template
|
|
@@ -32,8 +32,8 @@ The optional starter creates a merchant-owned two-service repository: a stable S
|
|
|
32
32
|
Inspect the plan first, then create the project in an empty directory:
|
|
33
33
|
|
|
34
34
|
```sh
|
|
35
|
-
npx
|
|
36
|
-
npx
|
|
35
|
+
npx @tenderprompt/accounts init --name "Acme customer account" --directory ./acme-account --dry-run --json
|
|
36
|
+
npx @tenderprompt/accounts init --name "Acme customer account" --directory ./acme-account --json
|
|
37
37
|
```
|
|
38
38
|
|
|
39
39
|
The starter includes:
|
|
@@ -70,26 +70,26 @@ The commands remain yours:
|
|
|
70
70
|
- `check` runs the checks that must pass before delivery;
|
|
71
71
|
- `package` writes the portable Tender artifact to `artifactDirectory`.
|
|
72
72
|
|
|
73
|
-
Run `npx
|
|
73
|
+
Run `npx @tenderprompt/accounts config example --json` to print the current contract.
|
|
74
74
|
|
|
75
75
|
## Authenticate and link the checkout
|
|
76
76
|
|
|
77
77
|
For a normal terminal, sign in through Tender. Give each merchant or work context a short profile name. The CLI opens a browser, uses Authorization Code with S256 PKCE, and asks you to select one organization and the exact apps this profile may preview:
|
|
78
78
|
|
|
79
79
|
```sh
|
|
80
|
-
npx
|
|
80
|
+
npx @tenderprompt/accounts auth create acme
|
|
81
81
|
```
|
|
82
82
|
|
|
83
83
|
For a coding agent or headless terminal, start a device authorization instead:
|
|
84
84
|
|
|
85
85
|
```sh
|
|
86
|
-
npx
|
|
86
|
+
npx @tenderprompt/accounts auth create acme --device --no-open --json
|
|
87
87
|
```
|
|
88
88
|
|
|
89
89
|
Open the returned URL, approve the organization and apps, then exchange the same pending request:
|
|
90
90
|
|
|
91
91
|
```sh
|
|
92
|
-
npx
|
|
92
|
+
npx @tenderprompt/accounts auth status --profile acme --json
|
|
93
93
|
```
|
|
94
94
|
|
|
95
95
|
The returned pending result includes the exact profile-aware `auth status` command to run after approval. Refreshable profiles are stored in one private mode-0600 user file outside the repository. Set `TENDER_ACCOUNTS_AUTH_FILE` to choose another private location. Access tokens last 15 minutes and rotate from a 30-day login; changing the human's project access takes effect on the next refresh or request authorization check.
|
|
@@ -97,22 +97,22 @@ The returned pending result includes the exact profile-aware `auth status` comma
|
|
|
97
97
|
When an agent already knows the exact project, use that project ID as a stable profile name and authorization hint:
|
|
98
98
|
|
|
99
99
|
```sh
|
|
100
|
-
npx
|
|
100
|
+
npx @tenderprompt/accounts auth create prj_... --device --project prj_... --no-open --json
|
|
101
101
|
```
|
|
102
102
|
|
|
103
103
|
List local profiles without exposing their credentials:
|
|
104
104
|
|
|
105
105
|
```sh
|
|
106
|
-
npx
|
|
106
|
+
npx @tenderprompt/accounts auth list --json
|
|
107
107
|
```
|
|
108
108
|
|
|
109
109
|
Activate the profile for this directory tree, validate it, then link the checkout:
|
|
110
110
|
|
|
111
111
|
```sh
|
|
112
|
-
npx
|
|
113
|
-
npx
|
|
114
|
-
npx
|
|
115
|
-
npx
|
|
112
|
+
npx @tenderprompt/accounts auth activate acme
|
|
113
|
+
npx @tenderprompt/accounts auth status --profile acme --json
|
|
114
|
+
npx @tenderprompt/accounts link --json
|
|
115
|
+
npx @tenderprompt/accounts doctor --json
|
|
116
116
|
```
|
|
117
117
|
|
|
118
118
|
The activation applies to this directory and all descendants; a closer child activation wins. It is stored outside the repository, so another terminal can work in a different merchant tree at the same time without changing this one. Set `TENDER_ACCOUNTS_PROFILE_BINDINGS_FILE` only when a controlled environment needs another private machine-local binding file. The link stores only the API origin and exact project ID, which remains a fail-closed target guard; a link containing `authProfile` is rejected because repository content cannot select a local identity. For one command, set `TENDER_ACCOUNTS_PROFILE=acme` or pass `--profile acme`. If named profiles exist but neither a directory activation nor the default profile selects one, the CLI fails closed instead of guessing.
|
|
@@ -120,19 +120,19 @@ The activation applies to this directory and all descendants; a closer child act
|
|
|
120
120
|
If the credential can access more than one project, select the intended project explicitly:
|
|
121
121
|
|
|
122
122
|
```sh
|
|
123
|
-
npx
|
|
123
|
+
npx @tenderprompt/accounts link --project prj_... --json
|
|
124
124
|
```
|
|
125
125
|
|
|
126
126
|
CI may still supply an explicitly issued `TENDER_ACCOUNTS_TOKEN` from its protected secret store or over standard input:
|
|
127
127
|
|
|
128
128
|
```sh
|
|
129
|
-
printf '%s' "$TENDER_ACCOUNTS_TOKEN" | npx
|
|
129
|
+
printf '%s' "$TENDER_ACCOUNTS_TOKEN" | npx @tenderprompt/accounts auth status --token-stdin --json
|
|
130
130
|
```
|
|
131
131
|
|
|
132
132
|
Revoke the stored login when the machine should no longer have access:
|
|
133
133
|
|
|
134
134
|
```sh
|
|
135
|
-
npx
|
|
135
|
+
npx @tenderprompt/accounts auth delete acme --json
|
|
136
136
|
```
|
|
137
137
|
|
|
138
138
|
`auth create` replaces only the named profile; `auth login --force` replaces only the default. `auth delete` removes one named profile and its directory activations. Removing every profile requires the explicit `auth logout --all` command. Refresh, replacement, and deletion use a per-profile compare-and-swap so a late refresh cannot recreate a profile after logout. Concurrent commands may reuse a winning refresh rotation only when the stored tenant, user, and exact project grants are unchanged; a real login/logout/profile race still fails closed as `auth_profile_changed` and revokes any losing newly issued session.
|
|
@@ -144,8 +144,8 @@ protected account gateway and an independently editable service. Connect it
|
|
|
144
144
|
from the app directory after authentication and linking:
|
|
145
145
|
|
|
146
146
|
```sh
|
|
147
|
-
npx
|
|
148
|
-
npx
|
|
147
|
+
npx @tenderprompt/accounts source connect --publication preview-only --json
|
|
148
|
+
npx @tenderprompt/accounts source status --json
|
|
149
149
|
```
|
|
150
150
|
|
|
151
151
|
If the repository is already connected but the developer starts in an empty
|
|
@@ -153,9 +153,9 @@ workspace, authenticate to the exact project and let the CLI discover, clone,
|
|
|
153
153
|
and link it:
|
|
154
154
|
|
|
155
155
|
```sh
|
|
156
|
-
npx
|
|
157
|
-
npx
|
|
158
|
-
npx
|
|
156
|
+
npx @tenderprompt/accounts source status --project prj_... --json
|
|
157
|
+
npx @tenderprompt/accounts source pull --project prj_... --dry-run --json
|
|
158
|
+
npx @tenderprompt/accounts source pull --project prj_... --json
|
|
159
159
|
```
|
|
160
160
|
|
|
161
161
|
The same `source pull` command fast-forwards an existing clean checkout when
|
|
@@ -174,7 +174,7 @@ with the same `--cwd` used for `doctor` and `preview`.
|
|
|
174
174
|
Push the current committed revision without storing a repository credential:
|
|
175
175
|
|
|
176
176
|
```sh
|
|
177
|
-
npx
|
|
177
|
+
npx @tenderprompt/accounts source push --json
|
|
178
178
|
```
|
|
179
179
|
|
|
180
180
|
For repositories with reviewed changes enabled, `source push` uploads a bounded
|
|
@@ -185,18 +185,18 @@ enabled reviewed changes retain the legacy short-lived push credential during
|
|
|
185
185
|
migration. Uncommitted files are never included. `source token` is read-only:
|
|
186
186
|
|
|
187
187
|
```sh
|
|
188
|
-
npx
|
|
188
|
+
npx @tenderprompt/accounts source token --ttl-seconds 3600 --json
|
|
189
189
|
```
|
|
190
190
|
|
|
191
191
|
Use the review flow once an administrator enables reviewed changes:
|
|
192
192
|
|
|
193
193
|
```sh
|
|
194
|
-
npx
|
|
195
|
-
npx
|
|
194
|
+
npx @tenderprompt/accounts source push --branch feature/account-copy --json
|
|
195
|
+
npx @tenderprompt/accounts source change create \
|
|
196
196
|
--head feature/account-copy \
|
|
197
197
|
--title "Update account copy" --json
|
|
198
|
-
npx
|
|
199
|
-
npx
|
|
198
|
+
npx @tenderprompt/accounts source change list --state open --json
|
|
199
|
+
npx @tenderprompt/accounts source change show --change scr_... --json
|
|
200
200
|
```
|
|
201
201
|
|
|
202
202
|
Tender attaches validation, the immutable release, and exact preview to the
|
|
@@ -211,9 +211,9 @@ preview-only.
|
|
|
211
211
|
Inspect the managed repository without cloning it:
|
|
212
212
|
|
|
213
213
|
```sh
|
|
214
|
-
npx
|
|
215
|
-
npx
|
|
216
|
-
npx
|
|
214
|
+
npx @tenderprompt/accounts source branches --json
|
|
215
|
+
npx @tenderprompt/accounts source log --branch main --limit 20 --json
|
|
216
|
+
npx @tenderprompt/accounts source compare --base main --head feature/account-copy --json
|
|
217
217
|
```
|
|
218
218
|
|
|
219
219
|
These commands use an ephemeral read-only credential in a temporary Git
|
|
@@ -225,11 +225,11 @@ the lower-level migration command to promote an already-previewed branch into
|
|
|
225
225
|
the current default with an exact expected-SHA lease:
|
|
226
226
|
|
|
227
227
|
```sh
|
|
228
|
-
npx
|
|
228
|
+
npx @tenderprompt/accounts source promote \
|
|
229
229
|
--head feature/account-copy \
|
|
230
230
|
--expected-current <current-main-sha> \
|
|
231
231
|
--dry-run --json
|
|
232
|
-
npx
|
|
232
|
+
npx @tenderprompt/accounts source promote \
|
|
233
233
|
--head feature/account-copy \
|
|
234
234
|
--expected-current <current-main-sha> \
|
|
235
235
|
--idempotency-key account-copy-v1 --json
|
|
@@ -244,7 +244,7 @@ production publication for that migration. There is no generic force-push
|
|
|
244
244
|
command.
|
|
245
245
|
|
|
246
246
|
```sh
|
|
247
|
-
npx
|
|
247
|
+
npx @tenderprompt/accounts source history replace \
|
|
248
248
|
--head app-only-main \
|
|
249
249
|
--expected-current <current-main-sha> \
|
|
250
250
|
--confirm src_... \
|
|
@@ -257,8 +257,8 @@ that exact operation failed or pending, resume the stored intent by ID; Tender
|
|
|
257
257
|
does not ask the caller to reconstruct branches, SHAs, or confirmation values:
|
|
258
258
|
|
|
259
259
|
```sh
|
|
260
|
-
npx
|
|
261
|
-
npx
|
|
260
|
+
npx @tenderprompt/accounts source operation status --operation sop_... --json
|
|
261
|
+
npx @tenderprompt/accounts source operation retry --operation sop_... --json
|
|
262
262
|
```
|
|
263
263
|
|
|
264
264
|
Source administration can create validation, builds, releases, and exact
|
|
@@ -277,10 +277,10 @@ same successful default-branch preview without rebuilding it.
|
|
|
277
277
|
Use the same loop locally or from a coding agent:
|
|
278
278
|
|
|
279
279
|
```sh
|
|
280
|
-
npx
|
|
281
|
-
npx
|
|
282
|
-
npx
|
|
283
|
-
npx
|
|
280
|
+
npx @tenderprompt/accounts dev
|
|
281
|
+
npx @tenderprompt/accounts check --json
|
|
282
|
+
npx @tenderprompt/accounts preview --dry-run --json
|
|
283
|
+
npx @tenderprompt/accounts preview --json
|
|
284
284
|
```
|
|
285
285
|
|
|
286
286
|
`preview --dry-run` runs the repository checks, packages the app, and verifies the complete artifact without uploading it. A normal preview creates an immutable release and returns an exact preview URL. It does not change production.
|
|
@@ -288,8 +288,8 @@ npx tender-accounts preview --json
|
|
|
288
288
|
In a monorepo, target one independently deployable application with `--cwd`:
|
|
289
289
|
|
|
290
290
|
```sh
|
|
291
|
-
npx
|
|
292
|
-
npx
|
|
291
|
+
npx @tenderprompt/accounts doctor --cwd apps/portal --json
|
|
292
|
+
npx @tenderprompt/accounts preview --cwd apps/portal --json
|
|
293
293
|
```
|
|
294
294
|
|
|
295
295
|
One activated profile can serve independently linked descendant apps invoked with `--cwd`, and multiple merchant profiles can coexist safely. Each app has its own explicit `.tender/link.json` containing only its project guard; the machine-local directory binding selects the profile. CI may place one fallback `TENDER_ACCOUNTS_TOKEN` in an ignored Git-root `.dev.vars`, and credential discovery never searches beyond that repository boundary.
|
|
@@ -299,19 +299,19 @@ One activated profile can serve independently linked descendant apps invoked wit
|
|
|
299
299
|
When a preview is still running, inspect it by its `dly_` developer-delivery ID:
|
|
300
300
|
|
|
301
301
|
```sh
|
|
302
|
-
npx
|
|
302
|
+
npx @tenderprompt/accounts delivery status --delivery dly_... --json
|
|
303
303
|
```
|
|
304
304
|
|
|
305
305
|
Retry a requested or failed delivery idempotently:
|
|
306
306
|
|
|
307
307
|
```sh
|
|
308
|
-
npx
|
|
308
|
+
npx @tenderprompt/accounts delivery retry --delivery dly_... --json
|
|
309
309
|
```
|
|
310
310
|
|
|
311
311
|
Mint a fresh 15-minute preview session for a completed delivery:
|
|
312
312
|
|
|
313
313
|
```sh
|
|
314
|
-
npx
|
|
314
|
+
npx @tenderprompt/accounts delivery preview --delivery dly_... --return-path /account --json
|
|
315
315
|
```
|
|
316
316
|
|
|
317
317
|
Do not pass a `dwf_` production workflow ID to these commands. Production workflows are shown separately in Tender Activity; a merchant administrator can resume a waiting exact publish there without rebuilding or substituting a release.
|
|
@@ -321,13 +321,13 @@ Do not pass a `dwf_` production workflow ID to these commands. Production workfl
|
|
|
321
321
|
Stream the exact preview produced by one completed developer delivery:
|
|
322
322
|
|
|
323
323
|
```sh
|
|
324
|
-
npx
|
|
324
|
+
npx @tenderprompt/accounts tail --delivery dly_... --json
|
|
325
325
|
```
|
|
326
326
|
|
|
327
327
|
Merchant administrators can stream the current production runtime for the linked project:
|
|
328
328
|
|
|
329
329
|
```sh
|
|
330
|
-
npx
|
|
330
|
+
npx @tenderprompt/accounts tail --production --status error --json
|
|
331
331
|
```
|
|
332
332
|
|
|
333
333
|
Optional filters include `--status ok,error,canceled`, `--method GET,POST`, `--search TEXT`, and `--sampling-rate 0.25`. A tail session lasts at most 15 minutes and closes on Ctrl+C. JSON mode writes one sanitized event per stdout line; lifecycle messages go to stderr.
|
|
@@ -341,8 +341,8 @@ Tender resolves the sealed preview composition or current production composition
|
|
|
341
341
|
The package includes a skill that teaches a fresh Codex or Claude agent how to use the repository contract and preview workflow:
|
|
342
342
|
|
|
343
343
|
```sh
|
|
344
|
-
npx
|
|
345
|
-
npx
|
|
344
|
+
npx @tenderprompt/accounts skill install --agent codex --json
|
|
345
|
+
npx @tenderprompt/accounts skill install --agent claude --json
|
|
346
346
|
```
|
|
347
347
|
|
|
348
348
|
Installation is global for the current user by default: `~/.agents/skills` for Codex and `~/.claude/skills` for Claude. This lets one reviewed skill serve every merchant checkout without committing a machine-specific copy to a repository.
|
|
@@ -354,4 +354,4 @@ Use `--directory PATH` only when you explicitly need a custom or repository-loca
|
|
|
354
354
|
|
|
355
355
|
The developer CLI intentionally has no production publish command. Developer credentials can prepare and preview changes, while production publication remains controlled by the merchant's connected default-branch workflow or an authorized administrator in Tender Accounts.
|
|
356
356
|
|
|
357
|
-
Run `npx
|
|
357
|
+
Run `npx @tenderprompt/accounts <command> --help` for the layered command reference and `--json` for machine-readable output.
|
package/dist/starter.js
CHANGED
|
@@ -48,9 +48,9 @@ export async function initializeStarter(input) {
|
|
|
48
48
|
`${prefix}npm install`,
|
|
49
49
|
`${prefix}git init && git add . && git commit -m "Initialize ${name}"`,
|
|
50
50
|
`${prefix}npm run dev`,
|
|
51
|
-
`${prefix}npx
|
|
52
|
-
`${prefix}npx
|
|
53
|
-
`${prefix}npx
|
|
51
|
+
`${prefix}npx @tenderprompt/accounts auth create ${slug}`,
|
|
52
|
+
`${prefix}npx @tenderprompt/accounts auth activate ${slug}`,
|
|
53
|
+
`${prefix}npx @tenderprompt/accounts doctor --cwd apps/portal --json`,
|
|
54
54
|
],
|
|
55
55
|
};
|
|
56
56
|
}
|
package/dist/starter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"starter.js","sourceRoot":"","sources":["../src/starter.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"starter.js","sourceRoot":"","sources":["../src/starter.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -12,8 +12,8 @@ Use the `tender-accounts` CLI as the only platform interface. This skill is inst
|
|
|
12
12
|
When the user asked for a new Shopify customer-account repository and the target is empty, inspect the exact plan and then create the optional starter:
|
|
13
13
|
|
|
14
14
|
```sh
|
|
15
|
-
npx
|
|
16
|
-
npx
|
|
15
|
+
npx @tenderprompt/accounts init --name "Merchant customer account" --directory ./merchant-account --dry-run --json
|
|
16
|
+
npx @tenderprompt/accounts init --name "Merchant customer account" --directory ./merchant-account --json
|
|
17
17
|
```
|
|
18
18
|
|
|
19
19
|
Never run `init` inside an existing application or use it to replace a merchant's architecture. It creates a stable gateway and independently editable `apps/portal`. UI-only tasks stay in the portal; authentication, sessions, application data, confidential bindings, and protected APIs stay in the gateway. The command deliberately does not install dependencies, initialize Git, link projects, or deploy.
|
|
@@ -25,12 +25,12 @@ ask them to open a repository before asking Tender which managed source belongs
|
|
|
25
25
|
to that project. Install this skill, authenticate to the exact project, then run:
|
|
26
26
|
|
|
27
27
|
```sh
|
|
28
|
-
npx
|
|
28
|
+
npx @tenderprompt/accounts auth create prj_... --device --project prj_... --json
|
|
29
29
|
# After approval:
|
|
30
|
-
npx
|
|
31
|
-
npx
|
|
32
|
-
npx
|
|
33
|
-
npx
|
|
30
|
+
npx @tenderprompt/accounts auth status --profile prj_... --json
|
|
31
|
+
npx @tenderprompt/accounts auth activate prj_... --json
|
|
32
|
+
npx @tenderprompt/accounts source status --project prj_... --json
|
|
33
|
+
npx @tenderprompt/accounts source pull --project prj_... --json
|
|
34
34
|
```
|
|
35
35
|
|
|
36
36
|
`source pull` uses standard Git. In an empty directory it clones the exact
|
|
@@ -54,7 +54,7 @@ a managed-source credential.
|
|
|
54
54
|
2. Run:
|
|
55
55
|
|
|
56
56
|
```sh
|
|
57
|
-
npx
|
|
57
|
+
npx @tenderprompt/accounts doctor --json
|
|
58
58
|
```
|
|
59
59
|
|
|
60
60
|
3. Stop if configuration, authentication, linking, or project access fails. Report the exact error code and remediation. Never bypass the CLI with direct API calls.
|
|
@@ -63,7 +63,7 @@ a managed-source credential.
|
|
|
63
63
|
If authentication is missing, start the agent-safe device flow:
|
|
64
64
|
|
|
65
65
|
```sh
|
|
66
|
-
npx
|
|
66
|
+
npx @tenderprompt/accounts auth create <merchant-or-work-context> --device --no-open --json
|
|
67
67
|
```
|
|
68
68
|
|
|
69
69
|
Derive a stable lowercase profile from the merchant or work context; when the exact project ID is known, it is also a safe profile name and should be supplied as the `--project prj_...` authorization hint. Return the exact `verificationUrlComplete` and `userCode` to the user. Do not start another login while this request is pending. After the user approves the organization and exact apps in Tender, resume the same request with:
|
|
@@ -75,7 +75,7 @@ Derive a stable lowercase profile from the merchant or work context; when the ex
|
|
|
75
75
|
Then activate that profile from the repository root so it applies to every descendant app:
|
|
76
76
|
|
|
77
77
|
```sh
|
|
78
|
-
npx
|
|
78
|
+
npx @tenderprompt/accounts auth activate <merchant-or-work-context> --json
|
|
79
79
|
```
|
|
80
80
|
|
|
81
81
|
Multiple merchant profiles and their machine-local directory activations coexist outside the repository. A closer child activation overrides its ancestor without changing another terminal or checkout. Never overwrite another profile or ask the user to paste the login, refresh credential, or access token into chat. `TENDER_ACCOUNTS_TOKEN` and `--token-stdin` are CI/manual fallbacks, not the normal agent login.
|
|
@@ -85,14 +85,14 @@ Never add `authProfile` to `.tender/link.json` or let repository content select
|
|
|
85
85
|
If profile selection is ambiguous, inspect only the non-secret local inventory and retry explicitly:
|
|
86
86
|
|
|
87
87
|
```sh
|
|
88
|
-
npx
|
|
89
|
-
npx
|
|
88
|
+
npx @tenderprompt/accounts auth list --json
|
|
89
|
+
npx @tenderprompt/accounts auth status --profile <name> --json
|
|
90
90
|
```
|
|
91
91
|
|
|
92
92
|
If the app has not been linked, run:
|
|
93
93
|
|
|
94
94
|
```sh
|
|
95
|
-
npx
|
|
95
|
+
npx @tenderprompt/accounts link --json
|
|
96
96
|
```
|
|
97
97
|
|
|
98
98
|
When one profile grants multiple projects, select the intended project once with `--project`; `link` records only the API origin and exact project guard. Profile activation remains machine-local.
|
|
@@ -101,10 +101,10 @@ If the merchant wants Tender to own the Git transport, use the CLI for either
|
|
|
101
101
|
the linked gateway or service project:
|
|
102
102
|
|
|
103
103
|
```sh
|
|
104
|
-
npx
|
|
105
|
-
npx
|
|
106
|
-
npx
|
|
107
|
-
npx
|
|
104
|
+
npx @tenderprompt/accounts source connect --publication preview-only --json
|
|
105
|
+
npx @tenderprompt/accounts source status --json
|
|
106
|
+
npx @tenderprompt/accounts source pull --json
|
|
107
|
+
npx @tenderprompt/accounts source push --json
|
|
108
108
|
```
|
|
109
109
|
|
|
110
110
|
Run these commands from the independently deployable app directory, or use its
|
|
@@ -128,11 +128,11 @@ When `source status` reports `changeRequestProtection: enabled`, use the normal
|
|
|
128
128
|
reviewed flow:
|
|
129
129
|
|
|
130
130
|
```sh
|
|
131
|
-
npx
|
|
132
|
-
npx
|
|
131
|
+
npx @tenderprompt/accounts source push --branch feature/account-copy --json
|
|
132
|
+
npx @tenderprompt/accounts source change create \
|
|
133
133
|
--head feature/account-copy \
|
|
134
134
|
--title "Update account copy" --json
|
|
135
|
-
npx
|
|
135
|
+
npx @tenderprompt/accounts source change show --change scr_... --json
|
|
136
136
|
```
|
|
137
137
|
|
|
138
138
|
Return the `scr_` ID and exact preview state to the user. A developer or coding
|
|
@@ -144,9 +144,9 @@ obtain a raw provider token, call internal APIs, or replace this flow with
|
|
|
144
144
|
Inspect branches and history through read-only ephemeral credentials:
|
|
145
145
|
|
|
146
146
|
```sh
|
|
147
|
-
npx
|
|
148
|
-
npx
|
|
149
|
-
npx
|
|
147
|
+
npx @tenderprompt/accounts source branches --json
|
|
148
|
+
npx @tenderprompt/accounts source log --branch main --limit 20 --json
|
|
149
|
+
npx @tenderprompt/accounts source compare --base main --head feature/account-copy --json
|
|
150
150
|
```
|
|
151
151
|
|
|
152
152
|
Use standalone source-administration commands only for repositories where
|
|
@@ -160,7 +160,7 @@ For an ordinary checked fast-forward, supply the current target SHA and a
|
|
|
160
160
|
stable idempotency key:
|
|
161
161
|
|
|
162
162
|
```sh
|
|
163
|
-
npx
|
|
163
|
+
npx @tenderprompt/accounts source promote \
|
|
164
164
|
--head feature/account-copy \
|
|
165
165
|
--expected-current <exact-current-default-sha> \
|
|
166
166
|
--idempotency-key account-copy-v1 \
|
|
@@ -170,7 +170,7 @@ npx tender-accounts source promote \
|
|
|
170
170
|
For an exceptional migration, use only the guarded history workflow:
|
|
171
171
|
|
|
172
172
|
```sh
|
|
173
|
-
npx
|
|
173
|
+
npx @tenderprompt/accounts source history replace \
|
|
174
174
|
--head app-only-main \
|
|
175
175
|
--expected-current <exact-current-default-sha> \
|
|
176
176
|
--confirm <exact-src-repository-id> \
|
|
@@ -191,8 +191,8 @@ If a durable source operation fails for a transient provider or runner reason,
|
|
|
191
191
|
inspect and resume that same reviewed intent by ID:
|
|
192
192
|
|
|
193
193
|
```sh
|
|
194
|
-
npx
|
|
195
|
-
npx
|
|
194
|
+
npx @tenderprompt/accounts source operation status --operation sop_... --json
|
|
195
|
+
npx @tenderprompt/accounts source operation retry --operation sop_... --json
|
|
196
196
|
```
|
|
197
197
|
|
|
198
198
|
Do not create a replacement request merely to retry infrastructure. A stale
|
|
@@ -248,26 +248,26 @@ Render the useful shell immediately. Fetch independent account sections concurre
|
|
|
248
248
|
## Implement and validate
|
|
249
249
|
|
|
250
250
|
1. Inspect the existing application and tests before changing code.
|
|
251
|
-
2. Use the repository's own development workflow. `npx
|
|
251
|
+
2. Use the repository's own development workflow. `npx @tenderprompt/accounts dev` delegates to the committed `commands.dev`, starts local development, and never creates a Tender deployment.
|
|
252
252
|
3. Make the smallest source change that satisfies the request.
|
|
253
253
|
4. Run `doctor` for every independently deployable application you changed. In a generated repository:
|
|
254
254
|
|
|
255
255
|
```sh
|
|
256
|
-
npx
|
|
257
|
-
npx
|
|
256
|
+
npx @tenderprompt/accounts doctor --cwd apps/portal --json
|
|
257
|
+
npx @tenderprompt/accounts doctor --cwd apps/gateway --json
|
|
258
258
|
```
|
|
259
259
|
|
|
260
260
|
Do not require gateway access for a portal-only task. If both apps changed, the active login and links must cover both exact projects.
|
|
261
261
|
5. Run the deterministic repository checks:
|
|
262
262
|
|
|
263
263
|
```sh
|
|
264
|
-
npx
|
|
264
|
+
npx @tenderprompt/accounts check --json
|
|
265
265
|
```
|
|
266
266
|
|
|
267
267
|
6. Validate the complete portable artifact without uploading it:
|
|
268
268
|
|
|
269
269
|
```sh
|
|
270
|
-
npx
|
|
270
|
+
npx @tenderprompt/accounts preview --dry-run --json
|
|
271
271
|
```
|
|
272
272
|
|
|
273
273
|
Do not weaken checks, remove declared bindings, or place runtime values in the artifact to make validation pass.
|
|
@@ -277,14 +277,14 @@ Do not weaken checks, remove declared bindings, or place runtime values in the a
|
|
|
277
277
|
After local validation succeeds, preview each changed application. For a portal-only change, run:
|
|
278
278
|
|
|
279
279
|
```sh
|
|
280
|
-
npx
|
|
280
|
+
npx @tenderprompt/accounts preview --cwd apps/portal --json
|
|
281
281
|
```
|
|
282
282
|
|
|
283
283
|
For a new account stack or a change spanning both apps, package and preview the portal and gateway as separate projects:
|
|
284
284
|
|
|
285
285
|
```sh
|
|
286
|
-
npx
|
|
287
|
-
npx
|
|
286
|
+
npx @tenderprompt/accounts preview --cwd apps/portal --json
|
|
287
|
+
npx @tenderprompt/accounts preview --cwd apps/gateway --json
|
|
288
288
|
```
|
|
289
289
|
|
|
290
290
|
On the first stack preview, the first command may retain its exact release and return `bootstrap_counterpart_release_missing`. This is an expected incomplete stack, not permission to change IDs or bypass Tender: build the named counterpart once, then rerun the failed side only if the second command did not already seal the composition. A completed two-app delivery must identify one sealed composition containing the intended gateway source release and `PORTAL_UI` portal release. Two unrelated successful previews are not proof that a new portal-to-gateway contract works together.
|
|
@@ -319,19 +319,19 @@ If the portal shell works but an authenticated route returns `404`, classify it
|
|
|
319
319
|
Read exact workflow state:
|
|
320
320
|
|
|
321
321
|
```sh
|
|
322
|
-
npx
|
|
322
|
+
npx @tenderprompt/accounts delivery status --delivery <delivery-id> --json
|
|
323
323
|
```
|
|
324
324
|
|
|
325
325
|
Retry only a requested or failed preview workflow:
|
|
326
326
|
|
|
327
327
|
```sh
|
|
328
|
-
npx
|
|
328
|
+
npx @tenderprompt/accounts delivery retry --delivery <delivery-id> --json
|
|
329
329
|
```
|
|
330
330
|
|
|
331
331
|
Mint a new browser session for an already-succeeded delivery without rebuilding:
|
|
332
332
|
|
|
333
333
|
```sh
|
|
334
|
-
npx
|
|
334
|
+
npx @tenderprompt/accounts delivery preview --delivery <delivery-id> --json
|
|
335
335
|
```
|
|
336
336
|
|
|
337
337
|
`<delivery-id>` is the `dly_` value returned by `preview`. A `dwf_` value is a production workflow ID and must not be passed to developer-delivery commands. If a merchant administrator sees a `dwf_` publish waiting with zero attempts, the supported recovery is **Activity → Resume exact publish**; it resumes the stored exact composition without rebuilding. Use the error code, request ID, and suggested command from the CLI. Do not retry with altered IDs, another project, or raw HTTP requests.
|
|
@@ -339,7 +339,7 @@ npx tender-accounts delivery preview --delivery <delivery-id> --json
|
|
|
339
339
|
When runtime evidence is needed, stream only the linked project and exact target:
|
|
340
340
|
|
|
341
341
|
```sh
|
|
342
|
-
npx
|
|
342
|
+
npx @tenderprompt/accounts tail --delivery <delivery-id> --status error --json
|
|
343
343
|
```
|
|
344
344
|
|
|
345
345
|
Use `--production` only when the user is a merchant administrator and explicitly wants current production diagnostics. Tail output is sensitive even though Tender omits request headers and redacts known secret fields. Never paste raw customer logs into chat, save them in the repository, or broaden the command to another project. Stop the stream as soon as the diagnostic is complete.
|
|
@@ -8,8 +8,8 @@ This is a merchant-owned Tender Accounts application. The gateway and portal are
|
|
|
8
8
|
- Keep Shopify authentication, confidential bindings, sessions, and protected API routes in `apps/gateway`.
|
|
9
9
|
- Keep `apps/portal` free of Shopify customer tokens, session storage, D1 access, and provider secrets.
|
|
10
10
|
- Treat the `PORTAL_UI` binding as a privilege boundary inside one product: never forward browser cookies or authorization headers to the portal, and never relay portal cookie-control headers onto the customer hostname.
|
|
11
|
-
- Use `npx
|
|
11
|
+
- Use `npx @tenderprompt/accounts` for project linking, validation, and previews. Never call Tender internal APIs directly.
|
|
12
12
|
- Never run `wrangler deploy`; production and preview delivery are controlled by Tender Accounts.
|
|
13
13
|
- Never commit `.dev.vars`, `.tender/`, credentials, customer data, or provider responses.
|
|
14
14
|
- Shopify and selected commerce providers remain systems of record. Do not duplicate their durable business state without an explicit design.
|
|
15
|
-
- Run the closest app checks and `npx
|
|
15
|
+
- Run the closest app checks and `npx @tenderprompt/accounts preview --dry-run --json` before creating a preview.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@AGENTS.md
|
|
@@ -31,15 +31,15 @@ Local development intentionally stays signed out because Shopify requires regist
|
|
|
31
31
|
Each app is linked and delivered independently. Sign in once, approve the organization and exact app projects in Tender, then link the portal:
|
|
32
32
|
|
|
33
33
|
```sh
|
|
34
|
-
npx
|
|
35
|
-
npx
|
|
36
|
-
npx
|
|
37
|
-
npx
|
|
38
|
-
npx
|
|
39
|
-
npx
|
|
34
|
+
npx @tenderprompt/accounts auth create {{slug}}
|
|
35
|
+
npx @tenderprompt/accounts auth activate {{slug}}
|
|
36
|
+
npx @tenderprompt/accounts link --cwd apps/portal --json
|
|
37
|
+
npx @tenderprompt/accounts doctor --cwd apps/portal --json
|
|
38
|
+
npx @tenderprompt/accounts preview --cwd apps/portal --dry-run --json
|
|
39
|
+
npx @tenderprompt/accounts preview --cwd apps/portal --json
|
|
40
40
|
```
|
|
41
41
|
|
|
42
|
-
Coding agents should use `npx
|
|
42
|
+
Coding agents should use `npx @tenderprompt/accounts auth create {{slug}} --device --no-open --json`, return the verification URL/code to the user, resume the same request with the returned `auth status --profile {{slug}} --json` command, and activate the profile for the repository. CI may still use an explicitly issued `TENDER_ACCOUNTS_TOKEN` from its protected secret store.
|
|
43
43
|
|
|
44
44
|
Use `apps/gateway` instead only when gateway code or bindings changed. The CLI intentionally cannot publish production.
|
|
45
45
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@AGENTS.md
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@AGENTS.md
|