@ggui-ai/mcp-server-handlers 0.6.2 → 0.7.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.
Files changed (48) hide show
  1. package/dist/ops-apps/delete-app.d.ts +26 -9
  2. package/dist/ops-apps/delete-app.d.ts.map +1 -1
  3. package/dist/ops-apps/delete-app.js +34 -11
  4. package/dist/ops-apps/index.d.ts +1 -1
  5. package/dist/ops-apps/index.d.ts.map +1 -1
  6. package/dist/ops-apps/index.js +1 -1
  7. package/dist/ops-apps/types.d.ts +32 -1
  8. package/dist/ops-apps/types.d.ts.map +1 -1
  9. package/dist/ops-apps/types.js +16 -0
  10. package/dist/ops-blueprint/generate.d.ts.map +1 -1
  11. package/dist/ops-blueprint/generate.js +6 -2
  12. package/dist/ops-blueprint/register.d.ts.map +1 -1
  13. package/dist/ops-blueprint/register.js +7 -2
  14. package/dist/ops-connector-keys/types.d.ts +7 -0
  15. package/dist/ops-connector-keys/types.d.ts.map +1 -1
  16. package/dist/renders/blueprint-durability.d.ts +111 -0
  17. package/dist/renders/blueprint-durability.d.ts.map +1 -0
  18. package/dist/renders/blueprint-durability.js +85 -0
  19. package/dist/renders/blueprint-registry.d.ts +24 -0
  20. package/dist/renders/blueprint-registry.d.ts.map +1 -1
  21. package/dist/renders/blueprint-registry.js +9 -0
  22. package/dist/renders/code-delivery-events.d.ts +76 -0
  23. package/dist/renders/code-delivery-events.d.ts.map +1 -0
  24. package/dist/renders/code-delivery-events.js +60 -0
  25. package/dist/renders/fetch-gadget-types.d.ts +7 -3
  26. package/dist/renders/fetch-gadget-types.d.ts.map +1 -1
  27. package/dist/renders/fetch-gadget-types.js +7 -3
  28. package/dist/renders/generation-cache.d.ts +9 -0
  29. package/dist/renders/generation-cache.d.ts.map +1 -1
  30. package/dist/renders/handshake.d.ts +5 -3
  31. package/dist/renders/handshake.d.ts.map +1 -1
  32. package/dist/renders/handshake.js +9 -4
  33. package/dist/renders/index.d.ts +3 -0
  34. package/dist/renders/index.d.ts.map +1 -1
  35. package/dist/renders/index.js +13 -0
  36. package/dist/renders/render-identity.d.ts +178 -0
  37. package/dist/renders/render-identity.d.ts.map +1 -0
  38. package/dist/renders/render-identity.js +136 -0
  39. package/dist/renders/render.d.ts +39 -5
  40. package/dist/renders/render.d.ts.map +1 -1
  41. package/dist/renders/render.js +198 -83
  42. package/dist/renders/sync-context.d.ts +13 -1
  43. package/dist/renders/sync-context.d.ts.map +1 -1
  44. package/dist/renders/sync-context.js +6 -1
  45. package/dist/renders/update.d.ts +15 -1
  46. package/dist/renders/update.d.ts.map +1 -1
  47. package/dist/renders/update.js +6 -1
  48. package/package.json +7 -7
