@mndrk/agx 2.0.39 → 2.0.41

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 (135) hide show
  1. package/cloud-runtime/standalone/.next/BUILD_ID +1 -1
  2. package/cloud-runtime/standalone/.next/build-manifest.json +2 -2
  3. package/cloud-runtime/standalone/.next/prerender-manifest.json +3 -3
  4. package/cloud-runtime/standalone/.next/server/app/_global-error.html +2 -2
  5. package/cloud-runtime/standalone/.next/server/app/_global-error.rsc +1 -1
  6. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  7. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  8. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  9. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  10. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  11. package/cloud-runtime/standalone/.next/server/app/_not-found.html +2 -2
  12. package/cloud-runtime/standalone/.next/server/app/_not-found.rsc +1 -1
  13. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  14. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  15. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  16. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  17. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  18. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  19. package/cloud-runtime/standalone/.next/server/app/agents.html +2 -2
  20. package/cloud-runtime/standalone/.next/server/app/agents.rsc +1 -1
  21. package/cloud-runtime/standalone/.next/server/app/agents.segments/_full.segment.rsc +1 -1
  22. package/cloud-runtime/standalone/.next/server/app/agents.segments/_head.segment.rsc +1 -1
  23. package/cloud-runtime/standalone/.next/server/app/agents.segments/_index.segment.rsc +1 -1
  24. package/cloud-runtime/standalone/.next/server/app/agents.segments/_tree.segment.rsc +1 -1
  25. package/cloud-runtime/standalone/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +1 -1
  26. package/cloud-runtime/standalone/.next/server/app/agents.segments/agents.segment.rsc +1 -1
  27. package/cloud-runtime/standalone/.next/server/app/automations.html +2 -2
  28. package/cloud-runtime/standalone/.next/server/app/automations.rsc +1 -1
  29. package/cloud-runtime/standalone/.next/server/app/automations.segments/_full.segment.rsc +1 -1
  30. package/cloud-runtime/standalone/.next/server/app/automations.segments/_head.segment.rsc +1 -1
  31. package/cloud-runtime/standalone/.next/server/app/automations.segments/_index.segment.rsc +1 -1
  32. package/cloud-runtime/standalone/.next/server/app/automations.segments/_tree.segment.rsc +1 -1
  33. package/cloud-runtime/standalone/.next/server/app/automations.segments/automations/__PAGE__.segment.rsc +1 -1
  34. package/cloud-runtime/standalone/.next/server/app/automations.segments/automations.segment.rsc +1 -1
  35. package/cloud-runtime/standalone/.next/server/app/board.html +2 -2
  36. package/cloud-runtime/standalone/.next/server/app/board.rsc +1 -1
  37. package/cloud-runtime/standalone/.next/server/app/board.segments/_full.segment.rsc +1 -1
  38. package/cloud-runtime/standalone/.next/server/app/board.segments/_head.segment.rsc +1 -1
  39. package/cloud-runtime/standalone/.next/server/app/board.segments/_index.segment.rsc +1 -1
  40. package/cloud-runtime/standalone/.next/server/app/board.segments/_tree.segment.rsc +1 -1
  41. package/cloud-runtime/standalone/.next/server/app/board.segments/board/__PAGE__.segment.rsc +1 -1
  42. package/cloud-runtime/standalone/.next/server/app/board.segments/board.segment.rsc +1 -1
  43. package/cloud-runtime/standalone/.next/server/app/execution-graph.html +2 -2
  44. package/cloud-runtime/standalone/.next/server/app/execution-graph.rsc +1 -1
  45. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_full.segment.rsc +1 -1
  46. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_head.segment.rsc +1 -1
  47. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_index.segment.rsc +1 -1
  48. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_tree.segment.rsc +1 -1
  49. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/execution-graph/__PAGE__.segment.rsc +1 -1
  50. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/execution-graph.segment.rsc +1 -1
  51. package/cloud-runtime/standalone/.next/server/app/index.html +2 -2
  52. package/cloud-runtime/standalone/.next/server/app/index.rsc +1 -1
  53. package/cloud-runtime/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  54. package/cloud-runtime/standalone/.next/server/app/index.segments/_full.segment.rsc +1 -1
  55. package/cloud-runtime/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  56. package/cloud-runtime/standalone/.next/server/app/index.segments/_index.segment.rsc +1 -1
  57. package/cloud-runtime/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  58. package/cloud-runtime/standalone/.next/server/app/projects/orphans.html +2 -2
  59. package/cloud-runtime/standalone/.next/server/app/projects/orphans.rsc +1 -1
  60. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_full.segment.rsc +1 -1
  61. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_head.segment.rsc +1 -1
  62. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_index.segment.rsc +1 -1
  63. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_tree.segment.rsc +1 -1
  64. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects/orphans/__PAGE__.segment.rsc +1 -1
  65. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects/orphans.segment.rsc +1 -1
  66. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects.segment.rsc +1 -1
  67. package/cloud-runtime/standalone/.next/server/app/projects.html +2 -2
  68. package/cloud-runtime/standalone/.next/server/app/projects.rsc +1 -1
  69. package/cloud-runtime/standalone/.next/server/app/projects.segments/_full.segment.rsc +1 -1
  70. package/cloud-runtime/standalone/.next/server/app/projects.segments/_head.segment.rsc +1 -1
  71. package/cloud-runtime/standalone/.next/server/app/projects.segments/_index.segment.rsc +1 -1
  72. package/cloud-runtime/standalone/.next/server/app/projects.segments/_tree.segment.rsc +1 -1
  73. package/cloud-runtime/standalone/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +1 -1
  74. package/cloud-runtime/standalone/.next/server/app/projects.segments/projects.segment.rsc +1 -1
  75. package/cloud-runtime/standalone/.next/server/app/settings.html +2 -2
  76. package/cloud-runtime/standalone/.next/server/app/settings.rsc +1 -1
  77. package/cloud-runtime/standalone/.next/server/app/settings.segments/_full.segment.rsc +1 -1
  78. package/cloud-runtime/standalone/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  79. package/cloud-runtime/standalone/.next/server/app/settings.segments/_index.segment.rsc +1 -1
  80. package/cloud-runtime/standalone/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
  81. package/cloud-runtime/standalone/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
  82. package/cloud-runtime/standalone/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  83. package/cloud-runtime/standalone/.next/server/app/skills.html +2 -2
  84. package/cloud-runtime/standalone/.next/server/app/skills.rsc +1 -1
  85. package/cloud-runtime/standalone/.next/server/app/skills.segments/_full.segment.rsc +1 -1
  86. package/cloud-runtime/standalone/.next/server/app/skills.segments/_head.segment.rsc +1 -1
  87. package/cloud-runtime/standalone/.next/server/app/skills.segments/_index.segment.rsc +1 -1
  88. package/cloud-runtime/standalone/.next/server/app/skills.segments/_tree.segment.rsc +1 -1
  89. package/cloud-runtime/standalone/.next/server/app/skills.segments/skills/__PAGE__.segment.rsc +1 -1
  90. package/cloud-runtime/standalone/.next/server/app/skills.segments/skills.segment.rsc +1 -1
  91. package/cloud-runtime/standalone/.next/server/app/status.html +2 -2
  92. package/cloud-runtime/standalone/.next/server/app/status.rsc +1 -1
  93. package/cloud-runtime/standalone/.next/server/app/status.segments/_full.segment.rsc +1 -1
  94. package/cloud-runtime/standalone/.next/server/app/status.segments/_head.segment.rsc +1 -1
  95. package/cloud-runtime/standalone/.next/server/app/status.segments/_index.segment.rsc +1 -1
  96. package/cloud-runtime/standalone/.next/server/app/status.segments/_tree.segment.rsc +1 -1
  97. package/cloud-runtime/standalone/.next/server/app/status.segments/status/__PAGE__.segment.rsc +1 -1
  98. package/cloud-runtime/standalone/.next/server/app/status.segments/status.segment.rsc +1 -1
  99. package/cloud-runtime/standalone/.next/server/app/welcome.html +2 -2
  100. package/cloud-runtime/standalone/.next/server/app/welcome.rsc +1 -1
  101. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_full.segment.rsc +1 -1
  102. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_head.segment.rsc +1 -1
  103. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_index.segment.rsc +1 -1
  104. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_tree.segment.rsc +1 -1
  105. package/cloud-runtime/standalone/.next/server/app/welcome.segments/welcome/__PAGE__.segment.rsc +1 -1
  106. package/cloud-runtime/standalone/.next/server/app/welcome.segments/welcome.segment.rsc +1 -1
  107. package/cloud-runtime/standalone/.next/server/chunks/{[externals]__986fcdb7._.js → [externals]__bc6c7111._.js} +1 -1
  108. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__4bce7db7._.js → [root-of-the-server]__09ca81e1._.js} +24 -24
  109. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__f9cff4b0._.js → [root-of-the-server]__1017e012._.js} +2 -2
  110. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__1ac3236d._.js +25 -0
  111. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__762ab29c._.js → [root-of-the-server]__236c35bb._.js} +2 -2
  112. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__ab7343c8._.js → [root-of-the-server]__a1e62918._.js} +1 -1
  113. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__da3a1ce7._.js → [root-of-the-server]__dc542063._.js} +2 -2
  114. package/cloud-runtime/standalone/.next/server/chunks/_22fe5fd2._.js +3 -0
  115. package/cloud-runtime/standalone/.next/server/chunks/lib_2492d514._.js +81 -0
  116. package/cloud-runtime/standalone/.next/server/chunks/lib_281e5787._.js +16 -0
  117. package/cloud-runtime/standalone/.next/server/chunks/lib_63067e21._.js +16 -0
  118. package/cloud-runtime/standalone/.next/server/chunks/lib_orchestrator_chat-processor_ts_4c335719._.js +134 -0
  119. package/cloud-runtime/standalone/.next/server/chunks/lib_sqlite-query-adapter_ts_3ea4d849._.js +82 -21
  120. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_def8bfbe.js +11 -5
  121. package/cloud-runtime/standalone/.next/server/chunks/ssr/node_modules_next_dist_61a87db9._.js +1 -1
  122. package/cloud-runtime/standalone/.next/server/instrumentation.js +1 -1
  123. package/cloud-runtime/standalone/.next/server/middleware-manifest.json +5 -5
  124. package/cloud-runtime/standalone/.next/server/pages/404.html +2 -2
  125. package/cloud-runtime/standalone/.next/server/pages/500.html +2 -2
  126. package/cloud-runtime/standalone/.next/server/server-reference-manifest.js +1 -1
  127. package/cloud-runtime/standalone/.next/server/server-reference-manifest.json +1 -1
  128. package/cloud-runtime/standalone/app/api/prompt-jobs/poll/route.ts +2 -2
  129. package/cloud-runtime/standalone/instrumentation.ts +2 -0
  130. package/package.json +1 -1
  131. package/cloud-runtime/standalone/.next/server/chunks/_17e53c87._.js +0 -3
  132. package/cloud-runtime/standalone/.next/server/chunks/lib_ea45fe73._.js +0 -94
  133. /package/cloud-runtime/standalone/.next/static/{9PXl40CrFxI8nirdJ1A-T → uSe1ovd3mKmeJLdjjWIQA}/_buildManifest.js +0 -0
  134. /package/cloud-runtime/standalone/.next/static/{9PXl40CrFxI8nirdJ1A-T → uSe1ovd3mKmeJLdjjWIQA}/_clientMiddlewareManifest.json +0 -0
  135. /package/cloud-runtime/standalone/.next/static/{9PXl40CrFxI8nirdJ1A-T → uSe1ovd3mKmeJLdjjWIQA}/_ssgManifest.js +0 -0
