@leejungkiin/awkit 1.1.7 → 1.1.9

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 (48) hide show
  1. package/README.md +36 -1
  2. package/bin/awk.js +2 -2
  3. package/package.json +6 -3
  4. package/skill-packs/neural-memory/skills/nm-memory-sync/SKILL.md +14 -1
  5. package/skills/gitnexus-intelligence/SKILL.md +224 -0
  6. package/skills/orchestrator/SKILL.md +9 -0
  7. package/skills/symphony-orchestrator/SKILL.md +9 -7
  8. package/workflows/gitnexus.md +123 -0
  9. package/symphony/LICENSE +0 -21
  10. package/symphony/README.md +0 -178
  11. package/symphony/app/api/agents/route.js +0 -152
  12. package/symphony/app/api/events/route.js +0 -22
  13. package/symphony/app/api/knowledge/route.js +0 -253
  14. package/symphony/app/api/locks/route.js +0 -29
  15. package/symphony/app/api/notes/route.js +0 -125
  16. package/symphony/app/api/preflight/route.js +0 -23
  17. package/symphony/app/api/projects/route.js +0 -116
  18. package/symphony/app/api/roles/route.js +0 -134
  19. package/symphony/app/api/skills/route.js +0 -82
  20. package/symphony/app/api/status/route.js +0 -18
  21. package/symphony/app/api/tasks/route.js +0 -157
  22. package/symphony/app/api/workflows/route.js +0 -61
  23. package/symphony/app/api/workspaces/route.js +0 -15
  24. package/symphony/app/globals.css +0 -2605
  25. package/symphony/app/layout.js +0 -20
  26. package/symphony/app/page.js +0 -2122
  27. package/symphony/cli/index.js +0 -1060
  28. package/symphony/core/agent-manager.js +0 -357
  29. package/symphony/core/context-bus.js +0 -100
  30. package/symphony/core/db.js +0 -223
  31. package/symphony/core/file-lock-manager.js +0 -154
  32. package/symphony/core/merge-pipeline.js +0 -234
  33. package/symphony/core/orchestrator.js +0 -236
  34. package/symphony/core/task-manager.js +0 -335
  35. package/symphony/core/workspace-manager.js +0 -168
  36. package/symphony/jsconfig.json +0 -7
  37. package/symphony/lib/core.mjs +0 -1034
  38. package/symphony/mcp/index.js +0 -29
  39. package/symphony/mcp/server.js +0 -110
  40. package/symphony/mcp/tools/context.js +0 -80
  41. package/symphony/mcp/tools/locks.js +0 -99
  42. package/symphony/mcp/tools/status.js +0 -82
  43. package/symphony/mcp/tools/tasks.js +0 -216
  44. package/symphony/mcp/tools/workspace.js +0 -143
  45. package/symphony/next.config.mjs +0 -7
  46. package/symphony/package.json +0 -53
  47. package/symphony/scripts/postinstall.js +0 -49
  48. package/symphony/symphony.config.js +0 -41
