@habitat-ai/service 0.2.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 (33) hide show
  1. package/dist/client.d.ts +16 -0
  2. package/dist/client.js +16 -0
  3. package/dist/service/base.d.ts +28 -0
  4. package/dist/service/base.js +1 -0
  5. package/dist/service/contract.d.ts +10 -0
  6. package/dist/service/contract.js +5 -0
  7. package/dist/service/impl.d.ts +508 -0
  8. package/dist/service/impl.js +7 -0
  9. package/dist/service/modules/catalog/contract/catalog.d.ts +252 -0
  10. package/dist/service/modules/catalog/contract/catalog.js +13 -0
  11. package/dist/service/modules/catalog/contract/index.d.ts +3 -0
  12. package/dist/service/modules/catalog/contract/index.js +3 -0
  13. package/dist/service/modules/catalog/model/dto/catalog.d.ts +276 -0
  14. package/dist/service/modules/catalog/model/dto/catalog.js +380 -0
  15. package/dist/service/modules/catalog/model/dto/check.d.ts +104 -0
  16. package/dist/service/modules/catalog/model/dto/check.js +305 -0
  17. package/dist/service/modules/catalog/model/dto/structure.d.ts +23 -0
  18. package/dist/service/modules/catalog/model/dto/structure.js +93 -0
  19. package/dist/service/modules/catalog/model/policy/catalog.d.ts +109 -0
  20. package/dist/service/modules/catalog/model/policy/catalog.js +607 -0
  21. package/dist/service/modules/catalog/model/policy/check.d.ts +57 -0
  22. package/dist/service/modules/catalog/model/policy/check.js +207 -0
  23. package/dist/service/modules/catalog/model/policy/structure.d.ts +64 -0
  24. package/dist/service/modules/catalog/model/policy/structure.js +249 -0
  25. package/dist/service/modules/catalog/module.d.ts +521 -0
  26. package/dist/service/modules/catalog/module.js +12 -0
  27. package/dist/service/modules/catalog/router/catalog.router.d.ts +266 -0
  28. package/dist/service/modules/catalog/router/catalog.router.js +659 -0
  29. package/dist/service/modules/catalog/router.d.ts +265 -0
  30. package/dist/service/modules/catalog/router.js +3 -0
  31. package/dist/service/router.d.ts +267 -0
  32. package/dist/service/router.js +4 -0
  33. package/package.json +49 -0
