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.
- package/CHANGELOG.md +95 -0
- package/LICENSE +21 -0
- package/README.md +218 -0
- package/dist/cli/init.d.ts +23 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/init.js +175 -0
- package/dist/cli/init.js.map +1 -0
- package/dist/cli.d.ts +14 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +162 -0
- package/dist/cli.js.map +1 -0
- package/dist/dashboard/i18n/en.d.ts +43 -0
- package/dist/dashboard/i18n/en.d.ts.map +1 -0
- package/dist/dashboard/i18n/en.js +43 -0
- package/dist/dashboard/i18n/en.js.map +1 -0
- package/dist/dashboard/i18n/index.d.ts +10 -0
- package/dist/dashboard/i18n/index.d.ts.map +1 -0
- package/dist/dashboard/i18n/index.js +14 -0
- package/dist/dashboard/i18n/index.js.map +1 -0
- package/dist/dashboard/i18n/vi.d.ts +43 -0
- package/dist/dashboard/i18n/vi.d.ts.map +1 -0
- package/dist/dashboard/i18n/vi.js +43 -0
- package/dist/dashboard/i18n/vi.js.map +1 -0
- package/dist/dashboard/server.d.ts +23 -0
- package/dist/dashboard/server.d.ts.map +1 -0
- package/dist/dashboard/server.js +282 -0
- package/dist/dashboard/server.js.map +1 -0
- package/dist/hooks/compaction.d.ts +21 -0
- package/dist/hooks/compaction.d.ts.map +1 -0
- package/dist/hooks/compaction.js +79 -0
- package/dist/hooks/compaction.js.map +1 -0
- package/dist/hooks/index.d.ts +8 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +7 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/session-lifecycle.d.ts +28 -0
- package/dist/hooks/session-lifecycle.d.ts.map +1 -0
- package/dist/hooks/session-lifecycle.js +94 -0
- package/dist/hooks/session-lifecycle.js.map +1 -0
- package/dist/hooks/tool-gate.d.ts +28 -0
- package/dist/hooks/tool-gate.d.ts.map +1 -0
- package/dist/hooks/tool-gate.js +152 -0
- package/dist/hooks/tool-gate.js.map +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +159 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/complexity.d.ts +41 -0
- package/dist/lib/complexity.d.ts.map +1 -0
- package/dist/lib/complexity.js +67 -0
- package/dist/lib/complexity.js.map +1 -0
- package/dist/lib/context-refresh.d.ts +46 -0
- package/dist/lib/context-refresh.d.ts.map +1 -0
- package/dist/lib/context-refresh.js +77 -0
- package/dist/lib/context-refresh.js.map +1 -0
- package/dist/lib/index.d.ts +10 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js +10 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/logging.d.ts +13 -0
- package/dist/lib/logging.d.ts.map +1 -0
- package/dist/lib/logging.js +40 -0
- package/dist/lib/logging.js.map +1 -0
- package/dist/lib/persistence.d.ts +15 -0
- package/dist/lib/persistence.d.ts.map +1 -0
- package/dist/lib/persistence.js +62 -0
- package/dist/lib/persistence.js.map +1 -0
- package/dist/lib/planning-fs.d.ts +34 -0
- package/dist/lib/planning-fs.d.ts.map +1 -0
- package/dist/lib/planning-fs.js +134 -0
- package/dist/lib/planning-fs.js.map +1 -0
- package/dist/lib/sentiment.d.ts +31 -0
- package/dist/lib/sentiment.d.ts.map +1 -0
- package/dist/lib/sentiment.js +158 -0
- package/dist/lib/sentiment.js.map +1 -0
- package/dist/schemas/brain-state.d.ts +60 -0
- package/dist/schemas/brain-state.d.ts.map +1 -0
- package/dist/schemas/brain-state.js +176 -0
- package/dist/schemas/brain-state.js.map +1 -0
- package/dist/schemas/config.d.ts +51 -0
- package/dist/schemas/config.d.ts.map +1 -0
- package/dist/schemas/config.js +128 -0
- package/dist/schemas/config.js.map +1 -0
- package/dist/schemas/hierarchy.d.ts +22 -0
- package/dist/schemas/hierarchy.d.ts.map +1 -0
- package/dist/schemas/hierarchy.js +27 -0
- package/dist/schemas/hierarchy.js.map +1 -0
- package/dist/schemas/index.d.ts +7 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +7 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/tools/compact-session.d.ts +15 -0
- package/dist/tools/compact-session.d.ts.map +1 -0
- package/dist/tools/compact-session.js +76 -0
- package/dist/tools/compact-session.js.map +1 -0
- package/dist/tools/declare-intent.d.ts +15 -0
- package/dist/tools/declare-intent.d.ts.map +1 -0
- package/dist/tools/declare-intent.js +83 -0
- package/dist/tools/declare-intent.js.map +1 -0
- package/dist/tools/index.d.ts +14 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +14 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/map-context.d.ts +15 -0
- package/dist/tools/map-context.d.ts.map +1 -0
- package/dist/tools/map-context.js +85 -0
- package/dist/tools/map-context.js.map +1 -0
- package/dist/tools/self-rate.d.ts +15 -0
- package/dist/tools/self-rate.d.ts.map +1 -0
- package/dist/tools/self-rate.js +76 -0
- package/dist/tools/self-rate.js.map +1 -0
- package/package.json +71 -0
- package/src/cli/init.ts +214 -0
- package/src/cli.ts +178 -0
- package/src/dashboard/i18n/en.ts +43 -0
- package/src/dashboard/i18n/index.ts +20 -0
- package/src/dashboard/i18n/vi.ts +43 -0
- package/src/dashboard/server.ts +372 -0
- package/src/hooks/compaction.ts +104 -0
- package/src/hooks/index.ts +8 -0
- package/src/hooks/session-lifecycle.ts +133 -0
- package/src/hooks/tool-gate.ts +205 -0
- package/src/index.ts +206 -0
- package/src/lib/complexity.ts +96 -0
- package/src/lib/context-refresh.ts +107 -0
- package/src/lib/index.ts +10 -0
- package/src/lib/logging.ts +53 -0
- package/src/lib/persistence.ts +83 -0
- package/src/lib/planning-fs.ts +187 -0
- package/src/lib/sentiment.ts +183 -0
- package/src/schemas/brain-state.ts +257 -0
- package/src/schemas/config.ts +184 -0
- package/src/schemas/hierarchy.ts +58 -0
- package/src/schemas/index.ts +7 -0
- package/src/tools/compact-session.ts +97 -0
- package/src/tools/declare-intent.ts +104 -0
- package/src/tools/index.ts +14 -0
- package/src/tools/map-context.ts +105 -0
- 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
|
package/dist/cli.js.map
ADDED
|
@@ -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"}
|