@hasna/instructions 0.4.25 → 0.4.27
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/README.md +8 -1
- package/dist/cli/index.js +356 -37
- package/dist/index.js +283 -28
- package/dist/lib/project-context.d.ts +4 -3
- package/dist/lib/project-context.d.ts.map +1 -1
- package/dist/lib/session-render.d.ts +1 -0
- package/dist/lib/session-render.d.ts.map +1 -1
- package/dist/mcp/index.js +25 -4
- package/dist/server/index.js +70 -0
- package/dist/server/openapi.d.ts +97 -0
- package/dist/server/openapi.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -5818,6 +5818,9 @@ var SESSION_INSTRUCTION_LAYERS = [
|
|
|
5818
5818
|
|
|
5819
5819
|
// src/lib/project-context.ts
|
|
5820
5820
|
var PROJECT_CONTEXT_SCHEMA = "hasna.projects.project_context_bundle.v1";
|
|
5821
|
+
var PROJECT_CONTEXT_SCHEMA_V2 = "hasna.projects.project_context_bundle.v2";
|
|
5822
|
+
var PROJECT_CONTEXT_SUPPORTED_SCHEMAS = [PROJECT_CONTEXT_SCHEMA, PROJECT_CONTEXT_SCHEMA_V2];
|
|
5823
|
+
var projectContextSchema = exports_external.enum(PROJECT_CONTEXT_SUPPORTED_SCHEMAS);
|
|
5821
5824
|
var PROJECT_CONTEXT_MAX_INPUT_BYTES = 8 * 1024;
|
|
5822
5825
|
var PROJECT_CONTEXT_MAX_RENDERED_BYTES = 4 * 1024;
|
|
5823
5826
|
var PROJECT_CONTEXT_MAX_APPROX_TOKENS = 1000;
|
|
@@ -5884,7 +5887,7 @@ var commandSchema = exports_external.object({
|
|
|
5884
5887
|
argv: exports_external.array(commandArg).min(1).max(8)
|
|
5885
5888
|
}).strict();
|
|
5886
5889
|
var projectContextBundleSchema = exports_external.object({
|
|
5887
|
-
schema:
|
|
5890
|
+
schema: projectContextSchema,
|
|
5888
5891
|
generated_at: isoTimestamp,
|
|
5889
5892
|
hash: hashSchema,
|
|
5890
5893
|
revision: revisionSchema,
|
|
@@ -5932,7 +5935,7 @@ var projectContextBundleSchema = exports_external.object({
|
|
|
5932
5935
|
commands: exports_external.array(commandSchema).max(PROJECT_CONTEXT_MAX_COMMANDS)
|
|
5933
5936
|
}).strict();
|
|
5934
5937
|
var storedManifestProjectContextSchema = exports_external.object({
|
|
5935
|
-
schema:
|
|
5938
|
+
schema: projectContextSchema,
|
|
5936
5939
|
projectId: safeId,
|
|
5937
5940
|
revision: revisionSchema,
|
|
5938
5941
|
hash: hashSchema,
|
|
@@ -5972,6 +5975,25 @@ var storedManifestObservationSchema = exports_external.object({
|
|
|
5972
5975
|
});
|
|
5973
5976
|
}
|
|
5974
5977
|
});
|
|
5978
|
+
var projectContextMetadataSnapshotSchema = exports_external.object({
|
|
5979
|
+
schema: exports_external.literal("hasna.configs.session-render-snapshot/v1"),
|
|
5980
|
+
kind: exports_external.literal("project-context-metadata"),
|
|
5981
|
+
createdAt: isoTimestamp,
|
|
5982
|
+
projectId: safeId,
|
|
5983
|
+
revision: revisionSchema,
|
|
5984
|
+
hash: hashSchema,
|
|
5985
|
+
status: exports_external.enum(["fresh", "stale-source", "stale-cache"]),
|
|
5986
|
+
files: exports_external.array(exports_external.object({
|
|
5987
|
+
relativePath: exports_external.enum([
|
|
5988
|
+
PROJECT_CONTEXT_FRAGMENT_PATH,
|
|
5989
|
+
"CLAUDE.md",
|
|
5990
|
+
".codewith/CODEWITH.md",
|
|
5991
|
+
"AGENTS.md"
|
|
5992
|
+
]),
|
|
5993
|
+
role: exports_external.enum(["fragment", "index"]),
|
|
5994
|
+
sha256: exports_external.string().regex(/^[a-f0-9]{64}$/)
|
|
5995
|
+
}).strict()).min(1).max(2)
|
|
5996
|
+
}).strict();
|
|
5975
5997
|
var projectContextCacheSchema = exports_external.object({
|
|
5976
5998
|
schema: exports_external.literal(PROJECT_CONTEXT_CACHE_SCHEMA),
|
|
5977
5999
|
cached_at: isoTimestamp,
|
|
@@ -5999,6 +6021,9 @@ function computeProjectContextSourceHash(value) {
|
|
|
5999
6021
|
return `sha256:${sha2562(stableStringify(normalized))}`;
|
|
6000
6022
|
}
|
|
6001
6023
|
function parseProjectContextBundle(input) {
|
|
6024
|
+
return parseProjectContextBundleInternal(input, true, true);
|
|
6025
|
+
}
|
|
6026
|
+
function parseProjectContextBundleInternal(input, allowLegacyHash, normalizeLegacyHash = false) {
|
|
6002
6027
|
let encoded;
|
|
6003
6028
|
try {
|
|
6004
6029
|
const serialized = typeof input === "string" ? input : JSON.stringify(input);
|
|
@@ -6018,7 +6043,7 @@ function parseProjectContextBundle(input) {
|
|
|
6018
6043
|
throw new ProjectContextError("PROJECT_CONTEXT_INVALID", "bundle is not valid JSON");
|
|
6019
6044
|
}
|
|
6020
6045
|
const candidateSchema = isRecord(value) ? value["schema"] : undefined;
|
|
6021
|
-
if (typeof candidateSchema === "string" && candidateSchema
|
|
6046
|
+
if (typeof candidateSchema === "string" && !PROJECT_CONTEXT_SUPPORTED_SCHEMAS.includes(candidateSchema)) {
|
|
6022
6047
|
if (/^hasna\.projects\.project_context_bundle\.v[0-9]+$/.test(candidateSchema)) {
|
|
6023
6048
|
throw new ProjectContextError("PROJECT_CONTEXT_UNSUPPORTED_VERSION", `unsupported bundle schema ${candidateSchema}`);
|
|
6024
6049
|
}
|
|
@@ -6035,10 +6060,11 @@ function parseProjectContextBundle(input) {
|
|
|
6035
6060
|
validateIdentityConsistency(bundle);
|
|
6036
6061
|
rejectCredentialLikeBundle(bundle);
|
|
6037
6062
|
const expected = computeProjectContextSourceHash(bundle);
|
|
6038
|
-
|
|
6063
|
+
const matchesLegacyHash = bundle.hash !== expected && allowLegacyHash && bundle.hash === computeLegacyProjectContextSourceHash(bundle);
|
|
6064
|
+
if (bundle.hash !== expected && !matchesLegacyHash) {
|
|
6039
6065
|
throw new ProjectContextError("PROJECT_CONTEXT_HASH_MISMATCH", "bundle hash does not match its canonical allowlisted payload");
|
|
6040
6066
|
}
|
|
6041
|
-
return bundle;
|
|
6067
|
+
return matchesLegacyHash && normalizeLegacyHash ? { ...bundle, hash: expected } : bundle;
|
|
6042
6068
|
}
|
|
6043
6069
|
function planProjectContext(input) {
|
|
6044
6070
|
const workspaceRoot = assertSafeWorkspaceRoot(input.workspace_root);
|
|
@@ -6286,6 +6312,8 @@ function applyProjectContext(options) {
|
|
|
6286
6312
|
content: `${JSON.stringify(sessionManifest, null, 2)}
|
|
6287
6313
|
`
|
|
6288
6314
|
};
|
|
6315
|
+
const manifestContent = `${JSON.stringify(buildManifest(plan, now2), null, 2)}
|
|
6316
|
+
`;
|
|
6289
6317
|
options.test_hooks?.before_compare?.({ attempt, plan });
|
|
6290
6318
|
if (!hashesStillMatch(plan.expected_hashes, workspaceRoot)) {
|
|
6291
6319
|
if (attempt === 0) {
|
|
@@ -6298,7 +6326,15 @@ function applyProjectContext(options) {
|
|
|
6298
6326
|
return resultForPlan(plan, true, raceRetries, null);
|
|
6299
6327
|
assertWorkspaceLockHeld(lockPath, lock, workspaceRoot);
|
|
6300
6328
|
try {
|
|
6301
|
-
|
|
6329
|
+
const metadataSnapshotPath = writeMetadataSnapshot(plan, now2);
|
|
6330
|
+
const rollbackSnapshotPath = writeProjectContextRollbackSnapshot(plan, now2, [
|
|
6331
|
+
{ path: plan.fragment_path, content: plan.fragment, role: "fragment" },
|
|
6332
|
+
{ path: plan.target_path, content: plan.target_content, role: "index" },
|
|
6333
|
+
{ path: plan.cache_path, content: cacheContent, role: "config" },
|
|
6334
|
+
{ path: sessionOutput.path, content: sessionOutput.content, role: "manifest" },
|
|
6335
|
+
{ path: plan.manifest_path, content: manifestContent, role: "manifest" }
|
|
6336
|
+
]);
|
|
6337
|
+
snapshotPath = rollbackSnapshotPath ?? metadataSnapshotPath;
|
|
6302
6338
|
atomicWriteFile(plan.fragment_path, plan.fragment, workspaceRoot, 420, expectedPlanHash(plan, plan.fragment_path), undefined, options.test_hooks?.atomic_exchange_unavailable, undefined, options.test_hooks?.portable_create_only);
|
|
6303
6339
|
options.test_hooks?.after_fragment?.({ attempt, plan });
|
|
6304
6340
|
assertWorkspaceLockHeld(lockPath, lock, workspaceRoot);
|
|
@@ -6312,9 +6348,7 @@ function applyProjectContext(options) {
|
|
|
6312
6348
|
options.test_hooks?.before_manifest?.({ attempt, plan });
|
|
6313
6349
|
assertWorkspaceLockHeld(lockPath, lock, workspaceRoot);
|
|
6314
6350
|
assertRenderedOutputsStable(plan, cacheContent, sessionOutput);
|
|
6315
|
-
|
|
6316
|
-
atomicWriteFile(plan.manifest_path, `${JSON.stringify(manifest, null, 2)}
|
|
6317
|
-
`, workspaceRoot, 384, expectedPlanHash(plan, plan.manifest_path), undefined, options.test_hooks?.atomic_exchange_unavailable, undefined, options.test_hooks?.portable_create_only);
|
|
6351
|
+
atomicWriteFile(plan.manifest_path, manifestContent, workspaceRoot, 384, expectedPlanHash(plan, plan.manifest_path), undefined, options.test_hooks?.atomic_exchange_unavailable, undefined, options.test_hooks?.portable_create_only);
|
|
6318
6352
|
return resultForPlan(plan, false, raceRetries, snapshotPath);
|
|
6319
6353
|
} catch (error) {
|
|
6320
6354
|
if (error instanceof ProjectContextHashRace && attempt === 0) {
|
|
@@ -6405,10 +6439,12 @@ function resolveBundleForApply(options, workspaceRoot, now2) {
|
|
|
6405
6439
|
if (cache.project_id !== options.expected_project_id || cache.bundle.project.id !== options.expected_project_id) {
|
|
6406
6440
|
throw new ProjectContextError("PROJECT_CONTEXT_CACHE_ID_MISMATCH", "cached project context belongs to a different project");
|
|
6407
6441
|
}
|
|
6408
|
-
const
|
|
6409
|
-
if (
|
|
6442
|
+
const cachedBundle = cache.bundle;
|
|
6443
|
+
if (cachedBundle.revision !== cache.revision || cachedBundle.hash !== cache.hash) {
|
|
6410
6444
|
throw new ProjectContextError("PROJECT_CONTEXT_CACHE_INVALID", "cached revision or hash metadata is inconsistent");
|
|
6411
6445
|
}
|
|
6446
|
+
const canonicalHash = computeProjectContextSourceHash(cachedBundle);
|
|
6447
|
+
const bundle = cachedBundle.hash === canonicalHash ? cachedBundle : { ...cachedBundle, hash: canonicalHash };
|
|
6412
6448
|
const ageSeconds = Math.max(staleCacheAgeInSeconds(bundle.generated_at, now2, "bundle generated_at"), staleCacheAgeInSeconds(cache.cached_at, now2, "cache cached_at"));
|
|
6413
6449
|
const maxAge = normalizeMaxStaleAge(options.max_stale_age_seconds);
|
|
6414
6450
|
if (ageSeconds > maxAge) {
|
|
@@ -6505,11 +6541,13 @@ function parseManagedBlock(content, force) {
|
|
|
6505
6541
|
if (structurallyInvalid) {
|
|
6506
6542
|
if (!force)
|
|
6507
6543
|
throw new ProjectContextError("MANAGED_BLOCK_INVALID", "managed project-context markers are duplicate, nested, malformed, or unbalanced");
|
|
6544
|
+
const firstMarkerRange = markerCommentRange(markerLines[0]);
|
|
6545
|
+
const lastMarkerRange = markerCommentRange(markerLines[markerLines.length - 1]);
|
|
6508
6546
|
return {
|
|
6509
6547
|
block: null,
|
|
6510
6548
|
forceRange: {
|
|
6511
|
-
start: markerLines[0].start,
|
|
6512
|
-
end: lineContentEnd(markerLines[markerLines.length - 1])
|
|
6549
|
+
start: firstMarkerRange?.start ?? markerLines[0].start,
|
|
6550
|
+
end: lastMarkerRange?.end ?? lineContentEnd(markerLines[markerLines.length - 1])
|
|
6513
6551
|
}
|
|
6514
6552
|
};
|
|
6515
6553
|
}
|
|
@@ -6540,6 +6578,21 @@ function parseManagedBlock(content, force) {
|
|
|
6540
6578
|
forceRange: null
|
|
6541
6579
|
};
|
|
6542
6580
|
}
|
|
6581
|
+
function markerCommentRange(line) {
|
|
6582
|
+
const canonicalMarker = line.text.indexOf(PROJECT_CONTEXT_MANAGED_COMMENT);
|
|
6583
|
+
const legacyMarker = /@hasna\/configs project context/i.exec(line.text)?.index ?? -1;
|
|
6584
|
+
const marker = canonicalMarker >= 0 ? canonicalMarker : legacyMarker;
|
|
6585
|
+
if (marker < 0)
|
|
6586
|
+
return null;
|
|
6587
|
+
const commentStart = line.text.lastIndexOf("<!--", marker);
|
|
6588
|
+
const commentEnd = line.text.indexOf("-->", marker);
|
|
6589
|
+
if (commentStart < 0 || commentEnd < 0)
|
|
6590
|
+
return null;
|
|
6591
|
+
return {
|
|
6592
|
+
start: line.start + commentStart,
|
|
6593
|
+
end: line.start + commentEnd + "-->".length
|
|
6594
|
+
};
|
|
6595
|
+
}
|
|
6543
6596
|
function parseMarkerLine(text) {
|
|
6544
6597
|
const line = text.replace(/[\r\n]+$/, "");
|
|
6545
6598
|
const canonical = line.match(/^<!-- Managed by @hasna\/configs project context (BEGIN|END) id=([A-Za-z0-9][A-Za-z0-9._:@+-]*) revision=([A-Za-z0-9%._~+-]+) hash=(sha256:[a-f0-9]{64}) -->$/);
|
|
@@ -6561,8 +6614,14 @@ function parseMarkerLine(text) {
|
|
|
6561
6614
|
}
|
|
6562
6615
|
function replaceOrAppendManagedBlock(content, block, parsed, legacy) {
|
|
6563
6616
|
const range = parsed.block ?? parsed.forceRange ?? legacy;
|
|
6564
|
-
if (range)
|
|
6565
|
-
|
|
6617
|
+
if (range) {
|
|
6618
|
+
const before = content.slice(0, range.start);
|
|
6619
|
+
const after = content.slice(range.end);
|
|
6620
|
+
const eol2 = preferredEol(content);
|
|
6621
|
+
const beforeSeparator = before && !/[\r\n]$/.test(before) ? eol2 : "";
|
|
6622
|
+
const afterSeparator = after && !/^[\r\n]/.test(after) ? eol2 : "";
|
|
6623
|
+
return `${before}${beforeSeparator}${block}${afterSeparator}${after}`;
|
|
6624
|
+
}
|
|
6566
6625
|
if (!content)
|
|
6567
6626
|
return `${block}
|
|
6568
6627
|
`;
|
|
@@ -6606,13 +6665,18 @@ function findLegacyCodewithWorkspaceSection(workspaceRoot, runtime, content, bun
|
|
|
6606
6665
|
}
|
|
6607
6666
|
function assertRevisionOrdering(plan, force) {
|
|
6608
6667
|
const observations = [];
|
|
6668
|
+
const cache = readProjectContextCache(plan.cache_path, plan.workspace_root);
|
|
6669
|
+
const canonicalCacheHash = cache === null ? null : computeProjectContextSourceHash(cache.bundle);
|
|
6670
|
+
const normalizePersistedHash = (revision, hash) => cache !== null && canonicalCacheHash !== null && revision === cache.revision && hash === cache.hash ? canonicalCacheHash : hash;
|
|
6609
6671
|
const manifest = readProjectContextManifest(plan.manifest_path, plan.workspace_root);
|
|
6610
6672
|
if (manifest) {
|
|
6673
|
+
const manifestHashHasRecoveryProof = manifest.projectContext.hash === plan.bundle.hash || metadataSnapshotMatchesManifest(plan, manifest);
|
|
6674
|
+
const canonicalStateAlreadyInstalled = cache !== null && canonicalCacheHash === plan.bundle.hash && cache.project_id === plan.bundle.project.id && cache.revision === plan.bundle.revision && plan.marker !== null && plan.marker.id === plan.bundle.project.id && plan.marker.revision === plan.bundle.revision && plan.marker.hash === plan.bundle.hash && existsSync3(plan.fragment_path) && fragmentMatchesBundle(plan.fragment_path, plan.bundle, plan.workspace_root) && manifestHashHasRecoveryProof;
|
|
6611
6675
|
observations.push({
|
|
6612
6676
|
source: "manifest",
|
|
6613
6677
|
id: manifest.projectContext.projectId,
|
|
6614
6678
|
revision: manifest.projectContext.revision,
|
|
6615
|
-
hash: manifest.projectContext.hash
|
|
6679
|
+
hash: canonicalStateAlreadyInstalled && manifest.projectContext.projectId === plan.bundle.project.id && manifest.projectContext.revision === plan.bundle.revision ? plan.bundle.hash : normalizePersistedHash(manifest.projectContext.revision, manifest.projectContext.hash)
|
|
6616
6680
|
});
|
|
6617
6681
|
const fragmentEntry = manifest.files.find((file) => file.relativePath === PROJECT_CONTEXT_FRAGMENT_PATH);
|
|
6618
6682
|
if (fragmentEntry && existsSync3(plan.fragment_path)) {
|
|
@@ -6622,11 +6686,16 @@ function assertRevisionOrdering(plan, force) {
|
|
|
6622
6686
|
}
|
|
6623
6687
|
}
|
|
6624
6688
|
}
|
|
6625
|
-
const cache = readProjectContextCache(plan.cache_path, plan.workspace_root);
|
|
6626
6689
|
if (cache)
|
|
6627
|
-
observations.push({ source: "cache", id: cache.project_id, revision: cache.revision, hash:
|
|
6628
|
-
if (plan.marker)
|
|
6629
|
-
observations.push({
|
|
6690
|
+
observations.push({ source: "cache", id: cache.project_id, revision: cache.revision, hash: canonicalCacheHash });
|
|
6691
|
+
if (plan.marker) {
|
|
6692
|
+
observations.push({
|
|
6693
|
+
source: "marker",
|
|
6694
|
+
id: plan.marker.id,
|
|
6695
|
+
revision: plan.marker.revision,
|
|
6696
|
+
hash: normalizePersistedHash(plan.marker.revision, plan.marker.hash)
|
|
6697
|
+
});
|
|
6698
|
+
}
|
|
6630
6699
|
for (const observation of observations) {
|
|
6631
6700
|
if (observation.id !== plan.bundle.project.id) {
|
|
6632
6701
|
throw new ProjectContextError("PROJECT_CONTEXT_IDENTITY_CONFLICT", `${observation.source} belongs to another project`);
|
|
@@ -6746,6 +6815,10 @@ function buildSessionCompatibilityManifest(plan, now2) {
|
|
|
6746
6815
|
};
|
|
6747
6816
|
const targetOwner = isRecord(existing["targetOwner"]) ? existing["targetOwner"] : {};
|
|
6748
6817
|
const adapterMode = plan.native_imports ? "native-imports" : "flattened-markdown";
|
|
6818
|
+
const existingProjectContext = isRecord(existing["projectContext"]) ? existing["projectContext"] : null;
|
|
6819
|
+
const existingProjectContextHash = existingProjectContext === null ? null : safeLegacyMetadataString(existingProjectContext["hash"], null);
|
|
6820
|
+
const existingSourceHash = typeof existing["sourceHash"] === "string" ? existing["sourceHash"] : null;
|
|
6821
|
+
const sourceHash = existingProjectContextHash === plan.bundle.hash && existingSourceHash !== null ? existingSourceHash : sha2562(stableStringify({ previous: existingSourceHash, projectContext: plan.bundle.hash }));
|
|
6749
6822
|
return credentialSafeSessionManifest({
|
|
6750
6823
|
schema: SESSION_RENDER_SCHEMA,
|
|
6751
6824
|
tool,
|
|
@@ -6769,7 +6842,7 @@ function buildSessionCompatibilityManifest(plan, now2) {
|
|
|
6769
6842
|
blockers: [],
|
|
6770
6843
|
generatedAt: now2.toISOString(),
|
|
6771
6844
|
env: sanitizeLegacyEnvironment(existing["env"]),
|
|
6772
|
-
sourceHash
|
|
6845
|
+
sourceHash,
|
|
6773
6846
|
sources,
|
|
6774
6847
|
skippedSources: sanitizeLegacySkippedSources(existing["skippedSources"]),
|
|
6775
6848
|
files: [...files.filter((file) => file["relativePath"] !== targetRelativePath), updatedTarget],
|
|
@@ -6974,7 +7047,7 @@ function projectContextManifestSource(cachePath, runtime, bundle) {
|
|
|
6974
7047
|
rules: [],
|
|
6975
7048
|
renderedPayloadSha256: sha2562(JSON.stringify(bundle)),
|
|
6976
7049
|
provenance: {
|
|
6977
|
-
schema:
|
|
7050
|
+
schema: bundle.schema,
|
|
6978
7051
|
projectId: bundle.project.id,
|
|
6979
7052
|
revision: bundle.revision,
|
|
6980
7053
|
hash: bundle.hash
|
|
@@ -6983,7 +7056,7 @@ function projectContextManifestSource(cachePath, runtime, bundle) {
|
|
|
6983
7056
|
}
|
|
6984
7057
|
function manifestProjectContext(plan) {
|
|
6985
7058
|
return {
|
|
6986
|
-
schema:
|
|
7059
|
+
schema: plan.bundle.schema,
|
|
6987
7060
|
projectId: plan.bundle.project.id,
|
|
6988
7061
|
revision: plan.bundle.revision,
|
|
6989
7062
|
hash: plan.bundle.hash,
|
|
@@ -7025,6 +7098,77 @@ function writeMetadataSnapshot(plan, now2) {
|
|
|
7025
7098
|
`, plan.workspace_root, 384);
|
|
7026
7099
|
return snapshotPath;
|
|
7027
7100
|
}
|
|
7101
|
+
function metadataSnapshotMatchesManifest(plan, manifest) {
|
|
7102
|
+
const snapshotDir = resolve(plan.workspace_root, ...PROJECT_CONTEXT_SNAPSHOT_DIR.split("/"));
|
|
7103
|
+
const snapshotPath = resolve(snapshotDir, `${safeFilename(manifest.projectContext.revision)}-${manifest.projectContext.hash.slice(-12)}.json`);
|
|
7104
|
+
if (!existsSync3(snapshotPath))
|
|
7105
|
+
return false;
|
|
7106
|
+
const record = readJsonRecord(snapshotPath, plan.workspace_root);
|
|
7107
|
+
const result = projectContextMetadataSnapshotSchema.safeParse(record);
|
|
7108
|
+
if (!result.success)
|
|
7109
|
+
return false;
|
|
7110
|
+
if (result.data.projectId !== manifest.projectContext.projectId || result.data.revision !== manifest.projectContext.revision || result.data.hash !== manifest.projectContext.hash || result.data.status !== manifest.projectContext.status)
|
|
7111
|
+
return false;
|
|
7112
|
+
const sortFiles = (files) => [...files].sort((left, right) => left.relativePath.localeCompare(right.relativePath));
|
|
7113
|
+
const snapshotFiles = sortFiles(result.data.files);
|
|
7114
|
+
const manifestFiles = sortFiles(manifest.files.map((file) => ({
|
|
7115
|
+
relativePath: file.relativePath,
|
|
7116
|
+
role: file.role,
|
|
7117
|
+
sha256: file.sha256
|
|
7118
|
+
})));
|
|
7119
|
+
return JSON.stringify(snapshotFiles) === JSON.stringify(manifestFiles);
|
|
7120
|
+
}
|
|
7121
|
+
function writeProjectContextRollbackSnapshot(plan, now2, outputs) {
|
|
7122
|
+
const targetExpectedHash = expectedPlanHash(plan, plan.target_path);
|
|
7123
|
+
if (targetExpectedHash === sha2562(plan.target_content))
|
|
7124
|
+
return null;
|
|
7125
|
+
const files = outputs.flatMap((output) => {
|
|
7126
|
+
const expectedHash = expectedPlanHash(plan, output.path);
|
|
7127
|
+
if (expectedHash === null)
|
|
7128
|
+
return [];
|
|
7129
|
+
const content = readUtf8RegularFile(output.path, plan.workspace_root, managedObservationMaxBytes(relativePosix(plan.workspace_root, output.path)));
|
|
7130
|
+
if (sha2562(content) !== expectedHash) {
|
|
7131
|
+
throw new ProjectContextHashRace(`managed path changed while creating rollback evidence: ${relativePosix(plan.workspace_root, output.path)}`);
|
|
7132
|
+
}
|
|
7133
|
+
return [{
|
|
7134
|
+
path: output.path,
|
|
7135
|
+
relativePath: relativePosix(plan.workspace_root, output.path),
|
|
7136
|
+
role: output.role,
|
|
7137
|
+
sha256: expectedHash,
|
|
7138
|
+
content
|
|
7139
|
+
}];
|
|
7140
|
+
});
|
|
7141
|
+
const afterFiles = outputs.map((output) => {
|
|
7142
|
+
const previousHash = expectedPlanHash(plan, output.path);
|
|
7143
|
+
const nextHash = sha2562(output.content);
|
|
7144
|
+
return {
|
|
7145
|
+
path: output.path,
|
|
7146
|
+
relativePath: relativePosix(plan.workspace_root, output.path),
|
|
7147
|
+
role: output.role,
|
|
7148
|
+
action: previousHash === null ? "create" : previousHash === nextHash ? "unchanged" : "update",
|
|
7149
|
+
sha256: nextHash
|
|
7150
|
+
};
|
|
7151
|
+
});
|
|
7152
|
+
const snapshotDir = resolve(plan.workspace_root, ...SESSION_RENDER_SNAPSHOT_RELATIVE_DIR.split("/"));
|
|
7153
|
+
ensureSafeDirectory(snapshotDir, plan.workspace_root, 448);
|
|
7154
|
+
const timestamp = now2.toISOString().replace(/[:.]/g, "-");
|
|
7155
|
+
const snapshotPath = resolve(snapshotDir, `${timestamp}-${randomUUID3()}.json`);
|
|
7156
|
+
const snapshot = {
|
|
7157
|
+
schema: "hasna.configs.session-render-snapshot/v2",
|
|
7158
|
+
createdAt: now2.toISOString(),
|
|
7159
|
+
tool: manifestTool(plan.runtime),
|
|
7160
|
+
profile: "project-context",
|
|
7161
|
+
targetHome: plan.workspace_root,
|
|
7162
|
+
targetKind: "project-root",
|
|
7163
|
+
manifestPath: plan.manifest_path,
|
|
7164
|
+
previousManifest: null,
|
|
7165
|
+
files,
|
|
7166
|
+
afterFiles
|
|
7167
|
+
};
|
|
7168
|
+
atomicWriteFile(snapshotPath, `${JSON.stringify(snapshot, null, 2)}
|
|
7169
|
+
`, plan.workspace_root, 384, null);
|
|
7170
|
+
return snapshotPath;
|
|
7171
|
+
}
|
|
7028
7172
|
function readProjectContextManifest(path, workspaceRoot) {
|
|
7029
7173
|
if (!existsSync3(path))
|
|
7030
7174
|
return null;
|
|
@@ -7048,7 +7192,7 @@ function readProjectContextCache(path, workspaceRoot) {
|
|
|
7048
7192
|
if (!result.success) {
|
|
7049
7193
|
throw new ProjectContextError("PROJECT_CONTEXT_CACHE_INVALID", "cache is malformed or incompatible");
|
|
7050
7194
|
}
|
|
7051
|
-
const bundle =
|
|
7195
|
+
const bundle = parseProjectContextBundleInternal(result.data.bundle, true);
|
|
7052
7196
|
if (result.data.project_id !== bundle.project.id || result.data.revision !== bundle.revision || result.data.hash !== bundle.hash) {
|
|
7053
7197
|
throw new ProjectContextError("PROJECT_CONTEXT_CACHE_INVALID", "cache metadata does not match its bundle");
|
|
7054
7198
|
}
|
|
@@ -8364,12 +8508,23 @@ function removeHashForFingerprint(value) {
|
|
|
8364
8508
|
return value;
|
|
8365
8509
|
const copy = {};
|
|
8366
8510
|
for (const [key, item] of Object.entries(value)) {
|
|
8367
|
-
if (key === "hash")
|
|
8511
|
+
if (key === "generated_at" || key === "hash")
|
|
8368
8512
|
continue;
|
|
8369
8513
|
copy[key] = item;
|
|
8370
8514
|
}
|
|
8371
8515
|
return copy;
|
|
8372
8516
|
}
|
|
8517
|
+
function computeLegacyProjectContextSourceHash(value) {
|
|
8518
|
+
if (!isRecord(value))
|
|
8519
|
+
return `sha256:${sha2562(stableStringify(value))}`;
|
|
8520
|
+
const copy = {};
|
|
8521
|
+
for (const [key, item] of Object.entries(value)) {
|
|
8522
|
+
if (key === "hash")
|
|
8523
|
+
continue;
|
|
8524
|
+
copy[key] = item;
|
|
8525
|
+
}
|
|
8526
|
+
return `sha256:${sha2562(stableStringify(copy))}`;
|
|
8527
|
+
}
|
|
8373
8528
|
function sha2562(content) {
|
|
8374
8529
|
return createHash2("sha256").update(content).digest("hex");
|
|
8375
8530
|
}
|
|
@@ -8692,10 +8847,13 @@ function sourceFingerprint(source) {
|
|
|
8692
8847
|
metadata: canonicalFingerprintValue(source.metadata ?? null)
|
|
8693
8848
|
};
|
|
8694
8849
|
}
|
|
8695
|
-
function
|
|
8850
|
+
function normalizeSessionInstructionSourceId(value) {
|
|
8696
8851
|
const s = value.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "");
|
|
8697
8852
|
return s || "instruction";
|
|
8698
8853
|
}
|
|
8854
|
+
function slug(value) {
|
|
8855
|
+
return normalizeSessionInstructionSourceId(value);
|
|
8856
|
+
}
|
|
8699
8857
|
function yamlQuote2(value) {
|
|
8700
8858
|
return `"${value.replace(/\\/g, "\\\\").replace(/"/g, "\\\"")}"`;
|
|
8701
8859
|
}
|
|
@@ -8814,12 +8972,17 @@ function normalizeSources(sources, tool, allowEmptySources) {
|
|
|
8814
8972
|
}
|
|
8815
8973
|
return normalized2;
|
|
8816
8974
|
});
|
|
8975
|
+
const originalOrder = [...normalized].sort(compareSessionInstructionSources);
|
|
8817
8976
|
const deduplicated = deduplicateSemanticPolicySources(normalized);
|
|
8818
|
-
const ordered = deduplicated.selected.sort(
|
|
8977
|
+
const ordered = deduplicated.selected.sort(compareSessionInstructionSources);
|
|
8978
|
+
validateTargetedReplacementSources(originalOrder, ordered, deduplicated.skipped);
|
|
8819
8979
|
rejectDuplicateSourceSlugs(ordered);
|
|
8820
8980
|
rejectDuplicateRulePaths(ordered);
|
|
8821
8981
|
return { sources: ordered, skipped: deduplicated.skipped };
|
|
8822
8982
|
}
|
|
8983
|
+
function compareSessionInstructionSources(a, b) {
|
|
8984
|
+
return SESSION_LAYER_RANK[a.resolvedLayer] - SESSION_LAYER_RANK[b.resolvedLayer] || a.resolvedOrder - b.resolvedOrder || a.id.localeCompare(b.id);
|
|
8985
|
+
}
|
|
8823
8986
|
function semanticPolicyIntegrity(body) {
|
|
8824
8987
|
return sha2563(body) === AGENT_OPERATING_RULES_PAYLOAD_SHA256 ? "pinned-digest" : "unverified-self-declared";
|
|
8825
8988
|
}
|
|
@@ -8946,7 +9109,52 @@ function filterProviderOnlyBlocks(content, tool) {
|
|
|
8946
9109
|
return output.join(`
|
|
8947
9110
|
`);
|
|
8948
9111
|
}
|
|
8949
|
-
function
|
|
9112
|
+
function targetedReplacementTarget(source) {
|
|
9113
|
+
if (source.replacementScope == null)
|
|
9114
|
+
return null;
|
|
9115
|
+
if (source.resolvedMerge !== "replace") {
|
|
9116
|
+
throw new Error(`Session instruction source "${source.id}" uses replacement scope "${source.replacementScope}" ` + `with merge=${source.resolvedMerge}; replacement scopes require merge=replace, not append.`);
|
|
9117
|
+
}
|
|
9118
|
+
const scope = source.replacementScope.trim();
|
|
9119
|
+
if (!scope.startsWith("source:")) {
|
|
9120
|
+
throw new Error(`Invalid replacement scope "${source.replacementScope}" for source "${source.id}"; ` + 'expected "source:<normalized-source-id>".');
|
|
9121
|
+
}
|
|
9122
|
+
const target = scope.slice("source:".length);
|
|
9123
|
+
if (!target || target !== slug(target)) {
|
|
9124
|
+
throw new Error(`Invalid replacement scope "${source.replacementScope}" for source "${source.id}"; ` + "the target must be a non-empty normalized source id.");
|
|
9125
|
+
}
|
|
9126
|
+
return target;
|
|
9127
|
+
}
|
|
9128
|
+
function validateTargetedReplacementSources(originalSources, selectedSources, deduplicatedSources) {
|
|
9129
|
+
for (let replacerIndex = 0;replacerIndex < originalSources.length; replacerIndex++) {
|
|
9130
|
+
const replacer = originalSources[replacerIndex];
|
|
9131
|
+
const targetNormalizedId = targetedReplacementTarget(replacer);
|
|
9132
|
+
if (targetNormalizedId === null)
|
|
9133
|
+
continue;
|
|
9134
|
+
const matches = originalSources.filter((source) => source.normalizedId === targetNormalizedId);
|
|
9135
|
+
if (matches.length === 0) {
|
|
9136
|
+
throw new Error(`Targeted replacement source "${replacer.id}" names missing source "${targetNormalizedId}".`);
|
|
9137
|
+
}
|
|
9138
|
+
if (matches.length > 1) {
|
|
9139
|
+
throw new Error(`Targeted replacement source "${replacer.id}" is ambiguous after normalization: ` + `"${targetNormalizedId}" matches ${matches.map((source) => `"${source.id}"`).join(", ")}.`);
|
|
9140
|
+
}
|
|
9141
|
+
const target = matches[0];
|
|
9142
|
+
const targetIndex = originalSources.indexOf(target);
|
|
9143
|
+
if (targetIndex >= replacerIndex) {
|
|
9144
|
+
throw new Error(`Targeted replacement source "${replacer.id}" must name an earlier source; ` + `"${target.id}" is later than or identical to the replacer.`);
|
|
9145
|
+
}
|
|
9146
|
+
if (target.nonOverridable) {
|
|
9147
|
+
throw new Error(`Targeted replacement source "${replacer.id}" cannot replace non-overridable source "${target.id}".`);
|
|
9148
|
+
}
|
|
9149
|
+
if (!selectedSources.some((source) => source.id === replacer.id)) {
|
|
9150
|
+
throw new Error(`Targeted replacement source "${replacer.id}" was removed by semantic-policy deduplication before composition.`);
|
|
9151
|
+
}
|
|
9152
|
+
if (deduplicatedSources.some((source) => source.id === target.id)) {
|
|
9153
|
+
throw new Error(`Targeted replacement source "${replacer.id}" cannot claim success because target "${target.id}" ` + "was removed by semantic-policy deduplication before composition.");
|
|
9154
|
+
}
|
|
9155
|
+
}
|
|
9156
|
+
}
|
|
9157
|
+
function composeBroadReplaceSources(sources) {
|
|
8950
9158
|
let start = -1;
|
|
8951
9159
|
for (let i = 0;i < sources.length; i++) {
|
|
8952
9160
|
if (sources[i].resolvedMerge === "replace")
|
|
@@ -8960,6 +9168,53 @@ function composeSources(sources) {
|
|
|
8960
9168
|
const skipped = earlier.filter((source) => !source.nonOverridable).map((source) => skippedSource(source, `superseded by "${replacer.id}": a replace-merge source discards earlier overridable instruction layers`));
|
|
8961
9169
|
return { sources: [...protectedSources, ...sources.slice(start)], skipped };
|
|
8962
9170
|
}
|
|
9171
|
+
function composeSources(sources) {
|
|
9172
|
+
const hasTargetedReplacement = sources.some((source) => source.replacementScope !== undefined);
|
|
9173
|
+
if (!hasTargetedReplacement)
|
|
9174
|
+
return composeBroadReplaceSources(sources);
|
|
9175
|
+
const selected = [];
|
|
9176
|
+
const skipped = [];
|
|
9177
|
+
for (const source of sources) {
|
|
9178
|
+
const targetNormalizedId = targetedReplacementTarget(source);
|
|
9179
|
+
if (targetNormalizedId !== null) {
|
|
9180
|
+
const targetIndex = selected.findIndex((candidate) => candidate.normalizedId === targetNormalizedId);
|
|
9181
|
+
if (targetIndex < 0) {
|
|
9182
|
+
throw new Error(`Targeted replacement source "${source.id}" cannot replace "${targetNormalizedId}": ` + "the earlier target was already removed.");
|
|
9183
|
+
}
|
|
9184
|
+
const target = selected[targetIndex];
|
|
9185
|
+
if (target.nonOverridable) {
|
|
9186
|
+
throw new Error(`Targeted replacement source "${source.id}" cannot replace non-overridable source "${target.id}".`);
|
|
9187
|
+
}
|
|
9188
|
+
selected.splice(targetIndex, 1);
|
|
9189
|
+
skipped.push(skippedSource(target, `superseded by "${source.id}": targeted replacement ${source.replacementScope} ` + `removed exactly source "${target.id}"`));
|
|
9190
|
+
selected.push({
|
|
9191
|
+
...source,
|
|
9192
|
+
provenance: {
|
|
9193
|
+
...source.provenance ?? {},
|
|
9194
|
+
targetedReplacement: {
|
|
9195
|
+
scope: source.replacementScope,
|
|
9196
|
+
targetSourceId: target.id,
|
|
9197
|
+
targetNormalizedSourceId: target.normalizedId
|
|
9198
|
+
}
|
|
9199
|
+
}
|
|
9200
|
+
});
|
|
9201
|
+
continue;
|
|
9202
|
+
}
|
|
9203
|
+
if (source.resolvedMerge === "replace") {
|
|
9204
|
+
const retained = selected.filter((candidate) => candidate.nonOverridable);
|
|
9205
|
+
for (const candidate of selected) {
|
|
9206
|
+
if (candidate.nonOverridable)
|
|
9207
|
+
continue;
|
|
9208
|
+
skipped.push(skippedSource(candidate, `superseded by "${source.id}": a replace-merge source discards earlier overridable instruction layers`));
|
|
9209
|
+
}
|
|
9210
|
+
selected.length = 0;
|
|
9211
|
+
selected.push(...retained, source);
|
|
9212
|
+
continue;
|
|
9213
|
+
}
|
|
9214
|
+
selected.push(source);
|
|
9215
|
+
}
|
|
9216
|
+
return { sources: selected, skipped };
|
|
9217
|
+
}
|
|
8963
9218
|
function sectionForSource(source) {
|
|
8964
9219
|
const parts = [
|
|
8965
9220
|
`<!-- ${SESSION_RENDER_MANAGED_MARKER}. Do not edit this generated file directly. -->`,
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import type { SessionRenderFile, SessionRenderManifest, SessionRenderMode, SessionRenderTool } from "./session-render.js";
|
|
3
3
|
export declare const PROJECT_CONTEXT_SCHEMA: "hasna.projects.project_context_bundle.v1";
|
|
4
|
+
export declare const PROJECT_CONTEXT_SCHEMA_V2: "hasna.projects.project_context_bundle.v2";
|
|
4
5
|
export declare const PROJECT_CONTEXT_MAX_INPUT_BYTES: number;
|
|
5
6
|
export declare const PROJECT_CONTEXT_MAX_RENDERED_BYTES: number;
|
|
6
7
|
export declare const PROJECT_CONTEXT_MAX_APPROX_TOKENS = 1000;
|
|
@@ -44,7 +45,7 @@ export declare const LEGACY_CONFIGS_PACKAGE: "@hasna/configs";
|
|
|
44
45
|
export declare const LEGACY_CONFIGS_COMPAT_VERSION: "0.2.45";
|
|
45
46
|
export declare const LEGACY_CONFIGS_EXECUTABLE: "configs";
|
|
46
47
|
declare const projectContextBundleSchema: z.ZodObject<{
|
|
47
|
-
schema: z.
|
|
48
|
+
schema: z.ZodEnum<["hasna.projects.project_context_bundle.v1", "hasna.projects.project_context_bundle.v2"]>;
|
|
48
49
|
generated_at: z.ZodEffects<z.ZodString, string, string>;
|
|
49
50
|
hash: z.ZodString;
|
|
50
51
|
revision: z.ZodEffects<z.ZodString, string, string>;
|
|
@@ -201,7 +202,7 @@ declare const projectContextBundleSchema: z.ZodObject<{
|
|
|
201
202
|
status: "active" | "archived" | "deleted";
|
|
202
203
|
path: string | null;
|
|
203
204
|
};
|
|
204
|
-
schema: "hasna.projects.project_context_bundle.v1";
|
|
205
|
+
schema: "hasna.projects.project_context_bundle.v1" | "hasna.projects.project_context_bundle.v2";
|
|
205
206
|
generated_at: string;
|
|
206
207
|
hash: string;
|
|
207
208
|
revision: string;
|
|
@@ -251,7 +252,7 @@ declare const projectContextBundleSchema: z.ZodObject<{
|
|
|
251
252
|
status: "active" | "archived" | "deleted";
|
|
252
253
|
path: string | null;
|
|
253
254
|
};
|
|
254
|
-
schema: "hasna.projects.project_context_bundle.v1";
|
|
255
|
+
schema: "hasna.projects.project_context_bundle.v1" | "hasna.projects.project_context_bundle.v2";
|
|
255
256
|
generated_at: string;
|
|
256
257
|
hash: string;
|
|
257
258
|
revision: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-context.d.ts","sourceRoot":"","sources":["../../src/lib/project-context.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"project-context.d.ts","sourceRoot":"","sources":["../../src/lib/project-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -249,6 +249,7 @@ export declare const SESSION_RENDER_SHARED_MANAGED_DIRS: readonly string[];
|
|
|
249
249
|
export declare const SESSION_RENDER_EXCLUSIVE_MANAGED_PATHS: readonly string[];
|
|
250
250
|
export declare const SESSION_LAYER_RANK: Record<SessionInstructionLayer, number>;
|
|
251
251
|
export declare function normalizeSessionInstructionLayer(value: unknown): SessionInstructionLayer;
|
|
252
|
+
export declare function normalizeSessionInstructionSourceId(value: string): string;
|
|
252
253
|
export declare function cleanSessionPathInput(path: string): string;
|
|
253
254
|
export declare function resolveSessionPath(path: string): string;
|
|
254
255
|
export declare function resolveSessionTargetOwnership(input: Pick<SessionRenderInput, "tool" | "profile" | "projectRoot">, target: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-render.d.ts","sourceRoot":"","sources":["../../src/lib/session-render.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAehD,OAAO,EAML,KAAK,0BAA0B,EAChC,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAEL,0BAA0B,EAI1B,qBAAqB,EAEtB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC1B,uCAAuC,EACvC,6BAA6B,EAC7B,gCAAgC,EAChC,qCAAqC,EACrC,qBAAqB,EACrB,oCAAoC,GACrC,MAAM,8BAA8B,CAAC;AACtC,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;AACvD,eAAO,MAAM,gCAAgC,QAAS,CAAC;AACvD,eAAO,MAAM,yBAAyB,kCAAkC,CAAC;AAEzE,eAAO,MAAM,oBAAoB,oGASvB,CAAC;AAEX,eAAO,MAAM,kCAAkC,2GAKrC,CAAC;AACX,eAAO,MAAM,mCAAmC,0JAItC,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AACtE,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,GAAG,oBAAoB,GAAG,YAAY,GAAG,uBAAuB,GAAG,mBAAmB,CAAC;AACvI,MAAM,MAAM,uBAAuB,GAAG,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC;AAClF,MAAM,MAAM,4BAA4B,GAAG,uBAAuB,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;AACzG,MAAM,MAAM,uBAAuB,GAAG,QAAQ,GAAG,SAAS,CAAC;AAC3D,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;AAC1F,MAAM,MAAM,uBAAuB,GAAG,cAAc,GAAG,cAAc,GAAG,SAAS,CAAC;AAClF,MAAM,MAAM,sBAAsB,GAAG,kBAAkB,GAAG,SAAS,GAAG,SAAS,CAAC;AAEhF,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC3C;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,iBAAiB,CAAC;IACxB,IAAI,EAAE,iBAAiB,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,4BAA4B,CAAC;IACrC,KAAK,CAAC,EAAE,uBAAuB,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC5C,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,KAAK,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAC;IACvC,WAAW,CAAC,EAAE,4BAA4B,EAAE,CAAC;IAC7C,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC3C;AAmBD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,sBAAsB,CAAC;IAC7B,IAAI,EAAE,iBAAiB,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,cAAc,CAAC;IACxB,cAAc,EAAE,cAAc,CAAC;IAC/B,MAAM,EAAE;QACN,EAAE,EAAE,OAAO,yBAAyB,CAAC;QACrC,SAAS,EAAE,IAAI,CAAC;QAChB,aAAa,EAAE,CAAC,cAAc,CAAC,CAAC;QAChC,KAAK,EAAE,wBAAwB,GAAG,4BAA4B,CAAC;KAChE,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,6BAA6B;IAC5C,OAAO,EAAE,wBAAwB,EAAE,CAAC;IACpC,cAAc,EAAE,oBAAoB,EAAE,CAAC;IACvC,cAAc,CAAC,EAAE,qBAAqB,CAAC;CACxC;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,iBAAiB,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,wBAAwB,EAAE,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,cAAc,CAAC,EAAE,qBAAqB,CAAC;IACvC,cAAc,CAAC,EAAE,oBAAoB,EAAE,CAAC;CACzC;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,qBAAqB,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,OAAO,qBAAqB,CAAC;IACrC,IAAI,EAAE,iBAAiB,CAAC;IACxB,WAAW,EAAE,iBAAiB,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,uBAAuB,CAAC;IACpC,WAAW,EAAE,kBAAkB,CAAC;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,KAAK,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,uBAAuB,CAAC;QAC/B,KAAK,EAAE,uBAAuB,CAAC;QAC/B,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QACpB,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,KAAK,EAAE,uBAAuB,GAAG,IAAI,CAAC;QACtC,WAAW,EAAE,4BAA4B,EAAE,CAAC;QAC5C,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QACpB,cAAc,EAAE,OAAO,CAAC;QACxB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;QAChC,KAAK,EAAE,KAAK,CAAC;YACX,EAAE,EAAE,MAAM,CAAC;YACX,KAAK,EAAE,MAAM,CAAC;YACd,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,EAAE,MAAM,EAAE,CAAC;YAChB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;YAQpB,aAAa,EAAE,MAAM,CAAC;YACtB,mBAAmB,EAAE,OAAO,GAAG,IAAI,CAAC;YACpC,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAC;YACvC,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAAC;YACxC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;SACjC,CAAC,CAAC;QACH,qBAAqB,EAAE,MAAM,CAAC;QAC9B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;QAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;KAC3C,CAAC,CAAC;IACH,cAAc,EAAE,KAAK,CAAC;QACpB,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,KAAK,EAAE,KAAK,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,YAAY,EAAE,MAAM,CAAC;QACrB,IAAI,EAAE,qBAAqB,CAAC;QAC5B,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC,CAAC;IACH,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,cAAc,CAAC,EAAE;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,qBAAqB,EAAE,MAAM,CAAC;QAC9B,qBAAqB,EAAE,MAAM,CAAC;QAC9B,QAAQ,EAAE,OAAO,CAAC;KACnB,CAAC;IACF,cAAc,CAAC,EAAE;QACf,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,IAAI,CAAC;IACb,IAAI,EAAE,iBAAiB,CAAC;IACxB,OAAO,EAAE,kBAAkB,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,uBAAuB,CAAC;IACpC,WAAW,EAAE,kBAAkB,CAAC;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB;;;;;;;;;OASG;IACH,iBAAiB,EAAE,OAAO,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,QAAQ,EAAE,qBAAqB,CAAC;IAChC,YAAY,EAAE,iBAAiB,CAAC;IAChC,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,mBAAmB,CAAC,EAAE,0BAA0B,CAAC;CAClD;AAsBD,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,iBAAiB,EAAE,kBAAkB,CA8D/E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,EAAE,SAAS,MAAM,EAQxD,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,kCAAkC,EAAE,SAAS,MAAM,EAAsB,CAAC;AAEvF;;;;GAIG;AACH,eAAO,MAAM,sCAAsC,EAAE,SAAS,MAAM,EAInE,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,uBAAuB,EAAE,MAAM,CAYtE,CAAC;AAEF,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,OAAO,GAAG,uBAAuB,CAkBxF;
|
|
1
|
+
{"version":3,"file":"session-render.d.ts","sourceRoot":"","sources":["../../src/lib/session-render.ts"],"names":[],"mappings":"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"}
|