@@ -1,4 +1,70 @@
1
- module.exports=[65196,86213,e=>{"use strict";var t=e.x("node:sqlite",()=>require("node:sqlite"),!0),r=e.i(42969),i=e.i(22734),n=e.i(14747),o=e.i(46786);let a={id:"2c3cc1ca-956d-4b62-b295-4d2d3374103f",email:process.env.AGX_BOARD_USER_EMAIL||"local@agx.board",name:process.env.AGX_BOARD_USER_NAME||"Local Board User"};e.s(["LOCAL_USER",0,a],86213),(0,n.join)((0,o.homedir)(),".agx","agents"),(0,n.join)((0,o.homedir)(),".agx","agents"),(0,n.join)((0,o.homedir)(),".agx","agents");let s=(0,n.join)((0,o.homedir)(),".agx","agents");var l=e.x("node:sqlite",()=>require("node:sqlite"),!0);let d=process.env.AGX_GROUP_CHAT_DIR?.trim()||n.default.join(o.default.homedir(),".agx","group-chat"),E=n.default.join(d,"history.sqlite"),T=process.env.AGX_AGENTS_DIR?.trim()||n.default.join(o.default.homedir(),".agx","agents");function p(){let e,t,o=((0,i.mkdirSync)(d,{recursive:!0}),e=new l.DatabaseSync(E),(0,r.pragmaSet)(e,"journal_mode = WAL"),e.exec(`
1
+ module.exports=[65196,86213,91126,69605,94529,93634,e=>{"use strict";var t=e.x("node:sqlite",()=>require("node:sqlite"),!0),r=e.i(42969),n=e.i(22734),i=e.i(14747),o=e.i(46786);let a={id:"2c3cc1ca-956d-4b62-b295-4d2d3374103f",email:process.env.AGX_BOARD_USER_EMAIL||"local@agx.board",name:process.env.AGX_BOARD_USER_NAME||"Local Board User"};e.s(["LOCAL_USER",0,a],86213);let s=(0,i.join)((0,o.homedir)(),".agx","agents");function l(e,t,r){try{let o;o=(0,i.join)(s,e),(0,n.existsSync)(o)||(0,n.mkdirSync)(o,{recursive:!0});let a={t:new Date().toISOString(),agent:e,action:t,...r};(0,n.appendFileSync)((0,i.join)(s,e,"activity.jsonl"),JSON.stringify(a)+"\n","utf-8")}catch{}}e.s(["logActivity",()=>l],91126);let d=(0,i.join)((0,o.homedir)(),".agx","agents");function c(e){return(0,i.join)(d,e,"self.md")}function p(e){return(0,i.join)(d,e,"reflection-state.json")}function E(e){let t=c(e);if(!(0,n.existsSync)(t))return null;let r=(0,n.readFileSync)(t,"utf-8");if(!r.trim())return null;let i=r.split("\n"),o=0,a=new Date().toISOString(),s=0;if("---"===i[0])for(let e=1;e<i.length;e++){if("---"===i[e]){s=e+1;break}let[t,...r]=i[e].split(": "),n=r.join(": ");"version"===t&&(o=parseInt(n,10)||0),"derivedAt"===t&&(a=n)}return{agentId:e,content:i.slice(s).join("\n").trim(),version:o,derivedAt:a}}function u(e,t,r){let o=(0,i.join)(d,e);(0,n.existsSync)(o)||(0,n.mkdirSync)(o,{recursive:!0});let a=new Date().toISOString(),s=`---
2
+ version: ${r}
3
+ derivedAt: ${a}
4
+ ---
5
+ ${t}
6
+ `,p=c(e)+".tmp";(0,n.writeFileSync)(p,s,"utf-8"),(0,n.renameSync)(p,c(e)),l(e,"self-updated",{meta:{version:r}})}function T(e){let t=p(e);if(!(0,n.existsSync)(t))return null;try{let e=JSON.parse((0,n.readFileSync)(t,"utf-8")),r="string"==typeof e?.lastProcessedJournalId&&e.lastProcessedJournalId.trim()?e.lastProcessedJournalId.trim():null,i="string"==typeof e?.updatedAt&&e.updatedAt.trim()?e.updatedAt:new Date().toISOString();return{lastProcessedJournalId:r,updatedAt:i}}catch{return null}}function m(e,t){let r=(0,i.join)(d,e);(0,n.existsSync)(r)||(0,n.mkdirSync)(r,{recursive:!0});let o=p(e)+".tmp";(0,n.writeFileSync)(o,JSON.stringify(t,null,2),"utf-8"),(0,n.renameSync)(o,p(e))}function N(e,t,r,n,i){let o,a,s,l=(o=t?.content||`I am ${e.name}. ${e.seed}`,a=r.map(e=>{let t=[`- [${e.t}] ${e.observation}`];return e.judgement&&t.push(` Judgement: ${e.judgement}`),e.comparison&&t.push(` Comparison: ${e.comparison}`),e.delta&&t.push(` Delta: ${e.delta}`),e.intent&&t.push(` Intent: ${e.intent}`),t.join("\n")}).join("\n"),s=n.filter(t=>t.agentId!==e.name).map(e=>`### ${e.agentId}
7
+ ${e.content}`).join("\n\n"),`You are ${e.name}. Voice: ${e.voice}.
8
+
9
+ ## Canonical Identity
10
+ ${e.seed}
11
+
12
+ ## Current Self-Model (v${t?.version??0})
13
+ ${o}
14
+
15
+ ## Recent Journal Entries (since last reflection)
16
+ These entries are evidence about how you worked. Treat them as signals, not ground truth. Use them to identify patterns in execution, coordination, inquiry, and specialization. Do NOT repeat or reference specific technical content from past conversations.
17
+ ${a||"(none)"}
18
+
19
+ ## Team — Other Agents' Current Self-Models
20
+ ${s||"(no other agents)"}
21
+
22
+ ## Instructions
23
+ Write your updated self-model. This is not canonical identity. It is your current understanding of how you best contribute, where you fit in the team, and what specialization you should lean into next.
24
+
25
+ Consider:
26
+ - What patterns are emerging in your work?
27
+ - What kind of work do you reliably do well?
28
+ - Where are you overlapping too much with other agents?
29
+ - What role or niche seems under-covered in this team?
30
+ - How should you specialize further in this project context?
31
+
32
+ Do NOT reference specific files, functions, or technical details from past conversations. Focus on your evolving capabilities and working style.
33
+
34
+ Write in first person. Be specific about your strengths, gaps, comparative fit, and next direction. This is not a summary and not an autobiography. It is a concise specialization-oriented self-model. Keep it under 200 words.`);return`${l}
35
+
36
+ ## Existing Agent Memories
37
+ ${0===i.length?"(none)":i.map(e=>`- [${e.kind}] ${e.title}: ${e.body}`).join("\n")}
38
+
39
+ ## Output Format
40
+ Return ONLY a JSON object with this exact shape:
41
+ {
42
+ "self_model": "updated self-model text",
43
+ "memories": [
44
+ {
45
+ "kind": "pattern" | "preference" | "constraint" | "decision" | "lesson" | "gotcha",
46
+ "title": "short title",
47
+ "body": "one concise durable behavior-level memory",
48
+ "confidence": 0.0,
49
+ "durability": 0.0,
50
+ "tags": ["optional", "tags"],
51
+ "evidence": [{"id":"journal-entry-id","note":"short evidence note"}]
52
+ }
53
+ ]
54
+ }
55
+
56
+ Rules:
57
+ - Emit 0-3 memories.
58
+ - Memories must be durable behavior-level insights about how you work best, collaborate, decide, or fail repeatedly.
59
+ - Do not include task-specific technical facts unless they clearly generalize into agent behavior.
60
+ - Do not restate memories already covered in Existing Agent Memories.
61
+ - If nothing genuinely new was learned, return an empty memories array.
62
+ - Do not wrap the JSON in markdown fences.`}e.s(["buildStructuredReflectionPrompt",()=>N,"readReflectionState",()=>T,"readSelf",()=>E,"writeReflectionState",()=>m,"writeSelf",()=>u],69605);let _=(0,i.join)((0,o.homedir)(),".agx","agents");function L(e){return(0,i.join)(_,e)}function f(e){return(0,i.join)(L(e),"journal.jsonl")}function h(e){let t=f(e);return(0,n.existsSync)(t)?(0,n.readFileSync)(t,"utf-8").split("\n").filter(e=>e.trim()):[]}function g(e,t){let[r,n]=String(t||"").split(":");if(r!==e)return 0;let i=parseInt(n||"0",10);return Number.isFinite(i)?i:0}function S(e,t){let r;r=L(e),(0,n.existsSync)(r)||(0,n.mkdirSync)(r,{recursive:!0});let i=h(e),o=function(e,t){let r=0;for(let n of t)try{let t=JSON.parse(n),[i,o]=String(t.id||"").split(":");if(i!==e)continue;let a=parseInt(o||"0",10);Number.isFinite(a)&&a>r&&(r=a)}catch{}return r}(e,i),a=`${e}:${o+1}`,s={...t,id:t.id?.trim()||a},d=JSON.stringify(s)+"\n";return(0,n.appendFileSync)(f(e),d,"utf-8"),l(e,"reflection"===t.type?"reflection":"journal-post",{thread:s.thread,meta:{entryId:s.id}}),s}function O(e,t){let r=h(e),n=[];for(let e of r)try{n.push(JSON.parse(e))}catch{}return n.reverse(),t?n.slice(0,t):n}function A(e,t){let r=h(e),n=g(e,t),i=[];for(let t of r)try{let r=JSON.parse(t);g(e,r.id)>n&&i.push(r)}catch{}return i}e.s(["appendJournal",()=>S,"readJournal",()=>O,"readJournalSince",()=>A],94529);let I=(0,i.join)((0,o.homedir)(),".agx","agents");function y(e,t){let r=(0,i.join)(I,e);(0,n.existsSync)(r)||(0,n.mkdirSync)(r,{recursive:!0});let o=t?.voice?.trim()||"conversational, concise, practical",a=t?.seed?.trim()||"I evolve through experience and collaboration.",s=(0,i.join)(r,"identity.json");(0,n.existsSync)(s)||(0,n.writeFileSync)(s,JSON.stringify({name:e,voice:o,seed:a},null,2)+"\n","utf-8");let l=(0,i.join)(r,"journal.jsonl"),d=(0,i.join)(r,"reactions.jsonl"),c=(0,i.join)(r,"comments.jsonl"),p=(0,i.join)(r,"activity.jsonl"),E=(0,i.join)(r,"self.md");(0,n.existsSync)(l)||(0,n.writeFileSync)(l,"","utf-8"),(0,n.existsSync)(d)||(0,n.writeFileSync)(d,"","utf-8"),(0,n.existsSync)(c)||(0,n.writeFileSync)(c,"","utf-8"),(0,n.existsSync)(p)||(0,n.writeFileSync)(p,"","utf-8"),(0,n.existsSync)(E)||(0,n.writeFileSync)(E,`---
63
+ version: 0
64
+ derivedAt: ${new Date().toISOString()}
65
+ ---
66
+ I am ${e}. ${a}
67
+ `,"utf-8")}function R(e){let t=(0,i.join)(I,e,"identity.json");if(!(0,n.existsSync)(t))return null;try{return JSON.parse((0,n.readFileSync)(t,"utf-8"))}catch{return null}}function C(){return(0,n.existsSync)(I)?(0,n.readdirSync)(I,{withFileTypes:!0}).filter(e=>e.isDirectory()).map(e=>e.name):[]}function j(e){return C().filter(t=>t!==e).map(e=>E(e)).filter(e=>null!==e)}e.s(["ensureAgent",()=>y,"getTeamSelves",()=>j,"listAgents",()=>C,"readIdentity",()=>R],93634);var U=e.x("node:sqlite",()=>require("node:sqlite"),!0);let D=process.env.AGX_GROUP_CHAT_DIR?.trim()||i.default.join(o.default.homedir(),".agx","group-chat"),b=i.default.join(D,"history.sqlite"),X=process.env.AGX_AGENTS_DIR?.trim()||i.default.join(o.default.homedir(),".agx","agents");function F(){let e,t,o=((0,n.mkdirSync)(D,{recursive:!0}),e=new U.DatabaseSync(b),(0,r.pragmaSet)(e,"journal_mode = WAL"),e.exec(`
2
68
  CREATE TABLE IF NOT EXISTS participants (
3
69
  id TEXT PRIMARY KEY,
4
70
  name TEXT NOT NULL,
@@ -10,15 +76,15 @@ module.exports=[65196,86213,e=>{"use strict";var t=e.x("node:sqlite",()=>require
10
76
  color TEXT NOT NULL,
11
77
  sort_order INTEGER NOT NULL DEFAULT 0
12
78
  );
13
- `),(t=(0,r.pragmaAll)(e,"table_info(participants)")).some(e=>"persona"===e.name)&&(e.exec("ALTER TABLE participants RENAME COLUMN persona TO identity"),e.exec("ALTER TABLE participants RENAME COLUMN persona_file TO identity_file")),t.some(e=>"identity_file"===e.name)||t.some(e=>"persona_file"===e.name)||e.exec("ALTER TABLE participants ADD COLUMN identity_file TEXT"),t.some(e=>"skills_json"===e.name)||e.exec("ALTER TABLE participants ADD COLUMN skills_json TEXT"),t.some(e=>"variables_json"===e.name)||e.exec("ALTER TABLE participants ADD COLUMN variables_json TEXT"),t.some(e=>"sort_order"===e.name)||(e.exec("ALTER TABLE participants ADD COLUMN sort_order INTEGER NOT NULL DEFAULT 0"),e.exec("UPDATE participants SET sort_order = rowid")),!function(e){let t=e.prepare("SELECT id, name, provider FROM participants").all();if(0===t.length)return;let o=new Set(t.map(e=>e.id)),a=new Map(t.map(e=>[e.id,e.id])),s=[];for(let e of t){let t=(e.name||"").trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").replace(/--+/g,"-");if(!t||e.id===t||e.id!==e.provider)continue;o.delete(e.id);let r=function(e,t){if(!t.has(e))return e;let r=2,i=`${e}-${r}`;for(;t.has(i);)r+=1,i=`${e}-${r}`;return i}(t,o);o.add(r),a.set(e.id,r),s.push({from:e.id,to:r,name:e.name})}let l=t.map(e=>({id:a.get(e.id)||e.id,provider:e.provider})),d=new Set(l.map(e=>e.id)),E=new Map;for(let e of l){let t=e.provider.trim();if(!t)continue;let r=E.get(t)||new Set;r.add(e.id),E.set(t,r)}let p=[];for(let[e,t]of E){if(1!==t.size)continue;let[r]=Array.from(t);r&&e!==r&&(d.has(e)||p.push({from:e,to:r}))}if(0===s.length&&0===p.length)return;let c=new Map;for(let e of s)c.set(e.from,e.to);for(let e of p)c.set(e.from,e.to);let u=Array.from(c.entries()).map(([e,t])=>({from:e,to:t})),N=new Set(e.prepare("SELECT name FROM sqlite_master WHERE type = 'table'").all().map(e=>e.name));for(let t of((0,r.transactionFn)(e,(t,r)=>{let i=e.prepare("UPDATE participants SET id = ? WHERE id = ?"),n=N.has("messages")?e.prepare("UPDATE messages SET participant_id = ? WHERE participant_id = ?"):null,o=N.has("agent_processes")?e.prepare("UPDATE agent_processes SET agent_id = ? WHERE agent_id = ?"):null,a=N.has("message_reactions")?e.prepare("UPDATE message_reactions SET participant_id = ? WHERE participant_id = ?"):null;for(let e of t)i.run(e.to,e.from);for(let e of r)n?.run(e.to,e.from),o?.run(e.to,e.from),a?.run(e.to,e.from)})(s.map(e=>({from:e.from,to:e.to})),u),s))!function(e,t,r){if(!e||!t||e===t)return;let o=n.default.join(T,e),a=n.default.join(T,t);if(!(0,i.existsSync)(o)||(0,i.existsSync)(a))return;(0,i.mkdirSync)(T,{recursive:!0}),(0,i.renameSync)(o,a);let s=n.default.join(a,"identity.json");if((0,i.existsSync)(s))try{let e={...JSON.parse((0,i.readFileSync)(s,"utf8")),name:"string"==typeof r&&r.trim()?r.trim():t};(0,i.writeFileSync)(s,`${JSON.stringify(e,null,2)}
14
- `,"utf8")}catch{}}(t.from,t.to,t.name)}(e),e);try{return o.prepare("SELECT id, name, provider, model, identity, identity_file, skills_json, variables_json, color, sort_order FROM participants ORDER BY sort_order ASC, rowid ASC").all().map(e=>({id:e.id,name:e.name,provider:e.provider,model:e.model,color:e.color,...e.identity?{identity:e.identity}:{},...e.identity_file?{identityFile:e.identity_file}:{},...e.variables_json?(()=>{try{let t=JSON.parse(e.variables_json);if(t&&"object"==typeof t&&!Array.isArray(t))return{variables:t};return{}}catch{return{}}})():{},...e.skills_json?{skills:(()=>{try{let t=JSON.parse(e.skills_json);if(!Array.isArray(t))return[];return t.map(e=>"string"==typeof e?{file:e,condition:""}:e)}catch{return[]}})()}:{}}))}finally{o.close()}}var c=e.i(28237);let u="legacy_workspaces_to_projects_v1";function N(e){e.exec(`
79
+ `),(t=(0,r.pragmaAll)(e,"table_info(participants)")).some(e=>"persona"===e.name)&&(e.exec("ALTER TABLE participants RENAME COLUMN persona TO identity"),e.exec("ALTER TABLE participants RENAME COLUMN persona_file TO identity_file")),t.some(e=>"identity_file"===e.name)||t.some(e=>"persona_file"===e.name)||e.exec("ALTER TABLE participants ADD COLUMN identity_file TEXT"),t.some(e=>"skills_json"===e.name)||e.exec("ALTER TABLE participants ADD COLUMN skills_json TEXT"),t.some(e=>"variables_json"===e.name)||e.exec("ALTER TABLE participants ADD COLUMN variables_json TEXT"),t.some(e=>"sort_order"===e.name)||(e.exec("ALTER TABLE participants ADD COLUMN sort_order INTEGER NOT NULL DEFAULT 0"),e.exec("UPDATE participants SET sort_order = rowid")),!function(e){let t=e.prepare("SELECT id, name, provider FROM participants").all();if(0===t.length)return;let o=new Set(t.map(e=>e.id)),a=new Map(t.map(e=>[e.id,e.id])),s=[];for(let e of t){let t=(e.name||"").trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").replace(/--+/g,"-");if(!t||e.id===t||e.id!==e.provider)continue;o.delete(e.id);let r=function(e,t){if(!t.has(e))return e;let r=2,n=`${e}-${r}`;for(;t.has(n);)r+=1,n=`${e}-${r}`;return n}(t,o);o.add(r),a.set(e.id,r),s.push({from:e.id,to:r,name:e.name})}let l=t.map(e=>({id:a.get(e.id)||e.id,provider:e.provider})),d=new Set(l.map(e=>e.id)),c=new Map;for(let e of l){let t=e.provider.trim();if(!t)continue;let r=c.get(t)||new Set;r.add(e.id),c.set(t,r)}let p=[];for(let[e,t]of c){if(1!==t.size)continue;let[r]=Array.from(t);r&&e!==r&&(d.has(e)||p.push({from:e,to:r}))}if(0===s.length&&0===p.length)return;let E=new Map;for(let e of s)E.set(e.from,e.to);for(let e of p)E.set(e.from,e.to);let u=Array.from(E.entries()).map(([e,t])=>({from:e,to:t})),T=new Set(e.prepare("SELECT name FROM sqlite_master WHERE type = 'table'").all().map(e=>e.name));for(let t of((0,r.transactionFn)(e,(t,r)=>{let n=e.prepare("UPDATE participants SET id = ? WHERE id = ?"),i=T.has("messages")?e.prepare("UPDATE messages SET participant_id = ? WHERE participant_id = ?"):null,o=T.has("agent_processes")?e.prepare("UPDATE agent_processes SET agent_id = ? WHERE agent_id = ?"):null,a=T.has("message_reactions")?e.prepare("UPDATE message_reactions SET participant_id = ? WHERE participant_id = ?"):null;for(let e of t)n.run(e.to,e.from);for(let e of r)i?.run(e.to,e.from),o?.run(e.to,e.from),a?.run(e.to,e.from)})(s.map(e=>({from:e.from,to:e.to})),u),s))!function(e,t,r){if(!e||!t||e===t)return;let o=i.default.join(X,e),a=i.default.join(X,t);if(!(0,n.existsSync)(o)||(0,n.existsSync)(a))return;(0,n.mkdirSync)(X,{recursive:!0}),(0,n.renameSync)(o,a);let s=i.default.join(a,"identity.json");if((0,n.existsSync)(s))try{let e={...JSON.parse((0,n.readFileSync)(s,"utf8")),name:"string"==typeof r&&r.trim()?r.trim():t};(0,n.writeFileSync)(s,`${JSON.stringify(e,null,2)}
80
+ `,"utf8")}catch{}}(t.from,t.to,t.name)}(e),e);try{return o.prepare("SELECT id, name, provider, model, identity, identity_file, skills_json, variables_json, color, sort_order FROM participants ORDER BY sort_order ASC, rowid ASC").all().map(e=>({id:e.id,name:e.name,provider:e.provider,model:e.model,color:e.color,...e.identity?{identity:e.identity}:{},...e.identity_file?{identityFile:e.identity_file}:{},...e.variables_json?(()=>{try{let t=JSON.parse(e.variables_json);if(t&&"object"==typeof t&&!Array.isArray(t))return{variables:t};return{}}catch{return{}}})():{},...e.skills_json?{skills:(()=>{try{let t=JSON.parse(e.skills_json);if(!Array.isArray(t))return[];return t.map(e=>"string"==typeof e?{file:e,condition:""}:e)}catch{return[]}})()}:{}}))}finally{o.close()}}var x=e.i(28237);let w="legacy_workspaces_to_projects_v1";function v(e){e.exec(`
15
81
  CREATE TABLE IF NOT EXISTS app_migrations (
16
82
  key TEXT PRIMARY KEY,
17
83
  applied_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now')),
18
84
  metadata JSON
19
85
  );
20
- `)}let _=process.env.AGX_DATA_DIR||n.default.join(o.default.homedir(),".agx");class L{expr;constructor(e){this.expr=e}}function m(e){return new L(e)}let g=null;function h(){var e;if(g)return g;let o=process.env.SQLITE_DB_PATH||n.default.join(_,"agx-board.db");g=new t.DatabaseSync(o);let l=(0,c.validateSQLiteEnvironment)(g,o);if(l.length>0){let e=l.map(e=>` - ${e.message}${e.fix?` (fix: ${e.fix})`:""}`);throw Error(`SQLite startup validation failed:
21
- ${e.join("\n")}`)}(function(e){let t=n.default.join(process.cwd(),"db","sqlite","001_agx_board_schema.sql");if(!i.default.existsSync(t))return console.warn(`[sqlite] DDL not found at ${t}, skipping schema init`);let r=i.default.readFileSync(t,"utf-8");e.exec(r)})(g),function(e){if(e.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='execution_graphs'").all().length>0&&((0,r.pragmaAll)(e,"table_info(execution_graphs)").some(e=>"schedule"===e.name)||e.exec("ALTER TABLE execution_graphs ADD COLUMN schedule JSON")),e.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='project_memory'").all().length>0&&((0,r.pragmaAll)(e,"table_info(project_memory)").some(e=>"producer"===e.name)||e.exec("ALTER TABLE project_memory ADD COLUMN producer TEXT NOT NULL DEFAULT 'human' CHECK(producer IN ('human', 'system'))"),e.exec("CREATE INDEX IF NOT EXISTS idx_project_memory_producer ON project_memory (producer)")),e.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='agents'").all().length>0){let t=new Set((0,r.pragmaAll)(e,"table_info(agents)").map(e=>e.name));t.has("voice")||e.exec("ALTER TABLE agents ADD COLUMN voice TEXT"),t.has("seed")||e.exec("ALTER TABLE agents ADD COLUMN seed TEXT"),t.has("model")||e.exec("ALTER TABLE agents ADD COLUMN model TEXT"),t.has("provider")||e.exec("ALTER TABLE agents ADD COLUMN provider TEXT"),t.has("color")||e.exec("ALTER TABLE agents ADD COLUMN color TEXT"),t.has("title")||e.exec("ALTER TABLE agents ADD COLUMN title TEXT")}if(e.exec(`
86
+ `)}let k=process.env.AGX_DATA_DIR||i.default.join(o.default.homedir(),".agx");class M{expr;constructor(e){this.expr=e}}function $(e){return new M(e)}let H=null;function Y(){var e;if(H)return H;let o=process.env.SQLITE_DB_PATH||i.default.join(k,"agx-board.db");H=new t.DatabaseSync(o);let s=(0,x.validateSQLiteEnvironment)(H,o);if(s.length>0){let e=s.map(e=>` - ${e.message}${e.fix?` (fix: ${e.fix})`:""}`);throw Error(`SQLite startup validation failed:
87
+ ${e.join("\n")}`)}(function(e){let t=i.default.join(process.cwd(),"db","sqlite","001_agx_board_schema.sql");if(!n.default.existsSync(t))return console.warn(`[sqlite] DDL not found at ${t}, skipping schema init`);let r=n.default.readFileSync(t,"utf-8");e.exec(r)})(H),function(e){if(e.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='execution_graphs'").all().length>0&&((0,r.pragmaAll)(e,"table_info(execution_graphs)").some(e=>"schedule"===e.name)||e.exec("ALTER TABLE execution_graphs ADD COLUMN schedule JSON")),e.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='project_memory'").all().length>0&&((0,r.pragmaAll)(e,"table_info(project_memory)").some(e=>"producer"===e.name)||e.exec("ALTER TABLE project_memory ADD COLUMN producer TEXT NOT NULL DEFAULT 'human' CHECK(producer IN ('human', 'system'))"),e.exec("CREATE INDEX IF NOT EXISTS idx_project_memory_producer ON project_memory (producer)")),e.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='agents'").all().length>0){let t=new Set((0,r.pragmaAll)(e,"table_info(agents)").map(e=>e.name));t.has("voice")||e.exec("ALTER TABLE agents ADD COLUMN voice TEXT"),t.has("seed")||e.exec("ALTER TABLE agents ADD COLUMN seed TEXT"),t.has("model")||e.exec("ALTER TABLE agents ADD COLUMN model TEXT"),t.has("provider")||e.exec("ALTER TABLE agents ADD COLUMN provider TEXT"),t.has("color")||e.exec("ALTER TABLE agents ADD COLUMN color TEXT"),t.has("title")||e.exec("ALTER TABLE agents ADD COLUMN title TEXT")}if(e.exec(`
22
88
  CREATE TABLE IF NOT EXISTS agent_skills (
23
89
  agent_id TEXT NOT NULL REFERENCES agents(id) ON DELETE CASCADE,
24
90
  file TEXT NOT NULL,
@@ -213,15 +279,10 @@ ${e.join("\n")}`)}(function(e){let t=n.default.join(process.cwd(),"db","sqlite",
213
279
  WHEN COALESCE(NULLIF(agents.voice, ''), '') = '' OR COALESCE(NULLIF(agents.seed, ''), '') = ''
214
280
  THEN strftime('%Y-%m-%dT%H:%M:%fZ','now')
215
281
  ELSE agents.updated_at
216
- END`);for(let e of(0,i.existsSync)(s)?(0,i.readdirSync)(s,{withFileTypes:!0}).filter(e=>e.isDirectory()).map(e=>e.name):[]){let r=function(e){let t=(0,n.join)(s,e,"identity.json");if(!(0,i.existsSync)(t))return null;try{return JSON.parse((0,i.readFileSync)(t,"utf-8"))}catch{return null}}(e);t.run(e,a.id,r?.name?.trim()||e,r?.voice?.trim()||null,r?.seed?.trim()||null)}})(e),function(e){let t=p(),r=new Set(e.prepare("SELECT id FROM agents").all().map(e=>e.id)),i=e.prepare(`INSERT INTO agent_skills (agent_id, file, condition)
282
+ END`);for(let e of C()){let r=R(e);t.run(e,a.id,r?.name?.trim()||e,r?.voice?.trim()||null,r?.seed?.trim()||null)}})(e),function(e){let t=F(),r=new Set(e.prepare("SELECT id FROM agents").all().map(e=>e.id)),n=e.prepare(`INSERT INTO agent_skills (agent_id, file, condition)
217
283
  VALUES (?, ?, ?)
218
284
  ON CONFLICT(agent_id, file) DO UPDATE SET
219
- condition = excluded.condition`);for(let e of t)if(r.has(e.id))for(let t of e.skills??[]){let r=t.file?.trim();r&&i.run(e.id,r,t.condition?.trim()||null)}}(e),function(e){for(let t of e.prepare("SELECT id, voice, seed FROM agents").all())!function(e,t){let r=(0,n.join)(s,e);(0,i.existsSync)(r)||(0,i.mkdirSync)(r,{recursive:!0});let o=t?.voice?.trim()||"conversational, concise, practical",a=t?.seed?.trim()||"I evolve through experience and collaboration.",l=(0,n.join)(r,"identity.json");(0,i.existsSync)(l)||(0,i.writeFileSync)(l,JSON.stringify({name:e,voice:o,seed:a},null,2)+"\n","utf-8");let d=(0,n.join)(r,"journal.jsonl"),E=(0,n.join)(r,"reactions.jsonl"),T=(0,n.join)(r,"comments.jsonl"),p=(0,n.join)(r,"activity.jsonl"),c=(0,n.join)(r,"self.md");(0,i.existsSync)(d)||(0,i.writeFileSync)(d,"","utf-8"),(0,i.existsSync)(E)||(0,i.writeFileSync)(E,"","utf-8"),(0,i.existsSync)(T)||(0,i.writeFileSync)(T,"","utf-8"),(0,i.existsSync)(p)||(0,i.writeFileSync)(p,"","utf-8"),(0,i.existsSync)(c)||(0,i.writeFileSync)(c,`---
220
- version: 0
221
- derivedAt: ${new Date().toISOString()}
222
- ---
223
- I am ${e}. ${a}
224
- `,"utf-8")}(t.id,{voice:t.voice??void 0,seed:t.seed??void 0})}(e)}(g);let d=function(e){var t;if(!e)throw Error("autoMigrateLegacyWorkspacesToProjects requires an explicit database handle");if(!e.prepare("SELECT name FROM sqlite_master WHERE type = 'table' AND name = 'teams'").get()||(N(e),e.prepare("SELECT 1 FROM app_migrations WHERE key = ? LIMIT 1").get(u)))return null;let i=function(e){let t;if(!e)throw Error("migrateLegacyWorkspacesToProjects requires an explicit database handle");let i={usersProcessed:0,agentsImported:0,agentSkillsMigrated:0,projectsCreated:0,projectsMatched:0,projectAgentsLinked:0,projectThreadsLinked:0,projectVariablesMigrated:0,remappedThreadLinks:0,warnings:[],projectMappings:[]};if(!e.prepare("SELECT name FROM sqlite_master WHERE type = 'table' AND name = 'teams'").get())return i.warnings.push("No legacy teams table found."),i;let n=p(),o=new Map(n.map(e=>[e.id,e])),{teams:s,teamAgents:l,teamWorkspaces:d}=(t=e.prepare("SELECT id, name, user_id, COALESCE(is_default, 0) AS is_default FROM teams ORDER BY name ASC").all(),{teams:t,teamAgents:e.prepare("SELECT team_id, agent_id, routing_order FROM team_agents ORDER BY team_id, routing_order ASC").all(),teamWorkspaces:e.prepare("SELECT team_id, thread_id FROM team_workspaces ORDER BY team_id, thread_id ASC").all()}),E=new Map;for(let e of s){let t=E.get(e.user_id)??[];t.push(e),E.set(e.user_id,t)}let T=new Map;for(let e of l){let t=T.get(e.team_id)??[];t.push(e),T.set(e.team_id,t)}let c=new Map;for(let e of d){let t=c.get(e.team_id)??[];t.push(e.thread_id),c.set(e.team_id,t)}return(0,r.transaction)(e,()=>{for(let[t,r]of E.entries()){i.usersProcessed++;let s=t||a.id;!function(e,t,r,i){let n=e.prepare(`INSERT INTO agents (id, user_id, name, style, description, model, provider, color, voice, seed)
285
+ condition = excluded.condition`);for(let e of t)if(r.has(e.id))for(let t of e.skills??[]){let r=t.file?.trim();r&&n.run(e.id,r,t.condition?.trim()||null)}}(e),function(e){for(let t of e.prepare("SELECT id, voice, seed FROM agents").all())y(t.id,{voice:t.voice??void 0,seed:t.seed??void 0})}(e)}(H);let l=function(e){var t;if(!e)throw Error("autoMigrateLegacyWorkspacesToProjects requires an explicit database handle");if(!e.prepare("SELECT name FROM sqlite_master WHERE type = 'table' AND name = 'teams'").get()||(v(e),e.prepare("SELECT 1 FROM app_migrations WHERE key = ? LIMIT 1").get(w)))return null;let n=function(e){let t;if(!e)throw Error("migrateLegacyWorkspacesToProjects requires an explicit database handle");let n={usersProcessed:0,agentsImported:0,agentSkillsMigrated:0,projectsCreated:0,projectsMatched:0,projectAgentsLinked:0,projectThreadsLinked:0,projectVariablesMigrated:0,remappedThreadLinks:0,warnings:[],projectMappings:[]};if(!e.prepare("SELECT name FROM sqlite_master WHERE type = 'table' AND name = 'teams'").get())return n.warnings.push("No legacy teams table found."),n;let i=F(),o=new Map(i.map(e=>[e.id,e])),{teams:s,teamAgents:l,teamWorkspaces:d}=(t=e.prepare("SELECT id, name, user_id, COALESCE(is_default, 0) AS is_default FROM teams ORDER BY name ASC").all(),{teams:t,teamAgents:e.prepare("SELECT team_id, agent_id, routing_order FROM team_agents ORDER BY team_id, routing_order ASC").all(),teamWorkspaces:e.prepare("SELECT team_id, thread_id FROM team_workspaces ORDER BY team_id, thread_id ASC").all()}),c=new Map;for(let e of s){let t=c.get(e.user_id)??[];t.push(e),c.set(e.user_id,t)}let p=new Map;for(let e of l){let t=p.get(e.team_id)??[];t.push(e),p.set(e.team_id,t)}let E=new Map;for(let e of d){let t=E.get(e.team_id)??[];t.push(e.thread_id),E.set(e.team_id,t)}return(0,r.transaction)(e,()=>{for(let[t,r]of c.entries()){n.usersProcessed++;let s=t||a.id;!function(e,t,r,n){let i=e.prepare(`INSERT INTO agents (id, user_id, name, style, description, model, provider, color, voice, seed)
225
286
  VALUES (?, ?, ?, 'balanced', ?, ?, ?, ?, NULL, NULL)
226
287
  ON CONFLICT(id) DO UPDATE SET
227
288
  user_id = excluded.user_id,
@@ -230,31 +291,31 @@ I am ${e}. ${a}
230
291
  model = COALESCE(NULLIF(excluded.model, ''), agents.model),
231
292
  provider = COALESCE(NULLIF(excluded.provider, ''), agents.provider),
232
293
  color = COALESCE(NULLIF(excluded.color, ''), agents.color),
233
- updated_at = strftime('%Y-%m-%dT%H:%M:%fZ','now')`),o=e.prepare("SELECT 1 FROM agents WHERE id = ?");for(let e of r){let r=!!o.get(e.id);n.run(e.id,t,e.name,e.identity??null,e.model??null,e.provider??"claude",e.color??"#6B7280"),!r&&i.agentsImported++}}(e,s,n,i),function(e,t,r){let i=e.prepare(`INSERT INTO agent_skills (agent_id, file, condition)
294
+ updated_at = strftime('%Y-%m-%dT%H:%M:%fZ','now')`),o=e.prepare("SELECT 1 FROM agents WHERE id = ?");for(let e of r){let r=!!o.get(e.id);i.run(e.id,t,e.name,e.identity??null,e.model??null,e.provider??"claude",e.color??"#6B7280"),!r&&n.agentsImported++}}(e,s,i,n),function(e,t,r){let n=e.prepare(`INSERT INTO agent_skills (agent_id, file, condition)
234
295
  VALUES (?, ?, ?)
235
296
  ON CONFLICT(agent_id, file) DO UPDATE SET
236
- condition = excluded.condition`);for(let n of t)for(let t of n.skills??[]){let o=t.file?.trim();if(!o)continue;let a=e.prepare("SELECT condition FROM agent_skills WHERE agent_id = ? AND file = ?").get(n.id,o),s=t.condition||null;i.run(n.id,o,s),(!a||a.condition!==s)&&r.agentSkillsMigrated++}}(e,n,i);let l=new Map,d=new Map;for(let t of r){let r=c.get(t.id)??[],n=function(e,t,r,i){var n;let o,a=r.is_default?"default":r.name.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").replace(/--+/g,"-"),s=e.prepare("SELECT id, name FROM projects WHERE user_id = ? AND slug = ? LIMIT 1").get(t,a);if(s)return i.projectsMatched++,s;let l=r.is_default?"Default Project":(o=(n=r.name).trim())?o.split(/\s+/).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" "):n,d=e.prepare(`INSERT INTO projects (user_id, name, slug, description)
297
+ condition = excluded.condition`);for(let i of t)for(let t of i.skills??[]){let o=t.file?.trim();if(!o)continue;let a=e.prepare("SELECT condition FROM agent_skills WHERE agent_id = ? AND file = ?").get(i.id,o),s=t.condition||null;n.run(i.id,o,s),(!a||a.condition!==s)&&r.agentSkillsMigrated++}}(e,i,n);let l=new Map,d=new Map;for(let t of r){let r=E.get(t.id)??[],i=function(e,t,r,n){var i;let o,a=r.is_default?"default":r.name.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").replace(/--+/g,"-"),s=e.prepare("SELECT id, name FROM projects WHERE user_id = ? AND slug = ? LIMIT 1").get(t,a);if(s)return n.projectsMatched++,s;let l=r.is_default?"Default Project":(o=(i=r.name).trim())?o.split(/\s+/).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" "):i,d=e.prepare(`INSERT INTO projects (user_id, name, slug, description)
237
298
  VALUES (?, ?, ?, ?)
238
- RETURNING id, name`).get(t,l,a||`project-${r.id.slice(0,8)}`,"Migrated from legacy workspace/team structure");return i.projectsCreated++,d}(e,s,t,i),o=T.get(t.id)??[];l.set(n.id,o),d.set(n.id,r),i.projectMappings.push({teamId:t.id,teamName:t.name,projectId:n.id,projectName:n.name,threadIds:r})}let E=e.prepare(`INSERT INTO project_agents (project_id, agent_id, routing_order)
299
+ RETURNING id, name`).get(t,l,a||`project-${r.id.slice(0,8)}`,"Migrated from legacy workspace/team structure");return n.projectsCreated++,d}(e,s,t,n),o=p.get(t.id)??[];l.set(i.id,o),d.set(i.id,r),n.projectMappings.push({teamId:t.id,teamName:t.name,projectId:i.id,projectName:i.name,threadIds:r})}let c=e.prepare(`INSERT INTO project_agents (project_id, agent_id, routing_order)
239
300
  VALUES (?, ?, ?)
240
301
  ON CONFLICT(project_id, agent_id) DO UPDATE SET
241
- routing_order = excluded.routing_order`),p=e.prepare("DELETE FROM project_threads WHERE thread_id = ? AND project_id <> ?"),u=e.prepare(`INSERT OR IGNORE INTO project_threads (project_id, thread_id)
242
- VALUES (?, ?)`);for(let[t,r]of l.entries()){for(let e of r)E.run(t,e.agent_id,e.routing_order).changes>0&&i.projectAgentsLinked++;!function(e,t,r,i,n){let o=e.prepare(`INSERT INTO project_variables (project_id, key, value)
302
+ routing_order = excluded.routing_order`),u=e.prepare("DELETE FROM project_threads WHERE thread_id = ? AND project_id <> ?"),T=e.prepare(`INSERT OR IGNORE INTO project_threads (project_id, thread_id)
303
+ VALUES (?, ?)`);for(let[t,r]of l.entries()){for(let e of r)c.run(t,e.agent_id,e.routing_order).changes>0&&n.projectAgentsLinked++;!function(e,t,r,n,i){let o=e.prepare(`INSERT INTO project_variables (project_id, key, value)
243
304
  VALUES (?, ?, ?)
244
- ON CONFLICT(project_id, key) DO UPDATE SET value = excluded.value`),a=e.prepare("SELECT value FROM project_variables WHERE project_id = ? AND key = ?");for(let e of r){let r=i.get(e);if(r)for(let[e,i]of Object.entries(r.variables??{})){let r=a.get(t,e);if(r&&r.value!==i){n.warnings.push(`Variable conflict for project ${t}: key "${e}" kept existing value "${r.value}" over "${i}"`);continue}let s=o.run(t,e,i);!r&&s.changes>0&&n.projectVariablesMigrated++}}}(e,t,r.map(e=>e.agent_id),o,i)}for(let[e,t]of d.entries())for(let r of t){let t=p.run(r,e);i.remappedThreadLinks+=Number(t.changes),u.run(e,r).changes>0&&i.projectThreadsLinked++}}}),i}(e);return t={usersProcessed:i.usersProcessed,agentsImported:i.agentsImported,agentSkillsMigrated:i.agentSkillsMigrated,projectsCreated:i.projectsCreated,projectsMatched:i.projectsMatched,projectAgentsLinked:i.projectAgentsLinked,projectThreadsLinked:i.projectThreadsLinked,projectVariablesMigrated:i.projectVariablesMigrated,remappedThreadLinks:i.remappedThreadLinks,warnings:i.warnings},N(e),e.prepare(`INSERT INTO app_migrations (key, metadata)
305
+ ON CONFLICT(project_id, key) DO UPDATE SET value = excluded.value`),a=e.prepare("SELECT value FROM project_variables WHERE project_id = ? AND key = ?");for(let e of r){let r=n.get(e);if(r)for(let[e,n]of Object.entries(r.variables??{})){let r=a.get(t,e);if(r&&r.value!==n){i.warnings.push(`Variable conflict for project ${t}: key "${e}" kept existing value "${r.value}" over "${n}"`);continue}let s=o.run(t,e,n);!r&&s.changes>0&&i.projectVariablesMigrated++}}}(e,t,r.map(e=>e.agent_id),o,n)}for(let[e,t]of d.entries())for(let r of t){let t=u.run(r,e);n.remappedThreadLinks+=Number(t.changes),T.run(e,r).changes>0&&n.projectThreadsLinked++}}}),n}(e);return t={usersProcessed:n.usersProcessed,agentsImported:n.agentsImported,agentSkillsMigrated:n.agentSkillsMigrated,projectsCreated:n.projectsCreated,projectsMatched:n.projectsMatched,projectAgentsLinked:n.projectAgentsLinked,projectThreadsLinked:n.projectThreadsLinked,projectVariablesMigrated:n.projectVariablesMigrated,remappedThreadLinks:n.remappedThreadLinks,warnings:n.warnings},v(e),e.prepare(`INSERT INTO app_migrations (key, metadata)
245
306
  VALUES (?, json(?))
246
307
  ON CONFLICT(key) DO UPDATE SET
247
308
  applied_at = strftime('%Y-%m-%dT%H:%M:%fZ','now'),
248
- metadata = excluded.metadata`).run(u,JSON.stringify(t)),i}(g);return d&&console.log(`[sqlite] auto-migrated legacy workspaces to projects: ${JSON.stringify({usersProcessed:d.usersProcessed,projectsCreated:d.projectsCreated,projectsMatched:d.projectsMatched,projectAgentsLinked:d.projectAgentsLinked,projectThreadsLinked:d.projectThreadsLinked})}`),(e=g).prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='teams'").get()&&e.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='app_migrations'").get()&&e.prepare("SELECT 1 FROM app_migrations WHERE key = 'legacy_workspaces_to_projects_v1' LIMIT 1").get()&&(e.exec(`
309
+ metadata = excluded.metadata`).run(w,JSON.stringify(t)),n}(H);return l&&console.log(`[sqlite] auto-migrated legacy workspaces to projects: ${JSON.stringify({usersProcessed:l.usersProcessed,projectsCreated:l.projectsCreated,projectsMatched:l.projectsMatched,projectAgentsLinked:l.projectAgentsLinked,projectThreadsLinked:l.projectThreadsLinked})}`),(e=H).prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='teams'").get()&&e.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='app_migrations'").get()&&e.prepare("SELECT 1 FROM app_migrations WHERE key = 'legacy_workspaces_to_projects_v1' LIMIT 1").get()&&(e.exec(`
249
310
  DROP TABLE IF EXISTS team_workspaces;
250
311
  DROP TABLE IF EXISTS team_agents;
251
312
  DROP TABLE IF EXISTS teams;
252
- `),console.log("[sqlite] dropped legacy teams, team_agents, team_workspaces tables")),g}let O=new Set(["definition","depends_on","input","metadata","models","open_blockers","output","payload","run_index","stage_decisions","swarm_models"]);function f(e){return void 0===e?null:e instanceof Date?e.toISOString():e&&"object"==typeof e?JSON.stringify(e):e}function S(e,t){return null==t?null:t instanceof Date?t.toISOString():O.has(e)?JSON.stringify(t):f(t)}function A(e){let t=(e||"*").trim();if(!t||"*"===t)return{columns:["*"],includeProjectRepos:!1};let r=t.includes("project_repos(*)"),i=t.replace(/project_repos\(\*\)/g,"").split(",").map(e=>e.trim()).filter(Boolean);return 0===i.length?{columns:["*"],includeProjectRepos:r}:{columns:i,includeProjectRepos:r}}class I{table;operation="select";filters=[];orderSpecs=[];limitValue=null;selectColumns="*";returningColumns=null;singleMode="none";payload=null;upsertOptions=null;constructor(e){this.table=e}select(e="*"){return"select"===this.operation?this.selectColumns=e:this.returningColumns=e||"*",this}insert(e){return this.operation="insert",this.payload=e,this}update(e){return this.operation="update",this.payload=e,this}delete(){return this.operation="delete",this}upsert(e,t){return this.operation="upsert",this.payload=e,this.upsertOptions=t||{},this}eq(e,t){return this.filters.push({op:"eq",column:e,value:t}),this}neq(e,t){return this.filters.push({op:"neq",column:e,value:t}),this}gt(e,t){return this.filters.push({op:"gt",column:e,value:t}),this}gte(e,t){return this.filters.push({op:"gte",column:e,value:t}),this}lt(e,t){return this.filters.push({op:"lt",column:e,value:t}),this}lte(e,t){return this.filters.push({op:"lte",column:e,value:t}),this}is(e,t){return this.filters.push({op:"is",column:e,value:t}),this}in(e,t){return this.filters.push({op:"in",column:e,value:t||[]}),this}contains(e,t){return this.filters.push({op:"contains",column:e,value:t}),this}or(e){return this.filters.push({op:"or",expression:e}),this}order(e,t){return this.orderSpecs.push({column:e,...t||{}}),this}limit(e){return this.limitValue=e,this}single(){return this.singleMode="single",this.execute()}maybeSingle(){return this.singleMode="maybeSingle",this.execute()}then(e,t){return this.execute().then(e,t)}buildWhere(e,t){for(let r of this.filters){if("or"===r.op){let i=r.expression.split(",").map(e=>e.trim()).filter(Boolean).map(e=>{var r;let[i,n,...o]=e.split("."),a="true"===(r=o.join("."))||"false"!==r&&("null"===r?null:r);return"eq"===n?(t.push(f(a)),`${i} = ?`):"neq"===n?(t.push(f(a)),`${i} <> ?`):"is"===n?null===a?`${i} IS NULL`:(t.push(f(a)),`${i} IS ?`):"ilike"===n||"like"===n?(t.push(f(a)),`${i} LIKE ?`):"1=1"});i.length>0&&e.push(`(${i.join(" OR ")})`);continue}if("eq"===r.op)t.push(f(r.value)),e.push(`${r.column} = ?`);else if("neq"===r.op)t.push(f(r.value)),e.push(`${r.column} <> ?`);else if("gt"===r.op)t.push(f(r.value)),e.push(`${r.column} > ?`);else if("gte"===r.op)t.push(f(r.value)),e.push(`${r.column} >= ?`);else if("lt"===r.op)t.push(f(r.value)),e.push(`${r.column} < ?`);else if("lte"===r.op)t.push(f(r.value)),e.push(`${r.column} <= ?`);else if("is"===r.op)null===r.value?e.push(`${r.column} IS NULL`):(t.push(f(r.value)),e.push(`${r.column} IS ?`));else if("contains"===r.op){let i=(r.value||[]).map(f);if(0===i.length)e.push("1=1");else{let n=i.map(()=>"?").join(", ");t.push(...i),e.push(`(SELECT COUNT(*) FROM json_each(${r.column}) WHERE json_each.value IN (${n})) = ${i.length}`)}}else if("in"===r.op)if(r.value&&0!==r.value.length){let i=(r.value||[]).map(f),n=i.map(()=>"?").join(", ");t.push(...i),e.push(`${r.column} IN (${n})`)}else e.push("1=0")}}executeSelect(){try{let e=h(),{columns:t,includeProjectRepos:r}=A(this.selectColumns),i=[],n=[];this.buildWhere(n,i);let o=`SELECT ${t.join(", ")} FROM ${this.table}`;if(n.length>0&&(o+=` WHERE ${n.join(" AND ")}`),this.orderSpecs.length>0){let e=this.orderSpecs.map(e=>{let t=!1===e.ascending?"DESC":"ASC";return!0===e.nullsFirst?`CASE WHEN ${e.column} IS NULL THEN 0 ELSE 1 END, ${e.column} ${t}`:!1===e.nullsFirst?`CASE WHEN ${e.column} IS NULL THEN 1 ELSE 0 END, ${e.column} ${t}`:`${e.column} ${t}`}).join(", ");o+=` ORDER BY ${e}`}"number"==typeof this.limitValue&&(i.push(this.limitValue),o+=" LIMIT ?");let a=e.prepare(o).all(...i);if(a=a.map(C),r&&"projects"===this.table&&a.length>0){let t=a.map(e=>e.id).filter(Boolean);if(t.length>0){let r=t.map(()=>"?").join(", "),i=e.prepare(`SELECT * FROM project_repos WHERE project_id IN (${r})`).all(...t),n=new Map;for(let e of i){let t=n.get(e.project_id)||[];t.push(e),n.set(e.project_id,t)}a=a.map(e=>({...e,project_repos:n.get(e.id)||[]}))}}if("single"===this.singleMode){if(0===a.length)return{data:null,error:{message:"No rows",code:"PGRST116"}};return{data:a[0],error:null}}if("maybeSingle"===this.singleMode)return{data:a[0]||null,error:null};return{data:a,error:null}}catch(e){return{data:null,error:e}}}executeInsertOrUpsert(){try{let e,t=h(),r=Array.isArray(this.payload)?this.payload:[this.payload];if(!r.length)return{data:[],error:null};let i=Array.from(r.reduce((e,t)=>{for(let r of Object.keys(t||{}))e.add(r);return e},new Set)),n=[],o=r.map(e=>{let t=i.map(t=>(n.push(S(t,e[t])),"?"));return`(${t.join(", ")})`}),a=`INSERT INTO ${this.table} (${i.join(", ")}) VALUES ${o.join(", ")}`;if("upsert"===this.operation){let e=this.upsertOptions?.onConflict||"",t=String(e).split(",").map(e=>e.trim()).filter(Boolean);if(t.length>0)if(this.upsertOptions?.ignoreDuplicates)a+=` ON CONFLICT (${t.join(", ")}) DO NOTHING`;else{let e=i.filter(e=>!t.includes(e)).map(e=>`${e} = EXCLUDED.${e}`);e.length>0?a+=` ON CONFLICT (${t.join(", ")}) DO UPDATE SET ${e.join(", ")}`:a+=` ON CONFLICT (${t.join(", ")}) DO NOTHING`}}if(this.returningColumns){let{columns:e}=A(this.returningColumns);a+=` RETURNING ${e.join(", ")}`}this.returningColumns?e=(e=t.prepare(a).all(...n)).map(C):(t.prepare(a).run(...n),e=[]);let s=this.returningColumns?e:null;if("single"===this.singleMode||"maybeSingle"===this.singleMode)return{data:s&&s[0]||null,error:null};return{data:s,error:null}}catch(e){return{data:null,error:e}}}executeUpdateOrDelete(){try{let e,t=h(),r=[],i=[],n=[];this.buildWhere(n,i);let o="";if("update"===this.operation){let e=Object.keys(this.payload||{}).map(e=>{let t=this.payload[e];return t instanceof L?`${e} = ${t.expr}`:(r.push(S(e,t)),`${e} = ?`)});o=`UPDATE ${this.table} SET ${e.join(", ")}`}else o=`DELETE FROM ${this.table}`;n.length>0&&(o+=` WHERE ${n.join(" AND ")}`);let a=[...r,...i];if(this.returningColumns){let{columns:e}=A(this.returningColumns);o+=` RETURNING ${e.join(", ")}`}this.returningColumns?e=(e=t.prepare(o).all(...a)).map(C):(t.prepare(o).run(...a),e=[]);let s=this.returningColumns?e:null;if("single"===this.singleMode){if(!s||0===s.length)return{data:null,error:{message:"No rows",code:"PGRST116"}};return{data:s[0],error:null}}if("maybeSingle"===this.singleMode)return{data:s?.[0]||null,error:null};return{data:s,error:null}}catch(e){return{data:null,error:e}}}async execute(){return"select"===this.operation?this.executeSelect():"insert"===this.operation||"upsert"===this.operation?this.executeInsertOrUpsert():this.executeUpdateOrDelete()}}let R=new Set([...O,"depends_on","open_blockers","swarm_models","run_index","stage_decisions","definition","metadata","models","config","policy","done_criteria","outputs","task_snapshot","data_mapping"]);function C(e){if(!e||"object"!=typeof e)return e;let t={...e};for(let e of Object.keys(t)){if(R.has(e)&&"string"==typeof t[e])try{t[e]=JSON.parse(t[e])}catch{}("swarm"===e||"is_default"===e||"is_public"===e||"had_graph_before"===e)&&(0===t[e]?t[e]=!1:1===t[e]&&(t[e]=!0))}return t}function U(){return{from:e=>new I(e),auth:{getUser:async()=>({data:{user:{id:a.id,email:a.email,user_metadata:{name:a.name,full_name:a.name}}},error:null}),exchangeCodeForSession:async()=>({error:null}),refreshSession:async()=>({data:{session:{access_token:"local-token",refresh_token:"local-refresh",expires_in:3600},user:{id:a.id,email:a.email}},error:null})},async rpc(e,t){if("check_rate_limit"!==e)return{data:null,error:{message:`Unsupported rpc: ${e}`}};let r=h(),i=t.p_user_id,n=t.p_endpoint,o=Number(t.p_limit||60),a=Number(t.p_window_seconds||60),s=new Date(Math.floor(new Date().getTime()/(1e3*a))*a*1e3);try{let e=`
313
+ `),console.log("[sqlite] dropped legacy teams, team_agents, team_workspaces tables")),H}let P=new Set(["definition","depends_on","input","metadata","models","open_blockers","output","payload","run_index","stage_decisions","swarm_models"]);function B(e){return void 0===e?null:e instanceof Date?e.toISOString():e&&"object"==typeof e?JSON.stringify(e):e}function q(e,t){return null==t?null:t instanceof Date?t.toISOString():P.has(e)?JSON.stringify(t):B(t)}function W(e){let t=(e||"*").trim();if(!t||"*"===t)return{columns:["*"],includeProjectRepos:!1};let r=t.includes("project_repos(*)"),n=t.replace(/project_repos\(\*\)/g,"").split(",").map(e=>e.trim()).filter(Boolean);return 0===n.length?{columns:["*"],includeProjectRepos:r}:{columns:n,includeProjectRepos:r}}class J{table;operation="select";filters=[];orderSpecs=[];limitValue=null;selectColumns="*";returningColumns=null;singleMode="none";payload=null;upsertOptions=null;constructor(e){this.table=e}select(e="*"){return"select"===this.operation?this.selectColumns=e:this.returningColumns=e||"*",this}insert(e){return this.operation="insert",this.payload=e,this}update(e){return this.operation="update",this.payload=e,this}delete(){return this.operation="delete",this}upsert(e,t){return this.operation="upsert",this.payload=e,this.upsertOptions=t||{},this}eq(e,t){return this.filters.push({op:"eq",column:e,value:t}),this}neq(e,t){return this.filters.push({op:"neq",column:e,value:t}),this}gt(e,t){return this.filters.push({op:"gt",column:e,value:t}),this}gte(e,t){return this.filters.push({op:"gte",column:e,value:t}),this}lt(e,t){return this.filters.push({op:"lt",column:e,value:t}),this}lte(e,t){return this.filters.push({op:"lte",column:e,value:t}),this}is(e,t){return this.filters.push({op:"is",column:e,value:t}),this}in(e,t){return this.filters.push({op:"in",column:e,value:t||[]}),this}contains(e,t){return this.filters.push({op:"contains",column:e,value:t}),this}or(e){return this.filters.push({op:"or",expression:e}),this}order(e,t){return this.orderSpecs.push({column:e,...t||{}}),this}limit(e){return this.limitValue=e,this}single(){return this.singleMode="single",this.execute()}maybeSingle(){return this.singleMode="maybeSingle",this.execute()}then(e,t){return this.execute().then(e,t)}buildWhere(e,t){for(let r of this.filters){if("or"===r.op){let n=r.expression.split(",").map(e=>e.trim()).filter(Boolean).map(e=>{var r;let[n,i,...o]=e.split("."),a="true"===(r=o.join("."))||"false"!==r&&("null"===r?null:r);return"eq"===i?(t.push(B(a)),`${n} = ?`):"neq"===i?(t.push(B(a)),`${n} <> ?`):"is"===i?null===a?`${n} IS NULL`:(t.push(B(a)),`${n} IS ?`):"ilike"===i||"like"===i?(t.push(B(a)),`${n} LIKE ?`):"1=1"});n.length>0&&e.push(`(${n.join(" OR ")})`);continue}if("eq"===r.op)t.push(B(r.value)),e.push(`${r.column} = ?`);else if("neq"===r.op)t.push(B(r.value)),e.push(`${r.column} <> ?`);else if("gt"===r.op)t.push(B(r.value)),e.push(`${r.column} > ?`);else if("gte"===r.op)t.push(B(r.value)),e.push(`${r.column} >= ?`);else if("lt"===r.op)t.push(B(r.value)),e.push(`${r.column} < ?`);else if("lte"===r.op)t.push(B(r.value)),e.push(`${r.column} <= ?`);else if("is"===r.op)null===r.value?e.push(`${r.column} IS NULL`):(t.push(B(r.value)),e.push(`${r.column} IS ?`));else if("contains"===r.op){let n=(r.value||[]).map(B);if(0===n.length)e.push("1=1");else{let i=n.map(()=>"?").join(", ");t.push(...n),e.push(`(SELECT COUNT(*) FROM json_each(${r.column}) WHERE json_each.value IN (${i})) = ${n.length}`)}}else if("in"===r.op)if(r.value&&0!==r.value.length){let n=(r.value||[]).map(B),i=n.map(()=>"?").join(", ");t.push(...n),e.push(`${r.column} IN (${i})`)}else e.push("1=0")}}executeSelect(){try{let e=Y(),{columns:t,includeProjectRepos:r}=W(this.selectColumns),n=[],i=[];this.buildWhere(i,n);let o=`SELECT ${t.join(", ")} FROM ${this.table}`;if(i.length>0&&(o+=` WHERE ${i.join(" AND ")}`),this.orderSpecs.length>0){let e=this.orderSpecs.map(e=>{let t=!1===e.ascending?"DESC":"ASC";return!0===e.nullsFirst?`CASE WHEN ${e.column} IS NULL THEN 0 ELSE 1 END, ${e.column} ${t}`:!1===e.nullsFirst?`CASE WHEN ${e.column} IS NULL THEN 1 ELSE 0 END, ${e.column} ${t}`:`${e.column} ${t}`}).join(", ");o+=` ORDER BY ${e}`}"number"==typeof this.limitValue&&(n.push(this.limitValue),o+=" LIMIT ?");let a=e.prepare(o).all(...n);if(a=a.map(G),r&&"projects"===this.table&&a.length>0){let t=a.map(e=>e.id).filter(Boolean);if(t.length>0){let r=t.map(()=>"?").join(", "),n=e.prepare(`SELECT * FROM project_repos WHERE project_id IN (${r})`).all(...t),i=new Map;for(let e of n){let t=i.get(e.project_id)||[];t.push(e),i.set(e.project_id,t)}a=a.map(e=>({...e,project_repos:i.get(e.id)||[]}))}}if("single"===this.singleMode){if(0===a.length)return{data:null,error:{message:"No rows",code:"PGRST116"}};return{data:a[0],error:null}}if("maybeSingle"===this.singleMode)return{data:a[0]||null,error:null};return{data:a,error:null}}catch(e){return{data:null,error:e}}}executeInsertOrUpsert(){try{let e,t=Y(),r=Array.isArray(this.payload)?this.payload:[this.payload];if(!r.length)return{data:[],error:null};let n=Array.from(r.reduce((e,t)=>{for(let r of Object.keys(t||{}))e.add(r);return e},new Set)),i=[],o=r.map(e=>{let t=n.map(t=>(i.push(q(t,e[t])),"?"));return`(${t.join(", ")})`}),a=`INSERT INTO ${this.table} (${n.join(", ")}) VALUES ${o.join(", ")}`;if("upsert"===this.operation){let e=this.upsertOptions?.onConflict||"",t=String(e).split(",").map(e=>e.trim()).filter(Boolean);if(t.length>0)if(this.upsertOptions?.ignoreDuplicates)a+=` ON CONFLICT (${t.join(", ")}) DO NOTHING`;else{let e=n.filter(e=>!t.includes(e)).map(e=>`${e} = EXCLUDED.${e}`);e.length>0?a+=` ON CONFLICT (${t.join(", ")}) DO UPDATE SET ${e.join(", ")}`:a+=` ON CONFLICT (${t.join(", ")}) DO NOTHING`}}if(this.returningColumns){let{columns:e}=W(this.returningColumns);a+=` RETURNING ${e.join(", ")}`}this.returningColumns?e=(e=t.prepare(a).all(...i)).map(G):(t.prepare(a).run(...i),e=[]);let s=this.returningColumns?e:null;if("single"===this.singleMode||"maybeSingle"===this.singleMode)return{data:s&&s[0]||null,error:null};return{data:s,error:null}}catch(e){return{data:null,error:e}}}executeUpdateOrDelete(){try{let e,t=Y(),r=[],n=[],i=[];this.buildWhere(i,n);let o="";if("update"===this.operation){let e=Object.keys(this.payload||{}).map(e=>{let t=this.payload[e];return t instanceof M?`${e} = ${t.expr}`:(r.push(q(e,t)),`${e} = ?`)});o=`UPDATE ${this.table} SET ${e.join(", ")}`}else o=`DELETE FROM ${this.table}`;i.length>0&&(o+=` WHERE ${i.join(" AND ")}`);let a=[...r,...n];if(this.returningColumns){let{columns:e}=W(this.returningColumns);o+=` RETURNING ${e.join(", ")}`}this.returningColumns?e=(e=t.prepare(o).all(...a)).map(G):(t.prepare(o).run(...a),e=[]);let s=this.returningColumns?e:null;if("single"===this.singleMode){if(!s||0===s.length)return{data:null,error:{message:"No rows",code:"PGRST116"}};return{data:s[0],error:null}}if("maybeSingle"===this.singleMode)return{data:s?.[0]||null,error:null};return{data:s,error:null}}catch(e){return{data:null,error:e}}}async execute(){return"select"===this.operation?this.executeSelect():"insert"===this.operation||"upsert"===this.operation?this.executeInsertOrUpsert():this.executeUpdateOrDelete()}}let K=new Set([...P,"depends_on","open_blockers","swarm_models","run_index","stage_decisions","definition","metadata","models","config","policy","done_criteria","outputs","task_snapshot","data_mapping"]);function G(e){if(!e||"object"!=typeof e)return e;let t={...e};for(let e of Object.keys(t)){if(K.has(e)&&"string"==typeof t[e])try{t[e]=JSON.parse(t[e])}catch{}("swarm"===e||"is_default"===e||"is_public"===e||"had_graph_before"===e)&&(0===t[e]?t[e]=!1:1===t[e]&&(t[e]=!0))}return t}function V(){return{from:e=>new J(e),auth:{getUser:async()=>({data:{user:{id:a.id,email:a.email,user_metadata:{name:a.name,full_name:a.name}}},error:null}),exchangeCodeForSession:async()=>({error:null}),refreshSession:async()=>({data:{session:{access_token:"local-token",refresh_token:"local-refresh",expires_in:3600},user:{id:a.id,email:a.email}},error:null})},async rpc(e,t){if("check_rate_limit"!==e)return{data:null,error:{message:`Unsupported rpc: ${e}`}};let r=Y(),n=t.p_user_id,i=t.p_endpoint,o=Number(t.p_limit||60),a=Number(t.p_window_seconds||60),s=new Date(Math.floor(new Date().getTime()/(1e3*a))*a*1e3);try{let e=`
253
314
  INSERT INTO rate_limits (user_id, endpoint, window_start, request_count)
254
315
  VALUES (?, ?, ?, 1)
255
316
  ON CONFLICT (user_id, endpoint, window_start)
256
317
  DO UPDATE SET request_count = rate_limits.request_count + 1
257
318
  RETURNING request_count
258
- `,t=r.prepare(e).get(i,n,s.toISOString());return{data:Number(t?.request_count||0)<=o,error:null}}catch(e){return{data:!1,error:e}}},channel:()=>({on(){return this},subscribe(e){return e&&e("SUBSCRIBED"),this}}),removeChannel(){}}}e.s(["SqlExpression",()=>L,"createAdminDbClientSQLite",()=>U,"getSQLiteDb",()=>h,"sqlExpr",()=>m],65196)}];
319
+ `,t=r.prepare(e).get(n,i,s.toISOString());return{data:Number(t?.request_count||0)<=o,error:null}}catch(e){return{data:!1,error:e}}},channel:()=>({on(){return this},subscribe(e){return e&&e("SUBSCRIBED"),this}}),removeChannel(){}}}e.s(["SqlExpression",()=>M,"createAdminDbClientSQLite",()=>V,"getSQLiteDb",()=>Y,"sqlExpr",()=>$],65196)}];
259
320
 
260
321
  //# sourceMappingURL=lib_sqlite-query-adapter_ts_3ea4d849._.js.map
@@ -1,10 +1,16 @@
1
- module.exports=[24049,e=>{"use strict";var t=e.i(47909),n=e.i(74017),r=e.i(96250),o=e.i(59756),i=e.i(61916),a=e.i(74677),s=e.i(69741),l=e.i(16795),u=e.i(87718),d=e.i(95169),p=e.i(47587),c=e.i(66012),h=e.i(70101),f=e.i(74838),g=e.i(10372),R=e.i(93695);e.i(52474);var m=e.i(220),v=e.i(94028),w=e.i(22734),y=e.i(14747),A=e.i(46786),E=e.i(38479),b=e.i(35338);function x(e,t){return"condition"===e.triggerType?t+e.checkEveryMs:(0,b.computeNextRun)(e.cronExpr,t)}var S=e.i(62294),C=e.i(49041),O=e.i(14350);let N=(0,y.join)((0,A.homedir)(),".agx","agents");async function P(e){let t,n,r,o=await (0,S.getAgent)(e,C.LOCAL_USER.id);if(!o)return{provider:"claude",model:null,identity:void 0,self:void 0,skills:void 0};let i=(0,y.join)(N,e),a=[];o.name&&a.push(`Name: ${o.name}`),o.description&&a.push(o.description),o.voice&&a.push(`Voice: ${o.voice}`),a.length>0&&(t=a.join("\n"));let s=(0,y.join)(i,"self.md");if((0,w.existsSync)(s)){let e=(0,w.readFileSync)(s,"utf-8"),t=e.match(/^---[\s\S]*?---\s*\n?([\s\S]*)$/);(n=t?t[1].trim():e.trim())||(n=void 0)}let l=await (0,S.getAgentSkills)(e);if(l.length>0){let e=[];for(let t of l){let n=t.file.startsWith("/")?t.file:(0,y.join)(i,t.file);if((0,w.existsSync)(n))try{let r=(0,w.readFileSync)(n,"utf-8");e.push(`## ${t.file}
2
- ${r}`)}catch{}}e.length>0&&(r=e.join("\n\n"))}return{provider:o.provider||"claude",model:o.model||null,identity:t,self:n,skills:r}}async function j(e){return e.agentId?P(e.agentId):{provider:e.provider||"claude",model:e.model||null,identity:void 0,self:void 0,skills:void 0}}async function D(e){let t=Date.now(),n="";try{return await (0,O.runCliResponse)({provider:e.provider,model:e.model,prompt:e.prompt,identity:e.identity,self:e.self,skills:e.skills,passthroughArgs:e.cliArgs?e.cliArgs.split(/\s+/).filter(Boolean):void 0,onDelta:e=>{n+=e}}),{output:n,error:"",durationMs:Date.now()-t,status:"success"}}catch(e){return{output:n,error:e instanceof Error?e.message:String(e),durationMs:Date.now()-t,status:"failed"}}}async function k(e,t){let n=(0,E.getPromptJobStore)(),r=await j(e),o=`You are a condition evaluator. Evaluate whether the following condition is currently true. Respond with ONLY "yes" or "no" (lowercase, nothing else).
1
+ module.exports=[24049,e=>{"use strict";var t=e.i(47909),n=e.i(74017),o=e.i(96250),r=e.i(59756),i=e.i(61916),a=e.i(74677),s=e.i(69741),l=e.i(16795),u=e.i(87718),d=e.i(95169),p=e.i(47587),c=e.i(66012),h=e.i(70101),f=e.i(74838),g=e.i(10372),R=e.i(93695);e.i(52474);var m=e.i(220),v=e.i(94028),w=e.i(22734),y=e.i(14747),b=e.i(46786),A=e.i(38479),x=e.i(35338);function E(e,t){return"condition"===e.triggerType?t+e.checkEveryMs:(0,x.computeNextRun)(e.cronExpr,t)}var S=e.i(62294),C=e.i(49041),O=e.i(14350);let j=(0,y.join)((0,b.homedir)(),".agx","agents");async function N(e){let t,n,o,r=await (0,S.getAgent)(e,C.LOCAL_USER.id);if(!r)return{provider:"claude",model:null,identity:void 0,self:void 0,skills:void 0};let i=(0,y.join)(j,e),a=[];r.name&&a.push(`Name: ${r.name}`),r.description&&a.push(r.description),r.voice&&a.push(`Voice: ${r.voice}`),a.length>0&&(t=a.join("\n"));let s=(0,y.join)(i,"self.md");if((0,w.existsSync)(s)){let e=(0,w.readFileSync)(s,"utf-8"),t=e.match(/^---[\s\S]*?---\s*\n?([\s\S]*)$/);(n=t?t[1].trim():e.trim())||(n=void 0)}let l=await (0,S.getAgentSkills)(e);if(l.length>0){let e=[];for(let t of l){let n=t.file.startsWith("/")?t.file:(0,y.join)(i,t.file);if((0,w.existsSync)(n))try{let o=(0,w.readFileSync)(n,"utf-8");e.push(`## ${t.file}
2
+ ${o}`)}catch{}}e.length>0&&(o=e.join("\n\n"))}return{provider:r.provider||"claude",model:r.model||null,identity:t,self:n,skills:o}}async function I(e){return e.agentId?N(e.agentId):{provider:e.provider||"claude",model:e.model||null,identity:void 0,self:void 0,skills:void 0}}async function P(e){let t=Date.now(),n="";try{return await (0,O.runCliResponse)({provider:e.provider,model:e.model,prompt:e.prompt,identity:e.identity,self:e.self,skills:e.skills,passthroughArgs:e.cliArgs?e.cliArgs.split(/\s+/).filter(Boolean):void 0,onDelta:e=>{n+=e}}),{output:n,error:"",durationMs:Date.now()-t,status:"success"}}catch(e){return{output:n,error:e instanceof Error?e.message:String(e),durationMs:Date.now()-t,status:"failed"}}}async function D(e,t){let n=(0,A.getPromptJobStore)(),o=await I(e),r=`You are a condition gate. Your job is to determine whether the following condition expression evaluates to "yes" (pass) or "no" (fail).
3
3
 
4
- Condition: ${e.condition}`;n.updateRun(t.id,{status:"running",startedAt:new Date().toISOString()});let i=await D({...r,prompt:o,cliArgs:e.cliArgs}),a=i.output.trim().toLowerCase(),s=a.startsWith("yes");if("success"!==i.status||!s){n.updateRun(t.id,{status:"success",output:`Gate: ${a}
4
+ Rules:
5
+ - If the condition is a boolean literal or expression (e.g. "true", "return True", "1 == 1"), evaluate it as code and respond based on its result.
6
+ - If the condition is a natural-language statement, judge whether it holds.
7
+ - If the condition is an instruction (e.g. "say yes", "always pass"), follow it.
8
+ - Respond with ONLY "yes" or "no" (lowercase, nothing else).
9
+
10
+ Condition: ${e.condition}`;n.updateRun(t.id,{status:"running",startedAt:new Date().toISOString()});let i=await P({...o,prompt:r,cliArgs:e.cliArgs}),a=i.output.trim().toLowerCase(),s=/\byes\b/.test(a);if("success"!==i.status||!s){n.updateRun(t.id,{status:"success",output:`Gate: ${a}
5
11
  (condition not met — skipped action)`,durationMs:i.durationMs,finishedAt:new Date().toISOString()}),n.updateJob(e.id,{lastOutcome:"success",lastRunAt:Date.now()});return}n.updateRun(t.id,{output:`Gate: yes
6
- Executing action prompt...`});let l=await D({...r,prompt:e.prompt,cliArgs:e.cliArgs});n.updateRun(t.id,{status:l.status,output:`Gate: yes
12
+ Executing action prompt...`});let l=await P({...o,prompt:e.prompt,cliArgs:e.cliArgs});n.updateRun(t.id,{status:l.status,output:`Gate: yes
7
13
  ---
8
- ${l.output}`,error:l.error||void 0,durationMs:i.durationMs+l.durationMs,finishedAt:new Date().toISOString()}),n.updateJob(e.id,{lastOutcome:l.status,lastRunAt:Date.now()})}async function T(e,t){let n=(0,E.getPromptJobStore)(),r=await j(e);n.updateRun(t.id,{status:"running",startedAt:new Date().toISOString()});let o=await D({...r,prompt:e.prompt,cliArgs:e.cliArgs});n.updateRun(t.id,{status:o.status,output:o.output,error:o.error||void 0,durationMs:o.durationMs,finishedAt:new Date().toISOString()});let i="condition"===e.triggerType?Date.now()+e.checkEveryMs:(0,b.computeNextRun)(e.cronExpr)??null;n.updateJob(e.id,{lastOutcome:o.status,lastRunAt:Date.now(),nextRunAt:i})}function I(e,t){("condition"===e.triggerType&&e.condition?k:T)(e,t).catch(n=>{let r=(0,E.getPromptJobStore)();r.updateRun(t.id,{status:"failed",error:`Dispatch error: ${n instanceof Error?n.message:String(n)}`,finishedAt:new Date().toISOString()}),r.updateJob(e.id,{lastOutcome:"failed"})})}async function _(e){try{let t=(0,E.getPromptJobStore)(),n={};try{n=await e.json()}catch{}if(n.jobId){let e=t.getJob(n.jobId);if(!e)return v.NextResponse.json({error:"Job not found"},{status:404});let r=t.createRun(e.id);return I(e,r),v.NextResponse.json({queued:[r],skipped:[]})}let r=function(e,t=Date.now()){for(let n of e.listJobs({state:"active"}))if(null===n.nextRunAt&&n.cronExpr){let r=x(n,t);r&&e.updateJob(n.id,{nextRunAt:r})}let n=e.getDueJobs(t),r=[],o=[];for(let i of n){if("skip"===i.overlapPolicy&&e.hasRunningRun(i.id)){o.push({jobId:i.id,reason:"overlap_skip"});let n=x(i,t);e.updateJob(i.id,{nextRunAt:n});continue}let n=function(e,t){if("condition"===e.triggerType||!e.nextRunAt)return 1;let n=0,r=e.nextRunAt;for(;r<=t&&n<100;){n++;let t=(0,b.computeNextRun)(e.cronExpr,r);if(!t||t<=r)break;r=t}return Math.max(1,n)}(i,t);if("skip"===i.catchUpPolicy&&n>1){o.push({jobId:i.id,reason:`catch_up_skip (${n} missed)`});let r=x(i,t);e.updateJob(i.id,{nextRunAt:r,lastRunAt:t});continue}if("replay_all"===i.catchUpPolicy&&n>1)for(let t=0;t<n;t++){let t=e.createRun(i.id);r.push(t)}else{let t=e.createRun(i.id);r.push(t)}let a=x(i,t);e.updateJob(i.id,{nextRunAt:a,lastRunAt:t})}return{queued:r,skipped:o}}(t);for(let e of r.queued){let n=t.getJob(e.jobId);n&&I(n,e)}return v.NextResponse.json({queued:r.queued,skipped:r.skipped})}catch(e){return console.error("Failed to poll prompt jobs:",e),v.NextResponse.json({error:"Failed to poll prompt jobs",message:e instanceof Error?e.message:String(e)},{status:500})}}e.s(["POST",()=>_,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],27060);var M=e.i(27060);let U=new t.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/prompt-jobs/poll/route",pathname:"/api/prompt-jobs/poll",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/prompt-jobs/poll/route.ts",nextConfigOutput:"standalone",userland:M}),{workAsyncStorage:$,workUnitAsyncStorage:q,serverHooks:H}=U;function J(){return(0,r.patchFetch)({workAsyncStorage:$,workUnitAsyncStorage:q})}async function F(e,t,r){U.isDev&&(0,o.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/prompt-jobs/poll/route";v=v.replace(/\/index$/,"")||"/";let w=await U.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:y,params:A,nextConfig:E,parsedUrl:b,isDraftMode:x,prerenderManifest:S,routerServerContext:C,isOnDemandRevalidate:O,revalidateOnlyGenerated:N,resolvedPathname:P,clientReferenceManifest:j,serverActionsManifest:D}=w,k=(0,s.normalizeAppPath)(v),T=!!(S.dynamicRoutes[k]||S.routes[P]),I=async()=>((null==C?void 0:C.render404)?await C.render404(e,t,b,!1):t.end("This page could not be found"),null);if(T&&!x){let e=!!S.routes[P],t=S.dynamicRoutes[k];if(t&&!1===t.fallback&&!e){if(E.experimental.adapterPath)return await I();throw new R.NoFallbackError}}let _=null;!T||U.isDev||x||(_="/index"===(_=P)?"/":_);let M=!0===U.isDev||!T,$=T&&!M;D&&j&&(0,a.setManifestsSingleton)({page:v,clientReferenceManifest:j,serverActionsManifest:D});let q=e.method||"GET",H=(0,i.getTracer)(),J=H.getActiveScopeSpan(),F={params:A,prerenderManifest:S,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:M,incrementalCache:(0,o.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:E.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,n,r,o)=>U.onRequestError(e,t,r,o,C)},sharedContext:{buildId:y}},L=new l.NodeNextRequest(e),K=new l.NodeNextResponse(t),B=u.NextRequestAdapter.fromNodeNextRequest(L,(0,u.signalFromNodeResponse)(t));try{let a=async e=>U.handle(B,F).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let n=H.getRootSpanAttributes();if(!n)return;if(n.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${n.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=n.get("next.route");if(r){let t=`${q} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t)}else e.updateName(`${q} ${v}`)}),s=!!(0,o.getRequestMeta)(e,"minimalMode"),l=async o=>{var i,l;let u=async({previousCacheEntry:n})=>{try{if(!s&&O&&N&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await a(o);e.fetchMetrics=F.renderOpts.fetchMetrics;let l=F.renderOpts.pendingWaitUntil;l&&r.waitUntil&&(r.waitUntil(l),l=void 0);let u=F.renderOpts.collectedTags;if(!T)return await (0,c.sendResponse)(L,K,i,F.renderOpts.pendingWaitUntil),null;{let e=await i.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(i.headers);u&&(t[g.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let n=void 0!==F.renderOpts.collectedRevalidate&&!(F.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&F.renderOpts.collectedRevalidate,r=void 0===F.renderOpts.collectedExpire||F.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:F.renderOpts.collectedExpire;return{value:{kind:m.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:n,expire:r}}}}catch(t){throw(null==n?void 0:n.isStale)&&await U.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:O})},!1,C),t}},d=await U.handleResponse({req:e,nextConfig:E,cacheKey:_,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:S,isRoutePPREnabled:!1,isOnDemandRevalidate:O,revalidateOnlyGenerated:N,responseGenerator:u,waitUntil:r.waitUntil,isMinimalMode:s});if(!T)return null;if((null==d||null==(i=d.value)?void 0:i.kind)!==m.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(l=d.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});s||t.setHeader("x-nextjs-cache",O?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),x&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let R=(0,h.fromNodeOutgoingHttpHeaders)(d.value.headers);return s&&T||R.delete(g.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||R.get("Cache-Control")||R.set("Cache-Control",(0,f.getCacheControlHeader)(d.cacheControl)),await (0,c.sendResponse)(L,K,new Response(d.value.body,{headers:R,status:d.value.status||200})),null};J?await l(J):await H.withPropagatedContext(e.headers,()=>H.trace(d.BaseServerSpan.handleRequest,{spanName:`${q} ${v}`,kind:i.SpanKind.SERVER,attributes:{"http.method":q,"http.target":e.url}},l))}catch(t){if(t instanceof R.NoFallbackError||await U.onRequestError(e,t,{routerKind:"App Router",routePath:k,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:O})},!1,C),T)throw t;return await (0,c.sendResponse)(L,K,new Response(null,{status:500})),null}}e.s(["handler",()=>F,"patchFetch",()=>J,"routeModule",()=>U,"serverHooks",()=>H,"workAsyncStorage",()=>$,"workUnitAsyncStorage",()=>q],24049)}];
14
+ ${l.output}`,error:l.error||void 0,durationMs:i.durationMs+l.durationMs,finishedAt:new Date().toISOString()}),n.updateJob(e.id,{lastOutcome:l.status,lastRunAt:Date.now()})}async function T(e,t){let n=(0,A.getPromptJobStore)(),o=await I(e);n.updateRun(t.id,{status:"running",startedAt:new Date().toISOString()});let r=await P({...o,prompt:e.prompt,cliArgs:e.cliArgs});n.updateRun(t.id,{status:r.status,output:r.output,error:r.error||void 0,durationMs:r.durationMs,finishedAt:new Date().toISOString()});let i="condition"===e.triggerType?Date.now()+e.checkEveryMs:(0,x.computeNextRun)(e.cronExpr)??null;n.updateJob(e.id,{lastOutcome:r.status,lastRunAt:Date.now(),nextRunAt:i})}function k(e,t){("condition"===e.triggerType&&e.condition?D:T)(e,t).catch(n=>{let o=(0,A.getPromptJobStore)();o.updateRun(t.id,{status:"failed",error:`Dispatch error: ${n instanceof Error?n.message:String(n)}`,finishedAt:new Date().toISOString()}),o.updateJob(e.id,{lastOutcome:"failed"})})}async function _(e){try{let t=(0,A.getPromptJobStore)(),n={};try{n=await e.json()}catch{}if(n.jobId){let e=t.getJob(n.jobId);if(!e)return v.NextResponse.json({error:"Job not found"},{status:404});let o=t.createRun(e.id);return k(e,o),v.NextResponse.json({queued:[o],skipped:[]})}let o=function(e,t=Date.now()){for(let n of e.listJobs({state:"active"}))if(null===n.nextRunAt&&n.cronExpr){let o=E(n,t);o&&e.updateJob(n.id,{nextRunAt:o})}let n=e.getDueJobs(t),o=[],r=[];for(let i of n){if("skip"===i.overlapPolicy&&e.hasRunningRun(i.id)){r.push({jobId:i.id,reason:"overlap_skip"});let n=E(i,t);e.updateJob(i.id,{nextRunAt:n});continue}let n=function(e,t){if("condition"===e.triggerType||!e.nextRunAt)return 1;let n=0,o=e.nextRunAt;for(;o<=t&&n<100;){n++;let t=(0,x.computeNextRun)(e.cronExpr,o);if(!t||t<=o)break;o=t}return Math.max(1,n)}(i,t);if("skip"===i.catchUpPolicy&&n>1){r.push({jobId:i.id,reason:`catch_up_skip (${n} missed)`});let o=E(i,t);e.updateJob(i.id,{nextRunAt:o,lastRunAt:t});continue}if("replay_all"===i.catchUpPolicy&&n>1)for(let t=0;t<n;t++){let t=e.createRun(i.id);o.push(t)}else{let t=e.createRun(i.id);o.push(t)}let a=E(i,t);e.updateJob(i.id,{nextRunAt:a,lastRunAt:t})}return{queued:o,skipped:r}}(t);for(let e of o.queued){let n=t.getJob(e.jobId);n&&k(n,e)}return v.NextResponse.json({queued:o.queued,skipped:o.skipped})}catch(e){return console.error("Failed to poll prompt jobs:",e),v.NextResponse.json({error:"Failed to poll prompt jobs",message:e instanceof Error?e.message:String(e)},{status:500})}}e.s(["POST",()=>_,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],27060);var M=e.i(27060);let U=new t.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/prompt-jobs/poll/route",pathname:"/api/prompt-jobs/poll",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/prompt-jobs/poll/route.ts",nextConfigOutput:"standalone",userland:M}),{workAsyncStorage:$,workUnitAsyncStorage:q,serverHooks:H}=U;function J(){return(0,o.patchFetch)({workAsyncStorage:$,workUnitAsyncStorage:q})}async function F(e,t,o){U.isDev&&(0,r.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/prompt-jobs/poll/route";v=v.replace(/\/index$/,"")||"/";let w=await U.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==o.waitUntil||o.waitUntil.call(o,Promise.resolve()),null;let{buildId:y,params:b,nextConfig:A,parsedUrl:x,isDraftMode:E,prerenderManifest:S,routerServerContext:C,isOnDemandRevalidate:O,revalidateOnlyGenerated:j,resolvedPathname:N,clientReferenceManifest:I,serverActionsManifest:P}=w,D=(0,s.normalizeAppPath)(v),T=!!(S.dynamicRoutes[D]||S.routes[N]),k=async()=>((null==C?void 0:C.render404)?await C.render404(e,t,x,!1):t.end("This page could not be found"),null);if(T&&!E){let e=!!S.routes[N],t=S.dynamicRoutes[D];if(t&&!1===t.fallback&&!e){if(A.experimental.adapterPath)return await k();throw new R.NoFallbackError}}let _=null;!T||U.isDev||E||(_="/index"===(_=N)?"/":_);let M=!0===U.isDev||!T,$=T&&!M;P&&I&&(0,a.setManifestsSingleton)({page:v,clientReferenceManifest:I,serverActionsManifest:P});let q=e.method||"GET",H=(0,i.getTracer)(),J=H.getActiveScopeSpan(),F={params:b,prerenderManifest:S,renderOpts:{experimental:{authInterrupts:!!A.experimental.authInterrupts},cacheComponents:!!A.cacheComponents,supportsDynamicResponse:M,incrementalCache:(0,r.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:A.cacheLife,waitUntil:o.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,n,o,r)=>U.onRequestError(e,t,o,r,C)},sharedContext:{buildId:y}},L=new l.NodeNextRequest(e),K=new l.NodeNextResponse(t),B=u.NextRequestAdapter.fromNodeNextRequest(L,(0,u.signalFromNodeResponse)(t));try{let a=async e=>U.handle(B,F).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let n=H.getRootSpanAttributes();if(!n)return;if(n.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${n.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let o=n.get("next.route");if(o){let t=`${q} ${o}`;e.setAttributes({"next.route":o,"http.route":o,"next.span_name":t}),e.updateName(t)}else e.updateName(`${q} ${v}`)}),s=!!(0,r.getRequestMeta)(e,"minimalMode"),l=async r=>{var i,l;let u=async({previousCacheEntry:n})=>{try{if(!s&&O&&j&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await a(r);e.fetchMetrics=F.renderOpts.fetchMetrics;let l=F.renderOpts.pendingWaitUntil;l&&o.waitUntil&&(o.waitUntil(l),l=void 0);let u=F.renderOpts.collectedTags;if(!T)return await (0,c.sendResponse)(L,K,i,F.renderOpts.pendingWaitUntil),null;{let e=await i.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(i.headers);u&&(t[g.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let n=void 0!==F.renderOpts.collectedRevalidate&&!(F.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&F.renderOpts.collectedRevalidate,o=void 0===F.renderOpts.collectedExpire||F.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:F.renderOpts.collectedExpire;return{value:{kind:m.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:n,expire:o}}}}catch(t){throw(null==n?void 0:n.isStale)&&await U.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:O})},!1,C),t}},d=await U.handleResponse({req:e,nextConfig:A,cacheKey:_,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:S,isRoutePPREnabled:!1,isOnDemandRevalidate:O,revalidateOnlyGenerated:j,responseGenerator:u,waitUntil:o.waitUntil,isMinimalMode:s});if(!T)return null;if((null==d||null==(i=d.value)?void 0:i.kind)!==m.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(l=d.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});s||t.setHeader("x-nextjs-cache",O?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),E&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let R=(0,h.fromNodeOutgoingHttpHeaders)(d.value.headers);return s&&T||R.delete(g.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||R.get("Cache-Control")||R.set("Cache-Control",(0,f.getCacheControlHeader)(d.cacheControl)),await (0,c.sendResponse)(L,K,new Response(d.value.body,{headers:R,status:d.value.status||200})),null};J?await l(J):await H.withPropagatedContext(e.headers,()=>H.trace(d.BaseServerSpan.handleRequest,{spanName:`${q} ${v}`,kind:i.SpanKind.SERVER,attributes:{"http.method":q,"http.target":e.url}},l))}catch(t){if(t instanceof R.NoFallbackError||await U.onRequestError(e,t,{routerKind:"App Router",routePath:D,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:O})},!1,C),T)throw t;return await (0,c.sendResponse)(L,K,new Response(null,{status:500})),null}}e.s(["handler",()=>F,"patchFetch",()=>J,"routeModule",()=>U,"serverHooks",()=>H,"workAsyncStorage",()=>$,"workUnitAsyncStorage",()=>q],24049)}];
9
15
 
10
16
  //# sourceMappingURL=node_modules_next_dist_esm_build_templates_app-route_def8bfbe.js.map