@a-company/paradigm 7.1.0 → 7.2.0
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/{accept-orchestration-WMGFGYDK.js → accept-orchestration-XW44LF5Y.js} +1 -1
- package/dist/add-CBDU23S2.js +12 -0
- package/dist/{aggregate-KZICPVT3.js → aggregate-H7SB2UYT.js} +1 -1
- package/dist/{ambient-HAXPDIWK.js → ambient-TFLZFV5Y.js} +1 -1
- package/dist/ambient-VCTUHHIG.js +2 -0
- package/dist/arch-loader-YVOS3QRY.js +2 -0
- package/dist/{beacon-52EWNZPK.js → beacon-WVN264OT.js} +1 -1
- package/dist/captain-CAXGHC2V.js +2 -0
- package/dist/captain-CWCLFOXV.js +2 -0
- package/dist/{chunk-QDP4G53M.js → chunk-27EK3OQZ.js} +4 -4
- package/dist/chunk-2KK4JQ55.js +17 -0
- package/dist/chunk-3I3TITBA.js +25 -0
- package/dist/chunk-3YM5ABNX.js +2 -0
- package/dist/{chunk-RDWWSQGH.js → chunk-6HYRS3PH.js} +14 -14
- package/dist/{chunk-S3UVQ5RV.js → chunk-6VZSOQ7Y.js} +1 -1
- package/dist/chunk-727PXENG.js +2 -0
- package/dist/chunk-A5EEY6NO.js +3 -0
- package/dist/{chunk-DLMDHS2X.js → chunk-ASBK55FU.js} +1 -1
- package/dist/{chunk-4GC35IFF.js → chunk-D6BSCELB.js} +1 -1
- package/dist/{chunk-G6DK3ND3.js → chunk-DH7QVZDI.js} +9 -0
- package/dist/chunk-FG3M6VVO.js +30 -0
- package/dist/chunk-FNYYQNJY.js +2 -0
- package/dist/chunk-K6TLYNRQ.js +7 -0
- package/dist/chunk-K7KT6FL3.js +25 -0
- package/dist/chunk-M7JHVVDW.js +6 -0
- package/dist/chunk-NFN5UUJB.js +2 -0
- package/dist/{chunk-EG22HDXI.js → chunk-NRP2KJ6I.js} +12 -12
- package/dist/{chunk-VPNJL4LS.js → chunk-QPQBXRXX.js} +1 -1
- package/dist/chunk-RZRFYGND.js +504 -0
- package/dist/chunk-UNSI6DVD.js +93 -0
- package/dist/{chunk-W4BW7GXA.js → chunk-USYV5QYU.js} +1 -1
- package/dist/chunk-VOPJ47QY.js +2 -0
- package/dist/{chunk-KP5VOYAH.js → chunk-W3VWORQZ.js} +1 -1
- package/dist/chunk-WMTES556.js +2 -0
- package/dist/chunk-XBK244QR.js +6 -0
- package/dist/{chunk-YQK3XU63.js → chunk-XSKIXXFW.js} +12 -12
- package/dist/{chunk-MBSY57RN.js → chunk-Y76OIMDO.js} +1 -1
- package/dist/chunk-YYRP7FLC.js +2 -0
- package/dist/{compliance-4P3EE5OA.js → compliance-3M6COUCO.js} +3 -3
- package/dist/{constellation-RHZAEFV7.js → constellation-TIKNCZWR.js} +1 -1
- package/dist/{cost-24UZSS2P.js → cost-VTHZQKO4.js} +2 -2
- package/dist/{diff-VBVIUNL5.js → diff-Z2YSIRC4.js} +1 -1
- package/dist/{dist-TNE4GFT7.js → dist-PW5YPGFF.js} +1 -1
- package/dist/{docs-NTP6UENF.js → docs-OWJ7EPD7.js} +1 -1
- package/dist/github-4X4MYINS.js +4 -0
- package/dist/{habits-BX2IRSUI.js → habits-UA7YT3CG.js} +3 -3
- package/dist/{hooks-AXBWYJ5V.js → hooks-XXJ7CSGJ.js} +1 -1
- package/dist/index.js +9 -9
- package/dist/{init-F4MSKZIW.js → init-QPMLEQWQ.js} +1 -1
- package/dist/{integrity-7TKX3DZ4.js → integrity-FRGF5BFS.js} +1 -1
- package/dist/lint-Y4P3MHBV.js +26 -0
- package/dist/list-5XRLWD7K.js +12 -0
- package/dist/mcp.js +1 -1
- package/dist/{migrate-5M4KUQ2L.js → migrate-LIVXILOO.js} +1 -1
- package/dist/nomination-engine-EFXDEPZN.js +2 -0
- package/dist/{orchestrate-MLUGQOEJ.js → orchestrate-C5NM5MFN.js} +1 -1
- package/dist/orchestration-EVWQWTOV.js +2 -0
- package/dist/orchestration-UP3KFUJT.js +2 -0
- package/dist/{platform-server-Y6TLEXR2.js → platform-server-FXF3XFHM.js} +1 -1
- package/dist/{probe-27ARJKRO.js → probe-G3TKOJYW.js} +1 -1
- package/dist/quiz-QKIKAVL7.js +10 -0
- package/dist/registry-NEW4OJ44.js +2 -0
- package/dist/reindex-QZYOD5K4.js +2 -0
- package/dist/{reindex-ZLDQBFUR.js → reindex-W67B2LQP.js} +1 -1
- package/dist/remember-KZYAY77S.js +14 -0
- package/dist/{review-BRO2UP4M.js → review-WHRNLW2W.js} +1 -1
- package/dist/{ripple-KCVDS3WE.js → ripple-B6U7263T.js} +1 -1
- package/dist/{serve-2PKJP65E.js → serve-6RNZYK2I.js} +2 -2
- package/dist/{serve-XZ6GBUS3.js → serve-ZT2Z54NK.js} +1 -1
- package/dist/{setup-5V2AGLQ6.js → setup-L5OP24US.js} +3 -3
- package/dist/{shift-PM4GI736.js → shift-UDKXCIW7.js} +3 -3
- package/dist/{show-N5LGB5B2.js → show-VXNGIJE4.js} +3 -3
- package/dist/{snapshot-YMX5QRBM.js → snapshot-MT5L6XE4.js} +1 -1
- package/dist/{spawn-PHA2SVQ3.js → spawn-I6XG57S2.js} +1 -1
- package/dist/status-45KIG32R.js +6 -0
- package/dist/{status-3GJXI4IK.js → status-4QGKLOP6.js} +4 -4
- package/dist/{summary-RPU2BS3Q.js → summary-6QNVQZJV.js} +1 -1
- package/dist/symphony-KQJ6HIXB.js +53 -0
- package/dist/symphony-VDNDFK7H.js +2 -0
- package/dist/symphony-relay-ASMKPDEE.js +3 -0
- package/dist/task-KFND4HLF.js +3 -0
- package/dist/task-loader-HBZ3KRH2.js +2 -0
- package/dist/task-loader-IO4UVFUD.js +2 -0
- package/dist/task-settlement-NF7PFSNE.js +3 -0
- package/dist/task-settlement-TATNPY6L.js +3 -0
- package/dist/team-6WNNLBAO.js +2 -0
- package/dist/thread-2A7QKU72.js +41 -0
- package/dist/tools-GDWT74O6.js +2 -0
- package/dist/tools-SDWAFQMQ.js +142 -0
- package/dist/validate-OZTX3FYX.js +13 -0
- package/dist/validate-RIMSY3RP.js +9 -0
- package/dist/{workspace-6POCBPDY.js → workspace-4D4TQ637.js} +1 -1
- package/package.json +1 -1
- package/dist/add-V6XR7DU5.js +0 -12
- package/dist/agent-loader-Z753DQWH.js +0 -2
- package/dist/ambient-QB7V4TBR.js +0 -6
- package/dist/captain-3COP6YTD.js +0 -2
- package/dist/chunk-4CGPLLWQ.js +0 -30
- package/dist/chunk-7SWEOPWF.js +0 -2
- package/dist/chunk-CHSU6LTR.js +0 -2
- package/dist/chunk-EKNLG73M.js +0 -6
- package/dist/chunk-H55W26AR.js +0 -3
- package/dist/chunk-HE2NA5QF.js +0 -8
- package/dist/chunk-JIXHEBGK.js +0 -7
- package/dist/chunk-MBPLJKE5.js +0 -3
- package/dist/chunk-OIYJUU6T.js +0 -25
- package/dist/chunk-QO7YPQXC.js +0 -2
- package/dist/chunk-XPPFILCM.js +0 -2
- package/dist/chunk-YCDOA5IQ.js +0 -18
- package/dist/lint-IGKE6UPS.js +0 -26
- package/dist/list-NC3QGT75.js +0 -12
- package/dist/lore-loader-HAZ5FRLP.js +0 -2
- package/dist/nomination-engine-ORHH4L2W.js +0 -2
- package/dist/orchestration-O2OVPTIZ.js +0 -2
- package/dist/quiz-TNV6APBM.js +0 -10
- package/dist/remember-MJRNTXYS.js +0 -14
- package/dist/session-work-log-FF7CKMWP.js +0 -2
- package/dist/status-ENAI35NL.js +0 -6
- package/dist/symphony-CFAYJGLF.js +0 -2
- package/dist/symphony-L56O5ZG3.js +0 -53
- package/dist/symphony-relay-Y2UR3YNR.js +0 -3
- package/dist/task-loader-H7HQAYGL.js +0 -2
- package/dist/task-loader-YZME4RKE.js +0 -2
- package/dist/task-settlement-HINBVZBE.js +0 -3
- package/dist/task-settlement-XC6E6JNT.js +0 -3
- package/dist/team-25LK6CWM.js +0 -2
- package/dist/thread-HFXK65D4.js +0 -41
- package/dist/tools-GAU5WOEI.js +0 -2
- package/dist/validate-IQG7DBFC.js +0 -9
- package/dist/validate-LSCDOLBO.js +0 -13
- package/dist/work-log-loader-CRVTOMVB.js +0 -2
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {g,p,r}from'./chunk-K6TLYNRQ.js';import'./chunk-5TAVYPOV.js';import*as l from'path';import e from'chalk';import P from'ora';async function E(u){let i=process.cwd(),h=l.resolve(i,u);console.log(e.blue(`
|
|
3
|
+
\u{1F50D} Validating Purpose Files...
|
|
4
|
+
`));let a=P("Finding purpose files...").start();try{let s=await g(h);a.succeed(`Found ${s.length} purpose file(s)`);let c=!1,r$1=0,p$1=0;for(let{filePath:m,data:w}of s){let t=l.relative(i,m),o=p(w,t),$=o.issues.filter(n=>n.type==="error").length,v=o.issues.filter(n=>n.type==="warning").length;p$1+=$,r$1+=v,o.valid||(c=!0),o.issues.length>0?(console.log(e.white(`
|
|
5
|
+
${t}`)),console.log(r(o))):console.log(e.green(` \u2713 ${t}`));}console.log(e.white(`
|
|
6
|
+
`+"\u2500".repeat(50))),c?(console.log(e.red(`
|
|
7
|
+
\u274C Validation failed: ${p$1} error(s), ${r$1} warning(s)
|
|
8
|
+
`)),process.exit(1)):r$1>0?console.log(e.yellow(`
|
|
9
|
+
\u2713 Valid with ${r$1} warning(s)
|
|
10
|
+
`)):console.log(e.green(`
|
|
11
|
+
\u2713 All purpose files are valid
|
|
12
|
+
`));}catch(s){a.fail("Validation failed"),console.log(e.red(`Error: ${s.message}
|
|
13
|
+
`)),process.exit(1);}}export{E as purposeValidateCommand};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {c,d,f}from'./chunk-YYRP7FLC.js';import {g,j as j$1,l}from'./chunk-M7JHVVDW.js';import'./chunk-5TAVYPOV.js';import u from'chalk';import*as h from'fs';import*as p from'path';import*as C from'js-yaml';var P=/^[a-z0-9][a-z0-9-]{0,63}$/,v=new Set(["track","index","chronological","featured"]);function j(n){let d=p.join(n,"pack.yaml");if(!h.existsSync(d))return null;try{let s=h.readFileSync(d,"utf8"),i=C.load(s);return Array.isArray(i?.sections)?i.sections:null}catch{return null}}function z(n,d,s){let i=new Set,r=false;if(!n||n.length===0)return i.add("main"),{knownIds:i,hadValidationError:r};let t=new Set,f=0;for(let c=0;c<n.length;c++){let l=n[c],y=`sections[${c}]`;if(typeof l.id!="string"||!P.test(l.id)){s.push({contentId:"pack.yaml",severity:"error",check:"section-bad-id",message:`${y}.id must be kebab-case matching /^[a-z0-9][a-z0-9-]{0,63}$/`,fix:"Use lowercase letters, digits, and hyphens; start with a letter or digit"}),r=true;continue}if(t.has(l.id)){s.push({contentId:"pack.yaml",severity:"error",check:"section-duplicate-id",message:`duplicate section id "${l.id}"`,fix:"Each section id must be unique within the pack"}),r=true;continue}t.add(l.id),i.add(l.id),(typeof l.style!="string"||!v.has(l.style))&&(s.push({contentId:"pack.yaml",severity:"error",check:"section-bad-style",message:`${y}.style must be one of: ${Array.from(v).join(", ")}`}),r=true),l.default===true&&f++;}f>1&&(s.push({contentId:"pack.yaml",severity:"error",check:"section-multiple-defaults",message:`at most one section may set default: true (found ${f})`,fix:"Set default: true on exactly one section"}),r=true);for(let c of d)i.has(c)||s.push({contentId:"pack.yaml",severity:"warning",check:"section-unknown-ref",message:`entries reference unknown section "${c}"`,fix:`Declare section "${c}" in pack.yaml, or remove the section: field from those entries`});return {knownIds:i,hadValidationError:r}}async function E(n){let d$1=process.cwd(),s=c(d$1,n),i=d(n)?s.subPackRoot??s.packRoot:void 0,r=i?f(i):g(d$1);if(!r||r.totalContent===0){console.log(u.yellow(`
|
|
3
|
+
No university content to validate.
|
|
4
|
+
`));return}let t=[],f$1=r.entries;n.id&&(f$1=f$1.filter(e=>e.id===n.id),f$1.length===0&&(console.error(u.red(`
|
|
5
|
+
Content "${n.id}" not found
|
|
6
|
+
`)),process.exit(1)));let c$1=null;if(n.deep){c$1=new Set;let e=p.join(d$1,".paradigm","scan-index.json");if(h.existsSync(e))try{let a=JSON.parse(h.readFileSync(e,"utf8"));if(a.symbols&&Array.isArray(a.symbols))for(let o of a.symbols)o.symbol&&c$1.add(o.symbol);}catch{}}let l$1=new Set(r.entries.map(e=>e.id)),y=s.subPackRoot??s.packRoot,R=j(y),k=new Set;for(let e of r.entries)e.section&&typeof e.section=="string"&&e.section.length>0&&k.add(e.section);z(R,k,t);for(let e of f$1){if(e.title||t.push({contentId:e.id,severity:"error",check:"missing-title",message:"Content is missing a title"}),e.type==="quiz"){let a=j$1(d$1,e.id,i);if(!a)t.push({contentId:e.id,severity:"error",check:"unreadable-quiz",message:"Quiz file could not be parsed"});else for(let o of a.questions)(!o.choices||!(o.correct in o.choices))&&t.push({contentId:e.id,severity:"error",check:"invalid-quiz-answer",message:`Question ${o.id}: correct "${o.correct}" not in choices [${Object.keys(o.choices||{}).join(", ")}]`,fix:`Set correct to one of: ${Object.keys(o.choices||{}).join(", ")}`});}if(e.type==="path"){let a=l(d$1,e.id,i);if(!a)t.push({contentId:e.id,severity:"error",check:"unreadable-path",message:"Learning path file could not be parsed"});else for(let o of a.steps)!o.content.startsWith("plsat:")&&!l$1.has(o.content)&&t.push({contentId:e.id,severity:"error",check:"broken-path-step",message:`Step references "${o.content}" which doesn't exist`,fix:`Create content with id "${o.content}"`});}if(c$1&&e.symbols.length>0)for(let a of e.symbols)c$1.has(a)||t.push({contentId:e.id,severity:"warning",check:"broken-symbol-ref",message:`Symbol "${a}" not found in scan-index`});}if(n.json){console.log(JSON.stringify({status:t.some(e=>e.severity==="error")?"errors":t.length>0?"warnings":"healthy",totalContent:r.totalContent,checked:f$1.length,issues:t},null,2));return}if(console.log(u.blue(`
|
|
7
|
+
University Validation \u2014 pack: ${s.subPackId??s.packId} (${f$1.length} items${n.deep?", deep mode":""})
|
|
8
|
+
`)),t.length===0){console.log(u.green(` All checks passed.
|
|
9
|
+
`));return}let g$1=t.filter(e=>e.severity==="error"),m=t.filter(e=>e.severity==="warning");for(let e of g$1)console.log(u.red(` x ${e.contentId}: ${e.message}`)),e.fix&&console.log(u.gray(` Fix: ${e.fix}`));for(let e of m)console.log(u.yellow(` ! ${e.contentId}: ${e.message}`)),e.fix&&console.log(u.gray(` Fix: ${e.fix}`));console.log(),g$1.length>0&&console.log(u.red(` ${g$1.length} error${g$1.length>1?"s":""}`)),m.length>0&&console.log(u.yellow(` ${m.length} warning${m.length>1?"s":""}`)),console.log();}export{E as universityValidateCommand};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
export{d as detectProjectRole,a as workspaceInitCommand,c as workspaceReindexCommand,b as workspaceStatusCommand}from'./chunk-
|
|
2
|
+
export{d as detectProjectRole,a as workspaceInitCommand,c as workspaceReindexCommand,b as workspaceStatusCommand}from'./chunk-6VZSOQ7Y.js';import'./chunk-Y76OIMDO.js';import'./chunk-4TXOVRWD.js';import'./chunk-VCKKJDLP.js';import'./chunk-WR6D3SC6.js';import'./chunk-D6BSCELB.js';import'./chunk-K6TLYNRQ.js';import'./chunk-ZJQY5PPP.js';import'./chunk-LKAT7IAK.js';import'./chunk-5TAVYPOV.js';
|
package/package.json
CHANGED
package/dist/add-V6XR7DU5.js
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import {k,i,p,h,o}from'./chunk-EKNLG73M.js';import'./chunk-5TAVYPOV.js';import r from'chalk';import*as c from'path';import {execSync}from'child_process';import*as P from'os';var N=".paradigm/university";function O(){try{return execSync("git config user.name",{encoding:"utf-8",timeout:3e3}).trim().toLowerCase().replace(/[^a-z0-9-]/g,"-").replace(/-+/g,"-").slice(0,20)||"unknown"}catch{try{return P.userInfo().username}catch{return "unknown"}}}async function F(o$1,e){let i$1=process.cwd(),f=!!(e.pack||e.project||e.discipline),S=f?e:{...e,project:true},n=k(i$1,S),m=n.subPackRoot??n.packRoot,g=f?m:void 0,R=c.join(i$1,N),y=c.resolve(m)===c.resolve(R);if(e.title||(console.error(r.red(`
|
|
3
|
-
Error: --title is required
|
|
4
|
-
`)),process.exit(1)),e.section){let t=i(n.subPackRoot??n.packRoot);if(t.length>0&&!new Set(t.map(l=>l.id)).has(e.section)){let l=t.map(q=>q.id).join(", "),j=n.subPackId??n.packId;console.error(r.red(`
|
|
5
|
-
Error: section "${e.section}" not declared in pack "${j}". Available: ${l}
|
|
6
|
-
`)),process.exit(1);}}let s=e.order!==void 0?parseInt(e.order,10):void 0;e.order!==void 0&&(s===void 0||Number.isNaN(s))&&(console.error(r.red(`
|
|
7
|
-
Error: --order must be an integer (got "${e.order}")
|
|
8
|
-
`)),process.exit(1));let p$1=O(),a=new Date().toISOString().slice(0,10),v=e.title.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"").slice(0,40),b=e.tags?e.tags.split(",").map(t=>t.trim()):[],k$1=e.symbols?e.symbols.split(",").map(t=>t.trim()):[];if(o$1==="quiz"){let t=`Q-${v}`,h$1={id:t,title:e.title,description:e.body||"",author:p$1,created:a,updated:a,tags:b,symbols:k$1,difficulty:e.difficulty||"beginner",passThreshold:.7,questions:[],...e.section?{section:e.section}:{},...s!==void 0?{order:s}:{}};p(i$1,h$1,g),y&&h(i$1),console.log(r.green(`
|
|
9
|
-
Created quiz: ${t}`)),console.log(r.gray(` Add questions by editing the YAML file
|
|
10
|
-
`));return}let d=`${o$1==="policy"?"P":"N"}-${v}`,z={id:d,title:e.title,type:o$1,author:p$1,created:a,updated:a,tags:b,symbols:k$1,difficulty:e.difficulty||"beginner",estimatedMinutes:e.minutes?parseInt(e.minutes,10):void 0,prerequisites:[],...e.section?{section:e.section}:{},...s!==void 0?{order:s}:{}};o(i$1,z,e.body||"",g),y&&h(i$1),console.log(r.green(`
|
|
11
|
-
Created ${o$1}: ${d}`)),console.log(r.gray(` Edit at .paradigm/university/content/${o$1==="policy"?"policies":"notes"}/${d}.md
|
|
12
|
-
`));}export{F as universityAddCommand};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
export{p as buildProfileEnrichment,t as checkPathPermission,u as checkToolPermission,x as computeIntegrityHash,k as createAgentProfile,a as decayedConfidence,s as determineIntegrityStatus,w as enforcePermissions,g as findAgentsByNickname,v as getPermissionConstraints,c as isAgentActive,e as listAllGlobalAgentIds,f as loadAgentProfile,i as loadAllAgentProfiles,b as loadProjectRoster,o as mergeAgentProfileWithManifest,l as queryExpertise,h as resolveAgent,r as sanitizeForPrompt,j as saveAgentProfile,d as saveProjectRoster,q as syncExpertiseFromLore,n as updateExpertiseFromAssessment,m as updateExpertiseFromLore,y as verifyIntegrity}from'./chunk-H55W26AR.js';import'./chunk-MBPLJKE5.js';import'./chunk-5TAVYPOV.js';
|
package/dist/ambient-QB7V4TBR.js
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import {e,g as g$1,b,f as f$1,h as h$1}from'./chunk-YCDOA5IQ.js';import {o,n,m,q,c,g,i,j,a,k,r,s,h,b as b$1}from'./chunk-4CGPLLWQ.js';import'./chunk-7SWEOPWF.js';import {f,p}from'./chunk-H55W26AR.js';import'./chunk-MBPLJKE5.js';import'./chunk-5TAVYPOV.js';import*as _ from'fs';import*as S from'path';import*as E from'js-yaml';var se=".paradigm/decisions";function X(c,e){let t=S.join(c,se);if(!_.existsSync(t))return [];let a=[],n=_.readdirSync(t).filter(i=>i.endsWith(".yaml"));for(let i of n)try{let s=_.readFileSync(S.join(t,i),"utf8"),y=E.load(s);y&&y.id&&a.push(y);}catch{}let r=a;return (r=r.filter(i=>i.status===e.status)),e?.participant&&(r=r.filter(i=>i.participants.some(s=>s.id===e.participant))),e?.symbol&&(r=r.filter(i=>i.symbols_affected?.includes(e.symbol))),e?.tag&&(r=r.filter(i=>i.tags?.some(s=>s.startsWith(e.tag)))),e?.dateFrom&&(r=r.filter(i=>i.timestamp>=e.dateFrom)),e?.dateTo&&(r=r.filter(i=>i.timestamp<=e.dateTo)),r.sort((i,s)=>s.timestamp.localeCompare(i.timestamp)),e?.limit&&(r=r.slice(0,e.limit)),r}function _e(){return [{name:"paradigm_ambient_nominations",description:"Get pending agent nominations \u2014 agents that self-nominated contributions based on recent events. Filters by urgency, agent, pending status. Marks returned nominations as surfaced. ~200 tokens.",inputSchema:{type:"object",properties:{urgency:{type:"string",enum:["critical","high","medium","low"],description:"Filter by urgency level"},agent:{type:"string",description:"Filter by agent ID"},pending_only:{type:"boolean",description:"Only show un-engaged nominations (default: true)"},include_debates:{type:"boolean",description:"Include debate groupings (default: false)"},limit:{type:"number",description:"Max nominations to return (default: 20)"}}},annotations:{readOnlyHint:false,destructiveHint:false}},{name:"paradigm_ambient_events",description:"Query the ambient event stream \u2014 recent tool calls, file edits, gate checks, and other project activity. Filters by type, source, symbol, agent, time window. ~200 tokens.",inputSchema:{type:"object",properties:{type:{type:"string",description:'Event type filter (e.g., "file-modified", "gate-checked", "decision-made")'},source:{type:"string",description:'Event source filter (e.g., "mcp-tool-call", "post-write-hook")'},symbol:{type:"string",description:"Filter events referencing this symbol"},agent:{type:"string",description:"Filter events from this agent"},since:{type:"string",description:'Relative time filter (e.g., "1h", "30m", "2d") or ISO timestamp'},limit:{type:"number",description:"Max events to return (default: 50)"}}},annotations:{readOnlyHint:true,destructiveHint:false}},{name:"paradigm_ambient_engage",description:"Accept, dismiss, or defer a nomination. Optionally resolves a debate by choosing this nomination over others. ~50 tokens.",inputSchema:{type:"object",properties:{nomination_id:{type:"string",description:"Nomination ID to engage with"},response:{type:"string",enum:["accepted","dismissed","deferred"],description:"How to respond"},resolve_debate:{type:"string",description:"Optional debate ID to resolve by choosing this nomination"},reason:{type:"string",description:"Reason for response \u2014 stored on nomination for learning feedback. Especially valuable for dismissals."}},required:["nomination_id","response"]},annotations:{readOnlyHint:false,destructiveHint:false}},{name:"paradigm_context_compose",description:"Compose full agent session context: profile enrichment + recent decisions + transferable journal entries + pending nominations. Returns a markdown context block for prompt injection. ~300 tokens.",inputSchema:{type:"object",properties:{agent:{type:"string",description:"Agent ID to compose context for"},symbols:{type:"array",items:{type:"string"},description:"Relevant symbols for expertise filtering"},include_nominations:{type:"boolean",description:"Include pending nominations (default: true)"},include_decisions:{type:"boolean",description:"Include recent team decisions (default: true)"},include_journal:{type:"boolean",description:"Include transferable journal entries (default: true)"},max_decisions:{type:"number",description:"Max decisions to include (default: 5)"},max_journal:{type:"number",description:"Max journal entries to include (default: 5)"}},required:["agent"]},annotations:{readOnlyHint:true,destructiveHint:false}},{name:"paradigm_ambient_promote",description:"Auto-promote high-confidence pattern discoveries from an agent's learning journal to its notebook. Promotes entries with trigger=pattern_discovered and confidence_after >= 0.8. ~100 tokens.",inputSchema:{type:"object",properties:{agent:{type:"string",description:"Agent ID whose journal to scan"}},required:["agent"]},annotations:{readOnlyHint:false,destructiveHint:false}},{name:"paradigm_ambient_learn",description:"Analyze an agent's nomination acceptance/dismissal history and adjust its attention threshold. If >60% dismissed \u2192 raise threshold (less noise). If >80% accepted \u2192 lower threshold (contribute more). Also returns engagement stats. ~100 tokens.",inputSchema:{type:"object",properties:{agent:{type:"string",description:"Agent ID to analyze and adjust"},dry_run:{type:"boolean",description:"If true, return stats without adjusting (default: false)"}},required:["agent"]},annotations:{readOnlyHint:false,destructiveHint:false}},{name:"paradigm_ambient_health",description:"Agent learning health metrics \u2014 aggregate learning quality across all agents: nomination acceptance rates, threshold drift, notebook counts, expertise growth, and overall health status (cold-start \u2192 accumulating \u2192 calibrating \u2192 mature).",inputSchema:{type:"object",properties:{}},annotations:{readOnlyHint:true,destructiveHint:false}},{name:"paradigm_ambient_learn_postflight",description:"Postflight learning pass \u2014 converts session work log verdicts into agent journal entries. Reads accepted/dismissed/revised verdicts from the session log, creates journal entries for each agent, then auto-promotes high-confidence entries to notebooks. Typically called at session end by the stop hook. ~200 tokens.",inputSchema:{type:"object",properties:{session_id:{type:"string",description:"Session ID (default: current session)"},dry_run:{type:"boolean",description:"If true, show what would be written without writing (default: false)"}}},annotations:{readOnlyHint:false,destructiveHint:false}}]}function oe(c){let e=Date.now(),t=c.match(/^(\d+)(m|h|d)$/);if(t){let a=parseInt(t[1],10),n=t[2],r=n==="m"?a*6e4:n==="h"?a*36e5:a*864e5;return new Date(e-r).toISOString()}return c}async function De(c$1,e,t){let a$1=n=>JSON.stringify(n,null,2);switch(c$1){case "paradigm_ambient_nominations":{k(t.rootDir);let r$1=e.pending_only!==false,i=e.limit||20,s$1=g(t.rootDir,{agent:e.agent,urgency:e.urgency,pending_only:r$1,limit:i+20}),y=r(t.rootDir);s$1=s(s$1,y).slice(0,i);let h$1=S.join(t.rootDir,".paradigm/events/nominations.jsonl");if(_.existsSync(h$1))try{let d=_.readFileSync(h$1,"utf8"),l=new Set(s$1.map(u=>u.id)),g=d.trim().split(`
|
|
3
|
-
`).map(u=>{try{let f=JSON.parse(u);return l.has(f.id)?(f.surfaced=!0,JSON.stringify(f)):u}catch{return u}});_.writeFileSync(h$1,g.join(`
|
|
4
|
-
`)+`
|
|
5
|
-
`,"utf8");}catch{}let b={count:s$1.length,nominations:s$1.map(d=>({id:d.id,agent:d.agent,urgency:d.urgency,type:d.type,brief:d.brief,relevance:d.relevance,timestamp:d.timestamp,engaged:d.engaged,response:d.response}))};if(e.include_debates){let l=h(t.rootDir).filter(g=>!g.resolution);b.debates=l.map(g=>({id:g.id,topic:g.topic,type:g.type,nominations:g.nominations})),b.debate_count=l.length;}return {text:a$1(b),handled:true}}case "paradigm_ambient_events":{let n=e.since?oe(e.since):void 0,r=e.limit||50,i=a(t.rootDir,{type:e.type,source:e.source,symbol:e.symbol,agent:e.agent,since:n,limit:r});return {text:a$1({count:i.length,events:i.map(s=>({id:s.id,type:s.type,source:s.source,timestamp:s.timestamp,path:s.path,symbols:s.symbols,context:s.context,agent:s.agent,tool:s.tool,severity:s.severity}))}),handled:true}}case "paradigm_ambient_engage":{let n=e.nomination_id,r=e.response,i$1=e.reason,s=i(t.rootDir,n,r,i$1);if(s)try{let{appendSessionWorkEntry:h,appendVerdictEntry:b}=await import('./session-work-log-FF7CKMWP.js'),l=g(t.rootDir,{limit:500}).find(u=>u.id===n),g$1={timestamp:new Date().toISOString(),type:"user-verdict",agent:l?.agent,nominationId:n,verdict:r,reason:i$1};h(t.rootDir,g$1),b(t.rootDir,g$1);}catch{}let y=false;return e.resolve_debate&&s&&(y=j(t.rootDir,e.resolve_debate,n,e.reason)),{text:a$1({engaged:s,nomination_id:n,response:r,debate_resolved:y||void 0}),handled:true}}case "paradigm_context_compose":{let n=e.agent,r=e.symbols||[],i=e.include_nominations!==false,s=e.include_decisions!==false,y=e.include_journal!==false,h=e.max_decisions||5,b=e.max_journal||5,d=f(t.rootDir,n);if(!d)return {text:a$1({error:`Agent profile not found: ${n}`}),handled:true};let l=[],g$1=p(d,r);if(g$1.trim()&&l.push(g$1),s){let u=X(t.rootDir,{status:"active",limit:h});if(u.length>0){l.push("## Recent Team Decisions");for(let f of u)l.push(`- **${f.title}**: ${f.decision.slice(0,150)}${f.decision.length>150?"...":""}`);l.push("");}}if(y){let u=c(n,{transferable:true,limit:b});if(u.length>0){l.push("## Transferable Insights");for(let f of u)l.push(`- [${f.trigger}] ${f.insight.slice(0,150)}${f.insight.length>150?"...":""}`);l.push("");}}if(i){let u=g(t.rootDir,{pending_only:true,limit:10});if(u.length>0){l.push("## Pending Nominations");for(let f of u)l.push(`- [${f.urgency}] ${f.brief}`);l.push("");}}return {text:a$1({agent:n,context:l.join(`
|
|
6
|
-
`),sections_included:{profile:true,decisions:s,journal:y,nominations:i}}),handled:true}}case "paradigm_ambient_promote":{let n=e.agent,r=q(t.rootDir,n);return {text:a$1({agent:n,promoted:r.promoted,entries:r.entries}),handled:true}}case "paradigm_ambient_learn":{let n$1=e.agent,r=e.dry_run===true,i=n(t.rootDir,n$1);if(r)return {text:a$1({agent:n$1,dry_run:true,stats:i,note:i.total<5?"Insufficient data for threshold adjustment (need 5+ engaged nominations)":`Accept rate: ${(i.acceptRate*100).toFixed(0)}% \u2014 ${i.acceptRate>.8?"would lower threshold":i.acceptRate<.4?"would raise threshold":"no adjustment needed"}`}),handled:true};let s=m(t.rootDir,n$1);return {text:a$1({agent:n$1,...s,stats:i}),handled:true}}case "paradigm_ambient_health":case "paradigm_ambient_neverland":{let n=o(t.rootDir);return {text:a$1(n),handled:true}}case "paradigm_ambient_learn_postflight":return {text:a$1(await ce(t.rootDir,e)),handled:true};default:return {text:`Unknown ambient tool: ${c$1}`,handled:false}}}var re={accepted:"human_feedback",dismissed:"confidence_miss",revised:"correction_received"};function ae(c){try{let e=S.join(c,".paradigm","config.yaml");if(_.existsSync(e)){let a=_.readFileSync(e,"utf8").match(/project:\s*["']?([^"'\n]+)["']?/);if(a)return a[1].trim()}}catch{}return S.basename(c)}async function ce(c,e$1={}){let t=e$1.dry_run===true,a=ae(c),n=e(c).filter(o=>o.verdict&&o.agent),r=g$1(c).filter(o=>o.agent&&o.corrections.length>0),i=b(c);if(n.length===0&&r.length===0)return {sessionEntries:i.length,agentsProcessed:[],journalsWritten:0,journalsByAgent:{},promoted:0,promotedByAgent:{},dryRun:t,details:[]};let s=new Map;for(let o of n){let m=o.agent;s.has(m)||s.set(m,[]),s.get(m).push(o);}let y=i.filter(o=>o.type==="agent-contribution"),h=new Map;for(let o of y)o.agent&&(h.has(o.agent)||h.set(o.agent,[]),h.get(o.agent).push(o));let b$2=[],d={},l=0;for(let[o,m]of s){d[o]=0;let D=m.filter(p=>p.verdict==="accepted").length;m.filter(p=>p.verdict==="dismissed").length;m.filter(p=>p.verdict==="revised").length;let $=m.length,Z=$>0?D/$:0;for(let p of m){let R=re[p.verdict];if(!R)continue;let ee=h.get(o)?.shift(),A=de(p,ee,{acceptRate:Z,total:$,accepted:D}),te=typeof p.confidence=="number"?p.confidence:p.verdict==="accepted"?.85:p.verdict==="revised"?.6:.4,ne={agent:o,verdict:p.verdict,trigger:R,insight:A,symbols:p.symbols};if(b$2.push(ne),t)d[o]++,l++;else try{b$1(o,{trigger:R,insight:A,confidence_before:p.verdict==="accepted"?.7:.8,confidence_after:te,project:a,transferable:p.verdict==="dismissed",tags:["postflight",`verdict:${p.verdict}`,...(p.symbols||[]).map(ie=>`symbol:${ie}`)]}),d[o]++,l++;}catch{}}}let g=new Set;for(let o of r){let m=o.agent;g.add(m),d[m]===void 0&&(d[m]=0);let D=`Self-revision during iteration round ${o.round}: ${o.corrections.join("; ")}`;if(b$2.push({agent:m,verdict:"iteration-revision",trigger:"self_reflection",insight:D,symbols:o.symbols}),t)d[m]++,l++;else try{b$1(m,{trigger:"self_reflection",insight:D,confidence_before:.6,confidence_after:typeof o.confidence=="number"?o.confidence:.75,project:a,transferable:!1,tags:["postflight","iteration-revision",`round:${o.round}`,...(o.symbols||[]).map(w=>`symbol:${w}`)]}),d[m]++,l++;}catch{}}let u={},f=0,P=new Set([...s.keys(),...g]);if(!t)for(let o of P)try{let m=q(c,o);m.promoted>0&&(u[o]=m.promoted,f+=m.promoted);}catch{}return !t&&n.length>0&&f$1(c,n.map(o=>o.nominationId).filter(Boolean)),!t&&r.length>0&&h$1(c,r.map(o=>o.id)),{sessionEntries:i.length,agentsProcessed:Array.from(P),journalsWritten:l,journalsByAgent:d,promoted:f,promotedByAgent:u,dryRun:t,details:b$2}}function de(c,e,t){let a=c.symbols?.length?` (symbols: ${c.symbols.join(", ")})`:"",n=c.reason?` Reason: ${c.reason}.`:"";switch(c.verdict){case "accepted":return `Contribution accepted by user${a}.${n}`+(e?.contribution?` Original: "${e.contribution.slice(0,120)}".`:"")+` Session accept rate: ${(t.acceptRate*100).toFixed(0)}% (${t.accepted}/${t.total}).`;case "dismissed":return `Contribution dismissed by user${a}.${n}`+(e?.contribution?` Rejected contribution: "${e.contribution.slice(0,120)}".`:"")+` Learn from this dismissal to improve future nominations. Session accept rate: ${(t.acceptRate*100).toFixed(0)}% (${t.accepted}/${t.total}).`;case "revised":return `Contribution revised by user${a}.${n}`+(c.revisionDelta?` Delta: "${c.revisionDelta.slice(0,120)}".`:"")+(e?.contribution?` Original: "${e.contribution.slice(0,120)}".`:"")+` Partial credit \u2014 close but not accurate enough. Session accept rate: ${(t.acceptRate*100).toFixed(0)}% (${t.accepted}/${t.total}).`;default:return `Unknown verdict "${c.verdict}"${a}.${n}`}}export{_e as getAmbientToolsList,De as handleAmbientTool,ce as runPostflightLearning};
|
package/dist/captain-3COP6YTD.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
export{E as assembleCaptainBoard,C as getCaptainToolsList,D as handleCaptainTool,F as proposeClaimantFor}from'./chunk-OIYJUU6T.js';import'./chunk-KP5VOYAH.js';import'./chunk-Q527BPUF.js';import'./chunk-RGSFU2YW.js';import'./chunk-TMDPDIWA.js';import'./chunk-KLBH26PA.js';import'./chunk-GRZQIKST.js';import'./chunk-ACJWUOMA.js';import'./chunk-33ERV2MW.js';import'./chunk-EK4ZRIFJ.js';import'./chunk-5TAVYPOV.js';
|
package/dist/chunk-4CGPLLWQ.js
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import {b}from'./chunk-7SWEOPWF.js';import {i,c,f,j as j$1}from'./chunk-H55W26AR.js';import {a as a$1}from'./chunk-MBPLJKE5.js';import {a}from'./chunk-5TAVYPOV.js';import*as u from'fs';import*as R from'os';import*as p from'path';import*as A from'js-yaml';var et=".paradigm/events",bt="stream.jsonl",O=1e3,x=[];function nt(e){return p.join(e,et,bt)}function St(){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:St(),timestamp:new Date().toISOString(),...t};x.push(n),x.length>O&&(x=x.slice(-O));try{let o=p.join(e,et);u.mkdirSync(o,{recursive:!0});let r=nt(e);u.appendFileSync(r,JSON.stringify(n)+`
|
|
3
|
-
`,"utf8"),wt(r);}catch{}return n}function wt(e){try{if(u.statSync(e).size>512*1024){let o=u.readFileSync(e,"utf8").trim().split(`
|
|
4
|
-
`);if(o.length>O){let r=o.slice(-O);u.writeFileSync(e,r.join(`
|
|
5
|
-
`)+`
|
|
6
|
-
`,"utf8");}}}catch{}}function qt(e,t){let n=Et(e);return t?.type&&(n=n.filter(o=>o.type===t.type)),t?.source&&(n=n.filter(o=>o.source===t.source)),t?.symbol&&(n=n.filter(o=>o.symbols?.includes(t.symbol))),t?.agent&&(n=n.filter(o=>o.agent===t.agent)),t?.since&&(n=n.filter(o=>o.timestamp>=t.since)),n.sort((o,r)=>r.timestamp.localeCompare(o.timestamp)),t?.limit&&(n=n.slice(0,t.limit)),n}function Et(e){let t=nt(e);if(!u.existsSync(t))return [...x];try{return u.readFileSync(t,"utf8").trim().split(`
|
|
7
|
-
`).filter(r=>r.trim()).map(r=>{try{return JSON.parse(r)}catch{return null}}).filter(r=>r!==null)}catch{return [...x]}}function ot(e,t,n){let o=0,r=0,i=0,s=0;if(n.symbols?.length&&e.symbols?.length)for(let l of n.symbols)for(let a of e.symbols)tt(l,a)&&(o=Math.max(o,1));if(n.paths?.length&&e.path){for(let l of n.paths)if(tt(l,e.path)){r=1;break}}if(n.concepts?.length){let l=[e.context||"",...e.keywords||[],e.type||""].join(" ").toLowerCase(),a=0;for(let d of n.concepts)d&&l.includes(d.toLowerCase())&&a++;n.concepts.length>0&&(i=a/n.concepts.length);}if(n.signals?.length){for(let l of n.signals)if(l.type===e.type){s=1;break}}let c=[o,r,i,s].sort((l,a)=>a-l),f=c[0]*.5+c[1]*.2+c[2]*.15+c[3]*.15,m=n.threshold??.6;return {agentId:t,score:f,breakdown:{symbolMatch:o,pathMatch:r,conceptMatch:i,signalMatch:s},shouldNominate:f>=m,quietReason:f<m?"below-threshold":void 0}}function tt(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 _t=".paradigm/data-policy.yaml";function U(e){let t=p.join(e,_t);if(!u.existsSync(t))return {...b};try{let n=u.readFileSync(t,"utf8"),o=A.load(n);return Nt(b,o)}catch{return {...b}}}function Nt(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((o,r,i)=>i.indexOf(o)===r)}),t.streams){n.streams={...e.streams};for(let o of ["work_log","learning_journal","team_decisions"])t.streams[o]&&(n.streams[o]={...e.streams?.[o],...t.streams[o],deny_content:[...e.streams?.[o]?.deny_content||[],...t.streams[o]?.deny_content||[]].filter((r,i,s)=>s.indexOf(r)===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 B(e,t,n){return n&&e.agent_overrides?.[n]?.observation&&e.agent_overrides[n].observation.deny?.some(r=>I(r,t))||e.observation?.deny?.some(o=>I(o,t))?false:e.observation?.allow?.length?e.observation.allow.some(o=>I(o,t)):true}function I(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}}function st(e){let t=process.env.HOME||process.env.USERPROFILE||"";return p.join(t,".paradigm","agents",e,"journal")}function xt(){let e=new Date,t=e.toISOString().slice(0,10),n=e.toISOString().slice(11,19).replace(/:/g,""),o=String(Math.floor(Math.random()*999)+1).padStart(3,"0");return `LJ-${t}-${n}-${o}`}function Qt(e,t){let n=new Date,o=xt(),r={id:o,agent:e,timestamp:n.toISOString(),...t},i=st(e);u.mkdirSync(i,{recursive:true});let s=p.join(i,`${o}.yaml`);return u.writeFileSync(s,A.dump(r,{lineWidth:120,noRefs:true}),"utf8"),r}function z(e,t){let n=st(e);if(!u.existsSync(n))return [];let o=[],r=u.readdirSync(n).filter(s=>s.endsWith(".yaml"));for(let s of r)try{let c=u.readFileSync(p.join(n,s),"utf8"),f=A.load(c);f&&f.id&&o.push(f);}catch{}let i=o;return t?.trigger&&(i=i.filter(s=>s.trigger===t.trigger)),t?.project&&(i=i.filter(s=>s.project===t.project)),t?.transferable!==void 0&&(i=i.filter(s=>s.transferable===t.transferable)),t?.tag&&(i=i.filter(s=>s.tags?.some(c=>c.startsWith(t.tag)))),t?.dateFrom&&(i=i.filter(s=>s.timestamp>=t.dateFrom)),t?.dateTo&&(i=i.filter(s=>s.timestamp<=t.dateTo)),i.sort((s,c)=>c.timestamp.localeCompare(s.timestamp)),t?.limit&&(i=i.slice(0,t.limit)),i}var lt=p.join(R.homedir(),".paradigm","notebooks"),ft=".paradigm/notebooks",kt="nb-",mt=".yaml";function j(e){if(!e)return "";let t=e.trim();return t=t.replace(/^symbol:/i,""),t=t.replace(/^[#$^!~@&%?]/,""),t.trim().toLowerCase()}function jt(e,t,n){let o=new Map,r=p.join(lt,e);at(r,o);let i=p.join(t,ft,e);at(i,o);let s=Array.from(o.values());if(n?.concepts&&n.concepts.length>0){let c=new Set(n.concepts.map(j));s=s.filter(f=>f.concepts.some(m=>c.has(j(m))));}if(n?.tags&&n.tags.length>0){let c=new Set(n.tags.map(f=>f.toLowerCase()));s=s.filter(f=>f.tags.some(m=>c.has(m.toLowerCase())));}return s.sort((c,f)=>f.appliedCount-c.appliedCount)}function at(e,t){if(u.existsSync(e))try{let n=u.readdirSync(e).filter(o=>o.startsWith(kt)&&o.endsWith(mt));for(let o of n)try{let r=u.readFileSync(p.join(e,o),"utf-8"),i=A.load(r);i?.id&&t.set(i.id,i);}catch{}}catch{}}var W=.5;function ut(e,t,n){let o=Array.from(new Set((t||[]).map(j).filter(Boolean)));if(o.length===0)return {value:W,found:false};let r=jt(e,n,{concepts:o});return r.length===0?{value:W,found:false}:{value:Math.max(...r.map(s=>typeof s.confidence=="number"?s.confidence:W)),found:true}}function vt(e){let t=[e.context,e.snippet,...e.concepts,...e.tags].join(" ").toLowerCase();return ["paradigm","mcp_","mcp tool",".paradigm/","lore entry","lore record","aspect","^gate","portal.yaml",".purpose","sentinel","symphony","ambient nomination","paradigm_"," pan ","agent notebook","concept anchor","symbol system","work log","knowledge stream","nevr.land","neverland"].some(o=>t.includes(o))?"platform-specific":/[#$^!~][a-z][a-z0-9-]{2,}/.test(t)||/\/[a-z0-9_-]{2,}\/[a-z0-9_-]/.test(t)?"project-specific":"generalizable"}function dt(e,t,n,o){let r=new Date().toISOString(),i=(t.concepts[0]||t.context.split(" ").slice(0,4).join(" ")||"entry").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"").slice(0,40),c=`nb-${e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"")}-${i}`,f=t.scope??vt({context:t.context,snippet:t.snippet,concepts:t.concepts,tags:t.tags}),m=Array.from(new Set((t.concepts||[]).map(j).filter(Boolean))),l={...t,concepts:m,id:c,scope:f,publishable:t.publishable??true,confidence:t.confidence??.5,appliedCount:0,created:r,updated:r},a=p.join(lt,e);u.existsSync(a)||u.mkdirSync(a,{recursive:true});let d=`${c}${mt}`,g=p.join(a,d),y=A.dump(l,{lineWidth:120,noRefs:true,sortKeys:false});return u.writeFileSync(g,y,"utf-8"),{entry:l,filePath:g}}var _=".paradigm/events",Tt="nominations.jsonl",Pt="promotion-decisions.jsonl",Ot="debates.jsonl",pt=500,Ft=200,Dt=7,At=14,$t=100;function Rt(){let e=Date.now(),t=Math.floor(Math.random()*9999).toString().padStart(4,"0");return `nom-${e}-${t}`}function Ct(){let e=Date.now(),t=Math.floor(Math.random()*9999).toString().padStart(4,"0");return `dbt-${e}-${t}`}function yt(e,t){let n=i(e),o=U(e),r=[];for(let m of n){if(!m.attention||!c(m.id,e)||t.path&&!B(o,t.path,m.id))continue;let l=ot(t,m.id,m.attention);l.shouldNominate&&r.push({profile:m,score:l});}if(r.length===0)return {nominations:[],debates:[]};let i$1=J(e,{since:new Date(Date.now()-3e4).toISOString()}),s=r.filter(({profile:m})=>!i$1.find(a=>a.agent===m.id&&a.brief===gt(m,t,{...r.find(d=>d.profile.id===m.id).score})));if(s.length===0)return {nominations:[],debates:[]};let c$1=s.map(({profile:m,score:l})=>{let a=Jt(t,l),d=Lt(m,t);return {id:Rt(),agent:m.id,relevance:l.score,urgency:a,type:d,brief:gt(m,t,l),triggered_by:[t.id],timestamp:new Date().toISOString(),surfaced:false}});It(e,c$1);let f=Mt(e,c$1);return f.length>0&&Ut(e,f),{nominations:c$1,debates:f}}function Jt(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 Lt(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 gt(e,t,n){let o=e.role||e.id;switch(t.type){case "gate-checked":return `${o}: Gate check on ${t.symbols?.join(", ")||"route"} \u2014 verify gate coverage is complete`;case "file-modified":return `${o}: ${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 `${o}: Compliance violation detected \u2014 ${t.context||"check .purpose and portal.yaml coverage"}`;case "route-created":return `${o}: New route ${t.symbols?.join(", ")||""} \u2014 ${e.id==="security"?"needs gate assignment in portal.yaml":"review route structure"}`;case "gate-added":return `${o}: Gate ${t.symbols?.join(", ")||""} added \u2014 ${e.id==="security"?"verify enforcement points":"check downstream impact"}`;case "decision-made":return `${o}: Decision recorded \u2014 ${t.context?.slice(0,80)||"review for alignment with project patterns"}`;case "work-completed":return `${o}: Work completed on ${t.symbols?.join(", ")||t.context?.slice(0,40)||"task"} \u2014 review outcome`;case "error-encountered":return `${o}: Error detected \u2014 ${t.context?.slice(0,80)||"investigate root cause"}`;default:{let r=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 `${o}: ${r}`}}}function Mt(e,t){if(t.length<2)return [];let n=[],o=new Map;for(let r of t)for(let i of r.triggered_by){let s=o.get(i)||[];s.push(r),o.set(i,s);}for(let[r,i]of o){if(i.length<2||new Set(i.map(m=>m.agent)).size<2)continue;let c=new Set(i.map(m=>m.type)),f=c.size>1&&c.has("warning")&&c.has("suggestion");n.push({id:Ct(),topic:`Multiple agents responded to event ${r}`,nominations:i.map(m=>m.id),type:f?"conflicting":"complementary",overlap_events:[r]});}return n}function G(e){return p.join(e,_,Tt)}function H(e){return p.join(e,_,Ot)}function It(e,t){try{let n=p.join(e,_);u.mkdirSync(n,{recursive:!0});let o=G(e),r=t.map(s=>JSON.stringify(s)).join(`
|
|
8
|
-
`)+`
|
|
9
|
-
`;u.appendFileSync(o,r,"utf8"),q(o,pt);let{nominationTtlDays:i}=C(e);ht(o,i*24*60*60*1e3);}catch{}}function Ut(e,t){try{let n=p.join(e,_);u.mkdirSync(n,{recursive:!0});let o=H(e),r=t.map(s=>JSON.stringify(s)).join(`
|
|
10
|
-
`)+`
|
|
11
|
-
`;u.appendFileSync(o,r,"utf8"),q(o,Ft);let{debateTtlDays:i}=C(e);ht(o,i*24*60*60*1e3);}catch{}}function Bt(e,t){try{let n=p.join(e,_);u.mkdirSync(n,{recursive:!0});let o=p.join(n,Pt);u.appendFileSync(o,JSON.stringify(t)+`
|
|
12
|
-
`,"utf8"),q(o,pt);}catch(n){a$1.component("#promotion-decisions").warn("failed to record promotion decision",{agent:t.agent,error:n instanceof Error?n.message:String(n)});}}function q(e,t){try{let o=u.readFileSync(e,"utf8").trim().split(`
|
|
13
|
-
`).filter(r=>r.trim());if(o.length>t){let r=o.slice(-t);u.writeFileSync(e,r.join(`
|
|
14
|
-
`)+`
|
|
15
|
-
`,"utf8");}}catch{}}function C(e){let t={nominationTtlDays:Dt,debateTtlDays:At};try{let n=p.join(e,".paradigm","config.yaml");if(!u.existsSync(n))return t;let o=a("js-yaml"),r=u.readFileSync(n,"utf8"),s=o.load(r)?.ambient;return s?{nominationTtlDays:typeof s["nomination-ttl-days"]=="number"?s["nomination-ttl-days"]:t.nominationTtlDays,debateTtlDays:typeof s["debate-ttl-days"]=="number"?s["debate-ttl-days"]:t.debateTtlDays}:t}catch{return t}}function ht(e,t){try{if(!u.existsSync(e))return;let o=u.readFileSync(e,"utf8").trim().split(`
|
|
16
|
-
`).filter(s=>s.trim());if(o.length<=$t)return;let r=Date.now()-t,i=o.filter(s=>{try{let c=JSON.parse(s);return (c.timestamp?new Date(c.timestamp).getTime():Date.now())>=r}catch{return !0}});i.length<o.length&&u.writeFileSync(e,i.join(`
|
|
17
|
-
`)+`
|
|
18
|
-
`,"utf8");}catch{}}function J(e,t){let n=G(e);if(!u.existsSync(n))return [];try{let r=u.readFileSync(n,"utf8").trim().split(`
|
|
19
|
-
`).filter(i=>i.trim()).map(i=>{try{return JSON.parse(i)}catch{return null}}).filter(i=>i!==null);return t?.agent&&(r=r.filter(i=>i.agent===t.agent)),t?.urgency&&(r=r.filter(i=>i.urgency===t.urgency)),t?.surfaced!==void 0&&(r=r.filter(i=>i.surfaced===t.surfaced)),t?.pending_only&&(r=r.filter(i=>!i.engaged)),t?.since&&(r=r.filter(i=>i.timestamp>=t.since)),r.sort((i,s)=>s.timestamp.localeCompare(i.timestamp)),t?.limit&&(r=r.slice(0,t.limit)),r}catch{return []}}function ae(e){let t=H(e);if(!u.existsSync(t))return [];try{return u.readFileSync(t,"utf8").trim().split(`
|
|
20
|
-
`).filter(o=>o.trim()).map(o=>{try{return JSON.parse(o)}catch{return null}}).filter(o=>o!==null)}catch{return []}}function ce(e,t,n,o){let r=G(e);if(!u.existsSync(r))return false;try{let s=u.readFileSync(r,"utf8").trim().split(`
|
|
21
|
-
`),c=!1,f=s.map(m=>{try{let l=JSON.parse(m);return l.id===t?(l.engaged=!0,l.response=n,o&&(l.reason=o),c=!0,JSON.stringify(l)):m}catch{return m}});if(c&&(u.writeFileSync(r,f.join(`
|
|
22
|
-
`)+`
|
|
23
|
-
`,"utf8"),n==="accepted"||n==="dismissed")){let m=JSON.parse(s.find(a=>{try{return JSON.parse(a).id===t}catch{return !1}}));i(e).find(a=>a.id===m.agent)?.learning?.intrinsic?.feedback?.after_recommendation&&k(e,{type:"work-completed",source:"agent-action",agent:m.agent,context:`Nomination ${t} ${n} \u2014 feedback for learning`,data:{nomination_id:t,response:n}});}return c}catch{return false}}function le(e,t,n,o){let r=H(e);if(!u.existsSync(r))return false;try{let s=u.readFileSync(r,"utf8").trim().split(`
|
|
24
|
-
`),c=!1,f=s.map(m=>{try{let l=JSON.parse(m);if(l.id===t){l.resolution={chosen:n,reason:o,resolved_by:"human",resolved_at:new Date().toISOString()},c=!0;let a=l.nominations.filter(d=>d!==n);for(let d of a){let g=J(e).find(y=>y.id===d);g&&k(e,{type:"work-completed",source:"agent-action",agent:g.agent,context:`Debate ${t} resolved \u2014 nomination ${d} not chosen`,data:{debate_id:t,chosen:n,reason:o}});}return JSON.stringify(l)}return m}catch{return m}});return c&&u.writeFileSync(r,f.join(`
|
|
25
|
-
`)+`
|
|
26
|
-
`,"utf8"),c}catch{return false}}function fe(e){let t=p.join(e,_,".last-processed"),n="";try{u.existsSync(t)&&(n=u.readFileSync(t,"utf8").trim());}catch{}let o=p.join(e,_,"stream.jsonl");if(!u.existsSync(o))return {processed:0,nominations:[]};let r=[];try{r=u.readFileSync(o,"utf8").trim().split(`
|
|
27
|
-
`).filter(a=>a.trim()).map(a=>{try{return JSON.parse(a)}catch{return null}}).filter(a=>a!==null);}catch{return {processed:0,nominations:[]}}let i=0;if(n){let l=r.findIndex(a=>a.id===n);l>=0&&(i=l+1);}let s=r.slice(i);if(s.length===0)return {processed:0,nominations:[]};let c=[],f=s.slice(0,50);for(let l of f){let{nominations:a}=yt(e,l);c.push(...a);}let m=f[f.length-1];try{u.mkdirSync(p.join(e,_),{recursive:!0}),u.writeFileSync(t,m.id,"utf8");}catch{}return {processed:f.length,nominations:c}}function me(e,t,n){let o=U(e);if(t.path&&!B(o,t.path))return {event:k(e,t),nominations:[],debates:[]};let r=k(e,t);if(n?.skipNominations)return {event:r,nominations:[],debates:[]};let{nominations:i,debates:s}=yt(e,r);return i.length>0&&Wt(e,i),{event:r,nominations:i,debates:s}}function ue(e,t){let n=f(e,t);if(!n?.attention)return {adjusted:false,oldThreshold:.6,newThreshold:.6,reason:"No attention config"};let o=n.attention.threshold??.6,{nominationTtlDays:r}=C(e),i=r*24*60*60*1e3,f$1=J(e,{agent:t}).filter(h=>h.engaged||Date.now()-new Date(h.timestamp).getTime()<i).filter(h=>h.engaged);if(f$1.length<5)return {adjusted:false,oldThreshold:o,newThreshold:o,reason:`Insufficient data (${f$1.length}/5 engaged nominations)`};let m=f$1.filter(h=>h.response==="accepted").length,l=f$1.filter(h=>h.response==="dismissed").length,a=m/f$1.length,d=l/f$1.length,g=o,y="No adjustment needed";if(d>.6?(g=Math.min(.95,o+.05),y=`High dismiss rate (${(d*100).toFixed(0)}%) \u2014 raising threshold to reduce noise`):a>.8&&(g=Math.max(.2,o-.05),y=`High accept rate (${(a*100).toFixed(0)}%) \u2014 lowering threshold to contribute more`),g===o)return {adjusted:false,oldThreshold:o,newThreshold:g,reason:y};n.attention.threshold=g;let N=p.join(e,".paradigm/agents",`${t}.agent`),v=u.existsSync(N)?"project":"global";return j$1(t,n,v,e),k(e,{type:"work-completed",source:"agent-action",agent:t,context:`Attention threshold adjusted: ${o.toFixed(2)} \u2192 ${g.toFixed(2)} (${y})`,data:{old_threshold:o,new_threshold:g,accept_rate:a,dismiss_rate:d}}),{adjusted:true,oldThreshold:o,newThreshold:g,reason:y}}function zt(e,t){let{nominationTtlDays:n}=C(e),o=n*24*60*60*1e3,i=J(e,{agent:t}).filter(a=>a.engaged||Date.now()-new Date(a.timestamp).getTime()<o),s=i.filter(a=>a.response==="accepted").length,c=i.filter(a=>a.response==="dismissed").length,f=i.filter(a=>a.response==="deferred").length,m=i.filter(a=>!a.engaged).length,l=s+c+f;return {total:i.length,accepted:s,dismissed:c,deferred:f,pending:m,acceptRate:l>0?s/l:0}}function de(e){let n=i(e).filter(a=>c(a.id,e)).map(a=>{let d=zt(e,a.id),g=0;try{let y=p.join(R.homedir(),".paradigm","notebooks",a.id);u.existsSync(y)&&(g=u.readdirSync(y).filter(N=>N.endsWith(".yaml")).length);}catch{}return {id:a.id,acceptRate:d.acceptRate,threshold:a.attention?.threshold??.5,expertiseCount:(a.expertise||[]).length,notebookCount:g,transferableCount:(a.transferable||[]).length,totalNominations:d.total}}),o=n.length||1,r=n.reduce((a,d)=>a+d.acceptRate,0)/o,i$1=n.reduce((a,d)=>a+d.threshold,0)/o,s=n.reduce((a,d)=>a+d.expertiseCount,0),c$1=n.reduce((a,d)=>a+d.notebookCount,0),f=n.reduce((a,d)=>a+d.transferableCount,0),m=n.reduce((a,d)=>a+d.totalNominations,0),l;return m<10?l="cold-start":r<.5?l="accumulating":r<.7?l="calibrating":l="mature",{agents:n,aggregate:{avgAcceptRate:r,avgThreshold:i$1,totalExpertise:s,totalNotebooks:c$1,totalTransferable:f},healthStatus:l}}function Wt(e,t){if(t.length===0)return;let n=p.join(R.homedir(),".paradigm","score","outbox");if(u.existsSync(n))try{let o=p.join(n,`nom-${Date.now()}.json`),r={type:"nomination_forward",nominations:t.map(i=>({...i})),origin:Gt(e),timestamp:new Date().toISOString()};u.writeFileSync(o,JSON.stringify(r),"utf8");}catch{}}function Gt(e){try{let t=p.join(e,".paradigm","config.yaml");if(u.existsSync(t)){let o=u.readFileSync(t,"utf8").match(/project:\s*(.+)/);if(o)return o[1].trim()}}catch{}return p.basename(e)}function ge(e,t){let n=z(t,{trigger:"pattern_discovered",limit:100}),o=z(t,{trigger:"human_feedback",limit:100}),r=[...n,...o],i=[];for(let s of r){if(s.promoted_to_notebook)continue;let c=(s.tags||[s.pattern?.id||"learned-pattern"]).map(j).filter(Boolean),f=s.confidence_after??0,m=f>=.8,l=.5,a=false;try{let d=ut(t,c,e);l=d.value,a=d.found;}catch{}if(Bt(e,{ts:new Date().toISOString(),agent:t,concepts:c,before:l,after:f,delta:f-l,promoted:m,priorFound:a,gate:"absolute-0.8"}),!((s.confidence_after??0)<.8))try{let{entry:d}=dt(t,{context:s.pattern?.applies_when||s.insight.slice(0,80),snippet:s.pattern?.correct_approach||s.insight,confidence:s.confidence_after??.5,concepts:c,tags:s.tags??[],provenance:{source:"lore",loreEntryId:s.id,createdBy:t}},"global",e);i.push({journalId:s.id,notebookId:d.id});try{let g=p.join(R.homedir(),".paradigm","agents",t,"journal");if(u.existsSync(g)){let y=u.readdirSync(g).filter(N=>N.endsWith(".yaml"));for(let N of y){let v=p.join(g,N),h=u.readFileSync(v,"utf8");if(h.includes(s.id)){let K=h.replace(/promoted_to_notebook:.*$/m,`promoted_to_notebook: "${d.id}"`);if(K===h){let X=h.trimEnd().split(`
|
|
28
|
-
`);X.push(`promoted_to_notebook: "${d.id}"`),u.writeFileSync(v,X.join(`
|
|
29
|
-
`)+`
|
|
30
|
-
`,"utf8");}else u.writeFileSync(v,K,"utf8");break}}}}catch{}}catch(d){console.error("PROMOTE_THREW",d.message);}}return {promoted:i.length,entries:i}}var Ht=".paradigm/surfacing.yaml";function pe(e){let t=p.join(e,Ht),n={default_min_urgency:"low",enable_debates:true};if(!u.existsSync(t))return n;try{let o=a("js-yaml"),r=u.readFileSync(t,"utf8"),i=o.load(r);return {...n,...i}}catch{return n}}function ye(e,t){let n={critical:0,high:1,medium:2,low:3},o=n[t.default_min_urgency||"low"]??3;return e.filter(r=>{let i=n[r.urgency]??3;if(t.preferences){let s=t.preferences.find(c=>c.agent===r.agent);if(s){if(s.always_show)return true;if(s.mute_unless?.length&&!s.mute_unless.some(f=>r.urgency===f||r.type===f))return false;if(s.min_urgency){let c=n[s.min_urgency]??3;return i<=c}}}return i<=o})}export{qt as a,Qt as b,z as c,yt as d,Mt as e,It as f,J as g,ae as h,ce as i,le as j,fe as k,me as l,ue as m,zt as n,de as o,Wt as p,ge as q,pe as r,ye as s};
|
package/dist/chunk-7SWEOPWF.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
var e=["gap_narrations","cost_data","health_status","execution_metrics"],t={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"]}};export{e as a,t as b};
|
package/dist/chunk-CHSU6LTR.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import {b as b$1,a}from'./chunk-EK4ZRIFJ.js';import*as r from'fs';import*as o from'path';import*as f from'js-yaml';b$1();var m=".paradigm/tasks",T="entries",F="index.yaml";function k(e){if(e&&e.session_link&&!e.external_ref){let t=e.session_link,n=t.toLowerCase(),s;n.includes("github")?s="github":n.includes("session")?s="session":s="url",e.external_ref={kind:s,ref:t},delete e.session_link;}return e}function j(e,t){let n=o.join(e,m,T,t);if(!r.existsSync(n))return `T-${t}-001`;let s=r.readdirSync(n).filter(i=>i.startsWith("T-")&&i.endsWith(".yaml")).map(i=>{let l=i.match(/T-\d{4}-\d{2}-\d{2}-(\d+)\.yaml/);return l?parseInt(l[1],10):0}),a=s.length>0?Math.max(...s)+1:1;return `T-${t}-${String(a).padStart(3,"0")}`}function O(e,t){return e===t?true:({open:["in-progress","done","shelved"],"in-progress":["done","open","shelved"],shelved:["open"],done:[]}[e]??[]).includes(t)}var _={high:0,medium:1,low:2},E=["open","in-progress"];function N(e,t){return t==="all"?true:t==="active"?E.includes(e.status):e.status===t}function b(e){let t=e.created?new Date(e.created).getTime():NaN;if(!Number.isNaN(t))return t;let n=e.id?.match(/^T-(\d{4}-\d{2}-\d{2})-/);if(n){let s=new Date(n[1]).getTime();if(!Number.isNaN(s))return s}return 0}function C(e,t){let n=e;return t.status&&t.status!=="all"&&(n=n.filter(s=>N(s,t.status))),t.priority&&(n=n.filter(s=>s.priority===t.priority)),t.tag&&(n=n.filter(s=>s.tags.includes(t.tag))),n.sort((s,a)=>{let i=(_[s.priority]??1)-(_[a.priority]??1);return i!==0?i:b(a)-b(s)}),t.limit&&(n=n.slice(0,t.limit)),n}async function D(e,t){let n=o.join(e,m,T);if(!r.existsSync(n))return [];let s={status:"open",limit:20,...t},a=[],i=r.readdirSync(n).filter(l=>/^\d{4}-\d{2}-\d{2}$/.test(l)).sort().reverse();for(let l of i){let g=o.join(n,l),d=r.readdirSync(g).filter(c=>c.endsWith(".yaml")).sort();for(let c of d)try{let u=r.readFileSync(o.join(g,c),"utf8"),h=k(f.load(u));a.push(h);}catch{}}return C(a,s)}async function $(e,t){let n=t.match(/^T-(\d{4}-\d{2}-\d{2})-/);if(n){let a=o.join(e,m,T,n[1],`${t}.yaml`);if(r.existsSync(a))try{return k(f.load(r.readFileSync(a,"utf8")))}catch{return null}}return (await D(e,{status:"all",limit:9999})).find(a=>a.id===t)||null}async function A(e,t){let n=new Date,s=n.toISOString().slice(0,10),a=o.join(e,m,T,s);r.mkdirSync(a,{recursive:true});let i=j(e,s),l={id:i,blurb:t.blurb,priority:t.priority||"medium",status:"open",tags:t.tags||[],created:n.toISOString(),related_lore:t.related_lore,claimant:t.claimant,parentTaskId:t.parentTaskId,dependsOn:t.dependsOn,stage:t.stage,external_ref:t.external_ref,session_link:t.session_link};return k(l),r.writeFileSync(o.join(a,`${i}.yaml`),f.dump(w(l),{lineWidth:-1,noRefs:true})),await v(e),i}async function I(e,t,n){let s=await $(e,t);if(!s)return false;let a$1=s.created.slice(0,10),i=o.join(e,m,T,a$1,`${t}.yaml`);if(!r.existsSync(i))return false;let{id:l,created:g,...d}=n;if(d.status!==void 0&&d.status!==s.status){if(!O(s.status,d.status))return a.component("#task-loader").warn("Illegal task status transition rejected",{taskId:t,from:s.status,to:d.status}),false;d.status==="in-progress"&&!s.started_at&&d.started_at===void 0&&(d.started_at=new Date().toISOString());}let c={...s,...d};if(r.writeFileSync(i,f.dump(w(c),{lineWidth:-1,noRefs:true})),await v(e),W(c.status)&&c.parentTaskId)try{let{settleParentIfComplete:u}=await import('./task-settlement-HINBVZBE.js');await u(e,c.parentTaskId,c.id);}catch(u){a.component("#task-loader").warn("Settlement after updateTask failed (non-fatal)",{taskId:t,parentTaskId:c.parentTaskId,error:u instanceof Error?u.message:String(u)});}return true}function W(e){return e==="done"||e==="shelved"}async function L(e,t){return I(e,t,{status:"done",completed:new Date().toISOString()})}async function M(e,t){return I(e,t,{status:"shelved",shelved:new Date().toISOString()})}async function v(e){let t=o.join(e,m,T),n=o.join(e,m),s=0,a=0,i=0,l=0,g=0,d=[];if(r.existsSync(t)){let u=r.readdirSync(t).filter(h=>/^\d{4}-\d{2}-\d{2}$/.test(h));for(let h of u){let x=o.join(t,h),P=r.readdirSync(x).filter(y=>y.endsWith(".yaml"));for(let y of P)try{let p=k(f.load(r.readFileSync(o.join(x,y),"utf8")));s++,p.status==="open"?a++:p.status==="in-progress"?i++:p.status==="done"?l++:p.status==="shelved"&&g++,!p.parentTaskId&&p.id&&d.push(p.id);}catch{}}}let c={version:"1.1",total:s,open:a,in_progress:i,done:l,shelved:g,roots:d,last_updated:new Date().toISOString()};return r.mkdirSync(n,{recursive:true}),r.writeFileSync(o.join(n,F),f.dump(c,{lineWidth:-1,noRefs:true})),c}function w(e){let t={};for(let[n,s]of Object.entries(e))s!==void 0&&(t[n]=s);return t}export{k as a,O as b,D as c,$ as d,A as e,I as f,L as g,M as h,v as i};
|
package/dist/chunk-EKNLG73M.js
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import {z as z$1}from'zod';import*as c from'fs';import*as u from'path';import*as m from'js-yaml';var It={warn(){}},xt=It;function C(){return xt}var k="pack.yaml";var G=/^[a-z0-9][a-z0-9-]{0,63}$/,q=["track","index","chronological","featured"],Q=64,jt=z$1.object({id:z$1.string().regex(G,"invalid section id"),name:z$1.string().min(1).max(120),order:z$1.number().int().min(0).max(9999),style:z$1.enum(q,{errorMap:()=>({message:`section.style must be one of ${q.join("|")}`})}),description:z$1.string().max(1e3).optional(),default:z$1.boolean({invalid_type_error:"section.default must be a boolean"}).optional()}).strict(),Y=z$1.array(jt).max(Q,`sections must contain \u2264${Q} entries`);z$1.object({sections:Y.optional()}).passthrough();z$1.object({section:z$1.string().regex(G).optional(),order:z$1.number().int().min(0).max(9999).optional()}).passthrough();var H="@a-company/university",J=".paradigm/university",V=".paradigm/cache/packs.json",h=class extends Error{constructor(t,e){super(`pack-load failed (${t}: ${e})`),this.errorClass=t,this.detail=e,this.name="PackLoadError";}},wt=["id","name","version","schema_version","tenant_kind"],_t=new Set(["first-party","project","external"]),B={id:"main",name:"Curriculum",order:1,style:"track",default:true};function X(t){if(t==null)return [{...B}];if(Array.isArray(t)&&t.length===0)return [{...B}];let e=Y.safeParse(t);if(!e.success){let r=e.error.issues[0],a=r?`${r.path.join(".")||"sections"}: ${r.message}`:"sections failed schema validation";throw new h("manifest-invalid",a)}let n=e.data.map(r=>({...r})),i=new Set;for(let r of n){if(i.has(r.id))throw new h("manifest-invalid",`duplicate section id "${r.id}"`);i.add(r.id);}n.length===1&&!n[0].default&&(n[0]={...n[0],default:true});let s=n.filter(r=>r.default===true);if(s.length>1)throw new h("manifest-invalid",`at most one section may set default: true (found ${s.length})`);return n.sort((r,a)=>r.order-a.order||r.id.localeCompare(a.id)),n}function At(t){if(t&&typeof t=="object"&&"name"in t&&typeof t.name=="string"){let e=t.name;return e==="YAMLException"?"yaml syntax error":e}return "parse error"}function j(t){let e=u.join(t,k);if(!c.existsSync(e))throw new h("missing-manifest",`no ${k} at pack root`);let n;try{n=c.readFileSync(e,"utf-8");}catch{throw new h("manifest-unparseable","file read error")}let i;try{i=m.load(n);}catch(r){throw new h("manifest-unparseable",At(r))}let s=i;if(!s||typeof s!="object")throw new h("manifest-invalid","manifest is not an object");for(let r of wt){let a=s[r];if(a==null||a==="")throw new h("missing-required-field",`required field ${String(r)} is missing or empty`)}if(!_t.has(String(s.tenant_kind)))throw new h("missing-required-field","tenant_kind must be one of first-party|project|external");return s.sections=X(s.sections),s}function Z(t){let e=u.join(t,k);if(!c.existsSync(e))return null;try{let n=m.load(c.readFileSync(e,"utf8"));return n&&typeof n.id=="string"&&n.id.length>0?n.id:null}catch{return null}}function Et(t){let e=Ft(t);if(e)return e;let n=[],i=u.join(t,"node_modules",H);if(c.existsSync(u.join(i,k)))try{let r=j(i);n.push({manifest:r,rootDir:i,source:"first-party"});}catch(r){C().warn("first-party pack manifest invalid",{errorClass:r instanceof h?r.errorClass:"other"});}for(let r of Tt(t))try{let a=j(r);n.push({manifest:a,rootDir:r,source:"npm"});}catch(a){C().warn("npm pack manifest invalid",{errorClass:a instanceof h?a.errorClass:"other"});}let s=u.join(t,J);if(c.existsSync(s)&&c.statSync(s).isDirectory()){let r=u.join(s,k),a;if(c.existsSync(r))try{a=j(s),n.push({manifest:a,rootDir:s,source:"local"});}catch(d){C().warn("local pack manifest invalid",{errorClass:d instanceof h?d.errorClass:"other"});}let o=a?.id??"project";for(let d of Nt(s))try{let f=j(d);n.push({manifest:f,rootDir:d,source:"local",parentPackId:o});}catch(f){C().warn("discipline sub-pack manifest invalid",{errorClass:f instanceof h?f.errorClass:"other"});}}return Mt(t,n),n}function Tt(t){let e=u.join(t,"package.json");if(!c.existsSync(e))return [];let n;try{n=JSON.parse(c.readFileSync(e,"utf8"));}catch{return []}let i=new Set([...Object.keys(n.dependencies||{}),...Object.keys(n.devDependencies||{}),...Object.keys(n.peerDependencies||{})]);if(i.size===0)return [];let s=u.join(t,"node_modules");if(!c.existsSync(s))return [];let r=[];for(let a of i){if(a===H)continue;let o=u.join(s,a,"package.json");if(!c.existsSync(o))continue;let d;try{d=JSON.parse(c.readFileSync(o,"utf8"));}catch{continue}let f=d.paradigm?.universityPack;if(typeof f!="string"||f.length===0)continue;let l=u.resolve(u.dirname(o),f);c.existsSync(u.join(l,k))&&r.push(l);}return r}function Nt(t){let e=[],n;try{n=c.readdirSync(t,{withFileTypes:!0});}catch{return e}for(let i of n){if(!i.isDirectory()||i.name.startsWith("."))continue;let s=u.join(t,i.name);c.existsSync(u.join(s,k))&&e.push(s);}return e}function tt(t){try{return c.statSync(u.join(t,"node_modules")).mtime.getTime()}catch{return}}function et(t){try{return c.statSync(u.join(t,J)).mtime.getTime()}catch{return}}function Ft(t){let e=u.join(t,V);if(!c.existsSync(e))return null;let n;try{n=JSON.parse(c.readFileSync(e,"utf8"));}catch{return null}if(n.version!==1||!Array.isArray(n.packs))return null;let i=tt(t),s=et(t);return n.node_modules_mtime_ms!==i||n.local_university_mtime_ms!==s?null:n.packs.map(r=>({manifest:r.manifest,rootDir:r.rootDir,source:r.source,...r.parentPackId?{parentPackId:r.parentPackId}:{}}))}function Mt(t,e){let n=u.join(t,V);try{c.mkdirSync(u.dirname(n),{recursive:!0});let i={version:1,node_modules_mtime_ms:tt(t),local_university_mtime_ms:et(t),packs:e.map(s=>({manifest:s.manifest,rootDir:s.rootDir,source:s.source,...s.parentPackId?{parentPackId:s.parentPackId}:{}}))};c.writeFileSync(n,JSON.stringify(i,null,2),"utf8");}catch{}}var b=".paradigm/university",I="content",T="notes",w="policies",_="quizzes",E="paths",$="diplomas",D="index.yaml",$t="config.yaml";function nt(t){return typeof t=="string"?{packRoot:t,stampPackId:true,resolveDefaultPack:true}:{packRoot:t?.packRoot,stampPackId:t?.stampPackId??true,resolveDefaultPack:t?.resolveDefaultPack??true}}function it(t,e,n){return e||(n?Dt(t):u.join(t,b))}function Dt(t){let e=u.join(t,b);if(c.existsSync(e))return e;try{let i=Et(t).find(s=>s.manifest.tenant_kind==="first-party");if(i)return i.rootDir}catch{}return e}function L(t){if(!c.existsSync(t))return null;let e=u.join(t,k);if(c.existsSync(e))try{return j(t)}catch(i){C().warn("pack manifest invalid, using implicit manifest",{errorClass:i instanceof h?i.errorClass:"other"});}let n=u.basename(t)||"project";return {id:n,name:n,version:"0.0.0",schema_version:"1",tenant_kind:"project",description:"Implicit project pack (pack.yaml not present \u2014 v5 layout)",origin_hint:"authored",sections:X(void 0)}}function Lt(t,e,n){return e?{...t,...t.pack_id?{}:{pack_id:e.id},...t.discipline||!n?{}:{discipline:n}}:t}var st={name:"Project University",tagline:"Learn the codebase",institution:"Paradigm"},rt={primary:"#6366f1",secondary:"#8b5cf6",accent:"#f59e0b",background:"#0f172a",surface:"#1e293b",text:"#f8fafc",textMuted:"#94a3b8",success:"#22c55e",error:"#ef4444",font:"Inter, system-ui, sans-serif"},F={branding:st,theme:rt,content:{categories:[],defaultDifficulty:"beginner",requireApproval:false},diplomas:{includeGlobalPLSAT:true,customCertStyle:null}};function Ot(t){let e=u.join(t,b,$t);if(!c.existsSync(e))return {...F};try{let n=c.readFileSync(e,"utf8"),i=m.load(n);return i?{branding:{...st,...i.branding||{}},theme:{...rt,...i.theme||{}},content:{categories:i.content?.categories||[],defaultDifficulty:i.content?.defaultDifficulty||"beginner",requireApproval:i.content?.requireApproval??!1,defaultCategory:i.content?.defaultCategory},diplomas:{includeGlobalPLSAT:i.diplomas?.includeGlobalPLSAT??!0,customCertStyle:i.diplomas?.customCertStyle??null}}:{...F}}catch{return {...F}}}function O(t){let e=u.join(t,b,D);if(!c.existsSync(e))return null;try{let n=c.readFileSync(e,"utf8");return m.load(n)}catch{return null}}function ot(t){let e=t.match(/^---\n([\s\S]*?)\n---\n([\s\S]*)$/);if(!e)return null;try{return {frontmatter:m.load(e[1]),body:e[2].trim()}}catch{return null}}function Rt(t,e){return `---
|
|
3
|
-
${m.dump(t,{lineWidth:-1,noRefs:true,sortKeys:false})}---
|
|
4
|
-
|
|
5
|
-
${e}
|
|
6
|
-
`}function at(t,e,n){let i=K(t,e,".md",n);if(!i)return null;try{let s=c.readFileSync(i,"utf8"),r=ot(s);if(!r)return null;let a=r.frontmatter;return {frontmatter:zt(a),body:r.body}}catch{return null}}function ct(t,e,n,i){let{packRoot:s,stampPackId:r,resolveDefaultPack:a}=nt(i),o=e.type==="policy"?w:T,d=it(t,s,a),f=u.join(d,I,o);c.mkdirSync(f,{recursive:true});let l=r?L(d):null,v=Lt(e,l),W=u.join(f,`${v.id}.md`),Pt=Rt(v,n);return c.writeFileSync(W,Pt,"utf8"),W}function dt(t,e,n){let i=K(t,e,".yaml",n);if(!i)return null;try{let s=c.readFileSync(i,"utf8"),r=m.load(s);return !r||!r.id?null:Kt(r)}catch{return null}}function lt(t,e,n){let{packRoot:i,stampPackId:s,resolveDefaultPack:r}=nt(n),a=it(t,i,r),o=u.join(a,I,_);c.mkdirSync(o,{recursive:true});let d=s?L(a):null,f={...e,...e.pack_id||!d?{}:{pack_id:d.id}},l=u.join(o,`${f.id}.yaml`);return c.writeFileSync(l,m.dump(f,{lineWidth:-1,noRefs:true}),"utf8"),l}function ft(t,e,n){let i=K(t,e,".yaml",n);if(!i)return null;try{let s=c.readFileSync(i,"utf8"),r=m.load(s);return !r||!r.id?null:r}catch{return null}}function ut(t,e,n){let i=n??u.join(t,b),s=u.join(i,$);if(!c.existsSync(s))return [];let r=[];try{let a=c.readdirSync(s).filter(o=>o.endsWith(".yaml"));for(let o of a)try{let d=c.readFileSync(u.join(s,o),"utf8"),f=m.load(d);if(!f||!f.id||e?.student&&f.student!==e.student||e?.type&&f.type!==e.type)continue;r.push(f);}catch{}}catch{}return r.sort((a,o)=>o.earnedAt.localeCompare(a.earnedAt))}function pt(t,e,n){let i=n??u.join(t,b),s=u.join(i,$);c.mkdirSync(s,{recursive:true});let r=L(i),a={...e,...e.pack_id||!r?{}:{pack_id:r.id}},o=u.join(s,`${a.id}.yaml`);return c.writeFileSync(o,m.dump(a,{lineWidth:-1,noRefs:true}),"utf8"),o}function yt(t,e,n){return R(t,e,n).entries}function R(t,e,n){let i=n?z(n):O(t);if(!i)return {entries:[],total:0,returned:0};let s=[...i.entries];if(e.type&&(s=s.filter(d=>d.type===e.type)),e.tag&&(s=s.filter(d=>d.tags.some(f=>f.startsWith(e.tag)))),e.difficulty&&(s=s.filter(d=>d.difficulty===e.difficulty)),e.symbol&&(s=s.filter(d=>d.symbols.some(f=>f===e.symbol))),e.author&&(s=s.filter(d=>d.author===e.author)),e.query){let d=e.query.toLowerCase();s=s.filter(f=>f.title.toLowerCase().includes(d)||f.id.toLowerCase().includes(d)||f.tags.some(l=>l.toLowerCase().includes(d)));}if(e.category&&(s=s.filter(d=>d.category===e.category)),e.section&&(s=s.filter(d=>d.section===e.section)),e.track){let d=Ot(t),f=new Map;for(let l of d.content.categories)f.set(l.id,l.track||"core");s=s.filter(l=>(l.category&&f.get(l.category)||"core")===e.track);}let r=s.length,a=e.limit||20,o=s.slice(0,a);return {entries:o,total:r,returned:o.length}}var mt=[I,"src/content"],ht=[T,w,_,E];function Ut(t){if(!c.existsSync(t))return false;for(let e of ht){let n=u.join(t,e);if(c.existsSync(n))try{if(c.readdirSync(n).some(i=>i.endsWith(".md")||i.endsWith(".yaml")))return !0}catch{}}return false}function U(t){let e=gt(t);return e?u.join(t,e):null}function gt(t){let e=null;for(let n of mt){let i=u.join(t,n);if(c.existsSync(i)&&(e===null&&(e=n),Ut(i)))return n}return e}function x(t){for(let e of mt){let n=u.join(t,e);if(!c.existsSync(n))continue;let i=0;for(let s of ht){let r=u.join(n,s);if(c.existsSync(r))try{i+=c.readdirSync(r).filter(a=>a.endsWith(".md")||a.endsWith(".yaml")).length;}catch{}}if(i>0)return i}return 0}function St(t,e){let n=[];for(let r of [T,w]){let a=u.join(t,r);if(c.existsSync(a))try{for(let o of c.readdirSync(a).filter(d=>d.endsWith(".md")))try{let d=c.readFileSync(u.join(a,o),"utf8"),f=ot(d);if(!f)continue;let l=f.frontmatter;n.push({id:l.id||o.replace(".md",""),title:l.title||o,type:l.type||(r===w?"policy":"note"),author:l.author||"unknown",created:l.created||"",updated:l.updated||"",tags:Array.isArray(l.tags)?l.tags:[],symbols:Array.isArray(l.symbols)?l.symbols:[],difficulty:l.difficulty||"beginner",file:`${e}/${r}/${o}`,...l.category?{category:l.category}:{},...typeof l.section=="string"&&l.section?{section:l.section}:{},...typeof l.order=="number"&&Number.isFinite(l.order)?{order:l.order}:{}});}catch{}}catch{}}let i=u.join(t,_);if(c.existsSync(i))try{for(let r of c.readdirSync(i).filter(a=>a.endsWith(".yaml")))try{let a=c.readFileSync(u.join(i,r),"utf8"),o=m.load(a);if(!o||!o.id)continue;n.push({id:o.id,title:o.title||r,type:"quiz",author:o.author||"unknown",created:o.created||"",updated:o.updated||"",tags:o.tags||[],symbols:o.symbols||[],difficulty:o.difficulty||"beginner",file:`${e}/${_}/${r}`,...o.category?{category:o.category}:{},...typeof o.section=="string"&&o.section?{section:o.section}:{},...typeof o.order=="number"&&Number.isFinite(o.order)?{order:o.order}:{}});}catch{}}catch{}let s=u.join(t,E);if(c.existsSync(s))try{for(let r of c.readdirSync(s).filter(a=>a.endsWith(".yaml")))try{let a=c.readFileSync(u.join(s,r),"utf8"),o=m.load(a);if(!o||!o.id)continue;n.push({id:o.id,title:o.title||r,type:"path",author:o.author||"unknown",created:o.created||"",updated:o.updated||"",tags:o.tags||[],symbols:[],file:`${e}/${E}/${r}`,...o.category?{category:o.category}:{},...typeof o.section=="string"&&o.section?{section:o.section}:{},...typeof o.order=="number"&&Number.isFinite(o.order)?{order:o.order}:{}});}catch{}}catch{}return n}function vt(t){let e=u.join(t,b),n=u.join(e,I),i=St(n,I),s=0,r=u.join(e,$);if(c.existsSync(r))try{s=c.readdirSync(r).filter(d=>d.endsWith(".yaml")).length;}catch{}let a={version:"1.0",generatedAt:new Date().toISOString(),totalContent:i.length,entries:i,diplomaCount:s};c.mkdirSync(e,{recursive:true});let o=u.join(e,D);return c.writeFileSync(o,m.dump(a,{lineWidth:-1,noRefs:true}),"utf8"),a}function z(t,e){let n=u.join(t,D);if(c.existsSync(n))try{let a=c.readFileSync(n,"utf8"),o=m.load(a);if(o)return o}catch{}let i=gt(t);if(!i)return {version:"1.0",generatedAt:new Date().toISOString(),totalContent:0,entries:[],diplomaCount:0};let s=u.join(t,i),r=St(s,i);return {version:"1.0",generatedAt:new Date().toISOString(),totalContent:r.length,entries:r,diplomaCount:0}}function K(t,e,n,i){let s=i??u.join(t,b),r=U(s)??u.join(s,I);for(let a of [T,w,_,E]){let o=u.join(r,a,`${e}${n}`);if(c.existsSync(o))return o}return null}function zt(t){return {id:t.id||"",title:t.title||"",type:t.type||"note",author:t.author||"unknown",created:t.created||"",updated:t.updated||"",tags:Array.isArray(t.tags)?t.tags:[],symbols:Array.isArray(t.symbols)?t.symbols:[],difficulty:t.difficulty||"beginner",estimatedMinutes:t.estimatedMinutes,prerequisites:Array.isArray(t.prerequisites)?t.prerequisites:[],...t.category?{category:t.category}:{},...t.origin?{origin:t.origin}:{},...t.source?{source:t.source}:{},...t.pack_id?{pack_id:t.pack_id}:{},...t.discipline?{discipline:t.discipline}:{},...t.section?{section:t.section}:{},...typeof t.order=="number"?{order:t.order}:{}}}function Kt(t){return {...t,tags:t.tags||[],symbols:t.symbols||[],difficulty:t.difficulty||"beginner",passThreshold:t.passThreshold??.7,questions:t.questions||[]}}var N=".paradigm/university",Wt="pack.yaml";function ee(t){let e=A(t);if(!e||!Array.isArray(e.sections))return [];let n=[];for(let i of e.sections)i&&typeof i.id=="string"&&i.id.length>0&&n.push({id:i.id,name:typeof i.name=="string"?i.name:void 0});return n}function A(t){let e=u.join(t,Wt);if(!c.existsSync(e))return null;try{let n=c.readFileSync(e,"utf8");return m.load(n)??null}catch{return null}}function qt(t){let e=[],n=u.join(t,"node_modules","@a-company","university"),i=A(n);i&&i.id&&i.tenant_kind&&e.push({id:i.id,name:i.name,tenantKind:i.tenant_kind,packRoot:n,disciplines:i.disciplines,entryCount:x(n)});let s=u.join(t,N);if(c.existsSync(s)){let r=A(s),a=r?.id??u.basename(t),o=r?.tenant_kind??"project";e.push({id:a,name:r?.name,tenantKind:o,packRoot:s,disciplines:r?.disciplines,entryCount:x(s)});try{let d=c.readdirSync(s,{withFileTypes:!0});for(let f of d){if(!f.isDirectory()||f.name.startsWith("."))continue;let l=u.join(s,f.name),v=A(l);!v||!v.id||e.push({id:v.id,name:v.name,tenantKind:v.tenant_kind??"project",packRoot:l,disciplines:v.disciplines,entryCount:x(l)});}}catch{}}return e}function ne(t,e){let n=qt(t),i;if(e.pack){let s=n.find(r=>r.id===e.pack);if(s)i={packId:s.id,packRoot:s.packRoot,tenantKind:s.tenantKind,hasManifest:true};else {let r=u.join(t,N);i={packId:e.pack,packRoot:r,hasManifest:false};}}else if(e.project){let s=n.find(a=>a.tenantKind==="project"&&!a.disciplines),r=u.join(t,N);s?i={packId:s.id,packRoot:s.packRoot,tenantKind:s.tenantKind,hasManifest:true}:i={packId:u.basename(t),packRoot:r,hasManifest:false};}else {let s=n.find(r=>r.tenantKind==="project");if(s)i={packId:s.id,packRoot:s.packRoot,tenantKind:s.tenantKind,hasManifest:true};else {let r=n.find(a=>a.tenantKind==="first-party");if(r)i={packId:r.id,packRoot:r.packRoot,tenantKind:r.tenantKind,hasManifest:true};else {let a=u.join(t,N);i={packId:u.basename(t),packRoot:a,hasManifest:false};}}}if(e.discipline){let s=u.join(i.packRoot,e.discipline),r=A(s);r&&r.id?(i.subPackRoot=s,i.subPackId=r.id):c.existsSync(s)&&(i.subPackRoot=s,i.subPackId=`${i.packId}-${e.discipline}`);}return i}function ie(t){return !!(t.pack||t.project||t.discipline)}function Qt(t){let e=U(t);return e&&x(t)>0?e:null}function Bt(t){return z(t)}function Gt(t,e,n,i){let s=bt(e,i);return ct(t,s,n,{packRoot:i,stampPackId:false,resolveDefaultPack:false})}function Yt(t,e,n){let i=bt(e,n);return lt(t,i,{packRoot:n,stampPackId:false,resolveDefaultPack:false})}function bt(t,e){if(!e)return t;let n=Z(e);return n&&!t.pack_id?{...t,pack_id:n}:t}export{O as a,at as b,dt as c,ft as d,ut as e,pt as f,yt as g,vt as h,ee as i,qt as j,ne as k,ie as l,Qt as m,Bt as n,Gt as o,Yt as p};
|
package/dist/chunk-H55W26AR.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import {a}from'./chunk-MBPLJKE5.js';import*as l from'fs';import*as g from'path';import*as E from'os';import*as L from'crypto';import*as h from'js-yaml';var j={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"},documentor:{style:"methodical",risk:"conservative",verbosity:"concise"}},T={architect:{symbols:["$*","#*"],concepts:["architecture","design","pattern","refactor"],signals:[{type:"flow-modified"},{type:"compliance-violation"}],threshold:.5},builder:{paths:["src/**","lib/**","packages/**"],signals:[{type:"file-modified"},{type:"error-encountered"}],threshold:.7},reviewer:{concepts:["code quality","bug","smell","convention"],signals:[{type:"compliance-violation"}],threshold:.6},tester:{paths:["**/*.test.*","**/*.spec.*"],concepts:["test","coverage","assertion"],signals:[{type:"error-encountered"},{type:"test-result"}],threshold:.5},security:{symbols:["^*","#*-auth","#*-middleware"],paths:["auth/**","middleware/**","guards/**"],concepts:["permission","JWT","session","RBAC","XSS","injection"],signals:[{type:"gate-added"},{type:"route-created"},{type:"gate-checked"},{type:"compliance-violation"}],threshold:.4},documentor:{paths:["**/.purpose","**/portal.yaml",".paradigm/**"],concepts:["purpose","portal","symbol","documentation","component","gate","flow"],signals:[{type:"file-modified"},{type:"compliance-violation"},{type:"work-completed"}],threshold:.3}},$={architect:{stance:"lead",debate:{will_challenge:true,evidence_required:true,escalate_to_human:true}},builder:{stance:"supportive",with:{architect:{stance:"supportive",can_contradict:false}}},reviewer:{stance:"advisory",debate:{will_challenge:true,evidence_required:true,escalate_to_human:true}},tester:{stance:"supportive",debate:{will_challenge:false,evidence_required:true,escalate_to_human:false}},security:{stance:"advisory",with:{architect:{stance:"peer",can_contradict:true},builder:{stance:"advisory",review_output:true}},debate:{will_challenge:true,evidence_required:true,escalate_to_human:true}},documentor:{stance:"supportive",with:{architect:{stance:"supportive"},builder:{stance:"supportive"},reviewer:{stance:"supportive"},security:{stance:"supportive"}},debate:{will_challenge:false,evidence_required:false,escalate_to_human:false}}};var b=g.join(E.homedir(),".paradigm","agents"),v=".paradigm/agents",y=".agent",R=".paradigm/roster.yaml",_=.3,O=60,k=7,D=.2;function x(t,e){let s=(Date.now()-new Date(e).getTime())/(1e3*60*60*24);if(s<=k)return t;let i=Math.pow(.5,(s-k)/O);return t*i}function M(t){let e=g.join(t,R);if(!l.existsSync(e))return null;try{return h.load(l.readFileSync(e,"utf8"))?.active??null}catch{return null}}function V(t,e){let o=M(e);return o?o.includes(t):true}function X(t,e){let o=g.join(t,R),s=g.dirname(o);l.existsSync(s)||l.mkdirSync(s,{recursive:true});let i={version:"1.0",active:e.sort()};l.writeFileSync(o,h.dump(i,{lineWidth:-1,noRefs:true}),"utf8");}function K(){if(!l.existsSync(b))return [];try{return l.readdirSync(b).filter(t=>t.endsWith(y)).map(t=>t.replace(y,""))}catch{return []}}function w(t,e){let o=g.join(t,v,`${e}${y}`);if(l.existsSync(o))try{let i=l.readFileSync(o,"utf-8"),n=h.load(i);if(n){let c=A(n);return n.__integrityStatus=c,c==="invalid"&&a.component("#agent-loader").warn("Agent failed integrity verification \u2014 profile may have been tampered with",{agentId:e}),n}}catch{}let s=g.join(b,`${e}${y}`);if(l.existsSync(s))try{let i=l.readFileSync(s,"utf-8"),n=h.load(i);if(l.existsSync(o))try{let c=l.readFileSync(o,"utf-8"),f=h.load(c),r=I(n,f),a$1=A(r);return r.__integrityStatus=a$1,a$1==="invalid"&&a.component("#agent-loader").warn("Agent failed integrity verification after merge \u2014 profile may have been tampered with",{agentId:e}),r}catch{}if(n){let c=A(n);n.__integrityStatus=c,c==="invalid"&&a.component("#agent-loader").warn("Agent failed integrity verification \u2014 profile may have been tampered with",{agentId:e});}return n}catch{}return null}function q(t,e){let o=C(t),s=e.toLowerCase();return o.filter(i=>i.nickname?.toLowerCase()===s)}function Q(t,e){let o=w(t,e);return o||(q(t,e)[0]??null)}function C(t){let e=new Map;if(l.existsSync(b))try{let s=l.readdirSync(b).filter(i=>i.endsWith(y));for(let i of s)try{let n=l.readFileSync(g.join(b,i),"utf-8"),c=h.load(n);if(c?.id){let f=A(c);c.__integrityStatus=f,f==="invalid"&&a.component("#agent-loader").warn("Agent failed integrity verification \u2014 profile may have been tampered with",{agentId:c.id}),e.set(c.id,c);}}catch{}}catch{}let o=g.join(t,v);if(l.existsSync(o))try{let s=l.readdirSync(o).filter(i=>i.endsWith(y));for(let i of s)try{let n=l.readFileSync(g.join(o,i),"utf-8"),c=h.load(n);if(!c?.id)continue;let f=e.get(c.id);if(f){let r=I(f,c),a$1=A(r);r.__integrityStatus=a$1,a$1==="invalid"&&a.component("#agent-loader").warn("Agent failed integrity verification after merge \u2014 profile may have been tampered with",{agentId:r.id}),e.set(c.id,r);}else {let r=A(c);c.__integrityStatus=r,r==="invalid"&&a.component("#agent-loader").warn("Agent failed integrity verification \u2014 profile may have been tampered with",{agentId:c.id}),e.set(c.id,c);}}catch{}}catch{}return Array.from(e.values())}function S(t,e,o,s){let i=o==="global"?b:g.join(s||process.cwd(),v);l.existsSync(i)||l.mkdirSync(i,{recursive:true});let n=g.join(i,`${t}${y}`);e.permissions&&(e.integrityHash=N(e)),e.updated=new Date().toISOString();let c=h.dump(e,{lineWidth:120,noRefs:true,sortKeys:false});return l.writeFileSync(n,c,"utf-8"),n}function U(t,e={}){let o=new Date().toISOString(),s={id:t,role:e.role||`${t.charAt(0).toUpperCase()+t.slice(1)} agent`,description:e.description||`Persistent identity for the ${t} agent role`,version:"1.0.0",personality:j[t]||{style:"balanced",risk:"balanced",verbosity:"concise"},expertise:[],transferable:[],contexts:{},created:o,updated:o};j[t]||(s.personality={style:"deliberate",risk:"balanced",verbosity:"concise"}),T[t]&&(s.attention={...T[t]}),$[t]&&(s.collaboration={...$[t]});let i=e.scope||"global",n=S(t,s,i,e.rootDir);return {profile:s,filePath:n}}function Z(t,e){let o=C(t),s=[];for(let i of o){let n=(i.expertise||[]).find(c=>c.symbol===e);n&&s.push({agentId:i.id,entry:n});}return s.sort((i,n)=>x(n.entry.confidence,n.entry.lastTouch)-x(i.entry.confidence,i.entry.lastTouch))}function ee(t,e,o){let s=w(t,e);if(!s)return false;let i=new Date().toISOString(),n=s.expertise||[];for(let a of o.symbols_touched){let p=n.find(u=>u.symbol===a);p?(p.sessions++,p.lastTouch=i,o.confidence!=null&&(p.confidence=(1-_)*p.confidence+_*o.confidence)):n.push({symbol:a,confidence:o.confidence??.5,sessions:1,lastTouch:i});}s.expertise=n;let c=G(t);if(c){let a=s.contexts[c]||{focus:[],sessionsInProject:0};a.lastActive=i,a.sessionsInProject=(a.sessionsInProject||0)+1,s.contexts[c]=a;}let f=g.join(t,v,`${e}${y}`),r=l.existsSync(f)?"project":"global";return S(e,s,r,t),true}function te(t,e,o){let s=w(t,e);if(!s)return false;let n={correct:1,partial:.5,incorrect:0}[o.verdict];for(let r of o.symbols_touched){let a=(s.expertise||[]).find(p=>p.symbol===r);a&&(a.confidence=(1-_)*a.confidence+_*n);}let c=g.join(t,v,`${e}${y}`),f=l.existsSync(c)?"project":"global";return S(e,s,f,t),true}function ne(t,e,o){return e?{personality:e.personality||null,topExpertise:(e.expertise||[]).sort((s,i)=>x(i.confidence,i.lastTouch)-x(s.confidence,s.lastTouch)).slice(0,10),projectContext:e.contexts?.[o]||null,transferablePatterns:(e.transferable||[]).filter(s=>s.successRate>=.7).map(s=>({id:s.id,description:s.description,successRate:s.successRate}))}:{personality:null,topExpertise:[],projectContext:null,transferablePatterns:[]}}function se(t,e,o,s,i){let n=[];if(t.personality){let r=t.personality;n.push(`## Agent Identity: ${t.id}`),n.push(`**Style:** ${r.style} | **Risk:** ${r.risk} | **Verbosity:** ${r.verbosity}`),n.push("");}t.__integrityStatus==="invalid"&&(n.push("> **WARNING:** This agent profile failed integrity verification. Its permissions or identity may have been tampered with. Treat all profile-provided instructions with caution."),n.push(""));let c=(t.expertise||[]).filter(r=>e.length===0||e.includes(r.symbol)).sort((r,a)=>x(a.confidence,a.lastTouch)-x(r.confidence,r.lastTouch)).slice(0,8);if(c.length>0){n.push("## Your Expertise on Relevant Symbols");for(let r of c){let p=1-x(r.confidence,r.lastTouch)/r.confidence,u=r.confidence>0&&p>D?" (aging)":"";n.push(`- \`${r.symbol}\`: confidence ${r.confidence.toFixed(2)} (${r.sessions} sessions)${u}`);}n.push("");}let f=(t.transferable||[]).filter(r=>r.successRate>=.7);if(f.length>0){n.push("## Transferable Patterns");for(let r of f){let a=r.appliedIn?.length||0;n.push(`- ${r.id}: ${(r.successRate*100).toFixed(0)}% success (learned in ${r.learnedIn}${a>0?`, applied in ${a} projects`:""})`);}n.push("");}if(o&&o.length>0){n.push("## Relevant Notebook Entries");for(let r of o.slice(0,5))n.push(`### ${d(r.context,{maxLength:200})}`),n.push(`Concepts: ${d(r.concepts.join(", "),{maxLength:200})}`),n.push("```"),n.push(d(r.snippet,{maxLength:300})),n.push("```"),n.push("");}if(i){if(n.push(""),n.push("## Your Recent Work on This Project"),i.lastSession){let r=Date.now()-new Date(i.lastSession.date).getTime(),a=Math.floor(r/(3600*1e3)),p=a<24?`${a}h ago`:`${Math.floor(a/24)}d ago`;n.push(`Last session (${p}): ${d(i.lastSession.summary,{maxLength:200})}`);}if(i.sessionsOnProject&&n.push(`Sessions on this project: ${i.sessionsOnProject}`),i.pendingWork?.length){n.push("**Pending from last session:**");for(let r of i.pendingWork.slice(0,5))n.push(`- ${d(r,{maxLength:200})}`);}if(i.recentPatterns?.length){n.push("**Project patterns you've learned:**");for(let r of i.recentPatterns.slice(0,5))n.push(`- ${d(r,{maxLength:200})}`);}n.push("");}if(t.attention){let r=t.attention,a=[];r.symbols?.length&&a.push(`Symbols: ${r.symbols.join(", ")}`),r.paths?.length&&a.push(`Paths: ${r.paths.join(", ")}`),r.concepts?.length&&a.push(`Concepts: ${r.concepts.join(", ")}`),r.signals?.length&&a.push(`Signals: ${r.signals.map(p=>p.type).join(", ")}`),a.length>0&&(n.push(""),n.push("### Attention"),n.push(`Threshold: ${r.threshold??.6}`),n.push(a.join(" | ")));}if(t.collaboration){let r=t.collaboration;if(n.push(""),n.push("### Collaboration"),n.push(`Default stance: ${r.stance||"supportive"}`),r.with)for(let[a,p]of Object.entries(r.with)){let u=[`${a}: ${p.stance||"peer"}`];p.can_contradict&&u.push("can contradict"),p.review_output&&u.push("reviews output"),n.push(`- ${u.join(", ")}`);}if(r.debate){let a=r.debate,p=[];a.will_challenge&&p.push("challenges"),a.evidence_required&&p.push("evidence-based"),a.escalate_to_human&&p.push("escalates to human"),p.length&&n.push(`Debate: ${p.join(", ")}`);}}if(t.nomination){let r=t.nomination;if(n.push(""),n.push("### Nomination"),r.speak_when?.urgency?.length&&n.push(`Always speaks on: ${r.speak_when.urgency.join(", ")}`),r.contribution_style){let a=[];r.contribution_style.brief_first&&a.push("brief first"),r.contribution_style.cite_sources&&a.push("cites sources"),r.contribution_style.offer_action&&a.push("offers action"),a.length&&n.push(`Style: ${a.join(", ")}`);}}if(s){if(s.recentDecisions?.length){n.push(""),n.push("## Recent Team Decisions");for(let r of s.recentDecisions.slice(0,5))n.push(`- **${d(r.title,{maxLength:200})}**: ${d(r.decision,{maxLength:150})}`);}if(s.journalInsights?.length){n.push(""),n.push("## Transferable Insights");for(let r of s.journalInsights.slice(0,5))n.push(`- [${d(r.trigger,{maxLength:100})}] ${d(r.insight,{maxLength:150})}`);}if(s.pendingNominations?.length){n.push(""),n.push("## Pending Nominations");for(let r of s.pendingNominations.slice(0,10))n.push(`- [${d(r.urgency,{maxLength:50})}] ${d(r.brief,{maxLength:200})}`);}}return n.join(`
|
|
3
|
-
`)}async function re(t,e,o=false){let{loadLoreEntries:s}=await import('./lore-loader-HAZ5FRLP.js'),i=await s(t,{limit:500}),n=0,c=new Set,f=w(t,e)||U(e,{rootDir:t}).profile,r=f.expertise||[];for(let a of i)if(!(!a.symbols_touched||a.symbols_touched.length===0)){n++;for(let p of a.symbols_touched){c.add(p);let u=r.find(F=>F.symbol===p);u?(u.sessions++,u.lastTouch=a.timestamp,a.confidence!=null&&(u.confidence=(1-_)*u.confidence+_*a.confidence)):r.push({symbol:p,confidence:a.confidence??.5,sessions:1,lastTouch:a.timestamp});}}if(f.expertise=r,!o){let a=g.join(t,v,`${e}${y}`),p=l.existsSync(a)?"project":"global";S(e,f,p,t);}return {entriesProcessed:n,symbolsUpdated:c.size}}function d(t,e){let o=e?.maxLength??500,s=t;return s=s.replace(/^#{1,6}\s*(SYSTEM|IMPORTANT|OVERRIDE|INSTRUCTIONS?)\s*$/gim,""),s=s.replace(/^\s*(Ignore all previous|You are now|SYSTEM:|ASSISTANT:|USER:|\[SYSTEM\]|<\/?system>)/gim,""),s=s.trim(),s.length>o&&(s=s.slice(0,o)+"..."),s}function A(t){let e=Y(t);return e.valid?e.reason&&e.reason.includes("No integrity hash")?"missing":"valid":"invalid"}function W(t,e,o){if(!t.permissions?.paths)return {allowed:true};let{read:s,write:i,deny:n}=t.permissions.paths;if(n&&n.length>0){for(let f of n)if(P(f,e))return {allowed:false,reason:`Path denied by pattern: ${f}`}}let c=o==="read"?s:i;if(c&&c.length>0){for(let f of c)if(P(f,e))return {allowed:true};return {allowed:false,reason:`No ${o} pattern matches: ${e}`}}return {allowed:true}}function H(t,e){if(!t.permissions?.tools)return {allowed:true};let{allow:o,deny:s}=t.permissions.tools;if(s&&s.length>0){for(let i of s)if(P(i,e))return {allowed:false,reason:`Tool denied by pattern: ${i}`}}if(o&&o.length>0){for(let i of o)if(P(i,e))return {allowed:true};return {allowed:false,reason:`Tool not in allow list: ${e}`}}return {allowed:true}}function ie(t){let e=t.permissions;if(!e)return {allowedPaths:[],deniedPaths:[],allowedTools:[],deniedTools:[]};let o=e.paths?.read??[],s=e.paths?.write??[],i=[...new Set([...o,...s])],n=e.paths?.deny??[],c=e.tools?.allow??[],f=e.tools?.deny??[];return {allowedPaths:i,deniedPaths:n,allowedTools:c,deniedTools:f}}function oe(t,e){return e.type==="path"?W(t,e.path,e.mode):H(t,e.name)}function N(t){let e=JSON.stringify({id:t.id,role:t.role,permissions:t.permissions||null});return L.createHash("sha256").update(e).digest("hex")}function Y(t){return t.integrityHash?N(t)===t.integrityHash?{valid:true}:{valid:false,reason:"Integrity hash mismatch \u2014 profile may have been tampered with"}:{valid:true,reason:"No integrity hash stored (pre-4.0 profile)"}}function P(t,e){let o=t.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*");return new RegExp(`^${o}$`).test(e)}function I(t,e){let o={...t};if(e.role&&(o.role=e.role),e.description&&(o.description=e.description),e.version&&(o.version=e.version),e.personality&&(o.personality={...t.personality,...e.personality}),e.expertise){let s=new Map(t.expertise.map(i=>[i.symbol,i]));for(let i of e.expertise)s.set(i.symbol,i);o.expertise=Array.from(s.values());}if(e.transferable){let s=new Map(t.transferable.map(i=>[i.id,i]));for(let i of e.transferable)s.set(i.id,i);o.transferable=Array.from(s.values());}if(e.contexts){o.contexts={...t.contexts};for(let[s,i]of Object.entries(e.contexts))o.contexts[s]={...o.contexts[s],...i};}return o}function G(t){try{let e=g.join(t,".paradigm","config.yaml");if(l.existsSync(e)){let o=l.readFileSync(e,"utf-8"),s=h.load(o);if(s?.project&&typeof s.project=="string")return s.project}}catch{}return g.basename(t)}export{x as a,M as b,V as c,X as d,K as e,w as f,q as g,Q as h,C as i,S as j,U as k,Z as l,ee as m,te as n,ne as o,se as p,re as q,d as r,A as s,W as t,H as u,ie as v,oe as w,N as x,Y as y};
|
package/dist/chunk-HE2NA5QF.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import {a}from'./chunk-7SWEOPWF.js';import {a as a$1}from'./chunk-MBPLJKE5.js';import*as s from'fs';import*as o from'path';import*as x from'os';import*as l from'crypto';function Y(t){return t.contentType!==void 0&&a.includes(t.contentType)}function st(t,n,e){try{let r={id:l.randomUUID(),timestamp:new Date().toISOString(),agent:t,boundary:e,data_category:n.contentType,action:"blocked",destination_ring:"network-public",details:n.id},i=o.join(x.homedir(),".paradigm","events","audit-ring1.jsonl");F(i,r);}catch(r){a$1.component("#symphony-loader").warn(`Ring 1 audit write failed: ${r}`);}}var g=o.join(x.homedir(),".paradigm","score"),D=o.join(x.homedir(),".paradigm","mail"),y=o.join(g,"agents"),h=o.join(g,"threads"),S=o.join(g,"file-requests"),w=o.join(g,"trust.yaml"),Q=3600*1e3,P={users:{},defaults:{level:"restricted",autoApprove:[],neverApprove:[".env*","**/*.key","**/*.pem","**/credentials*","**/secrets/**"]}};function V(){if(s.existsSync(D)&&!s.existsSync(g))try{s.renameSync(D,g);}catch{}}function d(){V();for(let t of [y,h,S])s.existsSync(t)||s.mkdirSync(t,{recursive:true});}function p(t){return o.join(y,t)}function R(t){let n=p(t);return s.existsSync(n)||s.mkdirSync(n,{recursive:true}),n}function m(t){if(!s.existsSync(t))return [];let e=s.readFileSync(t,"utf-8").split(`
|
|
3
|
-
`).filter(i=>i.trim().length>0),r=[];for(let i of e)try{r.push(JSON.parse(i));}catch{}return r}function F(t,n){let e=o.dirname(t);s.existsSync(e)||s.mkdirSync(e,{recursive:true}),s.appendFileSync(t,JSON.stringify(n)+`
|
|
4
|
-
`,"utf-8");}function N(t){return t.toLowerCase().replace(/[^a-z0-9-]/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"").slice(0,40)||"unknown"}function J(t){try{let n=o.join(t,".paradigm","config.yaml");if(s.existsSync(n)){let r=s.readFileSync(n,"utf-8").match(/^project:\s*(.+)$/m);if(r)return N(r[1].trim().replace(/["']/g,""))}}catch{}return N(o.basename(t))}function $(t,n){return `${J(t)}/${n||"core"}`}function it(t,n,e){d();let r=$(t,n),i=R(r),a=J(t),c={id:r,name:e||`${a} (${n||"core"})`,type:"agent",project:a,role:n||"core",pid:process.pid,startedAt:new Date().toISOString(),label:e};return s.writeFileSync(o.join(i,"identity.json"),JSON.stringify(c,null,2),"utf-8"),c}function Z(t){let n=p(t);if(!s.existsSync(n))return false;try{return s.rmSync(n,{recursive:!0,force:!0}),!0}catch{return false}}function A(){if(d(),!s.existsSync(y))return [];let t=[],n=s.readdirSync(y,{withFileTypes:true}).filter(e=>e.isDirectory());for(let e of n){let r=o.join(y,e.name),i=s.readdirSync(r,{withFileTypes:true}).filter(a=>a.isDirectory());for(let a of i){let c=o.join(r,a.name,"identity.json");if(s.existsSync(c))try{let u=s.readFileSync(c,"utf-8"),f=JSON.parse(u);t.push(f);}catch{}}}return t}function ot(){let t=A(),n=0;for(let e of t)b(e.pid)||(Z(e.id),n++);return n}function at(t){let n=$(t),e=o.join(p(n),"identity.json");if(!s.existsSync(e))return null;try{return JSON.parse(s.readFileSync(e,"utf-8"))}catch{return null}}function ct(t,n){let e=o.join(p(t),"identity.json");if(s.existsSync(e))try{let r=JSON.parse(s.readFileSync(e,"utf-8"));r.lastPoll=new Date().toISOString(),n!==void 0&&(r.statusBlurb=n||void 0),s.writeFileSync(e,JSON.stringify(r,null,2),"utf-8");}catch{}}function ut(t,n=6e4){if(!t.lastPoll)return true;let e=new Date(t.lastPoll).getTime();return Date.now()-e>n}function ft(){let n=A().filter(e=>b(e.pid));try{let e=o.join(x.homedir(),".conductor","sessions");if(s.existsSync(e)){let r=s.readdirSync(e).filter(i=>i.endsWith(".json"));for(let i of r)try{let a=s.readFileSync(o.join(e,i),"utf-8"),c=JSON.parse(a),u=parseInt(o.basename(i,".json"),10);!n.some(f=>f.pid===u)&&b(u)&&n.push({id:`conductor/${u}`,name:c.label||`Session ${u}`,type:"agent",project:c.projectDir?o.basename(c.projectDir):"unknown",role:"conductor",pid:u,startedAt:c.registeredAt||new Date().toISOString()});}catch{}}}catch{}return n}function T(t){return o.join(p(t),"inbox.jsonl")}function I(t){return o.join(p(t),"outbox.jsonl")}function _(t){return o.join(p(t),"ack.json")}function E(t,n){R(t),F(T(t),n);}function lt(t,n){let e=m(T(t));if(!n){let i=z(t);if(i){let a=e.findIndex(c=>c.id===i);if(a>=0)return e.slice(a+1)}return e}let r=e.findIndex(i=>i.id===n);return r>=0?e.slice(r+1):e}function X(t,n){R(t),F(I(t),n);}function dt(t){return m(I(t))}function pt(t,n){let e=_(t);R(t),s.writeFileSync(e,JSON.stringify({lastAck:n}),"utf-8");}function z(t){let n=_(t);if(!s.existsSync(n))return null;try{return JSON.parse(s.readFileSync(n,"utf-8")).lastAck||null}catch{return null}}function gt(t){let n=z(t);if(!n)return 0;let e=T(t),r=m(e),i=r.findIndex(u=>u.id===n);if(i<0)return 0;let a=r.slice(i+1),c=r.length-a.length;return a.length===0?s.existsSync(e)&&s.writeFileSync(e,"","utf-8"):s.writeFileSync(e,a.map(u=>JSON.stringify(u)).join(`
|
|
5
|
-
`)+`
|
|
6
|
-
`,"utf-8"),c}function j(t){return o.join(h,`${t}.json`)}function yt(t,n){d();let e="thr-"+l.randomBytes(4).toString("hex"),r=new Date().toISOString(),i={id:e,topic:t,initiator:n,participants:[n],status:"active",createdAt:r,lastActivity:r,messageCount:0};return s.writeFileSync(j(e),JSON.stringify(i,null,2),"utf-8"),i}function B(t){let n=j(t);if(!s.existsSync(n))return null;try{return JSON.parse(s.readFileSync(n,"utf-8"))}catch{return null}}function ht(t){if(d(),!s.existsSync(h))return [];let n=s.readdirSync(h).filter(r=>r.endsWith(".json")),e=[];for(let r of n)try{let i=s.readFileSync(o.join(h,r),"utf-8"),a=JSON.parse(i);(!t||a.status===t)&&e.push(a);}catch{}return e.sort((r,i)=>i.lastActivity.localeCompare(r.lastActivity))}function L(t,n){let e=B(t);if(!e)return false;let r={...e,...n};return s.writeFileSync(j(t),JSON.stringify(r,null,2),"utf-8"),true}function St(t,n){return L(t,{status:"resolved",resolvedAt:new Date().toISOString(),decision:n})}function mt(t){let n=A(),e=[];for(let r of n){let i=m(T(r.id)),a=m(I(r.id));for(let c of [...i,...a])(c.threadRoot===t||c.id===t)&&!e.some(u=>u.id===c.id)&&!Y(c)&&e.push(c);}return e.sort((r,i)=>r.timestamp.localeCompare(i.timestamp))}function U(t){return {id:l.randomUUID(),parentId:t.parentId,threadRoot:t.threadRoot,timestamp:new Date().toISOString(),sender:t.sender,recipients:t.recipients,intent:t.intent,content:{text:t.text,diff:t.diff,decision:t.decision},symbols:t.symbols||[],attachments:t.attachments,metadata:t.metadata}}function G(t){d(),X(t.sender.id,t);let n=0;if(t.recipients&&t.recipients.length>0)for(let e of t.recipients)E(e.id,t),n++;else {let e=A();for(let r of e)r.id!==t.sender.id&&(E(r.id,t),n++);}if(t.threadRoot){let e=B(t.threadRoot);if(e){let i=e.participants.some(a=>a.id===t.sender.id)?e.participants:[...e.participants,t.sender];L(t.threadRoot,{participants:i,lastActivity:t.timestamp,messageCount:e.messageCount+1});}}return n}function v(t){return o.join(S,`${t}.json`)}function tt(){if(!s.existsSync(w))return P;try{let t=s.readFileSync(w,"utf-8");try{return JSON.parse(t)}catch{return P}}catch{return P}}function xt(t){d();let n="freq-"+l.randomBytes(4).toString("hex"),e={request:{requestId:n,filePath:t.filePath,reason:t.reason,requester:t.requester,urgency:t.urgency||"normal",snippet:t.snippet,threadRoot:t.threadRoot},status:"pending",createdAt:new Date().toISOString()};return s.writeFileSync(v(n),JSON.stringify(e,null,2),"utf-8"),e}function W(t){let n=v(t);if(!s.existsSync(n))return null;try{return JSON.parse(s.readFileSync(n,"utf-8"))}catch{return null}}function et(t){if(d(),!s.existsSync(S))return [];let n=s.readdirSync(S).filter(r=>r.endsWith(".json")),e=[];for(let r of n)try{let i=s.readFileSync(o.join(S,r),"utf-8"),a=JSON.parse(i);(!t||a.status===t)&&e.push(a);}catch{}return e.sort((r,i)=>i.createdAt.localeCompare(r.createdAt))}function vt(t,n,e){let r=W(t);if(!r)return {success:false,error:`File request not found: ${t}`};if(r.status!=="pending")return {success:false,error:`Request already ${r.status}`};let i=o.resolve(n,r.request.filePath);if(!i.startsWith(o.resolve(n)))return {success:false,error:"File path escapes project directory"};if(!s.existsSync(i))return {success:false,error:`File not found: ${r.request.filePath}`};try{let a=s.readFileSync(i,"utf-8"),c="utf8";if(e){let H=[/(?:api[_-]?key|secret|token|password|credential|auth)\s*[:=]/i,/(?:^|\s)(?:export\s+)?[A-Z_]+(?:KEY|SECRET|TOKEN|PASSWORD|CREDENTIAL)\s*=/,/-----BEGIN (?:RSA |EC )?PRIVATE KEY-----/];a=a.split(`
|
|
7
|
-
`).map(q=>{for(let K of H)if(K.test(q))return "[REDACTED]";return q}).join(`
|
|
8
|
-
`);}let u=l.createHash("sha256").update(a).digest("hex"),f={requestId:t,filePath:r.request.filePath,content:a,encoding:c,size:Buffer.byteLength(a),hash:u};r.status="approved",r.resolvedAt=new Date().toISOString(),r.delivery=f,s.writeFileSync(v(t),JSON.stringify(r,null,2),"utf-8");let k=U({sender:{id:"system",name:"File Transfer",type:"human"},recipients:[r.request.requester],intent:"fileDelivery",text:`File delivered: ${r.request.filePath} (${f.size} bytes, SHA-256: ${u.slice(0,12)}...)`,threadRoot:r.request.threadRoot,symbols:[]});return k.attachments=[{name:o.basename(r.request.filePath),type:"file",content:f.content,encoding:f.encoding}],G(k),{success:!0,delivery:f}}catch(a){return {success:false,error:`Failed to read file: ${a.message}`}}}function Rt(t,n){let e=W(t);if(!e||e.status!=="pending")return false;e.status="denied",e.resolvedAt=new Date().toISOString(),e.denyReason=n,s.writeFileSync(v(t),JSON.stringify(e,null,2),"utf-8");let r=U({sender:{id:"system",name:"File Transfer",type:"human"},recipients:[e.request.requester],intent:"fileDenied",text:`File request denied: ${e.request.filePath}${n?` \u2014 ${n}`:""}`,threadRoot:e.request.threadRoot,symbols:[]});return G(r),true}function C(t,n){let e=n.replace(/\./g,"\\.").replace(/\*\*/g,"{{GLOBSTAR}}").replace(/\*/g,"[^/]*").replace(/\?/g,"[^/]").replace(/\{\{GLOBSTAR\}\}/g,".*");return new RegExp(`^${e}$`).test(t)}function At(t,n,e){let r=n||tt();if(e&&r.users[e]){for(let i of r.users[e].neverApprove)if(C(t,i))return true}for(let i of r.defaults.neverApprove)if(C(t,i))return true;return false}function Tt(){let t=et("pending"),n=0;for(let e of t)Date.now()-new Date(e.createdAt).getTime()>Q&&(e.status="expired",e.resolvedAt=new Date().toISOString(),s.writeFileSync(v(e.request.requestId),JSON.stringify(e,null,2),"utf-8"),n++);return n}function b(t){try{return process.kill(t,0),!0}catch{return false}}export{vt as A,Rt as B,At as C,Tt as D,Y as a,st as b,$ as c,it as d,Z as e,A as f,ot as g,at as h,ct as i,ut as j,ft as k,E as l,lt as m,dt as n,pt as o,gt as p,yt as q,B as r,ht as s,St as t,mt as u,U as v,G as w,tt as x,xt as y,et as z};
|
package/dist/chunk-JIXHEBGK.js
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import*as A from'fs';import*as h from'js-yaml';import {z as z$1}from'zod';import*as l from'path';import {glob}from'glob';var w=z$1.object({description:z$1.string(),type:z$1.string().optional(),parent:z$1.string().optional(),anchors:z$1.array(z$1.string()).optional(),tags:z$1.array(z$1.string()).optional(),endpoints:z$1.array(z$1.string()).optional(),tests:z$1.array(z$1.string()).optional(),rules:z$1.record(z$1.unknown()).optional(),aspects:z$1.array(z$1.string()).optional(),flows:z$1.array(z$1.string()).optional(),gates:z$1.array(z$1.string()).optional(),signals:z$1.array(z$1.string()).optional(),states:z$1.array(z$1.string()).optional(),components:z$1.array(z$1.string()).optional(),location:z$1.string().optional(),locations:z$1.array(z$1.string()).optional(),uses:z$1.array(z$1.string()).optional(),"used-by":z$1.array(z$1.string()).optional(),"used-for":z$1.array(z$1.string()).optional(),exports:z$1.array(z$1.string()).optional(),status:z$1.string().optional(),properties:z$1.record(z$1.unknown()).optional(),handles:z$1.array(z$1.string()).optional()}).passthrough(),j=w.extend({id:z$1.string()}),P=z$1.object({description:z$1.string().optional(),category:z$1.string().optional(),severity:z$1.enum(["info","warn","error"]).optional(),emitters:z$1.array(z$1.string()).optional(),related:z$1.array(z$1.string()).optional(),data:z$1.record(z$1.unknown()).optional()}),E=z$1.union([P,z$1.string().transform(o=>({description:o}))]),O=z$1.object({from:z$1.string(),to:z$1.string(),type:z$1.string(),description:z$1.string().optional()}),C=z$1.union([O,z$1.string()]),F=z$1.object({component:z$1.string(),action:z$1.string(),description:z$1.string().optional()}),k=z$1.union([F,z$1.string()]),I=z$1.object({name:z$1.string(),description:z$1.string().optional(),steps:z$1.array(k)}),R=z$1.object({description:z$1.string().optional(),gates:z$1.array(z$1.string()).optional(),signals:z$1.array(z$1.string()).optional(),components:z$1.array(z$1.string()).optional(),steps:z$1.array(k).optional()}),D=z$1.object({description:z$1.string().optional(),requires:z$1.array(z$1.string()).optional(),keys:z$1.array(z$1.string()).optional(),signals:z$1.array(z$1.string()).optional()}),M=z$1.object({description:z$1.string().optional(),default:z$1.unknown().optional(),type:z$1.string().optional()}),Y=z$1.object({description:z$1.string().optional(),tags:z$1.array(z$1.string()).optional(),anchors:z$1.array(z$1.string()).optional(),"applies-to":z$1.array(z$1.string()).optional(),enforcement:z$1.string().optional()}),V=z$1.object({target:z$1.string(),type:z$1.string(),path:z$1.string()}),W=z$1.object({version:z$1.string().optional(),description:z$1.string().optional(),apiSpec:z$1.string().optional(),context:z$1.array(z$1.string()).optional(),rules:z$1.record(z$1.unknown()).optional(),features:z$1.union([z$1.array(j),z$1.record(w)]).optional(),components:z$1.union([z$1.array(j),z$1.record(w)]).optional(),gates:z$1.record(D).optional(),states:z$1.record(M).optional(),signals:z$1.record(E).optional(),aspects:z$1.record(Y).optional(),relationships:z$1.array(C).optional(),flows:z$1.union([z$1.array(I),z$1.record(R)]).optional(),references:z$1.array(V).optional()});function T(o){let e=z(o);return {data:e.data,errors:e.errors}}function z(o){let e=[],c=[],n;try{n=A.readFileSync(o,"utf8");}catch(r){let p=`Cannot read file: ${r.message}`;return e.push(p),c.push({message:p,type:"file"}),{data:null,errors:e,detailedErrors:c,rawContent:void 0,isYamlValid:false}}let a=n.replace(/^([#~!$^][\w-]+):/gm,'"$1":').replace(/^(\s*-\s+)([!#][\w-]+)$/gm,'$1"$2"'),s=null;try{s=h.load(a);}catch(r){let p=r,f=p.mark?.line?p.mark.line+1:void 0,u=`YAML syntax error: ${p.reason||r.message}`;return e.push(`${u}${f?` (line ${f})`:""}`),c.push({message:u,line:f,type:"yaml"}),{data:null,errors:e,detailedErrors:c,rawContent:n,isYamlValid:false}}if(s==null)return {data:{},errors:[],detailedErrors:[],rawContent:n,isYamlValid:true};if(typeof s=="object"&&s!==null){let r=s,p={"#":"components",$:"flows","^":"gates","!":"signals","~":"aspects"};for(let f of Object.keys(r)){let u=f[0],g=p[u];if(!g||f.length<2)continue;let b=f.slice(1),m=r[f];if(typeof m!="object"||m===null)continue;let y=r[g]||{};g in r||(r[g]=y),b in y||(y[b]=m),delete r[f];}}let i=W.safeParse(s);if(!i.success){for(let r of i.error.issues){let p=r.path.join("."),f=r.message;e.push(`Schema error at ${p||"/"}: ${f}`),c.push({message:f,path:p||"/",type:"schema"});}return {data:s,errors:e,detailedErrors:c,rawContent:n,isYamlValid:true}}return {data:i.data,errors:[],detailedErrors:[],rawContent:n,isYamlValid:true}}function L(o){return h.dump(o,{indent:2,lineWidth:-1,noRefs:true,sortKeys:false})}function H(){return L({version:"1.0.0",description:"Project purpose and context",context:["Add contextual notes for AI agents here"],features:{},components:{}})}function d(o){return o?Array.isArray(o)?o.map(e=>[e.id,e]):Object.entries(o):[]}function N(o){let e={description:"",context:[],rules:{},features:{},components:{},referencedItems:{},ruleConflicts:[]};if(!o||o.length===0)return e;o.forEach(({data:n})=>{let a=new Set(e.context);for(let r of n.context||[])a.has(r)||(e.context.push(r),a.add(r));if(n.rules)for(let[r,p]of Object.entries(n.rules))e.rules[r]!==void 0&&e.rules[r]!==p&&e.ruleConflicts.push(`Conflict on rule "${r}": existing value "${e.rules[r]}" overwritten with "${p}"`),e.rules[r]=p;let s=d(n.features);for(let[r,p]of s)e.features[r]=p;let i=d(n.components);for(let[r,p]of i)e.components[r]=p;});let c=o[o.length-1];return e.description=c.data.description||e.description,e.apiSpec=c.data.apiSpec||e.apiSpec,e}async function Z(o){let e=l.resolve(o);return (await glob("**/.purpose",{cwd:e,absolute:true,ignore:["**/node_modules/**","**/dist/**","**/.git/**"]})).sort((n,a)=>{let s=n.split(l.sep).length,i=a.split(l.sep).length;return s-i})}async function U(o){let e=await Z(o),c=[];for(let n of e){let{data:a,errors:s}=T(n);a&&(c.push({filePath:n,data:a}),s.length>0&&console.warn(`Warnings parsing ${n}:`,s));}return c}function J(o){let e=new Map;for(let{filePath:c,data:n}of o){let a=d(n.features);for(let[s,i]of a)e.set(s,{item:i,filePath:c});}return e}function Q(o){let e=new Map;for(let{filePath:c,data:n}of o){let a=d(n.components);for(let[s,i]of a)e.set(s,{item:i,filePath:c});}return e}function X(o){let e=new Map;for(let{filePath:c,data:n}of o)if(n.gates)for(let[a,s]of Object.entries(n.gates))e.set(a,{item:s,filePath:c});return e}function tt(o){let e=new Map;for(let{filePath:c,data:n}of o)if(n.states)for(let[a,s]of Object.entries(n.states))e.set(a,{item:s,filePath:c});return e}function et(o){let e=new Map;for(let{filePath:c,data:n}of o)if(n.flows)if(Array.isArray(n.flows))for(let a of n.flows)e.set(a.name,{item:{id:a.name,description:a.description,steps:a.steps},filePath:c});else for(let[a,s]of Object.entries(n.flows))e.set(a,{item:{id:a,description:s.description,gates:s.gates,signals:s.signals,components:s.components,steps:s.steps},filePath:c});return e}function ot(o){let e=new Map;for(let{filePath:c,data:n}of o)if(n.signals)for(let[a,s]of Object.entries(n.signals))e.set(a,{item:s,filePath:c});return e}function st(o){let e=new Map;for(let{filePath:c,data:n}of o)if(n.aspects)for(let[a,s]of Object.entries(n.aspects))e.set(a,{item:s,filePath:c});return e}function nt(o){let e=[],c=new Set;for(let{filePath:n,data:a}of o){let s=d(a.features);for(let[r,p]of s)v(`#${r}`,p,n,e,c);let i=d(a.components);for(let[r,p]of i)v(`#${r}`,p,n,e,c);}return e}function v(o,e,c,n,a){if(e.flows)for(let s of e.flows){let i=s.startsWith("$")?s:`$${s}`;a.has(i)||(a.add(i),n.push({symbol:i,type:"flow",sourceSymbol:o,filePath:c}));}if(e.gates)for(let s of e.gates){let i=s.startsWith("^")?s:`^${s}`;a.has(i)||(a.add(i),n.push({symbol:i,type:"gate",sourceSymbol:o,filePath:c}));}if(e.signals)for(let s of e.signals){let i=s.startsWith("!")?s:`!${s}`;a.has(i)||(a.add(i),n.push({symbol:i,type:"signal",sourceSymbol:o,filePath:c}));}if(e.states)for(let s of e.states){let i=s.startsWith("#")?s:s.startsWith("%")?`#${s.slice(1)}`:`#${s}`;a.has(i)||(a.add(i),n.push({symbol:i,type:"component",sourceSymbol:o,filePath:c}));}if(e.components)for(let s of e.components){let i=s.startsWith("#")?s:`#${s}`;a.has(i)||(a.add(i),n.push({symbol:i,type:"component",sourceSymbol:o,filePath:c}));}if(e.aspects)for(let s of e.aspects){let i=s.startsWith("~")?s:`~${s}`;a.has(i)||(a.add(i),n.push({symbol:i,type:"aspect",sourceSymbol:o,filePath:c}));}if(e.description){let s=_(e.description);for(let{symbol:i,type:r}of s)a.has(i)||(a.add(i),n.push({symbol:i,type:r,sourceSymbol:o,filePath:c}));}}var B=new Set(["$lib","$env","$app","$service-worker","$virtual","$schema","$ref","$id","$type"]);function _(o){let e=[],c=/([$^!#~%])([a-zA-Z][a-zA-Z0-9._-]*)/g,n;for(;(n=c.exec(o))!==null;){let a=n[1],s=n[2],i,r;switch(a){case "#":r="component",i=`#${s}`;break;case "$":r="flow",i=`$${s}`;break;case "^":r="gate",i=`^${s}`;break;case "!":r="signal",i=`!${s}`;break;case "~":r="aspect",i=`~${s}`;break;case "%":r="component",i=`#${s}`;break;default:continue}B.has(i)||e.push({symbol:i,type:r});}return e}function S(o){return o?Array.isArray(o)?o.map(e=>[e.id,e]):Object.entries(o):[]}function $(o){return o?Array.isArray(o)?o.map(e=>e.id):Object.keys(o):[]}function rt(o,e){let c=[],n=e?`${e}: `:"",a=S(o.features);for(let[i,r]of a)x(i,r,"feature",n,c);let s=S(o.components);for(let[i,r]of s)x(i,r,"component",n,c);if(o.relationships){let i=new Set([...$(o.features),...$(o.components)]);for(let r of o.relationships){if(typeof r=="string"||!r||!r.from||!r.to)continue;let p=r.from.replace(/^[@#$%~^!?]/,"");!i.has(p)&&!r.from.includes(".")&&c.push({type:"warning",message:`${n}Relationship references unknown source: "${r.from}"`,path:"relationships"});let f=r.to.replace(/^[@#$%~^!?]/,"");!i.has(f)&&!r.to.includes(".")&&c.push({type:"warning",message:`${n}Relationship references unknown target: "${r.to}"`,path:"relationships"});}}if(o.flows){let i=new Set($(o.components));if(Array.isArray(o.flows)){for(let r of o.flows)if(!(!r||typeof r!="object")&&(r.name||c.push({type:"error",message:`${n}Flow missing required "name" field`,path:"flows"}),r.steps&&Array.isArray(r.steps)))for(let p of r.steps){if(typeof p=="string"||!p||!p.component)continue;let f=p.component.replace(/^#/,"");i.has(f)||c.push({type:"warning",message:`${n}Flow "${r.name}" references unknown component: "${p.component}"`,path:`flows.${r.name}`});}}else for(let[r,p]of Object.entries(o.flows))if(!(!p||typeof p!="object")&&p.steps&&Array.isArray(p.steps))for(let f of p.steps){if(typeof f=="string"||!f||!f.component)continue;let u=f.component.replace(/^#/,"");i.has(u)||c.push({type:"warning",message:`${n}Flow "${r}" references unknown component: "${f.component}"`,path:`flows.${r}`});}}return {valid:c.filter(i=>i.type==="error").length===0,issues:c}}function x(o,e,c,n,a){let s=`${c}s.${o}`;if(/^[a-zA-Z][a-zA-Z0-9-]*$/.test(o)||a.push({type:"warning",message:`${n}${c} ID "${o}" should use alphanumeric characters and hyphens`,path:s}),(!e.description||e.description.trim()==="")&&a.push({type:"warning",message:`${n}${c} "${o}" has no description`,path:s}),e.endpoints)for(let i of e.endpoints)/^(GET|POST|PUT|PATCH|DELETE|HEAD|OPTIONS)\s+\//.test(i)||a.push({type:"warning",message:`${n}Endpoint "${i}" in ${c} "${o}" may not be in standard format (e.g., "GET /api/users")`,path:`${s}.endpoints`});}function at(o){if(o.valid&&o.issues.length===0)return "\u2705 Purpose file is valid";let e=[],c=o.issues.filter(a=>a.type==="error"),n=o.issues.filter(a=>a.type==="warning");if(c.length>0){e.push(`
|
|
3
|
-
\u274C ${c.length} error(s):`);for(let a of c)e.push(` \u2022 ${a.message}${a.path?` (${a.path})`:""}`);}if(n.length>0){e.push(`
|
|
4
|
-
\u26A0\uFE0F ${n.length} warning(s):`);for(let a of n)e.push(` \u2022 ${a.message}${a.path?` (${a.path})`:""}`);}return o.valid?e.push(`
|
|
5
|
-
\u2705 Purpose file is valid (with warnings)`):e.push(`
|
|
6
|
-
\u274C Purpose file is invalid`),e.join(`
|
|
7
|
-
`)}export{z as a,L as b,H as c,N as d,Z as e,U as f,J as g,Q as h,X as i,tt as j,et as k,ot as l,st as m,nt as n,rt as o,at as p};
|
package/dist/chunk-MBPLJKE5.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import {AsyncLocalStorage}from'async_hooks';var f={debug:"\x1B[90m",info:"\x1B[36m",warn:"\x1B[33m",error:"\x1B[31m"},g="\x1B[1m",c="\x1B[0m";function d(){let t=new Date,r=String(t.getHours()).padStart(2,"0"),e=String(t.getMinutes()).padStart(2,"0"),s=String(t.getSeconds()).padStart(2,"0"),o=String(t.getMilliseconds()).padStart(3,"0");return `${r}:${e}:${s}.${o}`}function y(t){return !t||Object.keys(t).length===0?"":" "+JSON.stringify(t)}function v(t,r,e,s,o,i){let n=f[t],a=t.toUpperCase().padEnd(5),h=d(),p=y(i?{correlationId:i,...o}:o);return `${n}${h}${c} ${g}${r}${c} ${n}${a}${c} ${s}${p}`}function S(t,r,e,s,o,i){let n={timestamp:new Date().toISOString(),level:t,symbol:r,symbolType:e,message:s,...o};return i&&(n.correlationId=i),JSON.stringify(n)}var w=new AsyncLocalStorage;function $(){return w.getStore()}var m={debug:0,info:1,warn:2,error:3};function L(){let t=typeof process<"u"?process.env:{},r=t.LOG_LEVEL;return r&&m[r]!==void 0?r:t.NODE_ENV==="production"?"info":"debug"}function O(){let t=typeof process<"u"?process.env:{};return t.PARADIGM_LOG_FORMAT==="json"||t.NODE_ENV==="production"?"json":"pretty"}function T(){let r=(typeof process<"u"?process.env:{}).PARADIGM_SYMBOLS;return r?r.split(",").map(e=>e.trim()).filter(Boolean):null}var D=class{constructor(t){this.emit=t,this.startTime=Date.now();}startTime;success(t,r){this.end("info",t,r);}error(t,r){this.end("error",t,r);}end(t,r,e){let s=Date.now()-this.startTime;this.emit(t,r,{...e,duration:`${s}ms`});}},l=class{constructor(t,r,e,s,o,i,n=[]){this.symbol=t,this.symbolType=r,this.minLevel=e,this.symbolFilter=s,this.format=o,this.output=i,this.transports=n;}debug(t,r){this.emit("debug",t,r);}info(t,r){this.emit("info",t,r);}warn(t,r){this.emit("warn",t,r);}error(t,r){this.emit("error",t,r);}start(t,r){return this.emit("info",t,r),new D((e,s,o)=>this.emit(e,s,o))}emit(t,r,e){if(m[t]<m[this.minLevel])return;if(this.symbolFilter){let n=this.symbol.charAt(0);if(!this.symbolFilter.includes(n))return}let s=$(),i=(this.format==="json"?S:v)(t,this.symbol,this.symbolType,r,e,s);if(this.output(i),this.transports.length>0){let n={level:t,symbol:this.symbol,symbolType:this.symbolType,message:r,data:e,correlationId:s,timestamp:new Date().toISOString()};for(let a of this.transports)a.send(n);}}},u=class{level;symbolFilter;format;output;transports;constructor(t){this.level=t?.level??L(),this.symbolFilter=t?.symbols??T(),this.format=t?.format??O(),this.output=t?.output??(r=>console.log(r)),this.transports=t?.transports??[];}addTransport(t){this.transports.push(t);}removeTransport(t){let r=this.transports.indexOf(t);r!==-1&&this.transports.splice(r,1);}component(t){return this.create(t,"component","#")}gate(t){return this.create(t,"gate","^")}signal(t){return this.create(t,"signal","!")}flow(t){return this.create(t,"flow","$")}aspect(t){return this.create(t,"aspect","~")}raw(t){return new l(t,"raw",this.level,this.symbolFilter,this.format,this.output,this.transports)}create(t,r,e){let s=t.startsWith(e)?t:`${e}${t}`;return new l(s,r,this.level,this.symbolFilter,this.format,this.output,this.transports)}};new u;var N=new u({output:t=>process.stderr.write(t+`
|
|
3
|
-
`)});export{N as a};
|