@@ -1,143 +0,0 @@
1
- /**
2
- * Symphony MCP Tools — Workspace Management
3
- *
4
- * Tools for workspace/git operations:
5
- * - symphony_workspace_status: Get workspace info + diff stats
6
- * - symphony_merge_task: Trigger auto-merge pipeline
7
- */
8
- const { z } = require('zod');
9
- const workspaceManager = require('../../core/workspace-manager');
10
- const mergePipeline = require('../../core/merge-pipeline');
11
-
12
- const tools = [];
13
-
14
- // ─── symphony_workspace_status ──────────────────────────────────────────────
15
-
16
- tools.push({
17
- name: 'symphony_workspace_status',
18
- description: 'Get workspace info for a task — branch, path, diff stats, and commit log.',
19
- schema: {
20
- task_id: z.string().describe('Task ID to check workspace for'),
21
- },
22
- handler: async ({ task_id }) => {
23
- try {
24
- const ws = workspaceManager.getWorkspace(task_id);
25
-
26
- if (!ws) {
27
- return {
28
- content: [{
29
- type: 'text',
30
- text: JSON.stringify({
31
- exists: false,
32
- message: `No active workspace for task ${task_id}`,
33
- }),
34
- }],
35
- };
36
- }
37
-
38
- // Get repo path from workspace path
39
- const path = require('path');
40
- const repoPath = getRepoPath(ws.path);
41
-
42
- const diff = mergePipeline.getDiff(task_id, repoPath);
43
- const log = mergePipeline.getBranchLog(task_id, repoPath);
44
- const conflicts = mergePipeline.checkConflicts(task_id, repoPath);
45
-
46
- return {
47
- content: [{
48
- type: 'text',
49
- text: JSON.stringify({
50
- exists: true,
51
- workspace: {
52
- id: ws.id,
53
- path: ws.path,
54
- branch: ws.branch,
55
- type: ws.type,
56
- created_at: ws.created_at,
57
- },
58
- diff: {
59
- files: diff.files,
60
- insertions: diff.insertions,
61
- deletions: diff.deletions,
62
- },
63
- commits: log.length,
64
- commitLog: log.slice(0, 10),
65
- hasConflicts: conflicts.hasConflicts,
66
- conflictingFiles: conflicts.conflictingFiles,
67
- }),
68
- }],
69
- };
70
- } catch (error) {
71
- return {
72
- content: [{ type: 'text', text: JSON.stringify({ error: error.message }) }],
73
- isError: true,
74
- };
75
- }
76
- },
77
- });
78
-
79
- // ─── symphony_merge_task ────────────────────────────────────────────────────
80
-
81
- tools.push({
82
- name: 'symphony_merge_task',
83
- description: 'Run auto-merge pipeline for a completed task: rebase → merge → cleanup.',
84
- schema: {
85
- task_id: z.string().describe('Task ID to merge'),
86
- repo_path: z.string().optional().describe('Repository path (auto-detected if omitted)'),
87
- },
88
- handler: async ({ task_id, repo_path }) => {
89
- try {
90
- const ws = workspaceManager.getWorkspace(task_id);
91
- if (!ws) {
92
- return {
93
- content: [{
94
- type: 'text',
95
- text: JSON.stringify({
96
- status: 'error',
97
- message: `No active workspace for task ${task_id}`,
98
- }),
99
- }],
100
- isError: true,
101
- };
102
- }
103
-
104
- const repoPath = repo_path || getRepoPath(ws.path);
105
- const result = mergePipeline.autoMerge(task_id, repoPath);
106
-
107
- return {
108
- content: [{
109
- type: 'text',
110
- text: JSON.stringify(result),
111
- }],
112
- isError: result.status === 'error',
113
- };
114
- } catch (error) {
115
- return {
116
- content: [{ type: 'text', text: JSON.stringify({ error: error.message }) }],
117
- isError: true,
118
- };
119
- }
120
- },
121
- });
122
-
123
- // ─── Helper ─────────────────────────────────────────────────────────────────
124
-
125
- /**
126
- * Derive the main repo path from a workspace path.
127
- * Workspaces are typically in .symphony/workspaces/<task-id> relative to repo.
128
- */
129
- function getRepoPath(wsPath) {
130
- const path = require('path');
131
- // Walk up from workspace to find .git
132
- let current = path.dirname(wsPath);
133
- for (let i = 0; i < 5; i++) {
134
- const gitDir = path.join(current, '.git');
135
- const fs = require('fs');
136
- if (fs.existsSync(gitDir)) return current;
137
- current = path.dirname(current);
138
- }
139
- // Fallback: assume workspace is in .symphony/workspaces/ under repo root
140
- return path.resolve(wsPath, '..', '..', '..');
141
- }
142
-
143
- module.exports = tools;
@@ -1,7 +0,0 @@
1
- /** @type {import('next').NextConfig} */
2
- const nextConfig = {
3
- // Allow requiring CommonJS core modules from API routes
4
- serverExternalPackages: ['better-sqlite3'],
5
- };
6
-
7
- export default nextConfig;
@@ -1,53 +0,0 @@
1
- {
2
- "name": "awkit-symphony",
3
- "version": "0.1.0",
4
- "description": "Multi-Agent Orchestration for AI Coding Assistants — task management, git isolation, file locking, and real-time dashboard",
5
- "keywords": [
6
- "ai",
7
- "multi-agent",
8
- "orchestration",
9
- "mcp",
10
- "git",
11
- "worktree",
12
- "dashboard",
13
- "coding-assistant"
14
- ],
15
- "license": "MIT",
16
- "main": "core/orchestrator.js",
17
- "bin": {
18
- "symphony": "./cli/index.js"
19
- },
20
- "files": [
21
- "core/",
22
- "cli/",
23
- "mcp/",
24
- "lib/",
25
- "app/",
26
- "scripts/",
27
- "symphony.config.js",
28
- "next.config.mjs",
29
- "jsconfig.json",
30
- "README.md"
31
- ],
32
- "engines": {
33
- "node": ">=20.0.0"
34
- },
35
- "scripts": {
36
- "dev": "next dev -p 3100",
37
- "build": "next build",
38
- "start": "next start -p 3100",
39
- "postinstall": "node scripts/postinstall.js",
40
- "cli": "node cli/index.js",
41
- "mcp": "node mcp/server.js"
42
- },
43
- "dependencies": {
44
- "@modelcontextprotocol/sdk": "^1.27.1",
45
- "better-sqlite3": "^12.6.2",
46
- "commander": "^14.0.3",
47
- "nanoid": "^3.3.11",
48
- "next": "16.1.6",
49
- "react": "19.2.3",
50
- "react-dom": "19.2.3",
51
- "zod": "^4.3.6"
52
- }
53
- }
@@ -1,49 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- /**
4
- * Symphony Postinstall Script
5
- * Automatically builds the Next.js dashboard after `npm install`.
6
- * Skips build during development (when running from source directory).
7
- */
8
- const { execSync } = require('child_process');
9
- const path = require('path');
10
- const fs = require('fs');
11
-
12
- const ROOT = path.join(__dirname, '..');
13
-
14
- // Skip if .next/ already exists (already built)
15
- if (fs.existsSync(path.join(ROOT, '.next'))) {
16
- console.log('✅ Symphony dashboard already built — skipping.');
17
- process.exit(0);
18
- }
19
-
20
- // Skip if we're in a CI environment that doesn't need the dashboard
21
- if (process.env.CI || process.env.SYMPHONY_SKIP_BUILD) {
22
- console.log('⏭️ Skipping Symphony build (CI or SYMPHONY_SKIP_BUILD set).');
23
- process.exit(0);
24
- }
25
-
26
- console.log('');
27
- console.log('🎼 Symphony — Building dashboard...');
28
- console.log(' This only happens once after installation.');
29
- console.log('');
30
-
31
- try {
32
- execSync('npx next build', {
33
- cwd: ROOT,
34
- stdio: 'inherit',
35
- env: { ...process.env, NODE_ENV: 'production' },
36
- });
37
- console.log('');
38
- console.log('✅ Symphony dashboard built successfully!');
39
- console.log(' Run `symphony start` to launch.');
40
- console.log('');
41
- } catch (err) {
42
- console.error('');
43
- console.error('⚠️ Symphony dashboard build failed.');
44
- console.error(' You can manually build later with: symphony build');
45
- console.error(' The CLI commands will still work without the dashboard.');
46
- console.error('');
47
- // Don't fail the install — CLI/MCP still work without dashboard
48
- process.exit(0);
49
- }
@@ -1,41 +0,0 @@
1
- /**
2
- * Symphony Configuration
3
- * Default settings for the AWKit Symphony orchestration platform.
4
- */
5
- module.exports = {
6
- // Server
7
- port: 3100,
8
-
9
- // Concurrency
10
- maxAgents: 3,
11
-
12
- // Workspace
13
- workspace: {
14
- root: '.symphony/workspaces',
15
- type: 'hybrid', // 'worktree' | 'clone' | 'hybrid'
16
- cloneThreshold: 30, // files > 30 → full clone instead of worktree
17
- },
18
-
19
- // Git
20
- git: {
21
- autoMerge: true,
22
- targetBranch: 'main',
23
- branchPrefix: 'symphony/',
24
- },
25
-
26
- // File Locks
27
- locks: {
28
- strategy: 'pessimistic',
29
- autoRelease: 3600, // seconds — auto-release stuck locks
30
- },
31
-
32
- // Dashboard
33
- dashboard: {
34
- theme: 'dark',
35
- },
36
-
37
- // Database
38
- db: {
39
- path: null, // null = auto-detect (~/.symphony/symphony.db or .symphony/symphony.db)
40
- },
41
- };