@mndrk/agx 2.0.39 → 2.0.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cloud-runtime/standalone/.next/BUILD_ID +1 -1
- package/cloud-runtime/standalone/.next/build-manifest.json +2 -2
- package/cloud-runtime/standalone/.next/prerender-manifest.json +3 -3
- package/cloud-runtime/standalone/.next/server/app/_global-error.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/_global-error.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_not-found.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/_not-found.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/agents.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/agents.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/agents.segments/_full.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/agents.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/agents.segments/_index.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/agents.segments/_tree.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/agents.segments/agents.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/automations.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/automations.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/automations.segments/_full.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/automations.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/automations.segments/_index.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/automations.segments/_tree.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/automations.segments/automations/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/automations.segments/automations.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/board.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/board.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/board.segments/_full.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/board.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/board.segments/_index.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/board.segments/_tree.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/board.segments/board/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/board.segments/board.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/execution-graph.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/execution-graph.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_full.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_index.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_tree.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/execution-graph/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/execution-graph.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/index.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/index.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/index.segments/_full.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/index.segments/_index.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_full.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_index.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_tree.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects/orphans/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects/orphans.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects.segments/_full.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects.segments/_index.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects.segments/_tree.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects.segments/projects.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/settings.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/settings.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/settings.segments/_full.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/settings.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/settings.segments/_index.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/settings.segments/settings.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/skills.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/skills.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/skills.segments/_full.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/skills.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/skills.segments/_index.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/skills.segments/_tree.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/skills.segments/skills/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/skills.segments/skills.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/status.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/status.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/status.segments/_full.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/status.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/status.segments/_index.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/status.segments/_tree.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/status.segments/status/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/status.segments/status.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/welcome.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/welcome.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/welcome.segments/_full.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/welcome.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/welcome.segments/_index.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/welcome.segments/_tree.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/welcome.segments/welcome/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/welcome.segments/welcome.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/{[externals]__986fcdb7._.js → [externals]__bc6c7111._.js} +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__4bce7db7._.js → [root-of-the-server]__09ca81e1._.js} +24 -24
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__f9cff4b0._.js → [root-of-the-server]__1017e012._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__1ac3236d._.js +25 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__762ab29c._.js → [root-of-the-server]__236c35bb._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__ab7343c8._.js → [root-of-the-server]__a1e62918._.js} +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__da3a1ce7._.js → [root-of-the-server]__dc542063._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/_22fe5fd2._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/lib_2492d514._.js +81 -0
- package/cloud-runtime/standalone/.next/server/chunks/lib_281e5787._.js +16 -0
- package/cloud-runtime/standalone/.next/server/chunks/lib_63067e21._.js +16 -0
- package/cloud-runtime/standalone/.next/server/chunks/lib_orchestrator_chat-processor_ts_4c335719._.js +134 -0
- package/cloud-runtime/standalone/.next/server/chunks/lib_sqlite-query-adapter_ts_3ea4d849._.js +82 -21
- package/cloud-runtime/standalone/.next/server/chunks/ssr/node_modules_next_dist_61a87db9._.js +1 -1
- package/cloud-runtime/standalone/.next/server/instrumentation.js +1 -1
- package/cloud-runtime/standalone/.next/server/middleware-manifest.json +5 -5
- package/cloud-runtime/standalone/.next/server/pages/404.html +2 -2
- package/cloud-runtime/standalone/.next/server/pages/500.html +2 -2
- package/cloud-runtime/standalone/.next/server/server-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/server-reference-manifest.json +1 -1
- package/cloud-runtime/standalone/instrumentation.ts +2 -0
- package/package.json +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/_17e53c87._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/lib_ea45fe73._.js +0 -94
- /package/cloud-runtime/standalone/.next/static/{9PXl40CrFxI8nirdJ1A-T → tIFXRWCxPD896ykJ6O--N}/_buildManifest.js +0 -0
- /package/cloud-runtime/standalone/.next/static/{9PXl40CrFxI8nirdJ1A-T → tIFXRWCxPD896ykJ6O--N}/_clientMiddlewareManifest.json +0 -0
- /package/cloud-runtime/standalone/.next/static/{9PXl40CrFxI8nirdJ1A-T → tIFXRWCxPD896ykJ6O--N}/_ssgManifest.js +0 -0
package/cloud-runtime/standalone/.next/server/chunks/lib_sqlite-query-adapter_ts_3ea4d849._.js
CHANGED
|
@@ -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),
|
|
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,
|
|
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
|
|
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
|
|
21
|
-
${e.join("\n")}`)}(function(e){let t=
|
|
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(
|
|
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&&
|
|
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);
|
|
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
|
|
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
|
|
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`),
|
|
242
|
-
VALUES (?, ?)`);for(let[t,r]of l.entries()){for(let e of r)
|
|
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=
|
|
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(
|
|
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")),
|
|
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,
|
|
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
|