@vibes.diy/api-svc 14.2.6 → 14.2.8

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 (140) hide show
  1. package/cf-serve.js +1 -1
  2. package/cf-serve.js.map +1 -1
  3. package/check-auth.d.ts +3 -2
  4. package/check-build-auth.d.ts +18 -0
  5. package/check-build-auth.js +73 -0
  6. package/check-build-auth.js.map +1 -0
  7. package/create-handler.js +13 -6
  8. package/create-handler.js.map +1 -1
  9. package/evento-handler-manifest.js +5 -0
  10. package/evento-handler-manifest.js.map +1 -1
  11. package/guest-build-token.d.ts +16 -0
  12. package/guest-build-token.js +44 -0
  13. package/guest-build-token.js.map +1 -0
  14. package/index.d.ts +0 -2
  15. package/index.js +0 -2
  16. package/index.js.map +1 -1
  17. package/intern/agent-actor.d.ts +1 -0
  18. package/intern/agent-actor.js +1 -1
  19. package/intern/agent-actor.js.map +1 -1
  20. package/intern/agent-assembly.d.ts +0 -2
  21. package/intern/agent-assembly.js +1 -4
  22. package/intern/agent-assembly.js.map +1 -1
  23. package/intern/agent-first-turn-eligible.d.ts +1 -7
  24. package/intern/agent-first-turn-eligible.js +2 -5
  25. package/intern/agent-first-turn-eligible.js.map +1 -1
  26. package/intern/agent-router.d.ts +1 -3
  27. package/intern/agent-router.js +1 -17
  28. package/intern/agent-router.js.map +1 -1
  29. package/intern/agent-session-instruction.js.map +1 -1
  30. package/intern/agent-turn.d.ts +1 -4
  31. package/intern/agent-turn.js +4 -7
  32. package/intern/agent-turn.js.map +1 -1
  33. package/intern/agent-wake.d.ts +2 -3
  34. package/intern/agent-wake.js +2 -24
  35. package/intern/agent-wake.js.map +1 -1
  36. package/intern/attach-draft-handle.d.ts +2 -1
  37. package/intern/attach-draft-handle.js +128 -68
  38. package/intern/attach-draft-handle.js.map +1 -1
  39. package/intern/automatic-draft-attachment.d.ts +10 -0
  40. package/intern/automatic-draft-attachment.js +25 -0
  41. package/intern/automatic-draft-attachment.js.map +1 -0
  42. package/intern/codegen-build-lock.d.ts +0 -5
  43. package/intern/codegen-build-lock.js +0 -3
  44. package/intern/codegen-build-lock.js.map +1 -1
  45. package/intern/draft-continuation.d.ts +6 -0
  46. package/intern/draft-continuation.js +86 -0
  47. package/intern/draft-continuation.js.map +1 -0
  48. package/intern/draft-runtime-store.d.ts +10 -0
  49. package/intern/draft-runtime-store.js +46 -0
  50. package/intern/draft-runtime-store.js.map +1 -0
  51. package/intern/ensure-chat-id.d.ts +4 -3
  52. package/intern/ensure-chat-id.js +23 -4
  53. package/intern/ensure-chat-id.js.map +1 -1
  54. package/intern/first-build-request.d.ts +10 -0
  55. package/intern/first-build-request.js +69 -0
  56. package/intern/first-build-request.js.map +1 -0
  57. package/intern/get-model-defaults.d.ts +1 -0
  58. package/intern/get-model-defaults.js +4 -1
  59. package/intern/get-model-defaults.js.map +1 -1
  60. package/intern/guest-build-issuance.d.ts +9 -0
  61. package/intern/guest-build-issuance.js +83 -0
  62. package/intern/guest-build-issuance.js.map +1 -0
  63. package/intern/guest-build-start.d.ts +8 -0
  64. package/intern/guest-build-start.js +66 -0
  65. package/intern/guest-build-start.js.map +1 -0
  66. package/intern/guest-build-store.d.ts +50 -0
  67. package/intern/guest-build-store.js +231 -0
  68. package/intern/guest-build-store.js.map +1 -0
  69. package/intern/guest-build-usage.d.ts +7 -0
  70. package/intern/guest-build-usage.js +18 -0
  71. package/intern/guest-build-usage.js.map +1 -0
  72. package/intern/mint-decision.js.map +1 -1
  73. package/intern/mint-fire-core.js.map +1 -1
  74. package/intern/mint-job-store.d.ts +11 -1
  75. package/intern/mint-job-store.js +44 -6
  76. package/intern/mint-job-store.js.map +1 -1
  77. package/intern/open-turn-store.d.ts +0 -4
  78. package/intern/open-turn-store.js +1 -6
  79. package/intern/open-turn-store.js.map +1 -1
  80. package/intern/open-turn-sweep.js +0 -1
  81. package/intern/open-turn-sweep.js.map +1 -1
  82. package/intern/prompt-assembly.d.ts +1 -0
  83. package/intern/prompt-assembly.js +1 -0
  84. package/intern/prompt-assembly.js.map +1 -1
  85. package/models.json +1 -0
  86. package/package.json +12 -12
  87. package/public/attach-draft-handle.js +16 -3
  88. package/public/attach-draft-handle.js.map +1 -1
  89. package/public/draft-runtime.d.ts +5 -0
  90. package/public/draft-runtime.js +299 -0
  91. package/public/draft-runtime.js.map +1 -0
  92. package/public/get-chat-details.js +14 -6
  93. package/public/get-chat-details.js.map +1 -1
  94. package/public/get-chat-response.js +16 -9
  95. package/public/get-chat-response.js.map +1 -1
  96. package/public/guest-build-generation.d.ts +8 -0
  97. package/public/guest-build-generation.js +218 -0
  98. package/public/guest-build-generation.js.map +1 -0
  99. package/public/guest-build.d.ts +7 -0
  100. package/public/guest-build.js +127 -0
  101. package/public/guest-build.js.map +1 -0
  102. package/public/llm-dispatch.d.ts +9 -7
  103. package/public/llm-dispatch.js +22 -10
  104. package/public/llm-dispatch.js.map +1 -1
  105. package/public/open-chat.d.ts +5 -1
  106. package/public/open-chat.js +72 -38
  107. package/public/open-chat.js.map +1 -1
  108. package/public/prompt-chat-section.d.ts +2 -1
  109. package/public/prompt-chat-section.js +293 -303
  110. package/public/prompt-chat-section.js.map +1 -1
  111. package/public/shared-mint.js +4 -2
  112. package/public/shared-mint.js.map +1 -1
  113. package/public/stream-assembly.d.ts +9 -7
  114. package/public/stream-assembly.js +19 -5
  115. package/public/stream-assembly.js.map +1 -1
  116. package/types.d.ts +2 -0
  117. package/types.js.map +1 -1
  118. package/usage-report/billing-reconcile-util.d.ts +1 -0
  119. package/usage-report/billing-reconcile-util.js +2 -1
  120. package/usage-report/billing-reconcile-util.js.map +1 -1
  121. package/usage-report/codegen-delivery-alert-util.js.map +1 -1
  122. package/usage-report/draft-output-alert.d.ts +13 -0
  123. package/usage-report/draft-output-alert.js +25 -0
  124. package/usage-report/draft-output-alert.js.map +1 -0
  125. package/usage-report/new-user-alert-util.d.ts +1 -0
  126. package/usage-report/new-user-alert-util.js +19 -4
  127. package/usage-report/new-user-alert-util.js.map +1 -1
  128. package/usage-report/new-user-alert.js +16 -10
  129. package/usage-report/new-user-alert.js.map +1 -1
  130. package/usage-report/prompt-cost-sql.d.ts +2 -0
  131. package/usage-report/prompt-cost-sql.js +2 -0
  132. package/usage-report/prompt-cost-sql.js.map +1 -1
  133. package/usage-report/user-journey.js +2 -2
  134. package/usage-report/user-journey.js.map +1 -1
  135. package/intern/agent-instruction.d.ts +0 -2
  136. package/intern/agent-instruction.js +0 -433
  137. package/intern/agent-instruction.js.map +0 -1
  138. package/intern/agent-lane-flag.d.ts +0 -21
  139. package/intern/agent-lane-flag.js +0 -10
  140. package/intern/agent-lane-flag.js.map +0 -1
