@lifeaitools/clauth 2.1.1 → 2.10.1

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 (98) hide show
  1. package/.clauth-skill/references/keys-guide.md +270 -270
  2. package/cli/api.js +238 -238
  3. package/cli/commands/install.js +413 -396
  4. package/cli/commands/login.test.js +49 -1
  5. package/cli/commands/ops-install.js +11 -10
  6. package/cli/commands/ops.test.js +270 -0
  7. package/cli/commands/scrub.test.js +70 -0
  8. package/cli/commands/serve.js +2618 -11238
  9. package/cli/commands/uninstall.js +164 -164
  10. package/cli/dashboard/dashboard.js +592 -0
  11. package/cli/dashboard/global.css +65 -0
  12. package/cli/dashboard/panel-element.js +79 -0
  13. package/cli/dashboard/panels/build-status-panel.css +12 -0
  14. package/cli/dashboard/panels/build-status-panel.js +86 -0
  15. package/cli/dashboard/panels/panel-registry.js +58 -0
  16. package/cli/dashboard/panels/services-panel.css +95 -0
  17. package/cli/dashboard/panels/services-panel.js +872 -0
  18. package/cli/dashboard/panels/surfaces-panel.css +59 -0
  19. package/cli/dashboard/panels/surfaces-panel.js +474 -0
  20. package/cli/dashboard/panels/toolbar-panel.css +42 -0
  21. package/cli/dashboard/panels/toolbar-panel.js +374 -0
  22. package/cli/dashboard/panels/tunnel-panel.css +61 -0
  23. package/cli/dashboard/panels/tunnel-panel.js +688 -0
  24. package/cli/dashboard/panels/webdav-panel.css +38 -0
  25. package/cli/dashboard/panels/webdav-panel.js +166 -0
  26. package/cli/fingerprint.test.js +95 -0
  27. package/cli/http/components/callagent-terminal-component.js +310 -0
  28. package/cli/http/components/dashboard-component.js +123 -0
  29. package/cli/http/components/inbox-component.js +41 -0
  30. package/cli/http/components/mcp-transport-component.js +275 -0
  31. package/cli/http/components/oauth-component.js +207 -0
  32. package/cli/http/components/service-crud-component.js +288 -0
  33. package/cli/http/components/supervisor-component.js +104 -0
  34. package/cli/http/components/system-component.js +184 -0
  35. package/cli/http/components/tunnel-component.js +508 -0
  36. package/cli/http/components/vault-auth-component.js +264 -0
  37. package/cli/http/components/watchdog-component.js +28 -0
  38. package/cli/http/request-utils.js +21 -0
  39. package/cli/http/servers/ops-server.js +335 -0
  40. package/cli/index.js +5 -91
  41. package/cli/lib/fs-git.test.js +467 -0
  42. package/cli/mcp/providers/call-agent-provider.js +30 -0
  43. package/cli/mcp/providers/clauth-core-provider.js +461 -0
  44. package/cli/mcp/providers/ops-provider.js +42 -0
  45. package/cli/mcp/providers/terminal-provider.js +81 -0
  46. package/cli/mcp/tool-registry.js +48 -0
  47. package/cli/mcp/tool-schemas.js +822 -0
  48. package/cli/mcp/tool-schemas.test.js +49 -0
  49. package/cli/ops/pm2-preflight.js +54 -0
  50. package/cli/recovery.js +6 -0
  51. package/cli/recovery.test.js +179 -0
  52. package/cli/services/agent-pool-instance.js +38 -0
  53. package/cli/services/claude-binary.js +29 -0
  54. package/cli/services/delegation-lane-instance.js +35 -0
  55. package/cli/services/delegation-lane-instance.test.js +37 -0
  56. package/cli/services/file-io.js +38 -0
  57. package/cli/services/file-io.test.js +10 -0
  58. package/cli/services/fs-mount.js +66 -0
  59. package/cli/services/fs-mount.test.js +14 -0
  60. package/cli/services/fs-upload-sessions.js +20 -0
  61. package/cli/services/fs-upload-sessions.test.js +14 -0
  62. package/cli/services/git-exec.js +37 -0
  63. package/cli/services/git-exec.test.js +41 -0
  64. package/cli/services/git-import-guard.js +28 -0
  65. package/cli/services/git-import-guard.test.js +18 -0
  66. package/cli/services/service-status.js +191 -0
  67. package/cli/services/service-status.test.js +39 -0
  68. package/cli/services/terminal-dispatch.js +135 -0
  69. package/cli/services/terminal-dispatch.test.js +9 -0
  70. package/cli/services/terminal-registry.js +39 -0
  71. package/cli/services/terminal-registry.test.js +31 -0
  72. package/cli/services/terminal-sessions.js +100 -0
  73. package/cli/services/terminal-sessions.test.js +26 -0
  74. package/cli/services/terminal-window.js +106 -0
  75. package/cli/services/vault-read.js +14 -0
  76. package/cli/services/vault-read.test.js +35 -0
  77. package/cli/supervisor-registry.js +116 -0
  78. package/cli/supervisor-registry.test.js +165 -0
  79. package/cli/supervisor-ui.test.js +230 -30
  80. package/cli/webdav-config.js +84 -0
  81. package/cli/webdav-config.test.js +79 -0
  82. package/cli/webdav-obscure.js +23 -0
  83. package/cli/webdav-obscure.test.js +41 -0
  84. package/cli/webdav-rclone-discovery.js +44 -0
  85. package/cli/webdav-service.js +30 -118
  86. package/cli/webdav-service.test.js +107 -0
  87. package/install.ps1 +102 -102
  88. package/install.sh +49 -49
  89. package/package.json +2 -2
  90. package/scripts/bootstrap.cjs +121 -121
  91. package/supabase/functions/auth-vault/index.ts +350 -350
  92. package/supabase/migrations/001_clauth_schema.sql +94 -94
  93. package/supabase/migrations/002_vault_helpers.sql +90 -90
  94. package/supabase/migrations/20260317_lockout.sql +26 -26
  95. package/cli/assets/codevelop/launcher-active.cmd.template +0 -20
  96. package/cli/assets/codevelop/launcher-static.cmd.template +0 -7
  97. package/cli/assets/codevelop/windows-terminal.profiles.json +0 -48
  98. package/cli/commands/codevelop.js +0 -1190
