feat: add Skill Workshop revision request

This commit is contained in:
Shakker
2026-06-04 00:00:32 +01:00
committed by Shakker
parent 179ff9b423
commit bf08234ee3
10 changed files with 258 additions and 4 deletions

View File

@@ -122,6 +122,34 @@ describe("lazy protocol validators", () => {
expect(validateChatMetadataParams({ agentId: "work", view: "configured" })).toBe(false);
});
it("validates Skill Workshop revision request params", () => {
expect(
protocol.validateSkillsProposalRequestRevisionParams({
proposalId: "support-file-sampler-20260531-68207b7b7f",
instructions: "Make the support files 5",
sessionKey: "agent:main:session:skill-workshop",
idempotencyKey: "revision-run-1",
}),
).toBe(true);
expect(
protocol.validateSkillsProposalRequestRevisionParams({
proposalId: "support-file-sampler-20260531-68207b7b7f",
instructions: "",
sessionKey: "agent:main:session:skill-workshop",
idempotencyKey: "revision-run-1",
}),
).toBe(false);
expect(
protocol.validateSkillsProposalRequestRevisionParams({
proposalId: "support-file-sampler-20260531-68207b7b7f",
instructions: "Make the support files 5",
sessionKey: "agent:main:session:skill-workshop",
idempotencyKey: "revision-run-1",
hiddenPrompt: "do not accept caller-provided hidden prompts",
}),
).toBe(false);
});
it("can still compile every exported protocol validator", () => {
const failures: string[] = [];
const validators: Array<[string, ProtocolValidator]> = [];

View File

@@ -385,6 +385,10 @@ import {
SkillsProposalInspectResultSchema,
type SkillsProposalRecordResult,
SkillsProposalRecordResultSchema,
type SkillsProposalRequestRevisionParams,
SkillsProposalRequestRevisionParamsSchema,
type SkillsProposalRequestRevisionResult,
SkillsProposalRequestRevisionResultSchema,
type SkillsProposalReviseParams,
SkillsProposalReviseParamsSchema,
type SkillsProposalUpdateParams,
@@ -785,6 +789,8 @@ export const validateSkillsProposalUpdateParams = lazyCompile<SkillsProposalUpda
export const validateSkillsProposalReviseParams = lazyCompile<SkillsProposalReviseParams>(
SkillsProposalReviseParamsSchema,
);
export const validateSkillsProposalRequestRevisionParams =
lazyCompile<SkillsProposalRequestRevisionParams>(SkillsProposalRequestRevisionParamsSchema);
export const validateSkillsProposalActionParams = lazyCompile<SkillsProposalActionParams>(
SkillsProposalActionParamsSchema,
);
@@ -1105,6 +1111,8 @@ export {
SkillsProposalCreateParamsSchema,
SkillsProposalUpdateParamsSchema,
SkillsProposalReviseParamsSchema,
SkillsProposalRequestRevisionParamsSchema,
SkillsProposalRequestRevisionResultSchema,
SkillsProposalActionParamsSchema,
SkillsProposalApplyResultSchema,
SkillsProposalRecordResultSchema,
@@ -1269,6 +1277,8 @@ export type {
SkillsProposalCreateParams,
SkillsProposalUpdateParams,
SkillsProposalReviseParams,
SkillsProposalRequestRevisionParams,
SkillsProposalRequestRevisionResult,
SkillsProposalActionParams,
SkillsProposalApplyResult,
SkillsProposalRecordResult,

View File

@@ -763,6 +763,28 @@ export const SkillsProposalReviseParamsSchema = Type.Object(
{ additionalProperties: false },
);
/** Starts an agent turn that revises a pending proposal from natural-language instructions. */
export const SkillsProposalRequestRevisionParamsSchema = Type.Object(
{
agentId: Type.Optional(NonEmptyString),
proposalId: NonEmptyString,
instructions: Type.String({ minLength: 1, maxLength: 32_768 }),
sessionKey: NonEmptyString,
sessionId: Type.Optional(NonEmptyString),
idempotencyKey: NonEmptyString,
},
{ additionalProperties: false },
);
/** Chat-run acknowledgement returned after queueing a Skill Workshop revision request. */
export const SkillsProposalRequestRevisionResultSchema = Type.Object(
{
runId: NonEmptyString,
status: Type.Union([Type.Literal("started"), Type.Literal("in_flight"), Type.Literal("ok")]),
},
{ additionalProperties: true },
);
/** Shared approve/reject/quarantine action payload for one proposal. */
export const SkillsProposalActionParamsSchema = Type.Object(
{

View File

@@ -48,6 +48,8 @@ import {
SkillsProposalInspectParamsSchema,
SkillsProposalInspectResultSchema,
SkillsProposalRecordResultSchema,
SkillsProposalRequestRevisionParamsSchema,
SkillsProposalRequestRevisionResultSchema,
SkillsProposalReviseParamsSchema,
SkillsProposalUpdateParamsSchema,
SkillsProposalsListParamsSchema,
@@ -508,6 +510,8 @@ export const ProtocolSchemas = {
SkillsProposalCreateParams: SkillsProposalCreateParamsSchema,
SkillsProposalUpdateParams: SkillsProposalUpdateParamsSchema,
SkillsProposalReviseParams: SkillsProposalReviseParamsSchema,
SkillsProposalRequestRevisionParams: SkillsProposalRequestRevisionParamsSchema,
SkillsProposalRequestRevisionResult: SkillsProposalRequestRevisionResultSchema,
SkillsProposalActionParams: SkillsProposalActionParamsSchema,
SkillsProposalApplyResult: SkillsProposalApplyResultSchema,
SkillsProposalRecordResult: SkillsProposalRecordResultSchema,

View File

@@ -228,6 +228,8 @@ export type SkillsProposalInspectResult = SchemaType<"SkillsProposalInspectResul
export type SkillsProposalCreateParams = SchemaType<"SkillsProposalCreateParams">;
export type SkillsProposalUpdateParams = SchemaType<"SkillsProposalUpdateParams">;
export type SkillsProposalReviseParams = SchemaType<"SkillsProposalReviseParams">;
export type SkillsProposalRequestRevisionParams = SchemaType<"SkillsProposalRequestRevisionParams">;
export type SkillsProposalRequestRevisionResult = SchemaType<"SkillsProposalRequestRevisionResult">;
export type SkillsProposalActionParams = SchemaType<"SkillsProposalActionParams">;
export type SkillsProposalApplyResult = SchemaType<"SkillsProposalApplyResult">;
export type SkillsProposalRecordResult = SchemaType<"SkillsProposalRecordResult">;