@adonis-agora/agent 0.17.0 → 0.19.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 (82) hide show
  1. package/CHANGELOG.md +151 -0
  2. package/README.md +210 -0
  3. package/dist/configure.d.ts +4 -3
  4. package/dist/configure.d.ts.map +1 -1
  5. package/dist/configure.js +5 -3
  6. package/dist/configure.js.map +1 -1
  7. package/dist/providers/agent_provider.d.ts +6 -4
  8. package/dist/providers/agent_provider.d.ts.map +1 -1
  9. package/dist/providers/agent_provider.js +23 -16
  10. package/dist/providers/agent_provider.js.map +1 -1
  11. package/dist/providers/mcp_provider.d.ts +22 -0
  12. package/dist/providers/mcp_provider.d.ts.map +1 -0
  13. package/dist/providers/mcp_provider.js +229 -0
  14. package/dist/providers/mcp_provider.js.map +1 -0
  15. package/dist/src/agent-deps-factory.d.ts +6 -0
  16. package/dist/src/agent-deps-factory.d.ts.map +1 -1
  17. package/dist/src/agent-deps-factory.js +5 -1
  18. package/dist/src/agent-deps-factory.js.map +1 -1
  19. package/dist/src/agent-deps.d.ts +6 -1
  20. package/dist/src/agent-deps.d.ts.map +1 -1
  21. package/dist/src/agent-deps.js.map +1 -1
  22. package/dist/src/agent-loop.d.ts +11 -2
  23. package/dist/src/agent-loop.d.ts.map +1 -1
  24. package/dist/src/agent-loop.js +69 -2
  25. package/dist/src/agent-loop.js.map +1 -1
  26. package/dist/src/data/tenant-scope.d.ts +16 -1
  27. package/dist/src/data/tenant-scope.d.ts.map +1 -1
  28. package/dist/src/data/tenant-scope.js +50 -7
  29. package/dist/src/data/tenant-scope.js.map +1 -1
  30. package/dist/src/define_config.d.ts +25 -9
  31. package/dist/src/define_config.d.ts.map +1 -1
  32. package/dist/src/define_config.js.map +1 -1
  33. package/dist/src/governance-gate.d.ts +24 -8
  34. package/dist/src/governance-gate.d.ts.map +1 -1
  35. package/dist/src/governance-gate.js +14 -3
  36. package/dist/src/governance-gate.js.map +1 -1
  37. package/dist/src/index.d.ts +2 -1
  38. package/dist/src/index.d.ts.map +1 -1
  39. package/dist/src/index.js +5 -1
  40. package/dist/src/index.js.map +1 -1
  41. package/dist/src/mcp/auth.d.ts +90 -0
  42. package/dist/src/mcp/auth.d.ts.map +1 -0
  43. package/dist/src/mcp/auth.js +108 -0
  44. package/dist/src/mcp/auth.js.map +1 -0
  45. package/dist/src/mcp/define_config.d.ts +64 -0
  46. package/dist/src/mcp/define_config.d.ts.map +1 -0
  47. package/dist/src/mcp/define_config.js +8 -0
  48. package/dist/src/mcp/define_config.js.map +1 -0
  49. package/dist/src/mcp/index.d.ts +7 -0
  50. package/dist/src/mcp/index.d.ts.map +1 -0
  51. package/dist/src/mcp/index.js +4 -0
  52. package/dist/src/mcp/index.js.map +1 -0
  53. package/dist/src/mcp/server.d.ts +47 -0
  54. package/dist/src/mcp/server.d.ts.map +1 -0
  55. package/dist/src/mcp/server.js +94 -0
  56. package/dist/src/mcp/server.js.map +1 -0
  57. package/dist/src/rag/chunk.d.ts +35 -0
  58. package/dist/src/rag/chunk.d.ts.map +1 -1
  59. package/dist/src/rag/chunk.js +60 -0
  60. package/dist/src/rag/chunk.js.map +1 -1
  61. package/dist/src/rag/index.d.ts +1 -1
  62. package/dist/src/rag/index.d.ts.map +1 -1
  63. package/dist/src/rag/index.js +1 -1
  64. package/dist/src/rag/index.js.map +1 -1
  65. package/dist/src/rag/memory-vector-store.d.ts +20 -1
  66. package/dist/src/rag/memory-vector-store.d.ts.map +1 -1
  67. package/dist/src/rag/memory-vector-store.js +56 -1
  68. package/dist/src/rag/memory-vector-store.js.map +1 -1
  69. package/dist/src/rag/pg-vector-store.d.ts +32 -1
  70. package/dist/src/rag/pg-vector-store.d.ts.map +1 -1
  71. package/dist/src/rag/pg-vector-store.js +69 -0
  72. package/dist/src/rag/pg-vector-store.js.map +1 -1
  73. package/dist/src/rag/qdrant-store.d.ts +81 -2
  74. package/dist/src/rag/qdrant-store.d.ts.map +1 -1
  75. package/dist/src/rag/qdrant-store.js +148 -1
  76. package/dist/src/rag/qdrant-store.js.map +1 -1
  77. package/dist/src/rag/vector-store.d.ts +144 -0
  78. package/dist/src/rag/vector-store.d.ts.map +1 -1
  79. package/dist/src/rag/vector-store.js +73 -0
  80. package/dist/src/rag/vector-store.js.map +1 -1
  81. package/dist/stubs/config/mcp.stub +42 -0
  82. package/package.json +26 -10
