@pentatonic-ai/ai-agent-sdk 0.9.6 → 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 (127) 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 +1 -1
  5. package/dist/index.js +1 -1
  6. package/package.json +2 -2
  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/src/server.js +2 -2
  12. package/packages/memory-engine-v2/.env.example +30 -0
  13. package/packages/memory-engine-v2/README.md +125 -0
  14. package/packages/memory-engine-v2/compat/Dockerfile +11 -0
  15. package/packages/memory-engine-v2/compat/requirements.txt +6 -0
  16. package/packages/memory-engine-v2/compat/server.py +1047 -0
  17. package/packages/memory-engine-v2/docker-compose.aws.yml +78 -0
  18. package/packages/memory-engine-v2/docker-compose.yml +206 -0
  19. package/packages/memory-engine-v2/extractor-async/Dockerfile +14 -0
  20. package/packages/memory-engine-v2/extractor-async/confidence.py +62 -0
  21. package/packages/memory-engine-v2/extractor-async/noise_filter.py +144 -0
  22. package/packages/memory-engine-v2/extractor-async/requirements.txt +2 -0
  23. package/packages/memory-engine-v2/extractor-async/test_confidence.py +76 -0
  24. package/packages/memory-engine-v2/extractor-async/test_noise_filter.py +177 -0
  25. package/packages/memory-engine-v2/extractor-async/worker.py +797 -0
  26. package/packages/memory-engine-v2/extractor-sync/Dockerfile +11 -0
  27. package/packages/memory-engine-v2/extractor-sync/requirements.txt +4 -0
  28. package/packages/memory-engine-v2/extractor-sync/server.py +424 -0
  29. package/packages/memory-engine-v2/org-model/migrations/001_init.sql +390 -0
  30. package/packages/memory-engine-v2/tests/e2e_smoke.py +356 -0
  31. package/packages/memory-engine-v2/tests/fixtures/generate_synthetic_corpus.py +758 -0
  32. package/packages/memory-engine/.env.example +0 -13
  33. package/packages/memory-engine/MIGRATION.md +0 -219
  34. package/packages/memory-engine/README.md +0 -145
  35. package/packages/memory-engine/bench/README.md +0 -99
  36. package/packages/memory-engine/bench/scorecards-engine/agent-coding__pentatonic-baseline__20260427-142523.json +0 -1115
  37. package/packages/memory-engine/bench/scorecards-engine/chat-recall__pentatonic-baseline__20260427-142648.json +0 -819
  38. package/packages/memory-engine/bench/scorecards-engine/circular-economy__pentatonic-baseline__20260427-142757.json +0 -1278
  39. package/packages/memory-engine/bench/scorecards-engine/customer-support__pentatonic-baseline__20260427-142900.json +0 -1018
  40. package/packages/memory-engine/bench/scorecards-engine/marketplace-ops__pentatonic-baseline__20260427-142957.json +0 -1038
  41. package/packages/memory-engine/bench/scorecards-engine/product-catalogue__pentatonic-baseline__20260427-143122.json +0 -961
  42. package/packages/memory-engine/bench/scorecards-engine-via-docker/agent-coding__pentatonic-memory__20260427-161812.json +0 -1115
  43. package/packages/memory-engine/bench/scorecards-engine-via-docker/chat-recall__pentatonic-memory__20260427-161701.json +0 -819
  44. package/packages/memory-engine/bench/scorecards-engine-via-docker/circular-economy__pentatonic-memory__20260427-161713.json +0 -1278
  45. package/packages/memory-engine/bench/scorecards-engine-via-docker/customer-support__pentatonic-memory__20260427-161723.json +0 -1018
  46. package/packages/memory-engine/bench/scorecards-engine-via-docker/marketplace-ops__pentatonic-memory__20260427-161732.json +0 -1038
  47. package/packages/memory-engine/bench/scorecards-engine-via-docker/product-catalogue__pentatonic-memory__20260427-161741.json +0 -937
  48. package/packages/memory-engine/bench/scorecards-engine-via-l2-7-layer-populated/agent-coding__pentatonic-memory__20260427-184718.json +0 -1115
  49. package/packages/memory-engine/bench/scorecards-engine-via-l2-7-layer-populated/chat-recall__pentatonic-memory__20260427-184614.json +0 -819
  50. package/packages/memory-engine/bench/scorecards-engine-via-l2-7-layer-populated/circular-economy__pentatonic-memory__20260427-184809.json +0 -1278
  51. package/packages/memory-engine/bench/scorecards-engine-via-l2-7-layer-populated/customer-support__pentatonic-memory__20260427-184854.json +0 -1018
  52. package/packages/memory-engine/bench/scorecards-engine-via-l2-7-layer-populated/marketplace-ops__pentatonic-memory__20260427-184929.json +0 -1038
  53. package/packages/memory-engine/bench/scorecards-engine-via-l2-7-layer-populated/product-catalogue__pentatonic-memory__20260427-185015.json +0 -961
  54. package/packages/memory-engine/bench/scorecards-engine-via-l2-empty-layers/agent-coding__pentatonic-memory__20260427-175252.json +0 -1115
  55. package/packages/memory-engine/bench/scorecards-engine-via-l2-empty-layers/chat-recall__pentatonic-memory__20260427-175312.json +0 -819
  56. package/packages/memory-engine/bench/scorecards-engine-via-l2-empty-layers/circular-economy__pentatonic-memory__20260427-175335.json +0 -1278
  57. package/packages/memory-engine/bench/scorecards-engine-via-l2-empty-layers/customer-support__pentatonic-memory__20260427-175355.json +0 -1018
  58. package/packages/memory-engine/bench/scorecards-engine-via-l2-empty-layers/marketplace-ops__pentatonic-memory__20260427-175413.json +0 -1038
  59. package/packages/memory-engine/bench/scorecards-engine-via-l2-empty-layers/product-catalogue__pentatonic-memory__20260427-175430.json +0 -883
  60. package/packages/memory-engine/bench/scorecards-engine-via-shim/agent-coding__pentatonic-memory__20260427-155409.json +0 -1115
  61. package/packages/memory-engine/bench/scorecards-engine-via-shim/chat-recall__pentatonic-memory__20260427-155421.json +0 -819
  62. package/packages/memory-engine/bench/scorecards-engine-via-shim/circular-economy__pentatonic-memory__20260427-155433.json +0 -1278
  63. package/packages/memory-engine/bench/scorecards-engine-via-shim/customer-support__pentatonic-memory__20260427-155443.json +0 -1018
  64. package/packages/memory-engine/bench/scorecards-engine-via-shim/marketplace-ops__pentatonic-memory__20260427-155453.json +0 -1038
  65. package/packages/memory-engine/bench/scorecards-engine-via-shim/product-catalogue__pentatonic-memory__20260427-155503.json +0 -937
  66. package/packages/memory-engine/bench/scorecards-pentatonic-baseline/agent-coding__pentatonic-memory-latest__20260427-145103.json +0 -1115
  67. package/packages/memory-engine/bench/scorecards-pentatonic-baseline/agent-coding__pentatonic-memory__20260427-144909.json +0 -1115
  68. package/packages/memory-engine/bench/scorecards-pentatonic-baseline/chat-recall__pentatonic-memory-latest__20260427-145153.json +0 -819
  69. package/packages/memory-engine/bench/scorecards-pentatonic-baseline/chat-recall__pentatonic-memory__20260427-145120.json +0 -542
  70. package/packages/memory-engine/bench/scorecards-pentatonic-baseline/circular-economy__pentatonic-memory-latest__20260427-145313.json +0 -1278
  71. package/packages/memory-engine/bench/scorecards-pentatonic-baseline/circular-economy__pentatonic-memory__20260427-145207.json +0 -894
  72. package/packages/memory-engine/bench/scorecards-pentatonic-baseline/customer-support__pentatonic-memory-latest__20260427-145412.json +0 -1018
  73. package/packages/memory-engine/bench/scorecards-pentatonic-baseline/customer-support__pentatonic-memory__20260427-145327.json +0 -680
  74. package/packages/memory-engine/bench/scorecards-pentatonic-baseline/marketplace-ops__pentatonic-memory-latest__20260427-145517.json +0 -1038
  75. package/packages/memory-engine/bench/scorecards-pentatonic-baseline/marketplace-ops__pentatonic-memory__20260427-145422.json +0 -693
  76. package/packages/memory-engine/bench/scorecards-pentatonic-baseline/product-catalogue__pentatonic-memory-latest__20260427-145616.json +0 -961
  77. package/packages/memory-engine/bench/scorecards-pentatonic-baseline/product-catalogue__pentatonic-memory__20260427-145528.json +0 -727
  78. package/packages/memory-engine/compat/Dockerfile +0 -22
  79. package/packages/memory-engine/compat/server.py +0 -1255
  80. package/packages/memory-engine/docker-compose.test.yml +0 -59
  81. package/packages/memory-engine/docker-compose.yml +0 -255
  82. package/packages/memory-engine/engine/README.md +0 -52
  83. package/packages/memory-engine/engine/l2-hybridrag-proxy.py +0 -1543
  84. package/packages/memory-engine/engine/l5-comms-layer.py +0 -663
  85. package/packages/memory-engine/engine/l6-document-store.py +0 -1018
  86. package/packages/memory-engine/engine/services/_shared/__init__.py +0 -1
  87. package/packages/memory-engine/engine/services/_shared/embed_provider.py +0 -562
  88. package/packages/memory-engine/engine/services/l2/Dockerfile +0 -50
  89. package/packages/memory-engine/engine/services/l2/init_databases.py +0 -81
  90. package/packages/memory-engine/engine/services/l2/l2-hybridrag-proxy.py +0 -2721
  91. package/packages/memory-engine/engine/services/l5/Dockerfile +0 -11
  92. package/packages/memory-engine/engine/services/l5/l5-comms-layer.py +0 -808
  93. package/packages/memory-engine/engine/services/l6/Dockerfile +0 -30
  94. package/packages/memory-engine/engine/services/l6/l6-document-store.py +0 -1221
  95. package/packages/memory-engine/engine/services/nv-embed/Dockerfile +0 -28
  96. package/packages/memory-engine/engine/services/nv-embed/server.py +0 -152
  97. package/packages/memory-engine/pme_memory/__init__.py +0 -0
  98. package/packages/memory-engine/pme_memory/__main__.py +0 -129
  99. package/packages/memory-engine/pme_memory/artifacts.py +0 -95
  100. package/packages/memory-engine/pme_memory/embed.py +0 -74
  101. package/packages/memory-engine/pme_memory/health.py +0 -36
  102. package/packages/memory-engine/pme_memory/hygiene.py +0 -159
  103. package/packages/memory-engine/pme_memory/indexer.py +0 -200
  104. package/packages/memory-engine/pme_memory/needs.py +0 -55
  105. package/packages/memory-engine/pme_memory/provenance.py +0 -80
  106. package/packages/memory-engine/pme_memory/scoring.py +0 -168
  107. package/packages/memory-engine/pme_memory/search.py +0 -52
  108. package/packages/memory-engine/pme_memory/store.py +0 -86
  109. package/packages/memory-engine/pme_memory/synthesis.py +0 -114
  110. package/packages/memory-engine/pyproject.toml +0 -65
  111. package/packages/memory-engine/scripts/kg-extractor.py +0 -557
  112. package/packages/memory-engine/scripts/kg-preflexor-v2.py +0 -738
  113. package/packages/memory-engine/scripts/wipe-legacy-l3-entities.py +0 -128
  114. package/packages/memory-engine/tests/e2e_arena.sh +0 -259
  115. package/packages/memory-engine/tests/embed_stub/Dockerfile +0 -13
  116. package/packages/memory-engine/tests/embed_stub/server.py +0 -80
  117. package/packages/memory-engine/tests/test_aggregate.py +0 -333
  118. package/packages/memory-engine/tests/test_api_contract.sh +0 -57
  119. package/packages/memory-engine/tests/test_arena_safety.py +0 -232
  120. package/packages/memory-engine/tests/test_channel_stat_reader.py +0 -437
  121. package/packages/memory-engine/tests/test_channel_stat_rollups.py +0 -308
  122. package/packages/memory-engine/tests/test_compat_nv_embed_probe.py +0 -48
  123. package/packages/memory-engine/tests/test_embed_provider.py +0 -693
  124. package/packages/memory-engine/tests/test_l2_qmd_vec_search.py +0 -280
  125. package/packages/memory-engine/tests/test_l3_arena_isolation.py +0 -412
  126. package/packages/memory-engine/tests/test_l6_module_load.py +0 -84
  127. 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"]