@mcp-consultant-tools/1password 29.0.0-beta.1 → 29.0.0-beta.3
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/build/cli/commands/index.d.ts +10 -0
- package/build/cli/commands/index.d.ts.map +1 -0
- package/build/cli/commands/index.js +15 -0
- package/build/cli/commands/index.js.map +1 -0
- package/build/cli/commands/item-commands.d.ts +10 -0
- package/build/cli/commands/item-commands.d.ts.map +1 -0
- package/build/cli/commands/item-commands.js +209 -0
- package/build/cli/commands/item-commands.js.map +1 -0
- package/build/cli/commands/secret-commands.d.ts +8 -0
- package/build/cli/commands/secret-commands.d.ts.map +1 -0
- package/build/cli/commands/secret-commands.js +92 -0
- package/build/cli/commands/secret-commands.js.map +1 -0
- package/build/cli/commands/vault-commands.d.ts +9 -0
- package/build/cli/commands/vault-commands.d.ts.map +1 -0
- package/build/cli/commands/vault-commands.js +169 -0
- package/build/cli/commands/vault-commands.js.map +1 -0
- package/build/cli/output.d.ts +11 -0
- package/build/cli/output.d.ts.map +1 -0
- package/build/cli/output.js +10 -0
- package/build/cli/output.js.map +1 -0
- package/build/cli.d.ts +9 -0
- package/build/cli.d.ts.map +1 -0
- package/build/cli.js +27 -0
- package/build/cli.js.map +1 -0
- package/build/context-factory.d.ts +4 -0
- package/build/context-factory.d.ts.map +1 -0
- package/build/context-factory.js +61 -0
- package/build/context-factory.js.map +1 -0
- package/build/index.d.ts +15 -0
- package/build/index.js +1 -1
- package/build/models/api-types.d.ts +32 -0
- package/build/models/api-types.d.ts.map +1 -0
- package/build/models/api-types.js +28 -0
- package/build/models/api-types.js.map +1 -0
- package/build/models/index.d.ts +2 -0
- package/build/models/index.d.ts.map +1 -0
- package/build/models/index.js +2 -0
- package/build/models/index.js.map +1 -0
- package/build/onepassword-client.d.ts +25 -0
- package/build/onepassword-client.d.ts.map +1 -0
- package/build/onepassword-client.js +77 -0
- package/build/onepassword-client.js.map +1 -0
- package/build/op-cli-adapter.d.ts +55 -0
- package/build/op-cli-adapter.d.ts.map +1 -0
- package/build/op-cli-adapter.js +304 -0
- package/build/op-cli-adapter.js.map +1 -0
- package/build/services/index.d.ts +4 -0
- package/build/services/index.d.ts.map +1 -0
- package/build/services/index.js +4 -0
- package/build/services/index.js.map +1 -0
- package/build/services/item-service.d.ts +34 -0
- package/build/services/item-service.d.ts.map +1 -0
- package/build/services/item-service.js +114 -0
- package/build/services/item-service.js.map +1 -0
- package/build/services/secret-service.d.ts +26 -0
- package/build/services/secret-service.d.ts.map +1 -0
- package/build/services/secret-service.js +80 -0
- package/build/services/secret-service.js.map +1 -0
- package/build/services/vault-service.d.ts +28 -0
- package/build/services/vault-service.d.ts.map +1 -0
- package/build/services/vault-service.js +82 -0
- package/build/services/vault-service.js.map +1 -0
- package/build/tool-examples.d.ts +30 -0
- package/build/tool-examples.d.ts.map +1 -0
- package/build/tool-examples.js +37 -0
- package/build/tool-examples.js.map +1 -0
- package/build/tools/index.d.ts +9 -0
- package/build/tools/index.d.ts.map +1 -0
- package/build/tools/index.js +14 -0
- package/build/tools/index.js.map +1 -0
- package/build/tools/item-tools.d.ts +3 -0
- package/build/tools/item-tools.d.ts.map +1 -0
- package/build/tools/item-tools.js +208 -0
- package/build/tools/item-tools.js.map +1 -0
- package/build/tools/secret-tools.d.ts +3 -0
- package/build/tools/secret-tools.d.ts.map +1 -0
- package/build/tools/secret-tools.js +65 -0
- package/build/tools/secret-tools.js.map +1 -0
- package/build/tools/vault-tools.d.ts +3 -0
- package/build/tools/vault-tools.d.ts.map +1 -0
- package/build/tools/vault-tools.js +157 -0
- package/build/tools/vault-tools.js.map +1 -0
- package/build/types.d.ts +26 -0
- package/build/types.d.ts.map +1 -0
- package/build/types.js +2 -0
- package/build/types.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI Commands barrel export + combined registration
|
|
3
|
+
*/
|
|
4
|
+
import type { Command } from 'commander';
|
|
5
|
+
import type { ServiceContext } from '../../types.js';
|
|
6
|
+
export declare function registerAllCommands(program: Command, ctx: ServiceContext): void;
|
|
7
|
+
export { registerSecretCommands } from './secret-commands.js';
|
|
8
|
+
export { registerItemCommands } from './item-commands.js';
|
|
9
|
+
export { registerVaultCommands } from './vault-commands.js';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAKrD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAI/E;AAED,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI Commands barrel export + combined registration
|
|
3
|
+
*/
|
|
4
|
+
import { registerSecretCommands } from './secret-commands.js';
|
|
5
|
+
import { registerItemCommands } from './item-commands.js';
|
|
6
|
+
import { registerVaultCommands } from './vault-commands.js';
|
|
7
|
+
export function registerAllCommands(program, ctx) {
|
|
8
|
+
registerSecretCommands(program, ctx);
|
|
9
|
+
registerItemCommands(program, ctx);
|
|
10
|
+
registerVaultCommands(program, ctx);
|
|
11
|
+
}
|
|
12
|
+
export { registerSecretCommands } from './secret-commands.js';
|
|
13
|
+
export { registerItemCommands } from './item-commands.js';
|
|
14
|
+
export { registerVaultCommands } from './vault-commands.js';
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,MAAM,UAAU,mBAAmB,CAAC,OAAgB,EAAE,GAAmB;IACvE,sBAAsB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACrC,oBAAoB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACnC,qBAAqB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AACtC,CAAC;AAED,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Item CLI Commands - maps to item MCP tools:
|
|
3
|
+
* list-items, get-item, batch-get-items, search-items,
|
|
4
|
+
* create-item, update-item, delete-item, archive-item,
|
|
5
|
+
* batch-create-items, batch-delete-items
|
|
6
|
+
*/
|
|
7
|
+
import type { Command } from 'commander';
|
|
8
|
+
import type { ServiceContext } from '../../types.js';
|
|
9
|
+
export declare function registerItemCommands(program: Command, ctx: ServiceContext): void;
|
|
10
|
+
//# sourceMappingURL=item-commands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"item-commands.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/item-commands.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGrD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAyOhF"}
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Item CLI Commands - maps to item MCP tools:
|
|
3
|
+
* list-items, get-item, batch-get-items, search-items,
|
|
4
|
+
* create-item, update-item, delete-item, archive-item,
|
|
5
|
+
* batch-create-items, batch-delete-items
|
|
6
|
+
*/
|
|
7
|
+
import { getGlobalFlags, handleCliError } from '@mcp-consultant-tools/core';
|
|
8
|
+
import { outputResult } from '../output.js';
|
|
9
|
+
export function registerItemCommands(program, ctx) {
|
|
10
|
+
const item = program.command('item').description('1Password item operations');
|
|
11
|
+
item
|
|
12
|
+
.command('list <vaultId>')
|
|
13
|
+
.description('List items in a vault with optional filtering')
|
|
14
|
+
.option('--title <search>', 'Filter by title (partial match)')
|
|
15
|
+
.option('--tag <tag>', 'Filter by tag (exact match)')
|
|
16
|
+
.action(async (vaultId, opts) => {
|
|
17
|
+
try {
|
|
18
|
+
const filter = opts.title || opts.tag
|
|
19
|
+
? { title: opts.title, tag: opts.tag }
|
|
20
|
+
: undefined;
|
|
21
|
+
const items = await ctx.items.listItems(vaultId, filter);
|
|
22
|
+
outputResult({
|
|
23
|
+
fileName: `items-${vaultId}`,
|
|
24
|
+
data: items,
|
|
25
|
+
summary: `Found ${items.length} item(s) in vault ${vaultId}`,
|
|
26
|
+
}, getGlobalFlags(program));
|
|
27
|
+
}
|
|
28
|
+
catch (error) {
|
|
29
|
+
handleCliError(error, 'list items');
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
item
|
|
33
|
+
.command('get <vaultId> <itemId>')
|
|
34
|
+
.description('Get a single item with all field values')
|
|
35
|
+
.action(async (vaultId, itemId) => {
|
|
36
|
+
try {
|
|
37
|
+
const result = await ctx.items.getItem(vaultId, itemId);
|
|
38
|
+
outputResult({
|
|
39
|
+
fileName: `item-${vaultId}-${itemId}`,
|
|
40
|
+
data: result,
|
|
41
|
+
summary: `Item '${itemId}' from vault '${vaultId}'`,
|
|
42
|
+
}, getGlobalFlags(program));
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
handleCliError(error, 'get item');
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
item
|
|
49
|
+
.command('batch-get <vaultId>')
|
|
50
|
+
.description('Get multiple items at once (up to 50)')
|
|
51
|
+
.argument('<itemIds...>', 'Item IDs to retrieve')
|
|
52
|
+
.action(async (vaultId, itemIds) => {
|
|
53
|
+
try {
|
|
54
|
+
const result = await ctx.items.batchGetItems(vaultId, itemIds);
|
|
55
|
+
outputResult({
|
|
56
|
+
fileName: `items-batch-${vaultId}`,
|
|
57
|
+
data: result,
|
|
58
|
+
summary: `Batch retrieved ${itemIds.length} item(s) from vault '${vaultId}'`,
|
|
59
|
+
}, getGlobalFlags(program));
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
handleCliError(error, 'batch get items');
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
item
|
|
66
|
+
.command('search')
|
|
67
|
+
.description('Search items across all allowed vaults')
|
|
68
|
+
.option('--title <search>', 'Filter by title (partial match)')
|
|
69
|
+
.option('--tag <tag>', 'Filter by tag (exact match)')
|
|
70
|
+
.action(async (opts) => {
|
|
71
|
+
try {
|
|
72
|
+
const filter = opts.title || opts.tag
|
|
73
|
+
? { title: opts.title, tag: opts.tag }
|
|
74
|
+
: undefined;
|
|
75
|
+
const results = await ctx.items.searchItems(filter);
|
|
76
|
+
outputResult({
|
|
77
|
+
fileName: `items-search`,
|
|
78
|
+
data: results,
|
|
79
|
+
summary: `Found ${results.length} item(s) across all allowed vaults`,
|
|
80
|
+
}, getGlobalFlags(program));
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
handleCliError(error, 'search items');
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
item
|
|
87
|
+
.command('create <vaultId> <itemJson>')
|
|
88
|
+
.description('Create a new item (requires OP_ENABLE_WRITE=true)')
|
|
89
|
+
.action(async (vaultId, itemJson) => {
|
|
90
|
+
try {
|
|
91
|
+
ctx.checkWriteEnabled();
|
|
92
|
+
const itemData = JSON.parse(itemJson);
|
|
93
|
+
const result = await ctx.items.createItem(vaultId, itemData);
|
|
94
|
+
outputResult({
|
|
95
|
+
fileName: `created-item-${vaultId}`,
|
|
96
|
+
data: result,
|
|
97
|
+
summary: `Item created successfully in vault '${vaultId}'`,
|
|
98
|
+
}, getGlobalFlags(program));
|
|
99
|
+
}
|
|
100
|
+
catch (error) {
|
|
101
|
+
handleCliError(error, 'create item');
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
item
|
|
105
|
+
.command('update <vaultId> <itemId> <changesJson>')
|
|
106
|
+
.description('Update an existing item (requires OP_ENABLE_WRITE=true)')
|
|
107
|
+
.action(async (vaultId, itemId, changesJson) => {
|
|
108
|
+
try {
|
|
109
|
+
ctx.checkWriteEnabled();
|
|
110
|
+
const changes = JSON.parse(changesJson);
|
|
111
|
+
const result = await ctx.items.updateItem(vaultId, itemId, changes);
|
|
112
|
+
outputResult({
|
|
113
|
+
fileName: `updated-item-${vaultId}-${itemId}`,
|
|
114
|
+
data: result,
|
|
115
|
+
summary: `Item '${itemId}' updated in vault '${vaultId}'`,
|
|
116
|
+
}, getGlobalFlags(program));
|
|
117
|
+
}
|
|
118
|
+
catch (error) {
|
|
119
|
+
handleCliError(error, 'update item');
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
item
|
|
123
|
+
.command('delete <vaultId> <itemId>')
|
|
124
|
+
.description('Permanently delete an item (requires OP_ENABLE_DELETE=true)')
|
|
125
|
+
.option('--confirm', 'Confirm deletion (required)', false)
|
|
126
|
+
.action(async (vaultId, itemId, opts) => {
|
|
127
|
+
try {
|
|
128
|
+
ctx.checkDeleteEnabled();
|
|
129
|
+
if (!opts.confirm) {
|
|
130
|
+
process.stderr.write(`Delete operation requires --confirm flag.\n` +
|
|
131
|
+
`You are about to permanently delete item '${itemId}' from vault '${vaultId}'.\n` +
|
|
132
|
+
`This operation cannot be undone.\n` +
|
|
133
|
+
`To proceed, run again with --confirm.\n`);
|
|
134
|
+
process.exit(1);
|
|
135
|
+
}
|
|
136
|
+
await ctx.items.deleteItem(vaultId, itemId);
|
|
137
|
+
outputResult({
|
|
138
|
+
fileName: `deleted-item-${vaultId}-${itemId}`,
|
|
139
|
+
data: { vaultId, itemId, deleted: true },
|
|
140
|
+
summary: `Item '${itemId}' deleted from vault '${vaultId}'`,
|
|
141
|
+
}, getGlobalFlags(program));
|
|
142
|
+
}
|
|
143
|
+
catch (error) {
|
|
144
|
+
handleCliError(error, 'delete item');
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
item
|
|
148
|
+
.command('archive <vaultId> <itemId>')
|
|
149
|
+
.description('Move an item to the archive (requires OP_ENABLE_DELETE=true)')
|
|
150
|
+
.action(async (vaultId, itemId) => {
|
|
151
|
+
try {
|
|
152
|
+
ctx.checkDeleteEnabled();
|
|
153
|
+
await ctx.items.archiveItem(vaultId, itemId);
|
|
154
|
+
outputResult({
|
|
155
|
+
fileName: `archived-item-${vaultId}-${itemId}`,
|
|
156
|
+
data: { vaultId, itemId, archived: true },
|
|
157
|
+
summary: `Item '${itemId}' archived in vault '${vaultId}'`,
|
|
158
|
+
}, getGlobalFlags(program));
|
|
159
|
+
}
|
|
160
|
+
catch (error) {
|
|
161
|
+
handleCliError(error, 'archive item');
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
item
|
|
165
|
+
.command('batch-create <vaultId> <itemsJson>')
|
|
166
|
+
.description('Create multiple items at once (up to 100, requires OP_ENABLE_WRITE=true)')
|
|
167
|
+
.action(async (vaultId, itemsJson) => {
|
|
168
|
+
try {
|
|
169
|
+
ctx.checkWriteEnabled();
|
|
170
|
+
const items = JSON.parse(itemsJson);
|
|
171
|
+
const result = await ctx.items.batchCreateItems(vaultId, items);
|
|
172
|
+
outputResult({
|
|
173
|
+
fileName: `batch-created-items-${vaultId}`,
|
|
174
|
+
data: result,
|
|
175
|
+
summary: `Batch created ${items.length} item(s) in vault '${vaultId}'`,
|
|
176
|
+
}, getGlobalFlags(program));
|
|
177
|
+
}
|
|
178
|
+
catch (error) {
|
|
179
|
+
handleCliError(error, 'batch create items');
|
|
180
|
+
}
|
|
181
|
+
});
|
|
182
|
+
item
|
|
183
|
+
.command('batch-delete <vaultId>')
|
|
184
|
+
.description('Delete multiple items at once (requires OP_ENABLE_DELETE=true)')
|
|
185
|
+
.argument('<itemIds...>', 'Item IDs to delete')
|
|
186
|
+
.option('--confirm', 'Confirm deletion (required)', false)
|
|
187
|
+
.action(async (vaultId, itemIds, opts) => {
|
|
188
|
+
try {
|
|
189
|
+
ctx.checkDeleteEnabled();
|
|
190
|
+
if (!opts.confirm) {
|
|
191
|
+
process.stderr.write(`Batch delete requires --confirm flag.\n` +
|
|
192
|
+
`You are about to permanently delete ${itemIds.length} item(s) from vault '${vaultId}'.\n` +
|
|
193
|
+
`This operation cannot be undone.\n` +
|
|
194
|
+
`To proceed, run again with --confirm.\n`);
|
|
195
|
+
process.exit(1);
|
|
196
|
+
}
|
|
197
|
+
await ctx.items.batchDeleteItems(vaultId, itemIds);
|
|
198
|
+
outputResult({
|
|
199
|
+
fileName: `batch-deleted-items-${vaultId}`,
|
|
200
|
+
data: { vaultId, itemIds, deleted: true },
|
|
201
|
+
summary: `Deleted ${itemIds.length} item(s) from vault '${vaultId}'`,
|
|
202
|
+
}, getGlobalFlags(program));
|
|
203
|
+
}
|
|
204
|
+
catch (error) {
|
|
205
|
+
handleCliError(error, 'batch delete items');
|
|
206
|
+
}
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
//# sourceMappingURL=item-commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"item-commands.js","sourceRoot":"","sources":["../../../src/cli/commands/item-commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Secret CLI Commands - 3 commands mapping to secret MCP tools:
|
|
3
|
+
* resolve-secret, resolve-secrets, generate-password
|
|
4
|
+
*/
|
|
5
|
+
import type { Command } from 'commander';
|
|
6
|
+
import type { ServiceContext } from '../../types.js';
|
|
7
|
+
export declare function registerSecretCommands(program: Command, ctx: ServiceContext): void;
|
|
8
|
+
//# sourceMappingURL=secret-commands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secret-commands.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/secret-commands.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGrD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CA6FlF"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Secret CLI Commands - 3 commands mapping to secret MCP tools:
|
|
3
|
+
* resolve-secret, resolve-secrets, generate-password
|
|
4
|
+
*/
|
|
5
|
+
import { getGlobalFlags, handleCliError } from '@mcp-consultant-tools/core';
|
|
6
|
+
import { outputResult } from '../output.js';
|
|
7
|
+
export function registerSecretCommands(program, ctx) {
|
|
8
|
+
const secret = program.command('secret').description('1Password secret resolution and password generation');
|
|
9
|
+
secret
|
|
10
|
+
.command('resolve <reference>')
|
|
11
|
+
.description('Resolve a single secret reference URI (e.g. op://vault/item/field)')
|
|
12
|
+
.action(async (reference) => {
|
|
13
|
+
try {
|
|
14
|
+
const value = await ctx.secrets.resolveSecret(reference);
|
|
15
|
+
outputResult({
|
|
16
|
+
fileName: `secret-resolve`,
|
|
17
|
+
data: { reference, value },
|
|
18
|
+
summary: `Resolved secret: ${reference}`,
|
|
19
|
+
}, getGlobalFlags(program));
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
handleCliError(error, 'resolve secret');
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
secret
|
|
26
|
+
.command('resolve-many')
|
|
27
|
+
.description('Resolve multiple secret reference URIs at once')
|
|
28
|
+
.argument('<references...>', 'One or more op:// URIs (e.g. op://vault/item/field)')
|
|
29
|
+
.action(async (references) => {
|
|
30
|
+
try {
|
|
31
|
+
const results = await ctx.secrets.resolveSecrets(references);
|
|
32
|
+
const successful = results.filter(r => !r.error).length;
|
|
33
|
+
const failed = results.filter(r => r.error).length;
|
|
34
|
+
outputResult({
|
|
35
|
+
fileName: `secret-resolve-many`,
|
|
36
|
+
data: results,
|
|
37
|
+
summary: `Resolved ${successful}/${results.length} secrets${failed > 0 ? ` (${failed} failed)` : ''}`,
|
|
38
|
+
}, getGlobalFlags(program));
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
handleCliError(error, 'resolve secrets');
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
secret
|
|
45
|
+
.command('generate-password')
|
|
46
|
+
.description('Generate a password using the 1Password SDK')
|
|
47
|
+
.option('--type <type>', 'Password type: random | memorable | pin', 'random')
|
|
48
|
+
.option('--length <n>', 'Length for random/pin passwords', '32')
|
|
49
|
+
.option('--word-count <n>', 'Word count for memorable passwords', '4')
|
|
50
|
+
.option('--separator <sep>', 'Separator type for memorable passwords (e.g. Digits)', 'Digits')
|
|
51
|
+
.option('--no-digits', 'Exclude digits (random type)')
|
|
52
|
+
.option('--no-symbols', 'Exclude symbols (random type)')
|
|
53
|
+
.option('--no-capitalize', 'Skip capitalisation (memorable type)')
|
|
54
|
+
.action(async (opts) => {
|
|
55
|
+
try {
|
|
56
|
+
const type = opts.type;
|
|
57
|
+
let recipe;
|
|
58
|
+
if (type === 'random') {
|
|
59
|
+
recipe = {
|
|
60
|
+
type: 'random',
|
|
61
|
+
length: parseInt(opts.length, 10),
|
|
62
|
+
includeDigits: opts.digits !== false,
|
|
63
|
+
includeSymbols: opts.symbols !== false,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
else if (type === 'memorable') {
|
|
67
|
+
recipe = {
|
|
68
|
+
type: 'memorable',
|
|
69
|
+
wordCount: parseInt(opts.wordCount, 10),
|
|
70
|
+
separator: opts.separator,
|
|
71
|
+
capitalize: opts.capitalize !== false,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
recipe = {
|
|
76
|
+
type: 'pin',
|
|
77
|
+
length: parseInt(opts.length, 10),
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
const password = await ctx.secrets.generatePassword(recipe);
|
|
81
|
+
outputResult({
|
|
82
|
+
fileName: `generated-password`,
|
|
83
|
+
data: { type, password },
|
|
84
|
+
summary: `Generated ${type} password`,
|
|
85
|
+
}, getGlobalFlags(program));
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
handleCliError(error, 'generate password');
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=secret-commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secret-commands.js","sourceRoot":"","sources":["../../../src/cli/commands/secret-commands.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5E,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,UAAU,sBAAsB,CAAC,OAAgB,EAAE,GAAmB;IAC1E,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,qDAAqD,CAAC,CAAC;IAE5G,MAAM;SACH,OAAO,CAAC,qBAAqB,CAAC;SAC9B,WAAW,CAAC,oEAAoE,CAAC;SACjF,MAAM,CAAC,KAAK,EAAE,SAAiB,EAAE,EAAE;QAClC,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YACzD,YAAY,CACV;gBACE,QAAQ,EAAE,gBAAgB;gBAC1B,IAAI,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;gBAC1B,OAAO,EAAE,oBAAoB,SAAS,EAAE;aACzC,EACD,cAAc,CAAC,OAAO,CAAC,CACxB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,cAAc,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,MAAM;SACH,OAAO,CAAC,cAAc,CAAC;SACvB,WAAW,CAAC,gDAAgD,CAAC;SAC7D,QAAQ,CAAC,iBAAiB,EAAE,qDAAqD,CAAC;SAClF,MAAM,CAAC,KAAK,EAAE,UAAoB,EAAE,EAAE;QACrC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YAC7D,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;YACxD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;YACnD,YAAY,CACV;gBACE,QAAQ,EAAE,qBAAqB;gBAC/B,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,YAAY,UAAU,IAAI,OAAO,CAAC,MAAM,WAAW,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE;aACtG,EACD,cAAc,CAAC,OAAO,CAAC,CACxB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,cAAc,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,MAAM;SACH,OAAO,CAAC,mBAAmB,CAAC;SAC5B,WAAW,CAAC,6CAA6C,CAAC;SAC1D,MAAM,CAAC,eAAe,EAAE,yCAAyC,EAAE,QAAQ,CAAC;SAC5E,MAAM,CAAC,cAAc,EAAE,iCAAiC,EAAE,IAAI,CAAC;SAC/D,MAAM,CAAC,kBAAkB,EAAE,oCAAoC,EAAE,GAAG,CAAC;SACrE,MAAM,CAAC,mBAAmB,EAAE,sDAAsD,EAAE,QAAQ,CAAC;SAC7F,MAAM,CAAC,aAAa,EAAE,8BAA8B,CAAC;SACrD,MAAM,CAAC,cAAc,EAAE,+BAA+B,CAAC;SACvD,MAAM,CAAC,iBAAiB,EAAE,sCAAsC,CAAC;SACjE,MAAM,CAAC,KAAK,EAAE,IAAS,EAAE,EAAE;QAC1B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,IAAsC,CAAC;YACzD,IAAI,MAAW,CAAC;YAEhB,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtB,MAAM,GAAG;oBACP,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;oBACjC,aAAa,EAAE,IAAI,CAAC,MAAM,KAAK,KAAK;oBACpC,cAAc,EAAE,IAAI,CAAC,OAAO,KAAK,KAAK;iBACvC,CAAC;YACJ,CAAC;iBAAM,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;gBAChC,MAAM,GAAG;oBACP,IAAI,EAAE,WAAW;oBACjB,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;oBACvC,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,UAAU,EAAE,IAAI,CAAC,UAAU,KAAK,KAAK;iBACtC,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG;oBACP,IAAI,EAAE,KAAK;oBACX,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;iBAClC,CAAC;YACJ,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAC5D,YAAY,CACV;gBACE,QAAQ,EAAE,oBAAoB;gBAC9B,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACxB,OAAO,EAAE,aAAa,IAAI,WAAW;aACtC,EACD,cAAc,CAAC,OAAO,CAAC,CACxB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,cAAc,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vault CLI Commands - maps to vault MCP tools:
|
|
3
|
+
* list-vaults, get-vault, create-vault, update-vault, delete-vault,
|
|
4
|
+
* grant-vault-permissions, update-vault-permissions, revoke-vault-permissions
|
|
5
|
+
*/
|
|
6
|
+
import type { Command } from 'commander';
|
|
7
|
+
import type { ServiceContext } from '../../types.js';
|
|
8
|
+
export declare function registerVaultCommands(program: Command, ctx: ServiceContext): void;
|
|
9
|
+
//# sourceMappingURL=vault-commands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vault-commands.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/vault-commands.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGrD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CA4LjF"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vault CLI Commands - maps to vault MCP tools:
|
|
3
|
+
* list-vaults, get-vault, create-vault, update-vault, delete-vault,
|
|
4
|
+
* grant-vault-permissions, update-vault-permissions, revoke-vault-permissions
|
|
5
|
+
*/
|
|
6
|
+
import { getGlobalFlags, handleCliError } from '@mcp-consultant-tools/core';
|
|
7
|
+
import { outputResult } from '../output.js';
|
|
8
|
+
export function registerVaultCommands(program, ctx) {
|
|
9
|
+
const vault = program.command('vault').description('1Password vault management');
|
|
10
|
+
vault
|
|
11
|
+
.command('list')
|
|
12
|
+
.description('List all accessible vaults (filtered by OP_ALLOWED_VAULTS)')
|
|
13
|
+
.action(async () => {
|
|
14
|
+
try {
|
|
15
|
+
const vaults = await ctx.vaults.listVaults();
|
|
16
|
+
outputResult({
|
|
17
|
+
fileName: `vaults-list`,
|
|
18
|
+
data: vaults,
|
|
19
|
+
summary: `Found ${vaults.length} vault(s)`,
|
|
20
|
+
}, getGlobalFlags(program));
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
handleCliError(error, 'list vaults');
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
vault
|
|
27
|
+
.command('get <vaultId>')
|
|
28
|
+
.description('Get vault details')
|
|
29
|
+
.option('--accessors', 'Include accessor (group/user) info', false)
|
|
30
|
+
.action(async (vaultId, opts) => {
|
|
31
|
+
try {
|
|
32
|
+
const result = await ctx.vaults.getVault(vaultId, opts.accessors);
|
|
33
|
+
outputResult({
|
|
34
|
+
fileName: `vault-${vaultId}`,
|
|
35
|
+
data: result,
|
|
36
|
+
summary: `Vault '${vaultId}'${opts.accessors ? ' (with accessors)' : ''}`,
|
|
37
|
+
}, getGlobalFlags(program));
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
handleCliError(error, 'get vault');
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
vault
|
|
44
|
+
.command('create <name>')
|
|
45
|
+
.description('Create a new vault (requires OP_ENABLE_VAULT_ADMIN=true)')
|
|
46
|
+
.option('--description <desc>', 'Vault description')
|
|
47
|
+
.action(async (name, opts) => {
|
|
48
|
+
try {
|
|
49
|
+
ctx.checkVaultAdminEnabled();
|
|
50
|
+
const result = await ctx.vaults.createVault(name, opts.description);
|
|
51
|
+
outputResult({
|
|
52
|
+
fileName: `created-vault`,
|
|
53
|
+
data: result,
|
|
54
|
+
summary: `Vault '${name}' created successfully`,
|
|
55
|
+
}, getGlobalFlags(program));
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
handleCliError(error, 'create vault');
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
vault
|
|
62
|
+
.command('update <vaultId>')
|
|
63
|
+
.description('Update vault name or description (requires OP_ENABLE_VAULT_ADMIN=true)')
|
|
64
|
+
.option('--name <name>', 'New vault name')
|
|
65
|
+
.option('--description <desc>', 'New vault description')
|
|
66
|
+
.action(async (vaultId, opts) => {
|
|
67
|
+
try {
|
|
68
|
+
ctx.checkVaultAdminEnabled();
|
|
69
|
+
const changes = {};
|
|
70
|
+
if (opts.name)
|
|
71
|
+
changes.name = opts.name;
|
|
72
|
+
if (opts.description)
|
|
73
|
+
changes.description = opts.description;
|
|
74
|
+
const result = await ctx.vaults.updateVault(vaultId, changes);
|
|
75
|
+
outputResult({
|
|
76
|
+
fileName: `updated-vault-${vaultId}`,
|
|
77
|
+
data: result,
|
|
78
|
+
summary: `Vault '${vaultId}' updated`,
|
|
79
|
+
}, getGlobalFlags(program));
|
|
80
|
+
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
handleCliError(error, 'update vault');
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
vault
|
|
86
|
+
.command('delete <vaultId>')
|
|
87
|
+
.description('Permanently delete a vault (requires OP_ENABLE_VAULT_ADMIN=true)')
|
|
88
|
+
.option('--confirm', 'Confirm deletion (required)', false)
|
|
89
|
+
.action(async (vaultId, opts) => {
|
|
90
|
+
try {
|
|
91
|
+
ctx.checkVaultAdminEnabled();
|
|
92
|
+
if (!opts.confirm) {
|
|
93
|
+
process.stderr.write(`Delete vault requires --confirm flag.\n` +
|
|
94
|
+
`You are about to permanently delete vault '${vaultId}' and ALL its items.\n` +
|
|
95
|
+
`This operation cannot be undone.\n` +
|
|
96
|
+
`To proceed, run again with --confirm.\n`);
|
|
97
|
+
process.exit(1);
|
|
98
|
+
}
|
|
99
|
+
await ctx.vaults.deleteVault(vaultId);
|
|
100
|
+
outputResult({
|
|
101
|
+
fileName: `deleted-vault-${vaultId}`,
|
|
102
|
+
data: { vaultId, deleted: true },
|
|
103
|
+
summary: `Vault '${vaultId}' deleted`,
|
|
104
|
+
}, getGlobalFlags(program));
|
|
105
|
+
}
|
|
106
|
+
catch (error) {
|
|
107
|
+
handleCliError(error, 'delete vault');
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
vault
|
|
111
|
+
.command('grant-permissions <vaultId> <grantsJson>')
|
|
112
|
+
.description('Grant group permissions on a vault (requires OP_ENABLE_VAULT_ADMIN=true). ' +
|
|
113
|
+
'grantsJson: JSON array of {groupId, permissions[]} objects. ' +
|
|
114
|
+
'Valid permissions: read, create, update, delete, share, manage')
|
|
115
|
+
.action(async (vaultId, grantsJson) => {
|
|
116
|
+
try {
|
|
117
|
+
ctx.checkVaultAdminEnabled();
|
|
118
|
+
const groupPermissions = JSON.parse(grantsJson);
|
|
119
|
+
await ctx.vaults.grantPermissions(vaultId, groupPermissions);
|
|
120
|
+
outputResult({
|
|
121
|
+
fileName: `grant-permissions-${vaultId}`,
|
|
122
|
+
data: { vaultId, groupPermissions, granted: true },
|
|
123
|
+
summary: `Permissions granted on vault '${vaultId}' for ${groupPermissions.length} group(s)`,
|
|
124
|
+
}, getGlobalFlags(program));
|
|
125
|
+
}
|
|
126
|
+
catch (error) {
|
|
127
|
+
handleCliError(error, 'grant vault permissions');
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
vault
|
|
131
|
+
.command('update-permissions <updatesJson>')
|
|
132
|
+
.description('Update group permissions across multiple vaults (requires OP_ENABLE_VAULT_ADMIN=true). ' +
|
|
133
|
+
'updatesJson: JSON array of {vaultId, groupId, permissions[]} objects. ' +
|
|
134
|
+
'Valid permissions: read, create, update, delete, share, manage')
|
|
135
|
+
.action(async (updatesJson) => {
|
|
136
|
+
try {
|
|
137
|
+
ctx.checkVaultAdminEnabled();
|
|
138
|
+
const groupPermissions = JSON.parse(updatesJson);
|
|
139
|
+
await ctx.vaults.updatePermissions(groupPermissions);
|
|
140
|
+
outputResult({
|
|
141
|
+
fileName: `update-permissions`,
|
|
142
|
+
data: { groupPermissions, updated: true },
|
|
143
|
+
summary: `Permissions updated for ${groupPermissions.length} vault/group combination(s)`,
|
|
144
|
+
}, getGlobalFlags(program));
|
|
145
|
+
}
|
|
146
|
+
catch (error) {
|
|
147
|
+
handleCliError(error, 'update vault permissions');
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
vault
|
|
151
|
+
.command('revoke-permissions <vaultId>')
|
|
152
|
+
.description('Revoke all permissions for one or more groups on a vault (requires OP_ENABLE_VAULT_ADMIN=true)')
|
|
153
|
+
.argument('<groupIds...>', 'Group IDs to revoke permissions for')
|
|
154
|
+
.action(async (vaultId, groupIds) => {
|
|
155
|
+
try {
|
|
156
|
+
ctx.checkVaultAdminEnabled();
|
|
157
|
+
await ctx.vaults.revokePermissions(vaultId, groupIds);
|
|
158
|
+
outputResult({
|
|
159
|
+
fileName: `revoke-permissions-${vaultId}`,
|
|
160
|
+
data: { vaultId, groupIds, revoked: true },
|
|
161
|
+
summary: `Permissions revoked for ${groupIds.length} group(s) on vault '${vaultId}'`,
|
|
162
|
+
}, getGlobalFlags(program));
|
|
163
|
+
}
|
|
164
|
+
catch (error) {
|
|
165
|
+
handleCliError(error, 'revoke vault permissions');
|
|
166
|
+
}
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
//# sourceMappingURL=vault-commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vault-commands.js","sourceRoot":"","sources":["../../../src/cli/commands/vault-commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI output helper for onepassword package.
|
|
3
|
+
* Thin wrapper setting the package-specific cache directory.
|
|
4
|
+
*/
|
|
5
|
+
import { type GlobalFlags } from '@mcp-consultant-tools/core';
|
|
6
|
+
export declare function outputResult(opts: {
|
|
7
|
+
fileName: string;
|
|
8
|
+
data: unknown;
|
|
9
|
+
summary: string;
|
|
10
|
+
}, flags: GlobalFlags): void;
|
|
11
|
+
//# sourceMappingURL=output.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/cli/output.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAoC,KAAK,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAIhG,wBAAgB,YAAY,CAC1B,IAAI,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAC1D,KAAK,EAAE,WAAW,GACjB,IAAI,CAEN"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI output helper for onepassword package.
|
|
3
|
+
* Thin wrapper setting the package-specific cache directory.
|
|
4
|
+
*/
|
|
5
|
+
import { outputResult as coreOutputResult } from '@mcp-consultant-tools/core';
|
|
6
|
+
const CACHE_DIR = '.mcp-op-cache';
|
|
7
|
+
export function outputResult(opts, flags) {
|
|
8
|
+
coreOutputResult({ ...opts, cacheDir: CACHE_DIR }, flags);
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=output.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/cli/output.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAAoB,MAAM,4BAA4B,CAAC;AAEhG,MAAM,SAAS,GAAG,eAAe,CAAC;AAElC,MAAM,UAAU,YAAY,CAC1B,IAA0D,EAC1D,KAAkB;IAElB,gBAAgB,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,KAAK,CAAC,CAAC;AAC5D,CAAC"}
|
package/build/cli.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* @mcp-consultant-tools/1password CLI
|
|
4
|
+
*
|
|
5
|
+
* Command-line interface for 1Password vault, item, and secret operations.
|
|
6
|
+
* Reuses the same ServiceContext and services as the MCP server.
|
|
7
|
+
*/
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=cli.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;GAKG"}
|