@hasna/instructions 0.4.43 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -108,6 +108,10 @@ export declare function planProfileSessionRender(input: Omit<SessionRenderInput,
108
108
  asset_surface?: string;
109
109
  allow_asset_installers?: boolean;
110
110
  graph_context?: Omit<InstructionGraphContext, "provider" | "provider_version">;
111
+ /** Extra sources appended after the compiled profile sources (for example
112
+ * the cached station-profile injector). Sorted into layer position by the
113
+ * renderer like any other source. */
114
+ extra_sources?: SessionInstructionSource[];
111
115
  }): ProfileSessionRenderPlan;
112
116
  export declare class InstructionGraphValidationError extends Error {
113
117
  readonly diagnostics: InstructionGraphDiagnostic[];
@@ -1 +1 @@
1
- {"version":3,"file":"instruction-graph.d.ts","sourceRoot":"","sources":["../../src/lib/instruction-graph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"instruction-graph.d.ts","sourceRoot":"","sources":["../../src/lib/instruction-graph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * provider-context — per-endpoint model-identity injection for coding-agent harnesses.
3
+ *
4
+ * Binding design (ask-fable 2026-08-24, knowledge `hasna-provider-context-injection`,
5
+ * task 2500c381): the fragment WORDS are owned here (reviewed, versioned, rendered);
6
+ * the LAUNCH owns the binding (a package-owned selector injects exactly one fragment
7
+ * per process and hash-logs it). Nothing is generated or fetched at launch — fragments
8
+ * tell the agent to read `$ANTHROPIC_BASE_URL` / `$ANTHROPIC_MODEL` / Codex
9
+ * `model_providers` rather than assert rot-prone catalog facts.
10
+ *
11
+ * Invariants:
12
+ * - An explicit endpoint origin registry, never substring heuristics.
13
+ * - No credential values, ever.
14
+ * - No network calls at resolve/render time.
15
+ * - Unknown endpoints exit non-zero with a named reason and proceed on the invariant
16
+ * fragment alone (the lane still gets identity context, never an empty hand).
17
+ */
18
+ /** Where per-endpoint fragments render inside a harness home. */
19
+ export declare const PROVIDER_CONTEXT_DIR: ".hasna/provider-context";
20
+ export declare const PROVIDER_CONTEXT_MANIFEST: "manifest.json";
21
+ export declare const PROVIDER_CONTEXT_SCHEMA: "hasna.instructions.provider-context/v1";
22
+ export declare const PROVIDER_CONTEXT_INVARIANT_ID: "invariant";
23
+ /** Explicit registry of recognized endpoints (normalized origin, not heuristics). */
24
+ export interface ProviderEndpointEntry {
25
+ /** Stable endpoint key used as the fragment filename stem and manifest key. */
26
+ key: string;
27
+ /** Human label of the model service. */
28
+ provider: string;
29
+ /** The wire protocol the harness speaks to this endpoint. */
30
+ wireProtocol: "anthropic-messages" | "openai-compatible";
31
+ /** Model-family guidance written into the fragment (never a fixed catalog id). */
32
+ family: string;
33
+ /** Host of the endpoint (lowercased, port-less). */
34
+ host: string;
35
+ /** Path prefix that disambiguates this entry (e.g. "/anthropic" vs "/api"). */
36
+ pathPrefix: string;
37
+ /** Codespace/example notes the agent should know about this lane. */
38
+ notes: string[];
39
+ }
40
+ export declare const PROVIDER_ENDPOINT_REGISTRY: readonly ProviderEndpointEntry[];
41
+ /**
42
+ * Normalize an endpoint URL to `host + pathPrefix` form. Returns null on invalid/empty
43
+ * input or when the value carries embedded credentials (which must never be accepted).
44
+ */
45
+ export declare function normalizeEndpointOrigin(endpoint: string): {
46
+ host: string;
47
+ pathPrefix: string;
48
+ } | null;
49
+ /** Match a normalized origin against the explicit registry. Longest pathPrefix wins. */
50
+ export declare function matchProviderEndpoint(origin: {
51
+ host: string;
52
+ pathPrefix: string;
53
+ } | null): ProviderEndpointEntry | null;
54
+ export interface ProviderContextResolution {
55
+ readonly entry: ProviderEndpointEntry | null;
56
+ readonly rawEndpoint: string;
57
+ readonly rawModel: string;
58
+ readonly endpointKey: string | "unknown";
59
+ readonly fragmentPath: string | null;
60
+ readonly fragmentSha256: string | null;
61
+ readonly reason: string | null;
62
+ }
63
+ /** Fragment text for a given entry, or the invariant when entry is null. */
64
+ export declare function renderProviderFragment(entry: ProviderEndpointEntry | null): string;
65
+ export interface ProviderContextRenderOptions {
66
+ /** Normalized endpoint origin (host + pathPrefix). */
67
+ origin: {
68
+ host: string;
69
+ pathPrefix: string;
70
+ } | null;
71
+ /** Raw endpoint value passed in — used for rejection detection only, never echoed. */
72
+ rawEndpoint: string;
73
+ /** Raw model value passed in (for audit). */
74
+ rawModel: string;
75
+ /** Harness home directory into which `.hasna/provider-context/` is written. */
76
+ homeDir: string;
77
+ }
78
+ /**
79
+ * Resolve the endpoint against the registry, render the per-endpoint (or invariant)
80
+ * fragment into `<home>/.hasna/provider-context/<key>.md`, write/refresh the manifest,
81
+ * and return the resolution + audit fields. Never requires network; unknown endpoints
82
+ * still render the invariant so the lane is never empty.
83
+ *
84
+ * Credential safety: a raw endpoint that FAILS normalization (embedded credentials,
85
+ * unparseable) is NEVER echoed anywhere — not in the reason, not in the manifest.
86
+ * The reason uses a fixed marker and the manifest records `rawEndpoint: null`. Only an
87
+ * endpoint that passed `normalizeEndpointOrigin` (userinfo-free) is recorded.
88
+ */
89
+ export declare function resolveAndRenderProviderContext(opts: ProviderContextRenderOptions): ProviderContextResolution;
90
+ /**
91
+ * One machine-readable audit line per launch (verdict step 5). No secret values.
92
+ */
93
+ export declare function providerContextAuditLine(r: ProviderContextResolution, nowIso?: string): string;
94
+ //# sourceMappingURL=provider-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-context.d.ts","sourceRoot":"","sources":["../../src/lib/provider-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAMH,iEAAiE;AACjE,eAAO,MAAM,oBAAoB,EAAG,yBAAkC,CAAC;AACvE,eAAO,MAAM,yBAAyB,EAAG,eAAwB,CAAC;AAClE,eAAO,MAAM,uBAAuB,EAAG,wCAAiD,CAAC;AAEzF,eAAO,MAAM,6BAA6B,EAAG,WAAoB,CAAC;AAElE,qFAAqF;AACrF,MAAM,WAAW,qBAAqB;IACpC,+EAA+E;IAC/E,GAAG,EAAE,MAAM,CAAC;IACZ,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,6DAA6D;IAC7D,YAAY,EAAE,oBAAoB,GAAG,mBAAmB,CAAC;IACzD,kFAAkF;IAClF,MAAM,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,+EAA+E;IAC/E,UAAU,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,eAAO,MAAM,0BAA0B,EAAE,SAAS,qBAAqB,EAgD7D,CAAC;AAEX;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAsBrG;AAED,wFAAwF;AACxF,wBAAgB,qBAAqB,CACnC,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,GAClD,qBAAqB,GAAG,IAAI,CAe9B;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,KAAK,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAC7C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAkDD,4EAA4E;AAC5E,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,qBAAqB,GAAG,IAAI,GAAG,MAAM,CAElF;AAMD,MAAM,WAAW,4BAA4B;IAC3C,sDAAsD;IACtD,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACpD,sFAAsF;IACtF,WAAW,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,+EAA+E;IAC/E,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,4BAA4B,GACjC,yBAAyB,CAuD3B;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,CAAC,EAAE,yBAAyB,EAC5B,MAAM,GAAE,MAAiC,GACxC,MAAM,CASR"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=provider-context.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-context.test.d.ts","sourceRoot":"","sources":["../../src/lib/provider-context.test.ts"],"names":[],"mappings":""}
@@ -1,4 +1,5 @@
1
1
  import { type SessionRenderFileRole, type SessionRenderPlan, type SessionSkippedSource } from "./session-render.js";
2
+ import { type ClaudeOwnedAuthority } from "./session-authority.js";
2
3
  export type SessionApplyAction = "create" | "update" | "delete" | "unchanged" | "conflict";
3
4
  export interface SessionApplyFileResult {
4
5
  path: string;
@@ -48,6 +49,12 @@ export interface SessionRollbackReceipt {
48
49
  export interface SessionApplyOptions {
49
50
  dryRun?: boolean;
50
51
  force?: boolean;
52
+ /**
53
+ * Registered Instructions configs that own a Claude-home AGENTS.md (see
54
+ * ClaudeOwnedAuthority). Passed to the apply-time authority recheck so an
55
+ * owned, consistent AGENTS.md does not read as "changed after planning".
56
+ */
57
+ ownedClaudeAuthorities?: ClaudeOwnedAuthority[];
51
58
  test_hooks?: {
52
59
  before_apply_writes?: (context: {
53
60
  plan: SessionRenderPlan;
@@ -1 +1 @@
1
- {"version":3,"file":"session-apply.d.ts","sourceRoot":"","sources":["../../src/lib/session-apply.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-apply.d.ts","sourceRoot":"","sources":["../../src/lib/session-apply.ts"],"names":[],"mappings":"AAiBA,OAAO,EAIL,KAAK,qBAAqB,EAE1B,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EAC1B,MAAM,qBAAqB,CAAC;AAK7B,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,wBAAwB,CAAC;AAEhC,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,CAAC;AAE3F,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,qBAAqB,CAAC;IAC5B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,EAAE,SAAS,GAAG,eAAe,CAAC;CACrC;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,OAAO,EAAE,iBAAiB,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,sBAAsB,CAAC;IACjC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,cAAc,EAAE,oBAAoB,EAAE,CAAC;IACvC,KAAK,EAAE,sBAAsB,EAAE,CAAC;IAChC,SAAS,EAAE,sBAAsB,EAAE,CAAC;IACpC,KAAK,EAAE,iBAAiB,CAAC;CAC1B;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,0CAA0C,CAAC;IACnD,MAAM,EAAE,WAAW,GAAG,cAAc,GAAG,aAAa,GAAG,SAAS,CAAC;IACjE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,EACF,kBAAkB,GAClB,wBAAwB,GACxB,2BAA2B,GAC3B,6CAA6C,CAAC;CACnD;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAChD,UAAU,CAAC,EAAE;QACX,mBAAmB,CAAC,EAAE,CAAC,OAAO,EAAE;YAC9B,IAAI,EAAE,iBAAiB,CAAC;YACxB,OAAO,EAAE,sBAAsB,EAAE,CAAC;SACnC,KAAK,IAAI,CAAC;QACX,uBAAuB,CAAC,EAAE,OAAO,CAAC;KACnC,CAAC;CACH;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE;QACX,uBAAuB,CAAC,EAAE,OAAO,CAAC;KACnC,CAAC;CACH;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC;IACrD,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,sBAAsB,EAAE,CAAC;IACpC,KAAK,EAAE,wBAAwB,EAAE,CAAC;CACnC;AAyCD,qBAAa,iBAAkB,SAAQ,KAAK;gBAC9B,OAAO,EAAE,MAAM;CAI5B;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,iBAAiB,EACvB,OAAO,GAAE,mBAAwB,GAChC,kBAAkB,CAMpB;AA6KD,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAoDpG;AAED,wBAAgB,4BAA4B,CAC1C,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE,qBAA0B,GAClC,oBAAoB,CA8BtB"}
@@ -1,4 +1,17 @@
1
1
  declare const CLAUDE_LEGACY_AUTHORITY_RELATIVE_PATH = "AGENTS.md";
2
+ /**
3
+ * A registered Instructions config (category=rules, agent=claude, kind=file)
4
+ * whose target_path is a Claude-home AGENTS.md. Callers load these from the
5
+ * config store; the guard itself stays pure so it cannot silently depend on
6
+ * store state. Matching is on the NORMALIZED target path — the same identity
7
+ * rule apply.ts uses for config targets — so a `~/.claude/AGENTS.md` spelling
8
+ * and an absolute spelling of the same file are one target.
9
+ */
10
+ export interface ClaudeOwnedAuthority {
11
+ slug: string;
12
+ targetPath: string;
13
+ content: string;
14
+ }
2
15
  export type ClaudeAuthorityConflictKind = "known-legacy-no-worktree" | "unknown-unmanaged-authority" | "invalid-unmanaged-authority";
3
16
  export interface ClaudeAuthorityConflict {
4
17
  tool: "claude";
@@ -11,7 +24,7 @@ export interface ClaudeAuthorityConflict {
11
24
  source: "filesystem";
12
25
  authority: "unmanaged";
13
26
  observedPath: string;
14
- detection: "known-legacy-markers" | "unknown-content" | "non-regular-file" | "oversized-file";
27
+ detection: "known-legacy-markers" | "unknown-content" | "non-regular-file" | "oversized-file" | "owned-config-drift";
15
28
  };
16
29
  reason: string;
17
30
  }
@@ -21,7 +34,14 @@ export interface ClaudeAuthorityConflict {
21
34
  * AGENTS.md can remain a second authority. Treat every such file as a conflict:
22
35
  * known legacy no-worktree content is classified for migration evidence, while
23
36
  * unknown content fails closed rather than being guessed safe.
37
+ *
38
+ * The one recognized pass state, besides no file at all: the file is owned by
39
+ * a registered Instructions config (category=rules, agent=claude, kind=file)
40
+ * whose stored content equals the disk content. Such a file is managed by this
41
+ * pipeline, so the render proceeds. An owned config whose stored content
42
+ * drifts from disk still fails closed — the drift means the file is not
43
+ * currently the pipeline's output.
24
44
  */
25
- export declare function detectClaudeAuthorityConflicts(targetHome: string): ClaudeAuthorityConflict[];
45
+ export declare function detectClaudeAuthorityConflicts(targetHome: string, ownedAuthorities?: ClaudeOwnedAuthority[]): ClaudeAuthorityConflict[];
26
46
  export {};
27
47
  //# sourceMappingURL=session-authority.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-authority.d.ts","sourceRoot":"","sources":["../../src/lib/session-authority.ts"],"names":[],"mappings":"AAIA,QAAA,MAAM,qCAAqC,cAAc,CAAC;AAS1D,MAAM,MAAM,2BAA2B,GACnC,0BAA0B,GAC1B,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,sBAAsB,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,gBAAgB,CAAC;KAC/F,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;CAChB;AAMD;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAAC,UAAU,EAAE,MAAM,GAAG,uBAAuB,EAAE,CAkE5F"}
1
+ {"version":3,"file":"session-authority.d.ts","sourceRoot":"","sources":["../../src/lib/session-authority.ts"],"names":[],"mappings":"AAKA,QAAA,MAAM,qCAAqC,cAAc,CAAC;AAS1D;;;;;;;GAOG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,2BAA2B,GACnC,0BAA0B,GAC1B,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,sBAAsB,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,gBAAgB,GAAG,oBAAoB,CAAC;KACtH,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;CAChB;AA0BD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,8BAA8B,CAC5C,UAAU,EAAE,MAAM,EAClB,gBAAgB,GAAE,oBAAoB,EAAO,GAC5C,uBAAuB,EAAE,CAqF3B"}
@@ -2,7 +2,7 @@ import type { Config } from "../types/index.js";
2
2
  import { type ProjectContextSessionGuard } from "./project-context.js";
3
3
  import { type AssetPlan } from "./asset-plan.js";
4
4
  import { type CursorAuthorityConflict, type CursorAuthorityObservation } from "./cursor-authority.js";
5
- import { type ClaudeAuthorityConflict } from "./session-authority.js";
5
+ import { type ClaudeAuthorityConflict, type ClaudeOwnedAuthority } from "./session-authority.js";
6
6
  import { SESSION_INSTRUCTION_LAYERS, SESSION_RENDER_SCHEMA } from "./session-render-contract.js";
7
7
  export { CODEWITH_NATIVE_IMPORTS_ENV, SESSION_INSTRUCTION_LAYERS, SESSION_RENDER_INSTRUCTIONS_MANAGED_DIR, SESSION_RENDER_MANAGED_MARKER, SESSION_RENDER_MANAGED_NAMESPACE, SESSION_RENDER_MANIFEST_RELATIVE_PATH, SESSION_RENDER_SCHEMA, SESSION_RENDER_SNAPSHOT_RELATIVE_DIR, } from "./session-render-contract.js";
8
8
  export { RAW_STORE_ROOT_ENV } from "./raw-store-root.js";
@@ -137,6 +137,14 @@ export interface SessionRenderInput {
137
137
  assetPlan?: AssetPlan;
138
138
  /** Pinned source bytes keyed by source config id; never serialized into the plan or manifest. */
139
139
  assetContents?: Readonly<Record<string, string>>;
140
+ /**
141
+ * Registered Instructions configs (category=rules, agent=claude, kind=file)
142
+ * whose target_path is a Claude-home AGENTS.md. When the Claude target's
143
+ * AGENTS.md is owned by one of these and the disk content matches the stored
144
+ * content, the authority guard passes instead of failing closed on an owned
145
+ * file. Anything else (unmanaged, owned but drifting) still fails closed.
146
+ */
147
+ ownedClaudeAuthorities?: ClaudeOwnedAuthority[];
140
148
  }
141
149
  export interface SessionRenderFile {
142
150
  path: string;
@@ -1 +1 @@
1
- {"version":3,"file":"session-render.d.ts","sourceRoot":"","sources":["../../src/lib/session-render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-render.d.ts","sourceRoot":"","sources":["../../src/lib/session-render.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,102 @@
1
+ import type { SessionInstructionSource } from "./session-render.js";
2
+ /** Cache filename inside the instructions data root (see getRawStoreRoot). */
3
+ export declare const STATION_PROFILE_CACHE_FILENAME = "station-profile.md";
4
+ /** Source id injected into session renders; not a `global-*` slug on purpose. */
5
+ export declare const STATION_PROFILE_SOURCE_ID = "station-profile";
6
+ /** Machine layer (rank 40) — after global/tool/account, before division/workspace/repo/… */
7
+ export declare const STATION_PROFILE_LAYER: "machine";
8
+ /** Hard context budget for the whole block (owner: <600 chars; enforced). */
9
+ export declare const STATION_PROFILE_MAX_BYTES = 600;
10
+ /** Longest name prefix shown before "…" for a scope (126 @hasna packages on station01). */
11
+ export declare const STATION_PROFILE_MAX_HASNA_NAMES = 12;
12
+ /** Non-primary scopes show their full name list only up to this many names,
13
+ * then degrade to a count (keeps the block inside the byte budget). */
14
+ export declare const STATION_PROFILE_FULL_NAMES_MAX = 6;
15
+ /** The public primary scope, always shown count + top names. */
16
+ export declare const STATION_PROFILE_PRIMARY_SCOPE = "@hasna";
17
+ export declare const MACHINES_MANIFEST_PATH_ENV = "HASNA_MACHINES_MANIFEST_PATH";
18
+ export declare const BUN_INSTALL_ENV = "BUN_INSTALL";
19
+ export interface StationProfileStatus {
20
+ state: string;
21
+ lastSeenAt: string | null;
22
+ }
23
+ export interface StationProfileMachine {
24
+ /** Station id from the fleet manifest, or the local hostname. */
25
+ id: string;
26
+ hostname: string;
27
+ tailscaleName: string | null;
28
+ platform: string;
29
+ arch: string;
30
+ user: string | null;
31
+ homeDir: string;
32
+ workspacePath: string | null;
33
+ status: StationProfileStatus | null;
34
+ }
35
+ export interface StationProfileScope {
36
+ /** The scope directory name as found on disk, e.g. "@hasna". */
37
+ scope: string;
38
+ /** Package names under the scope (alphabetical). */
39
+ names: string[];
40
+ }
41
+ export interface StationProfilePackages {
42
+ /** Hasna-named scopes present in the bun global dir; primary scope first,
43
+ * then alphabetical. Empty when the dir exists but has no hasna scopes. */
44
+ scopes: StationProfileScope[];
45
+ }
46
+ export interface StationProfileBuildInput {
47
+ machine: StationProfileMachine;
48
+ packages: StationProfilePackages | null;
49
+ }
50
+ export interface StationProfileRefreshResult {
51
+ path: string;
52
+ content: string;
53
+ bytes: number;
54
+ generatedAt: string;
55
+ machine: StationProfileMachine;
56
+ packages: StationProfilePackages | null;
57
+ statusProbe: "ok" | "skipped" | "failed";
58
+ }
59
+ /** Cache file path. Lives inside the instructions data root (same env
60
+ * resolution as getRawStoreRoot) so tests that override HASNA_CONFIGS_HOME
61
+ * get full isolation. */
62
+ export declare function getStationProfileCachePath(env?: NodeJS.ProcessEnv): string;
63
+ export declare function getMachinesManifestPath(env?: NodeJS.ProcessEnv): string;
64
+ export declare function getBunGlobalModulesDir(env?: NodeJS.ProcessEnv): string;
65
+ /** Best-effort parse of the fleet manifest. Returns the machines array or
66
+ * null on any failure — a broken manifest must never break a render. */
67
+ export declare function readMachinesManifest(path: string): Array<Record<string, unknown>> | null;
68
+ /** Find the manifest record for THIS machine: id, hostname, or tailscaleName
69
+ * matching the local hostname, in that priority order. */
70
+ export declare function findLocalManifestMachine(machines: Array<Record<string, unknown>> | null, hostname: string): Record<string, unknown> | null;
71
+ /** Best-effort live-status probe via the machines CLI (refresh time only).
72
+ * Any failure returns null — the block simply omits the status line. */
73
+ export declare function probeMachineStatus(machineId: string): StationProfileStatus | null;
74
+ /** Resolve the machine facts for this station. Manifest first; local OS
75
+ * fallback; status best-effort (probe disabled by tests for determinism). */
76
+ export declare function resolveStationProfileMachine(env?: NodeJS.ProcessEnv, options?: {
77
+ probe?: boolean;
78
+ }): StationProfileMachine;
79
+ /** Installed hasna packages from the bun global directory. Returns null when
80
+ * the directory is absent (e.g. npm-managed globals) — the block then says
81
+ * the listing is unavailable instead of guessing. Scope labels come from the
82
+ * directory names themselves, never from literals in this package (the
83
+ * publish guard refuses private-org marker strings in public tarballs). */
84
+ export declare function resolveStationProfilePackages(env?: NodeJS.ProcessEnv): StationProfilePackages | null;
85
+ /** Build the compact markdown block. Deterministic for identical inputs.
86
+ * No own heading: the session renderer already emits a `# Station profile`
87
+ * section heading around this content, and a second heading would waste
88
+ * context. */
89
+ export declare function buildStationProfileBlock(input: StationProfileBuildInput): string;
90
+ /** Regenerate the cache file. Idempotent: writes only when the block
91
+ * changed. Returns the result regardless of whether a write happened. */
92
+ export declare function refreshStationProfile(options?: {
93
+ dryRun?: boolean;
94
+ env?: NodeJS.ProcessEnv;
95
+ probe?: boolean;
96
+ }): StationProfileRefreshResult;
97
+ /** Read the cached block, if present. */
98
+ export declare function readStationProfile(env?: NodeJS.ProcessEnv): string | null;
99
+ /** The session-render source for the cached station profile, or null when no
100
+ * cache exists (renders then stay byte-identical to pre-feature output). */
101
+ export declare function stationProfileSource(env?: NodeJS.ProcessEnv): SessionInstructionSource | null;
102
+ //# sourceMappingURL=station-profile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"station-profile.d.ts","sourceRoot":"","sources":["../../src/lib/station-profile.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=station-profile.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"station-profile.test.d.ts","sourceRoot":"","sources":["../../src/lib/station-profile.test.ts"],"names":[],"mappings":""}
package/dist/mcp/index.js CHANGED
@@ -8038,7 +8038,7 @@ var init_sync_dir = __esm(() => {
8038
8038
  var require_package = __commonJS((exports, module) => {
8039
8039
  module.exports = {
8040
8040
  name: "@hasna/instructions",
8041
- version: "0.4.43",
8041
+ version: "0.5.0",
8042
8042
  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.",
8043
8043
  type: "module",
8044
8044
  main: "dist/index.js",
@@ -8114,7 +8114,7 @@ var require_package = __commonJS((exports, module) => {
8114
8114
  author: "Andrei Hasna <andrei@hasna.com>",
8115
8115
  license: "Apache-2.0",
8116
8116
  dependencies: {
8117
- "@hasna/contracts": "0.13.1",
8117
+ "@hasna/contracts": "0.14.0",
8118
8118
  "@hasna/events": "^0.1.16",
8119
8119
  "@modelcontextprotocol/sdk": "^1.12.1",
8120
8120
  chalk: "^5.4.1",
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=early-args.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"early-args.test.d.ts","sourceRoot":"","sources":["../../src/server/early-args.test.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":";;;;;;AAiJA,wBAAgE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":";;;;;;AAsKA,wBAAgE"}
@@ -1744,7 +1744,7 @@ class ProfileNotFoundError extends Error {
1744
1744
  }
1745
1745
  }
1746
1746
 
1747
- // ../../node_modules/.bun/@hasna+contracts@0.13.1+b44ff2e73ad18770/node_modules/@hasna/contracts/dist/auth/index.js
1747
+ // ../contracts/dist/auth/index.js
1748
1748
  import { createHash, createHmac, randomBytes, timingSafeEqual } from "crypto";
1749
1749
  var MAX_TENANT_ID_LENGTH = 64;
1750
1750
  var TENANT_ID_PATTERN = new RegExp(`^[A-Za-z0-9][A-Za-z0-9._-]{0,${MAX_TENANT_ID_LENGTH - 1}}$`);
@@ -9127,6 +9127,23 @@ if (process.argv.includes("--version") || process.argv.includes("-V")) {
9127
9127
  console.log(getPackageVersion());
9128
9128
  process.exit(0);
9129
9129
  }
9130
+ if (process.argv.includes("--help") || process.argv.includes("-h")) {
9131
+ console.log(`Usage: instructions-serve [options]
9132
+
9133
+ HTTP API server for @hasna/instructions (backend: sqlite or postgresql).
9134
+
9135
+ Options:
9136
+ -V, --version output the version number
9137
+ -h, --help display help for command
9138
+ migrate apply the schema migration to the configured database and exit
9139
+
9140
+ Environment:
9141
+ PORT / INSTRUCTIONS_PORT HTTP port (default: 3457)
9142
+ HOST / INSTRUCTIONS_HOST bind host (default: localhost)
9143
+ HASNA_INSTRUCTIONS_DATABASE_URL / INSTRUCTIONS_DATABASE_URL / DATABASE_URL
9144
+ postgresql backend URL (enables the cloud backend)`);
9145
+ process.exit(0);
9146
+ }
9130
9147
  var PORT = Number(process.env["PORT"] ?? process.env["INSTRUCTIONS_PORT"] ?? 3457);
9131
9148
  var app = new Hono2;
9132
9149
  app.use("*", cors());
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hasna/instructions",
3
- "version": "0.4.43",
3
+ "version": "0.5.0",
4
4
  "description": "AI coding agent instruction & configuration manager — 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",
@@ -76,7 +76,7 @@
76
76
  "author": "Andrei Hasna <andrei@hasna.com>",
77
77
  "license": "Apache-2.0",
78
78
  "dependencies": {
79
- "@hasna/contracts": "0.13.1",
79
+ "@hasna/contracts": "0.14.0",
80
80
  "@hasna/events": "^0.1.16",
81
81
  "@modelcontextprotocol/sdk": "^1.12.1",
82
82
  "chalk": "^5.4.1",