approval-md 0.1.0 → 0.2.0
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 +584 -553
- package/SPEC.md +42 -13
- package/dist/src/adapters/agentmail.d.ts +426 -0
- package/dist/src/adapters/agentmail.js +2 -2
- package/dist/src/adapters/conformance.d.ts +149 -0
- package/dist/src/adapters/contract.d.ts +628 -0
- package/dist/src/adapters/contract.js +110 -16
- package/dist/src/adapters/contract.js.map +1 -1
- package/dist/src/adapters/email.d.ts +324 -0
- package/dist/src/adapters/env-passphrase.d.ts +93 -0
- package/dist/src/adapters/public.d.ts +11 -0
- package/dist/src/adapters/public.js +11 -0
- package/dist/src/adapters/public.js.map +1 -0
- package/dist/src/adapters/registry.d.ts +59 -0
- package/dist/src/adapters/registry.js +2 -1
- package/dist/src/adapters/registry.js.map +1 -1
- package/dist/src/adapters/smtp.d.ts +213 -0
- package/dist/src/adapters/vault-provider.d.ts +114 -0
- package/dist/src/adapters/vault-provider.js +3 -3
- package/dist/src/adapters/zzz.d.ts +66 -0
- package/dist/src/adapters/zzz.js +299 -0
- package/dist/src/adapters/zzz.js.map +1 -0
- package/dist/src/channels/batch.d.ts +109 -0
- package/dist/src/channels/cli.d.ts +193 -0
- package/dist/src/channels/conformance.d.ts +92 -0
- package/dist/src/channels/contract.d.ts +623 -0
- package/dist/src/channels/payload-view.d.ts +35 -0
- package/dist/src/channels/render-queue.d.ts +149 -0
- package/dist/src/channels/tagging.d.ts +196 -0
- package/dist/src/channels/telegram.d.ts +1832 -0
- package/dist/src/channels/web.d.ts +341 -0
- package/dist/src/cli/adapter.d.ts +90 -0
- package/dist/src/cli/adapter.js +25 -15
- package/dist/src/cli/adapter.js.map +1 -1
- package/dist/src/cli/amend.d.ts +59 -0
- package/dist/src/cli/args.d.ts +43 -0
- package/dist/src/cli/attest.d.ts +41 -0
- package/dist/src/cli/audit-card.d.ts +62 -0
- package/dist/src/cli/audit.d.ts +59 -0
- package/dist/src/cli/channel-telegram.d.ts +806 -0
- package/dist/src/cli/channel-web.d.ts +131 -0
- package/dist/src/cli/channel.d.ts +71 -0
- package/dist/src/cli/checkpoint-tap.d.ts +169 -0
- package/dist/src/cli/codex.d.ts +2 -0
- package/dist/src/cli/codex.js +172 -0
- package/dist/src/cli/codex.js.map +1 -0
- package/dist/src/cli/coverage.d.ts +61 -0
- package/dist/src/cli/daemon.d.ts +120 -0
- package/dist/src/cli/doctor.d.ts +129 -0
- package/dist/src/cli/doctor.js +119 -5
- package/dist/src/cli/doctor.js.map +1 -1
- package/dist/src/cli/env.d.ts +65 -0
- package/dist/src/cli/execute.d.ts +202 -0
- package/dist/src/cli/exit-codes.d.ts +73 -0
- package/dist/src/cli/feedback.d.ts +60 -0
- package/dist/src/cli/gate-window.d.ts +40 -0
- package/dist/src/cli/gate.d.ts +68 -0
- package/dist/src/cli/git-scope.d.ts +190 -0
- package/dist/src/cli/gloss-attach.d.ts +85 -0
- package/dist/src/cli/gloss-codex-child.d.ts +9 -0
- package/dist/src/cli/gloss-codex.d.ts +24 -0
- package/dist/src/cli/gloss-options.d.ts +42 -0
- package/dist/src/cli/gloss.d.ts +265 -0
- package/dist/src/cli/help.d.ts +103 -0
- package/dist/src/cli/help.js +173 -51
- package/dist/src/cli/help.js.map +1 -1
- package/dist/src/cli/hook-codex.d.ts +78 -0
- package/dist/src/cli/hook-codex.js +167 -0
- package/dist/src/cli/hook-codex.js.map +1 -0
- package/dist/src/cli/hook.d.ts +331 -0
- package/dist/src/cli/hook.js +186 -80
- package/dist/src/cli/hook.js.map +1 -1
- package/dist/src/cli/import.d.ts +35 -0
- package/dist/src/cli/init.d.ts +84 -0
- package/dist/src/cli/init.js +2 -2
- package/dist/src/cli/init.js.map +1 -1
- package/dist/src/cli/instructions.d.ts +23 -0
- package/dist/src/cli/journal.d.ts +41 -0
- package/dist/src/cli/log-advance.d.ts +287 -0
- package/dist/src/cli/log-advance.js +102 -11
- package/dist/src/cli/log-advance.js.map +1 -1
- package/dist/src/cli/log-anchor.d.ts +176 -0
- package/dist/src/cli/log-checkpoint.d.ts +22 -0
- package/dist/src/cli/log-sync.d.ts +243 -0
- package/dist/src/cli/log-verbs.d.ts +16 -0
- package/dist/src/cli/log-verbs.js +7 -1
- package/dist/src/cli/log-verbs.js.map +1 -1
- package/dist/src/cli/long-help.d.ts +70 -0
- package/dist/src/cli/main.d.ts +77 -0
- package/dist/src/cli/main.js +155 -5
- package/dist/src/cli/main.js.map +1 -1
- package/dist/src/cli/mcp.d.ts +52 -0
- package/dist/src/cli/paths.d.ts +56 -0
- package/dist/src/cli/payload.d.ts +58 -0
- package/dist/src/cli/policy.d.ts +43 -0
- package/dist/src/cli/preflight.d.ts +363 -0
- package/dist/src/cli/preflight.js +294 -7
- package/dist/src/cli/preflight.js.map +1 -1
- package/dist/src/cli/progress.d.ts +78 -0
- package/dist/src/cli/prompt.d.ts +209 -0
- package/dist/src/cli/quickstart.d.ts +46 -0
- package/dist/src/cli/quickstart.js +297 -0
- package/dist/src/cli/quickstart.js.map +1 -0
- package/dist/src/cli/records.d.ts +34 -0
- package/dist/src/cli/render.d.ts +22 -0
- package/dist/src/cli/sandbox.d.ts +51 -0
- package/dist/src/cli/scaffold.d.ts +79 -0
- package/dist/src/cli/setup-adapter.d.ts +137 -0
- package/dist/src/cli/setup-adapter.js +38 -4
- package/dist/src/cli/setup-adapter.js.map +1 -1
- package/dist/src/cli/setup-channel.d.ts +117 -0
- package/dist/src/cli/setup-checkpoint.d.ts +57 -0
- package/dist/src/cli/setup-common.d.ts +275 -0
- package/dist/src/cli/setup-flow.d.ts +287 -0
- package/dist/src/cli/setup-service.d.ts +96 -0
- package/dist/src/cli/setup.d.ts +202 -0
- package/dist/src/cli/style.d.ts +320 -0
- package/dist/src/cli/token.d.ts +39 -0
- package/dist/src/cli/up.d.ts +155 -0
- package/dist/src/cli/up.js +4 -2
- package/dist/src/cli/up.js.map +1 -1
- package/dist/src/cli/usage.d.ts +37 -0
- package/dist/src/cli/values.d.ts +40 -0
- package/dist/src/cli/vault.d.ts +59 -0
- package/dist/src/cli/vault.js +2 -2
- package/dist/src/cli/vault.js.map +1 -1
- package/dist/src/cli/verb-registry.d.ts +76 -0
- package/dist/src/cli/verb-registry.js +176 -8
- package/dist/src/cli/verb-registry.js.map +1 -1
- package/dist/src/cli/wordmark.d.ts +31 -0
- package/dist/src/cli/wordmark.js +2 -2
- package/dist/src/codex/doctor.d.ts +13 -0
- package/dist/src/codex/doctor.js +41 -0
- package/dist/src/codex/doctor.js.map +1 -0
- package/dist/src/codex/manifest.d.ts +49 -0
- package/dist/src/codex/manifest.js +103 -0
- package/dist/src/codex/manifest.js.map +1 -0
- package/dist/src/codex/templates.d.ts +41 -0
- package/dist/src/codex/templates.js +319 -0
- package/dist/src/codex/templates.js.map +1 -0
- package/dist/src/codex/trust.d.ts +19 -0
- package/dist/src/codex/trust.js +183 -0
- package/dist/src/codex/trust.js.map +1 -0
- package/dist/src/codex/workspace-plan.d.ts +131 -0
- package/dist/src/codex/workspace-plan.js +561 -0
- package/dist/src/codex/workspace-plan.js.map +1 -0
- package/dist/src/core/actor.d.ts +2 -0
- package/dist/src/core/actor.js +5 -0
- package/dist/src/core/actor.js.map +1 -0
- package/dist/src/core/advance-cycle.d.ts +170 -0
- package/dist/src/core/agents-md.d.ts +276 -0
- package/dist/src/core/apply-patch.d.ts +49 -0
- package/dist/src/core/apply-patch.js +266 -0
- package/dist/src/core/apply-patch.js.map +1 -0
- package/dist/src/core/attest.d.ts +420 -0
- package/dist/src/core/attest.js +13 -1
- package/dist/src/core/attest.js.map +1 -1
- package/dist/src/core/audit.d.ts +492 -0
- package/dist/src/core/budgets.d.ts +238 -0
- package/dist/src/core/checkpoint.d.ts +500 -0
- package/dist/src/core/child-env.d.ts +88 -0
- package/dist/src/core/clock.d.ts +52 -0
- package/dist/src/core/command-class.d.ts +543 -0
- package/dist/src/core/command-class.js +43 -8
- package/dist/src/core/command-class.js.map +1 -1
- package/dist/src/core/coverage-sources/adapter.d.ts +40 -0
- package/dist/src/core/coverage-sources/gh.d.ts +48 -0
- package/dist/src/core/coverage-sources/git.d.ts +101 -0
- package/dist/src/core/coverage.d.ts +217 -0
- package/dist/src/core/credential-spec.d.ts +72 -0
- package/dist/src/core/dark-session.d.ts +331 -0
- package/dist/src/core/decision-refusal.d.ts +185 -0
- package/dist/src/core/env-file.d.ts +450 -0
- package/dist/src/core/execute.d.ts +858 -0
- package/dist/src/core/execute.js +44 -6
- package/dist/src/core/execute.js.map +1 -1
- package/dist/src/core/frontmatter.d.ts +78 -0
- package/dist/src/core/gate-window.d.ts +312 -0
- package/dist/src/core/gate.d.ts +1364 -0
- package/dist/src/core/gate.js +68 -13
- package/dist/src/core/gate.js.map +1 -1
- package/dist/src/core/git-run.d.ts +73 -0
- package/dist/src/core/harness-version.d.ts +157 -0
- package/dist/src/core/harness-version.js +2 -1
- package/dist/src/core/harness-version.js.map +1 -1
- package/dist/src/core/harness-wait.d.ts +55 -0
- package/dist/src/core/head-retry.d.ts +107 -0
- package/dist/src/core/instance.d.ts +253 -0
- package/dist/src/core/intake-limits.d.ts +247 -0
- package/dist/src/core/jcs.d.ts +52 -0
- package/dist/src/core/journal.d.ts +144 -0
- package/dist/src/core/live-draw.d.ts +436 -0
- package/dist/src/core/log-reconcile.d.ts +89 -0
- package/dist/src/core/log-subscribe.d.ts +36 -0
- package/dist/src/core/log-subscribe.js +162 -0
- package/dist/src/core/log-subscribe.js.map +1 -0
- package/dist/src/core/log.d.ts +278 -0
- package/dist/src/core/loop.d.ts +274 -0
- package/dist/src/core/loop.js +11 -0
- package/dist/src/core/loop.js.map +1 -1
- package/dist/src/core/md-fence.d.ts +41 -0
- package/dist/src/core/money.d.ts +147 -0
- package/dist/src/core/payload-census.d.ts +74 -0
- package/dist/src/core/payload-store.d.ts +175 -0
- package/dist/src/core/payload.d.ts +71 -0
- package/dist/src/core/policy-diff.d.ts +292 -0
- package/dist/src/core/policy-diff.js +27 -4
- package/dist/src/core/policy-diff.js.map +1 -1
- package/dist/src/core/policy-expectations.d.ts +199 -0
- package/dist/src/core/policy-explain.d.ts +150 -0
- package/dist/src/core/policy-explain.js +31 -3
- package/dist/src/core/policy-explain.js.map +1 -1
- package/dist/src/core/policy-load.d.ts +527 -0
- package/dist/src/core/policy-load.js +15 -3
- package/dist/src/core/policy-load.js.map +1 -1
- package/dist/src/core/policy-match.d.ts +281 -0
- package/dist/src/core/policy-match.js +20 -9
- package/dist/src/core/policy-match.js.map +1 -1
- package/dist/src/core/policy-proposal.d.ts +265 -0
- package/dist/src/core/prompt-layout.d.ts +221 -0
- package/dist/src/core/protected-path-guard.d.ts +453 -0
- package/dist/src/core/protected-path-guard.js +514 -35
- package/dist/src/core/protected-path-guard.js.map +1 -1
- package/dist/src/core/registration.d.ts +25 -0
- package/dist/src/core/reindex.d.ts +99 -0
- package/dist/src/core/sampler.d.ts +313 -0
- package/dist/src/core/sandbox.d.ts +290 -0
- package/dist/src/core/seal.d.ts +165 -0
- package/dist/src/core/state.d.ts +505 -0
- package/dist/src/core/task-file.d.ts +185 -0
- package/dist/src/core/telegram-config.d.ts +93 -0
- package/dist/src/core/token.d.ts +409 -0
- package/dist/src/core/token.js +21 -38
- package/dist/src/core/token.js.map +1 -1
- package/dist/src/core/validate.d.ts +138 -0
- package/dist/src/core/values.d.ts +137 -0
- package/dist/src/core/vault.d.ts +291 -0
- package/dist/src/core/verified-snapshot.d.ts +204 -0
- package/dist/src/core/verify.d.ts +336 -0
- package/dist/src/core/version.d.ts +8 -0
- package/dist/src/core/wysiwys.d.ts +370 -0
- package/dist/src/daemon/advance-child.d.ts +39 -0
- package/dist/src/daemon/advance.d.ts +466 -0
- package/dist/src/daemon/audit.d.ts +87 -0
- package/dist/src/daemon/daemon.d.ts +1180 -0
- package/dist/src/daemon/dark-session.d.ts +64 -0
- package/dist/src/daemon/draw-child.d.ts +36 -0
- package/dist/src/daemon/draw.d.ts +154 -0
- package/dist/src/daemon/git-evidence.d.ts +173 -0
- package/dist/src/daemon/git-evidence.js +1 -1
- package/dist/src/daemon/projection.d.ts +180 -0
- package/dist/src/daemon/prune.d.ts +207 -0
- package/dist/src/mcp/http.d.ts +113 -0
- package/dist/src/mcp/server.d.ts +265 -0
- package/dist/src/mcp/server.js +9 -1
- package/dist/src/mcp/server.js.map +1 -1
- package/docs/adapter-api.md +106 -0
- package/docs/cli-reference.md +389 -36
- package/docs/codex-enforced-session.md +30 -0
- package/package.json +12 -2
- package/schema/codex-instance.schema.json +82 -0
- package/schema/event.schema.json +2 -1
- package/schema/fixtures/codex-instance/invalid/unpinned-codex-version.json +40 -0
- package/schema/fixtures/codex-instance/valid/canonical.json +40 -0
- package/schema/policy.schema.json +21 -1
- package/templates/codex/README.md +9 -0
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
*
|
|
4
4
|
* An **adapter** is a side-effect executor: the thing that actually sends the
|
|
5
5
|
* email, writes the calendar entry, moves the file. SPEC.md §10.4 makes it the
|
|
6
|
-
* hard boundary of the whole system
|
|
7
|
-
*
|
|
8
|
-
* credentials only answer to tokens."
|
|
6
|
+
* hard boundary of the whole system: credentials reach an adapter only inside
|
|
7
|
+
* a runtime-authorized execution window.
|
|
9
8
|
*
|
|
10
|
-
* That
|
|
11
|
-
* recompute the payload hash, verify
|
|
12
|
-
* execution started, act, record how it
|
|
9
|
+
* That boundary describes a *sequence*, not a property of any one function:
|
|
10
|
+
* recompute the payload hash, verify the applicable authority and consume a
|
|
11
|
+
* token where required, record that the execution started, act, record how it
|
|
12
|
+
* ended. An adapter that owned that
|
|
13
13
|
* sequence could skip a step — and the step it would skip is whichever one was
|
|
14
14
|
* inconvenient the week the adapter was written. So the sequence lives here,
|
|
15
15
|
* once, and an adapter implements exactly one method:
|
|
@@ -60,11 +60,10 @@
|
|
|
60
60
|
* inside `act`: the far side can move in between, and the check that binds
|
|
61
61
|
* the bytes actually sent is the later one.
|
|
62
62
|
* 4. **Scope the credentials.** The provider handed to `act` is a wrapper that
|
|
63
|
-
* closes when `act` returns. Inside the verified
|
|
63
|
+
* closes when `act` returns. Inside the verified execution window it answers;
|
|
64
64
|
* outside it, every `get` refuses `credential-window-closed`. An adapter that
|
|
65
65
|
* stashes the provider and reads it later gets a refusal rather than a
|
|
66
|
-
* secret, so
|
|
67
|
-
* intention.
|
|
66
|
+
* secret, so the execution window is a mechanism instead of an intention.
|
|
68
67
|
* 5. **Redact.** Every string the contract is about to return is scanned for
|
|
69
68
|
* each credential value the provider handed out during the window, and hits
|
|
70
69
|
* are replaced with {@link REDACTION_PLACEHOLDER} and counted. SPEC.md §11.1
|
|
@@ -103,8 +102,11 @@
|
|
|
103
102
|
* {@link ExecuteOptions.clock}), no randomness, and nothing here throws — an
|
|
104
103
|
* adapter that throws is caught and recorded as a failed execution.
|
|
105
104
|
*/
|
|
106
|
-
import { EXECUTE_REFUSAL_CODES, declaringTasks, finishExecution, findDeclaration, indeterminateExecution, providerRefRecordable, startExecution, } from "../core/execute.js";
|
|
105
|
+
import { EXECUTE_REFUSAL_CODES, checkExecutionEligibility, declaringTasks, finishExecution, findDeclaration, indeterminateExecution, providerRefRecordable, startExecution, hasApprovalCycle, } from "../core/execute.js";
|
|
106
|
+
import { request as requestApproval } from "../core/gate.js";
|
|
107
107
|
import { payloadHash } from "../core/payload.js";
|
|
108
|
+
import { loadPolicy } from "../core/policy-load.js";
|
|
109
|
+
import { resolve } from "../core/policy-match.js";
|
|
108
110
|
import { payloadOf, readVerifiedRecords } from "../core/state.js";
|
|
109
111
|
import { PAYLOAD_HASH_FIELD, TOKEN_HASH_FIELD, digestsEqual, tokenHash } from "../core/token.js";
|
|
110
112
|
// ---------------------------------------------------------------------------
|
|
@@ -122,7 +124,7 @@ export const CREDENTIAL_REFUSAL_CODES = [
|
|
|
122
124
|
/** The provider knows it and declined: policy, a locked vault, a human's no. */
|
|
123
125
|
"credential-refused",
|
|
124
126
|
/**
|
|
125
|
-
* The verified
|
|
127
|
+
* The verified execution window has closed: `act` has already returned, and the
|
|
126
128
|
* provider it was handed is no longer live. Distinct from the two above
|
|
127
129
|
* because nothing is wrong with the credential or the configuration — the
|
|
128
130
|
* adapter asked at the wrong time, which is a defect in the adapter and is
|
|
@@ -181,7 +183,7 @@ function scopeCredentials(inner) {
|
|
|
181
183
|
return {
|
|
182
184
|
ok: false,
|
|
183
185
|
code: "credential-window-closed",
|
|
184
|
-
message: `credential ${JSON.stringify(name)} was requested after act() returned. Credentials are reachable only inside the verified
|
|
186
|
+
message: `credential ${JSON.stringify(name)} was requested after act() returned. Credentials are reachable only inside the verified execution window: the execution has already been recorded, so a secret handed over now would be outside the authority that opened the call.`,
|
|
185
187
|
};
|
|
186
188
|
}
|
|
187
189
|
const result = inner.get(name);
|
|
@@ -334,6 +336,20 @@ export function providerRefFor(adapterName, rawDetail, redactedDetail) {
|
|
|
334
336
|
*/
|
|
335
337
|
export const ADAPTER_REFUSAL_CODES = [
|
|
336
338
|
...EXECUTE_REFUSAL_CODES,
|
|
339
|
+
/** Request intake could not find the task registration. */
|
|
340
|
+
"not-registered",
|
|
341
|
+
/** A concurrent caller opened the live-selected request first. */
|
|
342
|
+
"duplicate-request",
|
|
343
|
+
/** Live-selected intake reached the approver queue ceiling. */
|
|
344
|
+
"queue-full",
|
|
345
|
+
/** Live-selected intake reached the origin's request rate limit. */
|
|
346
|
+
"rate-limited",
|
|
347
|
+
/** A selected live action had no declaration hash to bind. */
|
|
348
|
+
"payload-hash-required",
|
|
349
|
+
/** A selected live self-delivery address could not be created. */
|
|
350
|
+
"token-delivery-unavailable",
|
|
351
|
+
/** Live intake could not retain the exact payload for human display or audit. */
|
|
352
|
+
"payload-store-failed",
|
|
337
353
|
/**
|
|
338
354
|
* The adapter does not serve the class this action was declared under.
|
|
339
355
|
* Refused before anything is appended: routing an action to the wrong
|
|
@@ -505,7 +521,7 @@ function tell(provider, grant) {
|
|
|
505
521
|
* provider handed here is never left live outside a scope, and every value it
|
|
506
522
|
* hands over joins the redaction corpus of the refusal this may return. Nothing
|
|
507
523
|
* read here is kept or returned: what comes back is whether the name resolved,
|
|
508
|
-
* and `act` asks for the values itself inside the verified
|
|
524
|
+
* and `act` asks for the values itself inside the verified execution window.
|
|
509
525
|
*
|
|
510
526
|
* Note what an unauthorized caller learns by invoking this path: whether the
|
|
511
527
|
* names THIS ADAPTER statically declared are present in a provider the caller
|
|
@@ -641,9 +657,29 @@ function executeOptionsFrom(options, presentedPayloadHash) {
|
|
|
641
657
|
...(options.schemaDir === undefined ? {} : { schemaDir: options.schemaDir }),
|
|
642
658
|
...(options.append === undefined ? {} : { append: options.append }),
|
|
643
659
|
...(options.clock === undefined ? {} : { clock: options.clock }),
|
|
660
|
+
...(options.keyStoreDir === undefined ? {} : { keyStoreDir: options.keyStoreDir }),
|
|
661
|
+
...(options.retryOnHeadMoved === undefined
|
|
662
|
+
? {}
|
|
663
|
+
: { retryOnHeadMoved: options.retryOnHeadMoved }),
|
|
644
664
|
presentedPayloadHash,
|
|
645
665
|
};
|
|
646
666
|
}
|
|
667
|
+
function liveIntakeOptionsFrom(options) {
|
|
668
|
+
return {
|
|
669
|
+
...(options.policy === undefined ? {} : { policy: options.policy }),
|
|
670
|
+
...(options.schemaDir === undefined ? {} : { schemaDir: options.schemaDir }),
|
|
671
|
+
...(options.append === undefined ? {} : { append: options.append }),
|
|
672
|
+
...(options.clock === undefined ? {} : { clock: options.clock }),
|
|
673
|
+
...(options.keyStoreDir === undefined ? {} : { keyStoreDir: options.keyStoreDir }),
|
|
674
|
+
...(options.retryOnHeadMoved === undefined
|
|
675
|
+
? {}
|
|
676
|
+
: { retryOnHeadMoved: options.retryOnHeadMoved }),
|
|
677
|
+
...(options.liveIntake?.env === undefined ? {} : { env: options.liveIntake.env }),
|
|
678
|
+
...(options.liveIntake?.drawAsk === undefined
|
|
679
|
+
? {}
|
|
680
|
+
: { drawAsk: options.liveIntake.drawAsk }),
|
|
681
|
+
};
|
|
682
|
+
}
|
|
647
683
|
function refuse(adapter, actionKey, code, message, extra = {}) {
|
|
648
684
|
return {
|
|
649
685
|
ok: false,
|
|
@@ -711,7 +747,7 @@ export async function executeThroughAdapter(adapter, request, options = {}) {
|
|
|
711
747
|
hash = payloadHash(payload);
|
|
712
748
|
}
|
|
713
749
|
catch (error) {
|
|
714
|
-
return refuse(adapter, actionKey, "payload-unhashable", `the payload for ${actionKey} has no RFC 8785 canonical serialization (${error instanceof Error ? error.message : String(error)}), so it cannot be hashed and cannot be shown to be the bytes the grant
|
|
750
|
+
return refuse(adapter, actionKey, "payload-unhashable", `the payload for ${actionKey} has no RFC 8785 canonical serialization (${error instanceof Error ? error.message : String(error)}), so it cannot be hashed and cannot be shown to be the bytes the grant or registered declaration bound. Nothing was appended.`);
|
|
715
751
|
}
|
|
716
752
|
// (b) The declared class, from the verified log.
|
|
717
753
|
const read = readVerifiedRecords(logPath, options.schemaDir === undefined ? {} : { schemaDir: options.schemaDir });
|
|
@@ -728,6 +764,61 @@ export async function executeThroughAdapter(adapter, request, options = {}) {
|
|
|
728
764
|
if (!adapter.classes.includes(declared.class)) {
|
|
729
765
|
return refuse(adapter, actionKey, "adapter-class-mismatch", `adapter ${JSON.stringify(adapter.name)} serves ${adapter.classes.length === 0 ? "no classes" : adapter.classes.map((cls) => JSON.stringify(cls)).join(", ")}, and action ${actionKey} is declared under class ${JSON.stringify(declared.class)}. The action was routed to the wrong executor; nothing was appended and no token was spent.`);
|
|
730
766
|
}
|
|
767
|
+
// Supervised-live selection belongs to gate intake. Its unselected result is
|
|
768
|
+
// intentionally absent from the log, so an adapter cannot infer that intake
|
|
769
|
+
// happened merely because no approval.requested exists. On a genuinely
|
|
770
|
+
// no-token, no-cycle call, invoke the existing request path from fields read
|
|
771
|
+
// exclusively from the verified declaration. Selected or unavailable draws
|
|
772
|
+
// create the ordinary pending cycle; an unselected draw appends no approval
|
|
773
|
+
// event and continues. A prior cycle, including a rejected or expired one,
|
|
774
|
+
// is never redrawn here.
|
|
775
|
+
const policyOptions = options.policy ?? {};
|
|
776
|
+
const load = loadPolicy({
|
|
777
|
+
...(policyOptions.file === undefined
|
|
778
|
+
? { dir: policyOptions.dir ?? process.cwd() }
|
|
779
|
+
: { file: policyOptions.file }),
|
|
780
|
+
...(options.schemaDir === undefined ? {} : { schemaDir: options.schemaDir }),
|
|
781
|
+
});
|
|
782
|
+
const initialResolution = resolve(load, declared.class, declared.reversible === null ? {} : { reversible: declared.reversible });
|
|
783
|
+
let livePolicySha256;
|
|
784
|
+
if ((options.token === undefined || options.token.length === 0) &&
|
|
785
|
+
initialResolution.supervision === "live" &&
|
|
786
|
+
!hasApprovalCycle(read.records, actionKey)) {
|
|
787
|
+
const intake = requestApproval(logPath, {
|
|
788
|
+
task: declared.task,
|
|
789
|
+
actionKey,
|
|
790
|
+
cls: declared.class,
|
|
791
|
+
est_cost_usd: declared.est_cost_usd,
|
|
792
|
+
...(declared.reversible === null ? {} : { reversible: declared.reversible }),
|
|
793
|
+
...(declared.summary === null ? {} : { summary: declared.summary }),
|
|
794
|
+
...(declared.payload_hash === null ? {} : { payload_hash: declared.payload_hash }),
|
|
795
|
+
payload: { value: payload },
|
|
796
|
+
delivery: "self",
|
|
797
|
+
}, actor, liveIntakeOptionsFrom(options));
|
|
798
|
+
if (!intake.ok) {
|
|
799
|
+
return refuse(adapter, actionKey, intake.code, intake.message);
|
|
800
|
+
}
|
|
801
|
+
if (intake.proceed && intake.live !== undefined) {
|
|
802
|
+
livePolicySha256 = intake.policySha256;
|
|
803
|
+
}
|
|
804
|
+
}
|
|
805
|
+
// A no-token path must prove that core would admit this exact execution
|
|
806
|
+
// before credentials or a provider-backed precheck are touched. This result
|
|
807
|
+
// is only a preflight: startExecution repeats every check after precheck and
|
|
808
|
+
// remains the sole writer of execution.started.
|
|
809
|
+
const eligibilityOptions = {
|
|
810
|
+
...executeOptionsFrom(options, hash),
|
|
811
|
+
...(livePolicySha256 === undefined
|
|
812
|
+
? {}
|
|
813
|
+
: { expectedPolicySha256: livePolicySha256 }),
|
|
814
|
+
};
|
|
815
|
+
const eligibility = checkExecutionEligibility(logPath, actionKey, eligibilityOptions, actor);
|
|
816
|
+
if (!eligibility.ok) {
|
|
817
|
+
return refuse(adapter, actionKey, eligibility.code, eligibility.message, {
|
|
818
|
+
execute: eligibility,
|
|
819
|
+
});
|
|
820
|
+
}
|
|
821
|
+
const effectiveToken = eligibility.mode === "token" ? eligibility.token : undefined;
|
|
731
822
|
// (c) The credentials the adapter declared it cannot act without, resolved
|
|
732
823
|
// BEFORE the token is consumed (APRV-169). See
|
|
733
824
|
// {@link resolveRequiredCredentials} for why this sits here and why the
|
|
@@ -738,7 +829,7 @@ export async function executeThroughAdapter(adapter, request, options = {}) {
|
|
|
738
829
|
// may offer a capability here on the strength of that decision. Everything
|
|
739
830
|
// that decides whether the token may actually be SPENT still happens below,
|
|
740
831
|
// in `startExecution`, and nothing here appends or consumes.
|
|
741
|
-
const presented = tokenMatchesGrant(read.records, actionKey,
|
|
832
|
+
const presented = tokenMatchesGrant(read.records, actionKey, effectiveToken)
|
|
742
833
|
? { phase: "presented", actionKey, startedSeq: null, autonomy: null }
|
|
743
834
|
: null;
|
|
744
835
|
tell(provider, presented);
|
|
@@ -771,7 +862,10 @@ export async function executeThroughAdapter(adapter, request, options = {}) {
|
|
|
771
862
|
});
|
|
772
863
|
}
|
|
773
864
|
// (d) Authorization and the start event. Refused here means act never runs.
|
|
774
|
-
const executeOptions =
|
|
865
|
+
const executeOptions = {
|
|
866
|
+
...eligibilityOptions,
|
|
867
|
+
...(effectiveToken === undefined ? {} : { token: effectiveToken }),
|
|
868
|
+
};
|
|
775
869
|
const started = startExecution(logPath, actionKey, executeOptions, actor);
|
|
776
870
|
if (!started.ok) {
|
|
777
871
|
tell(provider, null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../../../src/adapters/contract.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../../../src/adapters/contract.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,324 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The email adapter (SPEC.md §6.1, §6.2, §7, §10.4; APRV-69).
|
|
3
|
+
*
|
|
4
|
+
* SPEC.md §6.1 makes the point in its second sentence: "the canonical example is
|
|
5
|
+
* an email, deliberately. This spec governs agent actions in the world." So this
|
|
6
|
+
* is the first adapter, and the class it serves —
|
|
7
|
+
* `communicate.email.external` — is the one the canonical task envelope
|
|
8
|
+
* declares. It implements exactly one method, {@link Adapter.act}, and the
|
|
9
|
+
* contract in `adapters/contract.ts` owns everything around it: the hash
|
|
10
|
+
* recomputation, the token spend, `execution.started`, the credential window,
|
|
11
|
+
* the outcome event, and the redaction sweep. **Nothing in this file touches a
|
|
12
|
+
* token or the log**, and nothing in it can, because it is never handed either.
|
|
13
|
+
*
|
|
14
|
+
* ## The payload, and what the grant therefore approved
|
|
15
|
+
*
|
|
16
|
+
* ```ts
|
|
17
|
+
* {
|
|
18
|
+
* from: string, // one addr-spec
|
|
19
|
+
* to: string[], // at least one
|
|
20
|
+
* cc?: string[],
|
|
21
|
+
* bcc?: string[], // RCPT TO only; never a header
|
|
22
|
+
* subject: string,
|
|
23
|
+
* body: string,
|
|
24
|
+
* content_type?: "text/plain" | "text/html" // default "text/plain"
|
|
25
|
+
* }
|
|
26
|
+
* ```
|
|
27
|
+
*
|
|
28
|
+
* §6.2 says a message send's `payload_hash` covers "the full body and
|
|
29
|
+
* recipients", and this shape is that sentence made concrete. `bcc` is inside
|
|
30
|
+
* the hash even though it appears in no header: a blind recipient is still a
|
|
31
|
+
* recipient, and an approval that did not cover them would be an approval of a
|
|
32
|
+
* different act than the one performed.
|
|
33
|
+
*
|
|
34
|
+
* {@link validateEmailPayload} re-checks the shape inside `act` and refuses
|
|
35
|
+
* `email-payload-invalid`. This is defence in depth and is *not* the binding —
|
|
36
|
+
* the hash already bound the bytes before `act` was called. What it catches is a
|
|
37
|
+
* grant over bytes that are well-formed JSON and not a well-formed email, which
|
|
38
|
+
* is a human approving a mistake rather than an attacker substituting one.
|
|
39
|
+
* Unknown keys are refused too: a payload carrying `attachments` that this
|
|
40
|
+
* adapter silently dropped would send something other than what a human read.
|
|
41
|
+
*
|
|
42
|
+
* ## The two fields the grant does NOT bind
|
|
43
|
+
*
|
|
44
|
+
* A wire message needs a `Date` and a `Message-ID`, and neither can live in the
|
|
45
|
+
* payload without making the hash depend on when the send happened.
|
|
46
|
+
*
|
|
47
|
+
* - **`Date`** is stamped by the runtime from {@link EmailAdapterOptions.clock}
|
|
48
|
+
* (default: the wall clock) at the moment of the send. The grant binds the
|
|
49
|
+
* *message content*; the runtime records *when it went*. A human who approved
|
|
50
|
+
* a chaser on Tuesday and watched it execute on Wednesday approved the words,
|
|
51
|
+
* not the timestamp, and a `Date` inside the payload would additionally make
|
|
52
|
+
* every grant expire into a `payload-mismatch` the moment the clock moved.
|
|
53
|
+
* - **`Message-ID`** is derived, not random: SHA-256 over the action key and the
|
|
54
|
+
* payload hash, at the From address's domain. It is therefore reproducible
|
|
55
|
+
* from the log alone — an operator holding `action_key` and the grant's
|
|
56
|
+
* `payload_hash` can recompute the exact Message-ID the far side saw, which is
|
|
57
|
+
* what makes a delivery receipt or a bounce traceable back to an approval. A
|
|
58
|
+
* random one would have to be logged to be useful, and the log is not where an
|
|
59
|
+
* adapter writes.
|
|
60
|
+
*
|
|
61
|
+
* Both are stated in the module header rather than only in code because they are
|
|
62
|
+
* the two places this adapter puts bytes on the wire that no human approved.
|
|
63
|
+
*
|
|
64
|
+
* ## Encoding
|
|
65
|
+
*
|
|
66
|
+
* Quoted-printable, implemented here (RFC 2045 §6.7), rather than refusing
|
|
67
|
+
* non-ASCII. Refusing would mean an adapter whose canonical example — a chaser
|
|
68
|
+
* to a British letting agency about a £1,200 deposit — cannot be sent, and
|
|
69
|
+
* "your approval was fine, the runtime cannot spell your currency" is not a
|
|
70
|
+
* refusal any operator would accept. An all-ASCII body is sent `8bit`
|
|
71
|
+
* unchanged, so the common case is byte-for-byte what the human read.
|
|
72
|
+
*
|
|
73
|
+
* A non-ASCII `subject` is RFC 2047 `B` encoded-words. Addresses must be ASCII:
|
|
74
|
+
* an internationalized address needs SMTPUTF8 negotiation (RFC 6531), this
|
|
75
|
+
* client does not implement it, and encoding one anyway would hand the server an
|
|
76
|
+
* address it may or may not interpret as intended. That is
|
|
77
|
+
* `email-payload-invalid` with the rule quoted.
|
|
78
|
+
*
|
|
79
|
+
* ## Configuration comes from the vault
|
|
80
|
+
*
|
|
81
|
+
* All five settings — host, port, security, user, password — are read through
|
|
82
|
+
* {@link ActInput.credentials} inside `act`, under the names in
|
|
83
|
+
* {@link DEFAULT_CREDENTIAL_NAMES}. Host and port are not secrets, and reading
|
|
84
|
+
* them from the vault anyway buys one thing worth having: there is exactly one
|
|
85
|
+
* place an adapter reads deployment configuration from, and it is not the
|
|
86
|
+
* environment, not a config file an agent can write, and not the policy an agent
|
|
87
|
+
* can read. A future task may let policy supply host/port (they are the sort of
|
|
88
|
+
* thing an operator would like to see in `APPROVAL.md`), at which point the
|
|
89
|
+
* vault stays the source for the two that are actually secret; that is a SPEC
|
|
90
|
+
* §5.2 change and therefore its own task, not a flag here.
|
|
91
|
+
*
|
|
92
|
+
* The same five are also DECLARED, as {@link EMAIL_CREDENTIAL_SPECS}, so that
|
|
93
|
+
* `approval setup adapter email` can ask for them without knowing what SMTP is
|
|
94
|
+
* (APRV-78). The manifest is derived from {@link DEFAULT_CREDENTIAL_NAMES} and
|
|
95
|
+
* its validation borrows `act`'s own refusal sentences, so a value setup accepts
|
|
96
|
+
* is a value `act` accepts, and the words are the same on both paths.
|
|
97
|
+
*
|
|
98
|
+
* Deterministic given its clock: no randomness anywhere, no environment reads,
|
|
99
|
+
* and `act` never throws (every path returns an {@link ActOutcome}).
|
|
100
|
+
*/
|
|
101
|
+
import type { CredentialSpec } from "../core/credential-spec.js";
|
|
102
|
+
import { type Adapter, type CredentialProvider, type JsonValue } from "./contract.js";
|
|
103
|
+
import { type SmtpSecurity } from "./smtp.js";
|
|
104
|
+
/** The value whose canonical hash the grant bound to. */
|
|
105
|
+
export interface EmailPayload {
|
|
106
|
+
from: string;
|
|
107
|
+
to: string[];
|
|
108
|
+
cc?: string[];
|
|
109
|
+
bcc?: string[];
|
|
110
|
+
subject: string;
|
|
111
|
+
body: string;
|
|
112
|
+
content_type?: "text/plain" | "text/html";
|
|
113
|
+
}
|
|
114
|
+
export type EmailValidation = {
|
|
115
|
+
ok: true;
|
|
116
|
+
payload: EmailPayload;
|
|
117
|
+
} | {
|
|
118
|
+
ok: false;
|
|
119
|
+
message: string;
|
|
120
|
+
};
|
|
121
|
+
/**
|
|
122
|
+
* Structural validation. Never throws; returns the reason instead.
|
|
123
|
+
*
|
|
124
|
+
* Exported so a caller can check a payload *before* requesting approval for it,
|
|
125
|
+
* which is the only place a shape error can still be fixed cheaply.
|
|
126
|
+
*/
|
|
127
|
+
export declare function validateEmailPayload(value: JsonValue): EmailValidation;
|
|
128
|
+
/** To, then Cc, then Bcc: every address the envelope will name, in order. */
|
|
129
|
+
export declare function envelopeRecipients(payload: EmailPayload): string[];
|
|
130
|
+
/** RFC 5322 §3.3, in UTC. `Tue, 18 Aug 2026 09:14:02 +0000`. */
|
|
131
|
+
export declare function rfc5322Date(when: Date): string;
|
|
132
|
+
/**
|
|
133
|
+
* The deterministic Message-ID: SHA-256 over a domain-separated tuple of the
|
|
134
|
+
* action key and the payload hash, at the sender's own domain.
|
|
135
|
+
*
|
|
136
|
+
* Domain separation (the literal prefix) so this digest can never collide with
|
|
137
|
+
* a payload hash computed over the same strings by something else. Truncated to
|
|
138
|
+
* 40 hex characters, which keeps the header inside a sensible width and leaves
|
|
139
|
+
* 160 bits — the value needs to be unique, not unforgeable, since forging it
|
|
140
|
+
* accomplishes nothing an attacker who can already send mail could not do.
|
|
141
|
+
*/
|
|
142
|
+
export declare function deterministicMessageId(actionKey: string, hash: string, from: string): string;
|
|
143
|
+
/**
|
|
144
|
+
* Quoted-printable (RFC 2045 §6.7).
|
|
145
|
+
*
|
|
146
|
+
* Line endings are normalized to CRLF hard breaks first, and each resulting
|
|
147
|
+
* line is encoded and then soft-wrapped at 76 characters with a trailing `=`.
|
|
148
|
+
* Trailing space and tab are always encoded, because a mail server that strips
|
|
149
|
+
* trailing whitespace would otherwise silently alter bytes a human approved.
|
|
150
|
+
*/
|
|
151
|
+
export declare function quotedPrintable(text: string): string;
|
|
152
|
+
/**
|
|
153
|
+
* RFC 2047 `B` encoded-words for a non-ASCII header value, chunked so no
|
|
154
|
+
* encoded-word exceeds 75 characters and no chunk splits a code point.
|
|
155
|
+
*/
|
|
156
|
+
export declare function encodeHeaderValue(value: string): string;
|
|
157
|
+
/** The non-payload facts the runtime stamps onto the message. */
|
|
158
|
+
export interface RenderStamp {
|
|
159
|
+
/** The moment of the send. NOT part of the payload hash. See the header. */
|
|
160
|
+
date: Date;
|
|
161
|
+
/** Derived from the action key and the payload hash. NOT part of either. */
|
|
162
|
+
messageId: string;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* The complete RFC 5322 message, CRLF throughout, **not** dot-stuffed: stuffing
|
|
166
|
+
* is RFC 5321 transport framing and belongs to the SMTP layer, so what this
|
|
167
|
+
* function returns is exactly the message the recipient's server stores.
|
|
168
|
+
*
|
|
169
|
+
* Bcc appears nowhere in it. That is the whole meaning of blind: the address is
|
|
170
|
+
* in the envelope (`RCPT TO`) and in the payload a human approved, and in no
|
|
171
|
+
* byte the other recipients receive.
|
|
172
|
+
*/
|
|
173
|
+
export declare function renderEmailMessage(payload: EmailPayload, stamp: RenderStamp): string;
|
|
174
|
+
/** The class SPEC.md §6.1's canonical envelope declares. */
|
|
175
|
+
export declare const EMAIL_CLASS = "communicate.email.external";
|
|
176
|
+
/** The vault names this adapter reads, all of them inside `act`. */
|
|
177
|
+
export declare const DEFAULT_CREDENTIAL_NAMES: {
|
|
178
|
+
readonly host: "smtp.host";
|
|
179
|
+
readonly port: "smtp.port";
|
|
180
|
+
readonly user: "smtp.user";
|
|
181
|
+
readonly password: "smtp.password";
|
|
182
|
+
readonly security: "smtp.security";
|
|
183
|
+
};
|
|
184
|
+
export type EmailCredentialNames = typeof DEFAULT_CREDENTIAL_NAMES;
|
|
185
|
+
/**
|
|
186
|
+
* What this adapter reads from the vault, declared rather than discovered.
|
|
187
|
+
*
|
|
188
|
+
* DERIVED from {@link DEFAULT_CREDENTIAL_NAMES} rather than restating the five
|
|
189
|
+
* strings: a manifest that could drift from the names `act` asks for would be a
|
|
190
|
+
* setup wizard that fills a vault the adapter then cannot read, and
|
|
191
|
+
* `tests/adapter-email.test.ts` pins the two key for key.
|
|
192
|
+
*
|
|
193
|
+
* Order is the order an operator is asked, and it is not alphabetical: the
|
|
194
|
+
* password is last, so that everything a mistyped host or port can waste is
|
|
195
|
+
* answered before the one value that is unpleasant to re-enter.
|
|
196
|
+
*/
|
|
197
|
+
export declare const EMAIL_CREDENTIAL_SPECS: readonly CredentialSpec[];
|
|
198
|
+
/**
|
|
199
|
+
* The names this adapter cannot act without, for the contract's pre-token
|
|
200
|
+
* resolution (APRV-169).
|
|
201
|
+
*
|
|
202
|
+
* DERIVED from {@link EMAIL_CREDENTIAL_SPECS}, which already states which values
|
|
203
|
+
* are required, and mapped through `names` so a deployment that renamed one gets
|
|
204
|
+
* the name it actually stored. The login pair is deliberately absent: a relay
|
|
205
|
+
* that wants no login is a supported configuration, and listing `smtp.user`
|
|
206
|
+
* here would turn an optional value into a precondition and refuse a
|
|
207
|
+
* deployment that works today.
|
|
208
|
+
*/
|
|
209
|
+
export declare function requiredEmailCredentials(names?: EmailCredentialNames): readonly string[];
|
|
210
|
+
/**
|
|
211
|
+
* The cross-field rule: a username and a password are both-or-neither.
|
|
212
|
+
*
|
|
213
|
+
* Returns the refusal sentence, or `null` when the set is coherent. Exported so
|
|
214
|
+
* that `approval setup adapter email` refuses the half-configured pair at the
|
|
215
|
+
* moment the operator could still fix it, saying exactly what `act` would have
|
|
216
|
+
* said at send time — and `act` itself calls this, so there is one sentence and
|
|
217
|
+
* not two that drift.
|
|
218
|
+
*
|
|
219
|
+
* An absent value and an empty one are the same thing here: `setCredential`
|
|
220
|
+
* refuses an empty credential outright, so "" can only ever mean "not given".
|
|
221
|
+
*/
|
|
222
|
+
export declare function checkEmailCredentialSet(values: Record<string, string | undefined>, names?: EmailCredentialNames, kept?: readonly string[]): string | null;
|
|
223
|
+
/**
|
|
224
|
+
* Everything this adapter can report. Frozen union, additive only
|
|
225
|
+
* (SPEC.md §11.1(6)), and note the three families it is a union OF:
|
|
226
|
+
*
|
|
227
|
+
* - the adapter's own two (`email-payload-invalid`, `email-config-invalid`);
|
|
228
|
+
* - the credential refusals, passed through verbatim from the provider, because
|
|
229
|
+
* "the vault is locked" and "nobody stored an SMTP password" are two different
|
|
230
|
+
* repairs and collapsing them into one adapter code would hide which; and
|
|
231
|
+
* - the SMTP transport codes.
|
|
232
|
+
*
|
|
233
|
+
* A server's own refusal produces `smtp-<NNN>`, which is a family rather than a
|
|
234
|
+
* member (see `smtp.ts`); {@link isEmailFailureCode} accepts both.
|
|
235
|
+
*/
|
|
236
|
+
export declare const EMAIL_FAILURE_CODES: readonly ["email-payload-invalid", "email-config-invalid", "credential-unavailable", "credential-refused", "credential-window-closed", "smtp-connect-failed", "smtp-tls-failed", "smtp-timeout", "smtp-protocol-error"];
|
|
237
|
+
export type EmailFailureCode = (typeof EMAIL_FAILURE_CODES)[number] | `smtp-${number}`;
|
|
238
|
+
export declare function isEmailFailureCode(value: string): boolean;
|
|
239
|
+
export interface EmailAdapterOptions {
|
|
240
|
+
/**
|
|
241
|
+
* Additional classes this adapter serves, **added** to {@link EMAIL_CLASS}
|
|
242
|
+
* rather than replacing it.
|
|
243
|
+
*
|
|
244
|
+
* Additive because the class list is routing, not authorization: it decides
|
|
245
|
+
* which adapter an already-granted action goes to, and every real
|
|
246
|
+
* authorization decision was made by the policy and the human before `act`
|
|
247
|
+
* exists. An operator wiring internal mail declares
|
|
248
|
+
* `communicate.email.internal` here and keeps the external class they already
|
|
249
|
+
* had, which is what they meant; a list that replaced the default would make
|
|
250
|
+
* "add one class" silently stop serving the canonical one.
|
|
251
|
+
*/
|
|
252
|
+
classes?: readonly string[];
|
|
253
|
+
/** Where the message's `Date` comes from. Injected for tests. */
|
|
254
|
+
clock?: () => Date;
|
|
255
|
+
/** Whole-session SMTP budget. Default {@link DEFAULT_SMTP_TIMEOUT_MS}. */
|
|
256
|
+
timeoutMs?: number;
|
|
257
|
+
/** Override the vault names. Partial: unnamed entries keep their default. */
|
|
258
|
+
credentialNames?: Partial<EmailCredentialNames>;
|
|
259
|
+
/** The EHLO name. */
|
|
260
|
+
clientName?: string;
|
|
261
|
+
/**
|
|
262
|
+
* TLS certificate verification. **Defaults to `true`.** Setting it `false`
|
|
263
|
+
* accepts any certificate and is sanctioned in exactly one place: this
|
|
264
|
+
* repository's own tests, against the mock server on 127.0.0.1 holding the
|
|
265
|
+
* self-signed fixture in `tests/fixtures/smtp/`. It exists as an explicit
|
|
266
|
+
* option rather than an environment variable so that a deployment cannot
|
|
267
|
+
* acquire it by accident, and `tests/adapter-email.test.ts` pins the default.
|
|
268
|
+
*/
|
|
269
|
+
tlsRejectUnauthorized?: boolean;
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* The SMTP configuration as {@link readEmailSmtpConfig} resolved it: three
|
|
273
|
+
* required values and the optional login pair.
|
|
274
|
+
*/
|
|
275
|
+
export interface EmailSmtpConfig {
|
|
276
|
+
host: string;
|
|
277
|
+
port: number;
|
|
278
|
+
security: SmtpSecurity;
|
|
279
|
+
user?: string;
|
|
280
|
+
password?: string;
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* What one configuration read produced.
|
|
284
|
+
*
|
|
285
|
+
* `secrets` is the redaction corpus in the order the values were read, and it
|
|
286
|
+
* is returned on BOTH branches because a caller that goes on to open a session
|
|
287
|
+
* must scrub the far end's sentences with the same corpus this read built. A
|
|
288
|
+
* refusal's `message` is already scrubbed with everything read before it.
|
|
289
|
+
*/
|
|
290
|
+
export type EmailConfigOutcome = {
|
|
291
|
+
ok: true;
|
|
292
|
+
config: EmailSmtpConfig;
|
|
293
|
+
secrets: readonly string[];
|
|
294
|
+
} | {
|
|
295
|
+
ok: false;
|
|
296
|
+
code: EmailFailureCode;
|
|
297
|
+
message: string;
|
|
298
|
+
secrets: readonly string[];
|
|
299
|
+
};
|
|
300
|
+
/**
|
|
301
|
+
* Read this adapter's whole configuration from a credential provider.
|
|
302
|
+
*
|
|
303
|
+
* Extracted from `act` (APRV-99) so that there is exactly ONE piece of code in
|
|
304
|
+
* the repository that turns a {@link CredentialProvider} into SMTP settings: the
|
|
305
|
+
* names it asks for, the order it asks in, the port and security validation,
|
|
306
|
+
* and the both-or-neither pair rule. `act` calls it inside the verified-token
|
|
307
|
+
* window, and `setup adapter email` calls it to probe a configuration it only
|
|
308
|
+
* partly typed, over a provider built the same way. Neither one re-derives the
|
|
309
|
+
* rules, and a second reader would be a second opinion about what "configured"
|
|
310
|
+
* means.
|
|
311
|
+
*
|
|
312
|
+
* Values never leave the process on either path: what comes back is the
|
|
313
|
+
* configuration a session is opened with, and every string this function
|
|
314
|
+
* RETURNS as a message has been through the scrub built from what it read.
|
|
315
|
+
*/
|
|
316
|
+
export declare function readEmailSmtpConfig(credentials: CredentialProvider, names?: EmailCredentialNames): EmailConfigOutcome;
|
|
317
|
+
/**
|
|
318
|
+
* A fresh email adapter.
|
|
319
|
+
*
|
|
320
|
+
* Stateless and reusable: it holds no socket, no connection pool, and nothing
|
|
321
|
+
* from a previous send. Two concurrent executions through the same instance
|
|
322
|
+
* share nothing.
|
|
323
|
+
*/
|
|
324
|
+
export declare function emailAdapter(options?: EmailAdapterOptions): Adapter;
|