@treeseed/sdk 0.10.28 → 0.11.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 (148) hide show
  1. package/README.md +207 -6
  2. package/dist/capacity-provider.d.ts +3 -1
  3. package/dist/capacity-provider.js +25 -5
  4. package/dist/control-plane.d.ts +1 -0
  5. package/dist/control-plane.js +38 -13
  6. package/dist/db/market-schema.d.ts +8860 -6172
  7. package/dist/db/market-schema.js +108 -0
  8. package/dist/db/node-sqlite.js +7 -2
  9. package/dist/hosting/apps.d.ts +12 -0
  10. package/dist/hosting/apps.js +107 -0
  11. package/dist/hosting/builtins.d.ts +25 -0
  12. package/dist/hosting/builtins.js +791 -0
  13. package/dist/hosting/contracts.d.ts +207 -0
  14. package/dist/hosting/contracts.js +0 -0
  15. package/dist/hosting/graph.d.ts +192 -0
  16. package/dist/hosting/graph.js +1106 -0
  17. package/dist/hosting/index.d.ts +4 -0
  18. package/dist/hosting/index.js +4 -0
  19. package/dist/index.d.ts +10 -3
  20. package/dist/index.js +63 -6
  21. package/dist/managed-dependencies.js +1 -2
  22. package/dist/market-client.d.ts +63 -3
  23. package/dist/market-client.js +83 -11
  24. package/dist/operations/services/bootstrap-runner.d.ts +3 -1
  25. package/dist/operations/services/bootstrap-runner.js +22 -2
  26. package/dist/operations/services/config-runtime.d.ts +10 -5
  27. package/dist/operations/services/config-runtime.js +209 -66
  28. package/dist/operations/services/deploy.d.ts +70 -7
  29. package/dist/operations/services/deploy.js +579 -64
  30. package/dist/operations/services/deployment-readiness.d.ts +30 -0
  31. package/dist/operations/services/deployment-readiness.js +175 -0
  32. package/dist/operations/services/git-workflow.d.ts +2 -1
  33. package/dist/operations/services/git-workflow.js +9 -3
  34. package/dist/operations/services/github-actions-verification.d.ts +1 -0
  35. package/dist/operations/services/github-actions-verification.js +1 -0
  36. package/dist/operations/services/github-api.js +1 -1
  37. package/dist/operations/services/github-automation.d.ts +1 -1
  38. package/dist/operations/services/github-automation.js +4 -3
  39. package/dist/operations/services/github-credentials.d.ts +13 -0
  40. package/dist/operations/services/github-credentials.js +58 -0
  41. package/dist/operations/services/hosted-service-checks.d.ts +63 -0
  42. package/dist/operations/services/hosted-service-checks.js +327 -0
  43. package/dist/operations/services/hub-provider-launch.js +3 -3
  44. package/dist/operations/services/live-hosted-service-checks.d.ts +25 -0
  45. package/dist/operations/services/live-hosted-service-checks.js +350 -0
  46. package/dist/operations/services/managed-host-security.js +1 -1
  47. package/dist/operations/services/operations-runner-smoke.d.ts +30 -0
  48. package/dist/operations/services/operations-runner-smoke.js +180 -0
  49. package/dist/operations/services/package-adapters.d.ts +95 -0
  50. package/dist/operations/services/package-adapters.js +288 -0
  51. package/dist/operations/services/package-reference-policy.d.ts +1 -0
  52. package/dist/operations/services/package-reference-policy.js +15 -2
  53. package/dist/operations/services/project-platform.d.ts +80 -22
  54. package/dist/operations/services/project-platform.js +49 -8
  55. package/dist/operations/services/project-web-monitor.js +26 -4
  56. package/dist/operations/services/railway-api.d.ts +88 -5
  57. package/dist/operations/services/railway-api.js +626 -35
  58. package/dist/operations/services/railway-deploy.d.ts +46 -40
  59. package/dist/operations/services/railway-deploy.js +261 -293
  60. package/dist/operations/services/release-candidate.d.ts +19 -0
  61. package/dist/operations/services/release-candidate.js +375 -38
  62. package/dist/operations/services/repository-save-orchestrator.d.ts +3 -1
  63. package/dist/operations/services/repository-save-orchestrator.js +279 -66
  64. package/dist/operations/services/runtime-tools.d.ts +1 -0
  65. package/dist/operations/services/runtime-tools.js +10 -9
  66. package/dist/operations/services/verification-cache.d.ts +25 -0
  67. package/dist/operations/services/verification-cache.js +71 -0
  68. package/dist/operations/services/workspace-dependency-mode.js +9 -1
  69. package/dist/operations/services/workspace-save.js +1 -1
  70. package/dist/operations/services/workspace-tools.js +2 -1
  71. package/dist/platform/contracts.d.ts +32 -1
  72. package/dist/platform/deploy-config.js +73 -8
  73. package/dist/platform/env.yaml +163 -35
  74. package/dist/platform/environment.d.ts +1 -0
  75. package/dist/platform/environment.js +74 -5
  76. package/dist/platform/plugin.d.ts +9 -0
  77. package/dist/platform-operation-store.js +2 -2
  78. package/dist/platform-operations.js +1 -1
  79. package/dist/reconcile/bootstrap-systems.js +2 -2
  80. package/dist/reconcile/builtin-adapters.js +372 -189
  81. package/dist/reconcile/contracts.d.ts +9 -5
  82. package/dist/reconcile/desired-state.d.ts +1 -0
  83. package/dist/reconcile/desired-state.js +5 -5
  84. package/dist/reconcile/engine.d.ts +5 -2
  85. package/dist/reconcile/engine.js +53 -32
  86. package/dist/reconcile/index.d.ts +2 -0
  87. package/dist/reconcile/index.js +2 -0
  88. package/dist/reconcile/live-acceptance.d.ts +79 -0
  89. package/dist/reconcile/live-acceptance.js +1615 -0
  90. package/dist/reconcile/platform.d.ts +104 -0
  91. package/dist/reconcile/platform.js +100 -0
  92. package/dist/reconcile/state.js +4 -4
  93. package/dist/reconcile/units.js +2 -2
  94. package/dist/scripts/deployment-readiness.js +20 -0
  95. package/dist/scripts/generate-treedx-openapi-types.js +186 -0
  96. package/dist/scripts/operations-runner-smoke.js +16 -0
  97. package/dist/scripts/release-verify.js +4 -1
  98. package/dist/scripts/tenant-workflow-action.js +10 -1
  99. package/dist/sdk-types.d.ts +169 -4
  100. package/dist/sdk-types.js +20 -2
  101. package/dist/sdk.d.ts +35 -24
  102. package/dist/sdk.js +186 -17
  103. package/dist/template-launch-requirements.js +9 -0
  104. package/dist/treedx/adapters.d.ts +6 -0
  105. package/dist/treedx/adapters.js +36 -0
  106. package/dist/treedx/client.d.ts +222 -0
  107. package/dist/treedx/client.js +871 -0
  108. package/dist/treedx/errors.d.ts +13 -0
  109. package/dist/treedx/errors.js +17 -0
  110. package/dist/treedx/federated-client.d.ts +27 -0
  111. package/dist/treedx/federated-client.js +158 -0
  112. package/dist/treedx/generated/openapi-types.d.ts +3558 -0
  113. package/dist/treedx/generated/openapi-types.js +0 -0
  114. package/dist/treedx/graph-adapter.d.ts +33 -0
  115. package/dist/treedx/graph-adapter.js +156 -0
  116. package/dist/treedx/index.d.ts +14 -0
  117. package/dist/treedx/index.js +48 -0
  118. package/dist/treedx/market-integration.d.ts +27 -0
  119. package/dist/treedx/market-integration.js +131 -0
  120. package/dist/treedx/ports.d.ts +166 -0
  121. package/dist/treedx/ports.js +231 -0
  122. package/dist/treedx/query-adapter.d.ts +19 -0
  123. package/dist/treedx/query-adapter.js +62 -0
  124. package/dist/treedx/registry-client.d.ts +11 -0
  125. package/dist/treedx/registry-client.js +19 -0
  126. package/dist/treedx/repository-adapter.d.ts +45 -0
  127. package/dist/treedx/repository-adapter.js +308 -0
  128. package/dist/treedx/sdk-integration.d.ts +27 -0
  129. package/dist/treedx/sdk-integration.js +63 -0
  130. package/dist/treedx/types.d.ts +1084 -0
  131. package/dist/treedx/types.js +8 -0
  132. package/dist/treedx/workspace-adapter.d.ts +27 -0
  133. package/dist/treedx/workspace-adapter.js +65 -0
  134. package/dist/treedx-backends.d.ts +218 -0
  135. package/dist/treedx-backends.js +632 -0
  136. package/dist/treedx-client.d.ts +86 -0
  137. package/dist/treedx-client.js +175 -0
  138. package/dist/treeseed/template-catalog/catalog.fixture.json +23 -23
  139. package/dist/workflow/operations.d.ts +119 -13
  140. package/dist/workflow/operations.js +309 -53
  141. package/dist/workflow-state.d.ts +13 -0
  142. package/dist/workflow-state.js +43 -26
  143. package/dist/workflow-support.d.ts +11 -3
  144. package/dist/workflow-support.js +67 -3
  145. package/dist/workflow.d.ts +5 -0
  146. package/drizzle/market/0004_treedx_market_integration.sql +99 -0
  147. package/package.json +34 -3
  148. package/templates/github/deploy-web.workflow.yml +39 -6
