@cursor/july 0.1.42 → 0.1.45

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 (223) hide show
  1. package/AGENTS.md +1 -0
  2. package/dist/bin/agent-serve.js +3 -1
  3. package/dist/channels/github/api.d.ts +5 -0
  4. package/dist/channels/github/api.d.ts.map +1 -1
  5. package/dist/channels/github/api.js +18 -0
  6. package/dist/channels/github/defaults.d.ts +4 -5
  7. package/dist/channels/github/defaults.d.ts.map +1 -1
  8. package/dist/channels/github/defaults.js +27 -1
  9. package/dist/channels/github/github-channel.d.ts.map +1 -1
  10. package/dist/channels/github/github-channel.js +41 -10
  11. package/dist/channels/github/index.d.ts +1 -0
  12. package/dist/channels/github/index.d.ts.map +1 -1
  13. package/dist/channels/github/index.js +1 -0
  14. package/dist/channels/github/progress.d.ts +54 -0
  15. package/dist/channels/github/progress.d.ts.map +1 -0
  16. package/dist/channels/github/progress.js +168 -0
  17. package/dist/channels/github/state.d.ts +2 -0
  18. package/dist/channels/github/state.d.ts.map +1 -1
  19. package/dist/channels/github/state.js +1 -1
  20. package/dist/channels/github/types.d.ts +16 -4
  21. package/dist/channels/github/types.d.ts.map +1 -1
  22. package/dist/channels/slack/slack-channel.d.ts +4 -0
  23. package/dist/channels/slack/slack-channel.d.ts.map +1 -1
  24. package/dist/channels/slack/slack-channel.js +4 -0
  25. package/dist/channels.d.ts +17 -0
  26. package/dist/channels.d.ts.map +1 -1
  27. package/dist/channels.js +31 -0
  28. package/dist/docs/404.html +2 -2
  29. package/dist/docs/ab.html +4 -4
  30. package/dist/docs/assets/{app.C4-Gwi7g.js → app.fHnNXEJ6.js} +1 -1
  31. package/dist/docs/assets/chunks/@localSearchIndexroot.BMT0xM4I.js +1 -0
  32. package/dist/docs/assets/chunks/{VPLocalSearchBox.DDoLm843.js → VPLocalSearchBox.Cf6ghfFY.js} +1 -1
  33. package/dist/docs/assets/chunks/{theme.SbjGIiM0.js → theme.B_5-VLe8.js} +2 -2
  34. package/dist/docs/assets/{deployment.md.BHVjVqRa.js → deployment.md.Cdp4rTE4.js} +1 -1
  35. package/dist/docs/assets/{guides_github.md.R2QlpR75.js → guides_github.md.DSg0j9qj.js} +29 -3
  36. package/dist/docs/assets/{guides_github.md.R2QlpR75.lean.js → guides_github.md.DSg0j9qj.lean.js} +1 -1
  37. package/dist/docs/assets/guides_opentelemetry.md.Csn7ZI25.js +27 -0
  38. package/dist/docs/assets/guides_opentelemetry.md.Csn7ZI25.lean.js +1 -0
  39. package/dist/docs/assets/index.md.COeoSkcF.js +5 -0
  40. package/dist/docs/assets/index.md.COeoSkcF.lean.js +1 -0
  41. package/dist/docs/assets/{quickstart.md.rIbfahJM.js → quickstart.md.DZxBu44y.js} +18 -49
  42. package/dist/docs/assets/quickstart.md.DZxBu44y.lean.js +1 -0
  43. package/dist/docs/assets/{reference_agent-config.md.CRmkoxd6.js → reference_agent-config.md.XRpxctsA.js} +9 -4
  44. package/dist/docs/assets/{reference_agent-config.md.CRmkoxd6.lean.js → reference_agent-config.md.XRpxctsA.lean.js} +1 -1
  45. package/dist/docs/assets/{reference_channels.md.BIabFUAI.js → reference_channels.md.MN8iDy8V.js} +1 -1
  46. package/dist/docs/assets/{reference_cli.md.DqEqQpGn.js → reference_cli.md.BDmjPPAm.js} +2 -2
  47. package/dist/docs/assets/{reference_hooks.md.B40QAG6m.js → reference_hooks.md.4cbRRIIu.js} +2 -2
  48. package/dist/docs/assets/{reference_hooks.md.B40QAG6m.lean.js → reference_hooks.md.4cbRRIIu.lean.js} +1 -1
  49. package/dist/docs/assets/{reference_project-layout.md._XdeMahr.js → reference_project-layout.md.D3MdHM2z.js} +2 -1
  50. package/dist/docs/assets/{reference_tools.md.lSrsTxYJ.js → reference_tools.md.kJfJAP2m.js} +1 -1
  51. package/dist/docs/assets/templates_triage.md.CConZt1z.js +11 -0
  52. package/dist/docs/assets/templates_triage.md.CConZt1z.lean.js +1 -0
  53. package/dist/docs/building-with-agents.html +5 -5
  54. package/dist/docs/concepts.html +5 -5
  55. package/dist/docs/deployment.html +6 -6
  56. package/dist/docs/evals.html +4 -4
  57. package/dist/docs/example-agents/approval-buddy.html +4 -4
  58. package/dist/docs/example-agents/benny.html +4 -4
  59. package/dist/docs/example-agents/bugbot.html +4 -4
  60. package/dist/docs/example-agents/codebase-wiki.html +4 -4
  61. package/dist/docs/example-agents/codeowners-review.html +4 -4
  62. package/dist/docs/example-agents/concierge.html +4 -4
  63. package/dist/docs/example-agents/fsd.html +4 -4
  64. package/dist/docs/example-agents/index.html +5 -5
  65. package/dist/docs/example-agents/knowledge-base.html +4 -4
  66. package/dist/docs/example-agents/oncall.html +4 -4
  67. package/dist/docs/example-agents/security-reviewer.html +4 -4
  68. package/dist/docs/example-agents/slack-agent.html +4 -4
  69. package/dist/docs/example-agents/weather-agent.html +4 -4
  70. package/dist/docs/guides/agent-to-agent.html +4 -4
  71. package/dist/docs/guides/cloud-runtime.html +5 -5
  72. package/dist/docs/guides/github.html +33 -7
  73. package/dist/docs/guides/human-in-the-loop.html +4 -4
  74. package/dist/docs/guides/mcp-oauth.html +4 -4
  75. package/dist/docs/guides/opentelemetry.html +51 -0
  76. package/dist/docs/guides/slack.html +4 -4
  77. package/dist/docs/guides/webhooks.html +4 -4
  78. package/dist/docs/hashmap.json +1 -1
  79. package/dist/docs/hillclimbing.html +4 -4
  80. package/dist/docs/index.html +8 -27
  81. package/dist/docs/quickstart.html +24 -55
  82. package/dist/docs/reference/agent-config.html +12 -7
  83. package/dist/docs/reference/artifacts.html +4 -4
  84. package/dist/docs/reference/channels.html +6 -6
  85. package/dist/docs/reference/cli.html +7 -7
  86. package/dist/docs/reference/connections.html +4 -4
  87. package/dist/docs/reference/hooks.html +6 -6
  88. package/dist/docs/reference/http-api.html +4 -4
  89. package/dist/docs/reference/instructions.html +4 -4
  90. package/dist/docs/reference/playground.html +4 -4
  91. package/dist/docs/reference/project-layout.html +7 -6
  92. package/dist/docs/reference/prompt.html +4 -4
  93. package/dist/docs/reference/schedules.html +4 -4
  94. package/dist/docs/reference/sessions.html +4 -4
  95. package/dist/docs/reference/skills.html +4 -4
  96. package/dist/docs/reference/subagents.html +4 -4
  97. package/dist/docs/reference/tools.html +6 -6
  98. package/dist/docs/scaffolding-agents.html +4 -4
  99. package/dist/docs/storage.html +4 -4
  100. package/dist/docs/templates/triage.html +35 -0
  101. package/dist/docs/troubleshooting.html +4 -4
  102. package/dist/index.d.ts +3 -1
  103. package/dist/index.d.ts.map +1 -1
  104. package/dist/index.js +2 -1
  105. package/dist/internal/cli-ax.d.ts +1 -0
  106. package/dist/internal/cli-ax.d.ts.map +1 -1
  107. package/dist/internal/cli-ax.js +20 -5
  108. package/dist/internal/cli-deploy.d.ts.map +1 -1
  109. package/dist/internal/cli-deploy.js +38 -7
  110. package/dist/internal/deploy-client.d.ts +8 -0
  111. package/dist/internal/deploy-client.d.ts.map +1 -1
  112. package/dist/internal/deploy-client.js +5 -2
  113. package/dist/internal/discovery.d.ts.map +1 -1
  114. package/dist/internal/discovery.js +82 -13
  115. package/dist/internal/distribution.d.ts.map +1 -1
  116. package/dist/internal/distribution.js +1 -0
  117. package/dist/internal/host-otel.d.ts +25 -0
  118. package/dist/internal/host-otel.d.ts.map +1 -0
  119. package/dist/internal/host-otel.js +162 -0
  120. package/dist/internal/init-project.d.ts +24 -0
  121. package/dist/internal/init-project.d.ts.map +1 -1
  122. package/dist/internal/init-project.js +136 -17
  123. package/dist/internal/otel/attrs.d.ts +7 -0
  124. package/dist/internal/otel/attrs.d.ts.map +1 -0
  125. package/dist/internal/otel/attrs.js +13 -0
  126. package/dist/internal/otel/collector.d.ts +21 -0
  127. package/dist/internal/otel/collector.d.ts.map +1 -0
  128. package/dist/internal/otel/collector.js +605 -0
  129. package/dist/internal/otel/config.d.ts +42 -0
  130. package/dist/internal/otel/config.d.ts.map +1 -0
  131. package/dist/internal/otel/config.js +236 -0
  132. package/dist/internal/otel/http.d.ts +11 -0
  133. package/dist/internal/otel/http.d.ts.map +1 -0
  134. package/dist/internal/otel/http.js +97 -0
  135. package/dist/internal/otel/runtime.d.ts +21 -0
  136. package/dist/internal/otel/runtime.d.ts.map +1 -0
  137. package/dist/internal/otel/runtime.js +188 -0
  138. package/dist/internal/sdk-runner.d.ts +1 -1
  139. package/dist/internal/sdk-runner.d.ts.map +1 -1
  140. package/dist/internal/sdk-runner.js +1 -1
  141. package/dist/internal/server.d.ts.map +1 -1
  142. package/dist/internal/server.js +26 -1
  143. package/dist/internal/session-engine.d.ts +15 -2
  144. package/dist/internal/session-engine.d.ts.map +1 -1
  145. package/dist/internal/session-engine.js +58 -7
  146. package/dist/memory.d.ts +4 -0
  147. package/dist/memory.d.ts.map +1 -1
  148. package/dist/memory.js +4 -0
  149. package/dist/otel.d.ts +88 -0
  150. package/dist/otel.d.ts.map +1 -0
  151. package/dist/otel.js +64 -0
  152. package/dist/playground/assets/index-CZH9EFvO.css +1 -0
  153. package/dist/playground/assets/{index-B3HBneZZ.js → index-Dces8BDp.js} +34 -34
  154. package/dist/playground/index.html +2 -2
  155. package/dist/types.d.ts +103 -3
  156. package/dist/types.d.ts.map +1 -1
  157. package/docs/README.md +35 -105
  158. package/docs/deployment.md +2 -1
  159. package/docs/guides/github.md +79 -6
  160. package/docs/guides/opentelemetry.md +214 -0
  161. package/docs/quickstart.md +89 -227
  162. package/docs/reference/agent-config.md +52 -0
  163. package/docs/reference/channels.md +3 -1
  164. package/docs/reference/cli.md +2 -2
  165. package/docs/reference/hooks.md +21 -4
  166. package/docs/reference/project-layout.md +2 -0
  167. package/docs/reference/tools.md +5 -4
  168. package/docs/templates/triage.md +147 -0
  169. package/package.json +24 -2
  170. package/skills/create-agent/SKILL.md +2 -2
  171. package/skills/framework-map/SKILL.md +2 -0
  172. package/skills/otel/SKILL.md +98 -0
  173. package/src/bin/agent-serve.ts +3 -1
  174. package/src/channels/github/api.ts +22 -0
  175. package/src/channels/github/defaults.ts +27 -6
  176. package/src/channels/github/github-channel.ts +36 -1
  177. package/src/channels/github/index.ts +1 -0
  178. package/src/channels/github/progress.ts +243 -0
  179. package/src/channels/github/state.ts +3 -0
  180. package/src/channels/github/types.ts +12 -4
  181. package/src/channels/slack/slack-channel.ts +4 -0
  182. package/src/channels.ts +38 -0
  183. package/src/index.ts +7 -0
  184. package/src/internal/cli-ax.ts +21 -3
  185. package/src/internal/cli-deploy.ts +58 -3
  186. package/src/internal/deploy-client.ts +11 -0
  187. package/src/internal/discovery.ts +108 -4
  188. package/src/internal/distribution.ts +1 -0
  189. package/src/internal/host-otel.ts +252 -0
  190. package/src/internal/init-project.ts +160 -17
  191. package/src/internal/otel/attrs.ts +18 -0
  192. package/src/internal/otel/collector.ts +881 -0
  193. package/src/internal/otel/config.ts +307 -0
  194. package/src/internal/otel/http.ts +126 -0
  195. package/src/internal/otel/runtime.ts +271 -0
  196. package/src/internal/sdk-runner.ts +6 -0
  197. package/src/internal/server.ts +39 -1
  198. package/src/internal/session-engine.ts +83 -2
  199. package/src/memory.ts +4 -0
  200. package/src/otel.ts +155 -0
  201. package/src/types.ts +109 -3
  202. package/templates/triage/README.md +48 -0
  203. package/templates/triage/agent/agent.ts +14 -0
  204. package/templates/triage/agent/channels/intake.ts +20 -0
  205. package/templates/triage/agent/channels/slack.ts +3 -0
  206. package/templates/triage/agent/hooks/memory.ts +3 -0
  207. package/templates/triage/agent/instructions.md +27 -0
  208. package/templates/triage/agent/skills/triage-rubric.md +43 -0
  209. package/templates/triage/agent/tools/record_triage.ts +23 -0
  210. package/templates/triage/evals/evals.config.ts +5 -0
  211. package/templates/triage/evals/triage.eval.ts +43 -0
  212. package/templates/triage/package.json +18 -0
  213. package/templates/triage/tsconfig.json +12 -0
  214. package/dist/docs/assets/chunks/@localSearchIndexroot.BlU3A8EB.js +0 -1
  215. package/dist/docs/assets/index.md.BKpbkCa6.js +0 -24
  216. package/dist/docs/assets/index.md.BKpbkCa6.lean.js +0 -1
  217. package/dist/docs/assets/quickstart.md.rIbfahJM.lean.js +0 -1
  218. package/dist/playground/assets/index-Bqk9nplh.css +0 -1
  219. /package/dist/docs/assets/{deployment.md.BHVjVqRa.lean.js → deployment.md.Cdp4rTE4.lean.js} +0 -0
  220. /package/dist/docs/assets/{reference_channels.md.BIabFUAI.lean.js → reference_channels.md.MN8iDy8V.lean.js} +0 -0
  221. /package/dist/docs/assets/{reference_cli.md.DqEqQpGn.lean.js → reference_cli.md.BDmjPPAm.lean.js} +0 -0
  222. /package/dist/docs/assets/{reference_project-layout.md._XdeMahr.lean.js → reference_project-layout.md.D3MdHM2z.lean.js} +0 -0
  223. /package/dist/docs/assets/{reference_tools.md.lSrsTxYJ.lean.js → reference_tools.md.kJfJAP2m.lean.js} +0 -0
