@hasna/instructions 0.5.2 → 0.5.4
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 -3
- package/dist/cli/index.js +429 -316
- package/dist/index.js +377 -268
- package/dist/lib/app-home.d.ts +45 -0
- package/dist/lib/app-home.d.ts.map +1 -0
- package/dist/lib/app-home.test.d.ts +2 -0
- package/dist/lib/app-home.test.d.ts.map +1 -0
- package/dist/lib/cursor-authority.d.ts +11 -2
- package/dist/lib/cursor-authority.d.ts.map +1 -1
- package/dist/lib/raw-store-root.d.ts +12 -8
- package/dist/lib/raw-store-root.d.ts.map +1 -1
- package/dist/lib/station-profile.d.ts.map +1 -1
- package/dist/mcp/index.js +194 -74
- package/dist/server/index.js +1 -1
- package/package.json +5 -4
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configs-app store-home resolution via the @hasna/paths resolver (XDG / macOS
|
|
3
|
+
* home layout). The "configs" app is the @hasna/instructions package surface
|
|
4
|
+
* that ships the `configs` / `configs-mcp` aliases and owns the configs store
|
|
5
|
+
* (SQLite store, backups, station-profile cache). Every shipped local-storage
|
|
6
|
+
* path derives from the effective store home.
|
|
7
|
+
*
|
|
8
|
+
* The legacy `~/.hasna/instructions` default (with the `HASNA_CONFIGS_HOME`
|
|
9
|
+
* exact-app override) stays the effective store home until the store has
|
|
10
|
+
* actually been migrated to the XDG config home or the operator sets the
|
|
11
|
+
* config-kind override `HASNA_CONFIG_HOME` — an existing local store never
|
|
12
|
+
* becomes invisible on upgrade.
|
|
13
|
+
*/
|
|
14
|
+
export declare const HASNA_CONFIGS_HOME_ENV = "HASNA_CONFIGS_HOME";
|
|
15
|
+
/** Pre-XDG default store home: ~/.hasna/instructions (computed at call time; HOME may be redirected). */
|
|
16
|
+
export declare function legacyStoreHome(env?: NodeJS.ProcessEnv): string;
|
|
17
|
+
/**
|
|
18
|
+
* The @hasna/paths-resolved config home for the configs app (XDG layout):
|
|
19
|
+
* ~/.config/hasna/configs on Linux; ~/Library/Application
|
|
20
|
+
* Support/Hasna/configs on macOS.
|
|
21
|
+
*/
|
|
22
|
+
export declare function resolverStoreHome(env?: NodeJS.ProcessEnv): string;
|
|
23
|
+
/**
|
|
24
|
+
* Whether the resolver (XDG) home should be adopted as the store home. The
|
|
25
|
+
* resolver home is adopted only when the operator has set `HASNA_CONFIG_HOME`
|
|
26
|
+
* (the config-kind override — a deliberate opt-in to the XDG layout) or the
|
|
27
|
+
* store has already been physically migrated there (`instructions.db` exists at
|
|
28
|
+
* the resolver home). A machine that only redirects another kind must NOT have
|
|
29
|
+
* its configs store moved, and a live store at the legacy home must never
|
|
30
|
+
* become invisible on upgrade.
|
|
31
|
+
*/
|
|
32
|
+
export declare function adoptResolverStoreHome(resolved: string, env?: NodeJS.ProcessEnv): boolean;
|
|
33
|
+
/** The exact-app override root: `HASNA_CONFIGS_HOME`. Empty values are treated as unset. */
|
|
34
|
+
export declare function exactStoreHome(env?: NodeJS.ProcessEnv): string | undefined;
|
|
35
|
+
/**
|
|
36
|
+
* Effective configs store home: the exact-app override (`HASNA_CONFIGS_HOME`)
|
|
37
|
+
* wins unconditionally; otherwise the @hasna/paths config home once adopted
|
|
38
|
+
* (`HASNA_CONFIG_HOME` set or the store already migrated there); otherwise the
|
|
39
|
+
* legacy `~/.hasna/instructions` default, so an existing store never becomes
|
|
40
|
+
* invisible on upgrade.
|
|
41
|
+
*/
|
|
42
|
+
export declare function getConfigsStoreHome(env?: NodeJS.ProcessEnv): string;
|
|
43
|
+
/** The store's SQLite database path under the effective store home. */
|
|
44
|
+
export declare function getConfigsStoreDbPath(env?: NodeJS.ProcessEnv): string;
|
|
45
|
+
//# sourceMappingURL=app-home.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-home.d.ts","sourceRoot":"","sources":["../../src/lib/app-home.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,sBAAsB,uBAAuB,CAAC;AAM3D,yGAAyG;AACzG,wBAAgB,eAAe,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAE5E;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAE9E;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAIT;AAED,4FAA4F;AAC5F,wBAAgB,cAAc,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,GAAG,SAAS,CAGvF;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAKhF;AAED,uEAAuE;AACvE,wBAAgB,qBAAqB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAElF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-home.test.d.ts","sourceRoot":"","sources":["../../src/lib/app-home.test.ts"],"names":[],"mappings":""}
|
|
@@ -79,8 +79,17 @@ export declare function isCursorGlobalAuthorityPath(path: string): boolean;
|
|
|
79
79
|
* opens with a `---` frontmatter block is stamped AFTER the closing `---`,
|
|
80
80
|
* matching how the package's own session-render cursor files place their
|
|
81
81
|
* managed marker; plain content without frontmatter is stamped at the top.
|
|
82
|
-
*
|
|
83
|
-
*
|
|
82
|
+
*
|
|
83
|
+
* Idempotency is hash-correctness-based, not presence-based: content whose
|
|
84
|
+
* existing marker's hash still matches its current payload is returned
|
|
85
|
+
* unchanged (re-apply no-op), while content carrying a STALE marker — the
|
|
86
|
+
* payload changed after stamping, e.g. a template re-render that expanded
|
|
87
|
+
* {{VAR}} placeholders — is re-stamped in place with the hash of the current
|
|
88
|
+
* payload. Presence-based idempotency propagated an invalid stamp forever:
|
|
89
|
+
* the observer recomputed the payload hash, reported
|
|
90
|
+
* marker-integrity-mismatch, and every re-apply reproduced the same invalid
|
|
91
|
+
* file, leaving the cursor project render blocked with no repair path
|
|
92
|
+
* (H-00154, station01 ~/.cursor/rules/hasna-global.mdc).
|
|
84
93
|
*/
|
|
85
94
|
export declare function stampCursorGlobalAuthorityMarker(content: string): string;
|
|
86
95
|
export declare function detectCursorAuthorityConflicts(observation?: CursorAuthorityObservation): CursorAuthorityConflict[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor-authority.d.ts","sourceRoot":"","sources":["../../src/lib/cursor-authority.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,qCAAqC,mCAAmC,CAAC;AACtF,eAAO,MAAM,iCAAiC,QAAa,CAAC;AAC5D,eAAO,MAAM,sCAAsC,sDAAsD,CAAC;AAQ1G,MAAM,MAAM,uBAAuB,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC;AAChG,MAAM,MAAM,gCAAgC,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;AAC9F,MAAM,MAAM,wBAAwB,GAChC,SAAS,GACT,gBAAgB,GAChB,iBAAiB,GACjB,2BAA2B,GAC3B,kBAAkB,GAClB,gBAAgB,GAChB,iBAAiB,CAAC;AAEtB,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,QAAQ,CAAC;IACf,YAAY,EAAE,OAAO,qCAAqC,CAAC;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,uBAAuB,CAAC;IAClC,MAAM,EAAE,gCAAgC,CAAC;IACzC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE;QACV,MAAM,EAAE,YAAY,CAAC;QACrB,SAAS,EAAE,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAC;QAC9C,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,wBAAwB,CAAC;KACrC,CAAC;CACH;AAED,MAAM,MAAM,2BAA2B,GACnC,6BAA6B,GAC7B,6BAA6B,CAAC;AAElC,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,QAAQ,CAAC;IACf,YAAY,EAAE,OAAO,qCAAqC,CAAC;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,2BAA2B,CAAC;IAClC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE;QACV,MAAM,EAAE,YAAY,CAAC;QACrB,SAAS,EAAE,WAAW,CAAC;QACvB,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,OAAO,CAAC,wBAAwB,EAAE,SAAS,GAAG,gBAAgB,CAAC,CAAC;KAC5E,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iCAAiC;IAChD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CACrC;AAUD;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAI/F;AAUD;;;;;;;;;;GAUG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,GAAE,iCAAsC,GAC9C,0BAA0B,CAI5B;AAED,wBAAgB,kCAAkC,CAChD,aAAa,EAAE,MAAM,GACpB,0BAA0B,CAK5B;AAoKD;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEjE;AAED
|
|
1
|
+
{"version":3,"file":"cursor-authority.d.ts","sourceRoot":"","sources":["../../src/lib/cursor-authority.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,qCAAqC,mCAAmC,CAAC;AACtF,eAAO,MAAM,iCAAiC,QAAa,CAAC;AAC5D,eAAO,MAAM,sCAAsC,sDAAsD,CAAC;AAQ1G,MAAM,MAAM,uBAAuB,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC;AAChG,MAAM,MAAM,gCAAgC,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;AAC9F,MAAM,MAAM,wBAAwB,GAChC,SAAS,GACT,gBAAgB,GAChB,iBAAiB,GACjB,2BAA2B,GAC3B,kBAAkB,GAClB,gBAAgB,GAChB,iBAAiB,CAAC;AAEtB,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,QAAQ,CAAC;IACf,YAAY,EAAE,OAAO,qCAAqC,CAAC;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,uBAAuB,CAAC;IAClC,MAAM,EAAE,gCAAgC,CAAC;IACzC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE;QACV,MAAM,EAAE,YAAY,CAAC;QACrB,SAAS,EAAE,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAC;QAC9C,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,wBAAwB,CAAC;KACrC,CAAC;CACH;AAED,MAAM,MAAM,2BAA2B,GACnC,6BAA6B,GAC7B,6BAA6B,CAAC;AAElC,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,QAAQ,CAAC;IACf,YAAY,EAAE,OAAO,qCAAqC,CAAC;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,2BAA2B,CAAC;IAClC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE;QACV,MAAM,EAAE,YAAY,CAAC;QACrB,SAAS,EAAE,WAAW,CAAC;QACvB,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,OAAO,CAAC,wBAAwB,EAAE,SAAS,GAAG,gBAAgB,CAAC,CAAC;KAC5E,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iCAAiC;IAChD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CACrC;AAUD;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAI/F;AAUD;;;;;;;;;;GAUG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,GAAE,iCAAsC,GAC9C,0BAA0B,CAI5B;AAED,wBAAgB,kCAAkC,CAChD,aAAa,EAAE,MAAM,GACpB,0BAA0B,CAK5B;AAoKD;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEjE;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAoBxE;AAED,wBAAgB,8BAA8B,CAC5C,WAAW,6BAAiC,GAC3C,uBAAuB,EAAE,CAsB3B"}
|
|
@@ -1,17 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Legacy environment variable that overrides the raw store root.
|
|
3
|
-
* Kept for compatibility: the canonical default is
|
|
3
|
+
* Kept for compatibility: the canonical default is the effective configs store
|
|
4
|
+
* home (legacy `~/.hasna/instructions` until the XDG config home is adopted),
|
|
4
5
|
* and `HASNA_CONFIGS_HOME` remains a supported override.
|
|
5
6
|
*/
|
|
6
7
|
export declare const RAW_STORE_ROOT_ENV = "HASNA_CONFIGS_HOME";
|
|
7
8
|
/**
|
|
8
|
-
* Canonical data root for the instructions app.
|
|
9
|
+
* Canonical data root for the instructions/configs app.
|
|
9
10
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* (
|
|
14
|
-
*
|
|
11
|
+
* Every shipped local-storage path derives from this root: the SQLite store
|
|
12
|
+
* (`db/database.ts`) and the CLI db-path / backup computations
|
|
13
|
+
* (`cli/index.tsx`). The root is resolved through the @hasna/paths resolver
|
|
14
|
+
* (XDG / macOS home layout): the legacy `~/.hasna/instructions` default (with
|
|
15
|
+
* the `HASNA_CONFIGS_HOME` exact-app override) stays the effective root until
|
|
16
|
+
* the store has actually been migrated to the XDG config home or the operator
|
|
17
|
+
* sets the config-kind override `HASNA_CONFIG_HOME`. An existing local store
|
|
18
|
+
* never becomes invisible on upgrade.
|
|
15
19
|
*/
|
|
16
|
-
export declare function getRawStoreRoot(): string;
|
|
20
|
+
export declare function getRawStoreRoot(env?: NodeJS.ProcessEnv): string;
|
|
17
21
|
//# sourceMappingURL=raw-store-root.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"raw-store-root.d.ts","sourceRoot":"","sources":["../../src/lib/raw-store-root.ts"],"names":[],"mappings":"AAGA
|
|
1
|
+
{"version":3,"file":"raw-store-root.d.ts","sourceRoot":"","sources":["../../src/lib/raw-store-root.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;AAEvD;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAE5E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"station-profile.d.ts","sourceRoot":"","sources":["../../src/lib/station-profile.ts"],"names":[],"mappings":"AAsDA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"station-profile.d.ts","sourceRoot":"","sources":["../../src/lib/station-profile.ts"],"names":[],"mappings":"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"}
|