@seedgrid/ai-toolkit 0.4.1 → 0.4.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.
@@ -132,6 +132,7 @@ export function agentsMdBlock(bundle, targets, mode) {
132
132
  '',
133
133
  `Bloco gerenciado pelo \`seedgrid-ai\` (conteúdo ${bundle.contentVersion}, modo \`${mode}\`). Não edite entre os marcadores; personalize em \`.ai/local/\`.`,
134
134
  '',
135
+ ...(bundle.agentsNotes.length > 0 ? [...bundle.agentsNotes.map((n) => `> ${n}`), ''] : []),
135
136
  'Cada pasta de `.ai/` tem um `index.md` com o que há nela: comece por ele e leia só o que a tarefa pedir.',
136
137
  '',
137
138
  '- Regras: `.ai/rules/`. Antes de tarefas não triviais, leia `coordenacao.md`.',
@@ -510,6 +510,10 @@ export async function loadContent(root) {
510
510
  checkBrain(ctx, brain.notes, brain.entrypoints, brain.base);
511
511
  shared.push(...brain.notes);
512
512
  }
513
+ const rawNotes = manifest.agentsNotes ?? [];
514
+ if (!Array.isArray(rawNotes) || rawNotes.length > 10 || rawNotes.some((n) => typeof n !== 'string' || n.trim() === '' || n.length > 600 || n.includes('\n'))) {
515
+ ctx.errors.push('manifest: agentsNotes deve ser uma lista de até 10 linhas de texto (até 600 caracteres, sem quebra de linha)');
516
+ }
513
517
  if (ctx.errors.length > 0) {
514
518
  throw new ToolkitError(`Conteúdo inválido em ${absRoot}`, ctx.errors);
515
519
  }
@@ -523,6 +527,7 @@ export async function loadContent(root) {
523
527
  brain: brain
524
528
  ? { notes: brain.notes.length, entrypoints: brain.entrypoints.map((e) => `.ai/brain/${brain.base}/${e}`) }
525
529
  : null,
530
+ agentsNotes: rawNotes,
526
531
  sourceFiles: [...ctx.sources].sort(),
527
532
  };
528
533
  }
package/docs/formato.md CHANGED
@@ -87,6 +87,7 @@ Arquivos e pastas que começam com ponto são ignorados.
87
87
  | --- | --- |
88
88
  | `schemaVersion` | `2` (versão do formato do manifesto) |
89
89
  | `contentVersion` | semver; deve ser **igual** à versão do pacote (`package.json`); aumente a cada mudança de conteúdo |
90
+ | `agentsNotes` | (opcional) até 10 linhas curtas que o bloco do `AGENTS.md` mostra no topo, como aviso (ex.: o modo de trabalho que uma camada adicional exige) |
90
91
  | `toolkitBase` | pasta do vault onde ficam `agents/`, `rules/`, `templates/`, `references/` e `skills/` (aqui, `SeedGrid/Toolkit`) |
91
92
  | `components[].id` | único; para skills, `skill:<name>` |
92
93
  | `components[].type` | `agents`, `rules`, `templates`, `references`, `skill` ou `brain` |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seedgrid/ai-toolkit",
3
- "version": "0.4.1",
3
+ "version": "0.4.3",
4
4
  "description": "Instala agentes, skills, regras, templates e referências versionados em projetos locais para Claude Code e Codex.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -479,7 +479,7 @@ Tabela geral de **todas as propriedades públicas** de configuração documentad
479
479
  | `seedgrid.subdomain-tenancy.master.entity-packages` | Datasource master | `Optional<String>` | MPC: vazio (env `SEEDGRID_SUBDOMAIN_TENANCY_MASTER_ENTITY_PACKAGES`) | build (via expansão — Inferência) | Prefixada em quarkus.hibernate-orm.master.packages=${…master.entity-packages},br.com.seedgrid.subdomaintenancy.entities… | [[SeedGrid/Extensions/subdomain-tenancy/Configuracao\|subdomain-tenancy/Configuracao]] |
480
480
  | `seedgrid.subdomain-tenancy.master.migrations.location.additional` | Datasource master | `Optional<String>` (CSV) | MPC: vazio | runtime | Anexadas à base classpath:db/migration/master no mesmo history flyway_schema_history_master; versões precisam ser… | [[SeedGrid/Extensions/subdomain-tenancy/Configuracao\|subdomain-tenancy/Configuracao]] |
481
481
  | `database.master.subdomain` | Datasource master | `Optional<String>` | MPC: `${PRODUCT_PREFIX:app}` | runtime | Nenhum código da extension a lê (DatabaseMasterConfig não é injetado); é um valor auxiliar publicado para o host… | [[SeedGrid/Extensions/subdomain-tenancy/Configuracao\|subdomain-tenancy/Configuracao]] |
