@memoring/cli 0.5.0 → 0.6.0
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/README.md +1 -1
- package/dist/commands/stage.js +39 -11
- package/dist/main.js +1 -1
- package/package.json +1 -1
- package/skills/memoring-cli/SKILL.md +1 -1
package/README.md
CHANGED
|
@@ -54,7 +54,7 @@ Os itens enviados nascem **PENDING_REVIEW** — nada entra nas suas listagens ne
|
|
|
54
54
|
| Command | Purpose |
|
|
55
55
|
| --- | --- |
|
|
56
56
|
| `memoring auth` | login / logout / status |
|
|
57
|
-
| `memoring stage` | schema (o contrato + seus limites por tipo) / caps (mostra/grava os limites — valem para o app e para os agentes) / create (envia o lote, `--file` ou stdin, `--replace` esvazia a caixa antes; `--max-*` vence a preferência por lote) |
|
|
57
|
+
| `memoring stage` | schema (o contrato + seus limites por tipo + as regras de qualidade e suas instruções custom — tudo que o agente deve seguir) / caps (mostra/grava os limites — valem para o app e para os agentes) / create (envia o lote, `--file` ou stdin, `--replace` esvazia a caixa antes; `--max-*` vence a preferência por lote) |
|
|
58
58
|
| `memoring inbox` | list / accept `<id>` / accept-all / discard `<id>` |
|
|
59
59
|
| `memoring update` | atualiza a CLI para a última versão (via npm) |
|
|
60
60
|
| `memoring skill` | imprime o guia completo da CLI para agentes de IA (o SKILL.md empacotado) |
|
package/dist/commands/stage.js
CHANGED
|
@@ -9,6 +9,21 @@ const LEGACY_TYPE_ALIASES = { NORMAL: 'NOTE' };
|
|
|
9
9
|
const MAX_ITEMS = 50;
|
|
10
10
|
const DEFAULT_SOURCE = 'Importação assistida (CLI)';
|
|
11
11
|
const UNLIMITED = -1;
|
|
12
|
+
/**
|
|
13
|
+
* GET /notes/import/agent-guidance, fail-open como o fetchStoredCaps: sem sessão/rede
|
|
14
|
+
* devolve null e o schema sai só com o contrato.
|
|
15
|
+
*/
|
|
16
|
+
async function fetchAgentGuidance() {
|
|
17
|
+
if (!hasSession()) {
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
try {
|
|
21
|
+
return (await apiFetch('/notes/import/agent-guidance'));
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
12
27
|
/** Rótulo de exibição de um teto: -1 → "à vontade". */
|
|
13
28
|
function capLabel(max) {
|
|
14
29
|
return max === UNLIMITED ? 'à vontade' : `até ${max}`;
|
|
@@ -206,18 +221,21 @@ export async function stageCommand(parsed) {
|
|
|
206
221
|
const [sub] = parsed._;
|
|
207
222
|
switch (sub) {
|
|
208
223
|
case 'schema': {
|
|
209
|
-
const caps = await fetchStoredCaps();
|
|
224
|
+
const [caps, guidance] = await Promise.all([fetchStoredCaps(), fetchAgentGuidance()]);
|
|
210
225
|
if (parsed.flags.json) {
|
|
211
|
-
printJson(
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
226
|
+
printJson({
|
|
227
|
+
...SCHEMA_JSON,
|
|
228
|
+
...(caps
|
|
229
|
+
? {
|
|
230
|
+
userCaps: {
|
|
231
|
+
maxNotes: caps.maxNotes,
|
|
232
|
+
maxFlashcards: caps.maxFlashcards,
|
|
233
|
+
maxOneShots: caps.maxOneShots,
|
|
234
|
+
},
|
|
235
|
+
}
|
|
236
|
+
: {}),
|
|
237
|
+
...(guidance ?? {}),
|
|
238
|
+
});
|
|
221
239
|
}
|
|
222
240
|
else {
|
|
223
241
|
process.stdout.write(SCHEMA_TEXT + '\n');
|
|
@@ -229,6 +247,16 @@ export async function stageCommand(parsed) {
|
|
|
229
247
|
else {
|
|
230
248
|
process.stdout.write(dim('\n(limites por tipo indisponíveis — faça `memoring auth login` ou verifique a conexão)\n'));
|
|
231
249
|
}
|
|
250
|
+
if (guidance) {
|
|
251
|
+
process.stdout.write('\nRegras de qualidade — SEMPRE aplicadas ao gerar (as mesmas que o app envia à LLM):\n' +
|
|
252
|
+
guidance.qualityRules.trim() +
|
|
253
|
+
'\n');
|
|
254
|
+
if (guidance.customInstructions) {
|
|
255
|
+
process.stdout.write('\nInstruções adicionais do usuário — também SEMPRE aplicadas:\n' +
|
|
256
|
+
guidance.customInstructions.trim() +
|
|
257
|
+
'\n');
|
|
258
|
+
}
|
|
259
|
+
}
|
|
232
260
|
}
|
|
233
261
|
return;
|
|
234
262
|
}
|
package/dist/main.js
CHANGED
|
@@ -8,7 +8,7 @@ import { updateCommand } from './commands/update.js';
|
|
|
8
8
|
import { skillCommand } from './commands/skill.js';
|
|
9
9
|
import { fail, parseArgs as parse } from './commands/shared.js';
|
|
10
10
|
import { newerVersionAvailable, scheduleUpdateCheck } from './update.js';
|
|
11
|
-
const VERSION = '0.
|
|
11
|
+
const VERSION = '0.6.0';
|
|
12
12
|
const HELP = `Memoring CLI — flashcards e notas por IA, direto do terminal.
|
|
13
13
|
|
|
14
14
|
Uso: memoring <comando> [subcomando] [flags]
|
package/package.json
CHANGED
|
@@ -31,7 +31,7 @@ Flags globais: `--json` (saída legível por máquina), `--no-color`, `--api-bas
|
|
|
31
31
|
## Fluxo padrão
|
|
32
32
|
|
|
33
33
|
1. **Entenda o pedido** — qual pasta/arquivo/material vira flashcards/notas e se o usuário pediu quantidades.
|
|
34
|
-
2. **Leia o contrato e
|
|
34
|
+
2. **Leia o contrato, os limites e as regras**: `memoring stage schema --json`. Além do contrato, a saída traz: `userCaps` — os limites por tipo DO USUÁRIO (`-1` = à vontade, `0` = não gerar o tipo, `N` = teto), respeite-os SEMPRE; `qualityRules` — as regras de qualidade INTEGRAIS (as mesmas que o app envia à LLM), aplique-as em TODOS os itens; `customInstructions` — instruções adicionais do usuário (quando não-nulas), também sempre aplicadas. Tudo isso vale mesmo sem pedido explícito no chat.
|
|
35
35
|
3. **Leia os materiais** e gere os itens no contrato, num arquivo JSON (array ou `{ "items": [...] }`).
|
|
36
36
|
4. **Envie**: `memoring stage create --file <arquivo> --json`. Se o lote for rejeitado por limite de tipo, ajuste o LOTE — não relaxe o limite do usuário.
|
|
37
37
|
5. **Avise o usuário**: quantos itens foram para a caixa de revisão e onde aceitar — no app em `/cards/inbox` ou `memoring inbox list` / `memoring inbox accept-all`.
|