@hivemindai/mcp-server 0.4.4 → 0.5.1

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 (53) hide show
  1. package/dist/cli/commands/context-inject.d.ts +2 -0
  2. package/dist/cli/commands/context-inject.d.ts.map +1 -0
  3. package/dist/cli/commands/context-inject.js +112 -0
  4. package/dist/cli/commands/context-inject.js.map +1 -0
  5. package/dist/cli/commands/git-hook.d.ts +2 -0
  6. package/dist/cli/commands/git-hook.d.ts.map +1 -0
  7. package/dist/cli/commands/git-hook.js +79 -0
  8. package/dist/cli/commands/git-hook.js.map +1 -0
  9. package/dist/cli/commands/guard.d.ts.map +1 -1
  10. package/dist/cli/commands/guard.js +20 -1
  11. package/dist/cli/commands/guard.js.map +1 -1
  12. package/dist/cli/commands/init.d.ts.map +1 -1
  13. package/dist/cli/commands/init.js +51 -8
  14. package/dist/cli/commands/init.js.map +1 -1
  15. package/dist/cli/commands/skill-inject.d.ts +2 -0
  16. package/dist/cli/commands/skill-inject.d.ts.map +1 -0
  17. package/dist/cli/commands/skill-inject.js +175 -0
  18. package/dist/cli/commands/skill-inject.js.map +1 -0
  19. package/dist/cli/commands/skill.d.ts +2 -0
  20. package/dist/cli/commands/skill.d.ts.map +1 -0
  21. package/dist/cli/commands/skill.js +185 -0
  22. package/dist/cli/commands/skill.js.map +1 -0
  23. package/dist/cli/index.js +17 -7
  24. package/dist/cli/index.js.map +1 -1
  25. package/dist/http-db.d.ts.map +1 -1
  26. package/dist/http-db.js +26 -3
  27. package/dist/http-db.js.map +1 -1
  28. package/dist/index.js +9 -1
  29. package/dist/index.js.map +1 -1
  30. package/dist/tools/handoffs.d.ts +5 -0
  31. package/dist/tools/handoffs.d.ts.map +1 -0
  32. package/dist/tools/handoffs.js +160 -0
  33. package/dist/tools/handoffs.js.map +1 -0
  34. package/dist/tools/publish.d.ts.map +1 -1
  35. package/dist/tools/publish.js +11 -1
  36. package/dist/tools/publish.js.map +1 -1
  37. package/dist/tools/schedules.d.ts +5 -0
  38. package/dist/tools/schedules.d.ts.map +1 -0
  39. package/dist/tools/schedules.js +193 -0
  40. package/dist/tools/schedules.js.map +1 -0
  41. package/dist/tools/skills.d.ts +5 -0
  42. package/dist/tools/skills.d.ts.map +1 -0
  43. package/dist/tools/skills.js +273 -0
  44. package/dist/tools/skills.js.map +1 -0
  45. package/dist/tools/status.d.ts +3 -2
  46. package/dist/tools/status.d.ts.map +1 -1
  47. package/dist/tools/status.js +32 -5
  48. package/dist/tools/status.js.map +1 -1
  49. package/dist/tools/workflows.d.ts +5 -0
  50. package/dist/tools/workflows.d.ts.map +1 -0
  51. package/dist/tools/workflows.js +254 -0
  52. package/dist/tools/workflows.js.map +1 -0
  53. package/package.json +3 -3
