@hasna/machines 0.0.22 → 0.0.24

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.
@@ -2,6 +2,9 @@ import type { MachinePlatform } from "./types.js";
2
2
  export declare const MACHINES_CONSUMER_CONTRACT_VERSION = 1;
3
3
  export declare const MACHINES_PACKAGE_NAME = "@hasna/machines";
4
4
  export declare const MACHINES_CONSUMER_ENTRYPOINT = "@hasna/machines/consumer";
5
+ export declare const MACHINES_CONSUMER_SCHEMA_URI = "https://schemas.hasna.xyz/machines/consumer/v1/machines-consumer.schema.json";
6
+ export declare const MACHINES_CONSUMER_SCHEMA_ARTIFACT = "schemas/machines-consumer.schema.json";
7
+ export declare const DEFAULT_MACHINE_RESOLVER_TTL_MS: number;
5
8
  export interface TopologyCommandResult {
6
9
  stdout: string;
7
10
  stderr: string;
@@ -12,6 +15,7 @@ export interface MachineTopologyOptions {
12
15
  includeTailscale?: boolean;
13
16
  runner?: TopologyCommandRunner;
14
17
  now?: Date;
18
+ resolverTtlMs?: number | null;
15
19
  }
16
20
  export interface MachineRouteHint {
17
21
  kind: "local" | "lan" | "tailscale" | "ssh";
@@ -55,17 +59,58 @@ export interface MachinesConsumerCapabilities {
55
59
  cli_json_fallback: true;
56
60
  workspace_path_mapping?: true;
57
61
  workspace_diagnostics?: true;
62
+ schema_artifacts?: true;
63
+ cacheability_metadata?: true;
64
+ resolver_snapshots?: true;
65
+ field_capability_descriptors?: true;
66
+ }
67
+ export type MachinesConsumerEnvelope = "topology" | "route" | "workspace" | "compatibility" | "resolver_snapshot";
68
+ export interface MachinesConsumerFieldCapabilities {
69
+ topology: {
70
+ machine_identity: true;
71
+ route_hints: true;
72
+ tailscale_status: true;
73
+ manifest_metadata: true;
74
+ };
75
+ route: {
76
+ cacheability: true;
77
+ confidence: true;
78
+ resolver_evidence: true;
79
+ };
80
+ workspace: {
81
+ cacheability: true;
82
+ path_mapping: true;
83
+ diagnostics: true;
84
+ repair_hints: true;
85
+ trust_auth: true;
86
+ };
87
+ compatibility: {
88
+ commands: true;
89
+ packages: true;
90
+ workspaces: true;
91
+ };
92
+ resolver_snapshot: {
93
+ cacheability: true;
94
+ redacted_provenance: true;
95
+ };
58
96
  }
59
- export type MachinesConsumerEnvelope = "topology" | "route" | "workspace" | "compatibility";
60
97
  export interface MachinesConsumerContract {
61
98
  schema_version: typeof MACHINES_CONSUMER_CONTRACT_VERSION;
62
99
  package_name: typeof MACHINES_PACKAGE_NAME;
63
100
  entrypoint: typeof MACHINES_CONSUMER_ENTRYPOINT;
101
+ schema_uri: typeof MACHINES_CONSUMER_SCHEMA_URI;
102
+ schema_artifact: typeof MACHINES_CONSUMER_SCHEMA_ARTIFACT;
64
103
  capabilities: MachinesConsumerCapabilities;
104
+ field_capabilities: MachinesConsumerFieldCapabilities;
105
+ cacheability: {
106
+ default_ttl_ms: typeof DEFAULT_MACHINE_RESOLVER_TTL_MS;
107
+ stale_requires_refresh: true;
108
+ };
65
109
  envelopes: MachinesConsumerEnvelope[];
66
110
  stable_exports: string[];
67
111
  }
68
112
  export declare const MACHINES_CONSUMER_CAPABILITIES: MachinesConsumerCapabilities;
113
+ export declare const MACHINES_CONSUMER_FIELD_CAPABILITIES: MachinesConsumerFieldCapabilities;
69
114
  export declare const MACHINES_CONSUMER_CONTRACT: MachinesConsumerContract;
70
115
  export declare function getMachinesConsumerCapabilities(): MachinesConsumerCapabilities;
71
116
  export interface MachineTopology {
@@ -82,6 +127,18 @@ export interface MachineTopology {
82
127
  }
83
128
  export type MachineRouteKind = "local" | "lan" | "tailscale" | "ssh" | "unknown";
84
129
  export type MachineRouteConfidence = "exact" | "high" | "medium" | "low" | "none";
130
+ export type MachineResolverAuthority = "open-machines" | "manifest" | "manifest_metadata" | "live_topology" | "argument" | "inferred" | "fallback" | "unresolved" | "mixed" | "unknown";
131
+ export interface MachineResolverCacheability {
132
+ observed_at: string;
133
+ verified_at: string | null;
134
+ expires_at: string | null;
135
+ ttl_ms: number | null;
136
+ source_authority: MachineResolverAuthority;
137
+ confidence: MachineRouteConfidence;
138
+ cacheable: boolean;
139
+ stale: boolean;
140
+ reasons: string[];
141
+ }
85
142
  export interface MachineRouteResolution {
86
143
  schema_version: typeof MACHINES_CONSUMER_CONTRACT_VERSION;
87
144
  package: MachinesContractPackage;
@@ -103,6 +160,7 @@ export interface MachineRouteResolution {
103
160
  tailscale_online: boolean | null;
104
161
  selected_hint: MachineRouteHint | null;
105
162
  };
163
+ cacheability: MachineResolverCacheability;
106
164
  warnings: string[];
107
165
  }
108
166
  export interface MachineRouteOptions extends MachineTopologyOptions {
@@ -165,6 +223,7 @@ export interface MachineWorkspaceResolution {
165
223
  manifest_declared: boolean | null;
166
224
  metadata_keys: string[];
167
225
  };
226
+ cacheability: MachineResolverCacheability;
168
227
  warnings: string[];
169
228
  }
170
229
  export interface MachineWorkspaceOptions extends MachineTopologyOptions {
@@ -181,5 +240,62 @@ export interface MachineWorkspaceOptions extends MachineTopologyOptions {
181
240
  export declare function discoverMachineTopology(options?: MachineTopologyOptions): MachineTopology;
182
241
  export declare function resolveMachineRoute(machineId: string, options?: MachineRouteOptions): MachineRouteResolution;
183
242
  export declare function resolveMachineWorkspace(options: MachineWorkspaceOptions): MachineWorkspaceResolution;
243
+ export interface MachineResolverSnapshotRoute {
244
+ ok: boolean;
245
+ source: MachineRouteKind;
246
+ route: MachineRouteKind;
247
+ target: string | null;
248
+ command_target: string | null;
249
+ confidence: MachineRouteConfidence;
250
+ local: boolean;
251
+ cacheability: MachineResolverCacheability;
252
+ }
253
+ export interface MachineResolverSnapshotWorkspace {
254
+ ok: boolean;
255
+ project: MachineWorkspaceProject;
256
+ machine: MachineWorkspaceResolution["machine"];
257
+ paths: MachineWorkspaceResolution["paths"];
258
+ diagnostics: MachineWorkspaceDiagnostic[];
259
+ repair_hints: MachineWorkspaceRepairHint[];
260
+ cacheability: MachineResolverCacheability;
261
+ }
262
+ export interface MachineResolverSnapshot {
263
+ schema_version: typeof MACHINES_CONSUMER_CONTRACT_VERSION;
264
+ package: MachinesContractPackage;
265
+ generated_at: string;
266
+ requested_machine_id: string;
267
+ machine_id: string | null;
268
+ route: MachineResolverSnapshotRoute;
269
+ workspace: MachineResolverSnapshotWorkspace | null;
270
+ cacheability: MachineResolverCacheability;
271
+ warnings: string[];
272
+ provenance: {
273
+ route: {
274
+ schema_version: number;
275
+ generated_at: string;
276
+ evidence: {
277
+ matched_by: MachineRouteResolution["evidence"]["matched_by"];
278
+ manifest_declared: boolean | null;
279
+ heartbeat_status: MachineTopologyEntry["heartbeat_status"] | null;
280
+ tailscale_online: boolean | null;
281
+ selected_hint_kind: MachineRouteKind | null;
282
+ };
283
+ };
284
+ workspace: {
285
+ schema_version: number;
286
+ generated_at: string;
287
+ metadata_keys: string[];
288
+ matched_by: MachineRouteResolution["evidence"]["matched_by"];
289
+ manifest_declared: boolean | null;
290
+ } | null;
291
+ };
292
+ }
293
+ export interface CreateMachineResolverSnapshotOptions {
294
+ route: MachineRouteResolution;
295
+ workspace?: MachineWorkspaceResolution | null;
296
+ now?: Date;
297
+ resolverTtlMs?: number | null;
298
+ }
299
+ export declare function createMachineResolverSnapshot(options: CreateMachineResolverSnapshotOptions): MachineResolverSnapshot;
184
300
  export declare function getLocalMachineTopology(options?: MachineTopologyOptions): MachineTopologyEntry;
185
301
  //# sourceMappingURL=topology.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"topology.d.ts","sourceRoot":"","sources":["../src/topology.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAmB,eAAe,EAAE,MAAM,YAAY,CAAC;AAGnE,eAAO,MAAM,kCAAkC,IAAI,CAAC;AACpD,eAAO,MAAM,qBAAqB,oBAAoB,CAAC;AACvD,eAAO,MAAM,4BAA4B,6BAA6B,CAAC;AAEvE,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,qBAAqB,CAAC;AAE/E,MAAM,WAAW,sBAAsB;IACrC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,MAAM,CAAC,EAAE,qBAAqB,CAAC;IAC/B,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,OAAO,GAAG,KAAK,GAAG,WAAW,GAAG,KAAK,CAAC;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI,CAAC;IAC1C,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,gBAAgB,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;IACnD,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,SAAS,EAAE;QACT,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,GAAG,EAAE,MAAM,EAAE,CAAC;QACd,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;QACvB,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;QACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;KAC1B,CAAC;IACF,GAAG,EAAE;QACH,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,KAAK,EAAE,gBAAgB,CAAC;QACxB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;KAC/B,CAAC;IACF,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,OAAO,qBAAqB,CAAC;IACnC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,IAAI,CAAC;IACf,aAAa,EAAE,IAAI,CAAC;IACpB,gBAAgB,EAAE,IAAI,CAAC;IACvB,iBAAiB,EAAE,IAAI,CAAC;IACxB,sBAAsB,CAAC,EAAE,IAAI,CAAC;IAC9B,qBAAqB,CAAC,EAAE,IAAI,CAAC;CAC9B;AAED,MAAM,MAAM,wBAAwB,GAAG,UAAU,GAAG,OAAO,GAAG,WAAW,GAAG,eAAe,CAAC;AAE5F,MAAM,WAAW,wBAAwB;IACvC,cAAc,EAAE,OAAO,kCAAkC,CAAC;IAC1D,YAAY,EAAE,OAAO,qBAAqB,CAAC;IAC3C,UAAU,EAAE,OAAO,4BAA4B,CAAC;IAChD,YAAY,EAAE,4BAA4B,CAAC;IAC3C,SAAS,EAAE,wBAAwB,EAAE,CAAC;IACtC,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,eAAO,MAAM,8BAA8B,EAAE,4BAO5C,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,wBAsBxC,CAAC;AAEF,wBAAgB,+BAA+B,IAAI,4BAA4B,CAE9E;AAED,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,OAAO,kCAAkC,CAAC;IAC1D,OAAO,EAAE,uBAAuB,CAAC;IACjC,YAAY,EAAE,4BAA4B,CAAC;IAC3C,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,eAAe,GAAG,MAAM,CAAC;IAC3C,mBAAmB,EAAE,OAAO,CAAC;IAC7B,QAAQ,EAAE,oBAAoB,EAAE,CAAC;IACjC,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,KAAK,GAAG,WAAW,GAAG,KAAK,GAAG,SAAS,CAAC;AACjF,MAAM,MAAM,sBAAsB,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;AAElF,MAAM,WAAW,sBAAsB;IACrC,cAAc,EAAE,OAAO,kCAAkC,CAAC;IAC1D,OAAO,EAAE,uBAAuB,CAAC;IACjC,EAAE,EAAE,OAAO,CAAC;IACZ,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,gBAAgB,CAAC;IACxB,MAAM,EAAE,gBAAgB,CAAC;IACzB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,UAAU,EAAE,sBAAsB,CAAC;IACnC,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE;QACR,QAAQ,EAAE,OAAO,CAAC;QAClB,UAAU,EAAE,YAAY,GAAG,UAAU,GAAG,WAAW,GAAG,cAAc,GAAG,aAAa,GAAG,UAAU,GAAG,IAAI,CAAC;QACzG,iBAAiB,EAAE,OAAO,GAAG,IAAI,CAAC;QAClC,gBAAgB,EAAE,oBAAoB,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC;QAClE,gBAAgB,EAAE,OAAO,GAAG,IAAI,CAAC;QACjC,aAAa,EAAE,gBAAgB,GAAG,IAAI,CAAC;KACxC,CAAC;IACF,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,mBAAoB,SAAQ,sBAAsB;IACjE,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC5B;AAED,MAAM,MAAM,0BAA0B,GAClC,UAAU,GACV,UAAU,GACV,mBAAmB,GACnB,UAAU,GACV,YAAY,CAAC;AAEjB,MAAM,MAAM,2BAA2B,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;AAC9E,MAAM,MAAM,0BAA0B,GAAG,eAAe,GAAG,iBAAiB,GAAG,SAAS,CAAC;AAEzF,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,0BAA0B,CAAC;CACpC;AAED,MAAM,MAAM,gCAAgC,GACxC,IAAI,GACJ,SAAS,GACT,UAAU,GACV,OAAO,GACP,WAAW,GACX,cAAc,GACd,kBAAkB,CAAC;AAEvB,MAAM,WAAW,0BAA0B;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,gCAAgC,CAAC;IACzC,QAAQ,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,0BAA0B,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,CAAC;IACnE,WAAW,EAAE,OAAO,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,0BAA0B;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,0BAA0B;IACzC,cAAc,EAAE,OAAO,kCAAkC,CAAC;IAC1D,OAAO,EAAE,uBAAuB,CAAC;IACjC,EAAE,EAAE,OAAO,CAAC;IACZ,oBAAoB,EAAE,MAAM,CAAC;IAC7B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,uBAAuB,CAAC;IACjC,OAAO,EAAE;QACP,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,OAAO,CAAC;QACjB,YAAY,EAAE,2BAA2B,CAAC;QAC1C,WAAW,EAAE,0BAA0B,CAAC;KACzC,CAAC;IACF,KAAK,EAAE;QACL,cAAc,EAAE,oBAAoB,CAAC;QACrC,YAAY,EAAE,oBAAoB,CAAC;QACnC,eAAe,EAAE,oBAAoB,CAAC;KACvC,CAAC;IACF,WAAW,EAAE,0BAA0B,EAAE,CAAC;IAC1C,YAAY,EAAE,0BAA0B,EAAE,CAAC;IAC3C,QAAQ,EAAE;QACR,QAAQ,EAAE,OAAO,CAAC;QAClB,UAAU,EAAE,sBAAsB,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC;QAC7D,iBAAiB,EAAE,OAAO,GAAG,IAAI,CAAC;QAClC,aAAa,EAAE,MAAM,EAAE,CAAC;KACzB,CAAC;IACF,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,uBAAwB,SAAQ,sBAAsB;IACrE,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC5B;AAgMD,wBAAgB,uBAAuB,CAAC,OAAO,GAAE,sBAA2B,GAAG,eAAe,CAyC7F;AAgED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,mBAAwB,GAAG,sBAAsB,CA2DhH;AAyTD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,uBAAuB,GAAG,0BAA0B,CA6HpG;AAED,wBAAgB,uBAAuB,CAAC,OAAO,GAAE,sBAA2B,GAAG,oBAAoB,CAkBlG"}
1
+ {"version":3,"file":"topology.d.ts","sourceRoot":"","sources":["../src/topology.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hasna/machines",
3
- "version": "0.0.22",
3
+ "version": "0.0.24",
4
4
  "description": "Machine fleet management CLI + MCP for developers",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -27,12 +27,15 @@
27
27
  },
28
28
  "files": [
29
29
  "dist",
30
+ "schemas",
31
+ "scripts",
30
32
  "README.md"
31
33
  ],
32
34
  "scripts": {
33
35
  "build": "rm -rf dist && bun build src/cli/index.ts --outdir dist/cli --target bun --external pg && bun build src/mcp/index.ts --outdir dist/mcp --target bun --external @modelcontextprotocol/sdk --external pg && bun build src/agent/index.ts --outdir dist/agent --target bun && bun build src/index.ts src/storage.ts src/consumer.ts --outdir dist --target bun --external pg && tsc --emitDeclarationOnly --outDir dist",
34
36
  "typecheck": "tsc --noEmit",
35
37
  "test": "bun test",
38
+ "smoke:consumer-conformance": "bun scripts/consumer-conformance.mjs",
36
39
  "dev": "bun run src/cli/index.ts",
37
40
  "dev:mcp": "bun run src/mcp/index.ts",
38
41
  "dev:agent": "bun run src/agent/index.ts",
@@ -0,0 +1,47 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.hasna.xyz/machines/consumer/v1/machines-consumer.schema.json",
4
+ "title": "@hasna/machines consumer contract schema bundle",
5
+ "type": "object",
6
+ "$defs": {
7
+ "cacheability": {
8
+ "type": "object",
9
+ "required": ["observed_at", "verified_at", "expires_at", "ttl_ms", "source_authority", "confidence", "cacheable", "stale", "reasons"],
10
+ "properties": {
11
+ "observed_at": { "type": "string", "format": "date-time" },
12
+ "verified_at": { "type": ["string", "null"], "format": "date-time" },
13
+ "expires_at": { "type": ["string", "null"], "format": "date-time" },
14
+ "ttl_ms": { "type": ["number", "null"] },
15
+ "source_authority": { "enum": ["open-machines", "manifest", "manifest_metadata", "live_topology", "argument", "inferred", "fallback", "unresolved", "mixed", "unknown"] },
16
+ "confidence": { "enum": ["exact", "high", "medium", "low", "none"] },
17
+ "cacheable": { "type": "boolean" },
18
+ "stale": { "type": "boolean" },
19
+ "reasons": { "type": "array", "items": { "type": "string" } }
20
+ }
21
+ },
22
+ "contract": {
23
+ "type": "object",
24
+ "required": ["schema_version", "package_name", "entrypoint", "schema_uri", "schema_artifact", "capabilities", "field_capabilities", "cacheability", "envelopes", "stable_exports"]
25
+ },
26
+ "topology": {
27
+ "type": "object",
28
+ "required": ["schema_version", "package", "capabilities", "generated_at", "local_machine_id", "machines", "warnings"]
29
+ },
30
+ "route": {
31
+ "type": "object",
32
+ "required": ["schema_version", "package", "ok", "machine_id", "requested_machine_id", "generated_at", "route", "source", "target", "command_target", "confidence", "local", "evidence", "cacheability", "warnings"]
33
+ },
34
+ "workspace": {
35
+ "type": "object",
36
+ "required": ["schema_version", "package", "ok", "requested_machine_id", "machine_id", "generated_at", "project", "machine", "paths", "diagnostics", "repair_hints", "evidence", "cacheability", "warnings"]
37
+ },
38
+ "compatibility": {
39
+ "type": "object",
40
+ "required": ["schema_version", "package", "capabilities", "ok", "machine_id", "source", "generated_at", "checks", "summary"]
41
+ },
42
+ "resolver_snapshot": {
43
+ "type": "object",
44
+ "required": ["schema_version", "package", "generated_at", "requested_machine_id", "machine_id", "route", "workspace", "cacheability", "warnings", "provenance"]
45
+ }
46
+ }
47
+ }