hivemind-context-governance 1.3.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 (139) hide show
  1. package/CHANGELOG.md +95 -0
  2. package/LICENSE +21 -0
  3. package/README.md +218 -0
  4. package/dist/cli/init.d.ts +23 -0
  5. package/dist/cli/init.d.ts.map +1 -0
  6. package/dist/cli/init.js +175 -0
  7. package/dist/cli/init.js.map +1 -0
  8. package/dist/cli.d.ts +14 -0
  9. package/dist/cli.d.ts.map +1 -0
  10. package/dist/cli.js +162 -0
  11. package/dist/cli.js.map +1 -0
  12. package/dist/dashboard/i18n/en.d.ts +43 -0
  13. package/dist/dashboard/i18n/en.d.ts.map +1 -0
  14. package/dist/dashboard/i18n/en.js +43 -0
  15. package/dist/dashboard/i18n/en.js.map +1 -0
  16. package/dist/dashboard/i18n/index.d.ts +10 -0
  17. package/dist/dashboard/i18n/index.d.ts.map +1 -0
  18. package/dist/dashboard/i18n/index.js +14 -0
  19. package/dist/dashboard/i18n/index.js.map +1 -0
  20. package/dist/dashboard/i18n/vi.d.ts +43 -0
  21. package/dist/dashboard/i18n/vi.d.ts.map +1 -0
  22. package/dist/dashboard/i18n/vi.js +43 -0
  23. package/dist/dashboard/i18n/vi.js.map +1 -0
  24. package/dist/dashboard/server.d.ts +23 -0
  25. package/dist/dashboard/server.d.ts.map +1 -0
  26. package/dist/dashboard/server.js +282 -0
  27. package/dist/dashboard/server.js.map +1 -0
  28. package/dist/hooks/compaction.d.ts +21 -0
  29. package/dist/hooks/compaction.d.ts.map +1 -0
  30. package/dist/hooks/compaction.js +79 -0
  31. package/dist/hooks/compaction.js.map +1 -0
  32. package/dist/hooks/index.d.ts +8 -0
  33. package/dist/hooks/index.d.ts.map +1 -0
  34. package/dist/hooks/index.js +7 -0
  35. package/dist/hooks/index.js.map +1 -0
  36. package/dist/hooks/session-lifecycle.d.ts +28 -0
  37. package/dist/hooks/session-lifecycle.d.ts.map +1 -0
  38. package/dist/hooks/session-lifecycle.js +94 -0
  39. package/dist/hooks/session-lifecycle.js.map +1 -0
  40. package/dist/hooks/tool-gate.d.ts +28 -0
  41. package/dist/hooks/tool-gate.d.ts.map +1 -0
  42. package/dist/hooks/tool-gate.js +152 -0
  43. package/dist/hooks/tool-gate.js.map +1 -0
  44. package/dist/index.d.ts +19 -0
  45. package/dist/index.d.ts.map +1 -0
  46. package/dist/index.js +159 -0
  47. package/dist/index.js.map +1 -0
  48. package/dist/lib/complexity.d.ts +41 -0
  49. package/dist/lib/complexity.d.ts.map +1 -0
  50. package/dist/lib/complexity.js +67 -0
  51. package/dist/lib/complexity.js.map +1 -0
  52. package/dist/lib/context-refresh.d.ts +46 -0
  53. package/dist/lib/context-refresh.d.ts.map +1 -0
  54. package/dist/lib/context-refresh.js +77 -0
  55. package/dist/lib/context-refresh.js.map +1 -0
  56. package/dist/lib/index.d.ts +10 -0
  57. package/dist/lib/index.d.ts.map +1 -0
  58. package/dist/lib/index.js +10 -0
  59. package/dist/lib/index.js.map +1 -0
  60. package/dist/lib/logging.d.ts +13 -0
  61. package/dist/lib/logging.d.ts.map +1 -0
  62. package/dist/lib/logging.js +40 -0
  63. package/dist/lib/logging.js.map +1 -0
  64. package/dist/lib/persistence.d.ts +15 -0
  65. package/dist/lib/persistence.d.ts.map +1 -0
  66. package/dist/lib/persistence.js +62 -0
  67. package/dist/lib/persistence.js.map +1 -0
  68. package/dist/lib/planning-fs.d.ts +34 -0
  69. package/dist/lib/planning-fs.d.ts.map +1 -0
  70. package/dist/lib/planning-fs.js +134 -0
  71. package/dist/lib/planning-fs.js.map +1 -0
  72. package/dist/lib/sentiment.d.ts +31 -0
  73. package/dist/lib/sentiment.d.ts.map +1 -0
  74. package/dist/lib/sentiment.js +158 -0
  75. package/dist/lib/sentiment.js.map +1 -0
  76. package/dist/schemas/brain-state.d.ts +60 -0
  77. package/dist/schemas/brain-state.d.ts.map +1 -0
  78. package/dist/schemas/brain-state.js +176 -0
  79. package/dist/schemas/brain-state.js.map +1 -0
  80. package/dist/schemas/config.d.ts +51 -0
  81. package/dist/schemas/config.d.ts.map +1 -0
  82. package/dist/schemas/config.js +128 -0
  83. package/dist/schemas/config.js.map +1 -0
  84. package/dist/schemas/hierarchy.d.ts +22 -0
  85. package/dist/schemas/hierarchy.d.ts.map +1 -0
  86. package/dist/schemas/hierarchy.js +27 -0
  87. package/dist/schemas/hierarchy.js.map +1 -0
  88. package/dist/schemas/index.d.ts +7 -0
  89. package/dist/schemas/index.d.ts.map +1 -0
  90. package/dist/schemas/index.js +7 -0
  91. package/dist/schemas/index.js.map +1 -0
  92. package/dist/tools/compact-session.d.ts +15 -0
  93. package/dist/tools/compact-session.d.ts.map +1 -0
  94. package/dist/tools/compact-session.js +76 -0
  95. package/dist/tools/compact-session.js.map +1 -0
  96. package/dist/tools/declare-intent.d.ts +15 -0
  97. package/dist/tools/declare-intent.d.ts.map +1 -0
  98. package/dist/tools/declare-intent.js +83 -0
  99. package/dist/tools/declare-intent.js.map +1 -0
  100. package/dist/tools/index.d.ts +14 -0
  101. package/dist/tools/index.d.ts.map +1 -0
  102. package/dist/tools/index.js +14 -0
  103. package/dist/tools/index.js.map +1 -0
  104. package/dist/tools/map-context.d.ts +15 -0
  105. package/dist/tools/map-context.d.ts.map +1 -0
  106. package/dist/tools/map-context.js +85 -0
  107. package/dist/tools/map-context.js.map +1 -0
  108. package/dist/tools/self-rate.d.ts +15 -0
  109. package/dist/tools/self-rate.d.ts.map +1 -0
  110. package/dist/tools/self-rate.js +76 -0
  111. package/dist/tools/self-rate.js.map +1 -0
  112. package/package.json +71 -0
  113. package/src/cli/init.ts +214 -0
  114. package/src/cli.ts +178 -0
  115. package/src/dashboard/i18n/en.ts +43 -0
  116. package/src/dashboard/i18n/index.ts +20 -0
  117. package/src/dashboard/i18n/vi.ts +43 -0
  118. package/src/dashboard/server.ts +372 -0
  119. package/src/hooks/compaction.ts +104 -0
  120. package/src/hooks/index.ts +8 -0
  121. package/src/hooks/session-lifecycle.ts +133 -0
  122. package/src/hooks/tool-gate.ts +205 -0
  123. package/src/index.ts +206 -0
  124. package/src/lib/complexity.ts +96 -0
  125. package/src/lib/context-refresh.ts +107 -0
  126. package/src/lib/index.ts +10 -0
  127. package/src/lib/logging.ts +53 -0
  128. package/src/lib/persistence.ts +83 -0
  129. package/src/lib/planning-fs.ts +187 -0
  130. package/src/lib/sentiment.ts +183 -0
  131. package/src/schemas/brain-state.ts +257 -0
  132. package/src/schemas/config.ts +184 -0
  133. package/src/schemas/hierarchy.ts +58 -0
  134. package/src/schemas/index.ts +7 -0
  135. package/src/tools/compact-session.ts +97 -0
  136. package/src/tools/declare-intent.ts +104 -0
  137. package/src/tools/index.ts +14 -0
  138. package/src/tools/map-context.ts +105 -0
  139. package/src/tools/self-rate.ts +86 -0
