melchizedek-agents 0.15.0 → 0.16.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 (229) hide show
  1. package/.env.example +272 -0
  2. package/AGENT_SETUP.md +19 -14
  3. package/CHANGELOG.md +623 -0
  4. package/DOCUMENTATION.md +375 -109
  5. package/QUICKSTART.md +55 -10
  6. package/README.md +23 -3
  7. package/config/agents/README.md +34 -0
  8. package/config/agents/examples/ares.yaml +116 -40
  9. package/config/agents/examples/assistant.yaml +74 -24
  10. package/config/agents/examples/augustin.yaml +105 -44
  11. package/config/agents/examples/cartographers.yaml +90 -23
  12. package/config/agents/examples/claude.yaml +44 -6
  13. package/config/agents/examples/council.yaml +22 -8
  14. package/config/agents/examples/critic.yaml +56 -21
  15. package/config/agents/examples/delegation.yaml +75 -9
  16. package/config/agents/examples/hierarchical.yaml +54 -8
  17. package/config/agents/examples/image_production.yaml +53 -16
  18. package/config/agents/examples/librarian.yaml +69 -14
  19. package/config/agents/examples/model_zoo.yaml +102 -27
  20. package/config/agents/examples/patient_advocate.yaml +101 -34
  21. package/config/agents/examples/research.yaml +49 -8
  22. package/config/agents/examples/scribe.yaml +111 -79
  23. package/config/agents/examples/scriptorium.yaml +86 -24
  24. package/config/agents/examples/style_council.yaml +30 -9
  25. package/config/agents/examples/syndicate.yaml +28 -10
  26. package/config/agents/examples/tutor.yaml +9 -3
  27. package/config/agents/syndicateSchema.yaml +39 -9
  28. package/config/agents/templates/README.md +7 -2
  29. package/config/agents/templates/account_memory.yaml +76 -18
  30. package/config/agents/templates/case_desk.yaml +84 -13
  31. package/config/agents/templates/conversational.yaml +38 -9
  32. package/config/agents/templates/draft_review.yaml +40 -13
  33. package/config/agents/templates/intake_extractor.yaml +33 -16
  34. package/config/agents/templates/research_brief.yaml +72 -26
  35. package/config/agents/templates/research_desk.yaml +74 -30
  36. package/config/agents/templates/review_panel.yaml +65 -30
  37. package/config/agents/templates/support_triage.yaml +107 -40
  38. package/config/agents/templates/systems_operator.yaml +76 -25
  39. package/db/hardening.sql +202 -0
  40. package/db/memory_v2.sql +77 -0
  41. package/db/migrations/0001_base.sql +167 -0
  42. package/db/migrations/0002_erase_scope.sql +172 -0
  43. package/db/migrations/0003_postgres_storage.sql +58 -0
  44. package/db/migrations/0004_usage.sql +94 -0
  45. package/db/migrations/0005_agent_registry.sql +200 -0
  46. package/db/migrations/0006_task_leases.sql +25 -0
  47. package/db/migrations/0007_memory_commit.sql +134 -0
  48. package/db/migrations/0008_memory_retention.sql +37 -0
  49. package/db/migrations/0009_task_queue.sql +51 -0
  50. package/db/migrations/0010_erase_complete.sql +180 -0
  51. package/db/telemetry.sql +401 -0
  52. package/demo/README.md +77 -0
  53. package/demo/a2a_demo.mjs +95 -0
  54. package/dist/lib/a2a/app.d.ts +253 -0
  55. package/dist/lib/a2a/app.js +751 -0
  56. package/dist/lib/a2a/executor.d.ts +167 -0
  57. package/dist/lib/a2a/executor.js +548 -0
  58. package/dist/lib/a2a/identity.d.ts +122 -0
  59. package/dist/lib/a2a/identity.js +254 -0
  60. package/dist/lib/a2a/policy.d.ts +110 -0
  61. package/dist/lib/a2a/policy.js +178 -0
  62. package/dist/lib/a2a/redisLimits.d.ts +26 -0
  63. package/dist/lib/a2a/redisLimits.js +31 -0
  64. package/dist/lib/a2a/remoteAgent.d.ts +91 -0
  65. package/dist/lib/a2a/remoteAgent.js +268 -0
  66. package/dist/lib/a2a/turnLock.d.ts +28 -0
  67. package/dist/lib/a2a/turnLock.js +76 -0
  68. package/dist/lib/compile.d.ts +11 -1
  69. package/dist/lib/compile.js +92 -9
  70. package/dist/lib/config.d.ts +2 -2
  71. package/dist/lib/config.js +2 -2
  72. package/dist/lib/doctor.d.ts +49 -2
  73. package/dist/lib/doctor.js +159 -12
  74. package/dist/lib/grounding.d.ts +2 -2
  75. package/dist/lib/grounding.js +2 -2
  76. package/dist/lib/guards/index.d.ts +12 -3
  77. package/dist/lib/guards/index.js +19 -4
  78. package/dist/lib/guards/science.js +1 -1
  79. package/dist/lib/index.d.ts +37 -2
  80. package/dist/lib/index.js +35 -4
  81. package/dist/lib/loadEnv.d.ts +23 -11
  82. package/dist/lib/loadEnv.js +77 -29
  83. package/dist/lib/loadSyndicate.d.ts +69 -5
  84. package/dist/lib/loadSyndicate.js +127 -71
  85. package/dist/lib/memory/erase.d.ts +24 -0
  86. package/dist/lib/memory/erase.js +47 -0
  87. package/dist/lib/memory/namespace.d.ts +37 -0
  88. package/dist/lib/memory/namespace.js +74 -0
  89. package/dist/lib/memory/providers.d.ts +99 -0
  90. package/dist/lib/memory/providers.js +240 -0
  91. package/dist/lib/memory/store.d.ts +74 -0
  92. package/dist/lib/memory/store.js +108 -0
  93. package/dist/lib/memory/supabaseMemoryService.d.ts +69 -9
  94. package/dist/lib/memory/supabaseMemoryService.js +239 -125
  95. package/dist/lib/models/capabilities.d.ts +50 -0
  96. package/dist/lib/models/capabilities.js +214 -4
  97. package/dist/lib/models/claudeLlm.d.ts +10 -1
  98. package/dist/lib/models/claudeLlm.js +57 -27
  99. package/dist/lib/models/endpoints.d.ts +100 -0
  100. package/dist/lib/models/endpoints.js +282 -0
  101. package/dist/lib/models/gateway.d.ts +1 -1
  102. package/dist/lib/models/gateway.js +4 -3
  103. package/dist/lib/models/gatewayLlm.d.ts +2 -2
  104. package/dist/lib/models/gatewayLlm.js +5 -5
  105. package/dist/lib/models/gptLlm.d.ts +22 -1
  106. package/dist/lib/models/gptLlm.js +77 -23
  107. package/dist/lib/models/grokLlm.d.ts +13 -4
  108. package/dist/lib/models/grokLlm.js +22 -7
  109. package/dist/lib/models/ollamaLlm.d.ts +26 -0
  110. package/dist/lib/models/ollamaLlm.js +43 -1
  111. package/dist/lib/models/openAiCompatibleLlm.d.ts +60 -2
  112. package/dist/lib/models/openAiCompatibleLlm.js +185 -36
  113. package/dist/lib/models/providerMap.js +9 -2
  114. package/dist/lib/models/registry.d.ts +24 -3
  115. package/dist/lib/models/registry.js +83 -23
  116. package/dist/lib/models/retry.d.ts +146 -0
  117. package/dist/lib/models/retry.js +305 -0
  118. package/dist/lib/models/schemaNormalize.d.ts +20 -0
  119. package/dist/lib/models/schemaNormalize.js +43 -0
  120. package/dist/lib/net/addressGuard.d.ts +60 -0
  121. package/dist/lib/net/addressGuard.js +216 -0
  122. package/dist/lib/observability/embeddings.d.ts +11 -2
  123. package/dist/lib/observability/embeddings.js +18 -14
  124. package/dist/lib/observability/metrics.d.ts +36 -0
  125. package/dist/lib/observability/metrics.js +86 -0
  126. package/dist/lib/observability/redact.d.ts +29 -0
  127. package/dist/lib/observability/redact.js +102 -0
  128. package/dist/lib/observability/supabaseSpanExporter.d.ts +2 -0
  129. package/dist/lib/observability/supabaseSpanExporter.js +22 -6
  130. package/dist/lib/observability/tracer.js +33 -3
  131. package/dist/lib/persistence/supabaseProvider.d.ts +11 -0
  132. package/dist/lib/persistence/supabaseProvider.js +32 -6
  133. package/dist/lib/registry.d.ts +87 -0
  134. package/dist/lib/registry.js +146 -0
  135. package/dist/lib/runtime/approvals.d.ts +44 -0
  136. package/dist/lib/runtime/approvals.js +67 -0
  137. package/dist/lib/runtime/syndicateTurn.d.ts +233 -0
  138. package/dist/lib/runtime/syndicateTurn.js +597 -0
  139. package/dist/lib/runtime/turnControl.d.ts +90 -0
  140. package/dist/lib/runtime/turnControl.js +131 -0
  141. package/dist/lib/session/supabaseSessionService.js +1 -1
  142. package/dist/lib/session/transcript.d.ts +9 -1
  143. package/dist/lib/session/transcript.js +15 -7
  144. package/dist/lib/storage/postgres/index.d.ts +98 -0
  145. package/dist/lib/storage/postgres/index.js +146 -0
  146. package/dist/lib/storage/postgres/memoryStore.d.ts +11 -0
  147. package/dist/lib/storage/postgres/memoryStore.js +82 -0
  148. package/dist/lib/storage/postgres/sessionService.d.ts +51 -0
  149. package/dist/lib/storage/postgres/sessionService.js +225 -0
  150. package/dist/lib/storage/postgres/taskQueue.d.ts +22 -0
  151. package/dist/lib/storage/postgres/taskQueue.js +101 -0
  152. package/dist/lib/storage/postgres/taskStore.d.ts +55 -0
  153. package/dist/lib/storage/postgres/taskStore.js +168 -0
  154. package/dist/lib/storage/schema.d.ts +27 -0
  155. package/dist/lib/storage/schema.js +50 -0
  156. package/dist/lib/storage/schemaVersion.d.ts +25 -0
  157. package/dist/lib/storage/schemaVersion.js +46 -0
  158. package/dist/lib/syndicateSchema.d.ts +275 -0
  159. package/dist/lib/syndicateSchema.js +534 -0
  160. package/dist/lib/toolRegistry.d.ts +15 -0
  161. package/dist/lib/toolRegistry.js +48 -15
  162. package/dist/lib/tools/collectionsSearchTool.js +1 -1
  163. package/dist/lib/tools/mcpServe.d.ts +2 -3
  164. package/dist/lib/tools/mcpServe.js +3 -4
  165. package/dist/lib/tools/mcpToolFactory.d.ts +1 -0
  166. package/dist/lib/tools/mcpToolFactory.js +13 -21
  167. package/dist/lib/tools/science/corrections.js +2 -2
  168. package/dist/lib/tools/science/europepmc.js +2 -2
  169. package/dist/lib/tools/science/openalex.js +2 -2
  170. package/dist/lib/tools/science/trials.d.ts +1 -1
  171. package/dist/lib/tools/science/trials.js +2 -2
  172. package/dist/lib/tools/scienceTools.d.ts +5 -5
  173. package/dist/lib/tools/scienceTools.js +5 -5
  174. package/dist/lib/tools/taskTools.d.ts +75 -26
  175. package/dist/lib/tools/taskTools.js +83 -51
  176. package/dist/lib/tools/toolContract.d.ts +17 -4
  177. package/dist/lib/tools/toolContract.js +13 -5
  178. package/dist/lib/tools/webExtractTool.d.ts +7 -10
  179. package/dist/lib/tools/webExtractTool.js +15 -51
  180. package/dist/lib/tools/webSearchTool.d.ts +2 -1
  181. package/dist/lib/tools/webSearchTool.js +4 -3
  182. package/dist/lib/tools/wikiTools.d.ts +2 -2
  183. package/dist/lib/tools/wikiTools.js +12 -12
  184. package/dist/lib/tools/xApiSearchTool.d.ts +10 -10
  185. package/dist/lib/tools/xApiSearchTool.js +6 -6
  186. package/dist/lib/tools/xSearchTool.js +1 -1
  187. package/dist/lib/wiki/agentRun.js +1 -1
  188. package/dist/lib/wiki/builder.js +21 -6
  189. package/dist/lib/wiki/dive.js +2 -2
  190. package/dist/lib/wiki/entities.d.ts +2 -2
  191. package/dist/lib/wiki/entities.js +7 -7
  192. package/dist/lib/wiki/extract.js +5 -1
  193. package/dist/lib/wiki/fill.js +5 -5
  194. package/dist/lib/wiki/format.d.ts +7 -5
  195. package/dist/lib/wiki/format.js +2 -2
  196. package/dist/lib/wiki/graph.js +2 -2
  197. package/dist/lib/wiki/lint.js +2 -2
  198. package/dist/lib/wiki/markdown.d.ts +1 -1
  199. package/dist/lib/wiki/markdown.js +6 -1
  200. package/dist/lib/wiki/pipeline.js +2 -2
  201. package/dist/lib/wiki/vault.js +2 -2
  202. package/dist/scripts/a2a_server.d.ts +17 -11
  203. package/dist/scripts/a2a_server.js +405 -1094
  204. package/dist/scripts/assistant_worker.d.ts +5 -3
  205. package/dist/scripts/assistant_worker.js +88 -58
  206. package/dist/scripts/db.d.ts +26 -0
  207. package/dist/scripts/db.js +179 -0
  208. package/dist/scripts/doctor.d.ts +2 -0
  209. package/dist/scripts/doctor.js +45 -2
  210. package/dist/scripts/init.d.ts +43 -0
  211. package/dist/scripts/init.js +152 -0
  212. package/dist/scripts/registry.d.ts +25 -0
  213. package/dist/scripts/registry.js +182 -0
  214. package/dist/scripts/skills_install.js +1 -1
  215. package/dist/scripts/syndicate_chat.js +159 -276
  216. package/package.json +75 -13
  217. package/skills/README.md +1 -1
  218. package/skills/briefs/melchizedek-author.md +3 -3
  219. package/skills/briefs/melchizedek-memory.md +3 -1
  220. package/skills/briefs/melchizedek-models.md +2 -2
  221. package/skills/briefs/melchizedek-serve.md +16 -12
  222. package/skills/briefs/skills-readme.md +2 -2
  223. package/skills/melchizedek-author/SKILL.md +2 -2
  224. package/skills/melchizedek-author/templates/minimal.yaml +1 -1
  225. package/skills/melchizedek-memory/SKILL.md +2 -0
  226. package/skills/melchizedek-models/SKILL.md +1 -1
  227. package/skills/melchizedek-serve/SKILL.md +18 -9
  228. package/dist/lib/tools/xPacket.d.ts +0 -102
  229. package/dist/lib/tools/xPacket.js +0 -226