@@ -0,0 +1,136 @@
1
+ /**
2
+ * The event names as values, so every emitter — in this package or a
3
+ * storage backend elsewhere — spells them from one place. Importing
4
+ * these is what turns a future rename into a compile error instead of
5
+ * an alert filter that silently stops matching.
6
+ */
7
+ export const RENDER_IDENTITY_EVENTS = {
8
+ writeFailed: 'render_identity_write_failed',
9
+ refreshFailed: 'render_identity_refresh_failed',
10
+ refreshSkipped: 'render_identity_refresh_skipped',
11
+ rowUnreadable: 'render_identity_row_unreadable',
12
+ propsOverCap: 'render_props_over_cap',
13
+ };
14
+ const WRITE_FAILED_EVENT = RENDER_IDENTITY_EVENTS.writeFailed;
15
+ const REFRESH_FAILED_EVENT = RENDER_IDENTITY_EVENTS.refreshFailed;
16
+ const REFRESH_SKIPPED_EVENT = RENDER_IDENTITY_EVENTS.refreshSkipped;
17
+ /**
18
+ * Project a committed row + its identity slice into the durable
19
+ * record.
20
+ *
21
+ * `createdAt` mirrors the ROW's creation stamp rather than sampling
22
+ * the clock: the record describes exactly one row, and every store
23
+ * preserves `createdAt` across upserts, so a render that commits
24
+ * several times (placeholder → generated, theme overlay) and every
25
+ * later refresh all agree on one value instead of drifting forward.
26
+ */
27
+ function projectRenderIdentityRecord(session, identity) {
28
+ return {
29
+ sessionId: session.id,
30
+ appId: session.appId,
31
+ // `userId` is the record's whole user story: it is the subject a
32
+ // re-mint authorizes against, and the row carries it on every
33
+ // commit. The row's fuller `endUserIdentity` block is NOT copied
34
+ // here — it would be personal data on an indefinitely-retained
35
+ // record, answering a question `userId` already answers.
36
+ ...(session.userId !== undefined ? { userId: session.userId } : {}),
37
+ blueprintId: identity.blueprintId,
38
+ contractKey: identity.contractKey,
39
+ variantKey: identity.variantKey,
40
+ props: session.render.props,
41
+ seqAtLastCommit: session.eventSequence,
42
+ createdAt: session.createdAt,
43
+ updatedAt: Date.now(),
44
+ };
45
+ }
46
+ /**
47
+ * Write the identity record for a just-committed render. Best-effort:
48
+ * an absent store is a no-op, and a rejecting store logs
49
+ * `render_identity_write_failed` and returns normally.
50
+ *
51
+ * The caller awaits this, so it adds exactly one store round-trip to
52
+ * the render — never a retry loop, never a background task that
53
+ * outlives the response.
54
+ *
55
+ * `failureEvent` overrides the logged event name for callers whose
56
+ * failure is a distinct operational signal (a refresh on a mutation
57
+ * path is not a first write, and operators alert on them separately).
58
+ */
59
+ export async function writeRenderIdentity(store, session, identity, failureEvent = WRITE_FAILED_EVENT) {
60
+ if (!store)
61
+ return;
62
+ try {
63
+ await store.put(projectRenderIdentityRecord(session, identity));
64
+ }
65
+ catch (err) {
66
+ logRenderIdentityFailure(failureEvent, session.id, session.appId, err);
67
+ }
68
+ }
69
+ /**
70
+ * Refresh an EXISTING record after a tool re-committed the render row
71
+ * — `ggui_update` mutating props, `ggui_runtime_sync_context`
72
+ * mirroring a context snapshot.
73
+ *
74
+ * Refreshes only what the row can answer for: props, the sequence at
75
+ * this commit, and `updatedAt`. The identity slice
76
+ * (`blueprintId` / `contractKey` / `variantKey`) is carried forward
77
+ * from the existing record VERBATIM, never recomputed. That is not
78
+ * caution — it is the only correct behaviour available here:
79
+ * `contractKey` is `blueprintKey(agreed contract)`, and the agreed
80
+ * contract lived in the handshake these tools never see. A render row
81
+ * carries its projected specs, not the contract that keyed it, so any
82
+ * key recomputed here would address a different blueprint (or none).
83
+ *
84
+ * For the same reason a MISSING record is skipped rather than
85
+ * created: a record needs an identity, and inventing one would write a
86
+ * locator that points at nothing — strictly worse than no record,
87
+ * because a re-mint would trust it. The skip is announced as
88
+ * `render_identity_refresh_skipped` so an operator who wired a store
89
+ * mid-flight can see which renders predate it.
90
+ *
91
+ * Best-effort throughout, like every write in this module: the tool
92
+ * call succeeds regardless. A consequence worth knowing: because the
93
+ * write rebuilds the WHOLE record from the current row rather than
94
+ * patching fields, any refresh self-heals drift left by an earlier one
95
+ * that failed — a later context sync repairs props and sequence a
96
+ * dropped update-refresh had gone stale on.
97
+ */
98
+ export async function refreshRenderIdentity(store, session) {
99
+ if (!store)
100
+ return;
101
+ let existing;
102
+ try {
103
+ existing = await store.get(session.id);
104
+ }
105
+ catch (err) {
106
+ logRenderIdentityFailure(REFRESH_FAILED_EVENT, session.id, session.appId, err);
107
+ return;
108
+ }
109
+ if (!existing) {
110
+ logRenderIdentitySkipped(session.id, 'no-record');
111
+ return;
112
+ }
113
+ await writeRenderIdentity(store, session, {
114
+ blueprintId: existing.blueprintId,
115
+ contractKey: existing.contractKey,
116
+ variantKey: existing.variantKey,
117
+ }, REFRESH_FAILED_EVENT);
118
+ }
119
+ function logRenderIdentitySkipped(sessionId, reason) {
120
+ // debug, not warn: severity is part of an alertable event's contract,
121
+ // and this one fires on paths where nothing is actionable — a render
122
+ // that predates the store has no record to refresh and never will.
123
+ // The cloud emitter uses debug for the same event; a shared name that
124
+ // pages on one backend and not the other is a broken contract.
125
+ // eslint-disable-next-line no-console -- structured single-line event for log-pipeline pickup
126
+ console.debug(JSON.stringify({ msg: REFRESH_SKIPPED_EVENT, sessionId, reason }));
127
+ }
128
+ function logRenderIdentityFailure(event, sessionId, appId, err) {
129
+ // eslint-disable-next-line no-console -- structured single-line event for log-pipeline pickup
130
+ console.warn(JSON.stringify({
131
+ msg: event,
132
+ sessionId,
133
+ appId,
134
+ error: err instanceof Error ? err.message : String(err),
135
+ }));
136
+ }
@@ -47,7 +47,7 @@
47
47
  */
