@t0u9h/agent-git-mail 0.1.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 (98) hide show
  1. package/README.md +20 -0
  2. package/dist/app/archive-message.d.ts +7 -0
  3. package/dist/app/archive-message.d.ts.map +1 -0
  4. package/dist/app/archive-message.js +14 -0
  5. package/dist/app/archive-message.js.map +1 -0
  6. package/dist/app/list-messages.d.ts +17 -0
  7. package/dist/app/list-messages.d.ts.map +1 -0
  8. package/dist/app/list-messages.js +37 -0
  9. package/dist/app/list-messages.js.map +1 -0
  10. package/dist/app/read-message.d.ts +12 -0
  11. package/dist/app/read-message.d.ts.map +1 -0
  12. package/dist/app/read-message.js +18 -0
  13. package/dist/app/read-message.js.map +1 -0
  14. package/dist/app/reply-message.d.ts +11 -0
  15. package/dist/app/reply-message.d.ts.map +1 -0
  16. package/dist/app/reply-message.js +83 -0
  17. package/dist/app/reply-message.js.map +1 -0
  18. package/dist/app/run-daemon.d.ts +12 -0
  19. package/dist/app/run-daemon.d.ts.map +1 -0
  20. package/dist/app/run-daemon.js +98 -0
  21. package/dist/app/run-daemon.js.map +1 -0
  22. package/dist/app/send-message.d.ts +13 -0
  23. package/dist/app/send-message.d.ts.map +1 -0
  24. package/dist/app/send-message.js +59 -0
  25. package/dist/app/send-message.js.map +1 -0
  26. package/dist/cli/commands/archive.d.ts +5 -0
  27. package/dist/cli/commands/archive.d.ts.map +1 -0
  28. package/dist/cli/commands/archive.js +10 -0
  29. package/dist/cli/commands/archive.js.map +1 -0
  30. package/dist/cli/commands/config.d.ts +4 -0
  31. package/dist/cli/commands/config.d.ts.map +1 -0
  32. package/dist/cli/commands/config.js +48 -0
  33. package/dist/cli/commands/config.js.map +1 -0
  34. package/dist/cli/commands/list.d.ts +6 -0
  35. package/dist/cli/commands/list.d.ts.map +1 -0
  36. package/dist/cli/commands/list.js +23 -0
  37. package/dist/cli/commands/list.js.map +1 -0
  38. package/dist/cli/commands/read.d.ts +6 -0
  39. package/dist/cli/commands/read.d.ts.map +1 -0
  40. package/dist/cli/commands/read.js +14 -0
  41. package/dist/cli/commands/read.js.map +1 -0
  42. package/dist/cli/commands/reply.d.ts +5 -0
  43. package/dist/cli/commands/reply.d.ts.map +1 -0
  44. package/dist/cli/commands/reply.js +12 -0
  45. package/dist/cli/commands/reply.js.map +1 -0
  46. package/dist/cli/commands/send.d.ts +3 -0
  47. package/dist/cli/commands/send.d.ts.map +1 -0
  48. package/dist/cli/commands/send.js +14 -0
  49. package/dist/cli/commands/send.js.map +1 -0
  50. package/dist/config/index.d.ts +4 -0
  51. package/dist/config/index.d.ts.map +1 -0
  52. package/dist/config/index.js +4 -0
  53. package/dist/config/index.js.map +1 -0
  54. package/dist/config/load.d.ts +10 -0
  55. package/dist/config/load.d.ts.map +1 -0
  56. package/dist/config/load.js +19 -0
  57. package/dist/config/load.js.map +1 -0
  58. package/dist/config/paths.d.ts +3 -0
  59. package/dist/config/paths.d.ts.map +1 -0
  60. package/dist/config/paths.js +10 -0
  61. package/dist/config/paths.js.map +1 -0
  62. package/dist/config/schema.d.ts +41 -0
  63. package/dist/config/schema.d.ts.map +1 -0
  64. package/dist/config/schema.js +11 -0
  65. package/dist/config/schema.js.map +1 -0
  66. package/dist/domain/filename.d.ts +26 -0
  67. package/dist/domain/filename.d.ts.map +1 -0
  68. package/dist/domain/filename.js +27 -0
  69. package/dist/domain/filename.js.map +1 -0
  70. package/dist/domain/frontmatter.d.ts +38 -0
  71. package/dist/domain/frontmatter.d.ts.map +1 -0
  72. package/dist/domain/frontmatter.js +55 -0
  73. package/dist/domain/frontmatter.js.map +1 -0
  74. package/dist/domain/index.d.ts +4 -0
  75. package/dist/domain/index.d.ts.map +1 -0
  76. package/dist/domain/index.js +4 -0
  77. package/dist/domain/index.js.map +1 -0
  78. package/dist/domain/message.d.ts +7 -0
  79. package/dist/domain/message.d.ts.map +1 -0
  80. package/dist/domain/message.js +4 -0
  81. package/dist/domain/message.js.map +1 -0
  82. package/dist/git/exec.d.ts +12 -0
  83. package/dist/git/exec.d.ts.map +1 -0
  84. package/dist/git/exec.js +45 -0
  85. package/dist/git/exec.js.map +1 -0
  86. package/dist/git/repo.d.ts +19 -0
  87. package/dist/git/repo.d.ts.map +1 -0
  88. package/dist/git/repo.js +76 -0
  89. package/dist/git/repo.js.map +1 -0
  90. package/dist/git/waterline.d.ts +8 -0
  91. package/dist/git/waterline.d.ts.map +1 -0
  92. package/dist/git/waterline.js +14 -0
  93. package/dist/git/waterline.js.map +1 -0
  94. package/dist/index.d.ts +3 -0
  95. package/dist/index.d.ts.map +1 -0
  96. package/dist/index.js +114 -0
  97. package/dist/index.js.map +1 -0
  98. package/package.json +54 -0
