agentix-cli 0.49.0 → 0.50.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.
Files changed (46) hide show
  1. package/README.md +17 -0
  2. package/dist/{agent-J7SLJYQ6.js → agent-RY7Z3IYY.js} +2 -2
  3. package/dist/{board-dashboard-LG3ECH7C.js → board-dashboard-RUOASCSQ.js} +3 -3
  4. package/dist/board-dashboard-RUOASCSQ.js.map +1 -0
  5. package/dist/{chunk-DLKRPK5M.js → chunk-4BNQSUWV.js} +7 -2
  6. package/dist/{chunk-DLKRPK5M.js.map → chunk-4BNQSUWV.js.map} +1 -1
  7. package/dist/{chunk-DVNIFP7S.js → chunk-6VKCUMCN.js} +2 -2
  8. package/dist/{chunk-GCHUE3TN.js → chunk-7WDJW37G.js} +2 -2
  9. package/dist/{chunk-HGT4AKOH.js → chunk-BYD55JXH.js} +3 -3
  10. package/dist/{chunk-DTJKN5VT.js → chunk-EMI3VJLH.js} +2 -2
  11. package/dist/chunk-HRBKSZ34.js +2 -0
  12. package/dist/chunk-HRBKSZ34.js.map +1 -0
  13. package/dist/{chunk-3L2FKVR6.js → chunk-N2XXKFJ6.js} +2 -2
  14. package/dist/{chunk-HVQJIROJ.js → chunk-TTL37CS5.js} +4 -4
  15. package/dist/{chunk-RKAJR37K.js → chunk-TUNQFPVA.js} +2 -2
  16. package/dist/{chunk-MWUJOAAW.js → chunk-WQLBJ2O5.js} +2 -2
  17. package/dist/{chunk-FM2GGPSD.js → chunk-Y6I3BYWV.js} +5 -5
  18. package/dist/{chunk-FM2GGPSD.js.map → chunk-Y6I3BYWV.js.map} +1 -1
  19. package/dist/cli.js +1 -1
  20. package/dist/{compaction-U5SAYTX6.js → compaction-PIZINFHR.js} +2 -2
  21. package/dist/index.d.ts +1 -1
  22. package/dist/index.js +1 -1
  23. package/dist/memory-extract-OWTI6MN5.js +2 -0
  24. package/dist/processes-KUJJ7XE7.js +2 -0
  25. package/dist/{program-3CDFUJVE.js → program-KY5ZYPFN.js} +2 -2
  26. package/dist/{registry-722GXALE.js → registry-LLAFJJN4.js} +2 -2
  27. package/package.json +1 -1
  28. package/dist/board-dashboard-LG3ECH7C.js.map +0 -1
  29. package/dist/chunk-7DXE264B.js +0 -2
  30. package/dist/chunk-7DXE264B.js.map +0 -1
  31. package/dist/memory-extract-YZI2QZVR.js +0 -2
  32. package/dist/processes-XWRGOLMT.js +0 -2
  33. /package/dist/{agent-J7SLJYQ6.js.map → agent-RY7Z3IYY.js.map} +0 -0
  34. /package/dist/{chunk-DVNIFP7S.js.map → chunk-6VKCUMCN.js.map} +0 -0
  35. /package/dist/{chunk-GCHUE3TN.js.map → chunk-7WDJW37G.js.map} +0 -0
  36. /package/dist/{chunk-HGT4AKOH.js.map → chunk-BYD55JXH.js.map} +0 -0
  37. /package/dist/{chunk-DTJKN5VT.js.map → chunk-EMI3VJLH.js.map} +0 -0
  38. /package/dist/{chunk-3L2FKVR6.js.map → chunk-N2XXKFJ6.js.map} +0 -0
  39. /package/dist/{chunk-HVQJIROJ.js.map → chunk-TTL37CS5.js.map} +0 -0
  40. /package/dist/{chunk-RKAJR37K.js.map → chunk-TUNQFPVA.js.map} +0 -0
  41. /package/dist/{chunk-MWUJOAAW.js.map → chunk-WQLBJ2O5.js.map} +0 -0
  42. /package/dist/{compaction-U5SAYTX6.js.map → compaction-PIZINFHR.js.map} +0 -0
  43. /package/dist/{memory-extract-YZI2QZVR.js.map → memory-extract-OWTI6MN5.js.map} +0 -0
  44. /package/dist/{processes-XWRGOLMT.js.map → processes-KUJJ7XE7.js.map} +0 -0
  45. /package/dist/{program-3CDFUJVE.js.map → program-KY5ZYPFN.js.map} +0 -0
  46. /package/dist/{registry-722GXALE.js.map → registry-LLAFJJN4.js.map} +0 -0
