@a-company/paradigm 5.34.0 → 5.35.1
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/dist/agent-X6I2YWOB.js +33 -0
- package/dist/{ambient-2JZTNXUL.js → ambient-BKX77DDQ.js} +18 -18
- package/dist/chunk-76JPOBDH.js +29 -0
- package/dist/chunk-GE3GQALR.js +2 -0
- package/dist/{chunk-TXBSTT64.js → chunk-USGKKAPL.js} +1 -1
- package/dist/{compliance-Q676YALK.js → compliance-NJSBCY6F.js} +1 -1
- package/dist/index.js +2 -2
- package/dist/mcp.js +42 -42
- package/dist/{nomination-engine-W6QTQX2P.js → nomination-engine-6VTQ4OVW.js} +1 -1
- package/dist/{project-type-AGO6VUKF.js → project-type-EUCFKEAZ.js} +1 -1
- package/dist/{reindex-2MRCAIZG.js → reindex-HWRA7KDI.js} +1 -1
- package/dist/{roster-TA2GFDR7.js → roster-HV5KYUOI.js} +1 -1
- package/dist/{shift-IKTWYSEQ.js → shift-EU22H7GG.js} +1 -1
- package/dist/university-ui/assets/{index-DmiLQehB.js → index-CecQrfSn.js} +2 -2
- package/dist/university-ui/assets/{index-DmiLQehB.js.map → index-CecQrfSn.js.map} +1 -1
- package/dist/university-ui/index.html +1 -1
- package/package.json +1 -1
- package/dist/agent-UUTYOFTH.js +0 -33
- package/dist/chunk-EAZ3EMOZ.js +0 -29
- package/dist/chunk-TZZNHUAR.js +0 -2
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
9
9
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
10
10
|
<link href="https://fonts.googleapis.com/css2?family=Crimson+Pro:ital,wght@0,400;0,500;0,600;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap" rel="stylesheet">
|
|
11
|
-
<script type="module" crossorigin src="/assets/index-
|
|
11
|
+
<script type="module" crossorigin src="/assets/index-CecQrfSn.js"></script>
|
|
12
12
|
<link rel="stylesheet" crossorigin href="/assets/index-CMrxD7y5.css">
|
|
13
13
|
</head>
|
|
14
14
|
<body>
|
package/package.json
CHANGED
package/dist/agent-UUTYOFTH.js
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import {a}from'./chunk-LKAT7IAK.js';import'./chunk-5TAVYPOV.js';import*as c from'fs';import*as y from'path';import*as P from'os';import o from'chalk';import*as m from'js-yaml';var u=y.join(P.homedir(),".paradigm","agents"),S=".paradigm/agents",$=".agent",k={architect:{style:"deliberate",risk:"conservative",verbosity:"detailed"},builder:{style:"rapid",risk:"balanced",verbosity:"concise"},tester:{style:"methodical",risk:"conservative",verbosity:"concise"},reviewer:{style:"deliberate",risk:"conservative",verbosity:"detailed"},security:{style:"methodical",risk:"conservative",verbosity:"detailed"}};async function T(e={}){let s=process.cwd(),r=a.command("agent-list").start("Listing agent profiles",{cwd:s}),t=[];if(!e.project&&c.existsSync(u))try{let i=c.readdirSync(u).filter(l=>l.endsWith($));for(let l of i)try{let d=c.readFileSync(y.join(u,l),"utf-8"),n=m.load(d);n?.id&&t.push(n);}catch{}}catch{}let g=y.join(s,S);if(!e.global&&c.existsSync(g))try{let i=c.readdirSync(g).filter(l=>l.endsWith($));for(let l of i)try{let d=c.readFileSync(y.join(g,l),"utf-8"),n=m.load(d);if(n?.id){let f=t.findIndex(a=>a.id===n.id);f>=0?t[f]=n:t.push(n);}}catch{}}catch{}if(e.json){console.log(JSON.stringify({count:t.length,agents:t.map(C)},null,2)),r.success(`Found ${t.length} agents`);return}if(console.log(o.blue(`
|
|
3
|
-
\u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510`)),console.log(o.blue("\u2502")+o.white.bold(" paradigm agent list ")+o.blue("\u2502")),console.log(o.blue("\u2502")+o.gray(" Persistent agent identity profiles ")+o.blue("\u2502")),console.log(o.blue(`\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518
|
|
4
|
-
`)),t.length===0){console.log(o.yellow(" No .agent profiles found.")),console.log(o.gray(` Create one: paradigm agent create <id> --global
|
|
5
|
-
`)),r.success("No agents found");return}for(let i of t){let d=(i.expertise||[]).sort((n,f)=>f.confidence-n.confidence).slice(0,3).map(n=>`${n.symbol} (${(n.confidence*100).toFixed(0)}%)`).join(", ")||o.gray("none yet");console.log(` ${o.white.bold(i.id)} \u2014 ${o.gray(i.role)}`),console.log(` Style: ${i.personality?.style||"?"} | Risk: ${i.personality?.risk||"?"} | Verbosity: ${i.personality?.verbosity||"?"}`),console.log(` Top expertise: ${d}`),console.log(` Projects: ${Object.keys(i.contexts||{}).join(", ")||o.gray("none")}`),console.log("");}r.success(`Listed ${t.length} agents`);}async function I(e,s={}){let r=process.cwd(),t=a.command("agent-show").start(`Showing agent ${e}`,{cwd:r}),g=x(r,e);if(!g){s.json?console.log(JSON.stringify({error:`Agent "${e}" not found`})):(console.log(o.red(`
|
|
6
|
-
Agent "${e}" not found.`)),console.log(o.gray(` Create: paradigm agent create ${e} --global
|
|
7
|
-
`))),t.error(`Agent ${e} not found`);return}if(s.json){console.log(JSON.stringify(g,null,2)),t.success(`Showed agent ${e}`);return}if(console.log(o.blue(`
|
|
8
|
-
\u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510`)),console.log(o.blue("\u2502")+o.white.bold(` Agent: ${e}`.padEnd(50))+o.blue("\u2502")),console.log(o.blue(`\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518
|
|
9
|
-
`)),console.log(` ${o.white.bold("Role:")} ${g.role}`),console.log(` ${o.white.bold("Description:")} ${g.description}`),console.log(` ${o.white.bold("Version:")} ${g.version}`),console.log(` ${o.white.bold("Created:")} ${g.created}`),console.log(` ${o.white.bold("Updated:")} ${g.updated}`),console.log(""),g.personality){let f=g.personality;console.log(` ${o.white.bold("Personality")}`),console.log(` Style: ${f.style} | Risk: ${f.risk} | Verbosity: ${f.verbosity}`),console.log("");}let i=(g.expertise||[]).sort((f,a)=>a.confidence-f.confidence);if(i.length>0){console.log(` ${o.white.bold("Expertise")} (${i.length} symbols)`),console.log(` ${"Symbol".padEnd(30)} ${"Confidence".padEnd(12)} ${"Sessions".padEnd(10)} Last Touch`),console.log(` ${"-".repeat(70)}`);for(let f of i.slice(0,20)){let a=`${(f.confidence*100).toFixed(0)}%`.padEnd(12),h=String(f.sessions).padEnd(10),p=f.lastTouch?f.lastTouch.split("T")[0]:"\u2014";console.log(` ${f.symbol.padEnd(30)} ${a} ${h} ${p}`);}i.length>20&&console.log(o.gray(` ... and ${i.length-20} more`)),console.log("");}else console.log(o.gray(" No expertise recorded. Run `paradigm agent sync` to bootstrap from lore.\n"));let l=g.transferable||[];if(l.length>0){console.log(` ${o.white.bold("Transferable Patterns")} (${l.length})`);for(let f of l)console.log(` ${f.id}: ${(f.successRate*100).toFixed(0)}% success \u2014 ${f.description}`),console.log(o.gray(` Learned in: ${f.learnedIn} | Applied in: ${f.appliedIn.join(", ")||"none"}`));console.log("");}let d=Object.entries(g.contexts||{});if(d.length>0){console.log(` ${o.white.bold("Project Contexts")} (${d.length})`);for(let[f,a]of d)console.log(` ${o.white(f)}: ${a.sessionsInProject||0} sessions, last active ${a.lastActive?.split("T")[0]||"\u2014"}`),a.defaultModel&&console.log(` Model: ${a.defaultModel}`),a.focus?.length&&console.log(` Focus: ${a.focus.join(", ")}`);console.log("");}let n=g.permissions;n&&(console.log(` ${o.white.bold("Permissions")}`),n.paths?.read?.length&&console.log(` Read: ${n.paths.read.join(", ")}`),n.paths?.write?.length&&console.log(` Write: ${n.paths.write.join(", ")}`),n.paths?.deny?.length&&console.log(` Deny: ${o.red(n.paths.deny.join(", "))}`),n.tools?.allow?.length&&console.log(` Tools allow: ${n.tools.allow.join(", ")}`),n.tools?.deny?.length&&console.log(` Tools deny: ${o.red(n.tools.deny.join(", "))}`),n.dangerous_actions?.length&&console.log(` Requires approval: ${n.dangerous_actions.join(", ")}`),console.log("")),t.success(`Showed agent ${e}`);}async function D(e,s={}){let r=process.cwd(),t=s.global?"global":"project",g=a.command("agent-create").start(`Creating agent ${e} (${t})`,{cwd:r}),i=t==="global"?u:y.join(r,S);c.existsSync(i)||c.mkdirSync(i,{recursive:true});let l=y.join(i,`${e}${$}`);if(c.existsSync(l)){console.log(o.yellow(`
|
|
10
|
-
Agent "${e}" already exists at ${l}`)),console.log(o.gray(" Use `paradigm agent show` to view.\n")),g.error("Agent already exists");return}let d=new Date().toISOString(),n=k[e]||{style:"deliberate",risk:"balanced",verbosity:"concise"},f={id:e,role:s.role||`${e.charAt(0).toUpperCase()+e.slice(1)} agent`,description:s.description||`Persistent identity for the ${e} agent role`,version:"1.0.0",personality:n,expertise:[],transferable:[],contexts:{},created:d,updated:d};if(s.denyPaths){let h=s.denyPaths.split(",").map(p=>p.trim());f.permissions={paths:{deny:h}};}let a$1=m.dump(f,{lineWidth:120,noRefs:true,sortKeys:false});c.writeFileSync(l,a$1,"utf-8"),console.log(o.green(`
|
|
11
|
-
\u2713 Created agent "${e}" at ${l}`)),console.log(o.gray(" Run `paradigm agent sync` to bootstrap expertise from lore.\n")),g.success(`Created agent ${e}`);}async function N(e,s={}){let r=process.cwd(),t=a.command("agent-sync").start(`Syncing expertise for ${e}`,{cwd:r}),g=y.join(r,".paradigm","lore","entries");if(!c.existsSync(g)){console.log(o.yellow(`
|
|
12
|
-
No lore directory found. Nothing to sync from.
|
|
13
|
-
`)),t.error("No lore found");return}let i=x(r,e);if(!i){if(s.dryRun){console.log(o.yellow(`
|
|
14
|
-
Agent "${e}" not found. Would create with --no-dry-run.
|
|
15
|
-
`)),t.success("Dry run \u2014 would create");return}let h=(c.existsSync(y.join(u,`${e}${$}`))?"global":"project")==="global"?u:y.join(r,S);c.existsSync(h)||c.mkdirSync(h,{recursive:true});let p=new Date().toISOString(),w=k[e]||{style:"deliberate",risk:"balanced",verbosity:"concise"};i={id:e,role:`${e.charAt(0).toUpperCase()+e.slice(1)} agent`,description:`Persistent identity for the ${e} agent role`,version:"1.0.0",personality:w,expertise:[],transferable:[],contexts:{},created:p,updated:p};}let l=i.expertise||[],d=0,n=new Set,f=F(g);for(let a of f)if(!(!a.symbols_touched||a.symbols_touched.length===0)){d++;for(let h of a.symbols_touched){n.add(h);let p=l.find(w=>w.symbol===h);p?(p.sessions++,p.lastTouch=a.timestamp||p.lastTouch,a.confidence!=null&&(p.confidence=.7*p.confidence+.3*a.confidence)):l.push({symbol:h,confidence:a.confidence??.5,sessions:1,lastTouch:a.timestamp||new Date().toISOString()});}}if(i.expertise=l,s.json)console.log(JSON.stringify({agentId:e,entriesProcessed:d,symbolsUpdated:n.size,dryRun:!!s.dryRun,topExpertise:l.sort((a,h)=>h.confidence-a.confidence).slice(0,10)},null,2));else if(console.log(o.blue(`
|
|
16
|
-
Syncing expertise for "${e}" from ${d} lore entries...`)),console.log(` ${o.green("\u2713")} ${n.size} symbols updated`),console.log(` ${o.green("\u2713")} ${d} entries processed`),l.length>0){console.log(`
|
|
17
|
-
Top expertise:`);for(let a of l.sort((h,p)=>p.confidence-h.confidence).slice(0,5))console.log(` ${a.symbol}: ${(a.confidence*100).toFixed(0)}% (${a.sessions} sessions)`);}if(s.dryRun)s.json||console.log(o.yellow(`
|
|
18
|
-
Dry run \u2014 no changes written.
|
|
19
|
-
`));else {i.updated=new Date().toISOString();let a=y.join(r,S,`${e}${$}`),h=y.join(u,`${e}${$}`),p=c.existsSync(a)?"project":"global",w=p==="global"?u:y.join(r,S);c.existsSync(w)||c.mkdirSync(w,{recursive:true});let j=p==="global"?h:a;c.writeFileSync(j,m.dump(i,{lineWidth:120,noRefs:true,sortKeys:false}),"utf-8"),s.json||console.log(o.green(`
|
|
20
|
-
\u2713 Saved to ${j}
|
|
21
|
-
`));}t.success(`Synced ${n.size} symbols from ${d} entries`);}async function _(e={}){let s=process.cwd(),r=a.command("agent-roster").start("Agent roster",{cwd:s}),t=[];if(c.existsSync(u))for(let d of c.readdirSync(u).filter(n=>n.endsWith($)))try{let n=m.load(c.readFileSync(y.join(u,d),"utf-8"));n?.id&&t.push(n);}catch{}let g=y.join(s,S);if(c.existsSync(g))for(let d of c.readdirSync(g).filter(n=>n.endsWith($)))try{let n=m.load(c.readFileSync(y.join(g,d),"utf-8"));if(n?.id){let f=t.findIndex(a=>a.id===n.id);f>=0?t[f]=n:t.push(n);}}catch{}let i=t.filter(d=>!d.benched),l=t.filter(d=>d.benched);if(e.json){console.log(JSON.stringify({active:i.map(v),benched:l.map(v)},null,2)),r.success(`${i.length} active, ${l.length} benched`);return}if(console.log(o.blue(`
|
|
22
|
-
\u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510`)),console.log(o.blue("\u2502")+o.white.bold(" Agent Roster ")+o.blue("\u2502")),console.log(o.blue(`\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518
|
|
23
|
-
`)),i.length>0){console.log(o.green.bold(" Active"));for(let d of i)A(d);}if(l.length>0){console.log(o.gray.bold(`
|
|
24
|
-
Benched`));for(let d of l)A(d,true);}t.length===0?console.log(o.yellow(` No agents found.
|
|
25
|
-
`)):console.log(""),r.success(`${i.length} active, ${l.length} benched`);}function A(e,s=false){let r=(e.expertise||[]).sort((n,f)=>f.confidence-n.confidence),t=r[0]?`${r[0].symbol} (${(r[0].confidence*100).toFixed(0)}%)`:o.gray("\u2014"),g=s?o.gray:o.white,i=e.nickname?` (${e.nickname})`:"",l=e.attention?.threshold,d=l!=null?` | thr: ${l.toFixed(2)}`:"";console.log(` ${g.bold(e.id)}${o.gray(i)} \u2014 ${o.gray(e.role)}`),console.log(` Top: ${t} | ${r.length} symbols${d}`);}function v(e){let s=(e.expertise||[]).sort((r,t)=>t.confidence-r.confidence);return {id:e.id,role:e.role,nickname:e.nickname,benched:e.benched||false,expertiseCount:s.length,topExpertise:s.slice(0,3).map(r=>({symbol:r.symbol,confidence:parseFloat(r.confidence.toFixed(2))})),threshold:e.attention?.threshold}}async function L(e){let s=process.cwd(),r=a.command("agent-bench").start(`Benching agent ${e}`,{cwd:s}),t=x(s,e);if(!t){console.log(o.red(`
|
|
26
|
-
Agent "${e}" not found.
|
|
27
|
-
`)),r.error("Not found");return}t.benched=true,t.updated=new Date().toISOString(),R(s,e,t),console.log(o.yellow(`
|
|
28
|
-
\u23F8 Agent "${e}" is now benched.`)),console.log(o.gray(` Maestro will skip this agent during orchestration.
|
|
29
|
-
`)),r.success(`Benched ${e}`);}async function W(e){let s=process.cwd(),r=a.command("agent-activate").start(`Activating agent ${e}`,{cwd:s}),t=x(s,e);if(!t){console.log(o.red(`
|
|
30
|
-
Agent "${e}" not found.
|
|
31
|
-
`)),r.error("Not found");return}t.benched=false,t.updated=new Date().toISOString(),R(s,e,t),console.log(o.green(`
|
|
32
|
-
\u25B6 Agent "${e}" is now active.`)),console.log(o.gray(` Maestro will include this agent in orchestration.
|
|
33
|
-
`)),r.success(`Activated ${e}`);}function R(e,s,r){let t=y.join(e,S,`${s}${$}`);if(c.existsSync(t)){c.writeFileSync(t,m.dump(r,{lineWidth:120,noRefs:true,sortKeys:false}),"utf-8");return}let g=y.join(u,`${s}${$}`),i=u;c.existsSync(i)||c.mkdirSync(i,{recursive:true}),c.writeFileSync(g,m.dump(r,{lineWidth:120,noRefs:true,sortKeys:false}),"utf-8");}function x(e,s){let r=y.join(e,S,`${s}${$}`);if(c.existsSync(r))try{return m.load(c.readFileSync(r,"utf-8"))}catch{}let t=y.join(u,`${s}${$}`);if(c.existsSync(t))try{return m.load(c.readFileSync(t,"utf-8"))}catch{}return null}function C(e){return {id:e.id,role:e.role,personality:e.personality,expertiseCount:(e.expertise||[]).length,topExpertise:(e.expertise||[]).sort((s,r)=>r.confidence-s.confidence).slice(0,3).map(s=>({symbol:s.symbol,confidence:parseFloat(s.confidence.toFixed(2))})),projectContexts:Object.keys(e.contexts||{}),transferableCount:(e.transferable||[]).length}}function F(e){let s=[];try{let r=c.readdirSync(e,{withFileTypes:!0});for(let t of r){if(!t.isDirectory())continue;let g=y.join(e,t.name);try{let i=c.readdirSync(g).filter(l=>l.endsWith(".yaml")||l.endsWith(".yml"));for(let l of i)try{let d=c.readFileSync(y.join(g,l),"utf-8"),n=m.load(d);n?.symbols_touched&&Array.isArray(n.symbols_touched)&&s.push({symbols_touched:n.symbols_touched,confidence:typeof n.confidence=="number"?n.confidence:void 0,timestamp:n.timestamp||t.name});}catch{}}catch{}}}catch{}return s}export{W as agentActivateCommand,L as agentBenchCommand,D as agentCreateCommand,T as agentListCommand,_ as agentRosterCommand,I as agentShowCommand,N as agentSyncCommand};
|
package/dist/chunk-EAZ3EMOZ.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import {z as z$1,i,f,j as j$1}from'./chunk-2Q7RGCJH.js';import {g as g$1,f as f$1}from'./chunk-QGZRM6ZB.js';import {g as g$2,f as f$2}from'./chunk-VG7FN2TU.js';import {b as b$1,a,d}from'./chunk-5TAVYPOV.js';import*as u from'fs';import*as g from'path';import*as W from'js-yaml';import*as R from'os';function G(e){return g.join(e,q,st)}function at(){let e=Date.now(),t=Math.floor(Math.random()*9999).toString().padStart(4,"0");return `ev-${e}-${t}`}function k(e,t){let n={id:at(),timestamp:new Date().toISOString(),...t};w.push(n),w.length>v&&(w=w.slice(-v));try{let r=g.join(e,q);u.mkdirSync(r,{recursive:!0});let o=G(e);u.appendFileSync(o,JSON.stringify(n)+`
|
|
3
|
-
`,"utf8"),ct(o);}catch{}return n}function ct(e){try{if(u.statSync(e).size>512*1024){let r=u.readFileSync(e,"utf8").trim().split(`
|
|
4
|
-
`);if(r.length>v){let o=r.slice(-v);u.writeFileSync(e,o.join(`
|
|
5
|
-
`)+`
|
|
6
|
-
`,"utf8");}}}catch{}}function Dt(e,t){let n=lt(e);return t?.type&&(n=n.filter(r=>r.type===t.type)),t?.source&&(n=n.filter(r=>r.source===t.source)),t?.symbol&&(n=n.filter(r=>r.symbols?.includes(t.symbol))),t?.agent&&(n=n.filter(r=>r.agent===t.agent)),t?.since&&(n=n.filter(r=>r.timestamp>=t.since)),n.sort((r,o)=>o.timestamp.localeCompare(r.timestamp)),t?.limit&&(n=n.slice(0,t.limit)),n}function lt(e){let t=G(e);if(!u.existsSync(t))return [...w];try{return u.readFileSync(t,"utf8").trim().split(`
|
|
7
|
-
`).filter(o=>o.trim()).map(o=>{try{return JSON.parse(o)}catch{return null}}).filter(o=>o!==null)}catch{return [...w]}}function Y(e,t,n){let r=0,o=0,i=0,a=0;if(n.symbols?.length&&e.symbols?.length)for(let l of n.symbols)for(let s of e.symbols)B(l,s)&&(r=Math.max(r,1));if(n.paths?.length&&e.path){for(let l of n.paths)if(B(l,e.path)){o=1;break}}if(n.concepts?.length){let l=[e.context||"",...e.keywords||[],e.type].join(" ").toLowerCase(),s=0;for(let f of n.concepts)l.includes(f.toLowerCase())&&s++;n.concepts.length>0&&(i=s/n.concepts.length);}if(n.signals?.length){for(let l of n.signals)if(l.type===e.type){a=1;break}}let m=[r,o,i,a].sort((l,s)=>s-l),c=m[0]*.5+m[1]*.2+m[2]*.15+m[3]*.15,d=n.threshold??.6;return {agentId:t,score:c,breakdown:{symbolMatch:r,pathMatch:o,conceptMatch:i,signalMatch:a},shouldNominate:c>=d,quietReason:c<d?"below-threshold":void 0}}function B(e,t){if(e===t)return true;let n=e.replace(/\*\*/g,"\xA7\xA7").replace(/\*/g,"[^/]*").replace(/§§/g,".*");try{return new RegExp(`^${n}$`).test(t)}catch{return false}}var q,st,v,w,z=b$1(()=>{q=".paradigm/events",st="stream.jsonl",v=1e3,w=[];});var j,H=b$1(()=>{j={version:"1.0",default_ring:"project-locked",observation:{allow:["src/**",".paradigm/**","portal.yaml"],deny:[".env*","**/*.key","**/*.pem","**/secrets/**"]},streams:{work_log:{ring:"project-locked",allow_content:["file_paths","symbol_names","outcome"],deny_content:["code_snippets","file_contents","diff_content","gap_narrations"]},learning_journal:{ring:"user-scoped",allow_content:["pattern_descriptions","confidence_adjustments","approach_descriptions"],deny_content:["code_snippets","file_contents","symbol_names_with_context","gap_narrations","cost_data","health_status","execution_metrics"],redaction:[{pattern:"\\b[A-Z_]{2,}_KEY\\b"},{pattern:"password|secret|token"}]},team_decisions:{ring:"project-locked",allow_content:["rationale","alternatives","symbol_references"],deny_content:["implementation_details","gap_narrations","cost_data","health_status","execution_metrics"]}},upstream:{ring:"creator-upstream",allowed:["task_type","outcome","helpfulness","duration_bucket","error_category"],denied:["code_of_any_kind","file_paths","symbol_names","conversation_content","user_identity"]},network:{ring:"network-public",opt_in:false,if_opted_in:["aggregated_task_success_rates","anonymized_pattern_frequency"]}};});function F(e){let t=g.join(e,dt);if(!u.existsSync(t))return {...j};try{let n=u.readFileSync(t,"utf8"),r=W.load(n);return ut(j,r)}catch{return {...j}}}function ut(e,t){let n={...e};if(t.version&&(n.version=t.version),t.default_ring&&(n.default_ring=t.default_ring),t.observation&&(n.observation={allow:t.observation.allow||e.observation?.allow,deny:[...e.observation?.deny||[],...t.observation.deny||[]].filter((r,o,i)=>i.indexOf(r)===o)}),t.streams){n.streams={...e.streams};for(let r of ["work_log","learning_journal","team_decisions"])t.streams[r]&&(n.streams[r]={...e.streams?.[r],...t.streams[r],deny_content:[...e.streams?.[r]?.deny_content||[],...t.streams[r]?.deny_content||[]].filter((o,i,a)=>a.indexOf(o)===i)});}return t.upstream&&(n.upstream={...e.upstream,...t.upstream}),t.network&&(n.network={...e.network,...t.network}),t.agent_overrides&&(n.agent_overrides={...e.agent_overrides,...t.agent_overrides}),t.deployment&&(n.deployment={...e.deployment,...t.deployment}),n}function O(e,t,n){return n&&e.agent_overrides?.[n]?.observation&&e.agent_overrides[n].observation.deny?.some(o=>C(o,t))||e.observation?.deny?.some(r=>C(r,t))?false:e.observation?.allow?.length?e.observation.allow.some(r=>C(r,t)):true}function $t(e,t,n){let r=t.streams?.[n];if(!r)return {filtered:e,redacted:[]};let o=[],i=e;if(r.redaction)for(let a of r.redaction)try{let m=new RegExp(a.pattern,"gi"),c=i.match(m);c&&(o.push(...c),i=i.replace(m,a.replacement||"[REDACTED]"));}catch{}return {filtered:i,redacted:o}}function C(e,t){if(e===t)return true;let n=e.replace(/\*\*/g,"\xA7\xA7").replace(/\*/g,"[^/]*").replace(/§§/g,".*");try{return new RegExp(`^${n}$`).test(t)}catch{return false}}var dt,X=b$1(()=>{H();dt=".paradigm/data-policy.yaml";});function bt(){let e=Date.now(),t=Math.floor(Math.random()*9999).toString().padStart(4,"0");return `nom-${e}-${t}`}function St(){let e=Date.now(),t=Math.floor(Math.random()*9999).toString().padStart(4,"0");return `dbt-${e}-${t}`}function Z(e,t){let n=i(e),r=F(e),o=[];for(let d of n){if(!d.attention||d.benched||t.path&&!O(r,t.path,d.id))continue;let l=Y(t,d.id,d.attention);l.shouldNominate&&o.push({profile:d,score:l});}if(o.length===0)return {nominations:[],debates:[]};let i$1=D(e,{since:new Date(Date.now()-3e4).toISOString()}),a=o.filter(({profile:d})=>!i$1.find(s=>s.agent===d.id&&s.brief===K(d,t,{...o.find(f=>f.profile.id===d.id).score})));if(a.length===0)return {nominations:[],debates:[]};let m=a.map(({profile:d,score:l})=>{let s=wt(t,l),f=kt(d,t);return {id:bt(),agent:d.id,relevance:l.score,urgency:s,type:f,brief:K(d,t,l),triggered_by:[t.id],timestamp:new Date().toISOString(),surfaced:false}});Et(e,m);let c=xt(e,m);return c.length>0&&Nt(e,c),{nominations:m,debates:c}}function wt(e,t){return e.severity==="critical"?"critical":e.severity==="error"||e.type==="compliance-violation"||e.type==="error-encountered"?"high":e.type==="gate-added"||e.type==="route-created"||t.score>=.9?"medium":"low"}function kt(e,t){let n=e.collaboration?.stance;return t.type==="compliance-violation"||t.type==="error-encountered"?"warning":t.type==="gate-added"||t.type==="route-created"?"observation":n==="advisory"||n==="lead"?"suggestion":"observation"}function K(e,t,n){let r=e.role||e.id;switch(t.type){case "gate-checked":return `${r}: Gate check on ${t.symbols?.join(", ")||"route"} \u2014 verify gate coverage is complete`;case "file-modified":return `${r}: ${t.path||"File"} modified \u2014 review for ${e.id==="security"?"security implications":e.id==="tester"?"test coverage":e.id==="reviewer"?"code quality":"consistency"}`;case "compliance-violation":return `${r}: Compliance violation detected \u2014 ${t.context||"check .purpose and portal.yaml coverage"}`;case "route-created":return `${r}: New route ${t.symbols?.join(", ")||""} \u2014 ${e.id==="security"?"needs gate assignment in portal.yaml":"review route structure"}`;case "gate-added":return `${r}: Gate ${t.symbols?.join(", ")||""} added \u2014 ${e.id==="security"?"verify enforcement points":"check downstream impact"}`;case "decision-made":return `${r}: Decision recorded \u2014 ${t.context?.slice(0,80)||"review for alignment with project patterns"}`;case "work-completed":return `${r}: Work completed on ${t.symbols?.join(", ")||t.context?.slice(0,40)||"task"} \u2014 review outcome`;case "error-encountered":return `${r}: Error detected \u2014 ${t.context?.slice(0,80)||"investigate root cause"}`;default:{let o=n.breakdown.symbolMatch>0?`symbol match on ${t.symbols?.join(", ")||"unknown"}`:n.breakdown.pathMatch>0?`path ${t.path||"unknown"}`:t.context?.slice(0,60)||t.type;return `${r}: ${o}`}}}function xt(e,t){if(t.length<2)return [];let n=[],r=new Map;for(let o of t)for(let i of o.triggered_by){let a=r.get(i)||[];a.push(o),r.set(i,a);}for(let[o,i]of r){if(i.length<2||new Set(i.map(d=>d.agent)).size<2)continue;let m=new Set(i.map(d=>d.type)),c=m.size>1&&m.has("warning")&&m.has("suggestion");n.push({id:St(),topic:`Multiple agents responded to event ${o}`,nominations:i.map(d=>d.id),type:c?"conflicting":"complementary",overlap_events:[o]});}return n}function $(e){return g.join(e,b,mt)}function M(e){return g.join(e,b,ft)}function Et(e,t){try{let n=g.join(e,b);u.mkdirSync(n,{recursive:!0});let r=$(e),o=t.map(a=>JSON.stringify(a)).join(`
|
|
8
|
-
`)+`
|
|
9
|
-
`;u.appendFileSync(r,o,"utf8"),Q(r,gt);let{nominationTtlDays:i}=A(e);tt(r,i*24*60*60*1e3);}catch{}}function Nt(e,t){try{let n=g.join(e,b);u.mkdirSync(n,{recursive:!0});let r=M(e),o=t.map(a=>JSON.stringify(a)).join(`
|
|
10
|
-
`)+`
|
|
11
|
-
`;u.appendFileSync(r,o,"utf8"),Q(r,pt);let{debateTtlDays:i}=A(e);tt(r,i*24*60*60*1e3);}catch{}}function Q(e,t){try{let r=u.readFileSync(e,"utf8").trim().split(`
|
|
12
|
-
`).filter(o=>o.trim());if(r.length>t){let o=r.slice(-t);u.writeFileSync(e,o.join(`
|
|
13
|
-
`)+`
|
|
14
|
-
`,"utf8");}}catch{}}function A(e){let t={nominationTtlDays:yt,debateTtlDays:ht};try{let n=g.join(e,".paradigm","config.yaml");if(!u.existsSync(n))return t;let r=a("js-yaml"),o=u.readFileSync(n,"utf8"),a$1=r.load(o)?.ambient;return a$1?{nominationTtlDays:typeof a$1["nomination-ttl-days"]=="number"?a$1["nomination-ttl-days"]:t.nominationTtlDays,debateTtlDays:typeof a$1["debate-ttl-days"]=="number"?a$1["debate-ttl-days"]:t.debateTtlDays}:t}catch{return t}}function tt(e,t){try{if(!u.existsSync(e))return;let r=u.readFileSync(e,"utf8").trim().split(`
|
|
15
|
-
`).filter(a=>a.trim());if(r.length<=_t)return;let o=Date.now()-t,i=r.filter(a=>{try{let m=JSON.parse(a);return (m.timestamp?new Date(m.timestamp).getTime():Date.now())>=o}catch{return !0}});i.length<r.length&&u.writeFileSync(e,i.join(`
|
|
16
|
-
`)+`
|
|
17
|
-
`,"utf8");}catch{}}function D(e,t){let n=$(e);if(!u.existsSync(n))return [];try{let o=u.readFileSync(n,"utf8").trim().split(`
|
|
18
|
-
`).filter(i=>i.trim()).map(i=>{try{return JSON.parse(i)}catch{return null}}).filter(i=>i!==null);return t?.agent&&(o=o.filter(i=>i.agent===t.agent)),t?.urgency&&(o=o.filter(i=>i.urgency===t.urgency)),t?.surfaced!==void 0&&(o=o.filter(i=>i.surfaced===t.surfaced)),t?.pending_only&&(o=o.filter(i=>!i.engaged)),t?.since&&(o=o.filter(i=>i.timestamp>=t.since)),o.sort((i,a)=>a.timestamp.localeCompare(i.timestamp)),t?.limit&&(o=o.slice(0,t.limit)),o}catch{return []}}function Jt(e){let t=M(e);if(!u.existsSync(t))return [];try{return u.readFileSync(t,"utf8").trim().split(`
|
|
19
|
-
`).filter(r=>r.trim()).map(r=>{try{return JSON.parse(r)}catch{return null}}).filter(r=>r!==null)}catch{return []}}function Bt(e,t,n,r){let o=$(e);if(!u.existsSync(o))return false;try{let a=u.readFileSync(o,"utf8").trim().split(`
|
|
20
|
-
`),m=!1,c=a.map(d=>{try{let l=JSON.parse(d);return l.id===t?(l.engaged=!0,l.response=n,r&&(l.reason=r),m=!0,JSON.stringify(l)):d}catch{return d}});if(m&&(u.writeFileSync(o,c.join(`
|
|
21
|
-
`)+`
|
|
22
|
-
`,"utf8"),n==="accepted"||n==="dismissed")){let d=JSON.parse(a.find(s=>{try{return JSON.parse(s).id===t}catch{return !1}}));i(e).find(s=>s.id===d.agent)?.learning?.intrinsic?.feedback?.after_recommendation&&k(e,{type:"work-completed",source:"agent-action",agent:d.agent,context:`Nomination ${t} ${n} \u2014 feedback for learning`,data:{nomination_id:t,response:n}});}return m}catch{return false}}function qt(e,t,n,r){let o=M(e);if(!u.existsSync(o))return false;try{let a=u.readFileSync(o,"utf8").trim().split(`
|
|
23
|
-
`),m=!1,c=a.map(d=>{try{let l=JSON.parse(d);if(l.id===t){l.resolution={chosen:n,reason:r,resolved_by:"human",resolved_at:new Date().toISOString()},m=!0;let s=l.nominations.filter(f=>f!==n);for(let f of s){let p=D(e).find(y=>y.id===f);p&&k(e,{type:"work-completed",source:"agent-action",agent:p.agent,context:`Debate ${t} resolved \u2014 nomination ${f} not chosen`,data:{debate_id:t,chosen:n,reason:r}});}return JSON.stringify(l)}return d}catch{return d}});return m&&u.writeFileSync(o,c.join(`
|
|
24
|
-
`)+`
|
|
25
|
-
`,"utf8"),m}catch{return false}}function Gt(e){let t=g.join(e,b,".last-processed"),n="";try{u.existsSync(t)&&(n=u.readFileSync(t,"utf8").trim());}catch{}let r=g.join(e,b,"stream.jsonl");if(!u.existsSync(r))return {processed:0,nominations:[]};let o=[];try{o=u.readFileSync(r,"utf8").trim().split(`
|
|
26
|
-
`).filter(s=>s.trim()).map(s=>{try{return JSON.parse(s)}catch{return null}}).filter(s=>s!==null);}catch{return {processed:0,nominations:[]}}let i=0;if(n){let l=o.findIndex(s=>s.id===n);l>=0&&(i=l+1);}let a=o.slice(i);if(a.length===0)return {processed:0,nominations:[]};let m=[],c=a.slice(0,50);for(let l of c){let{nominations:s}=Z(e,l);m.push(...s);}let d=c[c.length-1];try{u.mkdirSync(g.join(e,b),{recursive:!0}),u.writeFileSync(t,d.id,"utf8");}catch{}return {processed:c.length,nominations:m}}function Yt(e,t,n){let r=F(e);if(t.path&&!O(r,t.path))return {event:k(e,t),nominations:[],debates:[]};let o=k(e,t);if(n?.skipNominations)return {event:o,nominations:[],debates:[]};let{nominations:i,debates:a}=Z(e,o);return i.length>0&&jt(e,i),{event:o,nominations:i,debates:a}}function zt(e,t){let n=f(e,t);if(!n?.attention)return {adjusted:false,oldThreshold:.6,newThreshold:.6,reason:"No attention config"};let r=n.attention.threshold??.6,{nominationTtlDays:o}=A(e),i=o*24*60*60*1e3,c=D(e,{agent:t}).filter(_=>_.engaged||Date.now()-new Date(_.timestamp).getTime()<i).filter(_=>_.engaged);if(c.length<5)return {adjusted:false,oldThreshold:r,newThreshold:r,reason:`Insufficient data (${c.length}/5 engaged nominations)`};let d=c.filter(_=>_.response==="accepted").length,l=c.filter(_=>_.response==="dismissed").length,s=d/c.length,f$1=l/c.length,p=r,y="No adjustment needed";if(f$1>.6?(p=Math.min(.95,r+.05),y=`High dismiss rate (${(f$1*100).toFixed(0)}%) \u2014 raising threshold to reduce noise`):s>.8&&(p=Math.max(.2,r-.05),y=`High accept rate (${(s*100).toFixed(0)}%) \u2014 lowering threshold to contribute more`),p===r)return {adjusted:false,oldThreshold:r,newThreshold:p,reason:y};n.attention.threshold=p;let S=g.join(e,".paradigm/agents",`${t}.agent`),x=u.existsSync(S)?"project":"global";return j$1(t,n,x,e),k(e,{type:"work-completed",source:"agent-action",agent:t,context:`Attention threshold adjusted: ${r.toFixed(2)} \u2192 ${p.toFixed(2)} (${y})`,data:{old_threshold:r,new_threshold:p,accept_rate:s,dismiss_rate:f$1}}),{adjusted:true,oldThreshold:r,newThreshold:p,reason:y}}function vt(e,t){let{nominationTtlDays:n}=A(e),r=n*24*60*60*1e3,i=D(e,{agent:t}).filter(s=>s.engaged||Date.now()-new Date(s.timestamp).getTime()<r),a=i.filter(s=>s.response==="accepted").length,m=i.filter(s=>s.response==="dismissed").length,c=i.filter(s=>s.response==="deferred").length,d=i.filter(s=>!s.engaged).length,l=a+m+c;return {total:i.length,accepted:a,dismissed:m,deferred:c,pending:d,acceptRate:l>0?a/l:0}}function Ht(e){let n=i(e).filter(s=>!s.benched).map(s=>{let f=vt(e,s.id),p=0;try{let y=g.join(R.homedir(),".paradigm","notebooks",s.id);u.existsSync(y)&&(p=u.readdirSync(y).filter(S=>S.endsWith(".yaml")).length);}catch{}return {id:s.id,acceptRate:f.acceptRate,threshold:s.attention?.threshold??.5,expertiseCount:(s.expertise||[]).length,notebookCount:p,transferableCount:(s.transferable||[]).length,totalNominations:f.total}}),r=n.length||1,o=n.reduce((s,f)=>s+f.acceptRate,0)/r,i$1=n.reduce((s,f)=>s+f.threshold,0)/r,a=n.reduce((s,f)=>s+f.expertiseCount,0),m=n.reduce((s,f)=>s+f.notebookCount,0),c=n.reduce((s,f)=>s+f.transferableCount,0),d=n.reduce((s,f)=>s+f.totalNominations,0),l;return d<10?l="cold-start":o<.5?l="accumulating":o<.7?l="calibrating":l="mature",{agents:n,aggregate:{avgAcceptRate:o,avgThreshold:i$1,totalExpertise:a,totalNotebooks:m,totalTransferable:c},healthStatus:l}}function jt(e,t){if(t.length===0)return;let n=g.join(R.homedir(),".paradigm","score","outbox");if(u.existsSync(n))try{let r=g.join(n,`nom-${Date.now()}.json`),o={type:"nomination_forward",nominations:t.map(i=>({...i})),origin:Tt(e),timestamp:new Date().toISOString()};u.writeFileSync(r,JSON.stringify(o),"utf8");}catch{}}function Tt(e){try{let t=g.join(e,".paradigm","config.yaml");if(u.existsSync(t)){let r=u.readFileSync(t,"utf8").match(/project:\s*(.+)/);if(r)return r[1].trim()}}catch{}return g.basename(e)}function Vt(e,t){let n,r;try{let c=(g$1(),d(f$1)),d$1=(g$2(),d(f$2));n=c.loadJournalEntries,r=d$1.addNotebookEntry;}catch{return {promoted:0,entries:[]}}let o=n(t,{trigger:"pattern_discovered",limit:100}),i=n(t,{trigger:"human_feedback",limit:100}),a=[...o,...i],m=[];for(let c of a)if(!c.promoted_to_notebook&&!((c.confidence_after??0)<.8))try{let{entry:d}=r(t,{context:c.pattern?.applies_when||c.insight.slice(0,80),snippet:c.pattern?.correct_approach||c.insight,concepts:c.tags||[c.pattern?.id||"learned-pattern"],provenance:{source:"journal-auto-promote",sourceId:c.id,createdBy:t}},"global",e);m.push({journalId:c.id,notebookId:d.id});try{let l=g.join(R.homedir(),".paradigm","agents",t,"journal");if(u.existsSync(l)){let s=u.readdirSync(l).filter(f=>f.endsWith(".yaml"));for(let f of s){let p=g.join(l,f),y=u.readFileSync(p,"utf8");if(y.includes(c.id)){let S=y.replace(/promoted_to_notebook:.*$/m,`promoted_to_notebook: "${d.id}"`);if(S===y){let x=y.trimEnd().split(`
|
|
27
|
-
`);x.push(`promoted_to_notebook: "${d.id}"`),u.writeFileSync(p,x.join(`
|
|
28
|
-
`)+`
|
|
29
|
-
`,"utf8");}else u.writeFileSync(p,S,"utf8");break}}}}catch{}}catch{}return {promoted:m.length,entries:m}}function Wt(e){let t=g.join(e,Rt),n={default_min_urgency:"low",enable_debates:true};if(!u.existsSync(t))return n;try{let r=a("js-yaml"),o=u.readFileSync(t,"utf8"),i=r.load(o);return {...n,...i}}catch{return n}}function Xt(e,t){let n={critical:0,high:1,medium:2,low:3},r=n[t.default_min_urgency||"low"]??3;return e.filter(o=>{let i=n[o.urgency]??3;if(t.preferences){let a=t.preferences.find(m=>m.agent===o.agent);if(a){if(a.always_show)return true;if(a.mute_unless?.length&&!a.mute_unless.some(c=>o.urgency===c||o.type===c))return false;if(a.min_urgency){let m=n[a.min_urgency]??3;return i<=m}}}return i<=r})}var b,mt,ft,gt,pt,yt,ht,_t,Rt,At=b$1(()=>{z();X();z$1();b=".paradigm/events",mt="nominations.jsonl",ft="debates.jsonl",gt=500,pt=200,yt=7,ht=14,_t=100;Rt=".paradigm/surfacing.yaml";});export{Dt as a,z as b,F as c,$t as d,X as e,Z as f,xt as g,Et as h,D as i,Jt as j,Bt as k,qt as l,Gt as m,Yt as n,zt as o,vt as p,Ht as q,jt as r,Vt as s,Wt as t,Xt as u,At as v};
|
package/dist/chunk-TZZNHUAR.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import*as c from'fs';import*as a from'path';import {Glob}from'glob';function n(t){let e=r=>{if(r.includes("*"))try{return new Glob(r,{cwd:t,nodir:!0}).walkSync().length>0}catch{return false}return c.existsSync(a.join(t,r))};return e("project.godot")||e("Assets/ProjectSettings")?"game":e("Package.swift")&&!e("package.json")?e("Sources/*/App")||e("**/AppDelegate.swift")?"macos-app":"ios-app":e("pubspec.yaml")?"flutter-app":e("supabase")&&(e("next.config.*")||e("vite.config.*"))?"saas-web-app":e("next.config.*")||e("vite.config.*")||e("nuxt.config.*")?"web-app":e("Dockerfile")||e("prisma")||e("drizzle.config.*")?"backend-api":e("Cargo.toml")?"rust-project":e("pyproject.toml")||e("setup.py")||e("requirements.txt")?"python-project":"generic"}var s={"saas-web-app":["advocate","architect","builder","compliance","reviewer","tester","security","documentor","designer","copywriter","performance","devops","dba","e2e","dx","seo","pm","product","sales","legal","a11y","qa","debugger","release","narrator"],"web-app":["advocate","architect","builder","compliance","reviewer","tester","security","documentor","designer","copywriter","performance","devops","e2e","seo","a11y","qa","debugger"],"backend-api":["advocate","architect","builder","compliance","reviewer","tester","security","documentor","devops","dba","performance","dx","qa","debugger","release"],"ios-app":["advocate","architect","builder","compliance","reviewer","tester","security","documentor","designer","mobile","performance","a11y","qa","debugger"],"macos-app":["advocate","architect","builder","compliance","reviewer","tester","security","documentor","designer","performance","qa","debugger"],"flutter-app":["advocate","architect","builder","compliance","reviewer","tester","security","documentor","designer","mobile","performance","a11y","debugger"],game:["advocate","architect","builder","compliance","reviewer","tester","documentor","gamedev","3d","audio","designer","performance","debugger"],"rust-project":["advocate","architect","builder","compliance","reviewer","tester","security","documentor","performance","debugger","qa"],"python-project":["advocate","architect","builder","compliance","reviewer","tester","security","documentor","performance","debugger","qa"],generic:["advocate","architect","builder","compliance","reviewer","tester","security","documentor","debugger","qa"]};export{n as a,s as b};
|