@sudosandwich/limps 3.2.0 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +114 -23
- package/dist/agent-parser.d.ts +1 -1
- package/dist/agent-parser.d.ts.map +1 -1
- package/dist/agent-parser.js +8 -4
- package/dist/agent-parser.js.map +1 -1
- package/dist/cli/docs-create.d.ts +34 -0
- package/dist/cli/docs-create.d.ts.map +1 -0
- package/dist/cli/docs-create.js +70 -0
- package/dist/cli/docs-create.js.map +1 -0
- package/dist/cli/docs-delete.d.ts +34 -0
- package/dist/cli/docs-delete.d.ts.map +1 -0
- package/dist/cli/docs-delete.js +84 -0
- package/dist/cli/docs-delete.js.map +1 -0
- package/dist/cli/docs-list.d.ts +35 -0
- package/dist/cli/docs-list.d.ts.map +1 -0
- package/dist/cli/docs-list.js +91 -0
- package/dist/cli/docs-list.js.map +1 -0
- package/dist/cli/docs-search.d.ts +35 -0
- package/dist/cli/docs-search.d.ts.map +1 -0
- package/dist/cli/docs-search.js +99 -0
- package/dist/cli/docs-search.js.map +1 -0
- package/dist/cli/docs-update.d.ts +40 -0
- package/dist/cli/docs-update.d.ts.map +1 -0
- package/dist/cli/docs-update.js +75 -0
- package/dist/cli/docs-update.js.map +1 -0
- package/dist/cli/init-project.js +1 -1
- package/dist/cli/status.d.ts +13 -0
- package/dist/cli/status.d.ts.map +1 -1
- package/dist/cli/status.js +64 -1
- package/dist/cli/status.js.map +1 -1
- package/dist/cli.js +9 -2
- package/dist/cli.js.map +1 -1
- package/dist/commands/config/index.d.ts.map +1 -1
- package/dist/commands/config/index.js +1 -0
- package/dist/commands/config/index.js.map +1 -1
- package/dist/commands/config/show-resolution.d.ts +11 -0
- package/dist/commands/config/show-resolution.d.ts.map +1 -0
- package/dist/commands/config/show-resolution.js +114 -0
- package/dist/commands/config/show-resolution.js.map +1 -0
- package/dist/commands/create-doc.d.ts +21 -0
- package/dist/commands/create-doc.d.ts.map +1 -0
- package/dist/commands/create-doc.js +99 -0
- package/dist/commands/create-doc.js.map +1 -0
- package/dist/commands/create-plan.d.ts +15 -0
- package/dist/commands/create-plan.d.ts.map +1 -0
- package/dist/commands/create-plan.js +73 -0
- package/dist/commands/create-plan.js.map +1 -0
- package/dist/commands/delete-doc.d.ts +16 -0
- package/dist/commands/delete-doc.d.ts.map +1 -0
- package/dist/commands/delete-doc.js +97 -0
- package/dist/commands/delete-doc.js.map +1 -0
- package/dist/commands/index.js +1 -1
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/list-docs.d.ts +18 -0
- package/dist/commands/list-docs.d.ts.map +1 -0
- package/dist/commands/list-docs.js +83 -0
- package/dist/commands/list-docs.js.map +1 -0
- package/dist/commands/process.d.ts +20 -0
- package/dist/commands/process.d.ts.map +1 -0
- package/dist/commands/process.js +257 -0
- package/dist/commands/process.js.map +1 -0
- package/dist/commands/search-docs.d.ts +17 -0
- package/dist/commands/search-docs.d.ts.map +1 -0
- package/dist/commands/search-docs.js +109 -0
- package/dist/commands/search-docs.js.map +1 -0
- package/dist/commands/{status-server.d.ts → server-status.d.ts} +1 -1
- package/dist/commands/server-status.d.ts.map +1 -0
- package/dist/commands/{status-server.js → server-status.js} +33 -14
- package/dist/commands/server-status.js.map +1 -0
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +26 -9
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/status.d.ts +7 -0
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +74 -2
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/tags/add.d.ts +16 -0
- package/dist/commands/tags/add.d.ts.map +1 -0
- package/dist/commands/tags/add.js +120 -0
- package/dist/commands/tags/add.js.map +1 -0
- package/dist/commands/tags/index.d.ts +3 -0
- package/dist/commands/tags/index.d.ts.map +1 -0
- package/dist/commands/tags/index.js +33 -0
- package/dist/commands/tags/index.js.map +1 -0
- package/dist/commands/tags/list.d.ts +15 -0
- package/dist/commands/tags/list.d.ts.map +1 -0
- package/dist/commands/tags/list.js +111 -0
- package/dist/commands/tags/list.js.map +1 -0
- package/dist/commands/tags/remove.d.ts +16 -0
- package/dist/commands/tags/remove.d.ts.map +1 -0
- package/dist/commands/tags/remove.js +120 -0
- package/dist/commands/tags/remove.js.map +1 -0
- package/dist/commands/update-doc.d.ts +23 -0
- package/dist/commands/update-doc.d.ts.map +1 -0
- package/dist/commands/update-doc.js +144 -0
- package/dist/commands/update-doc.js.map +1 -0
- package/dist/extensions/context.d.ts.map +1 -1
- package/dist/extensions/context.js +10 -8
- package/dist/extensions/context.js.map +1 -1
- package/dist/extensions/loader.d.ts.map +1 -1
- package/dist/extensions/loader.js +3 -2
- package/dist/extensions/loader.js.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/pidfile.d.ts +1 -0
- package/dist/pidfile.d.ts.map +1 -1
- package/dist/pidfile.js +4 -1
- package/dist/pidfile.js.map +1 -1
- package/dist/server-http-entry.js +39 -6
- package/dist/server-http-entry.js.map +1 -1
- package/dist/server-http.d.ts +11 -1
- package/dist/server-http.d.ts.map +1 -1
- package/dist/server-http.js +31 -9
- package/dist/server-http.js.map +1 -1
- package/dist/server-main.d.ts.map +1 -1
- package/dist/server-main.js +2 -1
- package/dist/server-main.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +8 -7
- package/dist/server.js.map +1 -1
- package/dist/tools/create-plan.d.ts +1 -0
- package/dist/tools/create-plan.d.ts.map +1 -1
- package/dist/tools/create-plan.js +20 -6
- package/dist/tools/create-plan.js.map +1 -1
- package/dist/tools/index.js +1 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/update-task-status.d.ts +1 -1
- package/dist/tools/update-task-status.d.ts.map +1 -1
- package/dist/tools/update-task-status.js +17 -187
- package/dist/tools/update-task-status.js.map +1 -1
- package/dist/utils/config-resolver.d.ts +1 -1
- package/dist/utils/config-resolver.d.ts.map +1 -1
- package/dist/utils/config-resolver.js +6 -4
- package/dist/utils/config-resolver.js.map +1 -1
- package/dist/utils/daemon-log.d.ts +13 -0
- package/dist/utils/daemon-log.d.ts.map +1 -0
- package/dist/utils/daemon-log.js +27 -0
- package/dist/utils/daemon-log.js.map +1 -0
- package/dist/utils/safe-logging.d.ts +24 -0
- package/dist/utils/safe-logging.d.ts.map +1 -0
- package/dist/utils/safe-logging.js +88 -0
- package/dist/utils/safe-logging.js.map +1 -0
- package/package.json +1 -1
- package/dist/commands/status-server.d.ts.map +0 -1
- package/dist/commands/status-server.js.map +0 -1
package/dist/commands/start.js
CHANGED
|
@@ -3,11 +3,13 @@ import { useEffect, useState } from 'react';
|
|
|
3
3
|
import { Text } from 'ink';
|
|
4
4
|
import { z } from 'zod';
|
|
5
5
|
import { spawn } from 'child_process';
|
|
6
|
+
import { closeSync, openSync } from 'fs';
|
|
6
7
|
import { resolve, dirname } from 'path';
|
|
7
8
|
import { fileURLToPath } from 'url';
|
|
8
9
|
import { loadConfig, getHttpServerConfig } from '../config.js';
|
|
9
10
|
import { resolveConfigPath } from '../utils/config-resolver.js';
|
|
10
11
|
import { getPidFilePath, getRunningDaemon } from '../pidfile.js';
|
|
12
|
+
import { getDaemonLogPath, ensureSystemLogDir } from '../utils/daemon-log.js';
|
|
11
13
|
import { startHttpServer, stopHttpServer } from '../server-http.js';
|
|
12
14
|
import { checkDaemonHealth, isDaemonHealthy, } from '../utils/http-client.js';
|
|
13
15
|
export const description = 'Start the limps HTTP server';
|
|
@@ -39,7 +41,7 @@ export default function StartCommand({ options: opts }) {
|
|
|
39
41
|
if (opts.foreground) {
|
|
40
42
|
// Run in foreground — blocks until stopped
|
|
41
43
|
setStatus(`limps HTTP server starting on http://${host}:${port}/mcp`);
|
|
42
|
-
await startHttpServer(configPath);
|
|
44
|
+
await startHttpServer(configPath, { port, host });
|
|
43
45
|
setStatus(`limps HTTP server running on http://${host}:${port}/mcp (PID ${process.pid})`);
|
|
44
46
|
// Keep process alive — stopHttpServer will be called by signal handlers
|
|
45
47
|
// registered in the server-http module
|
|
@@ -58,10 +60,25 @@ export default function StartCommand({ options: opts }) {
|
|
|
58
60
|
const __filename = fileURLToPath(import.meta.url);
|
|
59
61
|
const __dirname = dirname(__filename);
|
|
60
62
|
const entryPath = resolve(__dirname, '../server-http-entry.js');
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
63
|
+
ensureSystemLogDir();
|
|
64
|
+
const logPath = getDaemonLogPath(port);
|
|
65
|
+
const logFd = openSync(logPath, 'a');
|
|
66
|
+
let child;
|
|
67
|
+
try {
|
|
68
|
+
child = spawn(process.execPath, [entryPath, configPath], {
|
|
69
|
+
detached: true,
|
|
70
|
+
stdio: ['ignore', logFd, logFd],
|
|
71
|
+
env: {
|
|
72
|
+
...process.env,
|
|
73
|
+
LIMPS_HTTP_PORT: String(port),
|
|
74
|
+
LIMPS_HTTP_HOST: host,
|
|
75
|
+
LIMPS_DAEMON_LOG_PATH: logPath,
|
|
76
|
+
},
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
finally {
|
|
80
|
+
closeSync(logFd);
|
|
81
|
+
}
|
|
65
82
|
child.unref();
|
|
66
83
|
// HTTP options for health checks
|
|
67
84
|
const httpOptions = {
|
|
@@ -93,22 +110,22 @@ export default function StartCommand({ options: opts }) {
|
|
|
93
110
|
timeout: 1000,
|
|
94
111
|
});
|
|
95
112
|
if (healthResult.ok && healthResult.data.status === 'ok') {
|
|
96
|
-
setStatus(`limps daemon started (PID ${daemon.pid}) on http://${daemon.host}:${daemon.port}/mcp`);
|
|
113
|
+
setStatus(`limps daemon started (PID ${daemon.pid}) on http://${daemon.host}:${daemon.port}/mcp\nLog: ${logPath}`);
|
|
97
114
|
}
|
|
98
115
|
else {
|
|
99
116
|
const errorMsg = healthResult.ok
|
|
100
117
|
? `Health check returned status: ${healthResult.data.status}`
|
|
101
118
|
: `${healthResult.error.message} (${healthResult.error.code})`;
|
|
102
119
|
const suggestion = !healthResult.ok && healthResult.error.code === 'TIMEOUT'
|
|
103
|
-
? 'Daemon may be slow to start.
|
|
120
|
+
? 'Daemon may be slow to start. Check system resources and daemon logs.'
|
|
104
121
|
: !healthResult.ok && healthResult.error.code === 'NETWORK_ERROR'
|
|
105
122
|
? 'Cannot connect to daemon. Check if port is blocked or already in use.'
|
|
106
123
|
: 'Try running: limps start --foreground';
|
|
107
|
-
setError(`${errorMsg}\n${suggestion}\n\nRun with DEBUG=1 for more details.`);
|
|
124
|
+
setError(`${errorMsg}\n${suggestion}\nLog: ${logPath}\n\nRun with DEBUG=1 for more details.`);
|
|
108
125
|
}
|
|
109
126
|
}
|
|
110
127
|
else {
|
|
111
|
-
setError(
|
|
128
|
+
setError(`Daemon may have failed to start. Check log: ${logPath}\nOr try: limps start --foreground`);
|
|
112
129
|
}
|
|
113
130
|
setDone(true);
|
|
114
131
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EACL,iBAAiB,EACjB,eAAe,GAEhB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,CAAC,MAAM,WAAW,GAAG,6BAA6B,CAAC;AAEzD,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IAC7D,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;IACnF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IAC5D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;CAC9D,CAAC,CAAC;AAMH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EAAE,OAAO,EAAE,IAAI,EAAS;IAC3D,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAS,aAAa,CAAC,CAAC;IAC5D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACxD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAExC,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,GAAG,GAAG,KAAK,IAAmB,EAAE;YACpC,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAClD,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;gBACtC,MAAM,UAAU,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;gBAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC;gBAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC;gBAE1C,2BAA2B;gBAC3B,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;gBACzC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;gBAC/C,IAAI,QAAQ,EAAE,CAAC;oBACb,QAAQ,CACN,qCAAqC,QAAQ,CAAC,GAAG,OAAO,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,4BAA4B,CACnH,CAAC;oBACF,OAAO;gBACT,CAAC;gBAED,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;oBACpB,2CAA2C;oBAC3C,SAAS,CAAC,wCAAwC,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC;oBACtE,MAAM,eAAe,CAAC,UAAU,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.tsx"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,13 @@ export declare const options: z.ZodObject<{
|
|
|
6
6
|
config: z.ZodOptional<z.ZodString>;
|
|
7
7
|
json: z.ZodOptional<z.ZodBoolean>;
|
|
8
8
|
agent: z.ZodOptional<z.ZodString>;
|
|
9
|
+
set: z.ZodOptional<z.ZodEnum<{
|
|
10
|
+
PASS: "PASS";
|
|
11
|
+
BLOCKED: "BLOCKED";
|
|
12
|
+
GAP: "GAP";
|
|
13
|
+
WIP: "WIP";
|
|
14
|
+
}>>;
|
|
15
|
+
notes: z.ZodOptional<z.ZodString>;
|
|
9
16
|
}, z.core.$strip>;
|
|
10
17
|
interface Props {
|
|
11
18
|
args: z.infer<typeof args>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAiBxB,eAAO,MAAM,WAAW,8BAA8B,CAAC;AAEvD,eAAO,MAAM,IAAI,gDAA+D,CAAC;AAEjF,eAAO,MAAM,OAAO;;;;;;;;;;;iBAYlB,CAAC;AAEH,UAAU,KAAK;IACb,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;IAC3B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CAClC;AA6CD,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,GAAG,KAAK,CAAC,SAAS,CA6K/E"}
|
package/dist/commands/status.js
CHANGED
|
@@ -2,13 +2,13 @@ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { Text } from 'ink';
|
|
4
4
|
import { z } from 'zod';
|
|
5
|
-
import { getPlanStatusSummary, getAgentStatusSummary } from '../cli/status.js';
|
|
5
|
+
import { getPlanStatusSummary, getAgentStatusSummary, updateAgentStatus } from '../cli/status.js';
|
|
6
6
|
import { loadConfig } from '../config.js';
|
|
7
7
|
import { resolveConfigPath } from '../utils/config-resolver.js';
|
|
8
8
|
import { buildHelpOutput } from '../utils/cli-help.js';
|
|
9
9
|
import { PlanStatus } from '../components/PlanStatus.js';
|
|
10
10
|
import { AgentStatus } from '../components/AgentStatus.js';
|
|
11
|
-
import { handleJsonOutput, isJsonMode, outputJson, wrapError } from '../cli/json-output.js';
|
|
11
|
+
import { handleJsonOutput, isJsonMode, outputJson, wrapError, wrapSuccess, } from '../cli/json-output.js';
|
|
12
12
|
import { useEffect } from 'react';
|
|
13
13
|
import { resolveTaskId } from '../cli/task-resolver.js';
|
|
14
14
|
export const description = 'Show plan or agent status';
|
|
@@ -20,6 +20,11 @@ export const options = z.object({
|
|
|
20
20
|
.string()
|
|
21
21
|
.optional()
|
|
22
22
|
.describe('Show detailed status for specific agent (e.g., "0001#002" or "002")'),
|
|
23
|
+
set: z
|
|
24
|
+
.enum(['GAP', 'WIP', 'PASS', 'BLOCKED'])
|
|
25
|
+
.optional()
|
|
26
|
+
.describe('Update agent status (requires agent to be specified)'),
|
|
27
|
+
notes: z.string().optional().describe('Notes for status update (used with --set)'),
|
|
23
28
|
});
|
|
24
29
|
function AgentStatusLoader({ agentId, planContext, config, }) {
|
|
25
30
|
const [summary, setSummary] = React.useState(null);
|
|
@@ -59,6 +64,8 @@ export default function StatusCommand({ args, options }) {
|
|
|
59
64
|
'--config Path to config file',
|
|
60
65
|
'--json Output as JSON',
|
|
61
66
|
'--agent Show detailed status for specific agent',
|
|
67
|
+
'--set Update agent status (GAP|WIP|PASS|BLOCKED, requires --agent)',
|
|
68
|
+
'--notes Notes for status update (used with --set)',
|
|
62
69
|
],
|
|
63
70
|
sections: [
|
|
64
71
|
{
|
|
@@ -69,6 +76,14 @@ export default function StatusCommand({ args, options }) {
|
|
|
69
76
|
'limps status --agent 0001#002 --json',
|
|
70
77
|
],
|
|
71
78
|
},
|
|
79
|
+
{
|
|
80
|
+
title: 'Update Agent Status Examples',
|
|
81
|
+
lines: [
|
|
82
|
+
'limps status 0001 --agent 002 --set PASS',
|
|
83
|
+
'limps status --agent 0001#002 --set WIP',
|
|
84
|
+
'limps status 0001 --agent 002 --set PASS --notes "Completed in PR #116"',
|
|
85
|
+
],
|
|
86
|
+
},
|
|
72
87
|
{
|
|
73
88
|
title: 'Plan Status Examples',
|
|
74
89
|
lines: ['limps status 4', 'limps status 0004-my-feature', 'limps status 4 --json'],
|
|
@@ -76,6 +91,63 @@ export default function StatusCommand({ args, options }) {
|
|
|
76
91
|
],
|
|
77
92
|
});
|
|
78
93
|
const jsonMode = isJsonMode(options);
|
|
94
|
+
// Handle status update
|
|
95
|
+
if (options.set) {
|
|
96
|
+
if (!options.agent) {
|
|
97
|
+
if (jsonMode) {
|
|
98
|
+
useEffect(() => {
|
|
99
|
+
outputJson(wrapError('--agent is required when using --set', {
|
|
100
|
+
code: 'MISSING_AGENT',
|
|
101
|
+
help: help.meta,
|
|
102
|
+
}), 1);
|
|
103
|
+
}, []);
|
|
104
|
+
return null;
|
|
105
|
+
}
|
|
106
|
+
return (_jsxs(Text, { color: "red", children: ["Error: --agent is required when using --set", '\n\n', help.text] }));
|
|
107
|
+
}
|
|
108
|
+
const agentId = options.agent;
|
|
109
|
+
const newStatus = options.set;
|
|
110
|
+
useEffect(() => {
|
|
111
|
+
try {
|
|
112
|
+
const resolvedId = resolveTaskId(agentId, {
|
|
113
|
+
plansPath: config.plansPath,
|
|
114
|
+
planContext: planId,
|
|
115
|
+
});
|
|
116
|
+
const result = updateAgentStatus(config, resolvedId, newStatus, options.notes);
|
|
117
|
+
if (jsonMode) {
|
|
118
|
+
if (result.success) {
|
|
119
|
+
outputJson(wrapSuccess({ message: result.message }), 0);
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
outputJson(wrapError(result.message, { code: 'UPDATE_ERROR' }), 1);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
catch (error) {
|
|
127
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
128
|
+
if (jsonMode) {
|
|
129
|
+
outputJson(wrapError(errorMessage, { code: 'UPDATE_ERROR' }), 1);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}, [agentId, config, jsonMode, options.notes, newStatus, planId]);
|
|
133
|
+
if (jsonMode) {
|
|
134
|
+
return null;
|
|
135
|
+
}
|
|
136
|
+
try {
|
|
137
|
+
const resolvedId = resolveTaskId(agentId, {
|
|
138
|
+
plansPath: config.plansPath,
|
|
139
|
+
planContext: planId,
|
|
140
|
+
});
|
|
141
|
+
const result = updateAgentStatus(config, resolvedId, newStatus, options.notes);
|
|
142
|
+
if (!result.success) {
|
|
143
|
+
return _jsxs(Text, { color: "red", children: ["Error: ", result.message] });
|
|
144
|
+
}
|
|
145
|
+
return _jsxs(Text, { color: "green", children: ["\u2713 ", result.message] });
|
|
146
|
+
}
|
|
147
|
+
catch (error) {
|
|
148
|
+
return _jsxs(Text, { color: "red", children: ["Error: ", error.message] });
|
|
149
|
+
}
|
|
150
|
+
}
|
|
79
151
|
useEffect(() => {
|
|
80
152
|
if (!jsonMode) {
|
|
81
153
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
export declare const description = "Add tags to a document";
|
|
4
|
+
export declare const args: z.ZodTuple<[z.ZodString], null>;
|
|
5
|
+
export declare const options: z.ZodObject<{
|
|
6
|
+
config: z.ZodOptional<z.ZodString>;
|
|
7
|
+
json: z.ZodOptional<z.ZodBoolean>;
|
|
8
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
9
|
+
}, z.core.$strip>;
|
|
10
|
+
interface Props {
|
|
11
|
+
args: z.infer<typeof args>;
|
|
12
|
+
options: z.infer<typeof options>;
|
|
13
|
+
}
|
|
14
|
+
export default function TagsAddCommand({ args, options }: Props): React.ReactNode;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=add.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../src/commands/tags/add.tsx"],"names":[],"mappings":"AACA,OAAO,KAAoB,MAAM,OAAO,CAAC;AAEzC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB,eAAO,MAAM,WAAW,2BAA2B,CAAC;AAEpD,eAAO,MAAM,IAAI,iCAA4D,CAAC;AAE9E,eAAO,MAAM,OAAO;;;;iBAIlB,CAAC;AAEH,UAAU,KAAK;IACb,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;IAC3B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,GAAG,KAAK,CAAC,SAAS,CA2IhF"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { Text } from 'ink';
|
|
3
|
+
import React, { useEffect } from 'react';
|
|
4
|
+
import { join } from 'path';
|
|
5
|
+
import { z } from 'zod';
|
|
6
|
+
import { handleManageTags } from '../../tools/manage-tags.js';
|
|
7
|
+
import { loadConfig } from '../../config.js';
|
|
8
|
+
import { resolveConfigPath } from '../../utils/config-resolver.js';
|
|
9
|
+
import { initializeDatabase, createSchema } from '../../indexer.js';
|
|
10
|
+
import { buildHelpOutput } from '../../utils/cli-help.js';
|
|
11
|
+
import { isJsonMode, outputJson, wrapError, wrapSuccess } from '../../cli/json-output.js';
|
|
12
|
+
export const description = 'Add tags to a document';
|
|
13
|
+
export const args = z.tuple([z.string().describe('path to document').min(1)]);
|
|
14
|
+
export const options = z.object({
|
|
15
|
+
config: z.string().optional().describe('Path to config file'),
|
|
16
|
+
json: z.boolean().optional().describe('Output as JSON'),
|
|
17
|
+
tags: z.array(z.string()).optional().describe('Tags to add (space-separated)'),
|
|
18
|
+
});
|
|
19
|
+
export default function TagsAddCommand({ args, options }) {
|
|
20
|
+
const path = args[0];
|
|
21
|
+
// Get tags from options or from remaining args
|
|
22
|
+
const tags = options.tags || args.slice(1);
|
|
23
|
+
const help = buildHelpOutput({
|
|
24
|
+
usage: 'limps tags add <path> [options]',
|
|
25
|
+
arguments: ['path Path to the document'],
|
|
26
|
+
options: [
|
|
27
|
+
'--config Path to config file',
|
|
28
|
+
'--json Output as JSON',
|
|
29
|
+
'--tags Tags to add (space-separated)',
|
|
30
|
+
],
|
|
31
|
+
examples: [
|
|
32
|
+
'limps tags add plans/0001-feature/000-agent.md --tags reviewed',
|
|
33
|
+
'limps tags add plans/0001-feature/000-agent.md --tags urgent high-priority',
|
|
34
|
+
'limps tags add plans/0001-feature/000-agent.md --tags reviewed --json',
|
|
35
|
+
],
|
|
36
|
+
});
|
|
37
|
+
const jsonMode = isJsonMode(options);
|
|
38
|
+
useEffect(() => {
|
|
39
|
+
if (!jsonMode) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
const timer = setTimeout(() => {
|
|
43
|
+
(async () => {
|
|
44
|
+
try {
|
|
45
|
+
if (!path) {
|
|
46
|
+
outputJson(wrapError('Path is required', { code: 'MISSING_PATH', help: help.meta }), 1);
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
if (!tags || tags.length === 0) {
|
|
50
|
+
outputJson(wrapError('At least one tag is required', { code: 'MISSING_TAGS', help: help.meta }), 1);
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
const configPath = resolveConfigPath(options.config);
|
|
54
|
+
const config = loadConfig(configPath);
|
|
55
|
+
const dbPath = join(config.dataPath, 'documents.sqlite');
|
|
56
|
+
const db = initializeDatabase(dbPath);
|
|
57
|
+
createSchema(db);
|
|
58
|
+
const result = await handleManageTags({ path, operation: 'add', tags, prettyPrint: false }, { db, config });
|
|
59
|
+
db.close();
|
|
60
|
+
if (result.isError) {
|
|
61
|
+
outputJson(wrapError(result.content[0].text, { code: 'TAGS_ADD_ERROR' }), 1);
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
const output = JSON.parse(result.content[0].text);
|
|
65
|
+
outputJson(wrapSuccess(output));
|
|
66
|
+
}
|
|
67
|
+
catch (error) {
|
|
68
|
+
outputJson(wrapError(error instanceof Error ? error.message : String(error), {
|
|
69
|
+
code: 'TAGS_ADD_ERROR',
|
|
70
|
+
}), 1);
|
|
71
|
+
}
|
|
72
|
+
})();
|
|
73
|
+
}, 0);
|
|
74
|
+
return () => clearTimeout(timer);
|
|
75
|
+
}, [help.meta, jsonMode, options.config, path, tags]);
|
|
76
|
+
if (jsonMode) {
|
|
77
|
+
return null;
|
|
78
|
+
}
|
|
79
|
+
if (!path || !tags || tags.length === 0) {
|
|
80
|
+
return _jsx(Text, { children: help.text });
|
|
81
|
+
}
|
|
82
|
+
const configPath = resolveConfigPath(options.config);
|
|
83
|
+
const config = loadConfig(configPath);
|
|
84
|
+
const [result, setResult] = React.useState(null);
|
|
85
|
+
const [error, setError] = React.useState(null);
|
|
86
|
+
React.useEffect(() => {
|
|
87
|
+
const run = async () => {
|
|
88
|
+
let db;
|
|
89
|
+
try {
|
|
90
|
+
const dbPath = join(config.dataPath, 'documents.sqlite');
|
|
91
|
+
db = initializeDatabase(dbPath);
|
|
92
|
+
createSchema(db);
|
|
93
|
+
const toolResult = await handleManageTags({ path, operation: 'add', tags, prettyPrint: false }, { db, config });
|
|
94
|
+
if (toolResult.isError) {
|
|
95
|
+
setError(toolResult.content[0].text);
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
setResult(JSON.parse(toolResult.content[0].text));
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
catch (err) {
|
|
102
|
+
setError(err.message);
|
|
103
|
+
}
|
|
104
|
+
finally {
|
|
105
|
+
if (db) {
|
|
106
|
+
db.close();
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
};
|
|
110
|
+
void run();
|
|
111
|
+
}, [config, path, tags]);
|
|
112
|
+
if (error) {
|
|
113
|
+
return _jsxs(Text, { color: "red", children: ["Error: ", error] });
|
|
114
|
+
}
|
|
115
|
+
if (!result) {
|
|
116
|
+
return _jsx(Text, { children: "Loading..." });
|
|
117
|
+
}
|
|
118
|
+
return (_jsxs(_Fragment, { children: [_jsxs(Text, { color: "green", children: ["\u2713 Successfully added tags to ", result.path] }), _jsx(Text, { color: "cyan", bold: true, children: "Current tags:" }), result.tags.map((tag) => (_jsxs(Text, { children: [" \u2022 ", tag] }, tag)))] }));
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=add.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../../src/commands/tags/add.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/tags/index.tsx"],"names":[],"mappings":"AAGA,eAAO,MAAM,WAAW,yBAAyB,CAAC;AAElD,MAAM,CAAC,OAAO,UAAU,WAAW,IAAI,KAAK,CAAC,SAAS,CA4BrD"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Text } from 'ink';
|
|
3
|
+
import { buildHelpOutput } from '../../utils/cli-help.js';
|
|
4
|
+
export const description = 'Manage document tags';
|
|
5
|
+
export default function TagsCommand() {
|
|
6
|
+
const help = buildHelpOutput({
|
|
7
|
+
usage: 'limps tags <command>',
|
|
8
|
+
sections: [
|
|
9
|
+
{
|
|
10
|
+
title: 'Commands',
|
|
11
|
+
lines: [
|
|
12
|
+
'list <path> List tags in a document',
|
|
13
|
+
'add <path> Add tags to a document (use --tags)',
|
|
14
|
+
'remove <path> Remove tags from a document (use --tags)',
|
|
15
|
+
],
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
title: 'Examples',
|
|
19
|
+
lines: [
|
|
20
|
+
'limps tags list plans/0001-feature/000-agent.md',
|
|
21
|
+
'limps tags add plans/0001-feature/000-agent.md --tags reviewed urgent',
|
|
22
|
+
'limps tags remove plans/0001-feature/000-agent.md --tags urgent',
|
|
23
|
+
],
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
title: 'Help',
|
|
27
|
+
lines: ['Run `limps tags <command> --help` for more information.'],
|
|
28
|
+
},
|
|
29
|
+
],
|
|
30
|
+
});
|
|
31
|
+
return _jsx(Text, { children: help.text });
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/tags/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,MAAM,CAAC,MAAM,WAAW,GAAG,sBAAsB,CAAC;AAElD,MAAM,CAAC,OAAO,UAAU,WAAW;IACjC,MAAM,IAAI,GAAG,eAAe,CAAC;QAC3B,KAAK,EAAE,sBAAsB;QAC7B,QAAQ,EAAE;YACR;gBACE,KAAK,EAAE,UAAU;gBACjB,KAAK,EAAE;oBACL,6CAA6C;oBAC7C,yDAAyD;oBACzD,8DAA8D;iBAC/D;aACF;YACD;gBACE,KAAK,EAAE,UAAU;gBACjB,KAAK,EAAE;oBACL,iDAAiD;oBACjD,uEAAuE;oBACvE,iEAAiE;iBAClE;aACF;YACD;gBACE,KAAK,EAAE,MAAM;gBACb,KAAK,EAAE,CAAC,yDAAyD,CAAC;aACnE;SACF;KACF,CAAC,CAAC;IAEH,OAAO,KAAC,IAAI,cAAE,IAAI,CAAC,IAAI,GAAQ,CAAC;AAClC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
export declare const description = "List tags in a document";
|
|
4
|
+
export declare const args: z.ZodTuple<[z.ZodString], null>;
|
|
5
|
+
export declare const options: z.ZodObject<{
|
|
6
|
+
config: z.ZodOptional<z.ZodString>;
|
|
7
|
+
json: z.ZodOptional<z.ZodBoolean>;
|
|
8
|
+
}, z.core.$strip>;
|
|
9
|
+
interface Props {
|
|
10
|
+
args: z.infer<typeof args>;
|
|
11
|
+
options: z.infer<typeof options>;
|
|
12
|
+
}
|
|
13
|
+
export default function TagsListCommand({ args, options }: Props): React.ReactNode;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=list.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/tags/list.tsx"],"names":[],"mappings":"AACA,OAAO,KAAoB,MAAM,OAAO,CAAC;AAEzC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB,eAAO,MAAM,WAAW,4BAA4B,CAAC;AAErD,eAAO,MAAM,IAAI,iCAA4D,CAAC;AAE9E,eAAO,MAAM,OAAO;;;iBAGlB,CAAC;AAEH,UAAU,KAAK;IACb,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;IAC3B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,GAAG,KAAK,CAAC,SAAS,CA+HjF"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { Text } from 'ink';
|
|
3
|
+
import React, { useEffect } from 'react';
|
|
4
|
+
import { join } from 'path';
|
|
5
|
+
import { z } from 'zod';
|
|
6
|
+
import { handleManageTags } from '../../tools/manage-tags.js';
|
|
7
|
+
import { loadConfig } from '../../config.js';
|
|
8
|
+
import { resolveConfigPath } from '../../utils/config-resolver.js';
|
|
9
|
+
import { initializeDatabase, createSchema } from '../../indexer.js';
|
|
10
|
+
import { buildHelpOutput } from '../../utils/cli-help.js';
|
|
11
|
+
import { isJsonMode, outputJson, wrapError, wrapSuccess } from '../../cli/json-output.js';
|
|
12
|
+
export const description = 'List tags in a document';
|
|
13
|
+
export const args = z.tuple([z.string().describe('path to document').min(1)]);
|
|
14
|
+
export const options = z.object({
|
|
15
|
+
config: z.string().optional().describe('Path to config file'),
|
|
16
|
+
json: z.boolean().optional().describe('Output as JSON'),
|
|
17
|
+
});
|
|
18
|
+
export default function TagsListCommand({ args, options }) {
|
|
19
|
+
const [path] = args;
|
|
20
|
+
const help = buildHelpOutput({
|
|
21
|
+
usage: 'limps tags list <path> [options]',
|
|
22
|
+
arguments: ['path Path to the document'],
|
|
23
|
+
options: ['--config Path to config file', '--json Output as JSON'],
|
|
24
|
+
examples: [
|
|
25
|
+
'limps tags list plans/0001-feature/000-agent.md',
|
|
26
|
+
'limps tags list plans/0001-feature/000-agent.md --json',
|
|
27
|
+
],
|
|
28
|
+
});
|
|
29
|
+
const jsonMode = isJsonMode(options);
|
|
30
|
+
useEffect(() => {
|
|
31
|
+
if (!jsonMode) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const timer = setTimeout(() => {
|
|
35
|
+
(async () => {
|
|
36
|
+
try {
|
|
37
|
+
if (!path) {
|
|
38
|
+
outputJson(wrapError('Path is required', { code: 'MISSING_PATH', help: help.meta }), 1);
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
const configPath = resolveConfigPath(options.config);
|
|
42
|
+
const config = loadConfig(configPath);
|
|
43
|
+
const dbPath = join(config.dataPath, 'documents.sqlite');
|
|
44
|
+
const db = initializeDatabase(dbPath);
|
|
45
|
+
createSchema(db);
|
|
46
|
+
const result = await handleManageTags({ path, operation: 'list', prettyPrint: false }, { db, config });
|
|
47
|
+
db.close();
|
|
48
|
+
if (result.isError) {
|
|
49
|
+
outputJson(wrapError(result.content[0].text, { code: 'TAGS_LIST_ERROR' }), 1);
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
const output = JSON.parse(result.content[0].text);
|
|
53
|
+
outputJson(wrapSuccess(output));
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
outputJson(wrapError(error instanceof Error ? error.message : String(error), {
|
|
57
|
+
code: 'TAGS_LIST_ERROR',
|
|
58
|
+
}), 1);
|
|
59
|
+
}
|
|
60
|
+
})();
|
|
61
|
+
}, 0);
|
|
62
|
+
return () => clearTimeout(timer);
|
|
63
|
+
}, [help.meta, jsonMode, options.config, path]);
|
|
64
|
+
if (jsonMode) {
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
67
|
+
if (!path) {
|
|
68
|
+
return _jsx(Text, { children: help.text });
|
|
69
|
+
}
|
|
70
|
+
const configPath = resolveConfigPath(options.config);
|
|
71
|
+
const config = loadConfig(configPath);
|
|
72
|
+
const [result, setResult] = React.useState(null);
|
|
73
|
+
const [error, setError] = React.useState(null);
|
|
74
|
+
React.useEffect(() => {
|
|
75
|
+
const run = async () => {
|
|
76
|
+
let db;
|
|
77
|
+
try {
|
|
78
|
+
const dbPath = join(config.dataPath, 'documents.sqlite');
|
|
79
|
+
db = initializeDatabase(dbPath);
|
|
80
|
+
createSchema(db);
|
|
81
|
+
const toolResult = await handleManageTags({ path, operation: 'list', prettyPrint: false }, { db, config });
|
|
82
|
+
if (toolResult.isError) {
|
|
83
|
+
setError(toolResult.content[0].text);
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
setResult(JSON.parse(toolResult.content[0].text));
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
catch (err) {
|
|
90
|
+
setError(err.message);
|
|
91
|
+
}
|
|
92
|
+
finally {
|
|
93
|
+
if (db) {
|
|
94
|
+
db.close();
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
void run();
|
|
99
|
+
}, [config, path]);
|
|
100
|
+
if (error) {
|
|
101
|
+
return _jsxs(Text, { color: "red", children: ["Error: ", error] });
|
|
102
|
+
}
|
|
103
|
+
if (!result) {
|
|
104
|
+
return _jsx(Text, { children: "Loading..." });
|
|
105
|
+
}
|
|
106
|
+
if (result.tags.length === 0) {
|
|
107
|
+
return _jsxs(Text, { color: "yellow", children: ["No tags found in ", result.path] });
|
|
108
|
+
}
|
|
109
|
+
return (_jsxs(_Fragment, { children: [_jsxs(Text, { color: "cyan", bold: true, children: ["Tags in ", result.path, ":"] }), result.tags.map((tag) => (_jsxs(Text, { children: [" \u2022 ", tag] }, tag)))] }));
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/tags/list.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
export declare const description = "Remove tags from a document";
|
|
4
|
+
export declare const args: z.ZodTuple<[z.ZodString], null>;
|
|
5
|
+
export declare const options: z.ZodObject<{
|
|
6
|
+
config: z.ZodOptional<z.ZodString>;
|
|
7
|
+
json: z.ZodOptional<z.ZodBoolean>;
|
|
8
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
9
|
+
}, z.core.$strip>;
|
|
10
|
+
interface Props {
|
|
11
|
+
args: z.infer<typeof args>;
|
|
12
|
+
options: z.infer<typeof options>;
|
|
13
|
+
}
|
|
14
|
+
export default function TagsRemoveCommand({ args, options }: Props): React.ReactNode;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=remove.d.ts.map
|