@mastra/factory 0.21.0-alpha.3 → 0.21.0-alpha.4
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/auth.d.ts +7 -0
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +12 -1
- package/dist/auth.js.map +1 -1
- package/dist/factory.d.ts +9 -0
- package/dist/factory.d.ts.map +1 -1
- package/dist/factory.js +56 -23
- package/dist/factory.js.map +1 -1
- package/dist/integrations/github/routes.js +1 -0
- package/dist/integrations/github/routes.js.map +1 -1
- package/dist/integrations/linear/issue-reconciler.d.ts +3 -1
- package/dist/integrations/linear/issue-reconciler.d.ts.map +1 -1
- package/dist/integrations/linear/issue-reconciler.js +1 -1
- package/dist/integrations/linear/issue-reconciler.js.map +1 -1
- package/dist/integrations/platform/linear/integration.d.ts.map +1 -1
- package/dist/integrations/platform/linear/integration.js +10 -9
- package/dist/integrations/platform/linear/integration.js.map +1 -1
- package/dist/integrations/slack/integration.d.ts.map +1 -1
- package/dist/integrations/slack/integration.js +0 -1
- package/dist/integrations/slack/integration.js.map +1 -1
- package/dist/integrations/slack/slack.d.ts +0 -17
- package/dist/integrations/slack/slack.d.ts.map +1 -1
- package/dist/integrations/slack/slack.js +8 -40
- package/dist/integrations/slack/slack.js.map +1 -1
- package/dist/routes/config.d.ts +15 -36
- package/dist/routes/config.d.ts.map +1 -1
- package/dist/routes/config.js +72 -123
- package/dist/routes/config.js.map +1 -1
- package/dist/routes/knowledge.d.ts +115 -21
- package/dist/routes/knowledge.d.ts.map +1 -1
- package/dist/routes/knowledge.js +715 -30
- package/dist/routes/knowledge.js.map +1 -1
- package/dist/routes/oauth.d.ts +0 -3
- package/dist/routes/oauth.d.ts.map +1 -1
- package/dist/routes/oauth.js +2 -10
- package/dist/routes/oauth.js.map +1 -1
- package/dist/routes/provider-credentials.d.ts.map +1 -1
- package/dist/routes/provider-credentials.js +2 -1
- package/dist/routes/provider-credentials.js.map +1 -1
- package/dist/routes/surface.d.ts +1 -0
- package/dist/routes/surface.d.ts.map +1 -1
- package/dist/routes/surface.js +6 -3
- package/dist/routes/surface.js.map +1 -1
- package/dist/rules/binding-context.d.ts +19 -0
- package/dist/rules/binding-context.d.ts.map +1 -1
- package/dist/rules/binding-context.js +39 -1
- package/dist/rules/binding-context.js.map +1 -1
- package/dist/rules/dispatcher.d.ts +2 -13
- package/dist/rules/dispatcher.d.ts.map +1 -1
- package/dist/rules/dispatcher.js +0 -6
- package/dist/rules/dispatcher.js.map +1 -1
- package/dist/rules/processor.d.ts +35 -1
- package/dist/rules/processor.d.ts.map +1 -1
- package/dist/rules/processor.js +80 -4
- package/dist/rules/processor.js.map +1 -1
- package/dist/rules/start-coordinator.d.ts +1 -2
- package/dist/rules/start-coordinator.d.ts.map +1 -1
- package/dist/rules/start-coordinator.js +2 -6
- package/dist/rules/start-coordinator.js.map +1 -1
- package/dist/session/factory-session.d.ts +5 -43
- package/dist/session/factory-session.d.ts.map +1 -1
- package/dist/session/factory-session.js +6 -47
- package/dist/session/factory-session.js.map +1 -1
- package/dist/session/memory-settings-hydration.d.ts +17 -89
- package/dist/session/memory-settings-hydration.d.ts.map +1 -1
- package/dist/session/memory-settings-hydration.js +25 -111
- package/dist/session/memory-settings-hydration.js.map +1 -1
- package/dist/storage/domains/memory-settings/base.d.ts +5 -17
- package/dist/storage/domains/memory-settings/base.d.ts.map +1 -1
- package/dist/storage/domains/memory-settings/base.js +8 -15
- package/dist/storage/domains/memory-settings/base.js.map +1 -1
- package/dist/supervisor/session.d.ts +2 -4
- package/dist/supervisor/session.d.ts.map +1 -1
- package/dist/supervisor/session.js +3 -5
- package/dist/supervisor/session.js.map +1 -1
- package/dist/workspace.d.ts.map +1 -1
- package/dist/workspace.js +2 -2
- package/dist/workspace.js.map +1 -1
- package/package.json +7 -7
- package/dist/routes/om-seed.d.ts +0 -22
- package/dist/routes/om-seed.d.ts.map +0 -1
- package/dist/routes/om-seed.js +0 -40
- package/dist/routes/om-seed.js.map +0 -1
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Read-only Mastra `apiRoutes` exposing the factory project's knowledge graph.
|
|
3
3
|
*
|
|
4
|
-
* Serves the Knowledge page in factory-ui
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* GET — this module never writes knowledge.
|
|
4
|
+
* Serves the Knowledge page in factory-ui through bounded scope-tree,
|
|
5
|
+
* selected-subgraph, node-detail, and activity reads. Every endpoint is a GET;
|
|
6
|
+
* this module never writes knowledge.
|
|
8
7
|
*
|
|
9
8
|
* Scoping is fail-closed: the org and resource rungs are derived server-side
|
|
10
9
|
* from the authenticated caller and the validated `:id` project. The DEFAULT
|
|
@@ -15,11 +14,65 @@
|
|
|
15
14
|
* visible under the caller's org/project prefix; unknown or cross-org threads
|
|
16
15
|
* 404 — never a silent fallback to the default view.
|
|
17
16
|
*/
|
|
17
|
+
import type { Knowledge } from '@mastra/core/knowledge';
|
|
18
18
|
import type { ApiRoute } from '@mastra/core/server';
|
|
19
|
-
import type { KnowledgeScope,
|
|
19
|
+
import type { KnowledgeScope, KnowledgeScopeNodeSummary } from '@mastra/core/storage';
|
|
20
20
|
import type { FactoryProjectsStorage } from '../storage/domains/projects/base.js';
|
|
21
21
|
import type { RouteDependencies } from './route.js';
|
|
22
22
|
import { Route } from './route.js';
|
|
23
|
+
export type KnowledgeScopeLevel = 'org' | 'resource' | 'thread';
|
|
24
|
+
export interface KnowledgeScopeTreeNode extends KnowledgeScopeNodeSummary {
|
|
25
|
+
/** Viewer-visible direct members, capped by the route's node window. */
|
|
26
|
+
memberCount: number;
|
|
27
|
+
/** True when more direct members may exist beyond `memberCount`. */
|
|
28
|
+
memberCountTruncated: boolean;
|
|
29
|
+
/** Viewer-visible content nodes directly assigned to this scope. */
|
|
30
|
+
contentNodeCount: number;
|
|
31
|
+
/** Direct child scopes available for lazy expansion. */
|
|
32
|
+
childScopeCount: number;
|
|
33
|
+
}
|
|
34
|
+
export interface KnowledgeSearchResult {
|
|
35
|
+
id: string;
|
|
36
|
+
name: string;
|
|
37
|
+
kind: string;
|
|
38
|
+
type: 'scope' | 'node';
|
|
39
|
+
rung: KnowledgeScopeLevel | null;
|
|
40
|
+
/** Present when a thread-scoped content result needs to restore its owning session lens. */
|
|
41
|
+
threadId?: string;
|
|
42
|
+
}
|
|
43
|
+
export interface KnowledgeSearchPayload {
|
|
44
|
+
results: KnowledgeSearchResult[];
|
|
45
|
+
truncated: boolean;
|
|
46
|
+
}
|
|
47
|
+
export interface KnowledgeScopeTreePayload {
|
|
48
|
+
roots: Array<{
|
|
49
|
+
level: KnowledgeScopeLevel;
|
|
50
|
+
id: string;
|
|
51
|
+
available: boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Set when a reconciled structural scope node has this rung's canonical
|
|
54
|
+
* address (`org:<orgId>`, `resource:<projectId>`, `thread:<threadId>`) —
|
|
55
|
+
* the client renders ONE merged entry (structural name, identity marker)
|
|
56
|
+
* that opens the structural lens instead of duplicating the scope.
|
|
57
|
+
*/
|
|
58
|
+
scopeNodeId?: string;
|
|
59
|
+
/** Structural name of the matched scope node (present iff scopeNodeId). */
|
|
60
|
+
name?: string;
|
|
61
|
+
}>;
|
|
62
|
+
defaultLevel: 'resource';
|
|
63
|
+
/**
|
|
64
|
+
* Reconciled structural scope tree (isScope nodes with membership edges),
|
|
65
|
+
* e.g. `mastra → features → memory` and `repo:mastra → issues/prs`. Omitted
|
|
66
|
+
* only when the storage adapter does not expose structural scope nodes.
|
|
67
|
+
*/
|
|
68
|
+
scopeNodes?: KnowledgeScopeTreeNode[];
|
|
69
|
+
/** Cursor for the next sibling page (roots when parentId is omitted). */
|
|
70
|
+
nextCursor?: string;
|
|
71
|
+
/** Initial child-page cursors keyed by parent scope id. */
|
|
72
|
+
childCursors?: Record<string, string>;
|
|
73
|
+
/** True when the org has more scopes than the route reads, so whole scopes are missing from the tree. */
|
|
74
|
+
truncated?: boolean;
|
|
75
|
+
}
|
|
23
76
|
/** Window caps. Injectable at construction only — never per-request. */
|
|
24
77
|
export interface KnowledgeRouteLimits {
|
|
25
78
|
/** Max nodes in a graph snapshot (newest-first). */
|
|
@@ -28,13 +81,22 @@ export interface KnowledgeRouteLimits {
|
|
|
28
81
|
maxRecords: number;
|
|
29
82
|
/** Max fallback `resolveNode` store lookups per request (deduped per unique name+scope). */
|
|
30
83
|
maxFallbackLookups: number;
|
|
84
|
+
/** Max `listScopeNodes` pages (of up to 1,000 scopes) read for one org; past it responses report `truncated`. */
|
|
85
|
+
maxOrgScopePages: number;
|
|
31
86
|
}
|
|
32
87
|
export interface KnowledgeRoutesDeps extends RouteDependencies {
|
|
33
88
|
/** Factory projects domain — validates the `:id` project belongs to the caller's org. */
|
|
34
89
|
projects: FactoryProjectsStorage;
|
|
35
|
-
/** Lazy handle to the
|
|
36
|
-
knowledge: () => Promise<
|
|
90
|
+
/** Lazy handle to the host-registered Knowledge runtime; endpoints 503 when absent. */
|
|
91
|
+
knowledge: (key: string) => Promise<Knowledge | undefined>;
|
|
92
|
+
/** Host-selected Knowledge key. Requests cannot override it; endpoints 503 when it does not resolve. */
|
|
93
|
+
defaultKnowledgeKey?: string;
|
|
37
94
|
limits?: Partial<KnowledgeRouteLimits>;
|
|
95
|
+
/**
|
|
96
|
+
* Current title of a thread, read when a session scope is listed so its label follows renames.
|
|
97
|
+
* Sessions fall back to `session <first 8 of id>` when absent or untitled.
|
|
98
|
+
*/
|
|
99
|
+
threadTitle?: (threadId: string) => Promise<string | undefined>;
|
|
38
100
|
}
|
|
39
101
|
/** A graph node. `recordCount` is window-derived (records inside the snapshot window only). */
|
|
40
102
|
export interface KnowledgeGraphNode {
|
|
@@ -42,9 +104,12 @@ export interface KnowledgeGraphNode {
|
|
|
42
104
|
name: string;
|
|
43
105
|
kind: string;
|
|
44
106
|
description?: string;
|
|
45
|
-
scope
|
|
46
|
-
|
|
47
|
-
rung:
|
|
107
|
+
/** Null for structural scope-node members (global, not identity-scoped). */
|
|
108
|
+
scope: KnowledgeScope | null;
|
|
109
|
+
/** Deepest rung of the record's scope: org | resource | thread; null for scope nodes. */
|
|
110
|
+
rung: 'org' | 'resource' | 'thread' | null;
|
|
111
|
+
/** True for structural scope nodes (member-lens drill targets); absent for content nodes. */
|
|
112
|
+
isScope?: boolean;
|
|
48
113
|
/**
|
|
49
114
|
* True when a non-deleted pinned record's wikilinks reference ONLY this
|
|
50
115
|
* node (A9: multi-target pins mark their edges instead — the pin is
|
|
@@ -53,23 +118,30 @@ export interface KnowledgeGraphNode {
|
|
|
53
118
|
pinned: boolean;
|
|
54
119
|
/** Records owned by this node INSIDE the snapshot window (not a total). */
|
|
55
120
|
recordCount: number;
|
|
56
|
-
|
|
57
|
-
|
|
121
|
+
/** Viewer-visible direct-member counts, present only for structural scope nodes. */
|
|
122
|
+
memberCount?: number;
|
|
123
|
+
memberCountTruncated?: boolean;
|
|
124
|
+
contentNodeCount?: number;
|
|
125
|
+
childScopeCount?: number;
|
|
126
|
+
/** Omitted for a structural lens root when the adapter cannot read it back as a node. */
|
|
127
|
+
createdAt?: string;
|
|
128
|
+
updatedAt?: string;
|
|
58
129
|
}
|
|
59
130
|
export interface KnowledgeGraphEdge {
|
|
60
131
|
id: string;
|
|
61
|
-
/** The owning node of the record (its `node`). */
|
|
132
|
+
/** The owning node of the record (its `node`); the scope node for containment edges. */
|
|
62
133
|
source: string;
|
|
63
|
-
/** The wikilink-resolved node. */
|
|
134
|
+
/** The wikilink-resolved node; the contained member for containment edges. */
|
|
64
135
|
target: string;
|
|
65
136
|
/**
|
|
66
|
-
*
|
|
67
|
-
* plan's "parent link" collapses into the wikilink edge
|
|
68
|
-
*
|
|
137
|
+
* 'wikilink': derived from a record's wikilinks (the record's `node` is the
|
|
138
|
+
* edge SOURCE, so the plan's "parent link" collapses into the wikilink edge).
|
|
139
|
+
* 'contains': structural lens only — the selected scope node contains the
|
|
140
|
+
* target member, so the clicked scope is visible as its own graph root.
|
|
69
141
|
*/
|
|
70
|
-
type: 'wikilink';
|
|
71
|
-
/** The record whose text produced the edge. */
|
|
72
|
-
recordId
|
|
142
|
+
type: 'wikilink' | 'contains';
|
|
143
|
+
/** The record whose text produced the edge; absent on containment edges. */
|
|
144
|
+
recordId?: string;
|
|
73
145
|
/**
|
|
74
146
|
* True when the edge is derived from a PINNED record linking two nodes —
|
|
75
147
|
* the pin marks the relationship, so the accent lives on the edge (A9).
|
|
@@ -100,10 +172,12 @@ export interface KnowledgeGraphPayload {
|
|
|
100
172
|
records: KnowledgeGraphRecord[];
|
|
101
173
|
/** True when the node or record window cap was hit (newest-first window). */
|
|
102
174
|
truncated: boolean;
|
|
103
|
-
/**
|
|
175
|
+
/** Authorized wikilink targets outside the node window, including enough scope context for a deep-link jump. */
|
|
104
176
|
outOfWindow: Array<{
|
|
105
177
|
id: string;
|
|
106
178
|
name: string;
|
|
179
|
+
scope: KnowledgeScope;
|
|
180
|
+
rung: 'org' | 'resource' | 'thread';
|
|
107
181
|
}>;
|
|
108
182
|
/** Unique unknown names skipped once the fallback-lookup cap was hit. */
|
|
109
183
|
unresolvedCapped: {
|
|
@@ -132,12 +206,32 @@ export interface KnowledgeNodeRecordPayload {
|
|
|
132
206
|
pinned: boolean;
|
|
133
207
|
metadata?: Record<string, unknown>;
|
|
134
208
|
}
|
|
209
|
+
export interface KnowledgeActivityPayload {
|
|
210
|
+
events: Array<{
|
|
211
|
+
id: string;
|
|
212
|
+
action: string;
|
|
213
|
+
recordType: string;
|
|
214
|
+
recordId?: string;
|
|
215
|
+
scope: KnowledgeScope;
|
|
216
|
+
node: {
|
|
217
|
+
id: string;
|
|
218
|
+
name: string;
|
|
219
|
+
rung: 'org' | 'resource' | 'thread';
|
|
220
|
+
threadId?: string;
|
|
221
|
+
};
|
|
222
|
+
createdAt: string;
|
|
223
|
+
}>;
|
|
224
|
+
nextCursor?: string;
|
|
225
|
+
/** The scope has more members than the activity filter reads; events for the rest are omitted. */
|
|
226
|
+
truncated?: true;
|
|
227
|
+
}
|
|
135
228
|
export interface KnowledgeNodePayload {
|
|
136
229
|
node: {
|
|
137
230
|
id: string;
|
|
138
231
|
name: string;
|
|
139
232
|
kind: string;
|
|
140
233
|
content: string;
|
|
234
|
+
description?: string;
|
|
141
235
|
scope: KnowledgeScope;
|
|
142
236
|
rung: 'org' | 'resource' | 'thread';
|
|
143
237
|
createdAt: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledge.d.ts","sourceRoot":"","sources":["../../src/routes/knowledge.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"knowledge.d.ts","sourceRoot":"","sources":["../../src/routes/knowledge.ts"],"names":[],"mappings":"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"}
|