@@ -0,0 +1,14 @@
1
+ const WATERLINE_REF = 'refs/agm/last-seen';
2
+ export class GitWaterline {
3
+ repo;
4
+ constructor(repo) {
5
+ this.repo = repo;
6
+ }
7
+ async read() {
8
+ return await this.repo.getRef(WATERLINE_REF);
9
+ }
10
+ async write(sha) {
11
+ await this.repo.updateRef(WATERLINE_REF, sha);
12
+ }
13
+ }
14
+ //# sourceMappingURL=waterline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"waterline.js","sourceRoot":"","sources":["../../src/git/waterline.ts"],"names":[],"mappings":"AAEA,MAAM,aAAa,GAAG,oBAAoB,CAAC;AAE3C,MAAM,OAAO,YAAY;IACH;IAApB,YAAoB,IAAa;QAAb,SAAI,GAAJ,IAAI,CAAS;IAAG,CAAC;IAErC,KAAK,CAAC,IAAI;QACR,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAAW;QACrB,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;IAChD,CAAC;CACF"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js ADDED
@@ -0,0 +1,114 @@
1
+ #!/usr/bin/env node
2
+ import { cmdConfigShow, cmdConfigGet } from './cli/commands/config.js';
3
+ import { cmdSend } from './cli/commands/send.js';
4
+ import { cmdReply } from './cli/commands/reply.js';
5
+ import { cmdRead } from './cli/commands/read.js';
6
+ import { cmdList } from './cli/commands/list.js';
7
+ import { cmdArchive } from './cli/commands/archive.js';
8
+ const subcommands = {
9
+ config: async () => {
10
+ const args = process.argv.slice(3);
11
+ if (args[0] === 'show') {
12
+ await cmdConfigShow();
13
+ }
14
+ else if (args[0] === 'get') {
15
+ await cmdConfigGet(args[1] ?? '');
16
+ }
17
+ else if (args[0] === 'set') {
18
+ const { cmdConfigSet } = await import('./cli/commands/config.js');
19
+ await cmdConfigSet(args[1] ?? '', args[2] ?? '');
20
+ }
21
+ else {
22
+ await cmdConfigShow();
23
+ }
24
+ },
25
+ send: async (argv) => {
26
+ await cmdSend(argv);
27
+ },
28
+ reply: async (argv) => {
29
+ await cmdReply(argv);
30
+ },
31
+ read: async (argv) => {
32
+ await cmdRead(argv);
33
+ },
34
+ list: async (argv) => {
35
+ await cmdList(argv);
36
+ },
37
+ archive: async (argv) => {
38
+ await cmdArchive(argv);
39
+ },
40
+ daemon: async () => {
41
+ const { runDaemon } = await import('./app/run-daemon.js');
42
+ const { loadConfig } = await import('./config/load.js');
43
+ const config = loadConfig();
44
+ await runDaemon({ config });
45
+ },
46
+ };
47
+ function parseArgs() {
48
+ const args = process.argv.slice(2);
49
+ const subcommand = args[0] ?? 'help';
50
+ const argv = {};
51
+ for (let i = 1; i < args.length; i++) {
52
+ const arg = args[i];
53
+ if (arg.startsWith('--')) {
54
+ const key = arg.slice(2);
55
+ const next = args[i + 1];
56
+ if (next && !next.startsWith('--')) {
57
+ argv[key] = next;
58
+ i++;
59
+ }
60
+ else {
61
+ argv[key] = true;
62
+ }
63
+ }
64
+ else if (arg.startsWith('-')) {
65
+ const key = arg.slice(1);
66
+ argv[key] = true;
67
+ }
68
+ }
69
+ return { subcommand, argv };
70
+ }
71
+ async function main() {
72
+ const { subcommand, argv } = parseArgs();
73
+ if (subcommand === 'help' || subcommand === '--help' || subcommand === '-h') {
74
+ printHelp();
75
+ return;
76
+ }
77
+ const handler = subcommands[subcommand];
78
+ if (!handler) {
79
+ console.error(`Unknown subcommand: ${subcommand}`);
80
+ printHelp();
81
+ process.exit(1);
82
+ return;
83
+ }
84
+ try {
85
+ await handler(argv);
86
+ }
87
+ catch (e) {
88
+ console.error(e instanceof Error ? e.message : String(e));
89
+ process.exit(1);
90
+ }
91
+ }
92
+ function printHelp() {
93
+ console.log(`agm - Agent Git Mail CLI
94
+
95
+ Usage:
96
+ agm <subcommand> [options]
97
+
98
+ Subcommands:
99
+ config [show|get|set] Show, get, or set config values
100
+ send --from <a> --to <b> --subject <s> --body-file <f>
101
+ reply <filename.md> --from <a> --body-file <f>
102
+ read <filename.md> --agent <a> [--dir inbox|outbox|archive]
103
+ list --agent <a> [--dir inbox|outbox|archive] [--format table|json]
104
+ archive <filename.md> --agent <a>
105
+ daemon Run the mail daemon
106
+
107
+ Examples:
108
+ agm config show
109
+ agm send --from mt --to hex --subject "Hello" --body-file ./body.txt
110
+ agm list --agent mt --dir inbox
111
+ `);
112
+ }
113
+ main();
114
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,54 @@
1
+ {
2
+ "name": "@t0u9h/agent-git-mail",
3
+ "version": "0.1.0",
4
+ "private": false,
5
+ "type": "module",
6
+ "description": "A minimal, git-native async mail system for assistant-style agents.",
7
+ "license": "MIT",
8
+ "main": "./dist/index.js",
9
+ "bin": {
10
+ "agm": "./dist/index.js"
11
+ },
12
+ "exports": {
13
+ ".": "./dist/index.js"
14
+ },
15
+ "files": [
16
+ "dist",
17
+ "README.md",
18
+ "LICENSE"
19
+ ],
20
+ "publishConfig": {
21
+ "access": "public"
22
+ },
23
+ "repository": {
24
+ "type": "git",
25
+ "url": "git+https://github.com/T0UGH/agent-git-mail.git",
26
+ "directory": "packages/agm"
27
+ },
28
+ "homepage": "https://github.com/T0UGH/agent-git-mail",
29
+ "bugs": {
30
+ "url": "https://github.com/T0UGH/agent-git-mail/issues"
31
+ },
32
+ "keywords": [
33
+ "agent",
34
+ "mail",
35
+ "git",
36
+ "openclaw",
37
+ "cli",
38
+ "async"
39
+ ],
40
+ "scripts": {
41
+ "build": "tsc -p tsconfig.json",
42
+ "test": "vitest run",
43
+ "test:watch": "vitest"
44
+ },
45
+ "dependencies": {
46
+ "yaml": "^2.6.0",
47
+ "zod": "^3.23.0"
48
+ },
49
+ "devDependencies": {
50
+ "@types/node": "^22.0.0",
51
+ "typescript": "^5.6.0",
52
+ "vitest": "^2.1.0"
53
+ }
54
+ }