package/dist/sdk.js CHANGED
@@ -3,6 +3,32 @@ import { normalizeAgentCliOptions } from "./cli-tools.js";
3
3
  import { ContentStore } from "./content-store.js";
4
4
  import { CloudflareD1AgentDatabase, MemoryAgentDatabase } from "./d1-store.js";
5
5
  import { ContentGraphRuntime } from "./graph.js";
6
+ import {
7
+ createTreeDxClientFromAgentOptions,
8
+ LocalContentBackend,
9
+ LocalGraphBackend,
10
+ MissingTreeDxContentBackend,
11
+ resolveTreeDxOptions,
12
+ TreeDxContentBackend,
13
+ TreeDxGraphBackend,
14
+ TreeDxPortfolioResolver
15
+ } from "./treedx-backends.js";
16
+ import {
17
+ LocalGraphPort,
18
+ LocalRepositoryPort,
19
+ LocalRepositoryQueryPort,
20
+ TreeDxArtifactPort,
21
+ TreeDxExecPort,
22
+ TreeDxFederatedClient,
23
+ TreeDxFederatedPort,
24
+ TreeDxGraphAdapter,
25
+ TreeDxGraphPort,
26
+ TreeDxRegistryClient,
27
+ TreeDxRegistryPort,
28
+ TreeDxRepositoryPort,
29
+ TreeDxRepositoryQueryPort,
30
+ TreeDxClient as PublicTreeDxClient
31
+ } from "./treedx/index.js";
6
32
  import { loadTreeseedPlugins } from "./platform/plugins.js";
7
33
  import { buildScopedModelRegistry, resolveModelDefinition } from "./model-registry.js";
8
34
  import { findDispatchCapability } from "./dispatch.js";
