@sudosandwich/limps 0.2.0 → 0.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 (216) hide show
  1. package/README.md +281 -33
  2. package/dist/cli/config-cmd.d.ts +68 -0
  3. package/dist/cli/config-cmd.d.ts.map +1 -0
  4. package/dist/cli/config-cmd.js +206 -0
  5. package/dist/cli/config-cmd.js.map +1 -0
  6. package/dist/cli/index.d.ts +11 -0
  7. package/dist/cli/index.d.ts.map +1 -0
  8. package/dist/cli/index.js +12 -0
  9. package/dist/cli/index.js.map +1 -0
  10. package/dist/cli/init-project.d.ts +12 -0
  11. package/dist/cli/init-project.d.ts.map +1 -0
  12. package/dist/cli/init-project.js +104 -0
  13. package/dist/cli/init-project.js.map +1 -0
  14. package/dist/cli/list-agents.d.ts +66 -0
  15. package/dist/cli/list-agents.d.ts.map +1 -0
  16. package/dist/cli/list-agents.js +147 -0
  17. package/dist/cli/list-agents.js.map +1 -0
  18. package/dist/cli/list-plans.d.ts +63 -0
  19. package/dist/cli/list-plans.d.ts.map +1 -0
  20. package/dist/cli/list-plans.js +218 -0
  21. package/dist/cli/list-plans.js.map +1 -0
  22. package/dist/cli/next-task.d.ts +83 -0
  23. package/dist/cli/next-task.d.ts.map +1 -0
  24. package/dist/cli/next-task.js +201 -0
  25. package/dist/cli/next-task.js.map +1 -0
  26. package/dist/cli/registry.d.ts +94 -0
  27. package/dist/cli/registry.d.ts.map +1 -0
  28. package/dist/cli/registry.js +150 -0
  29. package/dist/cli/registry.js.map +1 -0
  30. package/dist/cli/status.d.ts +35 -0
  31. package/dist/cli/status.d.ts.map +1 -0
  32. package/dist/cli/status.js +110 -0
  33. package/dist/cli/status.js.map +1 -0
  34. package/dist/cli.d.ts +3 -0
  35. package/dist/cli.d.ts.map +1 -0
  36. package/dist/cli.js +10 -0
  37. package/dist/cli.js.map +1 -0
  38. package/dist/commands/config/add.d.ts +9 -0
  39. package/dist/commands/config/add.d.ts.map +1 -0
  40. package/dist/commands/config/add.js +20 -0
  41. package/dist/commands/config/add.js.map +1 -0
  42. package/dist/commands/config/discover.d.ts +3 -0
  43. package/dist/commands/config/discover.d.ts.map +1 -0
  44. package/dist/commands/config/discover.js +9 -0
  45. package/dist/commands/config/discover.js.map +1 -0
  46. package/dist/commands/config/index.d.ts +3 -0
  47. package/dist/commands/config/index.d.ts.map +1 -0
  48. package/dist/commands/config/index.js +7 -0
  49. package/dist/commands/config/index.js.map +1 -0
  50. package/dist/commands/config/list.d.ts +3 -0
  51. package/dist/commands/config/list.d.ts.map +1 -0
  52. package/dist/commands/config/list.js +9 -0
  53. package/dist/commands/config/list.js.map +1 -0
  54. package/dist/commands/config/path.d.ts +3 -0
  55. package/dist/commands/config/path.d.ts.map +1 -0
  56. package/dist/commands/config/path.js +10 -0
  57. package/dist/commands/config/path.js.map +1 -0
  58. package/dist/commands/config/remove.d.ts +9 -0
  59. package/dist/commands/config/remove.d.ts.map +1 -0
  60. package/dist/commands/config/remove.js +17 -0
  61. package/dist/commands/config/remove.js.map +1 -0
  62. package/dist/commands/config/set.d.ts +9 -0
  63. package/dist/commands/config/set.d.ts.map +1 -0
  64. package/dist/commands/config/set.js +17 -0
  65. package/dist/commands/config/set.js.map +1 -0
  66. package/dist/commands/config/show.d.ts +3 -0
  67. package/dist/commands/config/show.d.ts.map +1 -0
  68. package/dist/commands/config/show.js +15 -0
  69. package/dist/commands/config/show.js.map +1 -0
  70. package/dist/commands/config/use.d.ts +9 -0
  71. package/dist/commands/config/use.d.ts.map +1 -0
  72. package/dist/commands/config/use.js +17 -0
  73. package/dist/commands/config/use.js.map +1 -0
  74. package/dist/commands/index.d.ts +3 -0
  75. package/dist/commands/index.d.ts.map +1 -0
  76. package/dist/commands/index.js +7 -0
  77. package/dist/commands/index.js.map +1 -0
  78. package/dist/commands/init.d.ts +13 -0
  79. package/dist/commands/init.d.ts.map +1 -0
  80. package/dist/commands/init.js +20 -0
  81. package/dist/commands/init.js.map +1 -0
  82. package/dist/commands/list-agents.d.ts +13 -0
  83. package/dist/commands/list-agents.d.ts.map +1 -0
  84. package/dist/commands/list-agents.js +31 -0
  85. package/dist/commands/list-agents.js.map +1 -0
  86. package/dist/commands/list-plans.d.ts +11 -0
  87. package/dist/commands/list-plans.d.ts.map +1 -0
  88. package/dist/commands/list-plans.js +21 -0
  89. package/dist/commands/list-plans.js.map +1 -0
  90. package/dist/commands/next-task.d.ts +13 -0
  91. package/dist/commands/next-task.d.ts.map +1 -0
  92. package/dist/commands/next-task.js +46 -0
  93. package/dist/commands/next-task.js.map +1 -0
  94. package/dist/commands/serve.d.ts +11 -0
  95. package/dist/commands/serve.d.ts.map +1 -0
  96. package/dist/commands/serve.js +31 -0
  97. package/dist/commands/serve.js.map +1 -0
  98. package/dist/commands/status.d.ts +13 -0
  99. package/dist/commands/status.d.ts.map +1 -0
  100. package/dist/commands/status.js +28 -0
  101. package/dist/commands/status.js.map +1 -0
  102. package/dist/components/AgentsList.d.ts +19 -0
  103. package/dist/components/AgentsList.d.ts.map +1 -0
  104. package/dist/components/AgentsList.js +29 -0
  105. package/dist/components/AgentsList.js.map +1 -0
  106. package/dist/components/Error.d.ts +6 -0
  107. package/dist/components/Error.d.ts.map +1 -0
  108. package/dist/components/Error.js +6 -0
  109. package/dist/components/Error.js.map +1 -0
  110. package/dist/components/NextTask.d.ts +12 -0
  111. package/dist/components/NextTask.d.ts.map +1 -0
  112. package/dist/components/NextTask.js +11 -0
  113. package/dist/components/NextTask.js.map +1 -0
  114. package/dist/components/PlanStatus.d.ts +11 -0
  115. package/dist/components/PlanStatus.d.ts.map +1 -0
  116. package/dist/components/PlanStatus.js +18 -0
  117. package/dist/components/PlanStatus.js.map +1 -0
  118. package/dist/components/PlansList.d.ts +12 -0
  119. package/dist/components/PlansList.d.ts.map +1 -0
  120. package/dist/components/PlansList.js +23 -0
  121. package/dist/components/PlansList.js.map +1 -0
  122. package/dist/components/Success.d.ts +6 -0
  123. package/dist/components/Success.d.ts.map +1 -0
  124. package/dist/components/Success.js +6 -0
  125. package/dist/components/Success.js.map +1 -0
  126. package/dist/index.d.ts +6 -0
  127. package/dist/index.d.ts.map +1 -1
  128. package/dist/index.js +9 -246
  129. package/dist/index.js.map +1 -1
  130. package/dist/server-main.d.ts +11 -0
  131. package/dist/server-main.d.ts.map +1 -0
  132. package/dist/server-main.js +81 -0
  133. package/dist/server-main.js.map +1 -0
  134. package/dist/server.js +1 -1
  135. package/dist/server.js.map +1 -1
  136. package/dist/theme/colors.d.ts +64 -0
  137. package/dist/theme/colors.d.ts.map +1 -0
  138. package/dist/theme/colors.js +85 -0
  139. package/dist/theme/colors.js.map +1 -0
  140. package/dist/theme/index.d.ts +6 -0
  141. package/dist/theme/index.d.ts.map +1 -0
  142. package/dist/theme/index.js +6 -0
  143. package/dist/theme/index.js.map +1 -0
  144. package/dist/tools/claim-task.d.ts +7 -10
  145. package/dist/tools/claim-task.d.ts.map +1 -1
  146. package/dist/tools/create-doc.d.ts +7 -10
  147. package/dist/tools/create-doc.d.ts.map +1 -1
  148. package/dist/tools/create-plan.d.ts +1 -7
  149. package/dist/tools/create-plan.d.ts.map +1 -1
  150. package/dist/tools/delete-doc.d.ts +1 -9
  151. package/dist/tools/delete-doc.d.ts.map +1 -1
  152. package/dist/tools/get-next-task.d.ts +19 -9
  153. package/dist/tools/get-next-task.d.ts.map +1 -1
  154. package/dist/tools/get-next-task.js +64 -1
  155. package/dist/tools/get-next-task.js.map +1 -1
  156. package/dist/tools/get-plan-status.d.ts +24 -0
  157. package/dist/tools/get-plan-status.d.ts.map +1 -0
  158. package/dist/tools/get-plan-status.js +48 -0
  159. package/dist/tools/get-plan-status.js.map +1 -0
  160. package/dist/tools/index.d.ts.map +1 -1
  161. package/dist/tools/index.js +66 -18
  162. package/dist/tools/index.js.map +1 -1
  163. package/dist/tools/list-agents.d.ts +24 -0
  164. package/dist/tools/list-agents.d.ts.map +1 -0
  165. package/dist/tools/list-agents.js +60 -0
  166. package/dist/tools/list-agents.js.map +1 -0
  167. package/dist/tools/list-docs.d.ts +1 -11
  168. package/dist/tools/list-docs.d.ts.map +1 -1
  169. package/dist/tools/list-plans.d.ts +23 -0
  170. package/dist/tools/list-plans.d.ts.map +1 -0
  171. package/dist/tools/list-plans.js +44 -0
  172. package/dist/tools/list-plans.js.map +1 -0
  173. package/dist/tools/open-document-in-cursor.d.ts +1 -9
  174. package/dist/tools/open-document-in-cursor.d.ts.map +1 -1
  175. package/dist/tools/process-doc.d.ts +43 -0
  176. package/dist/tools/process-doc.d.ts.map +1 -0
  177. package/dist/tools/{rlm-query.js → process-doc.js} +7 -8
  178. package/dist/tools/process-doc.js.map +1 -0
  179. package/dist/tools/process-docs.d.ts +54 -0
  180. package/dist/tools/process-docs.d.ts.map +1 -0
  181. package/dist/tools/{rlm-multi-query.js → process-docs.js} +10 -10
  182. package/dist/tools/process-docs.js.map +1 -0
  183. package/dist/tools/release-task.d.ts +5 -10
  184. package/dist/tools/release-task.d.ts.map +1 -1
  185. package/dist/tools/search-docs.d.ts +1 -7
  186. package/dist/tools/search-docs.d.ts.map +1 -1
  187. package/dist/tools/update-doc.d.ts +6 -90
  188. package/dist/tools/update-doc.d.ts.map +1 -1
  189. package/dist/tools/update-task-status.d.ts +7 -12
  190. package/dist/tools/update-task-status.d.ts.map +1 -1
  191. package/dist/utils/config-resolver.d.ts +19 -0
  192. package/dist/utils/config-resolver.d.ts.map +1 -0
  193. package/dist/utils/config-resolver.js +65 -0
  194. package/dist/utils/config-resolver.js.map +1 -0
  195. package/dist/utils/index.d.ts +1 -0
  196. package/dist/utils/index.d.ts.map +1 -1
  197. package/dist/utils/index.js +1 -0
  198. package/dist/utils/index.js.map +1 -1
  199. package/dist/utils/markdown.d.ts +15 -0
  200. package/dist/utils/markdown.d.ts.map +1 -0
  201. package/dist/utils/markdown.js +20 -0
  202. package/dist/utils/markdown.js.map +1 -0
  203. package/dist/utils/os-paths.d.ts +4 -4
  204. package/dist/utils/os-paths.js +5 -5
  205. package/dist/utils/os-paths.js.map +1 -1
  206. package/package.json +22 -11
  207. package/dist/tools/read-doc.d.ts +0 -44
  208. package/dist/tools/read-doc.d.ts.map +0 -1
  209. package/dist/tools/read-doc.js +0 -174
  210. package/dist/tools/read-doc.js.map +0 -1
  211. package/dist/tools/rlm-multi-query.d.ts +0 -110
  212. package/dist/tools/rlm-multi-query.d.ts.map +0 -1
  213. package/dist/tools/rlm-multi-query.js.map +0 -1
  214. package/dist/tools/rlm-query.d.ts +0 -56
  215. package/dist/tools/rlm-query.d.ts.map +0 -1
  216. package/dist/tools/rlm-query.js.map +0 -1
