halfcycle 0.3.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/.claude-plugin/plugin.json +16 -0
- package/LICENSE +21 -0
- package/README.md +187 -0
- package/bin/bin.bundle.mjs +16771 -0
- package/commands/agent-teams-orchestration.md +11 -0
- package/commands/consistency-check.md +11 -0
- package/commands/context-update.md +11 -0
- package/commands/halfcycle-design.md +11 -0
- package/commands/halfcycle-setup.md +11 -0
- package/commands/stack-assembly-worker.md +11 -0
- package/commands/task-execution.md +11 -0
- package/commands/task-graph.md +11 -0
- package/commands/write-spec.md +11 -0
- package/dist/account-credential.d.ts +94 -0
- package/dist/account-credential.d.ts.map +1 -0
- package/dist/bin.d.ts +34 -0
- package/dist/bin.d.ts.map +1 -0
- package/dist/bin.js +3156 -0
- package/dist/bin.js.map +6 -0
- package/dist/build-record/assemble.d.ts +37 -0
- package/dist/build-record/assemble.d.ts.map +1 -0
- package/dist/build-record/index.d.ts +39 -0
- package/dist/build-record/index.d.ts.map +1 -0
- package/dist/build-record/sources.d.ts +80 -0
- package/dist/build-record/sources.d.ts.map +1 -0
- package/dist/build-record/template.d.ts +18 -0
- package/dist/build-record/template.d.ts.map +1 -0
- package/dist/build-record/types.d.ts +163 -0
- package/dist/build-record/types.d.ts.map +1 -0
- package/dist/build-record/write.d.ts +26 -0
- package/dist/build-record/write.d.ts.map +1 -0
- package/dist/cli-contract.d.ts +120 -0
- package/dist/cli-contract.d.ts.map +1 -0
- package/dist/close-phase.d.ts +114 -0
- package/dist/close-phase.d.ts.map +1 -0
- package/dist/create-engagement.d.ts +248 -0
- package/dist/create-engagement.d.ts.map +1 -0
- package/dist/device-signin.d.ts +255 -0
- package/dist/device-signin.d.ts.map +1 -0
- package/dist/engagement-credential.d.ts +267 -0
- package/dist/engagement-credential.d.ts.map +1 -0
- package/dist/identity.d.ts +76 -0
- package/dist/identity.d.ts.map +1 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2083 -0
- package/dist/index.js.map +6 -0
- package/dist/install.d.ts +355 -0
- package/dist/install.d.ts.map +1 -0
- package/dist/loopback-signin.d.ts +173 -0
- package/dist/loopback-signin.d.ts.map +1 -0
- package/dist/mcp-endpoint.d.ts +35 -0
- package/dist/mcp-endpoint.d.ts.map +1 -0
- package/dist/merge-settings.d.ts +57 -0
- package/dist/merge-settings.d.ts.map +1 -0
- package/dist/mint-board-code.d.ts +41 -0
- package/dist/mint-board-code.d.ts.map +1 -0
- package/dist/open-phase.d.ts +107 -0
- package/dist/open-phase.d.ts.map +1 -0
- package/dist/probe-mcp.d.ts +47 -0
- package/dist/probe-mcp.d.ts.map +1 -0
- package/dist/resolve-credential.d.ts +126 -0
- package/dist/resolve-credential.d.ts.map +1 -0
- package/dist/scan.d.ts +131 -0
- package/dist/scan.d.ts.map +1 -0
- package/dist/setup/discovery.d.ts +73 -0
- package/dist/setup/discovery.d.ts.map +1 -0
- package/dist/setup/engagement.d.ts +99 -0
- package/dist/setup/engagement.d.ts.map +1 -0
- package/dist/setup/index.d.ts +17 -0
- package/dist/setup/index.d.ts.map +1 -0
- package/dist/setup/manifest.d.ts +155 -0
- package/dist/setup/manifest.d.ts.map +1 -0
- package/dist/setup/rows.d.ts +57 -0
- package/dist/setup/rows.d.ts.map +1 -0
- package/package.json +55 -0
- package/scaffolding/test/fixtures/captured/.gitkeep +0 -0
- package/scaffolding/test/fixtures/captured/manifest.json +4 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/install.ts", "../../src/engagement-credential.ts", "../../src/account-credential.ts", "../../src/identity.ts", "../../src/mcp-endpoint.ts", "../../src/merge-settings.ts", "../../src/scan.ts", "../../../events/src/result.ts", "../../../core/src/guard-record.ts", "../../../events/src/telemetry.ts", "../../src/create-engagement.ts", "../../src/mint-board-code.ts", "../../src/setup/manifest.ts", "../../src/setup/rows.ts", "../../src/setup/discovery.ts", "../../src/setup/engagement.ts", "../../src/build-record/types.ts", "../../src/build-record/sources.ts", "../../src/build-record/assemble.ts", "../../src/build-record/template.ts", "../../src/build-record/write.ts", "../../src/build-record/index.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["existsSync", "mkdirSync", "readFileSync", "writeFileSync", "dirname", "join", "platform", "join", "join", "platform", "readFileSync", "join", "identity", "existsSync", "mkdirSync", "readFileSync", "writeFileSync", "join", "z", "z", "z", "z", "existsSync", "join", "readFileSync", "mkdirSync", "writeFileSync", "dirname", "join", "existsSync", "readFileSync", "mkdirSync", "writeFileSync", "join", "existsSync", "readFileSync", "writeFileSync", "mkdirSync", "dirname", "existsSync", "mkdirSync", "readFileSync", "writeFileSync", "dirname", "join", "existsSync", "readFileSync", "statSync", "join", "join", "existsSync", "statSync", "readFileSync", "readFileSync", "existsSync", "join", "execFileSync", "record", "join", "existsSync", "readFileSync", "execFileSync", "git", "git", "record", "mkdirSync", "writeFileSync", "join", "relative", "join", "record", "relative", "mkdirSync", "writeFileSync", "record"]
|
|
6
|
+
}
|
|
@@ -0,0 +1,355 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bundle install/wiring generator — the core of `halfcycle <target-repo>`.
|
|
3
|
+
*
|
|
4
|
+
* Writes the client install surface (slash-command stubs, the vendored guard
|
|
5
|
+
* binary, governance-hook wiring and the committed project identity) into a target
|
|
6
|
+
* engagement repo — and the engagement's credential OUTSIDE it, at machine level
|
|
7
|
+
* (T-09; see `engagement-credential.ts`). NO worker role files land
|
|
8
|
+
* either — see the step-1 note in `install()` (FX-2, W3-F-27). NO method prose lands: the
|
|
9
|
+
* stubs carry a description and a call, and the procedure arrives from the delivery
|
|
10
|
+
* service at run time (INV-016). Reads the bundle version from
|
|
11
|
+
* .claude-plugin/plugin.json and pins it in the target's .halfcycle/bundle.json.
|
|
12
|
+
*
|
|
13
|
+
* INV-001: this file imports only from @halfcycle/core and @halfcycle/events (or
|
|
14
|
+
* Node builtins). The runner is wired as an EXTERNAL BINARY CONTRACT via
|
|
15
|
+
* generated text/config — never imported.
|
|
16
|
+
*
|
|
17
|
+
* Zone-B root: .workbench
|
|
18
|
+
* A benign-named, gitignored directory that holds Halfcycle-confidential method
|
|
19
|
+
* and process artefacts (taskgraphs, orchestration state, guard-eval logs).
|
|
20
|
+
* Gitignored on the client remote + enforced by the confidential-egress guard
|
|
21
|
+
* (E1-T-09). The name is deliberately innocuous — it discloses nothing about
|
|
22
|
+
* Halfcycle's scaffold contents.
|
|
23
|
+
*/
|
|
24
|
+
export type EngagementType = 'self-build' | 'client';
|
|
25
|
+
export interface BundlePin {
|
|
26
|
+
version: string;
|
|
27
|
+
engagementId: string;
|
|
28
|
+
engagementType: EngagementType;
|
|
29
|
+
installedAt: string;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* The engagement's credential, which the installer persists to the MACHINE-LEVEL
|
|
33
|
+
* store outside this repository (T-09 — `engagement-credential.ts`). Obtained from
|
|
34
|
+
* the control plane's create-engagement response; this module only writes it,
|
|
35
|
+
* nothing here mints it. When absent, no credential is written at all (the
|
|
36
|
+
* write-set mechanics are exercised without a live serving plane).
|
|
37
|
+
*
|
|
38
|
+
* The type name is kept: it is still per-device in the sense that matters — one
|
|
39
|
+
* machine's copy of a credential nothing in the repository carries.
|
|
40
|
+
*/
|
|
41
|
+
export interface DeviceCredential {
|
|
42
|
+
/**
|
|
43
|
+
* The CONTROL origin — `HALFCYCLE_SERVICE_URL`. It serves `POST /engagements`
|
|
44
|
+
* and `POST /board/enter-codes`, and it does NOT serve `/mcp` (T-22, #438).
|
|
45
|
+
*/
|
|
46
|
+
serviceUrl: string;
|
|
47
|
+
token: string;
|
|
48
|
+
/**
|
|
49
|
+
* The origin serving the method-delivery MCP endpoint — `HALFCYCLE_MCP_URL`,
|
|
50
|
+
* a DIFFERENT deployed service, reported by the control plane on the create
|
|
51
|
+
* response rather than configured by the developer. It is persisted to
|
|
52
|
+
* `.env.local` under that name, and `.mcp.json` carries the composed endpoint
|
|
53
|
+
* as a LITERAL (T-24, #446 — a `${VAR}` reference there resolved to nothing on
|
|
54
|
+
* a plainly-launched session, so the server never connected).
|
|
55
|
+
*
|
|
56
|
+
* Before T-22 the registration referenced `${HALFCYCLE_SERVICE_URL}/mcp`, so a
|
|
57
|
+
* variable pointed at the control plane installed an MCP entry that resolved to
|
|
58
|
+
* a 404 and the product did nothing; a variable pointed at the MCP service
|
|
59
|
+
* could not create the engagement in the first place. One value could not be
|
|
60
|
+
* both, which is why the platform now supplies the second one.
|
|
61
|
+
*/
|
|
62
|
+
mcpUrl: string;
|
|
63
|
+
/**
|
|
64
|
+
* The origin serving the guard service — `GUARD_SERVICE_URL`, a THIRD deployed
|
|
65
|
+
* service, also reported by the control plane on the create response rather
|
|
66
|
+
* than configured by the developer (FW-4, F-29).
|
|
67
|
+
*
|
|
68
|
+
* **Why it is here at all.** This module generates a `PostToolUse` hook that
|
|
69
|
+
* runs the guard runner, and the runner requires `GUARD_SERVICE_URL`,
|
|
70
|
+
* `GUARD_SERVICE_TOKEN` and `GUARD_ENGAGEMENT_ID` (`packages/runner/src/config.ts`,
|
|
71
|
+
* its sole `process.env` read site). It wrote none of them. Every edit in a fresh
|
|
72
|
+
* Connect install therefore fired a hook that could not reach a guard service and
|
|
73
|
+
* failed open with a warning — ~45 of them in the T-21 walk, with no
|
|
74
|
+
* `guard-evaluations` row to show for it. **A fresh install shipped zero guard
|
|
75
|
+
* coverage**, which is the product's central promise, and reported success.
|
|
76
|
+
*
|
|
77
|
+
* The value cannot be a literal here: `packages/bundle` is shippable and names no
|
|
78
|
+
* hosted address (INV-001), and a second developer-configured variable is what
|
|
79
|
+
* T-22 rejected. So the platform declares it, exactly as it declares `mcpUrl`.
|
|
80
|
+
*/
|
|
81
|
+
guardUrl: string;
|
|
82
|
+
/**
|
|
83
|
+
* The origin the runner's telemetry POST goes to — `CONTROL_TELEMETRY_URL`, the
|
|
84
|
+
* eighth key `engagement-credential.ts` names (T-10, phase decision 13). Also
|
|
85
|
+
* reported by the control plane on create/join, like `mcpUrl` and `guardUrl`.
|
|
86
|
+
*
|
|
87
|
+
* **OPTIONAL, and NOT one of `CREDENTIAL_REQUIRED_KEYS` — the one thing this field
|
|
88
|
+
* must never become.** `mcpUrl` and `guardUrl` are required because an install
|
|
89
|
+
* missing either ships a product that does nothing or a guard hook wired to no
|
|
90
|
+
* address. Telemetry is best-effort by design: the runner's `readTelemetryConfig`
|
|
91
|
+
* already treats an absent `CONTROL_TELEMETRY_URL` as "emission silently
|
|
92
|
+
* disabled, guard loop unaffected". Putting this key into the credential-
|
|
93
|
+
* completeness conjunction would make every ALREADY-INSTALLED repository — which
|
|
94
|
+
* has the other four keys and not this one — read as holding no credential at
|
|
95
|
+
* all on its next `npx halfcycle`, taking the JOIN path and silently minting a
|
|
96
|
+
* second credential for an engagement that already had a perfectly good one.
|
|
97
|
+
* That is T-09's near-miss shape, named so the next builder does not repeat it.
|
|
98
|
+
*/
|
|
99
|
+
controlTelemetryUrl?: string;
|
|
100
|
+
}
|
|
101
|
+
export interface InstallOptions {
|
|
102
|
+
targetRepo: string;
|
|
103
|
+
engagementId: string;
|
|
104
|
+
engagementType: EngagementType;
|
|
105
|
+
/** The engagement credential to persist to the machine-level store (optional). */
|
|
106
|
+
credential?: DeviceCredential;
|
|
107
|
+
/**
|
|
108
|
+
* The home directory the machine-level store lives under. Defaults to
|
|
109
|
+
* `os.homedir()`, and exists so a test can install without writing into the
|
|
110
|
+
* developer's real `~/.halfcycle` — the same seam `account-credential.ts` takes,
|
|
111
|
+
* for the same reason.
|
|
112
|
+
*/
|
|
113
|
+
home?: string;
|
|
114
|
+
}
|
|
115
|
+
export interface InstallResult {
|
|
116
|
+
version: string;
|
|
117
|
+
/** Paths written fresh (created or content-updated). */
|
|
118
|
+
writtenPaths: string[];
|
|
119
|
+
/** Paths left untouched because they were already present / already reconciled. */
|
|
120
|
+
skippedPaths: string[];
|
|
121
|
+
/** Paths merged in place rather than replaced (e.g. `.claude/settings.json`). */
|
|
122
|
+
mergedPaths: string[];
|
|
123
|
+
/**
|
|
124
|
+
* Paths a developer already used at a name Halfcycle wanted: reported and NOT
|
|
125
|
+
* overwritten. `nothing they already had is changed` holds because of this list.
|
|
126
|
+
*/
|
|
127
|
+
collidedPaths: string[];
|
|
128
|
+
/**
|
|
129
|
+
* True iff this call performed the bootstrap scan (INV-021 — once, during
|
|
130
|
+
* onboarding). False on every install after the first: `.halfcycle/state.json`
|
|
131
|
+
* already existed and `runBootstrapScan` refused to re-run.
|
|
132
|
+
*/
|
|
133
|
+
bootstrapScanRan: boolean;
|
|
134
|
+
/**
|
|
135
|
+
* `null` on every ordinary install. Non-null means a pre-T-09 in-tree
|
|
136
|
+
* `.env.local` was **kept, not migrated**, because it still holds the only copy
|
|
137
|
+
* of `keys` — the machine-level store does not have them, so removing them would
|
|
138
|
+
* have destroyed a session token that cannot be re-minted. `missing` is why the
|
|
139
|
+
* store was not written: the required keys this repository cannot supply.
|
|
140
|
+
*
|
|
141
|
+
* The caller must SAY SO; a credential that did not move is not a detail.
|
|
142
|
+
*/
|
|
143
|
+
legacyCredentialKept: {
|
|
144
|
+
keys: string[];
|
|
145
|
+
missing: string[];
|
|
146
|
+
} | null;
|
|
147
|
+
}
|
|
148
|
+
/** The benign-named Zone-B root directory reserved in the install layout. */
|
|
149
|
+
export declare const ZONE_B_DIR = ".workbench";
|
|
150
|
+
/**
|
|
151
|
+
* The `permissions.deny` patterns a fresh install seeds (F-23(a), operator
|
|
152
|
+
* decision note 2026-08-10). THE ONE HOME of the list — the method's served step
|
|
153
|
+
* describes it, the tests pin it, and neither carries a second copy.
|
|
154
|
+
*
|
|
155
|
+
* **Why a deny list and no allow list.** Precedence is deny → ask → allow, first
|
|
156
|
+
* match wins, and `bypassPermissions` skips *prompts*. An allow list only
|
|
157
|
+
* pre-approves prompts, so under bypass mode it does nothing at all; a deny rule
|
|
158
|
+
* is a block rather than a prompt and survives. Decision (b) settles the other
|
|
159
|
+
* half: an allow list is a standing grant, committed to git, applying to everyone
|
|
160
|
+
* who clones the repo — the machine owner's to make, not the method's. **Nothing
|
|
161
|
+
* here writes `permissions.allow`, at any nesting, ever.**
|
|
162
|
+
*
|
|
163
|
+
* **Measured, not assumed** (FW-4 AC4, Claude Code 2.1.220): with these rules in
|
|
164
|
+
* `.claude/settings.json` and the session in `bypassPermissions`, a denied `Bash`
|
|
165
|
+
* call is refused — `"Permission to use Bash with command … has been denied"` —
|
|
166
|
+
* and the side effect does not happen (the file is not created; the commit is not
|
|
167
|
+
* made). The control repo with no `permissions` key runs the same command. F-23
|
|
168
|
+
* exists because someone assumed a safety net instead of checking one, so this was
|
|
169
|
+
* checked.
|
|
170
|
+
*
|
|
171
|
+
* **What it is NOT.** Matching is a literal prefix on the command string, so these
|
|
172
|
+
* nine cover the plain spellings and nothing more: `git -c k=v commit --no-verify`
|
|
173
|
+
* does not match `Bash(git commit --no-verify:*)` — measured, same probe. This is a
|
|
174
|
+
* guard against the obvious form of a destructive command, not a semantic block on
|
|
175
|
+
* the action, and no prose anywhere may promise otherwise.
|
|
176
|
+
*/
|
|
177
|
+
export declare const DENY_PATTERNS: readonly string[];
|
|
178
|
+
/**
|
|
179
|
+
* Every Claude Code tool that can create or modify a file in the target repo —
|
|
180
|
+
* the population the `PostToolUse` guard hook's matcher must cover (F-3, W8-T-03,
|
|
181
|
+
* walk 8). `Edit|Write` (FW-4's original wiring) missed `NotebookEdit`: a distinct
|
|
182
|
+
* tool, so a session editing a `.ipynb` wrote to the repo with the hook never
|
|
183
|
+
* firing — fail-open, no symptom.
|
|
184
|
+
*
|
|
185
|
+
* **Source, not a guess.** Confirmed present as literal tool names in the pinned
|
|
186
|
+
* Claude Code binary itself — `strings -a
|
|
187
|
+
* /opt/homebrew/Caskroom/claude-code/2.1.220/claude | grep -E
|
|
188
|
+
* '^(Write|Edit|MultiEdit|NotebookEdit)$'` — cross-checked against Anthropic's
|
|
189
|
+
* hooks reference (matcher values are tool names). That binary is 2.1.220, the
|
|
190
|
+
* exact version walk 8 pinned and reproduced the defect against. **This grep is
|
|
191
|
+
* confirmatory, not discovering**: it can only report tools whose names were
|
|
192
|
+
* already in the pattern, so it cannot by itself surface a missed tool (the
|
|
193
|
+
* binary also carries `Agent`, `Skill`, `ToolSearch` and others, none of them
|
|
194
|
+
* file-editing). Independent corroboration that these four specifically are
|
|
195
|
+
* grouped as "the" code-editing tools, from the same binary: `strings -a
|
|
196
|
+
* .../claude | grep -i "code editing tool permission decisions"` returns `Count
|
|
197
|
+
* of code editing tool permission decisions (accept/reject) for Edit, Write, and
|
|
198
|
+
* NotebookEdit tools` — an internal telemetry label enumerating three of these
|
|
199
|
+
* four by name (a fourth, `MultiEdit`, is confirmed present as a distinct tool
|
|
200
|
+
* name above and grouped with the other three by `guard-hook-coverage.md`'s
|
|
201
|
+
* matcher spec). `Read`/`Glob`/`Grep`/`Task`/`TodoWrite`/`WebFetch`/`WebSearch`/
|
|
202
|
+
* `Agent`/`Skill`/`ToolSearch` are read-only or don't touch repo files.
|
|
203
|
+
*
|
|
204
|
+
* `Bash` is excluded deliberately, and this is not new reasoning to invent here:
|
|
205
|
+
* `docs/features/guard-hook-coverage.md`'s "Posture decision (recorded): Bash
|
|
206
|
+
* writes are not per-call evaluated" already settles it — a per-call match on
|
|
207
|
+
* every shell command has no `file_path` to scope by and would need a
|
|
208
|
+
* working-tree scan per call, so Bash-mediated writes are caught by the
|
|
209
|
+
* accumulated `Stop`/`SubagentStop` pass and the fail-closed CI backstop
|
|
210
|
+
* instead, not by this per-edit matcher.
|
|
211
|
+
*/
|
|
212
|
+
export declare const WRITE_CAPABLE_TOOLS: readonly string[];
|
|
213
|
+
/**
|
|
214
|
+
* The position house rule, EXACTLY as `RULE_SENTENCE_PLAIN` reads in the method
|
|
215
|
+
* repo's `scripts/test/position-house-rule.test.mjs` (published at method
|
|
216
|
+
* `0.9.12`) — the constant that governs it. This is the hook half of the pair
|
|
217
|
+
* `W8-DEC-1` chose: `W8-T-05a` put the same sentence in the `CLAUDE.md`
|
|
218
|
+
* template a session reads at start; this hook re-injects it every turn,
|
|
219
|
+
* because both land EARLIER than tool-selection time, where two prior fixes
|
|
220
|
+
* (the delivery tool description, walks 7 and 8) already lost.
|
|
221
|
+
*
|
|
222
|
+
* **ONE STRING, TWO REPOS.** If this sentence is ever reworded, the method-repo
|
|
223
|
+
* test fails and this constant must be reworded in the same commit pair — see
|
|
224
|
+
* that file's own comment for why a paraphrase here is exactly how a
|
|
225
|
+
* one-string property erodes. Plain text: no backticks, no markdown, one
|
|
226
|
+
* sentence — the corpus renders `halfcycle_resolve` in code font and wraps
|
|
227
|
+
* across lines, this hook has one line of context budget to spend per prompt.
|
|
228
|
+
*/
|
|
229
|
+
export declare const USER_PROMPT_REMINDER_SENTENCE: string;
|
|
230
|
+
/**
|
|
231
|
+
* Read the pinned bundle.json from a target repo and compare its version
|
|
232
|
+
* against the current bundle version. Returns the installed pin if present.
|
|
233
|
+
*
|
|
234
|
+
* The re-sync gate reads this and reports drift (blocked-gate signal) when
|
|
235
|
+
* the installed version differs from the bundle version the operator intends
|
|
236
|
+
* to run — reusing the mirror-diff/header-strip posture with no new mechanism.
|
|
237
|
+
*/
|
|
238
|
+
export declare function readBundlePin(targetRepoRoot: string): BundlePin | null;
|
|
239
|
+
/**
|
|
240
|
+
* Read back the engagement this repo is ALREADY installed against, if any — the
|
|
241
|
+
* pin plus the credential that belongs to it (walk 6 F-2).
|
|
242
|
+
*
|
|
243
|
+
* **Why the installer needs a reader at all.** `npx halfcycle` re-run in an engaged
|
|
244
|
+
* repo used to create a brand new engagement, overwrite the pin, and replace
|
|
245
|
+
* `HALFCYCLE_TOKEN` in place — orphaning the board, the ledger and every recorded
|
|
246
|
+
* step, with no error and no way back from that checkout. It never looked. And the
|
|
247
|
+
* installer's own output invites the re-run twice over (an expired first-visit code,
|
|
248
|
+
* an MCP origin that was not up yet), so the destructive path is the documented one.
|
|
249
|
+
*
|
|
250
|
+
* **The credential found here is READ, never re-minted** — reading the four values
|
|
251
|
+
* back and passing them through the same append-reconcile is what makes a re-run
|
|
252
|
+
* byte-identical, instead of teaching the write path a second "leave-this-alone" mode.
|
|
253
|
+
*
|
|
254
|
+
* **THIS PARAGRAPH SAID SOMETHING FALSE UNTIL T-24 (#610), AND IT SAID IT HERE, IN THE
|
|
255
|
+
* DOCBLOCK OF THE FUNCTION THAT DECIDES.** It read: *"a session token is returned
|
|
256
|
+
* exactly once, on create; there is no route that re-issues it to a client"*. There has
|
|
257
|
+
* been one since T-06 — `POST /engagements/:engagementId/join`, which mints the CALLER
|
|
258
|
+
* their own credential for an engagement that already exists — and `bin.ts` now calls
|
|
259
|
+
* it precisely on the `credential: undefined` result below. So a reader who opened this
|
|
260
|
+
* function to understand the branch beneath it was told that branch could not work. The
|
|
261
|
+
* same sentence was deleted from two remedy strings in `bin.ts` in the same task; this
|
|
262
|
+
* third copy was the one nobody was reading aloud.
|
|
263
|
+
*
|
|
264
|
+
* What is still true, and is what the paragraph was reaching for: this FUNCTION mints
|
|
265
|
+
* nothing and asks nothing of any plane. It reads a file. Obtaining a credential when
|
|
266
|
+
* there is none is the caller's decision, made with the `undefined` this returns.
|
|
267
|
+
*
|
|
268
|
+
* **WHERE IT READS FROM CHANGED AT T-09, AND IT READS BOTH.** The machine-level
|
|
269
|
+
* store is asked first. A LEGACY `.env.local` — written by an install from before
|
|
270
|
+
* this task — is the fallback, and finding one is not merely tolerated: the caller
|
|
271
|
+
* uses it to migrate the credential out of the tree (see `migrateLegacyEnvLocal`).
|
|
272
|
+
* Dropping the fallback would have been the cheaper change and the wrong one: a
|
|
273
|
+
* session token cannot be re-minted, so a developer whose repo held the only copy
|
|
274
|
+
* would have been left with an engagement they could no longer authenticate to, by
|
|
275
|
+
* an upgrade whose whole purpose was to protect that credential.
|
|
276
|
+
*
|
|
277
|
+
* Returns `null` when the repo carries no pin — a first install, which behaves
|
|
278
|
+
* exactly as it always did. Returns a pin with `credential: undefined` when the pin
|
|
279
|
+
* is present but neither home carries a complete credential for it; that is a real
|
|
280
|
+
* state (a fresh clone of an engaged repository, a cleaned machine, or an install
|
|
281
|
+
* that ran with no service URL) and the caller says so rather than papering over it
|
|
282
|
+
* with a fresh engagement.
|
|
283
|
+
*
|
|
284
|
+
* **`credential: undefined` MEANS "THE REQUIRED KEYS WERE NOT ALL SUPPLIED BY EITHER
|
|
285
|
+
* HOME", NOT "THERE IS NO CREDENTIAL ANYWHERE", and the difference now steers a mint
|
|
286
|
+
* (T-24).** `toCredential` is a conjunction over `CREDENTIAL_REQUIRED_KEYS` —
|
|
287
|
+
* `HALFCYCLE_SERVICE_URL`, `HALFCYCLE_TOKEN`, `HALFCYCLE_MCP_URL`, `GUARD_SERVICE_URL`
|
|
288
|
+
* — applied to the store and then to the legacy fallback; if neither set satisfies it,
|
|
289
|
+
* `bin.ts` reads that as *this machine holds no credential for the pinned engagement*
|
|
290
|
+
* and joins. Two real populations reach it WITH A TOKEN IN HAND, and both are decided
|
|
291
|
+
* deliberately:
|
|
292
|
+
*
|
|
293
|
+
* - **A pre-FW-4 install** — its `.env.local` has `HALFCYCLE_TOKEN` but no
|
|
294
|
+
* `GUARD_SERVICE_URL`, because the installer did not write one until F-29. The
|
|
295
|
+
* fallback therefore refuses it and joining is the RIGHT answer: that tree has no
|
|
296
|
+
* guard coverage, the join returns `guardUrl` beside a fresh token, and the
|
|
297
|
+
* alternative is a checkout that stays silently unguarded forever. **This is the
|
|
298
|
+
* same population `migrateLegacyEnvLocal` refuses to empty**, and the two
|
|
299
|
+
* decisions compose rather than fight: a working credential is obtained. The file
|
|
300
|
+
* is emptied only once the store demonstrably holds a whole one — **which the join
|
|
301
|
+
* is precisely what brings about, in the same run.** The joined credential is
|
|
302
|
+
* written to the store, read back from disk, and the migration gate then passes,
|
|
303
|
+
* so this repository's `.env.local` loses its Halfcycle keys on the run that
|
|
304
|
+
* joins. That is the intended end state and not a side effect: the tree stops
|
|
305
|
+
* holding a credential, having first been given one that works. The developer's
|
|
306
|
+
* own entries in that file are untouched.
|
|
307
|
+
* - **A credential supplied by ENVIRONMENT VARIABLE with neither home populated** —
|
|
308
|
+
* the CI path. This reader deliberately never takes the TOKEN from the ambient
|
|
309
|
+
* shell (only the service origin, above), so that run joins. **Accepted, with one
|
|
310
|
+
* narrow cost stated rather than discovered:** if `HALFCYCLE_TOKEN` happens to be
|
|
311
|
+
* an ENGAGEMENT token for *this* engagement and the same account, the join
|
|
312
|
+
* supersedes it into the one-hour grace window, and a workflow re-presenting that
|
|
313
|
+
* same variable an hour later gets a 401. An ACCOUNT credential — what the browser
|
|
314
|
+
* handoff stores and what the feature names as the CI path — is a different
|
|
315
|
+
* credential class in a different table and is untouched. The narrow case is not
|
|
316
|
+
* closed here because closing it would mean this function reading the process
|
|
317
|
+
* environment for a secret, which is the one thing the paragraph below exists to
|
|
318
|
+
* prevent; the workflow's fix is to export the account credential rather than a
|
|
319
|
+
* per-engagement token.
|
|
320
|
+
*
|
|
321
|
+
* PARSES, NEVER SOURCES — a credential store is not code, exactly as the generated
|
|
322
|
+
* `mcp-headers.sh` treats it.
|
|
323
|
+
*/
|
|
324
|
+
export declare function readPinnedEngagement(targetRepoRoot: string, home?: string): {
|
|
325
|
+
engagementId: string;
|
|
326
|
+
credential: DeviceCredential | undefined;
|
|
327
|
+
/** True iff the credential was found in a pre-T-09 in-tree `.env.local`. The
|
|
328
|
+
* caller migrates it out and says so; nothing else branches on it. */
|
|
329
|
+
fromLegacyEnvLocal: boolean;
|
|
330
|
+
} | null;
|
|
331
|
+
export declare function checkDrift(targetRepoRoot: string): {
|
|
332
|
+
drifted: boolean;
|
|
333
|
+
installed: string | null;
|
|
334
|
+
current: string;
|
|
335
|
+
};
|
|
336
|
+
/**
|
|
337
|
+
* Install the bundle into a target engagement repo.
|
|
338
|
+
*
|
|
339
|
+
* Write order:
|
|
340
|
+
* 1. (nothing) — NO worker role files land in a client tree (FX-2, W3-F-27)
|
|
341
|
+
* 2. commands → .claude/commands/ (one-screen stubs, no method prose)
|
|
342
|
+
* 3. captured-payload fixtures store convention → test/fixtures/captured/
|
|
343
|
+
* 4. vendored guard binary → .halfcycle/bin/bin.bundle.mjs (self-contained)
|
|
344
|
+
* 5. Governance-hook wiring (.claude/settings.json, guard-runner.sh,
|
|
345
|
+
* session-start-marker.sh, user-prompt-reminder.sh)
|
|
346
|
+
* 6. CI stanza file + .env.example section + the MCP registration and the
|
|
347
|
+
* connection-headers helper it names (credentialed installs only — T-24)
|
|
348
|
+
* 7. .gitignore + project identity + the engagement credential (OUTSIDE the tree,
|
|
349
|
+
* at machine level — T-09) + migration of any pre-T-09 in-tree credential
|
|
350
|
+
* 8. .halfcycle/bundle.json pin
|
|
351
|
+
* 9. Bootstrap scan → .halfcycle/state.json (INV-021 — once, onboarding-time,
|
|
352
|
+
* a no-op if the file already exists; never re-run on a re-install)
|
|
353
|
+
*/
|
|
354
|
+
export declare function install(options: InstallOptions): Promise<InstallResult>;
|
|
355
|
+
//# sourceMappingURL=install.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAwBH,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,QAAQ,CAAC;AAErD,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,cAAc,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd;;;;;;;;;;;;;OAaG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;;;;;;;;;;;;OAgBG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,cAAc,CAAC;IAC/B,kFAAkF;IAClF,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,mFAAmF;IACnF,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,iFAAiF;IACjF,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB;;;OAGG;IACH,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB;;;;OAIG;IACH,gBAAgB,EAAE,OAAO,CAAC;IAC1B;;;;;;;;OAQG;IACH,oBAAoB,EAAE;QAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,IAAI,CAAC;CACpE;AAMD,6EAA6E;AAC7E,eAAO,MAAM,UAAU,eAAe,CAAC;AA+QvC;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,aAAa,EAAE,SAAS,MAAM,EAU1C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,eAAO,MAAM,mBAAmB,EAAE,SAAS,MAAM,EAAmD,CAAC;AAErG;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,6BAA6B,QAG0C,CAAC;AAovBrF;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAItE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoFG;AACH,wBAAgB,oBAAoB,CAClC,cAAc,EAAE,MAAM,EACtB,IAAI,CAAC,EAAE,MAAM,GACZ;IACD,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACzC;2EACuE;IACvE,kBAAkB,EAAE,OAAO,CAAC;CAC7B,GAAG,IAAI,CAkBP;AA+ED,wBAAgB,UAAU,CAAC,cAAc,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAMlH;AAkRD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CA8P7E"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* THE LOOPBACK LISTENER — the CLI's own half of the browser handoff (T-25, #614).
|
|
3
|
+
*
|
|
4
|
+
* `npx halfcycle` binds an ephemeral port on `127.0.0.1`, hands that port to the
|
|
5
|
+
* confirmation page through the URL it opens, and waits for the page to redirect the
|
|
6
|
+
* browser back to it. No code is displayed, nothing is compared, and nothing polls.
|
|
7
|
+
*
|
|
8
|
+
* ---------------------------------------------------------------------------
|
|
9
|
+
* WHY THE OLD FLOW IS NOT SIMPLY BETTER-DOCUMENTED. The device-code flow showed the
|
|
10
|
+
* user a code in the terminal and the SAME code on a page whose URL carried it — so
|
|
11
|
+
* the human compared two values that both came from us. GitHub's CLI makes the code
|
|
12
|
+
* TYPED, which is what makes a comparison mean anything; ours only guarded against
|
|
13
|
+
* approving a *different* pending sign-in from a link someone sent you. On a local
|
|
14
|
+
* machine that is less than the friction costs, so the loopback path removes the
|
|
15
|
+
* comparison rather than explaining it.
|
|
16
|
+
*
|
|
17
|
+
* **The device-code flow stays, unchanged and still tested.** Loopback cannot work
|
|
18
|
+
* when the browser is not on the same machine as the CLI — SSH, containers, remote
|
|
19
|
+
* dev boxes, Codespaces — which is an ordinary way to run this. `device-signin.ts`
|
|
20
|
+
* chooses between them; this module only ever reports what it MEASURED.
|
|
21
|
+
*
|
|
22
|
+
* ---------------------------------------------------------------------------
|
|
23
|
+
* FOUR PROPERTIES THIS MODULE IS RESPONSIBLE FOR. **Each one names the test that
|
|
24
|
+
* reds when it is mutated** — named, rather than claimed in aggregate, because the
|
|
25
|
+
* aggregate version of this sentence shipped once while property 3's call site was
|
|
26
|
+
* covered by nothing at all (see `createCallbackHandler`). A list that says "all of
|
|
27
|
+
* these are tested" cannot be checked without re-deriving it; a list that names the
|
|
28
|
+
* assertion can be:
|
|
29
|
+
*
|
|
30
|
+
* 1. **`127.0.0.1`, never `0.0.0.0`.** `LOOPBACK_REDIRECT_HOST` is the bind
|
|
31
|
+
* address as well as the redirect host — one constant, in `@halfcycle/events`,
|
|
32
|
+
* so the address the page is told to use and the address actually bound cannot
|
|
33
|
+
* drift. Binding `0.0.0.0` would put a sign-in completion endpoint on every
|
|
34
|
+
* interface of the developer's machine, reachable from their network.
|
|
35
|
+
* → *"the listener binds 127.0.0.1, read back from the socket"* asserts
|
|
36
|
+
* `boundAddress`, which is what the OS reports rather than what we passed in.
|
|
37
|
+
* 2. **A callback whose `state` does not match is rejected**, compared in constant
|
|
38
|
+
* time, and the wait CONTINUES — a wrong state must not be able to end someone
|
|
39
|
+
* else's sign-in either.
|
|
40
|
+
* → *"a callback whose state does not match is rejected AND does not end the
|
|
41
|
+
* wait"*, firing real requests at a real listener.
|
|
42
|
+
* 3. **A request from a non-loopback peer is refused**, independently of (1). This
|
|
43
|
+
* is deliberate belt-and-braces: it means a future edit that widens the bind
|
|
44
|
+
* address does not silently widen who may complete a sign-in.
|
|
45
|
+
* → *"a non-loopback peer is refused AT THE HANDLER"*, which drives
|
|
46
|
+
* `createCallbackHandler` directly, because the OS cannot deliver this request
|
|
47
|
+
* to a listener that is bound correctly. Testing `isLoopbackPeer` alone does
|
|
48
|
+
* NOT cover this and did not: deleting the call site left 444/444 passing.
|
|
49
|
+
* 4. **The bind failure is a RETURN VALUE, not a throw.** Choosing the fallback is
|
|
50
|
+
* the caller's job, and it must be chosen from something measured. A module that
|
|
51
|
+
* threw would push the caller towards guessing from the environment instead.
|
|
52
|
+
* → *"a port that is already taken is a MEASURED bind failure"*, against a real
|
|
53
|
+
* squatter on a real port.
|
|
54
|
+
*
|
|
55
|
+
* INV-001: Node builtins and `@halfcycle/events` only.
|
|
56
|
+
*/
|
|
57
|
+
import { type LoopbackRedirectTarget, type LoopbackResult } from '@halfcycle/events';
|
|
58
|
+
/**
|
|
59
|
+
* `HALFCYCLE_LOOPBACK_PORT` — pin the callback port instead of taking an ephemeral
|
|
60
|
+
* one.
|
|
61
|
+
*
|
|
62
|
+
* For a developer whose local firewall only permits a known port, and it is the one
|
|
63
|
+
* thing that makes a bind failure reproducible on demand: a test can hold the port
|
|
64
|
+
* first and get a REAL `EADDRINUSE` out of the real binary, rather than simulating
|
|
65
|
+
* one. An unusable value (not a number, privileged, already taken) is a measured
|
|
66
|
+
* bind failure like any other and falls back to the device code — never a hard
|
|
67
|
+
* failure, because a mis-set convenience variable must not be able to stop someone
|
|
68
|
+
* signing in.
|
|
69
|
+
*/
|
|
70
|
+
export declare const LOOPBACK_PORT_ENV = "HALFCYCLE_LOOPBACK_PORT";
|
|
71
|
+
/** What the browser told us, once the state matched. */
|
|
72
|
+
export interface LoopbackCallback {
|
|
73
|
+
result: LoopbackResult;
|
|
74
|
+
}
|
|
75
|
+
/** A listener that is up, with the target to hand to the confirmation page. */
|
|
76
|
+
export interface LoopbackListener {
|
|
77
|
+
bound: true;
|
|
78
|
+
target: LoopbackRedirectTarget;
|
|
79
|
+
/**
|
|
80
|
+
* The interface actually bound, READ BACK from the socket rather than restated
|
|
81
|
+
* from the constant that was passed in.
|
|
82
|
+
*
|
|
83
|
+
* Exposed so criterion 4 (*bound to `127.0.0.1` only, never `0.0.0.0`*) is
|
|
84
|
+
* checkable as an observation. A test that asserted the constant would assert
|
|
85
|
+
* that a string equals itself and would survive the exact mutation it exists to
|
|
86
|
+
* catch; this is what the operating system says is listening.
|
|
87
|
+
*/
|
|
88
|
+
boundAddress: string;
|
|
89
|
+
/**
|
|
90
|
+
* Wait for the browser. Resolves with the callback, or `null` when `timeoutMs`
|
|
91
|
+
* elapses first — a timeout is a fact the caller words, not an error this module
|
|
92
|
+
* throws.
|
|
93
|
+
*/
|
|
94
|
+
waitForCallback(opts: {
|
|
95
|
+
timeoutMs: number;
|
|
96
|
+
/** Called every `stillWaitingMs` while nothing has arrived. */
|
|
97
|
+
onStillWaiting?: (elapsedMs: number) => void;
|
|
98
|
+
stillWaitingMs?: number;
|
|
99
|
+
}): Promise<LoopbackCallback | null>;
|
|
100
|
+
close(): Promise<void>;
|
|
101
|
+
}
|
|
102
|
+
/** The bind was attempted and did not work. `reason` is the measurement. */
|
|
103
|
+
export interface LoopbackBindFailed {
|
|
104
|
+
bound: false;
|
|
105
|
+
reason: string;
|
|
106
|
+
}
|
|
107
|
+
export type LoopbackBindOutcome = LoopbackListener | LoopbackBindFailed;
|
|
108
|
+
/**
|
|
109
|
+
* Is this peer on the loopback interface?
|
|
110
|
+
*
|
|
111
|
+
* Written against the ADDRESS rather than trusting the bind, for the reason in this
|
|
112
|
+
* file's header: two independent gates mean widening one of them does not widen who
|
|
113
|
+
* may complete a sign-in. `::ffff:127.0.0.1` is the IPv4-mapped form some stacks
|
|
114
|
+
* report; `::1` is IPv6 loopback, which cannot reach an IPv4 bind but is accepted so
|
|
115
|
+
* this predicate states the property rather than the current bind's side effects.
|
|
116
|
+
*/
|
|
117
|
+
export declare function isLoopbackPeer(remoteAddress: string | undefined): boolean;
|
|
118
|
+
/**
|
|
119
|
+
* The subset of an `IncomingMessage` this handler reads, and the subset of a
|
|
120
|
+
* `ServerResponse` it writes.
|
|
121
|
+
*
|
|
122
|
+
* DECLARED SO THE HANDLER CAN BE DRIVEN WITHOUT A SOCKET, which is the whole point:
|
|
123
|
+
* a request from a non-loopback peer is not something a test can produce against a
|
|
124
|
+
* listener bound to `127.0.0.1` — the operating system will not deliver one — so the
|
|
125
|
+
* only way to assert the refusal is to hand the handler a peer address directly.
|
|
126
|
+
*
|
|
127
|
+
* These are structural subsets of Node's own types, not a parallel model of them:
|
|
128
|
+
* `createServer` accepts this handler unchanged because `IncomingMessage` and
|
|
129
|
+
* `ServerResponse` each satisfy the shape below.
|
|
130
|
+
*/
|
|
131
|
+
export interface LoopbackRequest {
|
|
132
|
+
method?: string | undefined;
|
|
133
|
+
url?: string | undefined;
|
|
134
|
+
socket: {
|
|
135
|
+
remoteAddress?: string | undefined;
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
export interface LoopbackResponse {
|
|
139
|
+
writeHead(status: number, headers?: Record<string, string>): LoopbackResponse;
|
|
140
|
+
end(body?: string): unknown;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* THE ONE HANDLER, built here and used by `createServer` below and by nothing else.
|
|
144
|
+
*
|
|
145
|
+
* Extracted from the `createServer` call it used to be written inline in, for a
|
|
146
|
+
* reason worth stating rather than filing as a refactor. This file's header claims
|
|
147
|
+
* *"four properties, each of which has a test that reds when it is mutated"* — and
|
|
148
|
+
* for property 3 (**a request from a non-loopback peer is refused, independently of
|
|
149
|
+
* the bind address**) that was FALSE. Only the pure predicate `isLoopbackPeer` was
|
|
150
|
+
* tested; deleting its CALL SITE left the whole bundle suite at 444/444. The claim
|
|
151
|
+
* read as protection and held nothing, which is this phase's most expensive
|
|
152
|
+
* recurring defect class rather than a tidiness complaint.
|
|
153
|
+
*
|
|
154
|
+
* It could not be tested through the socket, and that is not an oversight: a
|
|
155
|
+
* listener bound to `127.0.0.1` can only ever be reached by a loopback peer, so the
|
|
156
|
+
* OS will not produce the request the check refuses. Property 3 exists precisely to
|
|
157
|
+
* survive a FUTURE widening of property 1 — the moment the bind is wrong, this is
|
|
158
|
+
* what still refuses the network — so it needs an assertion that does not depend on
|
|
159
|
+
* the bind being right. Handing the handler a peer address is that assertion.
|
|
160
|
+
*/
|
|
161
|
+
export declare function createCallbackHandler(state: string, onCallback: (callback: LoopbackCallback) => void): (req: LoopbackRequest, res: LoopbackResponse) => void;
|
|
162
|
+
/**
|
|
163
|
+
* Bind the callback listener, or report why it could not be bound.
|
|
164
|
+
*
|
|
165
|
+
* THE BIND IS THE MEASUREMENT. Nothing here reads `SSH_CONNECTION`, `DISPLAY`,
|
|
166
|
+
* `TERM` or any other variable to guess whether loopback will work — it tries, and
|
|
167
|
+
* an `EADDRINUSE`, an `EACCES` or a sandbox that forbids listening comes back as a
|
|
168
|
+
* `reason` string the caller prints. A heuristic would be wrong in both directions:
|
|
169
|
+
* a container with a forwarded browser has no `DISPLAY` and works, and a locked-down
|
|
170
|
+
* desktop has one and does not.
|
|
171
|
+
*/
|
|
172
|
+
export declare function bindLoopback(env?: NodeJS.ProcessEnv): Promise<LoopbackBindOutcome>;
|
|
173
|
+
//# sourceMappingURL=loopback-signin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loopback-signin.d.ts","sourceRoot":"","sources":["../src/loopback-signin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AAIH,OAAO,EAQL,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAC;AAE3B;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,iBAAiB,4BAA4B,CAAC;AAE3D,wDAAwD;AACxD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,cAAc,CAAC;CACxB;AAED,+EAA+E;AAC/E,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,IAAI,CAAC;IACZ,MAAM,EAAE,sBAAsB,CAAC;IAC/B;;;;;;;;OAQG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,eAAe,CAAC,IAAI,EAAE;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,+DAA+D;QAC/D,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;QAC7C,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IACrC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,4EAA4E;AAC5E,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,GAAG,kBAAkB,CAAC;AAsBxE;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAIzE;AAgBD;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,MAAM,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;CAChD;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,gBAAgB,CAAC;IAC9E,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,GAC/C,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,gBAAgB,KAAK,IAAI,CAmCvD;AAoBD;;;;;;;;;GASG;AACH,wBAAsB,YAAY,CAChC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAAC,mBAAmB,CAAC,CAmE9B"}
|