macaw-ai 0.0.1 → 0.9.11

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/LICENSE.md ADDED
@@ -0,0 +1,339 @@
1
+ MACAW CLIENT SOFTWARE LICENSE AGREEMENT
2
+
3
+ Version 1.0
4
+ Effective Date: January 2026
5
+
6
+ This MACAW Client Software License Agreement ("Agreement") is a legal agreement
7
+ between you (either an individual or a legal entity, "You" or "User") and MACAW
8
+ Security, Inc., a Delaware corporation ("MACAW Security," "we," "us," or "our").
9
+
10
+ BY DOWNLOADING, INSTALLING, COPYING, OR OTHERWISE USING THE SOFTWARE, YOU AGREE
11
+ TO BE BOUND BY THE TERMS OF THIS AGREEMENT. IF YOU DO NOT AGREE TO THESE TERMS,
12
+ DO NOT DOWNLOAD, INSTALL, OR USE THE SOFTWARE.
13
+
14
+ ================================================================================
15
+ 1. DEFINITIONS
16
+ ================================================================================
17
+
18
+ 1.1 "Software" means the MACAW Client library, including any compiled binaries,
19
+ source code (if provided), documentation, updates, patches, and any related
20
+ materials provided by MACAW Security.
21
+
22
+ 1.2 "Commercial Use" means any use of the Software in connection with a business,
23
+ commercial enterprise, or for-profit activity, including but not limited to:
24
+ (a) use in production environments serving paying customers; (b) use in
25
+ internal business operations; (c) use in products or services offered for
26
+ sale or license; or (d) use by or on behalf of a government entity.
27
+
28
+ 1.3 "Documentation" means any user guides, technical documentation, API
29
+ references, and other materials provided by MACAW Security relating to
30
+ the Software.
31
+
32
+ 1.4 "MACAW Services" means the backend services, APIs, LocalAgent, and
33
+ infrastructure operated by MACAW Security that the Software connects to.
34
+
35
+ ================================================================================
36
+ 2. LICENSE GRANT
37
+ ================================================================================
38
+
39
+ 2.1 Grant of License. Subject to the terms and conditions of this Agreement,
40
+ MACAW Security hereby grants You a limited, worldwide, royalty-free,
41
+ non-exclusive, non-transferable, non-sublicensable, revocable license to:
42
+
43
+ (a) download, install, and use the Software;
44
+ (b) integrate the Software into Your applications and systems;
45
+ (c) make reasonable copies of the Software for backup purposes; and
46
+ (d) use the Documentation in connection with Your permitted use of
47
+ the Software.
48
+
49
+ 2.2 Permitted Free Use. You may use the Software free of charge for:
50
+
51
+ (a) Development and Testing: Use in development, staging, and testing
52
+ environments for the purpose of evaluating, developing, or testing
53
+ applications that integrate with the Software;
54
+
55
+ (b) Personal Projects: Non-commercial personal projects that are not
56
+ used in connection with any business or commercial activity; and
57
+
58
+ (c) Open Source Projects: Integration into open source software projects
59
+ that are distributed under an OSI-approved open source license,
60
+ provided that the Software itself is not redistributed and end users
61
+ obtain the Software directly from MACAW Security.
62
+
63
+ 2.3 Commercial Use License. Commercial Use of the Software requires a separate
64
+ commercial license agreement with MACAW Security. Please contact
65
+ support@macawsecurity.com to obtain a commercial license.
66
+
67
+ 2.4 License to MACAW Services. Use of the Software in connection with MACAW
68
+ Services is subject to the MACAW Security Terms of Service available at
69
+ https://www.macawsecurity.ai/terms.
70
+
71
+ ================================================================================
72
+ 3. RESTRICTIONS
73
+ ================================================================================
74
+
75
+ 3.1 General Restrictions. Except as expressly permitted in this Agreement,
76
+ You shall not (and shall not permit any third party to):
77
+
78
+ (a) reverse engineer, decompile, disassemble, or otherwise attempt to
79
+ derive the source code, algorithms, data structures, or underlying
80
+ ideas of the Software, except to the extent such restriction is
81
+ expressly prohibited by applicable law;
82
+
83
+ (b) modify, adapt, translate, or create derivative works based on the
84
+ Software;
85
+
86
+ (c) rent, lease, lend, sell, sublicense, assign, distribute, publish,
87
+ transfer, or otherwise make the Software available to any third party;
88
+
89
+ (d) remove, alter, or obscure any proprietary notices, labels, or marks
90
+ on the Software or Documentation;
91
+
92
+ (e) use the Software to develop a product or service that competes with
93
+ the Software or MACAW Services;
94
+
95
+ (f) use the Software to circumvent, disable, or interfere with any
96
+ security, authentication, or access control mechanisms;
97
+
98
+ (g) use the Software in any manner that violates applicable laws,
99
+ regulations, or third-party rights;
100
+
101
+ (h) use the Software to transmit any malware, viruses, or other
102
+ malicious code;
103
+
104
+ (i) use the Software to conduct security testing, penetration testing,
105
+ or vulnerability scanning of MACAW Services without prior written
106
+ authorization; or
107
+
108
+ (j) benchmark, test, or publish performance comparisons of the Software
109
+ without MACAW Security's prior written consent.
110
+
111
+ 3.2 Export Restrictions. The Software may be subject to export control laws
112
+ and regulations. You agree to comply with all applicable export and
113
+ re-export control laws and regulations, including the Export Administration
114
+ Regulations maintained by the U.S. Department of Commerce.
115
+
116
+ ================================================================================
117
+ 4. INTELLECTUAL PROPERTY
118
+ ================================================================================
119
+
120
+ 4.1 Ownership. The Software is licensed, not sold. MACAW Security and its
121
+ licensors retain all right, title, and interest in and to the Software,
122
+ including all intellectual property rights therein. This Agreement does
123
+ not grant You any rights to trademarks, service marks, or trade names
124
+ of MACAW Security.
125
+
126
+ 4.2 Feedback. If You provide any feedback, suggestions, or recommendations
127
+ regarding the Software ("Feedback"), You hereby grant MACAW Security a
128
+ perpetual, irrevocable, worldwide, royalty-free license to use, modify,
129
+ and incorporate such Feedback into the Software and MACAW Services
130
+ without any obligation to You.
131
+
132
+ 4.3 Third-Party Components. The Software may include third-party open source
133
+ components subject to separate license terms. A list of such components
134
+ and their respective licenses is provided in the NOTICE file accompanying
135
+ the Software. To the extent there is a conflict between this Agreement
136
+ and any open source license, the open source license terms shall govern
137
+ solely with respect to the applicable open source component.
138
+
139
+ ================================================================================
140
+ 5. DATA AND PRIVACY
141
+ ================================================================================
142
+
143
+ 5.1 Data Collection. The Software may collect and transmit certain data to
144
+ MACAW Services, including but not limited to: usage metrics, error reports,
145
+ and diagnostic information. Such data collection is subject to the MACAW
146
+ Security Privacy Policy available at https://www.macawsecurity.ai/privacy.
147
+
148
+ 5.2 Your Data. As between You and MACAW Security, You retain all rights to
149
+ any data, content, or materials that You process using the Software
150
+ ("Your Data"). You grant MACAW Security only such rights to Your Data
151
+ as are necessary to provide the MACAW Services.
152
+
153
+ ================================================================================
154
+ 6. DISCLAIMER OF WARRANTIES
155
+ ================================================================================
156
+
157
+ 6.1 AS-IS BASIS. THE SOFTWARE IS PROVIDED "AS IS" AND "AS AVAILABLE" WITHOUT
158
+ WARRANTY OF ANY KIND. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW,
159
+ MACAW SECURITY EXPRESSLY DISCLAIMS ALL WARRANTIES, WHETHER EXPRESS,
160
+ IMPLIED, STATUTORY, OR OTHERWISE, INCLUDING BUT NOT LIMITED TO:
161
+
162
+ (a) IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
163
+ PURPOSE, TITLE, AND NON-INFRINGEMENT;
164
+
165
+ (b) WARRANTIES ARISING FROM COURSE OF DEALING, USAGE, OR TRADE PRACTICE;
166
+
167
+ (c) WARRANTIES THAT THE SOFTWARE WILL BE UNINTERRUPTED, ERROR-FREE,
168
+ SECURE, OR FREE OF VIRUSES OR OTHER HARMFUL COMPONENTS; AND
169
+
170
+ (d) WARRANTIES REGARDING THE ACCURACY, RELIABILITY, OR COMPLETENESS
171
+ OF ANY RESULTS OBTAINED FROM THE SOFTWARE.
172
+
173
+ 6.2 BETA FEATURES. Any features or functionality designated as "beta,"
174
+ "preview," "experimental," or similar are provided without any warranty
175
+ and may be modified or discontinued at any time without notice.
176
+
177
+ ================================================================================
178
+ 7. LIMITATION OF LIABILITY
179
+ ================================================================================
180
+
181
+ 7.1 EXCLUSION OF DAMAGES. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW,
182
+ IN NO EVENT SHALL MACAW SECURITY OR ITS AFFILIATES, LICENSORS, OR SERVICE
183
+ PROVIDERS BE LIABLE FOR ANY:
184
+
185
+ (a) INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL, PUNITIVE, OR EXEMPLARY
186
+ DAMAGES;
187
+
188
+ (b) LOSS OF PROFITS, REVENUE, BUSINESS, SAVINGS, OR GOODWILL;
189
+
190
+ (c) LOSS OF DATA OR DATA BREACH;
191
+
192
+ (d) COST OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
193
+
194
+ (e) BUSINESS INTERRUPTION OR LOSS OF USE;
195
+
196
+ ARISING OUT OF OR IN CONNECTION WITH THIS AGREEMENT OR THE USE OR
197
+ INABILITY TO USE THE SOFTWARE, REGARDLESS OF THE THEORY OF LIABILITY
198
+ (CONTRACT, TORT, STRICT LIABILITY, OR OTHERWISE), EVEN IF MACAW SECURITY
199
+ HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
200
+
201
+ 7.2 CAP ON LIABILITY. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW,
202
+ MACAW SECURITY'S TOTAL CUMULATIVE LIABILITY ARISING OUT OF OR RELATED
203
+ TO THIS AGREEMENT SHALL NOT EXCEED THE GREATER OF: (A) THE AMOUNTS
204
+ PAID BY YOU TO MACAW SECURITY FOR THE SOFTWARE DURING THE TWELVE (12)
205
+ MONTHS PRECEDING THE CLAIM; OR (B) ONE HUNDRED U.S. DOLLARS ($100).
206
+
207
+ 7.3 ESSENTIAL PURPOSE. THE LIMITATIONS IN THIS SECTION 7 SHALL APPLY
208
+ NOTWITHSTANDING ANY FAILURE OF THE ESSENTIAL PURPOSE OF ANY LIMITED
209
+ REMEDY AND TO THE FULLEST EXTENT PERMITTED BY LAW.
210
+
211
+ ================================================================================
212
+ 8. INDEMNIFICATION
213
+ ================================================================================
214
+
215
+ 8.1 Your Indemnification. You agree to indemnify, defend, and hold harmless
216
+ MACAW Security and its officers, directors, employees, agents, affiliates,
217
+ and licensors from and against any and all claims, damages, losses,
218
+ liabilities, costs, and expenses (including reasonable attorneys' fees)
219
+ arising out of or relating to:
220
+
221
+ (a) Your use of the Software in violation of this Agreement;
222
+ (b) Your violation of any applicable law or regulation;
223
+ (c) Your violation of any third-party rights; or
224
+ (d) Any data or content You process using the Software.
225
+
226
+ ================================================================================
227
+ 9. TERM AND TERMINATION
228
+ ================================================================================
229
+
230
+ 9.1 Term. This Agreement is effective until terminated.
231
+
232
+ 9.2 Termination by You. You may terminate this Agreement at any time by
233
+ ceasing all use of the Software and destroying all copies in Your
234
+ possession or control.
235
+
236
+ 9.3 Termination by MACAW Security. MACAW Security may terminate this
237
+ Agreement immediately upon written notice if:
238
+
239
+ (a) You breach any provision of this Agreement;
240
+ (b) You become subject to bankruptcy, insolvency, or similar proceedings;
241
+ (c) MACAW Security discontinues the Software; or
242
+ (d) Required by law or regulatory authority.
243
+
244
+ 9.4 Effect of Termination. Upon termination:
245
+
246
+ (a) All licenses granted hereunder shall immediately terminate;
247
+ (b) You shall cease all use of the Software;
248
+ (c) You shall destroy all copies of the Software in Your possession; and
249
+ (d) Sections 1, 3, 4, 5, 6, 7, 8, 10, and 11 shall survive termination.
250
+
251
+ ================================================================================
252
+ 10. GOVERNING LAW AND DISPUTE RESOLUTION
253
+ ================================================================================
254
+
255
+ 10.1 Governing Law. This Agreement shall be governed by and construed in
256
+ accordance with the laws of the State of California, United States,
257
+ without regard to its conflict of laws principles.
258
+
259
+ 10.2 Jurisdiction. Any legal action or proceeding arising out of or relating
260
+ to this Agreement shall be brought exclusively in the state or federal
261
+ courts located in San Francisco County, California, and You hereby
262
+ consent to the personal jurisdiction and venue of such courts.
263
+
264
+ 10.3 Arbitration. At MACAW Security's sole discretion, any dispute arising
265
+ out of or relating to this Agreement may be resolved by binding
266
+ arbitration administered by JAMS in San Francisco, California, in
267
+ accordance with its Comprehensive Arbitration Rules. The arbitrator's
268
+ decision shall be final and binding, and judgment may be entered in
269
+ any court of competent jurisdiction.
270
+
271
+ 10.4 Class Action Waiver. YOU AND MACAW SECURITY AGREE THAT EACH MAY BRING
272
+ CLAIMS AGAINST THE OTHER ONLY IN YOUR OR ITS INDIVIDUAL CAPACITY AND
273
+ NOT AS A PLAINTIFF OR CLASS MEMBER IN ANY PURPORTED CLASS OR
274
+ REPRESENTATIVE PROCEEDING.
275
+
276
+ 10.5 Injunctive Relief. Notwithstanding the foregoing, MACAW Security may
277
+ seek injunctive or other equitable relief in any court of competent
278
+ jurisdiction to protect its intellectual property rights.
279
+
280
+ ================================================================================
281
+ 11. GENERAL PROVISIONS
282
+ ================================================================================
283
+
284
+ 11.1 Entire Agreement. This Agreement constitutes the entire agreement
285
+ between You and MACAW Security regarding the Software and supersedes
286
+ all prior agreements, understandings, and communications.
287
+
288
+ 11.2 Amendment. MACAW Security may modify this Agreement at any time by
289
+ posting a revised version on its website. Your continued use of the
290
+ Software after such modification constitutes acceptance of the
291
+ modified terms.
292
+
293
+ 11.3 Waiver. No failure or delay by MACAW Security in exercising any right
294
+ under this Agreement shall constitute a waiver of that right.
295
+
296
+ 11.4 Severability. If any provision of this Agreement is held invalid or
297
+ unenforceable, the remaining provisions shall continue in full force
298
+ and effect, and the invalid provision shall be modified to the minimum
299
+ extent necessary to make it valid and enforceable.
300
+
301
+ 11.5 Assignment. You may not assign or transfer this Agreement or any rights
302
+ hereunder without MACAW Security's prior written consent. MACAW Security
303
+ may assign this Agreement without restriction.
304
+
305
+ 11.6 Notices. All notices under this Agreement shall be in writing and
306
+ deemed given when delivered by email or certified mail. Notices to
307
+ MACAW Security should be sent to:
308
+
309
+ MACAW Security, Inc.
310
+ Email: support@macawsecurity.com
311
+
312
+ 11.7 Force Majeure. Neither party shall be liable for any failure or delay
313
+ in performance due to causes beyond its reasonable control, including
314
+ acts of God, natural disasters, war, terrorism, riots, embargoes,
315
+ acts of civil or military authorities, fire, floods, accidents,
316
+ strikes, or shortages of transportation, facilities, fuel, energy,
317
+ labor, or materials.
318
+
319
+ 11.8 U.S. Government Rights. If You are a U.S. Government end user, the
320
+ Software is a "commercial item" as defined in 48 C.F.R. 2.101,
321
+ consisting of "commercial computer software" and "commercial computer
322
+ software documentation," as such terms are used in 48 C.F.R. 12.212.
323
+ The Software is licensed to U.S. Government end users only as a
324
+ commercial item and with only those rights as are granted to all
325
+ other end users pursuant to this Agreement.
326
+
327
+ ================================================================================
328
+ 12. CONTACT INFORMATION
329
+ ================================================================================
330
+
331
+ For questions, support, or to obtain a commercial license, please contact:
332
+
333
+ MACAW Security, Inc.
334
+ Email: support@macawsecurity.com
335
+ Website: https://www.macawsecurity.ai
336
+
337
+ ================================================================================
338
+
339
+ Copyright (c) 2026 MACAW Security, Inc. All rights reserved.
package/README.md CHANGED
@@ -1,6 +1,52 @@
1
1
  # macaw-ai
2
2
 
3
- Placeholder for the MACAW command-line interface, published by
4
- MACAW Security, Inc. to hold the name ahead of the first release.
3
+ Deterministic controls for agents. One command, and it asks what you want
4
+ governed.
5
5
 
6
- Version `0.0.1` ships no CLI. See https://macawsecurity.ai
6
+ ```bash
7
+ npx macaw-ai install
8
+ ```
9
+
10
+ ```
11
+ 1) Claude Code and Codex on this machine
12
+ every tool call stops at a hook and waits for a decision
13
+ 2) a Python project
14
+ the SDK and adapters, for agents you write yourself
15
+ 3) both
16
+ ```
17
+
18
+ It installs nothing itself — it hands off to the package that does that one
19
+ thing. Name the surface and it asks nothing:
20
+
21
+ ```bash
22
+ npx macaw-ai install --coding-agents
23
+ npx macaw-ai install --client
24
+ ```
25
+
26
+ Or go straight there:
27
+
28
+ ```bash
29
+ npx @macaw-ai/coding-agents install
30
+ npx @macaw-ai/client install
31
+ ```
32
+
33
+ ## What each one does
34
+
35
+ **Coding agents** puts a local policy endpoint between Claude Code or Codex and
36
+ everything it reaches — tools, files, the network, the model itself. Risky
37
+ calls stop and wait for you to approve them in the MACAW console, not in the
38
+ terminal the agent is running in. An agent cannot approve its own request,
39
+ because it has no path to the place approvals are given.
40
+
41
+ **A Python project** installs the client SDK and the adapters for OpenAI,
42
+ Anthropic, LangChain, MCP, LiteLLM and Pydantic AI, with the examples ready to
43
+ run.
44
+
45
+ Both are free. The first install creates a workspace: a link appears in your
46
+ terminal, you approve it in a browser, and that is the account. Later installs
47
+ find that key and join the same workspace, so choosing both surfaces above
48
+ asks you once, not twice.
49
+
50
+ ## Licence
51
+
52
+ Commercial. See LICENSE.md, or https://macawsecurity.ai
package/bin/macaw.js CHANGED
@@ -1,7 +1,130 @@
1
1
  #!/usr/bin/env node
2
- // 0.0.1 holds the name; it ships no CLI. Without this the only signal is an
3
- // npm resolution error, which reads as a broken install rather than an
4
- // unreleased one.
5
- console.error("macaw-ai 0.0.1 is a placeholder and ships no CLI.");
6
- console.error("The release is not out yet. See https://macawsecurity.ai");
7
- process.exit(1);
2
+ // `npx macaw-ai install` - the one name to remember. It installs nothing
3
+ // itself; it asks which surface you want governed and hands off to the
4
+ // package that does that one thing.
5
+ //
6
+ // Kept separate from those packages so this name never has to narrow. It
7
+ // means "MACAW" today and will still mean it when there are six surfaces.
8
+
9
+ import { spawnSync } from "node:child_process";
10
+ import { createInterface } from "node:readline/promises";
11
+ import fs from "node:fs";
12
+ import path from "node:path";
13
+
14
+ const SURFACES = [
15
+ {
16
+ key: "1",
17
+ pkg: "@macaw-ai/coding-agents",
18
+ label: "Claude Code and Codex on this machine",
19
+ detail: "every tool call stops at a hook and waits for a decision",
20
+ },
21
+ {
22
+ key: "2",
23
+ pkg: "@macaw-ai/client",
24
+ label: "a Python project",
25
+ detail: "the SDK and adapters, for agents you write yourself",
26
+ },
27
+ ];
28
+
29
+ const C = process.stdout.isTTY
30
+ ? { b: "\x1b[1m", dim: "\x1b[2m", c: "\x1b[36m", x: "\x1b[0m" }
31
+ : { b: "", dim: "", c: "", x: "" };
32
+
33
+ function run(pkg, args, env) {
34
+ console.log(`\n${C.dim} → npx ${pkg} ${args.join(" ")}${C.x}\n`);
35
+ const r = spawnSync("npx", ["-y", pkg, ...args], {
36
+ stdio: "inherit",
37
+ env: { ...process.env, ...env },
38
+ });
39
+ return r.status ?? 1;
40
+ }
41
+
42
+ // The coding-agents installer writes its key here. Reading it back lets the
43
+ // second surface join that workspace without asking for a key the user
44
+ // approved thirty seconds earlier.
45
+ function keyFromThisDirectory() {
46
+ try {
47
+ const cfg = JSON.parse(fs.readFileSync(path.join(process.cwd(), ".macaw", "config.json"), "utf8"));
48
+ if (typeof cfg?.api_key === "string" && cfg.api_key.startsWith("mw_")) {
49
+ return { MACAW_API_KEY: cfg.api_key, MACAW_WORKSPACE: cfg.workspace || "" };
50
+ }
51
+ } catch {
52
+ // No install here, or not readable. The next installer asks, as it would.
53
+ }
54
+ return undefined;
55
+ }
56
+
57
+ // Both surfaces, in this order. Coding agents first because that install is
58
+ // the one that creates the workspace, and the key it writes is then handed to
59
+ // the client rather than asked for again.
60
+ //
61
+ // The order is load-bearing the other way too: coding-agents writes
62
+ // $PWD/.macaw/config.json, which the client's lookup reads. The client writes
63
+ // into a subdirectory it chooses, which nothing else can be expected to find.
64
+ function both(args) {
65
+ const steps = args.length ? args : ["install"];
66
+ for (const [i, s] of SURFACES.entries()) {
67
+ // Two installers each printing their own banner reads as the thing having
68
+ // restarted. Say which step this is.
69
+ console.log("");
70
+ console.log(`${C.b} ── ${i + 1} of ${SURFACES.length} · ${s.label} ──${C.x}`);
71
+ const code = run(s.pkg, steps, i === 0 ? undefined : keyFromThisDirectory());
72
+ if (code !== 0) return code;
73
+ }
74
+ return 0;
75
+ }
76
+
77
+ async function main() {
78
+ const args = process.argv.slice(2);
79
+
80
+ // Named outright, so a script never has to answer a question.
81
+ // macaw-ai install --coding-agents
82
+ const named = SURFACES.find((s) => args.includes(`--${s.pkg.split("/")[1]}`));
83
+ if (named) {
84
+ process.exit(run(named.pkg, args.filter((a) => !a.startsWith("--macaw") && a !== `--${named.pkg.split("/")[1]}`)));
85
+ }
86
+
87
+ // macaw-ai install --both
88
+ // The menu's third choice, as a flag. The other two already have one, and
89
+ // without this there is no way to ask for both without a terminal.
90
+ if (args.includes("--both")) {
91
+ process.exit(both(args.filter((a) => a !== "--both")));
92
+ }
93
+
94
+ console.log("");
95
+ console.log(`${C.b} MACAW${C.x}`);
96
+ console.log("");
97
+ console.log(" What should MACAW govern?");
98
+ console.log("");
99
+ for (const s of SURFACES) {
100
+ console.log(` ${s.key}) ${s.label}`);
101
+ console.log(` ${C.dim}${s.detail}${C.x}`);
102
+ }
103
+ console.log(` 3) both`);
104
+ console.log("");
105
+
106
+ // No terminal means no answer, and guessing here would install 47MB of
107
+ // something nobody asked for. Say what to type instead.
108
+ if (!process.stdin.isTTY) {
109
+ console.log(" Nothing is attached to answer, so pick one directly:");
110
+ for (const s of SURFACES) console.log(` npx ${s.pkg} install`);
111
+ console.log("");
112
+ process.exit(1);
113
+ }
114
+
115
+ const rl = createInterface({ input: process.stdin, output: process.stdout });
116
+ const choice = (await rl.question(" Choose [1]: ")).trim() || "1";
117
+ rl.close();
118
+
119
+ const rest = args.length ? args : ["install"];
120
+ if (choice === "3") process.exit(both(rest));
121
+
122
+ const picked = SURFACES.find((s) => s.key === choice);
123
+ if (!picked) {
124
+ console.log(" Not a choice.");
125
+ process.exit(1);
126
+ }
127
+ process.exit(run(picked.pkg, rest));
128
+ }
129
+
130
+ main().catch((e) => { console.error(e.message); process.exit(1); });
package/package.json CHANGED
@@ -1,9 +1,35 @@
1
1
  {
2
2
  "name": "macaw-ai",
3
- "version": "0.0.1",
4
- "description": "Placeholder. The MACAW CLI is not yet published under this name.",
5
- "bin": { "macaw": "bin/macaw.js" },
6
- "license": "UNLICENSED",
3
+ "version": "0.9.11",
4
+ "description": "Deterministic controls for agents. Ask MACAW to govern your coding agent or your Python project, and it installs the right thing.",
5
+ "type": "module",
6
+ "bin": {
7
+ "macaw-ai": "bin/macaw.js"
8
+ },
9
+ "files": [
10
+ "bin/macaw.js",
11
+ "README.md",
12
+ "LICENSE.md"
13
+ ],
14
+ "engines": {
15
+ "node": ">=18"
16
+ },
17
+ "license": "SEE LICENSE IN LICENSE.md",
7
18
  "homepage": "https://macawsecurity.ai",
8
- "files": ["bin", "README.md"]
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "git+https://github.com/macawsecurity/secCC-binary-distro.git"
22
+ },
23
+ "keywords": [
24
+ "macaw",
25
+ "claude-code",
26
+ "codex",
27
+ "coding-agent",
28
+ "policy",
29
+ "security",
30
+ "governance"
31
+ ],
32
+ "publishConfig": {
33
+ "access": "public"
34
+ }
9
35
  }