@@ -0,0 +1,2 @@
1
+ export declare function contextInject(): Promise<void>;
2
+ //# sourceMappingURL=context-inject.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-inject.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/context-inject.ts"],"names":[],"mappings":"AAkBA,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CA0GnD"}
@@ -0,0 +1,112 @@
1
+ import { readFileSync, existsSync } from "node:fs";
2
+ import { join } from "node:path";
3
+ function loadCredentials() {
4
+ const credPath = join(process.env.HOME ?? process.env.USERPROFILE ?? ".", ".hivemind", "credentials.json");
5
+ if (!existsSync(credPath))
6
+ return null;
7
+ try {
8
+ const creds = JSON.parse(readFileSync(credPath, "utf-8"));
9
+ return { api_key: creds.api_key, api_url: creds.api_url };
10
+ }
11
+ catch {
12
+ return null;
13
+ }
14
+ }
15
+ export async function contextInject() {
16
+ const creds = loadCredentials();
17
+ if (!creds) {
18
+ console.error("Not logged in. Run: hivemind login");
19
+ process.exit(1);
20
+ }
21
+ try {
22
+ const res = await fetch(`${creds.api_url}/v1/intelligence/context`, {
23
+ headers: {
24
+ Authorization: `Bearer ${creds.api_key}`,
25
+ },
26
+ });
27
+ if (!res.ok) {
28
+ console.error(`Failed to fetch context: ${res.status}`);
29
+ process.exit(1);
30
+ }
31
+ const ctx = await res.json();
32
+ const sections = [];
33
+ sections.push("=== Hivemind Session Context ===\n");
34
+ // Active tasks
35
+ if (ctx.active_tasks?.length > 0) {
36
+ sections.push(`Active Tasks (${ctx.active_tasks.length}):`);
37
+ for (const t of ctx.active_tasks) {
38
+ sections.push(` - [${t.channel}] ${t.description ?? t.id} (by ${t.source?.agent ?? "unknown"})`);
39
+ }
40
+ sections.push("");
41
+ }
42
+ // Recent completions
43
+ if (ctx.recent_completions?.length > 0) {
44
+ sections.push(`Recent Completions (${ctx.recent_completions.length}):`);
45
+ for (const c of ctx.recent_completions) {
46
+ const files = c.files_changed ? ` [${c.files_changed.join(", ")}]` : "";
47
+ sections.push(` - ${c.description ?? c.id}${files}`);
48
+ }
49
+ sections.push("");
50
+ }
51
+ // Recent decisions
52
+ if (ctx.recent_decisions?.length > 0) {
53
+ sections.push(`Recent Decisions (${ctx.recent_decisions.length}):`);
54
+ for (const d of ctx.recent_decisions) {
55
+ sections.push(` - [${d.channel}] ${d.description ?? JSON.stringify(d.data)}`);
56
+ }
57
+ sections.push("");
58
+ }
59
+ // Blockers
60
+ if (ctx.blockers?.length > 0) {
61
+ sections.push(`Blockers (${ctx.blockers.length}):`);
62
+ for (const b of ctx.blockers) {
63
+ sections.push(` - [${b.channel}] ${b.description ?? b.id}`);
64
+ }
65
+ sections.push("");
66
+ }
67
+ // Active locks
68
+ if (ctx.active_locks?.length > 0) {
69
+ sections.push(`Active Locks (${ctx.active_locks.length}):`);
70
+ for (const l of ctx.active_locks) {
71
+ sections.push(` - ${l.resource} (held by ${l.agent})`);
72
+ }
73
+ sections.push("");
74
+ }
75
+ // Knowledge docs
76
+ if (ctx.knowledge_docs?.length > 0) {
77
+ sections.push(`Knowledge Docs (${ctx.knowledge_docs.length}):`);
78
+ for (const d of ctx.knowledge_docs) {
79
+ const tags = d.tags?.length > 0 ? ` [${d.tags.join(", ")}]` : "";
80
+ sections.push(` - ${d.title}${tags}`);
81
+ }
82
+ sections.push("");
83
+ }
84
+ // Learned patterns
85
+ try {
86
+ const patternsRes = await fetch(`${creds.api_url}/v1/intelligence/patterns?limit=10`, {
87
+ headers: {
88
+ Authorization: `Bearer ${creds.api_key}`,
89
+ },
90
+ });
91
+ if (patternsRes.ok) {
92
+ const patternsData = await patternsRes.json();
93
+ if (patternsData.patterns?.length > 0) {
94
+ sections.push(`Learned Patterns (${patternsData.patterns.length}):`);
95
+ for (const p of patternsData.patterns) {
96
+ sections.push(` - [${p.pattern_type}] ${p.description} (seen ${p.frequency}x, last: ${p.last_seen_at})`);
97
+ }
98
+ sections.push("");
99
+ }
100
+ }
101
+ }
102
+ catch {
103
+ // Don't fail if patterns fetch fails
104
+ }
105
+ console.log(sections.join("\n"));
106
+ }
107
+ catch (err) {
108
+ console.error("Failed to fetch context:", err instanceof Error ? err.message : String(err));
109
+ process.exit(1);
110
+ }
111
+ }
112
+ //# sourceMappingURL=context-inject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-inject.js","sourceRoot":"","sources":["../../../src/cli/commands/context-inject.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function gitHook(args?: string[]): Promise<void>;
2
+ //# sourceMappingURL=git-hook.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-hook.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/git-hook.ts"],"names":[],"mappings":"AAyEA,wBAAsB,OAAO,CAAC,IAAI,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAYhE"}
@@ -0,0 +1,79 @@
1
+ import { execSync } from "node:child_process";
2
+ import { readFileSync, existsSync } from "node:fs";
3
+ import { join } from "node:path";
4
+ function loadCredentials() {
5
+ const credPath = join(process.env.HOME ?? process.env.USERPROFILE ?? ".", ".hivemind", "credentials.json");
6
+ if (!existsSync(credPath))
7
+ return null;
8
+ try {
9
+ const creds = JSON.parse(readFileSync(credPath, "utf-8"));
10
+ return { api_key: creds.api_key, api_url: creds.api_url };
11
+ }
12
+ catch {
13
+ return null;
14
+ }
15
+ }
16
+ function git(cmd) {
17
+ try {
18
+ return execSync(`git ${cmd}`, { encoding: "utf-8", timeout: 5000 }).trim();
19
+ }
20
+ catch {
21
+ return "";
22
+ }
23
+ }
24
+ async function postCommit() {
25
+ const creds = loadCredentials();
26
+ if (!creds)
27
+ return; // No credentials — skip silently
28
+ const message = git("log -1 --pretty=%B");
29
+ const hash = git("log -1 --pretty=%H");
30
+ const shortHash = git("log -1 --pretty=%h");
31
+ const author = git("log -1 --pretty=%an");
32
+ const filesRaw = git("diff-tree --no-commit-id --name-only -r HEAD");
33
+ const files = filesRaw.split("\n").filter(Boolean);
34
+ const diffStat = git("diff-tree --no-commit-id --stat -r HEAD");
35
+ if (!message || files.length === 0)
36
+ return;
37
+ const description = `Committed: ${message.split("\n")[0]}`;
38
+ const data = {
39
+ channel: "general",
40
+ event_type: "task.completed",
41
+ source: "git-hook",
42
+ data: {
43
+ description,
44
+ commit_hash: hash,
45
+ commit_short: shortHash,
46
+ commit_message: message,
47
+ author,
48
+ files_changed: files,
49
+ diff_stat: diffStat,
50
+ auto_instrumented: true,
51
+ },
52
+ };
53
+ try {
54
+ await fetch(`${creds.api_url}/v1/events`, {
55
+ method: "POST",
56
+ headers: {
57
+ Authorization: `Bearer ${creds.api_key}`,
58
+ "Content-Type": "application/json",
59
+ },
60
+ body: JSON.stringify(data),
61
+ });
62
+ }
63
+ catch {
64
+ // Don't block git operations on network errors
65
+ }
66
+ }
67
+ export async function gitHook(args = []) {
68
+ const hookType = args[0];
69
+ switch (hookType) {
70
+ case "post-commit":
71
+ await postCommit();
72
+ break;
73
+ default:
74
+ console.error(`Unknown git hook type: ${hookType}`);
75
+ console.error("Supported: post-commit");
76
+ process.exit(1);
77
+ }
78
+ }
79
+ //# sourceMappingURL=git-hook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-hook.js","sourceRoot":"","sources":["../../../src/cli/commands/git-hook.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"guard.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/guard.ts"],"names":[],"mappings":"AAiCA,wBAAsB,KAAK,CAAC,IAAI,GAAE,MAAM,EAAO,iBAuG9C"}
1
+ {"version":3,"file":"guard.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/guard.ts"],"names":[],"mappings":"AAiCA,wBAAsB,KAAK,CAAC,IAAI,GAAE,MAAM,EAAO,iBA+H9C"}
@@ -65,7 +65,26 @@ export async function guard(args = []) {
65
65
  catch {
66
66
  // Policy check failed — don't block on network errors
67
67
  }
68
- // 2. Acquire lock (skip if --policies-only)
68
+ // 2. Non-blocking conflict check (informational only)
69
+ try {
70
+ const controller = new AbortController();
71
+ const timeout = setTimeout(() => controller.abort(), 3000);
72
+ const conflictRes = await fetch(`${creds.api_url}/v1/intelligence/conflicts/check?files=${encodeURIComponent(resource)}`, { headers, signal: controller.signal });
73
+ clearTimeout(timeout);
74
+ if (conflictRes.ok) {
75
+ const conflictData = await conflictRes.json();
76
+ if (conflictData.conflicts?.length > 0) {
77
+ for (const c of conflictData.conflicts) {
78
+ process.stderr.write(`WARNING: ${c.file} was recently modified by ${c.agent} ("${c.description}" at ${c.modified_at})\n` +
79
+ `Consider coordinating with the other agent before proceeding.\n\n`);
80
+ }
81
+ }
82
+ }
83
+ }
84
+ catch {
85
+ // Conflict check is informational — don't block on errors
86
+ }
87
+ // 3. Acquire lock (skip if --policies-only)
69
88
  if (!policiesOnly) {
70
89
  try {
71
90
  const lockRes = await fetch(`${creds.api_url}/v1/locks/${encodeURIComponent(resource)}`, {
@@ -1 +1 @@
1
- {"version":3,"file":"guard.js","sourceRoot":"","sources":["../../../src/cli/commands/guard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"guard.js","sourceRoot":"","sources":["../../../src/cli/commands/guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAajC,SAAS,eAAe;IACtB,MAAM,QAAQ,GAAG,IAAI,CACnB,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,EAClD,WAAW,EACX,kBAAkB,CACnB,CAAC;IACF,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;QAC1D,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,KAAgB;IACpC,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,UAAU,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;AACpH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,OAAiB,EAAE;IAC7C,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAEtD,6BAA6B;IAC7B,IAAI,KAAgB,CAAC;IACrB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QACrC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,EAAE,SAAS,CAAC;IAC7C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG;QACd,aAAa,EAAE,UAAU,KAAK,CAAC,OAAO,EAAE;QACxC,cAAc,EAAE,kBAAkB;KACnC,CAAC;IAEF,gEAAgE;IAChE,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACvC,IAAI,QAAQ,GAAG,QAAQ,CAAC;IACxB,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,oBAAoB;IACpB,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,KAAK,CAC3B,GAAG,KAAK,CAAC,OAAO,yCAAyC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,EACvF,EAAE,OAAO,EAAE,CACZ,CAAC;QACF,IAAI,SAAS,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;YAC1C,IAAI,UAAU,CAAC,iBAAiB,EAAE,CAAC;gBACjC,MAAM,QAAQ,GAAG,UAAU,CAAC,iBAAiB;qBAC1C,GAAG,CAAC,CAAC,CAAoD,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,WAAW,cAAc,CAAC,CAAC,gBAAgB,GAAG,CAAC;qBACtH,IAAI,CAAC,IAAI,CAAC,CAAC;gBACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,YAAY,QAAQ,8CAA8C,QAAQ,MAAM;oBAChF,iCAAiC;oBACjC,0FAA0F,QAAQ,MAAM;oBACxG,2CAA2C,CAC5C,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,sDAAsD;IACxD,CAAC;IAED,sDAAsD;IACtD,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;QAC3D,MAAM,WAAW,GAAG,MAAM,KAAK,CAC7B,GAAG,KAAK,CAAC,OAAO,0CAA0C,kBAAkB,CAAC,QAAQ,CAAC,EAAE,EACxF,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CACvC,CAAC;QACF,YAAY,CAAC,OAAO,CAAC,CAAC;QACtB,IAAI,WAAW,CAAC,EAAE,EAAE,CAAC;YACnB,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;YAC9C,IAAI,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvC,KAAK,MAAM,CAAC,IAAI,YAAY,CAAC,SAAS,EAAE,CAAC;oBACvC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,YAAY,CAAC,CAAC,IAAI,6BAA6B,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,WAAW,QAAQ,CAAC,CAAC,WAAW,KAAK;wBACnG,mEAAmE,CACpE,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,0DAA0D;IAC5D,CAAC;IAED,4CAA4C;IAC5C,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,KAAK,CACzB,GAAG,KAAK,CAAC,OAAO,aAAa,kBAAkB,CAAC,QAAQ,CAAC,EAAE,EAC3D;gBACE,MAAM,EAAE,MAAM;gBACd,OAAO;gBACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC;aAChC,CACF,CAAC;YAEF,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;gBACf,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;gBACtC,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;oBACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC3B,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;gBACtC,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,EAAE,KAAK,IAAI,SAAS,CAAC;gBAEpD,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;oBACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;gBAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,YAAY,QAAQ,iBAAiB,MAAM,OAAO;oBAClD,oDAAoD;oBACpD,2FAA2F,QAAQ,eAAe,MAAM,MAAM;oBAC9H,wBAAwB;oBACxB,kDAAkD,QAAQ,gDAAgD,CAC3G,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,sDAAsD;QACxD,CAAC;IACH,CAAC;IAED,iBAAiB;IACjB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAyFA,wBAAsB,IAAI,CAAC,IAAI,GAAE,MAAM,EAAO,iBAmH7C"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAuGA,wBAAsB,IAAI,CAAC,IAAI,GAAE,MAAM,EAAO,iBAkJ7C"}
@@ -38,6 +38,12 @@ hivemind_publish(channel: "general", event_type: "task.completed", data: {"descr
38
38
  Also publish \`decision.made\` when choosing between approaches, \`task.blocked\` when stuck, and \`bug.found\` when discovering bugs.
39
39
 
40
40
  Do NOT publish routine activity (file reads, retries, lint fixes). Only publish outcomes and decisions.`);
41
+ // Skills note — always present
42
+ const skillRuleNum = ruleNum + 1;
43
+ rules.push(`### Rule ${skillRuleNum}: Skills are injected automatically
44
+
45
+ When you edit files, relevant project skills are automatically loaded into your context.
46
+ You can also search for skills explicitly: \`hivemind_skill(action: "search", query: "...")\``);
41
47
  return `${HIVEMIND_SECTION_START}
42
48
  ## Hivemind — MANDATORY agent coordination
43
49
 
@@ -47,12 +53,15 @@ ${rules.join("\n\n")}
47
53
  ${HIVEMIND_SECTION_END}`;
48
54
  }
49
55
  function buildHooksConfig(mode) {
50
- if (mode === "events-only") {
51
- return null; // No hooks
52
- }
53
56
  const hooks = {};
57
+ // Skill injection runs in ALL modes (even events-only) — it never blocks
58
+ const skillInjectHook = {
59
+ matcher: "Edit|Write|Bash",
60
+ hooks: [{ type: "command", command: "hivemind skill-inject", timeout: 5 }],
61
+ };
54
62
  if (mode === "full") {
55
63
  hooks.PreToolUse = [
64
+ skillInjectHook,
56
65
  {
57
66
  matcher: "Edit|Write",
58
67
  hooks: [{ type: "command", command: "hivemind guard", timeout: 10 }],
@@ -67,6 +76,7 @@ function buildHooksConfig(mode) {
67
76
  }
68
77
  else if (mode === "no-locks") {
69
78
  hooks.PreToolUse = [
79
+ skillInjectHook,
70
80
  {
71
81
  matcher: "Edit|Write",
72
82
  hooks: [{ type: "command", command: "hivemind guard --policies-only", timeout: 10 }],
@@ -74,6 +84,10 @@ function buildHooksConfig(mode) {
74
84
  ];
75
85
  // No PostToolUse — no locks to release
76
86
  }
87
+ else {
88
+ // events-only: skill injection only
89
+ hooks.PreToolUse = [skillInjectHook];
90
+ }
77
91
  return hooks;
78
92
  }
79
93
  export async function init(args = []) {
@@ -145,13 +159,37 @@ export async function init(args = []) {
145
159
  if (!settings.hooks)
146
160
  delete settings.hooks;
147
161
  writeFileSync(settingsPath, JSON.stringify(settings, null, 2) + "\n");
148
- if (hooksConfig) {
149
- console.log(" Configured Claude Code hooks in .claude/settings.local.json");
162
+ console.log(" Configured Claude Code hooks in .claude/settings.local.json");
163
+ // --- 3. Install git post-commit hook ---
164
+ const gitDir = join(cwd, ".git");
165
+ if (existsSync(gitDir)) {
166
+ const hooksDir = join(gitDir, "hooks");
167
+ mkdirSync(hooksDir, { recursive: true });
168
+ const postCommitPath = join(hooksDir, "post-commit");
169
+ const hookScript = `#!/bin/sh
170
+ # Hivemind auto-instrumentation — publishes commit events
171
+ hivemind git-hook post-commit 2>/dev/null || true
172
+ `;
173
+ if (existsSync(postCommitPath)) {
174
+ const existing = readFileSync(postCommitPath, "utf-8");
175
+ if (existing.includes("hivemind git-hook")) {
176
+ console.log(" Git post-commit hook already installed");
177
+ }
178
+ else {
179
+ // Append to existing hook
180
+ writeFileSync(postCommitPath, existing.trimEnd() + "\n\n" + hookScript);
181
+ console.log(" Appended Hivemind to existing git post-commit hook");
182
+ }
183
+ }
184
+ else {
185
+ writeFileSync(postCommitPath, hookScript, { mode: 0o755 });
186
+ console.log(" Installed git post-commit hook (auto-publishes commit events)");
187
+ }
150
188
  }
151
189
  else {
152
- console.log(" Cleaned hooks from .claude/settings.local.json (events-only mode)");
190
+ console.log(" No .git directory found skipped git hook installation");
153
191
  }
154
- // --- 3. Summary ---
192
+ // --- 4. Summary ---
155
193
  if (mode === "full") {
156
194
  console.log(`
157
195
  Done! Hivemind is now active in this project:
@@ -159,6 +197,8 @@ Done! Hivemind is now active in this project:
159
197
  - CLAUDE.md: Agent instructions for publishing events
160
198
  - Hooks: Auto-lock files before edit, auto-release after
161
199
  - Hooks: Auto-check approval policies before edit
200
+ - Hooks: Auto-inject skills based on file patterns and tools
201
+ - Git hook: Auto-publishes commit events to Hivemind
162
202
 
163
203
  Locks and policies are enforced automatically.
164
204
  `);
@@ -169,6 +209,8 @@ Done! Hivemind is now active in this project:
169
209
 
170
210
  - CLAUDE.md: Agent instructions for publishing events
171
211
  - Hooks: Auto-check approval policies before edit
212
+ - Hooks: Auto-inject skills based on file patterns and tools
213
+ - Git hook: Auto-publishes commit events to Hivemind
172
214
  - No file locking (use this when agents work on separate branches)
173
215
  `);
174
216
  }
@@ -177,7 +219,8 @@ Done! Hivemind is now active in this project:
177
219
  Done! Hivemind is now active in this project:
178
220
 
179
221
  - CLAUDE.md: Agent instructions for publishing events
180
- - No hooks (agents coordinate via events only)
222
+ - Hooks: Auto-inject skills based on file patterns and tools
223
+ - Git hook: Auto-publishes commit events to Hivemind
181
224
  `);
182
225
  }
183
226
  }
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function skillInject(): Promise<void>;
2
+ //# sourceMappingURL=skill-inject.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-inject.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/skill-inject.ts"],"names":[],"mappings":"AA0HA,wBAAsB,WAAW,kBA+FhC"}
@@ -0,0 +1,175 @@
1
+ import { readFileSync, existsSync, writeFileSync, mkdirSync, readdirSync, unlinkSync, statSync } from "node:fs";
2
+ import { join } from "node:path";
3
+ function loadCredentials() {
4
+ const credPath = join(process.env.HOME ?? process.env.USERPROFILE ?? ".", ".hivemind", "credentials.json");
5
+ if (!existsSync(credPath))
6
+ return null;
7
+ try {
8
+ const creds = JSON.parse(readFileSync(credPath, "utf-8"));
9
+ return { api_key: creds.api_key, api_url: creds.api_url };
10
+ }
11
+ catch {
12
+ return null;
13
+ }
14
+ }
15
+ function getSessionsDir() {
16
+ const home = process.env.HOME ?? process.env.USERPROFILE ?? ".";
17
+ return join(home, ".hivemind", "sessions");
18
+ }
19
+ function isFirstCall(sessionId) {
20
+ const sessionsDir = getSessionsDir();
21
+ const flagFile = join(sessionsDir, `${sessionId}.first`);
22
+ if (existsSync(flagFile))
23
+ return false;
24
+ try {
25
+ mkdirSync(sessionsDir, { recursive: true });
26
+ writeFileSync(flagFile, new Date().toISOString());
27
+ }
28
+ catch {
29
+ return false;
30
+ }
31
+ // Cleanup old flag files (>24h) — non-blocking best-effort
32
+ try {
33
+ const cutoff = Date.now() - 24 * 60 * 60 * 1000;
34
+ for (const f of readdirSync(sessionsDir)) {
35
+ if (!f.endsWith(".first"))
36
+ continue;
37
+ const fullPath = join(sessionsDir, f);
38
+ try {
39
+ const stat = statSync(fullPath);
40
+ if (stat.mtimeMs < cutoff)
41
+ unlinkSync(fullPath);
42
+ }
43
+ catch { /* ignore */ }
44
+ }
45
+ }
46
+ catch { /* ignore */ }
47
+ return true;
48
+ }
49
+ async function injectSessionContext(creds, headers) {
50
+ const output = [];
51
+ // Fetch context and patterns in parallel
52
+ const [contextRes, patternsRes] = await Promise.all([
53
+ fetch(`${creds.api_url}/v1/intelligence/context`, { headers }).catch(() => null),
54
+ fetch(`${creds.api_url}/v1/intelligence/patterns?limit=5`, { headers }).catch(() => null),
55
+ ]);
56
+ if (contextRes?.ok) {
57
+ const ctx = await contextRes.json();
58
+ if (ctx.active_tasks?.length > 0) {
59
+ output.push(`Active Tasks (${ctx.active_tasks.length}):`);
60
+ for (const t of ctx.active_tasks.slice(0, 5)) {
61
+ output.push(` - [${t.channel}] ${t.description ?? t.id} (by ${t.source?.agent ?? "unknown"})`);
62
+ }
63
+ }
64
+ if (ctx.blockers?.length > 0) {
65
+ output.push(`Blockers (${ctx.blockers.length}):`);
66
+ for (const b of ctx.blockers) {
67
+ output.push(` - [${b.channel}] ${b.description ?? b.id}`);
68
+ }
69
+ }
70
+ if (ctx.recent_decisions?.length > 0) {
71
+ output.push(`Recent Decisions:`);
72
+ for (const d of ctx.recent_decisions.slice(0, 3)) {
73
+ output.push(` - [${d.channel}] ${d.description ?? JSON.stringify(d.data)}`);
74
+ }
75
+ }
76
+ if (ctx.active_locks?.length > 0) {
77
+ output.push(`Active Locks:`);
78
+ for (const l of ctx.active_locks) {
79
+ output.push(` - ${l.resource} (held by ${l.agent})`);
80
+ }
81
+ }
82
+ }
83
+ if (patternsRes?.ok) {
84
+ const data = await patternsRes.json();
85
+ if (data.patterns?.length > 0) {
86
+ output.push(`Learned Patterns:`);
87
+ for (const p of data.patterns) {
88
+ output.push(` - [${p.pattern_type}] ${p.description} (seen ${p.frequency}x)`);
89
+ }
90
+ }
91
+ }
92
+ if (output.length > 0) {
93
+ process.stderr.write(`=== Hivemind Session Context ===\n${output.join("\n")}\n===\n\n`);
94
+ }
95
+ }
96
+ export async function skillInject() {
97
+ // 1. Read hook input from stdin
98
+ let input;
99
+ try {
100
+ const raw = readFileSync(0, "utf-8");
101
+ input = JSON.parse(raw);
102
+ }
103
+ catch {
104
+ process.exit(0);
105
+ }
106
+ // 2. Load credentials (cloud only)
107
+ const creds = loadCredentials();
108
+ if (!creds)
109
+ process.exit(0);
110
+ const headers = { Authorization: `Bearer ${creds.api_key}` };
111
+ // 3. First-call session context injection
112
+ const sessionId = input.session_id ?? `pid-${process.ppid}`;
113
+ if (isFirstCall(sessionId)) {
114
+ try {
115
+ await injectSessionContext(creds, headers);
116
+ }
117
+ catch {
118
+ // Don't block on errors
119
+ }
120
+ }
121
+ // 4. Extract context
122
+ const filePath = input.tool_input?.file_path;
123
+ const command = input.tool_input?.command;
124
+ const toolName = input.tool_name;
125
+ // 5. Make relative path
126
+ const cwd = input.cwd ?? process.cwd();
127
+ let resource = filePath ?? "";
128
+ if (resource.startsWith(cwd)) {
129
+ resource = resource.slice(cwd.length).replace(/^\//, "");
130
+ }
131
+ // 6. Call match endpoint + decision replay in parallel
132
+ const params = new URLSearchParams();
133
+ if (toolName)
134
+ params.set("tool", toolName);
135
+ if (resource)
136
+ params.set("file", resource);
137
+ if (command)
138
+ params.set("command", command);
139
+ const fetches = [];
140
+ // Skill match
141
+ fetches.push((async () => {
142
+ try {
143
+ const res = await fetch(`${creds.api_url}/v1/skills/match?${params}`, { headers });
144
+ if (!res.ok)
145
+ return;
146
+ const data = await res.json();
147
+ if (data.skills?.length > 0) {
148
+ const output = data.skills
149
+ .map((s) => `--- Skill: ${s.name} ---\n${s.instructions}\n---`)
150
+ .join("\n\n");
151
+ process.stderr.write(output);
152
+ }
153
+ }
154
+ catch { /* ignore */ }
155
+ })());
156
+ // Decision replay by file context (Part 5)
157
+ if (resource) {
158
+ fetches.push((async () => {
159
+ try {
160
+ const res = await fetch(`${creds.api_url}/v1/intelligence/context?file=${encodeURIComponent(resource)}`, { headers });
161
+ if (!res.ok)
162
+ return;
163
+ const ctx = await res.json();
164
+ if (ctx.recent_decisions?.length > 0) {
165
+ const lines = ctx.recent_decisions.map((d) => ` - ${d.description ?? JSON.stringify(d.data)} (${d.created_at})`);
166
+ process.stderr.write(`\n--- Decisions affecting ${resource} ---\n${lines.join("\n")}\n---\n`);
167
+ }
168
+ }
169
+ catch { /* ignore */ }
170
+ })());
171
+ }
172
+ await Promise.all(fetches);
173
+ process.exit(0); // Always allow — skills never block
174
+ }
175
+ //# sourceMappingURL=skill-inject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-inject.js","sourceRoot":"","sources":["../../../src/cli/commands/skill-inject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAChH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAajC,SAAS,eAAe;IACtB,MAAM,QAAQ,GAAG,IAAI,CACnB,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,EAClD,WAAW,EACX,kBAAkB,CACnB,CAAC;IACF,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;QAC1D,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,cAAc;IACrB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC;IAChE,OAAO,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,WAAW,CAAC,SAAiB;IACpC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,SAAS,QAAQ,CAAC,CAAC;IAEzD,IAAI,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IAEvC,IAAI,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,aAAa,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;IAED,2DAA2D;IAC3D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAChD,KAAK,MAAM,CAAC,IAAI,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAAE,SAAS;YACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YACtC,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAChC,IAAI,IAAI,CAAC,OAAO,GAAG,MAAM;oBAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;YAClD,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAExB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,KAA2C,EAC3C,OAA+B;IAE/B,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,yCAAyC;IACzC,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAClD,KAAK,CAAC,GAAG,KAAK,CAAC,OAAO,0BAA0B,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;QAChF,KAAK,CAAC,GAAG,KAAK,CAAC,OAAO,mCAAmC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;KAC1F,CAAC,CAAC;IAEH,IAAI,UAAU,EAAE,EAAE,EAAE,CAAC;QACnB,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;QAEpC,IAAI,GAAG,CAAC,YAAY,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,MAAM,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,CAAC;YAC1D,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBAC7C,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,SAAS,GAAG,CAAC,CAAC;YAClG,CAAC;QACH,CAAC;QAED,IAAI,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC;YAClD,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gBAC7B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;QAED,IAAI,GAAG,CAAC,gBAAgB,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACjC,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBACjD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC/E,CAAC;QACH,CAAC;QAED,IAAI,GAAG,CAAC,YAAY,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC7B,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;gBACjC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,aAAa,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,WAAW,EAAE,EAAE,EAAE,CAAC;QACpB,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;QACtC,IAAI,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACjC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC9B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,WAAW,UAAU,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC;YACjF,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAqC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC1F,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,gCAAgC;IAChC,IAAI,KAAgB,CAAC;IACrB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QACrC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,mCAAmC;IACnC,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,IAAI,CAAC,KAAK;QAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAE5B,MAAM,OAAO,GAAG,EAAE,aAAa,EAAE,UAAU,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;IAE7D,0CAA0C;IAC1C,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,IAAI,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC;IAC5D,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC;QAAC,MAAM,CAAC;YACP,wBAAwB;QAC1B,CAAC;IACH,CAAC;IAED,qBAAqB;IACrB,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,EAAE,SAAS,CAAC;IAC7C,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC;IAC1C,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC;IAEjC,wBAAwB;IACxB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACvC,IAAI,QAAQ,GAAG,QAAQ,IAAI,EAAE,CAAC;IAC9B,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,uDAAuD;IACvD,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IACrC,IAAI,QAAQ;QAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC3C,IAAI,QAAQ;QAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC3C,IAAI,OAAO;QAAE,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAE5C,MAAM,OAAO,GAAoB,EAAE,CAAC;IAEpC,cAAc;IACd,OAAO,CAAC,IAAI,CACV,CAAC,KAAK,IAAI,EAAE;QACV,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,KAAK,CACrB,GAAG,KAAK,CAAC,OAAO,oBAAoB,MAAM,EAAE,EAC5C,EAAE,OAAO,EAAE,CACZ,CAAC;YACF,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,OAAO;YAEpB,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;qBACvB,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,YAAY,OAAO,CAAC;qBACnE,IAAI,CAAC,MAAM,CAAC,CAAC;gBAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAC1B,CAAC,CAAC,EAAE,CACL,CAAC;IAEF,2CAA2C;IAC3C,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CACV,CAAC,KAAK,IAAI,EAAE;YACV,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,KAAK,CACrB,GAAG,KAAK,CAAC,OAAO,iCAAiC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,EAC/E,EAAE,OAAO,EAAE,CACZ,CAAC;gBACF,IAAI,CAAC,GAAG,CAAC,EAAE;oBAAE,OAAO;gBAEpB,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;gBAC7B,IAAI,GAAG,CAAC,gBAAgB,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;oBACrC,MAAM,KAAK,GAAG,GAAG,CAAC,gBAAgB,CAAC,GAAG,CACpC,CAAC,CAAM,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,GAAG,CAC/E,CAAC;oBACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,6BAA6B,QAAQ,SAAS,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CACxE,CAAC;gBACJ,CAAC;YACH,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QAC1B,CAAC,CAAC,EAAE,CACL,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAE3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,oCAAoC;AACvD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function skill(args: string[]): Promise<void>;
2
+ //# sourceMappingURL=skill.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/skill.ts"],"names":[],"mappings":"AAIA,wBAAsB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA4LzD"}