package/dist/cli.js ADDED
@@ -0,0 +1,162 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * HiveMind CLI — One-command initialization and management.
4
+ *
5
+ * Usage:
6
+ * npx hivemind-context-governance — Initialize (default)
7
+ * npx hivemind-context-governance init — Same as above
8
+ * npx hivemind-context-governance status — Show current brain state
9
+ *
10
+ * CRITICAL: NO console.log in library code. CLI is the ONLY
11
+ * place where console output is allowed (it IS the user interface).
12
+ */
13
+ import { argv } from "node:process";
14
+ import { initProject } from "./cli/init.js";
15
+ import { createStateManager, loadConfig } from "./lib/persistence.js";
16
+ import { listArchives } from "./lib/planning-fs.js";
17
+ const COMMANDS = ["init", "status", "compact", "dashboard", "help"];
18
+ function printHelp() {
19
+ const help = `
20
+ HiveMind Context Governance — CLI
21
+
22
+ Usage:
23
+ npx hivemind-context-governance [command] [options]
24
+
25
+ Commands:
26
+ (default) Initialize HiveMind in current project
27
+ init Same as default — initialize project
28
+ status Show current session and governance state
29
+ compact Archive current session and reset
30
+ dashboard Launch dashboard server
31
+ help Show this help message
32
+
33
+ Options:
34
+ --lang <en|vi> Language (default: en)
35
+ --mode <permissive|assisted|strict> Governance mode (default: assisted)
36
+ --expert <beginner|intermediate|advanced|expert> Expert level (default: intermediate)
37
+ --style <explanatory|outline|skeptical|architecture|minimal> Output style (default: explanatory)
38
+ --code-review Require code review before accepting
39
+ --tdd Enforce test-driven development
40
+
41
+ Examples:
42
+ npx hivemind-context-governance
43
+ npx hivemind-context-governance --mode strict --lang vi
44
+ npx hivemind-context-governance status
45
+ `;
46
+ // CLI is the user interface — console output is allowed here
47
+ // eslint-disable-next-line no-console
48
+ console.log(help);
49
+ }
50
+ async function showStatus(directory) {
51
+ const stateManager = createStateManager(directory);
52
+ const config = await loadConfig(directory);
53
+ const state = await stateManager.load();
54
+ if (!state) {
55
+ // eslint-disable-next-line no-console
56
+ console.log("No active session. Run 'npx hivemind-context-governance' first.");
57
+ return;
58
+ }
59
+ const archives = await listArchives(directory);
60
+ const status = `
61
+ ┌─ HiveMind Status ────────────────────────┐
62
+ │ Session: ${state.session.id.padEnd(30)}│
63
+ │ Status: ${state.session.governance_status.padEnd(30)}│
64
+ │ Mode: ${state.session.mode.padEnd(30)}│
65
+ │ Govern: ${config.governance_mode.padEnd(30)}│
66
+ ├─ Hierarchy ──────────────────────────────┤
67
+ │ Trajectory: ${(state.hierarchy.trajectory || "(none)").padEnd(27)}│
68
+ │ Tactic: ${(state.hierarchy.tactic || "(none)").padEnd(27)}│
69
+ │ Action: ${(state.hierarchy.action || "(none)").padEnd(27)}│
70
+ ├─ Metrics ────────────────────────────────┤
71
+ │ Turns: ${String(state.metrics.turn_count).padEnd(30)}│
72
+ │ Drift: ${(state.metrics.drift_score + "/100").padEnd(30)}│
73
+ │ Files: ${String(state.metrics.files_touched.length).padEnd(30)}│
74
+ │ Updates: ${String(state.metrics.context_updates).padEnd(30)}│
75
+ │ Archive: ${(archives.length + " sessions").padEnd(30)}│
76
+ └──────────────────────────────────────────┘
77
+ `;
78
+ // eslint-disable-next-line no-console
79
+ console.log(status);
80
+ }
81
+ async function main() {
82
+ const args = argv.slice(2);
83
+ // Parse flags from all args
84
+ const flags = {};
85
+ const positionalArgs = [];
86
+ for (let i = 0; i < args.length; i++) {
87
+ if (args[i].startsWith("--") && args[i + 1] && !args[i + 1].startsWith("--")) {
88
+ flags[args[i].slice(2)] = args[i + 1];
89
+ i++;
90
+ }
91
+ else if (args[i].startsWith("--")) {
92
+ flags[args[i].slice(2)] = "";
93
+ }
94
+ else {
95
+ positionalArgs.push(args[i]);
96
+ }
97
+ }
98
+ // Default to "init" when no command given (npx hivemind-context-governance)
99
+ const command = (positionalArgs[0] ?? "init");
100
+ const directory = process.cwd();
101
+ switch (command) {
102
+ case "init":
103
+ await initProject(directory, {
104
+ language: flags["lang"] ?? undefined,
105
+ governanceMode: flags["mode"] ?? undefined,
106
+ expertLevel: flags["expert"] ?? undefined,
107
+ outputStyle: flags["style"] ?? undefined,
108
+ requireCodeReview: "code-review" in flags,
109
+ enforceTdd: "tdd" in flags,
110
+ });
111
+ break;
112
+ case "status":
113
+ await showStatus(directory);
114
+ break;
115
+ case "compact":
116
+ // eslint-disable-next-line no-console
117
+ console.log("Manual compaction: use compact_session tool within OpenCode.");
118
+ break;
119
+ case "dashboard": {
120
+ // Lazy-load dashboard to avoid pulling heavy deps on init/status
121
+ const { createDashboardServer } = await import("./dashboard/server.js");
122
+ const port = flags["port"] ? parseInt(flags["port"], 10) : undefined;
123
+ const server = createDashboardServer(directory, { port });
124
+ try {
125
+ await server.start();
126
+ // eslint-disable-next-line no-console
127
+ console.log(`HiveMind Dashboard running at ${server.url}`);
128
+ // eslint-disable-next-line no-console
129
+ console.log(`\nPress Ctrl+C to stop`);
130
+ // Keep running until interrupted
131
+ await new Promise(() => {
132
+ process.on("SIGINT", async () => {
133
+ // eslint-disable-next-line no-console
134
+ console.log("\nShutting down...");
135
+ await server.stop();
136
+ process.exit(0);
137
+ });
138
+ });
139
+ }
140
+ catch (err) {
141
+ // eslint-disable-next-line no-console
142
+ console.error("Failed to start dashboard:", err);
143
+ process.exit(1);
144
+ }
145
+ break;
146
+ }
147
+ case "help":
148
+ printHelp();
149
+ break;
150
+ default:
151
+ // eslint-disable-next-line no-console
152
+ console.log(`Unknown command: ${command}`);
153
+ printHelp();
154
+ break;
155
+ }
156
+ }
157
+ main().catch((err) => {
158
+ // eslint-disable-next-line no-console
159
+ console.error("Error:", err);
160
+ process.exit(1);
161
+ });
162
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * English i18n strings — HiveMind Dashboard
3
+ */
4
+ export declare const en: {
5
+ dashboard: {
6
+ title: string;
7
+ hierarchy: {
8
+ trajectory: string;
9
+ tactic: string;
10
+ action: string;
11
+ status: {
12
+ pending: string;
13
+ active: string;
14
+ complete: string;
15
+ blocked: string;
16
+ };
17
+ };
18
+ agentLog: {
19
+ title: string;
20
+ empty: string;
21
+ timestamp: string;
22
+ };
23
+ metrics: {
24
+ title: string;
25
+ turns: string;
26
+ drift: string;
27
+ files: string;
28
+ status: string;
29
+ };
30
+ planning: {
31
+ title: string;
32
+ index: string;
33
+ active: string;
34
+ archive: string;
35
+ };
36
+ governance: {
37
+ locked: string;
38
+ open: string;
39
+ warning: string;
40
+ };
41
+ };
42
+ };
43
+ //# sourceMappingURL=en.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../../src/dashboard/i18n/en.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsCd,CAAA"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * English i18n strings — HiveMind Dashboard
3
+ */
4
+ export const en = {
5
+ dashboard: {
6
+ title: "HiveMind Context Governance",
7
+ hierarchy: {
8
+ trajectory: "TRAJECTORY",
9
+ tactic: "TACTIC",
10
+ action: "ACTION",
11
+ status: {
12
+ pending: "PENDING",
13
+ active: "ACTIVE",
14
+ complete: "COMPLETE",
15
+ blocked: "BLOCKED",
16
+ },
17
+ },
18
+ agentLog: {
19
+ title: "AGENT ACTIONS",
20
+ empty: "No actions yet...",
21
+ timestamp: "Time",
22
+ },
23
+ metrics: {
24
+ title: "METRICS",
25
+ turns: "Turns",
26
+ drift: "Drift",
27
+ files: "Files",
28
+ status: "Status",
29
+ },
30
+ planning: {
31
+ title: "PLANNING FILES",
32
+ index: "index.md",
33
+ active: "active.md",
34
+ archive: "Archive",
35
+ },
36
+ governance: {
37
+ locked: "LOCKED",
38
+ open: "OPEN",
39
+ warning: "Declare intent to unlock",
40
+ },
41
+ },
42
+ };
43
+ //# sourceMappingURL=en.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"en.js","sourceRoot":"","sources":["../../../src/dashboard/i18n/en.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAC,MAAM,EAAE,GAAG;IAChB,SAAS,EAAE;QACT,KAAK,EAAE,6BAA6B;QACpC,SAAS,EAAE;YACT,UAAU,EAAE,YAAY;YACxB,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE;gBACN,OAAO,EAAE,SAAS;gBAClB,MAAM,EAAE,QAAQ;gBAChB,QAAQ,EAAE,UAAU;gBACpB,OAAO,EAAE,SAAS;aACnB;SACF;QACD,QAAQ,EAAE;YACR,KAAK,EAAE,eAAe;YACtB,KAAK,EAAE,mBAAmB;YAC1B,SAAS,EAAE,MAAM;SAClB;QACD,OAAO,EAAE;YACP,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,OAAO;YACd,KAAK,EAAE,OAAO;YACd,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,QAAQ;SACjB;QACD,QAAQ,EAAE;YACR,KAAK,EAAE,gBAAgB;YACvB,KAAK,EAAE,UAAU;YACjB,MAAM,EAAE,WAAW;YACnB,OAAO,EAAE,SAAS;SACnB;QACD,UAAU,EAAE;YACV,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,0BAA0B;SACpC;KACF;CACF,CAAA"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * i18n barrel — translation loader
3
+ */
4
+ import { en } from "./en.js";
5
+ import { vi } from "./vi.js";
6
+ export type I18nStrings = typeof en;
7
+ export type SupportedLanguage = "en" | "vi";
8
+ export declare function getTranslations(lang?: SupportedLanguage): I18nStrings;
9
+ export { en, vi };
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dashboard/i18n/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAA;AAE5B,MAAM,MAAM,WAAW,GAAG,OAAO,EAAE,CAAA;AACnC,MAAM,MAAM,iBAAiB,GAAG,IAAI,GAAG,IAAI,CAAA;AAO3C,wBAAgB,eAAe,CAAC,IAAI,GAAE,iBAAwB,GAAG,WAAW,CAE3E;AAED,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,CAAA"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * i18n barrel — translation loader
3
+ */
4
+ import { en } from "./en.js";
5
+ import { vi } from "./vi.js";
6
+ const translations = {
7
+ en,
8
+ vi,
9
+ };
10
+ export function getTranslations(lang = "en") {
11
+ return translations[lang] ?? translations.en;
12
+ }
13
+ export { en, vi };
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/dashboard/i18n/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAA;AAK5B,MAAM,YAAY,GAA2C;IAC3D,EAAE;IACF,EAAE;CACH,CAAA;AAED,MAAM,UAAU,eAAe,CAAC,OAA0B,IAAI;IAC5D,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,EAAE,CAAA;AAC9C,CAAC;AAED,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,CAAA"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Vietnamese i18n strings — HiveMind Dashboard
3
+ */
4
+ export declare const vi: {
5
+ dashboard: {
6
+ title: string;
7
+ hierarchy: {
8
+ trajectory: string;
9
+ tactic: string;
10
+ action: string;
11
+ status: {
12
+ pending: string;
13
+ active: string;
14
+ complete: string;
15
+ blocked: string;
16
+ };
17
+ };
18
+ agentLog: {
19
+ title: string;
20
+ empty: string;
21
+ timestamp: string;
22
+ };
23
+ metrics: {
24
+ title: string;
25
+ turns: string;
26
+ drift: string;
27
+ files: string;
28
+ status: string;
29
+ };
30
+ planning: {
31
+ title: string;
32
+ index: string;
33
+ active: string;
34
+ archive: string;
35
+ };
36
+ governance: {
37
+ locked: string;
38
+ open: string;
39
+ warning: string;
40
+ };
41
+ };
42
+ };
43
+ //# sourceMappingURL=vi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vi.d.ts","sourceRoot":"","sources":["../../../src/dashboard/i18n/vi.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsCd,CAAA"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Vietnamese i18n strings — HiveMind Dashboard
3
+ */
4
+ export const vi = {
5
+ dashboard: {
6
+ title: "HiveMind Quản Trị Ngữ Cảnh",
7
+ hierarchy: {
8
+ trajectory: "MỤC TIÊU",
9
+ tactic: "CHIẾN THUẬT",
10
+ action: "HÀNH ĐỘNG",
11
+ status: {
12
+ pending: "CHỜ",
13
+ active: "ĐANG LÀM",
14
+ complete: "XONG",
15
+ blocked: "BỊ CHẶN",
16
+ },
17
+ },
18
+ agentLog: {
19
+ title: "HÀNH ĐỘNG AGENT",
20
+ empty: "Chưa có hành động...",
21
+ timestamp: "Thời gian",
22
+ },
23
+ metrics: {
24
+ title: "SỐ LIỆU",
25
+ turns: "Lượt",
26
+ drift: "Độ lệch",
27
+ files: "File",
28
+ status: "Trạng thái",
29
+ },
30
+ planning: {
31
+ title: "FILE KẾ HOẠCH",
32
+ index: "index.md",
33
+ active: "active.md",
34
+ archive: "Lưu trữ",
35
+ },
36
+ governance: {
37
+ locked: "KHÓA",
38
+ open: "MỞ",
39
+ warning: "Khai báo ý định để mở khóa",
40
+ },
41
+ },
42
+ };
43
+ //# sourceMappingURL=vi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vi.js","sourceRoot":"","sources":["../../../src/dashboard/i18n/vi.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAC,MAAM,EAAE,GAAG;IAChB,SAAS,EAAE;QACT,KAAK,EAAE,4BAA4B;QACnC,SAAS,EAAE;YACT,UAAU,EAAE,UAAU;YACtB,MAAM,EAAE,aAAa;YACrB,MAAM,EAAE,WAAW;YACnB,MAAM,EAAE;gBACN,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,UAAU;gBAClB,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,SAAS;aACnB;SACF;QACD,QAAQ,EAAE;YACR,KAAK,EAAE,iBAAiB;YACxB,KAAK,EAAE,sBAAsB;YAC7B,SAAS,EAAE,WAAW;SACvB;QACD,OAAO,EAAE;YACP,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,YAAY;SACrB;QACD,QAAQ,EAAE;YACR,KAAK,EAAE,eAAe;YACtB,KAAK,EAAE,UAAU;YACjB,MAAM,EAAE,WAAW;YACnB,OAAO,EAAE,SAAS;SACnB;QACD,UAAU,EAAE;YACV,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,4BAA4B;SACtC;KACF;CACF,CAAA"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * HiveMind Dashboard Backend
3
+ *
4
+ * Provides HTTP API for dashboard data:
5
+ * - GET /api/state — Current brain state
6
+ * - GET /api/active — Active session content
7
+ * - GET /api/index — Project trajectory
8
+ * - GET /api/archives — List of archived sessions
9
+ * - GET /api/archives/:id — Specific archive content
10
+ * - GET /api/metrics — Session metrics
11
+ *
12
+ * Serves static dashboard files in production.
13
+ */
14
+ export interface DashboardServer {
15
+ start(): Promise<void>;
16
+ stop(): Promise<void>;
17
+ url: string;
18
+ }
19
+ export declare function createDashboardServer(projectRoot: string, options?: {
20
+ port?: number;
21
+ host?: string;
22
+ }): DashboardServer;
23
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/dashboard/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAiPH,MAAM,WAAW,eAAe;IAC9B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACrB,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7C,eAAe,CA+DjB"}