Merge remote-tracking branch 'origin/master' into codex/unify-landlock-release

# Conflicts:
#	.agents/notes/implemented/process/2026-07-30-generated-third-party-notices.i18n.yaml
#	scripts/check-workspace-constraints.ts
This commit is contained in:
Tianyi Cui
2026-08-08 16:01:53 +08:00
1586 changed files with 58871 additions and 11194 deletions

View File

@@ -41,7 +41,7 @@ async function composePrefix(ctx: Context, cwd: string): Promise<Message[]> {
const agent = ctx.agentLoop.create(SessionId('agent-spine-prefix'), {}, { cwd })
const signal = new AbortController().signal
const decision = await agentEvents(ctx, agent).waterfall(
'agent/pre-step', [], { turn: 1, step: 1, signal },
'agent/pre-step', { messages: [], turn: 1, step: 1, signal },
() => Promise.resolve({ kind: 'enter', messages: [] }),
)
if (decision.kind === 'enter') {
@@ -527,6 +527,7 @@ describe('dsh-agent-spine-demo bundle', () => {
</available_skills>
If the user names a skill, or the task clearly matches a skill's description, call the \`skill\` tool with the exact skill name before taking task actions. Load all applicable skills, then follow their full instructions. This catalog contains summaries only; do not infer or follow a skill's instructions until it has been loaded.
A user may also invoke a skill directly; its <skill_content> block then appears in this conversation. Follow it, and do not call the \`skill\` tool again for that skill.
</system-reminder>",
"type": "user/message",
},

View File

@@ -160,6 +160,29 @@ export function apply(ctx: Context, config: Config): void {}
expect(entries[0]?.refs).toEqual([{ alias: 'Remote', imported: 'Remote', specifier: '@fix/dep' }])
})
it('pastes an enum referenced by the config type', () => {
const entries = collectConfigCatalog(make({
'src/index.ts': `import type { Context } from 'cordis'
/** Fixture mode. */
export enum Mode {
A = 'a',
B = 'b',
}
/** Fixture config. */
export interface Config {
/** The mode. */
mode?: Mode
}
/** Load. */
export function apply(ctx: Context, config: Config): void {}
`,
}))
expect(entries[0]?.pastes?.map(p => p.text)).toEqual([
'/** Fixture config. */\nexport interface Config {\n /** The mode. */\n mode?: Mode\n}',
"/** Fixture mode. */\nexport enum Mode {\n A = 'a',\n B = 'b',\n}",
])
})
it('hard-errors on a referenced type name that resolves nowhere', () => {
expect(() => collectConfigCatalog(make({
'src/index.ts': `import type { Context } from 'cordis'