@abot-ai/runtime 1.8.1 → 2.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 (769) hide show
  1. package/README.md +5 -1
  2. package/dist/scripts/add-runtime-model.js +11 -5
  3. package/dist/scripts/init-runtime.js +15 -10
  4. package/dist/scripts/runtime-model-addition.js +6 -1
  5. package/dist/scripts/runtime-setup-command-options.d.ts +11 -0
  6. package/dist/scripts/runtime-setup-command-options.js +41 -0
  7. package/dist/scripts/runtime-setup-files.d.ts +3 -2
  8. package/dist/scripts/runtime-setup-files.js +63 -4
  9. package/dist/scripts/runtime-setup-model-options.d.ts +8 -0
  10. package/dist/scripts/runtime-setup-model-options.js +40 -0
  11. package/dist/scripts/runtime-setup-presentation.js +2 -2
  12. package/dist/scripts/runtime-setup-provider-options.d.ts +4 -0
  13. package/dist/scripts/runtime-setup-provider-options.js +20 -0
  14. package/dist/src/model-gateway/client/chat.js +9 -5
  15. package/dist/src/model-gateway/client/contracts.d.ts +3 -0
  16. package/dist/src/model-gateway/client/input-token-count.js +36 -16
  17. package/dist/src/model-gateway/client/invocation-error.d.ts +9 -0
  18. package/dist/src/model-gateway/client/invocation-error.js +30 -0
  19. package/dist/src/model-gateway/client/message-projection.d.ts +2 -0
  20. package/dist/src/model-gateway/client/message-projection.js +1 -0
  21. package/dist/src/model-gateway/client/options.js +1 -1
  22. package/dist/src/model-gateway/client/raw.js +1 -0
  23. package/dist/src/model-gateway/client/stream-consumer.js +9 -2
  24. package/dist/src/model-gateway/client/stream-parser.js +2 -1
  25. package/dist/src/model-gateway/index.d.ts +1 -1
  26. package/dist/src/model-gateway/observability/input-token-count-diagnostics.d.ts +26 -0
  27. package/dist/src/model-gateway/observability/input-token-count-diagnostics.js +178 -0
  28. package/dist/src/model-gateway/policy/invocation-policy.d.ts +1 -3
  29. package/dist/src/model-gateway/policy/invocation-policy.js +3 -30
  30. package/dist/src/model-gateway/policy/reasoning-mode-budget.d.ts +5 -0
  31. package/dist/src/model-gateway/policy/reasoning-mode-budget.js +13 -0
  32. package/dist/src/model-gateway/policy/reasoning-policy.d.ts +10 -0
  33. package/dist/src/model-gateway/policy/reasoning-policy.js +124 -0
  34. package/dist/src/model-gateway/protocol/openai-embedding-response.d.ts +1 -0
  35. package/dist/src/model-gateway/protocol/openai-embedding-response.js +28 -0
  36. package/dist/src/model-gateway/protocol/sse-data.d.ts +9 -0
  37. package/dist/src/model-gateway/protocol/sse-data.js +67 -0
  38. package/dist/src/model-gateway/providers/envelope-budget.js +10 -1
  39. package/dist/src/model-gateway/providers/llamacpp/adapter.d.ts +2 -0
  40. package/dist/src/model-gateway/providers/llamacpp/adapter.js +79 -0
  41. package/dist/src/model-gateway/providers/llamacpp/connection.d.ts +9 -0
  42. package/dist/src/model-gateway/providers/llamacpp/connection.js +73 -0
  43. package/dist/src/model-gateway/providers/llamacpp/diagnostics.d.ts +2 -0
  44. package/dist/src/model-gateway/providers/llamacpp/diagnostics.js +17 -0
  45. package/dist/src/model-gateway/providers/llamacpp/embeddings.d.ts +2 -0
  46. package/dist/src/model-gateway/providers/llamacpp/embeddings.js +56 -0
  47. package/dist/src/model-gateway/providers/llamacpp/input-token-count.d.ts +3 -0
  48. package/dist/src/model-gateway/providers/llamacpp/input-token-count.js +59 -0
  49. package/dist/src/model-gateway/providers/llamacpp/message-projection.d.ts +2 -0
  50. package/dist/src/model-gateway/providers/llamacpp/message-projection.js +33 -0
  51. package/dist/src/model-gateway/providers/llamacpp/payload.d.ts +2 -0
  52. package/dist/src/model-gateway/providers/llamacpp/payload.js +44 -0
  53. package/dist/src/model-gateway/providers/llamacpp/response-lifetime.d.ts +1 -0
  54. package/dist/src/model-gateway/providers/llamacpp/response-lifetime.js +56 -0
  55. package/dist/src/model-gateway/providers/llamacpp/schema-format.d.ts +2 -0
  56. package/dist/src/model-gateway/providers/llamacpp/schema-format.js +29 -0
  57. package/dist/src/model-gateway/providers/llamacpp/settings.d.ts +9 -0
  58. package/dist/src/model-gateway/providers/llamacpp/settings.js +25 -0
  59. package/dist/src/model-gateway/providers/llamacpp/stream-normalizer.d.ts +10 -0
  60. package/dist/src/model-gateway/providers/llamacpp/stream-normalizer.js +85 -0
  61. package/dist/src/model-gateway/providers/llamacpp/stream.d.ts +9 -0
  62. package/dist/src/model-gateway/providers/llamacpp/stream.js +33 -0
  63. package/dist/src/model-gateway/providers/openai/embeddings.js +2 -29
  64. package/dist/src/model-gateway/providers/openai/sse-data.d.ts +1 -9
  65. package/dist/src/model-gateway/providers/openai/sse-data.js +1 -67
  66. package/dist/src/model-gateway/providers/registry.js +2 -0
  67. package/dist/src/model-gateway/server/input-token-count-handler.js +10 -1
  68. package/dist/src/model-gateway/types.d.ts +11 -1
  69. package/dist/src/runtime/adapters/long-term-memory/onboarding-provider-availability.d.ts +4 -0
  70. package/dist/src/runtime/adapters/long-term-memory/onboarding-provider-availability.js +11 -0
  71. package/dist/src/runtime/adapters/long-term-memory/onboarding-service.js +28 -1
  72. package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/approval.d.ts +5 -1
  73. package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/approval.js +15 -1
  74. package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/prepared-execution.js +7 -5
  75. package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/prepared-snapshot.js +9 -2
  76. package/dist/src/runtime/adapters/registered-tool-payload-related-artifacts.d.ts +1 -0
  77. package/dist/src/runtime/adapters/registered-tool-payload-related-artifacts.js +6 -1
  78. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/contracts.d.ts +1 -0
  79. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/execution.d.ts +1 -0
  80. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/execution.js +2 -0
  81. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-lifecycle.d.ts +1 -0
  82. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-lifecycle.js +2 -0
  83. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-stages.d.ts +1 -0
  84. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-stages.js +1 -0
  85. package/dist/src/runtime/adapters/registered-tool-worker-capabilities.js +1 -0
  86. package/dist/src/runtime/adapters/scheduler-runtime.js +2 -0
  87. package/dist/src/runtime/automations/agent-step-executor.js +1 -0
  88. package/dist/src/runtime/automations/catalog.d.ts +3 -0
  89. package/dist/src/runtime/automations/catalog.js +2 -0
  90. package/dist/src/runtime/automations/definition-contracts.d.ts +2 -0
  91. package/dist/src/runtime/automations/definition-input.js +3 -1
  92. package/dist/src/runtime/automations/draft-mutations.js +5 -1
  93. package/dist/src/runtime/automations/model-dependency-projection.d.ts +3 -1
  94. package/dist/src/runtime/automations/model-dependency-projection.js +4 -2
  95. package/dist/src/runtime/automations/publication-validation.js +7 -0
  96. package/dist/src/runtime/automations/saved-agent-management.js +1 -0
  97. package/dist/src/runtime/automations/service.d.ts +4 -1
  98. package/dist/src/runtime/capabilities/automation-builder/payload-schema.js +7 -5
  99. package/dist/src/runtime/capabilities/automation-builder/tool-module.js +4 -4
  100. package/dist/src/runtime/capabilities/automations/authoring-catalog.d.ts +9 -0
  101. package/dist/src/runtime/capabilities/automations/authoring-catalog.js +1 -0
  102. package/dist/src/runtime/capabilities/automations/authoring-preparation.d.ts +3 -0
  103. package/dist/src/runtime/capabilities/automations/draft-index.d.ts +1 -1
  104. package/dist/src/runtime/capabilities/automations/tool-contract.js +3 -2
  105. package/dist/src/runtime/capabilities/automations/tool-module.js +20 -11
  106. package/dist/src/runtime/capabilities/core-tool-contracts.d.ts +29 -0
  107. package/dist/src/runtime/capabilities/core-tool-contracts.js +38 -0
  108. package/dist/src/runtime/capabilities/knowledge-skills/read-many.d.ts +4 -0
  109. package/dist/src/runtime/capabilities/knowledge-skills/read-many.js +21 -0
  110. package/dist/src/runtime/capabilities/knowledge-skills/read-targets.d.ts +13 -0
  111. package/dist/src/runtime/capabilities/knowledge-skills/read-targets.js +44 -0
  112. package/dist/src/runtime/capabilities/knowledge-skills/tool-contract.d.ts +141 -0
  113. package/dist/src/runtime/capabilities/knowledge-skills/tool-contract.js +58 -0
  114. package/dist/src/runtime/capabilities/knowledge-skills/tool-module.d.ts +4 -0
  115. package/dist/src/runtime/capabilities/knowledge-skills/tool-module.js +78 -0
  116. package/dist/src/runtime/capabilities/knowledge-skills/tool-output.d.ts +12 -0
  117. package/dist/src/runtime/capabilities/knowledge-skills/tool-output.js +21 -0
  118. package/dist/src/runtime/capabilities/knowledge-skills/write-contract.d.ts +77 -0
  119. package/dist/src/runtime/capabilities/knowledge-skills/write-contract.js +28 -0
  120. package/dist/src/runtime/capabilities/knowledge-skills/write-operations.d.ts +3 -0
  121. package/dist/src/runtime/capabilities/knowledge-skills/write-operations.js +34 -0
  122. package/dist/src/runtime/capabilities/model-reasoning-controls.d.ts +23 -0
  123. package/dist/src/runtime/capabilities/model-reasoning-controls.js +56 -0
  124. package/dist/src/runtime/capabilities/scheduling/create-operations.js +2 -0
  125. package/dist/src/runtime/capabilities/scheduling/job-list-page.d.ts +1 -0
  126. package/dist/src/runtime/capabilities/scheduling/tool-module.js +8 -5
  127. package/dist/src/runtime/capabilities/scheduling/update-operations.js +2 -0
  128. package/dist/src/runtime/composition.d.ts +5 -0
  129. package/dist/src/runtime/config/builders.js +6 -0
  130. package/dist/src/runtime/config/effective-model-config-validation.js +4 -0
  131. package/dist/src/runtime/config/llamacpp-profile-validation.d.ts +3 -0
  132. package/dist/src/runtime/config/llamacpp-profile-validation.js +15 -0
  133. package/dist/src/runtime/config/model-reasoning-schema.d.ts +40 -0
  134. package/dist/src/runtime/config/model-reasoning-schema.js +38 -0
  135. package/dist/src/runtime/config/model-reasoning-validation.d.ts +3 -0
  136. package/dist/src/runtime/config/model-reasoning-validation.js +37 -0
  137. package/dist/src/runtime/config/runner/step-instructions.d.ts +4 -0
  138. package/dist/src/runtime/config/runner/step-instructions.js +10 -6
  139. package/dist/src/runtime/config/schema.js +3 -0
  140. package/dist/src/runtime/config/validation/model-invocation-config-validation.js +14 -0
  141. package/dist/src/runtime/context/capability-result-compaction-source.d.ts +3 -1
  142. package/dist/src/runtime/context/capability-result-compaction-source.js +13 -1
  143. package/dist/src/runtime/context/compacted-capability-result-receipt.d.ts +2 -0
  144. package/dist/src/runtime/context/compacted-capability-result-receipt.js +8 -7
  145. package/dist/src/runtime/context/core-skill-read-context.d.ts +16 -0
  146. package/dist/src/runtime/context/core-skill-read-context.js +76 -0
  147. package/dist/src/runtime/context/exact-evidence-match.d.ts +3 -0
  148. package/dist/src/runtime/context/exact-evidence-match.js +34 -0
  149. package/dist/src/runtime/context/execution-compacted-evidence.d.ts +4 -0
  150. package/dist/src/runtime/context/execution-compacted-evidence.js +2 -23
  151. package/dist/src/runtime/context/execution-compaction-checkpoint-selection.d.ts +19 -0
  152. package/dist/src/runtime/context/execution-compaction-checkpoint-selection.js +104 -0
  153. package/dist/src/runtime/context/model-step-compaction-inheritance.d.ts +12 -0
  154. package/dist/src/runtime/context/model-step-compaction-inheritance.js +28 -0
  155. package/dist/src/runtime/context/model-step-compaction-projection.d.ts +12 -0
  156. package/dist/src/runtime/context/model-step-compaction-projection.js +322 -0
  157. package/dist/src/runtime/context/model-step-compaction.d.ts +2 -1
  158. package/dist/src/runtime/context/model-step-compaction.js +27 -304
  159. package/dist/src/runtime/context/operation-supervision-compacted-evidence.js +7 -1
  160. package/dist/src/runtime/context/request-context.d.ts +2 -0
  161. package/dist/src/runtime/context/request-context.js +16 -0
  162. package/dist/src/runtime/context/request-tool-results-checkpoint.d.ts +2 -1
  163. package/dist/src/runtime/context/request-tool-results-checkpoint.js +35 -6
  164. package/dist/src/runtime/context/request-tool-results.js +3 -1
  165. package/dist/src/runtime/context/semantic-compaction/checkpoint-message.d.ts +5 -1
  166. package/dist/src/runtime/context/semantic-compaction/checkpoint-message.js +10 -4
  167. package/dist/src/runtime/context/semantic-compaction/core-skill-read-source.d.ts +9 -0
  168. package/dist/src/runtime/context/semantic-compaction/core-skill-read-source.js +38 -0
  169. package/dist/src/runtime/context/semantic-compaction/execution-evidence-instructions.d.ts +4 -0
  170. package/dist/src/runtime/context/semantic-compaction/execution-evidence-instructions.js +38 -0
  171. package/dist/src/runtime/context/semantic-compaction/generation-contracts.d.ts +5 -1
  172. package/dist/src/runtime/context/semantic-compaction/generation-input.js +15 -10
  173. package/dist/src/runtime/context/semantic-compaction/inherited-source-digests.d.ts +8 -0
  174. package/dist/src/runtime/context/semantic-compaction/inherited-source-digests.js +76 -0
  175. package/dist/src/runtime/context/semantic-compaction/prompt.js +7 -7
  176. package/dist/src/runtime/context/semantic-compaction/replacement-budget.js +3 -1
  177. package/dist/src/runtime/context/semantic-compaction/run.js +16 -15
  178. package/dist/src/runtime/context/semantic-compaction/super-source-integrity.js +33 -3
  179. package/dist/src/runtime/context/session-artifact-paths.d.ts +2 -1
  180. package/dist/src/runtime/context/session-artifact-paths.js +2 -1
  181. package/dist/src/runtime/context/session-memory/model-step-controller.d.ts +2 -2
  182. package/dist/src/runtime/context/super-worker-compaction-failure.d.ts +1 -1
  183. package/dist/src/runtime/context/super-worker-compaction-failure.js +2 -1
  184. package/dist/src/runtime/context/super-worker-compaction-sidecar.d.ts +2 -1
  185. package/dist/src/runtime/context/super-worker-compaction-sidecar.js +9 -3
  186. package/dist/src/runtime/default-environment-adapters.d.ts +2 -1
  187. package/dist/src/runtime/default-environment-adapters.js +5 -1
  188. package/dist/src/runtime/knowledge-skills/available-skills-projection.d.ts +17 -0
  189. package/dist/src/runtime/knowledge-skills/available-skills-projection.js +66 -0
  190. package/dist/src/runtime/knowledge-skills/available-skills.d.ts +7 -0
  191. package/dist/src/runtime/knowledge-skills/available-skills.js +17 -0
  192. package/dist/src/runtime/knowledge-skills/builtins/abot-studio.d.ts +2 -0
  193. package/dist/src/runtime/knowledge-skills/builtins/abot-studio.js +27 -0
  194. package/dist/src/runtime/knowledge-skills/builtins/computer-use.d.ts +2 -0
  195. package/dist/src/runtime/knowledge-skills/builtins/computer-use.js +34 -0
  196. package/dist/src/runtime/knowledge-skills/builtins/skill-creator.d.ts +2 -0
  197. package/dist/src/runtime/knowledge-skills/builtins/skill-creator.js +29 -0
  198. package/dist/src/runtime/knowledge-skills/builtins/technical-work.d.ts +2 -0
  199. package/dist/src/runtime/knowledge-skills/builtins/technical-work.js +45 -0
  200. package/dist/src/runtime/knowledge-skills/builtins/what-can-i-do.d.ts +2 -0
  201. package/dist/src/runtime/knowledge-skills/builtins/what-can-i-do.js +27 -0
  202. package/dist/src/runtime/knowledge-skills/catalog.d.ts +2 -0
  203. package/dist/src/runtime/knowledge-skills/catalog.js +14 -0
  204. package/dist/src/runtime/knowledge-skills/personal-contracts.d.ts +48 -0
  205. package/dist/src/runtime/knowledge-skills/personal-contracts.js +29 -0
  206. package/dist/src/runtime/knowledge-skills/personal-documents.d.ts +6 -0
  207. package/dist/src/runtime/knowledge-skills/personal-documents.js +56 -0
  208. package/dist/src/runtime/knowledge-skills/personal-management.d.ts +9 -0
  209. package/dist/src/runtime/knowledge-skills/personal-management.js +64 -0
  210. package/dist/src/runtime/knowledge-skills/personal-repository.d.ts +6 -0
  211. package/dist/src/runtime/knowledge-skills/personal-repository.js +76 -0
  212. package/dist/src/runtime/knowledge-skills/personal-store.d.ts +4 -0
  213. package/dist/src/runtime/knowledge-skills/personal-store.js +33 -0
  214. package/dist/src/runtime/knowledge-skills/read-evidence.d.ts +3 -0
  215. package/dist/src/runtime/knowledge-skills/read-evidence.js +13 -0
  216. package/dist/src/runtime/knowledge-skills/store.d.ts +19 -0
  217. package/dist/src/runtime/knowledge-skills/store.js +41 -0
  218. package/dist/src/runtime/local-application.d.ts +7 -1
  219. package/dist/src/runtime/local-host/app-service-dispatch.d.ts +2 -1
  220. package/dist/src/runtime/local-host/app-service-dispatch.js +7 -0
  221. package/dist/src/runtime/local-host/client-services.d.ts +8 -1
  222. package/dist/src/runtime/local-host/client-services.js +3 -2
  223. package/dist/src/runtime/local-host/saved-approvals.js +1 -0
  224. package/dist/src/runtime/long-term-memory/conversation-authoring/context.d.ts +1 -0
  225. package/dist/src/runtime/long-term-memory/conversation-authoring/context.js +1 -1
  226. package/dist/src/runtime/long-term-memory/conversation-authoring/plain-text-context.d.ts +5 -0
  227. package/dist/src/runtime/long-term-memory/conversation-authoring/plain-text-context.js +28 -0
  228. package/dist/src/runtime/long-term-memory/initial-context.d.ts +1 -0
  229. package/dist/src/runtime/long-term-memory/onboarding/configuration.js +5 -7
  230. package/dist/src/runtime/long-term-memory/onboarding/contracts.d.ts +26 -0
  231. package/dist/src/runtime/long-term-memory/onboarding/embedding-profile-id.d.ts +1 -0
  232. package/dist/src/runtime/long-term-memory/onboarding/embedding-profile-id.js +8 -0
  233. package/dist/src/runtime/long-term-memory/onboarding/saved-profiles.d.ts +17 -0
  234. package/dist/src/runtime/long-term-memory/onboarding/saved-profiles.js +77 -0
  235. package/dist/src/runtime/long-term-memory/onboarding/service.js +40 -10
  236. package/dist/src/runtime/model/context-compaction-admission.d.ts +1 -0
  237. package/dist/src/runtime/model/context-compaction-admission.js +35 -1
  238. package/dist/src/runtime/model/context-compaction-contracts.d.ts +9 -1
  239. package/dist/src/runtime/model/input-token-count.js +1 -0
  240. package/dist/src/runtime/model/invoke-step.js +18 -2
  241. package/dist/src/runtime/model/invoke-structured-step.d.ts +4 -1
  242. package/dist/src/runtime/model/invoke-structured-step.js +4 -0
  243. package/dist/src/runtime/model/model-catalog.d.ts +3 -0
  244. package/dist/src/runtime/model/model-catalog.js +2 -0
  245. package/dist/src/runtime/model/model-context-budget.d.ts +5 -0
  246. package/dist/src/runtime/model/model-context-budget.js +2 -0
  247. package/dist/src/runtime/model/model-step-port.d.ts +7 -0
  248. package/dist/src/runtime/model/optional-context-admission.d.ts +18 -0
  249. package/dist/src/runtime/model/optional-context-admission.js +23 -0
  250. package/dist/src/runtime/model/provider-failure.d.ts +13 -0
  251. package/dist/src/runtime/model/provider-failure.js +37 -0
  252. package/dist/src/runtime/orchestration/role-calls/activation-budget.js +1 -0
  253. package/dist/src/runtime/orchestration/role-calls/candidate-validation.js +2 -0
  254. package/dist/src/runtime/orchestration/role-calls/checkpoint-state.js +2 -1
  255. package/dist/src/runtime/orchestration/role-calls/command-decoder.js +3 -0
  256. package/dist/src/runtime/orchestration/role-calls/command-dispatch/skill-read-transition.d.ts +4 -0
  257. package/dist/src/runtime/orchestration/role-calls/command-dispatch/skill-read-transition.js +48 -0
  258. package/dist/src/runtime/orchestration/role-calls/command-dispatch.js +3 -0
  259. package/dist/src/runtime/orchestration/role-calls/contracts.d.ts +6 -3
  260. package/dist/src/runtime/orchestration/role-calls/contracts.js +3 -3
  261. package/dist/src/runtime/orchestration/role-calls/skill-read.d.ts +47 -0
  262. package/dist/src/runtime/orchestration/role-calls/skill-read.js +196 -0
  263. package/dist/src/runtime/orchestration/role-executors/activation/model-output-failure.d.ts +1 -1
  264. package/dist/src/runtime/orchestration/role-executors/activation/model-output-failure.js +4 -2
  265. package/dist/src/runtime/orchestration/worker-capabilities/binding/create-binding.js +4 -1
  266. package/dist/src/runtime/orchestration/worker-capabilities/contracts.d.ts +1 -1
  267. package/dist/src/runtime/orchestration/worker-capabilities/contracts.js +1 -1
  268. package/dist/src/runtime/orchestration/worker-capabilities/execution/approval-group.js +5 -3
  269. package/dist/src/runtime/orchestration/worker-capabilities/payload-compaction-transport.d.ts +2 -0
  270. package/dist/src/runtime/orchestration/worker-capabilities/payload-compaction-transport.js +7 -2
  271. package/dist/src/runtime/orchestration/worker-capabilities/supervisor-skill-authority.d.ts +19 -0
  272. package/dist/src/runtime/orchestration/worker-capabilities/supervisor-skill-authority.js +43 -0
  273. package/dist/src/runtime/plugins/loader.js +7 -6
  274. package/dist/src/runtime/ports.d.ts +3 -1
  275. package/dist/src/runtime/projects/contracts.d.ts +6 -0
  276. package/dist/src/runtime/projects/registry-format.d.ts +3 -0
  277. package/dist/src/runtime/projects/registry-format.js +50 -0
  278. package/dist/src/runtime/projects/repository.d.ts +6 -3
  279. package/dist/src/runtime/projects/repository.js +26 -19
  280. package/dist/src/runtime/projects/service.js +11 -0
  281. package/dist/src/runtime/request/approval-wait/preflight.js +2 -0
  282. package/dist/src/runtime/request/approval-wait/snapshot.d.ts +1 -1
  283. package/dist/src/runtime/request/approval-wait/snapshot.js +1 -0
  284. package/dist/src/runtime/request/bound-runtime-handler.js +1 -0
  285. package/dist/src/runtime/request/contracts.d.ts +7 -1
  286. package/dist/src/runtime/request/execution-facets.js +2 -0
  287. package/dist/src/runtime/request/execution-payload-artifact-policy.d.ts +3 -0
  288. package/dist/src/runtime/request/execution-payload-artifact-policy.js +6 -0
  289. package/dist/src/runtime/request/execution-payload-compacted-evidence.d.ts +2 -2
  290. package/dist/src/runtime/request/execution-payload-compacted-evidence.js +1 -0
  291. package/dist/src/runtime/request/execution-scope-surfaces.d.ts +4 -0
  292. package/dist/src/runtime/request/execution-scope-surfaces.js +10 -0
  293. package/dist/src/runtime/request/execution-scope.d.ts +8 -2
  294. package/dist/src/runtime/request/execution-scope.js +13 -0
  295. package/dist/src/runtime/request/input.d.ts +1 -0
  296. package/dist/src/runtime/request/input.js +1 -0
  297. package/dist/src/runtime/request/payload-settled-evidence.d.ts +11 -0
  298. package/dist/src/runtime/request/payload-settled-evidence.js +29 -0
  299. package/dist/src/runtime/request/prepared-execution.d.ts +1 -0
  300. package/dist/src/runtime/request/prepared-execution.js +5 -0
  301. package/dist/src/runtime/request/reasoning-preference.d.ts +10 -0
  302. package/dist/src/runtime/request/reasoning-preference.js +29 -0
  303. package/dist/src/runtime/request/role-call-delegation-events.d.ts +19 -0
  304. package/dist/src/runtime/request/role-call-delegation-events.js +52 -0
  305. package/dist/src/runtime/request/role-call-return-events.d.ts +19 -0
  306. package/dist/src/runtime/request/role-call-return-events.js +63 -0
  307. package/dist/src/runtime/request/role-executor-composition.js +2 -2
  308. package/dist/src/runtime/request/root-capability-binding.d.ts +24 -0
  309. package/dist/src/runtime/request/root-capability-binding.js +57 -0
  310. package/dist/src/runtime/request/root-capability-catalog.d.ts +16 -0
  311. package/dist/src/runtime/request/root-capability-catalog.js +20 -0
  312. package/dist/src/runtime/request/root-contract.d.ts +11 -1
  313. package/dist/src/runtime/request/root-execution-kernel.js +35 -68
  314. package/dist/src/runtime/request/root-reference-action.d.ts +15 -0
  315. package/dist/src/runtime/request/root-reference-action.js +48 -0
  316. package/dist/src/runtime/request/root-skill-read-admission.d.ts +4 -0
  317. package/dist/src/runtime/request/root-skill-read-admission.js +14 -0
  318. package/dist/src/runtime/request/root-skill-read.d.ts +13 -0
  319. package/dist/src/runtime/request/root-skill-read.js +110 -0
  320. package/dist/src/runtime/request/runner.js +10 -0
  321. package/dist/src/runtime/request/super-payload-context-failure.js +13 -4
  322. package/dist/src/runtime/request/supervisor-root-execution.js +48 -1
  323. package/dist/src/runtime/request/supervisor-skill-edit-target.d.ts +9 -0
  324. package/dist/src/runtime/request/supervisor-skill-edit-target.js +25 -0
  325. package/dist/src/runtime/request/supervisor-skill-payload-context.d.ts +21 -0
  326. package/dist/src/runtime/request/supervisor-skill-payload-context.js +91 -0
  327. package/dist/src/runtime/request/supervisor-skill-selection-window.d.ts +16 -0
  328. package/dist/src/runtime/request/supervisor-skill-selection-window.js +17 -0
  329. package/dist/src/runtime/request/supervisor-skill-write-preparation.d.ts +25 -0
  330. package/dist/src/runtime/request/supervisor-skill-write-preparation.js +71 -0
  331. package/dist/src/runtime/request/worker-capability-composition.d.ts +4 -1
  332. package/dist/src/runtime/request/worker-capability-composition.js +6 -1
  333. package/dist/src/runtime/request/worker-capability-payload.d.ts +1 -1
  334. package/dist/src/runtime/request/worker-capability-payload.js +44 -37
  335. package/dist/src/runtime/runtime-environment.d.ts +2 -0
  336. package/dist/src/runtime/runtime-environment.js +12 -1
  337. package/dist/src/runtime/scheduler/contracts.d.ts +11 -1
  338. package/dist/src/runtime/scheduler/job-management.js +7 -1
  339. package/dist/src/runtime/scheduler/run-list-filter.d.ts +11 -0
  340. package/dist/src/runtime/scheduler/run-list-filter.js +56 -0
  341. package/dist/src/runtime/scheduler/run-list-query.d.ts +2 -2
  342. package/dist/src/runtime/scheduler/run-list-query.js +4 -1
  343. package/dist/src/runtime/scheduler/run-records.js +2 -0
  344. package/dist/src/runtime/scheduler/schedule-validation.js +2 -0
  345. package/dist/src/runtime/scheduler/scheduler-engine.js +1 -0
  346. package/dist/src/runtime/scheduler/snapshot-validation.js +2 -0
  347. package/dist/src/runtime/steps/auditor-decision/contracts.d.ts +2 -0
  348. package/dist/src/runtime/steps/auditor-decision/evidence-representation.d.ts +2 -2
  349. package/dist/src/runtime/steps/auditor-decision/evidence-representation.js +2 -34
  350. package/dist/src/runtime/steps/auditor-decision/input.js +21 -3
  351. package/dist/src/runtime/steps/auditor-decision/projection.js +7 -0
  352. package/dist/src/runtime/steps/auditor-decision/prompt.d.ts +1 -1
  353. package/dist/src/runtime/steps/auditor-decision/prompt.js +14 -3
  354. package/dist/src/runtime/steps/capability-execution-guidance.d.ts +7 -0
  355. package/dist/src/runtime/steps/capability-execution-guidance.js +28 -0
  356. package/dist/src/runtime/steps/capability-execution-instructions.d.ts +0 -2
  357. package/dist/src/runtime/steps/capability-execution-instructions.js +0 -2
  358. package/dist/src/runtime/steps/execution-agent/capability-controls-partition.d.ts +9 -0
  359. package/dist/src/runtime/steps/execution-agent/capability-controls-partition.js +29 -0
  360. package/dist/src/runtime/steps/execution-agent/capability-result-context.d.ts +5 -2
  361. package/dist/src/runtime/steps/execution-agent/capability-result-context.js +22 -3
  362. package/dist/src/runtime/steps/execution-agent/capability-scope.d.ts +17 -0
  363. package/dist/src/runtime/steps/execution-agent/capability-scope.js +54 -0
  364. package/dist/src/runtime/steps/execution-agent/compaction.d.ts +3 -2
  365. package/dist/src/runtime/steps/execution-agent/compaction.js +31 -7
  366. package/dist/src/runtime/steps/execution-agent/controls-compacted-evidence.js +2 -0
  367. package/dist/src/runtime/steps/execution-agent/direct-response-prompt.js +14 -14
  368. package/dist/src/runtime/steps/execution-agent/evidence-reuse-instructions.d.ts +6 -0
  369. package/dist/src/runtime/steps/execution-agent/evidence-reuse-instructions.js +13 -0
  370. package/dist/src/runtime/steps/execution-agent/format.js +3 -6
  371. package/dist/src/runtime/steps/execution-agent/input.d.ts +5 -1
  372. package/dist/src/runtime/steps/execution-agent/input.js +24 -38
  373. package/dist/src/runtime/steps/execution-agent/observation-guidance.d.ts +11 -0
  374. package/dist/src/runtime/steps/execution-agent/observation-guidance.js +33 -0
  375. package/dist/src/runtime/steps/execution-agent/prompt.js +42 -38
  376. package/dist/src/runtime/steps/execution-agent/refinement-input.d.ts +1 -0
  377. package/dist/src/runtime/steps/execution-agent/refinement-prompt.js +4 -1
  378. package/dist/src/runtime/steps/execution-agent/refinement.d.ts +3 -2
  379. package/dist/src/runtime/steps/execution-agent/refinement.js +17 -6
  380. package/dist/src/runtime/steps/execution-agent/response-prompt.js +1 -0
  381. package/dist/src/runtime/steps/execution-agent/response-run.js +1 -1
  382. package/dist/src/runtime/steps/execution-agent/run.js +8 -2
  383. package/dist/src/runtime/steps/execution-agent/state-context.js +1 -1
  384. package/dist/src/runtime/steps/knowledge-skill-instructions.d.ts +3 -0
  385. package/dist/src/runtime/steps/knowledge-skill-instructions.js +3 -0
  386. package/dist/src/runtime/steps/planner-decision/capability-brief.d.ts +2 -2
  387. package/dist/src/runtime/steps/planner-decision/capability-brief.js +5 -1
  388. package/dist/src/runtime/steps/planner-decision/input.d.ts +2 -2
  389. package/dist/src/runtime/steps/planner-decision/input.js +7 -1
  390. package/dist/src/runtime/steps/planner-decision/prompt.js +3 -0
  391. package/dist/src/runtime/steps/planner-graph/input.d.ts +2 -2
  392. package/dist/src/runtime/steps/planner-graph/input.js +9 -8
  393. package/dist/src/runtime/steps/planner-graph/prompt.js +2 -2
  394. package/dist/src/runtime/steps/planner-graph/run.d.ts +2 -2
  395. package/dist/src/runtime/steps/planner-graph/run.js +5 -5
  396. package/dist/src/runtime/steps/planner-graph/skill-guidance.d.ts +5 -0
  397. package/dist/src/runtime/steps/planner-graph/skill-guidance.js +62 -0
  398. package/dist/src/runtime/steps/reviewer-decision/final-evidence.d.ts +1 -0
  399. package/dist/src/runtime/steps/reviewer-decision/final-evidence.js +3 -1
  400. package/dist/src/runtime/steps/reviewer-decision/input.d.ts +3 -1
  401. package/dist/src/runtime/steps/reviewer-decision/input.js +2 -22
  402. package/dist/src/runtime/steps/reviewer-decision/model-context.d.ts +21 -0
  403. package/dist/src/runtime/steps/reviewer-decision/model-context.js +32 -1
  404. package/dist/src/runtime/steps/reviewer-decision/projection.js +4 -0
  405. package/dist/src/runtime/steps/reviewer-decision/prompt.d.ts +1 -1
  406. package/dist/src/runtime/steps/reviewer-decision/prompt.js +15 -4
  407. package/dist/src/runtime/steps/reviewer-decision/run.d.ts +2 -0
  408. package/dist/src/runtime/steps/reviewer-decision/run.js +6 -0
  409. package/dist/src/runtime/steps/skill-read-decision.d.ts +35 -0
  410. package/dist/src/runtime/steps/skill-read-decision.js +96 -0
  411. package/dist/src/runtime/steps/supervisor-decision/artifact-paths.d.ts +27 -0
  412. package/dist/src/runtime/steps/supervisor-decision/artifact-paths.js +147 -0
  413. package/dist/src/runtime/steps/supervisor-decision/capability-brief.d.ts +2 -0
  414. package/dist/src/runtime/steps/supervisor-decision/capability-brief.js +9 -2
  415. package/dist/src/runtime/steps/supervisor-decision/contracts.d.ts +12 -3
  416. package/dist/src/runtime/steps/supervisor-decision/contracts.js +5 -0
  417. package/dist/src/runtime/steps/supervisor-decision/decision-phases.d.ts +40 -0
  418. package/dist/src/runtime/steps/supervisor-decision/decision-phases.js +143 -0
  419. package/dist/src/runtime/steps/supervisor-decision/delegation-contract.d.ts +9 -0
  420. package/dist/src/runtime/steps/supervisor-decision/delegation-contract.js +82 -0
  421. package/dist/src/runtime/steps/supervisor-decision/delegation-input.d.ts +7 -0
  422. package/dist/src/runtime/steps/supervisor-decision/delegation-input.js +105 -0
  423. package/dist/src/runtime/steps/supervisor-decision/delegation-prompt.d.ts +7 -0
  424. package/dist/src/runtime/steps/supervisor-decision/delegation-prompt.js +13 -0
  425. package/dist/src/runtime/steps/supervisor-decision/diagnostics.d.ts +5 -1
  426. package/dist/src/runtime/steps/supervisor-decision/diagnostics.js +4 -0
  427. package/dist/src/runtime/steps/supervisor-decision/format.d.ts +1 -0
  428. package/dist/src/runtime/steps/supervisor-decision/format.js +2 -0
  429. package/dist/src/runtime/steps/supervisor-decision/input.d.ts +8 -1
  430. package/dist/src/runtime/steps/supervisor-decision/input.js +30 -11
  431. package/dist/src/runtime/steps/supervisor-decision/parser.d.ts +1 -0
  432. package/dist/src/runtime/steps/supervisor-decision/parser.js +11 -0
  433. package/dist/src/runtime/steps/supervisor-decision/preparation-input.d.ts +24 -0
  434. package/dist/src/runtime/steps/supervisor-decision/preparation-input.js +23 -0
  435. package/dist/src/runtime/steps/supervisor-decision/preparation.d.ts +20 -0
  436. package/dist/src/runtime/steps/supervisor-decision/preparation.js +117 -0
  437. package/dist/src/runtime/steps/supervisor-decision/presentation.d.ts +13 -0
  438. package/dist/src/runtime/steps/supervisor-decision/presentation.js +47 -0
  439. package/dist/src/runtime/steps/supervisor-decision/procedure-entry.d.ts +22 -0
  440. package/dist/src/runtime/steps/supervisor-decision/procedure-entry.js +61 -0
  441. package/dist/src/runtime/steps/supervisor-decision/procedure-gate.d.ts +39 -0
  442. package/dist/src/runtime/steps/supervisor-decision/procedure-gate.js +146 -0
  443. package/dist/src/runtime/steps/supervisor-decision/procedure-memory.d.ts +9 -0
  444. package/dist/src/runtime/steps/supervisor-decision/procedure-memory.js +100 -0
  445. package/dist/src/runtime/steps/supervisor-decision/procedure-recall.d.ts +10 -0
  446. package/dist/src/runtime/steps/supervisor-decision/procedure-recall.js +52 -0
  447. package/dist/src/runtime/steps/supervisor-decision/prompt.d.ts +4 -0
  448. package/dist/src/runtime/steps/supervisor-decision/prompt.js +85 -111
  449. package/dist/src/runtime/steps/supervisor-decision/response-recommendation.d.ts +2 -0
  450. package/dist/src/runtime/steps/supervisor-decision/response-recommendation.js +2 -0
  451. package/dist/src/runtime/steps/supervisor-decision/resume.d.ts +3 -0
  452. package/dist/src/runtime/steps/supervisor-decision/resume.js +20 -0
  453. package/dist/src/runtime/steps/supervisor-decision/role-guidance.d.ts +3 -0
  454. package/dist/src/runtime/steps/supervisor-decision/role-guidance.js +20 -0
  455. package/dist/src/runtime/steps/supervisor-decision/run.d.ts +6 -0
  456. package/dist/src/runtime/steps/supervisor-decision/run.js +120 -163
  457. package/dist/src/runtime/steps/supervisor-decision/skill-read-state.d.ts +10 -0
  458. package/dist/src/runtime/steps/supervisor-decision/skill-read-state.js +45 -0
  459. package/dist/src/runtime/steps/supervisor-decision/skill-selection-candidates.d.ts +15 -0
  460. package/dist/src/runtime/steps/supervisor-decision/skill-selection-candidates.js +25 -0
  461. package/dist/src/runtime/steps/supervisor-decision/skill-selection-catalog.d.ts +3 -0
  462. package/dist/src/runtime/steps/supervisor-decision/skill-selection-catalog.js +15 -0
  463. package/dist/src/runtime/steps/supervisor-decision/skill-selection-continuation.d.ts +10 -0
  464. package/dist/src/runtime/steps/supervisor-decision/skill-selection-continuation.js +65 -0
  465. package/dist/src/runtime/steps/supervisor-decision/skill-selection-input.d.ts +23 -0
  466. package/dist/src/runtime/steps/supervisor-decision/skill-selection-input.js +27 -0
  467. package/dist/src/runtime/steps/supervisor-decision/skill-selection.d.ts +17 -0
  468. package/dist/src/runtime/steps/supervisor-decision/skill-selection.js +91 -0
  469. package/dist/src/runtime/steps/supervisor-response/input.d.ts +3 -0
  470. package/dist/src/runtime/steps/supervisor-response/input.js +5 -0
  471. package/dist/src/runtime/steps/supervisor-response/prompt.js +20 -4
  472. package/dist/src/runtime/steps/supervisor-response/response-recommendation.d.ts +3 -0
  473. package/dist/src/runtime/steps/supervisor-response/response-recommendation.js +24 -4
  474. package/dist/src/runtime/steps/supervisor-response/run.d.ts +5 -0
  475. package/dist/src/runtime/steps/supervisor-skill-authoring/contract.d.ts +43 -0
  476. package/dist/src/runtime/steps/supervisor-skill-authoring/contract.js +85 -0
  477. package/dist/src/runtime/steps/supervisor-skill-authoring/input.d.ts +35 -0
  478. package/dist/src/runtime/steps/supervisor-skill-authoring/input.js +87 -0
  479. package/dist/src/runtime/steps/supervisor-skill-authoring/run.d.ts +10 -0
  480. package/dist/src/runtime/steps/supervisor-skill-authoring/run.js +35 -0
  481. package/dist/src/runtime/steps/supervisor-skill-instructions.d.ts +4 -0
  482. package/dist/src/runtime/steps/supervisor-skill-instructions.js +4 -0
  483. package/dist/src/runtime/steps/worker-capability-scope-decision.js +14 -1
  484. package/dist/src/runtime/steps/worker-decision/contracts.d.ts +1 -0
  485. package/dist/src/runtime/steps/worker-decision/input/execution-guidance.d.ts +5 -0
  486. package/dist/src/runtime/steps/worker-decision/input/execution-guidance.js +31 -0
  487. package/dist/src/runtime/steps/worker-decision/input/prompt-context.js +2 -25
  488. package/dist/src/runtime/steps/worker-decision/input/reference-context.js +4 -0
  489. package/dist/src/runtime/steps/worker-decision/prompt.js +6 -2
  490. package/dist/src/runtime/steps/worker-decision/result-author.js +6 -0
  491. package/dist/src/shared/model-reasoning-modes.d.ts +5 -0
  492. package/dist/src/shared/model-reasoning-modes.js +20 -0
  493. package/dist/src/shared/model-reasoning-schema.d.ts +38 -0
  494. package/dist/src/shared/model-reasoning-schema.js +29 -0
  495. package/dist/src/shared/model-reasoning.d.ts +35 -0
  496. package/dist/src/shared/model-reasoning.js +100 -0
  497. package/dist/src/web-ui/app/ARCHITECTURE.md +13 -0
  498. package/dist/src/web-ui/app/app-bootstrap.js +12 -12
  499. package/dist/src/web-ui/app/app-dom.js +6 -1
  500. package/dist/src/web-ui/app/app-state.js +1 -0
  501. package/dist/src/web-ui/app/app.js +14 -4
  502. package/dist/src/web-ui/app/appearance-feature.js +28 -0
  503. package/dist/src/web-ui/app/automations-feature.js +20 -11
  504. package/dist/src/web-ui/app/components/appearance-dialog.js +79 -0
  505. package/dist/src/web-ui/app/components/automations/archive-actions.js +5 -3
  506. package/dist/src/web-ui/app/components/automations/authoring-entry.js +26 -7
  507. package/dist/src/web-ui/app/components/automations/confirmation-actions.js +78 -0
  508. package/dist/src/web-ui/app/components/automations/draft-recovery-actions.js +1 -0
  509. package/dist/src/web-ui/app/components/automations/node-inspector.js +5 -1
  510. package/dist/src/web-ui/app/components/automations/run-history-controls.js +77 -0
  511. package/dist/src/web-ui/app/components/automations/run-history.js +55 -0
  512. package/dist/src/web-ui/app/components/automations/run.js +3 -8
  513. package/dist/src/web-ui/app/components/automations/step-editor-dialog.js +4 -2
  514. package/dist/src/web-ui/app/components/automations/timeline.js +2 -2
  515. package/dist/src/web-ui/app/components/automations/workspace-navigation.js +37 -0
  516. package/dist/src/web-ui/app/components/automations/workspace.js +39 -45
  517. package/dist/src/web-ui/app/components/config-workspace/config-model.js +6 -0
  518. package/dist/src/web-ui/app/components/config-workspace/model-removal.js +4 -2
  519. package/dist/src/web-ui/app/components/config-workspace/model-rendering.js +8 -16
  520. package/dist/src/web-ui/app/components/config-workspace/reasoning-budget-edit.js +113 -0
  521. package/dist/src/web-ui/app/components/config-workspace/reasoning-budget.d.ts +16 -0
  522. package/dist/src/web-ui/app/components/config-workspace/reasoning-budget.js +67 -0
  523. package/dist/src/web-ui/app/components/config-workspace/reasoning-mode-budgets.d.ts +7 -0
  524. package/dist/src/web-ui/app/components/config-workspace/reasoning-mode-budgets.js +25 -0
  525. package/dist/src/web-ui/app/components/config-workspace/workspace-events.js +15 -7
  526. package/dist/src/web-ui/app/components/config-workspace/workspace-mutations.js +32 -12
  527. package/dist/src/web-ui/app/components/config-workspace/workspace-persistence.js +1 -1
  528. package/dist/src/web-ui/app/components/config-workspace.js +2 -1
  529. package/dist/src/web-ui/app/components/confirmation-dialog.js +88 -0
  530. package/dist/src/web-ui/app/components/conversation-activity.d.ts +2 -0
  531. package/dist/src/web-ui/app/components/conversation-activity.js +32 -3
  532. package/dist/src/web-ui/app/components/conversation-memory-activity.js +31 -0
  533. package/dist/src/web-ui/app/components/conversation-role-cards.d.ts +2 -0
  534. package/dist/src/web-ui/app/components/conversation-role-cards.js +32 -2
  535. package/dist/src/web-ui/app/components/conversation-role-delegations.d.ts +12 -0
  536. package/dist/src/web-ui/app/components/conversation-role-delegations.js +24 -0
  537. package/dist/src/web-ui/app/components/conversation-role-history.d.ts +13 -0
  538. package/dist/src/web-ui/app/components/conversation-role-history.js +81 -0
  539. package/dist/src/web-ui/app/components/conversation-role-returns.d.ts +12 -0
  540. package/dist/src/web-ui/app/components/conversation-role-returns.js +23 -0
  541. package/dist/src/web-ui/app/components/conversation-skill-activity.js +67 -0
  542. package/dist/src/web-ui/app/components/conversation-tools.js +5 -5
  543. package/dist/src/web-ui/app/components/conversation-view.js +6 -0
  544. package/dist/src/web-ui/app/components/dashboard/approvals.js +13 -1
  545. package/dist/src/web-ui/app/components/long-term-memory/embedding-connection-dialog.d.ts +38 -0
  546. package/dist/src/web-ui/app/components/long-term-memory/embedding-connection-dialog.js +289 -0
  547. package/dist/src/web-ui/app/components/long-term-memory/embedding-connection-feature.js +75 -0
  548. package/dist/src/web-ui/app/components/long-term-memory/embedding-connection-rendering.js +31 -0
  549. package/dist/src/web-ui/app/components/long-term-memory/manager.js +15 -5
  550. package/dist/src/web-ui/app/components/long-term-memory/saved-embedding-profiles.js +114 -0
  551. package/dist/src/web-ui/app/components/long-term-memory/setup-rendering.js +55 -0
  552. package/dist/src/web-ui/app/components/long-term-memory-setup.js +141 -76
  553. package/dist/src/web-ui/app/components/model-setup/rendering.js +3 -2
  554. package/dist/src/web-ui/app/components/model-setup/validation.js +6 -2
  555. package/dist/src/web-ui/app/components/model-setup/wizard.d.ts +1 -0
  556. package/dist/src/web-ui/app/components/model-setup/wizard.js +28 -5
  557. package/dist/src/web-ui/app/components/onboarding-workspace-access.js +1 -1
  558. package/dist/src/web-ui/app/components/passive-learning/memory.js +12 -5
  559. package/dist/src/web-ui/app/components/plugins/manager.js +14 -0
  560. package/dist/src/web-ui/app/components/plugins/removal.js +10 -2
  561. package/dist/src/web-ui/app/components/project-group-actions.js +35 -0
  562. package/dist/src/web-ui/app/components/project-session-groups.js +17 -31
  563. package/dist/src/web-ui/app/components/runtime-setup/commands.js +1 -1
  564. package/dist/src/web-ui/app/components/runtime-setup/connection-form.d.ts +15 -0
  565. package/dist/src/web-ui/app/components/runtime-setup/connection-form.js +32 -9
  566. package/dist/src/web-ui/app/components/runtime-setup/connection-input.js +23 -0
  567. package/dist/src/web-ui/app/components/runtime-setup/connection-inspection.js +57 -0
  568. package/dist/src/web-ui/app/components/runtime-setup/connection-state.js +18 -4
  569. package/dist/src/web-ui/app/components/runtime-setup/embedding-credential-status.js +3 -0
  570. package/dist/src/web-ui/app/components/runtime-setup/embedding-provider-options.js +54 -0
  571. package/dist/src/web-ui/app/components/runtime-setup/embedding-provider-receipt.js +3 -0
  572. package/dist/src/web-ui/app/components/runtime-setup/embedding-rendering.js +22 -22
  573. package/dist/src/web-ui/app/components/runtime-setup/embedding.js +60 -16
  574. package/dist/src/web-ui/app/components/runtime-setup/reasoning-fields.d.ts +17 -0
  575. package/dist/src/web-ui/app/components/runtime-setup/reasoning-fields.js +54 -0
  576. package/dist/src/web-ui/app/components/runtime-setup/validation.js +5 -1
  577. package/dist/src/web-ui/app/components/runtime-setup-guide.d.ts +9 -3
  578. package/dist/src/web-ui/app/components/runtime-setup-guide.js +20 -29
  579. package/dist/src/web-ui/app/components/schedules/details.js +2 -2
  580. package/dist/src/web-ui/app/components/schedules/form.js +12 -5
  581. package/dist/src/web-ui/app/components/schedules/workspace.js +30 -18
  582. package/dist/src/web-ui/app/components/session-list-viewport.js +49 -0
  583. package/dist/src/web-ui/app/components/session-search-disclosure.js +27 -0
  584. package/dist/src/web-ui/app/components/skills/workspace.js +123 -0
  585. package/dist/src/web-ui/app/components/spark-chat/panel.js +7 -3
  586. package/dist/src/web-ui/app/components/spark-chat/settings.js +57 -15
  587. package/dist/src/web-ui/app/components/tool-approval-card.d.ts +2 -1
  588. package/dist/src/web-ui/app/components/tool-approval-card.js +10 -2
  589. package/dist/src/web-ui/app/components/tool-approval-rejection-input.js +116 -0
  590. package/dist/src/web-ui/app/components/workspace-shell.js +41 -39
  591. package/dist/src/web-ui/app/components/workspace-transitions.js +42 -0
  592. package/dist/src/web-ui/app/configuration-feature.js +34 -4
  593. package/dist/src/web-ui/app/controllers/app-event-bindings.js +45 -29
  594. package/dist/src/web-ui/app/controllers/appearance-controller.js +105 -0
  595. package/dist/src/web-ui/app/controllers/automation-read-projection.js +8 -4
  596. package/dist/src/web-ui/app/controllers/automation-run-actions.js +3 -1
  597. package/dist/src/web-ui/app/controllers/automation-run-history.js +159 -0
  598. package/dist/src/web-ui/app/controllers/automations-controller.js +36 -12
  599. package/dist/src/web-ui/app/controllers/composer-feature.d.ts +1 -1
  600. package/dist/src/web-ui/app/controllers/composer-feature.js +10 -3
  601. package/dist/src/web-ui/app/controllers/composer-queue-controller.d.ts +1 -1
  602. package/dist/src/web-ui/app/controllers/composer-queue-controller.js +9 -3
  603. package/dist/src/web-ui/app/controllers/composer-submission-lifecycle.d.ts +1 -1
  604. package/dist/src/web-ui/app/controllers/conversation-workspace-activation.js +8 -2
  605. package/dist/src/web-ui/app/controllers/dashboard-approvals-controller.js +10 -9
  606. package/dist/src/web-ui/app/controllers/environment-transition.js +2 -2
  607. package/dist/src/web-ui/app/controllers/environment-workspace-preparation.js +12 -6
  608. package/dist/src/web-ui/app/controllers/preference-view-sync.js +35 -0
  609. package/dist/src/web-ui/app/controllers/projects-controller.d.ts +4 -0
  610. package/dist/src/web-ui/app/controllers/projects-controller.js +64 -3
  611. package/dist/src/web-ui/app/controllers/realtime-event-controller.js +22 -1
  612. package/dist/src/web-ui/app/controllers/reasoning-budget-controller.d.ts +17 -0
  613. package/dist/src/web-ui/app/controllers/reasoning-budget-controller.js +80 -0
  614. package/dist/src/web-ui/app/controllers/reasoning-budget-menu-events.js +45 -0
  615. package/dist/src/web-ui/app/controllers/reasoning-mode-controller.js +35 -40
  616. package/dist/src/web-ui/app/controllers/runtime-selection-controller.d.ts +6 -1
  617. package/dist/src/web-ui/app/controllers/runtime-selection-controller.js +23 -4
  618. package/dist/src/web-ui/app/controllers/session-controller.js +34 -9
  619. package/dist/src/web-ui/app/controllers/session-sidebar-controller.js +4 -3
  620. package/dist/src/web-ui/app/controllers/skills-controller.js +254 -0
  621. package/dist/src/web-ui/app/controllers/spark-chat-sync.js +1 -1
  622. package/dist/src/web-ui/app/controllers/spark-handoff-navigation.js +7 -1
  623. package/dist/src/web-ui/app/controllers/tool-approval-controller.d.ts +2 -1
  624. package/dist/src/web-ui/app/controllers/tool-approval-controller.js +36 -3
  625. package/dist/src/web-ui/app/controllers/workspace-conversation-opener.js +8 -2
  626. package/dist/src/web-ui/app/controllers/workspace-route-controller.js +41 -10
  627. package/dist/src/web-ui/app/index.html +38 -32
  628. package/dist/src/web-ui/app/lib/color-palettes.d.ts +17 -0
  629. package/dist/src/web-ui/app/lib/color-palettes.js +20 -0
  630. package/dist/src/web-ui/app/lib/conversation-role-model.d.ts +5 -0
  631. package/dist/src/web-ui/app/lib/conversation-role-model.js +63 -5
  632. package/dist/src/web-ui/app/lib/event-presentation.js +34 -0
  633. package/dist/src/web-ui/app/lib/memory-activity-model.d.ts +12 -0
  634. package/dist/src/web-ui/app/lib/memory-activity-model.js +61 -0
  635. package/dist/src/web-ui/app/lib/navigation-display.d.ts +8 -0
  636. package/dist/src/web-ui/app/lib/navigation-display.js +12 -0
  637. package/dist/src/web-ui/app/lib/reasoning-controls.js +47 -6
  638. package/dist/src/web-ui/app/lib/reasoning-preference.d.ts +9 -0
  639. package/dist/src/web-ui/app/lib/reasoning-preference.js +75 -0
  640. package/dist/src/web-ui/app/lib/role-delegation-event.d.ts +18 -0
  641. package/dist/src/web-ui/app/lib/role-delegation-event.js +47 -0
  642. package/dist/src/web-ui/app/lib/role-return-event.d.ts +19 -0
  643. package/dist/src/web-ui/app/lib/role-return-event.js +36 -0
  644. package/dist/src/web-ui/app/lib/session-composer-queue.d.ts +4 -0
  645. package/dist/src/web-ui/app/lib/session-composer-queue.js +4 -0
  646. package/dist/src/web-ui/app/lib/session-project-groups.js +28 -0
  647. package/dist/src/web-ui/app/lib/session-sidebar-order.js +7 -5
  648. package/dist/src/web-ui/app/lib/tool-activity-event.d.ts +1 -0
  649. package/dist/src/web-ui/app/lib/tool-activity-event.js +9 -6
  650. package/dist/src/web-ui/app/lib/tool-activity-model.d.ts +1 -0
  651. package/dist/src/web-ui/app/lib/tool-activity-model.js +1 -0
  652. package/dist/src/web-ui/app/lib/tool-approval-rejection-drafts.js +45 -0
  653. package/dist/src/web-ui/app/lib/tool-skill-activity-fields.js +50 -0
  654. package/dist/src/web-ui/app/lib/workspace-route.js +1 -0
  655. package/dist/src/web-ui/app/notifications-feature.js +10 -2
  656. package/dist/src/web-ui/app/passive-learning-feature.js +2 -2
  657. package/dist/src/web-ui/app/projects-feature.js +40 -10
  658. package/dist/src/web-ui/app/runtime-onboarding-feature.js +1 -0
  659. package/dist/src/web-ui/app/schedules-feature.js +28 -5
  660. package/dist/src/web-ui/app/services/client-preferences.d.ts +4 -1
  661. package/dist/src/web-ui/app/services/client-preferences.js +2 -0
  662. package/dist/src/web-ui/app/services/conversation-reasoning-preferences.d.ts +11 -0
  663. package/dist/src/web-ui/app/services/conversation-reasoning-preferences.js +30 -0
  664. package/dist/src/web-ui/app/services/runtime-web-client/automations.d.ts +9 -1
  665. package/dist/src/web-ui/app/services/runtime-web-client/automations.js +16 -6
  666. package/dist/src/web-ui/app/services/runtime-web-client/configuration.js +5 -0
  667. package/dist/src/web-ui/app/services/runtime-web-client/memory.js +21 -0
  668. package/dist/src/web-ui/app/services/runtime-web-client/projects.d.ts +2 -1
  669. package/dist/src/web-ui/app/services/runtime-web-client/projects.js +4 -0
  670. package/dist/src/web-ui/app/services/runtime-web-client/skills.js +23 -0
  671. package/dist/src/web-ui/app/services/runtime-web-client/tool-approvals.js +2 -0
  672. package/dist/src/web-ui/app/services/runtime-web-client.d.ts +16 -0
  673. package/dist/src/web-ui/app/services/runtime-web-client.js +4 -0
  674. package/dist/src/web-ui/app/services/session-sidebar-preferences.js +33 -13
  675. package/dist/src/web-ui/app/skills-feature.js +35 -0
  676. package/dist/src/web-ui/app/spark-chat-conversation.js +29 -3
  677. package/dist/src/web-ui/app/spark-chat-feature.js +13 -7
  678. package/dist/src/web-ui/app/styles/01-color-palettes.css +90 -0
  679. package/dist/src/web-ui/app/styles/11-product-links.css +6 -2
  680. package/dist/src/web-ui/app/styles/11-workspace-header-width.css +37 -25
  681. package/dist/src/web-ui/app/styles/12-conversation-sidebar.css +56 -22
  682. package/dist/src/web-ui/app/styles/13-projects.css +56 -19
  683. package/dist/src/web-ui/app/styles/19-runtime-setup.css +16 -0
  684. package/dist/src/web-ui/app/styles/22-reasoning-budget.css +39 -0
  685. package/dist/src/web-ui/app/styles/24-conversation-role-cards.css +58 -0
  686. package/dist/src/web-ui/app/styles/27-conversation-memory.css +45 -0
  687. package/dist/src/web-ui/app/styles/27-conversation-skills.css +96 -0
  688. package/dist/src/web-ui/app/styles/28-tool-approval-card.css +38 -1
  689. package/dist/src/web-ui/app/styles/35-embedding-profiles.css +159 -0
  690. package/dist/src/web-ui/app/styles/40-skills.css +34 -0
  691. package/dist/src/web-ui/app/styles/50-automations.css +24 -3
  692. package/dist/src/web-ui/app/styles/54-spark-chat.css +62 -46
  693. package/dist/src/web-ui/app/styles/65-appearance.css +60 -0
  694. package/dist/src/web-ui/app/styles/66-navigation-display.css +30 -0
  695. package/dist/src/web-ui/app/styles/67-confirmation-dialog.css +32 -0
  696. package/dist/src/web-ui/app/styles/95-home-widgets.css +2 -1
  697. package/dist/src/web-ui/app/styles.css +9 -0
  698. package/dist/src/web-ui/app/ui-behavior.d.ts +1 -1
  699. package/dist/src/web-ui/app/ui-behavior.js +1 -0
  700. package/dist/src/web-ui/client-state/preference-shapes.js +6 -1
  701. package/dist/src/web-ui/client-state/preferences.js +8 -2
  702. package/dist/src/web-ui/client-state/reasoning-preference-shape.d.ts +1 -0
  703. package/dist/src/web-ui/client-state/reasoning-preference-shape.js +18 -0
  704. package/dist/src/web-ui/client-state/store.js +3 -2
  705. package/dist/src/web-ui/client-state/transaction-order.d.ts +2 -0
  706. package/dist/src/web-ui/client-state/transaction-order.js +18 -0
  707. package/dist/src/web-ui/local-runtime/api-router.d.ts +2 -0
  708. package/dist/src/web-ui/local-runtime/api-router.js +18 -0
  709. package/dist/src/web-ui/local-runtime/automation-routes.js +2 -1
  710. package/dist/src/web-ui/local-runtime/automation-run-page.d.ts +5 -0
  711. package/dist/src/web-ui/local-runtime/automation-run-page.js +26 -0
  712. package/dist/src/web-ui/local-runtime/memory-embedding-connection-input.d.ts +7 -0
  713. package/dist/src/web-ui/local-runtime/memory-embedding-connection-input.js +22 -0
  714. package/dist/src/web-ui/local-runtime/memory-embedding-connection-service.d.ts +20 -0
  715. package/dist/src/web-ui/local-runtime/memory-embedding-connection-service.js +47 -0
  716. package/dist/src/web-ui/local-runtime/memory-onboarding-routes.js +32 -0
  717. package/dist/src/web-ui/local-runtime/model-connection-inspection.d.ts +7 -0
  718. package/dist/src/web-ui/local-runtime/model-connection-inspection.js +48 -0
  719. package/dist/src/web-ui/local-runtime/model-setup-catalog.d.ts +2 -1
  720. package/dist/src/web-ui/local-runtime/model-setup-catalog.js +3 -1
  721. package/dist/src/web-ui/local-runtime/model-setup-identity.js +1 -1
  722. package/dist/src/web-ui/local-runtime/model-setup-input.d.ts +5 -2
  723. package/dist/src/web-ui/local-runtime/model-setup-input.js +29 -6
  724. package/dist/src/web-ui/local-runtime/model-setup-provider.d.ts +1 -1
  725. package/dist/src/web-ui/local-runtime/model-setup-provider.js +9 -6
  726. package/dist/src/web-ui/local-runtime/model-setup-retry.js +4 -1
  727. package/dist/src/web-ui/local-runtime/model-setup-service.d.ts +2 -1
  728. package/dist/src/web-ui/local-runtime/pending-tool-approvals.js +4 -1
  729. package/dist/src/web-ui/local-runtime/project-routes.js +10 -2
  730. package/dist/src/web-ui/local-runtime/request-execution.js +1 -0
  731. package/dist/src/web-ui/local-runtime/runtime-setup-auth.d.ts +2 -0
  732. package/dist/src/web-ui/local-runtime/runtime-setup-auth.js +20 -0
  733. package/dist/src/web-ui/local-runtime/runtime-setup-connection-edit.js +3 -2
  734. package/dist/src/web-ui/local-runtime/runtime-setup-credential-completion.js +6 -1
  735. package/dist/src/web-ui/local-runtime/runtime-setup-input.d.ts +3 -2
  736. package/dist/src/web-ui/local-runtime/runtime-setup-input.js +17 -5
  737. package/dist/src/web-ui/local-runtime/runtime-setup-provider.d.ts +4 -1
  738. package/dist/src/web-ui/local-runtime/runtime-setup-provider.js +6 -2
  739. package/dist/src/web-ui/local-runtime/runtime-setup-routes.d.ts +11 -2
  740. package/dist/src/web-ui/local-runtime/runtime-setup-routes.js +11 -2
  741. package/dist/src/web-ui/local-runtime/runtime-setup-scaffold.js +3 -2
  742. package/dist/src/web-ui/local-runtime/runtime-setup-service.d.ts +25 -4
  743. package/dist/src/web-ui/local-runtime/runtime-setup-service.js +19 -9
  744. package/dist/src/web-ui/local-runtime/setup-embedding-input.d.ts +3 -1
  745. package/dist/src/web-ui/local-runtime/setup-embedding-input.js +38 -6
  746. package/dist/src/web-ui/local-runtime/setup-embedding-llamacpp.d.ts +11 -0
  747. package/dist/src/web-ui/local-runtime/setup-embedding-llamacpp.js +53 -0
  748. package/dist/src/web-ui/local-runtime/setup-embedding-provider.js +23 -9
  749. package/dist/src/web-ui/local-runtime/setup-embedding-routes.d.ts +7 -2
  750. package/dist/src/web-ui/local-runtime/setup-embedding-routes.js +5 -3
  751. package/dist/src/web-ui/local-runtime/setup-embedding-service.d.ts +1 -0
  752. package/dist/src/web-ui/local-runtime/skill-management-routes.d.ts +18 -0
  753. package/dist/src/web-ui/local-runtime/skill-management-routes.js +118 -0
  754. package/docs/configuration.md +11 -1
  755. package/docs/installation.md +11 -5
  756. package/docs/llamacpp.md +248 -0
  757. package/docs/long-term-memory.md +12 -0
  758. package/docs/running-locally.md +7 -1
  759. package/docs/runtime-public-contracts.md +37 -0
  760. package/examples/request-runner.config.example.json +3 -0
  761. package/package.json +2 -1
  762. package/plugins/project-orientation/source/index.ts +2 -3
  763. package/plugins/project-orientation/source/inspection-failure.ts +1 -1
  764. package/plugins/project-orientation/source/project-target.ts +29 -0
  765. package/plugins/project-orientation/src/index.cjs +21 -2
  766. package/plugins/web/skills/web_fetch_skill/SKILL.md +1 -2
  767. package/plugins/web/skills/web_search_skill/SKILL.md +3 -7
  768. package/runtime.config.schema.json +140 -0
  769. package/src/runtime/README.md +145 -4
