@hasna/instructions 0.5.5 → 0.6.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.
Files changed (64) hide show
  1. package/README.md +64 -20
  2. package/dist/cli/fail-closed-no-env.test.d.ts +2 -0
  3. package/dist/cli/fail-closed-no-env.test.d.ts.map +1 -0
  4. package/dist/cli/index.js +1910 -561
  5. package/dist/data/config-store.d.ts +62 -33
  6. package/dist/data/config-store.d.ts.map +1 -1
  7. package/dist/db/database.d.ts.map +1 -1
  8. package/dist/generated/storage-kit/backend.d.ts +4 -4
  9. package/dist/generated/storage-kit/backend.d.ts.map +1 -1
  10. package/dist/generated/storage-kit/index.d.ts +1 -1
  11. package/dist/generated/storage-kit/index.d.ts.map +1 -1
  12. package/dist/generated/storage-kit/migrations.d.ts +21 -0
  13. package/dist/generated/storage-kit/migrations.d.ts.map +1 -1
  14. package/dist/generated/storage-kit/pool.d.ts +2 -5
  15. package/dist/generated/storage-kit/pool.d.ts.map +1 -1
  16. package/dist/index.d.ts +5 -2
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +2702 -547
  19. package/dist/lib/app-home.d.ts +9 -0
  20. package/dist/lib/app-home.d.ts.map +1 -1
  21. package/dist/lib/client-types.d.ts +130 -0
  22. package/dist/lib/client-types.d.ts.map +1 -0
  23. package/dist/lib/client-types.test.d.ts +2 -0
  24. package/dist/lib/client-types.test.d.ts.map +1 -0
  25. package/dist/lib/local-opt-in.d.ts +82 -0
  26. package/dist/lib/local-opt-in.d.ts.map +1 -0
  27. package/dist/lib/project-context.d.ts +14 -14
  28. package/dist/lib/project-context.d.ts.map +1 -1
  29. package/dist/lib/project-dashboard-standard.d.ts +1 -1
  30. package/dist/lib/project-dashboard-standard.d.ts.map +1 -1
  31. package/dist/lib/session-apply.d.ts.map +1 -1
  32. package/dist/lib/session-render-state-hermeticity.test.d.ts +2 -0
  33. package/dist/lib/session-render-state-hermeticity.test.d.ts.map +1 -0
  34. package/dist/lib/session-render-state.d.ts +57 -0
  35. package/dist/lib/session-render-state.d.ts.map +1 -0
  36. package/dist/lib/session-render-state.test.d.ts +2 -0
  37. package/dist/lib/session-render-state.test.d.ts.map +1 -0
  38. package/dist/lib/transport-resolver.d.ts +80 -0
  39. package/dist/lib/transport-resolver.d.ts.map +1 -0
  40. package/dist/lib/transport-resolver.test.d.ts +2 -0
  41. package/dist/lib/transport-resolver.test.d.ts.map +1 -0
  42. package/dist/mcp/index.d.ts.map +1 -1
  43. package/dist/mcp/index.js +1442 -192
  44. package/dist/mcp/server.d.ts.map +1 -1
  45. package/dist/sdk/index.d.ts +22 -0
  46. package/dist/sdk/index.d.ts.map +1 -0
  47. package/dist/sdk/index.js +1042 -0
  48. package/dist/sdk/resolve.d.ts +82 -0
  49. package/dist/sdk/resolve.d.ts.map +1 -0
  50. package/dist/sdk/resolve.test.d.ts +2 -0
  51. package/dist/sdk/resolve.test.d.ts.map +1 -0
  52. package/dist/sdk/sdk-bundle-self-contained.test.d.ts +2 -0
  53. package/dist/sdk/sdk-bundle-self-contained.test.d.ts.map +1 -0
  54. package/dist/sdk/v1.generated.d.ts +288 -0
  55. package/dist/sdk/v1.generated.d.ts.map +1 -0
  56. package/dist/server/cloud.d.ts.map +1 -1
  57. package/dist/server/index.d.ts.map +1 -1
  58. package/dist/server/index.js +55 -64
  59. package/dist/test-support/preload-state-home.d.ts +2 -0
  60. package/dist/test-support/preload-state-home.d.ts.map +1 -0
  61. package/package.json +12 -12
  62. package/dashboard/README.md +0 -37
  63. package/dist/lib/retired-storage-mode.d.ts +0 -8
  64. package/dist/lib/retired-storage-mode.d.ts.map +0 -1