@@ -1 +1 @@
1
- {"version":3,"file":"qdrant-store.js","sourceRoot":"","sources":["../../../src/rag/qdrant-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"qdrant-store.js","sourceRoot":"","sources":["../../../src/rag/qdrant-store.ts"],"names":[],"mappings":"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"}
@@ -47,7 +47,151 @@ export interface VectorStore {
47
47
  * by a metadata `filter`.
48
48
  */
49
49
  listDocuments(filter?: Record<string, unknown>): Promise<IndexedDocument[]>;
50
+ /**
51
+ * OPTIONAL capability. Rewrite a document's metadata **without touching its text or its embeddings**.
52
+ *
53
+ * The update path for a dimension that is genuinely mutable — which collection a document belongs to,
54
+ * who may see it, what it was reclassified as — rather than derived from its content. Without this the
55
+ * only way to change one string is {@link VectorStore.upsert}, which needs the text and a fresh
56
+ * embedding, so a consumer whose documents get re-classified has two bad options: re-embed a whole
57
+ * document to change a label (paying the model bill for a reclassification), or refuse to stamp the
58
+ * mutable dimension onto chunks at all and resolve it at query time — turning a filter the index could
59
+ * have applied into a join the caller has to do. The second is what actually happens, and it is what
60
+ * makes an actor-derived retrieval filter unaffordable: such a filter only pays off if the dimensions
61
+ * it filters on are on the chunks AND can be corrected when they change.
62
+ *
63
+ * `patch` is applied to EVERY chunk of the document (metadata is a document-level property that
64
+ * happens to be stored per chunk), with the **shallow JSON Merge Patch** semantics spelled out on
65
+ * {@link MetadataPatch} — in those words because "patch" alone does not tell a caller whether `null`
66
+ * deletes a key or stores a null. It deletes.
67
+ *
68
+ * Resolves to **the number of chunks written**. An unknown `documentId` writes nothing and returns
69
+ * `0` rather than throwing, matching {@link VectorStore.remove}, which is likewise silent on a
70
+ * document that is not there: this is a reconciliation-shaped call, driven by a loop diffing a source
71
+ * of truth against the index, and such a loop races with ingestion and deletion by construction. A
72
+ * patch with no effective keys also writes nothing and returns `0` — the count is chunks *written*,
73
+ * not chunks *matched*.
74
+ *
75
+ * Optional so a host-written store still compiles; feature-detect with `store.updateMetadata?.(…)`.
76
+ * All three stores this package ships implement it.
77
+ */
78
+ updateMetadata?(documentId: string, patch: MetadataPatch): Promise<number>;
79
+ /**
80
+ * OPTIONAL capability. The distinct source document ids currently indexed, optionally narrowed by a
81
+ * metadata `filter` — {@link VectorStore.listDocuments} without the metadata.
82
+ *
83
+ * Use it when the id set is all you need: a reconciliation diff against your source of truth, a count,
84
+ * a delete list. `listDocuments` has to fetch and JSON-parse a metadata blob **per chunk** just to
85
+ * collapse it to one entry per document, which on a large corpus is most of its cost; implementations
86
+ * here are expected to skip that entirely (a `SELECT DISTINCT` of the id expression, a scroll that
87
+ * transfers one payload key).
88
+ *
89
+ * Filter semantics are **identical to {@link VectorStore.search}** — same builder, empty-array deny
90
+ * included, so an empty-array value yields `[]`.
91
+ *
92
+ * Optional so a host-written store still compiles; feature-detect with `store.listDocumentIds?.(…)`.
93
+ */
94
+ listDocumentIds?(filter?: Record<string, unknown>): Promise<string[]>;
95
+ /**
96
+ * OPTIONAL capability. Delete every chunk matching a metadata `filter` in ONE store round trip, and
97
+ * resolve the number of **chunks** removed.
98
+ *
99
+ * The collection-maintenance primitive: dropping a collection, evicting a tenant, purging a retired
100
+ * audience. Without it, doing any of those means `listDocuments()` — which materialises per-chunk
101
+ * metadata only to collapse it — followed by one {@link VectorStore.remove} per document, so N+1 round
102
+ * trips where one filtered delete would do. (That the Qdrant adapter already needed a defensive page
103
+ * cap on its `listDocuments` scroll is the tell: the enumeration API was being used for something it is
104
+ * not shaped for.)
105
+ *
106
+ * **What it removes is exactly what a {@link VectorStore.search} carrying the same filter could
107
+ * reach** — every implementation here builds the delete predicate with the very same filter builder its
108
+ * `search` uses, so the two cannot drift. It is chunk-scoped, like `search`: for any corpus built by
109
+ * {@link import('./ingest.js').chunkDocuments} — which stamps the document's metadata on every chunk —
110
+ * that is the same thing as whole documents. In the pathological case where chunks of one document
111
+ * carry *different* metadata, this removes the matching chunks and leaves the rest, which is the safe
112
+ * direction: it can never remove more than the filter reaches.
113
+ *
114
+ * Two guard rails, because this is the only method here that destroys data:
115
+ *
116
+ * - **The empty-array deny is honoured, and it means "delete nothing".** `removeWhere({ audience: [] })`
117
+ * removes zero chunks, exactly as a search with that filter returns none. Treating a deny as "no
118
+ * filter" would delete the whole corpus — precisely inverted from what the caller asked for.
119
+ * - **The filter must be non-empty.** `removeWhere({})` throws {@link UnsafeRemovalError} instead of
120
+ * wiping the store, because an empty object is overwhelmingly more likely to be a filter that got
121
+ * built wrong (a dropped key, an `undefined` scope that vanished on serialisation) than a deliberate
122
+ * request to delete everything. Deliberate mass deletion stays available and stays explicit: loop
123
+ * {@link VectorStore.remove} over {@link VectorStore.listDocumentIds}, or use the backend's own drop.
124
+ *
125
+ * Optional so a host-written store still compiles; feature-detect with `store.removeWhere?.(…)`.
126
+ */
127
+ removeWhere?(filter: Record<string, unknown>): Promise<number>;
50
128
  }
129
+ /**
130
+ * A destructive call was refused because its scope could not be trusted. Thrown by
131
+ * {@link VectorStore.removeWhere} — never for a filter that merely matched nothing (that is a legitimate
132
+ * result of `0`), only for one that would have deleted *more* than the caller plausibly meant.
133
+ */
134
+ export declare class UnsafeRemovalError extends Error {
135
+ /** Why the removal was refused. */
136
+ readonly reason: 'empty-filter';
137
+ constructor(
138
+ /** Why the removal was refused. */
139
+ reason: 'empty-filter', message: string);
140
+ }
141
+ /**
142
+ * Guard for {@link VectorStore.removeWhere}: refuse a filter that scopes nothing. Shared so all three
143
+ * stores refuse the same input with the same error, rather than each deciding for itself how much of the
144
+ * corpus an empty object means.
145
+ */
146
+ export declare function assertRemovalFilter(filter: Record<string, unknown>): void;
147
+ /**
148
+ * Does this filter deny everything? True when any key carries an **empty array** — no value is a member
149
+ * of the empty set, so nothing can match (see {@link import('./filter.js').matchesFilter}).
150
+ *
151
+ * Every filter builder in this package already encodes that (`matchesFilter` returns false,
152
+ * `buildMetadataWhere` emits a `false` clause, `buildQdrantFilter` emits `any: []`), and the live specs
153
+ * confirm the backends agree. {@link VectorStore.removeWhere} checks it anyway and short-circuits before
154
+ * issuing anything: for the one operation where misreading a deny as "no filter" destroys the corpus, the
155
+ * deny should not depend on a backend's interpretation of an empty set.
156
+ */
157
+ export declare function filterDeniesAll(filter: Record<string, unknown>): boolean;
158
+ /**
159
+ * A metadata patch, applied by {@link VectorStore.updateMetadata}. **Shallow JSON Merge Patch**
160
+ * (RFC 7396, restricted to one level):
161
+ *
162
+ * - a key with a **non-null** value **replaces** that key's value outright. Values are replaced
163
+ * *wholesale*, arrays and nested objects included — that is the "shallow" part: `{ tags: ['b'] }`
164
+ * makes `tags` exactly `['b']`, it does not append to it, and `{ acl: { read: [] } }` replaces the
165
+ * whole `acl` object rather than merging into it. To edit one field of a nested object, send the
166
+ * nested object you want.
167
+ * - a key with the value **`null` DELETES that key**. This is the one semantic a caller cannot guess and
168
+ * will get wrong in the destructive direction, so: `null` removes, it does not store a JSON null.
169
+ * - a key set to `undefined` is **ignored** — treated as absent, since JSON has no `undefined`. A patch
170
+ * whose every value is `undefined` therefore writes nothing.
171
+ * - a key **not present** in the patch is left alone. That is the point: this is a partial update, not a
172
+ * replacement of the metadata object.
173
+ *
174
+ * A chunk with no metadata at all gains an object on its first patch, and metadata stays an object
175
+ * afterwards — possibly the empty one, if every key was deleted.
176
+ */
177
+ export type MetadataPatch = Record<string, unknown>;
178
+ /**
179
+ * The keys of a `patch` that will actually be written — every key whose value is not `undefined`. Shared
180
+ * by all three stores so "an empty patch writes nothing and returns 0" means the same thing on each, and
181
+ * so none of them issues a round trip for a no-op.
182
+ */
183
+ export declare function effectivePatchKeys(patch: MetadataPatch): string[];
184
+ /**
185
+ * Apply a {@link MetadataPatch} to one chunk's metadata, returning the new metadata object. The single
186
+ * definition of the merge, shared by every store that can do the merge in JS — so the semantics cannot
187
+ * drift between adapters. Pure: the input object is never mutated.
188
+ *
189
+ * Always returns an object (never `undefined`), so a patched chunk has metadata even if it had none
190
+ * before, and an all-deleting patch leaves `{}` rather than a hole. `{}` and absent metadata are
191
+ * indistinguishable to {@link import('./filter.js').matchesFilter} and to pgvector's `@>`, so this costs
192
+ * a caller nothing.
193
+ */
194
+ export declare function applyMetadataPatch(metadata: Record<string, unknown> | undefined, patch: MetadataPatch): Record<string, unknown>;
51
195
  /** A distinct source document as seen by the index — its id plus a representative chunk's metadata. */
52
196
  export interface IndexedDocument {
53
197
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"vector-store.d.ts","sourceRoot":"","sources":["../../../src/rag/vector-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEnD,iGAAiG;AACjG,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAC9E;;;;;;OAMG;IACH,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C;;;;OAIG;IACH,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;CAC7E;AAED,uGAAuG;AACvG,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,gFAAgF;AAChF,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEpD"}
1
+ {"version":3,"file":"vector-store.d.ts","sourceRoot":"","sources":["../../../src/rag/vector-store.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,76 @@
1
+ /**
2
+ * A destructive call was refused because its scope could not be trusted. Thrown by
3
+ * {@link VectorStore.removeWhere} — never for a filter that merely matched nothing (that is a legitimate
4
+ * result of `0`), only for one that would have deleted *more* than the caller plausibly meant.
5
+ */
6
+ export class UnsafeRemovalError extends Error {
7
+ reason;
8
+ constructor(
9
+ /** Why the removal was refused. */
10
+ reason, message) {
11
+ super(message);
12
+ this.reason = reason;
13
+ this.name = 'UnsafeRemovalError';
14
+ }
15
+ }
16
+ /**
17
+ * Guard for {@link VectorStore.removeWhere}: refuse a filter that scopes nothing. Shared so all three
18
+ * stores refuse the same input with the same error, rather than each deciding for itself how much of the
19
+ * corpus an empty object means.
20
+ */
21
+ export function assertRemovalFilter(filter) {
22
+ if (Object.keys(filter).length === 0) {
23
+ throw new UnsafeRemovalError('empty-filter', 'removeWhere refused an empty filter: it would delete every chunk in the store, which is far ' +
24
+ 'more likely to be a filter built wrong than a deliberate request. For a deliberate wipe, ' +
25
+ 'loop `remove` over `listDocumentIds()`, or drop the table/collection.');
26
+ }
27
+ }
28
+ /**
29
+ * Does this filter deny everything? True when any key carries an **empty array** — no value is a member
30
+ * of the empty set, so nothing can match (see {@link import('./filter.js').matchesFilter}).
31
+ *
32
+ * Every filter builder in this package already encodes that (`matchesFilter` returns false,
33
+ * `buildMetadataWhere` emits a `false` clause, `buildQdrantFilter` emits `any: []`), and the live specs
34
+ * confirm the backends agree. {@link VectorStore.removeWhere} checks it anyway and short-circuits before
35
+ * issuing anything: for the one operation where misreading a deny as "no filter" destroys the corpus, the
36
+ * deny should not depend on a backend's interpretation of an empty set.
37
+ */
38
+ export function filterDeniesAll(filter) {
39
+ return Object.values(filter).some((value) => Array.isArray(value) && value.length === 0);
40
+ }
41
+ /**
42
+ * The keys of a `patch` that will actually be written — every key whose value is not `undefined`. Shared
43
+ * by all three stores so "an empty patch writes nothing and returns 0" means the same thing on each, and
44
+ * so none of them issues a round trip for a no-op.
45
+ */
46
+ export function effectivePatchKeys(patch) {
47
+ return Object.keys(patch).filter((key) => patch[key] !== undefined);
48
+ }
49
+ /**
50
+ * Apply a {@link MetadataPatch} to one chunk's metadata, returning the new metadata object. The single
51
+ * definition of the merge, shared by every store that can do the merge in JS — so the semantics cannot
52
+ * drift between adapters. Pure: the input object is never mutated.
53
+ *
54
+ * Always returns an object (never `undefined`), so a patched chunk has metadata even if it had none
55
+ * before, and an all-deleting patch leaves `{}` rather than a hole. `{}` and absent metadata are
56
+ * indistinguishable to {@link import('./filter.js').matchesFilter} and to pgvector's `@>`, so this costs
57
+ * a caller nothing.
58
+ */
59
+ export function applyMetadataPatch(metadata, patch) {
60
+ const next = { ...metadata };
61
+ for (const key of Object.keys(patch)) {
62
+ const value = patch[key];
63
+ if (value === undefined) {
64
+ continue; // JSON has no `undefined`; treat it as "key not present".
65
+ }
66
+ if (value === null) {
67
+ delete next[key]; // JSON Merge Patch: null REMOVES the key.
68
+ continue;
69
+ }
70
+ next[key] = value; // Replaced wholesale — shallow, so no recursive merge.
71
+ }
72
+ return next;
73
+ }
1
74
  /** Collapse a chunk id (`${documentId}#<n>`) back to its source document id. */
2
75
  export function documentIdOf(chunkId) {
3
76
  return chunkId.replace(/#\d+$/, '');
@@ -1 +1 @@
1
- {"version":3,"file":"vector-store.js","sourceRoot":"","sources":["../../../src/rag/vector-store.ts"],"names":[],"mappings":"AA4DA,gFAAgF;AAChF,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"vector-store.js","sourceRoot":"","sources":["../../../src/rag/vector-store.ts"],"names":[],"mappings":"AAoIA;;;;GAIG;AACH,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAGhC;IAFX;IACE,mCAAmC;IAC1B,MAAsB,EAC/B,OAAe;QAEf,KAAK,CAAC,OAAO,CAAC,CAAC;QAHN,WAAM,GAAN,MAAM,CAAgB;QAI/B,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAA+B;IACjE,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,kBAAkB,CAC1B,cAAc,EACd,8FAA8F;YAC5F,2FAA2F;YAC3F,uEAAuE,CAC1E,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAAC,MAA+B;IAC7D,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;AAC3F,CAAC;AAuBD;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAoB;IACrD,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC;AACtE,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,kBAAkB,CAChC,QAA6C,EAC7C,KAAoB;IAEpB,MAAM,IAAI,GAA4B,EAAE,GAAG,QAAQ,EAAE,CAAC;IACtD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,SAAS,CAAC,0DAA0D;QACtE,CAAC;QACD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,0CAA0C;YAC5D,SAAS;QACX,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,uDAAuD;IAC5E,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAQD,gFAAgF;AAChF,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AACtC,CAAC"}
@@ -0,0 +1,42 @@
1
+ {{{
2
+ exports({ to: app.configPath('mcp.ts') })
3
+ }}}
4
+ import { defineMcpConfig, authKitAuth } from '@adonis-agora/agent/mcp'
5
+ // import { apiKeyAuth } from '@adonis-agora/agent/mcp'
6
+
7
+ /**
8
+ * Configuration for the MCP (Model Context Protocol) endpoint. The provider exposes the agent's tool
9
+ * registry over Streamable HTTP: `tools/list` mirrors the tools the acting actor may call and
10
+ * `tools/call` runs them through the same role-checked registry the agent loop uses.
11
+ *
12
+ * Requires `@adonis-agora/agent`'s agent provider (which owns the ToolRegistry singleton) to be
13
+ * registered. Register the MCP provider in adonisrc.ts:
14
+ *
15
+ * providers: [
16
+ * ...existing,
17
+ * () => import('@adonis-agora/agent/mcp_provider'),
18
+ * ]
19
+ *
20
+ * The endpoint mounts at `/mcp`. When `auth` exposes OAuth metadata (authKitAuth), MCP clients discover
21
+ * the login flow at `/.well-known/oauth-protected-resource/mcp`.
22
+ */
23
+ export default defineMcpConfig({
24
+ name: 'Agent MCP Server',
25
+ version: '1.0.0',
26
+
27
+ // path: 'mcp',
28
+
29
+ // Authenticate MCP clients against @adonis-agora/authkit-server (OAuth OIDC): verifies the bearer
30
+ // token against the authkit provider and advertises OAuth metadata so clients can log in.
31
+ auth: authKitAuth(),
32
+
33
+ // Or static API keys for trusted gateway integrations (no OAuth metadata):
34
+ // auth: apiKeyAuth({ apiKeys: ['mcp_xxx'] }),
35
+
36
+ // Open/dev mode — run every request under a fixed identity. Fail-closed: omit this (and auth) and
37
+ // requests are rejected 401.
38
+ // actor: { id: 'mcp', roles: ['ADMIN'] },
39
+
40
+ // Restrict the exposed tools to an allow-list by name.
41
+ // allowedTools: ['calcular_estatisticas', 'estatistica_inferencial'],
42
+ })
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adonis-agora/agent",
3
- "version": "0.17.0",
3
+ "version": "0.19.0",
4
4
  "description": "Governed, durable-backed AI agent (chat + tool-calling + governance) for AdonisJS — part of the Agora ecosystem.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -23,6 +23,16 @@
23
23
  "import": "./dist/src/ai-sdk/index.js",
24
24
  "default": "./dist/src/ai-sdk/index.js"
25
25
  },
26
+ "./mcp": {
27
+ "types": "./dist/src/mcp/index.d.ts",
28
+ "import": "./dist/src/mcp/index.js",
29
+ "default": "./dist/src/mcp/index.js"
30
+ },
31
+ "./mcp_provider": {
32
+ "types": "./dist/providers/mcp_provider.d.ts",
33
+ "import": "./dist/providers/mcp_provider.js",
34
+ "default": "./dist/providers/mcp_provider.js"
35
+ },
26
36
  "./testing": {
27
37
  "types": "./dist/src/testing/index.d.ts",
28
38
  "import": "./dist/src/testing/index.js",
@@ -96,13 +106,14 @@
96
106
  ],
97
107
  "sideEffects": false,
98
108
  "dependencies": {
109
+ "@modelcontextprotocol/sdk": "^1.30.0",
99
110
  "@standard-schema/spec": "^1.0.0"
100
111
  },
101
112
  "peerDependencies": {
102
- "@adonis-agora/authz": "^0.4.0",
103
- "@adonis-agora/diagnostics": "^0.1.0",
104
- "@adonis-agora/durable": "^0.8.0",
105
- "@adonis-agora/telescope": "^0.4.0",
113
+ "@adonis-agora/authz": ">=0.4.2 <1.0.0",
114
+ "@adonis-agora/diagnostics": ">=0.1.0 <1.0.0",
115
+ "@adonis-agora/durable": ">=0.8.0 <1.0.0",
116
+ "@adonis-agora/telescope": ">=0.4.0 <1.0.0",
106
117
  "@adonisjs/assembler": "^8.4.0",
107
118
  "@adonisjs/core": "^7.3.0",
108
119
  "@adonisjs/lucid": "^22.4.0",
@@ -155,7 +166,10 @@
155
166
  }
156
167
  },
157
168
  "devDependencies": {
158
- "@adonis-agora/durable": "^0.8.0",
169
+ "@adonis-agora/authz": "^0.10.1",
170
+ "@adonis-agora/diagnostics": "^0.2.5",
171
+ "@adonis-agora/durable": "^0.20.0",
172
+ "@adonis-agora/telescope": "^0.6.0",
159
173
  "@adonisjs/assembler": "^8.4.0",
160
174
  "@adonisjs/core": "^7.3.0",
161
175
  "@adonisjs/lucid": "^22.4.0",
@@ -172,7 +186,7 @@
172
186
  "zod": "^3.25.0"
173
187
  },
174
188
  "engines": {
175
- "node": ">=22.0.0"
189
+ "node": ">=22.0.0 <23"
176
190
  },
177
191
  "keywords": [
178
192
  "adonisjs",
@@ -187,10 +201,12 @@
187
201
  "agora"
188
202
  ],
189
203
  "scripts": {
190
- "build": "tsc -p tsconfig.json && pnpm run copy:stubs",
191
- "copy:stubs": "mkdir -p dist/stubs/config dist/stubs/database/migrations && cp stubs/config/agent.stub dist/stubs/config/agent.stub && cp -r stubs/database/migrations/. dist/stubs/database/migrations/",
204
+ "build": "pnpm run clean && tsc -p tsconfig.build.json && pnpm run copy:stubs && pnpm run check:dist",
205
+ "check:dist": "node ../../scripts/assert-build-output.mjs dist src/index.js",
206
+ "clean": "rm -rf dist",
207
+ "copy:stubs": "mkdir -p dist/stubs/config dist/stubs/database/migrations && cp stubs/config/agent.stub dist/stubs/config/agent.stub && cp stubs/config/mcp.stub dist/stubs/config/mcp.stub && cp -r stubs/database/migrations/. dist/stubs/database/migrations/",
192
208
  "test": "vitest run --passWithNoTests",
193
209
  "test:watch": "vitest",
194
- "typecheck": "tsc -p tsconfig.json --noEmit"
210
+ "typecheck": "tsc -p tsconfig.json --noEmit && tsc -p tsconfig.tests.json"
195
211
  }
196
212
  }