@@ -1,3 +1,4 @@
1
+ import { planNewLlamaEmbeddingProvider, commitLlamaEmbeddingProvider, } from "./setup-embedding-llamacpp.js";
1
2
  import { buildProviderConfig } from "../../../scripts/runtime-setup-files.js";
2
3
  import { createFileLongTermMemoryOnboardingConfigRepository } from "../../runtime/adapters/long-term-memory/onboarding-config-repository.js";
3
4
  import { isRecord } from "../../runtime/config/utils.js";
@@ -57,8 +58,10 @@ function requirePreservedProviderSettings(provider, input) {
57
58
  if (input.baseUrl && input.baseUrl !== provider.baseUrl) {
58
59
  throw new RuntimeSetupError("embedding_provider_conflict", "That provider already uses another address. Choose its saved connection or edit it in Settings.", 409);
59
60
  }
60
- if (input.apiKey && provider.type !== "openai") {
61
- throw new RuntimeSetupError("invalid_embedding_credential", "Only an OpenAI connection accepts an API key here.");
61
+ if (input.apiKey &&
62
+ provider.type !== "openai" &&
63
+ provider.type !== "llamacpp") {
64
+ throw new RuntimeSetupError("invalid_embedding_credential", "This connection does not support an API key.");
62
65
  }
63
66
  }
64
67
  /** Adds only the requested provider; chat profiles and existing provider settings stay intact. */
@@ -66,14 +69,19 @@ export async function prepareSetupEmbeddingProvider(options, input) {
66
69
  const repository = createFileLongTermMemoryOnboardingConfigRepository(options);
67
70
  const snapshot = await repository.read();
68
71
  const providers = readProviderMap(snapshot.config.models);
69
- const providerId = resolveSetupEmbeddingProviderId(providers, input);
72
+ const llamaConnection = input.provider === "llamacpp"
73
+ ? planNewLlamaEmbeddingProvider(providers, input)
74
+ : undefined;
75
+ const providerId = llamaConnection?.providerId ??
76
+ resolveSetupEmbeddingProviderId(providers, input);
70
77
  const existing = providers[providerId];
71
78
  if (input.providerId && !isRecord(existing)) {
72
- throw new RuntimeSetupError("embedding_provider_not_configured", "Choose a configured provider or add an OpenAI or Ollama connection.", 404);
79
+ throw new RuntimeSetupError("embedding_provider_not_configured", "Choose a configured provider or add an OpenAI, Ollama or llama.cpp connection.", 404);
73
80
  }
74
- const provider = isRecord(existing)
75
- ? existing
76
- : buildProviderConfig(input.provider, input.baseUrl);
81
+ const provider = llamaConnection?.provider ??
82
+ (isRecord(existing)
83
+ ? existing
84
+ : buildProviderConfig(input.provider, input.baseUrl));
77
85
  const isolatedCredential = needsIsolatedEmbeddingCredential(existing, input, providerId);
78
86
  if (isolatedCredential)
79
87
  provider.apiKeyEnv = resolveIsolatedEmbeddingCredentialName(providers, providerId);
@@ -105,8 +113,14 @@ export async function prepareSetupEmbeddingProvider(options, input) {
105
113
  preserveExistingCredential: true,
106
114
  });
107
115
  }