@@ -1,3 +1,12 @@
1
+ export type PathKind = "config" | "data" | "state" | "cache";
2
+ export interface PathsResolverOptions {
3
+ app: string;
4
+ internal?: boolean;
5
+ platform?: string;
6
+ home?: string;
7
+ env?: Record<string, string | undefined>;
8
+ }
9
+ export declare function configDir(options: PathsResolverOptions): string;
1
10
  /**
2
11
  * Configs-app store-home resolution via the @hasna/paths resolver (XDG / macOS
3
12
  * home layout). The "configs" app is the @hasna/instructions package surface
@@ -1 +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;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAI9E"}
1
+ {"version":3,"file":"app-home.d.ts","sourceRoot":"","sources":["../../src/lib/app-home.ts"],"names":[],"mappings":"AAWA,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAS7D,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CAC1C;AA0DD,wBAAgB,SAAS,CAAC,OAAO,EAAE,oBAAoB,GAAG,MAAM,CAE/D;AAED;;;;;;;;;;;;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;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAI9E"}
@@ -0,0 +1,130 @@
1
+ /** Which tier of the credential chain supplied a key (@hasna/contracts `CredentialTier`). */
2
+ export type InstructionsCredentialTier = "argument" | "override" | "pointer" | "profile" | "keychain" | "disk" | "env";
3
+ /** A resolved client transport: authority + credential SOURCE, never a value (@hasna/contracts `ClientTransportResolution`). */
4
+ export interface InstructionsClientTransportResolution {
5
+ /** Where the client should read/write from. */
6
+ transport: string;
7
+ /** What selected the transport (an env key NAME, a Keychain reference, a file PATH, or `"default"`). */
8
+ transportSource: string;
9
+ /** `<origin>/v1` base for the server API. */
10
+ baseUrl: string;
11
+ /** WHERE the API URL came from: an env key NAME, a Keychain reference, a file PATH, or `"default"`. */
12
+ apiUrlSource: string | null;
13
+ /** Whether an API key is present (value never exposed). */
14
+ apiKeyPresent: boolean;
15
+ /** WHERE the API key came from: an env key NAME or an absolute file path. Never the value. */
16
+ apiKeySource: string | null;
17
+ /** Which tier of the credential chain supplied the key. */
18
+ apiKeyTier: InstructionsCredentialTier;
19
+ /** Diagnostic shape compatibility: a successful resolution is never misconfigured. */
20
+ misconfigured: boolean;
21
+ /** Human-readable warning, or null. Never contains secret values. */
22
+ warning: string | null;
23
+ }
24
+ /**
25
+ * An environment as the client resolver reads it.
26
+ */
27
+ export type InstructionsClientEnv = Record<string, string | undefined>;
28
+ /** The Keychain-tier controls (@hasna/contracts `KeychainTierOptions`). */
29
+ export interface InstructionsKeychainOptions {
30
+ /**
31
+ * Whether the Keychain is consulted for a caller-built env object. Ambient
32
+ * for `process.env`; `true` turns the tier on for a caller-built env; `false`
33
+ * turns it off even for the live environment. Injecting `run` implies `true`.
34
+ */
35
+ enabled?: boolean;
36
+ /** Defaults to `process.platform`; the tier exists only on `"darwin"`. */
37
+ platform?: string;
38
+ /** The machine's host name (`hostname -s`). Defaults to `os.hostname()`. */
39
+ hostname?: () => string;
40
+ /** The `security` runner. Defaults to spawning `/usr/bin/security` by argv. */
41
+ run?: (argv: readonly string[]) => {
42
+ status: number | null;
43
+ stdout: string;
44
+ stderr: string;
45
+ };
46
+ }
47
+ /** Tier-1 credential inputs and Keychain-tier controls (@hasna/contracts `CredentialChainOptions`). */
48
+ export interface InstructionsCredentialChainOptions {
49
+ /** Tier 1: an explicit key, e.g. from `--api-key`. */
50
+ apiKey?: string;
51
+ /** Tier 1: an explicit profile name, e.g. from `--profile`. Beats `HASNA_PROFILE`. */
52
+ profile?: string;
53
+ /** Tier 3: Keychain controls — a fake `security` runner in tests, an opt-out on CI. */
54
+ keychain?: InstructionsKeychainOptions;
55
+ }
56
+ /** Query params (@hasna/contracts `QueryParams`). */
57
+ export type InstructionsQueryParams = URLSearchParams | Record<string, string | number | boolean | null | undefined | ReadonlyArray<string | number | boolean>>;
58
+ /** Retry policy for transient failures (@hasna/contracts `HasnaRetryOptions`). */
59
+ export interface InstructionsRetryOptions {
60
+ /** Max RETRY attempts after the first try. Default 2 (=> up to 3 total tries). */
61
+ retries?: number;
62
+ /** Base backoff in ms for exponential backoff. Default 200. */
63
+ baseDelayMs?: number;
64
+ /** Backoff ceiling in ms. Default 2000. */
65
+ maxDelayMs?: number;
66
+ /** HTTP statuses that trigger a retry. Default 408, 425, 429, 500, 502, 503, 504. */
67
+ retryStatuses?: number[];
68
+ }
69
+ /** Per-request transport options the store forwards (@hasna/contracts `HasnaRequestOptions`). */
70
+ export interface InstructionsRequestOptions {
71
+ /** Query string params appended to the URL. */
72
+ query?: InstructionsQueryParams;
73
+ /** Idempotency key sent as `Idempotency-Key` (retry-safe POST). */
74
+ idempotencyKey?: string;
75
+ /** Override the transport timeout for this call (ms). */
76
+ timeoutMs?: number;
77
+ /** Extra headers merged into this call. */
78
+ headers?: Record<string, string>;
79
+ /** Override or disable retry. `false` disables retries. */
80
+ retry?: InstructionsRetryOptions | false;
81
+ /** Caller abort signal, combined with the internal timeout. */
82
+ signal?: AbortSignal;
83
+ }
84
+ /** The authenticated HTTP transport surface the store dials (@hasna/contracts `HasnaHttpTransport`). */
85
+ export interface InstructionsStorageTransport {
86
+ readonly baseUrl: string;
87
+ request<T = unknown>(method: string, path: string, body?: unknown, opts?: InstructionsRequestOptions): Promise<T>;
88
+ get<T = unknown>(path: string, opts?: InstructionsRequestOptions): Promise<T>;
89
+ post<T = unknown>(path: string, body?: unknown, opts?: InstructionsRequestOptions): Promise<T>;
90
+ put<T = unknown>(path: string, body?: unknown, opts?: InstructionsRequestOptions): Promise<T>;
91
+ patch<T = unknown>(path: string, body?: unknown, opts?: InstructionsRequestOptions): Promise<T>;
92
+ del<T = unknown>(path: string, body?: unknown, opts?: InstructionsRequestOptions): Promise<T>;
93
+ }
94
+ /** Response of a storage list() call (@hasna/contracts `StorageListResult`). */
95
+ export interface InstructionsStorageListResult<T> {
96
+ items: T[];
97
+ /** Total count when the server reports one (`total`/`count`), else null. */
98
+ total: number | null;
99
+ /** Opaque pagination cursor when the server reports one, else null. */
100
+ cursor: string | null;
101
+ /** The full parsed response body (envelope preserved). */
102
+ raw: unknown;
103
+ }
104
+ /** The resolved storage client the store wraps (@hasna/contracts `HasnaStorageClient`). */
105
+ export interface InstructionsStorageClient {
106
+ /** App slug this client targets. */
107
+ readonly name: string;
108
+ /** `<origin>/v1` base URL. */
109
+ readonly baseUrl: string;
110
+ /** The underlying HTTP transport (escape hatch for non-CRUD routes). */
111
+ readonly transport: InstructionsStorageTransport;
112
+ /** List a collection. Returns extracted `items` plus the raw envelope. */
113
+ list<T = unknown>(resource: string, options?: InstructionsRequestOptions & {
114
+ query?: InstructionsQueryParams;
115
+ }): Promise<InstructionsStorageListResult<T>>;
116
+ /** Fetch one entity by id. Returns `null` on 404. */
117
+ get<T = unknown>(resource: string, id: string, options?: InstructionsRequestOptions): Promise<T | null>;
118
+ /** Create one entity. Retry-safe via an auto `Idempotency-Key`. */
119
+ create<T = unknown>(resource: string, body: unknown, options?: InstructionsRequestOptions & {
120
+ idempotencyKey?: string;
121
+ }): Promise<T>;
122
+ /** Update one entity by id (PATCH by default). */
123
+ update<T = unknown>(resource: string, id: string, patch: unknown, options?: InstructionsRequestOptions & {
124
+ method?: "PATCH" | "PUT";
125
+ idempotencyKey?: string;
126
+ }): Promise<T>;
127
+ /** Delete one entity by id. Resolves for 2xx and 404 (already gone). */
128
+ delete(resource: string, id: string, options?: InstructionsRequestOptions): Promise<void>;
129
+ }
130
+ //# sourceMappingURL=client-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-types.d.ts","sourceRoot":"","sources":["../../src/lib/client-types.ts"],"names":[],"mappings":"AAwBA,6FAA6F;AAC7F,MAAM,MAAM,0BAA0B,GAClC,UAAU,GACV,UAAU,GACV,SAAS,GACT,SAAS,GACT,UAAU,GACV,MAAM,GACN,KAAK,CAAC;AAEV,gIAAgI;AAChI,MAAM,WAAW,qCAAqC;IACpD,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,wGAAwG;IACxG,eAAe,EAAE,MAAM,CAAC;IACxB,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,uGAAuG;IACvG,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,2DAA2D;IAC3D,aAAa,EAAE,OAAO,CAAC;IACvB,8FAA8F;IAC9F,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,2DAA2D;IAC3D,UAAU,EAAE,0BAA0B,CAAC;IACvC,sFAAsF;IACtF,aAAa,EAAE,OAAO,CAAC;IACvB,qEAAqE;IACrE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;AAEvE,2EAA2E;AAC3E,MAAM,WAAW,2BAA2B;IAC1C;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,MAAM,CAAC;IACxB,+EAA+E;IAC/E,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,KAAK;QAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9F;AAED,uGAAuG;AACvG,MAAM,WAAW,kCAAkC;IACjD,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sFAAsF;IACtF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uFAAuF;IACvF,QAAQ,CAAC,EAAE,2BAA2B,CAAC;CACxC;AAED,qDAAqD;AACrD,MAAM,MAAM,uBAAuB,GAC/B,eAAe,GACf,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,aAAa,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;AAE5G,kFAAkF;AAClF,MAAM,WAAW,wBAAwB;IACvC,kFAAkF;IAClF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qFAAqF;IACrF,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,iGAAiG;AACjG,MAAM,WAAW,0BAA0B;IACzC,+CAA+C;IAC/C,KAAK,CAAC,EAAE,uBAAuB,CAAC;IAChC,mEAAmE;IACnE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,2DAA2D;IAC3D,KAAK,CAAC,EAAE,wBAAwB,GAAG,KAAK,CAAC;IACzC,+DAA+D;IAC/D,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,wGAAwG;AACxG,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,0BAA0B,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAClH,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,0BAA0B,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9E,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,0BAA0B,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC/F,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,0BAA0B,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9F,KAAK,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,0BAA0B,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAChG,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,0BAA0B,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CAC/F;AAED,gFAAgF;AAChF,MAAM,WAAW,6BAA6B,CAAC,CAAC;IAC9C,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,4EAA4E;IAC5E,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,uEAAuE;IACvE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,0DAA0D;IAC1D,GAAG,EAAE,OAAO,CAAC;CACd;AAED,2FAA2F;AAC3F,MAAM,WAAW,yBAAyB;IACxC,oCAAoC;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,8BAA8B;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,wEAAwE;IACxE,QAAQ,CAAC,SAAS,EAAE,4BAA4B,CAAC;IAEjD,0EAA0E;IAC1E,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,0BAA0B,GAAG;QAAE,KAAK,CAAC,EAAE,uBAAuB,CAAA;KAAE,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3J,qDAAqD;IACrD,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,0BAA0B,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACxG,mEAAmE;IACnE,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,0BAA0B,GAAG;QAAE,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACrI,kDAAkD;IAClD,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,0BAA0B,GAAG;QAAE,MAAM,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5K,wEAAwE;IACxE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3F"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=client-types.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-types.test.d.ts","sourceRoot":"","sources":["../../src/lib/client-types.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,82 @@
1
+ import type { InstructionsClientEnv, InstructionsCredentialChainOptions } from "./client-types.js";
2
+ /** The deliberate unhosted opt-in. `INSTRUCTIONS_LOCAL` was never a name here. */
3
+ export declare const INSTRUCTIONS_LOCAL_OPT_IN_ENV_KEYS: readonly ["HASNA_INSTRUCTIONS_LOCAL"];
4
+ /** Local-mode notice text, asserted verbatim by the CLI-level tests. */
5
+ export declare function instructionsLocalModeNotice(): string;
6
+ /** True when the operator deliberately asked for the unhosted local store. */
7
+ export declare function isInstructionsLocalOptIn(env?: InstructionsClientEnv): boolean;
8
+ /** Every env name that can configure an Instructions authority or credential, resolver-derived. */
9
+ export declare function instructionsAuthorityEnvKeys(): string[];
10
+ /**
11
+ * Does the ENVIRONMENT itself configure an Instructions authority or credential?
12
+ *
13
+ * Deliberately narrower than "does a credential resolve": answering it must not
14
+ * touch the Keychain or the filesystem, because doing so would defeat the
15
+ * isolation the opt-in short-circuit exists to provide. It reads the env
16
+ * dictionary and nothing else.
17
+ *
18
+ * A DECLARED-BUT-BLANK variable counts as absent HERE — a blank has always been
19
+ * this package's spelling for "not configured", and helpers in the wild blank
20
+ * rather than delete. It is NOT absent once we do go hosted: the resolver
21
+ * refuses a blank loudly rather than falling through to another identity, which
22
+ * is the behaviour that matters at that point.
23
+ */
24
+ export declare function hasInstructionsEnvAuthorityIntent(env?: InstructionsClientEnv): boolean;
25
+ /** True when this environment should be served by the on-box SQLite store. */
26
+ export declare function selectsInstructionsLocalStore(env?: InstructionsClientEnv): boolean;
27
+ /**
28
+ * The environment as the resolver should see it: every authority/credential
29
+ * variable that is DECLARED BUT BLANK removed.
30
+ *
31
+ * A blank has always been this package's spelling for "not configured" — it is
32
+ * how fixtures scrub an inherited environment. @hasna/contracts takes the
33
+ * opposite view: a declared-but-blank credential is a misconfiguration it
34
+ * refuses loudly rather than resolving around. Both are right at their own
35
+ * layer, and the mismatch is not hypothetical: an environment carrying a real
36
+ * `HASNA_INSTRUCTIONS_API_KEY` alongside a blank legacy alias is a complete,
37
+ * unambiguous configuration that would otherwise be refused for the alias
38
+ * nobody set. Normalising here keeps "blank means unset" true at the
39
+ * Instructions seam while leaving the resolver's stricter rule intact for
40
+ * everything it does receive.
41
+ */
42
+ export declare function instructionsResolverEnv<T extends InstructionsClientEnv>(env: T): T;
43
+ /** The env object and credential options a surface hands @hasna/contracts. */
44
+ export interface InstructionsResolverInputs<T extends InstructionsClientEnv> {
45
+ /** The environment with every declared-but-blank authority variable removed. */
46
+ env: T;
47
+ /** The chain options, with the Keychain tier's ambient gate already decided. */
48
+ credentials: InstructionsCredentialChainOptions;
49
+ }
50
+ /**
51
+ * Build the resolver's inputs: the normalised environment AND the credential
52
+ * options that keep the machine's Keychain tier reachable across it.
53
+ *
54
+ * WHY THIS IS NOT JUST {@link instructionsResolverEnv}. Blanking a variable and
55
+ * deleting it are not the same operation to @hasna/contracts, because dropping
56
+ * a key forces us to hand the resolver a COPY, and the resolver gates its
57
+ * ambient tiers on OBJECT IDENTITY (`env === process.env`, or the registry
58
+ * symbol its own snapshot carries). A copy is, by that test, a caller-built
59
+ * world — the hermetic seam — so the Keychain is outside it and tier 3 turns
60
+ * itself off. Silently: there is no error, no warning and no diagnostic,
61
+ * because from the resolver's side nothing went wrong (hasna/apps#1788).
62
+ *
63
+ * The consequence is the one failure this whole ruling exists to prevent. On a
64
+ * station whose Keychain holds `hasna.credentials.instructions.api-key`, ONE
65
+ * declared-but-blank authority variable — any name in
66
+ * {@link instructionsAuthorityEnvKeys}, canonical or legacy; the shape a
67
+ * scrubbed fixture leaves behind — dropped the run from the Keychain identity
68
+ * to whatever came next: to `~/.hasna/instructions/config/credentials`, a
69
+ * DIFFERENT principal, with no notice; or, with nothing on disk, to a bare
70
+ * fail-closed error on a station that is in fact configured. A deliberate tier
71
+ * must never fall through to another identity, so the gate is decided HERE, on
72
+ * the original env, and carried across the copy as the documented
73
+ * `keychain.enabled` control rather than being left to an identity test the
74
+ * copy cannot pass.
75
+ *
76
+ * An explicit `enabled` from the caller still wins, and an injected `run`
77
+ * (which @hasna/contracts already treats as "enabled") is left alone, so the
78
+ * hermetic seam tests rely on is untouched. When there is no blank to remove
79
+ * the inputs pass through by identity, exactly as before.
80
+ */
81
+ export declare function instructionsResolverInputs<T extends InstructionsClientEnv>(env: T, credentials?: InstructionsCredentialChainOptions): InstructionsResolverInputs<T>;
82
+ //# sourceMappingURL=local-opt-in.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-opt-in.d.ts","sourceRoot":"","sources":["../../src/lib/local-opt-in.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,qBAAqB,EAAE,kCAAkC,EAAE,MAAM,mBAAmB,CAAC;AAEnG,kFAAkF;AAClF,eAAO,MAAM,kCAAkC,uCAAwC,CAAC;AAExF,wEAAwE;AACxE,wBAAgB,2BAA2B,IAAI,MAAM,CAMpD;AAED,8EAA8E;AAC9E,wBAAgB,wBAAwB,CAAC,GAAG,GAAE,qBAAmC,GAAG,OAAO,CAI1F;AAED,mGAAmG;AACnG,wBAAgB,4BAA4B,IAAI,MAAM,EAAE,CASvD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iCAAiC,CAAC,GAAG,GAAE,qBAAmC,GAAG,OAAO,CAEnG;AAED,8EAA8E;AAC9E,wBAAgB,6BAA6B,CAAC,GAAG,GAAE,qBAAmC,GAAG,OAAO,CAE/F;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,qBAAqB,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAQlF;AAiBD,8EAA8E;AAC9E,MAAM,WAAW,0BAA0B,CAAC,CAAC,SAAS,qBAAqB;IACzE,gFAAgF;IAChF,GAAG,EAAE,CAAC,CAAC;IACP,gFAAgF;IAChF,WAAW,EAAE,kCAAkC,CAAC;CACjD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,SAAS,qBAAqB,EACxE,GAAG,EAAE,CAAC,EACN,WAAW,GAAE,kCAAuC,GACnD,0BAA0B,CAAC,CAAC,CAAC,CAS/B"}
@@ -8,10 +8,10 @@ export declare const PROJECT_CONTEXT_MAX_APPROX_TOKENS = 1000;
8
8
  export declare const PROJECT_CONTEXT_MAX_COMMANDS = 6;
