@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.
Files changed (87) hide show
  1. package/build/cli/commands/index.d.ts +10 -0
  2. package/build/cli/commands/index.d.ts.map +1 -0
  3. package/build/cli/commands/index.js +15 -0
  4. package/build/cli/commands/index.js.map +1 -0
  5. package/build/cli/commands/item-commands.d.ts +10 -0
  6. package/build/cli/commands/item-commands.d.ts.map +1 -0
  7. package/build/cli/commands/item-commands.js +209 -0
  8. package/build/cli/commands/item-commands.js.map +1 -0
  9. package/build/cli/commands/secret-commands.d.ts +8 -0
  10. package/build/cli/commands/secret-commands.d.ts.map +1 -0
  11. package/build/cli/commands/secret-commands.js +92 -0
  12. package/build/cli/commands/secret-commands.js.map +1 -0
  13. package/build/cli/commands/vault-commands.d.ts +9 -0
  14. package/build/cli/commands/vault-commands.d.ts.map +1 -0
  15. package/build/cli/commands/vault-commands.js +169 -0
  16. package/build/cli/commands/vault-commands.js.map +1 -0
  17. package/build/cli/output.d.ts +11 -0
  18. package/build/cli/output.d.ts.map +1 -0
  19. package/build/cli/output.js +10 -0
  20. package/build/cli/output.js.map +1 -0
  21. package/build/cli.d.ts +9 -0
  22. package/build/cli.d.ts.map +1 -0
  23. package/build/cli.js +27 -0
  24. package/build/cli.js.map +1 -0
  25. package/build/context-factory.d.ts +4 -0
  26. package/build/context-factory.d.ts.map +1 -0
  27. package/build/context-factory.js +61 -0
  28. package/build/context-factory.js.map +1 -0
  29. package/build/index.d.ts +15 -0
  30. package/build/index.js +1 -1
  31. package/build/models/api-types.d.ts +32 -0
  32. package/build/models/api-types.d.ts.map +1 -0
  33. package/build/models/api-types.js +28 -0
  34. package/build/models/api-types.js.map +1 -0
  35. package/build/models/index.d.ts +2 -0
  36. package/build/models/index.d.ts.map +1 -0
  37. package/build/models/index.js +2 -0
  38. package/build/models/index.js.map +1 -0
  39. package/build/onepassword-client.d.ts +25 -0
  40. package/build/onepassword-client.d.ts.map +1 -0
  41. package/build/onepassword-client.js +77 -0
  42. package/build/onepassword-client.js.map +1 -0
  43. package/build/op-cli-adapter.d.ts +55 -0
  44. package/build/op-cli-adapter.d.ts.map +1 -0
  45. package/build/op-cli-adapter.js +304 -0
  46. package/build/op-cli-adapter.js.map +1 -0
  47. package/build/services/index.d.ts +4 -0
  48. package/build/services/index.d.ts.map +1 -0
  49. package/build/services/index.js +4 -0
  50. package/build/services/index.js.map +1 -0
  51. package/build/services/item-service.d.ts +34 -0
  52. package/build/services/item-service.d.ts.map +1 -0
  53. package/build/services/item-service.js +114 -0
  54. package/build/services/item-service.js.map +1 -0
  55. package/build/services/secret-service.d.ts +26 -0
  56. package/build/services/secret-service.d.ts.map +1 -0
  57. package/build/services/secret-service.js +80 -0
  58. package/build/services/secret-service.js.map +1 -0
  59. package/build/services/vault-service.d.ts +28 -0
  60. package/build/services/vault-service.d.ts.map +1 -0
  61. package/build/services/vault-service.js +82 -0
  62. package/build/services/vault-service.js.map +1 -0
  63. package/build/tool-examples.d.ts +30 -0
  64. package/build/tool-examples.d.ts.map +1 -0
  65. package/build/tool-examples.js +37 -0
  66. package/build/tool-examples.js.map +1 -0
  67. package/build/tools/index.d.ts +9 -0
  68. package/build/tools/index.d.ts.map +1 -0
  69. package/build/tools/index.js +14 -0
  70. package/build/tools/index.js.map +1 -0
  71. package/build/tools/item-tools.d.ts +3 -0
  72. package/build/tools/item-tools.d.ts.map +1 -0
  73. package/build/tools/item-tools.js +208 -0
  74. package/build/tools/item-tools.js.map +1 -0
  75. package/build/tools/secret-tools.d.ts +3 -0
  76. package/build/tools/secret-tools.d.ts.map +1 -0
  77. package/build/tools/secret-tools.js +65 -0
  78. package/build/tools/secret-tools.js.map +1 -0
  79. package/build/tools/vault-tools.d.ts +3 -0
  80. package/build/tools/vault-tools.d.ts.map +1 -0
  81. package/build/tools/vault-tools.js +157 -0
  82. package/build/tools/vault-tools.js.map +1 -0
  83. package/build/types.d.ts +26 -0
  84. package/build/types.d.ts.map +1 -0
  85. package/build/types.js +2 -0
  86. package/build/types.js.map +1 -0
  87. 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":"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"}
@@ -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"}