@@ -14,8 +14,8 @@
14
14
  * index could. `wiki:build --graph` merely snapshots this derivation for
15
15
  * visualisation.
16
16
  */
17
- import { effectiveStatus, trustTier } from "./format.js";
18
- import { lookupTarget, resolveLinkTarget, } from "./vault.js";
17
+ import { effectiveStatus, trustTier } from './format.js';
18
+ import { lookupTarget, resolveLinkTarget, } from './vault.js';
19
19
  // ── Construction ─────────────────────────────────────────────────────────────
20
20
  export function buildGraph(vault) {
21
21
  const nodes = new Map();
@@ -25,8 +25,8 @@
25
25
  * itself know any private vocabulary.
26
26
  */
27
27
  import { posix } from 'node:path';
28
- import { CONCEPT_TYPES, isStale, LOG_ENTRY_RE, } from "./format.js";
29
- import { docsInDirectory, lookupTarget, resolveLinkTarget, } from "./vault.js";
28
+ import { CONCEPT_TYPES, isStale, LOG_ENTRY_RE, } from './format.js';
29
+ import { docsInDirectory, lookupTarget, resolveLinkTarget, } from './vault.js';
30
30
  function report(findings) {
31
31
  const errors = findings.filter((f) => f.severity === 'error').length;
32
32
  const warnings = findings.filter((f) => f.severity === 'warning').length;
@@ -118,7 +118,7 @@ export declare function generatedBlock(id: string, source: string, content: stri
118
118
  /** Splice `content` between a slot's markers. Null when the slot is absent. */
119
119
  export declare function setSlotContent(raw: string, slotId: string, content: string): string | null;
120
120
  /** Splice `content` between a generated block's markers. Null when absent. */
121
- export declare function setGeneratedContent(raw: string, blockId: string, content: string): string | null;
121
+ export declare function setGeneratedContent(raw: string, blockId: string, content: string, source?: string): string | null;
122
122
  /**
123
123
  * Insert a log entry newest-first: after the preamble (everything before the
124
124
  * first `## [` entry), before existing entries. log.md stays chronologically
@@ -304,12 +304,17 @@ export function setSlotContent(raw, slotId, content) {
304
304
  ].join('\n');
305
305
  }
306
306
  /** Splice `content` between a generated block's markers. Null when absent. */
307
- export function setGeneratedContent(raw, blockId, content) {
307
+ export function setGeneratedContent(raw, blockId, content, source) {
308
308
  const doc = parseDoc(raw);
309
309
  const block = doc.generated.find((b) => b.id === blockId);
310
310
  if (!block)
311
311
  return null;
312
312
  const lines = raw.split('\n');
313
+ // A source that moved (a file relocated in the repo) rewrites the opening
314
+ // marker too, so the attribution never outlives the file it names.
315
+ if (source !== undefined && block.source !== source) {
316
+ lines[block.startLine - 1] = generatedBlock(blockId, source, '').split('\n')[0];
317
+ }
313
318
  return [
314
319
  ...lines.slice(0, block.startLine),
315
320
  content.trim(),
@@ -15,8 +15,8 @@
15
15
  * caller extracted from its own truth. This module never guesses what a
16
16
  * repo contains.
17
17
  */
18
- import { buildEntityGraph, entityStats, lintEntityGraph, loadRelations, NODE_KINDS, relationEdges, RELATIONS, writeSnapshot, } from "./entities.js";
19
- import { table } from "./markdown.js";
18
+ import { buildEntityGraph, entityStats, lintEntityGraph, loadRelations, NODE_KINDS, relationEdges, RELATIONS, writeSnapshot, } from './entities.js';
19
+ import { table } from './markdown.js';
20
20
  /**
21
21
  * Merge the derived layer with the asserted relations and (unless this is a
22
22
  * lint-only run) refresh the snapshot the wiki tools read. The snapshot
@@ -19,8 +19,8 @@
19
19
  */
20
20
  import { existsSync, mkdirSync, readdirSync, readFileSync, writeFileSync, } from 'node:fs';
21
21
  import { dirname, join, posix, resolve, sep } from 'node:path';
22
- import { conceptFrontmatterSchema, isPrivatePath, isReservedFilename, } from "./format.js";
23
- import { parseDoc } from "./markdown.js";
22
+ import { conceptFrontmatterSchema, isPrivatePath, isReservedFilename, } from './format.js';
23
+ import { parseDoc } from './markdown.js';
24
24
  // ── Bundle root ──────────────────────────────────────────────────────────────
25
25
  /**
26
26
  * WIKI_ROOT env var wins; default is `<cwd>/wiki`. The default used to be
@@ -1,12 +1,18 @@
1
1
  #!/usr/bin/env node
2
- /** One human-readable line naming WHY a turn failed, for the failed task's
3
- * status message — the text the Discord surface renders verbatim. Provider
4
- * errors sometimes arrive as a raw JSON blob (Gemini ApiError:
5
- * `{"error":{"code":503,"message":"...","status":"UNAVAILABLE"}}`), so the
6
- * inner message is dug out before falling back to the string itself. An
7
- * empty message keeps the old pointer at the server logs. */
8
- export declare function describeTurnError(error: {
9
- code: string;
10
- message: string;
11
- }): string;
12
- export declare function startServer(syndicateName?: string): Promise<void>;
2
+ import type { Server } from 'node:http';
3
+ import { createA2AApp } from '../lib/a2a/app.ts';
4
+ export { describeTurnError } from '../lib/a2a/executor.ts';
5
+ /**
6
+ * What a deployment adds on top of the environment-driven server: its own
7
+ * routes and any createA2AApp option. A private deployment imports
8
+ * `startServer` from `melchizedek-agents/server`, registers its tools with
9
+ * `registerTool`, and passes its routes here, so it inherits every
10
+ * environment variable this file reads (ADR 0022).
11
+ */
12
+ export interface ServerExtensions {
13
+ /** Mounted after authentication, before the built-in routes. */
14
+ routes?: (app: import('express').Express) => void;
15
+ /** Any other createA2AApp option; wins over what the environment sets. */
16
+ options?: Partial<Parameters<typeof createA2AApp>[0]>;
17
+ }
18
+ export declare function startServer(syndicateName?: string, extensions?: ServerExtensions): Promise<Server>;