@pentatonic-ai/ai-agent-sdk 0.9.5 → 0.10.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 (131) hide show
  1. package/README.md +3 -3
  2. package/bin/cli.js +1 -1
  3. package/bin/commands/config.js +1 -1
  4. package/dist/index.cjs +39 -72
  5. package/dist/index.js +36 -69
  6. package/package.json +10 -3
  7. package/packages/doctor/src/checks/local-memory.js +2 -2
  8. package/packages/memory/README.md +2 -2
  9. package/packages/memory/openclaw-plugin/README.md +2 -2
  10. package/packages/memory/openclaw-plugin/openclaw.plugin.json +1 -1
  11. package/packages/memory/package-lock.json +49 -33
  12. package/packages/memory/package.json +4 -1
  13. package/packages/memory/src/__tests__/engine.test.js +40 -5
  14. package/packages/memory/src/engine.js +38 -3
  15. package/packages/memory/src/server.js +2 -2
  16. package/packages/memory-engine-v2/.env.example +30 -0
  17. package/packages/memory-engine-v2/README.md +125 -0
  18. package/packages/memory-engine-v2/compat/Dockerfile +11 -0
  19. package/packages/memory-engine-v2/compat/requirements.txt +6 -0
  20. package/packages/memory-engine-v2/compat/server.py +1047 -0
  21. package/packages/memory-engine-v2/docker-compose.aws.yml +78 -0
  22. package/packages/memory-engine-v2/docker-compose.yml +206 -0
  23. package/packages/memory-engine-v2/extractor-async/Dockerfile +14 -0
  24. package/packages/memory-engine-v2/extractor-async/confidence.py +62 -0
  25. package/packages/memory-engine-v2/extractor-async/noise_filter.py +144 -0
  26. package/packages/memory-engine-v2/extractor-async/requirements.txt +2 -0
  27. package/packages/memory-engine-v2/extractor-async/test_confidence.py +76 -0
  28. package/packages/memory-engine-v2/extractor-async/test_noise_filter.py +177 -0
  29. package/packages/memory-engine-v2/extractor-async/worker.py +797 -0
  30. package/packages/memory-engine-v2/extractor-sync/Dockerfile +11 -0
  31. package/packages/memory-engine-v2/extractor-sync/requirements.txt +4 -0
  32. package/packages/memory-engine-v2/extractor-sync/server.py +424 -0
  33. package/packages/memory-engine-v2/org-model/migrations/001_init.sql +390 -0
  34. package/packages/memory-engine-v2/tests/e2e_smoke.py +356 -0
  35. package/packages/memory-engine-v2/tests/fixtures/generate_synthetic_corpus.py +758 -0
  36. package/packages/memory-engine/.env.example +0 -13
  37. package/packages/memory-engine/MIGRATION.md +0 -219
  38. package/packages/memory-engine/README.md +0 -145
  39. package/packages/memory-engine/bench/README.md +0 -99
  40. package/packages/memory-engine/bench/scorecards-engine/agent-coding__pentatonic-baseline__20260427-142523.json +0 -1115
  41. package/packages/memory-engine/bench/scorecards-engine/chat-recall__pentatonic-baseline__20260427-142648.json +0 -819
  42. package/packages/memory-engine/bench/scorecards-engine/circular-economy__pentatonic-baseline__20260427-142757.json +0 -1278
  43. package/packages/memory-engine/bench/scorecards-engine/customer-support__pentatonic-baseline__20260427-142900.json +0 -1018
  44. package/packages/memory-engine/bench/scorecards-engine/marketplace-ops__pentatonic-baseline__20260427-142957.json +0 -1038
  45. package/packages/memory-engine/bench/scorecards-engine/product-catalogue__pentatonic-baseline__20260427-143122.json +0 -961
  46. package/packages/memory-engine/bench/scorecards-engine-via-docker/agent-coding__pentatonic-memory__20260427-161812.json +0 -1115
  47. package/packages/memory-engine/bench/scorecards-engine-via-docker/chat-recall__pentatonic-memory__20260427-161701.json +0 -819
  48. package/packages/memory-engine/bench/scorecards-engine-via-docker/circular-economy__pentatonic-memory__20260427-161713.json +0 -1278
  49. package/packages/memory-engine/bench/scorecards-engine-via-docker/customer-support__pentatonic-memory__20260427-161723.json +0 -1018
  50. package/packages/memory-engine/bench/scorecards-engine-via-docker/marketplace-ops__pentatonic-memory__20260427-161732.json +0 -1038
  51. package/packages/memory-engine/bench/scorecards-engine-via-docker/product-catalogue__pentatonic-memory__20260427-161741.json +0 -937
  52. package/packages/memory-engine/bench/scorecards-engine-via-l2-7-layer-populated/agent-coding__pentatonic-memory__20260427-184718.json +0 -1115
  53. package/packages/memory-engine/bench/scorecards-engine-via-l2-7-layer-populated/chat-recall__pentatonic-memory__20260427-184614.json +0 -819
  54. package/packages/memory-engine/bench/scorecards-engine-via-l2-7-layer-populated/circular-economy__pentatonic-memory__20260427-184809.json +0 -1278
  55. package/packages/memory-engine/bench/scorecards-engine-via-l2-7-layer-populated/customer-support__pentatonic-memory__20260427-184854.json +0 -1018
  56. package/packages/memory-engine/bench/scorecards-engine-via-l2-7-layer-populated/marketplace-ops__pentatonic-memory__20260427-184929.json +0 -1038
  57. package/packages/memory-engine/bench/scorecards-engine-via-l2-7-layer-populated/product-catalogue__pentatonic-memory__20260427-185015.json +0 -961
  58. package/packages/memory-engine/bench/scorecards-engine-via-l2-empty-layers/agent-coding__pentatonic-memory__20260427-175252.json +0 -1115
  59. package/packages/memory-engine/bench/scorecards-engine-via-l2-empty-layers/chat-recall__pentatonic-memory__20260427-175312.json +0 -819
  60. package/packages/memory-engine/bench/scorecards-engine-via-l2-empty-layers/circular-economy__pentatonic-memory__20260427-175335.json +0 -1278
  61. package/packages/memory-engine/bench/scorecards-engine-via-l2-empty-layers/customer-support__pentatonic-memory__20260427-175355.json +0 -1018
  62. package/packages/memory-engine/bench/scorecards-engine-via-l2-empty-layers/marketplace-ops__pentatonic-memory__20260427-175413.json +0 -1038
  63. package/packages/memory-engine/bench/scorecards-engine-via-l2-empty-layers/product-catalogue__pentatonic-memory__20260427-175430.json +0 -883
  64. package/packages/memory-engine/bench/scorecards-engine-via-shim/agent-coding__pentatonic-memory__20260427-155409.json +0 -1115
  65. package/packages/memory-engine/bench/scorecards-engine-via-shim/chat-recall__pentatonic-memory__20260427-155421.json +0 -819
  66. package/packages/memory-engine/bench/scorecards-engine-via-shim/circular-economy__pentatonic-memory__20260427-155433.json +0 -1278
  67. package/packages/memory-engine/bench/scorecards-engine-via-shim/customer-support__pentatonic-memory__20260427-155443.json +0 -1018
  68. package/packages/memory-engine/bench/scorecards-engine-via-shim/marketplace-ops__pentatonic-memory__20260427-155453.json +0 -1038
  69. package/packages/memory-engine/bench/scorecards-engine-via-shim/product-catalogue__pentatonic-memory__20260427-155503.json +0 -937
  70. package/packages/memory-engine/bench/scorecards-pentatonic-baseline/agent-coding__pentatonic-memory-latest__20260427-145103.json +0 -1115
  71. package/packages/memory-engine/bench/scorecards-pentatonic-baseline/agent-coding__pentatonic-memory__20260427-144909.json +0 -1115
  72. package/packages/memory-engine/bench/scorecards-pentatonic-baseline/chat-recall__pentatonic-memory-latest__20260427-145153.json +0 -819
  73. package/packages/memory-engine/bench/scorecards-pentatonic-baseline/chat-recall__pentatonic-memory__20260427-145120.json +0 -542
  74. package/packages/memory-engine/bench/scorecards-pentatonic-baseline/circular-economy__pentatonic-memory-latest__20260427-145313.json +0 -1278
  75. package/packages/memory-engine/bench/scorecards-pentatonic-baseline/circular-economy__pentatonic-memory__20260427-145207.json +0 -894
  76. package/packages/memory-engine/bench/scorecards-pentatonic-baseline/customer-support__pentatonic-memory-latest__20260427-145412.json +0 -1018
  77. package/packages/memory-engine/bench/scorecards-pentatonic-baseline/customer-support__pentatonic-memory__20260427-145327.json +0 -680
  78. package/packages/memory-engine/bench/scorecards-pentatonic-baseline/marketplace-ops__pentatonic-memory-latest__20260427-145517.json +0 -1038
  79. package/packages/memory-engine/bench/scorecards-pentatonic-baseline/marketplace-ops__pentatonic-memory__20260427-145422.json +0 -693
  80. package/packages/memory-engine/bench/scorecards-pentatonic-baseline/product-catalogue__pentatonic-memory-latest__20260427-145616.json +0 -961
  81. package/packages/memory-engine/bench/scorecards-pentatonic-baseline/product-catalogue__pentatonic-memory__20260427-145528.json +0 -727
  82. package/packages/memory-engine/compat/Dockerfile +0 -22
  83. package/packages/memory-engine/compat/server.py +0 -1255
  84. package/packages/memory-engine/docker-compose.test.yml +0 -59
  85. package/packages/memory-engine/docker-compose.yml +0 -240
  86. package/packages/memory-engine/engine/README.md +0 -52
  87. package/packages/memory-engine/engine/l2-hybridrag-proxy.py +0 -1543
  88. package/packages/memory-engine/engine/l5-comms-layer.py +0 -663
  89. package/packages/memory-engine/engine/l6-document-store.py +0 -1018
  90. package/packages/memory-engine/engine/services/_shared/__init__.py +0 -1
  91. package/packages/memory-engine/engine/services/_shared/embed_provider.py +0 -468
  92. package/packages/memory-engine/engine/services/l2/Dockerfile +0 -50
  93. package/packages/memory-engine/engine/services/l2/init_databases.py +0 -81
  94. package/packages/memory-engine/engine/services/l2/l2-hybridrag-proxy.py +0 -2721
  95. package/packages/memory-engine/engine/services/l5/Dockerfile +0 -11
  96. package/packages/memory-engine/engine/services/l5/l5-comms-layer.py +0 -808
  97. package/packages/memory-engine/engine/services/l6/Dockerfile +0 -30
  98. package/packages/memory-engine/engine/services/l6/l6-document-store.py +0 -1221
  99. package/packages/memory-engine/engine/services/nv-embed/Dockerfile +0 -28
  100. package/packages/memory-engine/engine/services/nv-embed/server.py +0 -152
  101. package/packages/memory-engine/pme_memory/__init__.py +0 -0
  102. package/packages/memory-engine/pme_memory/__main__.py +0 -129
  103. package/packages/memory-engine/pme_memory/artifacts.py +0 -95
  104. package/packages/memory-engine/pme_memory/embed.py +0 -74
  105. package/packages/memory-engine/pme_memory/health.py +0 -36
  106. package/packages/memory-engine/pme_memory/hygiene.py +0 -159
  107. package/packages/memory-engine/pme_memory/indexer.py +0 -200
  108. package/packages/memory-engine/pme_memory/needs.py +0 -55
  109. package/packages/memory-engine/pme_memory/provenance.py +0 -80
  110. package/packages/memory-engine/pme_memory/scoring.py +0 -168
  111. package/packages/memory-engine/pme_memory/search.py +0 -52
  112. package/packages/memory-engine/pme_memory/store.py +0 -86
  113. package/packages/memory-engine/pme_memory/synthesis.py +0 -114
  114. package/packages/memory-engine/pyproject.toml +0 -65
  115. package/packages/memory-engine/scripts/kg-extractor.py +0 -557
  116. package/packages/memory-engine/scripts/kg-preflexor-v2.py +0 -738
  117. package/packages/memory-engine/scripts/wipe-legacy-l3-entities.py +0 -128
  118. package/packages/memory-engine/tests/e2e_arena.sh +0 -259
  119. package/packages/memory-engine/tests/embed_stub/Dockerfile +0 -13
  120. package/packages/memory-engine/tests/embed_stub/server.py +0 -80
  121. package/packages/memory-engine/tests/test_aggregate.py +0 -333
  122. package/packages/memory-engine/tests/test_api_contract.sh +0 -57
  123. package/packages/memory-engine/tests/test_arena_safety.py +0 -232
  124. package/packages/memory-engine/tests/test_channel_stat_reader.py +0 -437
  125. package/packages/memory-engine/tests/test_channel_stat_rollups.py +0 -308
  126. package/packages/memory-engine/tests/test_compat_nv_embed_probe.py +0 -48
  127. package/packages/memory-engine/tests/test_embed_provider.py +0 -492
  128. package/packages/memory-engine/tests/test_l2_qmd_vec_search.py +0 -280
  129. package/packages/memory-engine/tests/test_l3_arena_isolation.py +0 -412
  130. package/packages/memory-engine/tests/test_l6_module_load.py +0 -84
  131. package/packages/memory-engine/tests/test_people_list_reader.py +0 -432
