@alan512/experienceengine 0.1.0 → 0.1.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/.claude-plugin/plugin.json +1 -1
- package/.mcp.json +4 -8
- package/LICENSE +21 -0
- package/README.md +158 -47
- package/README.zh-CN.md +178 -57
- package/dist/adapters/codex/instruction-template.d.ts +3 -0
- package/dist/adapters/codex/instruction-template.js +12 -0
- package/dist/adapters/codex/instruction-template.js.map +1 -0
- package/dist/adapters/codex/mcp-server.d.ts +38 -41
- package/dist/adapters/codex/mcp-server.js +107 -338
- package/dist/adapters/codex/mcp-server.js.map +1 -1
- package/dist/analyzer/llm-learning-gate.js +39 -0
- package/dist/analyzer/llm-learning-gate.js.map +1 -1
- package/dist/cli/commands/claude-hook.js +12 -3
- package/dist/cli/commands/claude-hook.js.map +1 -1
- package/dist/cli/commands/config.js +88 -2
- package/dist/cli/commands/config.js.map +1 -1
- package/dist/cli/commands/doctor.d.ts +4 -28
- package/dist/cli/commands/doctor.js +136 -68
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/feedback.js +4 -0
- package/dist/cli/commands/feedback.js.map +1 -1
- package/dist/cli/commands/init.d.ts +28 -0
- package/dist/cli/commands/init.js +419 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/inspect.js +203 -37
- package/dist/cli/commands/inspect.js.map +1 -1
- package/dist/cli/commands/install.js +9 -0
- package/dist/cli/commands/install.js.map +1 -1
- package/dist/cli/commands/maintenance.js +1 -1
- package/dist/cli/commands/maintenance.js.map +1 -1
- package/dist/cli/commands/mcp-server.js +4 -0
- package/dist/cli/commands/mcp-server.js.map +1 -1
- package/dist/cli/commands/status.js +57 -7
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/dispatch.js +22 -7
- package/dist/cli/dispatch.js.map +1 -1
- package/dist/cli/state-model.d.ts +14 -0
- package/dist/cli/state-model.js +23 -0
- package/dist/cli/state-model.js.map +1 -0
- package/dist/config/config-schema.d.ts +32 -0
- package/dist/config/config-schema.js +26 -0
- package/dist/config/config-schema.js.map +1 -1
- package/dist/config/default-config.js +3 -0
- package/dist/config/default-config.js.map +1 -1
- package/dist/config/load-config.js +19 -1
- package/dist/config/load-config.js.map +1 -1
- package/dist/config/path-resolver.d.ts +0 -1
- package/dist/config/path-resolver.js +0 -2
- package/dist/config/path-resolver.js.map +1 -1
- package/dist/config/runtime-env.d.ts +8 -0
- package/dist/config/runtime-env.js +14 -0
- package/dist/config/runtime-env.js.map +1 -0
- package/dist/config/secrets-store.d.ts +15 -0
- package/dist/config/secrets-store.js +56 -0
- package/dist/config/secrets-store.js.map +1 -0
- package/dist/config/settings-store.d.ts +10 -0
- package/dist/config/settings-store.js +44 -0
- package/dist/config/settings-store.js.map +1 -1
- package/dist/controller/candidate-retriever.d.ts +35 -2
- package/dist/controller/candidate-retriever.js +189 -10
- package/dist/controller/candidate-retriever.js.map +1 -1
- package/dist/controller/injection-renderer.js +52 -1
- package/dist/controller/injection-renderer.js.map +1 -1
- package/dist/controller/injection-scorecard.d.ts +14 -2
- package/dist/controller/injection-scorecard.js +18 -1
- package/dist/controller/injection-scorecard.js.map +1 -1
- package/dist/controller/intervention-controller.d.ts +15 -2
- package/dist/controller/intervention-controller.js +173 -11
- package/dist/controller/intervention-controller.js.map +1 -1
- package/dist/controller/lexical-retriever.d.ts +14 -0
- package/dist/controller/lexical-retriever.js +117 -0
- package/dist/controller/lexical-retriever.js.map +1 -0
- package/dist/controller/model-reranker.d.ts +20 -0
- package/dist/controller/model-reranker.js +187 -0
- package/dist/controller/model-reranker.js.map +1 -0
- package/dist/controller/node-ranker.js +1 -0
- package/dist/controller/node-ranker.js.map +1 -1
- package/dist/controller/query-rewrite.d.ts +8 -0
- package/dist/controller/query-rewrite.js +69 -0
- package/dist/controller/query-rewrite.js.map +1 -0
- package/dist/controller/trigger-evaluator.d.ts +23 -2
- package/dist/controller/trigger-evaluator.js +57 -3
- package/dist/controller/trigger-evaluator.js.map +1 -1
- package/dist/distillation/experience-family.d.ts +4 -0
- package/dist/distillation/experience-family.js +14 -0
- package/dist/distillation/experience-family.js.map +1 -0
- package/dist/distillation/host-llm.d.ts +1 -0
- package/dist/distillation/host-llm.js +5 -1
- package/dist/distillation/host-llm.js.map +1 -1
- package/dist/distillation/llm-distiller.js +4 -0
- package/dist/distillation/llm-distiller.js.map +1 -1
- package/dist/distillation/merge-decider.js +4 -0
- package/dist/distillation/merge-decider.js.map +1 -1
- package/dist/distillation/prompt-contract.d.ts +1 -1
- package/dist/distillation/prompt-contract.js +3 -0
- package/dist/distillation/prompt-contract.js.map +1 -1
- package/dist/distillation/queue-worker.js +57 -7
- package/dist/distillation/queue-worker.js.map +1 -1
- package/dist/feedback/state-transition.js +9 -0
- package/dist/feedback/state-transition.js.map +1 -1
- package/dist/input/input-adapter.js +2 -1
- package/dist/input/input-adapter.js.map +1 -1
- package/dist/input/outcome-resolver.js +5 -5
- package/dist/input/outcome-resolver.js.map +1 -1
- package/dist/input/tasktype-resolver.js +2 -0
- package/dist/input/tasktype-resolver.js.map +1 -1
- package/dist/input/tool-event-significance.d.ts +5 -0
- package/dist/input/tool-event-significance.js +7 -0
- package/dist/input/tool-event-significance.js.map +1 -0
- package/dist/install/claude-code-doctor.d.ts +7 -2
- package/dist/install/claude-code-doctor.js +38 -9
- package/dist/install/claude-code-doctor.js.map +1 -1
- package/dist/install/claude-marketplace-state.d.ts +14 -0
- package/dist/install/claude-marketplace-state.js +47 -0
- package/dist/install/claude-marketplace-state.js.map +1 -0
- package/dist/install/codex-installer.d.ts +18 -0
- package/dist/install/codex-installer.js +91 -1
- package/dist/install/codex-installer.js.map +1 -1
- package/dist/install/openclaw-installer.d.ts +7 -0
- package/dist/install/openclaw-installer.js +16 -0
- package/dist/install/openclaw-installer.js.map +1 -1
- package/dist/install/public-install.d.ts +14 -4
- package/dist/install/public-install.js +20 -7
- package/dist/install/public-install.js.map +1 -1
- package/dist/interaction/repo-summary.d.ts +3 -17
- package/dist/interaction/repo-summary.js +10 -27
- package/dist/interaction/repo-summary.js.map +1 -1
- package/dist/interaction/service.d.ts +44 -95
- package/dist/interaction/service.js +333 -248
- package/dist/interaction/service.js.map +1 -1
- package/dist/maintenance/scope-merge.d.ts +0 -1
- package/dist/maintenance/scope-merge.js +0 -20
- package/dist/maintenance/scope-merge.js.map +1 -1
- package/dist/plugin/openclaw-plugin.d.ts +23 -0
- package/dist/plugin/openclaw-plugin.js +86 -6
- package/dist/plugin/openclaw-plugin.js.map +1 -1
- package/dist/plugin/openclaw-routine-interaction.d.ts +6 -0
- package/dist/plugin/openclaw-routine-interaction.js +296 -0
- package/dist/plugin/openclaw-routine-interaction.js.map +1 -0
- package/dist/runtime/service.d.ts +0 -1
- package/dist/runtime/service.js +20 -29
- package/dist/runtime/service.js.map +1 -1
- package/dist/store/sqlite/db.js +9 -0
- package/dist/store/sqlite/db.js.map +1 -1
- package/dist/store/sqlite/repositories/candidate-repo.js +8 -2
- package/dist/store/sqlite/repositories/candidate-repo.js.map +1 -1
- package/dist/store/sqlite/repositories/injection-repo.d.ts +1 -0
- package/dist/store/sqlite/repositories/injection-repo.js +11 -0
- package/dist/store/sqlite/repositories/injection-repo.js.map +1 -1
- package/dist/store/sqlite/repositories/input-record-repo.d.ts +2 -0
- package/dist/store/sqlite/repositories/input-record-repo.js +22 -0
- package/dist/store/sqlite/repositories/input-record-repo.js.map +1 -1
- package/dist/store/sqlite/repositories/node-repo.js +17 -2
- package/dist/store/sqlite/repositories/node-repo.js.map +1 -1
- package/dist/store/sqlite/repositories/task-run-repo.d.ts +2 -0
- package/dist/store/sqlite/repositories/task-run-repo.js +18 -2
- package/dist/store/sqlite/repositories/task-run-repo.js.map +1 -1
- package/dist/store/sqlite/schema.sql +9 -49
- package/dist/store/vector/api-embedding-provider.d.ts +2 -0
- package/dist/store/vector/api-embedding-provider.js +23 -19
- package/dist/store/vector/api-embedding-provider.js.map +1 -1
- package/dist/store/vector/embeddings.d.ts +1 -1
- package/dist/store/vector/embeddings.js +4 -1
- package/dist/store/vector/embeddings.js.map +1 -1
- package/dist/types/domain.d.ts +30 -46
- package/dist/types/plugin.d.ts +2 -1
- package/docs/releases/v0.1.2.md +3 -3
- package/docs/releases/v0.1.3.md +94 -0
- package/docs/user-guide.md +226 -123
- package/openclaw.plugin.json +1 -1
- package/package.json +3 -2
- package/plugins/claude-code-experienceengine/.claude-plugin/plugin.json +1 -1
- package/plugins/claude-code-experienceengine/.mcp.json +4 -3
- package/plugins/claude-code-experienceengine/scripts/claude-hook.sh +30 -1
- package/plugins/claude-code-experienceengine/scripts/install-deps.sh +41 -6
- package/dist/cli/commands/pack.d.ts +0 -1
- package/dist/cli/commands/pack.js +0 -321
- package/dist/cli/commands/pack.js.map +0 -1
- package/dist/compiler/agents-renderer.d.ts +0 -4
- package/dist/compiler/agents-renderer.js +0 -105
- package/dist/compiler/agents-renderer.js.map +0 -1
- package/dist/compiler/claude-renderer.d.ts +0 -2
- package/dist/compiler/claude-renderer.js +0 -40
- package/dist/compiler/claude-renderer.js.map +0 -1
- package/dist/compiler/codex-renderer.d.ts +0 -2
- package/dist/compiler/codex-renderer.js +0 -40
- package/dist/compiler/codex-renderer.js.map +0 -1
- package/dist/compiler/compiler.d.ts +0 -4
- package/dist/compiler/compiler.js +0 -87
- package/dist/compiler/compiler.js.map +0 -1
- package/dist/compiler/deployer.d.ts +0 -21
- package/dist/compiler/deployer.js +0 -64
- package/dist/compiler/deployer.js.map +0 -1
- package/dist/compiler/github-renderer.d.ts +0 -2
- package/dist/compiler/github-renderer.js +0 -63
- package/dist/compiler/github-renderer.js.map +0 -1
- package/dist/compiler/types.d.ts +0 -45
- package/dist/compiler/types.js +0 -2
- package/dist/compiler/types.js.map +0 -1
- package/dist/interaction/pack-actions-service.d.ts +0 -59
- package/dist/interaction/pack-actions-service.js +0 -172
- package/dist/interaction/pack-actions-service.js.map +0 -1
- package/dist/packs/fs-registry.d.ts +0 -27
- package/dist/packs/fs-registry.js +0 -216
- package/dist/packs/fs-registry.js.map +0 -1
- package/dist/packs/index-sync.d.ts +0 -9
- package/dist/packs/index-sync.js +0 -54
- package/dist/packs/index-sync.js.map +0 -1
- package/dist/packs/types.d.ts +0 -55
- package/dist/packs/types.js +0 -2
- package/dist/packs/types.js.map +0 -1
- package/dist/store/sqlite/repositories/pack-repo.d.ts +0 -16
- package/dist/store/sqlite/repositories/pack-repo.js +0 -192
- package/dist/store/sqlite/repositories/pack-repo.js.map +0 -1
|
@@ -1,216 +0,0 @@
|
|
|
1
|
-
import { existsSync, mkdirSync, readdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
2
|
-
import { join, resolve } from "node:path";
|
|
3
|
-
import { nowIso } from "../utils/clock.js";
|
|
4
|
-
const VERSION_PREFIX = "v";
|
|
5
|
-
const toNodeSnapshot = (node) => ({
|
|
6
|
-
id: node.id,
|
|
7
|
-
node_type: node.node_type,
|
|
8
|
-
scope_id: node.scope_id,
|
|
9
|
-
task_type: node.task_type,
|
|
10
|
-
trigger_pattern: node.trigger_pattern,
|
|
11
|
-
compact_hint: node.compact_hint,
|
|
12
|
-
evidence_summary: node.evidence_summary,
|
|
13
|
-
source_kind: node.source_kind,
|
|
14
|
-
state: node.state,
|
|
15
|
-
usage_count: node.usage_count,
|
|
16
|
-
helped_count: node.helped_count,
|
|
17
|
-
harmed_count: node.harmed_count,
|
|
18
|
-
support_count: node.support_count,
|
|
19
|
-
distillation_mode_used: node.distillation_mode_used,
|
|
20
|
-
distillation_source: node.distillation_source,
|
|
21
|
-
created_at: node.created_at,
|
|
22
|
-
updated_at: node.updated_at
|
|
23
|
-
});
|
|
24
|
-
const buildEvidenceSummary = (nodes) => nodes
|
|
25
|
-
.map((node) => node.evidence_summary)
|
|
26
|
-
.filter((value, index, all) => value && all.indexOf(value) === index)
|
|
27
|
-
.join(" | ");
|
|
28
|
-
const parseVersionNumber = (value) => {
|
|
29
|
-
const numeric = Number(value.replace(/^v/i, ""));
|
|
30
|
-
return Number.isInteger(numeric) && numeric > 0 ? numeric : 0;
|
|
31
|
-
};
|
|
32
|
-
const nextVersionId = (versions) => `${VERSION_PREFIX}${Math.max(0, ...versions.map(parseVersionNumber)) + 1}`;
|
|
33
|
-
export class ExperiencePackRegistry {
|
|
34
|
-
packsDir;
|
|
35
|
-
constructor(args) {
|
|
36
|
-
this.packsDir = resolve(args.packsDir);
|
|
37
|
-
}
|
|
38
|
-
ensureRegistryRoot() {
|
|
39
|
-
mkdirSync(this.packsDir, { recursive: true });
|
|
40
|
-
}
|
|
41
|
-
packDir(packId) {
|
|
42
|
-
return join(this.packsDir, packId);
|
|
43
|
-
}
|
|
44
|
-
versionDir(packId, version) {
|
|
45
|
-
return join(this.packDir(packId), "versions", version);
|
|
46
|
-
}
|
|
47
|
-
compiledRoot(packId) {
|
|
48
|
-
return join(this.packDir(packId), "compiled");
|
|
49
|
-
}
|
|
50
|
-
readJson(path) {
|
|
51
|
-
return JSON.parse(readFileSync(path, "utf8"));
|
|
52
|
-
}
|
|
53
|
-
listPacks() {
|
|
54
|
-
this.ensureRegistryRoot();
|
|
55
|
-
return readdirSync(this.packsDir, { withFileTypes: true })
|
|
56
|
-
.filter((entry) => entry.isDirectory())
|
|
57
|
-
.map((entry) => this.readPack(entry.name));
|
|
58
|
-
}
|
|
59
|
-
createDraft(input) {
|
|
60
|
-
const now = nowIso();
|
|
61
|
-
this.ensureRegistryRoot();
|
|
62
|
-
const existing = existsSync(join(this.packDir(input.packId), "pack.json"))
|
|
63
|
-
? this.readPack(input.packId)
|
|
64
|
-
: undefined;
|
|
65
|
-
const existingVersions = existing ? this.listVersions(input.packId).map((entry) => entry.version) : [];
|
|
66
|
-
const version = existing ? nextVersionId(existingVersions) : `${VERSION_PREFIX}1`;
|
|
67
|
-
const packDir = this.packDir(input.packId);
|
|
68
|
-
const versionDir = this.versionDir(input.packId, version);
|
|
69
|
-
mkdirSync(versionDir, { recursive: true });
|
|
70
|
-
const pack = {
|
|
71
|
-
packId: input.packId,
|
|
72
|
-
name: input.name || existing?.name || input.packId,
|
|
73
|
-
description: input.description,
|
|
74
|
-
owner: input.owner || existing?.owner || "unknown",
|
|
75
|
-
status: "draft",
|
|
76
|
-
currentVersion: version,
|
|
77
|
-
createdAt: existing?.createdAt ?? now,
|
|
78
|
-
updatedAt: now,
|
|
79
|
-
publishedAt: existing?.publishedAt,
|
|
80
|
-
rolledBackAt: undefined,
|
|
81
|
-
scopeHints: input.scopeHints,
|
|
82
|
-
taskFamilies: input.taskFamilies,
|
|
83
|
-
hostCompatibility: input.hostCompatibility
|
|
84
|
-
};
|
|
85
|
-
const manifest = {
|
|
86
|
-
packId: input.packId,
|
|
87
|
-
version,
|
|
88
|
-
statusSnapshot: "draft",
|
|
89
|
-
sourceNodeIds: input.nodes.map((node) => node.id),
|
|
90
|
-
evidenceSummary: buildEvidenceSummary(input.nodes),
|
|
91
|
-
riskLevel: "medium",
|
|
92
|
-
hostCompatibility: input.hostCompatibility,
|
|
93
|
-
createdAt: now
|
|
94
|
-
};
|
|
95
|
-
const snapshots = input.nodes.map((node) => toNodeSnapshot(node));
|
|
96
|
-
writeFileSync(join(packDir, "pack.json"), JSON.stringify(pack, null, 2));
|
|
97
|
-
writeFileSync(join(versionDir, "manifest.json"), JSON.stringify(manifest, null, 2));
|
|
98
|
-
writeFileSync(join(versionDir, "nodes.json"), JSON.stringify(snapshots, null, 2));
|
|
99
|
-
return pack;
|
|
100
|
-
}
|
|
101
|
-
readPack(packId) {
|
|
102
|
-
return this.readJson(join(this.packsDir, packId, "pack.json"));
|
|
103
|
-
}
|
|
104
|
-
readVersionManifest(packId, version) {
|
|
105
|
-
return this.readJson(join(this.versionDir(packId, version), "manifest.json"));
|
|
106
|
-
}
|
|
107
|
-
listVersions(packId) {
|
|
108
|
-
const versionsRoot = join(this.packDir(packId), "versions");
|
|
109
|
-
if (!existsSync(versionsRoot)) {
|
|
110
|
-
return [];
|
|
111
|
-
}
|
|
112
|
-
return readdirSync(versionsRoot, { withFileTypes: true })
|
|
113
|
-
.filter((entry) => entry.isDirectory())
|
|
114
|
-
.map((entry) => this.readVersionManifest(packId, entry.name))
|
|
115
|
-
.sort((left, right) => parseVersionNumber(left.version) - parseVersionNumber(right.version));
|
|
116
|
-
}
|
|
117
|
-
readVersionNodes(packId, version) {
|
|
118
|
-
return this.readJson(join(this.versionDir(packId, version), "nodes.json"));
|
|
119
|
-
}
|
|
120
|
-
listCompiledArtifacts(packId) {
|
|
121
|
-
const compiledRoot = this.compiledRoot(packId);
|
|
122
|
-
if (!existsSync(compiledRoot)) {
|
|
123
|
-
return [];
|
|
124
|
-
}
|
|
125
|
-
const artifacts = [];
|
|
126
|
-
for (const targetEntry of readdirSync(compiledRoot, { withFileTypes: true }).filter((entry) => entry.isDirectory())) {
|
|
127
|
-
const targetRoot = join(compiledRoot, targetEntry.name);
|
|
128
|
-
for (const versionEntry of readdirSync(targetRoot, { withFileTypes: true }).filter((entry) => entry.isDirectory())) {
|
|
129
|
-
const reportPath = join(targetRoot, versionEntry.name, "compile-report.json");
|
|
130
|
-
if (!existsSync(reportPath)) {
|
|
131
|
-
continue;
|
|
132
|
-
}
|
|
133
|
-
const report = this.readJson(reportPath);
|
|
134
|
-
artifacts.push({
|
|
135
|
-
target: report.target,
|
|
136
|
-
version: report.version,
|
|
137
|
-
generatedAt: report.generatedAt,
|
|
138
|
-
outputPath: report.outputPath,
|
|
139
|
-
reportPath,
|
|
140
|
-
renderedNodeCount: report.renderedNodeCount
|
|
141
|
-
});
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
return artifacts.sort((left, right) => right.generatedAt.localeCompare(left.generatedAt) ||
|
|
145
|
-
left.target.localeCompare(right.target) ||
|
|
146
|
-
left.version.localeCompare(right.version));
|
|
147
|
-
}
|
|
148
|
-
getCompileStatus(packId, currentVersion) {
|
|
149
|
-
const artifacts = this.listCompiledArtifacts(packId);
|
|
150
|
-
const currentVersionCompiledTargets = Array.from(new Set(artifacts
|
|
151
|
-
.filter((artifact) => artifact.version === currentVersion)
|
|
152
|
-
.map((artifact) => artifact.target))).sort();
|
|
153
|
-
return {
|
|
154
|
-
currentVersionCompiledTargets,
|
|
155
|
-
latestArtifact: artifacts[0],
|
|
156
|
-
stale: artifacts.length > 0 && currentVersionCompiledTargets.length === 0
|
|
157
|
-
};
|
|
158
|
-
}
|
|
159
|
-
reviewPack(packId, updates) {
|
|
160
|
-
const pack = this.readPack(packId);
|
|
161
|
-
const manifest = this.readVersionManifest(packId, pack.currentVersion);
|
|
162
|
-
const now = nowIso();
|
|
163
|
-
const nextPack = {
|
|
164
|
-
...pack,
|
|
165
|
-
description: updates.description ?? pack.description,
|
|
166
|
-
status: "review",
|
|
167
|
-
updatedAt: now
|
|
168
|
-
};
|
|
169
|
-
const nextManifest = {
|
|
170
|
-
...manifest,
|
|
171
|
-
statusSnapshot: "review",
|
|
172
|
-
evidenceSummary: updates.evidenceSummary ?? manifest.evidenceSummary,
|
|
173
|
-
riskLevel: updates.riskLevel ?? manifest.riskLevel
|
|
174
|
-
};
|
|
175
|
-
writeFileSync(join(this.packDir(packId), "pack.json"), JSON.stringify(nextPack, null, 2));
|
|
176
|
-
writeFileSync(join(this.versionDir(packId, pack.currentVersion), "manifest.json"), JSON.stringify(nextManifest, null, 2));
|
|
177
|
-
return nextPack;
|
|
178
|
-
}
|
|
179
|
-
publishPack(packId) {
|
|
180
|
-
const pack = this.readPack(packId);
|
|
181
|
-
const manifest = this.readVersionManifest(packId, pack.currentVersion);
|
|
182
|
-
const now = nowIso();
|
|
183
|
-
const nextPack = {
|
|
184
|
-
...pack,
|
|
185
|
-
status: "published",
|
|
186
|
-
updatedAt: now,
|
|
187
|
-
publishedAt: now
|
|
188
|
-
};
|
|
189
|
-
const nextManifest = {
|
|
190
|
-
...manifest,
|
|
191
|
-
statusSnapshot: "published",
|
|
192
|
-
publishedAt: now
|
|
193
|
-
};
|
|
194
|
-
writeFileSync(join(this.packDir(packId), "pack.json"), JSON.stringify(nextPack, null, 2));
|
|
195
|
-
writeFileSync(join(this.versionDir(packId, pack.currentVersion), "manifest.json"), JSON.stringify(nextManifest, null, 2));
|
|
196
|
-
return nextPack;
|
|
197
|
-
}
|
|
198
|
-
rollbackPack(packId, version) {
|
|
199
|
-
const pack = this.readPack(packId);
|
|
200
|
-
const versions = this.listVersions(packId);
|
|
201
|
-
if (!versions.some((entry) => entry.version === version)) {
|
|
202
|
-
throw new Error(`Unknown pack version: ${packId}@${version}`);
|
|
203
|
-
}
|
|
204
|
-
const now = nowIso();
|
|
205
|
-
const nextPack = {
|
|
206
|
-
...pack,
|
|
207
|
-
status: "rolled_back",
|
|
208
|
-
currentVersion: version,
|
|
209
|
-
updatedAt: now,
|
|
210
|
-
rolledBackAt: now
|
|
211
|
-
};
|
|
212
|
-
writeFileSync(join(this.packDir(packId), "pack.json"), JSON.stringify(nextPack, null, 2));
|
|
213
|
-
return nextPack;
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
//# sourceMappingURL=fs-registry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fs-registry.js","sourceRoot":"","sources":["../../src/packs/fs-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { ExperiencePackRegistry } from "./fs-registry.js";
|
|
2
|
-
import { ExperiencePackRepository } from "../store/sqlite/repositories/pack-repo.js";
|
|
3
|
-
export declare class ExperiencePackIndexSync {
|
|
4
|
-
private readonly registry;
|
|
5
|
-
private readonly repo;
|
|
6
|
-
constructor(registry: ExperiencePackRegistry, repo: ExperiencePackRepository);
|
|
7
|
-
syncPack(packId: string): void;
|
|
8
|
-
syncAll(): void;
|
|
9
|
-
}
|
package/dist/packs/index-sync.js
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { nowIso } from "../utils/clock.js";
|
|
2
|
-
export class ExperiencePackIndexSync {
|
|
3
|
-
registry;
|
|
4
|
-
repo;
|
|
5
|
-
constructor(registry, repo) {
|
|
6
|
-
this.registry = registry;
|
|
7
|
-
this.repo = repo;
|
|
8
|
-
}
|
|
9
|
-
syncPack(packId) {
|
|
10
|
-
const pack = this.registry.readPack(packId);
|
|
11
|
-
this.repo.upsertPack({
|
|
12
|
-
pack_id: pack.packId,
|
|
13
|
-
name: pack.name,
|
|
14
|
-
description: pack.description,
|
|
15
|
-
owner: pack.owner,
|
|
16
|
-
status: pack.status,
|
|
17
|
-
current_version: pack.currentVersion,
|
|
18
|
-
scope_hints: pack.scopeHints,
|
|
19
|
-
task_families: pack.taskFamilies,
|
|
20
|
-
host_compatibility: pack.hostCompatibility,
|
|
21
|
-
created_at: pack.createdAt,
|
|
22
|
-
updated_at: pack.updatedAt,
|
|
23
|
-
published_at: pack.publishedAt,
|
|
24
|
-
rolled_back_at: pack.rolledBackAt
|
|
25
|
-
});
|
|
26
|
-
for (const version of this.registry.listVersions(packId)) {
|
|
27
|
-
this.repo.upsertVersion({
|
|
28
|
-
pack_id: version.packId,
|
|
29
|
-
version: version.version,
|
|
30
|
-
status_snapshot: version.statusSnapshot,
|
|
31
|
-
evidence_summary: version.evidenceSummary,
|
|
32
|
-
benchmark_summary: version.benchmarkSummary,
|
|
33
|
-
risk_level: version.riskLevel,
|
|
34
|
-
ttl: version.ttl,
|
|
35
|
-
host_compatibility: version.hostCompatibility,
|
|
36
|
-
created_at: version.createdAt,
|
|
37
|
-
published_at: version.publishedAt,
|
|
38
|
-
rolled_back_from: version.rolledBackFrom
|
|
39
|
-
});
|
|
40
|
-
this.repo.replaceMemberships(packId, version.version, this.registry.readVersionNodes(packId, version.version).map((node) => ({
|
|
41
|
-
pack_id: packId,
|
|
42
|
-
version: version.version,
|
|
43
|
-
node_id: node.id,
|
|
44
|
-
created_at: nowIso()
|
|
45
|
-
})));
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
syncAll() {
|
|
49
|
-
for (const pack of this.registry.listPacks()) {
|
|
50
|
-
this.syncPack(pack.packId);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
//# sourceMappingURL=index-sync.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-sync.js","sourceRoot":"","sources":["../../src/packs/index-sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAI3C,MAAM,OAAO,uBAAuB;IAEf;IACA;IAFnB,YACmB,QAAgC,EAChC,IAA8B;QAD9B,aAAQ,GAAR,QAAQ,CAAwB;QAChC,SAAI,GAAJ,IAAI,CAA0B;IAC9C,CAAC;IAEJ,QAAQ,CAAC,MAAc;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;YACnB,OAAO,EAAE,IAAI,CAAC,MAAM;YACpB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,eAAe,EAAE,IAAI,CAAC,cAAc;YACpC,WAAW,EAAE,IAAI,CAAC,UAAU;YAC5B,aAAa,EAAE,IAAI,CAAC,YAAY;YAChC,kBAAkB,EAAE,IAAI,CAAC,iBAAiB;YAC1C,UAAU,EAAE,IAAI,CAAC,SAAS;YAC1B,UAAU,EAAE,IAAI,CAAC,SAAS;YAC1B,YAAY,EAAE,IAAI,CAAC,WAAW;YAC9B,cAAc,EAAE,IAAI,CAAC,YAAY;SAClC,CAAC,CAAC;QAEH,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;YACzD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;gBACtB,OAAO,EAAE,OAAO,CAAC,MAAM;gBACvB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,eAAe,EAAE,OAAO,CAAC,cAAc;gBACvC,gBAAgB,EAAE,OAAO,CAAC,eAAe;gBACzC,iBAAiB,EAAE,OAAO,CAAC,gBAAgB;gBAC3C,UAAU,EAAE,OAAO,CAAC,SAAS;gBAC7B,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,kBAAkB,EAAE,OAAO,CAAC,iBAAiB;gBAC7C,UAAU,EAAE,OAAO,CAAC,SAAS;gBAC7B,YAAY,EAAE,OAAO,CAAC,WAAW;gBACjC,gBAAgB,EAAE,OAAO,CAAC,cAAc;aACzC,CAAC,CAAC;YAEH,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAC1B,MAAM,EACN,OAAO,CAAC,OAAO,EACf,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACrE,OAAO,EAAE,MAAM;gBACf,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,OAAO,EAAE,IAAI,CAAC,EAAE;gBAChB,UAAU,EAAE,MAAM,EAAE;aACrB,CAAC,CAAC,CACJ,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO;QACL,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC;YAC7C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;CACF"}
|
package/dist/packs/types.d.ts
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import type { ExperienceNode, ExperiencePackHost, ExperiencePackRiskLevel, ExperiencePackStatus, TaskType } from "../types/domain.js";
|
|
2
|
-
export type { ExperiencePackHost, ExperiencePackRiskLevel, ExperiencePackStatus };
|
|
3
|
-
export type ExperiencePackSummary = {
|
|
4
|
-
packId: string;
|
|
5
|
-
name: string;
|
|
6
|
-
description: string;
|
|
7
|
-
owner: string;
|
|
8
|
-
status: ExperiencePackStatus;
|
|
9
|
-
currentVersion: string;
|
|
10
|
-
createdAt: string;
|
|
11
|
-
updatedAt: string;
|
|
12
|
-
publishedAt?: string;
|
|
13
|
-
rolledBackAt?: string;
|
|
14
|
-
scopeHints: string[];
|
|
15
|
-
taskFamilies: TaskType[];
|
|
16
|
-
hostCompatibility: ExperiencePackHost[];
|
|
17
|
-
};
|
|
18
|
-
export type ExperiencePackVersionManifest = {
|
|
19
|
-
packId: string;
|
|
20
|
-
version: string;
|
|
21
|
-
statusSnapshot: ExperiencePackStatus;
|
|
22
|
-
sourceNodeIds: string[];
|
|
23
|
-
evidenceSummary: string;
|
|
24
|
-
benchmarkSummary?: string;
|
|
25
|
-
riskLevel: ExperiencePackRiskLevel;
|
|
26
|
-
ttl?: string;
|
|
27
|
-
hostCompatibility: ExperiencePackHost[];
|
|
28
|
-
createdAt: string;
|
|
29
|
-
publishedAt?: string;
|
|
30
|
-
rolledBackFrom?: string;
|
|
31
|
-
};
|
|
32
|
-
export type ExperiencePackNodeSnapshot = Pick<ExperienceNode, "id" | "node_type" | "scope_id" | "task_type" | "trigger_pattern" | "compact_hint" | "evidence_summary" | "source_kind" | "state" | "usage_count" | "helped_count" | "harmed_count" | "support_count" | "distillation_mode_used" | "distillation_source" | "created_at" | "updated_at">;
|
|
33
|
-
export type ExperiencePackDraftCreateInput = {
|
|
34
|
-
packId: string;
|
|
35
|
-
name: string;
|
|
36
|
-
description: string;
|
|
37
|
-
owner: string;
|
|
38
|
-
scopeHints: string[];
|
|
39
|
-
taskFamilies: TaskType[];
|
|
40
|
-
hostCompatibility: ExperiencePackHost[];
|
|
41
|
-
nodes: ExperienceNode[];
|
|
42
|
-
};
|
|
43
|
-
export type ExperiencePackCompiledArtifact = {
|
|
44
|
-
target: string;
|
|
45
|
-
version: string;
|
|
46
|
-
generatedAt: string;
|
|
47
|
-
outputPath: string;
|
|
48
|
-
reportPath: string;
|
|
49
|
-
renderedNodeCount: number;
|
|
50
|
-
};
|
|
51
|
-
export type ExperiencePackCompileStatus = {
|
|
52
|
-
currentVersionCompiledTargets: string[];
|
|
53
|
-
latestArtifact?: ExperiencePackCompiledArtifact;
|
|
54
|
-
stale: boolean;
|
|
55
|
-
};
|
package/dist/packs/types.js
DELETED
package/dist/packs/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/packs/types.ts"],"names":[],"mappings":""}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import type { DatabaseSync } from "node:sqlite";
|
|
2
|
-
import type { ExperiencePackActivation, ExperiencePackMembership, ExperiencePackSummaryRecord, ExperiencePackVersionRecord } from "../../../types/domain.js";
|
|
3
|
-
export declare class ExperiencePackRepository {
|
|
4
|
-
private readonly db;
|
|
5
|
-
constructor(db: DatabaseSync);
|
|
6
|
-
upsertPack(pack: ExperiencePackSummaryRecord): ExperiencePackSummaryRecord;
|
|
7
|
-
getPack(packId: string): ExperiencePackSummaryRecord | undefined;
|
|
8
|
-
listPacks(): ExperiencePackSummaryRecord[];
|
|
9
|
-
upsertVersion(version: ExperiencePackVersionRecord): ExperiencePackVersionRecord;
|
|
10
|
-
listVersions(packId: string): ExperiencePackVersionRecord[];
|
|
11
|
-
replaceMemberships(packId: string, version: string, memberships: ExperiencePackMembership[]): void;
|
|
12
|
-
listMemberships(packId: string, version: string): ExperiencePackMembership[];
|
|
13
|
-
upsertActivation(activation: ExperiencePackActivation): ExperiencePackActivation;
|
|
14
|
-
listActivations(scopeId: string): ExperiencePackActivation[];
|
|
15
|
-
listActivationsByPack(packId: string): ExperiencePackActivation[];
|
|
16
|
-
}
|
|
@@ -1,192 +0,0 @@
|
|
|
1
|
-
export class ExperiencePackRepository {
|
|
2
|
-
db;
|
|
3
|
-
constructor(db) {
|
|
4
|
-
this.db = db;
|
|
5
|
-
}
|
|
6
|
-
upsertPack(pack) {
|
|
7
|
-
this.db
|
|
8
|
-
.prepare(`INSERT INTO experience_packs
|
|
9
|
-
(pack_id, name, description, owner, status, current_version, scope_hints_json, task_families_json,
|
|
10
|
-
host_compatibility_json, created_at, updated_at, published_at, rolled_back_at)
|
|
11
|
-
VALUES
|
|
12
|
-
(@pack_id, @name, @description, @owner, @status, @current_version, @scope_hints_json, @task_families_json,
|
|
13
|
-
@host_compatibility_json, @created_at, @updated_at, @published_at, @rolled_back_at)
|
|
14
|
-
ON CONFLICT(pack_id) DO UPDATE SET
|
|
15
|
-
name = excluded.name,
|
|
16
|
-
description = excluded.description,
|
|
17
|
-
owner = excluded.owner,
|
|
18
|
-
status = excluded.status,
|
|
19
|
-
current_version = excluded.current_version,
|
|
20
|
-
scope_hints_json = excluded.scope_hints_json,
|
|
21
|
-
task_families_json = excluded.task_families_json,
|
|
22
|
-
host_compatibility_json = excluded.host_compatibility_json,
|
|
23
|
-
updated_at = excluded.updated_at,
|
|
24
|
-
published_at = excluded.published_at,
|
|
25
|
-
rolled_back_at = excluded.rolled_back_at`)
|
|
26
|
-
.run({
|
|
27
|
-
pack_id: pack.pack_id,
|
|
28
|
-
name: pack.name,
|
|
29
|
-
description: pack.description,
|
|
30
|
-
owner: pack.owner,
|
|
31
|
-
status: pack.status,
|
|
32
|
-
current_version: pack.current_version,
|
|
33
|
-
scope_hints_json: JSON.stringify(pack.scope_hints),
|
|
34
|
-
task_families_json: JSON.stringify(pack.task_families),
|
|
35
|
-
host_compatibility_json: JSON.stringify(pack.host_compatibility),
|
|
36
|
-
created_at: pack.created_at,
|
|
37
|
-
updated_at: pack.updated_at,
|
|
38
|
-
published_at: pack.published_at ?? null,
|
|
39
|
-
rolled_back_at: pack.rolled_back_at ?? null
|
|
40
|
-
});
|
|
41
|
-
return pack;
|
|
42
|
-
}
|
|
43
|
-
getPack(packId) {
|
|
44
|
-
const row = this.db.prepare("SELECT * FROM experience_packs WHERE pack_id = ? LIMIT 1").get(packId);
|
|
45
|
-
if (!row) {
|
|
46
|
-
return undefined;
|
|
47
|
-
}
|
|
48
|
-
return {
|
|
49
|
-
pack_id: row.pack_id,
|
|
50
|
-
name: row.name,
|
|
51
|
-
description: row.description,
|
|
52
|
-
owner: row.owner,
|
|
53
|
-
status: row.status,
|
|
54
|
-
current_version: row.current_version,
|
|
55
|
-
scope_hints: JSON.parse(row.scope_hints_json),
|
|
56
|
-
task_families: JSON.parse(row.task_families_json),
|
|
57
|
-
host_compatibility: JSON.parse(row.host_compatibility_json),
|
|
58
|
-
created_at: row.created_at,
|
|
59
|
-
updated_at: row.updated_at,
|
|
60
|
-
published_at: row.published_at ?? undefined,
|
|
61
|
-
rolled_back_at: row.rolled_back_at ?? undefined
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
listPacks() {
|
|
65
|
-
return this.db
|
|
66
|
-
.prepare("SELECT pack_id FROM experience_packs ORDER BY updated_at DESC")
|
|
67
|
-
.all()
|
|
68
|
-
.map((row) => this.getPack(row.pack_id))
|
|
69
|
-
.filter(Boolean);
|
|
70
|
-
}
|
|
71
|
-
upsertVersion(version) {
|
|
72
|
-
this.db
|
|
73
|
-
.prepare(`INSERT INTO experience_pack_versions
|
|
74
|
-
(pack_id, version, status_snapshot, evidence_summary, benchmark_summary, risk_level, ttl,
|
|
75
|
-
host_compatibility_json, created_at, published_at, rolled_back_from)
|
|
76
|
-
VALUES
|
|
77
|
-
(@pack_id, @version, @status_snapshot, @evidence_summary, @benchmark_summary, @risk_level, @ttl,
|
|
78
|
-
@host_compatibility_json, @created_at, @published_at, @rolled_back_from)
|
|
79
|
-
ON CONFLICT(pack_id, version) DO UPDATE SET
|
|
80
|
-
status_snapshot = excluded.status_snapshot,
|
|
81
|
-
evidence_summary = excluded.evidence_summary,
|
|
82
|
-
benchmark_summary = excluded.benchmark_summary,
|
|
83
|
-
risk_level = excluded.risk_level,
|
|
84
|
-
ttl = excluded.ttl,
|
|
85
|
-
host_compatibility_json = excluded.host_compatibility_json,
|
|
86
|
-
published_at = excluded.published_at,
|
|
87
|
-
rolled_back_from = excluded.rolled_back_from`)
|
|
88
|
-
.run({
|
|
89
|
-
pack_id: version.pack_id,
|
|
90
|
-
version: version.version,
|
|
91
|
-
status_snapshot: version.status_snapshot,
|
|
92
|
-
evidence_summary: version.evidence_summary,
|
|
93
|
-
benchmark_summary: version.benchmark_summary ?? null,
|
|
94
|
-
risk_level: version.risk_level,
|
|
95
|
-
ttl: version.ttl ?? null,
|
|
96
|
-
host_compatibility_json: JSON.stringify(version.host_compatibility),
|
|
97
|
-
created_at: version.created_at,
|
|
98
|
-
published_at: version.published_at ?? null,
|
|
99
|
-
rolled_back_from: version.rolled_back_from ?? null
|
|
100
|
-
});
|
|
101
|
-
return version;
|
|
102
|
-
}
|
|
103
|
-
listVersions(packId) {
|
|
104
|
-
return this.db
|
|
105
|
-
.prepare("SELECT * FROM experience_pack_versions WHERE pack_id = ? ORDER BY created_at DESC")
|
|
106
|
-
.all(packId)
|
|
107
|
-
.map((row) => {
|
|
108
|
-
const typed = row;
|
|
109
|
-
return {
|
|
110
|
-
pack_id: typed.pack_id,
|
|
111
|
-
version: typed.version,
|
|
112
|
-
status_snapshot: typed.status_snapshot,
|
|
113
|
-
evidence_summary: typed.evidence_summary,
|
|
114
|
-
benchmark_summary: typed.benchmark_summary ?? undefined,
|
|
115
|
-
risk_level: typed.risk_level,
|
|
116
|
-
ttl: typed.ttl ?? undefined,
|
|
117
|
-
host_compatibility: JSON.parse(typed.host_compatibility_json),
|
|
118
|
-
created_at: typed.created_at,
|
|
119
|
-
published_at: typed.published_at ?? undefined,
|
|
120
|
-
rolled_back_from: typed.rolled_back_from ?? undefined
|
|
121
|
-
};
|
|
122
|
-
});
|
|
123
|
-
}
|
|
124
|
-
replaceMemberships(packId, version, memberships) {
|
|
125
|
-
this.db
|
|
126
|
-
.prepare("DELETE FROM experience_pack_memberships WHERE pack_id = ? AND version = ?")
|
|
127
|
-
.run(packId, version);
|
|
128
|
-
const statement = this.db.prepare(`INSERT INTO experience_pack_memberships (pack_id, version, node_id, created_at)
|
|
129
|
-
VALUES (@pack_id, @version, @node_id, @created_at)`);
|
|
130
|
-
for (const membership of memberships) {
|
|
131
|
-
statement.run(membership);
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
listMemberships(packId, version) {
|
|
135
|
-
return this.db
|
|
136
|
-
.prepare("SELECT pack_id, version, node_id, created_at FROM experience_pack_memberships WHERE pack_id = ? AND version = ? ORDER BY node_id")
|
|
137
|
-
.all(packId, version);
|
|
138
|
-
}
|
|
139
|
-
upsertActivation(activation) {
|
|
140
|
-
this.db
|
|
141
|
-
.prepare(`INSERT INTO experience_pack_activations
|
|
142
|
-
(scope_id, pack_id, enabled, pinned_version, created_at, updated_at)
|
|
143
|
-
VALUES
|
|
144
|
-
(@scope_id, @pack_id, @enabled, @pinned_version, @created_at, @updated_at)
|
|
145
|
-
ON CONFLICT(scope_id, pack_id) DO UPDATE SET
|
|
146
|
-
enabled = excluded.enabled,
|
|
147
|
-
pinned_version = excluded.pinned_version,
|
|
148
|
-
updated_at = excluded.updated_at`)
|
|
149
|
-
.run({
|
|
150
|
-
scope_id: activation.scope_id,
|
|
151
|
-
pack_id: activation.pack_id,
|
|
152
|
-
enabled: activation.enabled ? 1 : 0,
|
|
153
|
-
pinned_version: activation.pinned_version ?? null,
|
|
154
|
-
created_at: activation.created_at,
|
|
155
|
-
updated_at: activation.updated_at
|
|
156
|
-
});
|
|
157
|
-
return activation;
|
|
158
|
-
}
|
|
159
|
-
listActivations(scopeId) {
|
|
160
|
-
return this.db
|
|
161
|
-
.prepare("SELECT scope_id, pack_id, enabled, pinned_version, created_at, updated_at FROM experience_pack_activations WHERE scope_id = ? ORDER BY pack_id")
|
|
162
|
-
.all(scopeId)
|
|
163
|
-
.map((row) => {
|
|
164
|
-
const typed = row;
|
|
165
|
-
return {
|
|
166
|
-
scope_id: typed.scope_id,
|
|
167
|
-
pack_id: typed.pack_id,
|
|
168
|
-
enabled: typed.enabled === 1,
|
|
169
|
-
pinned_version: typed.pinned_version ?? undefined,
|
|
170
|
-
created_at: typed.created_at,
|
|
171
|
-
updated_at: typed.updated_at
|
|
172
|
-
};
|
|
173
|
-
});
|
|
174
|
-
}
|
|
175
|
-
listActivationsByPack(packId) {
|
|
176
|
-
return this.db
|
|
177
|
-
.prepare("SELECT scope_id, pack_id, enabled, pinned_version, created_at, updated_at FROM experience_pack_activations WHERE pack_id = ? ORDER BY scope_id")
|
|
178
|
-
.all(packId)
|
|
179
|
-
.map((row) => {
|
|
180
|
-
const typed = row;
|
|
181
|
-
return {
|
|
182
|
-
scope_id: typed.scope_id,
|
|
183
|
-
pack_id: typed.pack_id,
|
|
184
|
-
enabled: typed.enabled === 1,
|
|
185
|
-
pinned_version: typed.pinned_version ?? undefined,
|
|
186
|
-
created_at: typed.created_at,
|
|
187
|
-
updated_at: typed.updated_at
|
|
188
|
-
};
|
|
189
|
-
});
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
//# sourceMappingURL=pack-repo.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pack-repo.js","sourceRoot":"","sources":["../../../../src/store/sqlite/repositories/pack-repo.ts"],"names":[],"mappings":"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"}
|