archmantic 1.0.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 (175) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +172 -0
  3. package/dist/agent.d.ts +20 -0
  4. package/dist/agent.d.ts.map +1 -0
  5. package/dist/agent.js +239 -0
  6. package/dist/agent.js.map +1 -0
  7. package/dist/analyze/datamodel.d.ts +9 -0
  8. package/dist/analyze/datamodel.d.ts.map +1 -0
  9. package/dist/analyze/datamodel.js +19 -0
  10. package/dist/analyze/datamodel.js.map +1 -0
  11. package/dist/analyze/derive.d.ts +21 -0
  12. package/dist/analyze/derive.d.ts.map +1 -0
  13. package/dist/analyze/derive.js +211 -0
  14. package/dist/analyze/derive.js.map +1 -0
  15. package/dist/analyze/drizzle.d.ts +3 -0
  16. package/dist/analyze/drizzle.d.ts.map +1 -0
  17. package/dist/analyze/drizzle.js +83 -0
  18. package/dist/analyze/drizzle.js.map +1 -0
  19. package/dist/analyze/endpoints.d.ts +3 -0
  20. package/dist/analyze/endpoints.d.ts.map +1 -0
  21. package/dist/analyze/endpoints.js +167 -0
  22. package/dist/analyze/endpoints.js.map +1 -0
  23. package/dist/analyze/fs-util.d.ts +3 -0
  24. package/dist/analyze/fs-util.d.ts.map +1 -0
  25. package/dist/analyze/fs-util.js +44 -0
  26. package/dist/analyze/fs-util.js.map +1 -0
  27. package/dist/analyze/incremental.d.ts +12 -0
  28. package/dist/analyze/incremental.d.ts.map +1 -0
  29. package/dist/analyze/incremental.js +102 -0
  30. package/dist/analyze/incremental.js.map +1 -0
  31. package/dist/analyze/index.d.ts +5 -0
  32. package/dist/analyze/index.d.ts.map +1 -0
  33. package/dist/analyze/index.js +49 -0
  34. package/dist/analyze/index.js.map +1 -0
  35. package/dist/analyze/parse-util.d.ts +10 -0
  36. package/dist/analyze/parse-util.d.ts.map +1 -0
  37. package/dist/analyze/parse-util.js +47 -0
  38. package/dist/analyze/parse-util.js.map +1 -0
  39. package/dist/analyze/prisma.d.ts +4 -0
  40. package/dist/analyze/prisma.d.ts.map +1 -0
  41. package/dist/analyze/prisma.js +97 -0
  42. package/dist/analyze/prisma.js.map +1 -0
  43. package/dist/analyze/sql.d.ts +3 -0
  44. package/dist/analyze/sql.d.ts.map +1 -0
  45. package/dist/analyze/sql.js +110 -0
  46. package/dist/analyze/sql.js.map +1 -0
  47. package/dist/analyze/stack.d.ts +4 -0
  48. package/dist/analyze/stack.d.ts.map +1 -0
  49. package/dist/analyze/stack.js +94 -0
  50. package/dist/analyze/stack.js.map +1 -0
  51. package/dist/analyze/tier0.d.ts +7 -0
  52. package/dist/analyze/tier0.d.ts.map +1 -0
  53. package/dist/analyze/tier0.js +57 -0
  54. package/dist/analyze/tier0.js.map +1 -0
  55. package/dist/analyze/tier1.d.ts +13 -0
  56. package/dist/analyze/tier1.d.ts.map +1 -0
  57. package/dist/analyze/tier1.js +144 -0
  58. package/dist/analyze/tier1.js.map +1 -0
  59. package/dist/analyze/tier2.d.ts +14 -0
  60. package/dist/analyze/tier2.d.ts.map +1 -0
  61. package/dist/analyze/tier2.js +231 -0
  62. package/dist/analyze/tier2.js.map +1 -0
  63. package/dist/analyze/walk.d.ts +3 -0
  64. package/dist/analyze/walk.d.ts.map +1 -0
  65. package/dist/analyze/walk.js +50 -0
  66. package/dist/analyze/walk.js.map +1 -0
  67. package/dist/auth.d.ts +12 -0
  68. package/dist/auth.d.ts.map +1 -0
  69. package/dist/auth.js +61 -0
  70. package/dist/auth.js.map +1 -0
  71. package/dist/cli.d.ts +3 -0
  72. package/dist/cli.d.ts.map +1 -0
  73. package/dist/cli.js +787 -0
  74. package/dist/cli.js.map +1 -0
  75. package/dist/cloud/api.d.ts +20 -0
  76. package/dist/cloud/api.d.ts.map +1 -0
  77. package/dist/cloud/api.js +81 -0
  78. package/dist/cloud/api.js.map +1 -0
  79. package/dist/cloud/index.d.ts +4 -0
  80. package/dist/cloud/index.d.ts.map +1 -0
  81. package/dist/cloud/index.js +20 -0
  82. package/dist/cloud/index.js.map +1 -0
  83. package/dist/cloud/store.d.ts +34 -0
  84. package/dist/cloud/store.d.ts.map +1 -0
  85. package/dist/cloud/store.js +137 -0
  86. package/dist/cloud/store.js.map +1 -0
  87. package/dist/diff/history.d.ts +9 -0
  88. package/dist/diff/history.d.ts.map +1 -0
  89. package/dist/diff/history.js +44 -0
  90. package/dist/diff/history.js.map +1 -0
  91. package/dist/diff/index.d.ts +5 -0
  92. package/dist/diff/index.d.ts.map +1 -0
  93. package/dist/diff/index.js +26 -0
  94. package/dist/diff/index.js.map +1 -0
  95. package/dist/diff/model-diff.d.ts +44 -0
  96. package/dist/diff/model-diff.d.ts.map +1 -0
  97. package/dist/diff/model-diff.js +153 -0
  98. package/dist/diff/model-diff.js.map +1 -0
  99. package/dist/diff/snapshot.d.ts +8 -0
  100. package/dist/diff/snapshot.d.ts.map +1 -0
  101. package/dist/diff/snapshot.js +50 -0
  102. package/dist/diff/snapshot.js.map +1 -0
  103. package/dist/env.d.ts +2 -0
  104. package/dist/env.d.ts.map +1 -0
  105. package/dist/env.js +44 -0
  106. package/dist/env.js.map +1 -0
  107. package/dist/index.d.ts +7 -0
  108. package/dist/index.d.ts.map +1 -0
  109. package/dist/index.js +23 -0
  110. package/dist/index.js.map +1 -0
  111. package/dist/ir/naming.d.ts +12 -0
  112. package/dist/ir/naming.d.ts.map +1 -0
  113. package/dist/ir/naming.js +31 -0
  114. package/dist/ir/naming.js.map +1 -0
  115. package/dist/ir/types.d.ts +149 -0
  116. package/dist/ir/types.d.ts.map +1 -0
  117. package/dist/ir/types.js +72 -0
  118. package/dist/ir/types.js.map +1 -0
  119. package/dist/mcp/bench.d.ts +25 -0
  120. package/dist/mcp/bench.d.ts.map +1 -0
  121. package/dist/mcp/bench.js +115 -0
  122. package/dist/mcp/bench.js.map +1 -0
  123. package/dist/mcp/queries.d.ts +22 -0
  124. package/dist/mcp/queries.d.ts.map +1 -0
  125. package/dist/mcp/queries.js +147 -0
  126. package/dist/mcp/queries.js.map +1 -0
  127. package/dist/mcp/server.d.ts +2 -0
  128. package/dist/mcp/server.d.ts.map +1 -0
  129. package/dist/mcp/server.js +147 -0
  130. package/dist/mcp/server.js.map +1 -0
  131. package/dist/mcp/usage.d.ts +23 -0
  132. package/dist/mcp/usage.d.ts.map +1 -0
  133. package/dist/mcp/usage.js +125 -0
  134. package/dist/mcp/usage.js.map +1 -0
  135. package/dist/project/bpmn-parse.d.ts +17 -0
  136. package/dist/project/bpmn-parse.d.ts.map +1 -0
  137. package/dist/project/bpmn-parse.js +60 -0
  138. package/dist/project/bpmn-parse.js.map +1 -0
  139. package/dist/project/bpmn.d.ts +11 -0
  140. package/dist/project/bpmn.d.ts.map +1 -0
  141. package/dist/project/bpmn.js +89 -0
  142. package/dist/project/bpmn.js.map +1 -0
  143. package/dist/project/capability.d.ts +16 -0
  144. package/dist/project/capability.d.ts.map +1 -0
  145. package/dist/project/capability.js +38 -0
  146. package/dist/project/capability.js.map +1 -0
  147. package/dist/project/erd.d.ts +17 -0
  148. package/dist/project/erd.d.ts.map +1 -0
  149. package/dist/project/erd.js +0 -0
  150. package/dist/project/erd.js.map +1 -0
  151. package/dist/project/html.d.ts +12 -0
  152. package/dist/project/html.d.ts.map +1 -0
  153. package/dist/project/html.js +166 -0
  154. package/dist/project/html.js.map +1 -0
  155. package/dist/project/index.d.ts +19 -0
  156. package/dist/project/index.d.ts.map +1 -0
  157. package/dist/project/index.js +113 -0
  158. package/dist/project/index.js.map +1 -0
  159. package/dist/project/mermaid.d.ts +20 -0
  160. package/dist/project/mermaid.d.ts.map +1 -0
  161. package/dist/project/mermaid.js +89 -0
  162. package/dist/project/mermaid.js.map +1 -0
  163. package/dist/project/spec.d.ts +69 -0
  164. package/dist/project/spec.d.ts.map +1 -0
  165. package/dist/project/spec.js +164 -0
  166. package/dist/project/spec.js.map +1 -0
  167. package/dist/project/trust.d.ts +35 -0
  168. package/dist/project/trust.d.ts.map +1 -0
  169. package/dist/project/trust.js +48 -0
  170. package/dist/project/trust.js.map +1 -0
  171. package/dist/system.d.ts +61 -0
  172. package/dist/system.d.ts.map +1 -0
  173. package/dist/system.js +161 -0
  174. package/dist/system.js.map +1 -0
  175. package/package.json +58 -0
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Multi-repo unified system view. A "system" (e.g. a set of microservices, or a
3
+ * split front/back) is several repos; each repo's committed model declares its
4
+ * `system` and the sibling services it `consumes` (.archmantic/config.json).
5
+ *
6
+ * This aggregates those per-repo models into ONE cross-service context diagram
7
+ * (services + consumes edges + shared external systems) and a combined summary —
8
+ * the "one unified usage view" across repos. Pure functions over the models.
9
+ */
10
+ import { type ArchitectureModel } from "./ir/types.js";
11
+ export interface ServiceSummary {
12
+ project: string;
13
+ system?: string;
14
+ consumes: string[];
15
+ components: number;
16
+ capabilities: number;
17
+ externals: string[];
18
+ technologies: string[];
19
+ }
20
+ export declare function summarizeService(m: ArchitectureModel): ServiceSummary;
21
+ /** A cross-service context diagram (Mermaid) from the services in a system. */
22
+ export declare function systemContextDiagram(services: ServiceSummary[], systemName: string): string;
23
+ export interface SystemView {
24
+ name: string;
25
+ services: ServiceSummary[];
26
+ mermaid: string;
27
+ crossServiceEdges: {
28
+ from: string;
29
+ to: string;
30
+ }[];
31
+ totals: {
32
+ services: number;
33
+ components: number;
34
+ capabilities: number;
35
+ };
36
+ }
37
+ export declare function buildSystemView(models: ArchitectureModel[], name: string): SystemView;
38
+ export type LinkStatus = "connected" | "inferred" | "dangling";
39
+ export interface RepoLink {
40
+ from: string;
41
+ to: string;
42
+ status: LinkStatus;
43
+ reason: string;
44
+ }
45
+ export interface LinkAnalysis {
46
+ repos: string[];
47
+ links: RepoLink[];
48
+ counts: Record<LinkStatus, number>;
49
+ }
50
+ /**
51
+ * Classify cross-repo links across a set of models (typically a whole org):
52
+ * - connected: a declared `consumes` that resolves to a repo present here
53
+ * - inferred: an imported external that matches a sibling repo but isn't declared
54
+ * - dangling: a declared `consumes` with no matching repo (a real gap)
55
+ * Fuzzy matching is guarded: normalized keys shorter than 3 chars or shared by
56
+ * multiple repos are not used (exact name match still applies).
57
+ */
58
+ export declare function analyzeLinks(models: ArchitectureModel[]): LinkAnalysis;
59
+ /** Self-contained HTML for the unified system view (Mermaid via CDN). */
60
+ export declare function systemHtml(view: SystemView): string;
61
+ //# sourceMappingURL=system.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system.d.ts","sourceRoot":"","sources":["../src/system.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,iBAAiB,GAAG,cAAc,CAUrE;AAKD,+EAA+E;AAC/E,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAyB3F;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAClD,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;CACxE;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,iBAAiB,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAiBrF;AAID,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,UAAU,GAAG,UAAU,CAAC;AAE/D,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;CACpC;AAWD;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,iBAAiB,EAAE,GAAG,YAAY,CAuDtE;AAED,yEAAyE;AACzE,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAsBnD"}
package/dist/system.js ADDED
@@ -0,0 +1,161 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.summarizeService = summarizeService;
4
+ exports.systemContextDiagram = systemContextDiagram;
5
+ exports.buildSystemView = buildSystemView;
6
+ exports.analyzeLinks = analyzeLinks;
7
+ exports.systemHtml = systemHtml;
8
+ function summarizeService(m) {
9
+ return {
10
+ project: m.project,
11
+ system: m.system,
12
+ consumes: m.consumes ?? [],
13
+ components: m.components.length,
14
+ capabilities: m.capabilities.length,
15
+ externals: m.systems.filter((s) => s.kind === "external").map((s) => s.name),
16
+ technologies: (m.technologies ?? []).map((t) => t.name),
17
+ };
18
+ }
19
+ const nodeId = (s) => "n_" + s.replace(/[^A-Za-z0-9]/g, "_");
20
+ const label = (s) => s.replace(/"/g, "'");
21
+ /** A cross-service context diagram (Mermaid) from the services in a system. */
22
+ function systemContextDiagram(services, systemName) {
23
+ const names = new Set(services.map((s) => s.project));
24
+ const lines = ["flowchart LR", ` subgraph sys["${label(systemName)}"]`];
25
+ for (const s of services)
26
+ lines.push(` ${nodeId(s.project)}["${label(s.project)}<br/><i>service</i>"]`);
27
+ lines.push(" end");
28
+ // service → service edges (declared consumes that match a sibling service)
29
+ for (const s of services) {
30
+ for (const dep of s.consumes) {
31
+ if (names.has(dep))
32
+ lines.push(` ${nodeId(s.project)} -->|calls| ${nodeId(dep)}`);
33
+ }
34
+ }
35
+ // shared third-party externals (exclude anything that is itself a service)
36
+ const drawn = new Set();
37
+ for (const s of services) {
38
+ for (const ext of s.externals) {
39
+ if (names.has(ext))
40
+ continue;
41
+ if (!drawn.has(ext)) {
42
+ lines.push(` ${nodeId("ext_" + ext)}[/"${label(ext)}"/]`);
43
+ drawn.add(ext);
44
+ }
45
+ lines.push(` ${nodeId(s.project)} -.-> ${nodeId("ext_" + ext)}`);
46
+ }
47
+ }
48
+ return lines.join("\n");
49
+ }
50
+ function buildSystemView(models, name) {
51
+ const services = models.map(summarizeService);
52
+ const names = new Set(services.map((s) => s.project));
53
+ const crossServiceEdges = services.flatMap((s) => s.consumes.filter((d) => names.has(d)).map((to) => ({ from: s.project, to })));
54
+ return {
55
+ name,
56
+ services,
57
+ mermaid: systemContextDiagram(services, name),
58
+ crossServiceEdges,
59
+ totals: {
60
+ services: services.length,
61
+ components: services.reduce((n, s) => n + s.components, 0),
62
+ capabilities: services.reduce((n, s) => n + s.capabilities, 0),
63
+ },
64
+ };
65
+ }
66
+ /** Normalize a service/package name for fuzzy matching (scope + separators + common suffixes). */
67
+ function normName(s) {
68
+ return s
69
+ .toLowerCase()
70
+ .replace(/^@[^/]+\//, "") // drop npm scope
71
+ .replace(/[^a-z0-9]+/g, "") // strip separators
72
+ .replace(/(service|svc|server|api|backend|frontend|app)$/, ""); // common service suffixes
73
+ }
74
+ /**
75
+ * Classify cross-repo links across a set of models (typically a whole org):
76
+ * - connected: a declared `consumes` that resolves to a repo present here
77
+ * - inferred: an imported external that matches a sibling repo but isn't declared
78
+ * - dangling: a declared `consumes` with no matching repo (a real gap)
79
+ * Fuzzy matching is guarded: normalized keys shorter than 3 chars or shared by
80
+ * multiple repos are not used (exact name match still applies).
81
+ */
82
+ function analyzeLinks(models) {
83
+ const repos = models.map((m) => m.project);
84
+ const repoSet = new Set(repos);
85
+ // Build an unambiguous fuzzy index: normalized → repo, dropping short/ambiguous keys.
86
+ const byNorm = new Map();
87
+ for (const p of repos) {
88
+ const n = normName(p);
89
+ if (n.length < 3)
90
+ continue;
91
+ (byNorm.get(n) ?? byNorm.set(n, []).get(n)).push(p);
92
+ }
93
+ const fuzzy = new Map();
94
+ for (const [n, ps] of byNorm)
95
+ if (ps.length === 1)
96
+ fuzzy.set(n, ps[0]);
97
+ const resolve = (name) => {
98
+ if (repoSet.has(name))
99
+ return name;
100
+ const n = normName(name);
101
+ return n.length >= 3 ? fuzzy.get(n) : undefined;
102
+ };
103
+ const links = [];
104
+ const seen = new Set();
105
+ const add = (from, to, status, reason) => {
106
+ const key = `${from}|${to}|${status}`;
107
+ if (seen.has(key))
108
+ return;
109
+ seen.add(key);
110
+ links.push({ from, to, status, reason });
111
+ };
112
+ for (const m of models) {
113
+ const from = m.project;
114
+ const connectedTargets = new Set();
115
+ for (const dep of m.consumes ?? []) {
116
+ const match = resolve(dep);
117
+ if (match) {
118
+ add(from, match, "connected", dep === match ? "declared in consumes" : `declared consumes "${dep}" → ${match}`);
119
+ connectedTargets.add(match);
120
+ }
121
+ else {
122
+ add(from, dep, "dangling", `declared consumes "${dep}" — no matching repo in the org`);
123
+ }
124
+ }
125
+ const externals = m.systems.filter((s) => s.kind === "external").map((s) => s.name);
126
+ for (const ext of externals) {
127
+ const match = resolve(ext);
128
+ if (match && match !== from && !connectedTargets.has(match)) {
129
+ add(from, match, "inferred", `imports "${ext}" → repo ${match} (not declared in consumes)`);
130
+ }
131
+ }
132
+ }
133
+ const counts = {
134
+ connected: links.filter((l) => l.status === "connected").length,
135
+ inferred: links.filter((l) => l.status === "inferred").length,
136
+ dangling: links.filter((l) => l.status === "dangling").length,
137
+ };
138
+ return { repos, links, counts };
139
+ }
140
+ /** Self-contained HTML for the unified system view (Mermaid via CDN). */
141
+ function systemHtml(view) {
142
+ const esc = (s) => s.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
143
+ const rows = view.services
144
+ .map((s) => `<tr><td>${esc(s.project)}</td><td>${s.components}</td><td>${s.capabilities}</td>` +
145
+ `<td>${esc(s.consumes.join(", ") || "—")}</td><td>${esc(s.technologies.join(", ") || "—")}</td></tr>`)
146
+ .join("\n");
147
+ return `<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"/><title>Archmantic system — ${esc(view.name)}</title>
148
+ <style>body{font:15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;margin:0;background:#0f1115;color:#e6e9ef}
149
+ .wrap{max-width:1100px;margin:0 auto;padding:28px 32px}h1{font-size:22px}h2{font-size:16px;margin-top:28px;border-bottom:1px solid #232734;padding-bottom:8px}
150
+ .card{background:#171a21;border:1px solid #232734;border-radius:12px;padding:16px}table{width:100%;border-collapse:collapse;font-size:13px}
151
+ td,th{text-align:left;padding:8px;border-bottom:1px solid #1f232e}th{color:#8b93a7}</style></head>
152
+ <body><div class="wrap"><h1>${esc(view.name)} <span style="color:#8b93a7;font-size:13px">· unified system view</span></h1>
153
+ <div style="color:#8b93a7;font-size:13px">${view.totals.services} services · ${view.totals.components} components · ${view.totals.capabilities} capabilities</div>
154
+ <h2>Cross-service context</h2><div class="card"><pre class="mermaid">${esc(view.mermaid)}</pre></div>
155
+ <h2>Services</h2><div class="card"><table><thead><tr><th>Service</th><th>Components</th><th>Capabilities</th><th>Consumes</th><th>Stack</th></tr></thead><tbody>${rows}</tbody></table></div>
156
+ </div>
157
+ <script type="module">import mermaid from "https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.esm.min.mjs";mermaid.initialize({startOnLoad:true,theme:"dark",securityLevel:"loose"});</script>
158
+ </body></html>
159
+ `;
160
+ }
161
+ //# sourceMappingURL=system.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system.js","sourceRoot":"","sources":["../src/system.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,58 @@
1
+ {
2
+ "name": "archmantic",
3
+ "version": "1.0.0",
4
+ "description": "Archmantic — an always-on Solution Architect: living architecture model + diagrams for humans and AI agents (via MCP).",
5
+ "license": "Apache-2.0",
6
+ "homepage": "https://github.com/mgionas/Archmantic#readme",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/mgionas/Archmantic.git"
10
+ },
11
+ "bugs": {
12
+ "url": "https://github.com/mgionas/Archmantic/issues"
13
+ },
14
+ "keywords": [
15
+ "architecture",
16
+ "diagrams",
17
+ "mcp",
18
+ "ai-agents",
19
+ "bpmn",
20
+ "c4",
21
+ "mermaid",
22
+ "reverse-engineering",
23
+ "documentation",
24
+ "static-analysis"
25
+ ],
26
+ "main": "dist/index.js",
27
+ "types": "dist/index.d.ts",
28
+ "bin": {
29
+ "archmantic": "dist/cli.js",
30
+ "amt": "dist/cli.js"
31
+ },
32
+ "files": [
33
+ "dist"
34
+ ],
35
+ "scripts": {
36
+ "build": "tsc",
37
+ "dev": "tsc --watch",
38
+ "start": "node dist/cli.js",
39
+ "test": "node --test \"test/**/*.test.mjs\"",
40
+ "test:ci": "npm run build && node --test \"test/**/*.test.mjs\"",
41
+ "prepublishOnly": "npm run build"
42
+ },
43
+ "engines": {
44
+ "node": ">=24"
45
+ },
46
+ "publishConfig": {
47
+ "access": "public"
48
+ },
49
+ "dependencies": {
50
+ "@anthropic-ai/sdk": "^0.104.1",
51
+ "@modelcontextprotocol/sdk": "^1.29.0",
52
+ "@neondatabase/serverless": "^1.1.0",
53
+ "typescript": "^6.0.3"
54
+ },
55
+ "devDependencies": {
56
+ "@types/node": "^24.13.2"
57
+ }
58
+ }