affitor 0.4.5 → 0.4.7
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 +130 -71
- package/dist/commands/agent.d.ts.map +1 -1
- package/dist/commands/agent.js +45 -13
- package/dist/commands/agent.js.map +1 -1
- package/dist/commands/init.js +2 -2
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/status.js +5 -5
- package/dist/commands/status.js.map +1 -1
- package/dist/lib/agent-launcher.d.ts +13 -1
- package/dist/lib/agent-launcher.d.ts.map +1 -1
- package/dist/lib/agent-launcher.js +39 -3
- package/dist/lib/agent-launcher.js.map +1 -1
- package/dist/lib/agent-setup.d.ts +15 -1
- package/dist/lib/agent-setup.d.ts.map +1 -1
- package/dist/lib/agent-setup.js +140 -14
- package/dist/lib/agent-setup.js.map +1 -1
- package/dist/lib/program-agent-client.d.ts +38 -0
- package/dist/lib/program-agent-client.d.ts.map +1 -0
- package/dist/lib/program-agent-client.js +172 -0
- package/dist/lib/program-agent-client.js.map +1 -0
- package/dist/lib/prompts.js +1 -1
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -4,85 +4,142 @@ CLI-native affiliate tracking. Connect Stripe, track commissions, manage partner
|
|
|
4
4
|
|
|
5
5
|
## AI agent setup
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Preview the selected client's installation from your project root. Sign in using
|
|
8
|
+
Affitor's existing login command, then apply the plan:
|
|
8
9
|
|
|
9
10
|
```bash
|
|
10
|
-
affitor
|
|
11
|
-
affitor agent setup --client claude_code --
|
|
11
|
+
affitor login
|
|
12
|
+
affitor agent setup --client claude_code --program-id 123 --dry-run --json
|
|
13
|
+
affitor agent setup --client claude_code --program-id 123 --yes
|
|
12
14
|
affitor doctor --client claude_code --json
|
|
13
15
|
```
|
|
14
16
|
|
|
17
|
+
`--program-id` is optional when `.affitor/config.json` already links a program.
|
|
18
|
+
An interactive terminal can select a program from the signed-in account's list.
|
|
19
|
+
Without a linked/selected program, setup remains a local installer using an existing
|
|
20
|
+
program key and explains how to rerun for separate agent credentials. It does not
|
|
21
|
+
mint a key in this mode. Existing per-client setups cannot be downgraded to this
|
|
22
|
+
legacy mode: pass the program id when updating them. This feature requires the CMS program-agent API release;
|
|
23
|
+
a missing route or insufficient Owner access fails without falling back to a live key.
|
|
24
|
+
|
|
15
25
|
Choose `claude_code`, `cursor`, or `codex`; repeat `--client` for more than one.
|
|
16
|
-
|
|
17
|
-
Noninteractive runs require
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
26
|
+
Detected clients are not selected automatically. Inside an agent, setup can only
|
|
27
|
+
configure itself. Noninteractive runs require a selection and `--yes` (or
|
|
28
|
+
`--auto-confirm`). `--dry-run` makes no API calls and writes nothing. Without consent,
|
|
29
|
+
setup exits1. A linked project with no valid saved login returns `needs_login`
|
|
30
|
+
(exit1), with no minted key or local write. Run `affitor login` and retry.
|
|
31
|
+
|
|
32
|
+
For a selected program, each client gets its own restricted `aff_ag_` credential.
|
|
33
|
+
Only an active program Owner can mint/list/revoke it through the user-JWT lifecycle
|
|
34
|
+
API. Neither `--api-key` nor inherited `AFFITOR_API_KEY` is used as that user JWT.
|
|
35
|
+
Setup lists existing credentials to reuse a matching active local key, without
|
|
36
|
+
calling readiness/status or marking an agent connected. Revoked or missing rows
|
|
37
|
+
are replaced on the next approved setup. The keys permit readiness, status,
|
|
38
|
+
synthetic checks, clicks and test-only leads. The server forces agent leads into
|
|
39
|
+
test mode; they cannot settle real customer attribution or authorize sale/refund.
|
|
40
|
+
|
|
41
|
+
Private credentials live at `.affitor/agents/<client>.json` (mode0600 on POSIX),
|
|
42
|
+
separate from the application's live key in `.affitor/.env`. Setup preserves the
|
|
43
|
+
application key. The JSON includes the key's id, program, client, API origin and
|
|
44
|
+
an unverified scope/date note. Do not commit or share this file. A selected
|
|
45
|
+
credential belonging to another program/origin must be revoked and removed before
|
|
46
|
+
switching. Unsafe paths, malformed private files, POSIX permissions broader than
|
|
47
|
+
owner-only and Git-tracked private credentials are refused. Git must confirm an untracked
|
|
48
|
+
path in a worktree or an actual directory outside any repository. A timeout,
|
|
49
|
+
missing executable, unreadable repository or unexpected exit blocks setup before
|
|
50
|
+
any API call or write.
|
|
51
|
+
|
|
52
|
+
On Windows, POSIX mode0600 does not establish private Windows access-control
|
|
53
|
+
permissions, and the CLI does not configure or audit those permissions. Keep the
|
|
54
|
+
project under your Windows user profile in a folder with restricted access.
|
|
55
|
+
Check inherited permissions before storing credentials or backups in shared
|
|
56
|
+
folders. The owner-only mode checks above apply to macOS and Linux.
|
|
57
|
+
|
|
58
|
+
Claude Code uses project `.mcp.json`; Cursor uses `.cursor/mcp.json`. Their entries
|
|
59
|
+
contain only `node`, an absolute `.affitor/agent-mcp.cjs` path and a client selector.
|
|
60
|
+
No credential appears in MCP config, the launcher, skill, plan or command output.
|
|
61
|
+
The launcher reads only the selected client's private file, ignoring inherited or
|
|
62
|
+
application keys. A missing/invalid selected key fails closed. Its API origin comes
|
|
63
|
+
from that private record. It never reads a user login token. Legacy entries with no
|
|
64
|
+
client selector still read inherited `AFFITOR_API_KEY`, then `.affitor/.env`, using
|
|
65
|
+
the same strict env parser as static doctor. Their API origin remains production.
|
|
66
|
+
|
|
67
|
+
Agent setup sends the signed-in user's JWT only to `https://api.affitor.com`;
|
|
68
|
+
other remote HTTPS origins and other Affitor subdomains are refused before any
|
|
69
|
+
request. For local development, set `AFFITOR_AGENT_DEV_API_ORIGIN` to the exact
|
|
70
|
+
HTTP(S) loopback origin and pass the same value through `--api-url` (for example,
|
|
71
|
+
`http://127.0.0.1:1337`). Only `localhost`, `127.0.0.1` and `[::1]` are supported;
|
|
72
|
+
the port must match. This variable cannot authorize an external host. Use a
|
|
73
|
+
development login for that local server. The launcher still reads only its
|
|
74
|
+
selected program credential, not the login JWT.
|
|
75
|
+
|
|
76
|
+
Existing unrelated settings are preserved. Changed file bytes are backed up under
|
|
77
|
+
`.affitor/backups/` before replacement, with mode0600. Credential, login-token and
|
|
78
|
+
backup ignores are appended to root and child `.gitignore` files; strict `*`
|
|
79
|
+
guards protect private agent files and backups before the first secret write.
|
|
80
|
+
Temporary writes stay under the ignored backup directory, including after abrupt
|
|
81
|
+
termination. Updates use atomic replacement and read-back, rolling back prior writes
|
|
82
|
+
on failure. Concurrent edits are preserved, with private ignore guards retained.
|
|
83
|
+
Inspect files and private backups before retrying. This handles ordinary local
|
|
84
|
+
edits; it is not a sandbox against hostile local filesystem races.
|
|
85
|
+
|
|
86
|
+
Mint requests are never retried automatically. If a later mint or local write
|
|
87
|
+
fails, setup attempts to revoke every newly minted key whose id it received.
|
|
88
|
+
`revoke_failed_ids` lists known ids needing dashboard cleanup;
|
|
89
|
+
`mint_outcome_unknown: true` means a lost/failed response may have created another
|
|
90
|
+
Waiting row. Review unused Waiting credentials in Settings → Agents and revoke them
|
|
91
|
+
before retrying. An unknown mint result is not reported as a successful rollback.
|
|
92
|
+
Reuse does not revoke pre-existing keys when a local update fails.
|
|
93
|
+
|
|
94
|
+
The preview notes include active-key replacement and revocation before you confirm
|
|
95
|
+
the plan. If a saved id is still active for the selected client but its server hint
|
|
96
|
+
has changed, approved setup saves a replacement first, then revokes that old id.
|
|
97
|
+
Other clients' keys are not revoked. A failed mint or local update leaves the old
|
|
98
|
+
key in place and compensates only newly minted credentials. If old-key revocation
|
|
99
|
+
cannot be confirmed after saving, the new credentials stay installed and the error's
|
|
100
|
+
`revoke_failed_ids` identifies the previous keys that need cleanup. Setup reports
|
|
101
|
+
this partial completion without claiming that the new files were rolled back.
|
|
102
|
+
|
|
103
|
+
An abrupt interruption, such as closing the terminal after minting, may also leave
|
|
104
|
+
a Waiting credential even when no error JSON was printed and no local credential
|
|
105
|
+
file exists, or leave a previous key unrevoked after its replacement was saved.
|
|
106
|
+
Before retrying, review newly created Waiting rows for the selected
|
|
107
|
+
client in Settings → Agents and revoke unused credentials from that attempt.
|
|
108
|
+
Keep credentials used by other agents. Then run a fresh dry-run and approve setup
|
|
109
|
+
again; a static `doctor` result cannot prove that a server credential was cleaned up.
|
|
47
110
|
|
|
48
111
|
A recovery skill is installed in `.claude/skills/affitor/` or `.cursor/skills/affitor/`.
|
|
49
|
-
Codex gets `.agents/skills/affitor/` and a printed
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
command uses POSIX
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
explicit. Project code, the generated launcher, PATH and project `.npmrc` still
|
|
81
|
-
belong to your trusted local environment; this installer is not a sandbox.
|
|
82
|
-
|
|
83
|
-
This local installer uses an existing program key. Per-agent key issuance,
|
|
84
|
-
pairing, connection telemetry, and the dashboard Agents page are separate work;
|
|
85
|
-
this command does not claim to create or verify an agent connection.
|
|
112
|
+
Codex gets `.agents/skills/affitor/` and a printed command; setup does not edit its
|
|
113
|
+
TOML or run the command. On Windows, add the MCP in Codex settings using the exact
|
|
114
|
+
command/argument array in `entries.codex` from the preview. No shell command is
|
|
115
|
+
printed. On macOS/Linux the printed command uses POSIX quoting. Paths are specific
|
|
116
|
+
to this machine: keep generated configs local or regenerate after moving the
|
|
117
|
+
project or on a teammate's machine.
|
|
118
|
+
|
|
119
|
+
**Installed is not verified.** Credential setup returns `needs_next_step` (exit0);
|
|
120
|
+
local-only installation returns `needs_human` (exit0). Setup does not run an agent,
|
|
121
|
+
call readiness, or infer Verified from installation. Restart the client and ask:
|
|
122
|
+
“Call affitor_readiness from Affitor and tell me the result.” Check the program
|
|
123
|
+
identity and report only checks that actually pass. Approve synthetic checks and
|
|
124
|
+
other writes separately.
|
|
125
|
+
|
|
126
|
+
`doctor` is read-only and static: it does not start an agent or connect to the API.
|
|
127
|
+
It returns `aligned`/`stale`/`missing`/`manual`/`invalid` per client and
|
|
128
|
+
`present_unverified`/`missing` for credentials. With no selection it checks existing
|
|
129
|
+
JSON client configs; an agent caller checks itself. Exit0 means selected static
|
|
130
|
+
checks align, credentials are present and no warning exists. Codex stays manual.
|
|
131
|
+
A `credential_check_failed` warning means tracking could not be checked and returns
|
|
132
|
+
exit1; fix Git access and retry. A `credential_tracked` warning also returns exit1; Git checks include parent repository
|
|
133
|
+
roots and do not change the index. Rotate exposed keys and resolve tracking/history
|
|
134
|
+
through your repository process; an ignore rule does not untrack them.
|
|
135
|
+
|
|
136
|
+
The launcher starts pinned `@affitor/mcp@0.2.2` with sale/refund tools disabled even
|
|
137
|
+
when the parent sets `AFFITOR_MCP_WRITE=1`. Windows uses a constant `cmd.exe` command
|
|
138
|
+
with `NoDefaultCurrentDirectoryInExePath=1`; paths/keys stay outside shell text.
|
|
139
|
+
The child receives only runtime paths, home/temp, locale/terminal settings, its
|
|
140
|
+
credential and explicit origin. Parent proxy, Node options, npm overrides and
|
|
141
|
+
unrelated credentials are dropped; npm uses the public registry. Project code,
|
|
142
|
+
PATH, `.npmrc` and the launcher remain part of your trusted local environment.
|
|
86
143
|
|
|
87
144
|
## Quick Start
|
|
88
145
|
|
|
@@ -162,6 +219,8 @@ npx affitor init \
|
|
|
162
219
|
--json
|
|
163
220
|
```
|
|
164
221
|
|
|
222
|
+
New programs use a 60-day cookie window when `--cookie-duration` is omitted or the interactive default is accepted. An explicit value such as `--cookie-duration 90` is retained. `init` does not modify an already configured project.
|
|
223
|
+
|
|
165
224
|
## What Gets Created
|
|
166
225
|
|
|
167
226
|
Running `npx affitor init` creates:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,QA+FrD"}
|
package/dist/commands/agent.js
CHANGED
|
@@ -1,13 +1,17 @@
|
|
|
1
|
-
import { checkbox, confirm } from "@inquirer/prompts";
|
|
1
|
+
import { checkbox, confirm, select } from "@inquirer/prompts";
|
|
2
2
|
import { existsSync } from "node:fs";
|
|
3
3
|
import { join } from "node:path";
|
|
4
|
-
import { CLIENTS, applySetup, callerClient, doctor, planSetup, selectedClients } from "../lib/agent-setup.js";
|
|
4
|
+
import { CLIENTS, applySetup, callerClient, doctor, planSetup, selectedClients, setupProgramId } from "../lib/agent-setup.js";
|
|
5
|
+
import { readCredentials } from "../lib/config.js";
|
|
6
|
+
import { DEFAULT_API_URL } from "../types.js";
|
|
7
|
+
import { AgentSetupError, ProgramAgentClient, agentApiOrigin, installProgramAgents } from "../lib/program-agent-client.js";
|
|
5
8
|
import { getFlags } from "../lib/flags.js";
|
|
6
9
|
export function registerAgentCommands(program) {
|
|
7
10
|
program.command("agent").description("Configure an AI coding agent for this project")
|
|
8
11
|
.command("setup")
|
|
9
12
|
.description("Preview and install project-scoped MCP configuration and an Affitor skill")
|
|
10
13
|
.option("--client <name>", "claude_code, cursor or codex (repeat to select)", (value, prior) => [...prior, value], [])
|
|
14
|
+
.option("--program-id <id>", "Use this program for independent agent credentials (otherwise use the linked project)")
|
|
11
15
|
.option("--dry-run", "Show the plan without writing files")
|
|
12
16
|
.option("--yes", "Apply the selected client's plan")
|
|
13
17
|
.action(async (opts, cmd) => {
|
|
@@ -21,12 +25,24 @@ export function registerAgentCommands(program) {
|
|
|
21
25
|
choices: CLIENTS.map(value => ({ value, name: `${value}${existsSync(join(process.cwd(), value === "claude_code" ? ".claude" : value === "cursor" ? ".cursor" : ".agents")) ? " (project directory found)" : ""}`, checked: false })),
|
|
22
26
|
}), process.env);
|
|
23
27
|
}
|
|
24
|
-
|
|
28
|
+
let programId = setupProgramId(process.cwd(), opts.programId);
|
|
29
|
+
const origin = agentApiOrigin(flags.apiUrl ?? DEFAULT_API_URL);
|
|
30
|
+
if (!programId && clients.length && interactive && !opts.dryRun) {
|
|
31
|
+
const session = readCredentials();
|
|
32
|
+
if (session?.token && Number.isFinite(Date.parse(session.expires_at)) && Date.parse(session.expires_at) > Date.now()) {
|
|
33
|
+
const choices = await new ProgramAgentClient(session.token, origin).programs();
|
|
34
|
+
if (choices.length)
|
|
35
|
+
programId = await select({ message: "Which program should these agents use?", choices: choices.map(row => ({ value: row.id, name: `${row.name} (${row.id})` })) });
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
const plan = planSetup(process.cwd(), clients, { agentKeys: programId !== null });
|
|
25
39
|
// Never serialize plan.actions.content: existing configs can contain
|
|
26
40
|
// unrelated credentials that must stay local, including in a dry-run.
|
|
27
41
|
const preview = {
|
|
28
42
|
project: plan.project, clients, caller: callerClient(process.env) ?? null,
|
|
29
|
-
|
|
43
|
+
entries: Object.fromEntries(clients.map(client => [client, { command: plan.entry.command, args: [...plan.entry.args, ...(programId !== null ? [client] : [])] }])),
|
|
44
|
+
entry: plan.entry, mcpVersion: plan.mcpVersion, program_id: programId, api_url: origin,
|
|
45
|
+
agent_keys: plan.agentKeys?.map(({ client, path, state }) => ({ client, path, state })),
|
|
30
46
|
actions: plan.actions.map(({ path, operation, backup }) => ({ path, operation, backup })),
|
|
31
47
|
manual: plan.manual, notes: plan.notes,
|
|
32
48
|
};
|
|
@@ -38,26 +54,42 @@ export function registerAgentCommands(program) {
|
|
|
38
54
|
approved = await confirm({ message: "Apply this plan? Existing files are backed up first.", default: false });
|
|
39
55
|
}
|
|
40
56
|
if (!opts.dryRun && approved && clients.length) {
|
|
41
|
-
|
|
42
|
-
|
|
57
|
+
if (programId !== null) {
|
|
58
|
+
const session = readCredentials();
|
|
59
|
+
if (!session?.token || !Number.isFinite(Date.parse(session.expires_at)) || Date.parse(session.expires_at) <= Date.now())
|
|
60
|
+
status = "needs_login";
|
|
61
|
+
else {
|
|
62
|
+
const installed = await installProgramAgents(plan, programId, new ProgramAgentClient(session.token, origin));
|
|
63
|
+
preview.agent_keys = installed.map(({ client, path, state }) => ({ client, path, state }));
|
|
64
|
+
status = "needs_next_step";
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
applySetup(plan);
|
|
69
|
+
status = "needs_human";
|
|
70
|
+
}
|
|
43
71
|
}
|
|
44
72
|
const next = !clients.length
|
|
45
73
|
? "Select --client claude_code, cursor or codex. Detected agents are not selected automatically."
|
|
46
|
-
: status === "
|
|
47
|
-
? "
|
|
48
|
-
:
|
|
74
|
+
: status === "needs_login"
|
|
75
|
+
? "Run affitor login, then rerun this setup command. No agent key was minted or local files written."
|
|
76
|
+
: status === "needs_confirmation" || status === "planned"
|
|
77
|
+
? `Review the plan, then rerun affitor agent setup --client <name>${programId !== null ? ` --program-id ${programId}` : ""} --yes with the same API origin.`
|
|
78
|
+
: status === "needs_next_step"
|
|
79
|
+
? "Installed, not verified. Restart the selected agent and ask it: Call affitor_readiness from Affitor and tell me the result. For Codex, first follow its printed manual configuration instructions."
|
|
80
|
+
: "Local installer only: link a program with affitor init or rerun with --program-id <id> to mint separate agent credentials. Installed is not verified. Configure the program key privately as AFFITOR_API_KEY or in .affitor/.env; restart the selected agent, then ask it to call affitor_readiness. For Codex, first follow the printed manual configuration instructions.";
|
|
49
81
|
if (flags.json)
|
|
50
82
|
process.stdout.write(JSON.stringify({ status, ...preview, next }) + "\n");
|
|
51
83
|
else
|
|
52
84
|
process.stdout.write(`${status}\n${next}\n`);
|
|
53
|
-
process.exitCode = status === "needs_confirmation" || (!clients.length && !opts.dryRun) ? 1 : 0;
|
|
85
|
+
process.exitCode = (status === "needs_confirmation" || status === "needs_login") || (!clients.length && !opts.dryRun) ? 1 : 0;
|
|
54
86
|
}
|
|
55
87
|
catch (error) {
|
|
56
88
|
// Expected installer errors contain only fixed messages and relative
|
|
57
89
|
// client paths. Do not print arbitrary fs/JSON/credential exceptions.
|
|
58
|
-
const message = error instanceof Error && /^(Unknown client|An agent can only|\.mcp\.json |\.cursor\/mcp\.json |Setup failed|A setup file|Unsafe setup|Setup target)/.test(error.message)
|
|
90
|
+
const message = error instanceof AgentSetupError ? error.message : error instanceof Error && /^(Unknown client|An agent can only|\.mcp\.json |\.cursor\/mcp\.json |Setup failed|A setup file|Unsafe setup|Setup target)/.test(error.message)
|
|
59
91
|
? error.message : "Agent setup could not finish. Check the project paths and run a fresh dry-run.";
|
|
60
|
-
process.stdout.write(JSON.stringify({ status: "error", message }) + "\n");
|
|
92
|
+
process.stdout.write(JSON.stringify({ status: "error", message, ...(error instanceof AgentSetupError ? { revoke_failed_ids: error.cleanupIds, mint_outcome_unknown: error.uncertainMint } : {}) }) + "\n");
|
|
61
93
|
process.exitCode = 1;
|
|
62
94
|
}
|
|
63
95
|
});
|
|
@@ -69,7 +101,7 @@ export function registerAgentCommands(program) {
|
|
|
69
101
|
const configured = CLIENTS.filter(client => client !== "codex" && existsSync(join(process.cwd(), client === "claude_code" ? ".mcp.json" : ".cursor/mcp.json")));
|
|
70
102
|
const results = doctor(process.cwd(), clients.length ? clients : configured.length ? configured : ["claude_code", "cursor"]);
|
|
71
103
|
const healthy = results.every(result => result.status === "aligned" && result.credential === "present_unverified" && result.warnings.length === 0);
|
|
72
|
-
const result = { status: healthy ? "aligned" : "needs_attention", mode: "static", clients: results, next: "Restart the selected agent and call affitor_readiness. A credential_tracked warning requires rotating the key and removing it from Git tracking/history through your repository process. Static checks do not prove a live connection or integration readiness." };
|
|
104
|
+
const result = { status: healthy ? "aligned" : "needs_attention", mode: "static", clients: results, next: "Restart the selected agent and call affitor_readiness. A credential_tracked warning requires rotating the key and removing it from Git tracking/history through your repository process. A credential_check_failed warning means Git tracking is unknown: fix Git access and retry. Static checks do not prove a live connection or integration readiness." };
|
|
73
105
|
if (getFlags(cmd).json)
|
|
74
106
|
process.stdout.write(JSON.stringify(result) + "\n");
|
|
75
107
|
else
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/init.js
CHANGED
|
@@ -43,7 +43,7 @@ export async function runInit(opts, flags) {
|
|
|
43
43
|
" Use `npx affitor status` to check your program.\n" +
|
|
44
44
|
" `init` creates a new program: it does not restore this one and does not replace its API key.\n" +
|
|
45
45
|
" For a new key, ask a workspace owner of this program to open Affitor → Program settings → Developers → API keys " +
|
|
46
|
-
"and
|
|
46
|
+
"and create a key, then replace the key this project uses.");
|
|
47
47
|
if (flags.json) {
|
|
48
48
|
logger.json({ error: "already_configured" });
|
|
49
49
|
}
|
|
@@ -87,7 +87,7 @@ export async function runInit(opts, flags) {
|
|
|
87
87
|
.toLowerCase()
|
|
88
88
|
.replace(/^https?:\/\//, "")
|
|
89
89
|
.replace(/\/$/, "");
|
|
90
|
-
cookieDuration ??=
|
|
90
|
+
cookieDuration ??= 60;
|
|
91
91
|
if (interactive && !flags.autoConfirm) {
|
|
92
92
|
logger.newline();
|
|
93
93
|
logger.titledBox("Review", [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EACL,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,eAAe,EACf,eAAe,EACf,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,aAAa,GACd,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,4CAA4C,CAAC;SACzD,MAAM,CAAC,eAAe,EAAE,cAAc,CAAC;SACvC,MAAM,CAAC,mBAAmB,EAAE,iCAAiC,CAAC;SAC9D,MAAM,CACL,0BAA0B,EAC1B,qEAAqE,CACtE;SACA,MAAM,CAAC,0BAA0B,EAAE,0BAA0B,EAAE,UAAU,CAAC;SAC1E,MAAM,CAAC,0BAA0B,EAAE,yBAAyB,EAAE,QAAQ,CAAC;SACvE,MAAM,CAAC,4BAA4B,EAAE,+CAA+C,EAAE,QAAQ,CAAC;SAC/F,MAAM,CAAC,aAAa,EAAE,2DAA2D,CAAC;SAClF,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;QAC1B,MAAM,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,IAQC,EACD,KAAe;IAEf,gBAAgB;IAChB,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAC3D,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QACxD,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChB,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,YAAY,EAAE,EAAE,CAAC;QACnB,yFAAyF;QACzF,gFAAgF;QAChF,MAAM,CAAC,KAAK,CACV,iDAAiD;YAC/C,qDAAqD;YACrD,kGAAkG;YAClG,oHAAoH;YACpH
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/status.js
CHANGED
|
@@ -84,12 +84,12 @@ export async function runStatus(flags) {
|
|
|
84
84
|
logger.error(err.message);
|
|
85
85
|
}
|
|
86
86
|
else if (err.status === 401) {
|
|
87
|
-
//
|
|
88
|
-
//
|
|
89
|
-
// this command actually reads one: `--api-key` wins over the environment,
|
|
90
|
-
// only AFFITOR_API_KEY would leave the refused key on the wire.
|
|
87
|
+
// A refused key may not be listed or rotatable. Create a replacement for the same
|
|
88
|
+
// program without stopping another integration's working key. The replacement must
|
|
89
|
+
// land where this command actually reads one: `--api-key` wins over the environment,
|
|
90
|
+
// so naming only AFFITOR_API_KEY would leave the refused key on the wire.
|
|
91
91
|
logger.error("API key expired or invalid.\n" +
|
|
92
|
-
` Ask a workspace owner of ${config ? `program ${config.program_id}` : "the program"} to open Affitor → Program settings → Developers → API keys and
|
|
92
|
+
` Ask a workspace owner of ${config ? `program ${config.program_id}` : "the program"} to open Affitor → Program settings → Developers → API keys and create a key.\n` +
|
|
93
93
|
` Then replace the key in ${apiKeySourceLabel(flags)} with the new one.`);
|
|
94
94
|
}
|
|
95
95
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,20 @@
|
|
|
1
1
|
export declare const MCP_VERSION = "0.2.2";
|
|
2
2
|
/** Shared by doctor and the generated launcher; never evaluates an env file. */
|
|
3
3
|
export declare function parseProgramCredential(envKey: unknown, readText: () => string | null): string | null;
|
|
4
|
+
export interface StoredAgentCredential {
|
|
5
|
+
version: 1;
|
|
6
|
+
id: number;
|
|
7
|
+
program_id: number;
|
|
8
|
+
client: string;
|
|
9
|
+
api_url: string;
|
|
10
|
+
created_at: string;
|
|
11
|
+
credential_note: string;
|
|
12
|
+
api_key: string;
|
|
13
|
+
}
|
|
14
|
+
/** Shared with the standalone launcher; private files never supply executable code. */
|
|
15
|
+
export declare function parseStoredAgentCredential(text: string, client: string): StoredAgentCredential | null;
|
|
4
16
|
/** Minimal runtime environment; never forward parent networking, Node or npm overrides. */
|
|
5
17
|
export declare function agentChildEnvironment(source: NodeJS.ProcessEnv, key: string): NodeJS.ProcessEnv;
|
|
6
18
|
export declare const AGENT_LAUNCHER: string;
|
|
7
|
-
export declare const AGENT_SKILL = "---\nname: affitor\ndescription: Check Affitor affiliate integration readiness and follow its integration runbook.\nmetadata:\n version: \"1\"\n---\n\n# Affitor\n\nConnect only when this project needs Affitor. Follow https://affitor.com/docs/skill.md\nand the founder's optional context. Detect the framework and payment provider first.\nNever print, copy into a prompt, or commit credentials. Never treat a user login token\nas a program key. Do not add a second sale writer when Stripe Connect may record sales.\n\nInstalled, signed in, and verified are different states. After restarting the client,\ncall affitor_readiness and check the program identity before changing this project.\nOnly describe checks that actually passed. A static doctor cannot prove a live session.\nDo not run sale/refund tools. Ask before running synthetic verification or other writes.\n\n| Problem | Next step |\n| --- | --- |\n| Missing or stale local files | Run affitor agent setup --dry-run --json, show the plan, then apply the selected client after approval. |\n| Files aligned, tools absent | Restart the selected agent, then call affitor_readiness. |\n| Credential missing or rejected |
|
|
19
|
+
export declare const AGENT_SKILL = "---\nname: affitor\ndescription: Check Affitor affiliate integration readiness and follow its integration runbook.\nmetadata:\n version: \"1\"\n---\n\n# Affitor\n\nConnect only when this project needs Affitor. Follow https://affitor.com/docs/skill.md\nand the founder's optional context. Detect the framework and payment provider first.\nNever print, copy into a prompt, or commit credentials. Never treat a user login token\nas a program key. Do not add a second sale writer when Stripe Connect may record sales.\n\nInstalled, signed in, and verified are different states. After restarting the client,\ncall affitor_readiness and check the program identity before changing this project.\nOnly describe checks that actually passed. A static doctor cannot prove a live session.\nDo not run sale/refund tools. Ask before running synthetic verification or other writes.\n\n| Problem | Next step |\n| --- | --- |\n| Missing or stale local files | Run affitor agent setup --dry-run --json, show the plan, then apply the selected client after approval. |\n| Files aligned, tools absent | Restart the selected agent, then call affitor_readiness. |\n| Credential missing or rejected | Run affitor login, then affitor agent setup for this client and program. Never paste any key into chat. |\n| Readiness fails | Report the failed checks and follow the runbook; do not claim integration is verified. |\n";
|
|
8
20
|
//# sourceMappingURL=agent-launcher.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-launcher.d.ts","sourceRoot":"","sources":["../../src/lib/agent-launcher.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW,UAAU,CAAC;AAEnC,gFAAgF;AAChF,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAYpG;AAED,2FAA2F;AAC3F,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,UAAU,CAW/F;AAED,eAAO,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"agent-launcher.d.ts","sourceRoot":"","sources":["../../src/lib/agent-launcher.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW,UAAU,CAAC;AAEnC,gFAAgF;AAChF,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAYpG;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,CAAC,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,uFAAuF;AACvF,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,qBAAqB,GAAG,IAAI,CAcrG;AAED,2FAA2F;AAC3F,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,UAAU,CAW/F;AAED,eAAO,MAAM,cAAc,QA2C1B,CAAC;AAEF,eAAO,MAAM,WAAW,w3CAyBvB,CAAC"}
|