ugly-app 0.1.638 → 0.1.640

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.
@@ -1,6 +1,6 @@
1
1
  export { streamUglyBotTurn, type StreamUglyBotInput, type StreamUglyBotEvents, type StreamUglyBotResult, } from './UglyBotTextStream.js';
2
2
  export { streamAgentTurn, type StreamAgentTurnDeps, } from './streamAgentTurn.js';
3
- export { agentTurnHandler, DbAgentSessionStore, type AgentHandlerConfig, } from './registerAgentHandler.js';
3
+ export { agentTurnHandler, createDbAgentSessionStore, type AgentHandlerConfig, type AgentSessionDb, } from './registerAgentHandler.js';
4
4
  export { agentTurnRequestSchema, agentTurnResponseSchema, AGENT_STREAM_COLLECTION, AGENT_STREAM_KEY_FIELD, MemoryAgentSessionStore, } from '../shared/index.js';
5
5
  export type { AgentSession, AgentSessionStore, AgentStopReason, AgentTurnRequest, AgentTurnResponse, ToolUseRef, } from '../shared/index.js';
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/agent/server/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,iBAAiB,EACjB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,GACzB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,eAAe,EACf,KAAK,mBAAmB,GACzB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,KAAK,kBAAkB,GACxB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,UAAU,GACX,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/agent/server/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,iBAAiB,EACjB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,GACzB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,eAAe,EACf,KAAK,mBAAmB,GACzB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,gBAAgB,EAChB,yBAAyB,EACzB,KAAK,kBAAkB,EACvB,KAAK,cAAc,GACpB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,UAAU,GACX,MAAM,oBAAoB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  // ugly-app/agent/server — stateless-per-turn streaming proxy + session persist.
2
2
  export { streamUglyBotTurn, } from './UglyBotTextStream.js';
3
3
  export { streamAgentTurn, } from './streamAgentTurn.js';
4
- export { agentTurnHandler, DbAgentSessionStore, } from './registerAgentHandler.js';
4
+ export { agentTurnHandler, createDbAgentSessionStore, } from './registerAgentHandler.js';
5
5
  // Re-export the shared contracts so apps import server + types from one place.
6
6
  export { agentTurnRequestSchema, agentTurnResponseSchema, AGENT_STREAM_COLLECTION, AGENT_STREAM_KEY_FIELD, MemoryAgentSessionStore, } from '../shared/index.js';
7
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/agent/server/index.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAEhF,OAAO,EACL,iBAAiB,GAIlB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,eAAe,GAEhB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,gBAAgB,EAChB,mBAAmB,GAEpB,MAAM,2BAA2B,CAAC;AAEnC,+EAA+E;AAC/E,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/agent/server/index.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAEhF,OAAO,EACL,iBAAiB,GAIlB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,eAAe,GAEhB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,gBAAgB,EAChB,yBAAyB,GAG1B,MAAM,2BAA2B,CAAC;AAEnC,+EAA+E;AAC/E,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,oBAAoB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type AgentSession, type AgentSessionStore } from '../shared/SessionStore.js';
1
+ import { type AgentSessionStore } from '../shared/SessionStore.js';
2
2
  import type { AgentTurnRequest, AgentTurnResponse, TextGenTool } from '../shared/AgentStream.js';
