@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.
Files changed (186) hide show
  1. package/dist/channels/change-monitors/change-monitors-channel.d.ts +5 -0
  2. package/dist/channels/change-monitors/change-monitors-channel.d.ts.map +1 -0
  3. package/dist/channels/change-monitors/change-monitors-channel.js +41 -0
  4. package/dist/channels/change-monitors/index.d.ts +4 -0
  5. package/dist/channels/change-monitors/index.d.ts.map +1 -0
  6. package/dist/channels/change-monitors/index.js +2 -0
  7. package/dist/channels/change-monitors/types.d.ts +39 -0
  8. package/dist/channels/change-monitors/types.d.ts.map +1 -0
  9. package/dist/channels/change-monitors/types.js +1 -0
  10. package/dist/channels/github/defaults.d.ts.map +1 -1
  11. package/dist/channels/github/defaults.js +4 -0
  12. package/dist/channels/github/progress.d.ts +22 -0
  13. package/dist/channels/github/progress.d.ts.map +1 -1
  14. package/dist/channels/github/progress.js +32 -5
  15. package/dist/channels/issues/index.d.ts +4 -0
  16. package/dist/channels/issues/index.d.ts.map +1 -0
  17. package/dist/channels/issues/index.js +2 -0
  18. package/dist/channels/issues/issues-channel.d.ts +5 -0
  19. package/dist/channels/issues/issues-channel.d.ts.map +1 -0
  20. package/dist/channels/issues/issues-channel.js +37 -0
  21. package/dist/channels/issues/types.d.ts +33 -0
  22. package/dist/channels/issues/types.d.ts.map +1 -0
  23. package/dist/channels/issues/types.js +1 -0
  24. package/dist/docs/404.html +2 -2
  25. package/dist/docs/ab.html +4 -4
  26. package/dist/docs/assets/{app.DW9pXkpL.js → app.DbMWUyGb.js} +1 -1
  27. package/dist/docs/assets/chunks/@localSearchIndexroot.Bqsulb9K.js +1 -0
  28. package/dist/docs/assets/chunks/{VPLocalSearchBox.CdEIUwDg.js → VPLocalSearchBox.DcNeTh9o.js} +1 -1
  29. package/dist/docs/assets/chunks/{theme.YZMHgPgg.js → theme.DMjhY3gl.js} +2 -2
  30. package/dist/docs/assets/{guides_github.md.DKYiT9do.js → guides_github.md.c0gdGJ-D.js} +1 -1
  31. package/dist/docs/assets/{guides_github.md.DKYiT9do.lean.js → guides_github.md.c0gdGJ-D.lean.js} +1 -1
  32. package/dist/docs/assets/{reference_channels.md.Dz8Cnudp.js → reference_channels.md.DBGcaB7m.js} +2 -2
  33. package/dist/docs/assets/{reference_channels.md.Dz8Cnudp.lean.js → reference_channels.md.DBGcaB7m.lean.js} +1 -1
  34. package/dist/docs/building-with-agents.html +4 -4
  35. package/dist/docs/concepts.html +4 -4
  36. package/dist/docs/deployment.html +4 -4
  37. package/dist/docs/design/filesystem.md +376 -0
  38. package/dist/docs/evals.html +4 -4
  39. package/dist/docs/guides/agent-to-agent.html +4 -4
  40. package/dist/docs/guides/cloud-agents.html +4 -4
  41. package/dist/docs/guides/convert-automation.html +4 -4
  42. package/dist/docs/guides/github.html +6 -6
  43. package/dist/docs/guides/github.md +5 -0
  44. package/dist/docs/guides/human-in-the-loop.html +4 -4
  45. package/dist/docs/guides/mcp-oauth.html +4 -4
  46. package/dist/docs/guides/opentelemetry.html +4 -4
  47. package/dist/docs/guides/slack.html +4 -4
  48. package/dist/docs/guides/webhooks.html +4 -4
  49. package/dist/docs/hashmap.json +1 -1
  50. package/dist/docs/hillclimbing.html +4 -4
  51. package/dist/docs/index.html +4 -4
  52. package/dist/docs/llms-full.txt +406 -0
  53. package/dist/docs/llms.txt +1 -0
  54. package/dist/docs/quickstart.html +4 -4
  55. package/dist/docs/reference/agent-config.html +4 -4
  56. package/dist/docs/reference/artifacts.html +4 -4
  57. package/dist/docs/reference/channels.html +6 -6
  58. package/dist/docs/reference/channels.md +20 -0
  59. package/dist/docs/reference/cli.html +4 -4
  60. package/dist/docs/reference/connections.html +4 -4
  61. package/dist/docs/reference/extensions.html +4 -4
  62. package/dist/docs/reference/hooks.html +4 -4
  63. package/dist/docs/reference/http-api.html +4 -4
  64. package/dist/docs/reference/instructions.html +4 -4
  65. package/dist/docs/reference/playground.html +4 -4
  66. package/dist/docs/reference/project-layout.html +4 -4
  67. package/dist/docs/reference/prompt.html +4 -4
  68. package/dist/docs/reference/result.html +4 -4
  69. package/dist/docs/reference/schedules.html +4 -4
  70. package/dist/docs/reference/sessions.html +4 -4
  71. package/dist/docs/reference/skills.html +4 -4
  72. package/dist/docs/reference/subagents.html +4 -4
  73. package/dist/docs/reference/tools.html +4 -4
  74. package/dist/docs/scaffolding-agents.html +4 -4
  75. package/dist/docs/skills/ab.html +4 -4
  76. package/dist/docs/skills/create-agent.html +4 -4
  77. package/dist/docs/skills/debug.html +4 -4
  78. package/dist/docs/skills/evals.html +4 -4
  79. package/dist/docs/skills/framework-map.html +4 -4
  80. package/dist/docs/skills/github.html +4 -4
  81. package/dist/docs/skills/hillclimb.html +4 -4
  82. package/dist/docs/skills/index.html +4 -4
  83. package/dist/docs/skills/mcp-auth.html +4 -4
  84. package/dist/docs/skills/otel.html +4 -4
  85. package/dist/docs/skills/setup-slack.html +4 -4
  86. package/dist/docs/storage.html +4 -4
  87. package/dist/docs/templates/agentic-owners.html +4 -4
  88. package/dist/docs/templates/agents-md.html +4 -4
  89. package/dist/docs/templates/code-wiki.html +4 -4
  90. package/dist/docs/templates/demo.html +4 -4
  91. package/dist/docs/templates/pr-autofixer.html +4 -4
  92. package/dist/docs/templates/security-help.html +4 -4
  93. package/dist/docs/templates/security-reviewer.html +4 -4
  94. package/dist/docs/templates/triage.html +4 -4
  95. package/dist/docs/troubleshooting.html +4 -4
  96. package/dist/filesystem.d.ts +440 -0
  97. package/dist/filesystem.d.ts.map +1 -0
  98. package/dist/filesystem.js +1694 -0
  99. package/dist/index.d.ts +2 -0
  100. package/dist/index.d.ts.map +1 -1
  101. package/dist/index.js +1 -0
  102. package/dist/internal/continuation-channel.d.ts +4 -2
  103. package/dist/internal/continuation-channel.d.ts.map +1 -1
  104. package/dist/internal/continuation-channel.js +21 -12
  105. package/dist/internal/continuation-identity.d.ts +13 -5
  106. package/dist/internal/continuation-identity.d.ts.map +1 -1
  107. package/dist/internal/continuation-identity.js +74 -35
  108. package/dist/internal/discovery/agent.d.ts.map +1 -1
  109. package/dist/internal/discovery/agent.js +80 -8
  110. package/dist/internal/discovery/info.d.ts.map +1 -1
  111. package/dist/internal/discovery/info.js +3 -0
  112. package/dist/internal/factory-resource-channel.d.ts +33 -0
  113. package/dist/internal/factory-resource-channel.d.ts.map +1 -0
  114. package/dist/internal/factory-resource-channel.js +77 -0
  115. package/dist/internal/filesystem/errors.d.ts +64 -0
  116. package/dist/internal/filesystem/errors.d.ts.map +1 -0
  117. package/dist/internal/filesystem/errors.js +175 -0
  118. package/dist/internal/filesystem/format.d.ts +28 -0
  119. package/dist/internal/filesystem/format.d.ts.map +1 -0
  120. package/dist/internal/filesystem/format.js +213 -0
  121. package/dist/internal/filesystem/merge.d.ts +34 -0
  122. package/dist/internal/filesystem/merge.d.ts.map +1 -0
  123. package/dist/internal/filesystem/merge.js +196 -0
  124. package/dist/internal/filesystem/scratch.d.ts +59 -0
  125. package/dist/internal/filesystem/scratch.d.ts.map +1 -0
  126. package/dist/internal/filesystem/scratch.js +212 -0
  127. package/dist/internal/filesystem/sdk-schemas.d.ts +29 -0
  128. package/dist/internal/filesystem/sdk-schemas.d.ts.map +1 -0
  129. package/dist/internal/filesystem/sdk-schemas.js +153 -0
  130. package/dist/internal/filesystem/tools.d.ts +42 -0
  131. package/dist/internal/filesystem/tools.d.ts.map +1 -0
  132. package/dist/internal/filesystem/tools.js +618 -0
  133. package/dist/internal/filesystem/walk.d.ts +74 -0
  134. package/dist/internal/filesystem/walk.d.ts.map +1 -0
  135. package/dist/internal/filesystem/walk.js +339 -0
  136. package/dist/internal/guest-network.d.ts +5 -2
  137. package/dist/internal/guest-network.d.ts.map +1 -1
  138. package/dist/internal/guest-network.js +7 -2
  139. package/dist/internal/hosted-delivery.d.ts.map +1 -1
  140. package/dist/internal/hosted-delivery.js +12 -2
  141. package/dist/internal/sdk-runner.d.ts +1 -1
  142. package/dist/internal/sdk-runner.d.ts.map +1 -1
  143. package/dist/internal/sdk-runner.js +3 -1
  144. package/dist/internal/session-engine.d.ts +22 -0
  145. package/dist/internal/session-engine.d.ts.map +1 -1
  146. package/dist/internal/session-engine.js +362 -40
  147. package/dist/internal/testing/factory-resource-fixtures.d.ts +48 -0
  148. package/dist/internal/testing/factory-resource-fixtures.d.ts.map +1 -0
  149. package/dist/internal/testing/factory-resource-fixtures.js +41 -0
  150. package/dist/playground/assets/{index-59KvgREd.js → index-8YiozU89.js} +38 -38
  151. package/dist/playground/index.html +1 -1
  152. package/dist/types.d.ts +51 -3
  153. package/dist/types.d.ts.map +1 -1
  154. package/docs/design/filesystem.md +376 -0
  155. package/docs/guides/github.md +5 -0
  156. package/docs/reference/channels.md +20 -0
  157. package/package.json +16 -2
  158. package/src/channels/change-monitors/change-monitors-channel.ts +62 -0
  159. package/src/channels/change-monitors/index.ts +8 -0
  160. package/src/channels/change-monitors/types.ts +44 -0
  161. package/src/channels/github/defaults.ts +4 -0
  162. package/src/channels/github/progress.ts +76 -10
  163. package/src/channels/issues/index.ts +9 -0
  164. package/src/channels/issues/issues-channel.ts +51 -0
  165. package/src/channels/issues/types.ts +41 -0
  166. package/src/filesystem.ts +2074 -0
  167. package/src/index.ts +28 -0
  168. package/src/internal/continuation-channel.ts +29 -12
  169. package/src/internal/continuation-identity.ts +122 -37
  170. package/src/internal/discovery/agent.ts +87 -1
  171. package/src/internal/discovery/info.ts +3 -0
  172. package/src/internal/factory-resource-channel.ts +122 -0
  173. package/src/internal/filesystem/errors.ts +220 -0
  174. package/src/internal/filesystem/format.ts +276 -0
  175. package/src/internal/filesystem/merge.ts +195 -0
  176. package/src/internal/filesystem/scratch.ts +255 -0
  177. package/src/internal/filesystem/sdk-schemas.ts +204 -0
  178. package/src/internal/filesystem/tools.ts +821 -0
  179. package/src/internal/filesystem/walk.ts +369 -0
  180. package/src/internal/guest-network.ts +8 -2
  181. package/src/internal/hosted-delivery.ts +18 -1
  182. package/src/internal/sdk-runner.ts +4 -0
  183. package/src/internal/session-engine.ts +439 -29
  184. package/src/internal/testing/factory-resource-fixtures.ts +85 -0
  185. package/src/types.ts +49 -3
  186. package/dist/docs/assets/chunks/@localSearchIndexroot.nrl1ifBq.js +0 -1