482
- | `database.master.name` | Datasource master | `Optional<String>` | MPC: `${database.master.subdomain}_master` | runtime | Valor auxiliar para expressões do host; ex. real em java/seedgrid-test-multitenancy/src/main/resources/application.prop… | [[SeedGrid/Extensions/subdomain-tenancy/Configuracao\|subdomain-tenancy/Configuracao]] |
482
+ | `database.master.name` | Datasource master | `Optional<String>` | MPC: `${database.master.subdomain}_master` | runtime | Valor auxiliar para expressões do host; usado em expressões `${database.master.name}` do `application.properties` do host | [[SeedGrid/Extensions/subdomain-tenancy/Configuracao\|subdomain-tenancy/Configuracao]] |
483
483
  | `seedgrid.subdomain-tenancy.tenant.datasource.jdbc.url` | Datasource dos tenants (pool, cache e limite) | `Optional<String>` | `—` (sem `url` nem `url-pattern`: `jdbc:postgresql://localhost:5439/{tenant}`) | runtime | getEffectiveUrlPattern() remove / final e acrescenta /{tenant}; {tenant} vira o nome do banco (<prefix>_<tenant>) | [[SeedGrid/Extensions/subdomain-tenancy/Configuracao\|subdomain-tenancy/Configuracao]] |
484
484
  | `seedgrid.subdomain-tenancy.tenant.datasource.jdbc.url-pattern` | Datasource dos tenants (pool, cache e limite) | `Optional<String>` | `—` | runtime | Se não-vazia, usada como está (Javadoc: compatibilidade/legado) | [[SeedGrid/Extensions/subdomain-tenancy/Configuracao\|subdomain-tenancy/Configuracao]] |
485
485
  | `seedgrid.subdomain-tenancy.tenant.datasource.username` | Datasource dos tenants (pool, cache e limite) | `Optional<String>` | `—` no MPC; fallback `postgres` no código | runtime | Usuário de todos os bancos de tenant; também usado como OWNER no CREATE DATABASE (provisionamento) | [[SeedGrid/Extensions/subdomain-tenancy/Configuracao\|subdomain-tenancy/Configuracao]] |
