dot-agents 0.5.0 → 0.6.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 (124) hide show
  1. package/README.md +239 -122
  2. package/dist/cli/commands/channel.d.ts +19 -0
  3. package/dist/cli/commands/channel.d.ts.map +1 -1
  4. package/dist/cli/commands/channel.js +152 -13
  5. package/dist/cli/commands/channel.js.map +1 -1
  6. package/dist/cli/commands/check.d.ts.map +1 -1
  7. package/dist/cli/commands/check.js +61 -1
  8. package/dist/cli/commands/check.js.map +1 -1
  9. package/dist/cli/commands/index.d.ts +2 -0
  10. package/dist/cli/commands/index.d.ts.map +1 -1
  11. package/dist/cli/commands/index.js +2 -0
  12. package/dist/cli/commands/index.js.map +1 -1
  13. package/dist/cli/commands/personas.d.ts +3 -0
  14. package/dist/cli/commands/personas.d.ts.map +1 -0
  15. package/dist/cli/commands/personas.js +402 -0
  16. package/dist/cli/commands/personas.js.map +1 -0
  17. package/dist/cli/commands/projects.d.ts +3 -0
  18. package/dist/cli/commands/projects.d.ts.map +1 -0
  19. package/dist/cli/commands/projects.js +138 -0
  20. package/dist/cli/commands/projects.js.map +1 -0
  21. package/dist/cli/commands/run.d.ts.map +1 -1
  22. package/dist/cli/commands/run.js +4 -5
  23. package/dist/cli/commands/run.js.map +1 -1
  24. package/dist/cli/index.js +3 -11
  25. package/dist/cli/index.js.map +1 -1
  26. package/dist/cli/lib/runner.d.ts +2 -0
  27. package/dist/cli/lib/runner.d.ts.map +1 -1
  28. package/dist/cli/lib/runner.js +67 -8
  29. package/dist/cli/lib/runner.js.map +1 -1
  30. package/dist/daemon/daemon.d.ts +10 -3
  31. package/dist/daemon/daemon.d.ts.map +1 -1
  32. package/dist/daemon/daemon.js +19 -21
  33. package/dist/daemon/daemon.js.map +1 -1
  34. package/dist/daemon/lib/executor.d.ts +0 -4
  35. package/dist/daemon/lib/executor.d.ts.map +1 -1
  36. package/dist/daemon/lib/executor.js +48 -135
  37. package/dist/daemon/lib/executor.js.map +1 -1
  38. package/dist/lib/channel.d.ts +53 -1
  39. package/dist/lib/channel.d.ts.map +1 -1
  40. package/dist/lib/channel.js +221 -30
  41. package/dist/lib/channel.js.map +1 -1
  42. package/dist/lib/channel.test.d.ts +2 -0
  43. package/dist/lib/channel.test.d.ts.map +1 -0
  44. package/dist/lib/channel.test.js +33 -0
  45. package/dist/lib/channel.test.js.map +1 -0
  46. package/dist/lib/daemon-status.d.ts +26 -0
  47. package/dist/lib/daemon-status.d.ts.map +1 -0
  48. package/dist/lib/daemon-status.js +64 -0
  49. package/dist/lib/daemon-status.js.map +1 -0
  50. package/dist/lib/environment.d.ts +87 -0
  51. package/dist/lib/environment.d.ts.map +1 -0
  52. package/dist/lib/environment.js +224 -0
  53. package/dist/lib/environment.js.map +1 -0
  54. package/dist/lib/frontmatter.d.ts +8 -0
  55. package/dist/lib/frontmatter.d.ts.map +1 -1
  56. package/dist/lib/frontmatter.js +16 -3
  57. package/dist/lib/frontmatter.js.map +1 -1
  58. package/dist/lib/frontmatter.test.d.ts +2 -0
  59. package/dist/lib/frontmatter.test.d.ts.map +1 -0
  60. package/dist/lib/frontmatter.test.js +60 -0
  61. package/dist/lib/frontmatter.test.js.map +1 -0
  62. package/dist/lib/index.d.ts +7 -0
  63. package/dist/lib/index.d.ts.map +1 -1
  64. package/dist/lib/index.js +7 -0
  65. package/dist/lib/index.js.map +1 -1
  66. package/dist/lib/integration.test.d.ts +2 -0
  67. package/dist/lib/integration.test.d.ts.map +1 -0
  68. package/dist/lib/integration.test.js +445 -0
  69. package/dist/lib/integration.test.js.map +1 -0
  70. package/dist/lib/invoke.d.ts +23 -0
  71. package/dist/lib/invoke.d.ts.map +1 -0
  72. package/dist/lib/invoke.js +158 -0
  73. package/dist/lib/invoke.js.map +1 -0
  74. package/dist/lib/invoke.test.d.ts +2 -0
  75. package/dist/lib/invoke.test.d.ts.map +1 -0
  76. package/dist/lib/invoke.test.js +82 -0
  77. package/dist/lib/invoke.test.js.map +1 -0
  78. package/dist/lib/persona.d.ts +22 -1
  79. package/dist/lib/persona.d.ts.map +1 -1
  80. package/dist/lib/persona.js +176 -31
  81. package/dist/lib/persona.js.map +1 -1
  82. package/dist/lib/persona.test.d.ts +2 -0
  83. package/dist/lib/persona.test.d.ts.map +1 -0
  84. package/dist/lib/persona.test.js +324 -0
  85. package/dist/lib/persona.test.js.map +1 -0
  86. package/dist/lib/processor.d.ts +50 -0
  87. package/dist/lib/processor.d.ts.map +1 -0
  88. package/dist/lib/processor.js +135 -0
  89. package/dist/lib/processor.js.map +1 -0
  90. package/dist/lib/processor.test.d.ts +2 -0
  91. package/dist/lib/processor.test.d.ts.map +1 -0
  92. package/dist/lib/processor.test.js +134 -0
  93. package/dist/lib/processor.test.js.map +1 -0
  94. package/dist/lib/registry.d.ts +109 -0
  95. package/dist/lib/registry.d.ts.map +1 -0
  96. package/dist/lib/registry.js +192 -0
  97. package/dist/lib/registry.js.map +1 -0
  98. package/dist/lib/registry.test.d.ts +2 -0
  99. package/dist/lib/registry.test.d.ts.map +1 -0
  100. package/dist/lib/registry.test.js +236 -0
  101. package/dist/lib/registry.test.js.map +1 -0
  102. package/dist/lib/session-thread.d.ts +75 -0
  103. package/dist/lib/session-thread.d.ts.map +1 -0
  104. package/dist/lib/session-thread.js +132 -0
  105. package/dist/lib/session-thread.js.map +1 -0
  106. package/dist/lib/session-thread.test.d.ts +2 -0
  107. package/dist/lib/session-thread.test.d.ts.map +1 -0
  108. package/dist/lib/session-thread.test.js +235 -0
  109. package/dist/lib/session-thread.test.js.map +1 -0
  110. package/dist/lib/session.d.ts +150 -0
  111. package/dist/lib/session.d.ts.map +1 -0
  112. package/dist/lib/session.js +183 -0
  113. package/dist/lib/session.js.map +1 -0
  114. package/dist/lib/session.test.d.ts +2 -0
  115. package/dist/lib/session.test.d.ts.map +1 -0
  116. package/dist/lib/session.test.js +336 -0
  117. package/dist/lib/session.test.js.map +1 -0
  118. package/dist/lib/types/channel.d.ts +4 -0
  119. package/dist/lib/types/channel.d.ts.map +1 -1
  120. package/dist/lib/types/persona.d.ts +49 -6
  121. package/dist/lib/types/persona.d.ts.map +1 -1
  122. package/internal/personas/_base/PERSONA.md +222 -39
  123. package/internal/skills/channels/list/SKILL.md +76 -0
  124. package/package.json +6 -2