package/dist/index.d.ts CHANGED
@@ -19,6 +19,8 @@ export { defineArtifacts } from "./artifacts.js";
19
19
  export { allowAll, bearerAuth, DELETE, defineChannel, GET, httpChannel, localDev, localDevStrict, loopbackGitHubDev, loopbackOnly, PATCH, POST, PUT, publicEndpoint, } from "./channels.js";
20
20
  export { defineConnection } from "./connections.js";
21
21
  export { cursorPlugin, defineExtension, disable, disableAB, disableArtifacts, disableChannel, disableConnection, disableHook, disableInstructions, disableSchedule, disableSkill, disableSubagent, disableTool, } from "./extensions.js";
22
+ export type { DirEntry, EditQuery, EditResult, FileInfo, FileSystem, GrepQuery, GrepResult, SearchQuery, SearchResult, } from "./filesystem.js";
23
+ export { DeleteNotSupportedError, EditError, emptyFs, FileNotFoundError, hostFs, InvalidGrepPatternError, isFileNotFoundError, NoMountError, overlayFs, PathError, ReadOnlyMountError, strReplaceOnFileSystem, tempFs, unionFs, WriteFailedError, } from "./filesystem.js";
22
24
  export { defineHook } from "./hooks.js";
23
25
  export { InvalidAsOfError, VacuousTimeArgsError, } from "./internal/as-of.js";
