ugly-app 0.1.862 → 0.1.863

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 +1 @@
1
- {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/cli/dev.ts"],"names":[],"mappings":"AAyCA,wBAAsB,MAAM,CAAC,IAAI,GAAE;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAqC,GAAG,OAAO,CAAC,IAAI,CAAC,CAkMzH"}
1
+ {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/cli/dev.ts"],"names":[],"mappings":"AA0CA,wBAAsB,MAAM,CAAC,IAAI,GAAE;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAqC,GAAG,OAAO,CAAC,IAAI,CAAC,CAyMzH"}
package/dist/cli/dev.js CHANGED
@@ -35,6 +35,7 @@ import { runMigrations } from './migrate.js';
35
35
  import { getLocalPort } from '../shared/Defaults.js';
36
36
  import { runExportCollections } from './exportCollections.js';
37
37
  import { ensureLocalInfra } from '../native/server/binaries/index.js';
38
+ import { readUglyAppConfig } from './uglyappConfig.js';
38
39
  import { lintSummaryAsync } from './lint.js';
39
40
  export async function runDev(opts = { watch: false, verbose: false }) {
40
41
  // ── Set universal dev env vars ─────────────────────────────────────────────
@@ -76,13 +77,25 @@ export async function runDev(opts = { watch: false, verbose: false }) {
76
77
  // Start a bundled Postgres (and MinIO S3/R2) when DATABASE_URL / R2_BUCKET are
77
78
  // unset, and inject their connection details into env for the spawned server.
78
79
  // Reuses binaries already installed by ugly-studio; installs them otherwise.
79
- await ensureLocalInfra(process.cwd());
80
- // ── 3. Run any pending migrations ─────────────────────────────────────────
81
- try {
82
- await runMigrations();
83
- }
84
- catch (migErr) {
85
- console.warn(`[ugly-app] Migration failed (continuing): ${migErr.message}`);
80
+ // A fully-D1 app (`.uglyapp` `neon: false`) needs no Postgres at all — skip it
81
+ // (and the Postgres migration run below) so the dev stack matches the app's backend.
82
+ const needsPostgres = (() => {
83
+ try {
84
+ return readUglyAppConfig(process.cwd())?.neon !== false;
85
+ }
86
+ catch {
87
+ return true;
88
+ }
89
+ })();
90
+ await ensureLocalInfra(process.cwd(), { needsPostgres });
91
+ // ── 3. Run any pending migrations (Postgres only) ─────────────────────────
92
+ if (needsPostgres) {
93
+ try {
94
+ await runMigrations();
95
+ }
96
+ catch (migErr) {
97
+ console.warn(`[ugly-app] Migration failed (continuing): ${migErr.message}`);
98
+ }
86
99
  }
87
100
  // ── 4. Spawn dev processes ────────────────────────────────────────────────
88
101
  const verbose = opts.verbose;
@@ -1 +1 @@
1
- {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/cli/dev.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/cli/dev.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const CLI_VERSION = "0.1.862";
1
+ export declare const CLI_VERSION = "0.1.863";
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.862";
2
+ export const CLI_VERSION = "0.1.863";
3
3
  //# sourceMappingURL=version.js.map
@@ -1,6 +1,10 @@
1
1
  export interface LocalInfraOptions {
2
2
  /** Also provision local S3/R2 storage. Default true. */
3
3
  storage?: boolean;
4
+ /** Start bundled Postgres. Default true. Pass false for a fully-D1 app (`.uglyapp`
5
+ * `neon: false`) with no Neon collections — starting Postgres (and setting DATABASE_URL)
6
+ * would make App.ts run the Postgres pool + schema check for nothing. */
7
+ needsPostgres?: boolean;
4
8
  }
5
9
  export declare function ensureLocalInfra(projectDir: string, opts?: LocalInfraOptions): Promise<void>;
6
10
  //# sourceMappingURL=localInfra.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"localInfra.d.ts","sourceRoot":"","sources":["../../../../src/native/server/binaries/localInfra.ts"],"names":[],"mappings":"AAsCA,MAAM,WAAW,iBAAiB;IAChC,wDAAwD;IACxD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE,iBAAsB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAuCf"}
1
+ {"version":3,"file":"localInfra.d.ts","sourceRoot":"","sources":["../../../../src/native/server/binaries/localInfra.ts"],"names":[],"mappings":"AAsCA,MAAM,WAAW,iBAAiB;IAChC,wDAAwD;IACxD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;8EAE0E;IAC1E,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE,iBAAsB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAyCf"}
@@ -38,7 +38,10 @@ function registerCleanup() {
38
38
  export async function ensureLocalInfra(projectDir, opts = {}) {
39
39
  const log = (m) => console.log(`[ugly-app] ${m}`);
40
40
  const hasDb = !!(process.env['DATABASE_URL'] ?? process.env['POSTGRES_URL']);
41
- if (!hasDb && process.env['UGLY_APP_NO_LOCAL_DB'] !== '1') {
41
+ if (opts.needsPostgres === false) {
42
+ log('Skipping local Postgres (neon: false — app is fully D1).');
43
+ }
44
+ else if (!hasDb && process.env['UGLY_APP_NO_LOCAL_DB'] !== '1') {
42
45
  try {
43
46
  log('Starting local Postgres (bundled binary)…');
44
47
  const pg = await startPostgres(projectDir);
@@ -1 +1 @@
1
- {"version":3,"file":"localInfra.js","sourceRoot":"","sources":["../../../../src/native/server/binaries/localInfra.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"localInfra.js","sourceRoot":"","sources":["../../../../src/native/server/binaries/localInfra.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"real-native.d.ts","sourceRoot":"","sources":["../../src/playwright/real-native.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;gFAC4E;IAC5E,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,iBAAsB,GAC3B,OAAO,CAAC,IAAI,CAAC,CA8If;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAQpE"}
1
+ {"version":3,"file":"real-native.d.ts","sourceRoot":"","sources":["../../src/playwright/real-native.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;gFAC4E;IAC5E,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,iBAAsB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAmJf;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAQpE"}
@@ -134,9 +134,14 @@ export async function installRealNative(page, root, opts = {}) {
134
134
  case 'process.spawn': {
135
135
  const id = `p${seq++}`;
136
136
  const args = Array.isArray(p.args) ? p.args.map(s) : [];
137
- const env = (p.env && typeof p.env === 'object' ? p.env : {});
137
+ // `cwd` + `env` are nested under `opts` (SpawnOpts) in the process.spawn payload
138
+ // `{ cmd, args, opts }`, matching the real node.ts handler. Reading them flat
139
+ // (p.env / p.cwd) silently dropped env for EVERY spawn — invisible until a spawned
140
+ // script actually depended on it (e.g. the DB panel's runDbScript needs UGLY_DB_*).
141
+ const opts = (p.opts && typeof p.opts === 'object' ? p.opts : {});
142
+ const env = (opts.env && typeof opts.env === 'object' ? opts.env : {});
138
143
  void w
139
- .__nproc(s(p.cmd), args, p.cwd ? s(p.cwd) : undefined, env)
144
+ .__nproc(s(p.cmd), args, opts.cwd ? s(opts.cwd) : undefined, env)
140
145
  .then((r) => setTimeout(() => {
141
146
  if (r.stdout)
142
147
  emit('process.stdout:' + id, { chunk: r.stdout });
@@ -1 +1 @@
1
- {"version":3,"file":"real-native.js","sourceRoot":"","sources":["../../src/playwright/real-native.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"real-native.js","sourceRoot":"","sources":["../../src/playwright/real-native.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaCheck.d.ts","sourceRoot":"","sources":["../../src/server/SchemaCheck.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,qBAAqB,EAAY,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAmB,KAAK,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACvF,OAAO,EAAmC,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE7F,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,IAAI,GAAG,gBAAgB,GAAG,cAAc,GAAG,oBAAoB,CAAC;IACxE,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,iBAAiB,EAAE,gBAAgB,CAAC;CACrC;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,IAAI,GAAG,UAAU,GAAG,OAAO,CAAC;IACpC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;CACpD;AAED,wBAAsB,0BAA0B,IAAI,OAAO,CAAC,IAAI,CAAC,CAQhE;AA8BD,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAYf;AAED,wBAAsB,YAAY,CAChC,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,iBAAiB,CAAC,CAkD5B;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAwBzE;AAED;;;;GAIG;AACH,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,iBAAiB,EACzB,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,IAAI,CAAC,CA0Df"}
1
+ {"version":3,"file":"SchemaCheck.d.ts","sourceRoot":"","sources":["../../src/server/SchemaCheck.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,qBAAqB,EAAY,MAAM,iBAAiB,CAAC;AAEvE,OAAO,EAAmB,KAAK,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACvF,OAAO,EAAmC,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE7F,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,IAAI,GAAG,gBAAgB,GAAG,cAAc,GAAG,oBAAoB,CAAC;IACxE,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,iBAAiB,EAAE,gBAAgB,CAAC;CACrC;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,IAAI,GAAG,UAAU,GAAG,OAAO,CAAC;IACpC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;CACpD;AAED,wBAAsB,0BAA0B,IAAI,OAAO,CAAC,IAAI,CAAC,CAQhE;AA8BD,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAiBf;AAED,wBAAsB,YAAY,CAChC,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,iBAAiB,CAAC,CAsD5B;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAwBzE;AAED;;;;GAIG;AACH,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,iBAAiB,EACzB,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,IAAI,CAAC,CA6Df"}
@@ -3,6 +3,7 @@ import path from 'path';
3
3
  import { pgQuery } from './Pg.js';
4
4
  import { ensureTable, tableExists } from './PostgresSchema.js';
5
5
  const Postgres = { query: pgQuery };
6
+ import { backendKind } from '../shared/DB.js';
6
7
  import { serializeSchema } from '../shared/SchemaSerializer.js';
7
8
  import { diffSchemas, hasBreakingChanges } from '../shared/SchemaDiff.js';
8
9
  export async function ensureSchemaSnapshotsTable() {
@@ -38,6 +39,12 @@ export async function updateAllSnapshots(defs) {
38
39
  // Getter-backed collections have no local table — skip schema snapshots.
39
40
  if (def.meta?.getter)
40
41
  continue;
42
+ // D1 collections live in SQLite/D1, not Postgres — their schema is managed by the D1
43
+ // path. Snapshotting them into the Postgres `_schema_snapshots` would (via checkSchemas
44
+ // + autoMigrateNewCollections) emit a phantom Postgres table + migration and force a
45
+ // `neon:false` app to run Postgres for nothing.
46
+ if (backendKind(def.meta?.db) === 'd1')
47
+ continue;
41
48
  const indexes = def.indexes;
42
49
  const descriptor = serializeSchema(def.schema, indexes);
43
50
  await upsertSnapshot(name, descriptor, indexes);
@@ -56,6 +63,11 @@ export async function checkSchemas(defs) {
56
63
  // which only acts on `store-baseline` entries produced here).
57
64
  if (def.meta?.getter)
58
65
  continue;
66
+ // D1 collections aren't Postgres tables — exclude from the Postgres schema diff +
67
+ // baseline (so autoMigrateNewCollections never emits a Postgres migration for them).
68
+ // Their schema is managed by the D1 store; a `neon:false` app should touch no Postgres.
69
+ if (backendKind(def.meta?.db) === 'd1')
70
+ continue;
59
71
  const currentDescriptor = serializeSchema(def.schema, def.indexes);
60
72
  const storedDescriptor = snapshots[name];
61
73
  // Treat "snapshot exists but table doesn't" as no snapshot — covers orphan
@@ -119,7 +131,10 @@ export function formatSchemaCheckResult(result) {
119
131
  export async function autoMigrateNewCollections(result, defs) {
120
132
  const newCollections = Object.entries(result.collections)
121
133
  .filter(([, c]) => c.action === 'store-baseline')
122
- .map(([name]) => name);
134
+ .map(([name]) => name)
135
+ // Defensive: D1 collections are already excluded by checkSchemas, but guard here too so
136
+ // no Postgres table/migration is ever emitted for a D1 collection (a `neon:false` app).
137
+ .filter((name) => backendKind(defs[name]?.meta?.db) !== 'd1');
123
138
  if (newCollections.length === 0)
124
139
  return;
125
140
  // Resolve migrations directory (relative to cwd, same convention as CLI)
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaCheck.js","sourceRoot":"","sources":["../../src/server/SchemaCheck.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SchemaCheck.js","sourceRoot":"","sources":["../../src/server/SchemaCheck.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"UglyBotWebSearchProvider.d.ts","sourceRoot":"","sources":["../../../../src/server/ai/providers/UglyBotWebSearchProvider.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAoB,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAkGvE,eAAO,MAAM,wBAAwB,EAAE,iBAuDtC,CAAC"}
1
+ {"version":3,"file":"UglyBotWebSearchProvider.d.ts","sourceRoot":"","sources":["../../../../src/server/ai/providers/UglyBotWebSearchProvider.ts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAAoB,iBAAiB,EAAE,MAAM,aAAa,CAAC;AA8GvE,eAAO,MAAM,wBAAwB,EAAE,iBA+DtC,CAAC"}
@@ -3,8 +3,14 @@
3
3
  // Workers-friendly Kagi search/summarize/enrich provider. Calls the ugly.bot
4
4
  // platform `/request` op endpoint with the per-app bearer token, exactly like
5
5
  // the sibling AiText/AiImage providers (same env var, same `{ op, input,
6
- // sessionId }` envelope, same `{ result }` response unwrap). The web-search ops
7
- // are `kagiSearch` / `kagiSummarize` / `kagiEnrichWeb` / `kagiEnrichNews`.
6
+ // sessionId }` envelope, same `{ result }` response unwrap).
7
+ //
8
+ // The four Kagi modes are carried by a SINGLE `search` op with a `kind`
9
+ // discriminator (`search` | `summarize` | `enrichWeb` | `enrichNews`) and a FLAT
10
+ // input (`{ kind, query?, limit?, url?, text?, chargeUserIds? }`) — see
11
+ // `searchInputSchema` in shared/ProxyOps. (This replaced the older per-mode ops
12
+ // `kagiSearch`/`kagiSummarize`/… + nested `{ params }` envelope; keeping the old
13
+ // names/shape here silently 400'd every web search with "unknown op".)
8
14
  //
9
15
  // Env it reads:
10
16
  // UGLY_BOT_TOKEN — per-app bearer issued during publish / `npx ugly-app
@@ -14,6 +20,14 @@
14
20
  import { z } from 'zod';
15
21
  import { getUglyBotUrl } from '../../../shared/uglyBotUrl.js';
16
22
  import { parseOrThrow } from '../../../shared/parseWithZod.js';
23
+ // The web-search modes all ride the single `search` proxy op. Binding the op
24
+ // name + input to the shared `proxyOps` contract means a future backend rename
25
+ // or reshape (like the `kagiSearch`→`search` + flat-input change that silently
26
+ // broke every web search) becomes a COMPILE error here, not a runtime 400:
27
+ // - `SEARCH_OP satisfies ProxyOpName` fails if `search` is renamed/removed.
28
+ // - `SearchOpInput` = the op's exact input type, so a stale `{ params }`
29
+ // envelope or a missing `kind` no longer type-checks.
30
+ const SEARCH_OP = 'search';
17
31
  // The ugly.bot `/request` envelope: op results come back flat or wrapped in
18
32
  // `{ result: ... }`. `.loose()` retains provider keys; a non-object body
19
33
  // surfaces as drift instead of being cast blindly.
@@ -45,18 +59,20 @@ const webSearchOutputSchema = z
45
59
  // optionals (project has `exactOptionalPropertyTypes`); same `as ZodType<…>`
46
60
  // idiom the framework uses in shared/Api.ts. Runtime validation is unchanged.
47
61
  .loose();
48
- // summarize returns a bare summary string under `{ result }`.
49
- const summarizeOutputSchema = z.string();
50
- /** Attach the op params (and optional charge context) to the request input. */
51
- function buildInput(params, userId) {
52
- const input = { params };
53
- // A user id bills that user via resolveChargePayer on the ugly.bot side;
54
- // omit it to keep the default owner-billed behavior.
55
- if (userId)
56
- input.context = { chargeUserIds: [userId] };
57
- return input;
62
+ // summarize (kind:'summarize') returns `{ summary: <string> }` (the op wraps the
63
+ // provider's bare string). `.loose()` tolerates extra keys.
64
+ const summarizeOutputSchema = z.object({ summary: z.string() }).loose();
65
+ /**
66
+ * Attach the optional charge context to a typed `search`-op input: `chargeUserIds`
67
+ * bills that user (omit owner-billed default). Typing the argument as
68
+ * `SearchOpInput` is what forces every call site to match the shared schema.
69
+ */
70
+ function withCharge(input, userId) {
71
+ return userId ? { ...input, chargeUserIds: [userId] } : input;
58
72
  }
59
- async function searchProxyRequest(op, schema, input, userToken) {
73
+ async function searchProxyRequest(schema, input, userToken) {
74
+ // Every mode goes through the single `search` op (bound to the contract).
75
+ const op = SEARCH_OP;
60
76
  // A user session JWT (when supplied) bills the user; otherwise fall back to
61
77
  // the app's owner-billed proxy token.
62
78
  const bearer = userToken ?? process.env['UGLY_BOT_TOKEN'];
@@ -101,20 +117,32 @@ export const uglyBotWebSearchProvider = {
101
117
  name: 'uglybot',
102
118
  apiKeyEnv: 'UGLY_BOT_TOKEN',
103
119
  async search(params, options) {
104
- return searchProxyRequest('kagiSearch', webSearchOutputSchema, buildInput(params, options?.userId), options?.token);
120
+ const input = {
121
+ kind: 'search',
122
+ query: params.query,
123
+ ...(params.limit !== undefined ? { limit: params.limit } : {}),
124
+ };
125
+ return searchProxyRequest(webSearchOutputSchema, withCharge(input, options?.userId), options?.token);
105
126
  },
106
127
  async summarize(params, options) {
107
- const summary = await searchProxyRequest('kagiSummarize', summarizeOutputSchema, buildInput(params, options?.userId), options?.token);
128
+ const input = {
129
+ kind: 'summarize',
130
+ ...(params.url !== undefined ? { url: params.url } : {}),
131
+ ...(params.text !== undefined ? { text: params.text } : {}),
132
+ };
133
+ const { summary } = await searchProxyRequest(summarizeOutputSchema, withCharge(input, options?.userId), options?.token);
108
134
  return {
109
135
  output: summary,
110
136
  tokens: Math.ceil(summary.length / 4),
111
137
  };
112
138
  },
113
139
  async enrichWeb(params, options) {
114
- return searchProxyRequest('kagiEnrichWeb', webSearchOutputSchema, buildInput(params, options?.userId), options?.token);
140
+ const input = { kind: 'enrichWeb', query: params.query };
141
+ return searchProxyRequest(webSearchOutputSchema, withCharge(input, options?.userId), options?.token);
115
142
  },
116
143
  async enrichNews(params, options) {
117
- return searchProxyRequest('kagiEnrichNews', webSearchOutputSchema, buildInput(params, options?.userId), options?.token);
144
+ const input = { kind: 'enrichNews', query: params.query };
145
+ return searchProxyRequest(webSearchOutputSchema, withCharge(input, options?.userId), options?.token);
118
146
  },
119
147
  };
120
148
  //# sourceMappingURL=UglyBotWebSearchProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UglyBotWebSearchProvider.js","sourceRoot":"","sources":["../../../../src/server/ai/providers/UglyBotWebSearchProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UglyBotWebSearchProvider.js","sourceRoot":"","sources":["../../../../src/server/ai/providers/UglyBotWebSearchProvider.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.862",
3
+ "version": "0.1.863",
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": [
package/src/cli/dev.ts CHANGED
@@ -37,6 +37,7 @@ import { runMigrations } from './migrate.js';
37
37
  import { getLocalPort } from '../shared/Defaults.js';
38
38
  import { runExportCollections } from './exportCollections.js';
39
39
  import { ensureLocalInfra } from '../native/server/binaries/index.js';
40
+ import { readUglyAppConfig } from './uglyappConfig.js';
40
41
  import { lintSummaryAsync } from './lint.js';
41
42
 
42
43
  export async function runDev(opts: { watch: boolean; verbose: boolean } = { watch: false, verbose: false }): Promise<void> {
@@ -85,13 +86,20 @@ export async function runDev(opts: { watch: boolean; verbose: boolean } = { watc
85
86
  // Start a bundled Postgres (and MinIO S3/R2) when DATABASE_URL / R2_BUCKET are
86
87
  // unset, and inject their connection details into env for the spawned server.
87
88
  // Reuses binaries already installed by ugly-studio; installs them otherwise.
88
- await ensureLocalInfra(process.cwd());
89
-
90
- // ── 3. Run any pending migrations ─────────────────────────────────────────
91
- try {
92
- await runMigrations();
93
- } catch (migErr) {
94
- console.warn(`[ugly-app] Migration failed (continuing): ${(migErr as Error).message}`);
89
+ // A fully-D1 app (`.uglyapp` `neon: false`) needs no Postgres at all — skip it
90
+ // (and the Postgres migration run below) so the dev stack matches the app's backend.
91
+ const needsPostgres = (() => {
92
+ try { return readUglyAppConfig(process.cwd())?.neon !== false; } catch { return true; }
93
+ })();
94
+ await ensureLocalInfra(process.cwd(), { needsPostgres });
95
+
96
+ // ── 3. Run any pending migrations (Postgres only) ─────────────────────────
97
+ if (needsPostgres) {
98
+ try {
99
+ await runMigrations();
100
+ } catch (migErr) {
101
+ console.warn(`[ugly-app] Migration failed (continuing): ${(migErr as Error).message}`);
102
+ }
95
103
  }
96
104
 
97
105
  // ── 4. Spawn dev processes ────────────────────────────────────────────────
@@ -1,2 +1,2 @@
1
1
  // Auto-generated by prebuild — do not edit manually
2
- export const CLI_VERSION = "0.1.862";
2
+ export const CLI_VERSION = "0.1.863";
@@ -39,6 +39,10 @@ function registerCleanup(): void {
39
39
  export interface LocalInfraOptions {
40
40
  /** Also provision local S3/R2 storage. Default true. */
41
41
  storage?: boolean;
42
+ /** Start bundled Postgres. Default true. Pass false for a fully-D1 app (`.uglyapp`
43
+ * `neon: false`) with no Neon collections — starting Postgres (and setting DATABASE_URL)
44
+ * would make App.ts run the Postgres pool + schema check for nothing. */
45
+ needsPostgres?: boolean;
42
46
  }
43
47
 
44
48
  export async function ensureLocalInfra(
@@ -48,7 +52,9 @@ export async function ensureLocalInfra(
48
52
  const log = (m: string): void => console.log(`[ugly-app] ${m}`);
49
53
 
50
54
  const hasDb = !!(process.env['DATABASE_URL'] ?? process.env['POSTGRES_URL']);
51
- if (!hasDb && process.env['UGLY_APP_NO_LOCAL_DB'] !== '1') {
55
+ if (opts.needsPostgres === false) {
56
+ log('Skipping local Postgres (neon: false — app is fully D1).');
57
+ } else if (!hasDb && process.env['UGLY_APP_NO_LOCAL_DB'] !== '1') {
52
58
  try {
53
59
  log('Starting local Postgres (bundled binary)…');
54
60
  const pg = await startPostgres(projectDir);
@@ -177,9 +177,14 @@ export async function installRealNative(
177
177
  case 'process.spawn': {
178
178
  const id = `p${seq++}`;
179
179
  const args = Array.isArray(p.args) ? p.args.map(s) : [];
180
- const env = (p.env && typeof p.env === 'object' ? p.env : {}) as Record<string, string>;
180
+ // `cwd` + `env` are nested under `opts` (SpawnOpts) in the process.spawn payload
181
+ // `{ cmd, args, opts }`, matching the real node.ts handler. Reading them flat
182
+ // (p.env / p.cwd) silently dropped env for EVERY spawn — invisible until a spawned
183
+ // script actually depended on it (e.g. the DB panel's runDbScript needs UGLY_DB_*).
184
+ const opts = (p.opts && typeof p.opts === 'object' ? p.opts : {}) as Record<string, unknown>;
185
+ const env = (opts.env && typeof opts.env === 'object' ? opts.env : {}) as Record<string, string>;
181
186
  void w
182
- .__nproc(s(p.cmd), args, p.cwd ? s(p.cwd) : undefined, env)
187
+ .__nproc(s(p.cmd), args, opts.cwd ? s(opts.cwd) : undefined, env)
183
188
  .then((r: ProcResult) =>
184
189
  setTimeout(() => {
185
190
  if (r.stdout) emit('process.stdout:' + id, { chunk: r.stdout });
@@ -4,6 +4,7 @@ import { pgQuery } from './Pg.js';
4
4
  import { ensureTable, tableExists } from './PostgresSchema.js';
5
5
  const Postgres = { query: pgQuery };
6
6
  import type { CollectionDefRegistry, IndexDef } from '../shared/DB.js';
7
+ import { backendKind } from '../shared/DB.js';
7
8
  import { serializeSchema, type SchemaDescriptor } from '../shared/SchemaSerializer.js';
8
9
  import { diffSchemas, hasBreakingChanges, type SchemaChange } from '../shared/SchemaDiff.js';
9
10
 
@@ -63,6 +64,11 @@ export async function updateAllSnapshots(
63
64
  if (!def.schema) continue;
64
65
  // Getter-backed collections have no local table — skip schema snapshots.
65
66
  if (def.meta?.getter) continue;
67
+ // D1 collections live in SQLite/D1, not Postgres — their schema is managed by the D1
68
+ // path. Snapshotting them into the Postgres `_schema_snapshots` would (via checkSchemas
69
+ // + autoMigrateNewCollections) emit a phantom Postgres table + migration and force a
70
+ // `neon:false` app to run Postgres for nothing.
71
+ if (backendKind(def.meta?.db) === 'd1') continue;
66
72
  const indexes = (def as { indexes?: IndexDef[] }).indexes;
67
73
  const descriptor = serializeSchema(
68
74
  def.schema,
@@ -87,6 +93,10 @@ export async function checkSchemas(
87
93
  // and table creation (also keeps them out of autoMigrateNewCollections,
88
94
  // which only acts on `store-baseline` entries produced here).
89
95
  if (def.meta?.getter) continue;
96
+ // D1 collections aren't Postgres tables — exclude from the Postgres schema diff +
97
+ // baseline (so autoMigrateNewCollections never emits a Postgres migration for them).
98
+ // Their schema is managed by the D1 store; a `neon:false` app should touch no Postgres.
99
+ if (backendKind(def.meta?.db) === 'd1') continue;
90
100
 
91
101
  const currentDescriptor = serializeSchema(
92
102
  def.schema,
@@ -163,7 +173,10 @@ export async function autoMigrateNewCollections(
163
173
  ): Promise<void> {
164
174
  const newCollections = Object.entries(result.collections)
165
175
  .filter(([, c]) => c.action === 'store-baseline')
166
- .map(([name]) => name);
176
+ .map(([name]) => name)
177
+ // Defensive: D1 collections are already excluded by checkSchemas, but guard here too so
178
+ // no Postgres table/migration is ever emitted for a D1 collection (a `neon:false` app).
179
+ .filter((name) => backendKind(defs[name]?.meta?.db) !== 'd1');
167
180
 
168
181
  if (newCollections.length === 0) return;
169
182
 
@@ -3,8 +3,14 @@
3
3
  // Workers-friendly Kagi search/summarize/enrich provider. Calls the ugly.bot
4
4
  // platform `/request` op endpoint with the per-app bearer token, exactly like
5
5
  // the sibling AiText/AiImage providers (same env var, same `{ op, input,
6
- // sessionId }` envelope, same `{ result }` response unwrap). The web-search ops
7
- // are `kagiSearch` / `kagiSummarize` / `kagiEnrichWeb` / `kagiEnrichNews`.
6
+ // sessionId }` envelope, same `{ result }` response unwrap).
7
+ //
8
+ // The four Kagi modes are carried by a SINGLE `search` op with a `kind`
9
+ // discriminator (`search` | `summarize` | `enrichWeb` | `enrichNews`) and a FLAT
10
+ // input (`{ kind, query?, limit?, url?, text?, chargeUserIds? }`) — see
11
+ // `searchInputSchema` in shared/ProxyOps. (This replaced the older per-mode ops
12
+ // `kagiSearch`/`kagiSummarize`/… + nested `{ params }` envelope; keeping the old
13
+ // names/shape here silently 400'd every web search with "unknown op".)
8
14
  //
9
15
  // Env it reads:
10
16
  // UGLY_BOT_TOKEN — per-app bearer issued during publish / `npx ugly-app
@@ -20,8 +26,19 @@ import type {
20
26
  } from '../../../shared/WebSearch.js';
21
27
  import { getUglyBotUrl } from '../../../shared/uglyBotUrl.js';
22
28
  import { parseOrThrow } from '../../../shared/parseWithZod.js';
29
+ import type { ProxyOpInput, ProxyOpName } from '../../../shared/ProxyOps.js';
23
30
  import type { WebSearchOptions, WebSearchProvider } from '../types.js';
24
31
 
32
+ // The web-search modes all ride the single `search` proxy op. Binding the op
33
+ // name + input to the shared `proxyOps` contract means a future backend rename
34
+ // or reshape (like the `kagiSearch`→`search` + flat-input change that silently
35
+ // broke every web search) becomes a COMPILE error here, not a runtime 400:
36
+ // - `SEARCH_OP satisfies ProxyOpName` fails if `search` is renamed/removed.
37
+ // - `SearchOpInput` = the op's exact input type, so a stale `{ params }`
38
+ // envelope or a missing `kind` no longer type-checks.
39
+ const SEARCH_OP = 'search' satisfies ProxyOpName;
40
+ type SearchOpInput = ProxyOpInput<'search'>;
41
+
25
42
  // The ugly.bot `/request` envelope: op results come back flat or wrapped in
26
43
  // `{ result: ... }`. `.loose()` retains provider keys; a non-object body
27
44
  // surfaces as drift instead of being cast blindly.
@@ -57,24 +74,26 @@ const webSearchOutputSchema = z
57
74
  // idiom the framework uses in shared/Api.ts. Runtime validation is unchanged.
58
75
  .loose() as z.ZodType<WebSearchOutput>;
59
76
 
60
- // summarize returns a bare summary string under `{ result }`.
61
- const summarizeOutputSchema = z.string();
77
+ // summarize (kind:'summarize') returns `{ summary: <string> }` (the op wraps the
78
+ // provider's bare string). `.loose()` tolerates extra keys.
79
+ const summarizeOutputSchema = z.object({ summary: z.string() }).loose();
62
80
 
63
- /** Attach the op params (and optional charge context) to the request input. */
64
- function buildInput(params: object, userId?: string): Record<string, unknown> {
65
- const input: Record<string, unknown> = { params };
66
- // A user id bills that user via resolveChargePayer on the ugly.bot side;
67
- // omit it to keep the default owner-billed behavior.
68
- if (userId) input.context = { chargeUserIds: [userId] };
69
- return input;
81
+ /**
82
+ * Attach the optional charge context to a typed `search`-op input: `chargeUserIds`
83
+ * bills that user (omit owner-billed default). Typing the argument as
84
+ * `SearchOpInput` is what forces every call site to match the shared schema.
85
+ */
86
+ function withCharge(input: SearchOpInput, userId?: string): SearchOpInput {
87
+ return userId ? { ...input, chargeUserIds: [userId] } : input;
70
88
  }
71
89
 
72
90
  async function searchProxyRequest<T>(
73
- op: string,
74
91
  schema: z.ZodType<T>,
75
- input: Record<string, unknown>,
92
+ input: SearchOpInput,
76
93
  userToken?: string,
77
94
  ): Promise<T> {
95
+ // Every mode goes through the single `search` op (bound to the contract).
96
+ const op: ProxyOpName = SEARCH_OP;
78
97
  // A user session JWT (when supplied) bills the user; otherwise fall back to
79
98
  // the app's owner-billed proxy token.
80
99
  const bearer = userToken ?? process.env['UGLY_BOT_TOKEN'];
@@ -126,10 +145,14 @@ export const uglyBotWebSearchProvider: WebSearchProvider = {
126
145
  params: WebSearchParams,
127
146
  options?: WebSearchOptions,
128
147
  ): Promise<WebSearchOutput> {
148
+ const input: SearchOpInput = {
149
+ kind: 'search',
150
+ query: params.query,
151
+ ...(params.limit !== undefined ? { limit: params.limit } : {}),
152
+ };
129
153
  return searchProxyRequest(
130
- 'kagiSearch',
131
154
  webSearchOutputSchema,
132
- buildInput(params, options?.userId),
155
+ withCharge(input, options?.userId),
133
156
  options?.token,
134
157
  );
135
158
  },
@@ -138,10 +161,14 @@ export const uglyBotWebSearchProvider: WebSearchProvider = {
138
161
  params: WebSummarizeParams,
139
162
  options?: WebSearchOptions,
140
163
  ): Promise<{ output: string; tokens: number }> {
141
- const summary = await searchProxyRequest(
142
- 'kagiSummarize',
164
+ const input: SearchOpInput = {
165
+ kind: 'summarize',
166
+ ...(params.url !== undefined ? { url: params.url } : {}),
167
+ ...(params.text !== undefined ? { text: params.text } : {}),
168
+ };
169
+ const { summary } = await searchProxyRequest(
143
170
  summarizeOutputSchema,
144
- buildInput(params, options?.userId),
171
+ withCharge(input, options?.userId),
145
172
  options?.token,
146
173
  );
147
174
  return {
@@ -154,10 +181,10 @@ export const uglyBotWebSearchProvider: WebSearchProvider = {
154
181
  params: WebEnrichParams,
155
182
  options?: WebSearchOptions,
156
183
  ): Promise<WebSearchOutput> {
184
+ const input: SearchOpInput = { kind: 'enrichWeb', query: params.query };
157
185
  return searchProxyRequest(
158
- 'kagiEnrichWeb',
159
186
  webSearchOutputSchema,
160
- buildInput(params, options?.userId),
187
+ withCharge(input, options?.userId),
161
188
  options?.token,
162
189
  );
163
190
  },
@@ -166,10 +193,10 @@ export const uglyBotWebSearchProvider: WebSearchProvider = {
166
193
  params: WebEnrichParams,
167
194
  options?: WebSearchOptions,
168
195
  ): Promise<WebSearchOutput> {
196
+ const input: SearchOpInput = { kind: 'enrichNews', query: params.query };
169
197
  return searchProxyRequest(
170
- 'kagiEnrichNews',
171
198
  webSearchOutputSchema,
172
- buildInput(params, options?.userId),
199
+ withCharge(input, options?.userId),
173
200
  options?.token,
174
201
  );
175
202
  },