@agtd/agent 0.1.2 → 0.1.3

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 (110) hide show
  1. package/dist/agent.js +6 -49
  2. package/dist/{chunk-24ORBJSI.js → chunk-RJLNNX7L.js} +489 -32
  3. package/dist/cli.js +186 -120
  4. package/package.json +2 -1
  5. package/dist/__tests__/codexAdapterFindFile.test.d.ts +0 -2
  6. package/dist/__tests__/codexAdapterFindFile.test.d.ts.map +0 -1
  7. package/dist/__tests__/codexAdapterFindFile.test.js +0 -298
  8. package/dist/__tests__/codexAdapterFindFile.test.js.map +0 -1
  9. package/dist/__tests__/enrichers.test.d.ts +0 -2
  10. package/dist/__tests__/enrichers.test.d.ts.map +0 -1
  11. package/dist/__tests__/enrichers.test.js +0 -47
  12. package/dist/__tests__/enrichers.test.js.map +0 -1
  13. package/dist/__tests__/tmux.integration.test.d.ts +0 -2
  14. package/dist/__tests__/tmux.integration.test.d.ts.map +0 -1
  15. package/dist/__tests__/tmux.integration.test.js +0 -112
  16. package/dist/__tests__/tmux.integration.test.js.map +0 -1
  17. package/dist/__tests__/tmux.test.d.ts +0 -2
  18. package/dist/__tests__/tmux.test.d.ts.map +0 -1
  19. package/dist/__tests__/tmux.test.js +0 -26
  20. package/dist/__tests__/tmux.test.js.map +0 -1
  21. package/dist/__tests__/transcriptAdapters.test.d.ts +0 -2
  22. package/dist/__tests__/transcriptAdapters.test.d.ts.map +0 -1
  23. package/dist/__tests__/transcriptAdapters.test.js +0 -133
  24. package/dist/__tests__/transcriptAdapters.test.js.map +0 -1
  25. package/dist/adapters/claude-code.d.ts +0 -3
  26. package/dist/adapters/claude-code.d.ts.map +0 -1
  27. package/dist/adapters/claude-code.js +0 -48
  28. package/dist/adapters/claude-code.js.map +0 -1
  29. package/dist/adapters/codex.d.ts +0 -3
  30. package/dist/adapters/codex.d.ts.map +0 -1
  31. package/dist/adapters/codex.js +0 -33
  32. package/dist/adapters/codex.js.map +0 -1
  33. package/dist/adapters/generic.d.ts +0 -3
  34. package/dist/adapters/generic.d.ts.map +0 -1
  35. package/dist/adapters/generic.js +0 -38
  36. package/dist/adapters/generic.js.map +0 -1
  37. package/dist/adapters/index.d.ts +0 -7
  38. package/dist/adapters/index.d.ts.map +0 -1
  39. package/dist/adapters/index.js +0 -12
  40. package/dist/adapters/index.js.map +0 -1
  41. package/dist/agent.d.ts +0 -3
  42. package/dist/agent.d.ts.map +0 -1
  43. package/dist/agent.js.map +0 -1
  44. package/dist/cli.d.ts +0 -11
  45. package/dist/cli.d.ts.map +0 -1
  46. package/dist/cli.js.map +0 -1
  47. package/dist/config.d.ts +0 -26
  48. package/dist/config.d.ts.map +0 -1
  49. package/dist/config.js +0 -48
  50. package/dist/config.js.map +0 -1
  51. package/dist/enrichers/git.d.ts +0 -6
  52. package/dist/enrichers/git.d.ts.map +0 -1
  53. package/dist/enrichers/git.js +0 -20
  54. package/dist/enrichers/git.js.map +0 -1
  55. package/dist/enrichers/pr.d.ts +0 -2
  56. package/dist/enrichers/pr.d.ts.map +0 -1
  57. package/dist/enrichers/pr.js +0 -10
  58. package/dist/enrichers/pr.js.map +0 -1
  59. package/dist/enrichers/transcript.d.ts +0 -8
  60. package/dist/enrichers/transcript.d.ts.map +0 -1
  61. package/dist/enrichers/transcript.js +0 -33
  62. package/dist/enrichers/transcript.js.map +0 -1
  63. package/dist/heartbeat.d.ts +0 -4
  64. package/dist/heartbeat.d.ts.map +0 -1
  65. package/dist/heartbeat.js +0 -15
  66. package/dist/heartbeat.js.map +0 -1
  67. package/dist/init.d.ts +0 -10
  68. package/dist/init.d.ts.map +0 -1
  69. package/dist/init.js +0 -70
  70. package/dist/init.js.map +0 -1
  71. package/dist/register.d.ts +0 -3
  72. package/dist/register.d.ts.map +0 -1
  73. package/dist/register.js +0 -22
  74. package/dist/register.js.map +0 -1
  75. package/dist/sessionScanner.d.ts +0 -20
  76. package/dist/sessionScanner.d.ts.map +0 -1
  77. package/dist/sessionScanner.js +0 -479
  78. package/dist/sessionScanner.js.map +0 -1
  79. package/dist/spawn.d.ts +0 -8
  80. package/dist/spawn.d.ts.map +0 -1
  81. package/dist/spawn.js +0 -73
  82. package/dist/spawn.js.map +0 -1
  83. package/dist/syncProjects.d.ts +0 -3
  84. package/dist/syncProjects.d.ts.map +0 -1
  85. package/dist/syncProjects.js +0 -91
  86. package/dist/syncProjects.js.map +0 -1
  87. package/dist/terminalBridge.d.ts +0 -4
  88. package/dist/terminalBridge.d.ts.map +0 -1
  89. package/dist/terminalBridge.js +0 -42
  90. package/dist/terminalBridge.js.map +0 -1
  91. package/dist/tmux.d.ts +0 -21
  92. package/dist/tmux.d.ts.map +0 -1
  93. package/dist/tmux.js +0 -89
  94. package/dist/tmux.js.map +0 -1
  95. package/dist/transcriptAdapters/claude-code.d.ts +0 -3
  96. package/dist/transcriptAdapters/claude-code.d.ts.map +0 -1
  97. package/dist/transcriptAdapters/claude-code.js +0 -147
  98. package/dist/transcriptAdapters/claude-code.js.map +0 -1
  99. package/dist/transcriptAdapters/codex.d.ts +0 -3
  100. package/dist/transcriptAdapters/codex.d.ts.map +0 -1
  101. package/dist/transcriptAdapters/codex.js +0 -251
  102. package/dist/transcriptAdapters/codex.js.map +0 -1
  103. package/dist/transcriptAdapters/index.d.ts +0 -17
  104. package/dist/transcriptAdapters/index.d.ts.map +0 -1
  105. package/dist/transcriptAdapters/index.js +0 -9
  106. package/dist/transcriptAdapters/index.js.map +0 -1
  107. package/dist/wsClient.d.ts +0 -6
  108. package/dist/wsClient.d.ts.map +0 -1
  109. package/dist/wsClient.js +0 -156
  110. package/dist/wsClient.js.map +0 -1