24
26
  export type { ContinuationBuiltin, ContinuationClaim, ContinuationIdentity, ContinuationSelector, ConversationType, MailboxContinuation, ParsedContinuation, } from "./internal/continuation-identity.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -43,6 +43,7 @@ export { defineArtifacts } from "./artifacts.js";
43
43
  export { allowAll, bearerAuth, DELETE, defineChannel, GET, httpChannel, localDev, localDevStrict, loopbackGitHubDev, loopbackOnly, PATCH, POST, PUT, publicEndpoint, } from "./channels.js";
44
44
  export { defineConnection } from "./connections.js";
45
45
  export { cursorPlugin, defineExtension, disable, disableAB, disableArtifacts, disableChannel, disableConnection, disableHook, disableInstructions, disableSchedule, disableSkill, disableSubagent, disableTool, } from "./extensions.js";
46
+ export { DeleteNotSupportedError, EditError, emptyFs, FileNotFoundError, hostFs, InvalidGrepPatternError, isFileNotFoundError, NoMountError, overlayFs, PathError, ReadOnlyMountError, strReplaceOnFileSystem, tempFs, unionFs, WriteFailedError, } from "./filesystem.js";
46
47
  export { defineHook } from "./hooks.js";
47
48
  export { InvalidAsOfError, VacuousTimeArgsError, } from "./internal/as-of.js";
48
49
  export { formatDiagnostics, hasErrorDiagnostics, isAgentProjectDir, loadAgentProject, loadAgentProjects, projectInfo, resolveAgentMounts, } from "./internal/discovery.js";
