fix(ci): repair remote event coverage and catalogs
This commit is contained in:
@@ -2,5 +2,5 @@
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write packages/api/remotes/README.md
|
||||
README.md: 34c78caf985c93137e7369329302ffd5feb67595
|
||||
README.zh.md: 4fff19673f10b0d173c9e3f724ca205845a0b9ed
|
||||
README.md: cc903af7204ca715c6c7931cfe44823d4d5fc71e
|
||||
README.zh.md: fe34b8774c9864cef442ff8a58f22f541d40768a
|
||||
|
||||
@@ -2,5 +2,5 @@
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write packages/client/runtime/README.md
|
||||
README.md: 69634d4ca577e9fa5c508a5fb2b50333290154b1
|
||||
README.zh.md: 9e03cc1903b5e9dc1d13e07bf8394a6e7aee9209
|
||||
README.md: be04f56ac5151c756aa6d4e2233461cc173fe261
|
||||
README.zh.md: 372922b8b02f694512505c97bf08b9ab480912a5
|
||||
|
||||
@@ -2,5 +2,5 @@
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write packages/client/ui-agent-preset/README.md
|
||||
README.md: 3b0db5a3eedca256a00b65a3bd2738f22c0eb62e
|
||||
README.zh.md: 6f3c350f973119c201572f2c03145338b5cc5b00
|
||||
README.md: f0fdff4b1f2453be9e8b4c1d20f7ca0fee506d55
|
||||
README.zh.md: c391a4548f2bd2fc4bfe168e9d494bc0073a8cb2
|
||||
|
||||
@@ -2,5 +2,5 @@
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write packages/client/ui-command/README.md
|
||||
README.md: e49ce89804886a11f102fcaf60316e8044965c10
|
||||
README.zh.md: 8bd5afd7d0a173980f476cb96f8115525602b0b4
|
||||
README.md: 60b70cfbc3784dd5b138f8857270c4bbdc0fd634
|
||||
README.zh.md: 639b7f997e967527232bb88116558c5457b4d497
|
||||
|
||||
@@ -2,5 +2,5 @@
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write packages/client/ui-model/README.md
|
||||
README.md: fdc3258eb37b45f4773648d2d796c275f8657d47
|
||||
README.zh.md: 116e151d1afeaaa22618c408eed2c7542d1357e7
|
||||
README.md: e49fdee52caa99cd249db7d7fbec0064c47e2dc7
|
||||
README.zh.md: 366c96c3e37619297075ad495142416ffd3baea6
|
||||
|
||||
@@ -2,5 +2,5 @@
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write packages/client/ui-models/README.md
|
||||
README.md: 89a253fca9f16ea5655cdd7536a441e98dcc4d3c
|
||||
README.zh.md: 350be495f1491738e6e861ba127b3b0070a5f073
|
||||
README.md: f6604f822412e9eb4574696f5b99e73fb7bd98ff
|
||||
README.zh.md: 2500bbae0982571a9a88dd5c259749e3504728de
|
||||
|
||||
@@ -26,11 +26,10 @@ export const inject = []
|
||||
/**
|
||||
* Provide the settings-namespace scope service.
|
||||
*
|
||||
* `Service` registers itself under its own name from its constructor, so the
|
||||
* class mounts as a plugin; a second `ctx.provide` for the same name would
|
||||
* throw.
|
||||
* Constructing the service in this plugin's fiber keeps its traced methods
|
||||
* bound to each consuming plugin's context.
|
||||
* @param ctx - client root context.
|
||||
*/
|
||||
export function apply(ctx: ClientContext): void {
|
||||
ctx.plugin(SettingsScopeService)
|
||||
new SettingsScopeService(ctx)
|
||||
}
|
||||
|
||||
@@ -2,5 +2,5 @@
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write packages/client/ui-skill/README.md
|
||||
README.md: 0456db4de9453e5060e39b5f061422486e44dfc9
|
||||
README.zh.md: 336f43117e7bc4de41a31e636ee0966e5d1a2cd6
|
||||
README.md: f6818ae9f44a7d0a484302fe8e294ee2159890ec
|
||||
README.zh.md: 4b9d646fe39887e9d655b28c61c11876b55d1111
|
||||
|
||||
@@ -148,6 +148,7 @@ describe('apply', () => {
|
||||
ctx.provide('sessions', {})
|
||||
await ctx.plugin(SlashService).await()
|
||||
ctx.provide('connection', { api: { skills: { list: listOk(CATALOG) } } })
|
||||
new TestRemote(ctx)
|
||||
const presentation = providePresentation(ctx)
|
||||
const fiber = ctx.plugin({ inject: [...inject], apply })
|
||||
await fiber.await()
|
||||
|
||||
@@ -2,5 +2,5 @@
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write packages/host/apiproxy/README.md
|
||||
README.md: 426aa32c6b56b8be597969125206b4e1e7025622
|
||||
README.zh.md: 75383798555e3b775685b926630eedd97794005a
|
||||
README.md: 7967b41b73f5f853fbfa67364b8a1c1a4156de08
|
||||
README.zh.md: 325ea29a736385ffef511ea1e02211b8b43be69f
|
||||
|
||||
@@ -18,6 +18,7 @@ import type { HostFrame } from '../src/api/events.ts'
|
||||
import {
|
||||
InvalidPresetIdError, PresetExistsError, resolveSessionPreset, UnknownPresetError,
|
||||
} from '@deepseek-ai/dsh-agent-presets'
|
||||
import type {} from '@deepseek-ai/dsh-agent-presets/types'
|
||||
import { GoalId } from '@deepseek-ai/dsh-goal'
|
||||
import { createApiProxy } from '../src/api-proxy.ts'
|
||||
import { describe, expect, it } from 'vitest'
|
||||
@@ -373,7 +374,7 @@ describe('agentPreset.select', () => {
|
||||
.toBe('minimal')
|
||||
})
|
||||
|
||||
it('forwards the committed switch so clients can drop that session\'s catalogs', async () => {
|
||||
it('forwards the owner event so clients can drop that session\'s catalogs', async () => {
|
||||
const { api, ctx } = await harness(['standard', 'minimal'])
|
||||
await api.sessions.create(request({ sessionId: SessionId('sel-frame'), agentPreset: 'standard' }))
|
||||
// The host-stream opener reads the committed-workspace baseline; this
|
||||
@@ -390,10 +391,11 @@ describe('agentPreset.select', () => {
|
||||
}
|
||||
})()
|
||||
|
||||
await api.agentPresets.select(
|
||||
request({ sessionId: SessionId('sel-frame'), agentPreset: 'minimal' }))
|
||||
// The queue push rides the synchronous append, so one turn of the loop is
|
||||
// enough to deliver it; closing the stream bounds the read either way.
|
||||
// AgentPresets owns the committed-log-to-event mapping; this spec owns the
|
||||
// forwarding of that event without recreating the owner's implementation.
|
||||
ctx.emit('agent-preset/selected', SessionId('sel-frame'), 'minimal')
|
||||
// The queue push is synchronous; one turn lets the async iterator consume
|
||||
// it before the stream closes.
|
||||
await new Promise(resolve => setTimeout(resolve, 0))
|
||||
abort.abort()
|
||||
await consume
|
||||
|
||||
@@ -2,5 +2,5 @@
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write packages/preset/agent-presets/README.md
|
||||
README.md: 98891c8710adc7d72dee20a8466742ee6f649956
|
||||
README.zh.md: 0fcc5fa4d697affc2185b9251c6a60dee6510042
|
||||
README.md: 28b9a31ed41e5fc41e38d6b0349c5bd9cbaeed9d
|
||||
README.zh.md: 1d8d1481c20005b9e7fed5341aa26dca63dcd815
|
||||
|
||||
@@ -16,6 +16,7 @@ import AgentPresets, {
|
||||
COMPOSITION_FILE, leakedServices, livePresetMounts, mountPreset, PresetMountError, serviceForAgent,
|
||||
} from '@deepseek-ai/dsh-agent-presets'
|
||||
import type { Config } from '@deepseek-ai/dsh-agent-presets'
|
||||
import type {} from '@deepseek-ai/dsh-agent-presets/types'
|
||||
import { bindScopeParent, createScope, scopeOf } from '@deepseek-ai/dsh-scope'
|
||||
|
||||
declare module '@deepseek-ai/cordis' {
|
||||
@@ -457,6 +458,18 @@ describe('attributing a service to a subtree', () => {
|
||||
})
|
||||
|
||||
describe('replacing a composition', () => {
|
||||
it('publishes a committed preset selection for remote consumers', async () => {
|
||||
const agent = await agentOn(ctx, 'sess-selected', 'standard')
|
||||
const selected: Array<[SessionId, string]> = []
|
||||
ctx.on('agent-preset/selected', (sessionId, agentPreset) => {
|
||||
selected.push([sessionId, agentPreset])
|
||||
})
|
||||
|
||||
agent.session.append('agent-preset/selected', { agentPreset: 'minimal' })
|
||||
|
||||
expect(selected).toEqual([[SessionId('sess-selected'), 'minimal']])
|
||||
})
|
||||
|
||||
it('swaps the agent\'s tools without touching another session', async () => {
|
||||
const keeper = await agentOn(ctx, 'sess-keeper', 'standard')
|
||||
const handle = await ctx.agents.create({
|
||||
|
||||
@@ -1405,6 +1405,13 @@ export const EVENT_API: readonly EventApiEntry[] = [
|
||||
jsDoc: '/**\n * A declarative agent entry failed before it could publish a live agent.\n * Consumers that buffer work for the configured identity use this\n * transient signal to reject that work instead of waiting forever. Normal\n * factory teardown suppresses failures from the cancelled startup attempt.\n * @param payload.sessionId - exact shared agent/session identity that failed startup.\n * @param payload.error - persistence, setup, or publication failure.\n * @mode emit\n */',
|
||||
summary: 'A declarative agent entry failed before it could publish a live agent.',
|
||||
},
|
||||
{
|
||||
name: 'agent-preset/selected',
|
||||
mode: 'emit',
|
||||
signature: '\'agent-preset/selected\'(sessionId: SessionId, agentPreset: string): void',
|
||||
jsDoc: '/**\n * One session committed a different agent preset to its durable log.\n * Consumers invalidate only state derived from that session\'s composition.\n * @mode emit\n * @param sessionId - the session whose composition changed.\n * @param agentPreset - the preset recorded by the committed selection.\n */',
|
||||
summary: 'One session committed a different agent preset to its durable log.',
|
||||
},
|
||||
{
|
||||
name: 'agent/created',
|
||||
mode: 'emit',
|
||||
@@ -1549,7 +1556,7 @@ export const EVENT_API: readonly EventApiEntry[] = [
|
||||
name: 'llm/adapters-updated',
|
||||
mode: 'emit',
|
||||
signature: '\'llm/adapters-updated\'(): void',
|
||||
jsDoc: '/**\n * The provider topology changed: an adapter registered or unregistered\n * routes, or the configurable-provider directory gained or lost entries.\n * This is a payload-free registry notification fired at each commit point\n * (including registration disposal); consumers re-read `listProviders()`,\n * `listModels()`, or `listConfigurableProviders()` for the new state.\n * Observer failures are contained and cannot veto the registry mutation.\n * @mode emit\n */',
|
||||
jsDoc: '/**\n * The provider topology changed: an adapter registered or unregistered\n * routes, or the configurable-provider directory gained or lost entries.\n * This payload-free registry notification fires at each commit point\n * (including registration disposal); consumers re-read `listProviders()`,\n * `listModels()`, or `listConfigurableProviders()` for the new state.\n * Observer failures are contained and cannot veto the registry mutation.\n * @mode emit\n */',
|
||||
summary: 'The provider topology changed: an adapter registered or unregistered routes, or the configurable-provider directory gained or lost entries.',
|
||||
},
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user