@@ -0,0 +1,48 @@
1
+ # Triage agent
2
+
3
+ A triage front door for your team. Send it bug reports, questions, and
4
+ feedback; it classifies each report against a rubric, judges severity,
5
+ records a structured verdict, and replies with the next step.
6
+
7
+ Scaffolded with:
8
+
9
+ ```bash
10
+ npx @cursor/july init ./my-triage-agent --template triage
11
+ ```
12
+
13
+ ## Run it
14
+
15
+ ```bash
16
+ agent-sdk login # once per machine
17
+ agent-sdk dev
18
+ ```
19
+
20
+ Open the playground URL it prints. Chat directly, or use the `/report`
21
+ slash command to submit a report the way an integration would
22
+ (`POST /v1/channels/intake/report`).
23
+
24
+ ## Wire it to Slack
25
+
26
+ The Slack channel idles until its tokens exist. Create a Slack app and
27
+ its env with:
28
+
29
+ ```bash
30
+ agent-sdk slack setup
31
+ ```
32
+
33
+ Then @mention the bot or DM it. The setup-slack skill in the
34
+ @cursor/july package has the full walkthrough.
35
+
36
+ ## Make it yours
37
+
38
+ - `agent/instructions.md` owns the flow every report follows.
39
+ - `agent/skills/triage-rubric.md` owns the kinds, the tie-breakers, and
40
+ the severity ladder. Edit this first; it is the judgment.
41
+ - `agent/tools/record_triage.ts` owns the verdict shape. Point its
42
+ `execute` at your tracker (Linear, GitHub Issues, a webhook) to file
43
+ real tickets.
44
+ - `evals/triage.eval.ts` holds three smoke cases. Run `agent-sdk eval`
45
+ after every rubric change.
46
+
47
+ The full walkthrough, from scaffold through deploy, is the triage
48
+ cookbook: run `agent-sdk docs` and open Templates, then Triage agent.
@@ -0,0 +1,14 @@
1
+ import { defineAgent } from "@cursor/july";
2
+
3
+ export default defineAgent({
4
+ model: {
5
+ id: "grok-4.5",
6
+ params: [
7
+ { id: "effort", value: "high" },
8
+ { id: "fast", value: "true" },
9
+ ],
10
+ },
11
+ local: {
12
+ sandbox: true,
13
+ },
14
+ });
@@ -0,0 +1,20 @@
1
+ import { defineChannel, POST } from "@cursor/july/channels";
2
+ import { z } from "zod";
3
+
4
+ export default defineChannel({
5
+ routes: [
6
+ POST("/report", {
7
+ description: "Submit a report for triage",
8
+ bodySchema: z.object({
9
+ message: z.string(),
10
+ reporter: z.string().optional(),
11
+ }),
12
+ handler: async (_req, { send, body }) => {
13
+ const from =
14
+ body.reporter === undefined ? "" : ` (from ${body.reporter})`;
15
+ const session = await send(`New report${from}:\n\n${body.message}`);
16
+ return Response.json({ ok: true, sessionId: session.id });
17
+ },
18
+ }),
19
+ ],
20
+ });
@@ -0,0 +1,3 @@
1
+ import { slackChannel } from "@cursor/july/channels/slack";
2
+
3
+ export default slackChannel();
@@ -0,0 +1,3 @@
1
+ import { memoryHook } from "@cursor/july/memory";
2
+
3
+ export default memoryHook();
@@ -0,0 +1,27 @@
1
+ # Triage agent
2
+
3
+ You are the triage front door for this team. People send you reports:
4
+ bug reports, questions, feedback, feature ideas. You classify each one,
5
+ judge its severity, and hand back a verdict the team can act on.
6
+
7
+ Read the `triage-rubric` skill before classifying. It defines the three
8
+ kinds and the tie-breakers.
9
+
10
+ ## Every report
11
+
12
+ 1. Read the report. If it is too thin to classify (no symptom, no
13
+ question, no opinion), ask for the missing piece once. Otherwise do
14
+ not ask; classify with what you have.
15
+ 2. If a `memory/` directory exists in your workspace, grep the journal
16
+ for similar past reports and say when one matches.
17
+ 3. Call `record_triage` exactly once with your verdict.
18
+ 4. Reply with the verdict: kind, severity, a one-line reason, and the
19
+ next step. Keep the reply under six lines. No preamble.
20
+
21
+ ## Boundaries
22
+
23
+ - You classify and route. You do not fix bugs, write code, or promise
24
+ timelines.
25
+ - When a report mixes kinds, pick the dominant one and name the split
26
+ in your reason.
27
+ - Never invent reporter details. Missing fields stay empty.
@@ -0,0 +1,43 @@
1
+ ---
2
+ description: Definitions and tie-breakers for classifying a report as bug, question, or feedback, plus the severity ladder.
3
+ ---
4
+
5
+ # Triage rubric
6
+
7
+ ## Kinds
8
+
9
+ - **bug**: something is broken, erroring, slow, or behaving wrong right
10
+ now, and the reporter wants it diagnosed or fixed. Usually has a
11
+ symptom, an error, an id, a timestamp, or steps.
12
+ - **question**: the reporter wants to know something that has an answer
13
+ (how does X work, is Y expected, who owns Z). Someone has to look it
14
+ up, not fix it.
15
+ - **feedback**: an opinion, suggestion, complaint about how something
16
+ behaves, or a feature idea. The reporter is telling the team
17
+ something, not asking it to find anything out.
18
+
19
+ ## Tie-breakers
20
+
21
+ - "This is annoying, you should change X" is feedback even when it
22
+ sounds like a complaint.
23
+ - A question about a specific failure that already happened is a bug.
24
+ "Why did my export fail yesterday?" needs an investigation, not a
25
+ lookup.
26
+ - A bug report that also suggests a fix is a bug.
27
+ - A known bug with a workaround that only works sometimes is a bug. The
28
+ unreliable workaround is the thing to explain.
29
+ - A feature idea phrased as a question ("could we have dark mode?") is
30
+ feedback.
31
+
32
+ ## Severity
33
+
34
+ - **urgent**: data loss, security exposure, or many users blocked with
35
+ no workaround.
36
+ - **high**: a core flow is broken or wrong for some users, no
37
+ reasonable workaround.
38
+ - **medium**: broken or wrong with a workaround, or a sharp edge that
39
+ costs time.
40
+ - **low**: cosmetic, minor friction, questions, and most feedback.
41
+
42
+ Questions and feedback default to low unless the report shows real
43
+ user impact.
@@ -0,0 +1,23 @@
1
+ import { defineTool } from "@cursor/july/tools";
2
+ import { z } from "zod";
3
+
4
+ export default defineTool({
5
+ description:
6
+ "Record the structured triage verdict for the current report. Call exactly once per report, before replying.",
7
+ inputSchema: z.object({
8
+ kind: z.enum(["bug", "question", "feedback"]),
9
+ severity: z.enum(["low", "medium", "high", "urgent"]),
10
+ title: z
11
+ .string()
12
+ .max(80)
13
+ .describe("Short, imperative summary of the report."),
14
+ summary: z
15
+ .string()
16
+ .describe("What the reporter said, in two sentences or less."),
17
+ nextStep: z.string().describe("The single next action for the team."),
18
+ reporter: z.string().optional().describe("Who reported it, when known."),
19
+ }),
20
+ async execute(verdict) {
21
+ return { recorded: true, at: new Date().toISOString(), verdict };
22
+ },
23
+ });
@@ -0,0 +1,5 @@
1
+ import { defineEvalConfig } from "@cursor/july/evals";
2
+
3
+ export default defineEvalConfig({
4
+ maxConcurrency: 10,
5
+ });
@@ -0,0 +1,43 @@
1
+ import { defineEval, includes } from "@cursor/july/evals";
2
+
3
+ export default defineEval({
4
+ tags: ["smoke"],
5
+ cases: [
6
+ {
7
+ id: "bug",
8
+ description: "A concrete failure is recorded as a bug.",
9
+ async test(t) {
10
+ await t.send(
11
+ "Export to CSV has failed with a 500 since this morning. Request id 41ac. Retrying does not help."
12
+ );
13
+ t.succeeded();
14
+ t.calledTool("record_triage");
15
+ t.check(t.reply, includes(/bug/i));
16
+ },
17
+ },
18
+ {
19
+ id: "question",
20
+ description: "A how-does-it-work ask is recorded as a question.",
21
+ async test(t) {
22
+ await t.send(
23
+ "How do I rotate the API keys for the staging environment?"
24
+ );
25
+ t.succeeded();
26
+ t.calledTool("record_triage");
27
+ t.check(t.reply, includes(/question/i));
28
+ },
29
+ },
30
+ {
31
+ id: "feedback",
32
+ description: "A suggestion is recorded as feedback.",
33
+ async test(t) {
34
+ await t.send(
35
+ "The onboarding wizard has too many steps. You should collapse the profile pages into one."
36
+ );
37
+ t.succeeded();
38
+ t.calledTool("record_triage");
39
+ t.check(t.reply, includes(/feedback/i));
40
+ },
41
+ },
42
+ ],
43
+ });
@@ -0,0 +1,18 @@
1
+ {
2
+ "name": "triage-agent",
3
+ "private": true,
4
+ "type": "module",
5
+ "description": "Triage agent: classifies bug reports, questions, and feedback into structured verdicts.",
6
+ "scripts": {
7
+ "check": "tsc --noEmit",
8
+ "dev": "agent-sdk dev"
9
+ },
10
+ "dependencies": {
11
+ "@cursor/july": "latest",
12
+ "zod": "^3.25.0"
13
+ },
14
+ "devDependencies": {
15
+ "@types/node": "^22.14.0",
16
+ "typescript": "^5.8.0"
17
+ }
18
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2022",
4
+ "module": "ESNext",
5
+ "moduleResolution": "bundler",
6
+ "strict": true,
7
+ "noEmit": true,
8
+ "skipLibCheck": true,
9
+ "types": ["node"]
10
+ },
11
+ "include": ["agent/**/*", "evals/**/*"]
12
+ }