greprag 0.9.1 → 0.11.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/dist/commands/inbox-watch.d.ts +6 -0
- package/dist/commands/inbox-watch.js +12 -1
- package/dist/commands/inbox-watch.js.map +1 -1
- package/dist/commands/init.js +51 -10
- package/dist/commands/init.js.map +1 -1
- package/dist/hook.js +37 -10
- package/dist/hook.js.map +1 -1
- package/dist/index.js +90 -25
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/skill/content-advisor/SKILL.md +65 -0
- package/skill/content-advisor/docs/data-sources.md +51 -0
- package/skill/content-advisor/docs/decision-rules.md +114 -0
- package/skill/content-advisor/docs/episodic-memory-queries.md +116 -0
- package/skill/content-advisor/docs/handoff-contract.md +91 -0
- package/skill/content-advisor/docs/output-format.md +89 -0
- package/skill/content-advisor/docs/setup.md +125 -0
- package/skill/content-advisor/docs/writing-activity.md +89 -0
- package/skill/{SKILL.md → greprag/SKILL.md} +242 -15
- package/skill/templates/agent-coordination.md +253 -0
package/dist/index.js
CHANGED
|
@@ -300,8 +300,46 @@ function parseFileFlag(raw) {
|
|
|
300
300
|
}
|
|
301
301
|
return { path: raw };
|
|
302
302
|
}
|
|
303
|
-
/**
|
|
304
|
-
*
|
|
303
|
+
/** Disambiguation: a UUID v4 (36 chars with dashes) or its 8-hex short form
|
|
304
|
+
* is a session id; anything else is a project name. Project names that
|
|
305
|
+
* look like UUIDs are rejected at registration time so this is unambiguous.
|
|
306
|
+
* adr: adr/session-id-awareness.md, adr/address-grammar.md */
|
|
307
|
+
const SESSION_ID_PATTERN = /^([0-9a-f]{8}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$/i;
|
|
308
|
+
/** Parse a send address under the v0.11 grammar:
|
|
309
|
+
* <handle>@greprag.com/<target>
|
|
310
|
+
* where <target> is exactly one segment — a session UUID (or 8-hex short
|
|
311
|
+
* form) for a session-targeted send, or a project name for a project
|
|
312
|
+
* broadcast. The bare form <handle>@greprag.com is identity-only and
|
|
313
|
+
* cannot be sent to — recipients share it as their contact form, senders
|
|
314
|
+
* must supply a target.
|
|
315
|
+
*
|
|
316
|
+
* Returns a discriminated result so the caller can print the helpful
|
|
317
|
+
* migration hint on failure. */
|
|
318
|
+
function parseSendAddress(addr) {
|
|
319
|
+
const segments = addr.split('/');
|
|
320
|
+
if (segments.length === 1) {
|
|
321
|
+
return { ok: false, error: `address "${addr}" has no target — the bare handle form is receive-only.\n` +
|
|
322
|
+
` Add /<session-uuid> for the normal session-to-session send, or\n` +
|
|
323
|
+
` add /<project-name> for an intentional project-wide broadcast.` };
|
|
324
|
+
}
|
|
325
|
+
if (segments.length > 2) {
|
|
326
|
+
return { ok: false, error: `address "${addr}" has too many segments. The v0.11 grammar is\n` +
|
|
327
|
+
` <handle>@greprag.com/<target>\n` +
|
|
328
|
+
`where <target> is exactly one of: a session UUID OR a project name.\n` +
|
|
329
|
+
`Legacy <email>/<project>/<session> form is no longer accepted —\n` +
|
|
330
|
+
`pick the session you actually meant.` };
|
|
331
|
+
}
|
|
332
|
+
const [emailPart, target] = segments;
|
|
333
|
+
if (!emailPart.includes('@')) {
|
|
334
|
+
return { ok: false, error: `address "${addr}" missing @greprag.com handle.` };
|
|
335
|
+
}
|
|
336
|
+
if (!target) {
|
|
337
|
+
return { ok: false, error: `address "${addr}" has an empty target segment.` };
|
|
338
|
+
}
|
|
339
|
+
const kind = SESSION_ID_PATTERN.test(target) ? 'session' : 'project';
|
|
340
|
+
return { ok: true, targetKind: kind, target };
|
|
341
|
+
}
|
|
342
|
+
/** greprag send "body" --to <handle>@greprag.com/<target>
|
|
305
343
|
* [--from-session <id>] sender's own session — denormalized
|
|
306
344
|
* onto the message so the recipient can
|
|
307
345
|
* reply by session without re-discovery
|
|
@@ -309,6 +347,11 @@ function parseFileFlag(raw) {
|
|
|
309
347
|
* [--artifact <type:id>]+ (repeatable; e.g. commit:abc123, pr:#42)
|
|
310
348
|
* [--file <path[:lines]>]+ (repeatable; e.g. src/auth.ts:42)
|
|
311
349
|
* [--ref-json '<json>'] (escape hatch — full references object)
|
|
350
|
+
*
|
|
351
|
+
* <target> is exactly one segment — a session UUID (normal case) or a
|
|
352
|
+
* project name (intentional broadcast). The bare <handle>@greprag.com form
|
|
353
|
+
* is receive-only; sending to it errors. --session and --project flags
|
|
354
|
+
* were removed in v0.11 — the address carries the target.
|
|
312
355
|
*/
|
|
313
356
|
async function send(args) {
|
|
314
357
|
const cfg = getConfig();
|
|
@@ -318,14 +361,31 @@ async function send(args) {
|
|
|
318
361
|
}
|
|
319
362
|
const to = getFlag(args, '--to');
|
|
320
363
|
if (!to) {
|
|
321
|
-
console.error('Usage: greprag send "body" --to <
|
|
364
|
+
console.error('Usage: greprag send "body" --to <handle>@greprag.com/<target> [--from-session <id>] [--memory <uuid>] [--artifact <type:id>] [--file <path[:lines]>]\n <target>: session UUID (normal) or project name (broadcast).');
|
|
365
|
+
process.exit(1);
|
|
366
|
+
}
|
|
367
|
+
// Early validation — fail before the round-trip so the operator sees the
|
|
368
|
+
// hint immediately instead of after a 4xx from the server.
|
|
369
|
+
const parsed = parseSendAddress(to);
|
|
370
|
+
if (!parsed.ok) {
|
|
371
|
+
console.error(parsed.error);
|
|
322
372
|
process.exit(1);
|
|
323
373
|
}
|
|
374
|
+
// Reject the dropped flags loudly so legacy scripts surface the change
|
|
375
|
+
// instead of silently sending without a target.
|
|
376
|
+
for (const dropped of ['--session', '--project']) {
|
|
377
|
+
if (args.includes(dropped)) {
|
|
378
|
+
console.error(`${dropped} was removed in v0.11. The address itself now carries the target —\n` +
|
|
379
|
+
` for session: --to <handle>@greprag.com/<session-uuid>\n` +
|
|
380
|
+
` for project broadcast: --to <handle>@greprag.com/<project-name>`);
|
|
381
|
+
process.exit(1);
|
|
382
|
+
}
|
|
383
|
+
}
|
|
324
384
|
// Find the body — first positional arg that isn't a flag value. We need to
|
|
325
385
|
// skip both the flag itself and the value of any preceding flag.
|
|
326
386
|
const flagsTakingValue = new Set([
|
|
327
387
|
'--to', '--memory', '--artifact', '--file', '--ref-json',
|
|
328
|
-
'--
|
|
388
|
+
'--from-session',
|
|
329
389
|
]);
|
|
330
390
|
let body;
|
|
331
391
|
for (let i = 0; i < args.length; i++) {
|
|
@@ -337,7 +397,7 @@ async function send(args) {
|
|
|
337
397
|
break;
|
|
338
398
|
}
|
|
339
399
|
if (!body) {
|
|
340
|
-
console.error('Usage: greprag send "body" --to <
|
|
400
|
+
console.error('Usage: greprag send "body" --to <handle>@greprag.com/<target> ...');
|
|
341
401
|
process.exit(1);
|
|
342
402
|
}
|
|
343
403
|
// Build references from flags (or take the explicit --ref-json if provided).
|
|
@@ -371,22 +431,22 @@ async function send(args) {
|
|
|
371
431
|
const payload = { to, body };
|
|
372
432
|
if (references)
|
|
373
433
|
payload.references = references;
|
|
374
|
-
const sessionId = getFlag(args, '--session');
|
|
375
|
-
if (sessionId)
|
|
376
|
-
payload.session_id = sessionId;
|
|
377
434
|
const fromSessionId = getFlag(args, '--from-session');
|
|
378
435
|
if (fromSessionId)
|
|
379
436
|
payload.from_session_id = fromSessionId;
|
|
380
437
|
const result = await apiCall(`${cfg.apiUrl}/v1/inbox/send`, cfg.apiKey, payload);
|
|
381
438
|
const delivered = result.delivered_to;
|
|
382
|
-
//
|
|
383
|
-
|
|
384
|
-
const sessionSuffix = deliveredSessionShort ? '/' + deliveredSessionShort : '';
|
|
385
|
-
// Always show @greprag.com handle (numeric or alias) — never the real email.
|
|
386
|
-
// adr: adr/numeric-handles.md
|
|
439
|
+
// Render the delivered-to in the v0.11 single-segment grammar.
|
|
440
|
+
// adr: adr/numeric-handles.md, adr/address-grammar.md
|
|
387
441
|
const base = delivered.handle || `${delivered.tenant}@greprag.com`;
|
|
388
|
-
|
|
389
|
-
|
|
442
|
+
// Session takes precedence over project as the displayed segment — when
|
|
443
|
+
// both happened (rare: session-targeted send to a session that lives
|
|
444
|
+
// inside a project), the session is what the recipient watcher saw.
|
|
445
|
+
const deliveredSessionShort = (0, session_id_1.truncateSessionId)(delivered.session_id ?? null);
|
|
446
|
+
const targetSegment = deliveredSessionShort
|
|
447
|
+
? '/' + deliveredSessionShort
|
|
448
|
+
: (delivered.project ? '/' + delivered.project : '');
|
|
449
|
+
console.log(`Sent to ${base}${targetSegment} (${result.id.slice(0, 8)})`);
|
|
390
450
|
const retractCode = result.retract_code;
|
|
391
451
|
if (retractCode)
|
|
392
452
|
console.log(`Retract: greprag retract ${retractCode}`);
|
|
@@ -426,6 +486,9 @@ Inbox (email-style messaging across tenants):
|
|
|
426
486
|
--session filters to messages targeting this session
|
|
427
487
|
(plus untargeted broadcasts).
|
|
428
488
|
inbox watch Long-lived SSE stream — prints each message as it lands.
|
|
489
|
+
Wrap in a bash while-loop so the watcher restarts
|
|
490
|
+
if the SSE process dies. The CLI itself has no
|
|
491
|
+
in-process supervisor.
|
|
429
492
|
[--project <name>] Filter to one project inbox (default: tenant-wide).
|
|
430
493
|
[--session <id>] Filter to messages targeting this session
|
|
431
494
|
(plus untargeted broadcasts).
|
|
@@ -434,8 +497,7 @@ Inbox (email-style messaging across tenants):
|
|
|
434
497
|
inbox keep <id> Extend a read message's TTL (default delete after 14 days)
|
|
435
498
|
inbox delete <id> Permanently delete a message
|
|
436
499
|
send "body" --to <addr> Send a message. Body is markdown.
|
|
437
|
-
|
|
438
|
-
Equivalent to suffixing the address with /<id>.
|
|
500
|
+
<addr> must include a target segment — see Addresses below.
|
|
439
501
|
--from-session <id> Sender's session — denormalized so the recipient can
|
|
440
502
|
reply by session without re-discovery.
|
|
441
503
|
--memory <uuid> (repeatable) back-pointer to a memory row
|
|
@@ -446,10 +508,12 @@ Inbox (email-style messaging across tenants):
|
|
|
446
508
|
Unread → hard delete. Read → body replaced with a retracted notice.
|
|
447
509
|
Idempotent: double-retract is a no-op.
|
|
448
510
|
|
|
449
|
-
Addresses:
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
511
|
+
Addresses (v0.11+):
|
|
512
|
+
Share: <handle>@greprag.com identity-only, receive form
|
|
513
|
+
Send: <handle>@greprag.com/<session-uuid> session-to-session (normal)
|
|
514
|
+
<handle>@greprag.com/<project-name> project broadcast (rare, intentional)
|
|
515
|
+
The bare share form cannot be sent to — operators must pick a target.
|
|
516
|
+
--session and --project flags were removed; the address carries the target.
|
|
453
517
|
|
|
454
518
|
Project facts (self-organizing learnings — seed knowledge for future chips):
|
|
455
519
|
fact add "<text>" --scope <S> [--project <name>] [--source-session <id>]
|
|
@@ -483,10 +547,11 @@ Examples:
|
|
|
483
547
|
greprag init # standard repo setup
|
|
484
548
|
greprag init --global # Cowork / unanchored sessions
|
|
485
549
|
greprag inbox
|
|
486
|
-
greprag send "
|
|
487
|
-
|
|
488
|
-
greprag send "
|
|
489
|
-
|
|
550
|
+
greprag send "done with migration" --to alice@greprag.com/abc12345
|
|
551
|
+
# session-targeted (normal)
|
|
552
|
+
greprag send "deploy approved" --to alice@greprag.com/paybot
|
|
553
|
+
# project broadcast (rare)
|
|
554
|
+
greprag send "Bug in auth flow — repro at line 42" --to alice@greprag.com/abc12345 \
|
|
490
555
|
--file src/auth.ts:42 --artifact commit:abc123
|
|
491
556
|
`.trim();
|
|
492
557
|
async function main() {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AACA;;;;;;4CAM4C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE5C,2CAA6B;AAC7B,uCAAyB;AAEzB,0CAA0C;AAC1C,8CAA8C;AAC9C,8CAA8C;AAC9C,8CAA8C;AAC9C,kDAAkD;AAClD,0CAA0C;AAC1C,kDAAkD;AAClD,4DAA4E;AAC5E,wDAAuD;AACvD,qDAA8C;AAC9C,6CAAiD;AAEjD,6EAA6E;AAE7E,MAAM,eAAe,GAAG,yBAAyB,CAAC;AAElD,SAAS,WAAW,CAAC,QAAgB;IACnC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACnD,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACvC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAS;YAClD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,KAAK,GAAG,CAAC;gBAAE,SAAS;YACxB,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;YAC3C,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAC9C,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACnD,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7B,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,4BAA4B;IAC9B,CAAC;AACH,CAAC;AAED,SAAS,SAAS;IAChB,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC;IAClE,IAAI,OAAO;QAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;IACjE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe;QAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;AAClF,CAAC;AAED,SAAS,SAAS;IAChB,SAAS,EAAE,CAAC;IACZ,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,eAAe;QACtD,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE;KAC1C,CAAC;AACJ,CAAC;AAED,6EAA6E;AAE7E,KAAK,UAAU,OAAO,CACpB,GAAW,EAAE,MAAc,EAAE,IAA6B;IAE1D,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAC3B,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,eAAe,EAAE,UAAU,MAAM,EAAE;YACnC,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;KAC3B,CAAC,CAAC;IAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,OAAO,GAAG,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,EAAsC,CAAC;AACxD,CAAC;AAED,KAAK,UAAU,MAAM,CACnB,GAAW,EAAE,MAAc;IAE3B,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAC3B,OAAO,EAAE,EAAE,eAAe,EAAE,UAAU,MAAM,EAAE,EAAE;KACjD,CAAC,CAAC;IAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,OAAO,GAAG,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,EAAsC,CAAC;AACxD,CAAC;AAED,6EAA6E;AAE7E,KAAK,UAAU,MAAM,CAAC,IAAc;IAClC,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;IACxB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QAAC,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;IAEzF,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;IACpD,IAAI,CAAC,OAAO,EAAE,CAAC;QAAC,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;IAEvF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,qBAAqB,OAAO,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAErF,MAAM,KAAK,GAAG,MAAM,CAAC,KAA8F,CAAC;IACpH,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAqF,CAAC;IAC9G,MAAM,QAAQ,GAAG,MAAM,CAAC,QAA4F,CAAC;IACrH,MAAM,MAAM,GAAG,MAAM,CAAC,MAAmF,CAAC;IAE1G,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,SAAS,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;IACxI,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;IAEpC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,aAAa,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC;QAC9C,KAAK,MAAM,CAAC,IAAI,QAAQ;YAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QAC/F,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,mBAAmB,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC;QACpD,KAAK,MAAM,CAAC,IAAI,QAAQ;YAAE,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QAC/F,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,kBAAkB,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;QACjD,KAAK,MAAM,CAAC,IAAI,MAAM;YAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IAC/F,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1E,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,GAAW,EAAE,MAAc;IAClD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAC3B,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,EAAE,eAAe,EAAE,UAAU,MAAM,EAAE,EAAE;KACjD,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,OAAO,GAAG,CAAC,MAAM,KAAK,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACvE,OAAO,GAAG,CAAC,IAAI,EAAsC,CAAC;AACxD,CAAC;AAED,iGAAiG;AACjG,KAAK,UAAU,KAAK,CAAC,IAAc;IACjC,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;IACxB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QAAC,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;IAEzF,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAEpB,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;QACpB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,IAAA,2BAAa,EAAC;YAClB,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC;YACtC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC;YACtC,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC;YAClC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;SACjC,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACnB,IAAI,CAAC,EAAE,EAAE,CAAC;YAAC,OAAO,CAAC,KAAK,CAAC,wBAAwB,GAAG,OAAO,CAAC,CAAC;YAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC;QAChF,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;YACnB,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,kBAAkB,EAAE,EAAE,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAC7E,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;QACrE,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,CAAC,GAAG,GAAG,CAAC,MAAM,aAAa,EAAE,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO;IACT,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IACrC,IAAI,UAAU;QAAE,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC7C,IAAI,SAAS;QAAE,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;IACnD,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC7B,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,MAAM,YAAY,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAC1D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAOrC,CAAC;IAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC;QACjE,OAAO;IACT,CAAC;IAED,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;IAC9D,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,GAAG,WAAW,8BAA8B,CAAC,CAAC;IAC5D,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,gBAAgB,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,cAAc,EAAE,CAAC;QACvD,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC;QACnE,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,IAAI,MAAM,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC;QACpE,gDAAgD;QAChD,mCAAmC;QACnC,MAAM,SAAS,GAAG,IAAA,8BAAiB,EAAC,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC;QACjE,MAAM,OAAO,GAAG,IAAA,8BAAiB,EAAC,GAAG,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC;QAC7D,IAAI,SAAS,IAAI,OAAO,EAAE,CAAC;YACzB,MAAM,YAAY,GAAa,EAAE,CAAC;YAClC,IAAI,SAAS;gBAAE,YAAY,CAAC,IAAI,CAAC,gBAAgB,SAAS,EAAE,CAAC,CAAC;YAC9D,IAAI,OAAO;gBAAE,YAAY,CAAC,IAAI,CAAC,cAAc,OAAO,EAAE,CAAC,CAAC;YACxD,OAAO,CAAC,GAAG,CAAC,OAAO,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACjD,CAAC;QACD,sEAAsE;QACtE,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QAClE,gFAAgF;QAChF,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC;QAC5B,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,MAAM,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;YACtF,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpB,IAAI,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;gBAC5B,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACxF,CAAC;YACD,IAAI,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;gBAC3B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;oBAC/B,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACrC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;gBACjD,CAAC;YACH,CAAC;YACD,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;gBACvB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBAC3B,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC3C,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,IAAI,GAAG,KAAK,EAAE,CAAC,CAAC;gBAChD,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AASD;0EAC0E;AAC1E,SAAS,QAAQ,CAAC,IAAc,EAAE,IAAY;IAC5C,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI;YAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,iFAAiF;AACjF,SAAS,iBAAiB,CAAC,GAAW;IACpC,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,QAAQ,IAAI,CAAC,IAAI,QAAQ,KAAK,GAAG,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9D,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC;AACvE,CAAC;AAED,oFAAoF;AACpF,SAAS,aAAa,CAAC,GAAW;IAChC,6EAA6E;IAC7E,0EAA0E;IAC1E,2BAA2B;IAC3B,MAAM,SAAS,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,SAAS,IAAI,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IACzC,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;IACtC,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACxD,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AACvB,CAAC;AAED;;;+DAG+D;AAC/D,MAAM,kBAAkB,GAAG,+EAA+E,CAAC;AAE3G;;;;;;;;;iCASiC;AACjC,SAAS,gBAAgB,CAAC,IAAY;IAGpC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EACvB,YAAY,IAAI,2DAA2D;gBAC3E,oEAAoE;gBACpE,kEAAkE,EAAE,CAAC;IACzE,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EACvB,YAAY,IAAI,iDAAiD;gBACjE,mCAAmC;gBACnC,uEAAuE;gBACvE,mEAAmE;gBACnE,sCAAsC,EAAE,CAAC;IAC7C,CAAC;IACD,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC;IACrC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,IAAI,gCAAgC,EAAE,CAAC;IAChF,CAAC;IACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,IAAI,gCAAgC,EAAE,CAAC;IAChF,CAAC;IACD,MAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IACrE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAChD,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,KAAK,UAAU,IAAI,CAAC,IAAc;IAChC,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;IACxB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QAAC,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;IAEzF,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,EAAE,CAAC;QAAC,OAAO,CAAC,KAAK,CAAC,sNAAsN,CAAC,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;IAEpQ,yEAAyE;IACzE,2DAA2D;IAC3D,MAAM,MAAM,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC;IACpC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,uEAAuE;IACvE,gDAAgD;IAChD,KAAK,MAAM,OAAO,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,CAAC;QACjD,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CACX,GAAG,OAAO,sEAAsE;gBAChF,2DAA2D;gBAC3D,mEAAmE,CACpE,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,2EAA2E;IAC3E,iEAAiE;IACjE,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC;QAC/B,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY;QACxD,gBAAgB;KACjB,CAAC,CAAC;IACH,IAAI,IAAwB,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,SAAS;QACvC,IAAI,CAAC,GAAG,CAAC,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,SAAS;QACzD,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACf,MAAM;IACR,CAAC;IACD,IAAI,CAAC,IAAI,EAAE,CAAC;QAAC,OAAO,CAAC,KAAK,CAAC,mEAAmE,CAAC,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;IAEnH,6EAA6E;IAC7E,IAAI,UAAuC,CAAC;IAC5C,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAC/C,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,CAAC;YACH,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,6BAA8B,CAAW,CAAC,OAAO,GAAG,CAAC,CAAC;YACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC7C,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;aAC3C,GAAG,CAAC,iBAAiB,CAAC;aACtB,MAAM,CAAC,CAAC,CAAC,EAAqC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;QAChE,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC1D,IAAI,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACzD,UAAU,GAAG,EAAE,CAAC;YAChB,IAAI,SAAS,CAAC,MAAM;gBAAE,UAAU,CAAC,UAAU,GAAG,SAAS,CAAC;YACxD,IAAI,SAAS,CAAC,MAAM;gBAAE,UAAU,CAAC,SAAS,GAAG,SAAS,CAAC;YACvD,IAAI,KAAK,CAAC,MAAM;gBAAE,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAA4B,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtD,IAAI,UAAU;QAAE,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC;IAChD,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IACtD,IAAI,aAAa;QAAE,OAAO,CAAC,eAAe,GAAG,aAAa,CAAC;IAE3D,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEjF,MAAM,SAAS,GAAG,MAAM,CAAC,YAExB,CAAC;IACF,+DAA+D;IAC/D,sDAAsD;IACtD,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,cAAc,CAAC;IACnE,wEAAwE;IACxE,qEAAqE;IACrE,oEAAoE;IACpE,MAAM,qBAAqB,GAAG,IAAA,8BAAiB,EAAC,SAAS,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC;IAC9E,MAAM,aAAa,GAAG,qBAAqB;QACzC,CAAC,CAAC,GAAG,GAAG,qBAAqB;QAC7B,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,aAAa,MAAO,MAAM,CAAC,EAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IACvF,MAAM,WAAW,GAAG,MAAM,CAAC,YAAkC,CAAC;IAC9D,IAAI,WAAW;QAAE,OAAO,CAAC,GAAG,CAAC,4BAA4B,WAAW,EAAE,CAAC,CAAC;AAC1E,CAAC;AAED,oEAAoE;AACpE,KAAK,UAAU,OAAO,CAAC,IAAc;IACnC,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;IACxB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QAAC,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;IAEzF,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IACjD,IAAI,CAAC,IAAI,EAAE,CAAC;QAAC,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;IAE/E,MAAM,MAAM,GAAG,MAAM,IAAA,2BAAW,EAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC;IACnF,OAAO,CAAC,GAAG,CAAC,IAAA,mCAAmB,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,6EAA6E;AAE7E,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsFZ,CAAC,IAAI,EAAE,CAAC;AAET,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAExB,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QAC/E,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE9B,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YAC1C,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;YAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YAC7C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACrC,MAAM,IAAA,cAAO,EAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5D,OAAO;QACT,CAAC;QACD,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,MAAM,MAAM,GAAG,IAAA,2BAAU,EAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO;QACT,CAAC;QACD,KAAK,QAAQ,CAAC,CAAG,OAAO,IAAA,kBAAS,EAAC,OAAO,CAAC,CAAC;QAC3C,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAChE,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAC9C,MAAM,IAAA,kBAAS,EAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;YAClC,OAAO;QACT,CAAC;QACD,KAAK,OAAO,CAAC,CAAI,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC;QACvC,KAAK,MAAM,CAAC,CAAK,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;QACtC,KAAK,SAAS,CAAC,CAAE,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC;QACzC,KAAK,QAAQ,CAAC,CAAG,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC;QACxC,KAAK,QAAQ,CAAC,CAAG,OAAO,IAAA,kBAAS,EAAC,OAAO,CAAC,CAAC;QAC3C,KAAK,UAAU,CAAC,CAAC,OAAO,IAAA,sBAAW,EAAC,OAAO,CAAC,CAAC;QAC7C,KAAK,MAAM,CAAC,CAAK,OAAO,IAAA,cAAO,EAAC,OAAO,CAAC,CAAC;QACzC,KAAK,UAAU,CAAC,CAAC,OAAO,IAAA,sBAAW,EAAC,OAAO,CAAC,CAAC;QAC7C,KAAK,QAAQ,CAAC,CAAG,OAAO,IAAA,sBAAW,EAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QAC9C;YACE,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,IAAI,CAAC,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CAAC,IAAc,EAAE,IAAY;IAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC3D,OAAO,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AACvB,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: content-advisor
|
|
3
|
+
version: 0.1.0
|
|
4
|
+
description: |
|
|
5
|
+
Cross-venture content strategist for a multi-venture portfolio. Reads
|
|
6
|
+
GrepRAG episodic memory (ship-events, dailies, weeklies) across every
|
|
7
|
+
paired project, cross-checks recent writing activity (OpenWriter drafts,
|
|
8
|
+
newsletter sends, X posts, blog commits), and produces a ranked list of
|
|
9
|
+
the next content pieces to ship — each one ready to hand off to a
|
|
10
|
+
channel-master writer (`/x-writer`, `/blog-writer`, `/newsletter-writer`).
|
|
11
|
+
|
|
12
|
+
Scope: content strategy only. Does NOT compose prose. The handoff brief
|
|
13
|
+
follows the contract in `C:/openwriter/skills/WRITER-CONVENTION.md` — the
|
|
14
|
+
writer masters execute. Revenue strategy lives in the sibling
|
|
15
|
+
`business-advisor` skill; orchestrator meta-coordination lives at
|
|
16
|
+
`C:/orchestrator/CLAUDE.md`.
|
|
17
|
+
|
|
18
|
+
Use when: "/content-advisor", "what should I write", "what's the next
|
|
19
|
+
post", "content check-in", "what content am I behind on", "queue up the
|
|
20
|
+
next thread/post/newsletter".
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
# Content Advisor
|
|
24
|
+
|
|
25
|
+
Input: nothing. Output: ranked content opportunity list + handoff commands. The advisor reads activity, applies decision rules, presents — the user picks one and invokes the writer.
|
|
26
|
+
|
|
27
|
+
All paths below are relative to the **portfolio root** (defaults to `C:/orchestrator`). Resolution: `CONTENT_ADVISOR_ROOT` env, `~/.claude/content-advisor.json`, cwd marker scan. See `docs/setup.md`.
|
|
28
|
+
|
|
29
|
+
## Protocol
|
|
30
|
+
|
|
31
|
+
0. **Verify setup.** Portfolio root resolved, `GREPRAG_API_KEY` present, `greprag discover` returns ≥1 project, the three writer skills (`x-writer`, `blog-writer`, `newsletter-writer`) exist on disk. Else enter setup per `docs/setup.md`.
|
|
32
|
+
|
|
33
|
+
1. **Read state.** `docs/ventures.md`, `docs/strategy/focus.md`, per-venture `docs/<venture>.md` if present. Note tier per venture, cadence config if a venture overrides defaults.
|
|
34
|
+
|
|
35
|
+
2. **Pull data.** Two parallel streams:
|
|
36
|
+
- **Episodic memory** — fan out greprag queries per `docs/episodic-memory-queries.md`. One project at a time, three shapes per project (ship-event 30d, daily 14d, weekly 4w). Aggregate into `{ venture, ships[], dailies[], weeklies[] }`.
|
|
37
|
+
- **Writing activity** — per `docs/writing-activity.md`. OpenWriter `list_documents`, newsletter analytics, X recent posts, blog git history. Aggregate per venture per channel.
|
|
38
|
+
|
|
39
|
+
3. **Apply decision rules** per `docs/decision-rules.md`:
|
|
40
|
+
- Source-farmer: every un-content'd ship-event = opportunity
|
|
41
|
+
- Cadence floor: silent channel past its floor = recombination opportunity
|
|
42
|
+
- Tier prioritization: tier S/A outrank tier B/C
|
|
43
|
+
- Anti-duplication: if topic already shipped on channel X, propose cross-format on channel Y
|
|
44
|
+
|
|
45
|
+
4. **Produce triaged list** per `docs/output-format.md`. Top-line: the single highest-value next piece. Then ranked list ≤10. Clean split between "act now" and "consider later."
|
|
46
|
+
|
|
47
|
+
5. **Present to user.** Plain-English summary + ranked list. Each item carries the exact slash-command to hand off. User picks one (or none); advisor exits. **Do not auto-invoke the writer in v1** — list-only handoff per `docs/handoff-contract.md`.
|
|
48
|
+
|
|
49
|
+
## Firm rules
|
|
50
|
+
|
|
51
|
+
- **Don't write content.** Ever. If the advisor catches itself drafting copy, stop and convert to a brief. The boundary is sacred.
|
|
52
|
+
- **One project per greprag call.** The endpoint can return all projects in one call but cross-venture aggregation needs per-project grouping anyway; explicit fan-out is clearer and matches greprag's discover-then-query pattern.
|
|
53
|
+
- **Correct type values.** `daily`, `weekly`, `ship-event`, `turn`. NOT `episodic-daily` / `episodic-weekly` — those silently return zero rows.
|
|
54
|
+
- **Don't ask the user to pick which ventures to scan.** `greprag discover` returns the full list; aggregate everything, then rank by tier.
|
|
55
|
+
- **Skip auto-invocation.** v1 is list-only. The user reads the list, picks an item by number, runs the slash-command themselves.
|
|
56
|
+
|
|
57
|
+
## Sub-docs
|
|
58
|
+
|
|
59
|
+
- `docs/setup.md` — portfolio root resolution, greprag check, writer-skill verification, config file
|
|
60
|
+
- `docs/data-sources.md` — what's read, refresh policy, failure modes
|
|
61
|
+
- `docs/episodic-memory-queries.md` — **load-bearing** — exact greprag queries, time windows, aggregation, fallback
|
|
62
|
+
- `docs/writing-activity.md` — OpenWriter list_documents, newsletter analytics, X recent posts, blog git history
|
|
63
|
+
- `docs/decision-rules.md` — source-farmer, cadence floor, tier prioritization, anti-duplication
|
|
64
|
+
- `docs/output-format.md` — ranked opportunity list shape
|
|
65
|
+
- `docs/handoff-contract.md` — input brief shape per WRITER-CONVENTION.md; v1 list-only handoff
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Data Sources
|
|
2
|
+
|
|
3
|
+
What the advisor reads on every run, where it lives, refresh policy, failure mode.
|
|
4
|
+
|
|
5
|
+
| Source | Where | Refresh | Failure mode |
|
|
6
|
+
|---|---|---|---|
|
|
7
|
+
| GrepRAG episodic memory | `https://api.greprag.com/v1/memory/by-period` via Bearer auth | Live per run | Per-project — skip + warn. Whole API down → abort. |
|
|
8
|
+
| Project list | `greprag discover --json` | Live per run | If empty → "no projects paired, run greprag init in your repos." |
|
|
9
|
+
| Venture index | `<portfolio_root>/docs/ventures.md` | On-disk read | If missing → tier-prioritization disabled, all opportunities flat-ranked. |
|
|
10
|
+
| Focus / tier | `<portfolio_root>/docs/strategy/focus.md` | On-disk read | If missing → tier-prioritization disabled, warn. |
|
|
11
|
+
| Per-venture notes | `<portfolio_root>/docs/<venture>.md` | On-disk read | Optional; advisor still runs without them. |
|
|
12
|
+
| OpenWriter docs | `mcp__openwriter__list_documents` + `list_workspaces` | Live per run | MCP down → no draft-anti-duplication, mark warnings. |
|
|
13
|
+
| Newsletter sends | `mcp__openwriter__list_newsletter_issues` + `get_newsletter_analytics` | Live per run | MCP down → assume no recent sends, surface warning. |
|
|
14
|
+
| X recent posts | `/x-strategy` cache or `mcp__x__*` if available; fallback: read user's recent tweets via fxtwitter | Live per run | If unavailable → cadence-floor rule for X disabled, warn. |
|
|
15
|
+
| Blog git history | `git log` against each venture's marketing-site repo (paths from project_to_venture map + ventures.md) | Live per run | If repo path unknown → skip blog-anti-duplication for that venture. |
|
|
16
|
+
| Writer skills | `~/.claude/skills/{x,blog,newsletter}-writer/SKILL.md` | Once per setup | If missing → setup forces install. |
|
|
17
|
+
| Config | `~/.claude/content-advisor.json` | Read every run | If missing → setup flow. |
|
|
18
|
+
|
|
19
|
+
## Refresh policy
|
|
20
|
+
|
|
21
|
+
Every run is a full refresh. No caching at the advisor layer — the underlying data sources (greprag, OpenWriter, git) are already fast and their own freshness is what we trust. Caching here would just create staleness bugs.
|
|
22
|
+
|
|
23
|
+
## Read order
|
|
24
|
+
|
|
25
|
+
Sequential where there's a dependency, parallel otherwise:
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
1. config + setup verification (sequential, blocks all)
|
|
29
|
+
2. greprag discover (sequential, drives fan-out)
|
|
30
|
+
3. PARALLEL:
|
|
31
|
+
- greprag memory fan-out (per project × 3 shapes)
|
|
32
|
+
- ventures.md / focus.md / per-venture notes
|
|
33
|
+
- OpenWriter list_documents
|
|
34
|
+
- newsletter list_issues
|
|
35
|
+
- X recent posts
|
|
36
|
+
- blog git log per venture
|
|
37
|
+
4. aggregate + apply decision-rules (sequential)
|
|
38
|
+
5. format + present (sequential)
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Auth + env
|
|
42
|
+
|
|
43
|
+
- `GREPRAG_API_KEY` — required, sourced from `~/.env` if not already exported. Setup flow handles missing key.
|
|
44
|
+
- OpenWriter MCP — required for draft-anti-duplication and newsletter-sends signal. Configured per-user; if not connected, advisor degrades.
|
|
45
|
+
- X — graceful degradation; treat as "no signal" rather than failing.
|
|
46
|
+
|
|
47
|
+
## What's NOT read
|
|
48
|
+
|
|
49
|
+
- Stripe / MRR — that's `business-advisor`'s job. Content-advisor doesn't reason about revenue directly; it inherits tier via `focus.md`.
|
|
50
|
+
- Discord activity — out of scope for v1 (no content channel there).
|
|
51
|
+
- Code search (grep across repos) — too noisy. Memory rows already crystallized the signal.
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
# Decision Rules
|
|
2
|
+
|
|
3
|
+
Five rules turn the raw memory + activity streams into a ranked opportunity list. They compose — one opportunity often triggers under multiple rules, which boosts its rank.
|
|
4
|
+
|
|
5
|
+
## Rule 1 — Source-farmer
|
|
6
|
+
|
|
7
|
+
> Every `ship-event` row without a corresponding piece of content in the same window is an opportunity.
|
|
8
|
+
|
|
9
|
+
**Mechanism:**
|
|
10
|
+
- For each `ship-event` in the 30d window:
|
|
11
|
+
- Pull its `content`, `artifactUrl`, `windowStart`, `projectName` → venture.
|
|
12
|
+
- Check the venture's activity map: did X, blog, or newsletter cover this in the days since the ship?
|
|
13
|
+
- "Covered" means a post/issue/draft whose inferred topic overlaps with the ship's content excerpt (substring or shared 3+ content-words; loose match).
|
|
14
|
+
- Un-covered ships → one opportunity per eligible channel for that venture (per `channels_per_venture` in config).
|
|
15
|
+
- Default channel preference for a fresh ship: X first (cheap, fast, signals to audience), then blog (durable), then newsletter (only if next-issue cadence is near).
|
|
16
|
+
|
|
17
|
+
**Why first:** ships are the highest-trust source material. The user actually did something. Writing about it has both narrative truth and discoverability value. This is the rule the user specifically called out as "most important."
|
|
18
|
+
|
|
19
|
+
## Rule 2 — Cadence floor
|
|
20
|
+
|
|
21
|
+
> Each channel has a default cadence. If a channel has been silent past its floor, surface a recombination opportunity even with no fresh material.
|
|
22
|
+
|
|
23
|
+
**Defaults (v1 hardcoded; per-venture override via config):**
|
|
24
|
+
|
|
25
|
+
| Channel | Floor |
|
|
26
|
+
|---|---|
|
|
27
|
+
| X | 1 day (silent >1d → opportunity) |
|
|
28
|
+
| Newsletter | 7 days (silent >7d → opportunity) |
|
|
29
|
+
| Blog | 14 days (silent >14d → opportunity) |
|
|
30
|
+
|
|
31
|
+
**Mechanism:**
|
|
32
|
+
- For each venture × channel pair in `channels_per_venture`:
|
|
33
|
+
- Read activity map → days since last post.
|
|
34
|
+
- If days > floor: emit an opportunity tagged "cadence-floor: recombine."
|
|
35
|
+
- Source material for a cadence-floor opportunity = the most recent un-content'd dailies for that venture, OR the freshest weekly's through-line. The writer ideates from there.
|
|
36
|
+
- Cadence-floor opportunities rank below source-farmer opportunities at the same tier (recombination is lower-energy than net-new).
|
|
37
|
+
|
|
38
|
+
**Personal / Meta_Trav** is a venture too (cadence floor applies even when no product venture has anything to ship).
|
|
39
|
+
|
|
40
|
+
## Rule 3 — Tier prioritization
|
|
41
|
+
|
|
42
|
+
> Tier S/A ventures' opportunities outrank tier B/C, regardless of rule that produced them.
|
|
43
|
+
|
|
44
|
+
**Mechanism:**
|
|
45
|
+
- Read `docs/strategy/focus.md`. Parse the tier table — venture → tier (Foundation / Tier 1 / Tier 2 / Tier 3 / backburner).
|
|
46
|
+
- Tier weight: Foundation = 4, Tier 1 = 3, Tier 2 = 2, Tier 3 = 1, backburner = 0 (excluded entirely).
|
|
47
|
+
- Final rank = `tier_weight × rule_score`, where rule_score is:
|
|
48
|
+
- Source-farmer: 3
|
|
49
|
+
- Cadence-floor on a channel with a fresh daily pattern: 2
|
|
50
|
+
- Cadence-floor pure (no fresh material, pure recombination): 1
|
|
51
|
+
- Ties broken by: most recent ship-event first, then alphabetical venture.
|
|
52
|
+
|
|
53
|
+
**Edge case:** if `focus.md` is missing, all ventures get tier weight 1 (flat). Surface a warning that prioritization is disabled.
|
|
54
|
+
|
|
55
|
+
## Rule 4 — Anti-duplication & cross-format
|
|
56
|
+
|
|
57
|
+
> If a topic was shipped recently on channel X, don't propose a duplicate; propose a cross-format on channel Y.
|
|
58
|
+
|
|
59
|
+
**Mechanism:**
|
|
60
|
+
- For each candidate opportunity:
|
|
61
|
+
- Compare its source-material topic (ship content, daily excerpt, weekly through-line) to the venture's activity map across ALL channels in the last 14d.
|
|
62
|
+
- If a match exists on channel X and the candidate's channel is X → suppress.
|
|
63
|
+
- If a match exists on channel X and the candidate's channel is Y → keep, but tag as "cross-format: <X> → <Y> rehash."
|
|
64
|
+
- Also check OpenWriter in-flight drafts. A draft on the topic = suppression regardless of channel (the user is already writing it).
|
|
65
|
+
|
|
66
|
+
**Cross-format laddering** (preferred direction): X thread → newsletter expansion → blog deep dive. A blog post on a topic doesn't trigger a thread proposal unless the original X coverage is missing. This avoids retreading.
|
|
67
|
+
|
|
68
|
+
## Rule 5 — Audience fit
|
|
69
|
+
|
|
70
|
+
> Each candidate opportunity is scored against the venture's ICP doc. Strong fit boosts; weak fit attenuates.
|
|
71
|
+
|
|
72
|
+
**Mechanism:**
|
|
73
|
+
- For each candidate opportunity, read the venture's ICP via the pointer in
|
|
74
|
+
`icp_per_venture[venture]` (set during setup Step 4.5). The pointer resolves
|
|
75
|
+
to either an OpenWriter doc (`openwriter:<docId>`) or a local file
|
|
76
|
+
(`file:<absolute-path>`).
|
|
77
|
+
- Compare the candidate's source material against two ICP fields:
|
|
78
|
+
- **Recognition shock** — does the material mirror the ICP's current state /
|
|
79
|
+
pain back to them in a way they'd recognize as their own?
|
|
80
|
+
- **Actionable this week** — does it give them something they can do this
|
|
81
|
+
week, not abstract framing?
|
|
82
|
+
- Score:
|
|
83
|
+
- Strong fit (both signals present): `audience_fit = 1.5`
|
|
84
|
+
- Default (one signal or ambiguous): `audience_fit = 1.0`
|
|
85
|
+
- Weak fit (neither signal, or material contradicts ICP failure-mode): `audience_fit = 0.5`
|
|
86
|
+
- Final rank from Rule 3 is multiplied by `audience_fit`.
|
|
87
|
+
- If `icp_per_venture[venture]` is missing or the pointer fails to resolve, default to `1.0` and surface a warning that audience fit is disabled for that venture.
|
|
88
|
+
|
|
89
|
+
**Why last:** the first four rules are mechanical (data-derived). Audience fit
|
|
90
|
+
needs the ICP doc as input. Without it, the rule is a no-op — so the advisor
|
|
91
|
+
still produces a usable list even when ICP setup was skipped.
|
|
92
|
+
|
|
93
|
+
## Composition
|
|
94
|
+
|
|
95
|
+
Each candidate opportunity object goes through all five rules in order:
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
candidate = { venture, channel, source_material, rule_triggered, rule_score }
|
|
99
|
+
→ rule 4 → drop if duplicate, tag if cross-format
|
|
100
|
+
→ rule 3 → multiply by tier_weight, drop if backburner
|
|
101
|
+
→ rule 5 → multiply by audience_fit (1.5 / 1.0 / 0.5)
|
|
102
|
+
→ final_rank = tier_weight × rule_score × audience_fit
|
|
103
|
+
sorted desc by final_rank, capped at 10
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
The output stage (`output-format.md`) renders this ranked list.
|
|
107
|
+
|
|
108
|
+
## Mechanical vs. judgment
|
|
109
|
+
|
|
110
|
+
All five rules are **mechanical** — derived from data and the ICP doc, no user confirm at rank time. The only judgment call is the user's pick at the end ("which one of these do I want to write?"). Advisor never writes to disk in v1 (beyond config and an optional session log if added later).
|
|
111
|
+
|
|
112
|
+
## v1 scope discipline
|
|
113
|
+
|
|
114
|
+
The rules are deliberately blunt. Future refinements (semantic topic matching, audience-resonance weighting from past post engagement, A/B angle suggestions) belong in later versions. The v1 goal is: produce a list the user looks at and says "yes, that's roughly the right next thing."
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
# Episodic Memory Queries — The Load-Bearing Doc
|
|
2
|
+
|
|
3
|
+
This is the heart of the advisor. Every content opportunity ultimately traces back to a memory row (or the conspicuous absence of one). Get this layer wrong and the rest of the skill ships noise.
|
|
4
|
+
|
|
5
|
+
## What we read and why
|
|
6
|
+
|
|
7
|
+
| Shape | Why it matters | Default window |
|
|
8
|
+
|---|---|---|
|
|
9
|
+
| **`ship-event`** | Highest-signal rows. Each is an explicit "we shipped X" moment — exactly the kind of thing the source-farmer rule wants to convert into content. Carries `artifactType`/`artifactId`/`artifactUrl` for direct linking. | **last 30d** — long enough to catch ships that still haven't been content'd; short enough that we're not raising stale news. |
|
|
10
|
+
| **`daily`** | The strategic context layer. Per-venture per-day summary of what the user did. Surfaces angles that aren't ship-events: decisions, lessons, recurring themes, customer interactions. | **last 14d** — two weeks is the recall window for "this happened recently enough to be timely." |
|
|
11
|
+
| **`weekly`** | The through-line. One row summarizes a whole week. Used to detect *patterns* (three dailies in a row touched topic Y → that's a theme worth a newsletter). | **last 4 weeks** |
|
|
12
|
+
| **`turn`** | Per-conversation-turn. Noisy. **Fallback only** — when a project hasn't crystallized a daily/weekly yet (new project, low activity, compaction lag). Surface a warning when used. | **last 7d** (fallback only) |
|
|
13
|
+
|
|
14
|
+
**Forbidden values:** `episodic-daily`, `episodic-weekly`. Those silently return zero rows. Earlier docs (including business-advisor's `greprag-query.md`) reference them — they are wrong. Use `daily` / `weekly`.
|
|
15
|
+
|
|
16
|
+
## The API
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
GET https://api.greprag.com/v1/memory/by-period
|
|
20
|
+
Authorization: Bearer ${GREPRAG_API_KEY}
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Required params: `projectId`, `from` (ISO), `to` (ISO), `type` (one of: `turn`, `hourly`, `daily`, `weekly`, `ship-event`). Optional: `limit` (default 100).
|
|
24
|
+
|
|
25
|
+
**One shape per call.** If we want ship-events + dailies + weeklies for a project, that's three calls.
|
|
26
|
+
|
|
27
|
+
Response (truncated):
|
|
28
|
+
```json
|
|
29
|
+
{
|
|
30
|
+
"ok": true,
|
|
31
|
+
"count": N,
|
|
32
|
+
"memories": [
|
|
33
|
+
{
|
|
34
|
+
"id": "<uuid>",
|
|
35
|
+
"projectId": "<uuid>",
|
|
36
|
+
"projectName": "openwriter",
|
|
37
|
+
"crystallization": "ship-event",
|
|
38
|
+
"content": "...",
|
|
39
|
+
"windowStart": "...",
|
|
40
|
+
"windowEnd": "...",
|
|
41
|
+
"artifactType": "git-commit",
|
|
42
|
+
"artifactId": "abc123",
|
|
43
|
+
"artifactUrl": "https://github.com/..."
|
|
44
|
+
}
|
|
45
|
+
]
|
|
46
|
+
}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Cross-venture aggregation algorithm
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
1. greprag discover --json
|
|
53
|
+
→ list of { id, name, anchor, row_counts, first_activity, last_activity }
|
|
54
|
+
→ filter: skip projects with last_activity > 60d old (dead)
|
|
55
|
+
→ skip projects whose row_counts show all zeros for daily/weekly/ship-event
|
|
56
|
+
2. For each remaining project:
|
|
57
|
+
→ fan out 3 parallel curls:
|
|
58
|
+
ship-event from=now-30d to=now+1d limit=100
|
|
59
|
+
daily from=now-14d to=now+1d limit=50
|
|
60
|
+
weekly from=now-28d to=now+1d limit=10
|
|
61
|
+
→ if daily count = 0 AND ship-event count = 0:
|
|
62
|
+
fallback: turn from=now-7d to=now+1d limit=200 (mark venture as "fallback turns")
|
|
63
|
+
3. Map projectName → venture via config `project_to_venture`
|
|
64
|
+
→ unknown projectName → ask user once, persist to config, continue
|
|
65
|
+
4. Aggregate per venture:
|
|
66
|
+
buckets[venture] = {
|
|
67
|
+
ships: [...], // dedup by id across multiple projects under one venture
|
|
68
|
+
dailies: [...],
|
|
69
|
+
weeklies: [...],
|
|
70
|
+
fallback_warning: bool
|
|
71
|
+
}
|
|
72
|
+
5. Hand buckets to decision-rules layer
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Window rationale
|
|
76
|
+
|
|
77
|
+
The 30/14/4 windows were chosen so each shape's row count stays under ~50 per project in normal use (cheap aggregation), while the windows nest cleanly: weekly subsumes dailies subsumes ship-events. A pattern surfaced by a weekly row should be traceable back through its constituent dailies and ships.
|
|
78
|
+
|
|
79
|
+
Per-venture overrides allowed via config (`cadence_overrides`) for ventures that ship faster (longer window = noise) or slower (longer window = needed to find anything).
|
|
80
|
+
|
|
81
|
+
## Failure modes (per project)
|
|
82
|
+
|
|
83
|
+
- **HTTP 401** → API key invalid or expired. Abort the whole pass, surface to user.
|
|
84
|
+
- **HTTP 404** → projectId not registered. Skip project, warn.
|
|
85
|
+
- **HTTP 5xx** → transient. Retry once with 2s backoff. Then skip and warn.
|
|
86
|
+
- **Network timeout (10s)** → skip and warn.
|
|
87
|
+
- **Empty memories array** → not a failure. Record as "silent" — feeds the cadence-floor rule.
|
|
88
|
+
|
|
89
|
+
Never abort the whole pass for one project's failure. The user wants the cross-portfolio view even if one project is broken.
|
|
90
|
+
|
|
91
|
+
## Memory row → opportunity (preview — full rules in `decision-rules.md`)
|
|
92
|
+
|
|
93
|
+
- **ship-event** with no matching content in the same window → source-farmer opportunity. Channel choice depends on `channels_per_venture` + cadence state.
|
|
94
|
+
- **daily** mentioning a recurring topic across 3+ days → pattern opportunity, prefer newsletter or blog (long-form synthesis).
|
|
95
|
+
- **weekly** summary stating a strategic shift → angle for a thought-piece, prefer blog or X article.
|
|
96
|
+
- **silence** (no rows in window past a channel's cadence floor) → recombination opportunity, surface even without new material.
|
|
97
|
+
|
|
98
|
+
## Sample one-shot for a project (Bash)
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
PROJECT_ID="<uuid from greprag discover>"
|
|
102
|
+
TO=$(node -e "console.log(new Date(Date.now()+86400000).toISOString().slice(0,10))")
|
|
103
|
+
FROM_SHIPS=$(node -e "console.log(new Date(Date.now()-30*86400000).toISOString().slice(0,10))")
|
|
104
|
+
FROM_DAILY=$(node -e "console.log(new Date(Date.now()-14*86400000).toISOString().slice(0,10))")
|
|
105
|
+
FROM_WEEKLY=$(node -e "console.log(new Date(Date.now()-28*86400000).toISOString().slice(0,10))")
|
|
106
|
+
|
|
107
|
+
for SHAPE_FROM in "ship-event:$FROM_SHIPS" "daily:$FROM_DAILY" "weekly:$FROM_WEEKLY"; do
|
|
108
|
+
TYPE="${SHAPE_FROM%%:*}"
|
|
109
|
+
FROM="${SHAPE_FROM##*:}"
|
|
110
|
+
curl -sf -H "Authorization: Bearer $GREPRAG_API_KEY" \
|
|
111
|
+
"https://api.greprag.com/v1/memory/by-period?projectId=$PROJECT_ID&from=$FROM&to=$TO&type=$TYPE&limit=100" \
|
|
112
|
+
> "/tmp/$TYPE-$PROJECT_ID.json"
|
|
113
|
+
done
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Fan out across projects in parallel via `xargs -P` or by running the curls in a Bash `&` group.
|