@@ -6,8 +6,10 @@ export declare function httpContinuationIdentity(httpChannel: HttpChannelDefinit
6
6
  * Stamp `/v2` continuation defaults onto channel constructors that omitted
7
7
  * `continuation` when the agent deploys onto v2 architecture. GitHub/Origin
8
8
  * type (`pr` / `issue` / `none`) follows declared webhook events.
9
- * Deployments default to `deployments.deployment/v2`. Explicit per-channel
10
- * selectors are left alone. Idempotent.
9
+ * Deployments default to `deployments.deployment/v2`. Change Monitors
10
+ * and issues default to `change_monitors.checkpoint/v2` and
11
+ * `issues.issue/v2`.
12
+ * Explicit per-channel selectors are left alone. Idempotent.
11
13
  */
12
14
  export declare function applyAgentContinuationDefaults(project: {
13
15
  agent: {
@@ -1 +1 @@
1
- {"version":3,"file":"continuation-channel.d.ts","sourceRoot":"","sources":["../../src/internal/continuation-channel.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,qBAAqB,EACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,KAAK,oBAAoB,EAM1B,MAAM,4BAA4B,CAAC;AA2CpC,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,MAAM,GAAG,SAAS,GAC7B,oBAAoB,CAWtB;AAED,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,qBAAqB,GAAG,SAAS,GAC7C,oBAAoB,CAEtB;AAED;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE;IACtD,KAAK,EAAE;QAAE,YAAY,CAAC,EAAE,iBAAiB,CAAA;KAAE,CAAC;IAC5C,QAAQ,EAAE,aAAa,CAAC;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChD,WAAW,EAAE,qBAAqB,CAAC;CACpC,GAAG,IAAI,CAaP;AAED;;;;;GAKG;AACH,wBAAgB,iCAAiC,CAAC,KAAK,EAAE;IACvD,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,QAAQ,EAAE,aAAa,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5D,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C,GAAG,IAAI,CA6BP;AAkDD,iFAAiF;AACjF,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,WAAW,GAAG,SAAS,GAC5B,SAAS,MAAM,EAAE,GAAG,SAAS,CAQ/B;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE;IAClD,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,iBAAiB,CAAC;CAC/B,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAY9C"}
1
+ {"version":3,"file":"continuation-channel.d.ts","sourceRoot":"","sources":["../../src/internal/continuation-channel.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,qBAAqB,EACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,KAAK,oBAAoB,EAO1B,MAAM,4BAA4B,CAAC;AA6DpC,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,MAAM,GAAG,SAAS,GAC7B,oBAAoB,CAWtB;AAED,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,qBAAqB,GAAG,SAAS,GAC7C,oBAAoB,CAEtB;AAED;;;;;;;;GAQG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE;IACtD,KAAK,EAAE;QAAE,YAAY,CAAC,EAAE,iBAAiB,CAAA;KAAE,CAAC;IAC5C,QAAQ,EAAE,aAAa,CAAC;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChD,WAAW,EAAE,qBAAqB,CAAC;CACpC,GAAG,IAAI,CAaP;AAED;;;;;GAKG;AACH,wBAAgB,iCAAiC,CAAC,KAAK,EAAE;IACvD,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,QAAQ,EAAE,aAAa,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5D,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C,GAAG,IAAI,CA6BP;AA2CD,iFAAiF;AACjF,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,WAAW,GAAG,SAAS,GAC5B,SAAS,MAAM,EAAE,GAAG,SAAS,CAS/B;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE;IAClD,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,iBAAiB,CAAC;CAC/B,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAY9C"}
@@ -1,10 +1,12 @@
1
1
  import { getBitbucketChannelOptions } from "../channels/bitbucket/bitbucket-channel.js";
2
+ import { getChangeMonitorsChannelOptions } from "../channels/change-monitors/change-monitors-channel.js";
2
3
  import { getDeploymentsChannelOptions } from "../channels/deployments/deployments-channel.js";
3
4
  import { getGitHubChannelOptions } from "../channels/github/github-channel.js";
4
5
  import { getGitLabChannelOptions } from "../channels/gitlab/gitlab-channel.js";
6
+ import { getIssuesChannelOptions } from "../channels/issues/issues-channel.js";
5
7
  import { getOriginChannelOptions } from "../channels/origin/origin-channel.js";
6
8
  import { getSlackChannelOptions } from "../channels/slack/slack-channel.js";
7
- import { defaultContinuationSelector, handshakeContinuation, normalizeIdentity, omittedV2MembershipDowngrade, } from "./continuation-identity.js";
9
+ import { defaultContinuationSelector, handshakeContinuation, normalizeIdentity, omittedV2MembershipDowngrade, omittedV2TypedType, } from "./continuation-identity.js";
8
10
  const CONTINUATION_CHANNEL_PACKS = [
9
11
  {
10
12
  kind: "gitlab",
@@ -36,6 +38,16 @@ const CONTINUATION_CHANNEL_PACKS = [
36
38
  getOptions: getDeploymentsChannelOptions,
37
39
  usesDeclaredEvents: true,
38
40
  },
41
+ {
42
+ kind: "change_monitors",
43
+ getOptions: getChangeMonitorsChannelOptions,
44
+ usesDeclaredEvents: true,
45
+ },
46
+ {
47
+ kind: "issues",
48
+ getOptions: getIssuesChannelOptions,
49
+ usesDeclaredEvents: true,
50
+ },
39
51
  ];
40
52
  export function channelContinuationIdentity(definition) {
41
53
  if (definition === undefined) {
@@ -56,8 +68,10 @@ export function httpContinuationIdentity(httpChannel) {
56
68
  * Stamp `/v2` continuation defaults onto channel constructors that omitted
57
69
  * `continuation` when the agent deploys onto v2 architecture. GitHub/Origin
58
70
  * type (`pr` / `issue` / `none`) follows declared webhook events.
59
- * Deployments default to `deployments.deployment/v2`. Explicit per-channel
60
- * selectors are left alone. Idempotent.
71
+ * Deployments default to `deployments.deployment/v2`. Change Monitors
72
+ * and issues default to `change_monitors.checkpoint/v2` and
73
+ * `issues.issue/v2`.
74
+ * Explicit per-channel selectors are left alone. Idempotent.
61
75
  */
62
76
  export function applyAgentContinuationDefaults(project) {
63
77
  if (project.agent.architecture !== "v2") {
@@ -99,13 +113,8 @@ export function warnOmittedContinuationDowngrades(input) {
99
113
  }
100
114
  }
101
115
  function omittedContinuationDowngradeMessage(kind, downgrade) {
102
- const membership = kind === "github"
103
- ? "pr"
104
- : kind === "origin"
105
- ? "origin-pr"
106
- : kind === "deployments"
107
- ? "deployment"
108
- : kind;
116
+ var _a;
117
+ const membership = (_a = omittedV2TypedType(kind)) !== null && _a !== void 0 ? _a : kind;
109
118
  return (`omitted continuation stamped ${downgrade.selector} because ` +
110
119
  `${downgrade.unexpected.join(", ")} ${downgrade.unexpected.length === 1 ? "is" : "are"} not in the ${membership} membership; every delivery on this ` +
111
120
  `channel starts a fresh session. Pin continuation: "${downgrade.selector}" ` +
@@ -126,8 +135,8 @@ function stampOmittedChannelContinuation(definition, version) {
126
135
  }
127
136
  /** Kind-specific event lists on `ChannelMeta`; a definition sets at most one. */
128
137
  export function channelDeclaredEventTypes(meta) {
129
- var _a, _b, _c, _d;
130
- return ((_d = (_c = (_b = (_a = meta === null || meta === void 0 ? void 0 : meta.githubWebhookEvents) !== null && _a !== void 0 ? _a : meta === null || meta === void 0 ? void 0 : meta.originWebhookEvents) !== null && _b !== void 0 ? _b : meta === null || meta === void 0 ? void 0 : meta.gitlabWebhookEvents) !== null && _c !== void 0 ? _c : meta === null || meta === void 0 ? void 0 : meta.bitbucketWebhookEvents) !== null && _d !== void 0 ? _d : meta === null || meta === void 0 ? void 0 : meta.deploymentEventTypes);
138
+ var _a, _b, _c, _d, _e;
139
+ return ((_e = (_d = (_c = (_b = (_a = meta === null || meta === void 0 ? void 0 : meta.githubWebhookEvents) !== null && _a !== void 0 ? _a : meta === null || meta === void 0 ? void 0 : meta.originWebhookEvents) !== null && _b !== void 0 ? _b : meta === null || meta === void 0 ? void 0 : meta.gitlabWebhookEvents) !== null && _c !== void 0 ? _c : meta === null || meta === void 0 ? void 0 : meta.bitbucketWebhookEvents) !== null && _d !== void 0 ? _d : meta === null || meta === void 0 ? void 0 : meta.deploymentEventTypes) !== null && _e !== void 0 ? _e : meta === null || meta === void 0 ? void 0 : meta.factoryEventTypes);
131
140
  }
132
141
  export function handshakeChannelContinuation(input) {
133
142
  var _a;
@@ -3,20 +3,22 @@
3
3
  * on a channel constructor stays `/v1` (engine pack minting) so existing
4
4
  * agents do not change: `githubChannel()` → `github.pr/v1`, `slackChannel()`
5
5
  * → `slack.thread/v1`, `originChannel()` → `origin.pr/v1`,
6
- * `deploymentsChannel()` → `deployments.none/v1`, `httpChannel()`
6
+ * `deploymentsChannel()` → `deployments.none/v1`, `changeMonitorsChannel()`
7
+ * → `none/v1`, `issuesChannel()` → `none/v1`, `httpChannel()` →
7
8
  * `none/v1`.
8
9
  *
9
10
  * Opt the whole agent into the v2 control plane with
10
11
  * `defineAgent({ architecture: "v2" })`. That stamps `/v2` defaults from
11
12
  * the channel kind and declared events (`github.pr/v2`, `github.issue/v2`,
12
13
  * `github.none/v2`, `slack.thread/v2`, `origin.pr/v2`,
13
- * `deployments.deployment/v2`, …) onto every channel that omitted a
14
+ * `deployments.deployment/v2`, `change_monitors.checkpoint/v2`,
15
+ * `issues.issue/v2`, …) onto every channel that omitted a
14
16
  * selector. An explicit per-channel selector still overrides. JSONPath
15
17
  * and per-agent format strings are rejected.
16
18
  */
17
- export type ConversationType = "pr" | "issue" | "thread" | "origin-pr" | "gitlab-mr" | "bitbucket-pr" | "deployment";
18
- export type ContinuationKind = "github" | "slack" | "origin" | "gitlab" | "bitbucket" | "deployments" | "http";
19
- export declare const CONTINUATION_SELECTORS: readonly ["github.pr/v1", "github.pr/v2", "github.issue/v1", "github.issue/v2", "github.none/v2", "slack.thread/v1", "slack.thread/v2", "slack.none/v2", "origin.pr/v1", "origin.pr/v2", "origin.none/v2", "gitlab.mr/v2", "gitlab.none/v2", "bitbucket.pr/v2", "bitbucket.none/v2", "deployments.none/v1", "deployments.none/v2", "deployments.deployment/v2", "none/v1", "none/v2"];
19
+ export type ConversationType = "pr" | "issue" | "thread" | "origin-pr" | "gitlab-mr" | "bitbucket-pr" | "deployment" | "change-monitor-checkpoint" | "factory-issue";
20
+ export type ContinuationKind = "github" | "slack" | "origin" | "gitlab" | "bitbucket" | "deployments" | "change_monitors" | "issues" | "http";
21
+ export declare const CONTINUATION_SELECTORS: readonly ["github.pr/v1", "github.pr/v2", "github.issue/v1", "github.issue/v2", "github.none/v2", "slack.thread/v1", "slack.thread/v2", "slack.none/v2", "origin.pr/v1", "origin.pr/v2", "origin.none/v2", "gitlab.mr/v2", "gitlab.none/v2", "bitbucket.pr/v2", "bitbucket.none/v2", "deployments.none/v1", "deployments.none/v2", "deployments.deployment/v2", "change_monitors.checkpoint/v2", "issues.issue/v2", "none/v1", "none/v2"];
20
22
  export type ContinuationSelector = (typeof CONTINUATION_SELECTORS)[number];
21
23
  export type ContinuationIdentity = ContinuationSelector;
22
24
  /** Agent-root protocol version. Omit / `"v1"` keeps engine minting. */
@@ -41,6 +43,10 @@ export type ContinuationClaim = {
41
43
  number: number;
42
44
  } | {
43
45
  deploymentId: string;
46
+ } | {
47
+ checkpointName: string;
48
+ } | {
49
+ issueName: string;
44
50
  };
45
51
  };
46
52
  export type MailboxContinuation = {
@@ -57,6 +63,8 @@ export declare class V2EngineError extends Error {
57
63
  constructor(message: string);
58
64
  }
59
65
  export declare function defaultContinuationSelector(kind?: string, version?: ContinuationProtocolVersion, eventTypes?: readonly string[]): ContinuationSelector;
66
+ /** Typed membership used when an omitted `/v2` selector becomes type `none`. */
67
+ export declare function omittedV2TypedType(kind: string): ConversationType | undefined;
60
68
  /**
61
69
  * Omitted `/v2` default became type `none` because a declared event sits
62
70
  * outside the kind's typed membership. Validate warns; handshake stays
@@ -1 +1 @@
1
- {"version":3,"file":"continuation-identity.d.ts","sourceRoot":"","sources":["../../src/internal/continuation-identity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"continuation-identity.d.ts","sourceRoot":"","sources":["../../src/internal/continuation-identity.ts"],"names":[],"mappings":"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"}
@@ -3,14 +3,16 @@
3
3
  * on a channel constructor stays `/v1` (engine pack minting) so existing
4
4
  * agents do not change: `githubChannel()` → `github.pr/v1`, `slackChannel()`
5
5
  * → `slack.thread/v1`, `originChannel()` → `origin.pr/v1`,
6
- * `deploymentsChannel()` → `deployments.none/v1`, `httpChannel()`
6
+ * `deploymentsChannel()` → `deployments.none/v1`, `changeMonitorsChannel()`
7
+ * → `none/v1`, `issuesChannel()` → `none/v1`, `httpChannel()` →
7
8
  * `none/v1`.
8
9
  *
9
10
  * Opt the whole agent into the v2 control plane with
10
11
  * `defineAgent({ architecture: "v2" })`. That stamps `/v2` defaults from
11
12
  * the channel kind and declared events (`github.pr/v2`, `github.issue/v2`,
12
13
  * `github.none/v2`, `slack.thread/v2`, `origin.pr/v2`,
13
- * `deployments.deployment/v2`, …) onto every channel that omitted a
14
+ * `deployments.deployment/v2`, `change_monitors.checkpoint/v2`,
15
+ * `issues.issue/v2`, …) onto every channel that omitted a
14
16
  * selector. An explicit per-channel selector still overrides. JSONPath
15
17
  * and per-agent format strings are rejected.
16
18
  */
@@ -34,6 +36,8 @@ export const CONTINUATION_SELECTORS = [
34
36
  "deployments.none/v1",
35
37
  "deployments.none/v2",
36
38
  "deployments.deployment/v2",
39
+ "change_monitors.checkpoint/v2",
40
+ "issues.issue/v2",
37
41
  "none/v1",
38
42
  "none/v2",
39
43
  ];
@@ -114,6 +118,18 @@ export const BUILTINS = [
114
118
  events: ["deployment.created", "deployment.succeeded", "deployment.failed"],
115
119
  format: "deployments:{deploymentId}",
116
120
  },
121
+ {
122
+ type: "change-monitor-checkpoint",
123
+ kind: "change_monitors",
124
+ events: ["checkpoint.created"],
125
+ format: "change_monitors:{checkpointName}",
126
+ },
127
+ {
128
+ type: "factory-issue",
129
+ kind: "issues",
130
+ events: ["issue.created"],
131
+ format: "issues:{issueName}",
132
+ },
117
133
  ];
118
134
  export class V2EngineError extends Error {
119
135
  constructor(message) {
@@ -144,6 +160,16 @@ const SELECTOR_FIELDS = {
144
160
  type: "deployment",
145
161
  kind: "deployments",
146
162
  },
163
+ "change_monitors.checkpoint/v2": {
164
+ version: 2,
165
+ type: "change-monitor-checkpoint",
166
+ kind: "change_monitors",
167
+ },
168
+ "issues.issue/v2": {
169
+ version: 2,
170
+ type: "factory-issue",
171
+ kind: "issues",
172
+ },
147
173
  "none/v1": { version: 1, type: "none", kind: "http" },
148
174
  "none/v2": { version: 2, type: "none", kind: "http" },
149
175
  };
@@ -171,13 +197,17 @@ export function defaultContinuationSelector(kind, version = "v1", eventTypes) {
171
197
  case "slack":
172
198
  return "slack.thread/v2";
173
199
  case "origin":
174
- return originV2Default(eventTypes);
200
+ return membershipOrNone(eventTypes, "origin-pr", "origin.pr/v2", "origin.none/v2");
175
201
  case "gitlab":
176
202
  return membershipOrNone(eventTypes, "gitlab-mr", "gitlab.mr/v2", "gitlab.none/v2");
177
203
  case "bitbucket":
178
204
  return membershipOrNone(eventTypes, "bitbucket-pr", "bitbucket.pr/v2", "bitbucket.none/v2");
179
205
  case "deployments":
180
- return deploymentsV2Default(eventTypes);
206
+ return membershipOrNone(eventTypes, "deployment", "deployments.deployment/v2", "deployments.none/v2");
207
+ case "change_monitors":
208
+ return membershipOrNone(eventTypes, "change-monitor-checkpoint", "change_monitors.checkpoint/v2", "none/v2");
209
+ case "issues":
210
+ return membershipOrNone(eventTypes, "factory-issue", "issues.issue/v2", "none/v2");
181
211
  default:
182
212
  return "none/v2";
183
213
  }
@@ -206,15 +236,16 @@ function githubV2Default(eventTypes) {
206
236
  }
207
237
  return "github.pr/v2";
208
238
  }
209
- function originV2Default(eventTypes) {
210
- var _a;
211
- var _b;
212
- const events = eventTypes !== null && eventTypes !== void 0 ? eventTypes : [];
213
- const prEvents = new Set((_b = (_a = builtinForType("origin-pr")) === null || _a === void 0 ? void 0 : _a.events) !== null && _b !== void 0 ? _b : []);
214
- if (events.some((event) => !prEvents.has(event))) {
215
- return "origin.none/v2";
216
- }
217
- return "origin.pr/v2";
239
+ const OMITTED_V2_TYPED_TYPE = {
240
+ github: "pr",
241
+ origin: "origin-pr",
242
+ deployments: "deployment",
243
+ change_monitors: "change-monitor-checkpoint",
244
+ issues: "factory-issue",
245
+ };
246
+ /** Typed membership used when an omitted `/v2` selector becomes type `none`. */
247
+ export function omittedV2TypedType(kind) {
248
+ return OMITTED_V2_TYPED_TYPE[kind];
218
249
  }
219
250
  /**
220
251
  * Omitted `/v2` default became type `none` because a declared event sits
@@ -231,13 +262,8 @@ export function omittedV2MembershipDowngrade(kind, eventTypes) {
231
262
  if (parsed === undefined || parsed.type !== "none") {
232
263
  return undefined;
233
264
  }
234
- const typed = kind === "github"
235
- ? builtinForType("pr")
236
- : kind === "origin"
237
- ? builtinForType("origin-pr")
238
- : kind === "deployments"
239
- ? builtinForType("deployment")
240
- : undefined;
265
+ const typedType = omittedV2TypedType(kind);
266
+ const typed = typedType === undefined ? undefined : builtinForType(typedType);
241
267
  if (typed === undefined) {
242
268
  return undefined;
243
269
  }
@@ -248,16 +274,6 @@ export function omittedV2MembershipDowngrade(kind, eventTypes) {
248
274
  }
249
275
  return { selector, unexpected };
250
276
  }
251
- function deploymentsV2Default(eventTypes) {
252
- var _a;
253
- var _b;
254
- const events = eventTypes !== null && eventTypes !== void 0 ? eventTypes : [];
255
- const deploymentEvents = new Set((_b = (_a = builtinForType("deployment")) === null || _a === void 0 ? void 0 : _a.events) !== null && _b !== void 0 ? _b : []);
256
- if (events.some((event) => !deploymentEvents.has(event))) {
257
- return "deployments.none/v2";
258
- }
259
- return "deployments.deployment/v2";
260
- }
261
277
  export function parseContinuationSelector(selector) {
262
278
  if (!isContinuationSelector(selector)) {
263
279
  return undefined;
@@ -305,6 +321,10 @@ function formatConversationKey(type, fields) {
305
321
  return `${fields.channelId}:${fields.threadTs}`;
306
322
  case "deployment":
307
323
  return `deployments:${fields.deploymentId}`;
324
+ case "change-monitor-checkpoint":
325
+ return `change_monitors:${fields.checkpointName}`;
326
+ case "factory-issue":
327
+ return `issues:${fields.issueName}`;
308
328
  }
309
329
  }
310
330
  export function mintClaim(claim) {
@@ -323,6 +343,20 @@ export function mintClaim(claim) {
323
343
  }
324
344
  return `cont:${formatConversationKey("deployment", resource)}`;
325
345
  }
346
+ case "change-monitor-checkpoint": {
347
+ const resource = claim.resource;
348
+ if (!("checkpointName" in resource)) {
349
+ throw new V2EngineError("v2: change-monitor-checkpoint claim requires checkpointName");
350
+ }
351
+ return `cont:${formatConversationKey("change-monitor-checkpoint", resource)}`;
352
+ }
353
+ case "factory-issue": {
354
+ const resource = claim.resource;
355
+ if (!("issueName" in resource)) {
356
+ throw new V2EngineError("v2: factory-issue claim requires issueName");
357
+ }
358
+ return `cont:${formatConversationKey("factory-issue", resource)}`;
359
+ }
326
360
  case "pr":
327
361
  case "issue":
328
362
  case "origin-pr":
@@ -418,7 +452,11 @@ export function extractContinuation(type, eventName, payload) {
418
452
  case "bitbucket-pr":
419
453
  return extractBitbucket(payload);
420
454
  case "deployment":
421
- return extractDeployment(payload);
455
+ return extractNamedResource("deployment", "deploymentId", payload);
456
+ case "change-monitor-checkpoint":
457
+ return extractNamedResource("change-monitor-checkpoint", "checkpointName", payload, "checkpoint");
458
+ case "factory-issue":
459
+ return extractNamedResource("factory-issue", "issueName", payload, "issue");
422
460
  }
423
461
  }
424
462
  /**
@@ -650,13 +688,14 @@ function bitbucketFullName(repository) {
650
688
  }
651
689
  return `${projectKey}/${slug}`.toLowerCase();
652
690
  }
653
- function extractDeployment(payload) {
691
+ function extractNamedResource(type, field, payload, wrapper) {
654
692
  const record = asRecord(payload);
655
- const deploymentId = nonEmpty(record === null || record === void 0 ? void 0 : record.deploymentId);
656
- if (deploymentId === undefined) {
693
+ const source = wrapper === undefined ? record : asRecord(record === null || record === void 0 ? void 0 : record[wrapper]);
694
+ const value = nonEmpty(source === null || source === void 0 ? void 0 : source[wrapper === undefined ? field : "name"]);
695
+ if (value === undefined) {
657
696
  return undefined;
658
697
  }
659
- return `cont:${formatConversationKey("deployment", { deploymentId })}`;
698
+ return `cont:${formatConversationKey(type, { [field]: value })}`;
660
699
  }
661
700
  function githubFullName(payload) {
662
701
  var _a;
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/internal/discovery/agent.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAOL,KAAK,aAAa,EACnB,MAAM,gBAAgB,CAAC;AAaxB,OAAO,EAAE,KAAK,gBAAgB,EAAe,MAAM,cAAc,CAAC;AAClE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAc9D,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,aAAa,CAAC;IACrB,YAAY,EAAE,IAAI,CAChB,sBAAsB,EACtB,OAAO,GAAG,UAAU,GAAG,WAAW,GAAG,KAAK,GAAG,WAAW,CACzD,CAAC;CACH;AAED,wBAAsB,SAAS,CAC7B,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GACzC,OAAO,CAAC,eAAe,CAAC,CA0N1B;AAED,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CA0Cf"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/internal/discovery/agent.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,OAAO,EAOL,KAAK,aAAa,EACnB,MAAM,gBAAgB,CAAC;AAcxB,OAAO,EAAE,KAAK,gBAAgB,EAAe,MAAM,cAAc,CAAC;AAClE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAc9D,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,aAAa,CAAC;IACrB,YAAY,EAAE,IAAI,CAChB,sBAAsB,EACtB,OAAO,GAAG,UAAU,GAAG,WAAW,GAAG,KAAK,GAAG,WAAW,CACzD,CAAC;CACH;AAED,wBAAsB,SAAS,CAC7B,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GACzC,OAAO,CAAC,eAAe,CAAC,CAyS1B;AAED,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CA0Cf"}
@@ -11,7 +11,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
11
11
  });
12
12
  };
13
13
  import { join } from "node:path";
14
+ import { canonicalizeFileSystemToolName, FileSystemConfigError, resolveFileSystemTools, resolveRootHarnessAllowlist, } from "../../filesystem.js";
14
15
  import { DEFAULT_MODEL, } from "../../types.js";
16
+ import { synthesizedFileSystemToolNames } from "../filesystem/tools.js";
15
17
  import { withIdentityPreamble } from "../workspace.js";
16
18
  import { isValidModelSetting, loadAgentConfig, resolveAgentCwd, resolveArchitecture, resolveConcurrency, resolveHosting, resolveLocalCwd, runtimeArchitectureCompatibilityError, } from "./agent-config.js";
17
19
  import { loadConnections, loadHostConnections } from "./connections.js";
@@ -26,8 +28,8 @@ import { loadSubagent, loadSubagents } from "./subagent.js";
26
28
  import { appendBuiltinTools, loadTools } from "./tools.js";
27
29
  export function loadAgent(ctx, agentDir, options) {
28
30
  return __awaiter(this, void 0, void 0, function* () {
29
- var _a, _b, _c, _d;
30
- var _e;
31
+ var _a, _b, _c, _d, _e, _f, _g;
32
+ var _h;
31
33
  if (!options.isRoot) {
32
34
  return {
33
35
  agent: yield loadSubagent(ctx, agentDir, options.name),
@@ -41,7 +43,7 @@ export function loadAgent(ctx, agentDir, options) {
41
43
  };
42
44
  }
43
45
  const config = yield loadAgentConfig(ctx, agentDir, options.isRoot);
44
- const name = (_e = config === null || config === void 0 ? void 0 : config.name) !== null && _e !== void 0 ? _e : options.name;
46
+ const name = (_h = config === null || config === void 0 ? void 0 : config.name) !== null && _h !== void 0 ? _h : options.name;
45
47
  const authoredInstructions = yield loadInstructions(ctx, agentDir, config, options.isRoot);
46
48
  const tools = yield loadTools(ctx, join(agentDir, "tools"));
47
49
  const skills = yield loadSkills(ctx, join(agentDir, "skills"));
@@ -93,9 +95,80 @@ export function loadAgent(ctx, agentDir, options) {
93
95
  // second layer (authored tools, mcp-connections, the harness cwd's
94
96
  // ambient config).
95
97
  const authoredAllowlist = config === null || config === void 0 ? void 0 : config.tools;
96
- const allowedTools = authoredAllowlist === undefined || authoredAllowlist.includes("mcp")
98
+ const root = config === null || config === void 0 ? void 0 : config.root;
99
+ const hasRoot = root !== undefined;
100
+ if (hasRoot) {
101
+ if (((_e = config === null || config === void 0 ? void 0 : config.local) === null || _e === void 0 ? void 0 : _e.cwd) !== undefined ||
102
+ ((_f = config === null || config === void 0 ? void 0 : config.local) === null || _f === void 0 ? void 0 : _f.workspaceDir) !== undefined ||
103
+ ((_g = config === null || config === void 0 ? void 0 : config.local) === null || _g === void 0 ? void 0 : _g.sandbox) === true) {
104
+ ctx.diagnostics.push({
105
+ severity: "error",
106
+ path: displayPath(ctx, join(agentDir, "agent.ts")),
107
+ message: "`root` cannot be combined with `local.cwd`, `local.workspaceDir`, or `local.sandbox`. Those fields configure the host tree the override replaced.",
108
+ });
109
+ }
110
+ if (runtime === "cloud" || runtime === "grokbot") {
111
+ ctx.diagnostics.push({
112
+ severity: "error",
113
+ path: displayPath(ctx, join(agentDir, "agent.ts")),
114
+ message: `\`root\` cannot be combined with runtime: "${runtime}".`,
115
+ });
116
+ }
117
+ if ((authoredAllowlist === null || authoredAllowlist === void 0 ? void 0 : authoredAllowlist.includes("shell")) === true ||
118
+ (authoredAllowlist === null || authoredAllowlist === void 0 ? void 0 : authoredAllowlist.includes("Shell")) === true) {
119
+ ctx.diagnostics.push({
120
+ severity: "error",
121
+ path: displayPath(ctx, join(agentDir, "agent.ts")),
122
+ message: '`root` cannot be combined with `tools` containing `"shell"`. Shell is not a FileSystem method and must not bind the host shell onto a virtual tree.',
123
+ });
124
+ }
125
+ }
126
+ const reservedNames = new Set(synthesizedFileSystemToolNames({
127
+ hasRoot,
128
+ tools: authoredAllowlist,
129
+ }));
130
+ const clash = tools.find((tool) => {
131
+ if (reservedNames.has(tool.name)) {
132
+ return true;
133
+ }
134
+ const canonical = canonicalizeFileSystemToolName(tool.name);
135
+ return canonical !== undefined && reservedNames.has(canonical);
136
+ });
137
+ if (clash !== undefined) {
138
+ ctx.diagnostics.push({
139
+ severity: "error",
140
+ path: displayPath(ctx, join(agentDir, "tools", `${clash.name}.ts`)),
141
+ message: `agent/tools/${clash.name}.ts: that name is reserved for the synthesized FileSystem tool.`,
142
+ });
143
+ }
144
+ let allowedTools = authoredAllowlist === undefined || authoredAllowlist.includes("mcp")
97
145
  ? authoredAllowlist
98
146
  : [...authoredAllowlist, "mcp"];
147
+ if (hasRoot) {
148
+ try {
149
+ if (typeof root !== "function") {
150
+ resolveFileSystemTools({
151
+ root,
152
+ tools: authoredAllowlist,
153
+ });
154
+ }
155
+ else {
156
+ resolveRootHarnessAllowlist(authoredAllowlist);
157
+ }
158
+ allowedTools = authoredAllowlist;
159
+ }
160
+ catch (error) {
161
+ ctx.diagnostics.push({
162
+ severity: "error",
163
+ path: displayPath(ctx, join(agentDir, "agent.ts")),
164
+ message: error instanceof FileSystemConfigError
165
+ ? error.message
166
+ : error instanceof Error
167
+ ? error.message
168
+ : String(error),
169
+ });
170
+ }
171
+ }
99
172
  // The allowlist states runtime-agnostic intent, but only the local
100
173
  // harness can enforce it (the Cursor SDK rejects tool restrictions on
101
174
  // cloud agents, and the Grok Bot harness has its own fixed toolset) — a
@@ -186,12 +259,11 @@ export function loadAgent(ctx, agentDir, options) {
186
259
  });
187
260
  }
188
261
  return {
189
- agent: Object.assign(Object.assign(Object.assign(Object.assign({ name, description: config === null || config === void 0 ? void 0 : config.description,
262
+ agent: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ name, description: config === null || config === void 0 ? void 0 : config.description,
190
263
  // Root agents always get a concrete model: authored value or DEFAULT_MODEL.
191
264
  model: isValidModelSetting(config === null || config === void 0 ? void 0 : config.model) ? config.model : DEFAULT_MODEL, instructions,
192
- runtime,
193
- cloud,
194
- local }, (allowedTools === undefined ? {} : { allowedTools })), { hosting,
265
+ runtime }, (root === undefined ? {} : { root })), { cloud,
266
+ local }), (allowedTools === undefined ? {} : { allowedTools })), { hosting,
195
267
  concurrency }), (architecture === undefined ? {} : { architecture })), { tools,
196
268
  skills,
197
269
  extensions,
@@ -1 +1 @@
1
- {"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../../src/internal/discovery/info.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,gBAAgB,EAEtB,MAAM,gBAAgB,CAAC;AAKxB,wBAAgB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,gBAAgB,CA0KnE"}
1
+ {"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../../src/internal/discovery/info.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,gBAAgB,EAEtB,MAAM,gBAAgB,CAAC;AAKxB,wBAAgB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,gBAAgB,CA6KnE"}
@@ -113,6 +113,9 @@ export function projectInfo(project) {
113
113
  if ((meta === null || meta === void 0 ? void 0 : meta.deploymentEventTypes) !== undefined) {
114
114
  info.deploymentEventTypes = meta.deploymentEventTypes;
115
115
  }
116
+ if ((meta === null || meta === void 0 ? void 0 : meta.factoryEventTypes) !== undefined) {
117
+ info.factoryEventTypes = meta.factoryEventTypes;
118
+ }
116
119
  if ((meta === null || meta === void 0 ? void 0 : meta.slackChannelPosts) !== undefined) {
117
120
  info.slackChannelPosts = meta.slackChannelPosts;
118
121
  }
@@ -0,0 +1,33 @@
1
+ import type { z } from "zod";
2
+ import type { ChannelDefinition, ChannelHandlerArgs } from "../types.js";
3
+ import type { ContinuationIdentity } from "./continuation-identity.js";
4
+ type FactoryResourceChannelOptions<TEvent> = {
5
+ onEvent: (event: TEvent, args: ChannelHandlerArgs) => Promise<unknown> | unknown;
6
+ continuation?: ContinuationIdentity;
7
+ path?: string;
8
+ auth?: ChannelDefinition["auth"];
9
+ onStart?: ChannelDefinition["onStart"];
10
+ onStop?: ChannelDefinition["onStop"];
11
+ };
12
+ type FactoryResourceChannelSpec<TEvent extends {
13
+ eventType: string;
14
+ }> = {
15
+ kind: string;
16
+ eventTypes: readonly string[];
17
+ eventSchema: z.ZodType<TEvent>;
18
+ replayDescription: string;
19
+ invalidError: string;
20
+ };
21
+ type FactoryResourceChannelPack<TEvent> = {
22
+ channel: (options: FactoryResourceChannelOptions<TEvent>) => ChannelDefinition;
23
+ getOptions: (definition: object) => FactoryResourceChannelOptions<TEvent> | undefined;
24
+ };
25
+ /**
26
+ * Shared pack for Factory resource channels that have one event type, no
27
+ * subscription filter, and the same local-replay / hosted-admission path.
28
+ */
29
+ export declare function createFactoryResourceChannel<TEvent extends {
30
+ eventType: string;
31
+ }>(spec: FactoryResourceChannelSpec<TEvent>): FactoryResourceChannelPack<TEvent>;
32
+ export {};
33
+ //# sourceMappingURL=factory-resource-channel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory-resource-channel.d.ts","sourceRoot":"","sources":["../../src/internal/factory-resource-channel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEzE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAIvE,KAAK,6BAA6B,CAAC,MAAM,IAAI;IAC3C,OAAO,EAAE,CACP,KAAK,EAAE,MAAM,EACb,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;AAEF,KAAK,0BAA0B,CAAC,MAAM,SAAS;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,IAAI;IACtE,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,KAAK,0BAA0B,CAAC,MAAM,IAAI;IACxC,OAAO,EAAE,CACP,OAAO,EAAE,6BAA6B,CAAC,MAAM,CAAC,KAC3C,iBAAiB,CAAC;IACvB,UAAU,EAAE,CACV,UAAU,EAAE,MAAM,KACf,6BAA6B,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;CACxD,CAAC;AAEF;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,SAAS;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,EAEpC,IAAI,EAAE,0BAA0B,CAAC,MAAM,CAAC,GACvC,0BAA0B,CAAC,MAAM,CAAC,CA4EpC"}