@noclaf/cli 0.4.13 → 0.4.15
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/dist/auth.js +2 -1
- package/dist/auth.js.map +1 -1
- package/dist/brand.js +82 -0
- package/dist/brand.js.map +1 -0
- package/dist/cli/commands/auth.js +91 -58
- package/dist/cli/commands/auth.js.map +1 -1
- package/dist/cli/commands/init/auth-step.js +48 -0
- package/dist/cli/commands/init/auth-step.js.map +1 -0
- package/dist/cli/commands/init/clients-step.js +76 -0
- package/dist/cli/commands/init/clients-step.js.map +1 -0
- package/dist/cli/commands/init/context-step.js +66 -0
- package/dist/cli/commands/init/context-step.js.map +1 -0
- package/dist/cli/commands/init/index.js +67 -0
- package/dist/cli/commands/init/index.js.map +1 -0
- package/dist/cli/commands/init/project-step.js +105 -0
- package/dist/cli/commands/init/project-step.js.map +1 -0
- package/dist/cli/commands/init/provision-step.js +76 -0
- package/dist/cli/commands/init/provision-step.js.map +1 -0
- package/dist/cli/commands/validate-plan.js +42 -0
- package/dist/cli/commands/validate-plan.js.map +1 -0
- package/dist/cli/flows/clients.js +27 -17
- package/dist/cli/flows/clients.js.map +1 -1
- package/dist/cli.js +7 -5
- package/dist/cli.js.map +1 -1
- package/dist/config.js +19 -11
- package/dist/config.js.map +1 -1
- package/dist/constants.js +7 -8
- package/dist/constants.js.map +1 -1
- package/dist/lib/autopull.js +13 -0
- package/dist/lib/autopull.js.map +1 -0
- package/dist/lib/client-configs.js +37 -25
- package/dist/lib/client-configs.js.map +1 -1
- package/dist/lib/cowork-extension.js +42 -30
- package/dist/lib/cowork-extension.js.map +1 -1
- package/dist/lib/dependencies.js +83 -247
- package/dist/lib/dependencies.js.map +1 -1
- package/dist/lib/dependency-install.js +163 -0
- package/dist/lib/dependency-install.js.map +1 -0
- package/dist/lib/exec-delegate.js +2 -2
- package/dist/lib/exec-delegate.js.map +1 -1
- package/dist/lib/exec-engines.js +7 -6
- package/dist/lib/exec-engines.js.map +1 -1
- package/dist/lib/provision-apply.js +214 -0
- package/dist/lib/provision-apply.js.map +1 -0
- package/dist/lib/provision-collect.js +47 -0
- package/dist/lib/provision-collect.js.map +1 -0
- package/dist/lib/provision.js +8 -253
- package/dist/lib/provision.js.map +1 -1
- package/dist/lib/require-config.js +3 -2
- package/dist/lib/require-config.js.map +1 -1
- package/dist/lib/skills-cache.js +9 -8
- package/dist/lib/skills-cache.js.map +1 -1
- package/dist/lib/skills.js +30 -16
- package/dist/lib/skills.js.map +1 -1
- package/dist/lib/telemetry.js +2 -1
- package/dist/lib/telemetry.js.map +1 -1
- package/dist/lib/validate-plan-delegate.js +105 -0
- package/dist/lib/validate-plan-delegate.js.map +1 -0
- package/dist/lib/version-check.js +3 -2
- package/dist/lib/version-check.js.map +1 -1
- package/dist/mcp-server.js +107 -79
- package/dist/mcp-server.js.map +1 -1
- package/dist/tools/comment-task.js +32 -32
- package/dist/tools/comment-task.js.map +1 -1
- package/dist/tools/create-task.js +92 -101
- package/dist/tools/create-task.js.map +1 -1
- package/dist/tools/delegate-exec.js +4 -3
- package/dist/tools/delegate-exec.js.map +1 -1
- package/dist/tools/end-allocation.js +19 -32
- package/dist/tools/end-allocation.js.map +1 -1
- package/dist/tools/end-task-allocation.js +17 -26
- package/dist/tools/end-task-allocation.js.map +1 -1
- package/dist/tools/exec-status.js +4 -3
- package/dist/tools/exec-status.js.map +1 -1
- package/dist/tools/get-active-allocation.js +53 -60
- package/dist/tools/get-active-allocation.js.map +1 -1
- package/dist/tools/get-context.js +4 -3
- package/dist/tools/get-context.js.map +1 -1
- package/dist/tools/get-task.js +144 -142
- package/dist/tools/get-task.js.map +1 -1
- package/dist/tools/index.js +2 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/list-my-allocations.js +35 -43
- package/dist/tools/list-my-allocations.js.map +1 -1
- package/dist/tools/list-projects.js +3 -2
- package/dist/tools/list-projects.js.map +1 -1
- package/dist/tools/list-tasks.js +117 -124
- package/dist/tools/list-tasks.js.map +1 -1
- package/dist/tools/move-task.js +37 -39
- package/dist/tools/move-task.js.map +1 -1
- package/dist/tools/plan.js +3 -2
- package/dist/tools/plan.js.map +1 -1
- package/dist/tools/record-delivery.js +4 -3
- package/dist/tools/record-delivery.js.map +1 -1
- package/dist/tools/set-project.js +9 -4
- package/dist/tools/set-project.js.map +1 -1
- package/dist/tools/start-allocation.js +16 -26
- package/dist/tools/start-allocation.js.map +1 -1
- package/dist/tools/start-task-allocation.js +72 -92
- package/dist/tools/start-task-allocation.js.map +1 -1
- package/dist/tools/update-task.js +149 -168
- package/dist/tools/update-task.js.map +1 -1
- package/dist/tools/validate-plan.js +58 -0
- package/dist/tools/validate-plan.js.map +1 -0
- package/package.json +1 -1
- package/dist/cli/commands/init.js +0 -336
- package/dist/cli/commands/init.js.map +0 -1
- package/dist/logo.js +0 -17
- package/dist/logo.js.map +0 -1
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { select, input } from "../../../lib/prompts.js";
|
|
2
|
+
import { sectionTitle } from "../../../lib/colors.js";
|
|
3
|
+
import { startSpinner } from "../../../spinner.js";
|
|
4
|
+
import { UUID_REGEX } from "../../../config.js";
|
|
5
|
+
import { listMemberProjects } from "../../../lib/project-context.js";
|
|
6
|
+
import { initCopy } from "../../copy.js";
|
|
7
|
+
const MANUAL_PROJECT = "__manual__";
|
|
8
|
+
const NO_REPO = "__none__";
|
|
9
|
+
/** Busca os projetos dos quais o usuário é membro; sai do processo se a busca
|
|
10
|
+
* falhar ou se a lista vier vazia (nada pra vincular). */
|
|
11
|
+
export async function fetchMemberProjectsStep(supabase, userId) {
|
|
12
|
+
const projectsSpinner = startSpinner("Buscando seus projetos...");
|
|
13
|
+
let projects;
|
|
14
|
+
try {
|
|
15
|
+
projects = await listMemberProjects(supabase, userId);
|
|
16
|
+
}
|
|
17
|
+
catch (err) {
|
|
18
|
+
projectsSpinner.fail(`Erro ao buscar projetos: ${err.message}`);
|
|
19
|
+
process.exit(1);
|
|
20
|
+
}
|
|
21
|
+
projectsSpinner.stop();
|
|
22
|
+
if (projects.length === 0) {
|
|
23
|
+
console.error("Você não é membro de nenhum projeto. Peça a um admin pra te adicionar.");
|
|
24
|
+
process.exit(1);
|
|
25
|
+
}
|
|
26
|
+
return projects;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Dado o id escolhido/digitado e a lista de projetos do usuário, resolve o
|
|
30
|
+
* projeto selecionado. Cai num objeto sintético `{id, name: id}` quando o id
|
|
31
|
+
* não está na lista (ex.: colado manualmente).
|
|
32
|
+
*/
|
|
33
|
+
export function resolveSelectedProject(projectId, projects) {
|
|
34
|
+
return projects.find((p) => p.id === projectId) ?? { id: projectId, name: projectId };
|
|
35
|
+
}
|
|
36
|
+
/** Prompt de escolha do projeto — lista os projetos do usuário + opção de digitar um id manualmente. */
|
|
37
|
+
export async function pickProject(projects) {
|
|
38
|
+
let projectId = await select({
|
|
39
|
+
message: initCopy.pickProject,
|
|
40
|
+
choices: [
|
|
41
|
+
...projects.map((p) => ({ name: p.name, value: p.id })),
|
|
42
|
+
{ name: initCopy.manualProjectChoice, value: MANUAL_PROJECT },
|
|
43
|
+
],
|
|
44
|
+
});
|
|
45
|
+
if (projectId === MANUAL_PROJECT) {
|
|
46
|
+
projectId = await input({
|
|
47
|
+
message: initCopy.manualProjectPrompt,
|
|
48
|
+
validate: (value) => UUID_REGEX.test(value.trim()) || initCopy.manualProjectInvalid,
|
|
49
|
+
});
|
|
50
|
+
projectId = projectId.trim();
|
|
51
|
+
}
|
|
52
|
+
return resolveSelectedProject(projectId, projects);
|
|
53
|
+
}
|
|
54
|
+
/** Traduz a escolha do prompt de repositório pro `repository_id` persistido. */
|
|
55
|
+
export function resolveRepositoryChoice(choice) {
|
|
56
|
+
return choice === NO_REPO ? null : choice;
|
|
57
|
+
}
|
|
58
|
+
/** Busca os repositórios do projeto e, se houver algum, oferece vincular um (ou nenhum). */
|
|
59
|
+
export async function pickRepository(supabase, projectId) {
|
|
60
|
+
const reposSpinner = startSpinner("Buscando repositórios...");
|
|
61
|
+
const reposResult = await supabase
|
|
62
|
+
.from("repositories")
|
|
63
|
+
.select("id, name")
|
|
64
|
+
.eq("project_id", projectId)
|
|
65
|
+
.order("name");
|
|
66
|
+
if (reposResult.error) {
|
|
67
|
+
reposSpinner.fail(`Erro ao buscar repositórios: ${reposResult.error.message}`);
|
|
68
|
+
process.exit(1);
|
|
69
|
+
}
|
|
70
|
+
reposSpinner.stop();
|
|
71
|
+
const repos = reposResult.data ?? [];
|
|
72
|
+
if (repos.length === 0)
|
|
73
|
+
return null;
|
|
74
|
+
const choice = await select({
|
|
75
|
+
message: initCopy.linkRepo,
|
|
76
|
+
choices: [
|
|
77
|
+
{ name: initCopy.noRepoChoice, value: NO_REPO },
|
|
78
|
+
...repos.map((r) => ({ name: r.name, value: r.id })),
|
|
79
|
+
],
|
|
80
|
+
});
|
|
81
|
+
return resolveRepositoryChoice(choice);
|
|
82
|
+
}
|
|
83
|
+
/** Monta o `ProjectConfig` base a partir do projeto e (opcional) repositório escolhidos. */
|
|
84
|
+
export function buildBaseConfig(projectId, repositoryId) {
|
|
85
|
+
const config = { project_id: projectId };
|
|
86
|
+
if (repositoryId)
|
|
87
|
+
config.repository_id = repositoryId;
|
|
88
|
+
return config;
|
|
89
|
+
}
|
|
90
|
+
/** Prompt de IDE — habilita integrações específicas de editor no resto do CLI. */
|
|
91
|
+
export async function pickIde() {
|
|
92
|
+
console.log("");
|
|
93
|
+
console.log(sectionTitle("IDE", "habilita integrações de editor"));
|
|
94
|
+
return select({
|
|
95
|
+
message: "Qual IDE você usa? Isso habilita integrações — ex.: o /implement " +
|
|
96
|
+
"registra o worktree criado no editor (VS Code: adiciona ao Source Control; " +
|
|
97
|
+
"Xcode: abre o projeto em janela própria). Mais integrações no futuro.",
|
|
98
|
+
choices: [
|
|
99
|
+
{ name: "VS Code", value: "vscode" },
|
|
100
|
+
{ name: "Xcode", value: "xcode" },
|
|
101
|
+
{ name: "Outra", value: "other" },
|
|
102
|
+
],
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=project-step.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-step.js","sourceRoot":"","sources":["../../../../src/cli/commands/init/project-step.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { claudeTarget, codexTarget } from "../../../lib/targets.js";
|
|
2
|
+
import { provision } from "../../../lib/provision.js";
|
|
3
|
+
import { provisionHooks } from "../../../lib/hooks.js";
|
|
4
|
+
import { fetchSkills } from "../../../lib/skills-cache.js";
|
|
5
|
+
import { c, sym, sectionTitle } from "../../../lib/colors.js";
|
|
6
|
+
import { startSpinner } from "../../../spinner.js";
|
|
7
|
+
import { printProvisionResult, printHookResult } from "../../ui/render.js";
|
|
8
|
+
import { track, provisionedItems } from "../../../lib/telemetry.js";
|
|
9
|
+
import { VERSION } from "../../../version.js";
|
|
10
|
+
/**
|
|
11
|
+
* claude-code-* → ~/.claude (nativo); codex-global → ~/.codex (traduzido pra
|
|
12
|
+
* skills). Sem nenhuma escolha desses dois, cai no default (~/.claude).
|
|
13
|
+
*/
|
|
14
|
+
export function resolveProvisionTargets(clientConfigs) {
|
|
15
|
+
const targets = new Set();
|
|
16
|
+
for (const choice of clientConfigs) {
|
|
17
|
+
if (choice.startsWith("claude-code"))
|
|
18
|
+
targets.add(claudeTarget);
|
|
19
|
+
if (choice === "codex-global")
|
|
20
|
+
targets.add(codexTarget);
|
|
21
|
+
}
|
|
22
|
+
if (targets.size === 0)
|
|
23
|
+
targets.add(claudeTarget);
|
|
24
|
+
return targets;
|
|
25
|
+
}
|
|
26
|
+
/** Baixa o repo aberto de skills pro cache local antes de provisionar. */
|
|
27
|
+
export async function fetchSkillsStep() {
|
|
28
|
+
console.log("");
|
|
29
|
+
console.log(sectionTitle("Skills & commands", "provisionando pros clientes"));
|
|
30
|
+
const fetchSpinner = startSpinner("Baixando skills do repo…");
|
|
31
|
+
const fetched = await fetchSkills({ force: true });
|
|
32
|
+
fetchSpinner.stop();
|
|
33
|
+
if (fetched.status === "failed") {
|
|
34
|
+
console.error(` ${c.red(sym.err)} não consegui baixar as skills: ${fetched.error}`);
|
|
35
|
+
}
|
|
36
|
+
else if (fetched.status === "fetched") {
|
|
37
|
+
console.log(` ${c.green(sym.ok)} skills baixadas ${c.dim(`(${fetched.repo}@${fetched.ref})`)}`);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
export function provisionTargetsStep(targets, config, session, uidByName) {
|
|
41
|
+
for (const target of targets) {
|
|
42
|
+
console.log("");
|
|
43
|
+
console.log(` ${c.magenta(sym.dot)} ${c.bold(target.label)}`);
|
|
44
|
+
try {
|
|
45
|
+
const result = provision({ target, selection: config.selection });
|
|
46
|
+
printProvisionResult(result);
|
|
47
|
+
track(session.supabase, {
|
|
48
|
+
type: "provision",
|
|
49
|
+
client: target.id,
|
|
50
|
+
sections: config.selection,
|
|
51
|
+
items: provisionedItems(result.files, uidByName),
|
|
52
|
+
version: VERSION,
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
catch (err) {
|
|
56
|
+
console.error(`[aviso] Não consegui sincronizar skills/commands: ${err.message}`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/** Hooks (só Claude Code): registra os gatilhos no ~/.claude/settings.json. */
|
|
61
|
+
export function provisionHooksStep(targets, config) {
|
|
62
|
+
if (!targets.has(claudeTarget))
|
|
63
|
+
return;
|
|
64
|
+
console.log("");
|
|
65
|
+
console.log(sectionTitle("Hooks", "registrando no Claude Code"));
|
|
66
|
+
try {
|
|
67
|
+
printHookResult(provisionHooks({
|
|
68
|
+
surface: claudeTarget.surface,
|
|
69
|
+
selection: config.selection,
|
|
70
|
+
}));
|
|
71
|
+
}
|
|
72
|
+
catch (err) {
|
|
73
|
+
console.error(`[aviso] Não consegui registrar hooks: ${err.message}`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=provision-step.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provision-step.js","sourceRoot":"","sources":["../../../../src/cli/commands/init/provision-step.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { existsSync } from "node:fs";
|
|
2
|
+
import { runValidatePlan } from "../../lib/validate-plan-delegate.js";
|
|
3
|
+
import { ENGINES, PLAN_ENGINE, parseEngine } from "../../lib/exec-engines.js";
|
|
4
|
+
/**
|
|
5
|
+
* Superfície de CLI da triagem — mesmo contrato do `plan`/`exec`:
|
|
6
|
+
* **stdout = JSON**, **stderr = log ao vivo**, **exit ≠ 0 = falha**.
|
|
7
|
+
*/
|
|
8
|
+
function emit(payload) {
|
|
9
|
+
process.stdout.write(`${JSON.stringify(payload, null, 2)}\n`);
|
|
10
|
+
}
|
|
11
|
+
export function registerValidatePlanCommand(program) {
|
|
12
|
+
program
|
|
13
|
+
.command("validate-plan")
|
|
14
|
+
.description("Lê o plan.md da raiz e roda o engine pensante para julgar se o plano precisa de " +
|
|
15
|
+
"uma spec antes de implementar. stdout = JSON { ok, needsSpec, reason, suggestedSlug?, engine }; " +
|
|
16
|
+
"stderr = log. suggestedSlug (slug do worktree) só sai quando needsSpec.")
|
|
17
|
+
.option("--project <path>", "raiz do projeto onde vive o plan.md", process.cwd())
|
|
18
|
+
.option("--engine <engine>", `agente pensante (${ENGINES.join(" | ")})`, PLAN_ENGINE)
|
|
19
|
+
.option("--quiet", "não streama o log do agente no stderr")
|
|
20
|
+
.action(async (opts) => {
|
|
21
|
+
const engine = parseEngine(opts.engine, PLAN_ENGINE);
|
|
22
|
+
if (!engine) {
|
|
23
|
+
emit({ ok: false, error: `engine inválido: ${opts.engine} — suportados: ${ENGINES.join(", ")}` });
|
|
24
|
+
process.exitCode = 1;
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
if (!existsSync(opts.project)) {
|
|
28
|
+
emit({ ok: false, error: `projeto não encontrado: ${opts.project}` });
|
|
29
|
+
process.exitCode = 1;
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
const result = await runValidatePlan({
|
|
33
|
+
project: opts.project,
|
|
34
|
+
engine,
|
|
35
|
+
echo: opts.quiet !== true,
|
|
36
|
+
});
|
|
37
|
+
emit(result);
|
|
38
|
+
if (!result.ok)
|
|
39
|
+
process.exitCode = 1;
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=validate-plan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-plan.js","sourceRoot":"","sources":["../../../src/cli/commands/validate-plan.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAE9E;;;GAGG;AAEH,SAAS,IAAI,CAAC,OAAgB;IAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,OAAgB;IAC1D,OAAO;SACJ,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CACV,kFAAkF;QAChF,kGAAkG;QAClG,yEAAyE,CAC5E;SACA,MAAM,CAAC,kBAAkB,EAAE,qCAAqC,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;SAChF,MAAM,CAAC,mBAAmB,EAAE,oBAAoB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,WAAW,CAAC;SACpF,MAAM,CAAC,SAAS,EAAE,uCAAuC,CAAC;SAC1D,MAAM,CACL,KAAK,EAAE,IAA2D,EAAE,EAAE;QACpE,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACrD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,oBAAoB,IAAI,CAAC,MAAM,kBAAkB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YAClG,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,2BAA2B,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACtE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC;YACnC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM;YACN,IAAI,EAAE,IAAI,CAAC,KAAK,KAAK,IAAI;SAC1B,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,CAAC;QACb,IAAI,CAAC,MAAM,CAAC,EAAE;YAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvC,CAAC,CACF,CAAC;AACN,CAAC"}
|
|
@@ -8,6 +8,7 @@ import { startSpinner } from "../../spinner.js";
|
|
|
8
8
|
import { c, sym, cmd, link, box, sectionTitle } from "../../lib/colors.js";
|
|
9
9
|
import { printInstallResult } from "../ui/render.js";
|
|
10
10
|
import { flowsCopy, fmt } from "../copy.js";
|
|
11
|
+
import { brand } from "../../brand.js";
|
|
11
12
|
/**
|
|
12
13
|
* Verificação inicial do `init`: confere se **Codex** e **Claude Code** estão instalados —
|
|
13
14
|
* um por vez — e, se faltar, oferece instalar via `npm i -g` [y/N] (com o comando + docs à
|
|
@@ -61,9 +62,32 @@ function coworkManualInstall() {
|
|
|
61
62
|
`${c.dim(outputPath)}\n\n` +
|
|
62
63
|
`${c.bold("Instalar no Claude Desktop:")}\n` +
|
|
63
64
|
`${c.dim('Configurações → Extensões → avançadas → "Extension Developer" →')}\n` +
|
|
64
|
-
`${c.dim(
|
|
65
|
+
`${c.dim(`"Install Extension…" → selecione o .mcpb e cole seu PAT (${brand.patPrefix}…).`)}`, { borderColor: "yellow", title: "Cowork (manual)" }));
|
|
65
66
|
revealInFileManager(outputPath.replace(/[^/\\]+$/, ""));
|
|
66
67
|
}
|
|
68
|
+
/**
|
|
69
|
+
* Tenta ativar o Cowork escrevendo o config direto (precisa de login salvo).
|
|
70
|
+
* Retorna `true` se conseguiu (nada mais a fazer); `false` se precisa cair pro
|
|
71
|
+
* fallback manual (sem credenciais, ou a escrita direta falhou).
|
|
72
|
+
*/
|
|
73
|
+
function tryActivateCoworkDirect(creds) {
|
|
74
|
+
if (!creds) {
|
|
75
|
+
console.log(` ${c.dim("sem login salvo — pela extensão você cola o PAT na hora da instalação.")}`);
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
try {
|
|
79
|
+
const result = installCoworkGlobal();
|
|
80
|
+
printInstallResult("Claude Desktop (Cowork)", result);
|
|
81
|
+
console.log(box(`${c.green(sym.ok)} ${c.bold("conector noclaf ativado no Claude Desktop")}\n` +
|
|
82
|
+
`${c.dim("reinicie o app pra carregar. Projeto é por sessão:")}\n` +
|
|
83
|
+
`${cmd(`${brand.toolPrefix}list_projects`)} ${c.dim("→")} ${cmd(`${brand.toolPrefix}set_project`)}`, { borderColor: "green", title: "Cowork" }));
|
|
84
|
+
return true;
|
|
85
|
+
}
|
|
86
|
+
catch (err) {
|
|
87
|
+
console.log(` ${c.yellow(sym.warn)} ${c.dim("não consegui aplicar o config direto:")} ${err.message}`);
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
67
91
|
/** Ativa o conector no Claude Desktop escrevendo o config direto; cai pro `.mcpb` manual se falhar ou faltar login. */
|
|
68
92
|
export async function activateCowork(opts) {
|
|
69
93
|
if (!coworkAppInstalled()) {
|
|
@@ -73,22 +97,8 @@ export async function activateCowork(opts) {
|
|
|
73
97
|
return;
|
|
74
98
|
}
|
|
75
99
|
const creds = await loadCredentials();
|
|
76
|
-
if (creds)
|
|
77
|
-
|
|
78
|
-
const result = installCoworkGlobal();
|
|
79
|
-
printInstallResult("Claude Desktop (Cowork)", result);
|
|
80
|
-
console.log(box(`${c.green(sym.ok)} ${c.bold("conector noclaf ativado no Claude Desktop")}\n` +
|
|
81
|
-
`${c.dim("reinicie o app pra carregar. Projeto é por sessão:")}\n` +
|
|
82
|
-
`${cmd("nos_list_projects")} ${c.dim("→")} ${cmd("nos_set_project")}`, { borderColor: "green", title: "Cowork" }));
|
|
83
|
-
return;
|
|
84
|
-
}
|
|
85
|
-
catch (err) {
|
|
86
|
-
console.log(` ${c.yellow(sym.warn)} ${c.dim("não consegui aplicar o config direto:")} ${err.message}`);
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
else {
|
|
90
|
-
console.log(` ${c.dim("sem login salvo — pela extensão você cola o PAT na hora da instalação.")}`);
|
|
91
|
-
}
|
|
100
|
+
if (tryActivateCoworkDirect(creds))
|
|
101
|
+
return;
|
|
92
102
|
// Fallback manual (app instalado mas escrita direta falhou, ou sem login).
|
|
93
103
|
const goManual = opts.assumeYes === true ||
|
|
94
104
|
(opts.interactive &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clients.js","sourceRoot":"","sources":["../../../src/cli/flows/clients.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAC7F,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAmB,MAAM,6BAA6B,CAAC;AAC1F,OAAO,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"clients.js","sourceRoot":"","sources":["../../../src/cli/flows/clients.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -1,23 +1,24 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { Command } from "commander";
|
|
3
3
|
import { VERSION } from "./version.js";
|
|
4
|
-
import {
|
|
4
|
+
import { brand } from "./brand.js";
|
|
5
5
|
import { notifyCliIfUpdate } from "./lib/version-check.js";
|
|
6
6
|
import { registerAuthCommands } from "./cli/commands/auth.js";
|
|
7
|
-
import { registerInitCommand } from "./cli/commands/init.js";
|
|
7
|
+
import { registerInitCommand } from "./cli/commands/init/index.js";
|
|
8
8
|
import { registerSyncCommand } from "./cli/commands/sync.js";
|
|
9
9
|
import { registerSkillsCommands } from "./cli/commands/skills.js";
|
|
10
10
|
import { registerCleanCommand } from "./cli/commands/clean.js";
|
|
11
11
|
import { registerExecCommand } from "./cli/commands/exec.js";
|
|
12
12
|
import { registerPlanCommand } from "./cli/commands/plan.js";
|
|
13
|
+
import { registerValidatePlanCommand } from "./cli/commands/validate-plan.js";
|
|
13
14
|
import { registerCompletionCommand } from "./cli/commands/completion.js";
|
|
14
15
|
notifyCliIfUpdate();
|
|
15
16
|
const program = new Command();
|
|
16
17
|
program
|
|
17
|
-
.name(
|
|
18
|
-
.description(
|
|
18
|
+
.name(brand.name)
|
|
19
|
+
.description(`CLI do ${brand.productName} (${brand.productFullName})`)
|
|
19
20
|
.version(VERSION)
|
|
20
|
-
.addHelpText("beforeAll",
|
|
21
|
+
.addHelpText("beforeAll", brand.logo);
|
|
21
22
|
registerAuthCommands(program);
|
|
22
23
|
registerInitCommand(program);
|
|
23
24
|
registerSyncCommand(program);
|
|
@@ -25,6 +26,7 @@ registerSkillsCommands(program);
|
|
|
25
26
|
registerCleanCommand(program);
|
|
26
27
|
registerExecCommand(program);
|
|
27
28
|
registerPlanCommand(program);
|
|
29
|
+
registerValidatePlanCommand(program);
|
|
28
30
|
registerCompletionCommand(program);
|
|
29
31
|
program.parseAsync(process.argv).catch((err) => {
|
|
30
32
|
console.error(`Erro: ${err.message}`);
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAEzE,iBAAiB,EAAE,CAAC;AAEpB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAC9B,OAAO;KACJ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;KAChB,WAAW,CAAC,UAAU,KAAK,CAAC,WAAW,KAAK,KAAK,CAAC,eAAe,GAAG,CAAC;KACrE,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;AAExC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,2BAA2B,CAAC,OAAO,CAAC,CAAC;AACrC,yBAAyB,CAAC,OAAO,CAAC,CAAC;AAEnC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IAC7C,OAAO,CAAC,KAAK,CAAC,SAAU,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/dist/config.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { readFileSync, writeFileSync, existsSync } from 'node:fs';
|
|
2
2
|
import { join, isAbsolute, dirname } from 'node:path';
|
|
3
3
|
import { PROJECT_CONFIG_FILE } from './constants.js';
|
|
4
|
+
import { env } from './brand.js';
|
|
4
5
|
import { DEV_ROLE, GENERAL } from './lib/sections.js';
|
|
5
6
|
/** Parse leniente do bloco `selection` do noclaf.json. */
|
|
6
7
|
function parseSelection(value) {
|
|
@@ -77,14 +78,14 @@ export function findProjectConfigPath(cwd = process.cwd()) {
|
|
|
77
78
|
* Retorna null se NOCLAF_PROJECT_ID não estiver definido.
|
|
78
79
|
*/
|
|
79
80
|
function loadProjectConfigFromEnv() {
|
|
80
|
-
const projectId =
|
|
81
|
+
const projectId = env('PROJECT_ID')?.trim();
|
|
81
82
|
if (!projectId)
|
|
82
83
|
return null;
|
|
83
84
|
if (!UUID_REGEX.test(projectId)) {
|
|
84
85
|
throw new Error('NOCLAF_PROJECT_ID não é um UUID válido.');
|
|
85
86
|
}
|
|
86
87
|
const config = { project_id: projectId };
|
|
87
|
-
const repositoryId =
|
|
88
|
+
const repositoryId = env('REPOSITORY_ID')?.trim();
|
|
88
89
|
if (repositoryId) {
|
|
89
90
|
if (!UUID_REGEX.test(repositoryId)) {
|
|
90
91
|
throw new Error('NOCLAF_REPOSITORY_ID deve ser um UUID válido.');
|
|
@@ -93,14 +94,8 @@ function loadProjectConfigFromEnv() {
|
|
|
93
94
|
}
|
|
94
95
|
return config;
|
|
95
96
|
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
const envConfig = loadProjectConfigFromEnv();
|
|
99
|
-
if (envConfig)
|
|
100
|
-
return envConfig;
|
|
101
|
-
const path = findProjectConfigPath(cwd);
|
|
102
|
-
if (!path)
|
|
103
|
-
return null;
|
|
97
|
+
/** Lê e faz `JSON.parse` do `noclaf.json` em `path` — erros viram mensagens com o nome do arquivo. */
|
|
98
|
+
function readProjectConfigFile(path) {
|
|
104
99
|
let raw;
|
|
105
100
|
try {
|
|
106
101
|
raw = readFileSync(path, 'utf8');
|
|
@@ -118,7 +113,10 @@ export function loadProjectConfig(cwd = process.cwd()) {
|
|
|
118
113
|
if (!parsed || typeof parsed !== 'object') {
|
|
119
114
|
throw new Error(`${PROJECT_CONFIG_FILE} deve conter um objeto JSON.`);
|
|
120
115
|
}
|
|
121
|
-
|
|
116
|
+
return parsed;
|
|
117
|
+
}
|
|
118
|
+
/** Valida e monta o `ProjectConfig` a partir do objeto já parseado do `noclaf.json`. */
|
|
119
|
+
function shapeProjectConfig(obj) {
|
|
122
120
|
const projectId = obj.project_id;
|
|
123
121
|
if (typeof projectId !== 'string' || !UUID_REGEX.test(projectId)) {
|
|
124
122
|
throw new Error(`${PROJECT_CONFIG_FILE}: campo "project_id" ausente ou não é um UUID válido.`);
|
|
@@ -144,6 +142,16 @@ export function loadProjectConfig(cwd = process.cwd()) {
|
|
|
144
142
|
}
|
|
145
143
|
return config;
|
|
146
144
|
}
|
|
145
|
+
export function loadProjectConfig(cwd = process.cwd()) {
|
|
146
|
+
// Precedência pro ambiente (Desktop Extension / Cowork não têm noclaf.json no cwd).
|
|
147
|
+
const envConfig = loadProjectConfigFromEnv();
|
|
148
|
+
if (envConfig)
|
|
149
|
+
return envConfig;
|
|
150
|
+
const path = findProjectConfigPath(cwd);
|
|
151
|
+
if (!path)
|
|
152
|
+
return null;
|
|
153
|
+
return shapeProjectConfig(readProjectConfigFile(path));
|
|
154
|
+
}
|
|
147
155
|
export function writeProjectConfig(config, cwd = process.cwd()) {
|
|
148
156
|
const path = getProjectConfigPath(cwd);
|
|
149
157
|
const content = JSON.stringify(config, null, 2) + '\n';
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAkB,MAAM,mBAAmB,CAAC;AActE,0DAA0D;AAC1D,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC1D,MAAM,CAAC,GAAG,KAA8C,CAAC;IACzD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;QAClC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3E,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,IAAI,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC7C,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAiC,CAAC,EAAE,CAAC;YAChF,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE;gBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7E,CAAC;IACH,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC7E,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC3B,CAAC;AAED;;;;;GAKG;AACH,SAAS,sBAAsB,CAAC,GAA4B;IAC1D,MAAM,GAAG,GAAG,GAAG,CAAC,QAAgE,CAAC;IACjF,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAA4B,CAAC;IAC9D,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IACtD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IACjE,IAAI,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzD,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACzD,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3D,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,SAAS;QACpC,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;IACjF,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC7E,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC3B,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,iEAAiE,CAAC;AAE5F,MAAM,UAAU,oBAAoB,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IAC9D,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,mBAAmB,CAAC,CAAC;AAC1G,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IAC/D,IAAI,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;IAC3D,SAAS,CAAC;QACR,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;QACjD,IAAI,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;QAC5C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,MAAM,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC;QAChC,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,wBAAwB;IAC/B,MAAM,SAAS,GAAG,GAAG,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,CAAC;IAC5C,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAE5B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,MAAM,GAAkB,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;IACxD,MAAM,YAAY,GAAG,GAAG,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,CAAC;IAClD,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACnE,CAAC;QACD,MAAM,CAAC,aAAa,GAAG,YAAY,CAAC;IACtC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,sGAAsG;AACtG,SAAS,qBAAqB,CAAC,IAAY;IACzC,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,wBAAwB,mBAAmB,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,GAAG,mBAAmB,0BAA2B,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,GAAG,mBAAmB,8BAA8B,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,MAAiC,CAAC;AAC3C,CAAC;AAED,wFAAwF;AACxF,SAAS,kBAAkB,CAAC,GAA4B;IACtD,MAAM,SAAS,GAAG,GAAG,CAAC,UAAU,CAAC;IACjC,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,KAAK,CAAC,GAAG,mBAAmB,uDAAuD,CAAC,CAAC;IACjG,CAAC;IAED,MAAM,YAAY,GAAG,GAAG,CAAC,aAAa,CAAC;IACvC,IACE,YAAY,KAAK,SAAS;QAC1B,YAAY,KAAK,IAAI;QACrB,CAAC,OAAO,YAAY,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,EACpE,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,GAAG,mBAAmB,yDAAyD,CAAC,CAAC;IACnG,CAAC;IAED,MAAM,MAAM,GAAkB,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;IACxD,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;QACrC,MAAM,CAAC,aAAa,GAAG,YAAY,CAAC;IACtC,CAAC;SAAM,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;QACjC,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC;IAC9B,CAAC;IACD,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,sBAAsB,CAAC,GAAG,CAAC,CAAC;IAC/E,IAAI,SAAS;QAAE,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;IAC5C,IAAI,GAAG,CAAC,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,GAAG,KAAK,OAAO,IAAI,GAAG,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;QACvE,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;IACvB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IAC3D,oFAAoF;IACpF,MAAM,SAAS,GAAG,wBAAwB,EAAE,CAAC;IAC7C,IAAI,SAAS;QAAE,OAAO,SAAS,CAAC;IAEhC,MAAM,IAAI,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;IACxC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,OAAO,kBAAkB,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAqB,EAAE,MAAc,OAAO,CAAC,GAAG,EAAE;IACnF,MAAM,IAAI,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;IACvD,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AACvC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAC9B,QAAgB,mBAAmB,EACnC,MAAc,OAAO,CAAC,GAAG,EAAE;IAE3B,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACrF,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1D,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAE5C,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IACtE,MAAM,KAAK,GAAG,GAAG,GAAG,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,wCAAwC,KAAK,IAAI,CAAC;IACvG,aAAa,CAAC,aAAa,EAAE,OAAO,GAAG,KAAK,EAAE,MAAM,CAAC,CAAC;IACtD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
package/dist/constants.js
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
export const
|
|
4
|
-
export const SUPABASE_ANON_KEY = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Indkc2h2dGxzam9lZ2p2bXBxb2J4Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3NzU3NDA4OTQsImV4cCI6MjA5MTMxNjg5NH0.4wlAsT_D5gDiBQ19WA-q5zu105fT9TsD1NKI_tGQt-4';
|
|
1
|
+
import { brand, homePath, patRegex } from './brand.js';
|
|
2
|
+
export const SUPABASE_URL = brand.supabaseUrl;
|
|
3
|
+
export const SUPABASE_ANON_KEY = brand.supabaseAnonKey;
|
|
5
4
|
export const TOKEN_EXCHANGE_URL = `${SUPABASE_URL}/functions/v1/mcp-token-exchange`;
|
|
6
|
-
export const CREDENTIALS_DIR =
|
|
7
|
-
export const CREDENTIALS_FILE =
|
|
8
|
-
export const PROJECT_CONFIG_FILE =
|
|
9
|
-
export const PAT_REGEX =
|
|
5
|
+
export const CREDENTIALS_DIR = homePath();
|
|
6
|
+
export const CREDENTIALS_FILE = homePath('credentials.json');
|
|
7
|
+
export const PROJECT_CONFIG_FILE = brand.projectConfigFile;
|
|
8
|
+
export const PAT_REGEX = patRegex;
|
|
10
9
|
//# sourceMappingURL=constants.js.map
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEvD,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC;AAC9C,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,CAAC,eAAe,CAAC;AAEvD,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,YAAY,kCAAkC,CAAC;AAEpF,MAAM,CAAC,MAAM,eAAe,GAAG,QAAQ,EAAE,CAAC;AAC1C,MAAM,CAAC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC;AAE7D,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,CAAC,iBAAiB,CAAC;AAE3D,MAAM,CAAC,MAAM,SAAS,GAAG,QAAQ,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { claudeTarget, codexTarget } from './targets.js';
|
|
2
|
+
/** Decide se o auto-pull deve rodar. Pura: Cowork recebe skills via
|
|
3
|
+
* resources/prompts (não arquivo nativo) e o usuário pode desligar explicitamente. */
|
|
4
|
+
export function shouldRunAutoPull(client, autoPullFlag) {
|
|
5
|
+
const isCowork = client === 'cowork';
|
|
6
|
+
return !isCowork && autoPullFlag !== '0' && autoPullFlag !== 'false';
|
|
7
|
+
}
|
|
8
|
+
/** Cliente nativo do worker: Codex escreve `~/.codex` (skills traduzidas),
|
|
9
|
+
* qualquer outro cai pro Claude Code (`~/.claude`). */
|
|
10
|
+
export function pickProvisionTarget(client) {
|
|
11
|
+
return client === 'codex' ? codexTarget : claudeTarget;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=autopull.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autopull.js","sourceRoot":"","sources":["../../src/lib/autopull.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAwB,MAAM,cAAc,CAAC;AAE/E;sFACsF;AACtF,MAAM,UAAU,iBAAiB,CAAC,MAA0B,EAAE,YAAgC;IAC5F,MAAM,QAAQ,GAAG,MAAM,KAAK,QAAQ,CAAC;IACrC,OAAO,CAAC,QAAQ,IAAI,YAAY,KAAK,GAAG,IAAI,YAAY,KAAK,OAAO,CAAC;AACvE,CAAC;AAED;uDACuD;AACvD,MAAM,UAAU,mBAAmB,CAAC,MAA0B;IAC5D,OAAO,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC;AACzD,CAAC"}
|