@@ -1,2 +0,0 @@
1
- var r=new Set(["cli","chat-cli","exec","tui","dashboard","admin","test-drive","workflow-editor","voice","opencode","mcp","ntfy"]),a=new Set(["telegram","whatsapp","slack","discord","gitlab","github","api","a2a","mesh","subagent","compaction","cron","workflow","business","heartbeat","selftest"]);function n(e){let t=(e??"").toLowerCase().split("@")[0];return r.has(t)?"operator":a.has(t)?"internal":"external"}var s=[/\bglpat-[A-Za-z0-9_-]{16,}/,/\bgh[pousr]_[A-Za-z0-9]{30,}/,/\bgithub_pat_[A-Za-z0-9_]{20,}/,/\bsk-ant-[A-Za-z0-9_-]{16,}/,/\bsk-(proj-)?[A-Za-z0-9_-]{20,}/,/\bxox[abprs]-[A-Za-z0-9-]{10,}/,/\bAKIA[0-9A-Z]{16}\b/,/\bAIza[0-9A-Za-z_-]{35}\b/,/\b\d{8,10}:[A-Za-z0-9_-]{35}\b/,/-----BEGIN [A-Z ]*PRIVATE KEY-----/,/\beyJ[A-Za-z0-9_-]{10,}\.eyJ[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{10,}/,/\b(password|passwd|pwd|secret|api[_-]?key|access[_-]?key|token)\s*[:=]\s*["']?[^\s"',;]{8,}/i,/\b[a-z][a-z0-9+.-]*:\/\/[^\s:/@]+:[^\s:/@]{6,}@/i];function o(e){return s.some(t=>t.test(e))}function i(e){return e.source.trust??n(e.source.channel)}function c(e){return e==="external"?"held":void 0}function u(e){return e.category==="secret"||o(e.content)||e.review==="rejected"||e.review==="held"?!1:i(e)==="external"?e.review==="approved":!0}export{n as a,o as b,i as c,c as d,u as e};
2
- //# sourceMappingURL=chunk-7DXE264B.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/agents/memory-trust.ts"],"sourcesContent":["// --- What extracted memory may keep, and what it may inject ---\n//\n// Facts are extracted from conversations after every reply and injected\n// into later tasks of the same agent, in any chat. Three rules keep that\n// from becoming a leak or a persistent prompt injection:\n//\n// 1. Secrets are never stored or injected. A credential pasted into one\n// chat must not follow the agent into every other chat.\n// 2. Every fact records how far its source can be trusted, from the\n// channel it came through.\n// 3. Facts from external sources (webhooks, public widgets, anything\n// unknown) are held out of injection until someone approves them:\n// anybody can write to those channels.\n//\n// Pure functions, unit tested.\n\nexport type SourceTrust =\n /** Only the operator can reach it: CLI, dashboard, local voice and TUI. */\n | \"operator\"\n /** Authenticated people or peers: allow-listed chat senders, forge\n * project members, mesh callers. */\n | \"internal\"\n /** Anyone can write to it. */\n | \"external\"\n\nexport type FactReview = \"held\" | \"approved\" | \"rejected\"\n\nconst OPERATOR_CHANNELS = new Set([\n \"cli\", \"chat-cli\", \"exec\", \"tui\", \"dashboard\", \"admin\", \"test-drive\",\n \"workflow-editor\", \"voice\", \"opencode\", \"mcp\", \"ntfy\",\n])\n\n/** People behind an allow-list or project membership, mesh peers, and\n * this node's own automation. New extraction skips the machine channels\n * (cron, workflow, a2a) anyway; older facts from them keep working. */\nconst INTERNAL_CHANNELS = new Set([\n \"telegram\", \"whatsapp\", \"slack\", \"discord\", \"gitlab\", \"github\",\n \"api\", \"a2a\", \"mesh\", \"subagent\", \"compaction\",\n \"cron\", \"workflow\", \"business\", \"heartbeat\", \"selftest\",\n])\n\n/** Trust for a fact's source channel. Channels carry a node suffix\n * (\"telegram@peer-server\"). Anything else, including web-chat,\n * public-api, webhooks and channels added later, is external. */\nexport function trustForChannel(channel: string | undefined): SourceTrust {\n const base = (channel ?? \"\").toLowerCase().split(\"@\")[0]\n if (OPERATOR_CHANNELS.has(base)) return \"operator\"\n if (INTERNAL_CHANNELS.has(base)) return \"internal\"\n return \"external\"\n}\n\n// Shapes of credentials. Deliberately specific: each pattern is a known\n// token format or an explicit assignment, so ordinary prose about \"the\n// token\" or \"a password reset\" is not caught.\nconst SECRET_PATTERNS: RegExp[] = [\n /\\bglpat-[A-Za-z0-9_-]{16,}/, // GitLab PAT\n /\\bgh[pousr]_[A-Za-z0-9]{30,}/, // GitHub tokens\n /\\bgithub_pat_[A-Za-z0-9_]{20,}/,\n /\\bsk-ant-[A-Za-z0-9_-]{16,}/, // Anthropic\n /\\bsk-(proj-)?[A-Za-z0-9_-]{20,}/, // OpenAI-style\n /\\bxox[abprs]-[A-Za-z0-9-]{10,}/, // Slack\n /\\bAKIA[0-9A-Z]{16}\\b/, // AWS access key\n /\\bAIza[0-9A-Za-z_-]{35}\\b/, // Google API key\n /\\b\\d{8,10}:[A-Za-z0-9_-]{35}\\b/, // Telegram bot token\n /-----BEGIN [A-Z ]*PRIVATE KEY-----/,\n /\\beyJ[A-Za-z0-9_-]{10,}\\.eyJ[A-Za-z0-9_-]{10,}\\.[A-Za-z0-9_-]{10,}/, // JWT\n /\\b(password|passwd|pwd|secret|api[_-]?key|access[_-]?key|token)\\s*[:=]\\s*[\"']?[^\\s\"',;]{8,}/i,\n /\\b[a-z][a-z0-9+.-]*:\\/\\/[^\\s:/@]+:[^\\s:/@]{6,}@/i, // URL with user:password@\n]\n\nexport function containsSecret(text: string): boolean {\n return SECRET_PATTERNS.some((p) => p.test(text))\n}\n\n/** The fields of a stored fact this module reads. Older facts have no\n * trust or review; trust then comes from their source channel. */\nexport interface FactTrustFields {\n category: string\n content: string\n source: { channel: string; trust?: SourceTrust }\n review?: FactReview\n}\n\nexport function factTrust(f: FactTrustFields): SourceTrust {\n return f.source.trust ?? trustForChannel(f.source.channel)\n}\n\n/** Whether a new fact from this source waits for review before use. */\nexport function initialReview(trust: SourceTrust): FactReview | undefined {\n return trust === \"external\" ? \"held\" : undefined\n}\n\n/** Whether a stored fact may be injected into a prompt. */\nexport function isInjectable(f: FactTrustFields): boolean {\n if (f.category === \"secret\" || containsSecret(f.content)) return false\n if (f.review === \"rejected\" || f.review === \"held\") return false\n if (factTrust(f) === \"external\") return f.review === \"approved\"\n return true\n}\n"],"mappings":"AA2BA,IAAMA,EAAoB,IAAI,IAAI,CAChC,MAAO,WAAY,OAAQ,MAAO,YAAa,QAAS,aACxD,kBAAmB,QAAS,WAAY,MAAO,MACjD,CAAC,EAKKC,EAAoB,IAAI,IAAI,CAChC,WAAY,WAAY,QAAS,UAAW,SAAU,SACtD,MAAO,MAAO,OAAQ,WAAY,aAClC,OAAQ,WAAY,WAAY,YAAa,UAC/C,CAAC,EAKM,SAASC,EAAgBC,EAA0C,CACxE,IAAMC,GAAQD,GAAW,IAAI,YAAY,EAAE,MAAM,GAAG,EAAE,CAAC,EACvD,OAAIH,EAAkB,IAAII,CAAI,EAAU,WACpCH,EAAkB,IAAIG,CAAI,EAAU,WACjC,UACT,CAKA,IAAMC,EAA4B,CAChC,6BACA,+BACA,iCACA,8BACA,kCACA,iCACA,uBACA,4BACA,iCACA,qCACA,qEACA,+FACA,kDACF,EAEO,SAASC,EAAeC,EAAuB,CACpD,OAAOF,EAAgB,KAAMG,GAAMA,EAAE,KAAKD,CAAI,CAAC,CACjD,CAWO,SAASE,EAAUC,EAAiC,CACzD,OAAOA,EAAE,OAAO,OAASR,EAAgBQ,EAAE,OAAO,OAAO,CAC3D,CAGO,SAASC,EAAcC,EAA4C,CACxE,OAAOA,IAAU,WAAa,OAAS,MACzC,CAGO,SAASC,EAAaH,EAA6B,CAExD,OADIA,EAAE,WAAa,UAAYJ,EAAeI,EAAE,OAAO,GACnDA,EAAE,SAAW,YAAcA,EAAE,SAAW,OAAe,GACvDD,EAAUC,CAAC,IAAM,WAAmBA,EAAE,SAAW,WAC9C,EACT","names":["OPERATOR_CHANNELS","INTERNAL_CHANNELS","trustForChannel","channel","base","SECRET_PATTERNS","containsSecret","text","p","factTrust","f","initialReview","trust","isInjectable"]}
@@ -1,2 +0,0 @@
1
- import{b as a}from"./chunk-DVNIFP7S.js";import"./chunk-7DXE264B.js";import"./chunk-FIOB3MEX.js";export{a as extractMemories};
2
- //# sourceMappingURL=memory-extract-YZI2QZVR.js.map
@@ -1,2 +0,0 @@
1
- import{a}from"./chunk-GCHUE3TN.js";import"./chunk-DLKRPK5M.js";import"./chunk-LQRBGQIR.js";import"./chunk-FIOB3MEX.js";export{a as renderProcessesPage};
2
- //# sourceMappingURL=processes-XWRGOLMT.js.map