@cursor/july 0.1.103 → 0.1.104
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.
- package/dist/channels/change-monitors/change-monitors-channel.d.ts +5 -0
- package/dist/channels/change-monitors/change-monitors-channel.d.ts.map +1 -0
- package/dist/channels/change-monitors/change-monitors-channel.js +41 -0
- package/dist/channels/change-monitors/index.d.ts +4 -0
- package/dist/channels/change-monitors/index.d.ts.map +1 -0
- package/dist/channels/change-monitors/index.js +2 -0
- package/dist/channels/change-monitors/types.d.ts +39 -0
- package/dist/channels/change-monitors/types.d.ts.map +1 -0
- package/dist/channels/change-monitors/types.js +1 -0
- package/dist/channels/github/defaults.d.ts.map +1 -1
- package/dist/channels/github/defaults.js +4 -0
- package/dist/channels/github/progress.d.ts +22 -0
- package/dist/channels/github/progress.d.ts.map +1 -1
- package/dist/channels/github/progress.js +32 -5
- package/dist/channels/issues/index.d.ts +4 -0
- package/dist/channels/issues/index.d.ts.map +1 -0
- package/dist/channels/issues/index.js +2 -0
- package/dist/channels/issues/issues-channel.d.ts +5 -0
- package/dist/channels/issues/issues-channel.d.ts.map +1 -0
- package/dist/channels/issues/issues-channel.js +37 -0
- package/dist/channels/issues/types.d.ts +33 -0
- package/dist/channels/issues/types.d.ts.map +1 -0
- package/dist/channels/issues/types.js +1 -0
- package/dist/docs/404.html +2 -2
- package/dist/docs/ab.html +4 -4
- package/dist/docs/assets/{app.DW9pXkpL.js → app.DbMWUyGb.js} +1 -1
- package/dist/docs/assets/chunks/@localSearchIndexroot.Bqsulb9K.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.CdEIUwDg.js → VPLocalSearchBox.DcNeTh9o.js} +1 -1
- package/dist/docs/assets/chunks/{theme.YZMHgPgg.js → theme.DMjhY3gl.js} +2 -2
- package/dist/docs/assets/{guides_github.md.DKYiT9do.js → guides_github.md.c0gdGJ-D.js} +1 -1
- package/dist/docs/assets/{guides_github.md.DKYiT9do.lean.js → guides_github.md.c0gdGJ-D.lean.js} +1 -1
- package/dist/docs/assets/{reference_channels.md.Dz8Cnudp.js → reference_channels.md.DBGcaB7m.js} +2 -2
- package/dist/docs/assets/{reference_channels.md.Dz8Cnudp.lean.js → reference_channels.md.DBGcaB7m.lean.js} +1 -1
- package/dist/docs/building-with-agents.html +4 -4
- package/dist/docs/concepts.html +4 -4
- package/dist/docs/deployment.html +4 -4
- package/dist/docs/design/filesystem.md +376 -0
- package/dist/docs/evals.html +4 -4
- package/dist/docs/guides/agent-to-agent.html +4 -4
- package/dist/docs/guides/cloud-agents.html +4 -4
- package/dist/docs/guides/convert-automation.html +4 -4
- package/dist/docs/guides/github.html +6 -6
- package/dist/docs/guides/github.md +5 -0
- package/dist/docs/guides/human-in-the-loop.html +4 -4
- package/dist/docs/guides/mcp-oauth.html +4 -4
- package/dist/docs/guides/opentelemetry.html +4 -4
- package/dist/docs/guides/slack.html +4 -4
- package/dist/docs/guides/webhooks.html +4 -4
- package/dist/docs/hashmap.json +1 -1
- package/dist/docs/hillclimbing.html +4 -4
- package/dist/docs/index.html +4 -4
- package/dist/docs/llms-full.txt +406 -0
- package/dist/docs/llms.txt +1 -0
- package/dist/docs/quickstart.html +4 -4
- package/dist/docs/reference/agent-config.html +4 -4
- package/dist/docs/reference/artifacts.html +4 -4
- package/dist/docs/reference/channels.html +6 -6
- package/dist/docs/reference/channels.md +20 -0
- package/dist/docs/reference/cli.html +4 -4
- package/dist/docs/reference/connections.html +4 -4
- package/dist/docs/reference/extensions.html +4 -4
- package/dist/docs/reference/hooks.html +4 -4
- package/dist/docs/reference/http-api.html +4 -4
- package/dist/docs/reference/instructions.html +4 -4
- package/dist/docs/reference/playground.html +4 -4
- package/dist/docs/reference/project-layout.html +4 -4
- package/dist/docs/reference/prompt.html +4 -4
- package/dist/docs/reference/result.html +4 -4
- package/dist/docs/reference/schedules.html +4 -4
- package/dist/docs/reference/sessions.html +4 -4
- package/dist/docs/reference/skills.html +4 -4
- package/dist/docs/reference/subagents.html +4 -4
- package/dist/docs/reference/tools.html +4 -4
- package/dist/docs/scaffolding-agents.html +4 -4
- package/dist/docs/skills/ab.html +4 -4
- package/dist/docs/skills/create-agent.html +4 -4
- package/dist/docs/skills/debug.html +4 -4
- package/dist/docs/skills/evals.html +4 -4
- package/dist/docs/skills/framework-map.html +4 -4
- package/dist/docs/skills/github.html +4 -4
- package/dist/docs/skills/hillclimb.html +4 -4
- package/dist/docs/skills/index.html +4 -4
- package/dist/docs/skills/mcp-auth.html +4 -4
- package/dist/docs/skills/otel.html +4 -4
- package/dist/docs/skills/setup-slack.html +4 -4
- package/dist/docs/storage.html +4 -4
- package/dist/docs/templates/agentic-owners.html +4 -4
- package/dist/docs/templates/agents-md.html +4 -4
- package/dist/docs/templates/code-wiki.html +4 -4
- package/dist/docs/templates/demo.html +4 -4
- package/dist/docs/templates/pr-autofixer.html +4 -4
- package/dist/docs/templates/security-help.html +4 -4
- package/dist/docs/templates/security-reviewer.html +4 -4
- package/dist/docs/templates/triage.html +4 -4
- package/dist/docs/troubleshooting.html +4 -4
- package/dist/filesystem.d.ts +440 -0
- package/dist/filesystem.d.ts.map +1 -0
- package/dist/filesystem.js +1694 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/internal/continuation-channel.d.ts +4 -2
- package/dist/internal/continuation-channel.d.ts.map +1 -1
- package/dist/internal/continuation-channel.js +21 -12
- package/dist/internal/continuation-identity.d.ts +13 -5
- package/dist/internal/continuation-identity.d.ts.map +1 -1
- package/dist/internal/continuation-identity.js +74 -35
- package/dist/internal/discovery/agent.d.ts.map +1 -1
- package/dist/internal/discovery/agent.js +80 -8
- package/dist/internal/discovery/info.d.ts.map +1 -1
- package/dist/internal/discovery/info.js +3 -0
- package/dist/internal/factory-resource-channel.d.ts +33 -0
- package/dist/internal/factory-resource-channel.d.ts.map +1 -0
- package/dist/internal/factory-resource-channel.js +77 -0
- package/dist/internal/filesystem/errors.d.ts +64 -0
- package/dist/internal/filesystem/errors.d.ts.map +1 -0
- package/dist/internal/filesystem/errors.js +175 -0
- package/dist/internal/filesystem/format.d.ts +28 -0
- package/dist/internal/filesystem/format.d.ts.map +1 -0
- package/dist/internal/filesystem/format.js +213 -0
- package/dist/internal/filesystem/merge.d.ts +34 -0
- package/dist/internal/filesystem/merge.d.ts.map +1 -0
- package/dist/internal/filesystem/merge.js +196 -0
- package/dist/internal/filesystem/scratch.d.ts +59 -0
- package/dist/internal/filesystem/scratch.d.ts.map +1 -0
- package/dist/internal/filesystem/scratch.js +212 -0
- package/dist/internal/filesystem/sdk-schemas.d.ts +29 -0
- package/dist/internal/filesystem/sdk-schemas.d.ts.map +1 -0
- package/dist/internal/filesystem/sdk-schemas.js +153 -0
- package/dist/internal/filesystem/tools.d.ts +42 -0
- package/dist/internal/filesystem/tools.d.ts.map +1 -0
- package/dist/internal/filesystem/tools.js +618 -0
- package/dist/internal/filesystem/walk.d.ts +74 -0
- package/dist/internal/filesystem/walk.d.ts.map +1 -0
- package/dist/internal/filesystem/walk.js +339 -0
- package/dist/internal/guest-network.d.ts +5 -2
- package/dist/internal/guest-network.d.ts.map +1 -1
- package/dist/internal/guest-network.js +7 -2
- package/dist/internal/hosted-delivery.d.ts.map +1 -1
- package/dist/internal/hosted-delivery.js +12 -2
- package/dist/internal/sdk-runner.d.ts +1 -1
- package/dist/internal/sdk-runner.d.ts.map +1 -1
- package/dist/internal/sdk-runner.js +3 -1
- package/dist/internal/session-engine.d.ts +22 -0
- package/dist/internal/session-engine.d.ts.map +1 -1
- package/dist/internal/session-engine.js +362 -40
- package/dist/internal/testing/factory-resource-fixtures.d.ts +48 -0
- package/dist/internal/testing/factory-resource-fixtures.d.ts.map +1 -0
- package/dist/internal/testing/factory-resource-fixtures.js +41 -0
- package/dist/playground/assets/{index-59KvgREd.js → index-8YiozU89.js} +38 -38
- package/dist/playground/index.html +1 -1
- package/dist/types.d.ts +51 -3
- package/dist/types.d.ts.map +1 -1
- package/docs/design/filesystem.md +376 -0
- package/docs/guides/github.md +5 -0
- package/docs/reference/channels.md +20 -0
- package/package.json +16 -2
- package/src/channels/change-monitors/change-monitors-channel.ts +62 -0
- package/src/channels/change-monitors/index.ts +8 -0
- package/src/channels/change-monitors/types.ts +44 -0
- package/src/channels/github/defaults.ts +4 -0
- package/src/channels/github/progress.ts +76 -10
- package/src/channels/issues/index.ts +9 -0
- package/src/channels/issues/issues-channel.ts +51 -0
- package/src/channels/issues/types.ts +41 -0
- package/src/filesystem.ts +2074 -0
- package/src/index.ts +28 -0
- package/src/internal/continuation-channel.ts +29 -12
- package/src/internal/continuation-identity.ts +122 -37
- package/src/internal/discovery/agent.ts +87 -1
- package/src/internal/discovery/info.ts +3 -0
- package/src/internal/factory-resource-channel.ts +122 -0
- package/src/internal/filesystem/errors.ts +220 -0
- package/src/internal/filesystem/format.ts +276 -0
- package/src/internal/filesystem/merge.ts +195 -0
- package/src/internal/filesystem/scratch.ts +255 -0
- package/src/internal/filesystem/sdk-schemas.ts +204 -0
- package/src/internal/filesystem/tools.ts +821 -0
- package/src/internal/filesystem/walk.ts +369 -0
- package/src/internal/guest-network.ts +8 -2
- package/src/internal/hosted-delivery.ts +18 -1
- package/src/internal/sdk-runner.ts +4 -0
- package/src/internal/session-engine.ts +439 -29
- package/src/internal/testing/factory-resource-fixtures.ts +85 -0
- package/src/types.ts +49 -3
- package/dist/docs/assets/chunks/@localSearchIndexroot.nrl1ifBq.js +0 -1
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ChannelDefinition } from "../../types.js";
|
|
2
|
+
import { type ChangeMonitorsChannelOptions } from "./types.js";
|
|
3
|
+
export declare function changeMonitorsChannel(options: ChangeMonitorsChannelOptions): ChannelDefinition;
|
|
4
|
+
export declare function getChangeMonitorsChannelOptions(definition: object): ChangeMonitorsChannelOptions | undefined;
|
|
5
|
+
//# sourceMappingURL=change-monitors-channel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"change-monitors-channel.d.ts","sourceRoot":"","sources":["../../../src/channels/change-monitors/change-monitors-channel.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAEL,KAAK,4BAA4B,EAElC,MAAM,YAAY,CAAC;AA4CpB,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,4BAA4B,GACpC,iBAAiB,CAEnB;AAED,wBAAgB,+BAA+B,CAC7C,UAAU,EAAE,MAAM,GACjB,4BAA4B,GAAG,SAAS,CAE1C"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { createFactoryResourceChannel } from "../../internal/factory-resource-channel.js";
|
|
3
|
+
import { CHECKPOINT_CREATED_EVENT_TYPE, } from "./types.js";
|
|
4
|
+
const checkpointResourceSchema = z
|
|
5
|
+
.object({
|
|
6
|
+
name: z.string().min(1),
|
|
7
|
+
deployment: z.string().min(1),
|
|
8
|
+
runKey: z.string().min(1),
|
|
9
|
+
evidenceSummary: z.string().min(1),
|
|
10
|
+
planRevision: z.string().optional(),
|
|
11
|
+
createTime: z.string().min(1).optional(),
|
|
12
|
+
description: z.string().optional(),
|
|
13
|
+
clear: z.object({}).passthrough().optional(),
|
|
14
|
+
issues: z
|
|
15
|
+
.object({ title: z.string().min(1) })
|
|
16
|
+
.passthrough()
|
|
17
|
+
.optional(),
|
|
18
|
+
inconclusive: z.object({}).passthrough().optional(),
|
|
19
|
+
})
|
|
20
|
+
.passthrough()
|
|
21
|
+
.refine((checkpoint) => [checkpoint.clear, checkpoint.issues, checkpoint.inconclusive].filter((arm) => arm !== undefined).length === 1, { message: "checkpoint must have exactly one result arm" });
|
|
22
|
+
const checkpointCreatedEventSchema = z.object({
|
|
23
|
+
eventId: z.string().min(1),
|
|
24
|
+
eventType: z.literal(CHECKPOINT_CREATED_EVENT_TYPE),
|
|
25
|
+
teamId: z.string().min(1),
|
|
26
|
+
occurredAtMs: z.number().int().nonnegative(),
|
|
27
|
+
checkpoint: checkpointResourceSchema,
|
|
28
|
+
});
|
|
29
|
+
const pack = createFactoryResourceChannel({
|
|
30
|
+
kind: "change_monitors",
|
|
31
|
+
eventTypes: [CHECKPOINT_CREATED_EVENT_TYPE],
|
|
32
|
+
eventSchema: checkpointCreatedEventSchema,
|
|
33
|
+
replayDescription: "Replay a Change Monitor checkpoint-created event.",
|
|
34
|
+
invalidError: "invalid change-monitor checkpoint event",
|
|
35
|
+
});
|
|
36
|
+
export function changeMonitorsChannel(options) {
|
|
37
|
+
return pack.channel(options);
|
|
38
|
+
}
|
|
39
|
+
export function getChangeMonitorsChannelOptions(definition) {
|
|
40
|
+
return pack.getOptions(definition);
|
|
41
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { changeMonitorsChannel } from "./change-monitors-channel.js";
|
|
2
|
+
export type { ChangeMonitorsChannelOptions, CheckpointCreatedEvent, CheckpointCreatedEventType, CheckpointResource, } from "./types.js";
|
|
3
|
+
export { CHECKPOINT_CREATED_EVENT_TYPE } from "./types.js";
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/channels/change-monitors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,YAAY,EACV,4BAA4B,EAC5B,sBAAsB,EACtB,0BAA0B,EAC1B,kBAAkB,GACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,6BAA6B,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { ContinuationIdentity } from "../../internal/continuation-identity.js";
|
|
2
|
+
import type { ChannelDefinition, ChannelHandlerArgs } from "../../types.js";
|
|
3
|
+
export declare const CHECKPOINT_CREATED_EVENT_TYPE: "checkpoint.created";
|
|
4
|
+
export type CheckpointCreatedEventType = typeof CHECKPOINT_CREATED_EVENT_TYPE;
|
|
5
|
+
/**
|
|
6
|
+
* Factory Checkpoint JSON (camelCase proto JSON). Exactly one result arm is
|
|
7
|
+
* set: `clear`, `issues`, or `inconclusive`. The channel does not pre-filter.
|
|
8
|
+
*/
|
|
9
|
+
export type CheckpointResource = {
|
|
10
|
+
name: string;
|
|
11
|
+
deployment: string;
|
|
12
|
+
runKey: string;
|
|
13
|
+
evidenceSummary: string;
|
|
14
|
+
planRevision?: string;
|
|
15
|
+
createTime?: string;
|
|
16
|
+
description?: string;
|
|
17
|
+
clear?: Record<string, unknown>;
|
|
18
|
+
issues?: {
|
|
19
|
+
title: string;
|
|
20
|
+
};
|
|
21
|
+
inconclusive?: Record<string, unknown>;
|
|
22
|
+
};
|
|
23
|
+
/** Factory `checkpoint.created` for every Change Monitor Checkpoint create. */
|
|
24
|
+
export type CheckpointCreatedEvent = {
|
|
25
|
+
eventId: string;
|
|
26
|
+
eventType: CheckpointCreatedEventType;
|
|
27
|
+
teamId: string;
|
|
28
|
+
occurredAtMs: number;
|
|
29
|
+
checkpoint: CheckpointResource;
|
|
30
|
+
};
|
|
31
|
+
export type ChangeMonitorsChannelOptions = {
|
|
32
|
+
onEvent: (event: CheckpointCreatedEvent, args: ChannelHandlerArgs) => Promise<unknown> | unknown;
|
|
33
|
+
continuation?: ContinuationIdentity;
|
|
34
|
+
path?: string;
|
|
35
|
+
auth?: ChannelDefinition["auth"];
|
|
36
|
+
onStart?: ChannelDefinition["onStart"];
|
|
37
|
+
onStop?: ChannelDefinition["onStop"];
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/channels/change-monitors/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAE5E,eAAO,MAAM,6BAA6B,EAAG,oBAA6B,CAAC;AAE3E,MAAM,MAAM,0BAA0B,GAAG,OAAO,6BAA6B,CAAC;AAE9E;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC,CAAC;AAEF,+EAA+E;AAC/E,MAAM,MAAM,sBAAsB,GAAG;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,0BAA0B,CAAC;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,kBAAkB,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,OAAO,EAAE,CACP,KAAK,EAAE,sBAAsB,EAC7B,IAAI,EAAE,kBAAkB,KACrB,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IAChC,YAAY,CAAC,EAAE,oBAAoB,CAAC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,CAAC,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC;CACtC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const CHECKPOINT_CREATED_EVENT_TYPE = "checkpoint.created";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../../src/channels/github/defaults.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExD,OAAO,EAAuB,KAAK,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC/E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,MAAM,WAAW,+BAAgC,SAAQ,mBAAmB;IAC1E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,GAAE,+BAAoC,GAC5C,oBAAoB,CAAC,kBAAkB,CAAC,
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../../src/channels/github/defaults.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExD,OAAO,EAAuB,KAAK,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC/E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,MAAM,WAAW,+BAAgC,SAAQ,mBAAmB;IAC1E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,GAAE,+BAAoC,GAC5C,oBAAoB,CAAC,kBAAkB,CAAC,CA+G1C"}
|
|
@@ -32,6 +32,7 @@ export function buildDefaultGitHubEvents(options = {}) {
|
|
|
32
32
|
}
|
|
33
33
|
yield applyGitHubProgress({
|
|
34
34
|
phase: "pending",
|
|
35
|
+
sessionId: event.sessionId,
|
|
35
36
|
channel,
|
|
36
37
|
options,
|
|
37
38
|
});
|
|
@@ -73,6 +74,7 @@ export function buildDefaultGitHubEvents(options = {}) {
|
|
|
73
74
|
toolOutcomesBySession.delete(event.sessionId);
|
|
74
75
|
yield applyGitHubProgress({
|
|
75
76
|
phase: pipelineSucceeded ? "success" : "failure",
|
|
77
|
+
sessionId: event.sessionId,
|
|
76
78
|
channel,
|
|
77
79
|
options,
|
|
78
80
|
});
|
|
@@ -106,6 +108,7 @@ export function buildDefaultGitHubEvents(options = {}) {
|
|
|
106
108
|
toolOutcomesBySession.delete(event.sessionId);
|
|
107
109
|
yield applyGitHubProgress({
|
|
108
110
|
phase: "failure",
|
|
111
|
+
sessionId: event.sessionId,
|
|
109
112
|
channel,
|
|
110
113
|
options,
|
|
111
114
|
});
|
|
@@ -117,6 +120,7 @@ export function buildDefaultGitHubEvents(options = {}) {
|
|
|
117
120
|
toolOutcomesBySession.delete(event.sessionId);
|
|
118
121
|
yield applyGitHubProgress({
|
|
119
122
|
phase: "failure",
|
|
123
|
+
sessionId: event.sessionId,
|
|
120
124
|
channel,
|
|
121
125
|
options,
|
|
122
126
|
});
|
|
@@ -12,6 +12,27 @@ export interface GitHubProgressPhaseCopy {
|
|
|
12
12
|
export interface GitHubCommitStatusProgress extends GitHubProgressPhaseCopy {
|
|
13
13
|
/** Check run name (unique per check in the merge box). */
|
|
14
14
|
context: string;
|
|
15
|
+
/**
|
|
16
|
+
* Check Details URL for this session. When it resolves, it is written as
|
|
17
|
+
* `details_url` and (with {@link summaryLinkText}) appended to the summary.
|
|
18
|
+
*/
|
|
19
|
+
detailsUrl?: (sessionId: string) => string | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* `output.title` source. `"phase"` (default) uses the pending/success/
|
|
22
|
+
* failure copy. `"context"` uses the check name — the dashboard automation
|
|
23
|
+
* shape (`Cursor Security Agent: …`).
|
|
24
|
+
*/
|
|
25
|
+
outputTitle?: "phase" | "context";
|
|
26
|
+
/**
|
|
27
|
+
* Markdown link label appended to the summary when {@link detailsUrl}
|
|
28
|
+
* resolves, e.g. `"View agent"`.
|
|
29
|
+
*/
|
|
30
|
+
summaryLinkText?: string;
|
|
31
|
+
/**
|
|
32
|
+
* Conclusion for the failure phase. Default `"failure"`. Use `"neutral"`
|
|
33
|
+
* when a red merge-box check must not gate merge (findings live on the PR).
|
|
34
|
+
*/
|
|
35
|
+
failureConclusion?: "failure" | "neutral";
|
|
15
36
|
}
|
|
16
37
|
export type GitHubBannerProgress = GitHubProgressPhaseCopy;
|
|
17
38
|
export interface GitHubProgressConfig {
|
|
@@ -54,6 +75,7 @@ export declare function progressPhaseCopy(input: {
|
|
|
54
75
|
*/
|
|
55
76
|
export declare function applyGitHubProgress(input: {
|
|
56
77
|
phase: GitHubProgressPhase;
|
|
78
|
+
sessionId?: string;
|
|
57
79
|
channel: {
|
|
58
80
|
state: GitHubChannelState;
|
|
59
81
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../../src/channels/github/progress.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAKrD,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAEpE,MAAM,WAAW,uBAAuB;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,0BAA2B,SAAQ,uBAAuB;IACzE,0DAA0D;IAC1D,OAAO,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../../src/channels/github/progress.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAKrD,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAEpE,MAAM,WAAW,uBAAuB;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,0BAA2B,SAAQ,uBAAuB;IACzE,0DAA0D;IAC1D,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IACvD;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAClC;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;CAC3C;AAED,MAAM,MAAM,oBAAoB,GAAG,uBAAuB,CAAC;AAE3D,MAAM,WAAW,oBAAoB;IACnC,4EAA4E;IAC5E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;OAKG;IACH,sBAAsB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C;;;;;OAKG;IACH,YAAY,CAAC,EAAE,KAAK,GAAG,0BAA0B,CAAC;IAClD;;;OAGG;IACH,MAAM,CAAC,EAAE,KAAK,GAAG,oBAAoB,CAAC;CACvC;AAED,MAAM,WAAW,qBAAsB,SAAQ,mBAAmB;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,oBAAoB,CAAC;CACjC;AAED,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,oBAAoB,GAAG,SAAS,GACzC,0BAA0B,GAAG,IAAI,CAKnC;AAED,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,oBAAoB,GAAG,SAAS,GACzC,oBAAoB,GAAG,IAAI,CAK7B;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE;IACvC,IAAI,EAAE,uBAAuB,GAAG,SAAS,CAAC;IAC1C,KAAK,EAAE,mBAAmB,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,MAAM,CAaT;AAuBD;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,KAAK,EAAE;IAC/C,KAAK,EAAE,mBAAmB,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE;QAAE,KAAK,EAAE,kBAAkB,CAAA;KAAE,CAAC;IACvC,OAAO,EAAE,qBAAqB,CAAC;CAChC,GAAG,OAAO,CAAC,IAAI,CAAC,CA+BhB"}
|
|
@@ -73,6 +73,7 @@ export function applyGitHubProgress(input) {
|
|
|
73
73
|
if (commitStatus !== null) {
|
|
74
74
|
tasks.push(postProgressCheckRun({
|
|
75
75
|
phase: input.phase,
|
|
76
|
+
sessionId: input.sessionId,
|
|
76
77
|
channel: input.channel,
|
|
77
78
|
options: input.options,
|
|
78
79
|
commitStatus,
|
|
@@ -90,6 +91,22 @@ export function applyGitHubProgress(input) {
|
|
|
90
91
|
yield Promise.all(tasks);
|
|
91
92
|
});
|
|
92
93
|
}
|
|
94
|
+
function resolveProgressDetailsUrl(input) {
|
|
95
|
+
var _a;
|
|
96
|
+
if (input.sessionId === undefined ||
|
|
97
|
+
input.commitStatus.detailsUrl === undefined) {
|
|
98
|
+
return undefined;
|
|
99
|
+
}
|
|
100
|
+
const url = (_a = input.commitStatus.detailsUrl(input.sessionId)) === null || _a === void 0 ? void 0 : _a.trim();
|
|
101
|
+
return url === "" ? undefined : url;
|
|
102
|
+
}
|
|
103
|
+
function appendSummaryLink(summary, detailsUrl, linkText) {
|
|
104
|
+
const label = linkText === null || linkText === void 0 ? void 0 : linkText.trim();
|
|
105
|
+
if (detailsUrl === undefined || label === undefined || label === "") {
|
|
106
|
+
return summary;
|
|
107
|
+
}
|
|
108
|
+
return `${summary}\n\n[${label}](${detailsUrl})`;
|
|
109
|
+
}
|
|
93
110
|
function postProgressCheckRun(input) {
|
|
94
111
|
return __awaiter(this, void 0, void 0, function* () {
|
|
95
112
|
var _a;
|
|
@@ -101,12 +118,22 @@ function postProgressCheckRun(input) {
|
|
|
101
118
|
return;
|
|
102
119
|
}
|
|
103
120
|
const sha = state.headSha;
|
|
104
|
-
const
|
|
121
|
+
const phaseCopy = progressPhaseCopy({
|
|
105
122
|
copy: input.commitStatus,
|
|
106
123
|
phase: input.phase,
|
|
107
124
|
label: progressLabel(input.options, input.commitStatus.context),
|
|
108
|
-
})
|
|
109
|
-
const
|
|
125
|
+
});
|
|
126
|
+
const title = clipStatusDescription(input.commitStatus.outputTitle === "context"
|
|
127
|
+
? input.commitStatus.context
|
|
128
|
+
: phaseCopy);
|
|
129
|
+
const detailsUrl = resolveProgressDetailsUrl({
|
|
130
|
+
sessionId: input.sessionId,
|
|
131
|
+
commitStatus: input.commitStatus,
|
|
132
|
+
});
|
|
133
|
+
const write = Object.assign(Object.assign(Object.assign({ name: input.commitStatus.context }, checkRunPhaseFields(input.phase, input.commitStatus.failureConclusion)), (detailsUrl === undefined ? {} : { detailsUrl })), { output: {
|
|
134
|
+
title,
|
|
135
|
+
summary: appendSummaryLink(phaseCopy, detailsUrl, input.commitStatus.summaryLinkText),
|
|
136
|
+
} });
|
|
110
137
|
const resource = {
|
|
111
138
|
api: input.options.api,
|
|
112
139
|
credentials: input.options.credentials,
|
|
@@ -156,13 +183,13 @@ function shouldRecreateCheckRun(error, status) {
|
|
|
156
183
|
}
|
|
157
184
|
return error.status === 422 && status === "in_progress";
|
|
158
185
|
}
|
|
159
|
-
function checkRunPhaseFields(phase) {
|
|
186
|
+
function checkRunPhaseFields(phase, failureConclusion = "failure") {
|
|
160
187
|
if (phase === "pending") {
|
|
161
188
|
return { status: "in_progress" };
|
|
162
189
|
}
|
|
163
190
|
return {
|
|
164
191
|
status: "completed",
|
|
165
|
-
conclusion: phase === "success" ? "success" :
|
|
192
|
+
conclusion: phase === "success" ? "success" : failureConclusion,
|
|
166
193
|
};
|
|
167
194
|
}
|
|
168
195
|
function upsertBanner(input) {
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { issuesChannel } from "./issues-channel.js";
|
|
2
|
+
export type { IssueCreatedEvent, IssueCreatedEventType, IssueResource, IssueState, IssuesChannelOptions, } from "./types.js";
|
|
3
|
+
export { ISSUE_CREATED_EVENT_TYPE } from "./types.js";
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/channels/issues/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EACV,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,EACb,UAAU,EACV,oBAAoB,GACrB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ChannelDefinition } from "../../types.js";
|
|
2
|
+
import { type IssuesChannelOptions } from "./types.js";
|
|
3
|
+
export declare function issuesChannel(options: IssuesChannelOptions): ChannelDefinition;
|
|
4
|
+
export declare function getIssuesChannelOptions(definition: object): IssuesChannelOptions | undefined;
|
|
5
|
+
//# sourceMappingURL=issues-channel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"issues-channel.d.ts","sourceRoot":"","sources":["../../../src/channels/issues/issues-channel.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,YAAY,CAAC;AAiCpB,wBAAgB,aAAa,CAC3B,OAAO,EAAE,oBAAoB,GAC5B,iBAAiB,CAEnB;AAED,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,MAAM,GACjB,oBAAoB,GAAG,SAAS,CAElC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { createFactoryResourceChannel } from "../../internal/factory-resource-channel.js";
|
|
3
|
+
import { ISSUE_CREATED_EVENT_TYPE, } from "./types.js";
|
|
4
|
+
const issueResourceSchema = z
|
|
5
|
+
.object({
|
|
6
|
+
name: z.string().min(1),
|
|
7
|
+
title: z.string().min(1),
|
|
8
|
+
body: z.string().min(1),
|
|
9
|
+
state: z
|
|
10
|
+
.enum(["STATE_UNSPECIFIED", "STATE_OPEN", "STATE_CLOSED"])
|
|
11
|
+
.optional(),
|
|
12
|
+
createTime: z.string().min(1).optional(),
|
|
13
|
+
updateTime: z.string().min(1).optional(),
|
|
14
|
+
path: z.string().optional(),
|
|
15
|
+
etag: z.string().optional(),
|
|
16
|
+
})
|
|
17
|
+
.passthrough();
|
|
18
|
+
const issueCreatedEventSchema = z.object({
|
|
19
|
+
eventId: z.string().min(1),
|
|
20
|
+
eventType: z.literal(ISSUE_CREATED_EVENT_TYPE),
|
|
21
|
+
teamId: z.string().min(1),
|
|
22
|
+
occurredAtMs: z.number().int().nonnegative(),
|
|
23
|
+
issue: issueResourceSchema,
|
|
24
|
+
});
|
|
25
|
+
const pack = createFactoryResourceChannel({
|
|
26
|
+
kind: "issues",
|
|
27
|
+
eventTypes: [ISSUE_CREATED_EVENT_TYPE],
|
|
28
|
+
eventSchema: issueCreatedEventSchema,
|
|
29
|
+
replayDescription: "Replay a Factory issue-created event.",
|
|
30
|
+
invalidError: "invalid issue event",
|
|
31
|
+
});
|
|
32
|
+
export function issuesChannel(options) {
|
|
33
|
+
return pack.channel(options);
|
|
34
|
+
}
|
|
35
|
+
export function getIssuesChannelOptions(definition) {
|
|
36
|
+
return pack.getOptions(definition);
|
|
37
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { ContinuationIdentity } from "../../internal/continuation-identity.js";
|
|
2
|
+
import type { ChannelDefinition, ChannelHandlerArgs } from "../../types.js";
|
|
3
|
+
export declare const ISSUE_CREATED_EVENT_TYPE: "issue.created";
|
|
4
|
+
export type IssueCreatedEventType = typeof ISSUE_CREATED_EVENT_TYPE;
|
|
5
|
+
export type IssueState = "STATE_UNSPECIFIED" | "STATE_OPEN" | "STATE_CLOSED";
|
|
6
|
+
/** Factory Issue JSON (camelCase proto JSON). */
|
|
7
|
+
export type IssueResource = {
|
|
8
|
+
name: string;
|
|
9
|
+
title: string;
|
|
10
|
+
body: string;
|
|
11
|
+
state?: IssueState;
|
|
12
|
+
createTime?: string;
|
|
13
|
+
updateTime?: string;
|
|
14
|
+
path?: string;
|
|
15
|
+
etag?: string;
|
|
16
|
+
};
|
|
17
|
+
/** Factory `issue.created` for every Issue create. */
|
|
18
|
+
export type IssueCreatedEvent = {
|
|
19
|
+
eventId: string;
|
|
20
|
+
eventType: IssueCreatedEventType;
|
|
21
|
+
teamId: string;
|
|
22
|
+
occurredAtMs: number;
|
|
23
|
+
issue: IssueResource;
|
|
24
|
+
};
|
|
25
|
+
export type IssuesChannelOptions = {
|
|
26
|
+
onEvent: (event: IssueCreatedEvent, args: ChannelHandlerArgs) => Promise<unknown> | unknown;
|
|
27
|
+
continuation?: ContinuationIdentity;
|
|
28
|
+
path?: string;
|
|
29
|
+
auth?: ChannelDefinition["auth"];
|
|
30
|
+
onStart?: ChannelDefinition["onStart"];
|
|
31
|
+
onStop?: ChannelDefinition["onStop"];
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/channels/issues/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAE5E,eAAO,MAAM,wBAAwB,EAAG,eAAwB,CAAC;AAEjE,MAAM,MAAM,qBAAqB,GAAG,OAAO,wBAAwB,CAAC;AAEpE,MAAM,MAAM,UAAU,GAAG,mBAAmB,GAAG,YAAY,GAAG,cAAc,CAAC;AAE7E,iDAAiD;AACjD,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,sDAAsD;AACtD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,qBAAqB,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,aAAa,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,CACP,KAAK,EAAE,iBAAiB,EACxB,IAAI,EAAE,kBAAkB,KACrB,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IAChC,YAAY,CAAC,EAAE,oBAAoB,CAAC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,CAAC,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC;CACtC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const ISSUE_CREATED_EVENT_TYPE = "issue.created";
|
package/dist/docs/404.html
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
<link rel="preload stylesheet" href="/docs/assets/style.BRuM8477.css" as="style">
|
|
10
10
|
<link rel="preload stylesheet" href="/docs/vp-icons.css" as="style">
|
|
11
11
|
|
|
12
|
-
<script type="module" src="/docs/assets/app.
|
|
12
|
+
<script type="module" src="/docs/assets/app.DbMWUyGb.js"></script>
|
|
13
13
|
<link rel="preload" href="/docs/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
|
|
14
14
|
<script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
|
|
15
15
|
<script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
</head>
|
|
19
19
|
<body>
|
|
20
20
|
<div id="app"></div>
|
|
21
|
-
<script>window.__VP_HASH_MAP__=JSON.parse("{\"ab.md\":\"mlVgqvSk\",\"building-with-agents.md\":\"CUSWxlP_\",\"concepts.md\":\"DgEcZOfT\",\"deployment.md\":\"MFPKqsqI\",\"evals.md\":\"CbMoebP1\",\"guides_agent-to-agent.md\":\"BDb0t1QV\",\"guides_cloud-agents.md\":\"DS8RIjwx\",\"guides_convert-automation.md\":\"B4sjlodG\",\"guides_github.md\":\"
|
|
21
|
+
<script>window.__VP_HASH_MAP__=JSON.parse("{\"ab.md\":\"mlVgqvSk\",\"building-with-agents.md\":\"CUSWxlP_\",\"concepts.md\":\"DgEcZOfT\",\"deployment.md\":\"MFPKqsqI\",\"evals.md\":\"CbMoebP1\",\"guides_agent-to-agent.md\":\"BDb0t1QV\",\"guides_cloud-agents.md\":\"DS8RIjwx\",\"guides_convert-automation.md\":\"B4sjlodG\",\"guides_github.md\":\"c0gdGJ-D\",\"guides_human-in-the-loop.md\":\"By1G2T3_\",\"guides_mcp-oauth.md\":\"Dp6cDP7f\",\"guides_opentelemetry.md\":\"COh9jFVg\",\"guides_slack.md\":\"9oHPye9o\",\"guides_webhooks.md\":\"DKdA43Qm\",\"hillclimbing.md\":\"CpTGTCle\",\"index.md\":\"D75GWhPl\",\"quickstart.md\":\"DdQOF7Y8\",\"reference_agent-config.md\":\"CHNpiyp4\",\"reference_artifacts.md\":\"Dior32Qw\",\"reference_channels.md\":\"DBGcaB7m\",\"reference_cli.md\":\"CJNc_xYK\",\"reference_connections.md\":\"Di6jJAXF\",\"reference_extensions.md\":\"DykHW3qL\",\"reference_hooks.md\":\"Ddt5DdgJ\",\"reference_http-api.md\":\"oySXBO8o\",\"reference_instructions.md\":\"CR7XSsGk\",\"reference_playground.md\":\"4myJPxrf\",\"reference_project-layout.md\":\"DuBu9a96\",\"reference_prompt.md\":\"DnaD5dNK\",\"reference_result.md\":\"BK5SxDrf\",\"reference_schedules.md\":\"DI_JrHgq\",\"reference_sessions.md\":\"CueyOHSL\",\"reference_skills.md\":\"l2ezAcaN\",\"reference_subagents.md\":\"CfsIloPm\",\"reference_tools.md\":\"aGrn99hP\",\"scaffolding-agents.md\":\"em43xlY1\",\"skills_ab.md\":\"CsFNatVx\",\"skills_create-agent.md\":\"BVoWPcan\",\"skills_debug.md\":\"CDbPhHfg\",\"skills_evals.md\":\"723kpUmA\",\"skills_framework-map.md\":\"haibFyoB\",\"skills_github.md\":\"D0JahM8c\",\"skills_hillclimb.md\":\"B_zJerxA\",\"skills_index.md\":\"DKwIxzGg\",\"skills_mcp-auth.md\":\"DGvFP3HE\",\"skills_otel.md\":\"CqhobH3B\",\"skills_setup-slack.md\":\"BBgx8lUz\",\"storage.md\":\"BOHeqk2M\",\"templates_agentic-owners.md\":\"BZSH4N9z\",\"templates_agents-md.md\":\"CXSMZljE\",\"templates_code-wiki.md\":\"CDYZIBFN\",\"templates_demo.md\":\"BeQX9V3H\",\"templates_pr-autofixer.md\":\"Bds_XWcV\",\"templates_security-help.md\":\"C3Ny_Qr2\",\"templates_security-reviewer.md\":\"lshxbCLK\",\"templates_triage.md\":\"Co4UNzkZ\",\"troubleshooting.md\":\"Cus_YZga\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"Agent SDK\",\"description\":\"Filesystem-first framework for building and serving Cursor agents.\",\"base\":\"/docs/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"sdkVersion\":\"0.1.104\",\"nav\":[{\"text\":\"Quickstart\",\"link\":\"/quickstart\"},{\"text\":\"Guides\",\"link\":\"/guides/webhooks\"},{\"text\":\"Templates\",\"link\":\"/templates/demo\"},{\"text\":\"Reference\",\"link\":\"/reference/project-layout\"}],\"search\":{\"provider\":\"local\"},\"outline\":{\"level\":[2,3]},\"sidebar\":[{\"text\":\"Getting started\",\"items\":[{\"text\":\"Overview\",\"link\":\"/\"},{\"text\":\"Quickstart\",\"link\":\"/quickstart\"},{\"text\":\"Scaffold an agent with Cursor\",\"link\":\"/scaffolding-agents\"},{\"text\":\"Convert a Cursor Automation\",\"link\":\"/guides/convert-automation\"},{\"text\":\"Concepts\",\"link\":\"/concepts\"}]},{\"text\":\"Templates\",\"items\":[{\"text\":\"Demo agent\",\"link\":\"/templates/demo\"},{\"text\":\"Code wiki\",\"link\":\"/templates/code-wiki\"},{\"text\":\"Living AGENTS.md\",\"link\":\"/templates/agents-md\"},{\"text\":\"Security reviewer\",\"link\":\"/templates/security-reviewer\"},{\"text\":\"Security help\",\"link\":\"/templates/security-help\"},{\"text\":\"Agentic Owners\",\"link\":\"/templates/agentic-owners\"},{\"text\":\"PR autofixer\",\"link\":\"/templates/pr-autofixer\"},{\"text\":\"Triage agent\",\"link\":\"/templates/triage\"}]},{\"text\":\"Improving agents\",\"items\":[{\"text\":\"Building agents with agents\",\"link\":\"/building-with-agents\"},{\"text\":\"Evals\",\"link\":\"/evals\"},{\"text\":\"Live A/B metrics\",\"link\":\"/ab\"},{\"text\":\"Storage\",\"link\":\"/storage\"},{\"text\":\"Hillclimbing\",\"link\":\"/hillclimbing\"}]},{\"text\":\"Coding-agent skills\",\"collapsed\":true,\"items\":[{\"text\":\"Overview\",\"link\":\"/skills/\"},{\"text\":\"ab\",\"link\":\"/skills/ab\"},{\"text\":\"create-agent\",\"link\":\"/skills/create-agent\"},{\"text\":\"debug\",\"link\":\"/skills/debug\"},{\"text\":\"evals\",\"link\":\"/skills/evals\"},{\"text\":\"framework-map\",\"link\":\"/skills/framework-map\"},{\"text\":\"github\",\"link\":\"/skills/github\"},{\"text\":\"hillclimb\",\"link\":\"/skills/hillclimb\"},{\"text\":\"mcp-auth\",\"link\":\"/skills/mcp-auth\"},{\"text\":\"otel\",\"link\":\"/skills/otel\"},{\"text\":\"setup-slack\",\"link\":\"/skills/setup-slack\"}]},{\"text\":\"Guides\",\"items\":[{\"text\":\"Webhooks & custom channels\",\"link\":\"/guides/webhooks\"},{\"text\":\"GitHub\",\"link\":\"/guides/github\"},{\"text\":\"Slack\",\"link\":\"/guides/slack\"},{\"text\":\"Human-in-the-loop approvals\",\"link\":\"/guides/human-in-the-loop\"},{\"text\":\"Agent-to-agent\",\"link\":\"/guides/agent-to-agent\"},{\"text\":\"Host MCP OAuth\",\"link\":\"/guides/mcp-oauth\"},{\"text\":\"Cursor cloud agents\",\"link\":\"/guides/cloud-agents\"},{\"text\":\"OpenTelemetry\",\"link\":\"/guides/opentelemetry\"}]},{\"text\":\"Operating\",\"items\":[{\"text\":\"Deployment\",\"link\":\"/deployment\"},{\"text\":\"Fix common problems\",\"link\":\"/troubleshooting\"}]},{\"text\":\"Reference\",\"collapsed\":false,\"items\":[{\"text\":\"Project layout\",\"link\":\"/reference/project-layout\"},{\"text\":\"Agent config\",\"link\":\"/reference/agent-config\"},{\"text\":\"Instructions\",\"link\":\"/reference/instructions\"},{\"text\":\"Tools\",\"link\":\"/reference/tools\"},{\"text\":\"prompt\",\"link\":\"/reference/prompt\"},{\"text\":\"Skills\",\"link\":\"/reference/skills\"},{\"text\":\"MCP Connections\",\"link\":\"/reference/connections\"},{\"text\":\"Subagents\",\"link\":\"/reference/subagents\"},{\"text\":\"Extensions\",\"link\":\"/reference/extensions\"},{\"text\":\"Channels\",\"link\":\"/reference/channels\"},{\"text\":\"Schedules & reminders\",\"link\":\"/reference/schedules\"},{\"text\":\"Hooks\",\"link\":\"/reference/hooks\"},{\"text\":\"Artifacts\",\"link\":\"/reference/artifacts\"},{\"text\":\"Turn result\",\"link\":\"/reference/result\"},{\"text\":\"Sessions & streaming\",\"link\":\"/reference/sessions\"},{\"text\":\"Playground\",\"link\":\"/reference/playground\"},{\"text\":\"CLI\",\"link\":\"/reference/cli\"},{\"text\":\"HTTP API\",\"link\":\"/reference/http-api\"}]}]},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
|
|
22
22
|
|
|
23
23
|
</body>
|
|
24
24
|
</html>
|