@ikenga/contract 0.9.1 → 0.11.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/dist/browser.d.ts +30 -0
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +23 -0
- package/dist/browser.js.map +1 -1
- package/dist/canvas/Canvas.d.ts.map +1 -1
- package/dist/canvas/Canvas.js +14 -2
- package/dist/canvas/Canvas.js.map +1 -1
- package/dist/canvas/types.d.ts +4 -0
- package/dist/canvas/types.d.ts.map +1 -1
- package/dist/canvas/use-pan-zoom.d.ts +2 -0
- package/dist/canvas/use-pan-zoom.d.ts.map +1 -1
- package/dist/canvas/use-pan-zoom.js +42 -3
- package/dist/canvas/use-pan-zoom.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/manifest.d.ts +477 -97
- package/dist/manifest.d.ts.map +1 -1
- package/dist/manifest.js +73 -1
- package/dist/manifest.js.map +1 -1
- package/dist/pa-actions.d.ts +181 -0
- package/dist/pa-actions.d.ts.map +1 -0
- package/dist/pa-actions.js +92 -0
- package/dist/pa-actions.js.map +1 -0
- package/dist/registry.d.ts +582 -242
- package/dist/registry.d.ts.map +1 -1
- package/package.json +5 -1
- package/src/browser.ts +28 -0
- package/src/canvas/Canvas.tsx +25 -1
- package/src/canvas/types.ts +4 -0
- package/src/canvas/use-pan-zoom.ts +43 -2
- package/src/index.ts +1 -0
- package/src/manifest.test.ts +95 -0
- package/src/manifest.ts +82 -1
- package/src/pa-actions.test.ts +92 -0
- package/src/pa-actions.ts +252 -0
package/dist/manifest.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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"}
|
package/dist/manifest.js
CHANGED
|
@@ -9,9 +9,13 @@
|
|
|
9
9
|
// On disk: `<pkg-root>/manifest.json` (JSON, not TOML).
|
|
10
10
|
import { z } from 'zod';
|
|
11
11
|
import { EngineProvidesSchema } from './engine/index.js';
|
|
12
|
+
import { BrowserEngineSchema } from './browser.js';
|
|
12
13
|
// v2 (WP-05): added capabilities.sqlite + permissions["sqlite.tables"];
|
|
13
14
|
// permissions["supabase.tables"] kept as a compat alias for api=1 manifests.
|
|
14
|
-
|
|
15
|
+
// v3 (ADR-017): added capabilities.http / .secrets / .invoke (trusted-cap tier)
|
|
16
|
+
// + top-level optional `signature`. All additive; api=1/2 manifests parse
|
|
17
|
+
// unchanged. Elevated caps are inert unless the pkg is trusted.
|
|
18
|
+
export const IKENGA_API_VERSION = 3;
|
|
15
19
|
export const IKENGA_API_MIN_SUPPORTED = 1;
|
|
16
20
|
// ---------- Sub-schemas ----------
|
|
17
21
|
export const AuthorSchema = z.object({
|
|
@@ -148,6 +152,11 @@ export const WebviewCapabilitySchema = z.object({
|
|
|
148
152
|
child_webviews: z.boolean().default(false),
|
|
149
153
|
/** Named cookie/data partitions; empty = the implicit "default" partition. */
|
|
150
154
|
partitions: z.array(z.string()).default([]),
|
|
155
|
+
/** Browser engines this pkg may open panes with. `"webkit"` is the in-shell
|
|
156
|
+
* child-webview; `"chrome"` is Managed mode (installed Chrome over CDP, its
|
|
157
|
+
* own OS window). Defaults to `["webkit"]` so existing manifests are
|
|
158
|
+
* unchanged. Mirrors `engines` in `WebviewCapability` (manifest.rs). */
|
|
159
|
+
engines: z.array(BrowserEngineSchema).default(['webkit']),
|
|
151
160
|
});
|
|
152
161
|
/** Agent-ops host-bridge capability (api ≥ 2). Opt-in to the privileged
|
|
153
162
|
* `host.agentOps.*` verbs (run-now / enable-disable / list-jobs) the shell
|
|
@@ -157,6 +166,57 @@ export const WebviewCapabilitySchema = z.object({
|
|
|
157
166
|
* the gate (mirrors the `capabilities.sqlite` opt-in). Mirrors
|
|
158
167
|
* `AgentOpsCapability` in `shell/src-tauri/src/pkg/manifest.rs`. */
|
|
159
168
|
export const AgentOpsCapabilitySchema = z.object({});
|
|
169
|
+
/** host.fetch capability (ADR-017, TRUSTED-only). Host-mediated HTTP proxy;
|
|
170
|
+
* the shell makes the request and attaches auth from Stronghold — the key
|
|
171
|
+
* never enters the iframe. URL allowlist = `permissions.net`. Mirrors
|
|
172
|
+
* `HttpCapability` in `shell/src-tauri/src/pkg/manifest.rs`. */
|
|
173
|
+
export const HttpCapabilitySchema = z
|
|
174
|
+
.object({
|
|
175
|
+
/** Name of a `capabilities.secrets` declaration whose resolved value the
|
|
176
|
+
* shell attaches as the auth header. Omit = unauthenticated proxy. */
|
|
177
|
+
auth_secret: z.string().optional(),
|
|
178
|
+
/** Header name for the auth secret. Default "Authorization". */
|
|
179
|
+
auth_header: z.string().default('Authorization'),
|
|
180
|
+
})
|
|
181
|
+
.strict();
|
|
182
|
+
/** One named-secret declaration. `vault_key` is resolved host-side and never
|
|
183
|
+
* reaches the iframe; the iframe sees only `hostContext.secrets[name]`.
|
|
184
|
+
* Mirrors `NamedSecret` in `shell/src-tauri/src/pkg/manifest.rs`. */
|
|
185
|
+
export const NamedSecretSchema = z
|
|
186
|
+
.object({
|
|
187
|
+
name: z.string(),
|
|
188
|
+
/** Vault key (must be within permissions["vault.keys"]). Host-only. */
|
|
189
|
+
vault_key: z.string(),
|
|
190
|
+
/** When true, mount fails if the key is missing (Supabase `required`). */
|
|
191
|
+
required: z.boolean().default(false),
|
|
192
|
+
/** Optional value-format hint: "jwt" | "bearer" | "raw". String, not enum. */
|
|
193
|
+
format: z.string().optional(),
|
|
194
|
+
})
|
|
195
|
+
.strict();
|
|
196
|
+
/** Named-secret injection capability (ADR-017, TRUSTED-only). Generalizes the
|
|
197
|
+
* Supabase hostContext handshake. Mirrors `SecretsCapability` in
|
|
198
|
+
* `shell/src-tauri/src/pkg/manifest.rs`. */
|
|
199
|
+
export const SecretsCapabilitySchema = z
|
|
200
|
+
.object({
|
|
201
|
+
declarations: z.array(NamedSecretSchema).default([]),
|
|
202
|
+
})
|
|
203
|
+
.strict();
|
|
204
|
+
/** Scoped Tauri invoke passthrough (ADR-017, TRUSTED-only). Presence gates
|
|
205
|
+
* `host.invoke`; `commands` is the named-command allowlist matched (glob) by
|
|
206
|
+
* `permissions_check::check_shell_execute` against the `host.invoke` command.
|
|
207
|
+
*
|
|
208
|
+
* D-06: the allowlist is `invoke`'s OWN field, NOT `permissions["shell.execute"]`.
|
|
209
|
+
* Reusing `shell.execute` would trip `requires_trust` → the pkg only ever reaches
|
|
210
|
+
* user-`Granted`, never `AutoTrusted`, so `is_trusted_for_elevated()` is false and
|
|
211
|
+
* `host.invoke` would always deny. Keeping the allowlist here lets a signed/builtin
|
|
212
|
+
* pkg declare invokable commands while leaving `shell.execute` empty → AutoTrusted →
|
|
213
|
+
* elevated. POLICY: named commands only, never `*` (not a general shell).
|
|
214
|
+
* Mirrors `InvokeCapability` in `shell/src-tauri/src/pkg/manifest.rs`. */
|
|
215
|
+
export const InvokeCapabilitySchema = z
|
|
216
|
+
.object({
|
|
217
|
+
commands: z.array(z.string()).default([]),
|
|
218
|
+
})
|
|
219
|
+
.strict();
|
|
160
220
|
export const WindowBlockSchema = z.object({
|
|
161
221
|
label: z.string(),
|
|
162
222
|
url: z.string(),
|
|
@@ -245,6 +305,12 @@ export const ManifestSchema = z.object({
|
|
|
245
305
|
sqlite: SqliteCapabilitySchema.optional(),
|
|
246
306
|
webview: WebviewCapabilitySchema.optional(),
|
|
247
307
|
agentOps: AgentOpsCapabilitySchema.optional(),
|
|
308
|
+
/** host.fetch proxy (ADR-017). Inert unless the pkg is trusted. */
|
|
309
|
+
http: HttpCapabilitySchema.optional(),
|
|
310
|
+
/** Named-secret injection (ADR-017). Inert unless trusted. */
|
|
311
|
+
secrets: SecretsCapabilitySchema.optional(),
|
|
312
|
+
/** host.invoke passthrough (ADR-017). Inert unless trusted. */
|
|
313
|
+
invoke: InvokeCapabilitySchema.optional(),
|
|
248
314
|
}).optional(),
|
|
249
315
|
/**
|
|
250
316
|
* Engine-adapter manifest block. Present iff this pkg is an engine-*
|
|
@@ -269,6 +335,12 @@ export const ManifestSchema = z.object({
|
|
|
269
335
|
* (`pkg/manifest.rs`) — keep in lockstep (`deny_unknown_fields`).
|
|
270
336
|
*/
|
|
271
337
|
requires: z.array(RequiresEntrySchema).default([]),
|
|
338
|
+
/** Optional ed25519 signature over the normalized manifest JSON (sort keys,
|
|
339
|
+
* strip `signature` before signing). Format `"ed25519:<base64>"`. Present
|
|
340
|
+
* on notarized registry pkgs; verified at install against the publisher key
|
|
341
|
+
* the signed registry index named. Absent → pkg isn't trusted (no elevated
|
|
342
|
+
* caps). Mirrors `signature: Option<String>` on the Rust `Manifest`. */
|
|
343
|
+
signature: z.string().optional(),
|
|
272
344
|
});
|
|
273
345
|
/** Alias retained for symmetry with the Rust side / external consumers. */
|
|
274
346
|
export const PkgManifestSchema = ManifestSchema;
|
package/dist/manifest.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,0DAA0D;AAC1D,EAAE;AACF,0EAA0E;AAC1E,0EAA0E;AAC1E,wEAAwE;AACxE,4DAA4D;AAC5D,EAAE;AACF,wDAAwD;AAExD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,wEAAwE;AACxE,6EAA6E;AAC7E,gFAAgF;AAChF,0EAA0E;AAC1E,gEAAgE;AAChE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAU,CAAC;AAC7C,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAU,CAAC;AAEnD,oCAAoC;AAEpC,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC3B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACrC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACrC,0CAA0C;IAC1C,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,QAAQ,EAAE;IACxD;;0CAEsC;IACtC,oBAAoB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACrD;;8BAE0B;IAC1B,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;CACxC,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,mEAAmE;IACnE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,iEAAiE;IACjE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,+BAA+B;IAC/B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;IACjC;4EACwE;IACxE,oBAAoB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACrD;6DACyD;IACzD,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;CACxC,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAChD,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1C,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC3C,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACpC;6DACyD;IACzD,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAChD;;uDAEmD;IACnD,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAClD,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAC9C,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAEf,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;CAClB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,yDAAyD;IACzD,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACrC,oEAAoE;IACpE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;CACnB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;CACpB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;CAClB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACxC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1C,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC/D,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC5D,0DAA0D;IAC1D,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC7C,8CAA8C;IAC9C,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;CACtD,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAEf,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IACvD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACjD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC/B,oCAAoC;IACpC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,8CAA8C;IAC9C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;CACpB,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC5C,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACxC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,0DAA0D;IAC1D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACnD,CAAC,CAAC;AAEH;;2EAE2E;AAC3E,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C;qDACiD;IACjD,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC;CACvC,CAAC,CAAC;AAGH;6CAC6C;AAC7C,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C;mFAC+E;IAC/E,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CACrC,CAAC,CAAC;AAGH;6CAC6C;AAC7C,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C;oEACgE;IAChE,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAC1C,8EAA8E;IAC9E,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC3C;;;6EAGyE;IACzE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC;CAC1D,CAAC,CAAC;AAGH;;;;;;qEAMqE;AACrE,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAGrD;;;iEAGiE;AACjE,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC;KAClC,MAAM,CAAC;IACN;2EACuE;IACvE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,gEAAgE;IAChE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC;CACjD,CAAC;KACD,MAAM,EAAE,CAAC;AAGZ;;sEAEsE;AACtE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,uEAAuE;IACvE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,0EAA0E;IAC1E,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACpC,8EAA8E;IAC9E,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC;KACD,MAAM,EAAE,CAAC;AAGZ;;6CAE6C;AAC7C,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC;KACrC,MAAM,CAAC;IACN,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACrD,CAAC;KACD,MAAM,EAAE,CAAC;AAGZ;;;;;;;;;;2EAU2E;AAC3E,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC;KACpC,MAAM,CAAC;IACN,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAC1C,CAAC;KACD,MAAM,EAAE,CAAC;AAGZ,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;IAClD,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACnC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC5B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAC9C,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC/B,CAAC,CAAC;AAGH;;;gCAGgC;AAChC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;AAG9E;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC;KACjC,MAAM,CAAC;IACN;mDAC+C;IAC/C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,wEAAwE;IACxE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,6BAA6B;IAC7B,MAAM,EAAE,mBAAmB,CAAC,QAAQ,EAAE;IACtC;oEACgE;IAChE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC3B,CAAC;KACD,MAAM,EAAE,CAAC;AAGZ,iCAAiC;AAEjC,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,6CAA6C;IAC7C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,4BAA4B,EAAE,qBAAqB,CAAC;IACzE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,gEAAgE;IAChE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;IAErC,wEAAwE;IACxE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,MAAM,EAAE,YAAY,CAAC,QAAQ,EAAE;IAC/B,kDAAkD;IAClD,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAExC,iEAAiE;IACjE,qEAAqE;IACrE,kEAAkE;IAClE,oEAAoE;IACpE,wEAAwE;IACxE,4EAA4E;IAC5E,4EAA4E;IAC5E,6DAA6D;IAC7D,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACzC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAChD,WAAW,EAAE,iBAAiB;IAC9B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,QAAQ,EAAE,mBAAmB,CAAC,QAAQ,EAAE;IACxC,EAAE,EAAE,aAAa;IACjB,IAAI,EAAE,eAAe,CAAC,QAAQ,EAAE;IAChC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1C,MAAM,EAAE,iBAAiB,CAAC,QAAQ,EAAE;IACpC,OAAO,EAAE,kBAAkB,CAAC,QAAQ,EAAE;IAEtC;;wEAEoE;IACpE,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC;QACrB,QAAQ,EAAE,wBAAwB,CAAC,QAAQ,EAAE;QAC7C,MAAM,EAAE,sBAAsB,CAAC,QAAQ,EAAE;QACzC,OAAO,EAAE,uBAAuB,CAAC,QAAQ,EAAE;QAC3C,QAAQ,EAAE,wBAAwB,CAAC,QAAQ,EAAE;QAC7C,mEAAmE;QACnE,IAAI,EAAE,oBAAoB,CAAC,QAAQ,EAAE;QACrC,8DAA8D;QAC9D,OAAO,EAAE,uBAAuB,CAAC,QAAQ,EAAE;QAC3C,+DAA+D;QAC/D,MAAM,EAAE,sBAAsB,CAAC,QAAQ,EAAE;KAC1C,CAAC,CAAC,QAAQ,EAAE;IAEb;;;;;OAKG;IACH,MAAM,EAAE,oBAAoB,CAAC,QAAQ,EAAE;IAEvC;;;;;OAKG;IACH,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAElD;;;;;;;OAOG;IACH,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAElD;;;;6EAIyE;IACzE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC;AAGH,2EAA2E;AAC3E,MAAM,CAAC,MAAM,iBAAiB,GAAG,cAAc,CAAC;AAGhD,gCAAgC;AAEhC,qFAAqF;AACrF,MAAM,UAAU,OAAO,CAAC,EAAU;IAChC,OAAO,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACjC,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,qBAAqB,CAAC,EAAU;IAC9C,OAAO,MAAM,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACnC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAClC,OAAO,CAAC,IAAI,wBAAwB,IAAI,CAAC,IAAI,kBAAkB,CAAC;AAClE,CAAC"}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Approve-gate draft types — the run-then-pause (`ux_mode: approve`) payload.
|
|
3
|
+
*
|
|
4
|
+
* An approve-aware action does its work, then — instead of performing the
|
|
5
|
+
* external side effect — hands the shell a batch of `DraftItem`s plus an
|
|
6
|
+
* `ApproveGateMeta` via the (forthcoming) `host.paActionsPause` verb. The shell
|
|
7
|
+
* persists them to `pa_action_drafts` (ikenga.db), emits `pa-action-paused`, and
|
|
8
|
+
* mounts the approve-gate panel
|
|
9
|
+
* (`shell/src/shell/atelier/surfaces/approve-gate-panel.tsx`) at
|
|
10
|
+
* `/outbox/approvals`. The panel renders the rich `PausedDraft` view-model;
|
|
11
|
+
* `fromDraftItem` derives it from the lean producer `DraftItem` so producers
|
|
12
|
+
* stay simple (they never hand-build display state).
|
|
13
|
+
*
|
|
14
|
+
* Scope: `plans/atelier/10-approve-gate-seam.md` (WP-1); behaviour:
|
|
15
|
+
* `07-fe-button-renderer.md` §3.5. Plain-TS by convention (mirrors
|
|
16
|
+
* `host-verbs.ts`) — runtime validation, when needed, lives at the host boundary.
|
|
17
|
+
*/
|
|
18
|
+
/** Outbound channel an approve gate commits to. Locked to provider identity. */
|
|
19
|
+
export type DraftChannel = 'smtp' | 'resend' | 'listmonk' | 'buffer';
|
|
20
|
+
/** Human channel label (display). */
|
|
21
|
+
export declare const CHANNEL_LABEL: Record<DraftChannel, string>;
|
|
22
|
+
/** A draft's position inside an outreach sequence/drip, if any. */
|
|
23
|
+
export interface DraftSequence {
|
|
24
|
+
name: string;
|
|
25
|
+
step: number;
|
|
26
|
+
total: number;
|
|
27
|
+
/** Audience size for this step (e.g. a 388-recipient newsletter section). */
|
|
28
|
+
recipients: number;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* What an approve-aware action emits per draft — the lean, authoritative
|
|
32
|
+
* producer shape. The shell derives the panel's `PausedDraft` from this via
|
|
33
|
+
* `fromDraftItem` (computes preview, time bucketing, consequence), so an action
|
|
34
|
+
* never hand-builds display state.
|
|
35
|
+
*/
|
|
36
|
+
export interface DraftItem {
|
|
37
|
+
id: string;
|
|
38
|
+
/** Recipient display (a person, or a broadcast target like "L5 Winback · 388 recipients"). */
|
|
39
|
+
recipient: string;
|
|
40
|
+
recipientEmail: string | null;
|
|
41
|
+
tenantId?: string | null;
|
|
42
|
+
subject: string;
|
|
43
|
+
body: string;
|
|
44
|
+
channel: DraftChannel;
|
|
45
|
+
/** Sending address, e.g. "chinedum@royalti.io" or "ned@getroyalti.com". */
|
|
46
|
+
senderAddress: string;
|
|
47
|
+
/** Sending route display, e.g. "SMTP · Fastmail". */
|
|
48
|
+
fromProvider: string;
|
|
49
|
+
/** Cold outreach (separate sender domain / reputation). */
|
|
50
|
+
cold?: boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Audience size for the consequence line; defaults to 1.
|
|
53
|
+
* Kept for display (e.g. "388 recipients"); use `recipientsList` for the actual
|
|
54
|
+
* per-recipient send list on direct-email channels.
|
|
55
|
+
*/
|
|
56
|
+
recipients?: number;
|
|
57
|
+
/**
|
|
58
|
+
* Actual recipient list for direct-email channels (smtp, resend).
|
|
59
|
+
* Adapters iterate this for per-recipient sends + partial-success tracking (DEC-9).
|
|
60
|
+
* Broadcast channels (listmonk, buffer) address a list/channel audience and
|
|
61
|
+
* ignore this field.
|
|
62
|
+
*/
|
|
63
|
+
recipientsList?: {
|
|
64
|
+
name?: string;
|
|
65
|
+
email: string;
|
|
66
|
+
}[];
|
|
67
|
+
/**
|
|
68
|
+
* Body content type — adapters set the MIME part accordingly.
|
|
69
|
+
* Defaults to `'text'` when absent.
|
|
70
|
+
*/
|
|
71
|
+
bodyFormat?: 'html' | 'text';
|
|
72
|
+
/** Reply-To header for direct-email channels (smtp, resend). */
|
|
73
|
+
replyTo?: string;
|
|
74
|
+
/** Machine schedule time (ISO) for overdue/today bucketing; null = unscheduled. */
|
|
75
|
+
scheduledIso: string | null;
|
|
76
|
+
/** Row time display, e.g. "scheduled 17:00" / "today" / "2d late". */
|
|
77
|
+
scheduledLabel: string;
|
|
78
|
+
/** Detail-chip schedule display, e.g. "Scheduled · today 17:00". Falls back to scheduledLabel. */
|
|
79
|
+
scheduledChip?: string;
|
|
80
|
+
sequence?: DraftSequence | null;
|
|
81
|
+
deal?: string | null;
|
|
82
|
+
threadCount?: string;
|
|
83
|
+
/** Explicit section bucket; otherwise derived from `scheduledIso`. */
|
|
84
|
+
section?: string;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Partial-success result returned by a `ChannelAdapter.send()` call (DEC-9).
|
|
88
|
+
* `ok` is true when at least one recipient was accepted; `failed` lists
|
|
89
|
+
* per-recipient errors so callers can surface them without dropping success.
|
|
90
|
+
* Shared here so the contract module is the single SoT; the daemon's
|
|
91
|
+
* `lib/channels/types.ts` imports it directly from `@ikenga/contract`.
|
|
92
|
+
*/
|
|
93
|
+
export interface SendResult {
|
|
94
|
+
/** False only when ALL recipients failed (or a batch-level error occurred). */
|
|
95
|
+
ok: boolean;
|
|
96
|
+
/** Provider message/campaign/post id — write around the network call where supported (G-05). */
|
|
97
|
+
externalId?: string;
|
|
98
|
+
/** Addresses the provider accepted (partial success — DEC-9). */
|
|
99
|
+
sent?: string[];
|
|
100
|
+
/** Per-recipient failures for partial-success scenarios. */
|
|
101
|
+
failed?: {
|
|
102
|
+
email: string;
|
|
103
|
+
error: string;
|
|
104
|
+
}[];
|
|
105
|
+
/** Batch-level error message (to error_text column) when ok is false. */
|
|
106
|
+
error?: string;
|
|
107
|
+
/** True for transient errors (5xx/429/network) — drives in-worker retry vs permanent fail. */
|
|
108
|
+
retryable?: boolean;
|
|
109
|
+
}
|
|
110
|
+
/** Batch-level metadata for one approve-mode run (the gate header + undo window). */
|
|
111
|
+
export interface ApproveGateMeta {
|
|
112
|
+
/** `<pkgId>/<verb>` that produced the batch. */
|
|
113
|
+
actionId: string;
|
|
114
|
+
/** Human action name for the gate header. */
|
|
115
|
+
actionName: string;
|
|
116
|
+
/** Drafting agent label, e.g. "PA" / "CMO" / "CBO". */
|
|
117
|
+
agent: string;
|
|
118
|
+
/** Engine/model that drafted, e.g. "Opus 4.7". */
|
|
119
|
+
model: string;
|
|
120
|
+
/** Undo window before commit, ms. Defaults to 10_000. */
|
|
121
|
+
undoMs?: number;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* The rich view-model the approve-gate panel renders. Kept byte-identical to the
|
|
125
|
+
* panel's prior local definition so the panel just imports it. Derived from a
|
|
126
|
+
* `DraftItem` + `ApproveGateMeta` via `fromDraftItem`; the panel flips
|
|
127
|
+
* `everEdited`/`status` locally as the operator edits.
|
|
128
|
+
*/
|
|
129
|
+
export interface PausedDraft {
|
|
130
|
+
id: string;
|
|
131
|
+
recipient: string;
|
|
132
|
+
recipientEmail: string | null;
|
|
133
|
+
tenantId: string | null;
|
|
134
|
+
subject: string;
|
|
135
|
+
body: string;
|
|
136
|
+
bodyPreview: string;
|
|
137
|
+
channel: DraftChannel;
|
|
138
|
+
agent: string;
|
|
139
|
+
senderAddress: string;
|
|
140
|
+
cold: boolean;
|
|
141
|
+
/**
|
|
142
|
+
* Panel display status. `'failed'` means the send worker exhausted retries
|
|
143
|
+
* and the draft needs operator attention (see `errorMessage` / `attempts`).
|
|
144
|
+
*/
|
|
145
|
+
status: 'awaiting' | 'edited' | 'overdue' | 'failed';
|
|
146
|
+
scheduledAt: string;
|
|
147
|
+
scheduledLabel: string;
|
|
148
|
+
timeVariant: 'is-today' | 'is-overdue' | null;
|
|
149
|
+
overdue: boolean;
|
|
150
|
+
everEdited: boolean;
|
|
151
|
+
section: string;
|
|
152
|
+
sequence: DraftSequence | null;
|
|
153
|
+
fromProvider: string;
|
|
154
|
+
model: string;
|
|
155
|
+
threadCount: string;
|
|
156
|
+
deal: string | null;
|
|
157
|
+
consequence: {
|
|
158
|
+
target: string;
|
|
159
|
+
recipients: number;
|
|
160
|
+
channel: string;
|
|
161
|
+
time: string;
|
|
162
|
+
undoMs: number;
|
|
163
|
+
};
|
|
164
|
+
/** Last error surfaced by the send worker (from pa_action_drafts.error_text). */
|
|
165
|
+
errorMessage?: string;
|
|
166
|
+
/** Number of send attempts so far (from pa_action_drafts.attempts). */
|
|
167
|
+
attempts?: number;
|
|
168
|
+
}
|
|
169
|
+
/** Collapse whitespace + truncate `body` for the row preview line. */
|
|
170
|
+
export declare function draftPreview(body: string, max?: number): string;
|
|
171
|
+
/**
|
|
172
|
+
* Derive the panel's `PausedDraft` from a producer `DraftItem` + the batch
|
|
173
|
+
* `ApproveGateMeta`. `now` is injectable for deterministic tests; it only affects
|
|
174
|
+
* time bucketing (overdue / today / section). Pure + side-effect-free.
|
|
175
|
+
*
|
|
176
|
+
* `errorMessage` and `attempts` are not derivable from a `DraftItem` (they live
|
|
177
|
+
* on the DB row after worker runs); callers that reconstruct a `PausedDraft` from
|
|
178
|
+
* a stored row should set them on the returned object directly.
|
|
179
|
+
*/
|
|
180
|
+
export declare function fromDraftItem(item: DraftItem, meta: ApproveGateMeta, now?: number): PausedDraft;
|
|
181
|
+
//# sourceMappingURL=pa-actions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pa-actions.d.ts","sourceRoot":"","sources":["../src/pa-actions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Approve-gate draft types — the run-then-pause (`ux_mode: approve`) payload.
|
|
3
|
+
*
|
|
4
|
+
* An approve-aware action does its work, then — instead of performing the
|
|
5
|
+
* external side effect — hands the shell a batch of `DraftItem`s plus an
|
|
6
|
+
* `ApproveGateMeta` via the (forthcoming) `host.paActionsPause` verb. The shell
|
|
7
|
+
* persists them to `pa_action_drafts` (ikenga.db), emits `pa-action-paused`, and
|
|
8
|
+
* mounts the approve-gate panel
|
|
9
|
+
* (`shell/src/shell/atelier/surfaces/approve-gate-panel.tsx`) at
|
|
10
|
+
* `/outbox/approvals`. The panel renders the rich `PausedDraft` view-model;
|
|
11
|
+
* `fromDraftItem` derives it from the lean producer `DraftItem` so producers
|
|
12
|
+
* stay simple (they never hand-build display state).
|
|
13
|
+
*
|
|
14
|
+
* Scope: `plans/atelier/10-approve-gate-seam.md` (WP-1); behaviour:
|
|
15
|
+
* `07-fe-button-renderer.md` §3.5. Plain-TS by convention (mirrors
|
|
16
|
+
* `host-verbs.ts`) — runtime validation, when needed, lives at the host boundary.
|
|
17
|
+
*/
|
|
18
|
+
/** Human channel label (display). */
|
|
19
|
+
export const CHANNEL_LABEL = {
|
|
20
|
+
smtp: 'SMTP',
|
|
21
|
+
resend: 'Resend',
|
|
22
|
+
listmonk: 'Listmonk',
|
|
23
|
+
buffer: 'Buffer',
|
|
24
|
+
};
|
|
25
|
+
const PREVIEW_MAX = 160;
|
|
26
|
+
const DEFAULT_UNDO_MS = 10_000;
|
|
27
|
+
/** Collapse whitespace + truncate `body` for the row preview line. */
|
|
28
|
+
export function draftPreview(body, max = PREVIEW_MAX) {
|
|
29
|
+
const flat = body.replace(/\s+/g, ' ').trim();
|
|
30
|
+
return flat.length > max ? `${flat.slice(0, max - 1).trimEnd()}…` : flat;
|
|
31
|
+
}
|
|
32
|
+
function sameLocalDay(a, b) {
|
|
33
|
+
const da = new Date(a);
|
|
34
|
+
const db = new Date(b);
|
|
35
|
+
return (da.getFullYear() === db.getFullYear() &&
|
|
36
|
+
da.getMonth() === db.getMonth() &&
|
|
37
|
+
da.getDate() === db.getDate());
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Derive the panel's `PausedDraft` from a producer `DraftItem` + the batch
|
|
41
|
+
* `ApproveGateMeta`. `now` is injectable for deterministic tests; it only affects
|
|
42
|
+
* time bucketing (overdue / today / section). Pure + side-effect-free.
|
|
43
|
+
*
|
|
44
|
+
* `errorMessage` and `attempts` are not derivable from a `DraftItem` (they live
|
|
45
|
+
* on the DB row after worker runs); callers that reconstruct a `PausedDraft` from
|
|
46
|
+
* a stored row should set them on the returned object directly.
|
|
47
|
+
*/
|
|
48
|
+
export function fromDraftItem(item, meta, now = Date.now()) {
|
|
49
|
+
const scheduledMs = item.scheduledIso ? Date.parse(item.scheduledIso) : null;
|
|
50
|
+
const hasTime = scheduledMs !== null && !Number.isNaN(scheduledMs);
|
|
51
|
+
const overdue = hasTime && scheduledMs < now;
|
|
52
|
+
const today = hasTime && !overdue && sameLocalDay(scheduledMs, now);
|
|
53
|
+
const timeVariant = overdue
|
|
54
|
+
? 'is-overdue'
|
|
55
|
+
: today
|
|
56
|
+
? 'is-today'
|
|
57
|
+
: null;
|
|
58
|
+
const section = item.section ?? (overdue ? 'Overdue' : today ? 'Today' : 'This week');
|
|
59
|
+
return {
|
|
60
|
+
id: item.id,
|
|
61
|
+
recipient: item.recipient,
|
|
62
|
+
recipientEmail: item.recipientEmail,
|
|
63
|
+
tenantId: item.tenantId ?? null,
|
|
64
|
+
subject: item.subject,
|
|
65
|
+
body: item.body,
|
|
66
|
+
bodyPreview: draftPreview(item.body),
|
|
67
|
+
channel: item.channel,
|
|
68
|
+
agent: meta.agent,
|
|
69
|
+
senderAddress: item.senderAddress,
|
|
70
|
+
cold: item.cold ?? false,
|
|
71
|
+
status: overdue ? 'overdue' : 'awaiting',
|
|
72
|
+
scheduledAt: item.scheduledLabel,
|
|
73
|
+
scheduledLabel: item.scheduledChip ?? item.scheduledLabel,
|
|
74
|
+
timeVariant,
|
|
75
|
+
overdue,
|
|
76
|
+
everEdited: false,
|
|
77
|
+
section,
|
|
78
|
+
sequence: item.sequence ?? null,
|
|
79
|
+
fromProvider: item.fromProvider,
|
|
80
|
+
model: meta.model,
|
|
81
|
+
threadCount: item.threadCount ?? '',
|
|
82
|
+
deal: item.deal ?? null,
|
|
83
|
+
consequence: {
|
|
84
|
+
target: item.recipient,
|
|
85
|
+
recipients: item.recipients ?? 1,
|
|
86
|
+
channel: CHANNEL_LABEL[item.channel],
|
|
87
|
+
time: item.scheduledLabel,
|
|
88
|
+
undoMs: meta.undoMs ?? DEFAULT_UNDO_MS,
|
|
89
|
+
},
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=pa-actions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pa-actions.js","sourceRoot":"","sources":["../src/pa-actions.ts"],"names":[],"mappings":"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"}
|