@@ -61,4 +61,4 @@ Contagens de propriedades por extension e plataforma: [[SeedGrid/Extensions/Cata
61
61
 
62
62
  ## Não documentados como extension
63
63
 
64
- `seedgrid-parent` (POM pai), `seedgrid-cli`, `seedgrid-components-mcp`, `seedgrid-test-multitenancy` e `java/examples/*`: ver [[SeedGrid/Mapa-dos-repositorios|Mapa dos repositórios]].
64
+ `seedgrid-parent` (POM pai), `seedgrid-cli`, `seedgrid-components-mcp` e `java/examples/*`: ver [[SeedGrid/Mapa-dos-repositorios|Mapa dos repositórios]].
@@ -60,7 +60,7 @@ Visão geral: [[SeedGrid/Extensions/subdomain-tenancy/Visao-geral|Visão geral d
60
60
  | `seedgrid.subdomain-tenancy.master.entity-packages` | `Optional<String>` | pacotes Java (CSV) | MPC: vazio (env `SEEDGRID_SUBDOMAIN_TENANCY_MASTER_ENTITY_PACKAGES`) | Não | Prefixada em `quarkus.hibernate-orm.master.packages=${…master.entity-packages},br.com.seedgrid.subdomaintenancy.entities,br.com.seedgrid.billing.entities,br.com.seedgrid.security.entities` | PU `master` | Se o host redefinir `quarkus.hibernate-orm.master.packages` (como o exemplo), esta chave só vale se ele a reutilizar | build (via expansão — Inferência) | Decl.: `SubdomainTenancyBridgeConfig.Master#entityPackages()`, `MPC` |
61
61
  | `seedgrid.subdomain-tenancy.master.migrations.location.additional` | `Optional<String>` (CSV) | locations Flyway, ex. `classpath:db/migration/master-extra` | MPC: vazio | Não | Anexadas à base `classpath:db/migration/master` no mesmo history `flyway_schema_history_master`; versões precisam ser distintas da base | `Migrations#migrateMasterSchema` (startup) | Mesmo history → colisão de versão falha o Flyway | runtime | Decl.: `SubdomainTenancyBridgeConfig.Migrations#locationAdditional()` (`@WithName("location.additional")`), `SubdomainTenancyConfig#masterMigrationsLocationAdditional`, `MPC`. Consumo: `RT/flyway/Migrations` (construtor) |
62
62
  | `database.master.subdomain` | `Optional<String>` | texto | MPC: `${PRODUCT_PREFIX:app}` | Não | Nenhum código da extension a lê (`DatabaseMasterConfig` não é injetado); é um valor auxiliar publicado para o host referenciar em expressões | Expressões `${database.master.subdomain}` no host | Lê a env `PRODUCT_PREFIX`; base de `database.master.name` | runtime | Decl.: `RT/configs/DatabaseMasterConfig#subdomain()`, `MPC` |
63
- | `database.master.name` | `Optional<String>` | texto | MPC: `${database.master.subdomain}_master` | Não | Valor auxiliar para expressões do host; ex. real em `java/seedgrid-test-multitenancy/src/main/resources/application.properties`: `…master.datasource.jdbc.url=${SEEDGRID_SUBDOMAIN_TENANCY_MASTER_DB_URL:jdbc:postgresql://localhost:5439/${database.master.name}}` | Expressões do host | `database.master.subdomain` | runtime | Decl.: `RT/configs/DatabaseMasterConfig#name()`, `MPC` |
63
+ | `database.master.name` | `Optional<String>` | texto | MPC: `${database.master.subdomain}_master` | Não | Valor auxiliar para expressões do host; ex.: `…master.datasource.jdbc.url=${SEEDGRID_SUBDOMAIN_TENANCY_MASTER_DB_URL:jdbc:postgresql://localhost:5439/${database.master.name}}` | Expressões do host | `database.master.subdomain` | runtime | Decl.: `RT/configs/DatabaseMasterConfig#name()`, `MPC` |
64
64
 
65
65
  ### 2.3 Datasource dos tenants (pool, cache e limite)
66
66
 
@@ -10,7 +10,7 @@ analisado-em: 2026-10-14
10
10
 
11
11
  Visão geral: [[SeedGrid/Extensions/subdomain-tenancy/Visao-geral|Visão geral do subdomain-tenancy]] · Catálogo de propriedades: [[SeedGrid/Extensions/subdomain-tenancy/Configuracao|Configuração do subdomain-tenancy]] · [[SeedGrid/Extensions/subdomain-tenancy/Rust|Porte Rust]]
12
12
 
13
- Fontes: app de exemplo `java/examples/seedgrid-subdomain-tenancy-example` (repositório git próprio, commit `cd83edd` — fora da tabela de commits da análise), `README.md` da extension e o código do runtime (commit `fe62530a29`). Outro consumidor no monorepo: `java/seedgrid-test-multitenancy`.
13
+ Fontes: app de exemplo `java/examples/seedgrid-subdomain-tenancy-example` (repositório git próprio, commit `cd83edd` — fora da tabela de commits da análise), `README.md` da extension e o código do runtime (commit `fe62530a29`).
14
14
 
15
15
  ## 1. Dependência
16
16
 
@@ -36,7 +36,6 @@ Estado na análise (2026-10-14): todos na branch `main` e **sem alterações loc
36
36
  | `seedgrid-quarkus-lib-commons` | Library | 2026.10.08 | `fa49c344db` | 2026-10-08 | [[SeedGrid/Extensions/commons/Visao-geral\|commons]] |
37
37
  | `seedgrid-quarkus-lib-filemanagement` | Library | 2026.07.08 | `35c89c7cf7` | 2026-07-20 | [[SeedGrid/Extensions/filemanagement/Visao-geral\|filemanagement]] |
38
38
  | `seedgrid-quarkus-lib-privacy` | Library | 2026.07.27 | `79f8b03eeb` | 2026-09-25 | [[SeedGrid/Extensions/privacy/Visao-geral\|privacy]] |
39
- | `seedgrid-test-multitenancy` | App Quarkus de teste/integração | — | `21c70b4254` | 2026-10-13 | não documentado em detalhe |
40
39
  | `seedgrid-cli` | CLI em **Rust** (apesar de estar em `java/`) que gera apps Next.js com módulos `@seedgrid/fe-*` | — | `d3184afc84` | 2026-07-20 | não documentado em detalhe |
41
40
  | `seedgrid-components-mcp` | Servidor MCP (TypeScript) que expõe o catálogo de componentes | — | `69fe6a1cf8` | 2026-09-17 | não documentado em detalhe |
42
41
  | `examples/*` (12 apps) | Apps de exemplo, cada um com `.git` próprio | — | não registrados | — | usados como fonte de exemplos |
@@ -5,6 +5,8 @@ description: "Onde salvar os documentos que a IA gera (planos, handoff, decisõe
5
5
 
6
6
  Todo documento de trabalho que a IA produzir (plano, handoff, decisão, especificação, relatório, análise, anotações de sessão) é salvo em **`docs/ai/<tipo>/`** do projeto: uma pasta fixa, visível e **versionada**. Nunca na raiz do projeto, em outra pasta de `docs/` nem dentro de `.ai/`, que o toolkit gerencia e reescreve no `update`.
7
7
 
8
+ **Exceção — modo de trabalho avisado no `AGENTS.md`:** se o bloco do `AGENTS.md` trouxer um aviso de modo (por exemplo `MODO PLATAFORMA`, do `seedgrid-ai-plt`) que define outro lugar para planos, handoffs, relatórios e ADR, siga o aviso; o que está abaixo vale para projeto host.
9
+
8
10
  **Não crie arquivo `.md` fora de `docs/ai/`**, exceto o que o pedido nomeou (por exemplo um README) e os documentos permanentes do próprio projeto. Rascunho e saída de comando não são documentos: não os grave no projeto.
9
11
 
10
12
  ## Pastas por tipo
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 2,
3
- "contentVersion": "0.4.1",
3
+ "contentVersion": "0.4.3",
4
4
  "toolkitBase": "SeedGrid/Toolkit",
5
5
  "components": [
6
6
  {