iranti 0.3.35 → 0.3.37
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/README.md +1 -0
- package/bin/iranti-mcp-server.js +34 -0
- package/dist/scripts/iranti-mcp.js +42 -10
- package/dist/src/api/routes/batch.d.ts +2 -1
- package/dist/src/api/routes/batch.d.ts.map +1 -1
- package/dist/src/api/routes/batch.js.map +1 -1
- package/dist/src/api/routes/dev.d.ts +2 -1
- package/dist/src/api/routes/dev.d.ts.map +1 -1
- package/dist/src/api/routes/dev.js.map +1 -1
- package/dist/src/api/server.js +1 -1
- package/package.json +4 -2
package/README.md
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
[](https://modelcontextprotocol.io)
|
|
5
5
|
[](https://www.npmjs.com/package/iranti)
|
|
6
6
|
[](https://www.npmjs.com/package/iranti)
|
|
7
|
+
[](https://glama.ai/mcp/servers/nfemmanuel/iranti)
|
|
7
8
|
|
|
8
9
|
**Shared memory for AI coding tools — Claude Code, Codex CLI, and GitHub Copilot.**
|
|
9
10
|
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Direct MCP stdio server entrypoint.
|
|
6
|
+
*
|
|
7
|
+
* This binary starts the Iranti MCP server immediately, without any CLI routing.
|
|
8
|
+
* It is the preferred entrypoint for MCP clients and tooling (e.g. mcp-proxy)
|
|
9
|
+
* that invoke the server without a subcommand argument.
|
|
10
|
+
*
|
|
11
|
+
* Equivalent to: iranti mcp
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
const fs = require('fs');
|
|
15
|
+
const path = require('path');
|
|
16
|
+
|
|
17
|
+
const root = path.resolve(__dirname, '..');
|
|
18
|
+
const distMcp = path.join(root, 'dist', 'scripts', 'iranti-mcp.js');
|
|
19
|
+
const srcMcp = path.join(root, 'scripts', 'iranti-mcp.ts');
|
|
20
|
+
|
|
21
|
+
if (fs.existsSync(distMcp)) {
|
|
22
|
+
require(distMcp);
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
try {
|
|
27
|
+
require('ts-node/register/transpile-only');
|
|
28
|
+
require(srcMcp);
|
|
29
|
+
} catch (err) {
|
|
30
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
31
|
+
process.stderr.write('Iranti MCP server is not built. Run "npm run build" first.\n');
|
|
32
|
+
process.stderr.write(message + '\n');
|
|
33
|
+
process.exit(1);
|
|
34
|
+
}
|
|
@@ -66,6 +66,30 @@ const AttendantInstance_1 = require("../src/attendant/AttendantInstance");
|
|
|
66
66
|
let runtimeHostOverride = null;
|
|
67
67
|
let shutdownPromise = null;
|
|
68
68
|
let processIranti = null;
|
|
69
|
+
// Lazy DB startup state — defers agent registration and protocol-state
|
|
70
|
+
// restoration until the first tool call instead of process start. Allows
|
|
71
|
+
// the MCP server to complete the MCP initialize/tools-list exchange without
|
|
72
|
+
// an active database, which is required for Glama's quality checks.
|
|
73
|
+
let _dbStartupDone = false;
|
|
74
|
+
let _dbStartupPromise = null;
|
|
75
|
+
async function dbStartup() {
|
|
76
|
+
if (_dbStartupDone)
|
|
77
|
+
return;
|
|
78
|
+
if (!_dbStartupPromise) {
|
|
79
|
+
_dbStartupPromise = (async () => {
|
|
80
|
+
if (!processIranti)
|
|
81
|
+
throw new Error('[iranti-mcp] dbStartup called before iranti was initialized');
|
|
82
|
+
await ensureDefaultAgent(processIranti);
|
|
83
|
+
const agentForBootstrap = defaultAgentId();
|
|
84
|
+
const bootstrapResult = await processIranti.loadProtocolStateFromLedger(agentForBootstrap);
|
|
85
|
+
if (bootstrapResult.handshakeRestored || bootstrapResult.attendRestored) {
|
|
86
|
+
process.stderr.write(`[iranti-mcp] Protocol state restored from ledger: handshake=${bootstrapResult.handshakeRestored} attend=${bootstrapResult.attendRestored}\n`);
|
|
87
|
+
}
|
|
88
|
+
_dbStartupDone = true;
|
|
89
|
+
})();
|
|
90
|
+
}
|
|
91
|
+
return _dbStartupPromise;
|
|
92
|
+
}
|
|
69
93
|
const HOST_SETUP_CHECKS = {
|
|
70
94
|
claude_code: { file: 'CLAUDE.md', command: 'iranti claude-setup .' },
|
|
71
95
|
codex: { file: 'AGENTS.md', command: 'iranti codex-setup' },
|
|
@@ -449,18 +473,10 @@ async function main() {
|
|
|
449
473
|
dbPoolMax: 3,
|
|
450
474
|
});
|
|
451
475
|
processIranti = iranti;
|
|
452
|
-
|
|
453
|
-
// Restore protocol tracker state from the session ledger so that
|
|
454
|
-
// hosts which restart the MCP subprocess per tool call (e.g. Copilot CLI)
|
|
455
|
-
// can complete a cross-process handshake → attend → search sequence.
|
|
456
|
-
const agentForBootstrap = defaultAgentId();
|
|
457
|
-
const bootstrapResult = await iranti.loadProtocolStateFromLedger(agentForBootstrap);
|
|
458
|
-
if (bootstrapResult.handshakeRestored || bootstrapResult.attendRestored) {
|
|
459
|
-
process.stderr.write(`[iranti-mcp] Protocol state restored from ledger: handshake=${bootstrapResult.handshakeRestored} attend=${bootstrapResult.attendRestored}\n`);
|
|
460
|
-
}
|
|
476
|
+
// DB startup is deferred to first tool call via dbStartup() — see above.
|
|
461
477
|
const server = new mcp_js_1.McpServer({
|
|
462
478
|
name: 'iranti-mcp',
|
|
463
|
-
version: '0.3.
|
|
479
|
+
version: '0.3.37',
|
|
464
480
|
});
|
|
465
481
|
server.registerTool('iranti_handshake', {
|
|
466
482
|
description: `Initialize or refresh an agent's working-memory brief for the current task.
|
|
@@ -480,6 +496,7 @@ Do not use this as a per-turn retrieval tool; use iranti_attend.`,
|
|
|
480
496
|
postCompaction: z.boolean().optional().describe('Set to true after context compaction to force re-delivery of operating rules. Omit on normal mid-session handshake calls — rules are only sent once per context window.'),
|
|
481
497
|
},
|
|
482
498
|
}, async ({ task, recentMessages, agent, agentId, host, postCompaction }) => {
|
|
499
|
+
await dbStartup();
|
|
483
500
|
const resolvedHost = resolveToolHost(host);
|
|
484
501
|
const resolvedAgent = resolveToolAgent(agent, agentId, resolvedHost);
|
|
485
502
|
syncRuntimeLedgerContext(iranti, resolvedHost, resolvedAgent);
|
|
@@ -539,6 +556,7 @@ checkpoint state before closing the turn.`,
|
|
|
539
556
|
agentId: z.string().optional().describe('Alias for agent. Override the default agent id.'),
|
|
540
557
|
},
|
|
541
558
|
}, async ({ latestMessage, message, currentContext, entityHints, maxFacts, forceInject, phase, pendingToolCall, toolResult, agent, agentId }) => {
|
|
559
|
+
await dbStartup();
|
|
542
560
|
const resolvedAgent = resolveToolAgent(agent, agentId);
|
|
543
561
|
syncRuntimeLedgerContext(iranti, undefined, resolvedAgent);
|
|
544
562
|
const resolvedLatestMessage = resolveAttendLatestMessage({ latestMessage, message });
|
|
@@ -656,6 +674,7 @@ open_risks, recent_actions, and recent_file_changes to those entities for handof
|
|
|
656
674
|
agentId: z.string().optional().describe('Alias for agent. Override the default agent id.'),
|
|
657
675
|
},
|
|
658
676
|
}, async ({ task, recentMessages, currentStep, nextStep, openRisks, recentOutputs, actions, fileChanges, entityTargets, notes, sessionId, agent, agentId }) => {
|
|
677
|
+
await dbStartup();
|
|
659
678
|
const resolvedAgent = resolveToolAgent(agent, agentId);
|
|
660
679
|
syncRuntimeLedgerContext(iranti, undefined, resolvedAgent);
|
|
661
680
|
const result = await iranti.checkpoint({
|
|
@@ -686,6 +705,7 @@ open_risks, recent_actions, and recent_file_changes to those entities for handof
|
|
|
686
705
|
agentId: z.string().optional().describe('Alias for agent. Override the default agent id.'),
|
|
687
706
|
},
|
|
688
707
|
}, async ({ currentContext, entityHints, maxFacts, agent, agentId }) => {
|
|
708
|
+
await dbStartup();
|
|
689
709
|
const resolvedAgent = resolveToolAgent(agent, agentId);
|
|
690
710
|
syncRuntimeLedgerContext(iranti, undefined, resolvedAgent);
|
|
691
711
|
try {
|
|
@@ -720,6 +740,7 @@ memory alone before checking Iranti.`,
|
|
|
720
740
|
agentId: z.string().optional().describe('Alias for agent. Override the default agent id for protocol tracking.'),
|
|
721
741
|
},
|
|
722
742
|
}, async ({ entity, key, agent, agentId }) => {
|
|
743
|
+
await dbStartup();
|
|
723
744
|
const resolvedAgent = resolveToolAgent(agent, agentId);
|
|
724
745
|
syncRuntimeLedgerContext(iranti, undefined, resolvedAgent);
|
|
725
746
|
try {
|
|
@@ -752,6 +773,7 @@ blockers that were resolved, values that were contested or superseded.`,
|
|
|
752
773
|
agentId: z.string().optional().describe('Alias for agent. Override the default agent id for protocol tracking.'),
|
|
753
774
|
},
|
|
754
775
|
}, async ({ entity, key, limit, includeExpired, includeContested, agent, agentId }) => {
|
|
776
|
+
await dbStartup();
|
|
755
777
|
const resolvedAgent = resolveToolAgent(agent, agentId);
|
|
756
778
|
syncRuntimeLedgerContext(iranti, undefined, resolvedAgent);
|
|
757
779
|
try {
|
|
@@ -786,6 +808,7 @@ the exact key, use this before saying you do not know.`,
|
|
|
786
808
|
agentId: z.string().optional().describe('Alias for agent. Override the default agent id for protocol tracking.'),
|
|
787
809
|
},
|
|
788
810
|
}, async ({ query, entityType, entityId, limit, lexicalWeight, vectorWeight, minScore, agent, agentId }) => {
|
|
811
|
+
await dbStartup();
|
|
789
812
|
const resolvedAgent = resolveToolAgent(agent, agentId);
|
|
790
813
|
syncRuntimeLedgerContext(iranti, undefined, resolvedAgent);
|
|
791
814
|
try {
|
|
@@ -833,6 +856,7 @@ such as issueStatus=open|resolved, severity, or resolution notes.`,
|
|
|
833
856
|
agentId: z.string().optional().describe('Alias for agent. Override the default agent id.'),
|
|
834
857
|
},
|
|
835
858
|
}, async ({ entity, key, valueJson, summary, confidence, source, propertiesJson, validFrom, requestId, agent, agentId }) => {
|
|
859
|
+
await dbStartup();
|
|
836
860
|
const target = (0, autoRemember_1.resolvePersonalWriteTarget)({ entity, key });
|
|
837
861
|
const resolvedAgent = resolveToolAgent(agent, agentId);
|
|
838
862
|
syncRuntimeLedgerContext(iranti, undefined, resolvedAgent);
|
|
@@ -902,6 +926,7 @@ as rule/<rule_id> entities and persist across sessions.`,
|
|
|
902
926
|
agentId: z.string().optional().describe('Alias for agent. Override the default agent id.'),
|
|
903
927
|
},
|
|
904
928
|
}, async ({ ruleId, rule, triggers, scope, enforcement, source, agent, agentId }) => {
|
|
929
|
+
await dbStartup();
|
|
905
930
|
const resolvedAgent = resolveToolAgent(agent, agentId);
|
|
906
931
|
syncRuntimeLedgerContext(iranti, undefined, resolvedAgent);
|
|
907
932
|
const normalizedId = ruleId.trim().toLowerCase().replace(/[^a-z0-9_-]/g, '_');
|
|
@@ -955,6 +980,7 @@ trackable issue lifecycle entry.`,
|
|
|
955
980
|
agentId: z.string().optional().describe('Alias for agent. Override the default agent id.'),
|
|
956
981
|
},
|
|
957
982
|
}, async ({ entity, issueId, title, status, summary, confidence, source, severity, detailsJson, discoveredAt, resolvedAt, resolution, tags, requestId, agent, agentId }) => {
|
|
983
|
+
await dbStartup();
|
|
958
984
|
const resolvedAgent = resolveToolAgent(agent, agentId);
|
|
959
985
|
syncRuntimeLedgerContext(iranti, undefined, resolvedAgent);
|
|
960
986
|
const result = await iranti.writeIssue({
|
|
@@ -993,6 +1019,7 @@ this for arbitrary prose or every turn.`,
|
|
|
993
1019
|
agentId: z.string().optional().describe('Alias for agent. Override the default agent id.'),
|
|
994
1020
|
},
|
|
995
1021
|
}, async ({ response, projectEntity, personalEntity, source, confidence, agent, agentId }) => {
|
|
1022
|
+
await dbStartup();
|
|
996
1023
|
const resolvedAgent = resolveToolAgent(agent, agentId);
|
|
997
1024
|
syncRuntimeLedgerContext(iranti, undefined, resolvedAgent);
|
|
998
1025
|
const result = await (0, autoRemember_1.rememberAssistantResponseFacts)({
|
|
@@ -1021,6 +1048,7 @@ this for arbitrary prose or every turn.`,
|
|
|
1021
1048
|
agentId: z.string().optional().describe('Alias for agent. Override the default agent id.'),
|
|
1022
1049
|
},
|
|
1023
1050
|
}, async ({ entity, content, confidence, source, agent, agentId }) => {
|
|
1051
|
+
await dbStartup();
|
|
1024
1052
|
const resolvedAgent = resolveToolAgent(agent, agentId);
|
|
1025
1053
|
syncRuntimeLedgerContext(iranti, undefined, resolvedAgent);
|
|
1026
1054
|
const result = await iranti.ingest({
|
|
@@ -1042,6 +1070,7 @@ this for arbitrary prose or every turn.`,
|
|
|
1042
1070
|
createdBy: z.string().optional().describe('Override the default agent id.'),
|
|
1043
1071
|
},
|
|
1044
1072
|
}, async ({ fromEntity, relationshipType, toEntity, propertiesJson, createdBy }) => {
|
|
1073
|
+
await dbStartup();
|
|
1045
1074
|
const properties = propertiesJson ? safeJsonParse(propertiesJson) : undefined;
|
|
1046
1075
|
const resolvedAgent = withDefaultAgent(createdBy);
|
|
1047
1076
|
syncRuntimeLedgerContext(iranti, undefined, resolvedAgent);
|
|
@@ -1061,6 +1090,7 @@ whether memory should be injected before graph traversal.`,
|
|
|
1061
1090
|
agentId: z.string().optional().describe('Alias for agent. Override the default agent id for protocol tracking.'),
|
|
1062
1091
|
},
|
|
1063
1092
|
}, async ({ entity, agent, agentId }) => {
|
|
1093
|
+
await dbStartup();
|
|
1064
1094
|
const resolvedAgent = resolveToolAgent(agent, agentId);
|
|
1065
1095
|
syncRuntimeLedgerContext(iranti, undefined, resolvedAgent);
|
|
1066
1096
|
try {
|
|
@@ -1085,6 +1115,7 @@ whether memory should be injected before graph traversal.`,
|
|
|
1085
1115
|
agentId: z.string().optional().describe('Alias for agent. Override the default agent id for protocol tracking.'),
|
|
1086
1116
|
},
|
|
1087
1117
|
}, async ({ entity, depth, agent, agentId }) => {
|
|
1118
|
+
await dbStartup();
|
|
1088
1119
|
const resolvedAgent = resolveToolAgent(agent, agentId);
|
|
1089
1120
|
syncRuntimeLedgerContext(iranti, undefined, resolvedAgent);
|
|
1090
1121
|
try {
|
|
@@ -1108,6 +1139,7 @@ whether memory should be injected before provenance discovery.`,
|
|
|
1108
1139
|
agentId: z.string().optional().describe('Alias for agent. Override the default agent id for protocol tracking.'),
|
|
1109
1140
|
},
|
|
1110
1141
|
}, async ({ entity, agent, agentId }) => {
|
|
1142
|
+
await dbStartup();
|
|
1111
1143
|
const resolvedAgent = resolveToolAgent(agent, agentId);
|
|
1112
1144
|
syncRuntimeLedgerContext(iranti, undefined, resolvedAgent);
|
|
1113
1145
|
try {
|
|
@@ -10,5 +10,6 @@
|
|
|
10
10
|
* `{ hit: false }` rather than erroring so callers can distinguish
|
|
11
11
|
* "not found" from "request failed".
|
|
12
12
|
*/
|
|
13
|
-
|
|
13
|
+
import { Router } from "express";
|
|
14
|
+
export declare const batchRouter: Router;
|
|
14
15
|
//# sourceMappingURL=batch.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch.d.ts","sourceRoot":"","sources":["../../../../src/api/routes/batch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"batch.d.ts","sourceRoot":"","sources":["../../../../src/api/routes/batch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,MAAM,EAAqB,MAAM,SAAS,CAAC;AAGpD,eAAO,MAAM,WAAW,EAAE,MAAiB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch.js","sourceRoot":"","sources":["../../../../src/api/routes/batch.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;AAEH,qCAAoD;AACpD,iDAA6C;AAEhC,QAAA,WAAW,
|
|
1
|
+
{"version":3,"file":"batch.js","sourceRoot":"","sources":["../../../../src/api/routes/batch.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,5 +8,6 @@
|
|
|
8
8
|
* POST /dev/reset — delete all knowledge entries written by the `benchmark`
|
|
9
9
|
* agent. Keeps everything else intact.
|
|
10
10
|
*/
|
|
11
|
-
|
|
11
|
+
import { Router } from "express";
|
|
12
|
+
export declare const devRouter: Router;
|
|
12
13
|
//# sourceMappingURL=dev.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../../../src/api/routes/dev.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../../../src/api/routes/dev.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,MAAM,EAAqB,MAAM,SAAS,CAAC;AAGpD,eAAO,MAAM,SAAS,EAAE,MAAiB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../../../src/api/routes/dev.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAEH,qCAAoD;AACpD,iDAA6C;AAEhC,QAAA,SAAS,
|
|
1
|
+
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../../../src/api/routes/dev.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAEH,qCAAoD;AACpD,iDAA6C;AAEhC,QAAA,SAAS,GAAW,IAAA,gBAAM,GAAE,CAAC;AAE1C;;;GAGG;AACH,iBAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;IAC7D,IAAI,CAAC;QACH,uCAAuC;QACvC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;YAC1C,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mCAAmC,EAAE,CAAC,CAAC;QAC9E,CAAC;QAED,MAAM,EAAE,GAAG,IAAA,cAAK,GAAE,CAAC;QAEnB,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC;YAChD,KAAK,EAAE;gBACL,SAAS,EAAE,WAAW;aACvB;SACF,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IACvD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC;IAC9F,CAAC;AACH,CAAC,CAAC,CAAC"}
|
package/dist/src/api/server.js
CHANGED
|
@@ -71,7 +71,7 @@ const RUNTIME_AUTHORITY = (0, runtimeLifecycle_1.resolveRuntimeAuthorityFromEnv)
|
|
|
71
71
|
const INSTANCE_DIR = RUNTIME_AUTHORITY.instanceDir;
|
|
72
72
|
const INSTANCE_RUNTIME_FILE = RUNTIME_AUTHORITY.runtimeFile;
|
|
73
73
|
const INSTANCE_NAME = process.env.IRANTI_INSTANCE_NAME?.trim() || (INSTANCE_DIR ? path_1.default.basename(INSTANCE_DIR) : 'adhoc');
|
|
74
|
-
const VERSION = '0.3.
|
|
74
|
+
const VERSION = '0.3.37';
|
|
75
75
|
const PORT_RAW = (process.env.IRANTI_PORT ?? '3001').trim();
|
|
76
76
|
const PORT = Number.parseInt(PORT_RAW, 10);
|
|
77
77
|
const runtimeMetadataHealth = (0, healthChecks_1.createHealthCheckState)({
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "iranti",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.37",
|
|
4
4
|
"mcpName": "io.github.nfemmanuel/iranti",
|
|
5
5
|
"description": "Memory infrastructure for multi-agent AI systems",
|
|
6
6
|
"main": "dist/src/sdk/index.js",
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
"dist/scripts/api-key-list.js",
|
|
18
18
|
"dist/scripts/api-key-revoke.js",
|
|
19
19
|
"bin/iranti.js",
|
|
20
|
+
"bin/iranti-mcp-server.js",
|
|
20
21
|
"prisma.config.ts",
|
|
21
22
|
"prisma/schema.prisma",
|
|
22
23
|
"prisma/migrations/**/*",
|
|
@@ -25,7 +26,8 @@
|
|
|
25
26
|
"LICENSE"
|
|
26
27
|
],
|
|
27
28
|
"bin": {
|
|
28
|
-
"iranti": "bin/iranti.js"
|
|
29
|
+
"iranti": "bin/iranti.js",
|
|
30
|
+
"iranti-mcp-server": "bin/iranti-mcp-server.js"
|
|
29
31
|
},
|
|
30
32
|
"type": "commonjs",
|
|
31
33
|
"engines": {
|