@@ -35,14 +61,22 @@ class AgentSdk {
35
61
  database;
36
62
  content;
37
63
  models;
64
+ ports;
65
+ treeDx;
66
+ localContentStore;
67
+ localGraphRuntime;
38
68
  graph;
39
69
  dispatchConfig;
40
70
  constructor(options = {}) {
41
- const repoRoot = resolveSdkRepoRoot(options.repoRoot);
71
+ const rawTreeDxOptions = options.treeDx;
72
+ if (rawTreeDxOptions && !options.repoRoot && !options.models && !options.modelRegistry) {
73
+ throw new Error("AgentSdk TreeDX mode requires explicit models or modelRegistry.");
74
+ }
75
+ const repoRoot = options.repoRoot ? resolveSdkRepoRoot(options.repoRoot) : rawTreeDxOptions ? process.cwd() : resolveSdkRepoRoot();
42
76
  this.repoRoot = repoRoot;
43
77
  this.models = options.modelRegistry ?? buildScopedModelRegistry(repoRoot, options.models);
44
78
  this.database = options.database ?? new MemoryAgentDatabase();
45
- this.content = new ContentStore(repoRoot, this.database, this.models);
79
+ this.localContentStore = new ContentStore(repoRoot, this.database, this.models);
46
80
  let plugins = options.plugins;
47
81
  if (!plugins) {
48
82
  try {
@@ -51,10 +85,123 @@ class AgentSdk {
51
85
  plugins = [];
52
86
  }
53
87
  }
54
- this.graph = new ContentGraphRuntime(repoRoot, this.models, {
88
+ this.localGraphRuntime = new ContentGraphRuntime(repoRoot, this.models, {
55
89
  rankingProvider: options.graphRankingProvider,
56
90
  plugins
57
91
  });
92
+ const treeDxOptions = resolveTreeDxOptions(options.treeDx);
93
+ if (options.contentRepository?.adapter === "local") {
94
+ this.content = new LocalContentBackend(this.localContentStore);
95
+ this.graph = new LocalGraphBackend(this.localGraphRuntime);
96
+ this.ports = {
97
+ repository: new LocalRepositoryPort(this.localContentStore),
98
+ query: new LocalRepositoryQueryPort(this.localContentStore),
99
+ graph: new LocalGraphPort(this.localGraphRuntime)
100
+ };
101
+ } else if (treeDxOptions) {
102
+ const publicClient = rawTreeDxOptions?.client instanceof PublicTreeDxClient ? rawTreeDxOptions.client : new PublicTreeDxClient({
103
+ baseUrl: treeDxOptions.baseUrl,
104
+ token: treeDxOptions.token,
105
+ repoId: treeDxOptions.repoId,
106
+ fetch: treeDxOptions.fetchImpl
107
+ });
108
+ const publicFetch = (input, init) => {
109
+ const headers = init?.headers instanceof Headers ? Object.fromEntries(init.headers.entries()) : init?.headers;
110
+ return (publicClient.fetchImpl ?? fetch)(input, {
111
+ ...init,
112
+ headers
113
+ });
114
+ };
115
+ const client = createTreeDxClientFromAgentOptions({
116
+ ...treeDxOptions,
117
+ fetchImpl: treeDxOptions.fetchImpl ?? publicFetch
118
+ });
119
+ const resolver = new TreeDxPortfolioResolver({
120
+ client,
121
+ repoId: treeDxOptions.repoId,
122
+ ref: treeDxOptions.ref,
123
+ repositoryHints: treeDxOptions.repositoryHints
124
+ });
125
+ const publicGraph = new TreeDxGraphAdapter({
126
+ client: publicClient,
127
+ repoId: treeDxOptions.repoId,
128
+ defaultRef: treeDxOptions.ref
129
+ });
130
+ const publicRegistry = rawTreeDxOptions?.registryRouting ? new TreeDxRegistryClient(publicClient) : void 0;
131
+ const publicFederated = publicRegistry ? new TreeDxFederatedClient({
132
+ registry: publicRegistry,
133
+ token: treeDxOptions.token,
134
+ fetch: treeDxOptions.fetchImpl
135
+ }) : void 0;
136
+ const publicExec = new TreeDxExecPort(publicClient);
137
+ const publicArtifact = new TreeDxArtifactPort(publicClient);
138
+ this.content = new TreeDxContentBackend({
139
+ client,
140
+ repoRoot,
141
+ models: this.models,
142
+ resolver,
143
+ directRepoId: treeDxOptions.repoId,
144
+ ref: treeDxOptions.ref,
145
+ workspaceId: treeDxOptions.workspaceId,
146
+ contentPathMap: treeDxOptions.contentPathMap,
147
+ localLeaseStore: this.localContentStore
148
+ });
149
+ this.graph = new TreeDxGraphBackend({
150
+ client,
151
+ resolver,
152
+ localRuntime: this.localGraphRuntime,
153
+ ref: treeDxOptions.ref
154
+ });
155
+ this.treeDx = {
156
+ client: publicClient,
157
+ graph: publicGraph,
158
+ registry: publicRegistry,
159
+ federated: publicFederated,
160
+ exec: publicExec,
161
+ artifact: publicArtifact
162
+ };
163
+ this.ports = {
164
+ repository: new TreeDxRepositoryPort(publicClient),
165
+ query: new TreeDxRepositoryQueryPort(publicClient),
166
+ graph: new TreeDxGraphPort(publicGraph),
167
+ registry: publicRegistry ? new TreeDxRegistryPort(publicRegistry) : void 0,
168
+ federated: publicFederated ? new TreeDxFederatedPort(publicFederated) : void 0,
169
+ exec: publicExec,
170
+ artifact: publicArtifact
171
+ };
172
+ } else if (rawTreeDxOptions?.client) {
173
+ const publicClient = rawTreeDxOptions.client instanceof PublicTreeDxClient ? rawTreeDxOptions.client : new PublicTreeDxClient(rawTreeDxOptions.client);
174
+ const publicGraph = new TreeDxGraphAdapter({
175
+ client: publicClient,
176
+ repoId: rawTreeDxOptions.repoId,
177
+ defaultRef: rawTreeDxOptions.ref
178
+ });
179
+ const publicExec = new TreeDxExecPort(publicClient);
180
+ const publicArtifact = new TreeDxArtifactPort(publicClient);
181
+ this.content = new LocalContentBackend(this.localContentStore);
182
+ this.graph = new LocalGraphBackend(this.localGraphRuntime);
183
+ this.treeDx = {
184
+ client: publicClient,
185
+ graph: publicGraph,
186
+ exec: publicExec,
187
+ artifact: publicArtifact
188
+ };
189
+ this.ports = {
190
+ repository: new TreeDxRepositoryPort(publicClient),
191
+ query: new TreeDxRepositoryQueryPort(publicClient),
192
+ graph: new TreeDxGraphPort(publicGraph),
193
+ exec: publicExec,
194
+ artifact: publicArtifact
195
+ };
196
+ } else {
197
+ this.content = new MissingTreeDxContentBackend();
198
+ this.graph = new LocalGraphBackend(this.localGraphRuntime);
199
+ this.ports = {
200
+ repository: new LocalRepositoryPort(this.localContentStore),
201
+ query: new LocalRepositoryQueryPort(this.localContentStore),
202
+ graph: new LocalGraphPort(this.localGraphRuntime)
203
+ };
204
+ }
58
205
  this.dispatchConfig = options.dispatch;
59
206
  }
60
207
  static createLocal(options) {
@@ -64,7 +211,8 @@ class AgentSdk {
64
211
  repoRoot,
65
212
  database: new CloudflareD1AgentDatabase(d1),
66
213
  models: options.models,
67
- modelRegistry: options.modelRegistry
214
+ modelRegistry: options.modelRegistry,
215
+ contentRepository: { adapter: "local" }
68
216
  });
69
217
  }
70
218
  async resolveDispatchToken(source) {
@@ -89,6 +237,27 @@ class AgentSdk {
89
237
  transport: "sdk"
90
238
  });
91
239
  }
240
+ if (this.content instanceof MissingTreeDxContentBackend) {
241
+ const input = request.input ?? {};
242
+ if (request.operation === "read" || request.operation === "get") {
243
+ const definition = resolveModelDefinition(input.model, this.models);
244
+ const payload = await this.localContentStore.get({
245
+ ...input,
246
+ model: definition.name
247
+ });
248
+ return this.envelope(definition.name, request.operation === "read" ? "read" : "get", payload);
249
+ }
250
+ if (request.operation === "search") {
251
+ const definition = resolveModelDefinition(input.model, this.models);
252
+ const payload = await this.localContentStore.search({
253
+ ...input,
254
+ model: definition.name
255
+ });
256
+ return this.envelope(definition.name, "search", payload, {
257
+ count: payload.length
258
+ });
259
+ }
260
+ }
92
261
  return executeSdkOperation(this, request.operation, request.input ?? {});
93
262
  }
94
263
  async dispatch(request) {
@@ -164,7 +333,7 @@ class AgentSdk {
164
333
  }
165
334
  async pick(request) {
166
335
  const definition = resolveModelDefinition(request.model, this.models);
167
- const payload = definition.storage === "content" ? await this.content.pick({ ...request, model: definition.name }) : await this.database.pick({ ...request, model: definition.name });
336
+ const payload = definition.storage === "content" ? await this.localContentStore.pick({ ...request, model: definition.name }) : await this.database.pick({ ...request, model: definition.name });
168
337
  return this.envelope(definition.name, "pick", payload, {
169
338
  claimed: Boolean(payload.item)
170
339
  });
@@ -423,43 +592,43 @@ class AgentSdk {
423
592
  }
424
593
  /** Advanced lexical graph primitive for file nodes. Prefer queryGraph() or buildContextPack() for AI-context retrieval. */
425
594
  searchFiles(query, options) {
426
- return this.graph.searchFiles(query, options);
595
+ return this.localGraphRuntime.searchFiles(query, options);
427
596
  }
428
597
  /** Advanced lexical graph primitive for section nodes. Prefer queryGraph() or buildContextPack() for AI-context retrieval. */
429
598
  searchSections(query, options) {
430
- return this.graph.searchSections(query, options);
599
+ return this.localGraphRuntime.searchSections(query, options);
431
600
  }
432
601
  /** Advanced lexical graph primitive for entity nodes. Prefer queryGraph() or buildContextPack() for AI-context retrieval. */
433
602
  searchEntities(query, options) {
434
- return this.graph.searchEntities(query, options);
603
+ return this.localGraphRuntime.searchEntities(query, options);
435
604
  }
436
605
  /** Advanced graph primitive that returns one raw graph node by id. */
437
606
  getGraphNode(id) {
438
- return this.graph.getNode(id);
607
+ return this.localGraphRuntime.getNode(id);
439
608
  }
440
609
  /** Advanced graph primitive for direct neighborhood inspection. Prefer queryGraph() for ranked retrieval. */
441
610
  getNeighbors(id, options) {
442
- return this.graph.getNeighbors(id, options);
611
+ return this.localGraphRuntime.getNeighbors(id, options);
443
612
  }
444
613
  /** Advanced traversal primitive for direct reference walking. Prefer queryGraph() when you need ranking and ctx-aware behavior. */
445
614
  followReferences(id, options) {
446
- return this.graph.followReferences(id, options);
615
+ return this.localGraphRuntime.followReferences(id, options);
447
616
  }
448
617
  /** Advanced graph primitive for incoming-link inspection. */
449
618
  getBacklinks(id, options) {
450
- return this.graph.getBacklinks(id, options);
619
+ return this.localGraphRuntime.getBacklinks(id, options);
451
620
  }
452
621
  /** Advanced graph primitive for local relatedness. Prefer queryGraph() for the primary ranked graph workflow. */
453
622
  getRelated(id, options) {
454
- return this.graph.getRelated(id, options);
623
+ return this.localGraphRuntime.getRelated(id, options);
455
624
  }
456
625
  /** Advanced traversal primitive for raw subgraph extraction. Prefer buildContextPack() when you need prompt-ready output. */
457
626
  getSubgraph(seedIds, options) {
458
- return this.graph.getSubgraph(seedIds, options);
627
+ return this.localGraphRuntime.getSubgraph(seedIds, options);
459
628
  }
460
629
  /** Primary graph workflow helper. Resolves roots before ranking and traversal. */
461
630
  resolveSeeds(request) {
462
- return this.graph.resolveSeeds(request);
631
+ return this.localGraphRuntime.resolveSeeds(request);
463
632
  }
464
633
  /** Primary graph workflow entrypoint for ranked graph retrieval. */
465
634
  queryGraph(request) {
@@ -475,11 +644,11 @@ class AgentSdk {
475
644
  }
476
645
  /** Primary graph workflow helper for resolving ids, paths, and anchors into graph nodes. */
477
646
  resolveReference(reference, options) {
478
- return this.graph.resolveReference(reference, options);
647
+ return this.localGraphRuntime.resolveReference(reference, options);
479
648
  }
480
649
  /** Primary graph workflow helper for explaining why two nodes are connected. */
481
650
  explainReferenceChain(fromId, toId) {
482
- return this.graph.explainReferenceChain(fromId, toId);
651
+ return this.localGraphRuntime.explainReferenceChain(fromId, toId);
483
652
  }
484
653
  }
485
654
  class ScopedAgentSdk {
@@ -268,9 +268,11 @@ function hostMetadataType(host) {
268
268
  if (metadataType === "web_host" || metadataType === "cloudflare" || metadataType === "web") return "web";
269
269
  if (metadataType === "email_host" || metadataType === "smtp" || metadataType === "email") return "email";
270
270
  if (metadataType === "ai_host" || metadataType === "ai") return "ai";
271
+ if (metadataType === "knowledge_library" || metadataType === "knowledge-library" || metadataType === "treedx") return "knowledge-library";
271
272
  if (host.provider === "smtp") return "email";
272
273
  if (host.provider === "cloudflare") return "web";
273
274
  if (host.provider === "github") return "repository";
275
+ if (host.provider === "treedx") return "knowledge-library";
274
276
  return metadataType ?? "";
275
277
  }
276
278
  function allRequirements(launchRequirements) {
@@ -305,6 +307,13 @@ function portableHostConfigValues(requirement, provider, alias) {
305
307
  values.smtp = { profile: alias };
306
308
  return values;
307
309
  }
310
+ if (requirement.type === "knowledge-library" && provider === "treedx") {
311
+ values.treeDx = {
312
+ instance: alias,
313
+ contentAccessMode: "treedx"
314
+ };
315
+ return values;
316
+ }
308
317
  return values;
309
318
  }
310
319
  function localHostMetadata(requirement, managed) {
@@ -0,0 +1,6 @@
1
+ export { TreeDxRepositoryAdapter, resolveContentDir, type TreeDxContentMutationResult, type TreeDxRepositoryAdapterOptions, } from './repository-adapter.ts';
2
+ export { TreeDxQueryAdapter, type TreeDxQueryAdapterOptions } from './query-adapter.ts';
3
+ export { TreeDxGraphAdapter, type TreeDxGraphAdapterOptions } from './graph-adapter.ts';
4
+ export { TreeDxWorkspaceAdapter, type TreeDxWorkspaceAdapterOptions } from './workspace-adapter.ts';
5
+ export { LocalGraphPort, LocalRepositoryPort, LocalRepositoryQueryPort, TreeDxArtifactPort, TreeDxExecPort, TreeDxFederatedPort, TreeDxGraphPort, TreeDxRegistryPort, TreeDxRepositoryPort, TreeDxRepositoryQueryPort, } from './ports.ts';
6
+ export type * from './ports.ts';
@@ -0,0 +1,36 @@
1
+ import {
2
+ TreeDxRepositoryAdapter,
3
+ resolveContentDir
4
+ } from "./repository-adapter.js";
5
+ import { TreeDxQueryAdapter } from "./query-adapter.js";
6
+ import { TreeDxGraphAdapter } from "./graph-adapter.js";
7
+ import { TreeDxWorkspaceAdapter } from "./workspace-adapter.js";
8
+ import {
9
+ LocalGraphPort,
10
+ LocalRepositoryPort,
11
+ LocalRepositoryQueryPort,
12
+ TreeDxArtifactPort,
13
+ TreeDxExecPort,
14
+ TreeDxFederatedPort,
15
+ TreeDxGraphPort,
16
+ TreeDxRegistryPort,
17
+ TreeDxRepositoryPort,
18
+ TreeDxRepositoryQueryPort
19
+ } from "./ports.js";
20
+ export {
21
+ LocalGraphPort,
22
+ LocalRepositoryPort,
23
+ LocalRepositoryQueryPort,
24
+ TreeDxArtifactPort,
25
+ TreeDxExecPort,
26
+ TreeDxFederatedPort,
27
+ TreeDxGraphAdapter,
28
+ TreeDxGraphPort,
29
+ TreeDxQueryAdapter,
30
+ TreeDxRegistryPort,
31
+ TreeDxRepositoryAdapter,
32
+ TreeDxRepositoryPort,
33
+ TreeDxRepositoryQueryPort,
34
+ TreeDxWorkspaceAdapter,
35
+ resolveContentDir
36
+ };
@@ -0,0 +1,222 @@
1
+ import type { SdkGraphSearchResult, TreeDxAuditEvent, TreeDxAuthMode, TreeDxBlob, TreeDxBlobUploadAbortRequest, TreeDxBlobUploadCompleteRequest, TreeDxBlobUploadCreateRequest, TreeDxBlobUploadPart, TreeDxBlobUploadPartRequest, TreeDxBlobUploadSession, TreeDxBlobDeleteRequest, TreeDxBlobDownload, TreeDxBlobDownloadRequest, TreeDxBlobMutationResult, TreeDxBlobReadRequest, TreeDxBlobUploadRequest, TreeDxBlobWriteRequest, TreeDxCapabilityGrant, TreeDxCommitRequest, TreeDxCommitResult, TreeDxContextRequest, TreeDxContextResult, TreeDxCtxParseRequest, TreeDxCtxParseResult, TreeDxDiff, TreeDxEffectiveScope, TreeDxEffectiveScopeRequest, TreeDxExecRequest, TreeDxExecResult, TreeDxFetchRemoteRequest, TreeDxFetchRemoteResult, TreeDxFederatedContextRequest, TreeDxFederatedContextResult, TreeDxFederatedGraphRequest, TreeDxFederatedGraphResult, TreeDxFederatedQueryRequest, TreeDxFederatedQueryResult, TreeDxFederatedSearchRequest, TreeDxFederatedSearchResult, TreeDxArtifact, TreeDxArtifactCleanupRequest, TreeDxArtifactCleanupResult, TreeDxArtifactDeleteRequest, TreeDxArtifactDownload, TreeDxArtifactExportRequest, TreeDxArtifactGetRequest, TreeDxArtifactListRequest, TreeDxFederationQueryPlan, TreeDxFederationQueryPlanRequest, TreeDxFile, TreeDxFileMutationResult, TreeDxGraphNodeRequest, TreeDxGraphQueryRequest, TreeDxGraphQueryResult, TreeDxGraphRefreshJob, TreeDxGraphRefreshJobRequest, TreeDxGraphRefreshRequest, TreeDxGraphRefreshResult, TreeDxGraphRelatedRequest, TreeDxGraphSearchRequest, TreeDxGraphSubgraphRequest, TreeDxHealth, TreeDxListTreeRequest, TreeDxMigration, TreeDxMigrationRequest, TreeDxMirrorHealthRequest, TreeDxMirrorHealthResult, TreeDxMirrorPromotionRequest, TreeDxMirrorPromotionResult, TreeDxMirrorSyncRequest, TreeDxMirrorSyncResult, TreeDxNode, TreeDxPatchFileRequest, TreeDxReadFileRequest, TreeDxRepository, TreeDxRepositoryPathsRequest, TreeDxRepositoryPlacement, TreeDxRepositoryQueryRequest, TreeDxRepositoryQueryResult, TreeDxRepositoryReadRequest, TreeDxRepositorySearchRequest, TreeDxSearchRequest, TreeDxSearchIndexCompactRequest, TreeDxSearchIndexCompactResult, TreeDxSearchIndexRefreshRequest, TreeDxSearchIndexRefreshResult, TreeDxSearchIndexStatus, TreeDxSearchIndexStatusRequest, TreeDxSearchResult, TreeDxSnapshot, TreeDxSnapshotBuildRequest, TreeDxStorageBackupRequest, TreeDxStorageBackupResult, TreeDxStorageCompactRequest, TreeDxStorageCompactResult, TreeDxStorageMigration, TreeDxStorageMigrationPlanRequest, TreeDxStorageMigrationRollbackRequest, TreeDxStorageRestoreRequest, TreeDxStorageRestoreResult, TreeDxStorageRestoreVerifyRequest, TreeDxStatus, TreeDxTreeEntry, TreeDxClientOptions, TreeDxPushRequest, TreeDxPushResult, TreeDxWhoami, TreeDxWorkspace, TreeDxCreateWorkspaceRequest, TreeDxDeleteFileRequest, TreeDxDeepHealth, TreeDxWorkspaceRequest, TreeDxWriteFileRequest, TreeDxMetrics, TreeDxReadiness } from './types.ts';
2
+ export declare const TREEDX_CLIENT_OPERATION_MAP: {
3
+ readonly health: "getHealth";
4
+ readonly ready: "getReadiness";
5
+ readonly deepHealth: "getDeepHealth";
6
+ readonly adminDeepHealth: "getAdminDeepHealth";
7
+ readonly metrics: "getMetrics";
8
+ readonly prometheusMetrics: "getPrometheusMetrics";
9
+ readonly whoami: "getWhoami";
10
+ readonly authMode: "getAuthMode";
11
+ readonly effectiveScope: "getEffectiveScope";
12
+ readonly listCapabilities: "listCapabilities";
13
+ readonly listCapabilityGrants: "listCapabilityGrants";
14
+ readonly putCapabilityGrant: "putCapabilityGrant";
15
+ readonly listAuditEvents: "listAuditEvents";
16
+ readonly planFederatedQuery: "planFederationQuery";
17
+ readonly buildSnapshot: "buildSnapshot";
18
+ readonly getSnapshot: "getSnapshot";
19
+ readonly exportArtifact: "exportArtifact";
20
+ readonly syncMirror: "syncMirror";
21
+ readonly fetchRemote: "syncRepository";
22
+ readonly push: "pushRepository";
23
+ readonly checkMirrorHealth: "checkMirrorHealth";
24
+ readonly promoteMirror: "promoteMirror";
25
+ readonly compactStorage: "compactAdminStorage";
26
+ readonly backupStorage: "backupAdminStorage";
27
+ readonly listStorageMigrations: "listStorageMigrations";
28
+ readonly planStorageMigration: "planStorageMigration";
29
+ readonly applyStorageMigration: "applyStorageMigration";
30
+ readonly rollbackStorageMigration: "rollbackStorageMigration";
31
+ readonly verifyStorageRestore: "verifyStorageRestore";
32
+ readonly restoreStorage: "restoreStorage";
33
+ readonly createMigration: "createMigration";
34
+ readonly getMigration: "getMigration";
35
+ readonly getNode: "getLocalNode";
36
+ readonly listNodes: "listRegistryNodes";
37
+ readonly getPlacement: "getRepositoryPlacement";
38
+ readonly getRepository: "getRepository";
39
+ readonly createWorkspace: "createWorkspace";
40
+ readonly closeWorkspace: "closeWorkspace";
41
+ readonly listTree: "listWorkspaceTree";
42
+ readonly readFile: "readWorkspaceFile";
43
+ readonly writeFile: "writeWorkspaceFile";
44
+ readonly patchFile: "patchWorkspaceFile";
45
+ readonly deleteFile: "deleteWorkspaceFile";
46
+ readonly readBlob: "readRepositoryBlob";
47
+ readonly writeBlob: "writeWorkspaceBlob";
48
+ readonly deleteBlob: "deleteWorkspaceBlob";
49
+ readonly downloadBlob: "downloadWorkspaceBlob";
50
+ readonly uploadBlob: "uploadWorkspaceBlob";
51
+ readonly createBlobUpload: "createWorkspaceBlobUpload";
52
+ readonly uploadBlobPart: "uploadWorkspaceBlobPart";
53
+ readonly completeBlobUpload: "completeWorkspaceBlobUpload";
54
+ readonly abortBlobUpload: "abortWorkspaceBlobUpload";
55
+ readonly listArtifacts: "listArtifacts";
56
+ readonly getArtifact: "getArtifact";
57
+ readonly deleteArtifact: "deleteArtifact";
58
+ readonly cleanupArtifacts: "cleanupArtifacts";
59
+ readonly search: "searchWorkspace";
60
+ readonly status: "getWorkspaceStatus";
61
+ readonly diff: "getWorkspaceDiff";
62
+ readonly commit: "commitWorkspace";
63
+ readonly exec: "execWorkspace";
64
+ readonly readRepositoryFiles: "readRepositoryFile";
65
+ readonly readRepositoryFile: "readRepositoryFile";
66
+ readonly listRepositoryPaths: "listRepositoryPaths";
67
+ readonly searchRepositoryFiles: "searchRepositoryFiles";
68
+ readonly queryRepository: "queryRepository";
69
+ readonly federatedSearch: "federatedSearch";
70
+ readonly federatedQuery: "federatedQuery";
71
+ readonly federatedContext: "federatedContextBuild";
72
+ readonly federatedGraph: "federatedGraphQuery";
73
+ readonly refreshGraph: "refreshRepositoryGraph";
74
+ readonly getGraphRefreshJob: "getGraphRefreshJob";
75
+ readonly refreshSearchIndex: "refreshSearchIndex";
76
+ readonly getSearchIndexStatus: "getSearchIndexStatus";
77
+ readonly compactSearchIndex: "compactSearchIndex";
78
+ readonly queryGraph: "queryRepositoryGraph";
79
+ readonly searchGraphFiles: "searchGraphFiles";
80
+ readonly searchGraphSections: "searchGraphSections";
81
+ readonly searchGraphEntities: "searchGraphEntities";
82
+ readonly getGraphNode: "getGraphNode";
83
+ readonly getRelated: "getRelatedGraphNodes";
84
+ readonly getSubgraph: "getGraphSubgraph";
85
+ readonly buildContext: "buildContext";
86
+ readonly parseContextDsl: "parseContextQuery";
87
+ };
88
+ export declare class TreeDxClient {
89
+ private readonly options;
90
+ readonly baseUrl: string;
91
+ private readonly token?;
92
+ private readonly defaultRepoId?;
93
+ private readonly fetchImpl;
94
+ constructor(options: TreeDxClientOptions);
95
+ private repoId;
96
+ private query;
97
+ private headers;
98
+ private fetchWithTimeout;
99
+ private request;
100
+ private requestBinary;
101
+ private requestBlobDownload;
102
+ private requestBlobUpload;
103
+ private assertBinaryOk;
104
+ private parseJsonResponse;
105
+ private throwApiError;
106
+ health(): Promise<TreeDxHealth>;
107
+ ready(): Promise<TreeDxReadiness>;
108
+ deepHealth(input?: {
109
+ admin?: boolean;
110
+ }): Promise<TreeDxDeepHealth>;
111
+ metrics(): Promise<TreeDxMetrics>;
112
+ prometheusMetrics(): Promise<string>;
113
+ whoami(): Promise<TreeDxWhoami>;
114
+ authMode(): Promise<TreeDxAuthMode>;
115
+ effectiveScope(input?: TreeDxEffectiveScopeRequest): Promise<TreeDxEffectiveScope>;
116
+ listCapabilities(): Promise<{
117
+ capabilities: string[];
118
+ }>;
119
+ listCapabilityGrants(input?: {
120
+ actorId?: string;
121
+ repoId?: string;
122
+ }): Promise<TreeDxCapabilityGrant[]>;
123
+ putCapabilityGrant(input: TreeDxCapabilityGrant): Promise<TreeDxCapabilityGrant>;
124
+ listAuditEvents(input?: {
125
+ actorId?: string;
126
+ tenantId?: string;
127
+ repoId?: string;
128
+ eventType?: string;
129
+ limit?: number;
130
+ }): Promise<{
131
+ events: TreeDxAuditEvent[];
132
+ page: {
133
+ limit: number;
134
+ hasMore: boolean;
135
+ };
136
+ }>;
137
+ planFederatedQuery(input: TreeDxFederationQueryPlanRequest): Promise<TreeDxFederationQueryPlan>;
138
+ buildSnapshot(input?: TreeDxSnapshotBuildRequest): Promise<TreeDxSnapshot>;
139
+ getSnapshot(input: {
140
+ repoId?: string;
141
+ snapshotId: string;
142
+ }): Promise<TreeDxSnapshot>;
143
+ exportArtifact(input?: TreeDxArtifactExportRequest): Promise<TreeDxArtifact>;
144
+ downloadArtifact(input?: TreeDxArtifactExportRequest): Promise<TreeDxArtifactDownload>;
145
+ syncMirror(input: TreeDxMirrorSyncRequest): Promise<TreeDxMirrorSyncResult>;
146
+ fetchRemote(input: TreeDxFetchRemoteRequest): Promise<TreeDxFetchRemoteResult>;
147
+ push(input: TreeDxPushRequest): Promise<TreeDxPushResult>;
148
+ checkMirrorHealth(input: TreeDxMirrorHealthRequest): Promise<TreeDxMirrorHealthResult>;
149
+ promoteMirror(input: TreeDxMirrorPromotionRequest): Promise<TreeDxMirrorPromotionResult>;
150
+ compactStorage(input?: TreeDxStorageCompactRequest): Promise<TreeDxStorageCompactResult>;
151
+ backupStorage(input?: TreeDxStorageBackupRequest): Promise<TreeDxStorageBackupResult>;
152
+ listStorageMigrations(): Promise<{
153
+ migrations: TreeDxStorageMigration[];
154
+ manifest: Record<string, unknown>;
155
+ }>;
156
+ planStorageMigration(input?: TreeDxStorageMigrationPlanRequest): Promise<TreeDxStorageMigration>;
157
+ applyStorageMigration(input?: TreeDxStorageMigrationPlanRequest): Promise<TreeDxStorageMigration>;
158
+ rollbackStorageMigration(input: TreeDxStorageMigrationRollbackRequest): Promise<TreeDxStorageMigration>;
159
+ verifyStorageRestore(input: TreeDxStorageRestoreVerifyRequest): Promise<TreeDxStorageRestoreResult['restore']>;
160
+ restoreStorage(input: TreeDxStorageRestoreRequest): Promise<TreeDxStorageRestoreResult['restore']>;
161
+ createMigration(input: TreeDxMigrationRequest): Promise<{
162
+ migration: TreeDxMigration;
163
+ placement?: TreeDxRepositoryPlacement;
164
+ }>;
165
+ getMigration(input: {
166
+ repoId?: string;
167
+ migrationId: string;
168
+ }): Promise<TreeDxMigration>;
169
+ getNode(): Promise<TreeDxNode>;
170
+ listNodes(): Promise<TreeDxNode[]>;
171
+ getPlacement(repoId: string): Promise<TreeDxRepositoryPlacement>;
172
+ getRepository(repoId?: string): Promise<TreeDxRepository>;
173
+ createWorkspace(input: TreeDxCreateWorkspaceRequest): Promise<TreeDxWorkspace>;
174
+ closeWorkspace(workspaceId: string): Promise<void>;
175
+ listTree(input: TreeDxListTreeRequest): Promise<TreeDxTreeEntry[]>;
176
+ readFile(input: TreeDxReadFileRequest): Promise<TreeDxFile>;
177
+ writeFile(input: TreeDxWriteFileRequest): Promise<TreeDxFileMutationResult>;
178
+ patchFile(input: TreeDxPatchFileRequest): Promise<TreeDxFileMutationResult>;
179
+ deleteFile(input: TreeDxDeleteFileRequest): Promise<TreeDxFileMutationResult>;
180
+ readBlob(input: TreeDxBlobReadRequest): Promise<TreeDxBlob>;
181
+ writeBlob(input: TreeDxBlobWriteRequest): Promise<TreeDxBlobMutationResult>;
182
+ deleteBlob(input: TreeDxBlobDeleteRequest): Promise<TreeDxBlobMutationResult>;
183
+ downloadBlob(input: TreeDxBlobDownloadRequest): Promise<TreeDxBlobDownload>;
184
+ uploadBlob(input: TreeDxBlobUploadRequest): Promise<TreeDxBlobMutationResult>;
185
+ createBlobUpload(input: TreeDxBlobUploadCreateRequest): Promise<TreeDxBlobUploadSession>;
186
+ uploadBlobPart(input: TreeDxBlobUploadPartRequest): Promise<TreeDxBlobUploadPart>;
187
+ completeBlobUpload(input: TreeDxBlobUploadCompleteRequest): Promise<TreeDxBlobMutationResult>;
188
+ abortBlobUpload(input: TreeDxBlobUploadAbortRequest): Promise<TreeDxBlobUploadSession>;
189
+ listArtifacts(input?: TreeDxArtifactListRequest): Promise<TreeDxArtifact[]>;
190
+ getArtifact(input: TreeDxArtifactGetRequest): Promise<TreeDxArtifact>;
191
+ deleteArtifact(input: TreeDxArtifactDeleteRequest): Promise<TreeDxArtifact>;
192
+ cleanupArtifacts(input?: TreeDxArtifactCleanupRequest): Promise<TreeDxArtifactCleanupResult>;
193
+ search(input: TreeDxSearchRequest): Promise<TreeDxSearchResult>;
194
+ status(input: TreeDxWorkspaceRequest): Promise<TreeDxStatus>;
195
+ diff(input: TreeDxWorkspaceRequest): Promise<TreeDxDiff>;
196
+ commit(input: TreeDxCommitRequest): Promise<TreeDxCommitResult>;
197
+ exec(input: TreeDxExecRequest): Promise<TreeDxExecResult>;
198
+ readRepositoryFiles(input: TreeDxRepositoryReadRequest): Promise<TreeDxRepositoryQueryResult>;
199
+ readRepositoryFile(input: TreeDxRepositoryReadRequest): Promise<TreeDxRepositoryQueryResult>;
200
+ listRepositoryPaths(input: TreeDxRepositoryPathsRequest): Promise<TreeDxRepositoryQueryResult>;
201
+ searchRepositoryFiles(input: TreeDxRepositorySearchRequest): Promise<TreeDxRepositoryQueryResult>;
202
+ queryRepository(input: TreeDxRepositoryQueryRequest): Promise<TreeDxRepositoryQueryResult>;
203
+ federatedSearch(input: TreeDxFederatedSearchRequest): Promise<TreeDxFederatedSearchResult>;
204
+ federatedQuery(input: TreeDxFederatedQueryRequest): Promise<TreeDxFederatedQueryResult>;
205
+ federatedContext(input: TreeDxFederatedContextRequest): Promise<TreeDxFederatedContextResult>;
206
+ federatedGraph(input: TreeDxFederatedGraphRequest): Promise<TreeDxFederatedGraphResult>;
207
+ refreshGraph(input?: TreeDxGraphRefreshRequest): Promise<TreeDxGraphRefreshResult>;
208
+ getGraphRefreshJob(input: TreeDxGraphRefreshJobRequest): Promise<TreeDxGraphRefreshJob>;
209
+ refreshSearchIndex(input?: TreeDxSearchIndexRefreshRequest): Promise<TreeDxSearchIndexRefreshResult>;
210
+ getSearchIndexStatus(input?: TreeDxSearchIndexStatusRequest): Promise<TreeDxSearchIndexStatus>;
211
+ compactSearchIndex(input?: TreeDxSearchIndexCompactRequest): Promise<TreeDxSearchIndexCompactResult>;
212
+ queryGraph(input: TreeDxGraphQueryRequest): Promise<TreeDxGraphQueryResult>;
213
+ searchGraphFiles(input: TreeDxGraphSearchRequest): Promise<SdkGraphSearchResult[]>;
214
+ searchGraphSections(input: TreeDxGraphSearchRequest): Promise<SdkGraphSearchResult[]>;
215
+ searchGraphEntities(input: TreeDxGraphSearchRequest): Promise<SdkGraphSearchResult[]>;
216
+ getGraphNode(input: TreeDxGraphNodeRequest): Promise<unknown>;
217
+ getRelated(input: TreeDxGraphRelatedRequest): Promise<Record<string, unknown>>;
218
+ getSubgraph(input: TreeDxGraphSubgraphRequest): Promise<Record<string, unknown>>;
219
+ buildContext(input: TreeDxContextRequest): Promise<TreeDxContextResult>;
220
+ parseContextDsl(input: TreeDxCtxParseRequest): Promise<TreeDxCtxParseResult>;
221
+ private graphSearch;
222
+ }