108
- if (!isRecord(existing))
109
- await repository.write(candidate, snapshot.config);
116
+ const persistProvider = async () => {
117
+ if (!isRecord(existing))
118
+ await repository.write(candidate, snapshot.config);
119
+ };
120
+ if (provider.type === "llamacpp")
121
+ await commitLlamaEmbeddingProvider({ rootDir: options.rootDir, configPath: snapshot.path }, provider, input, persistProvider);
122
+ else
123
+ await persistProvider();
110
124
  return {
111
125
  providerId,
112
126
  savedProvider: { id: providerId, type: provider.type },
@@ -1,8 +1,12 @@
1
1
  import type { IncomingMessage, ServerResponse } from "node:http";
2
- import { SetupEmbeddingService } from "./setup-embedding-service.js";
2
+ import type { LongTermMemoryOnboardingResult } from "../../runtime/long-term-memory/onboarding/contracts.js";
3
+ type EmbeddingConnectionService = {
4
+ enable(body: Record<string, unknown>, signal: AbortSignal): Promise<Pick<LongTermMemoryOnboardingResult, "status" | "probe" | "restartRequired">>;
5
+ };
3
6
  export declare class SetupEmbeddingRoutes {
4
7
  private readonly service;
5
- constructor(service: SetupEmbeddingService);
8
+ private readonly route;
9
+ constructor(service: EmbeddingConnectionService, route?: string);
6
10
  handle(params: {
7
11
  method: string;
8
12
  route: string;
@@ -10,3 +14,4 @@ export declare class SetupEmbeddingRoutes {
10
14
  response: ServerResponse;
11
15
  }): Promise<boolean>;
12
16
  }
17
+ export {};
@@ -2,14 +2,16 @@ import { assertConfigMutationRequest, ConfigMutationRequestError, } from "./conf
2
2
  import { readBody, readJsonBody, sendJson } from "./http.js";
3
3
  import { withHttpRequestAbortSignal } from "./request-abort.js";
4
4
  import { RuntimeSetupError } from "./runtime-setup-input.js";
5
- import { SetupEmbeddingFailure, } from "./setup-embedding-service.js";
5
+ import { SetupEmbeddingFailure } from "./setup-embedding-service.js";
6
6
  export class SetupEmbeddingRoutes {
7
7
  service;
8
- constructor(service) {
8
+ route;
9
+ constructor(service, route = "runtime/setup/embedding") {
9
10
  this.service = service;
11
+ this.route = route;
10
12
  }
11
13
  async handle(params) {
12
- if (params.route !== "runtime/setup/embedding")
14
+ if (params.route !== this.route)
13
15
  return false;
14
16
  params.response.setHeader("cache-control", "no-store");
15
17
  try {
@@ -22,6 +22,7 @@ export declare class SetupEmbeddingService {
22
22
  providerId?: string;
23
23
  model?: string;
24
24
  providers: readonly import("../../runtime/index.js").LongTermMemoryOnboardingProvider[];
25
+ embeddingProfiles: readonly import("../../runtime/index.js").SavedMemoryEmbeddingProfile[];
25
26
  }>;
26
27
  probe: Readonly<{
27
28
  modelFingerprint: string;
@@ -0,0 +1,18 @@
1
+ import type { IncomingMessage, ServerResponse } from "node:http";
2
+ import { type PersonalSkillManagementService } from "../../runtime/knowledge-skills/personal-contracts.js";
3
+ import type { JsonObject } from "./contracts.js";
4
+ type SkillManagementRequest = Readonly<{
5
+ method: string;
6
+ segments: readonly string[];
7
+ body: JsonObject | null;
8
+ environmentId: string;
9
+ request: IncomingMessage;
10
+ response: ServerResponse;
11
+ }>;
12
+ /** Personal records only; the runtime owner shares the model Store's lock. */
13
+ export declare class PersonalSkillManagementRoutes {
14
+ private readonly resolveService;
15
+ constructor(resolveService: (environmentId: string) => PersonalSkillManagementService | undefined);
16
+ handle(request: SkillManagementRequest): Promise<boolean>;
17
+ }
18
+ export {};
@@ -0,0 +1,118 @@
1
+ import { KnowledgeSkillError, PERSONAL_SKILL_LIMITS, } from "../../runtime/knowledge-skills/personal-contracts.js";
2
+ import { acceptConfigMutationRequest } from "./config-mutation-request.js";
3
+ import { sendJson } from "./http.js";
4
+ /** Personal records only; the runtime owner shares the model Store's lock. */
5
+ export class PersonalSkillManagementRoutes {
6
+ resolveService;
7
+ constructor(resolveService) {
8
+ this.resolveService = resolveService;
9
+ }
10
+ async handle(request) {
11
+ const { segments, method, response } = request;
12
+ if (segments[0] !== "runtime" || segments[1] !== "skills")
13
+ return false;
14
+ const isItem = segments.length === 3 && Boolean(segments[2]);
15
+ const isArchiveAction = segments.length === 4 && Boolean(segments[2]) &&
16
+ (segments[3] === "archive" || segments[3] === "restore");
17
+ if (segments.length !== 2 && !isItem && !isArchiveAction)
18
+ return false;
19
+ const allow = isArchiveAction ? "POST" : isItem ? "GET, PATCH" : "GET, POST";
20
+ if (!allow.split(", ").includes(method)) {
21
+ response.setHeader("allow", allow);
22
+ sendJson(response, 405, { ok: false, error: "method_not_allowed" });
23
+ return true;
24
+ }
25
+ if (method !== "GET" && !acceptConfigMutationRequest(request.request, response))
26
+ return true;
27
+ try {
28
+ const service = this.resolveService(request.environmentId);
29
+ if (!service)
30
+ throw new KnowledgeSkillError("knowledge_skill_management_unavailable");
31
+ if (segments.length === 2) {
32
+ if (method === "POST") {
33
+ const skill = await service.create(readCreation(request.body));
34
+ sendJson(response, 201, { ok: true, skill });
35
+ }
36
+ else {
37
+ sendJson(response, 200, { ok: true, items: await service.list() });
38
+ }
39
+ return true;
40
+ }
41
+ const skillId = segments[2];
42
+ let skill;
43
+ if (method === "GET") {
44
+ skill = await service.get(skillId);
45
+ if (!skill)
46
+ throw new KnowledgeSkillError("knowledge_skill_not_found");
47
+ }
48
+ else {
49
+ const expectedRevision = readMutation(request.body, method === "PATCH");
50
+ if (method === "PATCH") {
51
+ skill = await service.updateContent(skillId, expectedRevision, request.body.content);
52
+ }
53
+ else if (segments[3] === "archive") {
54
+ skill = await service.archive(skillId, expectedRevision);
55
+ }
56
+ else {
57
+ skill = await service.restore(skillId, expectedRevision);
58
+ }
59
+ }
60
+ sendJson(response, 200, { ok: true, skill });
61
+ }
62
+ catch (error) {
63
+ sendManagementError(response, error);
64
+ }
65
+ return true;
66
+ }
67
+ }
68
+ function readCreation(body) {
69
+ const allowed = ["name", "description", "content", "environment", "environmentId"];
70
+ if (!body || Object.keys(body).some((key) => !allowed.includes(key)) ||
71
+ typeof body.name !== "string" || typeof body.description !== "string" || typeof body.content !== "string") {
72
+ throw new KnowledgeSkillError("knowledge_skill_input_invalid");
73
+ }
74
+ return { name: body.name, description: body.description, content: body.content };
75
+ }
76
+ function readMutation(body, contentRequired) {
77
+ const allowed = ["expectedRevision", "environment", "environmentId", ...(contentRequired ? ["content"] : [])];
78
+ if (!body || Object.keys(body).some((key) => !allowed.includes(key)) ||
79
+ (contentRequired && typeof body.content !== "string")) {
80
+ throw new KnowledgeSkillError("knowledge_skill_input_invalid");
81
+ }
82
+ const revision = body.expectedRevision;
83
+ if (typeof revision !== "number" || !Number.isSafeInteger(revision) || revision < 1 ||
84
+ revision > PERSONAL_SKILL_LIMITS.revision) {
85
+ throw new KnowledgeSkillError("knowledge_skill_revision_invalid");
86
+ }
87
+ return revision;
88
+ }
89
+ const ERROR_STATUSES = Object.freeze({
90
+ knowledge_skill_not_found: 404,
91
+ knowledge_skill_read_only: 403,
92
+ knowledge_skill_revision_conflict: 409,
93
+ knowledge_skill_revision_limit: 409,
94
+ knowledge_skill_archived: 409,
95
+ knowledge_skill_input_invalid: 400,
96
+ knowledge_skill_id_invalid: 400,
97
+ knowledge_skill_revision_invalid: 400,
98
+ knowledge_skill_content_invalid: 400,
99
+ knowledge_skill_content_too_large: 400,
100
+ knowledge_skill_name_invalid: 400,
101
+ knowledge_skill_description_invalid: 400,
102
+ knowledge_skill_storage_unavailable: 503,
103
+ knowledge_skill_storage_invalid: 503,
104
+ knowledge_skill_storage_too_large: 503,
105
+ knowledge_skill_management_unavailable: 503,
106
+ });
107
+ function sendManagementError(response, error) {
108
+ // RPC reconstructs Error with its code; do not rely on prototype identity.
109
+ const code = error && typeof error === "object" && "code" in error ? error.code : undefined;
110
+ if (typeof code === "string" && Object.hasOwn(ERROR_STATUSES, code)) {
111
+ sendJson(response, ERROR_STATUSES[code], { ok: false, error: code });
112
+ return;
113
+ }
114
+ const unavailable = error instanceof Error && error.message === "local_runtime_service_unavailable";
115
+ sendJson(response, unavailable ? 503 : 500, {
116
+ ok: false, error: unavailable ? "knowledge_skill_management_unavailable" : "knowledge_skill_management_failed",
117
+ });
118
+ }
@@ -83,7 +83,7 @@ Provider configs should reference env var names:
83
83
  }
84
84
  ```
85
85
 
86
- Ollama and OpenAI adapters are included. A host may register another adapter
86
+ Ollama, OpenAI and llama.cpp adapters are included. See [llama.cpp setup and reasoning budgets](llamacpp.md). A host may register another adapter
87
87
  through `@abot-ai/runtime/model-gateway`; its config uses that adapter's `type` and
88
88
  may place adapter-owned JSON-safe values under `settings`. Merely naming an
89
89
  unknown type never selects a fallback provider.
@@ -610,6 +610,16 @@ The common slots and their first tuning targets are:
610
610
  | Context compaction | `context.compact` | Structured format and preservation of facts that later steps still require; physical capacity remains profile-owned. |
611
611
  | Literal tool payloads | `toolPayload.raw` | Literal-payload instructions and any intentional provider-native output controls. Verify the produced payload or artifact directly, not the model's description of it. |
612
612
 
613
+ New OpenAI profiles created through CLI setup, Web onboarding, or model
614
+ addition set `timeoutMs` to `300000` (five minutes) in both
615
+ `calibration["context.compact"]` and `calibration["toolPayload.raw"]`. These
616
+ profile overrides take precedence over the shared 180-second compaction and
617
+ 90-second literal-payload defaults; other steps retain their own timeouts.
618
+ Explicit template timeouts are preserved, and existing profiles are not
619
+ migrated automatically. To apply these settings to an existing GPT profile,
620
+ add `"timeoutMs": 300000` to each of those calibration objects, preserving
621
+ their other fields. This does not change reasoning effort.
622
+
613
623
  `timeoutMs` addresses provider latency only; raising it does not improve model
614
624
  reasoning. Top-level `contextWindowTokens` declares the concrete model
615
625
  profile's physical capacity. Calibration context fields can tune projection
@@ -13,6 +13,7 @@ This guide covers three entry points:
13
13
  - TypeScript-capable host project if using the library directly
14
14
  - Optional: an installed and running Ollama service for Ollama model profiles
15
15
  - Optional: OpenAI API key for OpenAI model profiles
16
+ - Optional: a running llama.cpp server for [llama.cpp model profiles](llamacpp.md)
16
17
 
17
18
  ## Prepare Ollama (If Selected)
18
19
 
@@ -64,12 +65,15 @@ npx abot start
64
65
 
65
66
  Open [http://127.0.0.1:5177](http://127.0.0.1:5177). The command binds to
66
67
  loopback by default. On a fresh installation, the setup wizard lets you select
67
- OpenAI or Ollama, enter a concrete model ID, and save the connection. OpenAI
68
+ OpenAI, Ollama or llama.cpp, enter a concrete model ID, and save the connection. OpenAI
68
69
  accepts the API key directly in the form and stores it privately in the
69
70
  consumer's `.env`. The key is not returned to the browser or stored in runtime
70
71
  JSON. Existing OpenAI configurations missing a key open the same completion flow.
71
72
 
72
- For Ollama, the server must already be running with the selected model available.
73
+ For Ollama and llama.cpp, the server must already be running with the selected model available.
74
+ Every provider's model registration includes an explicit thinking-support checkbox.
75
+ llama.cpp additionally offers per-segment token budgets and a metadata-only
76
+ connection check; see [llama.cpp setup](llamacpp.md).
73
77
  Its address is resolved from the ABot host, even when you use the UI from a phone.
74
78
  Continue through the optional **Embedding** step to configure semantic memory,
75
79
  or choose to set it up later. **Plugins** starts with all tools selected for a
@@ -93,7 +97,7 @@ managed by a separate process remains under that process's lifecycle; the UI
93
97
  reports when saved changes require that owner to restart.
94
98
 
95
99
  In the Web UI, open **Models → Add model** to add another model.
96
- Choose a saved provider connection or create a new OpenAI/Ollama connection.
100
+ Choose a saved provider connection or create a new OpenAI/Ollama/llama.cpp connection.
97
101
  Each provider card also has an **Add model** shortcut. Review the model, then
98
102
  choose **Save and apply**. Saved API keys are reused; existing model profiles and
99
103
  the default model are preserved. The added model is selected in the Models list.
@@ -133,8 +137,10 @@ npx abot memory enable --provider <provider-id> --model <embedding-model-id>
133
137
 
134
138
  ABot does not install or choose the embedding model. The enable command performs
135
139
  a real probe, writes config only after it succeeds, and reports that the Runtime
136
- must be restarted. OpenAI users enter the embedding model id manually; Ollama
137
- users can discover model ids installed at the configured Ollama endpoint.
140
+ must be restarted. OpenAI and llama.cpp users enter the embedding model id
141
+ manually; Ollama users can discover model ids installed at the configured Ollama
142
+ endpoint. For llama.cpp, use an embedding-enabled server and, if needed, a
143
+ [separate connection from chat](llamacpp.md#embeddings-and-semantic-memory).
138
144
 
139
145
  See [Passive Long-Term Memory](long-term-memory.md) before enabling persistence.
140
146
 
@@ -0,0 +1,248 @@
1
+ # llama.cpp model connection
2
+
3
+ ABot includes a **llamacpp** provider alongside Ollama and OpenAI. It connects to
4
+ an independently installed and running llama-server; it does not install,
5
+ start, stop, update or download that server, its models or GPU drivers.
6
+
7
+ The implementation targets the server protocol in
8
+ [llama.cpp v0.7.0, revision 620d2225](https://github.com/ggml-org/llama.cpp/tree/620d2225cc436ab0b001e3200e590e3b286ef9ab).
9
+ Protocol fixtures exercise that interface. This is a source compatibility
10
+ reference, not a claim that a real server or every model/template was tested.
11
+ Earlier builds may not support the reasoning budget fields.
12
+
13
+ ## Input token counting and compaction
14
+
15
+ ABot uses `POST /v1/chat/completions/input_tokens` before context admission.
16
+ The endpoint is available in the pinned protocol revision above and performs
17
+ template rendering and tokenization without generating a response. Counting
18
+ uses the same model, projected messages, thinking controls and structured format
19
+ as generation, including the server's chat template and special tokens.
20
+ Structured-output grammar is not charged as additional prompt prose.
21
+
22
+ Each llama.cpp context assessment requests a fresh count instead of reusing the
23
+ client's token-count cache. The existing context budget and compactor consume
24
+ that measured count, and measure replacement candidates again. The final gateway
25
+ chat guard reuses a matching recent measurement; its existing estimate behavior
26
+ for a missing or expired measurement remains unchanged. Direct public `/raw`
27
+ calls retain their existing estimate guard. OpenAI caching and Ollama estimation
28
+ retain their existing behavior.
29
+
30
+ An unavailable counting endpoint, invalid response or failed authentication
31
+ fails the count explicitly; ABot does not silently substitute an estimate for
32
+ that failed call. Cancellation aborts counting. The count measures input size,
33
+ not server capacity: `contextWindowTokens` must still match the server's effective
34
+ context allocation.
35
+
36
+ ## Prepare the server
37
+
38
+ Use the official [llama.cpp server guide](https://github.com/ggml-org/llama.cpp/blob/620d2225cc436ab0b001e3200e590e3b286ef9ab/tools/server/README.md)
39
+ to install a build suitable for your OS/GPU and start your chosen model.
40
+ Set its model alias, effective context capacity, GPU allocation and listening
41
+ address explicitly. The example ABot origin is http://127.0.0.1:8080;
42
+ your server must actually listen there. Use the exact model ID returned by
43
+ the server, not an Ollama model-library name unless it is also your server alias.
44
+
45
+ The URL is resolved from the ABot Runtime host. A Windows browser does not
46
+ make a WSL or Docker Runtime use Windows loopback. Use an address reachable
47
+ from the Runtime for WSL-to-Windows, container-to-host or remote connections.
48
+ The setup form accepts an HTTP/HTTPS origin without credentials, query or path.
49
+
50
+ ## Register the connection
51
+
52
+ On a new installation choose **llama.cpp** in setup. For an existing installation,
53
+ open **Models → Add model** and choose a new llama.cpp connection or reuse a
54
+ saved connection.
55
+
56
+ Enter the model ID, physical context capacity and server origin. The context
57
+ value must match the effective per-request capacity configured by the server;
58
+ it is not an instruction to resize the server. The API key is optional for a
59
+ server without authentication. If supplied, ABot writes a private isolated
60
+ credential binding in .env, not a key inside the model JSON or browser state.
61
+ An existing saved connection retains its authentication settings.
62
+
63
+ **Check connection** reads GET /health and GET /v1/models only.
64
+ It never generates a response or saves settings. Server readiness does not prove
65
+ thinking support, tool support, image support or context capacity.
66
+
67
+ The **This model supports thinking** checkbox is available for all providers.
68
+ It declares a model capability; enable it only when the selected model supports
69
+ reasoning. Newly created llama.cpp profiles start with text input only and
70
+ thinking support disabled. No capability is inferred from the model name.
71
+
72
+ ## Thinking budget
73
+
74
+ For a llama.cpp model with thinking support enabled, setup and the model editor
75
+ offer a default budget. Invocation calibration can override that model default.
76
+
77
+ - **Inherit (no override):** omits the budget at that configuration layer.
78
+ - **Server default:** explicitly asks llama-server to use its configured default;
79
+ this may itself be a finite budget.
80
+ - **Token limit:** a whole number from 0 through 2147483647 for each
81
+ reasoning segment. Zero disables thinking; a positive value limits its tokens.
82
+
83
+ A budget is not a wall-clock timeout or a total user-request allowance.
84
+ One user request can invoke the model several times; each invocation may contain
85
+ more than one reasoning segment. The server can need closing tokens after the
86
+ limit and the final answer still needs output/context capacity.
87
+ The model's chat template must support thinking and the server's closing-tag
88
+ mechanism. A successful health check cannot validate that behavior.
89
+
90
+ The request-level **Off** control overrides a saved budget. Numeric limits are
91
+ only offered for llama.cpp; Ollama and OpenAI retain their existing effort
92
+ controls. A finite budget does not change ABot's role policy, approval rules
93
+ or tool permissions.
94
+
95
+ ### Shared modes and optional overrides
96
+
97
+ Chat, SPARK, schedules and automation agents expose the shared **Low / Reasoning /
98
+ Deep** choices. Their default wire values remain `none / medium / high`, subject
99
+ to existing profile and invocation calibration. A model's template determines
100
+ whether positive effort levels differ. Chat exposes separate menus for reasoning
101
+ depth and thinking budget; the other forms expose separate controls. A manual
102
+ token limit or server default preserves the effective positive effort, and
103
+ choosing a mode retains that budget. For example, Deep and a 512-token limit can
104
+ be selected together. Selecting a mode clears an explicit manual Thinking Off
105
+ setting so the newly chosen mode can take effect.
106
+
107
+ Selecting a positive budget or server default when the ordinary effort is
108
+ `none` enables thinking with `medium`; a zero budget disables thinking without
109
+ rewriting the saved effort. An explicit invocation override still wins. Choosing
110
+ Profile default in the budget menu removes only the manual budget, preserving
111
+ the selected mode.
112
+
113
+ The model editor also offers **Mode token overrides**. The optional
114
+ `generation.reasoningBudgetByMode` map accepts `fast`, `reasoning` and `deep`,
115
+ each with a non-negative integer limit. Zero disables thinking for that mode.
116
+ No mode limits are supplied automatically.
117
+ For example, `"reasoningBudgetByMode": { "fast": 32, "deep": 512 }` enables
118
+ bounded thinking for Low and Deep while Reasoning keeps the ordinary settings.
119
+ These numbers are illustrative, not application defaults.
120
+
121
+ A matching mode limit replaces the ordinary `reasoningBudget`. A positive limit
122
+ enables thinking even when Low or the profile effort would otherwise disable it;
123
+ an already positive configured effort is preserved. A zero limit disables
124
+ thinking. Explicit invocation effort and request-level Off still take precedence. Per-mode maps apply only to main model
125
+ steps and direct gateway calls; utility steps such as `context.compact` retain
126
+ their own calibration and ignore conversation mode budgets.
127
+
128
+ Configuration overlays replace the entire map. Omitting the field inherits the
129
+ parent map, while `{}` explicitly clears inherited mode limits. Blank entries in
130
+ a custom map use the ordinary effort and budget settings; they do not inherit individual
131
+ entries from the replaced map.
132
+
133
+ ~~~json
134
+ {
135
+ "provider": "local-llama",
136
+ "model": "gemma",
137
+ "supportsThinking": true,
138
+ "contextWindowTokens": 32768,
139
+ "capabilities": { "inputModalities": ["text"] },
140
+ "generation": {
141
+ "reasoningBudget": { "mode": "tokens", "tokens": 512 }
142
+ },
143
+ "calibration": {
144
+ "context.compact": {
145
+ "generation": { "reasoningBudget": { "mode": "server-default" } }
146
+ }
147
+ }
148
+ }
149
+ ~~~
150
+
151
+ Provider connection in runtime.config.json:
152
+
153
+ ~~~json
154
+ {
155
+ "models": {
156
+ "providers": {
157
+ "local-llama": {
158
+ "type": "llamacpp",
159
+ "baseUrl": "http://127.0.0.1:8080"
160
+ }
161
+ },
162
+ "profiles": {
163
+ "gemma": { "configRef": "./models/gemma.config.json" }
164
+ }
165
+ }
166
+ }
167
+ ~~~
168
+
169
+ For authenticated servers add an apiKeyEnv name and supply its key privately.
170
+ The wizard creates an isolated name automatically.
171
+
172
+ ## Command-line setup
173
+
174
+ ~~~bash
175
+ npx abot init --provider llamacpp --model gemma --base-url http://127.0.0.1:8080 --context-window 32768 --supports-thinking true --reasoning-budget 512
176
+ npx abot add-model --profile gemma-llama --provider llamacpp --model gemma --base-url http://127.0.0.1:8080 --supports-thinking true --reasoning-budget server-default
177
+ ~~~
178
+
179
+ For an authenticated connection add --api-key-env MY_LLAMA_KEY and set that
180
+ environment variable privately. Do not put an API secret in command arguments.
181
+ --supports-thinking true|false is also available for Ollama/OpenAI registration;
182
+ --reasoning-budget requires llama.cpp and explicit thinking support.
183
+
184
+ The add command preserves existing profiles and the selected default unless
185
+ --default is supplied. A reused provider ID must keep its existing endpoint.
186
+ Restart the owning gateway/ABot process after CLI changes. Web UI **Save and
187
+ apply** reloads an owned gateway or reports when an external owner must restart.
188
+
189
+ ## Embeddings and semantic memory
190
+
191
+ The llama.cpp adapter supports text embeddings through `/v1/embeddings`.
192
+ Use a dedicated embedding model and run its llama-server with `--embedding`
193
+ and a pooling mode other than `none`, as required by the official server API.
194
+ A chat model with thinking support does not automatically support embeddings.
195
+
196
+ In the setup wizard's memory step, choose an existing llama.cpp connection or
197
+ create another one for the embedding server. On an existing installation, open
198
+ **Memory → Setup → Add connection** to use the same form. A separate embedding server uses
199
+ its own address and optional API key; it does not replace the chat connection.
200
+ For example, chat can use port 8080 while embeddings use port 8081. Enter the
201
+ embedding model's exact server ID manually. Model listing and a health check do
202
+ not establish embedding support. **Test and save** sends an embedding probe and
203
+ enables memory only when that probe succeeds.
204
+
205
+ Existing installations can select a configured llama.cpp connection in memory
206
+ settings. Embeddings use the existing `models.embeddingProfiles` configuration,
207
+ independently of chat profiles and reasoning budgets. A manual configuration
208
+ fragment for a separate embedding connection is:
209
+
210
+ ~~~json
211
+ {
212
+ "models": {
213
+ "providers": {
214
+ "llama-embeddings": {
215
+ "type": "llamacpp",
216
+ "baseUrl": "http://127.0.0.1:8081"
217
+ }
218
+ },
219
+ "embeddingProfiles": {
220
+ "memory-embedding": {
221
+ "provider": "llama-embeddings",
222
+ "model": "your-embedding-model-alias"
223
+ }
224
+ }
225
+ },
226
+ "longTermMemory": {
227
+ "enabled": true,
228
+ "embeddingProfileId": "memory-embedding"
229
+ }
230
+ }
231
+ ~~~
232
+
233
+ The adapter validates response indices, vector count, dimensions and finite
234
+ values, and uses the existing cancellation and model-fingerprint contracts.
235
+ Semantic memory can also continue using a separate Ollama/OpenAI connection.
236
+
237
+ ## Boundaries and validation
238
+
239
+ Image input is not advertised. Embedding support does not change memory admission,
240
+ retention, retrieval or approval policy. No embedding model is installed or
241
+ selected automatically.
242
+
243
+ Validate real model behavior separately: ordinary text, structured decisions,
244
+ tool/result continuation, generated file contents, cancellation and stream
245
+ completion. Compare timing and output quality with thinking off, a finite budget
246
+ and server default under the same model/context/server configuration. Provider
247
+ traces record resolved controls and native usage when supplied; ABot does not
248
+ invent a budget-exhaustion event or a reasoning-token count.
@@ -194,6 +194,15 @@ It can list configured providers, discover models when the provider supports
194
194
  discovery, probe and enable a selected model, or disable the feature. A provider
195
195
  without discovery support accepts a model id entered by the user.
196
196
 
197
+ Choose **Add connection** to configure an embedding server directly from this
198
+ screen. The shared setup form supports OpenAI, Ollama and llama.cpp; llama.cpp
199
+ can have a separate connection even when a chat connection already exists.
200
+ Enter its server URL, model ID and optional key, then choose **Test and save**.
201
+ The selected memory profile, lifecycle-event setting and plugin policy are
202
+ preserved. If the probe fails after the connection is saved, it remains available
203
+ for retry and the previous memory binding stays in place. After a successful
204
+ save, choose **Apply & restart** or close the dialog and apply later.
205
+
197
206
  ## Configuration Contract
198
207
 
199
208
  The onboarding flow writes a dedicated embedding profile and binds the feature
@@ -233,6 +242,9 @@ or memory lifecycle event is added to the response path.
233
242
  model ids through `/api/tags`.
234
243
  - OpenAI uses `/embeddings`. Model discovery is not exposed by that provider,
235
244
  so the consumer supplies the embedding model id.
245
+ - llama.cpp uses `/v1/embeddings` with a manually supplied embedding model id.
246
+ Use an embedding-enabled server; setup can register a separate connection
247
+ without changing the chat server. See [llama.cpp setup](llamacpp.md#embeddings-and-semantic-memory).
236
248
  - A custom model-gateway adapter may implement `embed` and optional
237
249
  `listEmbeddingModels` without changing Runtime memory policy.
238
250
 
@@ -3,7 +3,7 @@
3
3
  `abot` is a runtime library plus local service entrypoints. A complete
4
4
  source-checkout setup usually has:
5
5
 
6
- - a model provider, such as Ollama or OpenAI
6
+ - a model provider, such as Ollama, OpenAI or llama.cpp
7
7
  - the model gateway process
8
8
  - the runtime bridge client process
9
9
  - optionally the local web UI proxy
@@ -79,6 +79,12 @@ hosts may use a different address. Run the `/api/tags` check against the chosen
79
79
  URL from the runtime environment. You can also edit
80
80
  `models.providers.ollama.baseUrl` in `local/runtime.config.json` later.
81
81
 
82
+ ### llama.cpp
83
+
84
+ See [llama.cpp setup](llamacpp.md) for a separately managed server, reachable origin,
85
+ optional authentication and thinking-budget configuration. Model server lifecycle
86
+ is independent of ABot and its internal model gateway.
87
+
82
88
  ### OpenAI
83
89
 
84
90
  Set the API key in `.env`: