@nicia-ai/typegraph 0.9.2 → 0.10.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.
- package/dist/index.cjs +172 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +172 -3
- package/dist/index.js.map +1 -1
- package/dist/interchange/index.d.cts +1 -1
- package/dist/interchange/index.d.ts +1 -1
- package/dist/profiler/index.d.cts +1 -1
- package/dist/profiler/index.d.ts +1 -1
- package/dist/{store-wqOO3GSy.d.ts → store-BcFe9jJe.d.ts} +80 -3
- package/dist/{store-DgzIgrmn.d.cts → store-NE18RGqV.d.cts} +80 -3
- package/package.json +5 -5
package/dist/index.d.cts
CHANGED
|
@@ -3,8 +3,8 @@ import { N as NodeType, E as EdgeType } from './types-DMzKq0d5.cjs';
|
|
|
3
3
|
export { A as AnyEdgeType, C as Cardinality, a as Collation, D as DeleteBehavior, b as EdgeId, c as EdgeProps, d as EdgeRegistration, e as EdgeTypeWithEndpoints, f as EndpointExistence, G as GraphDefaults, g as NodeId, h as NodeProps, i as NodeRegistration, S as SqlDialect, T as TemporalMode, U as UniqueConstraint, j as UniquenessScope, k as isEdgeType, l as isEdgeTypeWithEndpoints, m as isNodeType } from './types-DMzKq0d5.cjs';
|
|
4
4
|
import { I as InferenceType, M as MetaEdge, O as OntologyRelation } from './types-GLkwvQvS.cjs';
|
|
5
5
|
export { D as DEFAULT_SQL_SCHEMA, G as GraphBackend, a as MetaEdgeProperties, S as SqlSchema, b as SqlTableNames, T as TransactionBackend, c as createSqlSchema, i as isMetaEdge } from './types-GLkwvQvS.cjs';
|
|
6
|
-
import { A as AliasMap, E as EdgeAliasMap, Q as QueryBuilder, T as TraversalBuilder, C as CreateQueryBuilderOptions } from './store-
|
|
7
|
-
export { a as AggregateResult, b as
|
|
6
|
+
import { A as AliasMap, E as EdgeAliasMap, Q as QueryBuilder, T as TraversalBuilder, C as CreateQueryBuilderOptions } from './store-NE18RGqV.cjs';
|
|
7
|
+
export { a as AggregateResult, b as AnyEdge, c as AnyNode, d as ConstraintNames, e as CreateEdgeInput, f as CreateNodeInput, g as Edge, h as EdgeAccessor, i as EdgeCollection, j as EdgeFindByEndpointsOptions, k as EdgeGetOrCreateByEndpointsOptions, l as EdgeGetOrCreateByEndpointsResult, m as EmbeddingSchema, n as EmbeddingValue, o as ExecutableAggregateQuery, p as ExecutableQuery, F as FieldAccessor, G as GetOrCreateAction, H as HookContext, I as IfExistsMode, N as Node, q as NodeAccessor, r as NodeAlias, s as NodeCollection, t as NodeGetOrCreateByConstraintOptions, u as NodeGetOrCreateByConstraintResult, v as NodeRef, O as OperationHookContext, P as PaginateOptions, w as PaginatedResult, x as Predicate, y as PreparedQuery, z as PropsAccessor, B as QueryHookContext, D as QueryOptions, R as RecursiveTraversalOptions, S as SelectContext, J as SelectableEdge, K as SelectableNode, L as Store, M as StoreHooks, U as StoreOptions, V as StreamOptions, W as SubgraphOptions, X as SubgraphResult, Y as SubsetEdge, Z as SubsetNode, _ as TransactionContext, $ as TypedEdgeCollection, a0 as UnionableQuery, a1 as UpdateEdgeInput, a2 as UpdateNodeInput, a3 as createStore, a4 as createStoreWithSchema, a5 as embedding, a6 as exists, a7 as fieldRef, a8 as getEmbeddingDimensions, a9 as inSubquery, aa as isEmbeddingSchema, ab as isParameterRef, ac as notExists, ad as notInSubquery, ae as param } from './store-NE18RGqV.cjs';
|
|
8
8
|
import { G as GraphDef, K as KindRegistry } from './manager-DGSnJa1v.cjs';
|
|
9
9
|
export { A as AllEdgeTypes, a as AllNodeTypes, E as EdgeKinds, b as GetEdgeType, c as GetNodeType, N as NodeKinds, d as defineGraph, g as getEdgeKinds, e as getNodeKinds, i as isGraphDef } from './manager-DGSnJa1v.cjs';
|
|
10
10
|
export { C as CardinalityError, a as CompilerInvariantError, b as ConfigurationError, D as DatabaseOperationError, c as DisjointError, E as EdgeNotFoundError, d as EndpointError, e as EndpointNotFoundError, f as ErrorCategory, K as KindNotFoundError, M as MigrationError, N as NodeConstraintNotFoundError, g as NodeNotFoundError, R as RestrictedDeleteError, S as SchemaMismatchError, T as TypeGraphError, h as TypeGraphErrorOptions, U as UniquenessError, i as UnsupportedPredicateError, V as ValidationError, j as ValidationErrorDetails, k as ValidationIssue, l as VersionConflictError, m as getErrorSuggestion, n as isConstraintError, o as isSystemError, p as isTypeGraphError, q as isUserRecoverable } from './index-QTnQwakS.cjs';
|
package/dist/index.d.ts
CHANGED
|
@@ -3,8 +3,8 @@ import { N as NodeType, E as EdgeType } from './types-DMzKq0d5.js';
|
|
|
3
3
|
export { A as AnyEdgeType, C as Cardinality, a as Collation, D as DeleteBehavior, b as EdgeId, c as EdgeProps, d as EdgeRegistration, e as EdgeTypeWithEndpoints, f as EndpointExistence, G as GraphDefaults, g as NodeId, h as NodeProps, i as NodeRegistration, S as SqlDialect, T as TemporalMode, U as UniqueConstraint, j as UniquenessScope, k as isEdgeType, l as isEdgeTypeWithEndpoints, m as isNodeType } from './types-DMzKq0d5.js';
|
|
4
4
|
import { I as InferenceType, M as MetaEdge, O as OntologyRelation } from './types-1YJKodRv.js';
|
|
5
5
|
export { D as DEFAULT_SQL_SCHEMA, G as GraphBackend, a as MetaEdgeProperties, S as SqlSchema, b as SqlTableNames, T as TransactionBackend, c as createSqlSchema, i as isMetaEdge } from './types-1YJKodRv.js';
|
|
6
|
-
import { A as AliasMap, E as EdgeAliasMap, Q as QueryBuilder, T as TraversalBuilder, C as CreateQueryBuilderOptions } from './store-
|
|
7
|
-
export { a as AggregateResult, b as
|
|
6
|
+
import { A as AliasMap, E as EdgeAliasMap, Q as QueryBuilder, T as TraversalBuilder, C as CreateQueryBuilderOptions } from './store-BcFe9jJe.js';
|
|
7
|
+
export { a as AggregateResult, b as AnyEdge, c as AnyNode, d as ConstraintNames, e as CreateEdgeInput, f as CreateNodeInput, g as Edge, h as EdgeAccessor, i as EdgeCollection, j as EdgeFindByEndpointsOptions, k as EdgeGetOrCreateByEndpointsOptions, l as EdgeGetOrCreateByEndpointsResult, m as EmbeddingSchema, n as EmbeddingValue, o as ExecutableAggregateQuery, p as ExecutableQuery, F as FieldAccessor, G as GetOrCreateAction, H as HookContext, I as IfExistsMode, N as Node, q as NodeAccessor, r as NodeAlias, s as NodeCollection, t as NodeGetOrCreateByConstraintOptions, u as NodeGetOrCreateByConstraintResult, v as NodeRef, O as OperationHookContext, P as PaginateOptions, w as PaginatedResult, x as Predicate, y as PreparedQuery, z as PropsAccessor, B as QueryHookContext, D as QueryOptions, R as RecursiveTraversalOptions, S as SelectContext, J as SelectableEdge, K as SelectableNode, L as Store, M as StoreHooks, U as StoreOptions, V as StreamOptions, W as SubgraphOptions, X as SubgraphResult, Y as SubsetEdge, Z as SubsetNode, _ as TransactionContext, $ as TypedEdgeCollection, a0 as UnionableQuery, a1 as UpdateEdgeInput, a2 as UpdateNodeInput, a3 as createStore, a4 as createStoreWithSchema, a5 as embedding, a6 as exists, a7 as fieldRef, a8 as getEmbeddingDimensions, a9 as inSubquery, aa as isEmbeddingSchema, ab as isParameterRef, ac as notExists, ad as notInSubquery, ae as param } from './store-BcFe9jJe.js';
|
|
8
8
|
import { G as GraphDef, K as KindRegistry } from './manager-BCLhWysp.js';
|
|
9
9
|
export { A as AllEdgeTypes, a as AllNodeTypes, E as EdgeKinds, b as GetEdgeType, c as GetNodeType, N as NodeKinds, d as defineGraph, g as getEdgeKinds, e as getNodeKinds, i as isGraphDef } from './manager-BCLhWysp.js';
|
|
10
10
|
export { C as CardinalityError, a as CompilerInvariantError, b as ConfigurationError, D as DatabaseOperationError, c as DisjointError, E as EdgeNotFoundError, d as EndpointError, e as EndpointNotFoundError, f as ErrorCategory, K as KindNotFoundError, M as MigrationError, N as NodeConstraintNotFoundError, g as NodeNotFoundError, R as RestrictedDeleteError, S as SchemaMismatchError, T as TypeGraphError, h as TypeGraphErrorOptions, U as UniquenessError, i as UnsupportedPredicateError, V as ValidationError, j as ValidationErrorDetails, k as ValidationIssue, l as VersionConflictError, m as getErrorSuggestion, n as isConstraintError, o as isSystemError, p as isTypeGraphError, q as isUserRecoverable } from './index-QTnQwakS.js';
|
package/dist/index.js
CHANGED
|
@@ -3035,7 +3035,7 @@ function compileRecursiveCte(ast, traversal, graphId, ctx, requiredColumnsByAlia
|
|
|
3035
3035
|
recursiveBaseWhereClauses.push(cycleCheck);
|
|
3036
3036
|
}
|
|
3037
3037
|
recursiveBaseWhereClauses.push(...edgePredicates, ...targetNodePredicates);
|
|
3038
|
-
function
|
|
3038
|
+
function compileRecursiveBranch2(branch) {
|
|
3039
3039
|
const recursiveFilterClauses = [
|
|
3040
3040
|
...recursiveBaseWhereClauses,
|
|
3041
3041
|
compileKindFilter2(branch.edgeKinds, "e.kind"),
|
|
@@ -3090,7 +3090,7 @@ function compileRecursiveCte(ast, traversal, graphId, ctx, requiredColumnsByAlia
|
|
|
3090
3090
|
const directTargetField = direction === "out" ? "to_id" : "from_id";
|
|
3091
3091
|
const directJoinKindField = direction === "out" ? "from_kind" : "to_kind";
|
|
3092
3092
|
const directTargetKindField = direction === "out" ? "to_kind" : "from_kind";
|
|
3093
|
-
const directBranch =
|
|
3093
|
+
const directBranch = compileRecursiveBranch2({
|
|
3094
3094
|
joinField: directJoinField,
|
|
3095
3095
|
targetField: directTargetField,
|
|
3096
3096
|
joinKindField: directJoinKindField,
|
|
@@ -3106,7 +3106,7 @@ function compileRecursiveCte(ast, traversal, graphId, ctx, requiredColumnsByAlia
|
|
|
3106
3106
|
(kind) => directEdgeKinds.includes(kind)
|
|
3107
3107
|
);
|
|
3108
3108
|
const duplicateGuard = overlappingKinds.length > 0 ? sql`NOT (e.from_id = e.to_id AND ${compileKindFilter2(overlappingKinds, "e.kind")})` : void 0;
|
|
3109
|
-
const inverseBranch =
|
|
3109
|
+
const inverseBranch = compileRecursiveBranch2({
|
|
3110
3110
|
joinField: inverseJoinField,
|
|
3111
3111
|
targetField: inverseTargetField,
|
|
3112
3112
|
joinKindField: inverseJoinKindField,
|
|
@@ -11190,6 +11190,142 @@ async function executeNodeBulkGetOrCreateByConstraint(ctx, kind, constraintName,
|
|
|
11190
11190
|
}
|
|
11191
11191
|
return results;
|
|
11192
11192
|
}
|
|
11193
|
+
var DEFAULT_SUBGRAPH_MAX_DEPTH = 10;
|
|
11194
|
+
function normalizeProps(value) {
|
|
11195
|
+
return typeof value === "string" ? value : JSON.stringify(value ?? {});
|
|
11196
|
+
}
|
|
11197
|
+
async function executeSubgraph(params) {
|
|
11198
|
+
const { options } = params;
|
|
11199
|
+
if (options.edges.length === 0) {
|
|
11200
|
+
return { nodes: [], edges: [] };
|
|
11201
|
+
}
|
|
11202
|
+
const maxDepth = Math.min(
|
|
11203
|
+
options.maxDepth ?? DEFAULT_SUBGRAPH_MAX_DEPTH,
|
|
11204
|
+
MAX_RECURSIVE_DEPTH
|
|
11205
|
+
);
|
|
11206
|
+
const ctx = {
|
|
11207
|
+
graphId: params.graphId,
|
|
11208
|
+
rootId: params.rootId,
|
|
11209
|
+
edgeKinds: options.edges,
|
|
11210
|
+
maxDepth,
|
|
11211
|
+
includeKinds: options.includeKinds,
|
|
11212
|
+
excludeRoot: options.excludeRoot ?? false,
|
|
11213
|
+
direction: options.direction ?? "out",
|
|
11214
|
+
cyclePolicy: options.cyclePolicy ?? "prevent",
|
|
11215
|
+
dialect: params.dialect,
|
|
11216
|
+
schema: params.schema ?? DEFAULT_SQL_SCHEMA,
|
|
11217
|
+
backend: params.backend
|
|
11218
|
+
};
|
|
11219
|
+
const reachableCte = buildReachableCte(ctx);
|
|
11220
|
+
const includedIdsCte = buildIncludedIdsCte(ctx);
|
|
11221
|
+
const [nodeRows, edgeRows] = await Promise.all([
|
|
11222
|
+
fetchSubgraphNodes(ctx, reachableCte, includedIdsCte),
|
|
11223
|
+
fetchSubgraphEdges(ctx, reachableCte, includedIdsCte)
|
|
11224
|
+
]);
|
|
11225
|
+
const nodes = nodeRows.map(
|
|
11226
|
+
(row) => rowToNode({ ...row, props: normalizeProps(row.props) })
|
|
11227
|
+
);
|
|
11228
|
+
const edges = edgeRows.map(
|
|
11229
|
+
(row) => rowToEdge({ ...row, props: normalizeProps(row.props) })
|
|
11230
|
+
);
|
|
11231
|
+
return {
|
|
11232
|
+
nodes,
|
|
11233
|
+
edges
|
|
11234
|
+
};
|
|
11235
|
+
}
|
|
11236
|
+
function buildReachableCte(ctx) {
|
|
11237
|
+
const shouldTrackPath = ctx.cyclePolicy === "prevent";
|
|
11238
|
+
const edgeKindFilter = compileKindFilter(sql.raw("e.kind"), ctx.edgeKinds);
|
|
11239
|
+
const initialPath = shouldTrackPath ? ctx.dialect.initializePath(sql.raw("n.id")) : void 0;
|
|
11240
|
+
const pathExtension = shouldTrackPath ? ctx.dialect.extendPath(sql.raw("r.path"), sql.raw("n.id")) : void 0;
|
|
11241
|
+
const cycleCheck = shouldTrackPath ? ctx.dialect.cycleCheck(sql.raw("n.id"), sql.raw("r.path")) : void 0;
|
|
11242
|
+
const baseColumns = [sql`n.id`, sql`n.kind`, sql`0 AS depth`];
|
|
11243
|
+
if (initialPath !== void 0) {
|
|
11244
|
+
baseColumns.push(sql`${initialPath} AS path`);
|
|
11245
|
+
}
|
|
11246
|
+
const baseCase = sql`SELECT ${sql.join(baseColumns, sql`, `)} FROM ${ctx.schema.nodesTable} n WHERE n.graph_id = ${ctx.graphId} AND n.id = ${ctx.rootId} AND n.deleted_at IS NULL`;
|
|
11247
|
+
const recursiveColumns = [
|
|
11248
|
+
sql`n.id`,
|
|
11249
|
+
sql`n.kind`,
|
|
11250
|
+
sql`r.depth + 1 AS depth`
|
|
11251
|
+
];
|
|
11252
|
+
if (pathExtension !== void 0) {
|
|
11253
|
+
recursiveColumns.push(sql`${pathExtension} AS path`);
|
|
11254
|
+
}
|
|
11255
|
+
const recursiveWhereClauses = [
|
|
11256
|
+
sql`e.graph_id = ${ctx.graphId}`,
|
|
11257
|
+
edgeKindFilter,
|
|
11258
|
+
sql`e.deleted_at IS NULL`,
|
|
11259
|
+
sql`n.deleted_at IS NULL`,
|
|
11260
|
+
sql`r.depth < ${ctx.maxDepth}`
|
|
11261
|
+
];
|
|
11262
|
+
if (cycleCheck !== void 0) {
|
|
11263
|
+
recursiveWhereClauses.push(cycleCheck);
|
|
11264
|
+
}
|
|
11265
|
+
const forceWorktableOuterJoinOrder = ctx.dialect.capabilities.forceRecursiveWorktableOuterJoinOrder;
|
|
11266
|
+
const recursiveCase = ctx.direction === "both" ? compileBidirectionalBranch({
|
|
11267
|
+
recursiveColumns,
|
|
11268
|
+
whereClauses: recursiveWhereClauses,
|
|
11269
|
+
forceWorktableOuterJoinOrder,
|
|
11270
|
+
schema: ctx.schema
|
|
11271
|
+
}) : compileRecursiveBranch({
|
|
11272
|
+
recursiveColumns,
|
|
11273
|
+
whereClauses: recursiveWhereClauses,
|
|
11274
|
+
joinField: "from_id",
|
|
11275
|
+
targetField: "to_id",
|
|
11276
|
+
targetKindField: "to_kind",
|
|
11277
|
+
forceWorktableOuterJoinOrder,
|
|
11278
|
+
schema: ctx.schema
|
|
11279
|
+
});
|
|
11280
|
+
return sql`WITH RECURSIVE reachable AS (${baseCase} UNION ALL ${recursiveCase})`;
|
|
11281
|
+
}
|
|
11282
|
+
function compileRecursiveBranch(params) {
|
|
11283
|
+
const columns = [...params.recursiveColumns];
|
|
11284
|
+
const selectClause = sql`SELECT ${sql.join(columns, sql`, `)}`;
|
|
11285
|
+
const nodeJoin = sql`JOIN ${params.schema.nodesTable} n ON n.graph_id = e.graph_id AND n.id = e.${sql.raw(params.targetField)} AND n.kind = e.${sql.raw(params.targetKindField)}`;
|
|
11286
|
+
if (params.forceWorktableOuterJoinOrder) {
|
|
11287
|
+
const allWhere = [
|
|
11288
|
+
...params.whereClauses,
|
|
11289
|
+
sql`e.${sql.raw(params.joinField)} = r.id`
|
|
11290
|
+
];
|
|
11291
|
+
return sql`${selectClause} FROM reachable r CROSS JOIN ${params.schema.edgesTable} e ${nodeJoin} WHERE ${sql.join(allWhere, sql` AND `)}`;
|
|
11292
|
+
}
|
|
11293
|
+
const where = [...params.whereClauses];
|
|
11294
|
+
return sql`${selectClause} FROM reachable r JOIN ${params.schema.edgesTable} e ON e.${sql.raw(params.joinField)} = r.id ${nodeJoin} WHERE ${sql.join(where, sql` AND `)}`;
|
|
11295
|
+
}
|
|
11296
|
+
function compileBidirectionalBranch(params) {
|
|
11297
|
+
const columns = [...params.recursiveColumns];
|
|
11298
|
+
const selectClause = sql`SELECT ${sql.join(columns, sql`, `)}`;
|
|
11299
|
+
const nodeJoin = sql`JOIN ${params.schema.nodesTable} n ON n.graph_id = e.graph_id AND ((e.to_id = r.id AND n.id = e.from_id AND n.kind = e.from_kind) OR (e.from_id = r.id AND n.id = e.to_id AND n.kind = e.to_kind))`;
|
|
11300
|
+
if (params.forceWorktableOuterJoinOrder) {
|
|
11301
|
+
const allWhere = [
|
|
11302
|
+
...params.whereClauses,
|
|
11303
|
+
sql`(e.from_id = r.id OR e.to_id = r.id)`
|
|
11304
|
+
];
|
|
11305
|
+
return sql`${selectClause} FROM reachable r CROSS JOIN ${params.schema.edgesTable} e ${nodeJoin} WHERE ${sql.join(allWhere, sql` AND `)}`;
|
|
11306
|
+
}
|
|
11307
|
+
return sql`${selectClause} FROM reachable r JOIN ${params.schema.edgesTable} e ON (e.from_id = r.id OR e.to_id = r.id) ${nodeJoin} WHERE ${sql.join([...params.whereClauses], sql` AND `)}`;
|
|
11308
|
+
}
|
|
11309
|
+
function buildIncludedIdsCte(ctx) {
|
|
11310
|
+
const filters = [];
|
|
11311
|
+
if (ctx.includeKinds !== void 0 && ctx.includeKinds.length > 0) {
|
|
11312
|
+
filters.push(compileKindFilter(sql.raw("kind"), ctx.includeKinds));
|
|
11313
|
+
}
|
|
11314
|
+
if (ctx.excludeRoot) {
|
|
11315
|
+
filters.push(sql`id != ${ctx.rootId}`);
|
|
11316
|
+
}
|
|
11317
|
+
const whereClause = filters.length > 0 ? sql` WHERE ${sql.join(filters, sql` AND `)}` : sql``;
|
|
11318
|
+
return sql`, included_ids AS (SELECT DISTINCT id FROM reachable${whereClause})`;
|
|
11319
|
+
}
|
|
11320
|
+
async function fetchSubgraphNodes(ctx, reachableCte, includedIdsCte) {
|
|
11321
|
+
const query = sql`${reachableCte}${includedIdsCte} SELECT n.kind, n.id, n.props, n.version, n.valid_from, n.valid_to, n.created_at, n.updated_at, n.deleted_at FROM ${ctx.schema.nodesTable} n WHERE n.graph_id = ${ctx.graphId} AND n.id IN (SELECT id FROM included_ids)`;
|
|
11322
|
+
return ctx.backend.execute(query);
|
|
11323
|
+
}
|
|
11324
|
+
async function fetchSubgraphEdges(ctx, reachableCte, includedIdsCte) {
|
|
11325
|
+
const edgeKindFilter = compileKindFilter(sql.raw("e.kind"), ctx.edgeKinds);
|
|
11326
|
+
const query = sql`${reachableCte}${includedIdsCte} SELECT e.id, e.kind, e.from_kind, e.from_id, e.to_kind, e.to_id, e.props, e.valid_from, e.valid_to, e.created_at, e.updated_at, e.deleted_at FROM ${ctx.schema.edgesTable} e WHERE e.graph_id = ${ctx.graphId} AND ${edgeKindFilter} AND e.deleted_at IS NULL AND e.from_id IN (SELECT id FROM included_ids) AND e.to_id IN (SELECT id FROM included_ids)`;
|
|
11327
|
+
return ctx.backend.execute(query);
|
|
11328
|
+
}
|
|
11193
11329
|
|
|
11194
11330
|
// src/store/store.ts
|
|
11195
11331
|
var Store = class {
|
|
@@ -11393,6 +11529,39 @@ var Store = class {
|
|
|
11393
11529
|
query() {
|
|
11394
11530
|
return this.#createQueryForBackend(this.#backend);
|
|
11395
11531
|
}
|
|
11532
|
+
// === Subgraph Extraction ===
|
|
11533
|
+
/**
|
|
11534
|
+
* Extracts a typed subgraph by traversing from a root node.
|
|
11535
|
+
*
|
|
11536
|
+
* Performs a BFS traversal from `rootId` following the specified edge kinds,
|
|
11537
|
+
* then returns all reachable nodes and the edges connecting them.
|
|
11538
|
+
*
|
|
11539
|
+
* @example
|
|
11540
|
+
* ```typescript
|
|
11541
|
+
* const result = await store.subgraph(run.id, {
|
|
11542
|
+
* edges: ["has_task", "runs_agent", "uses_skill"],
|
|
11543
|
+
* maxDepth: 4,
|
|
11544
|
+
* includeKinds: ["Run", "Task", "Agent", "Skill"],
|
|
11545
|
+
* });
|
|
11546
|
+
*
|
|
11547
|
+
* for (const node of result.nodes) {
|
|
11548
|
+
* switch (node.kind) {
|
|
11549
|
+
* case "Task": console.log(node.name); break;
|
|
11550
|
+
* case "Agent": console.log(node.model); break;
|
|
11551
|
+
* }
|
|
11552
|
+
* }
|
|
11553
|
+
* ```
|
|
11554
|
+
*/
|
|
11555
|
+
async subgraph(rootId, options) {
|
|
11556
|
+
return executeSubgraph({
|
|
11557
|
+
graphId: this.graphId,
|
|
11558
|
+
rootId,
|
|
11559
|
+
backend: this.#backend,
|
|
11560
|
+
dialect: getDialect(this.#backend.dialect),
|
|
11561
|
+
schema: this.#schema,
|
|
11562
|
+
options
|
|
11563
|
+
});
|
|
11564
|
+
}
|
|
11396
11565
|
// === Transactions ===
|
|
11397
11566
|
/**
|
|
11398
11567
|
* Executes a function within a transaction.
|