@hasna/instructions 0.4.21 → 0.4.23
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/dist/cli/index.js +28 -9
- package/dist/index.js +28 -7
- package/dist/lib/project-context.d.ts +4 -0
- package/dist/lib/project-context.d.ts.map +1 -1
- package/dist/lib/sync.d.ts.map +1 -1
- package/dist/mcp/index.js +12 -4
- package/package.json +1 -1
package/dist/cli/index.js
CHANGED
|
@@ -7918,6 +7918,9 @@ import {
|
|
|
7918
7918
|
writeFileSync
|
|
7919
7919
|
} from "fs";
|
|
7920
7920
|
import { basename, dirname, isAbsolute, join as join4, parse, relative, resolve } from "path";
|
|
7921
|
+
function managedObservationMaxBytes(relativePath) {
|
|
7922
|
+
return SESSION_MANAGED_OUTPUT_PATHS.includes(relativePath) ? SESSION_MANAGED_OUTPUT_MAX_BYTES : FOREIGN_INPUT_MAX_BYTES;
|
|
7923
|
+
}
|
|
7921
7924
|
function computeProjectContextSourceHash(value) {
|
|
7922
7925
|
const normalized = removeHashForFingerprint(value);
|
|
7923
7926
|
return `sha256:${sha2562(stableStringify(normalized))}`;
|
|
@@ -7986,7 +7989,7 @@ function planProjectContext(input) {
|
|
|
7986
7989
|
const inlineMarkerOverhead = nativeImports ? 0 : Buffer.byteLength(buildManagedBlock(bundle, "", `
|
|
7987
7990
|
`), "utf8");
|
|
7988
7991
|
const generated = buildCanonicalFragment(bundle, status, ageSeconds, PROJECT_CONTEXT_MAX_RENDERED_BYTES - Math.max(320, inlineMarkerOverhead), PROJECT_CONTEXT_MAX_APPROX_TOKENS - Math.max(80, Math.ceil(inlineMarkerOverhead / 4)));
|
|
7989
|
-
const previousTargetContent = existsSync4(paths.target) ? readUtf8RegularFile(paths.target, workspaceRoot) : null;
|
|
7992
|
+
const previousTargetContent = existsSync4(paths.target) ? readUtf8RegularFile(paths.target, workspaceRoot, managedObservationMaxBytes(relativePosix(workspaceRoot, paths.target))) : null;
|
|
7990
7993
|
const markerParse = parseManagedBlock(previousTargetContent ?? "", input.force === true);
|
|
7991
7994
|
if (markerParse.block && markerParse.block.id !== bundle.project.id) {
|
|
7992
7995
|
throw new ProjectContextError("MANAGED_BLOCK_CONFLICT", "managed block belongs to a different project");
|
|
@@ -8069,7 +8072,7 @@ function composeProjectContextSessionRender(input) {
|
|
|
8069
8072
|
if (!existsSync4(paths.target)) {
|
|
8070
8073
|
throw new ProjectContextError("MANAGED_BLOCK_CONFLICT", "project-context provider target is missing while durable context is active");
|
|
8071
8074
|
}
|
|
8072
|
-
const currentTarget = readUtf8RegularFile(paths.target, workspaceRoot);
|
|
8075
|
+
const currentTarget = readUtf8RegularFile(paths.target, workspaceRoot, managedObservationMaxBytes(relativePosix(workspaceRoot, paths.target)));
|
|
8073
8076
|
const currentMarkers = parseManagedBlock(currentTarget, false);
|
|
8074
8077
|
if (!currentMarkers.block) {
|
|
8075
8078
|
throw new ProjectContextError("MANAGED_BLOCK_CONFLICT", "project-context provider target lost its managed block");
|
|
@@ -9462,7 +9465,7 @@ function anchoredFileObservation(directory, name) {
|
|
|
9462
9465
|
if (!stat.isFile())
|
|
9463
9466
|
throw new ProjectContextHashRace("managed output is not a regular file");
|
|
9464
9467
|
const relativePath = relativePosix(directory.workspaceRoot, join4(directory.path, name));
|
|
9465
|
-
const maxBytes = directory.maxObservedBytes === undefined ? relativePath
|
|
9468
|
+
const maxBytes = directory.maxObservedBytes === undefined ? managedObservationMaxBytes(relativePath) : directory.maxObservedBytes;
|
|
9466
9469
|
if (maxBytes !== null && stat.size > maxBytes) {
|
|
9467
9470
|
throw new ProjectContextHashRace(`managed output exceeds the safe read limit: ${relativePath}`);
|
|
9468
9471
|
}
|
|
@@ -10109,7 +10112,7 @@ function assertNoSymlinkAncestors(path) {
|
|
|
10109
10112
|
throw new ProjectContextError("PROJECT_CONTEXT_SYMLINK_REJECTED", `workspace ancestor is a symlink: ${current}`);
|
|
10110
10113
|
}
|
|
10111
10114
|
}
|
|
10112
|
-
function readUtf8RegularFile(path, workspaceRoot, maxBytes =
|
|
10115
|
+
function readUtf8RegularFile(path, workspaceRoot, maxBytes = FOREIGN_INPUT_MAX_BYTES) {
|
|
10113
10116
|
assertNoSymlinkSegments(workspaceRoot, path);
|
|
10114
10117
|
const stat = lstatSync(path);
|
|
10115
10118
|
if (!stat.isFile())
|
|
@@ -10122,8 +10125,7 @@ function currentFileHash(path, workspaceRoot) {
|
|
|
10122
10125
|
if (!existsSync4(path))
|
|
10123
10126
|
return null;
|
|
10124
10127
|
const relativePath = relativePosix(workspaceRoot, path);
|
|
10125
|
-
|
|
10126
|
-
return sha2562(readUtf8RegularFile(path, workspaceRoot, maxBytes));
|
|
10128
|
+
return sha2562(readUtf8RegularFile(path, workspaceRoot, managedObservationMaxBytes(relativePath)));
|
|
10127
10129
|
}
|
|
10128
10130
|
function hashesStillMatch(expected, workspaceRoot) {
|
|
10129
10131
|
for (const [path, hash] of expected) {
|
|
@@ -10298,7 +10300,7 @@ function sha2562(content) {
|
|
|
10298
10300
|
function isRecord(value) {
|
|
10299
10301
|
return !!value && typeof value === "object" && !Array.isArray(value);
|
|
10300
10302
|
}
|
|
10301
|
-
var PROJECT_CONTEXT_SCHEMA = "hasna.projects.project_context_bundle.v1", PROJECT_CONTEXT_MAX_INPUT_BYTES, PROJECT_CONTEXT_MAX_RENDERED_BYTES, PROJECT_CONTEXT_MAX_APPROX_TOKENS = 1000, PROJECT_CONTEXT_MAX_COMMANDS = 6, PROJECT_CONTEXT_MAX_WARNINGS = 3, PROJECT_CONTEXT_FRAGMENT_PATH = ".hasna/instructions/project-context.md", PROJECT_CONTEXT_MANIFEST_PATH = ".hasna/project-context-manifest.json", PROJECT_CONTEXT_CACHE_PATH = ".hasna/project-context-cache.json", PROJECT_CONTEXT_LOCK_PATH = ".hasna/project-context.lock", PROJECT_CONTEXT_SNAPSHOT_DIR = ".hasna/project-context-snapshots", PROJECT_CONTEXT_CACHE_SCHEMA = "hasna.instructions.project-context-cache/v1", PROJECT_CONTEXT_MANAGED_COMMENT = "Managed by @hasna/configs project context", SESSION_COMPATIBILITY_MANIFEST_MAX_BYTES, PROJECT_CONTEXT_LOCK_STALE_MS, LEGACY_CONFIGS_PACKAGE = "@hasna/configs", LEGACY_CONFIGS_COMPAT_VERSION = "0.2.45", LEGACY_CONFIGS_EXECUTABLE = "configs", PROJECT_KINDS, PROJECT_STATUSES, LINK_STATES, RESOLUTION_SOURCES, safeId, nullableId, producerSlug, producerName, safeOptionalDisplay, isoTimestamp, revisionSchema, hashSchema, absolutePath, commandArg, commandSchema, projectContextBundleSchema, storedManifestProjectContextSchema, storedManifestFileSchema, storedManifestObservationSchema, projectContextCacheSchema, ProjectContextError, ProjectContextHashRace, anchoredFsOps, atomicExchange, atomicExchangeLibraries;
|
|
10303
|
+
var PROJECT_CONTEXT_SCHEMA = "hasna.projects.project_context_bundle.v1", PROJECT_CONTEXT_MAX_INPUT_BYTES, PROJECT_CONTEXT_MAX_RENDERED_BYTES, PROJECT_CONTEXT_MAX_APPROX_TOKENS = 1000, PROJECT_CONTEXT_MAX_COMMANDS = 6, PROJECT_CONTEXT_MAX_WARNINGS = 3, PROJECT_CONTEXT_FRAGMENT_PATH = ".hasna/instructions/project-context.md", PROJECT_CONTEXT_MANIFEST_PATH = ".hasna/project-context-manifest.json", PROJECT_CONTEXT_CACHE_PATH = ".hasna/project-context-cache.json", PROJECT_CONTEXT_LOCK_PATH = ".hasna/project-context.lock", PROJECT_CONTEXT_SNAPSHOT_DIR = ".hasna/project-context-snapshots", PROJECT_CONTEXT_CACHE_SCHEMA = "hasna.instructions.project-context-cache/v1", PROJECT_CONTEXT_MANAGED_COMMENT = "Managed by @hasna/configs project context", SESSION_COMPATIBILITY_MANIFEST_MAX_BYTES, FOREIGN_INPUT_MAX_BYTES, SESSION_MANAGED_OUTPUT_MAX_BYTES, SESSION_MANAGED_OUTPUT_PATHS, PROJECT_CONTEXT_LOCK_STALE_MS, LEGACY_CONFIGS_PACKAGE = "@hasna/configs", LEGACY_CONFIGS_COMPAT_VERSION = "0.2.45", LEGACY_CONFIGS_EXECUTABLE = "configs", PROJECT_KINDS, PROJECT_STATUSES, LINK_STATES, RESOLUTION_SOURCES, safeId, nullableId, producerSlug, producerName, safeOptionalDisplay, isoTimestamp, revisionSchema, hashSchema, absolutePath, commandArg, commandSchema, projectContextBundleSchema, storedManifestProjectContextSchema, storedManifestFileSchema, storedManifestObservationSchema, projectContextCacheSchema, ProjectContextError, ProjectContextHashRace, anchoredFsOps, atomicExchange, atomicExchangeLibraries;
|
|
10302
10304
|
var init_project_context = __esm(() => {
|
|
10303
10305
|
init_zod();
|
|
10304
10306
|
init_redact();
|
|
@@ -10306,6 +10308,16 @@ var init_project_context = __esm(() => {
|
|
|
10306
10308
|
PROJECT_CONTEXT_MAX_INPUT_BYTES = 8 * 1024;
|
|
10307
10309
|
PROJECT_CONTEXT_MAX_RENDERED_BYTES = 4 * 1024;
|
|
10308
10310
|
SESSION_COMPATIBILITY_MANIFEST_MAX_BYTES = 8 * 1024 * 1024;
|
|
10311
|
+
FOREIGN_INPUT_MAX_BYTES = 256 * 1024;
|
|
10312
|
+
SESSION_MANAGED_OUTPUT_MAX_BYTES = SESSION_COMPATIBILITY_MANIFEST_MAX_BYTES;
|
|
10313
|
+
SESSION_MANAGED_OUTPUT_PATHS = [
|
|
10314
|
+
".hasna/session-render-manifest.json",
|
|
10315
|
+
".codewith/.hasna/session-render-manifest.json",
|
|
10316
|
+
"CLAUDE.md",
|
|
10317
|
+
"AGENTS.md",
|
|
10318
|
+
".codewith/CODEWITH.md",
|
|
10319
|
+
".codewith/CODEWITH.override.md"
|
|
10320
|
+
];
|
|
10309
10321
|
PROJECT_CONTEXT_LOCK_STALE_MS = 5 * 60 * 1000;
|
|
10310
10322
|
PROJECT_KINDS = [
|
|
10311
10323
|
"open-source",
|
|
@@ -12512,6 +12524,13 @@ function normalizeOutputs(outputs) {
|
|
|
12512
12524
|
function outputsEqual(a, b) {
|
|
12513
12525
|
return JSON.stringify(normalizeOutputs(a)) === JSON.stringify(normalizeOutputs(b));
|
|
12514
12526
|
}
|
|
12527
|
+
function normalizeKnownConfigSource(known, content) {
|
|
12528
|
+
if (known.name !== "bash-profile")
|
|
12529
|
+
return content;
|
|
12530
|
+
return content.split(`
|
|
12531
|
+
`).map((line) => line === UNGUARDED_LOCAL_ENV_HELPER ? GUARDED_LOCAL_ENV_HELPER : line).join(`
|
|
12532
|
+
`);
|
|
12533
|
+
}
|
|
12515
12534
|
function outputOwnerIdsByTarget(configs) {
|
|
12516
12535
|
const owners = new Map;
|
|
12517
12536
|
for (const config of configs) {
|
|
@@ -12683,7 +12702,7 @@ async function syncKnown(opts = {}) {
|
|
|
12683
12702
|
continue;
|
|
12684
12703
|
}
|
|
12685
12704
|
try {
|
|
12686
|
-
const rawContent = readFileSync6(abs, "utf-8");
|
|
12705
|
+
const rawContent = normalizeKnownConfigSource(known, readFileSync6(abs, "utf-8"));
|
|
12687
12706
|
if (rawContent.length > 500000) {
|
|
12688
12707
|
result.skipped.push(known.path + " (too large)");
|
|
12689
12708
|
continue;
|
|
@@ -12935,7 +12954,7 @@ function detectFormat(filePath) {
|
|
|
12935
12954
|
return "ini";
|
|
12936
12955
|
return "text";
|
|
12937
12956
|
}
|
|
12938
|
-
var CLAUDE_PROMPT_OUTPUTS, KNOWN_CONFIGS, PROJECT_CONFIG_FILES, CERTAIN_PLACEHOLDER_RE, ASSIGNED_PLACEHOLDER_RE;
|
|
12957
|
+
var CLAUDE_PROMPT_OUTPUTS, UNGUARDED_LOCAL_ENV_HELPER = '. "$HOME/.local/bin/env"', GUARDED_LOCAL_ENV_HELPER = '[ -r "$HOME/.local/bin/env" ] && . "$HOME/.local/bin/env"', KNOWN_CONFIGS, PROJECT_CONFIG_FILES, CERTAIN_PLACEHOLDER_RE, ASSIGNED_PLACEHOLDER_RE;
|
|
12939
12958
|
var init_sync = __esm(() => {
|
|
12940
12959
|
init_config_store();
|
|
12941
12960
|
init_apply();
|
package/dist/index.js
CHANGED
|
@@ -5831,6 +5831,19 @@ var PROJECT_CONTEXT_SNAPSHOT_DIR = ".hasna/project-context-snapshots";
|
|
|
5831
5831
|
var PROJECT_CONTEXT_CACHE_SCHEMA = "hasna.instructions.project-context-cache/v1";
|
|
5832
5832
|
var PROJECT_CONTEXT_MANAGED_COMMENT = "Managed by @hasna/configs project context";
|
|
5833
5833
|
var SESSION_COMPATIBILITY_MANIFEST_MAX_BYTES = 8 * 1024 * 1024;
|
|
5834
|
+
var FOREIGN_INPUT_MAX_BYTES = 256 * 1024;
|
|
5835
|
+
var SESSION_MANAGED_OUTPUT_MAX_BYTES = SESSION_COMPATIBILITY_MANIFEST_MAX_BYTES;
|
|
5836
|
+
var SESSION_MANAGED_OUTPUT_PATHS = [
|
|
5837
|
+
".hasna/session-render-manifest.json",
|
|
5838
|
+
".codewith/.hasna/session-render-manifest.json",
|
|
5839
|
+
"CLAUDE.md",
|
|
5840
|
+
"AGENTS.md",
|
|
5841
|
+
".codewith/CODEWITH.md",
|
|
5842
|
+
".codewith/CODEWITH.override.md"
|
|
5843
|
+
];
|
|
5844
|
+
function managedObservationMaxBytes(relativePath) {
|
|
5845
|
+
return SESSION_MANAGED_OUTPUT_PATHS.includes(relativePath) ? SESSION_MANAGED_OUTPUT_MAX_BYTES : FOREIGN_INPUT_MAX_BYTES;
|
|
5846
|
+
}
|
|
5834
5847
|
var PROJECT_CONTEXT_LOCK_STALE_MS = 5 * 60 * 1000;
|
|
5835
5848
|
var LEGACY_CONFIGS_PACKAGE = "@hasna/configs";
|
|
5836
5849
|
var LEGACY_CONFIGS_COMPAT_VERSION = "0.2.45";
|
|
@@ -6044,7 +6057,7 @@ function planProjectContext(input) {
|
|
|
6044
6057
|
const inlineMarkerOverhead = nativeImports ? 0 : Buffer.byteLength(buildManagedBlock(bundle, "", `
|
|
6045
6058
|
`), "utf8");
|
|
6046
6059
|
const generated = buildCanonicalFragment(bundle, status, ageSeconds, PROJECT_CONTEXT_MAX_RENDERED_BYTES - Math.max(320, inlineMarkerOverhead), PROJECT_CONTEXT_MAX_APPROX_TOKENS - Math.max(80, Math.ceil(inlineMarkerOverhead / 4)));
|
|
6047
|
-
const previousTargetContent = existsSync3(paths.target) ? readUtf8RegularFile(paths.target, workspaceRoot) : null;
|
|
6060
|
+
const previousTargetContent = existsSync3(paths.target) ? readUtf8RegularFile(paths.target, workspaceRoot, managedObservationMaxBytes(relativePosix(workspaceRoot, paths.target))) : null;
|
|
6048
6061
|
const markerParse = parseManagedBlock(previousTargetContent ?? "", input.force === true);
|
|
6049
6062
|
if (markerParse.block && markerParse.block.id !== bundle.project.id) {
|
|
6050
6063
|
throw new ProjectContextError("MANAGED_BLOCK_CONFLICT", "managed block belongs to a different project");
|
|
@@ -6127,7 +6140,7 @@ function composeProjectContextSessionRender(input) {
|
|
|
6127
6140
|
if (!existsSync3(paths.target)) {
|
|
6128
6141
|
throw new ProjectContextError("MANAGED_BLOCK_CONFLICT", "project-context provider target is missing while durable context is active");
|
|
6129
6142
|
}
|
|
6130
|
-
const currentTarget = readUtf8RegularFile(paths.target, workspaceRoot);
|
|
6143
|
+
const currentTarget = readUtf8RegularFile(paths.target, workspaceRoot, managedObservationMaxBytes(relativePosix(workspaceRoot, paths.target)));
|
|
6131
6144
|
const currentMarkers = parseManagedBlock(currentTarget, false);
|
|
6132
6145
|
if (!currentMarkers.block) {
|
|
6133
6146
|
throw new ProjectContextError("MANAGED_BLOCK_CONFLICT", "project-context provider target lost its managed block");
|
|
@@ -7521,7 +7534,7 @@ function anchoredFileObservation(directory, name) {
|
|
|
7521
7534
|
if (!stat.isFile())
|
|
7522
7535
|
throw new ProjectContextHashRace("managed output is not a regular file");
|
|
7523
7536
|
const relativePath = relativePosix(directory.workspaceRoot, join3(directory.path, name));
|
|
7524
|
-
const maxBytes = directory.maxObservedBytes === undefined ? relativePath
|
|
7537
|
+
const maxBytes = directory.maxObservedBytes === undefined ? managedObservationMaxBytes(relativePath) : directory.maxObservedBytes;
|
|
7525
7538
|
if (maxBytes !== null && stat.size > maxBytes) {
|
|
7526
7539
|
throw new ProjectContextHashRace(`managed output exceeds the safe read limit: ${relativePath}`);
|
|
7527
7540
|
}
|
|
@@ -8170,7 +8183,7 @@ function assertNoSymlinkAncestors(path) {
|
|
|
8170
8183
|
throw new ProjectContextError("PROJECT_CONTEXT_SYMLINK_REJECTED", `workspace ancestor is a symlink: ${current}`);
|
|
8171
8184
|
}
|
|
8172
8185
|
}
|
|
8173
|
-
function readUtf8RegularFile(path, workspaceRoot, maxBytes =
|
|
8186
|
+
function readUtf8RegularFile(path, workspaceRoot, maxBytes = FOREIGN_INPUT_MAX_BYTES) {
|
|
8174
8187
|
assertNoSymlinkSegments(workspaceRoot, path);
|
|
8175
8188
|
const stat = lstatSync(path);
|
|
8176
8189
|
if (!stat.isFile())
|
|
@@ -8183,8 +8196,7 @@ function currentFileHash(path, workspaceRoot) {
|
|
|
8183
8196
|
if (!existsSync3(path))
|
|
8184
8197
|
return null;
|
|
8185
8198
|
const relativePath = relativePosix(workspaceRoot, path);
|
|
8186
|
-
|
|
8187
|
-
return sha2562(readUtf8RegularFile(path, workspaceRoot, maxBytes));
|
|
8199
|
+
return sha2562(readUtf8RegularFile(path, workspaceRoot, managedObservationMaxBytes(relativePath)));
|
|
8188
8200
|
}
|
|
8189
8201
|
function hashesStillMatch(expected, workspaceRoot) {
|
|
8190
8202
|
for (const [path, hash] of expected) {
|
|
@@ -11844,6 +11856,15 @@ function normalizeOutputs(outputs) {
|
|
|
11844
11856
|
function outputsEqual(a, b) {
|
|
11845
11857
|
return JSON.stringify(normalizeOutputs(a)) === JSON.stringify(normalizeOutputs(b));
|
|
11846
11858
|
}
|
|
11859
|
+
var UNGUARDED_LOCAL_ENV_HELPER = '. "$HOME/.local/bin/env"';
|
|
11860
|
+
var GUARDED_LOCAL_ENV_HELPER = '[ -r "$HOME/.local/bin/env" ] && . "$HOME/.local/bin/env"';
|
|
11861
|
+
function normalizeKnownConfigSource(known, content) {
|
|
11862
|
+
if (known.name !== "bash-profile")
|
|
11863
|
+
return content;
|
|
11864
|
+
return content.split(`
|
|
11865
|
+
`).map((line) => line === UNGUARDED_LOCAL_ENV_HELPER ? GUARDED_LOCAL_ENV_HELPER : line).join(`
|
|
11866
|
+
`);
|
|
11867
|
+
}
|
|
11847
11868
|
function outputOwnerIdsByTarget(configs) {
|
|
11848
11869
|
const owners = new Map;
|
|
11849
11870
|
for (const config of configs) {
|
|
@@ -12062,7 +12083,7 @@ async function syncKnown(opts = {}) {
|
|
|
12062
12083
|
continue;
|
|
12063
12084
|
}
|
|
12064
12085
|
try {
|
|
12065
|
-
const rawContent = readFileSync9(abs, "utf-8");
|
|
12086
|
+
const rawContent = normalizeKnownConfigSource(known, readFileSync9(abs, "utf-8"));
|
|
12066
12087
|
if (rawContent.length > 500000) {
|
|
12067
12088
|
result.skipped.push(known.path + " (too large)");
|
|
12068
12089
|
continue;
|
|
@@ -13,6 +13,10 @@ export declare const PROJECT_CONTEXT_LOCK_PATH = ".hasna/project-context.lock";
|
|
|
13
13
|
export declare const PROJECT_CONTEXT_SNAPSHOT_DIR = ".hasna/project-context-snapshots";
|
|
14
14
|
export declare const PROJECT_CONTEXT_CACHE_SCHEMA: "hasna.instructions.project-context-cache/v1";
|
|
15
15
|
export declare const PROJECT_CONTEXT_MANAGED_COMMENT = "Managed by @hasna/configs project context";
|
|
16
|
+
export declare const FOREIGN_INPUT_MAX_BYTES: number;
|
|
17
|
+
export declare const SESSION_MANAGED_OUTPUT_MAX_BYTES: number;
|
|
18
|
+
export declare const SESSION_MANAGED_OUTPUT_PATHS: string[];
|
|
19
|
+
export declare function managedObservationMaxBytes(relativePath: string): number;
|
|
16
20
|
export declare const LEGACY_CONFIGS_PACKAGE: "@hasna/configs";
|
|
17
21
|
export declare const LEGACY_CONFIGS_COMPAT_VERSION: "0.2.45";
|
|
18
22
|
export declare const LEGACY_CONFIGS_EXECUTABLE: "configs";
|
|
@@ -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;AAG1H,eAAO,MAAM,sBAAsB,EAAG,0CAAmD,CAAC;AAC1F,eAAO,MAAM,+BAA+B,QAAW,CAAC;AACxD,eAAO,MAAM,kCAAkC,QAAW,CAAC;AAC3D,eAAO,MAAM,iCAAiC,OAAQ,CAAC;AACvD,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAC9C,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAC9C,eAAO,MAAM,6BAA6B,2CAA2C,CAAC;AACtF,eAAO,MAAM,6BAA6B,yCAAyC,CAAC;AACpF,eAAO,MAAM,0BAA0B,sCAAsC,CAAC;AAC9E,eAAO,MAAM,yBAAyB,gCAAgC,CAAC;AACvE,eAAO,MAAM,4BAA4B,qCAAqC,CAAC;AAC/E,eAAO,MAAM,4BAA4B,EAAG,6CAAsD,CAAC;AACnG,eAAO,MAAM,+BAA+B,8CAA8C,CAAC;
|
|
1
|
+
{"version":3,"file":"project-context.d.ts","sourceRoot":"","sources":["../../src/lib/project-context.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/sync.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/lib/sync.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACrH,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAW/E,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,cAAc,CAAC;IACzB,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;CAC1B;AAED,eAAO,MAAM,qBAAqB,EAAE,YAAY,EAQ/C,CAAC;
|
|
1
|
+
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/lib/sync.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACrH,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAW/E,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,cAAc,CAAC;IACzB,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;CAC1B;AAED,eAAO,MAAM,qBAAqB,EAAE,YAAY,EAQ/C,CAAC;AAmEF,eAAO,MAAM,aAAa,EAAE,WAAW,EAwDtC,CAAC;AAIF,eAAO,MAAM,oBAAoB;;cAC2B,cAAc;WAAsB,WAAW;YAAwB,YAAY;GAe9I,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,CAiE/E;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,wBAAsB,SAAS,CAAC,IAAI,GAAE,gBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC,CAqGhF;AAGD,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,wBAAsB,UAAU,CAAC,IAAI,GAAE,iBAAsB,GAAG,OAAO,CAAC,UAAU,CAAC,CAmClF;AAGD,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAkJD,wBAAsB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,iBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CA+B9F;AAGD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAU/D;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CAgBzD;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,CAQ3D;AAGD,OAAO,EAAE,MAAM,EAAE,CAAC;AAClB,YAAY,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC"}
|
package/dist/mcp/index.js
CHANGED
|
@@ -5729,7 +5729,7 @@ function isSafeSingleLine(value) {
|
|
|
5729
5729
|
function isSafeCommandArgument(value) {
|
|
5730
5730
|
return /^[A-Za-z0-9_./:@+=,-]+$/.test(value) && !value.includes("://") && !value.startsWith("-") || /^--[a-z][a-z0-9-]*$/.test(value);
|
|
5731
5731
|
}
|
|
5732
|
-
var PROJECT_CONTEXT_SCHEMA = "hasna.projects.project_context_bundle.v1", PROJECT_CONTEXT_MAX_INPUT_BYTES, PROJECT_CONTEXT_MAX_RENDERED_BYTES, PROJECT_CONTEXT_MAX_COMMANDS = 6, PROJECT_CONTEXT_FRAGMENT_PATH = ".hasna/instructions/project-context.md", PROJECT_CONTEXT_CACHE_SCHEMA = "hasna.instructions.project-context-cache/v1", SESSION_COMPATIBILITY_MANIFEST_MAX_BYTES, PROJECT_CONTEXT_LOCK_STALE_MS, PROJECT_KINDS, PROJECT_STATUSES, LINK_STATES, RESOLUTION_SOURCES, safeId, nullableId, producerSlug, producerName, safeOptionalDisplay, isoTimestamp, revisionSchema, hashSchema, absolutePath, commandArg, commandSchema, projectContextBundleSchema, storedManifestProjectContextSchema, storedManifestFileSchema, storedManifestObservationSchema, projectContextCacheSchema;
|
|
5732
|
+
var PROJECT_CONTEXT_SCHEMA = "hasna.projects.project_context_bundle.v1", PROJECT_CONTEXT_MAX_INPUT_BYTES, PROJECT_CONTEXT_MAX_RENDERED_BYTES, PROJECT_CONTEXT_MAX_COMMANDS = 6, PROJECT_CONTEXT_FRAGMENT_PATH = ".hasna/instructions/project-context.md", PROJECT_CONTEXT_CACHE_SCHEMA = "hasna.instructions.project-context-cache/v1", SESSION_COMPATIBILITY_MANIFEST_MAX_BYTES, FOREIGN_INPUT_MAX_BYTES, PROJECT_CONTEXT_LOCK_STALE_MS, PROJECT_KINDS, PROJECT_STATUSES, LINK_STATES, RESOLUTION_SOURCES, safeId, nullableId, producerSlug, producerName, safeOptionalDisplay, isoTimestamp, revisionSchema, hashSchema, absolutePath, commandArg, commandSchema, projectContextBundleSchema, storedManifestProjectContextSchema, storedManifestFileSchema, storedManifestObservationSchema, projectContextCacheSchema;
|
|
5733
5733
|
var init_project_context = __esm(() => {
|
|
5734
5734
|
init_zod();
|
|
5735
5735
|
init_redact();
|
|
@@ -5737,6 +5737,7 @@ var init_project_context = __esm(() => {
|
|
|
5737
5737
|
PROJECT_CONTEXT_MAX_INPUT_BYTES = 8 * 1024;
|
|
5738
5738
|
PROJECT_CONTEXT_MAX_RENDERED_BYTES = 4 * 1024;
|
|
5739
5739
|
SESSION_COMPATIBILITY_MANIFEST_MAX_BYTES = 8 * 1024 * 1024;
|
|
5740
|
+
FOREIGN_INPUT_MAX_BYTES = 256 * 1024;
|
|
5740
5741
|
PROJECT_CONTEXT_LOCK_STALE_MS = 5 * 60 * 1000;
|
|
5741
5742
|
PROJECT_KINDS = [
|
|
5742
5743
|
"open-source",
|
|
@@ -6643,6 +6644,13 @@ function normalizeOutputs(outputs) {
|
|
|
6643
6644
|
function outputsEqual(a, b) {
|
|
6644
6645
|
return JSON.stringify(normalizeOutputs(a)) === JSON.stringify(normalizeOutputs(b));
|
|
6645
6646
|
}
|
|
6647
|
+
function normalizeKnownConfigSource(known, content) {
|
|
6648
|
+
if (known.name !== "bash-profile")
|
|
6649
|
+
return content;
|
|
6650
|
+
return content.split(`
|
|
6651
|
+
`).map((line) => line === UNGUARDED_LOCAL_ENV_HELPER ? GUARDED_LOCAL_ENV_HELPER : line).join(`
|
|
6652
|
+
`);
|
|
6653
|
+
}
|
|
6646
6654
|
function outputOwnerIdsByTarget(configs) {
|
|
6647
6655
|
const owners = new Map;
|
|
6648
6656
|
for (const config of configs) {
|
|
@@ -6814,7 +6822,7 @@ async function syncKnown(opts = {}) {
|
|
|
6814
6822
|
continue;
|
|
6815
6823
|
}
|
|
6816
6824
|
try {
|
|
6817
|
-
const rawContent = readFileSync3(abs, "utf-8");
|
|
6825
|
+
const rawContent = normalizeKnownConfigSource(known, readFileSync3(abs, "utf-8"));
|
|
6818
6826
|
if (rawContent.length > 500000) {
|
|
6819
6827
|
result.skipped.push(known.path + " (too large)");
|
|
6820
6828
|
continue;
|
|
@@ -7066,7 +7074,7 @@ function detectFormat(filePath) {
|
|
|
7066
7074
|
return "ini";
|
|
7067
7075
|
return "text";
|
|
7068
7076
|
}
|
|
7069
|
-
var CLAUDE_PROMPT_OUTPUTS, KNOWN_CONFIGS, PROJECT_CONFIG_FILES, CERTAIN_PLACEHOLDER_RE, ASSIGNED_PLACEHOLDER_RE;
|
|
7077
|
+
var CLAUDE_PROMPT_OUTPUTS, UNGUARDED_LOCAL_ENV_HELPER = '. "$HOME/.local/bin/env"', GUARDED_LOCAL_ENV_HELPER = '[ -r "$HOME/.local/bin/env" ] && . "$HOME/.local/bin/env"', KNOWN_CONFIGS, PROJECT_CONFIG_FILES, CERTAIN_PLACEHOLDER_RE, ASSIGNED_PLACEHOLDER_RE;
|
|
7070
7078
|
var init_sync = __esm(() => {
|
|
7071
7079
|
init_config_store();
|
|
7072
7080
|
init_apply();
|
|
@@ -7229,7 +7237,7 @@ var init_sync_dir = __esm(() => {
|
|
|
7229
7237
|
var require_package = __commonJS((exports, module) => {
|
|
7230
7238
|
module.exports = {
|
|
7231
7239
|
name: "@hasna/instructions",
|
|
7232
|
-
version: "0.4.
|
|
7240
|
+
version: "0.4.23",
|
|
7233
7241
|
description: "AI coding agent instruction & configuration manager \u2014 store, version, apply, and share all your AI coding configs. CLI + MCP + HTTP API (instructions-serve) + generated SDK + Dashboard.",
|
|
7234
7242
|
type: "module",
|
|
7235
7243
|
main: "dist/index.js",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hasna/instructions",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.23",
|
|
4
4
|
"description": "AI coding agent instruction & configuration manager \u2014 store, version, apply, and share all your AI coding configs. CLI + MCP + HTTP API (instructions-serve) + generated SDK + Dashboard.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|