package/dist/config.d.ts DELETED
@@ -1,26 +0,0 @@
1
- export interface AgentConfig {
2
- deviceId: string;
3
- deviceName: string;
4
- backendUrl: string;
5
- apiKey: string;
6
- projects: Array<{
7
- name: string;
8
- path: string;
9
- }>;
10
- /** Directories to scan for projects (each subdirectory = a project) */
11
- projectDirs: string[];
12
- }
13
- export interface CliOverrides {
14
- backend?: string;
15
- apiKey?: string;
16
- deviceName?: string;
17
- }
18
- /** Find the config file path in priority order */
19
- export declare function resolveConfigPath(cliPath?: string): string | null;
20
- /** Parse a config file into AgentConfig */
21
- export declare function parseConfigFile(configPath: string): AgentConfig;
22
- /** Apply CLI flag overrides to a config */
23
- export declare function mergeCliOverrides(config: AgentConfig, overrides: CliOverrides): AgentConfig;
24
- /** Original loadConfig — kept for backwards compat in monorepo dev */
25
- export declare function loadConfig(cliPath?: string): AgentConfig;
26
- //# sourceMappingURL=config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChD,uEAAuE;IACvE,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,kDAAkD;AAClD,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAajE;AAED,2CAA2C;AAC3C,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,CAU/D;AAED,2CAA2C;AAC3C,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,WAAW,EACnB,SAAS,EAAE,YAAY,GACtB,WAAW,CAOb;AAED,sEAAsE;AACtE,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,WAAW,CAMxD"}
package/dist/config.js DELETED
@@ -1,48 +0,0 @@
1
- import { readFileSync, existsSync } from "node:fs";
2
- import { hostname, platform, homedir } from "node:os";
3
- import { resolve } from "node:path";
4
- /** Find the config file path in priority order */
5
- export function resolveConfigPath(cliPath) {
6
- if (cliPath)
7
- return cliPath;
8
- const envPath = process.env["AGENT_CONFIG"];
9
- if (envPath && existsSync(envPath))
10
- return envPath;
11
- const homePath = resolve(homedir(), ".agtd", "agent.config.json");
12
- if (existsSync(homePath))
13
- return homePath;
14
- const cwdPath = resolve(process.cwd(), "agent.config.json");
15
- if (existsSync(cwdPath))
16
- return cwdPath;
17
- return null;
18
- }
19
- /** Parse a config file into AgentConfig */
20
- export function parseConfigFile(configPath) {
21
- const raw = JSON.parse(readFileSync(configPath, "utf-8"));
22
- return {
23
- deviceId: raw.deviceId ?? hostname(),
24
- deviceName: raw.deviceName ?? `${hostname()}-${platform()}`,
25
- backendUrl: raw.backendUrl ?? "http://localhost:3001",
26
- apiKey: raw.apiKey ?? "",
27
- projects: Array.isArray(raw.projects) ? raw.projects : [],
28
- projectDirs: Array.isArray(raw.projectDirs) ? raw.projectDirs : [],
29
- };
30
- }
31
- /** Apply CLI flag overrides to a config */
32
- export function mergeCliOverrides(config, overrides) {
33
- return {
34
- ...config,
35
- ...(overrides.backend && { backendUrl: overrides.backend }),
36
- ...(overrides.apiKey && { apiKey: overrides.apiKey }),
37
- ...(overrides.deviceName && { deviceName: overrides.deviceName }),
38
- };
39
- }
40
- /** Original loadConfig — kept for backwards compat in monorepo dev */
41
- export function loadConfig(cliPath) {
42
- const configPath = resolveConfigPath(cliPath);
43
- if (!configPath) {
44
- throw new Error("No config file found");
45
- }
46
- return parseConfigFile(configPath);
47
- }
48
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBpC,kDAAkD;AAClD,MAAM,UAAU,iBAAiB,CAAC,OAAgB;IAChD,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC;IAE5B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC5C,IAAI,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IAEnD,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC;IAClE,IAAI,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAE1C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,mBAAmB,CAAC,CAAC;IAC5D,IAAI,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IAExC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,eAAe,CAAC,UAAkB;IAChD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1D,OAAO;QACL,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,QAAQ,EAAE;QACpC,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,GAAG,QAAQ,EAAE,IAAI,QAAQ,EAAE,EAAE;QAC3D,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,uBAAuB;QACrD,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE;QACxB,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;QACzD,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;KACnE,CAAC;AACJ,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,iBAAiB,CAC/B,MAAmB,EACnB,SAAuB;IAEvB,OAAO;QACL,GAAG,MAAM;QACT,GAAG,CAAC,SAAS,CAAC,OAAO,IAAI,EAAE,UAAU,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC;QAC3D,GAAG,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC;QACrD,GAAG,CAAC,SAAS,CAAC,UAAU,IAAI,EAAE,UAAU,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC;KAClE,CAAC;AACJ,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,UAAU,CAAC,OAAgB;IACzC,MAAM,UAAU,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,eAAe,CAAC,UAAU,CAAC,CAAC;AACrC,CAAC"}
@@ -1,6 +0,0 @@
1
- export declare function getGitInfo(cwd: string): {
2
- repoName: string;
3
- branch: string;
4
- remoteUrl: string;
5
- } | null;
6
- //# sourceMappingURL=git.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/enrichers/git.ts"],"names":[],"mappings":"AAGA,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAatG"}
@@ -1,20 +0,0 @@
1
- import { execSync } from "node:child_process";
2
- import { existsSync } from "node:fs";
3
- export function getGitInfo(cwd) {
4
- if (!existsSync(`${cwd}/.git`))
5
- return null;
6
- try {
7
- const branch = execSync("git rev-parse --abbrev-ref HEAD", { cwd, encoding: "utf-8", timeout: 3000 }).trim();
8
- const repoName = execSync("git rev-parse --show-toplevel", { cwd, encoding: "utf-8", timeout: 3000 }).trim().split("/").pop() || "";
9
- let remoteUrl = "";
10
- try {
11
- remoteUrl = execSync("git remote get-url origin", { cwd, encoding: "utf-8", timeout: 3000 }).trim();
12
- }
13
- catch { }
14
- return { repoName, branch, remoteUrl };
15
- }
16
- catch {
17
- return null;
18
- }
19
- }
20
- //# sourceMappingURL=git.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/enrichers/git.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,iCAAiC,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7G,MAAM,QAAQ,GAAG,QAAQ,CAAC,+BAA+B,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;QACpI,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,SAAS,GAAG,QAAQ,CAAC,2BAA2B,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACtG,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QACV,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare function derivePrUrl(remoteUrl: string, branch: string): string | null;
2
- //# sourceMappingURL=pr.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pr.d.ts","sourceRoot":"","sources":["../../src/enrichers/pr.ts"],"names":[],"mappings":"AAAA,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAM5E"}
@@ -1,10 +0,0 @@
1
- export function derivePrUrl(remoteUrl, branch) {
2
- if (!remoteUrl || !branch)
3
- return null;
4
- const match = remoteUrl.match(/github\.com[:/](.+?)\/(.+?)(?:\.git)?$/);
5
- if (!match)
6
- return null;
7
- const [, owner, repo] = match;
8
- return `https://github.com/${owner}/${repo}/pulls?q=head:${encodeURIComponent(branch)}`;
9
- }
10
- //# sourceMappingURL=pr.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pr.js","sourceRoot":"","sources":["../../src/enrichers/pr.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,WAAW,CAAC,SAAiB,EAAE,MAAc;IAC3D,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACvC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;IACxE,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC;IAC9B,OAAO,sBAAsB,KAAK,IAAI,IAAI,iBAAiB,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;AAC1F,CAAC"}
@@ -1,8 +0,0 @@
1
- export interface TranscriptInfo {
2
- model: string | null;
3
- contextPercent: number | null;
4
- task: string | null;
5
- mcpServers: string[] | null;
6
- }
7
- export declare function parseTranscript(output: string): TranscriptInfo;
8
- //# sourceMappingURL=transcript.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transcript.d.ts","sourceRoot":"","sources":["../../src/enrichers/transcript.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CAC7B;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CA8B9D"}
@@ -1,33 +0,0 @@
1
- export function parseTranscript(output) {
2
- const result = { model: null, contextPercent: null, task: null, mcpServers: null };
3
- if (!output)
4
- return result;
5
- // Model detection
6
- const modelPatterns = [
7
- /model[:\s]+([a-z]+-(?:opus|sonnet|haiku)-[\d.-]+)/i,
8
- /(claude-(?:opus|sonnet|haiku)-[\d.-]+)/i,
9
- /(gpt-4[o\w-]*)/i,
10
- /(o[13]-\w+)/i,
11
- ];
12
- for (const pattern of modelPatterns) {
13
- const match = output.match(pattern);
14
- if (match) {
15
- result.model = match[1] || match[0];
16
- break;
17
- }
18
- }
19
- // Context usage
20
- const contextMatch = output.match(/context[:\s]*(\d{1,3})%/i) || output.match(/(\d{1,3})%\s*(?:context|of context)/i);
21
- if (contextMatch) {
22
- const pct = parseInt(contextMatch[1]);
23
- if (pct >= 0 && pct <= 100)
24
- result.contextPercent = pct;
25
- }
26
- // MCP servers
27
- const mcpMatch = output.match(/mcp[:\s]*\[([^\]]+)\]/i);
28
- if (mcpMatch) {
29
- result.mcpServers = mcpMatch[1].split(/[,\s]+/).map(s => s.trim()).filter(Boolean);
30
- }
31
- return result;
32
- }
33
- //# sourceMappingURL=transcript.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transcript.js","sourceRoot":"","sources":["../../src/enrichers/transcript.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,eAAe,CAAC,MAAc;IAC5C,MAAM,MAAM,GAAmB,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IACnG,IAAI,CAAC,MAAM;QAAE,OAAO,MAAM,CAAC;IAE3B,kBAAkB;IAClB,MAAM,aAAa,GAAG;QACpB,oDAAoD;QACpD,yCAAyC;QACzC,iBAAiB;QACjB,cAAc;KACf,CAAC;IACF,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACpC,IAAI,KAAK,EAAE,CAAC;YAAC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;YAAC,MAAM;QAAC,CAAC;IAC5D,CAAC;IAED,gBAAgB;IAChB,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;IACtH,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,GAAG,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QACtC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG;YAAE,MAAM,CAAC,cAAc,GAAG,GAAG,CAAC;IAC1D,CAAC;IAED,cAAc;IACd,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IACxD,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACrF,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1,4 +0,0 @@
1
- import type { HeartbeatPayload } from "@agtd/shared";
2
- import type { AgentConfig } from "./config.js";
3
- export declare function sendHeartbeat(config: AgentConfig, payload: HeartbeatPayload): Promise<void>;
4
- //# sourceMappingURL=heartbeat.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"heartbeat.d.ts","sourceRoot":"","sources":["../src/heartbeat.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,wBAAsB,aAAa,CACjC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,IAAI,CAAC,CAcf"}
package/dist/heartbeat.js DELETED
@@ -1,15 +0,0 @@
1
- export async function sendHeartbeat(config, payload) {
2
- const res = await fetch(`${config.backendUrl}/api/session-heartbeat`, {
3
- method: "POST",
4
- headers: {
5
- "Content-Type": "application/json",
6
- "x-api-key": config.apiKey,
7
- "x-device-id": config.deviceId,
8
- },
9
- body: JSON.stringify(payload),
10
- });
11
- if (!res.ok) {
12
- throw new Error(`Heartbeat failed: ${res.status} ${res.statusText}`);
13
- }
14
- }
15
- //# sourceMappingURL=heartbeat.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"heartbeat.js","sourceRoot":"","sources":["../src/heartbeat.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAmB,EACnB,OAAyB;IAEzB,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,CAAC,UAAU,wBAAwB,EAAE;QACpE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,WAAW,EAAE,MAAM,CAAC,MAAM;YAC1B,aAAa,EAAE,MAAM,CAAC,QAAQ;SAC/B;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;KAC9B,CAAC,CAAC;IAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;IACvE,CAAC;AACH,CAAC"}
package/dist/init.d.ts DELETED
@@ -1,10 +0,0 @@
1
- import type { AgentConfig } from "./config.js";
2
- export interface WizardAnswers {
3
- backendUrl: string;
4
- apiKey: string;
5
- deviceName: string;
6
- projectDirs: string;
7
- }
8
- export declare function buildConfigFromAnswers(answers: WizardAnswers): AgentConfig;
9
- export declare function runInitWizard(): Promise<AgentConfig>;
10
- //# sourceMappingURL=init.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,aAAa,GAAG,WAAW,CAc1E;AAWD,wBAAsB,aAAa,IAAI,OAAO,CAAC,WAAW,CAAC,CAiD1D"}
package/dist/init.js DELETED
@@ -1,70 +0,0 @@
1
- import { createInterface } from "node:readline/promises";
2
- import { mkdirSync, writeFileSync } from "node:fs";
3
- import { resolve } from "node:path";
4
- import { hostname, platform, homedir } from "node:os";
5
- export function buildConfigFromAnswers(answers) {
6
- return {
7
- deviceId: hostname(),
8
- deviceName: answers.deviceName || `${hostname()}-${platform()}`,
9
- backendUrl: answers.backendUrl,
10
- apiKey: answers.apiKey,
11
- projects: [],
12
- projectDirs: answers.projectDirs
13
- ? answers.projectDirs
14
- .split(",")
15
- .map((d) => d.trim())
16
- .filter(Boolean)
17
- : [],
18
- };
19
- }
20
- async function validateBackend(url) {
21
- try {
22
- const res = await fetch(`${url}/health`);
23
- return res.ok;
24
- }
25
- catch {
26
- return false;
27
- }
28
- }
29
- export async function runInitWizard() {
30
- const rl = createInterface({ input: process.stdin, output: process.stdout });
31
- console.log("\nNo config found. Let's set up your agent.\n");
32
- try {
33
- const backendUrl = await rl.question("Backend URL: ");
34
- if (!backendUrl) {
35
- throw new Error("Backend URL is required");
36
- }
37
- process.stdout.write("Checking backend... ");
38
- const reachable = await validateBackend(backendUrl);
39
- if (!reachable) {
40
- console.log("unreachable (continuing anyway)");
41
- }
42
- else {
43
- console.log("ok");
44
- }
45
- const apiKey = await rl.question("API Key: ");
46
- if (!apiKey) {
47
- throw new Error("API Key is required");
48
- }
49
- const defaultName = `${hostname()}-${platform()}`;
50
- const deviceName = await rl.question(`Device name (${defaultName}): `);
51
- const projectDirs = await rl.question("Project directories (comma-separated, optional): ");
52
- const config = buildConfigFromAnswers({
53
- backendUrl,
54
- apiKey,
55
- deviceName,
56
- projectDirs,
57
- });
58
- // Save config
59
- const configDir = resolve(homedir(), ".agtd");
60
- const configPath = resolve(configDir, "agent.config.json");
61
- mkdirSync(configDir, { recursive: true });
62
- writeFileSync(configPath, JSON.stringify(config, null, 2) + "\n");
63
- console.log(`\nConfig saved to ${configPath}\n`);
64
- return config;
65
- }
66
- finally {
67
- rl.close();
68
- }
69
- }
70
- //# sourceMappingURL=init.js.map
package/dist/init.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAUtD,MAAM,UAAU,sBAAsB,CAAC,OAAsB;IAC3D,OAAO;QACL,QAAQ,EAAE,QAAQ,EAAE;QACpB,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,GAAG,QAAQ,EAAE,IAAI,QAAQ,EAAE,EAAE;QAC/D,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,QAAQ,EAAE,EAAE;QACZ,WAAW,EAAE,OAAO,CAAC,WAAW;YAC9B,CAAC,CAAC,OAAO,CAAC,WAAW;iBAChB,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;iBACpB,MAAM,CAAC,OAAO,CAAC;YACpB,CAAC,CAAC,EAAE;KACP,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,GAAW;IACxC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC;QACzC,OAAO,GAAG,CAAC,EAAE,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAE7E,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;IAE7D,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QACtD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC7C,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACzC,CAAC;QAED,MAAM,WAAW,GAAG,GAAG,QAAQ,EAAE,IAAI,QAAQ,EAAE,EAAE,CAAC;QAClD,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,WAAW,KAAK,CAAC,CAAC;QAEvE,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,QAAQ,CACnC,mDAAmD,CACpD,CAAC;QAEF,MAAM,MAAM,GAAG,sBAAsB,CAAC;YACpC,UAAU;YACV,MAAM;YACN,UAAU;YACV,WAAW;SACZ,CAAC,CAAC;QAEH,cAAc;QACd,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;QAC3D,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAClE,OAAO,CAAC,GAAG,CAAC,qBAAqB,UAAU,IAAI,CAAC,CAAC;QAEjD,OAAO,MAAM,CAAC;IAChB,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { AgentConfig } from "./config.js";
2
- export declare function registerDevice(config: AgentConfig): Promise<void>;
3
- //# sourceMappingURL=register.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,wBAAsB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBvE"}
package/dist/register.js DELETED
@@ -1,22 +0,0 @@
1
- import { hostname, platform } from "node:os";
2
- export async function registerDevice(config) {
3
- const payload = {
4
- id: config.deviceId,
5
- name: config.deviceName,
6
- host: hostname(),
7
- os: platform(),
8
- };
9
- const res = await fetch(`${config.backendUrl}/api/register-device`, {
10
- method: "POST",
11
- headers: {
12
- "Content-Type": "application/json",
13
- "x-api-key": config.apiKey,
14
- },
15
- body: JSON.stringify(payload),
16
- });
17
- if (!res.ok) {
18
- throw new Error(`Register device failed: ${res.status} ${res.statusText}`);
19
- }
20
- console.log(`Device registered: ${config.deviceId}`);
21
- }
22
- //# sourceMappingURL=register.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"register.js","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAI7C,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAmB;IACtD,MAAM,OAAO,GAA0B;QACrC,EAAE,EAAE,MAAM,CAAC,QAAQ;QACnB,IAAI,EAAE,MAAM,CAAC,UAAU;QACvB,IAAI,EAAE,QAAQ,EAAE;QAChB,EAAE,EAAE,QAAQ,EAAE;KACf,CAAC;IAEF,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,CAAC,UAAU,sBAAsB,EAAE;QAClE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,WAAW,EAAE,MAAM,CAAC,MAAM;SAC3B;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;KAC9B,CAAC,CAAC;IAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,sBAAsB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvD,CAAC"}
@@ -1,20 +0,0 @@
1
- import type { AgentConfig } from "./config.js";
2
- interface DiscoveredSession {
3
- sessionId: string;
4
- project: string;
5
- cwd: string;
6
- branch: string;
7
- model: string;
8
- status: "working" | "idle" | "awaiting_permission";
9
- agentType: string;
10
- pid: number;
11
- tmuxSession: string;
12
- }
13
- /** Discover all agent sessions (Claude Code + Codex) */
14
- export declare function discoverAllSessions(): DiscoveredSession[];
15
- export declare const discoverClaudeSessionsAll: typeof discoverAllSessions;
16
- /** Post heartbeats for all discovered sessions */
17
- export declare function scanAndReportSessions(config: AgentConfig): Promise<void>;
18
- export declare function startSessionScanner(config: AgentConfig): NodeJS.Timeout;
19
- export {};
20
- //# sourceMappingURL=sessionScanner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sessionScanner.d.ts","sourceRoot":"","sources":["../src/sessionScanner.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG/C,UAAU,iBAAiB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,qBAAqB,CAAC;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;CACrB;AAqeD,wDAAwD;AACxD,wBAAgB,mBAAmB,IAAI,iBAAiB,EAAE,CAOzD;AAGD,eAAO,MAAM,yBAAyB,4BAAsB,CAAC;AAE7D,kDAAkD;AAClD,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,IAAI,CAAC,CAoCf;AAID,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAAC,OAAO,CAMvE"}