okengine 0.3.5 → 0.4.3
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/AGENTS.md +6 -0
- package/manifest.v1.schema.json +43 -1
- package/package.json +27 -12
- package/site/content/docs/ai/skills.mdx +11 -7
- package/site/content/docs/console/vault.mdx +4 -0
- package/site/content/docs/elements/ai.mdx +2 -0
- package/site/content/docs/elements/channel.mdx +7 -4
- package/site/content/docs/elements/clock.mdx +2 -4
- package/site/content/docs/elements/flow.mdx +19 -10
- package/site/content/docs/elements/gate.mdx +18 -11
- package/site/content/docs/elements/signal.mdx +9 -12
- package/site/content/docs/elements/store.mdx +69 -8
- package/site/content/docs/elements/vault.mdx +11 -12
- package/site/content/docs/get-started/basic-usage.mdx +76 -41
- package/site/content/docs/get-started/installation.mdx +95 -43
- package/site/content/docs/get-started/introduction.mdx +128 -75
- package/site/content/docs/get-started/meta.json +1 -1
- package/site/content/docs/get-started/why.mdx +141 -0
- package/site/content/docs/plugins/ip-allowlist.mdx +1 -2
- package/site/content/docs/plugins/security-headers.mdx +1 -1
- package/site/content/docs/reference/configuration.mdx +2 -2
- package/site/content/docs/reference/environment-variables.mdx +10 -0
- package/site/content/docs/reference/fx.mdx +56 -3
- package/site/content/docs/reference/plugins.mdx +18 -18
- package/src/cli/competitor-mention-removal.test.ts +117 -0
- package/src/cli/dev.ts +20 -0
- package/src/cli/meilisearch-local.test.ts +69 -0
- package/src/cli/meilisearch-local.ts +188 -0
- package/src/compiler/extract.test.ts +63 -0
- package/src/compiler/extract.ts +36 -15
- package/src/compiler/fixtures/skyport/src/flows/payments/index.ts +5 -1
- package/src/console/server/channels.ts +2 -0
- package/src/console/server/clock.ts +3 -0
- package/src/console/server/flows.ts +13 -0
- package/src/console/server/gates.ts +2 -0
- package/src/console/server/plugins.ts +20 -1
- package/src/console/server/signals.ts +5 -0
- package/src/console/server/store.test.ts +17 -0
- package/src/console/server/store.ts +35 -1
- package/src/console/ui/channels/types.ts +1 -0
- package/src/console/ui/clock/types.ts +1 -0
- package/src/console/ui/display.test.ts +14 -0
- package/src/console/ui/display.ts +9 -0
- package/src/console/ui/dist/assets/index-CjxwRGVv.js +10 -0
- package/src/console/ui/dist/assets/panel-access-BGv45snf.js +64 -0
- package/src/console/ui/dist/assets/{panel-ai-D_m6WQI8.js → panel-ai-B2S7LEii.js} +1 -1
- package/src/console/ui/dist/assets/{panel-architecture-CKnXFyUx.js → panel-architecture-D7UJh91v.js} +1 -1
- package/src/console/ui/dist/assets/panel-channels-9T3ybqRu.js +1 -0
- package/src/console/ui/dist/assets/panel-clock-Cb1UXGRQ.js +1 -0
- package/src/console/ui/dist/assets/{panel-diff-cdonmH8c.js → panel-diff-DmYbKWmN.js} +1 -1
- package/src/console/ui/dist/assets/panel-flows-PiHwT55z.js +48 -0
- package/src/console/ui/dist/assets/panel-gates-BQGYXvjT.js +1 -0
- package/src/console/ui/dist/assets/panel-overview-BBnRO18l.js +1 -0
- package/src/console/ui/dist/assets/panel-plugins-D0PsmVw2.js +1 -0
- package/src/console/ui/dist/assets/panel-runs-CWuRDe0r.js +1 -0
- package/src/console/ui/dist/assets/panel-signals-Bbg4ewpP.js +1 -0
- package/src/console/ui/dist/assets/panel-store-CPCbsDRa.js +1 -0
- package/src/console/ui/dist/assets/panel-traces-DVAzuA_S.js +1 -0
- package/src/console/ui/dist/assets/panel-vault-D1_MvOmo.js +1 -0
- package/src/console/ui/dist/assets/{rolldown-runtime-CNC7AqOf.js → rolldown-runtime-B0Z9INg1.js} +1 -1
- package/src/console/ui/dist/index.html +2 -2
- package/src/console/ui/gates/types.ts +1 -0
- package/src/console/ui/plugins/fixture.ts +7 -0
- package/src/console/ui/plugins/types.ts +3 -0
- package/src/console/ui/shell/client.ts +3 -0
- package/src/console/ui/shell/panels/channels/ChannelsPanel.tsx +7 -2
- package/src/console/ui/shell/panels/clock/ClockPanel.tsx +9 -2
- package/src/console/ui/shell/panels/gates/GatesPanel.tsx +12 -5
- package/src/console/ui/shell/panels/plugins/PluginsPanel.tsx +18 -4
- package/src/console/ui/shell/panels/signals/SignalsPanel.tsx +13 -2
- package/src/console/ui/shell/panels/store/StorePanel.tsx +11 -4
- package/src/console/ui/shell/panels/vault/VaultPanel.tsx +9 -3
- package/src/console/ui/signals/types.ts +1 -0
- package/src/console/ui/store/fixture.ts +5 -0
- package/src/console/ui/store/types.ts +2 -0
- package/src/docker/compose.ts +5 -0
- package/src/docker/docker.test.ts +41 -0
- package/src/docker/recipes/index.ts +10 -2
- package/src/docker/recipes/meilisearch.ts +31 -0
- package/src/drivers/conformance.test.ts +26 -0
- package/src/drivers/conformance.ts +40 -3
- package/src/drivers/drizzle-dialect.test.ts +4 -0
- package/src/drivers/drizzle-dialect.ts +8 -4
- package/src/drivers/index.ts +18 -2
- package/src/drivers/libsql.ts +179 -0
- package/src/drivers/meilisearch.integration.test.ts +77 -0
- package/src/drivers/meilisearch.test.ts +181 -0
- package/src/drivers/meilisearch.ts +208 -0
- package/src/drivers/memory.ts +4 -4
- package/src/drivers/pglite.ts +79 -0
- package/src/drivers/pgvector.ts +60 -25
- package/src/drivers/types.ts +106 -16
- package/src/drivers/vault-driver-removal.test.ts +6 -0
- package/src/drivers/vault-types.ts +4 -4
- package/src/elements/ai/runtime.ts +6 -0
- package/src/elements/ai.test.ts +22 -0
- package/src/elements/channel/declare.ts +5 -0
- package/src/elements/clock/declare.ts +5 -0
- package/src/elements/clock/durable.ts +7 -1
- package/src/elements/gate/declare.ts +28 -5
- package/src/elements/gate.ts +1 -0
- package/src/elements/signal/declare.ts +5 -0
- package/src/elements/store/declare.ts +10 -2
- package/src/elements/store/index-boot.test.ts +299 -0
- package/src/elements/store/runtime.ts +110 -17
- package/src/elements/store/schema-decl.ts +7 -0
- package/src/elements/store.ts +2 -0
- package/src/elements/vault.test.ts +27 -4
- package/src/elements/vault.ts +1 -1
- package/src/index.ts +4 -0
- package/src/kernel/abort-scope.ts +116 -0
- package/src/kernel/app.ts +12 -2
- package/src/kernel/boot-bind/store.test.ts +68 -1
- package/src/kernel/boot-bind/store.ts +92 -2
- package/src/kernel/concurrency.test.ts +294 -0
- package/src/kernel/concurrency.ts +220 -0
- package/src/kernel/flow.ts +9 -0
- package/src/kernel/fx.test.ts +23 -2
- package/src/kernel/fx.ts +80 -4
- package/src/kernel/index.ts +23 -0
- package/src/kernel/journal.ts +9 -0
- package/src/kernel/plugin/capabilities.test.ts +18 -0
- package/src/kernel/plugin.ts +11 -3
- package/src/kernel/redacted.ts +74 -0
- package/src/kernel/registry.ts +29 -6
- package/src/kernel/router.ts +3 -3
- package/src/manifest/types.ts +21 -0
- package/src/release/measure.ts +4 -0
- package/src/test/provisions.integration.test.ts +1 -1
- package/site/content/docs/get-started/comparison.mdx +0 -65
- package/src/console/ui/dist/assets/index-BWo8R7NR.js +0 -10
- package/src/console/ui/dist/assets/panel-access-C0J2D-a2.js +0 -64
- package/src/console/ui/dist/assets/panel-channels-BOmQ-onL.js +0 -1
- package/src/console/ui/dist/assets/panel-clock-giAq0Ccv.js +0 -1
- package/src/console/ui/dist/assets/panel-flows-DlCU5zjA.js +0 -45
- package/src/console/ui/dist/assets/panel-gates-XclZxWD5.js +0 -1
- package/src/console/ui/dist/assets/panel-overview-BznEOTnb.js +0 -1
- package/src/console/ui/dist/assets/panel-plugins-CcGM1g64.js +0 -1
- package/src/console/ui/dist/assets/panel-runs-CGWNHLR4.js +0 -1
- package/src/console/ui/dist/assets/panel-signals-CNywkdak.js +0 -1
- package/src/console/ui/dist/assets/panel-store-KmTbFHMH.js +0 -1
- package/src/console/ui/dist/assets/panel-traces-DBLx2ilD.js +0 -1
- package/src/console/ui/dist/assets/panel-vault-CEnFc0dk.js +0 -1
- package/src/drivers/vault-infisical.ts +0 -57
|
@@ -69,6 +69,8 @@ export interface ConsoleStoreChild {
|
|
|
69
69
|
readonly cache: ConsoleStoreCacheView;
|
|
70
70
|
readonly willNotFire: ConsoleWillNotFire;
|
|
71
71
|
readonly piiColumns: readonly string[];
|
|
72
|
+
/** Column key → optional human description (SQL tables). */
|
|
73
|
+
readonly columnDescriptions: Readonly<Record<string, string>>;
|
|
72
74
|
}
|
|
73
75
|
|
|
74
76
|
/** One row in `console.store.list`. */
|
|
@@ -76,6 +78,7 @@ export interface ConsoleStoreRow {
|
|
|
76
78
|
readonly ref: ResourceRef;
|
|
77
79
|
readonly facet: StoreFacet;
|
|
78
80
|
readonly name: string;
|
|
81
|
+
readonly description?: string;
|
|
79
82
|
readonly children: readonly ConsoleStoreChild[];
|
|
80
83
|
readonly replicaLagMs: number | null;
|
|
81
84
|
readonly migrationDrift: ConsoleMigrationDrift | null;
|
|
@@ -152,6 +155,7 @@ export async function projectStoresList(options: ProjectStoresOptions): Promise<
|
|
|
152
155
|
ref,
|
|
153
156
|
facet,
|
|
154
157
|
name,
|
|
158
|
+
...(store.description !== undefined ? { description: store.description } : {}),
|
|
155
159
|
children,
|
|
156
160
|
replicaLagMs,
|
|
157
161
|
migrationDrift: facet === "sql" ? drift : null,
|
|
@@ -219,10 +223,27 @@ function childrenOf(
|
|
|
219
223
|
},
|
|
220
224
|
willNotFire,
|
|
221
225
|
piiColumns,
|
|
226
|
+
columnDescriptions: columnDescriptionsFor(store, childName),
|
|
222
227
|
};
|
|
223
228
|
});
|
|
224
229
|
}
|
|
225
230
|
|
|
231
|
+
function columnDescriptionsFor(
|
|
232
|
+
store: NonNullable<Manifest["stores"]>[string],
|
|
233
|
+
tableName: string,
|
|
234
|
+
): Readonly<Record<string, string>> {
|
|
235
|
+
const cols = store.tables?.[tableName]?.columns;
|
|
236
|
+
if (!cols) return {};
|
|
237
|
+
const out: Record<string, string> = {};
|
|
238
|
+
for (const [key, col] of Object.entries(cols)) {
|
|
239
|
+
if (col && typeof col === "object" && "description" in col) {
|
|
240
|
+
const d = (col as { description?: string }).description;
|
|
241
|
+
if (typeof d === "string" && d.length > 0) out[key] = d;
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
return out;
|
|
245
|
+
}
|
|
246
|
+
|
|
226
247
|
function flowsTouching(manifest: Manifest, ref: ResourceRef, kind: "reads" | "writes"): string[] {
|
|
227
248
|
const out: string[] = [];
|
|
228
249
|
for (const [flowId, flow] of Object.entries(manifest.flows ?? {})) {
|
|
@@ -308,6 +329,7 @@ export interface StoreQueryInput {
|
|
|
308
329
|
readonly prefix?: string;
|
|
309
330
|
readonly limit?: number;
|
|
310
331
|
readonly vector?: readonly number[];
|
|
332
|
+
readonly q?: string;
|
|
311
333
|
readonly topK?: number;
|
|
312
334
|
readonly revealPii?: boolean;
|
|
313
335
|
}
|
|
@@ -329,6 +351,7 @@ export interface StoreQueryResult {
|
|
|
329
351
|
readonly score: number;
|
|
330
352
|
readonly meta?: Record<string, unknown>;
|
|
331
353
|
}>;
|
|
354
|
+
readonly facetDistribution?: Record<string, Record<string, number>>;
|
|
332
355
|
readonly masked: boolean;
|
|
333
356
|
readonly routedRole?: "primary" | "replica";
|
|
334
357
|
}
|
|
@@ -417,12 +440,20 @@ export async function queryStore(
|
|
|
417
440
|
|
|
418
441
|
// index
|
|
419
442
|
const idx = handle as IndexStoreFxHandle;
|
|
443
|
+
void manifest;
|
|
444
|
+
if (idx.driverId === "meilisearch") {
|
|
445
|
+
const q = input.q ?? "";
|
|
446
|
+
if (q.trim().length === 0) {
|
|
447
|
+
return { facet, hits: [], masked: false };
|
|
448
|
+
}
|
|
449
|
+
const result = await idx.search(q, { topK: input.topK ?? 5 });
|
|
450
|
+
return { facet, hits: result.hits, facetDistribution: result.facetDistribution, masked: false };
|
|
451
|
+
}
|
|
420
452
|
const vector = input.vector ?? [];
|
|
421
453
|
if (vector.length === 0) {
|
|
422
454
|
return { facet, hits: [], masked: false };
|
|
423
455
|
}
|
|
424
456
|
const hits = await idx.search(vector, input.topK ?? 5);
|
|
425
|
-
void manifest;
|
|
426
457
|
return { facet, hits, masked: false };
|
|
427
458
|
}
|
|
428
459
|
|
|
@@ -779,6 +810,9 @@ export function cacheKeyInvalidatedBy(key: string, writeRef: ResourceRef): boole
|
|
|
779
810
|
/**
|
|
780
811
|
* Open a memory StoreRuntime seeded from Manifest stores (Console default).
|
|
781
812
|
*
|
|
813
|
+
* The Console Manifest sandbox uses memory drivers for every facet. Real app
|
|
814
|
+
* boot resolves configured drivers before the Console binds to live runtimes.
|
|
815
|
+
*
|
|
782
816
|
* @param manifest - Manifest snapshot
|
|
783
817
|
* @param now - Clock
|
|
784
818
|
*/
|
|
@@ -29,6 +29,7 @@ export interface DstAmbiguityView {
|
|
|
29
29
|
/** One cron row from `console.clock.list`. */
|
|
30
30
|
export interface ClockCronRecord {
|
|
31
31
|
readonly name: string;
|
|
32
|
+
readonly description?: string;
|
|
32
33
|
readonly status: CronStatus;
|
|
33
34
|
readonly timezone: string;
|
|
34
35
|
readonly overridable: boolean;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { describe, expect, test } from "bun:test";
|
|
2
|
+
import { displayLabel } from "./display.ts";
|
|
3
|
+
|
|
4
|
+
describe("displayLabel", () => {
|
|
5
|
+
test("falls back to the raw key when description is absent", () => {
|
|
6
|
+
expect(displayLabel("DATABASE_URL")).toBe("DATABASE_URL");
|
|
7
|
+
expect(displayLabel("DATABASE_URL", undefined)).toBe("DATABASE_URL");
|
|
8
|
+
expect(displayLabel("DATABASE_URL", "")).toBe("DATABASE_URL");
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
test("prefers a non-empty description", () => {
|
|
12
|
+
expect(displayLabel("DATABASE_URL", "Primary database URL")).toBe("Primary database URL");
|
|
13
|
+
});
|
|
14
|
+
});
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Human-facing label for a technical key when an optional description exists.
|
|
3
|
+
*
|
|
4
|
+
* @param key - Technical identifier (Manifest map key / declaration name)
|
|
5
|
+
* @param description - Optional human description
|
|
6
|
+
*/
|
|
7
|
+
export function displayLabel(key: string, description?: string | null): string {
|
|
8
|
+
return description && description.length > 0 ? description : key;
|
|
9
|
+
}
|