9
9
  export declare const PROJECT_CONTEXT_MAX_WARNINGS = 3;
10
10
  export declare const PROJECT_CONTEXT_FRAGMENT_PATH = ".hasna/instructions/project-context.md";
11
- export declare const PROJECT_CONTEXT_MANIFEST_PATH = ".hasna/project-context-manifest.json";
12
- export declare const PROJECT_CONTEXT_CACHE_PATH = ".hasna/project-context-cache.json";
13
- export declare const PROJECT_CONTEXT_LOCK_PATH = ".hasna/project-context.lock";
14
- export declare const PROJECT_CONTEXT_SNAPSHOT_DIR = ".hasna/project-context-snapshots";
11
+ export declare const PROJECT_CONTEXT_MANIFEST_PATH = ".hasna/projects/project-context-manifest.json";
12
+ export declare const PROJECT_CONTEXT_CACHE_PATH = ".hasna/projects/project-context-cache.json";
13
+ export declare const PROJECT_CONTEXT_LOCK_PATH = ".hasna/projects/project-context.lock";
14
+ export declare const PROJECT_CONTEXT_SNAPSHOT_DIR = ".hasna/projects/project-context-snapshots";
15
15
  export declare const PROJECT_CONTEXT_CACHE_SCHEMA: "hasna.instructions.project-context-cache/v1";
