@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,6 +1,5 @@
1
1
  import {
2
2
  createInitialWorkspaceShellState,
3
- normalizeWorkspaceDestination,
4
3
  toggleWorkspaceSheet,
5
4
  } from "../ui-behavior.js";
6
5
  import { createOnboardingWorkspaceAccess } from "./onboarding-workspace-access.js";
@@ -10,6 +9,8 @@ import {
10
9
  resolveConversationSidebarLayout,
11
10
  } from "./conversation-sidebar-layout.js";
12
11
  import { createOperationsSection } from "./operations-section.js";
12
+ import { createWorkspaceTransitions } from "./workspace-transitions.js";
13
+ import { captureSessionListViewport, restoreSessionListViewport } from "./session-list-viewport.js";
13
14
  import { isConfigurationWorkspace, renderConfigurationPageHeading } from "../lib/configuration-pages.js";
14
15
 
15
16
  export function createWorkspaceShell({
@@ -31,6 +32,12 @@ export function createWorkspaceShell({
31
32
  const workspaceListeners = new Set();
32
33
  const runtimeAvailabilityListeners = new Set();
33
34
  const workspaceGuards = new Set();
35
+ const transitions = createWorkspaceTransitions({
36
+ getWorkspace: () => shellState.workspace,
37
+ getNavigationRevision: () => navigationRevision,
38
+ isAvailable: workspaceAccess.isAvailable,
39
+ getGuards: () => [beforeWorkspaceChange, ...workspaceGuards],
40
+ });
34
41
  function notifyWorkspaceListeners(workspace) {
35
42
  onWorkspaceChange(workspace);
36
43
  for (const listener of workspaceListeners) listener(workspace);
@@ -66,6 +73,7 @@ export function createWorkspaceShell({
66
73
  }
67
74
 
68
75
  function syncShell() {
76
+ captureSessionListViewport(dom.sessionsList);
69
77
  workspaceAccess.render();
70
78
  const homeWorkspace = shellState.workspace === "home";
71
79
  const chatWorkspace = shellState.workspace === "chat";
@@ -74,6 +82,7 @@ export function createWorkspaceShell({
74
82
  const automationsWorkspace = shellState.workspace === "automations";
75
83
  const learningWorkspace = shellState.workspace === "learning";
76
84
  const memoryWorkspace = shellState.workspace === "memory";
85
+ const skillsWorkspace = shellState.workspace === "skills";
77
86
  const notificationsWorkspace = shellState.workspace === "notifications";
78
87
  const sessions = sidebarLayout();
79
88
  const showSessionsToggle = chatWorkspace && !sessions.docked;
@@ -128,6 +137,12 @@ export function createWorkspaceShell({
128
137
  "aria-hidden",
129
138
  String(!memoryWorkspace),
130
139
  );
140
+ if (dom.skillsWorkspacePanel) {
141
+ dom.skillsWorkspacePanel.hidden = !skillsWorkspace;
142
+ dom.skillsWorkspacePanel.inert = !skillsWorkspace;
143
+ dom.skillsWorkspacePanel.setAttribute("aria-hidden", String(!skillsWorkspace));
144
+ }
145
+ setCurrentPage(dom.skillsWorkspaceButton, skillsWorkspace);
131
146
  if (dom.notificationsWorkspacePanel) {
132
147
  dom.notificationsWorkspacePanel.hidden = !notificationsWorkspace;
133
148
  dom.notificationsWorkspacePanel.inert = !notificationsWorkspace;
@@ -135,6 +150,7 @@ export function createWorkspaceShell({
135
150
  }
136
151
  setCurrentPage(dom.notificationsWorkspaceButton, notificationsWorkspace);
137
152
  dom.sessionsPanel.hidden = !sessions.visible;
153
+ restoreSessionListViewport(dom.sessionsList);
138
154
  dom.sessionsPanel.inert = !sessions.visible;
139
155
  dom.sessionsPanel.setAttribute(
140
156
  "aria-hidden",
@@ -176,7 +192,7 @@ export function createWorkspaceShell({
176
192
  dom.closeSessionsButton.focus();
177
193
  return;
178
194
  }
179
- const sidebarControl = dom.sessionSearchInput ?? dom.refreshSessionsButton;
195
+ const sidebarControl = dom.sessionSearchToggleButton ?? dom.refreshSessionsButton;
180
196
  (sidebarControl ?? dom.chatWorkspaceButton).focus();
181
197
  }
182
198
 
@@ -211,35 +227,9 @@ export function createWorkspaceShell({
211
227
  visibleNavigationButton.focus();
212
228
  }
213
229
 
214
- function prepareWorkspaceTransition(destination) {
215
- const nextWorkspace = normalizeWorkspaceDestination(destination);
216
- if (!workspaceAccess.isAvailable(nextWorkspace)) return null;
217
- if (nextWorkspace === shellState.workspace) {
218
- return { nextWorkspace, commitBeforeChange: () => {} };
219
- }
220
- const preparedChange = beforeWorkspaceChange({
221
- from: shellState.workspace,
222
- to: nextWorkspace,
223
- });
224
- if (preparedChange === false || preparedChange === null) return null;
225
- const additionalChanges = [];
226
- for (const guard of workspaceGuards) {
227
- const change = guard({ from: shellState.workspace, to: nextWorkspace });
228
- if (change === false || change === null) return null;
229
- if (typeof change === "function") additionalChanges.push(change);
230
- }
231
- return {
232
- nextWorkspace,
233
- commitBeforeChange() {
234
- if (typeof preparedChange === "function") preparedChange();
235
- for (const change of additionalChanges) change();
236
- },
237
- };
238
- }
239
-
240
230
  function commitWorkspaceActivation(preparedTransition, options = {}) {
241
231
  if (!workspaceAccess.isAvailable(preparedTransition.nextWorkspace)) return false;
242
- preparedTransition.commitBeforeChange();
232
+ if (!preparedTransition.commitBeforeChange()) return false;
243
233
  const nextWorkspace = preparedTransition.nextWorkspace;
244
234
  const previousWorkspace = shellState.workspace;
245
235
  const previousSheet = shellState.activeSheet;
@@ -263,6 +253,7 @@ export function createWorkspaceShell({
263
253
  automations: dom.closeAutomationsWorkspaceButton,
264
254
  learning: dom.closeLearningWorkspaceButton,
265
255
  memory: dom.closeMemoryWorkspaceButton,
256
+ skills: dom.closeSkillsWorkspaceButton,
266
257
  config: dom.closeConfigWorkspaceButton,
267
258
  models: dom.closeConfigWorkspaceButton,
268
259
  plugins: dom.closeConfigWorkspaceButton,
@@ -277,27 +268,34 @@ export function createWorkspaceShell({
277
268
  return true;
278
269
  }
279
270
 
280
- function prepareWorkspaceActivation(destination, options = {}) {
281
- const preparedTransition = prepareWorkspaceTransition(destination);
271
+ async function prepareWorkspaceActivation(destination, options = {}) {
272
+ const preparedTransition = await transitions.prepare(destination);
282
273
  if (!preparedTransition) return null;
283
274
  let committed = false;
284
- return () => {
275
+ const activate = () => {
285
276
  if (committed) return true;
286
277
  const activated = commitWorkspaceActivation(preparedTransition, options);
287
278
  committed = activated;
288
279
  return activated;
289
280
  };
281
+ activate.canCommit = () => committed || preparedTransition.canCommit();
282
+ return activate;
290
283
  }
291
284
 
292
- function activateWorkspace(destination, options = {}) {
293
- const preparedActivation = prepareWorkspaceActivation(destination, options);
285
+ async function activateWorkspace(destination, options = {}) {
286
+ const preparedActivation = await prepareWorkspaceActivation(destination, options);
294
287
  return preparedActivation ? preparedActivation() : false;
295
288
  }
296
289
 
297
290
  function setSessionsDrawerOpen(open, options = {}) {
298
- const preparedTransition = prepareWorkspaceTransition("chat");
299
- if (!preparedTransition) return false;
300
- preparedTransition.commitBeforeChange();
291
+ if (shellState.workspace === "chat") return commitSessionsDrawer(open, options);
292
+ return transitions.prepare("chat").then((prepared) => {
293
+ if (!prepared?.commitBeforeChange()) return false;
294
+ return commitSessionsDrawer(open, options);
295
+ });
296
+ }
297
+
298
+ function commitSessionsDrawer(open, options) {
301
299
  const wasOpen = shellState.activeSheet === "sessions";
302
300
  shellState.workspace = "chat";
303
301
  const useDrawer = open && sidebarViewport?.matches !== true;
@@ -342,8 +340,9 @@ export function createWorkspaceShell({
342
340
  setSessionsDrawerOpen(false, { restoreFocus: true });
343
341
  return true;
344
342
  }
345
- if (["config", "models", "plugins", "schedules", "automations", "learning", "memory", "notifications"].includes(shellState.workspace)) {
346
- return activateWorkspace("chat");
343
+ if (["config", "models", "plugins", "schedules", "automations", "learning", "memory", "skills", "notifications"].includes(shellState.workspace)) {
344
+ void activateWorkspace("chat");
345
+ return true;
347
346
  }
348
347
  return false;
349
348
  }
@@ -351,6 +350,8 @@ export function createWorkspaceShell({
351
350
  function bind() {
352
351
  if (shellState.bound) return;
353
352
  shellState.bound = true;
353
+ dom.skillsWorkspaceButton?.addEventListener("click", () => activateWorkspace("skills"));
354
+ dom.closeSkillsWorkspaceButton?.addEventListener("click", () => activateWorkspace("chat"));
354
355
  dom.notificationsWorkspaceButton?.addEventListener("click", () => activateWorkspace("notifications"));
355
356
  dom.closeNotificationsWorkspaceButton?.addEventListener("click", () => activateWorkspace("chat"));
356
357
  dom.homeWorkspaceButton?.addEventListener("click", () => {
@@ -423,6 +424,7 @@ export function createWorkspaceShell({
423
424
  runtimeAvailabilityChanged,
424
425
  workspaceUnavailableMessage: workspaceAccess.unavailableMessage,
425
426
  navigationRevision: () => navigationRevision,
427
+ navigationRequestRevision: transitions.requestRevision,
426
428
  subscribeRuntimeAvailabilityChange(listener) {
427
429
  runtimeAvailabilityListeners.add(listener);
428
430
  return () => runtimeAvailabilityListeners.delete(listener);
@@ -0,0 +1,42 @@
1
+ import { normalizeWorkspaceDestination } from "../ui-behavior.js";
2
+
3
+ export function createWorkspaceTransitions({ getWorkspace, getNavigationRevision, isAvailable, getGuards }) {
4
+ let requestRevision = 0;
5
+ async function prepare(destination) {
6
+ const request = ++requestRevision;
7
+ const from = getWorkspace();
8
+ const revision = getNavigationRevision();
9
+ const nextWorkspace = normalizeWorkspaceDestination(destination);
10
+ const changes = [];
11
+ function isCurrentTransitionRequest() {
12
+ if (request !== requestRevision) return false;
13
+ if (from !== getWorkspace()) return false;
14
+ if (revision !== getNavigationRevision()) return false;
15
+ return isAvailable(nextWorkspace);
16
+ }
17
+ function canCommitTransition() {
18
+ if (!isCurrentTransitionRequest()) return false;
19
+ return changes.every((change) => change?.canCommit?.() !== false);
20
+ }
21
+ if (!isCurrentTransitionRequest()) return null;
22
+ const guards = nextWorkspace === from ? [] : getGuards();
23
+ for (const guard of guards) {
24
+ const change = await guard({ from, to: nextWorkspace });
25
+ if (!canCommitTransition()) return null;
26
+ if (change === false || change === null) return null;
27
+ changes.push(change);
28
+ }
29
+ if (!canCommitTransition()) return null;
30
+ return {
31
+ nextWorkspace, canCommit: canCommitTransition,
32
+ commitBeforeChange() {
33
+ if (!canCommitTransition()) return false;
34
+ for (const change of changes) {
35
+ if (typeof change === "function" && change() === false) return false;
36
+ }
37
+ return true;
38
+ },
39
+ };
40
+ }
41
+ return { prepare, requestRevision: () => requestRevision };
42
+ }
@@ -6,6 +6,7 @@ import { createHomeGuidance } from "./components/home-guidance/home-guidance.js"
6
6
  import { createConfigWorkspace } from "./components/config-workspace.js";
7
7
  import { createModelRemovalController } from "./components/config-workspace/model-removal.js";
8
8
  import { createLongTermMemorySetup } from "./components/long-term-memory-setup.js";
9
+ import { createMemoryEmbeddingConnectionFeature } from "./components/long-term-memory/embedding-connection-feature.js";
9
10
  import { createLongTermMemoryManager } from "./components/long-term-memory/manager.js";
10
11
  import { createMemoryWorkspace } from "./components/long-term-memory/workspace.js";
11
12
  import { createLongTermMemoryController } from "./controllers/long-term-memory/controller.js";
@@ -28,7 +29,24 @@ export function createConfigurationFeature({
28
29
  let activation;
29
30
  let modelSetup;
30
31
  let modelRemoval;
32
+ const memoryConnection = createMemoryEmbeddingConnectionFeature({
33
+ root: dom.memoryWorkspacePanel,
34
+ runtimeClient,
35
+ getEnvironmentId: selectedEnvironmentId,
36
+ getWorkspace: () => configWorkspace,
37
+ canOpen: () => !modelSetup?.isOpen() && !pluginManager.hasConfigurationDraft(),
38
+ refreshMemory: () => longTermMemorySetup.load({ preserveInputs: false }),
39
+ onSaved: () => activation?.markPending(),
40
+ onApplied: async () => {
41
+ activation?.markApplied();
42
+ pluginManager.markApplied?.();
43
+ await onConfigurationApplied();
44
+ },
45
+ onClosed: () => onConfigurationSettled(),
46
+ });
31
47
  const longTermMemorySetup = createLongTermMemorySetup({
48
+ onAddConnection: (options) => memoryConnection.open(options),
49
+ onEnvironmentChanged: () => memoryConnection.environmentChanged(),
32
50
  getEnvironmentId: selectedEnvironmentId,
33
51
  loadStatus: (environmentId) =>
34
52
  runtimeClient.loadLongTermMemoryStatus(environmentId),
@@ -45,6 +63,10 @@ export function createConfigurationFeature({
45
63
  activation?.markPending();
46
64
  return result;
47
65
  },
66
+ saveProfile: (input, environmentId) =>
67
+ runtimeClient.saveMemoryEmbeddingProfile(input, environmentId),
68
+ removeProfile: (input, environmentId) =>
69
+ runtimeClient.removeMemoryEmbeddingProfile(input, environmentId),
48
70
  disableMemory: async (environmentId) => {
49
71
  const result = await runtimeClient.disableLongTermMemory(environmentId);
50
72
  activation?.markPending();
@@ -67,6 +89,7 @@ export function createConfigurationFeature({
67
89
  });
68
90
  longTermMemoryManager = createLongTermMemoryManager({
69
91
  actions: longTermMemoryController,
92
+ getEnvironmentId: selectedEnvironmentId,
70
93
  });
71
94
  longTermMemorySetup.mount(dom.memorySetupRoot);
72
95
  longTermMemoryManager.mount(dom.memoryManagementRoot);
@@ -140,7 +163,7 @@ export function createConfigurationFeature({
140
163
  getOperationsSummary,
141
164
  onNavigationChange,
142
165
  onRemoveModel: (model) => {
143
- if (modelSetup?.isOpen()) return;
166
+ if (modelSetup?.isOpen() || memoryConnection.isOpen()) return;
144
167
  return modelRemoval.remove(model);
145
168
  },
146
169
  dom: {
@@ -164,7 +187,7 @@ export function createConfigurationFeature({
164
187
  return result;
165
188
  },
166
189
  onAddModel: async (options) => {
167
- if (modelSetup?.isOpen()) return;
190
+ if (modelSetup?.isOpen() || memoryConnection.isOpen()) return;
168
191
  if (!configWorkspace.beginExternalRuntimeMutation("model setup")) return;
169
192
  configWorkspace.endExternalRuntimeMutation();
170
193
  try {
@@ -215,6 +238,7 @@ export function createConfigurationFeature({
215
238
  root: dom.configDashboard.parentElement,
216
239
  getEnvironmentId: selectedEnvironmentId,
217
240
  loadSetup: () => runtimeClient.loadModelSetup(selectedEnvironmentId()),
241
+ inspectConnection: (input) => runtimeClient.inspectModelConnection(input, selectedEnvironmentId()),
218
242
  saveModel: (input) =>
219
243
  runtimeClient.addRuntimeModel(input, selectedEnvironmentId()),
220
244
  applySetup: () =>
@@ -269,7 +293,7 @@ export function createConfigurationFeature({
269
293
  void longTermMemoryController.setOriginFilter("passive_observation");
270
294
  longTermMemoryManager.focus();
271
295
  },
272
- prepareDiscardChanges: (...args) => {
296
+ prepareDiscardChanges: async (...args) => {
273
297
  if (pluginManager.hasConfigurationDraft()) {
274
298
  dom.configStatus.textContent =
275
299
  "Finish or cancel plugin configuration before leaving.";
@@ -280,12 +304,18 @@ export function createConfigurationFeature({
280
304
  "Finish or cancel model setup before leaving configuration.";
281
305
  return null;
282
306
  }
283
- const prepared = prepareDiscardChanges(...args);
307
+ if (memoryConnection.isOpen()) {
308
+ dom.configStatus.textContent =
309
+ "Finish or cancel embedding connection setup before leaving.";
310
+ return null;
311
+ }
312
+ const prepared = await prepareDiscardChanges(...args);
284
313
  if (typeof prepared !== "function") return prepared;
285
314
  const commit = () => prepared();
286
315
  commit.canCommit = () => {
287
316
  if (pluginManager.hasConfigurationDraft()) return false;
288
317
  if (modelSetup.isOpen()) return false;
318
+ if (memoryConnection.isOpen()) return false;
289
319
  return prepared.canCommit?.() !== false;
290
320
  };
291
321
  return commit;
@@ -1,3 +1,5 @@
1
+ import { bindSessionSearchDisclosure } from "../components/session-search-disclosure.js";
2
+ import { bindReasoningBudgetMenu } from "./reasoning-budget-menu-events.js";
1
3
  import { beginConversationNavigation, canNavigateConversation } from "./conversation-navigation-intent.js";
2
4
  import {
3
5
  focusSelectedMenuItem,
@@ -34,6 +36,7 @@ export function createAppEventBindings({
34
36
  }
35
37
  const isCurrentNavigation = beginConversationNavigation(state);
36
38
  const navigationRevision = shell.navigationRevision?.();
39
+ const navigationRequest = shell.navigationRequestRevision?.();
37
40
  const environment = actions.selectedEnvironmentId?.();
38
41
  const session = state.currentSessionId;
39
42
  const prepared = await prepareQueueRecovery();
@@ -43,6 +46,7 @@ export function createAppEventBindings({
43
46
  if (prepared?.canCommit?.() === false) return false;
44
47
  const hasCurrentWorkspaceNavigation = navigationRevision === shell.navigationRevision?.();
45
48
  if (!hasCurrentWorkspaceNavigation) return false;
49
+ if (navigationRequest !== shell.navigationRequestRevision?.()) return false;
46
50
  if (actions.selectedEnvironmentId?.() !== environment) return false;
47
51
  if (state.currentSessionId !== session) return false;
48
52
  return () => {
@@ -57,7 +61,42 @@ export function createAppEventBindings({
57
61
  };
58
62
  }
59
63
 
64
+ async function newConversation({ canCommit = () => true } = {}) {
65
+ if (!canCommit()) return false;
66
+ const recovery = await prepareCurrentQueueRecovery();
67
+ if (!recovery || !canCommit()) return false;
68
+ const preparedWorkspaceActivation = await shell.prepareWorkspaceActivation(
69
+ "chat",
70
+ { focus: false },
71
+ );
72
+ if (!preparedWorkspaceActivation || !canCommit()) return false;
73
+ if (preparedWorkspaceActivation.canCommit?.() === false) return false;
74
+ if (recovery() === false) return false;
75
+ if (preparedWorkspaceActivation() === false) return false;
76
+ state.currentSessionId = createWebSessionId();
77
+ onSessionCreated(state.currentSessionId);
78
+ actions.saveSessionId(
79
+ actions.selectedEnvironmentId(),
80
+ state.currentSessionId,
81
+ );
82
+ actions.rememberModelSelection();
83
+ state.messages = [];
84
+ actions.resetLiveRequestView();
85
+ actions.setCurrentSessionTitle(state.currentSessionId);
86
+ actions.applyConversationChrome();
87
+ actions.subscribeSession(state.currentSessionId);
88
+ actions.renderSessions();
89
+ actions.renderMessages();
90
+ shell.setSessionsDrawerOpen(false);
91
+ dom.composerInput.focus();
92
+ return true;
93
+ }
94
+
60
95
  function bind() {
96
+ bindReasoningBudgetMenu({ state, dom, actions, modelSelector, documentRoot });
97
+ bindSessionSearchDisclosure({
98
+ toggle: dom.sessionSearchToggleButton, field: dom.sessionSearchField, input: dom.sessionSearchInput,
99
+ });
61
100
  let searchTimer;
62
101
  dom.sessionSearchInput.addEventListener("input", () => {
63
102
  state.sessionQuery = dom.sessionSearchInput.value;
@@ -69,33 +108,7 @@ export function createAppEventBindings({
69
108
  "click",
70
109
  () => void actions.loadSessions(),
71
110
  );
72
- dom.newSessionButton.addEventListener("click", async () => {
73
- const recovery = await prepareCurrentQueueRecovery();
74
- if (!recovery) return;
75
- const preparedWorkspaceActivation = shell.prepareWorkspaceActivation(
76
- "chat",
77
- { focus: false },
78
- );
79
- if (!preparedWorkspaceActivation) return;
80
- if (recovery() === false) return;
81
- if (preparedWorkspaceActivation() === false) return;
82
- state.currentSessionId = createWebSessionId();
83
- onSessionCreated(state.currentSessionId);
84
- actions.saveSessionId(
85
- actions.selectedEnvironmentId(),
86
- state.currentSessionId,
87
- );
88
- actions.rememberModelSelection();
89
- state.messages = [];
90
- actions.resetLiveRequestView();
91
- actions.setCurrentSessionTitle(state.currentSessionId);
92
- actions.applyConversationChrome();
93
- actions.subscribeSession(state.currentSessionId);
94
- actions.renderSessions();
95
- actions.renderMessages();
96
- shell.setSessionsDrawerOpen(false);
97
- dom.composerInput.focus();
98
- });
111
+ dom.newSessionButton.addEventListener("click", () => newConversation());
99
112
  dom.environmentSelect.addEventListener("change", environmentTransition.onSelectChange, true);
100
113
  dom.agentPickerButton.addEventListener("click", (event) => {
101
114
  event.stopPropagation();
@@ -199,7 +212,9 @@ export function createAppEventBindings({
199
212
  actions.renderPermissionMode();
200
213
  }
201
214
  actions.renderAgentMode();
202
- if (state.agentModeMenuOpen) focusSelectedMenuItem(dom.agentModeMenu);
215
+ if (state.agentModeMenuOpen) {
216
+ focusSelectedMenuItem(dom.agentModeMenu);
217
+ }
203
218
  });
204
219
  dom.agentModeButton.addEventListener("keydown", (event) => {
205
220
  if (event.key !== "ArrowDown" && event.key !== "ArrowUp") return;
@@ -218,7 +233,7 @@ export function createAppEventBindings({
218
233
  event.stopPropagation(),
219
234
  );
220
235
  dom.agentModeMenu.addEventListener("keydown", (event) => {
221
- handleMenuNavigation(event, dom.agentModeMenu);
236
+ if (event.target.closest?.("[data-mode]")) handleMenuNavigation(event, dom.agentModeMenu);
222
237
  });
223
238
  documentRoot.addEventListener("click", (event) => {
224
239
  if (
@@ -306,6 +321,7 @@ export function createAppEventBindings({
306
321
 
307
322
  return {
308
323
  bind,
324
+ newConversation,
309
325
  ...environmentTransition,
310
326
  };
311
327
  }
@@ -0,0 +1,105 @@
1
+ import { isColorPaletteId, PALETTE_PREFERENCE_KEY, savedColorPalette } from "../lib/color-palettes.js";
2
+ import { isNavigationMode, NAVIGATION_PREFERENCE_KEY, savedNavigationMode } from "../lib/navigation-display.js";
3
+
4
+ export function createAppearanceController({ storage, applyPalette, applyNavigationMode = () => {}, onChange = () => {} }) {
5
+ let savedId = savedColorPalette(storage);
6
+ let selectedId = savedId;
7
+ let savedNavigation = savedNavigationMode(storage);
8
+ let selectedNavigation = savedNavigation;
9
+ let open = false;
10
+ let pending = false;
11
+ let error = "";
12
+ const state = () => ({ savedId, selectedId, savedNavigationMode: savedNavigation, selectedNavigationMode: selectedNavigation, open, pending, error });
13
+ const render = () => onChange(state());
14
+ const canPreviewAppearance = () => open && !pending;
15
+ applyPalette(savedId);
16
+ applyNavigationMode(savedNavigation);
17
+
18
+ function restoreAcknowledgedAppearance() {
19
+ savedId = savedColorPalette(storage);
20
+ selectedId = savedId;
21
+ savedNavigation = savedNavigationMode(storage);
22
+ selectedNavigation = savedNavigation;
23
+ applyPalette(savedId);
24
+ applyNavigationMode(savedNavigation);
25
+ }
26
+
27
+ const unsubscribe = storage.subscribe?.(() => {
28
+ const previousSavedId = savedId;
29
+ const previousSavedNavigation = savedNavigation;
30
+ savedId = savedColorPalette(storage);
31
+ savedNavigation = savedNavigationMode(storage);
32
+ if (followsSavedAppearance(open, selectedId, previousSavedId)) {
33
+ selectedId = savedId;
34
+ applyPalette(savedId);
35
+ }
36
+ if (followsSavedAppearance(open, selectedNavigation, previousSavedNavigation)) {
37
+ selectedNavigation = savedNavigation;
38
+ applyNavigationMode(savedNavigation);
39
+ }
40
+ render();
41
+ });
42
+
43
+ return {
44
+ state,
45
+ open() {
46
+ if (open) return;
47
+ restoreAcknowledgedAppearance();
48
+ error = "";
49
+ open = true;
50
+ render();
51
+ },
52
+ select(id) {
53
+ if (!canPreviewAppearance()) return;
54
+ if (!isColorPaletteId(id)) return;
55
+ selectedId = id;
56
+ error = "";
57
+ applyPalette(id);
58
+ render();
59
+ },
60
+ selectNavigationMode(mode) {
61
+ if (!canPreviewAppearance()) return;
62
+ if (!isNavigationMode(mode)) return;
63
+ selectedNavigation = mode;
64
+ error = "";
65
+ applyNavigationMode(mode);
66
+ render();
67
+ },
68
+ close() {
69
+ if (pending) return false;
70
+ open = false;
71
+ restoreAcknowledgedAppearance();
72
+ render();
73
+ return true;
74
+ },
75
+ async save() {
76
+ if (!canPreviewAppearance()) return;
77
+ const paletteToSave = selectedId;
78
+ const navigationToSave = selectedNavigation;
79
+ pending = true;
80
+ error = "";
81
+ render();
82
+ try {
83
+ if (paletteToSave !== savedColorPalette(storage))
84
+ await storage.setItem(PALETTE_PREFERENCE_KEY, paletteToSave);
85
+ if (navigationToSave !== savedNavigationMode(storage))
86
+ await storage.setItem(NAVIGATION_PREFERENCE_KEY, navigationToSave);
87
+ open = false;
88
+ } catch (failure) {
89
+ error = failure?.message || "Could not save appearance settings. Reload and try again.";
90
+ } finally {
91
+ pending = false;
92
+ restoreAcknowledgedAppearance();
93
+ render();
94
+ }
95
+ },
96
+ destroy() {
97
+ unsubscribe?.();
98
+ restoreAcknowledgedAppearance();
99
+ },
100
+ };
101
+ }
102
+
103
+ function followsSavedAppearance(open, selected, previouslySaved) {
104
+ return !open || selected === previouslySaved;
105
+ }
@@ -1,3 +1,5 @@
1
+ import { automationRunPage } from "./automation-run-history.js";
2
+
1
3
  export function validationResult(value) {
2
4
  if (Array.isArray(value)) return { issues: value };
3
5
  if (Array.isArray(value?.issues)) return value;
@@ -17,11 +19,12 @@ export async function readAutomationList(client, environmentId) {
17
19
  };
18
20
  }
19
21
 
20
- export async function readAutomationSelection(client, automationId, runId, environmentId) {
22
+ export async function readAutomationSelection(client, automationId, runId, environmentId,
23
+ { runsQuery = { limit: 50 } } = {}) {
21
24
  const [draftResponse, catalog, runsResponse, runResponse] = await Promise.all([
22
25
  client.getAutomationDraft(automationId, environmentId),
23
26
  client.getAutomationCatalog(automationId, environmentId),
24
- client.listAutomationRuns(automationId, environmentId),
27
+ runsQuery ? client.listAutomationRuns(automationId, environmentId, runsQuery) : Promise.resolve(null),
25
28
  runId ? client.getAutomationRun(runId, environmentId) : Promise.resolve(null),
26
29
  ]);
27
30
  if (runResponse?.run && runResponse.run.automationId !== automationId)
@@ -32,7 +35,7 @@ export async function readAutomationSelection(client, automationId, runId, envir
32
35
  grant: draftResponse.grant || null,
33
36
  validation: validationResult(draftResponse.validation),
34
37
  catalog,
35
- runs: Array.isArray(runsResponse.runs) ? runsResponse.runs : [],
38
+ ...(runsResponse ? automationRunPage(runsResponse) : {}),
36
39
  run: runResponse?.run || null,
37
40
  };
38
41
  }
@@ -41,7 +44,8 @@ export async function readAutomationBackgroundProjection(client, identity) {
41
44
  const [list, selected, evidenceResponse] = await Promise.all([
42
45
  readAutomationList(client, identity.environmentId),
43
46
  identity.automationId
44
- ? readAutomationSelection(client, identity.automationId, identity.runId, identity.environmentId)
47
+ ? readAutomationSelection(client, identity.automationId, identity.runId, identity.environmentId,
48
+ { runsQuery: identity.runsQuery })
45
49
  : Promise.resolve(null),
46
50
  identity.runId && identity.nodeId
47
51
  ? client.getAutomationStepEvidence(identity.runId, identity.nodeId,
@@ -1,5 +1,5 @@
1
1
  /** Async run commands retain the view that authorized them through every read. */
2
- export function createAutomationRunActions({ client, mutation, publish, loadSelected, openRun,
2
+ export function createAutomationRunActions({ client, mutation, publish, loadSelected, refreshRunHistory, openRun,
3
3
  captureView }) {
4
4
  const pendingStarts = new Set();
5
5
  const runStartKey = (view) => JSON.stringify([view.environmentId, view.automationId]);
@@ -10,6 +10,8 @@ export function createAutomationRunActions({ client, mutation, publish, loadSele
10
10
  const continuation = view.captureContinuation();
11
11
  const refreshed = await loadSelected(view.automationId, "", continuation.isCurrent);
12
12
  if (!refreshed || !continuation.isCurrent()) return false;
13
+ await refreshRunHistory(continuation.isCurrent);
14
+ if (!continuation.isCurrent()) return false;
13
15
  return openRun(result.run.id, continuation.ownsMutation);
14
16
  }
15
17