3
3
  export interface AgentHandlerConfig {
4
4
  /** Authoritative tool specs — override whatever the client declares. */
@@ -12,14 +12,22 @@ export interface AgentHandlerConfig {
12
12
  }
13
13
  export declare function agentTurnHandler(cfg?: AgentHandlerConfig): (userId: string, input: AgentTurnRequest) => Promise<AgentTurnResponse>;
14
14
  /**
15
- * A SessionStore backed by the app's own DB (`agentSession` collection). One
16
- * cheap upsert per committed turn the canonical server-side session. The
17
- * session payload is nested under `data` so the row satisfies `DBObject`.
15
+ * The minimal, runtime-agnostic db surface the session store needs satisfied
16
+ * by an app's own TypedDB (Node or Workers). Kept loose so apps whose facade
17
+ * keys collections by object rather than string still fit.
18
18
  */
19
- export declare class DbAgentSessionStore implements AgentSessionStore {
20
- private readonly collection;
21
- constructor(collection?: string);
22
- load(sessionId: string): Promise<AgentSession | null>;
23
- save(session: AgentSession): Promise<void>;
19
+ export interface AgentSessionDb {
20
+ getDoc(collection: string, id: string): Promise<unknown>;
21
+ setDoc(collection: string, doc: {
22
+ _id: string;
23
+ } & Record<string, unknown>): Promise<unknown>;
24
24
  }
25
+ /**
26
+ * A SessionStore backed by the app's OWN injected db (`agentSession`
27
+ * collection) — the canonical server-side session (durability + multi-device +
28
+ * observability), one cheap upsert per committed turn. The session payload is
29
+ * nested under `data`. Uses the injected db (NOT the framework `DB.js`) so it
30
+ * stays Workers-safe.
31
+ */
32
+ export declare function createDbAgentSessionStore(db: AgentSessionDb, collection?: string): AgentSessionStore;
25
33
  //# sourceMappingURL=registerAgentHandler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"registerAgentHandler.d.ts","sourceRoot":"","sources":["../../../src/agent/server/registerAgentHandler.ts"],"names":[],"mappings":"AAmBA,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAEV,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACZ,MAAM,0BAA0B,CAAC;AAGlC,MAAM,WAAW,kBAAkB;IACjC,wEAAwE;IACxE,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;IACtB,uEAAuE;IACvE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iFAAiF;IACjF,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAoBD,wBAAgB,gBAAgB,CAC9B,GAAG,GAAE,kBAAuB,GAC3B,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,KAAK,OAAO,CAAC,iBAAiB,CAAC,CA4DzE;AAQD;;;;GAIG;AACH,qBAAa,mBAAoB,YAAW,iBAAiB;IAC/C,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,GAAE,MAAuB;IAE1D,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAKrD,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;CAOjD"}
1
+ {"version":3,"file":"registerAgentHandler.d.ts","sourceRoot":"","sources":["../../../src/agent/server/registerAgentHandler.ts"],"names":[],"mappings":"AAoBA,OAAO,EAIL,KAAK,iBAAiB,EACvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAEV,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACZ,MAAM,0BAA0B,CAAC;AAGlC,MAAM,WAAW,kBAAkB;IACjC,wEAAwE;IACxE,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;IACtB,uEAAuE;IACvE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iFAAiF;IACjF,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAoBD,wBAAgB,gBAAgB,CAC9B,GAAG,GAAE,kBAAuB,GAC3B,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,KAAK,OAAO,CAAC,iBAAiB,CAAC,CA4DzE;AAID;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACzD,MAAM,CACJ,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7C,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,EAAE,EAAE,cAAc,EAClB,UAAU,SAAiB,GAC1B,iBAAiB,CAmBnB"}
@@ -13,8 +13,9 @@
13
13
  // The app awaits the handler (worker stays alive, ALS user-token intact for
14
14
  // billing); the client calls with `{ timeoutMs: null }`. Live text frames ride
15
15
  // the hub during the await.
16
- import { getDoc, setDoc } from '../../server/DB.js';
17
- import { dbDefaults } from '../../shared/DB.js';
16
+ // NOTE: deliberately NO import of the framework `server/DB.js` here — that pulls
17
+ // in Node `pg` (Pg.js) and would break `build:workers` for any app importing
18
+ // agentTurnHandler. The DB-backed store takes an INJECTED, runtime-agnostic db.
18
19
  import { accrueTelemetry, emptyTelemetryTotals, } from '../shared/SessionStore.js';
19
20
  import { streamAgentTurn } from './streamAgentTurn.js';
20
21
  /** Build the authoritative response from a session's last assistant turn. */
@@ -84,25 +85,28 @@ export function agentTurnHandler(cfg = {}) {
84
85
  };
85
86
  }
86
87
  /**
87
- * A SessionStore backed by the app's own DB (`agentSession` collection). One
88
- * cheap upsert per committed turn — the canonical server-side session. The
89
- * session payload is nested under `data` so the row satisfies `DBObject`.
88
+ * A SessionStore backed by the app's OWN injected db (`agentSession`
89
+ * collection) — the canonical server-side session (durability + multi-device +
90
+ * observability), one cheap upsert per committed turn. The session payload is
91
+ * nested under `data`. Uses the injected db (NOT the framework `DB.js`) so it
92
+ * stays Workers-safe.
90
93
  */
91
- export class DbAgentSessionStore {
92
- collection;
93
- constructor(collection = 'agentSession') {
94
- this.collection = collection;
95
- }
96
- async load(sessionId) {
97
- const doc = await getDoc(this.collection, sessionId);
98
- return doc?.data ?? null;
99
- }
100
- async save(session) {
101
- await setDoc(this.collection, {
102
- _id: session.sessionId,
103
- ...dbDefaults(),
104
- data: session,
105
- });
106
- }
94
+ export function createDbAgentSessionStore(db, collection = 'agentSession') {
95
+ return {
96
+ async load(sessionId) {
97
+ const doc = (await db.getDoc(collection, sessionId));
98
+ return doc?.data ?? null;
99
+ },
100
+ async save(session) {
101
+ const now = new Date();
102
+ await db.setDoc(collection, {
103
+ _id: session.sessionId,
104
+ version: 1,
105
+ created: now,
106
+ updated: now,
107
+ data: session,
108
+ });
109
+ },
110
+ };
107
111
  }
108
112
  //# sourceMappingURL=registerAgentHandler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"registerAgentHandler.js","sourceRoot":"","sources":["../../../src/agent/server/registerAgentHandler.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,EAAE;AACF,8EAA8E;AAC9E,6DAA6D;AAC7D,yEAAyE;AACzE,6EAA6E;AAC7E,iDAAiD;AACjD,uEAAuE;AACvE,sDAAsD;AACtD,wEAAwE;AACxE,yDAAyD;AACzD,EAAE;AACF,4EAA4E;AAC5E,+EAA+E;AAC/E,4BAA4B;AAG5B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAiB,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EACL,eAAe,EACf,oBAAoB,GAGrB,MAAM,2BAA2B,CAAC;AAOnC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAavD,6EAA6E;AAC7E,SAAS,iBAAiB,CACxB,OAAqB,EACrB,KAAa;IAEb,MAAM,IAAI,GAAG,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;SAC/B,OAAO,EAAE;SACT,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;IACvC,MAAM,OAAO,GAAkB,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;QACzD,CAAC,CAAE,IAAK,CAAC,OAAyB;QAClC,CAAC,CAAC,IAAI;YACJ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAChD,CAAC,CAAC,EAAE,CAAC;IACT,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;IAC3D,MAAM,UAAU,GAAoB,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;IACtE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,MAA0B,EAAE;IAE5B,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;QAC7B,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,CAAC;QAE/B,yEAAyE;QACzE,sEAAsE;QACtE,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACnD,IAAI,QAAQ,IAAI,QAAQ,CAAC,SAAS,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC;gBACnD,OAAO,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,KAAK;YACnB,CAAC,CAAC,KAAK,EACH,UAAmB,EACnB,GAAsB,EACP,EAAE;gBACjB,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAC/C,MAAM,MAAM,GAAG,eAAe,CAC5B,IAAI,EAAE,eAAe,IAAI,oBAAoB,EAAE,EAC/C;oBACE,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC/D,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,KAAK,SAAS;wBAC1C,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE;wBAC5C,CAAC,CAAC,EAAE,CAAC;oBACP,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,KAAK,SAAS;wBAC3C,CAAC,CAAC,EAAE,YAAY,EAAE,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE;wBAC9C,CAAC,CAAC,EAAE,CAAC;oBACP,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,KAAK,SAAS;wBACtC,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE;wBACpC,CAAC,CAAC,EAAE,CAAC;iBACR,CACF,CAAC;gBACF,MAAM,YAAY,GAAY;oBAC5B,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,GAAG,CAAC,OAAO;iBACrB,CAAC;gBACF,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,IAAI,GAAG,CAAC,YAAY,CAAC;gBACzD,MAAM,KAAK,CAAC,IAAI,CAAC;oBACf,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACjD,QAAQ,EAAE,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,YAAY,CAAC;oBAC3C,MAAM,EAAE,GAAG,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;oBAC1D,SAAS,EAAE,KAAK,CAAC,KAAK;oBACtB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;oBACrB,eAAe,EAAE,MAAM;iBACxB,CAAC,CAAC;YACL,CAAC;YACH,CAAC,CAAC,SAAS,CAAC;QAEd,OAAO,eAAe,CAAC,KAAK,EAAE;YAC5B,MAAM;YACN,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/D,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1C,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/B,GAAG,CAAC,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxE,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAQD;;;;GAIG;AACH,MAAM,OAAO,mBAAmB;IACD;IAA7B,YAA6B,aAAqB,cAAc;QAAnC,eAAU,GAAV,UAAU,CAAyB;IAAG,CAAC;IAEpE,KAAK,CAAC,IAAI,CAAC,SAAiB;QAC1B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAkB,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QACtE,OAAO,GAAG,EAAE,IAAI,IAAI,IAAI,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAqB;QAC9B,MAAM,MAAM,CAAkB,IAAI,CAAC,UAAU,EAAE;YAC7C,GAAG,EAAE,OAAO,CAAC,SAAS;YACtB,GAAG,UAAU,EAAE;YACf,IAAI,EAAE,OAAO;SACd,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"registerAgentHandler.js","sourceRoot":"","sources":["../../../src/agent/server/registerAgentHandler.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const CLI_VERSION = "0.1.638";
1
+ export declare const CLI_VERSION = "0.1.640";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1,3 +1,3 @@
1
1
  // Auto-generated by prebuild — do not edit manually
2
- export const CLI_VERSION = "0.1.638";
2
+ export const CLI_VERSION = "0.1.640";
3
3
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wrapWithAssets.d.ts","sourceRoot":"","sources":["../../../../src/server/adapter/workers/wrapWithAssets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAMH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGxD,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB;AAyMD,wBAAgB,cAAc,CAC5B,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,YAAY,GACnB,UAAU,CAiJZ"}
1
+ {"version":3,"file":"wrapWithAssets.d.ts","sourceRoot":"","sources":["../../../../src/server/adapter/workers/wrapWithAssets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAMH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGxD,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB;AA8MD,wBAAgB,cAAc,CAC5B,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,YAAY,GACnB,UAAU,CA+JZ"}
@@ -30,6 +30,11 @@
30
30
  import { getUglyBotUrl } from '../../../shared/uglyBotUrl.js';
31
31
  import { getAppContext } from './createWorkersApp.js';
32
32
  const ASSET_CACHE_CONTROL = 'public, max-age=31536000, immutable';
33
+ // Stable-named public files (icon.png, favicon.ico, manifest.json, …) keep the
34
+ // SAME url across deploys but their CONTENT changes, so they must NOT be
35
+ // immutable — caches would serve the old file forever. Revalidate against the
36
+ // ETag each load (cheap 304 when unchanged, fresh bytes when the asset changed).
37
+ const MUTABLE_ASSET_CACHE_CONTROL = 'public, max-age=0, must-revalidate';
33
38
  const HTML_CACHE_CONTROL = 'no-cache, no-store, must-revalidate';
34
39
  // Web-push service worker, served same-origin at `/ugly-push-sw.js` with
35
40
  // `Service-Worker-Allowed: /`. FCM web push (Firebase) — the single push
@@ -260,6 +265,11 @@ export function wrapWithAssets(base, config) {
260
265
  // build, so we resolve either to `builds/{buildId}/<rest>`.
261
266
  const isMethodIdempotent = method === 'GET' || method === 'HEAD';
262
267
  let assetRest = null;
268
+ // Immutable only for content-addressed assets — buildId-prefixed urls and
269
+ // Vite's hash-named `/assets/*`. Stable-named root files (icon.png,
270
+ // favicon.ico, manifest.json) keep the same url but change content per
271
+ // deploy, so they revalidate instead.
272
+ let immutable = true;
263
273
  if (isMethodIdempotent && path.startsWith(assetPrefix)) {
264
274
  assetRest = path.slice(assetPrefix.length);
265
275
  }
@@ -268,6 +278,7 @@ export function wrapWithAssets(base, config) {
268
278
  path === '/favicon.ico' ||
269
279
  /^\/[^/]+\.(?:png|svg|jpg|jpeg|gif|webp|woff2?|ttf|ico|map)$/i.test(path))) {
270
280
  assetRest = path.slice(1); // drop leading "/"
281
+ immutable = assetRest.startsWith('assets/');
271
282
  }
272
283
  if (assetRest !== null) {
273
284
  const key = `builds/${buildId}/${assetRest}`;
@@ -275,13 +286,21 @@ export function wrapWithAssets(base, config) {
275
286
  if (!obj) {
276
287
  return new Response('asset not found', { status: 404 });
277
288
  }
289
+ const cacheControl = immutable ? ASSET_CACHE_CONTROL : MUTABLE_ASSET_CACHE_CONTROL;
290
+ // Cheap revalidation: 304 when the client already has this exact etag.
291
+ if (request.headers.get('if-none-match') === obj.etag) {
292
+ return new Response(null, {
293
+ status: 304,
294
+ headers: { etag: obj.etag, 'cache-control': cacheControl },
295
+ });
296
+ }
278
297
  const contentType = obj.httpMetadata?.contentType ?? guessContentType(assetRest);
279
298
  return new Response(obj.body, {
280
299
  status: 200,
281
300
  headers: {
282
301
  'content-type': contentType,
283
- 'cache-control': ASSET_CACHE_CONTROL,
284
- // ETag helps CDN re-validation behave on conditional GETs.
302
+ 'cache-control': cacheControl,
303
+ // ETag drives cheap conditional GETs (304) on revalidation.
285
304
  etag: obj.etag,
286
305
  },
287
306
  });
@@ -1 +1 @@
1
- {"version":3,"file":"wrapWithAssets.js","sourceRoot":"","sources":["../../../../src/server/adapter/workers/wrapWithAssets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wrapWithAssets.js","sourceRoot":"","sources":["../../../../src/server/adapter/workers/wrapWithAssets.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ugly-app",
3
- "version": "0.1.638",
3
+ "version": "0.1.640",
4
4
  "type": "module",
5
5
  "comment:files": "Allowlist what ships to npm. dist = runtime; src = sourcemap targets (dist/*.js.map reference ../../src/); templates = CLI scaffold. Everything else at repo root (.pgdata local Postgres, coverage, assets/icons sources, test/, test-results/) is excluded by omission. The !negations strip the scaffold's installed deps + cruft (templates/node_modules is 200MB+ and must never ship). package.json/README/LICENSE ship automatically.",
6
6
  "files": [
@@ -14,8 +14,9 @@ export {
14
14
 
15
15
  export {
16
16
  agentTurnHandler,
17
- DbAgentSessionStore,
17
+ createDbAgentSessionStore,
18
18
  type AgentHandlerConfig,
19
+ type AgentSessionDb,
19
20
  } from './registerAgentHandler.js';
20
21
 
21
22
  // Re-export the shared contracts so apps import server + types from one place.
@@ -15,8 +15,9 @@
15
15
  // the hub during the await.
16
16
 
17
17
  import type { ContentPart, Message } from '../../shared/TextGen.js';
18
- import { getDoc, setDoc } from '../../server/DB.js';
19
- import { dbDefaults, type DBObject } from '../../shared/DB.js';
18
+ // NOTE: deliberately NO import of the framework `server/DB.js` here — that pulls
19
+ // in Node `pg` (Pg.js) and would break `build:workers` for any app importing
20
+ // agentTurnHandler. The DB-backed store takes an INJECTED, runtime-agnostic db.
20
21
  import {
21
22
  accrueTelemetry,
22
23
  emptyTelemetryTotals,
@@ -126,28 +127,46 @@ export function agentTurnHandler(
126
127
 
127
128
  // ─── DB-backed session store (hosted apps) ───────────────────────────────────
128
129
 
129
- interface AgentSessionDoc extends DBObject {
130
- data: AgentSession;
130
+ /**
131
+ * The minimal, runtime-agnostic db surface the session store needs — satisfied
132
+ * by an app's own TypedDB (Node or Workers). Kept loose so apps whose facade
133
+ * keys collections by object rather than string still fit.
134
+ */
135
+ export interface AgentSessionDb {
136
+ getDoc(collection: string, id: string): Promise<unknown>;
137
+ setDoc(
138
+ collection: string,
139
+ doc: { _id: string } & Record<string, unknown>,
140
+ ): Promise<unknown>;
131
141
  }
132
142
 
133
143
  /**
134
- * A SessionStore backed by the app's own DB (`agentSession` collection). One
135
- * cheap upsert per committed turn — the canonical server-side session. The
136
- * session payload is nested under `data` so the row satisfies `DBObject`.
144
+ * A SessionStore backed by the app's OWN injected db (`agentSession`
145
+ * collection) — the canonical server-side session (durability + multi-device +
146
+ * observability), one cheap upsert per committed turn. The session payload is
147
+ * nested under `data`. Uses the injected db (NOT the framework `DB.js`) so it
148
+ * stays Workers-safe.
137
149
  */
138
- export class DbAgentSessionStore implements AgentSessionStore {
139
- constructor(private readonly collection: string = 'agentSession') {}
140
-
141
- async load(sessionId: string): Promise<AgentSession | null> {
142
- const doc = await getDoc<AgentSessionDoc>(this.collection, sessionId);
143
- return doc?.data ?? null;
144
- }
145
-
146
- async save(session: AgentSession): Promise<void> {
147
- await setDoc<AgentSessionDoc>(this.collection, {
148
- _id: session.sessionId,
149
- ...dbDefaults(),
150
- data: session,
151
- });
152
- }
150
+ export function createDbAgentSessionStore(
151
+ db: AgentSessionDb,
152
+ collection = 'agentSession',
153
+ ): AgentSessionStore {
154
+ return {
155
+ async load(sessionId) {
156
+ const doc = (await db.getDoc(collection, sessionId)) as
157
+ | { data?: AgentSession }
158
+ | null;
159
+ return doc?.data ?? null;
160
+ },
161
+ async save(session) {
162
+ const now = new Date();
163
+ await db.setDoc(collection, {
164
+ _id: session.sessionId,
165
+ version: 1,
166
+ created: now,
167
+ updated: now,
168
+ data: session,
169
+ });
170
+ },
171
+ };
153
172
  }
@@ -1,2 +1,2 @@
1
1
  // Auto-generated by prebuild — do not edit manually
2
- export const CLI_VERSION = "0.1.638";
2
+ export const CLI_VERSION = "0.1.640";
@@ -50,6 +50,11 @@ export interface AssetsConfig {
50
50
  }
51
51
 
52
52
  const ASSET_CACHE_CONTROL = 'public, max-age=31536000, immutable';
53
+ // Stable-named public files (icon.png, favicon.ico, manifest.json, …) keep the
54
+ // SAME url across deploys but their CONTENT changes, so they must NOT be
55
+ // immutable — caches would serve the old file forever. Revalidate against the
56
+ // ETag each load (cheap 304 when unchanged, fresh bytes when the asset changed).
57
+ const MUTABLE_ASSET_CACHE_CONTROL = 'public, max-age=0, must-revalidate';
53
58
  const HTML_CACHE_CONTROL = 'no-cache, no-store, must-revalidate';
54
59
 
55
60
  // Web-push service worker, served same-origin at `/ugly-push-sw.js` with
@@ -294,6 +299,11 @@ export function wrapWithAssets(
294
299
  // build, so we resolve either to `builds/{buildId}/<rest>`.
295
300
  const isMethodIdempotent = method === 'GET' || method === 'HEAD';
296
301
  let assetRest: string | null = null;
302
+ // Immutable only for content-addressed assets — buildId-prefixed urls and
303
+ // Vite's hash-named `/assets/*`. Stable-named root files (icon.png,
304
+ // favicon.ico, manifest.json) keep the same url but change content per
305
+ // deploy, so they revalidate instead.
306
+ let immutable = true;
297
307
  if (isMethodIdempotent && path.startsWith(assetPrefix)) {
298
308
  assetRest = path.slice(assetPrefix.length);
299
309
  } else if (
@@ -303,6 +313,7 @@ export function wrapWithAssets(
303
313
  /^\/[^/]+\.(?:png|svg|jpg|jpeg|gif|webp|woff2?|ttf|ico|map)$/i.test(path))
304
314
  ) {
305
315
  assetRest = path.slice(1); // drop leading "/"
316
+ immutable = assetRest.startsWith('assets/');
306
317
  }
307
318
  if (assetRest !== null) {
308
319
  const key = `builds/${buildId}/${assetRest}`;
@@ -310,14 +321,22 @@ export function wrapWithAssets(
310
321
  if (!obj) {
311
322
  return new Response('asset not found', { status: 404 });
312
323
  }
324
+ const cacheControl = immutable ? ASSET_CACHE_CONTROL : MUTABLE_ASSET_CACHE_CONTROL;
325
+ // Cheap revalidation: 304 when the client already has this exact etag.
326
+ if (request.headers.get('if-none-match') === obj.etag) {
327
+ return new Response(null, {
328
+ status: 304,
329
+ headers: { etag: obj.etag, 'cache-control': cacheControl },
330
+ });
331
+ }
313
332
  const contentType =
314
333
  obj.httpMetadata?.contentType ?? guessContentType(assetRest);
315
334
  return new Response(obj.body as unknown as ReadableStream, {
316
335
  status: 200,
317
336
  headers: {
318
337
  'content-type': contentType,
319
- 'cache-control': ASSET_CACHE_CONTROL,
320
- // ETag helps CDN re-validation behave on conditional GETs.
338
+ 'cache-control': cacheControl,
339
+ // ETag drives cheap conditional GETs (304) on revalidation.
321
340
  etag: obj.etag,
322
341
  },
323
342
  });