16
16
  export declare const PROJECT_CONTEXT_MANAGED_COMMENT = "Managed by @hasna/configs project context";
17
17
  export declare const FOREIGN_INPUT_MAX_BYTES: number;
@@ -105,7 +105,7 @@ declare const projectContextBundleSchema: z.ZodEffects<z.ZodObject<{
105
105
  jurisdiction: string;
106
106
  legal_entities: string[];
107
107
  fiscal_cycle: "monthly" | "quarterly" | "annual" | "event-driven";
108
- data_classification: "public" | "internal" | "confidential" | "restricted";
108
+ data_classification: "internal" | "public" | "confidential" | "restricted";
109
109
  retention_policy: string;
110
110
  ledger_authority: string;
111
111
  evidence_store: string;
@@ -117,7 +117,7 @@ declare const projectContextBundleSchema: z.ZodEffects<z.ZodObject<{
117
117
  jurisdiction: string;
118
118
  legal_entities: string[];
119
119
  fiscal_cycle: "monthly" | "quarterly" | "annual" | "event-driven";
120
- data_classification: "public" | "internal" | "confidential" | "restricted";
120
+ data_classification: "internal" | "public" | "confidential" | "restricted";
121
121
  retention_policy: string;
122
122
  ledger_authority: string;
123
123
  evidence_store: string;
@@ -129,7 +129,7 @@ declare const projectContextBundleSchema: z.ZodEffects<z.ZodObject<{
129
129
  jurisdiction: string;
130
130
  legal_entities: string[];
131
131
  fiscal_cycle: "monthly" | "quarterly" | "annual" | "event-driven";
132
- data_classification: "public" | "internal" | "confidential" | "restricted";
132
+ data_classification: "internal" | "public" | "confidential" | "restricted";
133
133
  retention_policy: string;
134
134
  ledger_authority: string;
135
135
  evidence_store: string;
@@ -141,7 +141,7 @@ declare const projectContextBundleSchema: z.ZodEffects<z.ZodObject<{
141
141
  jurisdiction: string;
142
142
  legal_entities: string[];
143
143
  fiscal_cycle: "monthly" | "quarterly" | "annual" | "event-driven";
144
- data_classification: "public" | "internal" | "confidential" | "restricted";
144
+ data_classification: "internal" | "public" | "confidential" | "restricted";
145
145
  retention_policy: string;
146
146
  ledger_authority: string;
147
147
  evidence_store: string;
@@ -162,7 +162,7 @@ declare const projectContextBundleSchema: z.ZodEffects<z.ZodObject<{
162
162
  jurisdiction: string;
163
163
  legal_entities: string[];
164
164
  fiscal_cycle: "monthly" | "quarterly" | "annual" | "event-driven";
165
- data_classification: "public" | "internal" | "confidential" | "restricted";
165
+ data_classification: "internal" | "public" | "confidential" | "restricted";
166
166
  retention_policy: string;
167
167
  ledger_authority: string;
168
168
  evidence_store: string;
@@ -183,7 +183,7 @@ declare const projectContextBundleSchema: z.ZodEffects<z.ZodObject<{
183
183
  jurisdiction: string;
184
184
  legal_entities: string[];
185
185
  fiscal_cycle: "monthly" | "quarterly" | "annual" | "event-driven";
186
- data_classification: "public" | "internal" | "confidential" | "restricted";
186
+ data_classification: "internal" | "public" | "confidential" | "restricted";
187
187
  retention_policy: string;
188
188
  ledger_authority: string;
189
189
  evidence_store: string;
@@ -294,7 +294,7 @@ declare const projectContextBundleSchema: z.ZodEffects<z.ZodObject<{
294
294
  jurisdiction: string;
295
295
  legal_entities: string[];
296
296
  fiscal_cycle: "monthly" | "quarterly" | "annual" | "event-driven";
297
- data_classification: "public" | "internal" | "confidential" | "restricted";
297
+ data_classification: "internal" | "public" | "confidential" | "restricted";
298
298
  retention_policy: string;
299
299
  ledger_authority: string;
300
300
  evidence_store: string;
@@ -357,7 +357,7 @@ declare const projectContextBundleSchema: z.ZodEffects<z.ZodObject<{
357
357
  jurisdiction: string;
358
358
  legal_entities: string[];
359
359
  fiscal_cycle: "monthly" | "quarterly" | "annual" | "event-driven";
360
- data_classification: "public" | "internal" | "confidential" | "restricted";
360
+ data_classification: "internal" | "public" | "confidential" | "restricted";
361
361
  retention_policy: string;
362
362
  ledger_authority: string;
363
363
  evidence_store: string;
@@ -420,7 +420,7 @@ declare const projectContextBundleSchema: z.ZodEffects<z.ZodObject<{
420
420
  jurisdiction: string;
421
421
  legal_entities: string[];
422
422
  fiscal_cycle: "monthly" | "quarterly" | "annual" | "event-driven";
423
- data_classification: "public" | "internal" | "confidential" | "restricted";
423
+ data_classification: "internal" | "public" | "confidential" | "restricted";
424
424
  retention_policy: string;
425
425
  ledger_authority: string;
426
426
  evidence_store: string;
@@ -483,7 +483,7 @@ declare const projectContextBundleSchema: z.ZodEffects<z.ZodObject<{
483
483
  jurisdiction: string;
484
484
  legal_entities: string[];
485
485
  fiscal_cycle: "monthly" | "quarterly" | "annual" | "event-driven";
486
- data_classification: "public" | "internal" | "confidential" | "restricted";
486
+ data_classification: "internal" | "public" | "confidential" | "restricted";
487
487
  retention_policy: string;
488
488
  ledger_authority: string;
489
489
  evidence_store: 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;AAQ1H,eAAO,MAAM,sBAAsB,EAAG,0CAAmD,CAAC;AAC1F,eAAO,MAAM,yBAAyB,EAAG,0CAAmD,CAAC;AAG7F,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;AAI3F,eAAO,MAAM,uBAAuB,QAAa,CAAC;AAKlD,eAAO,MAAM,gCAAgC,QAA2C,CAAC;AAIzF,eAAO,MAAM,+BAA+B,QAAmC,CAAC;AAchF,eAAO,MAAM,4BAA4B,UAOxC,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iCAAiC,QAAmD,CAAC;AAElG,wBAAgB,0BAA0B,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAIvE;AAED;;;;;;;;GAQG;AACH,wBAAgB,kCAAkC,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAKhF;AAED,eAAO,MAAM,sBAAsB,EAAG,gBAAyB,CAAC;AAChE,eAAO,MAAM,6BAA6B,EAAG,QAAiB,CAAC;AAC/D,eAAO,MAAM,yBAAyB,EAAG,SAAkB,CAAC;AAgE5D,QAAA,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwD9B,CAAC;AA2EH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAEhF,MAAM,MAAM,qBAAqB,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;AACrE,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,cAAc,GAAG,aAAa,CAAC;AAC5E,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,cAAc,GAAG,iBAAiB,CAAC;AAE3G,MAAM,WAAW,uBAAuB;IACtC,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,qBAAqB,CAAC;IAC/B,MAAM,EAAE,sBAAsB,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC;AAED,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,qBAAqB,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,sBAAsB,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,MAAM,EAAE,oBAAoB,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IAC5B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,0BAA0B;IACzC,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,qBAAqB,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,UAAU,CAAC,EAAE;QACX,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;QAC7B,2BAA2B,CAAC,EAAE,OAAO,CAAC;QACtC,oBAAoB,CAAC,EAAE,OAAO,CAAC;QAC/B,wBAAwB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;QACtD,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,kBAAkB,CAAA;SAAE,KAAK,IAAI,CAAC;QAClF,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,kBAAkB,CAAA;SAAE,KAAK,IAAI,CAAC;QAClF,qBAAqB,CAAC,EAAE,CAAC,OAAO,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,kBAAkB,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,KAAK,IAAI,CAAC;QAC5G,qBAAqB,CAAC,EAAE,CAAC,OAAO,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,kBAAkB,CAAA;SAAE,KAAK,IAAI,CAAC;QACzF,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,kBAAkB,CAAA;SAAE,KAAK,IAAI,CAAC;QAChF,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,kBAAkB,CAAA;SAAE,KAAK,IAAI,CAAC;QACnF,sBAAsB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;KACzD,CAAC;CACH;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,qBAAqB,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,oBAAoB,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;CACjB;AAkBD,MAAM,WAAW,gCAAgC;IAC/C,IAAI,EAAE,iBAAiB,CAAC;IACxB,YAAY,EAAE,iBAAiB,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,iBAAiB,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,sCAAsC;IACrD,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,MAAM,EAAE,qBAAqB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;IACjD,eAAe,EAAE,WAAW,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACtE,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,KAAK,EAAE,0BAA0B,CAAC;CACnC;AAED,MAAM,WAAW,0BAA0B;IACzC,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,qBAAqB,CAAC;IAC/B,eAAe,EAAE,KAAK,CAAC;QACrB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;KACvB,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,+BAA+B;IAC9C,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,IAAI,CAAC;CACzB;AAqFD,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;gBAE1C,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAM7E;AAID,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAGtE;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,sBAAsB,CAEzF;AA2DD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,GAAG,kBAAkB,CAqFrF;AAED,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,gCAAgC,GACtC,sCAAsC,GAAG,IAAI,CAgG/C;AAED,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,IAAI,CAAC,gCAAgC,EAAE,MAAM,GAAG,aAAa,GAAG,cAAc,CAAC,GACrF,0BAA0B,GAAG,IAAI,CAYnC;AAED,wBAAgB,8BAA8B,CAAC,CAAC,EAC9C,KAAK,EAAE,0BAA0B,GAAG,SAAS,EAC7C,MAAM,EAAE,CAAC,YAAY,EAAE,+BAA+B,GAAG,IAAI,KAAK,CAAC,EACnE,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAClC,CAAC,CA4BH;AAqCD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,yBAAyB,CA6IlG;AAu3CD,wBAAgB,kCAAkC,CAAC,KAAK,EAAE;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACzC,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,UAAU,CAAC,EAAE;QACX,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;KAC7C,CAAC;CACH,GAAG,IAAI,CAcP;AAED,wBAAgB,mCAAmC,CAAC,KAAK,EAAE;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,UAAU,CAAC,EAAE;QACX,cAAc,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;KAClD,CAAC;CACH,GAAG,IAAI,CAkEP;AAwPD,wBAAgB,+BAA+B,CAAC,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAMpG;AAMD,wBAAgB,gCAAgC,IAAI;IAClD,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB,EAAE,OAAO,CAAC;IAC3B,eAAe,EAAE,OAAO,CAAC;CAC1B,CAOA"}
1
+ {"version":3,"file":"project-context.d.ts","sourceRoot":"","sources":["../../src/lib/project-context.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,6 @@ import type { Config, ProfileVariables } from "../types/index.js";
2
2
  import { type ConfigStore } from "../data/config-store.js";
3
3
  export declare const PROJECT_DASHBOARD_STANDARD_SLUG = "agent-managed-project-dashboard-standard";
4
4
  export declare const PROJECT_DASHBOARD_PROFILE_VARIABLES: ProfileVariables;
5
- export declare const PROJECT_DASHBOARD_STANDARD_CONTENT = "# Agent-Managed Project Dashboard Standard\n\nThis standard applies to Hasna work projects under `Workspace/<division>/project/<slug>`.\nHumans do not work directly inside these folders; agents keep structure,\nevidence, tasks, knowledge, and dashboard output consistent.\n\n## Canonical Files\n\n- Project manifest root: `.hasna/project/`\n- Dashboard render manifest: `.hasna/project/dashboard/render.json`\n- Latest snapshot: `.hasna/project/dashboard/snapshots/latest.snapshot.json`\n- Dashboard schema ids come from `@hasna/contracts`.\n- Project folders may contain private documents, but render JSON must contain\n only ids, counts, statuses, resource refs, evidence refs, and redacted\n summaries.\n\n## Viewer Commands\n\nUse the Projects-owned viewer. Do not invent a separate per-project app unless\n`open-projects` cannot express the surface.\n\n```bash\nprojects dashboard snapshot <project> --write --json\nprojects dashboard render <project> --json\nprojects dashboard validate <project> --json\nPROJECTS_DASHBOARD_TOKEN=<token> projects dashboard serve <project> --host 0.0.0.0 --port <port>\n```\n\nNon-loopback serving must use `--token`, `PROJECTS_DASHBOARD_TOKEN`, or an\nexplicit `--trust-network` choice. Never put the token in a URL, task\nevidence, render spec, or report.\n\n## Provider Panels\n\nProvider CLIs emit bounded `hasna.project_panel.v1` summaries:\n\n```bash\ntodos project-panel --project <project> --json --contract\nfiles project-panel --project <project> --json --contract\nmailery project-panel --project <project> --limit 20 --json --contract\nconversations project-panel --project <project> --limit 30 --json --contract\nknowledge project-panel --project <project> --scope project --limit 30 --json --contract\nmementos --json project-panel --project <project> --contract\nreports project-panel --project <project> --json --contract\n```\n\nProviders must degrade to unavailable/error panels instead of dumping raw\ncontent. Mailery is workspace-scoped until explicit project-email mapping is\nconfigured; Knowledge must run from the project cwd or with the correct store\ncontext.\n\n## Coordination\n\n- Project conversation channels use the normalized project slug in the CLI and\n are displayed to humans as `#<project-slug>`.\n- Todos tasks are the source of truth for work; messages are only coordination.\n- Durable Codewith goal plans should own long-running implementation.\n- New implementation/verification work should route through task-triggered fresh\n agent runs, not by opening or pasting into existing tmux panes.\n- Agent handoff should reference task ids, project ids, commit ids, evidence\n paths, and dashboard URLs without exposing secrets or raw private documents.\n\n## Report Rules\n\nReports and dashboards should use JSON Render/React Flow through\n`projects dashboard render`. Include decisions, open questions, bank/document\nids, tasks, and evidence refs. Exclude raw email bodies, account numbers, tax\nids, passport numbers, credentials, and contract clauses unless an explicit\napproved storage policy exists.\n";
5
+ export declare const PROJECT_DASHBOARD_STANDARD_CONTENT = "# Agent-Managed Project Dashboard Standard\n\nThis standard applies to Hasna work projects under `Workspace/<division>/project/<slug>`.\nHumans do not work directly inside these folders; agents keep structure,\nevidence, tasks, knowledge, and dashboard output consistent.\n\n## Canonical Files\n\nThere is exactly one project-layout convention: the canonical per-workspace\nstore `~/.hasna/projects/workspaces/<workspace_id>/`. Never create a project\nlayout directory inside the project folder itself.\n\n- Per-workspace store root: `~/.hasna/projects/workspaces/<workspace_id>/`\n- Dashboard render manifest: `~/.hasna/projects/workspaces/<workspace_id>/dashboard/render.json`\n- Latest snapshot: `~/.hasna/projects/workspaces/<workspace_id>/dashboard/snapshots/latest.snapshot.json`\n- Dashboard schema ids come from `@hasna/contracts`.\n- Project folders may contain private documents, but render JSON must contain\n only ids, counts, statuses, resource refs, evidence refs, and redacted\n summaries.\n\n## Viewer Commands\n\nUse the Projects-owned viewer. Do not invent a separate per-project app unless\n`open-projects` cannot express the surface.\n\n```bash\nprojects dashboard snapshot <project> --write --json\nprojects dashboard render <project> --json\nprojects dashboard validate <project> --json\nPROJECTS_DASHBOARD_TOKEN=<token> projects dashboard serve <project> --host 0.0.0.0 --port <port>\n```\n\nNon-loopback serving must use `--token`, `PROJECTS_DASHBOARD_TOKEN`, or an\nexplicit `--trust-network` choice. Never put the token in a URL, task\nevidence, render spec, or report.\n\n## Provider Panels\n\nProvider CLIs emit bounded `hasna.project_panel.v1` summaries:\n\n```bash\ntodos project-panel --project <project> --json --contract\nfiles project-panel --project <project> --json --contract\nmailery project-panel --project <project> --limit 20 --json --contract\nconversations project-panel --project <project> --limit 30 --json --contract\nknowledge project-panel --project <project> --scope project --limit 30 --json --contract\nmementos --json project-panel --project <project> --contract\nreports project-panel --project <project> --json --contract\n```\n\nProviders must degrade to unavailable/error panels instead of dumping raw\ncontent. Mailery is workspace-scoped until explicit project-email mapping is\nconfigured; Knowledge must run from the project cwd or with the correct store\ncontext.\n\n## Coordination\n\n- Project conversation channels use the normalized project slug in the CLI and\n are displayed to humans as `#<project-slug>`.\n- Todos tasks are the source of truth for work; messages are only coordination.\n- Durable Codewith goal plans should own long-running implementation.\n- New implementation/verification work should route through task-triggered fresh\n agent runs, not by opening or pasting into existing tmux panes.\n- Agent handoff should reference task ids, project ids, commit ids, evidence\n paths, and dashboard URLs without exposing secrets or raw private documents.\n\n## Report Rules\n\nReports and dashboards should use JSON Render/React Flow through\n`projects dashboard render`. Include decisions, open questions, bank/document\nids, tasks, and evidence refs. Exclude raw email bodies, account numbers, tax\nids, passport numbers, credentials, and contract clauses unless an explicit\napproved storage policy exists.\n";
6
6
  export declare function ensureProjectDashboardStandardConfig(store?: ConfigStore): Promise<Config>;
7
7
  //# sourceMappingURL=project-dashboard-standard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"project-dashboard-standard.d.ts","sourceRoot":"","sources":["../../src/lib/project-dashboard-standard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE/E,eAAO,MAAM,+BAA+B,6CAA6C,CAAC;AAE1F,eAAO,MAAM,mCAAmC,EAAE,gBAKjD,CAAC;AAEF,eAAO,MAAM,kCAAkC,0hGAqE9C,CAAC;AAEF,wBAAsB,oCAAoC,CAAC,KAAK,GAAE,WAAkC,GAAG,OAAO,CAAC,MAAM,CAAC,CA4BrH"}
1
+ {"version":3,"file":"project-dashboard-standard.d.ts","sourceRoot":"","sources":["../../src/lib/project-dashboard-standard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE/E,eAAO,MAAM,+BAA+B,6CAA6C,CAAC;AAE1F,eAAO,MAAM,mCAAmC,EAAE,gBAEjD,CAAC;AAEF,eAAO,MAAM,kCAAkC,q0GAyE9C,CAAC;AAEF,wBAAsB,oCAAoC,CAAC,KAAK,GAAE,WAAkC,GAAG,OAAO,CAAC,MAAM,CAAC,CA4BrH"}
@@ -1 +1 @@
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
+ {"version":3,"file":"session-apply.d.ts","sourceRoot":"","sources":["../../src/lib/session-apply.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=session-render-state-hermeticity.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-render-state-hermeticity.test.d.ts","sourceRoot":"","sources":["../../src/lib/session-render-state-hermeticity.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,57 @@
1
+ export type PathKind = "config" | "data" | "state" | "cache";
2
+ export interface PathsResolverOptions {
3
+ app: string;
4
+ internal?: boolean;
5
+ platform?: string;
6
+ home?: string;
7
+ env?: Record<string, string | undefined>;
8
+ }
9
+ export declare function stateDir(options: PathsResolverOptions): string;
10
+ /** Pre-XDG default snapshot dir under a session target home. */
11
+ export declare function legacySnapshotDir(targetHome: string): string;
12
+ /**
13
+ * The @hasna/paths-resolved instructions state dir (XDG layout). A state-kind
14
+ * override whose base does not exist falls back to the default HOME-based
15
+ * resolution rather than failing closed on a path that cannot be created.
16
+ */
17
+ export declare function resolverSnapshotDir(env?: NodeJS.ProcessEnv): string;
18
+ /**
19
+ * Whether the resolver (XDG) state dir should be adopted as the snapshot dir.
20
+ * Adoption requires the state-kind override `HASNA_STATE_HOME` pointing at an
21
+ * existing base, or a store already physically migrated there (the resolved
22
+ * dir holds at least one snapshot file). An empty pre-created dir does NOT
23
+ * adopt — the legacy store must never become invisible merely because a
24
+ * directory exists — and an override whose base does not exist falls through
25
+ * to the default migration check instead of failing closed.
26
+ */
27
+ export declare function adoptResolverSnapshotDir(resolved: string, env?: NodeJS.ProcessEnv): boolean;
28
+ /**
29
+ * The effective snapshot location for a target home: the directory snapshots
30
+ * are written to, the workspace root the atomic-write containment guards must
31
+ * anchor to, and whether the resolver (XDG) state dir was adopted. Resolved
32
+ * once per call so a write or restore never re-reads the state dir.
33
+ */
34
+ export interface SessionRenderSnapshotLocation {
35
+ /** The directory pre-render snapshots are written to. */
36
+ dir: string;
37
+ /** The workspace root the atomic-write containment guards anchor to. */
38
+ workspaceRoot: string;
39
+ /** Whether the resolver (XDG) state dir was adopted. */
40
+ adopted: boolean;
41
+ }
42
+ export declare function resolveSessionRenderSnapshotLocation(targetHome: string, env?: NodeJS.ProcessEnv): SessionRenderSnapshotLocation;
43
+ /**
44
+ * Effective session-render snapshot dir for a target home: the resolver
45
+ * instructions state dir once adopted (`HASNA_STATE_HOME` set with an existing
46
+ * base, or the store migrated there), otherwise the legacy per-target-home
47
+ * default.
48
+ */
49
+ export declare function getSessionRenderSnapshotDir(targetHome: string, env?: NodeJS.ProcessEnv): string;
50
+ /**
51
+ * The workspace root the managed-file snapshot write must anchor to — the
52
+ * containing root so the atomic-write containment guards accept the path.
53
+ * Legacy: the target home (unchanged). Resolver: the state dir's parent
54
+ * (`~/.local/state/hasna`), which exists and contains the snapshot dir.
55
+ */
56
+ export declare function sessionRenderSnapshotWorkspaceRoot(targetHome: string, env?: NodeJS.ProcessEnv): string;
57
+ //# sourceMappingURL=session-render-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-render-state.d.ts","sourceRoot":"","sources":["../../src/lib/session-render-state.ts"],"names":[],"mappings":"AAWA,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAS7D,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CAC1C;AA0DD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,oBAAoB,GAAG,MAAM,CAE9D;AAkCD,gEAAgE;AAChE,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAUhF;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,MAAM,EAChB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAOT;AAED;;;;;GAKG;AACH,MAAM,WAAW,6BAA6B;IAC5C,yDAAyD;IACzD,GAAG,EAAE,MAAM,CAAC;IACZ,wEAAwE;IACxE,aAAa,EAAE,MAAM,CAAC;IACtB,wDAAwD;IACxD,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,oCAAoC,CAClD,UAAU,EAAE,MAAM,EAClB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,6BAA6B,CAO/B;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,MAAM,EAClB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,CAER;AAED;;;;;GAKG;AACH,wBAAgB,kCAAkC,CAChD,UAAU,EAAE,MAAM,EAClB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,CAER"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=session-render-state.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-render-state.test.d.ts","sourceRoot":"","sources":["../../src/lib/session-render-state.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,80 @@
1
+ import type { InstructionsClientEnv, InstructionsClientTransportResolution, InstructionsCredentialChainOptions, InstructionsStorageClient } from "./client-types.js";
2
+ import { INSTRUCTIONS_LOCAL_OPT_IN_ENV_KEYS, instructionsLocalModeNotice, isInstructionsLocalOptIn } from "./local-opt-in.js";
3
+ /** The app slug: the Keychain service, the `~/.hasna/instructions` folder, the gateway path. */
4
+ export declare const INSTRUCTIONS_APP = "instructions";
5
+ /** The explicit opt-in env, for messages that have to name exactly one name. */
6
+ export declare const INSTRUCTIONS_LOCAL_OPT_IN_ENV: string;
7
+ export { INSTRUCTIONS_LOCAL_OPT_IN_ENV_KEYS, instructionsLocalModeNotice, isInstructionsLocalOptIn };
8
+ /** Injectable seam controls: tier-1 credential inputs and the Keychain runner tests use. */
9
+ export interface InstructionsResolverOptions {
10
+ credentials?: InstructionsCredentialChainOptions;
11
+ }
12
+ /**
13
+ * Re-throw a `@hasna/contracts` resolution failure as the Instructions app's
14
+ * own fail-closed diagnostic, preserving the resolver's message (which names
15
+ * every tier it consulted) behind the stable `REMOTE_API_*` code callers match
16
+ * on. Nothing here ever returns a client or a local store: every arm throws.
17
+ */
18
+ export declare function rethrowInstructionsAuthorityFailure(error: unknown): never;
19
+ /**
20
+ * Resolve the client transport (authority + credential source) through the one
21
+ * shared resolver. Throws {@link rethrowInstructionsAuthorityFailure} on every
22
+ * refusal; never returns a transport without a credential.
23
+ *
24
+ * Fresh on every call: the CLI calls it per command, the MCP server per tool
25
+ * call, and the SDK per client construction — and the contracts transport
26
+ * additionally re-resolves the credential on every REQUEST.
27
+ */
28
+ export declare function resolveInstructionsClientTransport(env?: InstructionsClientEnv, options?: InstructionsResolverOptions): InstructionsClientTransportResolution;
29
+ /**
30
+ * Resolve the authenticated `/v1` storage client through the one shared
31
+ * resolver. Missing or invalid configuration throws; there is no local-data
32
+ * return branch. Every request re-resolves the credential through the
33
+ * transport's binding provider, so a rotation heals a long-lived process
34
+ * without a rebuild.
35
+ */
36
+ export declare function resolveInstructionsStorageClient(env?: InstructionsClientEnv, options?: InstructionsResolverOptions): {
37
+ transport: "http";
38
+ client: InstructionsStorageClient;
39
+ };
40
+ /**
41
+ * Machine-readable transport report, for surfaces that report refusals as data
42
+ * (a status line, `whoami`) rather than as an exception.
43
+ *
44
+ * `local_fallback` is ALWAYS false: nothing in this app ever silently demotes
45
+ * a hosted configuration to the on-box store, and no local-fallback event
46
+ * exists.
47
+ */
48
+ export interface InstructionsTransportStatus {
49
+ /** True when a configured transport is in effect (every non-opt-in run). */
50
+ selected: boolean;
51
+ ok: boolean;
52
+ transport: "http" | "local" | "invalid";
53
+ api_url_configured: boolean;
54
+ api_key_configured: boolean;
55
+ /** WHERE the authority came from: an env key NAME, a Keychain reference, a file PATH, or "default". */
56
+ api_url_source: string | null;
57
+ /** WHERE the credential came from: an env key NAME, a Keychain reference, or a file PATH. Never a value. */
58
+ api_key_source: string | null;
59
+ /** Which tier of the @hasna/contracts chain supplied the credential. */
60
+ api_key_tier: string | null;
61
+ v1_base_url: string | null;
62
+ issues: string[];
63
+ local_fallback: false;
64
+ }
65
+ /**
66
+ * Resolve the current transport and report it. Never throws: a refused
67
+ * configuration is reported as `ok: false` with the failure in `issues`.
68
+ */
69
+ export declare function getInstructionsTransportStatus(env?: InstructionsClientEnv, options?: InstructionsResolverOptions): InstructionsTransportStatus;
70
+ /** Test seam: forget that the local-mode line was printed. */
71
+ export declare function __resetLocalInstructionsModeNotice(): void;
72
+ /**
73
+ * Say — once per process, on stderr — that this run is using the on-box
74
+ * SQLite store. Local mode is legitimate (the explicit opt-in), but "no
75
+ * credential resolved" and "deliberately offline" look identical in the output
76
+ * otherwise, and the first one is usually a misconfiguration (owner rulings
77
+ * 2026-09-04).
78
+ */
79
+ export declare function announceLocalInstructionsMode(write?: (line: string) => void): boolean;
80
+ //# sourceMappingURL=transport-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport-resolver.d.ts","sourceRoot":"","sources":["../../src/lib/transport-resolver.ts"],"names":[],"mappings":"AAmDA,OAAO,KAAK,EACV,qBAAqB,EACrB,qCAAqC,EACrC,kCAAkC,EAClC,yBAAyB,EAC1B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,kCAAkC,EAClC,2BAA2B,EAE3B,wBAAwB,EAEzB,MAAM,mBAAmB,CAAC;AAE3B,gGAAgG;AAChG,eAAO,MAAM,gBAAgB,iBAAiB,CAAC;AAE/C,gFAAgF;AAChF,eAAO,MAAM,6BAA6B,EAA4C,MAAM,CAAC;AAE7F,OAAO,EAAE,kCAAkC,EAAE,2BAA2B,EAAE,wBAAwB,EAAE,CAAC;AAErG,4FAA4F;AAC5F,MAAM,WAAW,2BAA2B;IAC1C,WAAW,CAAC,EAAE,kCAAkC,CAAC;CAClD;AAED;;;;;GAKG;AACH,wBAAgB,mCAAmC,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,CAiCzE;AAED;;;;;;;;GAQG;AACH,wBAAgB,kCAAkC,CAChD,GAAG,GAAE,qBAAmC,EACxC,OAAO,GAAE,2BAAgC,GACxC,qCAAqC,CASvC;AAED;;;;;;GAMG;AACH,wBAAgB,gCAAgC,CAC9C,GAAG,GAAE,qBAAmC,EACxC,OAAO,GAAE,2BAAgC,GACxC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,yBAAyB,CAAA;CAAE,CAa1D;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,2BAA2B;IAC1C,4EAA4E;IAC5E,QAAQ,EAAE,OAAO,CAAC;IAClB,EAAE,EAAE,OAAO,CAAC;IACZ,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;IACxC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,uGAAuG;IACvG,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,4GAA4G;IAC5G,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,wEAAwE;IACxE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,cAAc,EAAE,KAAK,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,CAC5C,GAAG,GAAE,qBAAmC,EACxC,OAAO,GAAE,2BAAgC,GACxC,2BAA2B,CAiD7B;AAID,8DAA8D;AAC9D,wBAAgB,kCAAkC,IAAI,IAAI,CAEzD;AAED;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAC3C,KAAK,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAkD,GAC1E,OAAO,CAKT"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=transport-resolver.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport-resolver.test.d.ts","sourceRoot":"","sources":["../../src/lib/transport-resolver.test.ts"],"names":[],"mappings":""}