@@ -1,32 +1,32 @@
1
- -- ============================================================
2
- -- clauth schema
3
- -- Migration: 001_clauth_schema.sql
4
- -- ============================================================
5
-
6
- -- Enable vault extension (Supabase enables by default, but guard)
7
- -- vault.secrets is already available in Supabase projects
8
-
9
- -- ============================================================
10
- -- Service Registry
11
- -- ============================================================
12
- create table if not exists public.clauth_services (
13
- id uuid primary key default gen_random_uuid(),
14
- name text not null unique, -- e.g. 'github', 'r2'
15
- label text not null, -- human display name
16
- key_type text not null -- 'token' | 'keypair' | 'connstring' | 'oauth'
17
- check (key_type in ('token','keypair','connstring','oauth')),
18
- enabled boolean not null default false,
19
- vault_key text, -- vault secret name: 'clauth.<name>'
20
- description text,
21
- last_retrieved timestamptz,
22
- last_rotated timestamptz,
23
- created_at timestamptz not null default now(),
24
- updated_at timestamptz not null default now()
25
- );
26
-
27
- -- ============================================================
28
- -- Machine Registry (hardware fingerprints — hashed only)
29
- -- ============================================================
1
+ -- ============================================================
2
+ -- clauth schema
3
+ -- Migration: 001_clauth_schema.sql
4
+ -- ============================================================
5
+
6
+ -- Enable vault extension (Supabase enables by default, but guard)
7
+ -- vault.secrets is already available in Supabase projects
8
+
9
+ -- ============================================================
10
+ -- Service Registry
11
+ -- ============================================================
12
+ create table if not exists public.clauth_services (
13
+ id uuid primary key default gen_random_uuid(),
14
+ name text not null unique, -- e.g. 'github', 'r2'
15
+ label text not null, -- human display name
16
+ key_type text not null -- 'token' | 'keypair' | 'connstring' | 'oauth'
17
+ check (key_type in ('token','keypair','connstring','oauth')),
18
+ enabled boolean not null default false,
19
+ vault_key text, -- vault secret name: 'clauth.<name>'
20
+ description text,
21
+ last_retrieved timestamptz,
22
+ last_rotated timestamptz,
23
+ created_at timestamptz not null default now(),
24
+ updated_at timestamptz not null default now()
25
+ );
26
+
27
+ -- ============================================================
28
+ -- Machine Registry (hardware fingerprints — hashed only)
29
+ -- ============================================================
30
30
  create table if not exists public.clauth_machines (
31
31
  id uuid primary key default gen_random_uuid(),
32
32
  install_id text not null default 'default', -- logical vault install / owner group
@@ -39,68 +39,68 @@ create table if not exists public.clauth_machines (
39
39
  created_at timestamptz not null default now(),
40
40
  last_seen timestamptz
41
41
  );
42
-
43
- -- ============================================================
44
- -- Audit Log
45
- -- ============================================================
46
- create table if not exists public.clauth_audit (
47
- id uuid primary key default gen_random_uuid(),
48
- machine_hash text,
49
- service_name text,
50
- action text not null, -- 'retrieve' | 'enable' | 'disable' | 'rotate' | 'revoke' | 'add' | 'remove'
51
- result text not null, -- 'success' | 'fail' | 'denied'
52
- detail text,
53
- created_at timestamptz not null default now()
54
- );
55
-
56
- -- ============================================================
57
- -- Seed: built-in service definitions (no keys — just registry)
58
- -- ============================================================
59
- insert into public.clauth_services (name, label, key_type, description) values
60
- ('github', 'GitHub PAT', 'token', 'GitHub Personal Access Token — repo, workflow, org'),
61
- ('supabase-anon', 'Supabase Anon Key', 'token', 'Supabase public anon key (RLS-gated)'),
62
- ('supabase-service', 'Supabase Service Role Key', 'token', 'Supabase service_role — bypasses RLS'),
63
- ('supabase-db', 'Supabase DB Connection', 'connstring','PostgreSQL connection string (pooled + direct)'),
64
- ('vercel', 'Vercel API Token', 'keypair', 'Vercel API token + Team ID'),
65
- ('namecheap', 'Namecheap API', 'keypair', 'Namecheap API key + username'),
66
- ('neo4j', 'Neo4j Aura', 'connstring','Neo4j Aura URI + credentials'),
67
- ('anthropic', 'Anthropic API Key', 'token', 'Claude API — sk-ant-...'),
68
- ('r2', 'Cloudflare R2 Keypair', 'keypair', 'R2 Access Key ID + Secret Access Key'),
69
- ('r2-bucket', 'Cloudflare R2 Bucket Config', 'connstring','R2 bucket name + endpoint URL'),
70
- ('cloudflare', 'Cloudflare API Token', 'token', 'Cloudflare zone/DNS/admin token'),
71
- ('rocketreach', 'RocketReach API Key', 'token', 'RocketReach contact intelligence API')
72
- on conflict (name) do nothing;
73
-
74
- -- ============================================================
75
- -- RLS — lock down all tables
76
- -- ============================================================
77
- alter table public.clauth_services enable row level security;
78
- alter table public.clauth_machines enable row level security;
79
- alter table public.clauth_audit enable row level security;
80
-
81
- -- service_role bypasses RLS — all access from Edge Function only
82
- -- No direct anon access to any clauth table
83
- do $$ begin
84
- if not exists (select 1 from pg_policies where policyname = 'no_anon_services' and tablename = 'clauth_services') then
85
- create policy "no_anon_services" on public.clauth_services for all using (false);
86
- end if;
87
- if not exists (select 1 from pg_policies where policyname = 'no_anon_machines' and tablename = 'clauth_machines') then
88
- create policy "no_anon_machines" on public.clauth_machines for all using (false);
89
- end if;
90
- if not exists (select 1 from pg_policies where policyname = 'no_anon_audit' and tablename = 'clauth_audit') then
91
- create policy "no_anon_audit" on public.clauth_audit for all using (false);
92
- end if;
93
- end $$;
94
-
95
- -- ============================================================
96
- -- Updated_at trigger
97
- -- ============================================================
98
- create or replace function public.clauth_touch_updated()
99
- returns trigger language plpgsql as $$
100
- begin new.updated_at = now(); return new; end;
101
- $$;
102
-
103
- drop trigger if exists clauth_services_updated on public.clauth_services;
104
- create trigger clauth_services_updated
105
- before update on public.clauth_services
106
- for each row execute procedure public.clauth_touch_updated();
42
+
43
+ -- ============================================================
44
+ -- Audit Log
45
+ -- ============================================================
46
+ create table if not exists public.clauth_audit (
47
+ id uuid primary key default gen_random_uuid(),
48
+ machine_hash text,
49
+ service_name text,
50
+ action text not null, -- 'retrieve' | 'enable' | 'disable' | 'rotate' | 'revoke' | 'add' | 'remove'
51
+ result text not null, -- 'success' | 'fail' | 'denied'
52
+ detail text,
53
+ created_at timestamptz not null default now()
54
+ );
55
+
56
+ -- ============================================================
57
+ -- Seed: built-in service definitions (no keys — just registry)
58
+ -- ============================================================
59
+ insert into public.clauth_services (name, label, key_type, description) values
60
+ ('github', 'GitHub PAT', 'token', 'GitHub Personal Access Token — repo, workflow, org'),
61
+ ('supabase-anon', 'Supabase Anon Key', 'token', 'Supabase public anon key (RLS-gated)'),
62
+ ('supabase-service', 'Supabase Service Role Key', 'token', 'Supabase service_role — bypasses RLS'),
63
+ ('supabase-db', 'Supabase DB Connection', 'connstring','PostgreSQL connection string (pooled + direct)'),
64
+ ('vercel', 'Vercel API Token', 'keypair', 'Vercel API token + Team ID'),
65
+ ('namecheap', 'Namecheap API', 'keypair', 'Namecheap API key + username'),
66
+ ('neo4j', 'Neo4j Aura', 'connstring','Neo4j Aura URI + credentials'),
67
+ ('anthropic', 'Anthropic API Key', 'token', 'Claude API — sk-ant-...'),
68
+ ('r2', 'Cloudflare R2 Keypair', 'keypair', 'R2 Access Key ID + Secret Access Key'),
69
+ ('r2-bucket', 'Cloudflare R2 Bucket Config', 'connstring','R2 bucket name + endpoint URL'),
70
+ ('cloudflare', 'Cloudflare API Token', 'token', 'Cloudflare zone/DNS/admin token'),
71
+ ('rocketreach', 'RocketReach API Key', 'token', 'RocketReach contact intelligence API')
72
+ on conflict (name) do nothing;
73
+
74
+ -- ============================================================
75
+ -- RLS — lock down all tables
76
+ -- ============================================================
77
+ alter table public.clauth_services enable row level security;
78
+ alter table public.clauth_machines enable row level security;
79
+ alter table public.clauth_audit enable row level security;
80
+
81
+ -- service_role bypasses RLS — all access from Edge Function only
82
+ -- No direct anon access to any clauth table
83
+ do $$ begin
84
+ if not exists (select 1 from pg_policies where policyname = 'no_anon_services' and tablename = 'clauth_services') then
85
+ create policy "no_anon_services" on public.clauth_services for all using (false);
86
+ end if;
87
+ if not exists (select 1 from pg_policies where policyname = 'no_anon_machines' and tablename = 'clauth_machines') then
88
+ create policy "no_anon_machines" on public.clauth_machines for all using (false);
89
+ end if;
90
+ if not exists (select 1 from pg_policies where policyname = 'no_anon_audit' and tablename = 'clauth_audit') then
91
+ create policy "no_anon_audit" on public.clauth_audit for all using (false);
92
+ end if;
93
+ end $$;
94
+
95
+ -- ============================================================
96
+ -- Updated_at trigger
97
+ -- ============================================================
98
+ create or replace function public.clauth_touch_updated()
99
+ returns trigger language plpgsql as $$
100
+ begin new.updated_at = now(); return new; end;
101
+ $$;
102
+
103
+ drop trigger if exists clauth_services_updated on public.clauth_services;
104
+ create trigger clauth_services_updated
105
+ before update on public.clauth_services
106
+ for each row execute procedure public.clauth_touch_updated();
@@ -1,90 +1,90 @@
1
- -- ============================================================
2
- -- Vault helper functions
3
- -- Migration: 002_vault_helpers.sql
4
- -- These wrap vault.create_secret / vault.update_secret
5
- -- so Edge Functions don't need direct vault schema access
6
- -- ============================================================
7
-
8
- -- Upsert a secret (create or update)
9
- create or replace function public.vault_upsert_secret(
10
- secret_name text,
11
- secret_value text
12
- )
13
- returns void
14
- language plpgsql
15
- security definer
16
- as $$
17
- declare
18
- existing_id uuid;
19
- begin
20
- select id into existing_id
21
- from vault.secrets
22
- where name = secret_name
23
- limit 1;
24
-
25
- if existing_id is not null then
26
- perform vault.update_secret(existing_id, secret_value);
27
- else
28
- perform vault.create_secret(secret_value, secret_name);
29
- end if;
30
- end;
31
- $$;
32
-
33
- -- Decrypt and return a secret value by name
34
- create or replace function public.vault_decrypt_secret(
35
- secret_name text
36
- )
37
- returns text
38
- language plpgsql
39
- security definer
40
- as $$
41
- declare
42
- result text;
43
- begin
44
- select decrypted_secret into result
45
- from vault.decrypted_secrets
46
- where name = secret_name
47
- limit 1;
48
- return result;
49
- end;
50
- $$;
51
-
52
- -- Delete a secret by name
53
- create or replace function public.vault_delete_secret(
54
- secret_name text
55
- )
56
- returns void
57
- language plpgsql
58
- security definer
59
- as $$
60
- declare
61
- target_id uuid;
62
- begin
63
- select id into target_id
64
- from vault.secrets
65
- where name = secret_name
66
- limit 1;
67
-
68
- if target_id is not null then
69
- delete from vault.secrets where id = target_id;
70
- end if;
71
- end;
72
- $$;
73
-
74
- -- List all clauth secrets (names only — never values)
75
- create or replace function public.vault_list_clauth_secrets()
76
- returns table(name text, created_at timestamptz, updated_at timestamptz)
77
- language sql
78
- security definer
79
- as $$
80
- select name, created_at, updated_at
81
- from vault.secrets
82
- where name like 'clauth.%'
83
- order by name;
84
- $$;
85
-
86
- -- Revoke execute from public, grant to service_role only
87
- revoke execute on function public.vault_upsert_secret from public;
88
- revoke execute on function public.vault_decrypt_secret from public;
89
- revoke execute on function public.vault_delete_secret from public;
90
- revoke execute on function public.vault_list_clauth_secrets from public;
1
+ -- ============================================================
2
+ -- Vault helper functions
3
+ -- Migration: 002_vault_helpers.sql
4
+ -- These wrap vault.create_secret / vault.update_secret
5
+ -- so Edge Functions don't need direct vault schema access
6
+ -- ============================================================
7
+
8
+ -- Upsert a secret (create or update)
9
+ create or replace function public.vault_upsert_secret(
10
+ secret_name text,
11
+ secret_value text
12
+ )
13
+ returns void
14
+ language plpgsql
15
+ security definer
16
+ as $$
17
+ declare
18
+ existing_id uuid;
19
+ begin
20
+ select id into existing_id
21
+ from vault.secrets
22
+ where name = secret_name
23
+ limit 1;
24
+
25
+ if existing_id is not null then
26
+ perform vault.update_secret(existing_id, secret_value);
27
+ else
28
+ perform vault.create_secret(secret_value, secret_name);
29
+ end if;
30
+ end;
31
+ $$;
32
+
33
+ -- Decrypt and return a secret value by name
34
+ create or replace function public.vault_decrypt_secret(
35
+ secret_name text
36
+ )
37
+ returns text
38
+ language plpgsql
39
+ security definer
40
+ as $$
41
+ declare
42
+ result text;
43
+ begin
44
+ select decrypted_secret into result
45
+ from vault.decrypted_secrets
46
+ where name = secret_name
47
+ limit 1;
48
+ return result;
49
+ end;
50
+ $$;
51
+
52
+ -- Delete a secret by name
53
+ create or replace function public.vault_delete_secret(
54
+ secret_name text
55
+ )
56
+ returns void
57
+ language plpgsql
58
+ security definer
59
+ as $$
60
+ declare
61
+ target_id uuid;
62
+ begin
63
+ select id into target_id
64
+ from vault.secrets
65
+ where name = secret_name
66
+ limit 1;
67
+
68
+ if target_id is not null then
69
+ delete from vault.secrets where id = target_id;
70
+ end if;
71
+ end;
72
+ $$;
73
+
74
+ -- List all clauth secrets (names only — never values)
75
+ create or replace function public.vault_list_clauth_secrets()
76
+ returns table(name text, created_at timestamptz, updated_at timestamptz)
77
+ language sql
78
+ security definer
79
+ as $$
80
+ select name, created_at, updated_at
81
+ from vault.secrets
82
+ where name like 'clauth.%'
83
+ order by name;
84
+ $$;
85
+
86
+ -- Revoke execute from public, grant to service_role only
87
+ revoke execute on function public.vault_upsert_secret from public;
88
+ revoke execute on function public.vault_decrypt_secret from public;
89
+ revoke execute on function public.vault_delete_secret from public;
90
+ revoke execute on function public.vault_list_clauth_secrets from public;
@@ -1,26 +1,26 @@
1
- -- Migration: add fail_count and locked to clauth_machines
2
- -- Run via: clauth install (picks this up automatically) or apply manually
3
-
4
- ALTER TABLE clauth_machines
5
- ADD COLUMN IF NOT EXISTS fail_count INTEGER NOT NULL DEFAULT 0,
6
- ADD COLUMN IF NOT EXISTS locked BOOLEAN NOT NULL DEFAULT false;
7
-
8
- -- Index for fast lockout checks
9
- CREATE INDEX IF NOT EXISTS idx_clauth_machines_locked
10
- ON clauth_machines (machine_hash, locked);
11
-
12
- -- Admin helper: unlock a machine
13
- -- Usage: SELECT clauth_unlock_machine('your_machine_hash');
14
- CREATE OR REPLACE FUNCTION clauth_unlock_machine(p_machine_hash TEXT)
15
- RETURNS void
16
- LANGUAGE plpgsql
17
- SECURITY DEFINER
18
- AS $$
19
- BEGIN
20
- UPDATE clauth_machines
21
- SET locked = false, fail_count = 0
22
- WHERE machine_hash = p_machine_hash;
23
- END;
24
- $$;
25
-
26
- REVOKE EXECUTE ON FUNCTION clauth_unlock_machine(TEXT) FROM PUBLIC;
1
+ -- Migration: add fail_count and locked to clauth_machines
2
+ -- Run via: clauth install (picks this up automatically) or apply manually
3
+
4
+ ALTER TABLE clauth_machines
5
+ ADD COLUMN IF NOT EXISTS fail_count INTEGER NOT NULL DEFAULT 0,
6
+ ADD COLUMN IF NOT EXISTS locked BOOLEAN NOT NULL DEFAULT false;
7
+
8
+ -- Index for fast lockout checks
9
+ CREATE INDEX IF NOT EXISTS idx_clauth_machines_locked
10
+ ON clauth_machines (machine_hash, locked);
11
+
12
+ -- Admin helper: unlock a machine
13
+ -- Usage: SELECT clauth_unlock_machine('your_machine_hash');
14
+ CREATE OR REPLACE FUNCTION clauth_unlock_machine(p_machine_hash TEXT)
15
+ RETURNS void
16
+ LANGUAGE plpgsql
17
+ SECURITY DEFINER
18
+ AS $$
19
+ BEGIN
20
+ UPDATE clauth_machines
21
+ SET locked = false, fail_count = 0
22
+ WHERE machine_hash = p_machine_hash;
23
+ END;
24
+ $$;
25
+
26
+ REVOKE EXECUTE ON FUNCTION clauth_unlock_machine(TEXT) FROM PUBLIC;
@@ -1,20 +0,0 @@
1
- @echo off
2
- setlocal
3
- set "CODEVELOP_SESSION=${SESSION_ID}"
4
- set "CODEVELOP_PEER=${PEER}"
5
- set "CODEVELOP_TARGET=${TARGET_PEER}"
6
- set "CODEVELOP_BASE_URL=${BASE_URL}"
7
- set "CODEVELOP_MANIFEST=${MANIFEST}"
8
- set "CODEVELOP_CONTEXT=${CONTEXT_FILE}"
9
- set "CELL_ROLE=codevelop-${PEER}"
10
- cd /d "${CWD}"
11
- if /i "%~1"=="--print-only" (
12
- echo command: ${PRINT_COMMAND}
13
- exit /b 0
14
- )
15
- echo Co-develop ${PEER} ready. Session ${SESSION_ID}. Listening for collaboration.
16
- echo Context: ${CONTEXT_FILE}
17
- node "${CLAUTH_CLI}" codevelop check-partner --repo "${REPO}" --peer ${PEER}
18
- ${COMMAND}
19
- set EXITCODE=%ERRORLEVEL%
20
- endlocal & exit /b %EXITCODE%
@@ -1,7 +0,0 @@
1
- @echo off
2
- if not exist "${ACTIVE_LAUNCHER}" (
3
- echo No active co-develop launcher has been written.
4
- echo Run: clauth codevelop start --repo "${REPO}" --port ${PORT} --start-isolated-clauth
5
- exit /b 1
6
- )
7
- call "${ACTIVE_LAUNCHER}" %*
@@ -1,48 +0,0 @@
1
- {
2
- "profiles": [
3
- {
4
- "name": "Co Develop Claude",
5
- "guid": "{a2f8548f-82e6-44b4-bdbb-d934e8881f01}",
6
- "commandline": "cmd.exe /k \"${CLAUTH_APPDATA}\\codevelop-claude.cmd\"",
7
- "startingDirectory": "${REPO}",
8
- "environment": {
9
- "CELL_ROLE": "codevelop-claude"
10
- },
11
- "icon": "🔴",
12
- "tabColor": "#B91C1C",
13
- "colorScheme": "Dimidium"
14
- },
15
- {
16
- "name": "Co Develop Codex",
17
- "guid": "{31a52b07-6efd-4b3d-96dd-ded73488140a}",
18
- "commandline": "cmd.exe /k \"${CLAUTH_APPDATA}\\codevelop-codex.cmd\"",
19
- "startingDirectory": "${REPO}",
20
- "environment": {
21
- "CELL_ROLE": "codevelop-codex"
22
- },
23
- "icon": "🧬",
24
- "tabColor": "#0F766E",
25
- "colorScheme": "Dimidium"
26
- }
27
- ],
28
- "layout": {
29
- "wtArgs": [
30
- "-w",
31
- "new",
32
- "new-tab",
33
- "--profile",
34
- "Co Develop Claude",
35
- "--title",
36
- "Co Develop Claude",
37
- ";",
38
- "split-pane",
39
- "-V",
40
- "--size",
41
- "0.50",
42
- "--profile",
43
- "Co Develop Codex",
44
- "--title",
45
- "Co Develop Codex"
46
- ]
47
- }
48
- }