@@ -1 +1 @@
1
- {"version":3,"file":"channel.js","sourceRoot":"","sources":["../../src/lib/channel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"channel.js","sourceRoot":"","sources":["../../src/lib/channel.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=channel.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel.test.d.ts","sourceRoot":"","sources":["../../src/lib/channel.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,33 @@
1
+ import { describe, it } from "node:test";
2
+ import assert from "node:assert";
3
+ // isChannelName is a pure function - inline it to avoid module resolution issues
4
+ // This is the same logic as in channel.ts
5
+ function isChannelName(name) {
6
+ return name.startsWith("#") || name.startsWith("@");
7
+ }
8
+ describe("isChannelName", () => {
9
+ it("returns true for public channels (# prefix)", () => {
10
+ assert.strictEqual(isChannelName("#general"), true);
11
+ assert.strictEqual(isChannelName("#status"), true);
12
+ assert.strictEqual(isChannelName("#dev-updates"), true);
13
+ });
14
+ it("returns true for DM channels (@ prefix)", () => {
15
+ assert.strictEqual(isChannelName("@developer"), true);
16
+ assert.strictEqual(isChannelName("@human"), true);
17
+ assert.strictEqual(isChannelName("@alice-bob"), true);
18
+ });
19
+ it("returns false for names without prefix", () => {
20
+ assert.strictEqual(isChannelName("general"), false);
21
+ assert.strictEqual(isChannelName("status"), false);
22
+ assert.strictEqual(isChannelName("developer"), false);
23
+ });
24
+ it("returns false for names with wrong prefix", () => {
25
+ assert.strictEqual(isChannelName("!general"), false);
26
+ assert.strictEqual(isChannelName("$status"), false);
27
+ assert.strictEqual(isChannelName("/developer"), false);
28
+ });
29
+ it("returns false for empty string", () => {
30
+ assert.strictEqual(isChannelName(""), false);
31
+ });
32
+ });
33
+ //# sourceMappingURL=channel.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel.test.js","sourceRoot":"","sources":["../../src/lib/channel.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,iFAAiF;AACjF,0CAA0C;AAC1C,SAAS,aAAa,CAAC,IAAY;IACjC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACtD,CAAC;AAED,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,CAAC;QACpD,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC;QACnD,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,IAAI,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,CAAC;QACtD,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;QAClD,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC;QACpD,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC;QACnD,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC;QACrD,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC;QACpD,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Daemon status information
3
+ */
4
+ export interface DaemonStatus {
5
+ /** Whether the daemon is running */
6
+ running: boolean;
7
+ /** Process ID if running */
8
+ pid?: number;
9
+ }
10
+ /**
11
+ * Get the path to the daemon PID file for an agents directory
12
+ */
13
+ export declare function getPidFilePath(agentsDir: string): string;
14
+ /**
15
+ * Write the daemon PID file
16
+ */
17
+ export declare function writePidFile(agentsDir: string, pid: number): Promise<void>;
18
+ /**
19
+ * Remove the daemon PID file
20
+ */
21
+ export declare function removePidFile(agentsDir: string): Promise<void>;
22
+ /**
23
+ * Get the daemon status for an agents directory
24
+ */
25
+ export declare function getDaemonStatus(agentsDir: string): Promise<DaemonStatus>;
26
+ //# sourceMappingURL=daemon-status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daemon-status.d.ts","sourceRoot":"","sources":["../../src/lib/daemon-status.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,oCAAoC;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,4BAA4B;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGhF;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOpE;AAeD;;GAEG;AACH,wBAAsB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAqB9E"}
@@ -0,0 +1,64 @@
1
+ import { readFile, writeFile, unlink } from "node:fs/promises";
2
+ import { join } from "node:path";
3
+ const PID_FILE = "daemon.pid";
4
+ /**
5
+ * Get the path to the daemon PID file for an agents directory
6
+ */
7
+ export function getPidFilePath(agentsDir) {
8
+ return join(agentsDir, PID_FILE);
9
+ }
10
+ /**
11
+ * Write the daemon PID file
12
+ */
13
+ export async function writePidFile(agentsDir, pid) {
14
+ const pidPath = getPidFilePath(agentsDir);
15
+ await writeFile(pidPath, pid.toString(), "utf-8");
16
+ }
17
+ /**
18
+ * Remove the daemon PID file
19
+ */
20
+ export async function removePidFile(agentsDir) {
21
+ const pidPath = getPidFilePath(agentsDir);
22
+ try {
23
+ await unlink(pidPath);
24
+ }
25
+ catch {
26
+ // File may not exist, ignore
27
+ }
28
+ }
29
+ /**
30
+ * Check if a process with the given PID is running
31
+ */
32
+ function isProcessRunning(pid) {
33
+ try {
34
+ // Sending signal 0 tests if process exists without actually signaling it
35
+ process.kill(pid, 0);
36
+ return true;
37
+ }
38
+ catch {
39
+ return false;
40
+ }
41
+ }
42
+ /**
43
+ * Get the daemon status for an agents directory
44
+ */
45
+ export async function getDaemonStatus(agentsDir) {
46
+ const pidPath = getPidFilePath(agentsDir);
47
+ try {
48
+ const content = await readFile(pidPath, "utf-8");
49
+ const pid = parseInt(content.trim(), 10);
50
+ if (isNaN(pid)) {
51
+ return { running: false };
52
+ }
53
+ if (isProcessRunning(pid)) {
54
+ return { running: true, pid };
55
+ }
56
+ // PID file exists but process is not running (stale)
57
+ return { running: false };
58
+ }
59
+ catch {
60
+ // No PID file
61
+ return { running: false };
62
+ }
63
+ }
64
+ //# sourceMappingURL=daemon-status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daemon-status.js","sourceRoot":"","sources":["../../src/lib/daemon-status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,QAAQ,GAAG,YAAY,CAAC;AAY9B;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,SAAiB;IAC9C,OAAO,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,SAAiB,EAAE,GAAW;IAC/D,MAAM,OAAO,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAC1C,MAAM,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC;AACpD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,SAAiB;IACnD,MAAM,OAAO,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAC1C,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,6BAA6B;IAC/B,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,GAAW;IACnC,IAAI,CAAC;QACH,yEAAyE;QACzE,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,SAAiB;IACrD,MAAM,OAAO,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAE1C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACjD,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QAEzC,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACf,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC5B,CAAC;QAED,IAAI,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;QAChC,CAAC;QAED,qDAAqD;QACrD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,cAAc;QACd,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;AACH,CAAC"}
@@ -0,0 +1,87 @@
1
+ import type { DotAgentsConfig } from "./types/index.js";
2
+ /**
3
+ * Persona info for environment context
4
+ */
5
+ interface PersonaInfo {
6
+ name: string;
7
+ description?: string;
8
+ }
9
+ /**
10
+ * Workflow info for environment context
11
+ */
12
+ interface WorkflowInfo {
13
+ name: string;
14
+ description?: string;
15
+ }
16
+ /**
17
+ * Channel info for environment context
18
+ */
19
+ interface ChannelInfo {
20
+ name: string;
21
+ }
22
+ /**
23
+ * Registered project info for environment context
24
+ */
25
+ interface RegisteredProjectInfo {
26
+ name: string;
27
+ path: string;
28
+ daemonRunning: boolean;
29
+ daemonPid?: number;
30
+ }
31
+ /**
32
+ * Environment context data
33
+ */
34
+ export interface EnvironmentContext {
35
+ projectName: string | null;
36
+ daemonRunning: boolean;
37
+ daemonPid?: number;
38
+ registeredProjects: RegisteredProjectInfo[];
39
+ personas: PersonaInfo[];
40
+ workflows: WorkflowInfo[];
41
+ channels: ChannelInfo[];
42
+ }
43
+ /**
44
+ * Build environment context by discovering project resources.
45
+ *
46
+ * This function:
47
+ * 1. Gets current project info from registry
48
+ * 2. Lists all registered projects with daemon status
49
+ * 3. Lists personas (name + description)
50
+ * 4. Lists workflows (name + description)
51
+ * 5. Lists channels
52
+ */
53
+ export declare function buildEnvironmentContext(config: DotAgentsConfig): Promise<EnvironmentContext>;
54
+ /**
55
+ * Format environment context as markdown for injection into persona prompt.
56
+ *
57
+ * Example output:
58
+ * ```markdown
59
+ * ## Your Environment
60
+ *
61
+ * **Project:** docs (registered as @docs) ○ daemon stopped
62
+ *
63
+ * **Personas:** (3)
64
+ * - dottie - Executive assistant
65
+ * - researcher - Deep research with web search
66
+ * - handyman - Routine maintenance fixes
67
+ *
68
+ * **Workflows:** (2)
69
+ * - process-inbox - Process inbox files
70
+ * - daily-review - Review daily sessions
71
+ *
72
+ * **Channels:** (4)
73
+ * #sessions, #issues, #journals, @human
74
+ *
75
+ * **Other Registered Projects:** (2)
76
+ * - @dot-agents ○ daemon stopped
77
+ * - @scoutos ● daemon running (pid 12345)
78
+ * ```
79
+ */
80
+ export declare function formatEnvironmentContext(context: EnvironmentContext): string;
81
+ /**
82
+ * Build and format environment context as markdown.
83
+ * Convenience function that combines buildEnvironmentContext and formatEnvironmentContext.
84
+ */
85
+ export declare function getEnvironmentContextMarkdown(config: DotAgentsConfig): Promise<string>;
86
+ export {};
87
+ //# sourceMappingURL=environment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../src/lib/environment.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAYxD;;GAEG;AACH,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,UAAU,qBAAqB;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,qBAAqB,EAAE,CAAC;IAC5C,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB;AAED;;;;;;;;;GASG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,kBAAkB,CAAC,CAkF7B;AAgDD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,CAuD5E;AAED;;;GAGG;AACH,wBAAsB,6BAA6B,CACjD,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,MAAM,CAAC,CAGjB"}
@@ -0,0 +1,224 @@
1
+ import { relative } from "node:path";
2
+ import { listPersonas, loadPersona, loadRootPersona } from "./persona.js";
3
+ import { listWorkflows, loadWorkflow } from "./workflow.js";
4
+ import { listChannels } from "./channel.js";
5
+ import { getProjectNameByPath, listProjects } from "./registry.js";
6
+ import { getDaemonStatus } from "./daemon-status.js";
7
+ /**
8
+ * Threshold for switching from full display to names-only
9
+ */
10
+ const NAMES_ONLY_THRESHOLD = 10;
11
+ /**
12
+ * Threshold for truncating list with "Run X for full list" message
13
+ */
14
+ const TRUNCATE_THRESHOLD = 25;
15
+ /**
16
+ * Build environment context by discovering project resources.
17
+ *
18
+ * This function:
19
+ * 1. Gets current project info from registry
20
+ * 2. Lists all registered projects with daemon status
21
+ * 3. Lists personas (name + description)
22
+ * 4. Lists workflows (name + description)
23
+ * 5. Lists channels
24
+ */
25
+ export async function buildEnvironmentContext(config) {
26
+ // Get project name from registry
27
+ const projectName = await getProjectNameByPath(config.agentsDir);
28
+ // Get daemon status for current project
29
+ const daemonStatus = await getDaemonStatus(config.agentsDir);
30
+ // Get all registered projects with daemon status
31
+ const allProjects = await listProjects();
32
+ const registeredProjects = await Promise.all(allProjects.map(async (project) => {
33
+ const projectDaemonStatus = await getDaemonStatus(project.path);
34
+ return {
35
+ name: project.name,
36
+ path: project.path,
37
+ daemonRunning: projectDaemonStatus.running,
38
+ daemonPid: projectDaemonStatus.pid,
39
+ };
40
+ }));
41
+ // List personas
42
+ const personaPaths = await listPersonas(config.personasDir);
43
+ const personas = [];
44
+ // Check for root persona
45
+ const rootPersona = await loadRootPersona(config.agentsDir);
46
+ if (rootPersona) {
47
+ personas.push({
48
+ name: "root",
49
+ description: rootPersona.description,
50
+ });
51
+ }
52
+ for (const personaPath of personaPaths) {
53
+ try {
54
+ const persona = await loadPersona(personaPath);
55
+ // Skip _project if root persona came from there (avoid duplicate)
56
+ const relPath = relative(config.personasDir, personaPath);
57
+ if (relPath === "_project" && rootPersona?.path === personaPath) {
58
+ continue;
59
+ }
60
+ personas.push({
61
+ name: relPath,
62
+ description: persona.description,
63
+ });
64
+ }
65
+ catch {
66
+ // Skip invalid personas
67
+ }
68
+ }
69
+ // List workflows
70
+ const workflowPaths = await listWorkflows(config.workflowsDir);
71
+ const workflows = [];
72
+ for (const workflowPath of workflowPaths) {
73
+ try {
74
+ const workflow = await loadWorkflow(workflowPath);
75
+ workflows.push({
76
+ name: workflow.name,
77
+ description: workflow.description,
78
+ });
79
+ }
80
+ catch {
81
+ // Skip invalid workflows
82
+ }
83
+ }
84
+ // List channels
85
+ const channelList = await listChannels(config.channelsDir);
86
+ const channels = channelList.map((c) => ({
87
+ name: c.name,
88
+ }));
89
+ return {
90
+ projectName,
91
+ daemonRunning: daemonStatus.running,
92
+ daemonPid: daemonStatus.pid,
93
+ registeredProjects,
94
+ personas,
95
+ workflows,
96
+ channels,
97
+ };
98
+ }
99
+ /**
100
+ * Format a list of items with length management.
101
+ *
102
+ * | Items | Behavior |
103
+ * |-------|----------|
104
+ * | ≤ 10 | Include full list with descriptions |
105
+ * | 11-25 | Include names only, no descriptions |
106
+ * | > 25 | Truncate + "Run `dot-agents list X` for full list" |
107
+ */
108
+ function formatList(items, itemType) {
109
+ if (items.length === 0) {
110
+ return "(none)";
111
+ }
112
+ const count = items.length;
113
+ const lines = [];
114
+ if (count <= NAMES_ONLY_THRESHOLD) {
115
+ // Full list with descriptions
116
+ for (const item of items) {
117
+ if (item.description) {
118
+ lines.push(`- ${item.name} - ${item.description}`);
119
+ }
120
+ else {
121
+ lines.push(`- ${item.name}`);
122
+ }
123
+ }
124
+ }
125
+ else if (count <= TRUNCATE_THRESHOLD) {
126
+ // Names only, no descriptions
127
+ for (const item of items) {
128
+ lines.push(`- ${item.name}`);
129
+ }
130
+ }
131
+ else {
132
+ // Truncate and show first 10, then hint
133
+ for (let i = 0; i < 10; i++) {
134
+ lines.push(`- ${items[i].name}`);
135
+ }
136
+ lines.push(`- ... and ${count - 10} more`);
137
+ lines.push(`Run \`npx dot-agents list ${itemType}\` for full list`);
138
+ }
139
+ return lines.join("\n");
140
+ }
141
+ /**
142
+ * Format environment context as markdown for injection into persona prompt.
143
+ *
144
+ * Example output:
145
+ * ```markdown
146
+ * ## Your Environment
147
+ *
148
+ * **Project:** docs (registered as @docs) ○ daemon stopped
149
+ *
150
+ * **Personas:** (3)
151
+ * - dottie - Executive assistant
152
+ * - researcher - Deep research with web search
153
+ * - handyman - Routine maintenance fixes
154
+ *
155
+ * **Workflows:** (2)
156
+ * - process-inbox - Process inbox files
157
+ * - daily-review - Review daily sessions
158
+ *
159
+ * **Channels:** (4)
160
+ * #sessions, #issues, #journals, @human
161
+ *
162
+ * **Other Registered Projects:** (2)
163
+ * - @dot-agents ○ daemon stopped
164
+ * - @scoutos ● daemon running (pid 12345)
165
+ * ```
166
+ */
167
+ export function formatEnvironmentContext(context) {
168
+ const lines = [];
169
+ lines.push("## Your Environment");
170
+ lines.push("");
171
+ // Project info with daemon status
172
+ const daemonIndicator = context.daemonRunning
173
+ ? `● daemon running${context.daemonPid ? ` (pid ${context.daemonPid})` : ""}`
174
+ : "○ daemon stopped";
175
+ if (context.projectName) {
176
+ lines.push(`**Project:** ${context.projectName} (registered as @${context.projectName}) ${daemonIndicator}`);
177
+ }
178
+ else {
179
+ lines.push(`**Project:** (not registered) ${daemonIndicator}`);
180
+ }
181
+ lines.push("");
182
+ // Personas
183
+ lines.push(`**Personas:** (${context.personas.length})`);
184
+ lines.push(formatList(context.personas, "personas"));
185
+ lines.push("");
186
+ // Workflows
187
+ lines.push(`**Workflows:** (${context.workflows.length})`);
188
+ lines.push(formatList(context.workflows, "workflows"));
189
+ lines.push("");
190
+ // Channels - format inline if short, otherwise as list
191
+ lines.push(`**Channels:** (${context.channels.length})`);
192
+ if (context.channels.length === 0) {
193
+ lines.push("(none)");
194
+ }
195
+ else if (context.channels.length <= 10) {
196
+ // Inline format for short lists
197
+ lines.push(context.channels.map((c) => c.name).join(", "));
198
+ }
199
+ else {
200
+ lines.push(formatList(context.channels, "channels"));
201
+ }
202
+ lines.push("");
203
+ // Registered projects (other projects you can communicate with)
204
+ const otherProjects = context.registeredProjects.filter((p) => p.name !== context.projectName);
205
+ if (otherProjects.length > 0) {
206
+ lines.push(`**Other Registered Projects:** (${otherProjects.length})`);
207
+ for (const project of otherProjects) {
208
+ const daemonStatus = project.daemonRunning
209
+ ? `● daemon running${project.daemonPid ? ` (pid ${project.daemonPid})` : ""}`
210
+ : "○ daemon stopped";
211
+ lines.push(`- @${project.name} ${daemonStatus}`);
212
+ }
213
+ }
214
+ return lines.join("\n");
215
+ }
216
+ /**
217
+ * Build and format environment context as markdown.
218
+ * Convenience function that combines buildEnvironmentContext and formatEnvironmentContext.
219
+ */
220
+ export async function getEnvironmentContextMarkdown(config) {
221
+ const context = await buildEnvironmentContext(config);
222
+ return formatEnvironmentContext(context);
223
+ }
224
+ //# sourceMappingURL=environment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../src/lib/environment.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,10 @@ export interface ParsedMarkdown<T> {
7
7
  /** Markdown body content (after frontmatter) */
8
8
  body: string;
9
9
  }
10
+ /**
11
+ * Check if content has YAML frontmatter
12
+ */
13
+ export declare function hasFrontmatter(content: string): boolean;
10
14
  /**
11
15
  * Parse YAML frontmatter from a markdown file
12
16
  */
@@ -15,4 +19,8 @@ export declare function parseFrontmatter<T>(content: string): ParsedMarkdown<T>;
15
19
  * Load and parse a markdown file with YAML frontmatter
16
20
  */
17
21
  export declare function loadMarkdownFile<T>(filePath: string): Promise<ParsedMarkdown<T>>;
22
+ /**
23
+ * Stringify frontmatter and body back to markdown format
24
+ */
25
+ export declare function stringifyFrontmatter<T>(frontmatter: T, body: string): string;
18
26
  //# sourceMappingURL=frontmatter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"frontmatter.d.ts","sourceRoot":"","sources":["../../src/lib/frontmatter.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,8BAA8B;IAC9B,WAAW,EAAE,CAAC,CAAC;IACf,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,CAetE;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,CAAC,EACtC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAG5B"}
1
+ {"version":3,"file":"frontmatter.d.ts","sourceRoot":"","sources":["../../src/lib/frontmatter.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,8BAA8B;IAC9B,WAAW,EAAE,CAAC,CAAC;IACf,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,CActE;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,CAAC,EACtC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAG5B;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAG5E"}
@@ -1,11 +1,17 @@
1
1
  import { readFile } from "node:fs/promises";
2
- import { parse as parseYaml } from "yaml";
2
+ import { parse as parseYaml, stringify as stringifyYaml } from "yaml";
3
+ const FRONTMATTER_REGEX = /^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/;
4
+ /**
5
+ * Check if content has YAML frontmatter
6
+ */
7
+ export function hasFrontmatter(content) {
8
+ return FRONTMATTER_REGEX.test(content);
9
+ }
3
10
  /**
4
11
  * Parse YAML frontmatter from a markdown file
5
12
  */
6
13
  export function parseFrontmatter(content) {
7
- const frontmatterRegex = /^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/;
8
- const match = content.match(frontmatterRegex);
14
+ const match = content.match(FRONTMATTER_REGEX);
9
15
  if (!match) {
10
16
  throw new Error("No YAML frontmatter found");
11
17
  }
@@ -23,4 +29,11 @@ export async function loadMarkdownFile(filePath) {
23
29
  const content = await readFile(filePath, "utf-8");
24
30
  return parseFrontmatter(content);
25
31
  }
32
+ /**
33
+ * Stringify frontmatter and body back to markdown format
34
+ */
35
+ export function stringifyFrontmatter(frontmatter, body) {
36
+ const yamlContent = stringifyYaml(frontmatter, { indent: 2 }).trim();
37
+ return `---\n${yamlContent}\n---\n\n${body}`;
38
+ }
26
39
  //# sourceMappingURL=frontmatter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"frontmatter.js","sourceRoot":"","sources":["../../src/lib/frontmatter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAY1C;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAI,OAAe;IACjD,MAAM,gBAAgB,GAAG,6CAA6C,CAAC;IACvE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAE9C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC;IACpC,MAAM,WAAW,GAAG,SAAS,CAAC,WAAW,CAAM,CAAC;IAEhD,OAAO;QACL,WAAW;QACX,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;KAClB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAAgB;IAEhB,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAClD,OAAO,gBAAgB,CAAI,OAAO,CAAC,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"frontmatter.js","sourceRoot":"","sources":["../../src/lib/frontmatter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,MAAM,CAAC;AAEtE,MAAM,iBAAiB,GAAG,6CAA6C,CAAC;AAYxE;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,OAAO,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAI,OAAe;IACjD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAE/C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC;IACpC,MAAM,WAAW,GAAG,SAAS,CAAC,WAAW,CAAM,CAAC;IAEhD,OAAO;QACL,WAAW;QACX,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;KAClB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAAgB;IAEhB,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAClD,OAAO,gBAAgB,CAAI,OAAO,CAAC,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAI,WAAc,EAAE,IAAY;IAClE,MAAM,WAAW,GAAG,aAAa,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACrE,OAAO,QAAQ,WAAW,YAAY,IAAI,EAAE,CAAC;AAC/C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=frontmatter.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frontmatter.test.d.ts","sourceRoot":"","sources":["../../src/lib/frontmatter.test.ts"],"names":[],"mappings":""}