@@ -0,0 +1,150 @@
1
+ /**
2
+ * Project registry for managing limps configurations.
3
+ * Stores a mapping of project names to config paths, enabling
4
+ * users to switch between projects without specifying --config each time.
5
+ */
6
+ import { existsSync, readFileSync, writeFileSync, mkdirSync, renameSync } from 'fs';
7
+ import { dirname } from 'path';
8
+ import { getOSBasePath } from '../utils/os-paths.js';
9
+ /**
10
+ * Get the path to the registry file.
11
+ * Uses XDG-compliant location: ~/.config/limps/registry.json
12
+ *
13
+ * @returns Absolute path to registry.json
14
+ */
15
+ export function getRegistryPath() {
16
+ return `${getOSBasePath('limps')}/registry.json`;
17
+ }
18
+ /**
19
+ * Load the project registry from disk.
20
+ * Returns an empty registry if the file doesn't exist.
21
+ *
22
+ * @returns The project registry
23
+ */
24
+ export function loadRegistry() {
25
+ const path = getRegistryPath();
26
+ if (!existsSync(path)) {
27
+ return { version: 1, current: null, projects: {} };
28
+ }
29
+ try {
30
+ const content = readFileSync(path, 'utf-8');
31
+ const registry = JSON.parse(content);
32
+ // Validate basic structure
33
+ if (!registry.version || !registry.projects) {
34
+ console.error('Warning: Corrupt registry file, resetting to empty');
35
+ return { version: 1, current: null, projects: {} };
36
+ }
37
+ return registry;
38
+ }
39
+ catch (_error) {
40
+ console.error('Warning: Failed to parse registry file, resetting to empty');
41
+ return { version: 1, current: null, projects: {} };
42
+ }
43
+ }
44
+ /**
45
+ * Save the project registry to disk.
46
+ * Uses atomic write (write to temp, then rename) to prevent corruption.
47
+ *
48
+ * @param registry - The registry to save
49
+ */
50
+ export function saveRegistry(registry) {
51
+ const path = getRegistryPath();
52
+ mkdirSync(dirname(path), { recursive: true });
53
+ // Atomic write: write to temp file, then rename
54
+ const tmp = `${path}.tmp.${process.pid}`;
55
+ writeFileSync(tmp, JSON.stringify(registry, null, 2));
56
+ renameSync(tmp, path);
57
+ }
58
+ /**
59
+ * Register a new project in the registry.
60
+ *
61
+ * @param name - Project name (used as identifier)
62
+ * @param configPath - Absolute path to the project's config.json
63
+ */
64
+ export function registerProject(name, configPath) {
65
+ const registry = loadRegistry();
66
+ registry.projects[name] = {
67
+ configPath,
68
+ registeredAt: new Date().toISOString(),
69
+ };
70
+ saveRegistry(registry);
71
+ }
72
+ /**
73
+ * Unregister a project from the registry.
74
+ * If the project is the current project, clears the current selection.
75
+ * Does not delete any files, only removes the registry entry.
76
+ *
77
+ * @param name - Project name to unregister
78
+ * @throws Error if the project is not registered
79
+ */
80
+ export function unregisterProject(name) {
81
+ const registry = loadRegistry();
82
+ if (!registry.projects[name]) {
83
+ throw new Error(`Project not found: ${name}`);
84
+ }
85
+ // Clear current if this was the active project
86
+ if (registry.current === name) {
87
+ registry.current = null;
88
+ }
89
+ // eslint-disable-next-line @typescript-eslint/no-dynamic-delete
90
+ delete registry.projects[name];
91
+ saveRegistry(registry);
92
+ }
93
+ /**
94
+ * Set the current/default project.
95
+ *
96
+ * @param name - Project name to set as current, or null to clear
97
+ * @throws Error if the project is not registered
98
+ */
99
+ export function setCurrentProject(name) {
100
+ const registry = loadRegistry();
101
+ if (name !== null && !registry.projects[name]) {
102
+ throw new Error(`Project not found: ${name}\nRun \`limps config list\` to see available projects.`);
103
+ }
104
+ registry.current = name;
105
+ saveRegistry(registry);
106
+ }
107
+ /**
108
+ * Get the config path for the current project.
109
+ *
110
+ * @returns Config path if a current project is set and exists, null otherwise
111
+ */
112
+ export function getCurrentProjectPath() {
113
+ const registry = loadRegistry();
114
+ if (!registry.current) {
115
+ return null;
116
+ }
117
+ const project = registry.projects[registry.current];
118
+ if (!project) {
119
+ return null;
120
+ }
121
+ return project.configPath;
122
+ }
123
+ /**
124
+ * Get the config path for a specific project by name.
125
+ *
126
+ * @param name - Project name to look up
127
+ * @returns Config path if found, null otherwise
128
+ */
129
+ export function getProjectPath(name) {
130
+ const registry = loadRegistry();
131
+ const project = registry.projects[name];
132
+ return project?.configPath ?? null;
133
+ }
134
+ /**
135
+ * List all registered projects.
136
+ *
137
+ * @returns Array of project info objects
138
+ */
139
+ export function listProjects() {
140
+ const registry = loadRegistry();
141
+ return Object.entries(registry.projects)
142
+ .map(([name, project]) => ({
143
+ name,
144
+ current: name === registry.current,
145
+ configPath: project.configPath,
146
+ registeredAt: project.registeredAt,
147
+ }))
148
+ .sort((a, b) => a.name.localeCompare(b.name));
149
+ }
150
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/cli/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * CLI command: status
3
+ * Show plan status summary.
4
+ */
5
+ import type { ServerConfig } from '../config.js';
6
+ import type { AgentFrontmatter } from '../agent-parser.js';
7
+ /**
8
+ * Plan status summary.
9
+ */
10
+ export interface PlanStatusSummary {
11
+ planName: string;
12
+ totalAgents: number;
13
+ statusCounts: Record<AgentFrontmatter['status'], number>;
14
+ personaCounts: Record<AgentFrontmatter['persona'], number>;
15
+ completionPercentage: number;
16
+ blockedAgents: string[];
17
+ wipAgents: string[];
18
+ }
19
+ /**
20
+ * Get status summary for a plan.
21
+ *
22
+ * @param config - Server configuration
23
+ * @param planId - Plan number or name
24
+ * @returns Plan status summary
25
+ */
26
+ export declare function getPlanStatusSummary(config: ServerConfig, planId: string): PlanStatusSummary;
27
+ /**
28
+ * Format status summary for CLI output.
29
+ *
30
+ * @param config - Server configuration
31
+ * @param planId - Plan number or name
32
+ * @returns Formatted string output for CLI
33
+ */
34
+ export declare function status(config: ServerConfig, planId: string): string;
35
+ //# sourceMappingURL=status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/cli/status.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;IACzD,aAAa,EAAE,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;IAC3D,oBAAoB,EAAE,MAAM,CAAC;IAC7B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,iBAAiB,CAmD5F;AAED;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAsDnE"}
@@ -0,0 +1,110 @@
1
+ /**
2
+ * CLI command: status
3
+ * Show plan status summary.
4
+ */
5
+ import { findPlanDirectory, getAgentFiles } from './list-agents.js';
6
+ /**
7
+ * Get status summary for a plan.
8
+ *
9
+ * @param config - Server configuration
10
+ * @param planId - Plan number or name
11
+ * @returns Plan status summary
12
+ */
13
+ export function getPlanStatusSummary(config, planId) {
14
+ const planDir = findPlanDirectory(config.plansPath, planId);
15
+ if (!planDir) {
16
+ throw new Error(`Plan not found: ${planId}`);
17
+ }
18
+ const agents = getAgentFiles(planDir);
19
+ const planName = planDir.split('/').pop() || planId;
20
+ const statusCounts = {
21
+ GAP: 0,
22
+ WIP: 0,
23
+ PASS: 0,
24
+ BLOCKED: 0,
25
+ };
26
+ const personaCounts = {
27
+ coder: 0,
28
+ reviewer: 0,
29
+ pm: 0,
30
+ customer: 0,
31
+ };
32
+ const blockedAgents = [];
33
+ const wipAgents = [];
34
+ for (const agent of agents) {
35
+ statusCounts[agent.frontmatter.status]++;
36
+ personaCounts[agent.frontmatter.persona]++;
37
+ if (agent.frontmatter.status === 'BLOCKED') {
38
+ blockedAgents.push(`${agent.agentNumber}: ${agent.title || 'Untitled'}`);
39
+ }
40
+ if (agent.frontmatter.status === 'WIP') {
41
+ wipAgents.push(`${agent.agentNumber}: ${agent.title || 'Untitled'}`);
42
+ }
43
+ }
44
+ const completionPercentage = agents.length > 0 ? Math.round((statusCounts.PASS / agents.length) * 100) : 0;
45
+ return {
46
+ planName,
47
+ totalAgents: agents.length,
48
+ statusCounts,
49
+ personaCounts,
50
+ completionPercentage,
51
+ blockedAgents,
52
+ wipAgents,
53
+ };
54
+ }
55
+ /**
56
+ * Format status summary for CLI output.
57
+ *
58
+ * @param config - Server configuration
59
+ * @param planId - Plan number or name
60
+ * @returns Formatted string output for CLI
61
+ */
62
+ export function status(config, planId) {
63
+ const summary = getPlanStatusSummary(config, planId);
64
+ const lines = [];
65
+ lines.push(`Plan Status: ${summary.planName}`);
66
+ lines.push('='.repeat(40));
67
+ lines.push('');
68
+ // Progress bar
69
+ const barWidth = 20;
70
+ const filledWidth = Math.round((summary.completionPercentage / 100) * barWidth);
71
+ const emptyWidth = barWidth - filledWidth;
72
+ const progressBar = '[' + '#'.repeat(filledWidth) + '-'.repeat(emptyWidth) + ']';
73
+ lines.push(`Progress: ${progressBar} ${summary.completionPercentage}%`);
74
+ lines.push('');
75
+ // Agent counts
76
+ lines.push('Agents:');
77
+ lines.push(` Total: ${summary.totalAgents}`);
78
+ lines.push(` Complete: ${summary.statusCounts.PASS}`);
79
+ lines.push(` Active: ${summary.statusCounts.WIP}`);
80
+ lines.push(` Pending: ${summary.statusCounts.GAP}`);
81
+ lines.push(` Blocked: ${summary.statusCounts.BLOCKED}`);
82
+ lines.push('');
83
+ // Persona distribution
84
+ const activePersonas = Object.entries(summary.personaCounts).filter(([, count]) => count > 0);
85
+ if (activePersonas.length > 0) {
86
+ lines.push('By Persona:');
87
+ for (const [persona, count] of activePersonas) {
88
+ lines.push(` ${persona}: ${count}`);
89
+ }
90
+ lines.push('');
91
+ }
92
+ // Active work
93
+ if (summary.wipAgents.length > 0) {
94
+ lines.push('In Progress:');
95
+ for (const agent of summary.wipAgents) {
96
+ lines.push(` * ${agent}`);
97
+ }
98
+ lines.push('');
99
+ }
100
+ // Blocked items
101
+ if (summary.blockedAgents.length > 0) {
102
+ lines.push('Blocked:');
103
+ for (const agent of summary.blockedAgents) {
104
+ lines.push(` ! ${agent}`);
105
+ }
106
+ lines.push('');
107
+ }
108
+ return lines.join('\n');
109
+ }
110
+ //# sourceMappingURL=status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/cli/status.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.tsx"],"names":[],"mappings":""}
package/dist/cli.js ADDED
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env node
2
+ import Pastel from 'pastel';
3
+ const app = new Pastel({
4
+ importMeta: import.meta,
5
+ name: 'limps',
6
+ version: '0.3.0',
7
+ description: 'Local Intelligent MCP Planning Server',
8
+ });
9
+ await app.run();
10
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.tsx"],"names":[],"mappings":";AACA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC,IAAI;IACvB,IAAI,EAAE,OAAO;IACb,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE,uCAAuC;CACrD,CAAC,CAAC;AAEH,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { z } from 'zod';
2
+ export declare const description = "Register an existing config file";
3
+ export declare const args: z.ZodTuple<[z.ZodString, z.ZodString], null>;
4
+ interface Props {
5
+ args: z.infer<typeof args>;
6
+ }
7
+ export default function ConfigAddCommand({ args }: Props): React.ReactNode;
8
+ export {};
9
+ //# sourceMappingURL=add.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../src/commands/config/add.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,WAAW,qCAAqC,CAAC;AAE9D,eAAO,MAAM,IAAI,8CAGf,CAAC;AAEH,UAAU,KAAK;IACb,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;CAC5B;AAED,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,GAAG,KAAK,CAAC,SAAS,CASzE"}
@@ -0,0 +1,20 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Text } from 'ink';
3
+ import { z } from 'zod';
4
+ import { configAdd } from '../../cli/config-cmd.js';
5
+ export const description = 'Register an existing config file';
6
+ export const args = z.tuple([
7
+ z.string().describe('Project name'),
8
+ z.string().describe('Path to config file'),
9
+ ]);
10
+ export default function ConfigAddCommand({ args }) {
11
+ const [name, configPath] = args;
12
+ try {
13
+ const output = configAdd(name, configPath);
14
+ return _jsx(Text, { color: "green", children: output });
15
+ }
16
+ catch (error) {
17
+ return _jsxs(Text, { color: "red", children: ["Error: ", error.message] });
18
+ }
19
+ }
20
+ //# sourceMappingURL=add.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add.js","sourceRoot":"","sources":["../../../src/commands/config/add.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpD,MAAM,CAAC,MAAM,WAAW,GAAG,kCAAkC,CAAC;AAE9D,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC;IAC1B,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;IACnC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;CAC3C,CAAC,CAAC;AAMH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EAAE,IAAI,EAAS;IACtD,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,IAAI,CAAC;IAEhC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC3C,OAAO,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,YAAE,MAAM,GAAQ,CAAC;IAC7C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,MAAC,IAAI,IAAC,KAAK,EAAC,KAAK,wBAAU,KAAe,CAAC,OAAO,IAAQ,CAAC;IACpE,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const description = "Find and register configs in default locations";
2
+ export default function ConfigDiscoverCommand(): React.ReactNode;
3
+ //# sourceMappingURL=discover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../../src/commands/config/discover.tsx"],"names":[],"mappings":"AAGA,eAAO,MAAM,WAAW,mDAAmD,CAAC;AAE5E,MAAM,CAAC,OAAO,UAAU,qBAAqB,IAAI,KAAK,CAAC,SAAS,CAG/D"}
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Text } from 'ink';
3
+ import { configDiscover } from '../../cli/config-cmd.js';
4
+ export const description = 'Find and register configs in default locations';
5
+ export default function ConfigDiscoverCommand() {
6
+ const output = configDiscover();
7
+ return _jsx(Text, { children: output });
8
+ }
9
+ //# sourceMappingURL=discover.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discover.js","sourceRoot":"","sources":["../../../src/commands/config/discover.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD,MAAM,CAAC,MAAM,WAAW,GAAG,gDAAgD,CAAC;AAE5E,MAAM,CAAC,OAAO,UAAU,qBAAqB;IAC3C,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;IAChC,OAAO,KAAC,IAAI,cAAE,MAAM,GAAQ,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const description = "Manage project configuration";
2
+ export default function ConfigCommand(): React.ReactNode;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/config/index.tsx"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW,iCAAiC,CAAC;AAE1D,MAAM,CAAC,OAAO,UAAU,aAAa,IAAI,KAAK,CAAC,SAAS,CAmBvD"}
@@ -0,0 +1,7 @@
1
+ import { jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Text } from 'ink';
3
+ export const description = 'Manage project configuration';
4
+ export default function ConfigCommand() {
5
+ return (_jsxs(Text, { children: ["Usage: limps config ", '<command>', '\n', '\n', "Commands:", '\n', ' ', "list Show all registered projects", '\n', ' ', "use ", '<name>', " Set the current/default project", '\n', ' ', "show Display resolved configuration values", '\n', ' ', "path Print the resolved config file path", '\n', ' ', "add ", '<name>', " ", '<path>', " Register an existing config file", '\n', ' ', "remove ", '<name>', " Unregister a project (keeps files)", '\n', ' ', "set ", '<path>', " Set current from config path (auto-registers)", '\n', ' ', "discover Find and register configs in default locations", '\n', '\n', "Run `limps config ", '<command>', " --help` for more information."] }));
6
+ }
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/config/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAE3B,MAAM,CAAC,MAAM,WAAW,GAAG,8BAA8B,CAAC;AAE1D,MAAM,CAAC,OAAO,UAAU,aAAa;IACnC,OAAO,CACL,MAAC,IAAI,uCACkB,WAAW,EAC/B,IAAI,EACJ,IAAI,eACK,IAAI,EACb,IAAI,uCAAmC,IAAI,EAC3C,IAAI,UAAM,QAAQ,sCAAkC,IAAI,EACxD,IAAI,gDAA4C,IAAI,EACpD,IAAI,8CAA0C,IAAI,EAClD,IAAI,UAAM,QAAQ,OAAG,QAAQ,uCAAmC,IAAI,EACpE,IAAI,aAAS,QAAQ,yCAAqC,IAAI,EAC9D,IAAI,UAAM,QAAQ,oDAAgD,IAAI,EACtE,IAAI,6DAAyD,IAAI,EACjE,IAAI,wBACc,WAAW,sCACzB,CACR,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const description = "Show all registered projects";
2
+ export default function ConfigListCommand(): React.ReactNode;
3
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/config/list.tsx"],"names":[],"mappings":"AAGA,eAAO,MAAM,WAAW,iCAAiC,CAAC;AAE1D,MAAM,CAAC,OAAO,UAAU,iBAAiB,IAAI,KAAK,CAAC,SAAS,CAG3D"}
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Text } from 'ink';
3
+ import { configList } from '../../cli/config-cmd.js';
4
+ export const description = 'Show all registered projects';
5
+ export default function ConfigListCommand() {
6
+ const output = configList();
7
+ return _jsx(Text, { children: output });
8
+ }
9
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/config/list.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,MAAM,CAAC,MAAM,WAAW,GAAG,8BAA8B,CAAC;AAE1D,MAAM,CAAC,OAAO,UAAU,iBAAiB;IACvC,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,OAAO,KAAC,IAAI,cAAE,MAAM,GAAQ,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const description = "Print the resolved config file path";
2
+ export default function ConfigPathCommand(): React.ReactNode;
3
+ //# sourceMappingURL=path.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../../../src/commands/config/path.tsx"],"names":[],"mappings":"AAIA,eAAO,MAAM,WAAW,wCAAwC,CAAC;AAEjE,MAAM,CAAC,OAAO,UAAU,iBAAiB,IAAI,KAAK,CAAC,SAAS,CAG3D"}
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Text } from 'ink';
3
+ import { configPath } from '../../cli/config-cmd.js';
4
+ import { resolveConfigPath } from '../../utils/config-resolver.js';
5
+ export const description = 'Print the resolved config file path';
6
+ export default function ConfigPathCommand() {
7
+ const output = configPath(() => resolveConfigPath());
8
+ return _jsx(Text, { children: output });
9
+ }
10
+ //# sourceMappingURL=path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path.js","sourceRoot":"","sources":["../../../src/commands/config/path.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAEnE,MAAM,CAAC,MAAM,WAAW,GAAG,qCAAqC,CAAC;AAEjE,MAAM,CAAC,OAAO,UAAU,iBAAiB;IACvC,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACrD,OAAO,KAAC,IAAI,cAAE,MAAM,GAAQ,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { z } from 'zod';
2
+ export declare const description = "Unregister a project (keeps files)";
3
+ export declare const args: z.ZodTuple<[z.ZodString], null>;
4
+ interface Props {
5
+ args: z.infer<typeof args>;
6
+ }
7
+ export default function ConfigRemoveCommand({ args }: Props): React.ReactNode;
8
+ export {};
9
+ //# sourceMappingURL=remove.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove.d.ts","sourceRoot":"","sources":["../../../src/commands/config/remove.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,WAAW,uCAAuC,CAAC;AAEhE,eAAO,MAAM,IAAI,iCAAiD,CAAC;AAEnE,UAAU,KAAK;IACb,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;CAC5B;AAED,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,GAAG,KAAK,CAAC,SAAS,CAS5E"}
@@ -0,0 +1,17 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Text } from 'ink';
3
+ import { z } from 'zod';
4
+ import { configRemove } from '../../cli/config-cmd.js';
5
+ export const description = 'Unregister a project (keeps files)';
6
+ export const args = z.tuple([z.string().describe('Project name')]);
7
+ export default function ConfigRemoveCommand({ args }) {
8
+ const [name] = args;
9
+ try {
10
+ const output = configRemove(name);
11
+ return _jsx(Text, { color: "green", children: output });
12
+ }
13
+ catch (error) {
14
+ return _jsxs(Text, { color: "red", children: ["Error: ", error.message] });
15
+ }
16
+ }
17
+ //# sourceMappingURL=remove.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../src/commands/config/remove.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,MAAM,CAAC,MAAM,WAAW,GAAG,oCAAoC,CAAC;AAEhE,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;AAMnE,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAAE,IAAI,EAAS;IACzD,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAEpB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAClC,OAAO,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,YAAE,MAAM,GAAQ,CAAC;IAC7C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,MAAC,IAAI,IAAC,KAAK,EAAC,KAAK,wBAAU,KAAe,CAAC,OAAO,IAAQ,CAAC;IACpE,CAAC;AACH,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { z } from 'zod';
2
+ export declare const description = "Set current from config path (auto-registers)";
3
+ export declare const args: z.ZodTuple<[z.ZodString], null>;
4
+ interface Props {
5
+ args: z.infer<typeof args>;
6
+ }
7
+ export default function ConfigSetCommand({ args }: Props): React.ReactNode;
8
+ export {};
9
+ //# sourceMappingURL=set.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set.d.ts","sourceRoot":"","sources":["../../../src/commands/config/set.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,WAAW,kDAAkD,CAAC;AAE3E,eAAO,MAAM,IAAI,iCAAwD,CAAC;AAE1E,UAAU,KAAK;IACb,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;CAC5B;AAED,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,GAAG,KAAK,CAAC,SAAS,CASzE"}
@@ -0,0 +1,17 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Text } from 'ink';
3
+ import { z } from 'zod';
4
+ import { configSet } from '../../cli/config-cmd.js';
5
+ export const description = 'Set current from config path (auto-registers)';
6
+ export const args = z.tuple([z.string().describe('Path to config file')]);
7
+ export default function ConfigSetCommand({ args }) {
8
+ const [configPath] = args;
9
+ try {
10
+ const output = configSet(configPath);
11
+ return _jsx(Text, { color: "green", children: output });
12
+ }
13
+ catch (error) {
14
+ return _jsxs(Text, { color: "red", children: ["Error: ", error.message] });
15
+ }
16
+ }
17
+ //# sourceMappingURL=set.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set.js","sourceRoot":"","sources":["../../../src/commands/config/set.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpD,MAAM,CAAC,MAAM,WAAW,GAAG,+CAA+C,CAAC;AAE3E,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAM1E,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EAAE,IAAI,EAAS;IACtD,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;IAE1B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;QACrC,OAAO,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,YAAE,MAAM,GAAQ,CAAC;IAC7C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,MAAC,IAAI,IAAC,KAAK,EAAC,KAAK,wBAAU,KAAe,CAAC,OAAO,IAAQ,CAAC;IACpE,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const description = "Display resolved configuration values";
2
+ export default function ConfigShowCommand(): React.ReactNode;
3
+ //# sourceMappingURL=show.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"show.d.ts","sourceRoot":"","sources":["../../../src/commands/config/show.tsx"],"names":[],"mappings":"AAIA,eAAO,MAAM,WAAW,0CAA0C,CAAC;AAEnE,MAAM,CAAC,OAAO,UAAU,iBAAiB,IAAI,KAAK,CAAC,SAAS,CAO3D"}
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Text } from 'ink';
3
+ import { configShow } from '../../cli/config-cmd.js';
4
+ import { resolveConfigPath } from '../../utils/config-resolver.js';
5
+ export const description = 'Display resolved configuration values';
6
+ export default function ConfigShowCommand() {
7
+ try {
8
+ const output = configShow(() => resolveConfigPath());
9
+ return _jsx(Text, { children: output });
10
+ }
11
+ catch (error) {
12
+ return _jsxs(Text, { color: "red", children: ["Error: ", error.message] });
13
+ }
14
+ }
15
+ //# sourceMappingURL=show.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"show.js","sourceRoot":"","sources":["../../../src/commands/config/show.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAEnE,MAAM,CAAC,MAAM,WAAW,GAAG,uCAAuC,CAAC;AAEnE,MAAM,CAAC,OAAO,UAAU,iBAAiB;IACvC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAC,CAAC;QACrD,OAAO,KAAC,IAAI,cAAE,MAAM,GAAQ,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,MAAC,IAAI,IAAC,KAAK,EAAC,KAAK,wBAAU,KAAe,CAAC,OAAO,IAAQ,CAAC;IACpE,CAAC;AACH,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { z } from 'zod';
2
+ export declare const description = "Set the current/default project";
3
+ export declare const args: z.ZodTuple<[z.ZodString], null>;
4
+ interface Props {
5
+ args: z.infer<typeof args>;
6
+ }
7
+ export default function ConfigUseCommand({ args }: Props): React.ReactNode;
8
+ export {};
9
+ //# sourceMappingURL=use.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use.d.ts","sourceRoot":"","sources":["../../../src/commands/config/use.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,WAAW,oCAAoC,CAAC;AAE7D,eAAO,MAAM,IAAI,iCAAiD,CAAC;AAEnE,UAAU,KAAK;IACb,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;CAC5B;AAED,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,GAAG,KAAK,CAAC,SAAS,CASzE"}
@@ -0,0 +1,17 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Text } from 'ink';
3
+ import { z } from 'zod';
4
+ import { configUse } from '../../cli/config-cmd.js';
5
+ export const description = 'Set the current/default project';
6
+ export const args = z.tuple([z.string().describe('Project name')]);
7
+ export default function ConfigUseCommand({ args }) {
8
+ const [name] = args;
9
+ try {
10
+ const output = configUse(name);
11
+ return _jsx(Text, { color: "green", children: output });
12
+ }
13
+ catch (error) {
14
+ return _jsxs(Text, { color: "red", children: ["Error: ", error.message] });
15
+ }
16
+ }
17
+ //# sourceMappingURL=use.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use.js","sourceRoot":"","sources":["../../../src/commands/config/use.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpD,MAAM,CAAC,MAAM,WAAW,GAAG,iCAAiC,CAAC;AAE7D,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;AAMnE,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EAAE,IAAI,EAAS;IACtD,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAEpB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAC/B,OAAO,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,YAAE,MAAM,GAAQ,CAAC;IAC7C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,MAAC,IAAI,IAAC,KAAK,EAAC,KAAK,wBAAU,KAAe,CAAC,OAAO,IAAQ,CAAC;IACpE,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const description = "Local Intelligent MCP Planning Server";
2
+ export default function DefaultCommand(): React.ReactNode;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.tsx"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW,0CAA0C,CAAC;AAEnE,MAAM,CAAC,OAAO,UAAU,cAAc,IAAI,KAAK,CAAC,SAAS,CAwBxD"}