48
48
  import { z } from 'zod';
49
49
  import { type BlueprintVariance, type DataContract, type GguiSession } from '@ggui-ai/protocol';
50
- import type { AppMetadataStore, BlueprintProvider, KeyValueStore, LlmSelection, PendingEventConsumer, ProviderKeyRef, RateLimiter, GguiSessionStore, ShortCodeIndex, UiGenerator } from '@ggui-ai/mcp-server-core';
50
+ import type { AppMetadataStore, BlueprintProvider, KeyValueStore, LlmSelection, PendingEventConsumer, ProviderKeyRef, RateLimiter, RenderIdentityStore, GguiSessionStore, ShortCodeIndex, UiGenerator } from '@ggui-ai/mcp-server-core';
51
51
  import { type HandlerContext, type HandlerFailure, type SharedHandler } from '../types.js';
52
52
  import { type ProvisionalPreviewDeps } from './provisional-preview.js';
53
53
  import type { GenerationCacheDeps } from './generation-cache.js';
@@ -267,6 +267,15 @@ export interface GguiSessionPostSuccessArgs {
267
267
  export interface GguiRenderHandlerDeps extends RenderSliceMetaDeps {
268
268
  /** GguiSession-backing store. Used to mint / replace renders on render. */
269
269
  readonly renderStore: GguiSessionStore;
270
+ /**
271
+ * Render-row retention window in ms. Operators align this with
272
+ * chat-history lifetime so rehydration-by-refetch (re-reading the
273
+ * `ui://ggui/render/*` resource after the agent's original render
274
+ * call) finds the row instead of a reaped one. Default:
275
+ * DEFAULT_RENDER_TTL_MS (1h) — the pre-existing memory-hygiene
276
+ * default for in-process stores.
277
+ */
278
+ readonly renderTtlMs?: number;
270
279
  /**
271
280
  * Per-app metadata resolver — when bound, render reads
272
281
  * `app.gadgets` and runs `assertGadgetsRegistered`
@@ -361,6 +370,25 @@ export interface GguiRenderHandlerDeps extends RenderSliceMetaDeps {
361
370
  * just aren't available.
362
371
  */
363
372
  readonly shortCodeIndex?: ShortCodeIndex;
373
+ /**
374
+ * Durable render-identity side store. When present, every render
375
+ * commit also writes the record that lets a
376
+ * `ui://ggui/render/{sessionId}/{blueprintKey}` locator re-create the
377
+ * render after the render row is gone — the identity
378
+ * (`blueprintId`, `contractKey`, `variantKey`) plus the props and
379
+ * event sequence at that commit. The locator segment is named for its
380
+ * domain; the record field it comes from is `contractKey`.
381
+ *
382
+ * Writes are best-effort and never block or fail a render: the
383
+ * committed row is the source of truth, and this record is a
384
+ * durability optimization layered on it. A rejecting store logs
385
+ * `render_identity_write_failed` and the render returns normally.
386
+ *
387
+ * Absence of this dep is the "the render row itself is durable"
388
+ * signal — a deployment whose GguiSessionStore outlives the renders it
389
+ * holds already has everything a re-mint needs on the row.
390
+ */
391
+ readonly renderIdentityStore?: RenderIdentityStore;
364
392
  /**
365
393
  * Handshake record store. When bound, the handler accepts the
366
394
  * handshake-paired input shape `{handshakeId, props?}` and consumes
@@ -485,10 +513,16 @@ export interface GguiRenderHandlerDeps extends RenderSliceMetaDeps {
485
513
  *
486
514
  * Absent = the bootstrap emits no codeUrl. The iframe mounts via
487
515
  * live mode (wsUrl+token) and receives the render — including
488
- * componentCode — over the live-channel WS subscribe. Deployments
489
- * that disable both codeStore AND live-mode cannot deliver a
490
- * static-component renderable surface; pure agent-driven flows
491
- * still work via the live-channel path.
516
+ * componentCode — over the live-channel WS subscribe. A deployment
517
+ * that binds neither this store nor {@link mintWsToken} emits a
518
+ * bootstrap with no mount mode at all: the only surface left is a
519
+ * host that resolves the render's `resourceUri`, which mints its
520
+ * own delivery channel on the read path.
521
+ *
522
+ * Present-but-failing lands in the same wire shape as absent, which
523
+ * is why it does not stay quiet: a rejected write emits
524
+ * `render_code_write_failed` and the render still succeeds. See
525
+ * `code-delivery-events.ts`.
492
526
  */
493
527
  readonly codeStore?: import('@ggui-ai/mcp-server-core').CodeStore;
494
528
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/renders/render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/renders/render.ts"],"names":[],"mappings":"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"}