@agenticmail/enterprise 0.5.319 → 0.5.321
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/CHANGELOG.md +68 -0
- package/CODE_OF_CONDUCT.md +31 -0
- package/README.md +118 -38
- package/SECURITY.md +42 -0
- package/dist/agent-heartbeat-3FWNHZFX.js +510 -0
- package/dist/agent-heartbeat-4RWHZR7H.js +510 -0
- package/dist/agent-heartbeat-6ZGB5ILY.js +510 -0
- package/dist/agent-heartbeat-BIVHLKFM.js +510 -0
- package/dist/agent-heartbeat-HRKVFK2T.js +510 -0
- package/dist/agent-heartbeat-JC5GWVXD.js +510 -0
- package/dist/agent-heartbeat-K6A4HMHB.js +510 -0
- package/dist/agent-heartbeat-LCDXWFVB.js +510 -0
- package/dist/agent-heartbeat-P7HZCZAQ.js +510 -0
- package/dist/agent-heartbeat-PUIRSNIO.js +510 -0
- package/dist/agent-heartbeat-SN5ILQ6Y.js +510 -0
- package/dist/agent-heartbeat-TW5YTDYC.js +510 -0
- package/dist/agent-heartbeat-Z2QQXROL.js +510 -0
- package/dist/agent-notify-OEQBCZLN.js +43 -0
- package/dist/{agent-tools-263HM5QU.js → agent-tools-3W7XLUYA.js} +1 -1
- package/dist/agent-tools-4QK7LLNP.js +9 -0
- package/dist/agent-tools-54VZGT6L.js +9 -0
- package/dist/{agent-tools-AT4D276V.js → agent-tools-AYYDPO27.js} +7 -7
- package/dist/{agent-tools-MSTAPX2I.js → agent-tools-F2X47FKF.js} +7 -7
- package/dist/{agent-tools-FA26SY5O.js → agent-tools-O6W3QAZL.js} +11 -6
- package/dist/agent-tools-OAWVZBMW.js +9 -0
- package/dist/agent-tools-QCCU74PN.js +13949 -0
- package/dist/chunk-2LHUARN6.js +4929 -0
- package/dist/chunk-2WVCNCYC.js +5087 -0
- package/dist/{chunk-6PWDS7KY.js → chunk-3FM6YQUK.js} +20 -20
- package/dist/chunk-3UAFHUEC.js +212 -0
- package/dist/{chunk-WJO57PMO.js → chunk-46GOWZT4.js} +20 -20
- package/dist/{chunk-BNRE7TSX.js → chunk-5KYJAUZV.js} +3 -3
- package/dist/chunk-6C5PKREN.js +467 -0
- package/dist/{chunk-447MTPZF.js → chunk-6ZMLNEHB.js} +3 -3
- package/dist/chunk-BPZQT5N5.js +25652 -0
- package/dist/chunk-BQM7MBPS.js +1380 -0
- package/dist/{chunk-ZRFKGPIU.js → chunk-C52OQNNY.js} +20 -20
- package/dist/chunk-C7HGQF4Y.js +25652 -0
- package/dist/chunk-CAHNZGGK.js +25656 -0
- package/dist/{chunk-FL3CH3ET.js → chunk-CK7R6UHE.js} +51 -27
- package/dist/chunk-D36RPWB7.js +25652 -0
- package/dist/{chunk-36NM2B4C.js → chunk-DJK2UPFH.js} +63 -93
- package/dist/chunk-DM7FTF7W.js +4929 -0
- package/dist/chunk-DMD24UFZ.js +5101 -0
- package/dist/{chunk-36XNMIHA.js → chunk-DXZGPUAF.js} +20 -20
- package/dist/chunk-F46WB5IL.js +5087 -0
- package/dist/chunk-F5QG5SQH.js +5087 -0
- package/dist/{chunk-JGEVQZDR.js → chunk-FLQ5FLHW.js} +13 -16
- package/dist/chunk-H7GP733U.js +5087 -0
- package/dist/{chunk-OZSQLOV6.js → chunk-HHBXWB5U.js} +415 -19
- package/dist/{chunk-D24JY75H.js → chunk-IMXS4N6W.js} +3 -3
- package/dist/{chunk-6PVBV6ZP.js → chunk-JNMDD7JY.js} +3 -3
- package/dist/chunk-JTV5LA47.js +1519 -0
- package/dist/chunk-KV6G7NZX.js +1519 -0
- package/dist/chunk-MU5MEBIK.js +1519 -0
- package/dist/chunk-NLT5MC7X.js +465 -0
- package/dist/{chunk-GTFZZUXX.js → chunk-NVLYIM4J.js} +51 -27
- package/dist/{chunk-6G5SXLXC.js → chunk-NZY2BIZH.js} +63 -93
- package/dist/chunk-O42L6G67.js +1519 -0
- package/dist/chunk-OCNERGGM.js +4891 -0
- package/dist/chunk-OJSNHONE.js +1519 -0
- package/dist/{chunk-2TAZJWJN.js → chunk-OWL3QVH7.js} +18 -0
- package/dist/{chunk-P3HVY2HS.js → chunk-OWTLNV4Q.js} +382 -7
- package/dist/chunk-PCNYEP6T.js +4891 -0
- package/dist/{chunk-YL3Z5KPR.js → chunk-PI4AQ4Z6.js} +438 -15
- package/dist/chunk-PN3EGTCA.js +194 -0
- package/dist/chunk-Q37UKNRC.js +1519 -0
- package/dist/chunk-QXTC6J7H.js +5087 -0
- package/dist/{chunk-SPBQVNDI.js → chunk-RKERL5LZ.js} +25 -21
- package/dist/chunk-RVBK2IOX.js +25652 -0
- package/dist/chunk-SAKODCZ5.js +4891 -0
- package/dist/{chunk-XV4TU65E.js → chunk-SALGFC5L.js} +51 -27
- package/dist/chunk-STGWZ2MS.js +1519 -0
- package/dist/chunk-UY3ZVQDP.js +25652 -0
- package/dist/chunk-V6OSD62M.js +5087 -0
- package/dist/chunk-VP6YAHX4.js +1519 -0
- package/dist/chunk-WDYJOEAI.js +5087 -0
- package/dist/chunk-WEAFQNOS.js +195 -0
- package/dist/chunk-XKUSAZGP.js +5087 -0
- package/dist/chunk-Z6K5FKAB.js +548 -0
- package/dist/chunk-ZGE3XAXY.js +1519 -0
- package/dist/chunk-ZGYVXYQQ.js +3296 -0
- package/dist/cli-agent-7TB2BWS6.js +2370 -0
- package/dist/cli-agent-AKXFFST2.js +2370 -0
- package/dist/cli-agent-DZTKLITB.js +2357 -0
- package/dist/cli-agent-FOF7PFEP.js +2357 -0
- package/dist/cli-agent-H74M2ZYN.js +2357 -0
- package/dist/cli-agent-HORWVPHB.js +2370 -0
- package/dist/cli-agent-HSZT6SKF.js +2423 -0
- package/dist/cli-agent-JLUQ4ZU6.js +2424 -0
- package/dist/cli-agent-MVCDH4HV.js +2370 -0
- package/dist/cli-agent-NZXOEPJ2.js +2357 -0
- package/dist/cli-agent-PADN3QRC.js +2357 -0
- package/dist/cli-agent-QAYEX3BE.js +2441 -0
- package/dist/cli-agent-QT64DT5J.js +2370 -0
- package/dist/cli-agent-TFL2M6UK.js +2424 -0
- package/dist/cli-agent-UIKXATTD.js +2357 -0
- package/dist/cli-agent-UJN6FYTO.js +2370 -0
- package/dist/cli-agent-VIQAYVY4.js +2357 -0
- package/dist/cli-agent-WNWFVOFM.js +2370 -0
- package/dist/cli-agent-XBQX67VJ.js +2423 -0
- package/dist/cli-agent-ZLSC6FF4.js +2357 -0
- package/dist/cli-serve-2IL5DTEY.js +153 -0
- package/dist/cli-serve-47N5UKKW.js +153 -0
- package/dist/cli-serve-4XGZFUV2.js +140 -0
- package/dist/cli-serve-6OT3UEAN.js +140 -0
- package/dist/cli-serve-7L6EY5UH.js +153 -0
- package/dist/cli-serve-BDGOOOKQ.js +260 -0
- package/dist/cli-serve-BFNIW2LF.js +153 -0
- package/dist/cli-serve-C7MN6U5Q.js +153 -0
- package/dist/cli-serve-CR3OY3IM.js +153 -0
- package/dist/cli-serve-DAJFRWQ7.js +153 -0
- package/dist/cli-serve-FW6FHFW4.js +153 -0
- package/dist/cli-serve-GEEOQS77.js +153 -0
- package/dist/cli-serve-H562I3ZK.js +153 -0
- package/dist/cli-serve-HDQZF4C4.js +153 -0
- package/dist/cli-serve-LICAOMEB.js +140 -0
- package/dist/cli-serve-LLGYLWFS.js +153 -0
- package/dist/cli-serve-N3OISDNB.js +153 -0
- package/dist/cli-serve-TIZ27EVR.js +153 -0
- package/dist/cli-serve-TUNI2RCN.js +153 -0
- package/dist/cli-serve-WNOZMAWD.js +153 -0
- package/dist/cli-validate-Z726VJCN.js +150 -0
- package/dist/cli.js +4 -4
- package/dist/connection-manager-KAWEUWUR.js +9 -0
- package/dist/dashboard/app.js +9 -3
- package/dist/dashboard/components/knowledge-link.js +15 -0
- package/dist/dashboard/components/settings-help.js +4 -2
- package/dist/dashboard/docs/agent-deployment.html +33 -1
- package/dist/dashboard/docs/settings-network.html +321 -0
- package/dist/dashboard/docs/settings-security.html +347 -0
- package/dist/dashboard/docs/settings-tool-security.html +176 -0
- package/dist/dashboard/docs/settings.html +36 -16
- package/dist/dashboard/pages/agent-detail/deployment.js +39 -6
- package/dist/dashboard/pages/agent-detail/tools.js +10 -0
- package/dist/dashboard/pages/database-access.js +4 -3
- package/dist/dashboard/pages/settings.js +174 -37
- package/dist/dashboard/pages/task-pipeline.js +400 -843
- package/dist/db-adapter-2T56ORSD.js +7 -0
- package/dist/db-adapter-IRHOUMVC.js +7 -0
- package/dist/index.js +41 -41
- package/dist/microsoft-VREAZ7M2.js +3955 -0
- package/dist/routes-3MMLQTB6.js +90 -0
- package/dist/routes-4ZUIJ4HE.js +90 -0
- package/dist/routes-5MXHKKH4.js +90 -0
- package/dist/routes-64NJFK3B.js +90 -0
- package/dist/routes-6AKQ2LBV.js +90 -0
- package/dist/routes-CRRBUDO4.js +90 -0
- package/dist/routes-DIAF3MC3.js +90 -0
- package/dist/routes-KMUNU6CY.js +90 -0
- package/dist/routes-LRRLXIZR.js +90 -0
- package/dist/routes-N647AJYG.js +90 -0
- package/dist/routes-SSSELAAR.js +90 -0
- package/dist/routes-STERVGKJ.js +90 -0
- package/dist/routes-ZEZZACZP.js +90 -0
- package/dist/runtime-5EQN4GFM.js +45 -0
- package/dist/runtime-5LP7PUD4.js +45 -0
- package/dist/runtime-6BULDBR3.js +45 -0
- package/dist/runtime-6YEENDN3.js +45 -0
- package/dist/runtime-7LQFRG3B.js +45 -0
- package/dist/runtime-AMXJU2MB.js +45 -0
- package/dist/runtime-D6WSE7FG.js +45 -0
- package/dist/runtime-EYVN7NFJ.js +45 -0
- package/dist/runtime-F6RPWQVW.js +45 -0
- package/dist/runtime-FYMJURFC.js +45 -0
- package/dist/runtime-JRNBL4O4.js +45 -0
- package/dist/runtime-OM2NIBMI.js +45 -0
- package/dist/runtime-QWPVD7CY.js +45 -0
- package/dist/runtime-YLIIPTE4.js +45 -0
- package/dist/runtime-YU6P22CG.js +45 -0
- package/dist/screen-unlock-4RPZBHOI.js +118 -0
- package/dist/server-AMCSXINC.js +28 -0
- package/dist/server-CU6LVQS4.js +28 -0
- package/dist/server-DFYGH2CV.js +28 -0
- package/dist/server-EELWOC3X.js +28 -0
- package/dist/server-EN5E2OWQ.js +28 -0
- package/dist/server-GW2HYJYI.js +28 -0
- package/dist/server-J25NCRWJ.js +28 -0
- package/dist/server-JDGNOTFV.js +28 -0
- package/dist/server-NE5HD5DJ.js +28 -0
- package/dist/server-NQOT7W77.js +28 -0
- package/dist/server-PWE5PQTR.js +28 -0
- package/dist/server-Q2Q32H2B.js +28 -0
- package/dist/server-Q77ME7TL.js +28 -0
- package/dist/server-WLLH4WST.js +28 -0
- package/dist/server-WTUJ2O3F.js +28 -0
- package/dist/server-X4CJTHHF.js +28 -0
- package/dist/server-XK3ILCJC.js +28 -0
- package/dist/server-ZRD3NDJE.js +28 -0
- package/dist/setup-44VBAO4J.js +20 -0
- package/dist/setup-4ONNQBWB.js +20 -0
- package/dist/setup-4OSBXSCL.js +20 -0
- package/dist/setup-4QFGRBLZ.js +20 -0
- package/dist/setup-6766SGAR.js +20 -0
- package/dist/setup-AYY24DKM.js +20 -0
- package/dist/setup-B34N4HPU.js +20 -0
- package/dist/setup-E2YLC2EY.js +20 -0
- package/dist/setup-ER6NXTY5.js +20 -0
- package/dist/setup-H2AGCBW5.js +20 -0
- package/dist/setup-ICOZRKCX.js +20 -0
- package/dist/setup-JFTJH7UF.js +20 -0
- package/dist/setup-PRFNI6YW.js +20 -0
- package/dist/setup-RAHBMYHE.js +20 -0
- package/dist/setup-TXPR5UQX.js +20 -0
- package/dist/setup-XCJMELVU.js +20 -0
- package/dist/setup-XIYEIFVK.js +20 -0
- package/dist/setup-Z4PZSHBI.js +20 -0
- package/dist/skills-FR7I5V7H.js +16 -0
- package/dist/skills-HCVBA6PK.js +16 -0
- package/dist/system-prompts-TM7OA32C.js +913 -0
- package/dist/task-queue-O7IVZYUO.js +9 -0
- package/dist/transport-encryption-2T7PIXKG.js +25 -0
- package/logs/cloudflared-error.log +61 -0
- package/logs/cloudflared-out.log +0 -0
- package/logs/enterprise-error.log +0 -0
- package/logs/enterprise-out.log +3 -0
- package/logs/fola-error.log +0 -0
- package/logs/fola-out.log +0 -0
- package/logs/john-error.log +8 -0
- package/logs/john-out.log +0 -0
- package/package.json +31 -3
- package/src/agent-tools/tool-resolver.ts +50 -61
- package/src/agent-tools/tools/enterprise-database.ts +5 -5
- package/src/agent-tools/tools/local/dependency-manager.ts +2 -2
- package/src/agent-tools/tools/microsoft/graph-api.ts +137 -26
- package/src/agent-tools/tools/microsoft/outlook-mail.ts +392 -100
- package/src/agent-tools/tools/microsoft/teams.ts +267 -48
- package/src/auth/routes.ts +4 -4
- package/src/cli-agent.ts +108 -8
- package/src/cli-serve.ts +140 -0
- package/src/dashboard/app.js +9 -3
- package/src/dashboard/components/knowledge-link.js +15 -0
- package/src/dashboard/components/settings-help.js +4 -2
- package/src/dashboard/docs/agent-deployment.html +33 -1
- package/src/dashboard/docs/settings-network.html +321 -0
- package/src/dashboard/docs/settings-security.html +347 -0
- package/src/dashboard/docs/settings-tool-security.html +176 -0
- package/src/dashboard/docs/settings.html +36 -16
- package/src/dashboard/pages/agent-detail/deployment.js +39 -6
- package/src/dashboard/pages/agent-detail/tools.js +10 -0
- package/src/dashboard/pages/database-access.js +4 -3
- package/src/dashboard/pages/settings.js +174 -37
- package/src/dashboard/pages/task-pipeline.js +400 -843
- package/src/database-access/agent-tools.ts +78 -63
- package/src/database-access/connection-manager.ts +13 -2
- package/src/database-access/routes.ts +13 -1
- package/src/db/adapter.ts +1 -0
- package/src/engine/agent-memory.ts +2 -1
- package/src/engine/agent-notify.ts +50 -0
- package/src/engine/agent-routes.ts +257 -4
- package/src/engine/db-adapter.ts +16 -0
- package/src/engine/lifecycle.ts +4 -0
- package/src/engine/routes.ts +4 -3
- package/src/engine/screen-unlock.ts +136 -0
- package/src/engine/skills/database-access.ts +78 -0
- package/src/engine/skills/index.ts +3 -2
- package/src/engine/skills.ts +2 -0
- package/src/engine/task-queue-routes.ts +18 -0
- package/src/engine/task-queue.ts +15 -2
- package/src/middleware/transport-encryption.ts +1 -4
- package/src/runtime/agent-loop.ts +4 -0
- package/src/runtime/index.ts +15 -6
- package/src/server.ts +14 -1
- package/src/system-prompts/google/index.ts +1 -2
- package/src/system-prompts/index.ts +1 -1
- package/src/system-prompts/microsoft/contacts.ts +34 -0
- package/src/system-prompts/microsoft/excel.ts +52 -0
- package/src/system-prompts/microsoft/index.ts +31 -0
- package/src/system-prompts/microsoft/onedrive.ts +41 -0
- package/src/system-prompts/microsoft/onenote.ts +36 -0
- package/src/system-prompts/microsoft/outlook-calendar.ts +37 -0
- package/src/system-prompts/microsoft/outlook-mail.ts +46 -0
- package/src/system-prompts/microsoft/planner.ts +37 -0
- package/src/system-prompts/microsoft/powerbi.ts +38 -0
- package/src/system-prompts/microsoft/powerpoint.ts +35 -0
- package/src/system-prompts/microsoft/sharepoint.ts +44 -0
- package/src/system-prompts/microsoft/teams.ts +49 -0
- package/src/system-prompts/microsoft/todo.ts +37 -0
- package/src/types/hono-env.ts +4 -0
- package/.github/CODEOWNERS +0 -23
- package/.github/workflows/publish-community-skills.yml +0 -121
- package/.github/workflows/validate-community-skills.yml +0 -172
- package/agriculture_southwest_nigeria_research.txt +0 -10
- package/boa_credit_cards_research.txt +0 -10
- package/customer_support_research_feb2026.txt +0 -10
- package/dist/agent-tools-LRA7PPXG.js +0 -13922
- package/dist/agent-tools-VAU5DOQB.js +0 -13910
- package/dist/agent-tools-VWV7OWXU.js +0 -13922
- package/dist/chunk-2Z7MWTCX.js +0 -4977
- package/dist/chunk-3T4XU3VV.js +0 -5010
- package/dist/chunk-445QM4NX.js +0 -5061
- package/dist/chunk-5TW3Y7DJ.js +0 -1519
- package/dist/chunk-6I7VY3LT.js +0 -5060
- package/dist/chunk-6W5EK3UP.js +0 -4977
- package/dist/chunk-AQMSHJQT.js +0 -5069
- package/dist/chunk-ASSQW7HX.js +0 -5051
- package/dist/chunk-CIN27FGC.js +0 -5037
- package/dist/chunk-CMXY3NUB.js +0 -4977
- package/dist/chunk-DRLMRUDP.js +0 -5052
- package/dist/chunk-EHI7Z446.js +0 -1519
- package/dist/chunk-FEAILFAQ.js +0 -1519
- package/dist/chunk-GA3PYBZL.js +0 -1519
- package/dist/chunk-GWX63G5J.js +0 -1519
- package/dist/chunk-HHMZ4UY6.js +0 -1519
- package/dist/chunk-HVQMNF7E.js +0 -4921
- package/dist/chunk-HXM7F3YN.js +0 -1519
- package/dist/chunk-K6NGOUXG.js +0 -5060
- package/dist/chunk-KPG5WINJ.js +0 -4977
- package/dist/chunk-LBCUBYDL.js +0 -1519
- package/dist/chunk-LIRQSWLR.js +0 -5014
- package/dist/chunk-LRCKO5KE.js +0 -1519
- package/dist/chunk-M7XL3DJD.js +0 -5069
- package/dist/chunk-MHJULEIQ.js +0 -1519
- package/dist/chunk-MJGGW6MC.js +0 -106
- package/dist/chunk-MMYBDHDB.js +0 -4921
- package/dist/chunk-MQT5FXKD.js +0 -1519
- package/dist/chunk-OIMPEQF5.js +0 -4977
- package/dist/chunk-OOU7JUYE.js +0 -542
- package/dist/chunk-OW4GLBHP.js +0 -1519
- package/dist/chunk-Q4K4MMLU.js +0 -4977
- package/dist/chunk-RUK4CRPF.js +0 -1519
- package/dist/chunk-T7H65XQY.js +0 -1519
- package/dist/chunk-TQVFWG57.js +0 -5064
- package/dist/chunk-UEPK3IMC.js +0 -1519
- package/dist/chunk-VUWTXJH6.js +0 -1519
- package/dist/chunk-WCPGGSAD.js +0 -1519
- package/dist/chunk-WO63NZOJ.js +0 -1519
- package/dist/chunk-YPJDRVUM.js +0 -5064
- package/dist/chunk-ZROMH5DL.js +0 -4921
- package/src/dashboard/docs/_template.txt +0 -92
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Microsoft Teams — system prompt for Teams messaging and collaboration.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import { buildScheduleBlock, type PromptContext } from '../index.js';
|
|
6
|
+
import { buildTrustBlock, NO_AI_DISCLOSURE } from '../shared-blocks.js';
|
|
7
|
+
|
|
8
|
+
export interface TeamsContext extends PromptContext {
|
|
9
|
+
senderName: string;
|
|
10
|
+
senderEmail: string;
|
|
11
|
+
teamName?: string;
|
|
12
|
+
channelName?: string;
|
|
13
|
+
chatId?: string;
|
|
14
|
+
isGroupChat: boolean;
|
|
15
|
+
trustLevel: 'manager' | 'colleague' | 'external';
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export function buildTeamsPrompt(ctx: TeamsContext): string {
|
|
19
|
+
return `You are ${ctx.agent.name}${ctx.agent.role ? `, a ${ctx.agent.role}` : ''}.
|
|
20
|
+
${NO_AI_DISCLOSURE}
|
|
21
|
+
${buildScheduleBlock(ctx.schedule)}
|
|
22
|
+
|
|
23
|
+
## Context (Microsoft Teams)
|
|
24
|
+
- From: ${ctx.senderName} (${ctx.senderEmail}) — Trust: ${ctx.trustLevel}
|
|
25
|
+
${ctx.teamName ? `- Team: ${ctx.teamName}` : ''}
|
|
26
|
+
${ctx.channelName ? `- Channel: ${ctx.channelName}` : ''}
|
|
27
|
+
${ctx.chatId ? `- Chat ID: ${ctx.chatId}` : ''}
|
|
28
|
+
- Type: ${ctx.isGroupChat ? 'Group chat' : 'Direct message'}
|
|
29
|
+
|
|
30
|
+
## How to Respond
|
|
31
|
+
${ctx.chatId
|
|
32
|
+
? `Reply via teams_send_chat(chatId: "${ctx.chatId}", content: "...")`
|
|
33
|
+
: ctx.teamName && ctx.channelName
|
|
34
|
+
? `Reply via teams_send_channel_message(teamId: "...", channelId: "...", content: "...")`
|
|
35
|
+
: 'Use the appropriate Teams tool to respond.'
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
## Available Actions
|
|
39
|
+
- teams_send_chat / teams_send_channel_message — send messages
|
|
40
|
+
- teams_reply_to_message — reply in threads
|
|
41
|
+
- teams_share_file — share files to channels
|
|
42
|
+
- teams_set_status — update your presence/status message
|
|
43
|
+
- teams_list_members — see who's in a team
|
|
44
|
+
- teams_add_member — add someone to a team
|
|
45
|
+
|
|
46
|
+
Keep responses short and conversational. No markdown formatting.
|
|
47
|
+
${buildTrustBlock(ctx.trustLevel)}
|
|
48
|
+
`;
|
|
49
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Microsoft To Do — system prompt for personal task management.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import { buildScheduleBlock, type PromptContext } from '../index.js';
|
|
6
|
+
import { NO_AI_DISCLOSURE } from '../shared-blocks.js';
|
|
7
|
+
|
|
8
|
+
export interface TodoContext extends PromptContext {
|
|
9
|
+
action: 'list' | 'create' | 'update' | 'complete';
|
|
10
|
+
details?: string;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export function buildTodoPrompt(ctx: TodoContext): string {
|
|
14
|
+
return `You are ${ctx.agent.name}${ctx.agent.role ? `, a ${ctx.agent.role}` : ''}.
|
|
15
|
+
${NO_AI_DISCLOSURE}
|
|
16
|
+
${buildScheduleBlock(ctx.schedule)}
|
|
17
|
+
|
|
18
|
+
## To Do Task
|
|
19
|
+
Action: ${ctx.action}
|
|
20
|
+
${ctx.details ? `Details: ${ctx.details}` : ''}
|
|
21
|
+
|
|
22
|
+
## Available Tools
|
|
23
|
+
- todo_list_lists — list all task lists
|
|
24
|
+
- todo_list_tasks — list tasks in a list (filter: all/active/completed)
|
|
25
|
+
- todo_create_task — create a task with title, body, due date, importance, reminder
|
|
26
|
+
- todo_update_task — update task details or mark complete
|
|
27
|
+
- todo_delete_task — remove a task
|
|
28
|
+
- todo_create_list — create a new task list
|
|
29
|
+
|
|
30
|
+
## Guidelines
|
|
31
|
+
- "Tasks" is the default list
|
|
32
|
+
- Due dates use ISO 8601 date format (YYYY-MM-DD)
|
|
33
|
+
- Importance levels: low, normal, high
|
|
34
|
+
- Reminder uses ISO 8601 datetime
|
|
35
|
+
- To complete a task: todo_update_task with status: "completed"
|
|
36
|
+
`;
|
|
37
|
+
}
|
package/src/types/hono-env.ts
CHANGED
package/.github/CODEOWNERS
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
# ─── AgenticMail Enterprise Code Owners ───────────────
|
|
2
|
-
#
|
|
3
|
-
# These owners are automatically requested for review
|
|
4
|
-
# when a PR touches matching paths.
|
|
5
|
-
#
|
|
6
|
-
# IMPORTANT: Enable "Require review from Code Owners" in
|
|
7
|
-
# GitHub repo Settings → Branches → Branch protection rules
|
|
8
|
-
# for the `main` branch to enforce this.
|
|
9
|
-
|
|
10
|
-
# Core engine — requires core team review
|
|
11
|
-
src/engine/ @agenticmail/core-team
|
|
12
|
-
src/server.ts @agenticmail/core-team
|
|
13
|
-
src/auth/ @agenticmail/core-team
|
|
14
|
-
src/admin/ @agenticmail/core-team
|
|
15
|
-
|
|
16
|
-
# Community skills — ALL submissions require maintainer review
|
|
17
|
-
# No community skill can be merged without explicit approval
|
|
18
|
-
community-skills/ @agenticmail/skill-reviewers
|
|
19
|
-
|
|
20
|
-
# CI/CD and repo config — requires admin review
|
|
21
|
-
.github/ @agenticmail/core-team
|
|
22
|
-
CLAUDE.md @agenticmail/core-team
|
|
23
|
-
package.json @agenticmail/core-team
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
name: Publish Community Skills
|
|
2
|
-
|
|
3
|
-
# IMPORTANT: This workflow only runs AFTER code is merged into main.
|
|
4
|
-
# It does NOT auto-approve or auto-merge PRs.
|
|
5
|
-
# All community skill PRs must be reviewed and approved by a maintainer
|
|
6
|
-
# (enforced by CODEOWNERS + branch protection rules) before this runs.
|
|
7
|
-
#
|
|
8
|
-
# After a maintainer-approved merge:
|
|
9
|
-
# 1. Rebuilds community-skills/index.json (the registry index deployed instances fetch)
|
|
10
|
-
# 2. Optionally pushes each skill to a live registry API
|
|
11
|
-
|
|
12
|
-
on:
|
|
13
|
-
push:
|
|
14
|
-
branches: [main]
|
|
15
|
-
paths:
|
|
16
|
-
- 'community-skills/**'
|
|
17
|
-
|
|
18
|
-
permissions:
|
|
19
|
-
contents: write
|
|
20
|
-
|
|
21
|
-
jobs:
|
|
22
|
-
publish:
|
|
23
|
-
runs-on: ubuntu-latest
|
|
24
|
-
steps:
|
|
25
|
-
- uses: actions/checkout@v4
|
|
26
|
-
with:
|
|
27
|
-
fetch-depth: 2
|
|
28
|
-
|
|
29
|
-
- uses: actions/setup-node@v4
|
|
30
|
-
with:
|
|
31
|
-
node-version: '20'
|
|
32
|
-
|
|
33
|
-
# ── Generate index.json ─────────────────────────
|
|
34
|
-
# This is the file that deployed instances fetch to discover new skills.
|
|
35
|
-
# Every community-skills/<id>/agenticmail-skill.json gets listed here.
|
|
36
|
-
|
|
37
|
-
- name: Generate community-skills/index.json
|
|
38
|
-
run: |
|
|
39
|
-
node -e "
|
|
40
|
-
const fs = require('fs');
|
|
41
|
-
const path = require('path');
|
|
42
|
-
const dir = 'community-skills';
|
|
43
|
-
const skills = [];
|
|
44
|
-
|
|
45
|
-
for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
|
|
46
|
-
if (!entry.isDirectory() || entry.name.startsWith('_') || entry.name.startsWith('.')) continue;
|
|
47
|
-
const manifestPath = path.join(dir, entry.name, 'agenticmail-skill.json');
|
|
48
|
-
try {
|
|
49
|
-
const manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf-8'));
|
|
50
|
-
skills.push({
|
|
51
|
-
id: manifest.id,
|
|
52
|
-
name: manifest.name,
|
|
53
|
-
version: manifest.version,
|
|
54
|
-
author: manifest.author,
|
|
55
|
-
category: manifest.category,
|
|
56
|
-
risk: manifest.risk,
|
|
57
|
-
description: manifest.description,
|
|
58
|
-
});
|
|
59
|
-
} catch (err) {
|
|
60
|
-
console.error('Skipping ' + entry.name + ': ' + err.message);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
const index = {
|
|
65
|
-
generatedAt: new Date().toISOString(),
|
|
66
|
-
count: skills.length,
|
|
67
|
-
skills,
|
|
68
|
-
};
|
|
69
|
-
|
|
70
|
-
fs.writeFileSync(path.join(dir, 'index.json'), JSON.stringify(index, null, 2) + '\n');
|
|
71
|
-
console.log('Generated index.json with ' + skills.length + ' skills');
|
|
72
|
-
"
|
|
73
|
-
|
|
74
|
-
- name: Commit index.json
|
|
75
|
-
run: |
|
|
76
|
-
git config user.name "github-actions[bot]"
|
|
77
|
-
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
|
|
78
|
-
git add community-skills/index.json
|
|
79
|
-
git diff --cached --quiet && echo "No changes to index.json" && exit 0
|
|
80
|
-
git commit -m "chore: update community-skills index [skip ci]"
|
|
81
|
-
git push
|
|
82
|
-
|
|
83
|
-
# ── Publish to live registry (optional) ─────────
|
|
84
|
-
# If ENTERPRISE_REGISTRY_URL is configured, also push directly to a live server.
|
|
85
|
-
|
|
86
|
-
- name: Find changed skill directories
|
|
87
|
-
id: changed
|
|
88
|
-
run: |
|
|
89
|
-
CHANGED=$(git diff --name-only HEAD~1 HEAD -- community-skills/ || true)
|
|
90
|
-
DIRS=$(echo "$CHANGED" | grep -oP 'community-skills/[^/]+' | sort -u | grep -v '_template' || true)
|
|
91
|
-
echo "dirs<<EOF" >> $GITHUB_OUTPUT
|
|
92
|
-
echo "$DIRS" >> $GITHUB_OUTPUT
|
|
93
|
-
echo "EOF" >> $GITHUB_OUTPUT
|
|
94
|
-
COUNT=$(echo "$DIRS" | grep -c '.' || echo "0")
|
|
95
|
-
echo "count=$COUNT" >> $GITHUB_OUTPUT
|
|
96
|
-
|
|
97
|
-
- name: Publish to live registry
|
|
98
|
-
if: steps.changed.outputs.count != '0' && env.REGISTRY_URL != ''
|
|
99
|
-
env:
|
|
100
|
-
REGISTRY_URL: ${{ secrets.ENTERPRISE_REGISTRY_URL }}
|
|
101
|
-
REGISTRY_TOKEN: ${{ secrets.ENTERPRISE_API_KEY }}
|
|
102
|
-
run: |
|
|
103
|
-
while IFS= read -r dir; do
|
|
104
|
-
[ -z "$dir" ] && continue
|
|
105
|
-
SKILL_ID=$(basename "$dir")
|
|
106
|
-
MANIFEST="$dir/agenticmail-skill.json"
|
|
107
|
-
[ ! -f "$MANIFEST" ] && continue
|
|
108
|
-
|
|
109
|
-
echo "Publishing $SKILL_ID..."
|
|
110
|
-
HTTP_CODE=$(curl -s -o /tmp/response.json -w "%{http_code}" \
|
|
111
|
-
-X POST "${REGISTRY_URL}/api/engine/community/skills/publish" \
|
|
112
|
-
-H "Content-Type: application/json" \
|
|
113
|
-
-H "Authorization: Bearer ${REGISTRY_TOKEN}" \
|
|
114
|
-
-d @"$MANIFEST")
|
|
115
|
-
|
|
116
|
-
if [ "$HTTP_CODE" -ge 200 ] && [ "$HTTP_CODE" -lt 300 ]; then
|
|
117
|
-
echo "Published $SKILL_ID (HTTP $HTTP_CODE)"
|
|
118
|
-
else
|
|
119
|
-
echo "::warning::Failed to publish $SKILL_ID (HTTP $HTTP_CODE)"
|
|
120
|
-
fi
|
|
121
|
-
done <<< "${{ steps.changed.outputs.dirs }}"
|
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
name: Validate Community Skills
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
pull_request:
|
|
5
|
-
paths:
|
|
6
|
-
- 'community-skills/**'
|
|
7
|
-
types: [opened, synchronize, reopened]
|
|
8
|
-
|
|
9
|
-
permissions:
|
|
10
|
-
contents: read
|
|
11
|
-
pull-requests: write
|
|
12
|
-
|
|
13
|
-
jobs:
|
|
14
|
-
validate:
|
|
15
|
-
runs-on: ubuntu-latest
|
|
16
|
-
steps:
|
|
17
|
-
- uses: actions/checkout@v4
|
|
18
|
-
with:
|
|
19
|
-
fetch-depth: 0
|
|
20
|
-
|
|
21
|
-
- uses: actions/setup-node@v4
|
|
22
|
-
with:
|
|
23
|
-
node-version: '20'
|
|
24
|
-
cache: 'npm'
|
|
25
|
-
|
|
26
|
-
- run: npm ci
|
|
27
|
-
|
|
28
|
-
- run: npm run build
|
|
29
|
-
|
|
30
|
-
- name: Find changed skill directories
|
|
31
|
-
id: changed
|
|
32
|
-
run: |
|
|
33
|
-
CHANGED=$(git diff --name-only ${{ github.event.pull_request.base.sha }} HEAD -- community-skills/ || true)
|
|
34
|
-
DIRS=$(echo "$CHANGED" | grep -oP 'community-skills/[^/]+' | sort -u | grep -v '_template' || true)
|
|
35
|
-
echo "dirs<<EOF" >> $GITHUB_OUTPUT
|
|
36
|
-
echo "$DIRS" >> $GITHUB_OUTPUT
|
|
37
|
-
echo "EOF" >> $GITHUB_OUTPUT
|
|
38
|
-
COUNT=$(echo "$DIRS" | grep -c '.' || echo "0")
|
|
39
|
-
echo "count=$COUNT" >> $GITHUB_OUTPUT
|
|
40
|
-
|
|
41
|
-
- name: Validate each skill
|
|
42
|
-
id: validate
|
|
43
|
-
if: steps.changed.outputs.count != '0'
|
|
44
|
-
run: |
|
|
45
|
-
FAILED=0
|
|
46
|
-
RESULTS=""
|
|
47
|
-
while IFS= read -r dir; do
|
|
48
|
-
[ -z "$dir" ] && continue
|
|
49
|
-
SKILL_ID=$(basename "$dir")
|
|
50
|
-
echo "::group::Validating $SKILL_ID"
|
|
51
|
-
if [ -f "$dir/agenticmail-skill.json" ]; then
|
|
52
|
-
OUTPUT=$(node dist/cli.js validate "$dir" --json 2>&1)
|
|
53
|
-
echo "$OUTPUT"
|
|
54
|
-
VALID=$(echo "$OUTPUT" | node -e "const d=require('fs').readFileSync('/dev/stdin','utf-8'); try{const j=JSON.parse(d); console.log(j.results?.[0]?.valid ? 'true':'false')}catch{console.log('false')}")
|
|
55
|
-
if [ "$VALID" = "true" ]; then
|
|
56
|
-
RESULTS="${RESULTS}| \`${SKILL_ID}\` | ✅ Passed | — |\n"
|
|
57
|
-
else
|
|
58
|
-
ERRORS=$(echo "$OUTPUT" | node -e "const d=require('fs').readFileSync('/dev/stdin','utf-8'); try{const j=JSON.parse(d); console.log((j.results?.[0]?.errors||[]).join(', '))}catch{console.log('parse error')}")
|
|
59
|
-
RESULTS="${RESULTS}| \`${SKILL_ID}\` | ❌ Failed | ${ERRORS} |\n"
|
|
60
|
-
FAILED=1
|
|
61
|
-
fi
|
|
62
|
-
else
|
|
63
|
-
echo "::error::Missing agenticmail-skill.json in $dir"
|
|
64
|
-
RESULTS="${RESULTS}| \`${SKILL_ID}\` | ❌ Failed | Missing agenticmail-skill.json |\n"
|
|
65
|
-
FAILED=1
|
|
66
|
-
fi
|
|
67
|
-
echo "::endgroup::"
|
|
68
|
-
done <<< "${{ steps.changed.outputs.dirs }}"
|
|
69
|
-
echo "results<<EOF" >> $GITHUB_OUTPUT
|
|
70
|
-
echo -e "$RESULTS" >> $GITHUB_OUTPUT
|
|
71
|
-
echo "EOF" >> $GITHUB_OUTPUT
|
|
72
|
-
echo "failed=$FAILED" >> $GITHUB_OUTPUT
|
|
73
|
-
exit $FAILED
|
|
74
|
-
|
|
75
|
-
- name: Check for README
|
|
76
|
-
if: steps.changed.outputs.count != '0'
|
|
77
|
-
id: readme
|
|
78
|
-
run: |
|
|
79
|
-
MISSING=""
|
|
80
|
-
while IFS= read -r dir; do
|
|
81
|
-
[ -z "$dir" ] && continue
|
|
82
|
-
if [ ! -f "$dir/README.md" ]; then
|
|
83
|
-
MISSING="${MISSING}$(basename $dir), "
|
|
84
|
-
fi
|
|
85
|
-
done <<< "${{ steps.changed.outputs.dirs }}"
|
|
86
|
-
echo "missing=$MISSING" >> $GITHUB_OUTPUT
|
|
87
|
-
|
|
88
|
-
- name: Label PR
|
|
89
|
-
if: always() && steps.changed.outputs.count != '0'
|
|
90
|
-
uses: actions/github-script@v7
|
|
91
|
-
with:
|
|
92
|
-
script: |
|
|
93
|
-
const labels = ['community-skill', 'needs-maintainer-review'];
|
|
94
|
-
if ('${{ steps.validate.outputs.failed }}' === '0') {
|
|
95
|
-
labels.push('validated');
|
|
96
|
-
} else {
|
|
97
|
-
labels.push('validation-failed');
|
|
98
|
-
}
|
|
99
|
-
await github.rest.issues.addLabels({
|
|
100
|
-
owner: context.repo.owner,
|
|
101
|
-
repo: context.repo.repo,
|
|
102
|
-
issue_number: context.issue.number,
|
|
103
|
-
labels,
|
|
104
|
-
});
|
|
105
|
-
|
|
106
|
-
- name: Post review checklist
|
|
107
|
-
if: always() && steps.changed.outputs.count != '0'
|
|
108
|
-
uses: actions/github-script@v7
|
|
109
|
-
with:
|
|
110
|
-
script: |
|
|
111
|
-
const passed = '${{ steps.validate.outputs.failed }}' === '0';
|
|
112
|
-
const validationStatus = passed ? '✅ All checks passed' : '❌ Validation failed — see errors below';
|
|
113
|
-
const missingReadme = '${{ steps.readme.outputs.missing }}'.trim();
|
|
114
|
-
|
|
115
|
-
const body = `### Community Skill Review
|
|
116
|
-
|
|
117
|
-
**Automated Validation:** ${validationStatus}
|
|
118
|
-
**Skills checked:** ${{ steps.changed.outputs.count }}
|
|
119
|
-
|
|
120
|
-
#### Validation Results
|
|
121
|
-
|
|
122
|
-
| Skill | Status | Errors |
|
|
123
|
-
|-------|--------|--------|
|
|
124
|
-
${{ steps.validate.outputs.results }}
|
|
125
|
-
|
|
126
|
-
${missingReadme ? `⚠️ **Missing README.md:** ${missingReadme}\n` : ''}
|
|
127
|
-
|
|
128
|
-
---
|
|
129
|
-
|
|
130
|
-
#### Maintainer Review Checklist
|
|
131
|
-
|
|
132
|
-
> **This PR requires manual review from a maintainer before merging.**
|
|
133
|
-
> Automated validation only checks the manifest format — a human must
|
|
134
|
-
> review the actual skill design, tool definitions, and risk assessment.
|
|
135
|
-
|
|
136
|
-
- [ ] **Tool IDs are sensibly named** and follow the \`prefix_action\` convention
|
|
137
|
-
- [ ] **Descriptions are accurate** and clearly explain what each tool does
|
|
138
|
-
- [ ] **Risk levels are appropriate** — destructive tools should be \`high\`/\`critical\`
|
|
139
|
-
- [ ] **Side effects are correctly declared** (sends-email, deletes-data, etc.)
|
|
140
|
-
- [ ] **Category is correct** for the application type
|
|
141
|
-
- [ ] **No malicious or deceptive tool definitions** hiding behind legitimate names
|
|
142
|
-
- [ ] **Config schema is reasonable** — no unnecessary secrets or permissions
|
|
143
|
-
- [ ] **README documents** all tools, configuration, and usage
|
|
144
|
-
- [ ] **License is appropriate** for community contribution
|
|
145
|
-
|
|
146
|
-
---
|
|
147
|
-
*Automated by [AgenticMail Enterprise CI](https://github.com/agenticmail/enterprise) — maintainer approval required to merge*`;
|
|
148
|
-
|
|
149
|
-
const comments = await github.rest.issues.listComments({
|
|
150
|
-
owner: context.repo.owner,
|
|
151
|
-
repo: context.repo.repo,
|
|
152
|
-
issue_number: context.issue.number,
|
|
153
|
-
});
|
|
154
|
-
const existing = comments.data.find(c =>
|
|
155
|
-
c.body?.includes('Community Skill Review') && c.user?.type === 'Bot'
|
|
156
|
-
);
|
|
157
|
-
|
|
158
|
-
if (existing) {
|
|
159
|
-
await github.rest.issues.updateComment({
|
|
160
|
-
owner: context.repo.owner,
|
|
161
|
-
repo: context.repo.repo,
|
|
162
|
-
comment_id: existing.id,
|
|
163
|
-
body,
|
|
164
|
-
});
|
|
165
|
-
} else {
|
|
166
|
-
await github.rest.issues.createComment({
|
|
167
|
-
owner: context.repo.owner,
|
|
168
|
-
repo: context.repo.repo,
|
|
169
|
-
issue_number: context.issue.number,
|
|
170
|
-
body,
|
|
171
|
-
});
|
|
172
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
Agriculture & Farmland in South West Nigeria – Research Report
|
|
2
|
-
|
|
3
|
-
This research document contains analysis of agricultural practices, farmland opportunities, and market conditions in South West Nigeria.
|
|
4
|
-
|
|
5
|
-
Note: This is a placeholder file as I cannot directly access the Google Docs content without authentication. The original document is available at:
|
|
6
|
-
https://docs.google.com/document/d/1DHhVPN13Gjg9roFwUlpcRcT_EFwEVlJOyCHuUOIhuR4/edit
|
|
7
|
-
|
|
8
|
-
To access the full content, you would need to:
|
|
9
|
-
1. Sign in to Google Docs
|
|
10
|
-
2. Download the document directly from the link above
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
Bank of America Credit Cards – Competitor Research Report
|
|
2
|
-
|
|
3
|
-
This research document contains analysis of Bank of America's credit card offerings, competitive positioning, and market insights.
|
|
4
|
-
|
|
5
|
-
Note: This is a placeholder file as I cannot directly access the Google Docs content without authentication. The original document is available at:
|
|
6
|
-
https://docs.google.com/document/d/1m0xznamEn5fMASM0jbje3TPJYLrwr50ptnGYZQe9q98/edit
|
|
7
|
-
|
|
8
|
-
To access the full content, you would need to:
|
|
9
|
-
1. Sign in to Google Docs
|
|
10
|
-
2. Download the document directly from the link above
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
Customer Support Research - Feb 2026
|
|
2
|
-
|
|
3
|
-
This research document contains customer support analysis, trends, and insights for February 2026.
|
|
4
|
-
|
|
5
|
-
Note: This is a placeholder file as I cannot directly access the Google Docs content without authentication. The original document is available at:
|
|
6
|
-
https://docs.google.com/document/d/1GUAahCwtMWcIuZRyOAdAVPN2qu9D6j7fvQjS9WiANxU/edit
|
|
7
|
-
|
|
8
|
-
To access the full content, you would need to:
|
|
9
|
-
1. Sign in to Google Docs
|
|
10
|
-
2. Download the document directly from the link above
|