@miller-tech/uap 1.13.5 → 1.13.7

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 (49) hide show
  1. package/README.md +20 -0
  2. package/config/chat_template.jinja +126 -44
  3. package/config/model-profiles/qwen35.json +3 -3
  4. package/dist/.tsbuildinfo +1 -1
  5. package/dist/benchmarks/token-throughput.d.ts +259 -0
  6. package/dist/benchmarks/token-throughput.d.ts.map +1 -0
  7. package/dist/benchmarks/token-throughput.js +198 -0
  8. package/dist/benchmarks/token-throughput.js.map +1 -0
  9. package/dist/bin/cli.js +12 -0
  10. package/dist/bin/cli.js.map +1 -1
  11. package/dist/cli/dashboard.d.ts.map +1 -1
  12. package/dist/cli/dashboard.js +10 -20
  13. package/dist/cli/dashboard.js.map +1 -1
  14. package/dist/cli/init.d.ts.map +1 -1
  15. package/dist/cli/init.js +5 -0
  16. package/dist/cli/init.js.map +1 -1
  17. package/dist/cli/memory.d.ts.map +1 -1
  18. package/dist/cli/memory.js +9 -18
  19. package/dist/cli/memory.js.map +1 -1
  20. package/dist/cli/worktree.d.ts +4 -1
  21. package/dist/cli/worktree.d.ts.map +1 -1
  22. package/dist/cli/worktree.js +73 -1
  23. package/dist/cli/worktree.js.map +1 -1
  24. package/dist/coordination/adaptive-patterns.d.ts +3 -1
  25. package/dist/coordination/adaptive-patterns.d.ts.map +1 -1
  26. package/dist/coordination/adaptive-patterns.js +31 -3
  27. package/dist/coordination/adaptive-patterns.js.map +1 -1
  28. package/dist/dashboard/data-service.d.ts +27 -0
  29. package/dist/dashboard/data-service.d.ts.map +1 -1
  30. package/dist/dashboard/data-service.js +210 -17
  31. package/dist/dashboard/data-service.js.map +1 -1
  32. package/dist/memory/embeddings.d.ts.map +1 -1
  33. package/dist/memory/embeddings.js +1 -1
  34. package/dist/memory/embeddings.js.map +1 -1
  35. package/dist/models/router.js +1 -1
  36. package/dist/models/router.js.map +1 -1
  37. package/dist/models/types.js +13 -13
  38. package/dist/models/types.js.map +1 -1
  39. package/dist/tasks/coordination.js +1 -1
  40. package/dist/tasks/coordination.js.map +1 -1
  41. package/docs/deployment/QWEN35_LLAMA_CPP.md +76 -0
  42. package/package.json +3 -2
  43. package/templates/hooks/session-start.sh +91 -51
  44. package/tools/agents/README.md +22 -0
  45. package/tools/agents/install-opencode-local.sh.j2 +57 -7
  46. package/tools/agents/opencode_uap_agent.py +63 -1
  47. package/tools/agents/scripts/anthropic_proxy.py +1297 -0
  48. package/tools/agents/scripts/requirements-proxy.txt +5 -0
  49. package/tools/agents/scripts/tool_call_wrapper.py +9 -5
@@ -1100,7 +1100,14 @@ class OpenCodeUAP(BaseInstalledAgent):
1100
1100
  # ------------------------------------------------------------------ #
1101
1101
 
1102
1102
  async def setup(self, environment: BaseEnvironment) -> None:
1103
- """Extended setup that uploads Layer 1 proxy and Layer 2 plugin."""
1103
+ """Extended setup that uploads Layer 1 proxy, Layer 2 plugin, and local UAP project.
1104
+
1105
+ The local UAP project is uploaded to /uap-local/ so the install script
1106
+ (install-opencode-local.sh.j2) detects it and installs from the local
1107
+ copy instead of fetching from the npm registry. This guarantees that
1108
+ benchmarks always test the exact local code, including any uncommitted
1109
+ modifications.
1110
+ """
1104
1111
  # Run the standard setup (uploads and runs install.sh)
1105
1112
  await super().setup(environment)
1106
1113
 
@@ -1122,6 +1129,61 @@ class OpenCodeUAP(BaseInstalledAgent):
1122
1129
  )
1123
1130
  logger.info("[Layer 2] Uploaded uap-enforce.ts to container")
1124
1131
 
1132
+ # -------------------------------------------------------------- #
1133
+ # Upload local UAP project to /uap-local/
1134
+ # -------------------------------------------------------------- #
1135
+ # Auto-detect project root: this file is at <project>/tools/agents/opencode_uap_agent.py
1136
+ uap_project_root = os.environ.get(
1137
+ "UAP_LOCAL_PROJECT",
1138
+ str(Path(__file__).parent.parent.parent),
1139
+ )
1140
+ uap_project_path = Path(uap_project_root)
1141
+
1142
+ if not (uap_project_path / "package.json").exists():
1143
+ logger.warning(
1144
+ "[Local UAP] No package.json at %s -- skipping local upload",
1145
+ uap_project_path,
1146
+ )
1147
+ return
1148
+
1149
+ logger.info(
1150
+ "[Local UAP] Uploading local project from %s to /uap-local/",
1151
+ uap_project_path,
1152
+ )
1153
+
1154
+ local_upload_dirs = [
1155
+ "dist",
1156
+ "config",
1157
+ "templates",
1158
+ "tools/agents",
1159
+ "tools/uap_harbor",
1160
+ "harbor-configs",
1161
+ ]
1162
+ local_upload_files = [
1163
+ "package.json",
1164
+ ]
1165
+
1166
+ for src_rel in local_upload_files:
1167
+ src = uap_project_path / src_rel
1168
+ if src.exists():
1169
+ await environment.upload_file(
1170
+ source_path=src,
1171
+ target_path=f"/uap-local/{src_rel}",
1172
+ )
1173
+
1174
+ for src_rel in local_upload_dirs:
1175
+ src_dir = uap_project_path / src_rel
1176
+ if src_dir.is_dir():
1177
+ for fpath in src_dir.rglob("*"):
1178
+ if fpath.is_file() and "__pycache__" not in str(fpath):
1179
+ rel = fpath.relative_to(uap_project_path)
1180
+ await environment.upload_file(
1181
+ source_path=fpath,
1182
+ target_path=f"/uap-local/{rel}",
1183
+ )
1184
+
1185
+ logger.info("[Local UAP] Local project uploaded to /uap-local/")
1186
+
1125
1187
  def populate_context_post_run(self, context: AgentContext) -> None:
1126
1188
  _parse_token_counts(self.logs_dir, context)
1127
1189