@@ -8,7 +8,6 @@ export interface AssembleAgentPayloadArgs {
8
8
  readonly ownerHandle: string;
9
9
  readonly appSlug: string;
10
10
  readonly newUserMessages: readonly ChatMessage[];
11
- readonly legacyHint?: string;
12
11
  readonly wakeNote?: string;
13
12
  readonly buildInFlight?: {
14
13
  readonly promptId: string;
@@ -16,7 +15,6 @@ export interface AssembleAgentPayloadArgs {
16
15
  readonly noAppYet?: boolean;
17
16
  readonly nonInteractive?: boolean;
18
17
  readonly lastSeenHeadFsId?: string;
19
- readonly session?: boolean;
20
18
  }
21
19
  export interface AssembledAgentPayload {
22
20
  readonly model: string;
@@ -3,7 +3,6 @@ import { PromptAndBlockMsgs, isPromptResearch, isPromptStatus, parseArrayWarning
3
3
  import { ensureLogger } from "@vibes.diy/identity";
4
4
  import { and, eq, ne } from "drizzle-orm/sql/expressions";
5
5
  import { appContextMessage, composeAgentRequest, markJournalCacheTail, UNCLAIMED_APP_CONTEXT_LINES, } from "./agent-request-frame.js";
6
- import { AGENT_INSTRUCTION } from "./agent-instruction.js";
7
6
  import { AGENT_SESSION_INSTRUCTION } from "./agent-session-instruction.js";
8
7
  import { reconstructConversationMessages } from "./prompt-assembly.js";
9
8
  import { inflateFileAttachments } from "./inflate-file-attachments.js";
@@ -88,7 +87,6 @@ export async function assembleAgentPayload(vctx, args) {
88
87
  ...UNCLAIMED_APP_CONTEXT_LINES,
89
88
  ...nonInteractive,
90
89
  ...refusedLink,
91
- ...(args.legacyHint === undefined ? [] : [args.legacyHint]),
92
90
  `</app-context>`,
93
91
  ].join("\n")
94
92
  : [
@@ -104,7 +102,6 @@ export async function assembleAgentPayload(vctx, args) {
104
102
  ]),
105
103
  ...nonInteractive,
106
104
  ...refusedLink,
107
- ...(args.legacyHint === undefined ? [] : [args.legacyHint]),
108
105
  `</app-context>`,
109
106
  ].join("\n");
110
107
  const assembled = composeAgentRequest({
@@ -114,7 +111,7 @@ export async function assembleAgentPayload(vctx, args) {
114
111
  content: [
115
112
  {
116
113
  type: "text",
117
- text: args.session === true ? AGENT_SESSION_INSTRUCTION : AGENT_INSTRUCTION,
114
+ text: AGENT_SESSION_INSTRUCTION,
118
115
  cache_control: { type: "ephemeral" },
119
116
  },
120
117
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"agent-assembly.js","sourceRoot":"","sources":["../../jsr/intern/agent-assembly.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-assembly.js","sourceRoot":"","sources":["../../jsr/intern/agent-assembly.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,2 @@
1
1
  import type { ReqOpenChat } from "@vibes.diy/api-types";
2
- export declare function wantsAgentFirstTurn(vctx: {
3
- readonly sthis: {
4
- readonly env: {
5
- get(key: string): string | undefined;
6
- };
7
- };
8
- }, req: Pick<ReqOpenChat, "mode" | "dryRun" | "clientFiresFirstTurn" | "chatId" | "prompt" | "appSlug">): boolean;
2
+ export declare function wantsAgentFirstTurn(req: Pick<ReqOpenChat, "mode" | "dryRun" | "clientFiresFirstTurn" | "chatId" | "prompt" | "appSlug">): boolean;
@@ -1,9 +1,6 @@
1
- import { agentFirstTurnEnabled, agentLaneEnabled } from "./agent-lane-flag.js";
2
1
  import { preAllocEligible } from "./ensure-chat-id.js";
3
- export function wantsAgentFirstTurn(vctx, req) {
4
- return (agentLaneEnabled(vctx) &&
5
- agentFirstTurnEnabled(vctx) &&
6
- req.mode === "codegen" &&
2
+ export function wantsAgentFirstTurn(req) {
3
+ return (req.mode === "codegen" &&
7
4
  req.dryRun !== true &&
8
5
  req.chatId === undefined &&
9
6
  preAllocEligible(req));
@@ -1 +1 @@
1
- {"version":3,"file":"agent-first-turn-eligible.js","sourceRoot":"","sources":["../../jsr/intern/agent-first-turn-eligible.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAsBvD,MAAM,UAAU,mBAAmB,CACjC,IAAoF,EACpF,GAAoG;IAEpG,OAAO,CACL,gBAAgB,CAAC,IAAI,CAAC;QACtB,qBAAqB,CAAC,IAAI,CAAC;QAC3B,GAAG,CAAC,IAAI,KAAK,SAAS;QACtB,GAAG,CAAC,MAAM,KAAK,IAAI;QAOnB,GAAG,CAAC,MAAM,KAAK,SAAS;QACxB,gBAAgB,CAAC,GAAG,CAAC,CACtB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"agent-first-turn-eligible.js","sourceRoot":"","sources":["../../jsr/intern/agent-first-turn-eligible.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAqBvD,MAAM,UAAU,mBAAmB,CACjC,GAAoG;IAEpG,OAAO,CACL,GAAG,CAAC,IAAI,KAAK,SAAS;QACtB,GAAG,CAAC,MAAM,KAAK,IAAI;QAOnB,GAAG,CAAC,MAAM,KAAK,SAAS;QACxB,gBAAgB,CAAC,GAAG,CAAC,CACtB,CAAC;AACJ,CAAC"}
@@ -1,4 +1,4 @@
1
- type AgentRouteSkip = "flag-off" | "agent-dispatched" | "not-a-codegen-turn" | "dry-run" | "first-turn";
1
+ type AgentRouteSkip = "agent-dispatched" | "not-a-codegen-turn" | "dry-run" | "first-turn";
2
2
  export type AgentRouteDecision = {
3
3
  readonly route: "agent";
4
4
  } | {
@@ -6,7 +6,6 @@ export type AgentRouteDecision = {
6
6
  readonly skip: AgentRouteSkip;
7
7
  };
8
8
  export interface AgentRouteInput {
9
- readonly agentLane: boolean;
10
9
  readonly codegenChatTurn: boolean;
11
10
  readonly dryRun: boolean;
12
11
  readonly directBuildRequested: boolean;
@@ -16,7 +15,6 @@ export interface AgentRouteInput {
16
15
  }
17
16
  export declare function mintRowSaysFirstTurnIsAgents(status: string | undefined): boolean;
18
17
  export declare function routeAgentTurn(input: AgentRouteInput): AgentRouteDecision;
19
- export declare function legacyVariantHint(variant: string | undefined): string | undefined;
20
18
  export type CodegenTurnLane = "codegen" | "agent" | "agent-build";
21
19
  export declare function codegenTurnLane(input: {
22
20
  readonly agentAssembled: boolean;
@@ -1,9 +1,7 @@
1
1
  export function mintRowSaysFirstTurnIsAgents(status) {
2
- return status === "agent" || status === "agent-unfired";
2
+ return status === "agent" || status === "agent-unfired" || status === "agent-awaiting-files";
3
3
  }
4
4
  export function routeAgentTurn(input) {
5
- if (input.agentLane === false)
6
- return { route: "codegen", skip: "flag-off" };
7
5
  if (input.agentWake === true)
8
6
  return { route: "agent" };
9
7
  if (input.directBuildRequested === true)
@@ -16,20 +14,6 @@ export function routeAgentTurn(input) {
16
14
  return { route: "codegen", skip: "first-turn" };
17
15
  return { route: "agent" };
18
16
  }
19
- export function legacyVariantHint(variant) {
20
- switch (variant) {
21
- case "discuss":
22
- return "The user pressed a button that used to mean 'talk this through, do not write code'.";
23
- case "work":
24
- return "The user pressed a button that used to mean 'take your time and make one grounded improvement'.";
25
- case "access-wizard":
26
- return "This turn came from the old permissions wizard: the user is asking about who can see and change data.";
27
- case "upgrade-backend":
28
- return "This turn came from the old backend upgrade prompt: the user is asking to connect live or shared data.";
29
- default:
30
- return undefined;
31
- }
32
- }
33
17
  export function codegenTurnLane(input) {
34
18
  if (input.agentAssembled === true)
35
19
  return "agent";
@@ -1 +1 @@
1
- {"version":3,"file":"agent-router.js","sourceRoot":"","sources":["../../jsr/intern/agent-router.ts"],"names":[],"mappings":"AA+IA,MAAM,UAAU,4BAA4B,CAAC,MAA0B;IACrE,OAAO,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,eAAe,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAsB;IACnD,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK;QAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IAC7E,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI;QAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IACxD,IAAI,KAAK,CAAC,oBAAoB,KAAK,IAAI;QAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;IAC/F,IAAI,KAAK,CAAC,eAAe,KAAK,KAAK;QAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC;IAC7F,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI;QAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IACxE,IAAI,KAAK,CAAC,YAAY,KAAK,KAAK,IAAI,KAAK,CAAC,cAAc,KAAK,KAAK;QAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;IACpH,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC5B,CAAC;AAUD,MAAM,UAAU,iBAAiB,CAAC,OAA2B;IAC3D,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,SAAS;YACZ,OAAO,qFAAqF,CAAC;QAC/F,KAAK,MAAM;YACT,OAAO,iGAAiG,CAAC;QAC3G,KAAK,eAAe;YAClB,OAAO,uGAAuG,CAAC;QACjH,KAAK,iBAAiB;YACpB,OAAO,wGAAwG,CAAC;QAGlH;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAqCD,MAAM,UAAU,eAAe,CAAC,KAA8E;IAC5G,IAAI,KAAK,CAAC,cAAc,KAAK,IAAI;QAAE,OAAO,OAAO,CAAC;IAClD,IAAI,KAAK,CAAC,eAAe,KAAK,IAAI;QAAE,OAAO,aAAa,CAAC;IACzD,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"agent-router.js","sourceRoot":"","sources":["../../jsr/intern/agent-router.ts"],"names":[],"mappings":"AAeA,MAAM,UAAU,4BAA4B,CAAC,MAA0B;IACrE,OAAO,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,eAAe,IAAI,MAAM,KAAK,sBAAsB,CAAC;AAC/F,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAsB;IACnD,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI;QAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IACxD,IAAI,KAAK,CAAC,oBAAoB,KAAK,IAAI;QAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;IAC/F,IAAI,KAAK,CAAC,eAAe,KAAK,KAAK;QAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC;IAC7F,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI;QAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IACxE,IAAI,KAAK,CAAC,YAAY,KAAK,KAAK,IAAI,KAAK,CAAC,cAAc,KAAK,KAAK;QAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;IACpH,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC5B,CAAC;AAKD,MAAM,UAAU,eAAe,CAAC,KAA8E;IAC5G,IAAI,KAAK,CAAC,cAAc,KAAK,IAAI;QAAE,OAAO,OAAO,CAAC;IAClD,IAAI,KAAK,CAAC,eAAe,KAAK,IAAI;QAAE,OAAO,aAAa,CAAC;IACzD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"agent-session-instruction.js","sourceRoot":"","sources":["../../jsr/intern/agent-session-instruction.ts"],"names":[],"mappings":"AA8PA,MAAM,CAAC,MAAM,iCAAiC,GAAG,cAAc,CAAC;AAEhE,MAAM,CAAC,MAAM,yBAAyB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gEAmMuB,CAAC"}
1
+ {"version":3,"file":"agent-session-instruction.js","sourceRoot":"","sources":["../../jsr/intern/agent-session-instruction.ts"],"names":[],"mappings":"AAmBA,MAAM,CAAC,MAAM,iCAAiC,GAAG,cAAc,CAAC;AAEhE,MAAM,CAAC,MAAM,yBAAyB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gEAmMuB,CAAC"}
@@ -6,11 +6,8 @@ import { type AgentBelt, type AgentBeltArgs } from "./agent-belt.js";
6
6
  import { createLlmToolLoopStream, type LlmToolLoopBudget } from "./llm-tool-loop.js";
7
7
  export declare const AGENT_TOTAL_BUDGET_MS = 900000;
8
8
  export declare function agentTotalBudgetMs(vctx: VibesApiSQLCtx): number;
9
- export declare const AGENT_MAX_TOOL_ROUNDS = 6;
10
- export declare const AGENT_MAX_TOOL_CALLS = 16;
11
9
  export declare const AGENT_SESSION_MAX_TOOL_ROUNDS = 32;
12
10
  export declare const AGENT_SESSION_MAX_TOOL_CALLS = 96;
13
- export declare const AGENT_MAX_PROVIDER_ATTEMPTS: number;
14
11
  export interface AgentTurnDispatch {
15
12
  readonly chatId: string;
16
13
  readonly appSlug: string;
@@ -35,7 +32,7 @@ export interface AgentTurnStreamArgs {
35
32
  readonly abort?: AbortController;
36
33
  }>>;
37
34
  readonly onDispatch?: (dispatched: AgentTurnDispatch) => void;
38
- readonly session?: Parameters<typeof createLlmToolLoopStream>[0]["session"];
35
+ readonly session: NonNullable<Parameters<typeof createLlmToolLoopStream>[0]["session"]>;
39
36
  readonly onToolEvidence?: Parameters<typeof createLlmToolLoopStream>[0]["onToolEvidence"];
40
37
  readonly onError?: (error: string) => void;
41
38
  readonly now?: () => number;
@@ -12,11 +12,8 @@ export function agentTotalBudgetMs(vctx) {
12
12
  return AGENT_TOTAL_BUDGET_MS;
13
13
  return Math.min(parsed, AGENT_TURN_CEILING_MS);
14
14
  }
15
- export const AGENT_MAX_TOOL_ROUNDS = 6;
16
- export const AGENT_MAX_TOOL_CALLS = 16;
17
15
  export const AGENT_SESSION_MAX_TOOL_ROUNDS = 32;
18
16
  export const AGENT_SESSION_MAX_TOOL_CALLS = 96;
19
- export const AGENT_MAX_PROVIDER_ATTEMPTS = AGENT_MAX_TOOL_ROUNDS + 1;
20
17
  export function createAgentTurnStream(args) {
21
18
  const belt = args.belt ??
22
19
  createAgentBelt(args.vctx, {
@@ -29,7 +26,7 @@ export function createAgentTurnStream(args) {
29
26
  });
30
27
  const budget = createLlmToolLoopBudget({
31
28
  totalBudgetMs: agentTotalBudgetMs(args.vctx),
32
- maxAttempts: args.session === undefined ? AGENT_MAX_PROVIDER_ATTEMPTS : AGENT_SESSION_MAX_TOOL_ROUNDS + 1,
29
+ maxAttempts: AGENT_SESSION_MAX_TOOL_ROUNDS + 1,
33
30
  ...(args.now === undefined ? {} : { now: args.now }),
34
31
  });
35
32
  budget.attemptsUsed = 1;
@@ -40,9 +37,9 @@ export function createAgentTurnStream(args) {
40
37
  budget,
41
38
  execute: belt.executor,
42
39
  ...(args.onToolEvidence === undefined ? {} : { onToolEvidence: args.onToolEvidence }),
43
- maxToolRounds: args.session === undefined ? AGENT_MAX_TOOL_ROUNDS : AGENT_SESSION_MAX_TOOL_ROUNDS,
44
- maxToolCalls: args.session === undefined ? AGENT_MAX_TOOL_CALLS : AGENT_SESSION_MAX_TOOL_CALLS,
45
- ...(args.session === undefined ? {} : { session: args.session }),
40
+ maxToolRounds: AGENT_SESSION_MAX_TOOL_ROUNDS,
41
+ maxToolCalls: AGENT_SESSION_MAX_TOOL_CALLS,
42
+ session: args.session,
46
43
  dispatch: async (input) => {
47
44
  const r = await args.dispatch({ request: input.request, budget: input.budget });
48
45
  if (r.isErr())
@@ -1 +1 @@
1
- {"version":3,"file":"agent-turn.js","sourceRoot":"","sources":["../../jsr/intern/agent-turn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAIzC,OAAO,EAAE,eAAe,EAAsC,MAAM,iBAAiB,CAAC;AACtF,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAA0B,MAAM,oBAAoB,CAAC;AAC9G,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AA0BhE,MAAM,CAAC,MAAM,qBAAqB,GAAG,qBAAqB,CAAC;AAE3D,MAAM,UAAU,kBAAkB,CAAC,IAAoB;IACrD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IACxD,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,qBAAqB,CAAC;IAC1D,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACxC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC;QAAE,OAAO,qBAAqB,CAAC;IAC1E,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;AACjD,CAAC;AACD,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC;AACvC,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAEvC,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,CAAC;AAChD,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,CAAC;AAC/C,MAAM,CAAC,MAAM,2BAA2B,GAAG,qBAAqB,GAAG,CAAC,CAAC;AAuErE,MAAM,UAAU,qBAAqB,CAAC,IAAyB;IAC7D,MAAM,IAAI,GACR,IAAI,CAAC,IAAI;QACT,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE;YACzB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;YAC7D,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnE,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;SACxC,CAAC,CAAC;IAEL,MAAM,MAAM,GAAsB,uBAAuB,CAAC;QACxD,aAAa,EAAE,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;QAC5C,WAAW,EAAE,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,6BAA6B,GAAG,CAAC;QACzG,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;KACrD,CAAC,CAAC;IAGH,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC;IAExB,OAAO,uBAAuB,CAAC;QAI7B,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE;QAC1D,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,MAAM;QACN,OAAO,EAAE,IAAI,CAAC,QAAQ;QACtB,GAAG,CAAC,IAAI,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC;QACrF,aAAa,EAAE,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,6BAA6B;QACjG,YAAY,EAAE,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,4BAA4B;QAC9F,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;QAChE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACxB,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;YAChF,IAAI,CAAC,CAAC,KAAK,EAAE;gBAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YAC1C,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC;YACnB,OAAO,MAAM,CAAC,EAAE,CAAC;gBACf,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;aACzD,CAAC,CAAC;QACL,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;QAChE,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;KACrD,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"agent-turn.js","sourceRoot":"","sources":["../../jsr/intern/agent-turn.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { VibesApiSQLCtx } from "../types.js";
4
4
  import type { AgentDispatchHostCtx } from "./agent-dispatcher.js";
5
5
  import { type TurnSettled } from "./turn-reach.js";
6
6
  export declare const AGENT_WAKE_MAX_BUDGET = 1;
7
- export type AgentWakeSkip = "flag-off" | "not-agent-dispatched" | "not-a-build" | "budget-spent";
7
+ export type AgentWakeSkip = "not-agent-dispatched" | "not-a-build" | "budget-spent";
8
8
  export type AgentWakeDecision = {
9
9
  readonly wake: true;
10
10
  readonly budget: number;
@@ -13,7 +13,6 @@ export type AgentWakeDecision = {
13
13
  readonly skip: AgentWakeSkip;
14
14
  };
15
15
  export interface AgentWakeInput {
16
- readonly agentLane: boolean;
17
16
  readonly agentDispatched: boolean;
18
17
  readonly movedFilesystem: boolean;
19
18
  readonly budget: number;
@@ -28,7 +27,7 @@ export interface AgentWakeOutcome {
28
27
  readonly accessLine?: string;
29
28
  }
30
29
  export declare function renderBuildSettledSentence(outcome: AgentWakeOutcome): string;
31
- export declare function renderAgentWakeNote(outcome: AgentWakeOutcome, session?: boolean): string;
30
+ export declare function renderAgentWakeNote(outcome: AgentWakeOutcome): string;
32
31
  export interface FireAgentWakeArgs<Host extends AgentDispatchHostCtx> {
33
32
  readonly vctx: VibesApiSQLCtx;
34
33
  readonly host: Host;
@@ -3,8 +3,6 @@ import { ensureLogger } from "@vibes.diy/identity";
3
3
  import { classifyTurnReach, ENTRY_PATH } from "./turn-reach.js";
4
4
  export const AGENT_WAKE_MAX_BUDGET = 1;
5
5
  export function decideAgentWake(input) {
6
- if (input.agentLane === false)
7
- return { wake: false, skip: "flag-off" };
8
6
  if (input.agentDispatched === false)
9
7
  return { wake: false, skip: "not-agent-dispatched" };
10
8
  if (input.movedFilesystem === false)
@@ -42,28 +40,8 @@ export function renderBuildSettledSentence(outcome) {
42
40
  facts.push(REPORT_IS_AUTHORITATIVE);
43
41
  return facts.join(" ");
44
42
  }
45
- export function renderAgentWakeNote(outcome, session = false) {
46
- if (session === true)
47
- return `[build result] ${renderBuildSettledSentence(outcome)} Continue from this result in the same conversation.`;
48
- return [
49
- "<build-finished>",
50
- renderBuildSettledSentence(outcome),
51
- "The app is free for another change now.",
52
- "",
53
- "This is the platform telling you, not the person: they have not said anything new, so do not answer them",
54
- "as though they had. Saved is not seen — they may still be looking at the previous version, so do not",
55
- "announce a visible result.",
56
- "",
57
- "This is the only time you will be woken for this request. If your plan had a second wave, dispatch it now;",
58
- "nothing else will. If there is nothing left to do, say one short line and stop.",
59
- "",
60
- "Because this is the last turn you are given, do not promise to come back: no 'I'll let you know when it's",
61
- "ready', no 'I'll follow up', no 'I'll send it again later'. The one exception is a change you try to send in",
62
- "THIS turn that comes back refused because a build is still running AND that refusal itself says you will be",
63
- "given another turn — then you may say only what the refusal says is true. Anything else still undone, say",
64
- "plainly is undone.",
65
- "</build-finished>",
66
- ].join("\n");
43
+ export function renderAgentWakeNote(outcome) {
44
+ return `[build result] ${renderBuildSettledSentence(outcome)} Continue from this result in the same conversation.`;
67
45
  }
68
46
  export function fireAgentWakeTurn(args) {
69
47
  const { vctx, host, auth, outerTid, chatId, note, budget, handle } = args;
@@ -1 +1 @@
1
- {"version":3,"file":"agent-wake.js","sourceRoot":"","sources":["../../jsr/intern/agent-wake.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAKnD,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAoB,MAAM,iBAAiB,CAAC;AAsDlF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC;AA+CvC,MAAM,UAAU,eAAe,CAAC,KAAqB;IACnD,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK;QAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IACxE,IAAI,KAAK,CAAC,eAAe,KAAK,KAAK;QAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC;IAC1F,IAAI,KAAK,CAAC,eAAe,KAAK,KAAK;QAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;IACjF,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;IACpE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;AAClD,CAAC;AAYD,MAAM,UAAU,mBAAmB,CAAC,GAAY;IAC9C,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,KAAK;QAAE,OAAO,qBAAqB,CAAC;IAC5F,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACvE,CAAC;AA6FD,MAAM,uBAAuB,GAC3B,iIAAiI,CAAC;AAkBpI,MAAM,UAAU,0BAA0B,CAAC,OAAyB;IAClE,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC;IAC3C,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO;QAAE,OAAO,yEAAyE,CAAC;IAClH,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS;QAC/B,OAAO,gHAAgH,uBAAuB,EAAE,CAAC;IAInJ,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;IACnG,MAAM,KAAK,GAAa;QACtB,8DAA8D,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG;KACxH,CAAC;IACF,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC;QACnC,KAAK,CAAC,IAAI,CACR,OAAO,CAAC,YAAY;YAClB,CAAC,CAAC,GAAG,KAAK,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,gCAAgC,UAAU,kBAAkB;YACpG,CAAC,CAAC,GAAG,KAAK,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,gCAAgC,UAAU,+DAA+D,CACpJ,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,oBAAoB,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC;IAChF,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACrE,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACpC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAyB,EAAE,OAAO,GAAG,KAAK;IAC5E,IAAI,OAAO,KAAK,IAAI;QAClB,OAAO,kBAAkB,0BAA0B,CAAC,OAAO,CAAC,sDAAsD,CAAC;IACrH,OAAO;QACL,kBAAkB;QAClB,0BAA0B,CAAC,OAAO,CAAC;QACnC,yCAAyC;QACzC,EAAE;QACF,0GAA0G;QAC1G,sGAAsG;QACtG,4BAA4B;QAC5B,EAAE;QACF,4GAA4G;QAC5G,iFAAiF;QACjF,EAAE;QACF,2GAA2G;QAC3G,8GAA8G;QAC9G,6GAA6G;QAC7G,2GAA2G;QAC3G,oBAAoB;QACpB,mBAAmB;KACpB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAqCD,MAAM,UAAU,iBAAiB,CAAoC,IAA6B;IAChG,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC1E,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAElD,MAAM,OAAO,GAAyB;QACpC,IAAI,EAAE,mCAAmC;QACzC,IAAI,EAAE,SAAS;QACf,IAAI;QACJ,MAAM;QACN,QAAQ;QAGR,SAAS,EAAE,IAAI;QACf,eAAe,EAAE,MAAM;QACvB,aAAa,EAAE,IAAI;QAUnB,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;KACzB,CAAC;IACF,MAAM,GAAG,GAAkC;QACzC,GAAG,IAAI,CAAC,SAAS;QACjB,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG;QAC9B,OAAO;KACR,CAAC;IAEF,MAAM,GAAG,GAAG,gBAAgB,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;QACjG,IAAI,CAAC,CAAC,KAAK,EAAE;YAAE,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACtF,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;IASH,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;QAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AACxD,CAAC"}
1
+ {"version":3,"file":"agent-wake.js","sourceRoot":"","sources":["../../jsr/intern/agent-wake.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { Result } from "@adviser/cement";
2
2
  import { type ReqPromptChatSection, type ReqWithVerifiedAuth } from "@vibes.diy/api-types";
3
3
  import type { VibesApiSQLCtx } from "../types.js";
4
+ export declare function lockAppRelease(ctx: VibesApiSQLCtx, userId: string, appSlug: string): Promise<void>;
4
5
  export interface AttachDraftHandleResult {
5
6
  readonly chatId: string;
6
7
  readonly ownerHandle: string;
@@ -11,6 +12,6 @@ export declare function attachDraftHandle(vctx: VibesApiSQLCtx, input: {
11
12
  readonly userId: string;
12
13
  readonly chatId: string;
13
14
  readonly chosenHandle: string;
14
- readonly auth: ReqPromptChatSection["auth"];
15
+ readonly auth: NonNullable<ReqPromptChatSection["auth"]>;
15
16
  readonly verifiedAuth: ReqWithVerifiedAuth<ReqPromptChatSection>["_auth"];
16
17
  }): Promise<Result<AttachDraftHandleResult>>;
@@ -1,5 +1,5 @@
1
1
  import { exception2Result, Result } from "@adviser/cement";
2
- import { and, asc, eq, isNull, ne } from "drizzle-orm/sql/expressions";
2
+ import { and, asc, eq, isNull, isNotNull, ne, inArray } from "drizzle-orm/sql/expressions";
3
3
  import { sql } from "drizzle-orm";
4
4
  import { DRAFT_NOT_FOUND_CODE, DRAFT_OWNER_HANDLE, HANDLE_TAKEN_CODE, PromptAndBlockMsgs, RESEARCH_BLOCK_SEQ, isResEnsureAppSlugOk, mkResError, parseArrayWarning, } from "@vibes.diy/api-types";
5
5
  import { isBlockStreamMsg } from "@vibes.diy/call-ai-v2";
@@ -15,7 +15,7 @@ import { createBlockAccumulator, resolveCodeBlocksToFileSystem } from "./prompt-
15
15
  function withDb(ctx, db) {
16
16
  return { ...ctx, sql: { ...ctx.sql, db } };
17
17
  }
18
- async function lockAppRelease(ctx, userId, appSlug) {
18
+ export async function lockAppRelease(ctx, userId, appSlug) {
19
19
  if (ctx.sql.flavour !== "pg")
20
20
  return;
21
21
  const pgDb = ctx.sql.db;
@@ -65,14 +65,14 @@ export async function attachDraftHandle(vctx, input) {
65
65
  return Result.Err(mkResError("chosen handle is empty after sanitization", HANDLE_TAKEN_CODE));
66
66
  }
67
67
  if (draft.ownerHandle !== DRAFT_OWNER_HANDLE) {
68
- return Result.Ok({ chatId: draft.chatId, ownerHandle: draft.ownerHandle, appSlug: draft.appSlug, persisted: false });
68
+ return finalizeDraftAttachment(vctx, { ...input, appSlug: draft.appSlug });
69
69
  }
70
70
  let handleRefusal;
71
71
  const rMove = await exception2Result(() => vctx.sql.db.transaction(async (tx) => {
72
72
  const txCtx = withDb(vctx, tx);
73
73
  const claimed = await tx
74
74
  .update(vctx.sql.tables.chatContexts)
75
- .set({ ownerHandle: chosen, draftPreAlloc: null })
75
+ .set({ ownerHandle: chosen })
76
76
  .where(and(eq(vctx.sql.tables.chatContexts.chatId, draft.chatId), eq(vctx.sql.tables.chatContexts.userId, input.userId), eq(vctx.sql.tables.chatContexts.ownerHandle, DRAFT_OWNER_HANDLE)))
77
77
  .returning({ chatId: vctx.sql.tables.chatContexts.chatId });
78
78
  if (claimed.length === 0)
@@ -119,70 +119,88 @@ export async function attachDraftHandle(vctx, input) {
119
119
  }
120
120
  const moved = rMove.Ok();
121
121
  if (moved === undefined) {
122
- const rSettled = await readDraftChat(vctx, { chatId: input.chatId, userId: input.userId });
123
- if (rSettled.isErr())
124
- return Result.Err(rSettled);
125
- const settled = rSettled.Ok();
126
- if (settled === undefined) {
127
- return Result.Err(mkResError(`no draft build found for chat "${input.chatId}"`, DRAFT_NOT_FOUND_CODE));
128
- }
129
- return Result.Ok({ chatId: settled.chatId, ownerHandle: settled.ownerHandle, appSlug: settled.appSlug, persisted: false });
130
- }
131
- const appSlug = moved.appSlug;
132
- const chosenTitle = moved.chosenTitle;
133
- const bufferedAccess = draft.preAlloc?.deferred?.access?.needed === true
134
- ? { needed: true, why: draft.preAlloc.deferred.access.why }
135
- : undefined;
136
- const bufferedBackend = draft.preAlloc?.deferred?.backend?.recommended === true
137
- ? { recommended: true, why: draft.preAlloc.deferred.backend.why }
138
- : undefined;
139
- const bufferedDeferred = bufferedAccess === undefined && bufferedBackend === undefined
140
- ? undefined
141
- : {
142
- ...(bufferedAccess === undefined ? {} : { access: bufferedAccess }),
143
- ...(bufferedBackend === undefined ? {} : { backend: bufferedBackend }),
144
- };
145
- await writePreAllocActiveEntries(vctx, {
146
- userId: input.userId,
147
- ownerHandle: chosen,
148
- appSlug,
149
- ...(chosenTitle === undefined ? {} : { title: chosenTitle }),
150
- ...(draft.preAlloc?.skills === undefined ? {} : { skills: draft.preAlloc.skills }),
151
- ...(draft.preAlloc?.iconDescription === undefined ? {} : { iconDescription: draft.preAlloc.iconDescription }),
152
- ...(draft.preAlloc?.theme === undefined ? {} : { theme: draft.preAlloc.theme }),
153
- ...(draft.preAlloc?.enrichedPrompt === undefined ? {} : { enrichedPrompt: draft.preAlloc.enrichedPrompt }),
154
- ...(draft.preAlloc?.privacySensitive === undefined ? {} : { privacySensitive: draft.preAlloc.privacySensitive }),
155
- ...(bufferedDeferred === undefined ? {} : { deferred: bufferedDeferred }),
156
- ...(draft.preAlloc?.variety === undefined ? {} : { variety: draft.preAlloc.variety }),
157
- ...(draft.preAlloc?.varietyPinned === true ? { varietyPinned: true } : {}),
158
- ...(draft.preAlloc?.textureNote === undefined ? {} : { textureNote: draft.preAlloc.textureNote }),
159
- ...(draft.preAlloc?.style === undefined ? {} : { style: draft.preAlloc.style }),
160
- ...(draft.preAlloc?.colorTheme === undefined ? {} : { colorTheme: draft.preAlloc.colorTheme }),
161
- ...(draft.preAlloc?.stylePinned === true ? { stylePinned: true } : {}),
162
- });
163
- const rClaimUnowned = await claimDraftState(vctx, draft.chatId, ["unowned"], "attached");
164
- if (rClaimUnowned.isErr())
165
- return Result.Err(rClaimUnowned);
166
- if (rClaimUnowned.Ok()) {
167
- return Result.Ok({ chatId: draft.chatId, ownerHandle: chosen, appSlug, persisted: false });
122
+ const settled = await readDraftChat(vctx, input);
123
+ if (settled.isErr())
124
+ return Result.Err(settled.Err());
125
+ const owned = settled.Ok();
126
+ if (owned === undefined)
127
+ return Result.Err(mkResError("draft not found", DRAFT_NOT_FOUND_CODE));
128
+ return finalizeDraftAttachment(vctx, { ...input, appSlug: owned.appSlug });
168
129
  }
169
- const rClaimParked = await claimDraftState(vctx, draft.chatId, ["turn-parked"], "attached");
170
- if (rClaimParked.isErr())
171
- return Result.Err(rClaimParked);
172
- if (!rClaimParked.Ok()) {
173
- return Result.Ok({ chatId: draft.chatId, ownerHandle: chosen, appSlug, persisted: false });
174
- }
175
- const rPersist = await runDeferredPersist(vctx, {
176
- chatId: draft.chatId,
177
- ownerHandle: chosen,
178
- appSlug,
179
- userId: input.userId,
180
- auth: input.auth,
181
- verifiedAuth: input.verifiedAuth,
182
- });
183
- if (rPersist.isErr())
184
- return Result.Err(rPersist);
185
- return Result.Ok({ chatId: draft.chatId, ownerHandle: chosen, appSlug, persisted: rPersist.Ok() });
130
+ return finalizeDraftAttachment(vctx, { ...input, appSlug: moved.appSlug, chosenTitle: moved.chosenTitle });
131
+ }
132
+ async function finalizeDraftAttachment(vctx, input) {
133
+ const finish = async (txCtx) => {
134
+ const loaded = await readDraftChat(txCtx, input);
135
+ if (loaded.isErr())
136
+ return Result.Err(loaded.Err());
137
+ const draft = loaded.Ok();
138
+ if (draft === undefined || draft.ownerHandle === DRAFT_OWNER_HANDLE)
139
+ return Result.Err("draft attachment unavailable");
140
+ const result = { chatId: draft.chatId, ownerHandle: draft.ownerHandle, appSlug: draft.appSlug, persisted: false };
141
+ if (draft.preAlloc !== undefined) {
142
+ const materialized = await materializeDraftSettings(txCtx, {
143
+ draft,
144
+ userId: input.userId,
145
+ chosen: draft.ownerHandle,
146
+ appSlug: draft.appSlug,
147
+ chosenTitle: input.chosenTitle ?? draft.preAlloc.pairs?.find((pair) => toRFC2822_32ByteLength(pair.slug) === draft.appSlug)?.title,
148
+ });
149
+ if (materialized.isErr())
150
+ return Result.Err(materialized.Err());
151
+ }
152
+ const unowned = await claimDraftState(txCtx, draft.chatId, ["unowned"], "attached");
153
+ if (unowned.isErr())
154
+ return Result.Err(unowned.Err());
155
+ if (unowned.Ok())
156
+ return Result.Ok(result);
157
+ const parked = await claimDraftState(txCtx, draft.chatId, ["turn-parked"], "attached");
158
+ if (parked.isErr())
159
+ return Result.Err(parked.Err());
160
+ const turns = txCtx.sql.tables.openTurns;
161
+ const live = await txCtx.sql.db
162
+ .select({ promptId: turns.promptId })
163
+ .from(turns)
164
+ .where(and(eq(turns.chatId, draft.chatId), eq(turns.status, "open")))
165
+ .limit(1);
166
+ if (parked.Ok() === false && live.length > 0)
167
+ return Result.Ok(result);
168
+ const pc = txCtx.sql.tables.promptContexts;
169
+ const existing = await txCtx.sql.db
170
+ .select({ promptId: pc.promptId })
171
+ .from(pc)
172
+ .where(and(eq(pc.chatId, draft.chatId), eq(pc.userId, input.userId), isNotNull(pc.fsId)))
173
+ .limit(1);
174
+ if (existing.length > 0)
175
+ return Result.Ok(result);
176
+ const cs = txCtx.sql.tables.chatSections;
177
+ const source = await txCtx.sql.db
178
+ .select({ promptId: pc.promptId })
179
+ .from(pc)
180
+ .innerJoin(cs, and(eq(cs.chatId, pc.chatId), eq(cs.promptId, pc.promptId)))
181
+ .where(and(eq(pc.chatId, draft.chatId), eq(pc.userId, input.userId), isNull(pc.fsId)))
182
+ .limit(1);
183
+ if (parked.Ok() === false && source.length === 0)
184
+ return Result.Ok(result);
185
+ const persisted = await runDeferredPersist(txCtx, { ...input, ownerHandle: draft.ownerHandle, appSlug: draft.appSlug });
186
+ if (persisted.isErr())
187
+ return Result.Err(persisted.Err());
188
+ return Result.Ok({ ...result, persisted: persisted.Ok() });
189
+ };
190
+ if (vctx.sql.flavour !== "pg")
191
+ return exception2Result(() => finish(vctx));
192
+ let refusal;
193
+ const transaction = await exception2Result(() => vctx.sql.db.transaction(async (db) => {
194
+ const txCtx = withDb(vctx, db);
195
+ await lockAppRelease(txCtx, input.userId, input.appSlug);
196
+ const result = await finish(txCtx);
197
+ if (result.isErr()) {
198
+ refusal = result;
199
+ db.rollback();
200
+ }
201
+ return result;
202
+ }));
203
+ return refusal ?? transaction;
186
204
  }
187
205
  async function runDeferredPersist(vctx, args) {
188
206
  const rFiles = await rebuildDraftFileSystem(vctx, args.chatId);
@@ -213,7 +231,10 @@ async function runDeferredPersist(vctx, args) {
213
231
  const rBackfill = await exception2Result(() => vctx.sql.db
214
232
  .update(vctx.sql.tables.promptContexts)
215
233
  .set({ fsId })
216
- .where(and(eq(vctx.sql.tables.promptContexts.chatId, args.chatId), isNull(vctx.sql.tables.promptContexts.fsId))));
234
+ .where(and(eq(vctx.sql.tables.promptContexts.chatId, args.chatId), isNull(vctx.sql.tables.promptContexts.fsId), inArray(vctx.sql.tables.promptContexts.promptId, vctx.sql.db
235
+ .select({ promptId: vctx.sql.tables.chatSections.promptId })
236
+ .from(vctx.sql.tables.chatSections)
237
+ .where(eq(vctx.sql.tables.chatSections.chatId, args.chatId))))));
217
238
  if (rBackfill.isErr())
218
239
  return Result.Err(rBackfill);
219
240
  await autoPublishOnPersist(vctx, {
@@ -226,4 +247,43 @@ async function runDeferredPersist(vctx, args) {
226
247
  });
227
248
  return Result.Ok(true);
228
249
  }
250
+ async function materializeDraftSettings(vctx, { draft, userId, chosen, appSlug, chosenTitle, }) {
251
+ const bufferedAccess = draft.preAlloc?.deferred?.access?.needed === true
252
+ ? { needed: true, why: draft.preAlloc.deferred.access.why }
253
+ : undefined;
254
+ const bufferedBackend = draft.preAlloc?.deferred?.backend?.recommended === true
255
+ ? { recommended: true, why: draft.preAlloc.deferred.backend.why }
256
+ : undefined;
257
+ const bufferedDeferred = bufferedAccess === undefined && bufferedBackend === undefined
258
+ ? undefined
259
+ : {
260
+ ...(bufferedAccess === undefined ? {} : { access: bufferedAccess }),
261
+ ...(bufferedBackend === undefined ? {} : { backend: bufferedBackend }),
262
+ };
263
+ const written = await writePreAllocActiveEntries(vctx, {
264
+ userId,
265
+ ownerHandle: chosen,
266
+ appSlug,
267
+ ...(chosenTitle === undefined ? {} : { title: chosenTitle }),
268
+ ...(draft.preAlloc?.skills === undefined ? {} : { skills: draft.preAlloc.skills }),
269
+ ...(draft.preAlloc?.iconDescription === undefined ? {} : { iconDescription: draft.preAlloc.iconDescription }),
270
+ ...(draft.preAlloc?.theme === undefined ? {} : { theme: draft.preAlloc.theme }),
271
+ ...(draft.preAlloc?.enrichedPrompt === undefined ? {} : { enrichedPrompt: draft.preAlloc.enrichedPrompt }),
272
+ ...(draft.preAlloc?.privacySensitive === undefined ? {} : { privacySensitive: draft.preAlloc.privacySensitive }),
273
+ ...(bufferedDeferred === undefined ? {} : { deferred: bufferedDeferred }),
274
+ ...(draft.preAlloc?.variety === undefined ? {} : { variety: draft.preAlloc.variety }),
275
+ ...(draft.preAlloc?.varietyPinned === true ? { varietyPinned: true } : {}),
276
+ ...(draft.preAlloc?.textureNote === undefined ? {} : { textureNote: draft.preAlloc.textureNote }),
277
+ ...(draft.preAlloc?.style === undefined ? {} : { style: draft.preAlloc.style }),
278
+ ...(draft.preAlloc?.colorTheme === undefined ? {} : { colorTheme: draft.preAlloc.colorTheme }),
279
+ ...(draft.preAlloc?.stylePinned === true ? { stylePinned: true } : {}),
280
+ });
281
+ if (written.isErr())
282
+ return Result.Err(written.Err());
283
+ const cleared = await exception2Result(() => vctx.sql.db
284
+ .update(vctx.sql.tables.chatContexts)
285
+ .set({ draftPreAlloc: null })
286
+ .where(eq(vctx.sql.tables.chatContexts.chatId, draft.chatId)));
287
+ return cleared.isErr() ? Result.Err(cleared.Err()) : Result.Ok(undefined);
288
+ }
229
289
  //# sourceMappingURL=attach-draft-handle.js.map