@leejungkiin/awkit 1.1.6 → 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 (84) hide show
  1. package/README.md +51 -1
  2. package/bin/awk.js +2 -2
  3. package/core/GEMINI.md +45 -7
  4. package/package.json +8 -5
  5. package/skill-packs/neural-memory/skills/nm-memory-sync/SKILL.md +14 -1
  6. package/skills/ab-test-store-listing/SKILL.md +220 -0
  7. package/skills/android-aso/SKILL.md +197 -0
  8. package/skills/app-analytics/SKILL.md +210 -0
  9. package/skills/app-clips/SKILL.md +163 -0
  10. package/skills/app-icon-optimization/SKILL.md +170 -0
  11. package/skills/app-launch/SKILL.md +153 -0
  12. package/skills/app-marketing-context/SKILL.md +129 -0
  13. package/skills/app-store-featured/SKILL.md +213 -0
  14. package/skills/apple-search-ads/SKILL.md +205 -0
  15. package/skills/asc-metrics/SKILL.md +157 -0
  16. package/skills/aso-audit/SKILL.md +179 -0
  17. package/skills/competitor-analysis/SKILL.md +163 -0
  18. package/skills/competitor-tracking/SKILL.md +185 -0
  19. package/skills/crash-analytics/SKILL.md +181 -0
  20. package/skills/gitnexus-intelligence/SKILL.md +224 -0
  21. package/skills/in-app-events/SKILL.md +176 -0
  22. package/skills/keyword-research/SKILL.md +141 -0
  23. package/skills/localization/SKILL.md +165 -0
  24. package/skills/market-movers/SKILL.md +137 -0
  25. package/skills/market-pulse/SKILL.md +170 -0
  26. package/skills/metadata-optimization/SKILL.md +170 -0
  27. package/skills/monetization-strategy/SKILL.md +175 -0
  28. package/skills/onboarding-optimization/SKILL.md +194 -0
  29. package/skills/orchestrator/SKILL.md +306 -25
  30. package/skills/press-and-pr/SKILL.md +204 -0
  31. package/skills/rating-prompt-strategy/SKILL.md +184 -0
  32. package/skills/retention-optimization/SKILL.md +165 -0
  33. package/skills/review-management/SKILL.md +154 -0
  34. package/skills/screenshot-optimization/SKILL.md +167 -0
  35. package/skills/seasonal-aso/SKILL.md +141 -0
  36. package/skills/spec-gate/SKILL.md +312 -0
  37. package/skills/subscription-lifecycle/SKILL.md +206 -0
  38. package/skills/swiftui-pro/references/design.md +44 -0
  39. package/skills/symphony-enforcer/SKILL.md +92 -11
  40. package/skills/symphony-orchestrator/SKILL.md +9 -7
  41. package/skills/systematic-debugging/SKILL.md +32 -7
  42. package/skills/ua-campaign/SKILL.md +207 -0
  43. package/skills/verification-gate/SKILL.md +23 -2
  44. package/workflows/gitnexus.md +123 -0
  45. package/symphony/LICENSE +0 -21
  46. package/symphony/README.md +0 -178
  47. package/symphony/app/api/agents/route.js +0 -152
  48. package/symphony/app/api/events/route.js +0 -22
  49. package/symphony/app/api/knowledge/route.js +0 -253
  50. package/symphony/app/api/locks/route.js +0 -29
  51. package/symphony/app/api/notes/route.js +0 -125
  52. package/symphony/app/api/preflight/route.js +0 -23
  53. package/symphony/app/api/projects/route.js +0 -116
  54. package/symphony/app/api/roles/route.js +0 -134
  55. package/symphony/app/api/skills/route.js +0 -82
  56. package/symphony/app/api/status/route.js +0 -18
  57. package/symphony/app/api/tasks/route.js +0 -157
  58. package/symphony/app/api/workflows/route.js +0 -61
  59. package/symphony/app/api/workspaces/route.js +0 -15
  60. package/symphony/app/globals.css +0 -2605
  61. package/symphony/app/layout.js +0 -20
  62. package/symphony/app/page.js +0 -2122
  63. package/symphony/cli/index.js +0 -1060
  64. package/symphony/core/agent-manager.js +0 -357
  65. package/symphony/core/context-bus.js +0 -100
  66. package/symphony/core/db.js +0 -223
  67. package/symphony/core/file-lock-manager.js +0 -154
  68. package/symphony/core/merge-pipeline.js +0 -234
  69. package/symphony/core/orchestrator.js +0 -236
  70. package/symphony/core/task-manager.js +0 -335
  71. package/symphony/core/workspace-manager.js +0 -168
  72. package/symphony/jsconfig.json +0 -7
  73. package/symphony/lib/core.mjs +0 -1034
  74. package/symphony/mcp/index.js +0 -29
  75. package/symphony/mcp/server.js +0 -110
  76. package/symphony/mcp/tools/context.js +0 -80
  77. package/symphony/mcp/tools/locks.js +0 -99
  78. package/symphony/mcp/tools/status.js +0 -82
  79. package/symphony/mcp/tools/tasks.js +0 -216
  80. package/symphony/mcp/tools/workspace.js +0 -143
  81. package/symphony/next.config.mjs +0 -7
  82. package/symphony/package.json +0 -53
  83. package/symphony/scripts/postinstall.js +0 -49
  84. 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
- };