@paraharness/sqlite 0.0.0-stage → 0.1.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/LICENSE +21 -0
- package/README.md +64 -2
- package/dist/builders/compaction-config-builder.d.ts +66 -0
- package/dist/builders/compaction-config-builder.d.ts.map +1 -0
- package/dist/builders/compaction-config-builder.js +2 -0
- package/dist/builders/compaction-config-builder.js.map +1 -0
- package/dist/builders/create-compaction-config-builder.d.ts +14 -0
- package/dist/builders/create-compaction-config-builder.d.ts.map +1 -0
- package/dist/builders/create-compaction-config-builder.js +66 -0
- package/dist/builders/create-compaction-config-builder.js.map +1 -0
- package/dist/builders/create-sqlite-global-rules-builder.d.ts +15 -0
- package/dist/builders/create-sqlite-global-rules-builder.d.ts.map +1 -0
- package/dist/builders/create-sqlite-global-rules-builder.js +30 -0
- package/dist/builders/create-sqlite-global-rules-builder.js.map +1 -0
- package/dist/builders/create-sqlite-ledger-builder.d.ts +15 -0
- package/dist/builders/create-sqlite-ledger-builder.d.ts.map +1 -0
- package/dist/builders/create-sqlite-ledger-builder.js +31 -0
- package/dist/builders/create-sqlite-ledger-builder.js.map +1 -0
- package/dist/builders/create-sqlite-lessons-builder.d.ts +12 -0
- package/dist/builders/create-sqlite-lessons-builder.d.ts.map +1 -0
- package/dist/builders/create-sqlite-lessons-builder.js +23 -0
- package/dist/builders/create-sqlite-lessons-builder.js.map +1 -0
- package/dist/builders/create-sqlite-topology-builder.d.ts +12 -0
- package/dist/builders/create-sqlite-topology-builder.d.ts.map +1 -0
- package/dist/builders/create-sqlite-topology-builder.js +23 -0
- package/dist/builders/create-sqlite-topology-builder.js.map +1 -0
- package/dist/builders/internal/compaction-config-builder-state.d.ts +16 -0
- package/dist/builders/internal/compaction-config-builder-state.d.ts.map +1 -0
- package/dist/builders/internal/compaction-config-builder-state.js +2 -0
- package/dist/builders/internal/compaction-config-builder-state.js.map +1 -0
- package/dist/builders/sqlite-global-rules-builder.d.ts +17 -0
- package/dist/builders/sqlite-global-rules-builder.d.ts.map +1 -0
- package/dist/builders/sqlite-global-rules-builder.js +2 -0
- package/dist/builders/sqlite-global-rules-builder.js.map +1 -0
- package/dist/builders/sqlite-ledger-builder.d.ts +21 -0
- package/dist/builders/sqlite-ledger-builder.d.ts.map +1 -0
- package/dist/builders/sqlite-ledger-builder.js +2 -0
- package/dist/builders/sqlite-ledger-builder.js.map +1 -0
- package/dist/builders/sqlite-lessons-builder.d.ts +18 -0
- package/dist/builders/sqlite-lessons-builder.d.ts.map +1 -0
- package/dist/builders/sqlite-lessons-builder.js +2 -0
- package/dist/builders/sqlite-lessons-builder.js.map +1 -0
- package/dist/builders/sqlite-namespace-contract.d.ts +64 -0
- package/dist/builders/sqlite-namespace-contract.d.ts.map +1 -0
- package/dist/builders/sqlite-namespace-contract.js +2 -0
- package/dist/builders/sqlite-namespace-contract.js.map +1 -0
- package/dist/builders/sqlite-namespace.d.ts +9 -0
- package/dist/builders/sqlite-namespace.d.ts.map +1 -0
- package/dist/builders/sqlite-namespace.js +17 -0
- package/dist/builders/sqlite-namespace.js.map +1 -0
- package/dist/builders/sqlite-topology-builder.d.ts +18 -0
- package/dist/builders/sqlite-topology-builder.d.ts.map +1 -0
- package/dist/builders/sqlite-topology-builder.js +2 -0
- package/dist/builders/sqlite-topology-builder.js.map +1 -0
- package/dist/ddl/internal/open-sqlite-connection.d.ts +24 -0
- package/dist/ddl/internal/open-sqlite-connection.d.ts.map +1 -0
- package/dist/ddl/internal/open-sqlite-connection.js +65 -0
- package/dist/ddl/internal/open-sqlite-connection.js.map +1 -0
- package/dist/ddl/sqlite-schema.constants.d.ts +21 -0
- package/dist/ddl/sqlite-schema.constants.d.ts.map +1 -0
- package/dist/ddl/sqlite-schema.constants.js +134 -0
- package/dist/ddl/sqlite-schema.constants.js.map +1 -0
- package/dist/executors/create-sqlite-executors.d.ts +11 -0
- package/dist/executors/create-sqlite-executors.d.ts.map +1 -0
- package/dist/executors/create-sqlite-executors.js +38 -0
- package/dist/executors/create-sqlite-executors.js.map +1 -0
- package/dist/executors/sqlite-executors.constants.d.ts +9 -0
- package/dist/executors/sqlite-executors.constants.d.ts.map +1 -0
- package/dist/executors/sqlite-executors.constants.js +9 -0
- package/dist/executors/sqlite-executors.constants.js.map +1 -0
- package/dist/executors/sqlite-rules-source-executor.d.ts +15 -0
- package/dist/executors/sqlite-rules-source-executor.d.ts.map +1 -0
- package/dist/executors/sqlite-rules-source-executor.js +47 -0
- package/dist/executors/sqlite-rules-source-executor.js.map +1 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -0
- package/dist/stores/internal/admit-lesson-params.d.ts +16 -0
- package/dist/stores/internal/admit-lesson-params.d.ts.map +1 -0
- package/dist/stores/internal/admit-lesson-params.js +2 -0
- package/dist/stores/internal/admit-lesson-params.js.map +1 -0
- package/dist/stores/internal/compute-normalized-relevance.d.ts +47 -0
- package/dist/stores/internal/compute-normalized-relevance.d.ts.map +1 -0
- package/dist/stores/internal/compute-normalized-relevance.js +63 -0
- package/dist/stores/internal/compute-normalized-relevance.js.map +1 -0
- package/dist/stores/internal/mark-frame-tombstone-params.d.ts +16 -0
- package/dist/stores/internal/mark-frame-tombstone-params.d.ts.map +1 -0
- package/dist/stores/internal/mark-frame-tombstone-params.js +2 -0
- package/dist/stores/internal/mark-frame-tombstone-params.js.map +1 -0
- package/dist/stores/internal/record-terminal-receipt-params.d.ts +16 -0
- package/dist/stores/internal/record-terminal-receipt-params.d.ts.map +1 -0
- package/dist/stores/internal/record-terminal-receipt-params.js +2 -0
- package/dist/stores/internal/record-terminal-receipt-params.js.map +1 -0
- package/dist/stores/internal/sqlite-ledger-compaction-ops.d.ts +14 -0
- package/dist/stores/internal/sqlite-ledger-compaction-ops.d.ts.map +1 -0
- package/dist/stores/internal/sqlite-ledger-compaction-ops.js +29 -0
- package/dist/stores/internal/sqlite-ledger-compaction-ops.js.map +1 -0
- package/dist/stores/internal/sqlite-ledger-fork-operations.d.ts +33 -0
- package/dist/stores/internal/sqlite-ledger-fork-operations.d.ts.map +1 -0
- package/dist/stores/internal/sqlite-ledger-fork-operations.js +44 -0
- package/dist/stores/internal/sqlite-ledger-fork-operations.js.map +1 -0
- package/dist/stores/internal/sqlite-ledger-frame-operations.d.ts +24 -0
- package/dist/stores/internal/sqlite-ledger-frame-operations.d.ts.map +1 -0
- package/dist/stores/internal/sqlite-ledger-frame-operations.js +40 -0
- package/dist/stores/internal/sqlite-ledger-frame-operations.js.map +1 -0
- package/dist/stores/internal/sqlite-ledger-frame-ops.d.ts +50 -0
- package/dist/stores/internal/sqlite-ledger-frame-ops.d.ts.map +1 -0
- package/dist/stores/internal/sqlite-ledger-frame-ops.js +90 -0
- package/dist/stores/internal/sqlite-ledger-frame-ops.js.map +1 -0
- package/dist/stores/internal/sqlite-ledger-plan-and-fork-ops.d.ts +59 -0
- package/dist/stores/internal/sqlite-ledger-plan-and-fork-ops.d.ts.map +1 -0
- package/dist/stores/internal/sqlite-ledger-plan-and-fork-ops.js +90 -0
- package/dist/stores/internal/sqlite-ledger-plan-and-fork-ops.js.map +1 -0
- package/dist/stores/internal/sqlite-ledger-plan-operations.d.ts +40 -0
- package/dist/stores/internal/sqlite-ledger-plan-operations.d.ts.map +1 -0
- package/dist/stores/internal/sqlite-ledger-plan-operations.js +39 -0
- package/dist/stores/internal/sqlite-ledger-plan-operations.js.map +1 -0
- package/dist/stores/internal/sqlite-ledger-run-operations.d.ts +41 -0
- package/dist/stores/internal/sqlite-ledger-run-operations.d.ts.map +1 -0
- package/dist/stores/internal/sqlite-ledger-run-operations.js +89 -0
- package/dist/stores/internal/sqlite-ledger-run-operations.js.map +1 -0
- package/dist/stores/internal/sqlite-ledger-run-ops.d.ts +58 -0
- package/dist/stores/internal/sqlite-ledger-run-ops.d.ts.map +1 -0
- package/dist/stores/internal/sqlite-ledger-run-ops.js +80 -0
- package/dist/stores/internal/sqlite-ledger-run-ops.js.map +1 -0
- package/dist/stores/internal/sqlite-ledger-step-operations.d.ts +28 -0
- package/dist/stores/internal/sqlite-ledger-step-operations.d.ts.map +1 -0
- package/dist/stores/internal/sqlite-ledger-step-operations.js +53 -0
- package/dist/stores/internal/sqlite-ledger-step-operations.js.map +1 -0
- package/dist/stores/internal/sqlite-ledger-step-ops.d.ts +47 -0
- package/dist/stores/internal/sqlite-ledger-step-ops.d.ts.map +1 -0
- package/dist/stores/internal/sqlite-ledger-step-ops.js +89 -0
- package/dist/stores/internal/sqlite-ledger-step-ops.js.map +1 -0
- package/dist/stores/internal/sqlite-lesson-ops.d.ts +100 -0
- package/dist/stores/internal/sqlite-lesson-ops.d.ts.map +1 -0
- package/dist/stores/internal/sqlite-lesson-ops.js +178 -0
- package/dist/stores/internal/sqlite-lesson-ops.js.map +1 -0
- package/dist/stores/internal/sqlite-lesson-row.d.ts +28 -0
- package/dist/stores/internal/sqlite-lesson-row.d.ts.map +1 -0
- package/dist/stores/internal/sqlite-lesson-row.js +2 -0
- package/dist/stores/internal/sqlite-lesson-row.js.map +1 -0
- package/dist/stores/internal/sqlite-overlay-step-mutation-entry.d.ts +21 -0
- package/dist/stores/internal/sqlite-overlay-step-mutation-entry.d.ts.map +1 -0
- package/dist/stores/internal/sqlite-overlay-step-mutation-entry.js +2 -0
- package/dist/stores/internal/sqlite-overlay-step-mutation-entry.js.map +1 -0
- package/dist/stores/internal/sqlite-run-row.d.ts +36 -0
- package/dist/stores/internal/sqlite-run-row.d.ts.map +1 -0
- package/dist/stores/internal/sqlite-run-row.js +2 -0
- package/dist/stores/internal/sqlite-run-row.js.map +1 -0
- package/dist/stores/internal/sqlite-step-row.d.ts +32 -0
- package/dist/stores/internal/sqlite-step-row.d.ts.map +1 -0
- package/dist/stores/internal/sqlite-step-row.js +2 -0
- package/dist/stores/internal/sqlite-step-row.js.map +1 -0
- package/dist/stores/internal/sqlite-suspended-fork-row.d.ts +22 -0
- package/dist/stores/internal/sqlite-suspended-fork-row.d.ts.map +1 -0
- package/dist/stores/internal/sqlite-suspended-fork-row.js +2 -0
- package/dist/stores/internal/sqlite-suspended-fork-row.js.map +1 -0
- package/dist/stores/internal/sqlite-topology-base-row.d.ts +18 -0
- package/dist/stores/internal/sqlite-topology-base-row.d.ts.map +1 -0
- package/dist/stores/internal/sqlite-topology-base-row.js +2 -0
- package/dist/stores/internal/sqlite-topology-base-row.js.map +1 -0
- package/dist/stores/internal/sqlite-topology-commit-ops.d.ts +37 -0
- package/dist/stores/internal/sqlite-topology-commit-ops.d.ts.map +1 -0
- package/dist/stores/internal/sqlite-topology-commit-ops.js +58 -0
- package/dist/stores/internal/sqlite-topology-commit-ops.js.map +1 -0
- package/dist/stores/internal/sqlite-topology-overlay-commit.d.ts +25 -0
- package/dist/stores/internal/sqlite-topology-overlay-commit.d.ts.map +1 -0
- package/dist/stores/internal/sqlite-topology-overlay-commit.js +51 -0
- package/dist/stores/internal/sqlite-topology-overlay-commit.js.map +1 -0
- package/dist/stores/internal/sqlite-topology-overlay-ops.d.ts +61 -0
- package/dist/stores/internal/sqlite-topology-overlay-ops.d.ts.map +1 -0
- package/dist/stores/internal/sqlite-topology-overlay-ops.js +156 -0
- package/dist/stores/internal/sqlite-topology-overlay-ops.js.map +1 -0
- package/dist/stores/internal/sqlite-topology-overlay-row.d.ts +40 -0
- package/dist/stores/internal/sqlite-topology-overlay-row.d.ts.map +1 -0
- package/dist/stores/internal/sqlite-topology-overlay-row.js +2 -0
- package/dist/stores/internal/sqlite-topology-overlay-row.js.map +1 -0
- package/dist/stores/internal/sqlite-topology-overlay-sync.d.ts +72 -0
- package/dist/stores/internal/sqlite-topology-overlay-sync.d.ts.map +1 -0
- package/dist/stores/internal/sqlite-topology-overlay-sync.js +116 -0
- package/dist/stores/internal/sqlite-topology-overlay-sync.js.map +1 -0
- package/dist/stores/internal/sqlite-wire-frame-row.d.ts +26 -0
- package/dist/stores/internal/sqlite-wire-frame-row.d.ts.map +1 -0
- package/dist/stores/internal/sqlite-wire-frame-row.js +2 -0
- package/dist/stores/internal/sqlite-wire-frame-row.js.map +1 -0
- package/dist/stores/internal/three-way-merge-contract.d.ts +25 -0
- package/dist/stores/internal/three-way-merge-contract.d.ts.map +1 -0
- package/dist/stores/internal/three-way-merge-contract.js +76 -0
- package/dist/stores/internal/three-way-merge-contract.js.map +1 -0
- package/dist/stores/internal/update-continuation-stack-params.d.ts +17 -0
- package/dist/stores/internal/update-continuation-stack-params.d.ts.map +1 -0
- package/dist/stores/internal/update-continuation-stack-params.js +2 -0
- package/dist/stores/internal/update-continuation-stack-params.js.map +1 -0
- package/dist/stores/internal/update-contract-in-overlay-params.d.ts +16 -0
- package/dist/stores/internal/update-contract-in-overlay-params.d.ts.map +1 -0
- package/dist/stores/internal/update-contract-in-overlay-params.js +2 -0
- package/dist/stores/internal/update-contract-in-overlay-params.js.map +1 -0
- package/dist/stores/internal/validate-lane-dag.d.ts +59 -0
- package/dist/stores/internal/validate-lane-dag.d.ts.map +1 -0
- package/dist/stores/internal/validate-lane-dag.js +117 -0
- package/dist/stores/internal/validate-lane-dag.js.map +1 -0
- package/dist/stores/sqlite-ledger-store.d.ts +222 -0
- package/dist/stores/sqlite-ledger-store.d.ts.map +1 -0
- package/dist/stores/sqlite-ledger-store.js +295 -0
- package/dist/stores/sqlite-ledger-store.js.map +1 -0
- package/dist/stores/sqlite-lesson-store.d.ts +96 -0
- package/dist/stores/sqlite-lesson-store.d.ts.map +1 -0
- package/dist/stores/sqlite-lesson-store.js +121 -0
- package/dist/stores/sqlite-lesson-store.js.map +1 -0
- package/dist/stores/sqlite-topology-store.d.ts +112 -0
- package/dist/stores/sqlite-topology-store.d.ts.map +1 -0
- package/dist/stores/sqlite-topology-store.js +137 -0
- package/dist/stores/sqlite-topology-store.js.map +1 -0
- package/package.json +70 -3
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
The MIT License (MIT)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Tornike Tsomaia
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
|
13
|
+
all copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
21
|
+
THE SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,3 +1,65 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @paraharness/sqlite
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
WAL-mode SQLite runtime drivers and declarative `sqlite.*` builders for [Paraharness](https://github.com/paraharness/paraharness). This package provides single-node durable persistence for `LedgerStore`, Copy-on-Write `TopologyStore`, `LessonStore`, and relational global rules sources backed by `better-sqlite3`.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
With npm:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install @paraharness/sqlite @paraharness/core zod
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
With yarn:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
yarn add @paraharness/sqlite @paraharness/core zod
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
With pnpm:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
pnpm add @paraharness/sqlite @paraharness/core zod
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Usage
|
|
26
|
+
|
|
27
|
+
```ts
|
|
28
|
+
import { P, z } from '@paraharness/core';
|
|
29
|
+
import { createExecutorRegistry } from '@paraharness/core/runtime';
|
|
30
|
+
import { sqlite, sqliteExecutors } from '@paraharness/sqlite';
|
|
31
|
+
|
|
32
|
+
const TaskInput = z.object({
|
|
33
|
+
id: z.string(),
|
|
34
|
+
prompt: z.string(),
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
const ledger = sqlite
|
|
38
|
+
.ledger('.harness/state.sqlite')
|
|
39
|
+
.compactWhen(($c) =>
|
|
40
|
+
$c
|
|
41
|
+
.onTerminalExit(['done', 'cancelled'], { afterGracePeriodHours: 24 })
|
|
42
|
+
.retainFailedRunsForDays(14),
|
|
43
|
+
);
|
|
44
|
+
|
|
45
|
+
const repoTopology = P.topology('repo-topology')
|
|
46
|
+
.store(sqlite.topologyStore('.harness/state.sqlite'))
|
|
47
|
+
.partitions({
|
|
48
|
+
db: {},
|
|
49
|
+
api: { dependsOn: ['db'] },
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
const repoLessons = P.lessons('repo-lessons')
|
|
53
|
+
.store(sqlite.lessonStore('.harness/state.sqlite'))
|
|
54
|
+
.queryFrom(TaskInput, (item) => item.prompt);
|
|
55
|
+
|
|
56
|
+
const registry = createExecutorRegistry(sqliteExecutors);
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Documentation
|
|
60
|
+
|
|
61
|
+
See the [`@paraharness/sqlite` API Reference](https://paraharness.github.io/paraharness/modules/_paraharness_sqlite.html) for full type and builder specifications.
|
|
62
|
+
|
|
63
|
+
## License
|
|
64
|
+
|
|
65
|
+
[MIT](./LICENSE) © Tornike Tsomaia
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import type { AstBuilder, CompactionConfigNode, MaybeBuilder, SignalNode } from '@paraharness/core';
|
|
2
|
+
/**
|
|
3
|
+
* Options for configuring a signal-correlated ledger compaction trigger via `CompactionConfigBuilder.onSignal`.
|
|
4
|
+
*
|
|
5
|
+
* Maps an incoming signal payload to its target `itemKey` and specifies the grace period before raw wire frames are pruned.
|
|
6
|
+
*
|
|
7
|
+
* @template TSig Signal payload type.
|
|
8
|
+
*/
|
|
9
|
+
export interface CompactionSignalTriggerOptions<TSig = unknown> {
|
|
10
|
+
/** Pure function extracting the correlated `itemKey` from the signal payload. */
|
|
11
|
+
readonly correlateBy: (sig: TSig) => string;
|
|
12
|
+
/** Non-negative retention grace period in hours after signal arrival before pruning raw wire frames. */
|
|
13
|
+
readonly afterGracePeriodHours: number;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Options for configuring a terminal exit state compaction trigger via `CompactionConfigBuilder.onTerminalExit`.
|
|
17
|
+
*
|
|
18
|
+
* Specifies the retention grace period in hours after a run reaches a configured terminal flow state.
|
|
19
|
+
*/
|
|
20
|
+
export interface CompactionTerminalExitOptions {
|
|
21
|
+
/** Non-negative retention grace period in hours after terminal exit before pruning raw wire frames. */
|
|
22
|
+
readonly afterGracePeriodHours: number;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Fluent configurator for SQLite and PostgreSQL ledger wire-frame compaction policies (`.compactWhen($c => ...)`).
|
|
26
|
+
*
|
|
27
|
+
* Schedules raw wire-frame pruning for terminal runs based on correlated signals,
|
|
28
|
+
* terminal flow exit states, and failed-run retention windows.
|
|
29
|
+
*/
|
|
30
|
+
export interface CompactionConfigBuilder extends AstBuilder<CompactionConfigNode> {
|
|
31
|
+
/**
|
|
32
|
+
* Registers a signal-driven compaction trigger correlated to a completed run's `itemKey`.
|
|
33
|
+
*
|
|
34
|
+
* Schedules raw wire-frame pruning once `signal` arrives and `options.afterGracePeriodHours` elapses.
|
|
35
|
+
*
|
|
36
|
+
* @template TSig Signal payload type.
|
|
37
|
+
*
|
|
38
|
+
* @param {MaybeBuilder<SignalNode<TSig>>} signal - Target signal AST node or builder.
|
|
39
|
+
* @param {CompactionSignalTriggerOptions<TSig>} options - Correlation mapper and grace period in hours.
|
|
40
|
+
*
|
|
41
|
+
* @returns {CompactionConfigBuilder} Updated immutable compaction configuration builder.
|
|
42
|
+
*/
|
|
43
|
+
onSignal<TSig>(signal: MaybeBuilder<SignalNode<TSig>>, options: CompactionSignalTriggerOptions<TSig>): CompactionConfigBuilder;
|
|
44
|
+
/**
|
|
45
|
+
* Registers a terminal exit state compaction trigger for completed runs.
|
|
46
|
+
*
|
|
47
|
+
* Schedules raw wire-frame pruning once a run reaches one of `states` and `options.afterGracePeriodHours` elapses.
|
|
48
|
+
*
|
|
49
|
+
* @param {readonly string[]} states - Terminal flow exit states that arm compaction.
|
|
50
|
+
* @param {CompactionTerminalExitOptions} options - Grace period in hours after terminal exit.
|
|
51
|
+
*
|
|
52
|
+
* @returns {CompactionConfigBuilder} Updated immutable compaction configuration builder.
|
|
53
|
+
*/
|
|
54
|
+
onTerminalExit(states: readonly string[], options: CompactionTerminalExitOptions): CompactionConfigBuilder;
|
|
55
|
+
/**
|
|
56
|
+
* Sets the retention window in days for failed or exhausted runs before raw wire frames are pruned.
|
|
57
|
+
*
|
|
58
|
+
* Preserves failed run wire frames for post-mortem debugging across `days` days.
|
|
59
|
+
*
|
|
60
|
+
* @param {number} days - Positive retention window in days.
|
|
61
|
+
*
|
|
62
|
+
* @returns {CompactionConfigBuilder} Updated immutable compaction configuration builder.
|
|
63
|
+
*/
|
|
64
|
+
retainFailedRunsForDays(days: number): CompactionConfigBuilder;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=compaction-config-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compaction-config-builder.d.ts","sourceRoot":"","sources":["../../src/builders/compaction-config-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpG;;;;;;GAMG;AACH,MAAM,WAAW,8BAA8B,CAAC,IAAI,GAAG,OAAO;IAC5D,iFAAiF;IACjF,QAAQ,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,MAAM,CAAC;IAC5C,wGAAwG;IACxG,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;CACxC;AAED;;;;GAIG;AACH,MAAM,WAAW,6BAA6B;IAC5C,uGAAuG;IACvG,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;CACxC;AAED;;;;;GAKG;AACH,MAAM,WAAW,uBAAwB,SAAQ,UAAU,CAAC,oBAAoB,CAAC;IAC/E;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,IAAI,EACX,MAAM,EAAE,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EACtC,OAAO,EAAE,8BAA8B,CAAC,IAAI,CAAC,GAC5C,uBAAuB,CAAC;IAE3B;;;;;;;;;OASG;IACH,cAAc,CACZ,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,OAAO,EAAE,6BAA6B,GACrC,uBAAuB,CAAC;IAE3B;;;;;;;;OAQG;IACH,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,uBAAuB,CAAC;CAChE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compaction-config-builder.js","sourceRoot":"","sources":["../../src/builders/compaction-config-builder.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { CompactionConfigBuilder } from './compaction-config-builder.js';
|
|
2
|
+
import type { CompactionConfigBuilderState } from './internal/compaction-config-builder-state.js';
|
|
3
|
+
/**
|
|
4
|
+
* Creates an immutable `CompactionConfigBuilder` instance for ledger wire-frame pruning policies.
|
|
5
|
+
*
|
|
6
|
+
* Provides copy-on-write methods for configuring signal-correlated compaction triggers,
|
|
7
|
+
* terminal-state compaction triggers, and failed-run retention windows without side effects.
|
|
8
|
+
*
|
|
9
|
+
* @param {CompactionConfigBuilderState} [state] - Optional internal copy-on-write builder state.
|
|
10
|
+
*
|
|
11
|
+
* @returns {CompactionConfigBuilder} Frozen compaction configuration builder.
|
|
12
|
+
*/
|
|
13
|
+
export declare function createCompactionConfigBuilder(state?: CompactionConfigBuilderState): CompactionConfigBuilder;
|
|
14
|
+
//# sourceMappingURL=create-compaction-config-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-compaction-config-builder.d.ts","sourceRoot":"","sources":["../../src/builders/create-compaction-config-builder.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,uBAAuB,EAGxB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,+CAA+C,CAAC;AAElG;;;;;;;;;GASG;AACH,wBAAgB,6BAA6B,CAC3C,KAAK,CAAC,EAAE,4BAA4B,GACnC,uBAAuB,CAmEzB"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { extractAST, } from '@paraharness/core';
|
|
2
|
+
/**
|
|
3
|
+
* Creates an immutable `CompactionConfigBuilder` instance for ledger wire-frame pruning policies.
|
|
4
|
+
*
|
|
5
|
+
* Provides copy-on-write methods for configuring signal-correlated compaction triggers,
|
|
6
|
+
* terminal-state compaction triggers, and failed-run retention windows without side effects.
|
|
7
|
+
*
|
|
8
|
+
* @param {CompactionConfigBuilderState} [state] - Optional internal copy-on-write builder state.
|
|
9
|
+
*
|
|
10
|
+
* @returns {CompactionConfigBuilder} Frozen compaction configuration builder.
|
|
11
|
+
*/
|
|
12
|
+
export function createCompactionConfigBuilder(state) {
|
|
13
|
+
const signalTriggers = state?.signalTriggers ?? [];
|
|
14
|
+
const terminalExitTriggers = state?.terminalExitTriggers ?? [];
|
|
15
|
+
const retainFailedRunsForDays = state?.retainFailedRunsForDays;
|
|
16
|
+
return Object.freeze({
|
|
17
|
+
onSignal(signal, options) {
|
|
18
|
+
if (!Number.isFinite(options.afterGracePeriodHours) || options.afterGracePeriodHours < 0) {
|
|
19
|
+
throw new Error(`Invalid compaction afterGracePeriodHours '${String(options.afterGracePeriodHours)}': expected a non-negative finite number.`);
|
|
20
|
+
}
|
|
21
|
+
const nextTrigger = Object.freeze({
|
|
22
|
+
signal: extractAST(signal),
|
|
23
|
+
correlateBy: options.correlateBy,
|
|
24
|
+
afterGracePeriodHours: options.afterGracePeriodHours,
|
|
25
|
+
});
|
|
26
|
+
return createCompactionConfigBuilder({
|
|
27
|
+
signalTriggers: Object.freeze([...signalTriggers, nextTrigger]),
|
|
28
|
+
terminalExitTriggers,
|
|
29
|
+
retainFailedRunsForDays,
|
|
30
|
+
});
|
|
31
|
+
},
|
|
32
|
+
onTerminalExit(states, options) {
|
|
33
|
+
if (!Number.isFinite(options.afterGracePeriodHours) || options.afterGracePeriodHours < 0) {
|
|
34
|
+
throw new Error(`Invalid compaction afterGracePeriodHours '${String(options.afterGracePeriodHours)}': expected a non-negative finite number.`);
|
|
35
|
+
}
|
|
36
|
+
const nextTrigger = Object.freeze({
|
|
37
|
+
states: Object.freeze([...states]),
|
|
38
|
+
afterGracePeriodHours: options.afterGracePeriodHours,
|
|
39
|
+
});
|
|
40
|
+
return createCompactionConfigBuilder({
|
|
41
|
+
signalTriggers,
|
|
42
|
+
terminalExitTriggers: Object.freeze([...terminalExitTriggers, nextTrigger]),
|
|
43
|
+
retainFailedRunsForDays,
|
|
44
|
+
});
|
|
45
|
+
},
|
|
46
|
+
retainFailedRunsForDays(days) {
|
|
47
|
+
if (!Number.isFinite(days) || days <= 0) {
|
|
48
|
+
throw new Error(`Invalid retainFailedRunsForDays '${String(days)}': expected a positive finite number.`);
|
|
49
|
+
}
|
|
50
|
+
return createCompactionConfigBuilder({
|
|
51
|
+
signalTriggers,
|
|
52
|
+
terminalExitTriggers,
|
|
53
|
+
retainFailedRunsForDays: days,
|
|
54
|
+
});
|
|
55
|
+
},
|
|
56
|
+
toAST() {
|
|
57
|
+
return Object.freeze({
|
|
58
|
+
type: 'harness:compaction',
|
|
59
|
+
signalTriggers: Object.freeze([...signalTriggers]),
|
|
60
|
+
terminalExitTriggers: Object.freeze([...terminalExitTriggers]),
|
|
61
|
+
retainFailedRunsForDays,
|
|
62
|
+
});
|
|
63
|
+
},
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=create-compaction-config-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-compaction-config-builder.js","sourceRoot":"","sources":["../../src/builders/create-compaction-config-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,UAAU,GACX,MAAM,mBAAmB,CAAC;AAQ3B;;;;;;;;;GASG;AACH,MAAM,UAAU,6BAA6B,CAC3C,KAAoC;IAEpC,MAAM,cAAc,GAAuC,KAAK,EAAE,cAAc,IAAI,EAAE,CAAC;IACvF,MAAM,oBAAoB,GACxB,KAAK,EAAE,oBAAoB,IAAI,EAAE,CAAC;IACpC,MAAM,uBAAuB,GAAG,KAAK,EAAE,uBAAuB,CAAC;IAE/D,OAAO,MAAM,CAAC,MAAM,CAA0B;QAC5C,QAAQ,CACN,MAAsC,EACtC,OAA6C;YAE7C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,OAAO,CAAC,qBAAqB,GAAG,CAAC,EAAE,CAAC;gBACzF,MAAM,IAAI,KAAK,CACb,6CAA6C,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC,2CAA2C,CAC9H,CAAC;YACJ,CAAC;YACD,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAgC;gBAC/D,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC;gBAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,qBAAqB,EAAE,OAAO,CAAC,qBAAqB;aACrD,CAAC,CAAC;YACH,OAAO,6BAA6B,CAAC;gBACnC,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,cAAc,EAAE,WAAW,CAAC,CAAC;gBAC/D,oBAAoB;gBACpB,uBAAuB;aACxB,CAAC,CAAC;QACL,CAAC;QACD,cAAc,CACZ,MAAyB,EACzB,OAAsC;YAEtC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,OAAO,CAAC,qBAAqB,GAAG,CAAC,EAAE,CAAC;gBACzF,MAAM,IAAI,KAAK,CACb,6CAA6C,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC,2CAA2C,CAC9H,CAAC;YACJ,CAAC;YACD,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAgC;gBAC/D,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;gBAClC,qBAAqB,EAAE,OAAO,CAAC,qBAAqB;aACrD,CAAC,CAAC;YACH,OAAO,6BAA6B,CAAC;gBACnC,cAAc;gBACd,oBAAoB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,oBAAoB,EAAE,WAAW,CAAC,CAAC;gBAC3E,uBAAuB;aACxB,CAAC,CAAC;QACL,CAAC;QACD,uBAAuB,CAAC,IAAY;YAClC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;gBACxC,MAAM,IAAI,KAAK,CACb,oCAAoC,MAAM,CAAC,IAAI,CAAC,uCAAuC,CACxF,CAAC;YACJ,CAAC;YACD,OAAO,6BAA6B,CAAC;gBACnC,cAAc;gBACd,oBAAoB;gBACpB,uBAAuB,EAAE,IAAI;aAC9B,CAAC,CAAC;QACL,CAAC;QACD,KAAK;YACH,OAAO,MAAM,CAAC,MAAM,CAAuB;gBACzC,IAAI,EAAE,oBAAoB;gBAC1B,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC;gBAClD,oBAAoB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,oBAAoB,CAAC,CAAC;gBAC9D,uBAAuB;aACxB,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { SqliteGlobalRulesBuilder } from './sqlite-global-rules-builder.js';
|
|
2
|
+
import type { SqliteGlobalRulesOptions } from './sqlite-namespace-contract.js';
|
|
3
|
+
/**
|
|
4
|
+
* Creates an immutable `SqliteGlobalRulesBuilder` for `uri` and `options.table`.
|
|
5
|
+
*
|
|
6
|
+
* Validates `options.table` against `^[A-Za-z_][A-Za-z0-9_]*$` at builder construction time
|
|
7
|
+
* to prevent SQL injection when querying global rule rows.
|
|
8
|
+
*
|
|
9
|
+
* @param {string} uri - Host-root-relative SQLite database file path or `:memory:` URI.
|
|
10
|
+
* @param {SqliteGlobalRulesOptions} options - Table name and optional source node ID.
|
|
11
|
+
*
|
|
12
|
+
* @returns {SqliteGlobalRulesBuilder} Frozen SQLite global rules source builder.
|
|
13
|
+
*/
|
|
14
|
+
export declare function createSqliteGlobalRulesBuilder(uri: string, options: SqliteGlobalRulesOptions): SqliteGlobalRulesBuilder;
|
|
15
|
+
//# sourceMappingURL=create-sqlite-global-rules-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-sqlite-global-rules-builder.d.ts","sourceRoot":"","sources":["../../src/builders/create-sqlite-global-rules-builder.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAE/E;;;;;;;;;;GAUG;AACH,wBAAgB,8BAA8B,CAC5C,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,wBAAwB,GAChC,wBAAwB,CAgB1B"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { assertValidSqlIdentifier } from '../ddl/internal/open-sqlite-connection.js';
|
|
2
|
+
/**
|
|
3
|
+
* Creates an immutable `SqliteGlobalRulesBuilder` for `uri` and `options.table`.
|
|
4
|
+
*
|
|
5
|
+
* Validates `options.table` against `^[A-Za-z_][A-Za-z0-9_]*$` at builder construction time
|
|
6
|
+
* to prevent SQL injection when querying global rule rows.
|
|
7
|
+
*
|
|
8
|
+
* @param {string} uri - Host-root-relative SQLite database file path or `:memory:` URI.
|
|
9
|
+
* @param {SqliteGlobalRulesOptions} options - Table name and optional source node ID.
|
|
10
|
+
*
|
|
11
|
+
* @returns {SqliteGlobalRulesBuilder} Frozen SQLite global rules source builder.
|
|
12
|
+
*/
|
|
13
|
+
export function createSqliteGlobalRulesBuilder(uri, options) {
|
|
14
|
+
if (uri.trim().length === 0) {
|
|
15
|
+
throw new Error('sqlite.globalRules(uri, options) requires a non-empty database URI.');
|
|
16
|
+
}
|
|
17
|
+
assertValidSqlIdentifier(options.table, 'table');
|
|
18
|
+
const sourceId = options.id ?? `sqlite:global-rules:${uri}:${options.table}`;
|
|
19
|
+
return Object.freeze({
|
|
20
|
+
toAST() {
|
|
21
|
+
return Object.freeze({
|
|
22
|
+
type: 'sqlite:global-rules',
|
|
23
|
+
id: sourceId,
|
|
24
|
+
uri,
|
|
25
|
+
table: options.table,
|
|
26
|
+
});
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=create-sqlite-global-rules-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-sqlite-global-rules-builder.js","sourceRoot":"","sources":["../../src/builders/create-sqlite-global-rules-builder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAIrF;;;;;;;;;;GAUG;AACH,MAAM,UAAU,8BAA8B,CAC5C,GAAW,EACX,OAAiC;IAEjC,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;IACzF,CAAC;IACD,wBAAwB,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,OAAO,CAAC,EAAE,IAAI,uBAAuB,GAAG,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;IAC7E,OAAO,MAAM,CAAC,MAAM,CAA2B;QAC7C,KAAK;YACH,OAAO,MAAM,CAAC,MAAM,CAAwB;gBAC1C,IAAI,EAAE,qBAAqB;gBAC3B,EAAE,EAAE,QAAQ;gBACZ,GAAG;gBACH,KAAK,EAAE,OAAO,CAAC,KAAK;aACrB,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { CompactionConfigNode } from '@paraharness/core';
|
|
2
|
+
import type { SqliteLedgerBuilder } from './sqlite-ledger-builder.js';
|
|
3
|
+
/**
|
|
4
|
+
* Creates an immutable `SqliteLedgerBuilder` targeting `uri`.
|
|
5
|
+
*
|
|
6
|
+
* Validates that `uri` is non-empty and produces passive `SqliteLedgerNode` AST descriptors
|
|
7
|
+
* with zero import-time or builder-time filesystem I/O.
|
|
8
|
+
*
|
|
9
|
+
* @param {string} uri - Host-root-relative SQLite file path or `:memory:` URI.
|
|
10
|
+
* @param {CompactionConfigNode} [compaction] - Optional pre-compiled compaction configuration node.
|
|
11
|
+
*
|
|
12
|
+
* @returns {SqliteLedgerBuilder} Frozen SQLite ledger AST builder.
|
|
13
|
+
*/
|
|
14
|
+
export declare function createSqliteLedgerBuilder(uri: string, compaction?: CompactionConfigNode): SqliteLedgerBuilder;
|
|
15
|
+
//# sourceMappingURL=create-sqlite-ledger-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-sqlite-ledger-builder.d.ts","sourceRoot":"","sources":["../../src/builders/create-sqlite-ledger-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAoB,MAAM,mBAAmB,CAAC;AAGhF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEtE;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,MAAM,EACX,UAAU,CAAC,EAAE,oBAAoB,GAChC,mBAAmB,CAmBrB"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { createCompactionConfigBuilder } from './create-compaction-config-builder.js';
|
|
2
|
+
/**
|
|
3
|
+
* Creates an immutable `SqliteLedgerBuilder` targeting `uri`.
|
|
4
|
+
*
|
|
5
|
+
* Validates that `uri` is non-empty and produces passive `SqliteLedgerNode` AST descriptors
|
|
6
|
+
* with zero import-time or builder-time filesystem I/O.
|
|
7
|
+
*
|
|
8
|
+
* @param {string} uri - Host-root-relative SQLite file path or `:memory:` URI.
|
|
9
|
+
* @param {CompactionConfigNode} [compaction] - Optional pre-compiled compaction configuration node.
|
|
10
|
+
*
|
|
11
|
+
* @returns {SqliteLedgerBuilder} Frozen SQLite ledger AST builder.
|
|
12
|
+
*/
|
|
13
|
+
export function createSqliteLedgerBuilder(uri, compaction) {
|
|
14
|
+
if (uri.trim().length === 0) {
|
|
15
|
+
throw new Error('sqlite.ledger(uri) requires a non-empty database URI.');
|
|
16
|
+
}
|
|
17
|
+
return Object.freeze({
|
|
18
|
+
compactWhen(configure) {
|
|
19
|
+
const nextCompaction = configure(createCompactionConfigBuilder()).toAST();
|
|
20
|
+
return createSqliteLedgerBuilder(uri, nextCompaction);
|
|
21
|
+
},
|
|
22
|
+
toAST() {
|
|
23
|
+
return Object.freeze({
|
|
24
|
+
type: 'sqlite:ledger',
|
|
25
|
+
uri,
|
|
26
|
+
compaction,
|
|
27
|
+
});
|
|
28
|
+
},
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=create-sqlite-ledger-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-sqlite-ledger-builder.js","sourceRoot":"","sources":["../../src/builders/create-sqlite-ledger-builder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AAGtF;;;;;;;;;;GAUG;AACH,MAAM,UAAU,yBAAyB,CACvC,GAAW,EACX,UAAiC;IAEjC,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAsB;QACxC,WAAW,CACT,SAAwE;YAExE,MAAM,cAAc,GAAG,SAAS,CAAC,6BAA6B,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;YAC1E,OAAO,yBAAyB,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QACxD,CAAC;QACD,KAAK;YACH,OAAO,MAAM,CAAC,MAAM,CAAmB;gBACrC,IAAI,EAAE,eAAe;gBACrB,GAAG;gBACH,UAAU;aACX,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { SqliteLessonsBuilder } from './sqlite-lessons-builder.js';
|
|
2
|
+
/**
|
|
3
|
+
* Creates an immutable `SqliteLessonsBuilder` targeting `uri`.
|
|
4
|
+
*
|
|
5
|
+
* Validates that `uri` is non-empty and emits a frozen `SqliteLessonsNode` AST node on `.toAST()`.
|
|
6
|
+
*
|
|
7
|
+
* @param {string} uri - Host-root-relative SQLite database file path or `:memory:` URI.
|
|
8
|
+
*
|
|
9
|
+
* @returns {SqliteLessonsBuilder} Frozen SQLite lesson store builder.
|
|
10
|
+
*/
|
|
11
|
+
export declare function createSqliteLessonsBuilder(uri: string): SqliteLessonsBuilder;
|
|
12
|
+
//# sourceMappingURL=create-sqlite-lessons-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-sqlite-lessons-builder.d.ts","sourceRoot":"","sources":["../../src/builders/create-sqlite-lessons-builder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAExE;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB,CAY5E"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Creates an immutable `SqliteLessonsBuilder` targeting `uri`.
|
|
3
|
+
*
|
|
4
|
+
* Validates that `uri` is non-empty and emits a frozen `SqliteLessonsNode` AST node on `.toAST()`.
|
|
5
|
+
*
|
|
6
|
+
* @param {string} uri - Host-root-relative SQLite database file path or `:memory:` URI.
|
|
7
|
+
*
|
|
8
|
+
* @returns {SqliteLessonsBuilder} Frozen SQLite lesson store builder.
|
|
9
|
+
*/
|
|
10
|
+
export function createSqliteLessonsBuilder(uri) {
|
|
11
|
+
if (uri.trim().length === 0) {
|
|
12
|
+
throw new Error('sqlite.lessonStore(uri) requires a non-empty database URI.');
|
|
13
|
+
}
|
|
14
|
+
return Object.freeze({
|
|
15
|
+
toAST() {
|
|
16
|
+
return Object.freeze({
|
|
17
|
+
type: 'sqlite:lessons',
|
|
18
|
+
uri,
|
|
19
|
+
});
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=create-sqlite-lessons-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-sqlite-lessons-builder.js","sourceRoot":"","sources":["../../src/builders/create-sqlite-lessons-builder.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AACH,MAAM,UAAU,0BAA0B,CAAC,GAAW;IACpD,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAuB;QACzC,KAAK;YACH,OAAO,MAAM,CAAC,MAAM,CAAoB;gBACtC,IAAI,EAAE,gBAAgB;gBACtB,GAAG;aACJ,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { SqliteTopologyBuilder } from './sqlite-topology-builder.js';
|
|
2
|
+
/**
|
|
3
|
+
* Creates an immutable `SqliteTopologyBuilder` targeting `uri`.
|
|
4
|
+
*
|
|
5
|
+
* Validates that `uri` is non-empty and emits a frozen `SqliteTopologyNode` AST node on `.toAST()`.
|
|
6
|
+
*
|
|
7
|
+
* @param {string} uri - Host-root-relative SQLite database file path or `:memory:` URI.
|
|
8
|
+
*
|
|
9
|
+
* @returns {SqliteTopologyBuilder} Frozen SQLite topology store builder.
|
|
10
|
+
*/
|
|
11
|
+
export declare function createSqliteTopologyBuilder(uri: string): SqliteTopologyBuilder;
|
|
12
|
+
//# sourceMappingURL=create-sqlite-topology-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-sqlite-topology-builder.d.ts","sourceRoot":"","sources":["../../src/builders/create-sqlite-topology-builder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAE1E;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,MAAM,GAAG,qBAAqB,CAY9E"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Creates an immutable `SqliteTopologyBuilder` targeting `uri`.
|
|
3
|
+
*
|
|
4
|
+
* Validates that `uri` is non-empty and emits a frozen `SqliteTopologyNode` AST node on `.toAST()`.
|
|
5
|
+
*
|
|
6
|
+
* @param {string} uri - Host-root-relative SQLite database file path or `:memory:` URI.
|
|
7
|
+
*
|
|
8
|
+
* @returns {SqliteTopologyBuilder} Frozen SQLite topology store builder.
|
|
9
|
+
*/
|
|
10
|
+
export function createSqliteTopologyBuilder(uri) {
|
|
11
|
+
if (uri.trim().length === 0) {
|
|
12
|
+
throw new Error('sqlite.topologyStore(uri) requires a non-empty database URI.');
|
|
13
|
+
}
|
|
14
|
+
return Object.freeze({
|
|
15
|
+
toAST() {
|
|
16
|
+
return Object.freeze({
|
|
17
|
+
type: 'sqlite:topology',
|
|
18
|
+
uri,
|
|
19
|
+
});
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=create-sqlite-topology-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-sqlite-topology-builder.js","sourceRoot":"","sources":["../../src/builders/create-sqlite-topology-builder.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AACH,MAAM,UAAU,2BAA2B,CAAC,GAAW;IACrD,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;IAClF,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAwB;QAC1C,KAAK;YACH,OAAO,MAAM,CAAC,MAAM,CAAqB;gBACvC,IAAI,EAAE,iBAAiB;gBACvB,GAAG;aACJ,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { CompactionSignalTrigger, CompactionTerminalExitTrigger } from '@paraharness/core';
|
|
2
|
+
/**
|
|
3
|
+
* Immutable internal state snapshot for `createCompactionConfigBuilder`.
|
|
4
|
+
*
|
|
5
|
+
* Accumulates signal triggers, terminal-state triggers, and failed-run retention windows
|
|
6
|
+
* across copy-on-write builder transitions.
|
|
7
|
+
*/
|
|
8
|
+
export interface CompactionConfigBuilderState {
|
|
9
|
+
/** Signal-driven compaction triggers accumulated on the builder. */
|
|
10
|
+
readonly signalTriggers?: readonly CompactionSignalTrigger[];
|
|
11
|
+
/** Terminal exit state triggers accumulated on the builder. */
|
|
12
|
+
readonly terminalExitTriggers?: readonly CompactionTerminalExitTrigger[];
|
|
13
|
+
/** Optional retention window in days for failed runs. */
|
|
14
|
+
readonly retainFailedRunsForDays?: number;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=compaction-config-builder-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compaction-config-builder-state.d.ts","sourceRoot":"","sources":["../../../src/builders/internal/compaction-config-builder-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AAEhG;;;;;GAKG;AACH,MAAM,WAAW,4BAA4B;IAC3C,oEAAoE;IACpE,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,uBAAuB,EAAE,CAAC;IAC7D,+DAA+D;IAC/D,QAAQ,CAAC,oBAAoB,CAAC,EAAE,SAAS,6BAA6B,EAAE,CAAC;IACzE,yDAAyD;IACzD,QAAQ,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAC3C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compaction-config-builder-state.js","sourceRoot":"","sources":["../../../src/builders/internal/compaction-config-builder-state.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { AstBuilder, SqliteRulesSourceNode } from '@paraharness/core';
|
|
2
|
+
/**
|
|
3
|
+
* Fluent builder for a passive `SqliteRulesSourceNode` (`sqlite.globalRules(uri, { table })`).
|
|
4
|
+
*
|
|
5
|
+
* Emits a declarative source descriptor that loads ordered `(id, directive)` global rules from SQLite.
|
|
6
|
+
*/
|
|
7
|
+
export interface SqliteGlobalRulesBuilder extends AstBuilder<SqliteRulesSourceNode> {
|
|
8
|
+
/**
|
|
9
|
+
* Compiles the builder into an immutable `SqliteRulesSourceNode` AST descriptor.
|
|
10
|
+
*
|
|
11
|
+
* Preserves the validated SQLite URI and table identifier for runtime source execution.
|
|
12
|
+
*
|
|
13
|
+
* @returns {SqliteRulesSourceNode} Frozen passive `SqliteRulesSourceNode`.
|
|
14
|
+
*/
|
|
15
|
+
toAST(): SqliteRulesSourceNode;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=sqlite-global-rules-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqlite-global-rules-builder.d.ts","sourceRoot":"","sources":["../../src/builders/sqlite-global-rules-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE3E;;;;GAIG;AACH,MAAM,WAAW,wBAAyB,SAAQ,UAAU,CAAC,qBAAqB,CAAC;IACjF;;;;;;OAMG;IACH,KAAK,IAAI,qBAAqB,CAAC;CAChC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqlite-global-rules-builder.js","sourceRoot":"","sources":["../../src/builders/sqlite-global-rules-builder.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { AstBuilder, SqliteLedgerNode } from '@paraharness/core';
|
|
2
|
+
import type { CompactionConfigBuilder } from './compaction-config-builder.js';
|
|
3
|
+
/**
|
|
4
|
+
* Fluent builder for a passive `SqliteLedgerNode` (`sqlite.ledger(uri)`).
|
|
5
|
+
*
|
|
6
|
+
* Configures a WAL-mode SQLite ledger store and optional wire-frame compaction triggers
|
|
7
|
+
* without opening database connections at declaration time.
|
|
8
|
+
*/
|
|
9
|
+
export interface SqliteLedgerBuilder extends AstBuilder<SqliteLedgerNode> {
|
|
10
|
+
/**
|
|
11
|
+
* Attaches a wire-frame compaction policy to the SQLite ledger store.
|
|
12
|
+
*
|
|
13
|
+
* Invokes `configure` with a fresh `CompactionConfigBuilder` and returns a new immutable ledger builder.
|
|
14
|
+
*
|
|
15
|
+
* @param {(builder: CompactionConfigBuilder) => CompactionConfigBuilder} configure - Pure configurator callback.
|
|
16
|
+
*
|
|
17
|
+
* @returns {SqliteLedgerBuilder} Updated immutable SQLite ledger builder.
|
|
18
|
+
*/
|
|
19
|
+
compactWhen(configure: (builder: CompactionConfigBuilder) => CompactionConfigBuilder): SqliteLedgerBuilder;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=sqlite-ledger-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqlite-ledger-builder.d.ts","sourceRoot":"","sources":["../../src/builders/sqlite-ledger-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAE9E;;;;;GAKG;AACH,MAAM,WAAW,mBAAoB,SAAQ,UAAU,CAAC,gBAAgB,CAAC;IACvE;;;;;;;;OAQG;IACH,WAAW,CACT,SAAS,EAAE,CAAC,OAAO,EAAE,uBAAuB,KAAK,uBAAuB,GACvE,mBAAmB,CAAC;CACxB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqlite-ledger-builder.js","sourceRoot":"","sources":["../../src/builders/sqlite-ledger-builder.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { AstBuilder, SqliteLessonsNode } from '@paraharness/core';
|
|
2
|
+
/**
|
|
3
|
+
* Fluent builder for a passive `SqliteLessonsNode` (`sqlite.lessonStore(uri)`).
|
|
4
|
+
*
|
|
5
|
+
* Produces a declarative lesson store descriptor backed by a WAL-mode SQLite database
|
|
6
|
+
* with zero I/O at AST construction time.
|
|
7
|
+
*/
|
|
8
|
+
export interface SqliteLessonsBuilder extends AstBuilder<SqliteLessonsNode> {
|
|
9
|
+
/**
|
|
10
|
+
* Compiles the builder into an immutable `SqliteLessonsNode` AST descriptor.
|
|
11
|
+
*
|
|
12
|
+
* Preserves the configured SQLite database URI for runtime driver resolution.
|
|
13
|
+
*
|
|
14
|
+
* @returns {SqliteLessonsNode} Frozen passive `SqliteLessonsNode`.
|
|
15
|
+
*/
|
|
16
|
+
toAST(): SqliteLessonsNode;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=sqlite-lessons-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqlite-lessons-builder.d.ts","sourceRoot":"","sources":["../../src/builders/sqlite-lessons-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEvE;;;;;GAKG;AACH,MAAM,WAAW,oBAAqB,SAAQ,UAAU,CAAC,iBAAiB,CAAC;IACzE;;;;;;OAMG;IACH,KAAK,IAAI,iBAAiB,CAAC;CAC5B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqlite-lessons-builder.js","sourceRoot":"","sources":["../../src/builders/sqlite-lessons-builder.ts"],"names":[],"mappings":""}
|