@@ -0,0 +1,16 @@
1
+ import type { RouterContractClient } from "@orpc/contract";
2
+ import type { Context } from "./service/base.js";
3
+ import { type Contract, contract } from "./service/contract.js";
4
+ export { type Contract, contract };
5
+ /** Host-supplied ready Effect capabilities used by Habitat operations. */
6
+ export type Deps = Context["deps"];
7
+ /** Stable absolute workspace binding fixed at client construction. */
8
+ export type Scope = Context["scope"];
9
+ /** App-selected policy-pack locators admitted by the Habitat service. */
10
+ export type Config = Context["config"];
11
+ /** Public construction boundary for one local Habitat client. */
12
+ export type CreateClientOptions = Pick<Context, "deps" | "scope" | "config">;
13
+ /** Typed local caller surface derived from the public Habitat contract. */
14
+ export type Client = RouterContractClient<Contract>;
15
+ /** Constructs the sole public local client over the private Habitat router. */
16
+ export declare function createClient({ deps, scope, config }: CreateClientOptions): Client;
package/dist/client.js ADDED
@@ -0,0 +1,16 @@
1
+ import { createRouterClient } from "@orpc/server";
2
+ import { contract } from "./service/contract.js";
3
+ import { router } from "./service/router.js";
4
+ export { contract };
5
+ /** Constructs the sole public local client over the private Habitat router. */
6
+ export function createClient({ deps, scope, config }) {
7
+ return createRouterClient(router, {
8
+ context: {
9
+ deps,
10
+ scope,
11
+ config,
12
+ invocation: {},
13
+ provided: {},
14
+ },
15
+ });
16
+ }
@@ -0,0 +1,28 @@
1
+ import type { RuleEvaluationResource } from "@habitat-ai/resource-rule-evaluation";
2
+ import type { SourceInventoryResource } from "@habitat-ai/resource-source-inventory";
3
+ import type { FileSystem, Path } from "effect";
4
+ type EmptyContextLane = Readonly<Record<PropertyKey, never>>;
5
+ /** One app-selected policy-pack installation admitted by the service. */
6
+ export type SelectedPolicyPack = {
7
+ readonly name: string;
8
+ readonly packageJsonPath: string;
9
+ readonly manifestPath: string;
10
+ };
11
+ /** Host and invocation lanes admitted by the Habitat catalog boundary. */
12
+ export type Context = {
13
+ readonly deps: {
14
+ readonly fileSystem: FileSystem.FileSystem;
15
+ readonly path: Path.Path;
16
+ readonly ruleEvaluation: RuleEvaluationResource<never>;
17
+ readonly sourceInventory: SourceInventoryResource<never>;
18
+ };
19
+ readonly scope: {
20
+ readonly workspaceRoot: string;
21
+ };
22
+ readonly config: {
23
+ readonly policyPack: SelectedPolicyPack;
24
+ };
25
+ readonly invocation: EmptyContextLane;
26
+ readonly provided: EmptyContextLane;
27
+ };
28
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,10 @@
1
+ import { type AugmentedContractRouter } from "@orpc/contract";
2
+ import { contract as catalog } from "./modules/catalog/contract/index.js";
3
+ declare const routes: {
4
+ readonly catalog: typeof catalog;
5
+ };
6
+ /** Caller contract type re-exported by the public client face. */
7
+ export type Contract = AugmentedContractRouter<typeof routes, object>;
8
+ /** Root Habitat semantic contract composed from the catalog module. */
9
+ export declare const contract: Contract;
10
+ export {};
@@ -0,0 +1,5 @@
1
+ import { oc } from "@orpc/contract";
2
+ import { contract as catalog } from "./modules/catalog/contract/index.js";
3
+ const routes = { catalog };
4
+ /** Root Habitat semantic contract composed from the catalog module. */
5
+ export const contract = oc.router(routes);
@@ -0,0 +1,508 @@
1
+ import "@orpc/experimental-effect/extensions/effect";
2
+ import type { Context } from "./base.js";
3
+ /** Unconfigured Habitat implementer used for aggregate router implementation. */
4
+ export declare const impl: import("@orpc/server").Implementer<{
5
+ readonly catalog: {
6
+ resolve: import("@orpc/contract").ProcedureContract<import("packages/typebox-adapter/dist/index.js").TypeBoxStandardSchema<import("typebox").TObject<{}>>, import("packages/typebox-adapter/dist/index.js").TypeBoxStandardSchema<import("typebox").TUnion<[import("typebox").TObject<{
7
+ _tag: import("typebox").TLiteral<"Resolved">;
8
+ catalog: import("typebox").TObject<{
9
+ schemaVersion: import("typebox").TLiteral<3>;
10
+ policyPack: import("typebox").TObject<{
11
+ name: import("typebox").TString;
12
+ version: import("typebox").TString;
13
+ protocolVersion: import("typebox").TLiteral<1>;
14
+ blueprints: import("typebox").TArray<import("typebox").TObject<{
15
+ id: import("typebox").TString;
16
+ version: import("typebox").TInteger;
17
+ path: import("typebox").TString;
18
+ }>>;
19
+ }>;
20
+ blueprints: import("typebox").TArray<import("typebox").TObject<{
21
+ definition: import("typebox").TObject<{
22
+ schemaVersion: import("typebox").TLiteral<1>;
23
+ id: import("typebox").TString;
24
+ version: import("typebox").TInteger;
25
+ rules: import("typebox").TArray<import("typebox").TObject<{
26
+ id: import("typebox").TString;
27
+ lane: import("typebox").TUnion<[import("typebox").TLiteral<"enforced">, import("typebox").TLiteral<"advisory">]>;
28
+ message: import("typebox").TString;
29
+ remediate: import("typebox").TUnion<[import("typebox").TString, import("typebox").TNull]>;
30
+ runner: import("typebox").TUnion<[import("typebox").TObject<{
31
+ name: import("typebox").TLiteral<"habitat">;
32
+ mode: import("typebox").TLiteral<"structure">;
33
+ structure: import("typebox").TString;
34
+ }>, import("typebox").TObject<{
35
+ name: import("typebox").TLiteral<"grit">;
36
+ pattern: import("typebox").TString;
37
+ patternName: import("typebox").TString;
38
+ acquisition: import("typebox").TObject<{
39
+ kind: import("typebox").TUnion<[import("typebox").TLiteral<"check">, import("typebox").TLiteral<"apply-dry-run">]>;
40
+ rootRoles: import("typebox").TArray<import("typebox").TString>;
41
+ selections: import("typebox").TArray<import("typebox").TString>;
42
+ }>;
43
+ }>]>;
44
+ }>>;
45
+ instance: import("typebox").TObject<{
46
+ manifest: import("typebox").TLiteral<"habitat.toml">;
47
+ anchorRoot: import("typebox").TString;
48
+ roots: import("typebox").TArray<import("typebox").TObject<{
49
+ id: import("typebox").TString;
50
+ required: import("typebox").TBoolean;
51
+ kind: import("typebox").TUnion<[import("typebox").TLiteral<"directory">, import("typebox").TLiteral<"file">]>;
52
+ }>>;
53
+ selections: import("typebox").TArray<import("typebox").TObject<{
54
+ id: import("typebox").TString;
55
+ root: import("typebox").TString;
56
+ kind: import("typebox").TUnion<[import("typebox").TLiteral<"directory">, import("typebox").TLiteral<"file">]>;
57
+ memberPattern: import("typebox").TString;
58
+ pathTemplate: import("typebox").TString;
59
+ }>>;
60
+ }>;
61
+ }>;
62
+ provenance: import("typebox").TObject<{
63
+ kind: import("typebox").TLiteral<"local">;
64
+ authorityRoot: import("typebox").TString;
65
+ relativePath: import("typebox").TString;
66
+ }>;
67
+ }>>;
68
+ instances: import("typebox").TArray<import("typebox").TObject<{
69
+ id: import("typebox").TString;
70
+ ownerProject: import("typebox").TString;
71
+ blueprint: import("typebox").TString;
72
+ blueprintVersion: import("typebox").TInteger;
73
+ manifestPath: import("typebox").TString;
74
+ roots: import("typebox").TArray<import("typebox").TObject<{
75
+ id: import("typebox").TString;
76
+ required: import("typebox").TBoolean;
77
+ kind: import("typebox").TUnion<[import("typebox").TLiteral<"directory">, import("typebox").TLiteral<"file">]>;
78
+ path: import("typebox").TString;
79
+ }>>;
80
+ selections: import("typebox").TArray<import("typebox").TObject<{
81
+ id: import("typebox").TString;
82
+ root: import("typebox").TString;
83
+ members: import("typebox").TArray<import("typebox").TObject<{
84
+ id: import("typebox").TString;
85
+ kind: import("typebox").TUnion<[import("typebox").TLiteral<"directory">, import("typebox").TLiteral<"file">]>;
86
+ path: import("typebox").TString;
87
+ }>>;
88
+ }>>;
89
+ }>>;
90
+ applications: import("typebox").TArray<import("typebox").TObject<{
91
+ ownerProject: import("typebox").TString;
92
+ instanceId: import("typebox").TString;
93
+ blueprint: import("typebox").TString;
94
+ blueprintVersion: import("typebox").TInteger;
95
+ ruleId: import("typebox").TString;
96
+ manifestPath: import("typebox").TString;
97
+ lane: import("typebox").TUnion<[import("typebox").TLiteral<"enforced">, import("typebox").TLiteral<"advisory">]>;
98
+ message: import("typebox").TString;
99
+ remediate: import("typebox").TUnion<[import("typebox").TString, import("typebox").TNull]>;
100
+ provenance: import("typebox").TObject<{
101
+ kind: import("typebox").TLiteral<"local">;
102
+ authorityRoot: import("typebox").TString;
103
+ relativePath: import("typebox").TString;
104
+ }>;
105
+ runner: import("typebox").TUnion<[import("typebox").TObject<{
106
+ name: import("typebox").TLiteral<"habitat">;
107
+ mode: import("typebox").TLiteral<"structure">;
108
+ structure: import("typebox").TObject<{
109
+ provenance: import("typebox").TObject<{
110
+ kind: import("typebox").TLiteral<"local">;
111
+ authorityRoot: import("typebox").TString;
112
+ relativePath: import("typebox").TString;
113
+ }>;
114
+ relativePath: import("typebox").TString;
115
+ absolutePath: import("typebox").TString;
116
+ }>;
117
+ rootBindings: import("typebox").TArray<import("typebox").TObject<{
118
+ rootRole: import("typebox").TString;
119
+ required: import("typebox").TBoolean;
120
+ kind: import("typebox").TUnion<[import("typebox").TLiteral<"directory">, import("typebox").TLiteral<"file">]>;
121
+ path: import("typebox").TOptional<import("typebox").TString>;
122
+ }>>;
123
+ }>, import("typebox").TObject<{
124
+ name: import("typebox").TLiteral<"grit">;
125
+ pattern: import("typebox").TObject<{
126
+ provenance: import("typebox").TObject<{
127
+ kind: import("typebox").TLiteral<"local">;
128
+ authorityRoot: import("typebox").TString;
129
+ relativePath: import("typebox").TString;
130
+ }>;
131
+ relativePath: import("typebox").TString;
132
+ absolutePath: import("typebox").TString;
133
+ }>;
134
+ patternName: import("typebox").TString;
135
+ acquisition: import("typebox").TObject<{
136
+ kind: import("typebox").TUnion<[import("typebox").TLiteral<"check">, import("typebox").TLiteral<"apply-dry-run">]>;
137
+ entries: import("typebox").TArray<import("typebox").TObject<{
138
+ source: import("typebox").TUnion<[import("typebox").TObject<{
139
+ kind: import("typebox").TLiteral<"root-role">;
140
+ id: import("typebox").TString;
141
+ }>, import("typebox").TObject<{
142
+ kind: import("typebox").TLiteral<"selection">;
143
+ id: import("typebox").TString;
144
+ member: import("typebox").TString;
145
+ }>]>;
146
+ kind: import("typebox").TUnion<[import("typebox").TLiteral<"directory">, import("typebox").TLiteral<"file">]>;
147
+ path: import("typebox").TString;
148
+ }>>;
149
+ }>;
150
+ }>]>;
151
+ }>>;
152
+ compatibility: import("typebox").TObject<{
153
+ schemaVersion: import("typebox").TLiteral<2>;
154
+ ownerRoots: import("typebox").TRecord<"^.*$", import("typebox").TString>;
155
+ rules: import("typebox").TArray<import("typebox").TObject<{
156
+ id: import("typebox").TString;
157
+ ownerProject: import("typebox").TString;
158
+ manifestPath: import("typebox").TString;
159
+ }>>;
160
+ }>;
161
+ }>;
162
+ }>, import("typebox").TObject<{
163
+ _tag: import("typebox").TLiteral<"Rejected">;
164
+ issues: import("typebox").TArray<import("typebox").TObject<{
165
+ code: import("typebox").TUnion<[import("typebox").TLiteral<"authority-anchor-mismatch">, import("typebox").TLiteral<"authority-blueprint-missing">, import("typebox").TLiteral<"authority-compatibility-invalid">, import("typebox").TLiteral<"authority-definition-invalid">, import("typebox").TLiteral<"authority-definition-kind-mismatch">, import("typebox").TLiteral<"authority-duplicate-blueprint">, import("typebox").TLiteral<"authority-duplicate-instance">, import("typebox").TLiteral<"authority-duplicate-rule">, import("typebox").TLiteral<"authority-filesystem-failed">, import("typebox").TLiteral<"authority-json-invalid">, import("typebox").TLiteral<"authority-manifest-invalid">, import("typebox").TLiteral<"authority-order-invalid">, import("typebox").TLiteral<"authority-path-escape">, import("typebox").TLiteral<"authority-path-invalid">, import("typebox").TLiteral<"authority-path-kind-mismatch">, import("typebox").TLiteral<"authority-path-missing">, import("typebox").TLiteral<"authority-package-name-mismatch">, import("typebox").TLiteral<"authority-policy-pack-members-unsupported">, import("typebox").TLiteral<"authority-resolution-failed">, import("typebox").TLiteral<"authority-rule-invalid">, import("typebox").TLiteral<"authority-schema-invalid">, import("typebox").TLiteral<"authority-toml-invalid">, import("typebox").TLiteral<"authority-version-mismatch">, import("typebox").TLiteral<"authority-workspace-root-invalid">]>;
166
+ path: import("typebox").TString;
167
+ message: import("typebox").TString;
168
+ }>>;
169
+ }>]>>, object>;
170
+ check: import("@orpc/contract").ProcedureContract<import("packages/typebox-adapter/dist/index.js").TypeBoxStandardSchema<import("typebox").TObject<{
171
+ selectors: import("typebox").TOptional<import("typebox").TObject<{
172
+ owner: import("typebox").TOptional<import("typebox").TString>;
173
+ instance: import("typebox").TOptional<import("typebox").TString>;
174
+ rule: import("typebox").TOptional<import("typebox").TString>;
175
+ rules: import("typebox").TOptional<import("typebox").TArray<import("typebox").TString>>;
176
+ runner: import("typebox").TOptional<import("typebox").TString>;
177
+ }>>;
178
+ }>>, import("packages/typebox-adapter/dist/index.js").TypeBoxStandardSchema<import("typebox").TUnion<[import("typebox").TObject<{
179
+ _tag: import("typebox").TLiteral<"CatalogRejected">;
180
+ issues: import("typebox").TArray<import("typebox").TObject<{
181
+ code: import("typebox").TUnion<[import("typebox").TLiteral<"authority-anchor-mismatch">, import("typebox").TLiteral<"authority-blueprint-missing">, import("typebox").TLiteral<"authority-compatibility-invalid">, import("typebox").TLiteral<"authority-definition-invalid">, import("typebox").TLiteral<"authority-definition-kind-mismatch">, import("typebox").TLiteral<"authority-duplicate-blueprint">, import("typebox").TLiteral<"authority-duplicate-instance">, import("typebox").TLiteral<"authority-duplicate-rule">, import("typebox").TLiteral<"authority-filesystem-failed">, import("typebox").TLiteral<"authority-json-invalid">, import("typebox").TLiteral<"authority-manifest-invalid">, import("typebox").TLiteral<"authority-order-invalid">, import("typebox").TLiteral<"authority-path-escape">, import("typebox").TLiteral<"authority-path-invalid">, import("typebox").TLiteral<"authority-path-kind-mismatch">, import("typebox").TLiteral<"authority-path-missing">, import("typebox").TLiteral<"authority-package-name-mismatch">, import("typebox").TLiteral<"authority-policy-pack-members-unsupported">, import("typebox").TLiteral<"authority-resolution-failed">, import("typebox").TLiteral<"authority-rule-invalid">, import("typebox").TLiteral<"authority-schema-invalid">, import("typebox").TLiteral<"authority-toml-invalid">, import("typebox").TLiteral<"authority-version-mismatch">, import("typebox").TLiteral<"authority-workspace-root-invalid">]>;
182
+ path: import("typebox").TString;
183
+ message: import("typebox").TString;
184
+ }>>;
185
+ }>, import("typebox").TObject<{
186
+ _tag: import("typebox").TLiteral<"SelectionRejected">;
187
+ issues: import("typebox").TArray<import("typebox").TObject<{
188
+ code: import("typebox").TUnion<[import("typebox").TLiteral<"selector-empty">, import("typebox").TLiteral<"selector-unknown">, import("typebox").TLiteral<"selector-wrong-namespace">, import("typebox").TLiteral<"runner-unsupported">]>;
189
+ selector: import("typebox").TString;
190
+ message: import("typebox").TString;
191
+ }>>;
192
+ }>, import("typebox").TObject<{
193
+ _tag: import("typebox").TLiteral<"Completed">;
194
+ ok: import("typebox").TBoolean;
195
+ applications: import("typebox").TArray<import("typebox").TUnion<[import("typebox").TObject<{
196
+ ownerProject: import("typebox").TString;
197
+ instanceId: import("typebox").TString;
198
+ ruleId: import("typebox").TString;
199
+ runner: import("typebox").TLiteral<"grit">;
200
+ lane: import("typebox").TUnion<[import("typebox").TLiteral<"enforced">, import("typebox").TLiteral<"advisory">]>;
201
+ locked: import("typebox").TLiteral<false>;
202
+ status: import("typebox").TUnion<[import("typebox").TLiteral<"pass">, import("typebox").TLiteral<"fail">, import("typebox").TLiteral<"advisory-findings">, import("typebox").TLiteral<"error">]>;
203
+ message: import("typebox").TString;
204
+ remediate: import("typebox").TUnion<[import("typebox").TString, import("typebox").TNull]>;
205
+ disposition: import("typebox").TUnion<[import("typebox").TObject<{
206
+ kind: import("typebox").TLiteral<"evaluated">;
207
+ }>, import("typebox").TObject<{
208
+ kind: import("typebox").TLiteral<"failed">;
209
+ reason: import("typebox").TUnion<[import("typebox").TUnion<[import("typebox").TLiteral<"InvalidInput">, import("typebox").TLiteral<"SetupFailed">, import("typebox").TLiteral<"ExecutionFailed">, import("typebox").TLiteral<"TimedOut">, import("typebox").TLiteral<"InvalidOutput">]>, import("typebox").TLiteral<"PatternReadFailed">, import("typebox").TLiteral<"PatternInvalid">, import("typebox").TLiteral<"FindingPathInvalid">]>;
210
+ detail: import("typebox").TString;
211
+ }>]>;
212
+ findings: import("typebox").TArray<import("typebox").TObject<{
213
+ path: import("typebox").TString;
214
+ start: import("typebox").TObject<{
215
+ line: import("typebox").TReadonly<import("typebox").TInteger>;
216
+ column: import("typebox").TReadonly<import("typebox").TInteger>;
217
+ offset: import("typebox").TReadonly<import("typebox").TInteger>;
218
+ }>;
219
+ end: import("typebox").TObject<{
220
+ line: import("typebox").TReadonly<import("typebox").TInteger>;
221
+ column: import("typebox").TReadonly<import("typebox").TInteger>;
222
+ offset: import("typebox").TReadonly<import("typebox").TInteger>;
223
+ }>;
224
+ message: import("typebox").TUnion<[import("typebox").TString, import("typebox").TNull]>;
225
+ severity: import("typebox").TUnion<[import("typebox").TLiteral<"error">, import("typebox").TLiteral<"advisory">]>;
226
+ baselined: import("typebox").TLiteral<false>;
227
+ }>>;
228
+ }>, import("typebox").TObject<{
229
+ ownerProject: import("typebox").TString;
230
+ instanceId: import("typebox").TString;
231
+ ruleId: import("typebox").TString;
232
+ runner: import("typebox").TLiteral<"habitat">;
233
+ lane: import("typebox").TUnion<[import("typebox").TLiteral<"enforced">, import("typebox").TLiteral<"advisory">]>;
234
+ locked: import("typebox").TLiteral<false>;
235
+ status: import("typebox").TUnion<[import("typebox").TLiteral<"pass">, import("typebox").TLiteral<"fail">, import("typebox").TLiteral<"advisory-findings">, import("typebox").TLiteral<"error">]>;
236
+ message: import("typebox").TString;
237
+ remediate: import("typebox").TUnion<[import("typebox").TString, import("typebox").TNull]>;
238
+ disposition: import("typebox").TUnion<[import("typebox").TObject<{
239
+ kind: import("typebox").TLiteral<"evaluated">;
240
+ }>, import("typebox").TObject<{
241
+ kind: import("typebox").TLiteral<"failed">;
242
+ reason: import("typebox").TUnion<[import("typebox").TLiteral<"StructureReadFailed">, import("typebox").TLiteral<"StructureInvalid">, import("typebox").TLiteral<"InventoryFailed">, import("typebox").TLiteral<"StructureObservationFailed">]>;
243
+ detail: import("typebox").TString;
244
+ }>]>;
245
+ findings: import("typebox").TArray<import("typebox").TObject<{
246
+ path: import("typebox").TString;
247
+ code: import("typebox").TUnion<[import("typebox").TLiteral<"root-missing">, import("typebox").TLiteral<"wrong-root-kind">, import("typebox").TLiteral<"missing-required-child">, import("typebox").TLiteral<"forbidden-child">, import("typebox").TLiteral<"unexpected-child">]>;
248
+ message: import("typebox").TString;
249
+ severity: import("typebox").TUnion<[import("typebox").TLiteral<"error">, import("typebox").TLiteral<"advisory">]>;
250
+ baselined: import("typebox").TLiteral<false>;
251
+ }>>;
252
+ }>]>>;
253
+ }>]>>, object>;
254
+ };
255
+ }, Context & object>;
256
+ /** Root Habitat lineage with the official Effect-oRPC extension admitted once. */
257
+ export declare const service: import("@orpc/server").Implementer<{
258
+ readonly catalog: {
259
+ resolve: import("@orpc/contract").ProcedureContract<import("packages/typebox-adapter/dist/index.js").TypeBoxStandardSchema<import("typebox").TObject<{}>>, import("packages/typebox-adapter/dist/index.js").TypeBoxStandardSchema<import("typebox").TUnion<[import("typebox").TObject<{
260
+ _tag: import("typebox").TLiteral<"Resolved">;
261
+ catalog: import("typebox").TObject<{
262
+ schemaVersion: import("typebox").TLiteral<3>;
263
+ policyPack: import("typebox").TObject<{
264
+ name: import("typebox").TString;
265
+ version: import("typebox").TString;
266
+ protocolVersion: import("typebox").TLiteral<1>;
267
+ blueprints: import("typebox").TArray<import("typebox").TObject<{
268
+ id: import("typebox").TString;
269
+ version: import("typebox").TInteger;
270
+ path: import("typebox").TString;
271
+ }>>;
272
+ }>;
273
+ blueprints: import("typebox").TArray<import("typebox").TObject<{
274
+ definition: import("typebox").TObject<{
275
+ schemaVersion: import("typebox").TLiteral<1>;
276
+ id: import("typebox").TString;
277
+ version: import("typebox").TInteger;
278
+ rules: import("typebox").TArray<import("typebox").TObject<{
279
+ id: import("typebox").TString;
280
+ lane: import("typebox").TUnion<[import("typebox").TLiteral<"enforced">, import("typebox").TLiteral<"advisory">]>;
281
+ message: import("typebox").TString;
282
+ remediate: import("typebox").TUnion<[import("typebox").TString, import("typebox").TNull]>;
283
+ runner: import("typebox").TUnion<[import("typebox").TObject<{
284
+ name: import("typebox").TLiteral<"habitat">;
285
+ mode: import("typebox").TLiteral<"structure">;
286
+ structure: import("typebox").TString;
287
+ }>, import("typebox").TObject<{
288
+ name: import("typebox").TLiteral<"grit">;
289
+ pattern: import("typebox").TString;
290
+ patternName: import("typebox").TString;
291
+ acquisition: import("typebox").TObject<{
292
+ kind: import("typebox").TUnion<[import("typebox").TLiteral<"check">, import("typebox").TLiteral<"apply-dry-run">]>;
293
+ rootRoles: import("typebox").TArray<import("typebox").TString>;
294
+ selections: import("typebox").TArray<import("typebox").TString>;
295
+ }>;
296
+ }>]>;
297
+ }>>;
298
+ instance: import("typebox").TObject<{
299
+ manifest: import("typebox").TLiteral<"habitat.toml">;
300
+ anchorRoot: import("typebox").TString;
301
+ roots: import("typebox").TArray<import("typebox").TObject<{
302
+ id: import("typebox").TString;
303
+ required: import("typebox").TBoolean;
304
+ kind: import("typebox").TUnion<[import("typebox").TLiteral<"directory">, import("typebox").TLiteral<"file">]>;
305
+ }>>;
306
+ selections: import("typebox").TArray<import("typebox").TObject<{
307
+ id: import("typebox").TString;
308
+ root: import("typebox").TString;
309
+ kind: import("typebox").TUnion<[import("typebox").TLiteral<"directory">, import("typebox").TLiteral<"file">]>;
310
+ memberPattern: import("typebox").TString;
311
+ pathTemplate: import("typebox").TString;
312
+ }>>;
313
+ }>;
314
+ }>;
315
+ provenance: import("typebox").TObject<{
316
+ kind: import("typebox").TLiteral<"local">;
317
+ authorityRoot: import("typebox").TString;
318
+ relativePath: import("typebox").TString;
319
+ }>;
320
+ }>>;
321
+ instances: import("typebox").TArray<import("typebox").TObject<{
322
+ id: import("typebox").TString;
323
+ ownerProject: import("typebox").TString;
324
+ blueprint: import("typebox").TString;
325
+ blueprintVersion: import("typebox").TInteger;
326
+ manifestPath: import("typebox").TString;
327
+ roots: import("typebox").TArray<import("typebox").TObject<{
328
+ id: import("typebox").TString;
329
+ required: import("typebox").TBoolean;
330
+ kind: import("typebox").TUnion<[import("typebox").TLiteral<"directory">, import("typebox").TLiteral<"file">]>;
331
+ path: import("typebox").TString;
332
+ }>>;
333
+ selections: import("typebox").TArray<import("typebox").TObject<{
334
+ id: import("typebox").TString;
335
+ root: import("typebox").TString;
336
+ members: import("typebox").TArray<import("typebox").TObject<{
337
+ id: import("typebox").TString;
338
+ kind: import("typebox").TUnion<[import("typebox").TLiteral<"directory">, import("typebox").TLiteral<"file">]>;
339
+ path: import("typebox").TString;
340
+ }>>;
341
+ }>>;
342
+ }>>;
343
+ applications: import("typebox").TArray<import("typebox").TObject<{
344
+ ownerProject: import("typebox").TString;
345
+ instanceId: import("typebox").TString;
346
+ blueprint: import("typebox").TString;
347
+ blueprintVersion: import("typebox").TInteger;
348
+ ruleId: import("typebox").TString;
349
+ manifestPath: import("typebox").TString;
350
+ lane: import("typebox").TUnion<[import("typebox").TLiteral<"enforced">, import("typebox").TLiteral<"advisory">]>;
351
+ message: import("typebox").TString;
352
+ remediate: import("typebox").TUnion<[import("typebox").TString, import("typebox").TNull]>;
353
+ provenance: import("typebox").TObject<{
354
+ kind: import("typebox").TLiteral<"local">;
355
+ authorityRoot: import("typebox").TString;
356
+ relativePath: import("typebox").TString;
357
+ }>;
358
+ runner: import("typebox").TUnion<[import("typebox").TObject<{
359
+ name: import("typebox").TLiteral<"habitat">;
360
+ mode: import("typebox").TLiteral<"structure">;
361
+ structure: import("typebox").TObject<{
362
+ provenance: import("typebox").TObject<{
363
+ kind: import("typebox").TLiteral<"local">;
364
+ authorityRoot: import("typebox").TString;
365
+ relativePath: import("typebox").TString;
366
+ }>;
367
+ relativePath: import("typebox").TString;
368
+ absolutePath: import("typebox").TString;
369
+ }>;
370
+ rootBindings: import("typebox").TArray<import("typebox").TObject<{
371
+ rootRole: import("typebox").TString;
372
+ required: import("typebox").TBoolean;
373
+ kind: import("typebox").TUnion<[import("typebox").TLiteral<"directory">, import("typebox").TLiteral<"file">]>;
374
+ path: import("typebox").TOptional<import("typebox").TString>;
375
+ }>>;
376
+ }>, import("typebox").TObject<{
377
+ name: import("typebox").TLiteral<"grit">;
378
+ pattern: import("typebox").TObject<{
379
+ provenance: import("typebox").TObject<{
380
+ kind: import("typebox").TLiteral<"local">;
381
+ authorityRoot: import("typebox").TString;
382
+ relativePath: import("typebox").TString;
383
+ }>;
384
+ relativePath: import("typebox").TString;
385
+ absolutePath: import("typebox").TString;
386
+ }>;
387
+ patternName: import("typebox").TString;
388
+ acquisition: import("typebox").TObject<{
389
+ kind: import("typebox").TUnion<[import("typebox").TLiteral<"check">, import("typebox").TLiteral<"apply-dry-run">]>;
390
+ entries: import("typebox").TArray<import("typebox").TObject<{
391
+ source: import("typebox").TUnion<[import("typebox").TObject<{
392
+ kind: import("typebox").TLiteral<"root-role">;
393
+ id: import("typebox").TString;
394
+ }>, import("typebox").TObject<{
395
+ kind: import("typebox").TLiteral<"selection">;
396
+ id: import("typebox").TString;
397
+ member: import("typebox").TString;
398
+ }>]>;
399
+ kind: import("typebox").TUnion<[import("typebox").TLiteral<"directory">, import("typebox").TLiteral<"file">]>;
400
+ path: import("typebox").TString;
401
+ }>>;
402
+ }>;
403
+ }>]>;
404
+ }>>;
405
+ compatibility: import("typebox").TObject<{
406
+ schemaVersion: import("typebox").TLiteral<2>;
407
+ ownerRoots: import("typebox").TRecord<"^.*$", import("typebox").TString>;
408
+ rules: import("typebox").TArray<import("typebox").TObject<{
409
+ id: import("typebox").TString;
410
+ ownerProject: import("typebox").TString;
411
+ manifestPath: import("typebox").TString;
412
+ }>>;
413
+ }>;
414
+ }>;
415
+ }>, import("typebox").TObject<{
416
+ _tag: import("typebox").TLiteral<"Rejected">;
417
+ issues: import("typebox").TArray<import("typebox").TObject<{
418
+ code: import("typebox").TUnion<[import("typebox").TLiteral<"authority-anchor-mismatch">, import("typebox").TLiteral<"authority-blueprint-missing">, import("typebox").TLiteral<"authority-compatibility-invalid">, import("typebox").TLiteral<"authority-definition-invalid">, import("typebox").TLiteral<"authority-definition-kind-mismatch">, import("typebox").TLiteral<"authority-duplicate-blueprint">, import("typebox").TLiteral<"authority-duplicate-instance">, import("typebox").TLiteral<"authority-duplicate-rule">, import("typebox").TLiteral<"authority-filesystem-failed">, import("typebox").TLiteral<"authority-json-invalid">, import("typebox").TLiteral<"authority-manifest-invalid">, import("typebox").TLiteral<"authority-order-invalid">, import("typebox").TLiteral<"authority-path-escape">, import("typebox").TLiteral<"authority-path-invalid">, import("typebox").TLiteral<"authority-path-kind-mismatch">, import("typebox").TLiteral<"authority-path-missing">, import("typebox").TLiteral<"authority-package-name-mismatch">, import("typebox").TLiteral<"authority-policy-pack-members-unsupported">, import("typebox").TLiteral<"authority-resolution-failed">, import("typebox").TLiteral<"authority-rule-invalid">, import("typebox").TLiteral<"authority-schema-invalid">, import("typebox").TLiteral<"authority-toml-invalid">, import("typebox").TLiteral<"authority-version-mismatch">, import("typebox").TLiteral<"authority-workspace-root-invalid">]>;
419
+ path: import("typebox").TString;
420
+ message: import("typebox").TString;
421
+ }>>;
422
+ }>]>>, object>;
423
+ check: import("@orpc/contract").ProcedureContract<import("packages/typebox-adapter/dist/index.js").TypeBoxStandardSchema<import("typebox").TObject<{
424
+ selectors: import("typebox").TOptional<import("typebox").TObject<{
425
+ owner: import("typebox").TOptional<import("typebox").TString>;
426
+ instance: import("typebox").TOptional<import("typebox").TString>;
427
+ rule: import("typebox").TOptional<import("typebox").TString>;
428
+ rules: import("typebox").TOptional<import("typebox").TArray<import("typebox").TString>>;
429
+ runner: import("typebox").TOptional<import("typebox").TString>;
430
+ }>>;
431
+ }>>, import("packages/typebox-adapter/dist/index.js").TypeBoxStandardSchema<import("typebox").TUnion<[import("typebox").TObject<{
432
+ _tag: import("typebox").TLiteral<"CatalogRejected">;
433
+ issues: import("typebox").TArray<import("typebox").TObject<{
434
+ code: import("typebox").TUnion<[import("typebox").TLiteral<"authority-anchor-mismatch">, import("typebox").TLiteral<"authority-blueprint-missing">, import("typebox").TLiteral<"authority-compatibility-invalid">, import("typebox").TLiteral<"authority-definition-invalid">, import("typebox").TLiteral<"authority-definition-kind-mismatch">, import("typebox").TLiteral<"authority-duplicate-blueprint">, import("typebox").TLiteral<"authority-duplicate-instance">, import("typebox").TLiteral<"authority-duplicate-rule">, import("typebox").TLiteral<"authority-filesystem-failed">, import("typebox").TLiteral<"authority-json-invalid">, import("typebox").TLiteral<"authority-manifest-invalid">, import("typebox").TLiteral<"authority-order-invalid">, import("typebox").TLiteral<"authority-path-escape">, import("typebox").TLiteral<"authority-path-invalid">, import("typebox").TLiteral<"authority-path-kind-mismatch">, import("typebox").TLiteral<"authority-path-missing">, import("typebox").TLiteral<"authority-package-name-mismatch">, import("typebox").TLiteral<"authority-policy-pack-members-unsupported">, import("typebox").TLiteral<"authority-resolution-failed">, import("typebox").TLiteral<"authority-rule-invalid">, import("typebox").TLiteral<"authority-schema-invalid">, import("typebox").TLiteral<"authority-toml-invalid">, import("typebox").TLiteral<"authority-version-mismatch">, import("typebox").TLiteral<"authority-workspace-root-invalid">]>;
435
+ path: import("typebox").TString;
436
+ message: import("typebox").TString;
437
+ }>>;
438
+ }>, import("typebox").TObject<{
439
+ _tag: import("typebox").TLiteral<"SelectionRejected">;
440
+ issues: import("typebox").TArray<import("typebox").TObject<{
441
+ code: import("typebox").TUnion<[import("typebox").TLiteral<"selector-empty">, import("typebox").TLiteral<"selector-unknown">, import("typebox").TLiteral<"selector-wrong-namespace">, import("typebox").TLiteral<"runner-unsupported">]>;
442
+ selector: import("typebox").TString;
443
+ message: import("typebox").TString;
444
+ }>>;
445
+ }>, import("typebox").TObject<{
446
+ _tag: import("typebox").TLiteral<"Completed">;
447
+ ok: import("typebox").TBoolean;
448
+ applications: import("typebox").TArray<import("typebox").TUnion<[import("typebox").TObject<{
449
+ ownerProject: import("typebox").TString;
450
+ instanceId: import("typebox").TString;
451
+ ruleId: import("typebox").TString;
452
+ runner: import("typebox").TLiteral<"grit">;
453
+ lane: import("typebox").TUnion<[import("typebox").TLiteral<"enforced">, import("typebox").TLiteral<"advisory">]>;
454
+ locked: import("typebox").TLiteral<false>;
455
+ status: import("typebox").TUnion<[import("typebox").TLiteral<"pass">, import("typebox").TLiteral<"fail">, import("typebox").TLiteral<"advisory-findings">, import("typebox").TLiteral<"error">]>;
456
+ message: import("typebox").TString;
457
+ remediate: import("typebox").TUnion<[import("typebox").TString, import("typebox").TNull]>;
458
+ disposition: import("typebox").TUnion<[import("typebox").TObject<{
459
+ kind: import("typebox").TLiteral<"evaluated">;
460
+ }>, import("typebox").TObject<{
461
+ kind: import("typebox").TLiteral<"failed">;
462
+ reason: import("typebox").TUnion<[import("typebox").TUnion<[import("typebox").TLiteral<"InvalidInput">, import("typebox").TLiteral<"SetupFailed">, import("typebox").TLiteral<"ExecutionFailed">, import("typebox").TLiteral<"TimedOut">, import("typebox").TLiteral<"InvalidOutput">]>, import("typebox").TLiteral<"PatternReadFailed">, import("typebox").TLiteral<"PatternInvalid">, import("typebox").TLiteral<"FindingPathInvalid">]>;
463
+ detail: import("typebox").TString;
464
+ }>]>;
465
+ findings: import("typebox").TArray<import("typebox").TObject<{
466
+ path: import("typebox").TString;
467
+ start: import("typebox").TObject<{
468
+ line: import("typebox").TReadonly<import("typebox").TInteger>;
469
+ column: import("typebox").TReadonly<import("typebox").TInteger>;
470
+ offset: import("typebox").TReadonly<import("typebox").TInteger>;
471
+ }>;
472
+ end: import("typebox").TObject<{
473
+ line: import("typebox").TReadonly<import("typebox").TInteger>;
474
+ column: import("typebox").TReadonly<import("typebox").TInteger>;
475
+ offset: import("typebox").TReadonly<import("typebox").TInteger>;
476
+ }>;
477
+ message: import("typebox").TUnion<[import("typebox").TString, import("typebox").TNull]>;
478
+ severity: import("typebox").TUnion<[import("typebox").TLiteral<"error">, import("typebox").TLiteral<"advisory">]>;
479
+ baselined: import("typebox").TLiteral<false>;
480
+ }>>;
481
+ }>, import("typebox").TObject<{
482
+ ownerProject: import("typebox").TString;
483
+ instanceId: import("typebox").TString;
484
+ ruleId: import("typebox").TString;
485
+ runner: import("typebox").TLiteral<"habitat">;
486
+ lane: import("typebox").TUnion<[import("typebox").TLiteral<"enforced">, import("typebox").TLiteral<"advisory">]>;
487
+ locked: import("typebox").TLiteral<false>;
488
+ status: import("typebox").TUnion<[import("typebox").TLiteral<"pass">, import("typebox").TLiteral<"fail">, import("typebox").TLiteral<"advisory-findings">, import("typebox").TLiteral<"error">]>;
489
+ message: import("typebox").TString;
490
+ remediate: import("typebox").TUnion<[import("typebox").TString, import("typebox").TNull]>;
491
+ disposition: import("typebox").TUnion<[import("typebox").TObject<{
492
+ kind: import("typebox").TLiteral<"evaluated">;
493
+ }>, import("typebox").TObject<{
494
+ kind: import("typebox").TLiteral<"failed">;
495
+ reason: import("typebox").TUnion<[import("typebox").TLiteral<"StructureReadFailed">, import("typebox").TLiteral<"StructureInvalid">, import("typebox").TLiteral<"InventoryFailed">, import("typebox").TLiteral<"StructureObservationFailed">]>;
496
+ detail: import("typebox").TString;
497
+ }>]>;
498
+ findings: import("typebox").TArray<import("typebox").TObject<{
499
+ path: import("typebox").TString;
500
+ code: import("typebox").TUnion<[import("typebox").TLiteral<"root-missing">, import("typebox").TLiteral<"wrong-root-kind">, import("typebox").TLiteral<"missing-required-child">, import("typebox").TLiteral<"forbidden-child">, import("typebox").TLiteral<"unexpected-child">]>;
501
+ message: import("typebox").TString;
502
+ severity: import("typebox").TUnion<[import("typebox").TLiteral<"error">, import("typebox").TLiteral<"advisory">]>;
503
+ baselined: import("typebox").TLiteral<false>;
504
+ }>>;
505
+ }>]>>;
506
+ }>]>>, object>;
507
+ };
508
+ }, Context & object>;
@@ -0,0 +1,7 @@
1
+ import "@orpc/experimental-effect/extensions/effect";
2
+ import { implement } from "@orpc/server";
3
+ import { contract } from "./contract.js";
4
+ /** Unconfigured Habitat implementer used for aggregate router implementation. */
5
+ export const impl = implement(contract).$context();
6
+ /** Root Habitat lineage with the official Effect-oRPC extension admitted once. */
7
+ export const service = impl;