@@ -1,114 +0,0 @@
1
- """
2
- pme_memory.synthesis — Synthesis Operator
3
-
4
- Deterministic multi-parent merge for compatible artifacts.
5
- When two or more artifacts share overlapping schema fields,
6
- the operator produces a new synthesis artifact that:
7
- - references all parents
8
- - merges payloads (union of keys, conflict detection)
9
- - inherits combined needs (minus fulfilled ones)
10
- - gets its own content_hash for integrity
11
- """
12
-
13
- from __future__ import annotations
14
-
15
- from typing import Any, Dict, List, Optional, Set
16
-
17
- from .artifacts import ArtifactEnvelope, ArtifactStore
18
-
19
-
20
- def find_compatible_pairs(
21
- artifacts: List[Dict[str, Any]],
22
- min_overlap: int = 2,
23
- ) -> List[tuple[Dict[str, Any], Dict[str, Any], Set[str]]]:
24
- """Find artifact pairs with overlapping payload keys.
25
-
26
- Returns list of (art_a, art_b, shared_keys) tuples.
27
- """
28
- pairs = []
29
- for i, a in enumerate(artifacts):
30
- a_keys = set(a.get("payload", {}).keys())
31
- for b in artifacts[i + 1:]:
32
- b_keys = set(b.get("payload", {}).keys())
33
- shared = a_keys & b_keys
34
- if len(shared) >= min_overlap:
35
- pairs.append((a, b, shared))
36
- return pairs
37
-
38
-
39
- def merge_payloads(
40
- payloads: List[Dict[str, Any]],
41
- ) -> tuple[Dict[str, Any], List[str]]:
42
- """Merge multiple payloads. Returns (merged_payload, conflict_keys).
43
-
44
- For conflicting keys, keeps all values as a list under the key.
45
- """
46
- merged: Dict[str, Any] = {}
47
- conflicts: List[str] = []
48
-
49
- for payload in payloads:
50
- for k, v in payload.items():
51
- if k not in merged:
52
- merged[k] = v
53
- elif merged[k] != v:
54
- if k not in conflicts:
55
- conflicts.append(k)
56
- # Store as list of divergent values
57
- existing = merged[k]
58
- if isinstance(existing, list) and k in conflicts:
59
- existing.append(v)
60
- else:
61
- merged[k] = [existing, v]
62
-
63
- return merged, conflicts
64
-
65
-
66
- def synthesise(
67
- parents: List[Dict[str, Any]],
68
- producer: str,
69
- topic: Optional[str] = None,
70
- store: Optional[ArtifactStore] = None,
71
- ) -> ArtifactEnvelope:
72
- """Create a synthesis artifact from multiple parent artifacts.
73
-
74
- Args:
75
- parents: list of artifact dicts (must have artifact_id, payload, needs)
76
- producer: who is producing the synthesis
77
- topic: optional topic label
78
- store: if provided, appends the new artifact automatically
79
-
80
- Returns:
81
- The new synthesis ArtifactEnvelope
82
- """
83
- parent_ids = [p["artifact_id"] for p in parents]
84
- payloads = [p.get("payload", {}) for p in parents]
85
-
86
- merged_payload, conflicts = merge_payloads(payloads)
87
-
88
- # Combine unresolved needs, deduplicated
89
- all_needs: List[str] = []
90
- seen: set = set()
91
- for p in parents:
92
- for n in p.get("needs", []):
93
- if n not in seen:
94
- all_needs.append(n)
95
- seen.add(n)
96
-
97
- synthesis = ArtifactEnvelope.create(
98
- artifact_type="synthesis",
99
- producer=producer,
100
- payload={
101
- "merged": merged_payload,
102
- "conflicts": conflicts,
103
- "parent_count": len(parents),
104
- },
105
- parents=parent_ids,
106
- needs=all_needs,
107
- source_tool="synthesis_operator",
108
- topic=topic,
109
- )
110
-
111
- if store:
112
- store.append(synthesis)
113
-
114
- return synthesis
@@ -1,65 +0,0 @@
1
- [build-system]
2
- requires = ["setuptools>=68", "wheel"]
3
- build-backend = "setuptools.backends.legacy:build"
4
-
5
- [project]
6
- name = "pme-memory"
7
- version = "1.7.0"
8
- description = "Milvus-backed L5 vector store layer for Pentatonic Memory Engine"
9
- readme = "README.md"
10
- license = { text = "Pentatonic Ltd — Internal" }
11
- requires-python = ">=3.11"
12
-
13
- dependencies = [
14
- "requests>=2.28.0",
15
- ]
16
-
17
- [project.optional-dependencies]
18
- # Full L5 stack with Milvus Lite (no Docker required)
19
- milvus = [
20
- "pymilvus>=2.4.0",
21
- ]
22
- # Milvus with integrated model support (larger download)
23
- milvus-model = [
24
- "pymilvus[model]>=2.4.0",
25
- ]
26
- # Full 5-layer memory stack (L2 proxy + L3 graph + L5 comms)
27
- full = [
28
- "fastapi>=0.100.0",
29
- "uvicorn>=0.23.0",
30
- "neo4j>=5.0.0",
31
- "pymilvus>=2.4.0",
32
- "httpx>=0.24.0",
33
- "pydantic>=2.0.0",
34
- ]
35
- # NV-Embed-v2 embedding service
36
- # transformers must stay <4.50 — newer versions break NV-Embed-v2 (removed all_tied_weights_keys)
37
- # Install CUDA torch separately: pip install torch>=2.0 --index-url https://download.pytorch.org/whl/cu130
38
- nv-embed = [
39
- "torch>=2.0",
40
- "transformers>=4.42,<4.50",
41
- "datasets>=2.14.0",
42
- "einops>=0.7.0",
43
- "fastapi>=0.100.0",
44
- "uvicorn>=0.23.0",
45
- ]
46
- # All extras for development
47
- dev = [
48
- "pymilvus>=2.4.0",
49
- "fastapi>=0.100.0",
50
- "uvicorn>=0.23.0",
51
- "neo4j>=5.0.0",
52
- "httpx>=0.24.0",
53
- "pydantic>=2.0.0",
54
- "pytest>=8.0",
55
- "pytest-mock>=3.12",
56
- ]
57
-
58
- [project.scripts]
59
- pme-memory = "pme_memory.__main__:main"
60
-
61
- [tool.setuptools.packages.find]
62
- include = ["pme_memory*"]
63
-
64
- [tool.setuptools.package-data]
65
- pme_memory = ["py.typed"]