@cgh567/agent 2.4.3 → 2.4.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. package/agents/business/talisman-ceo.md +183 -0
  2. package/agents/business/talisman-comms.md +257 -0
  3. package/agents/business/talisman-cto.md +153 -0
  4. package/agents/business/talisman-finance.md +246 -0
  5. package/agents/business/talisman-marketing.md +240 -0
  6. package/agents/business/talisman-sales.md +242 -0
  7. package/agents/business/talisman-support.md +236 -0
  8. package/bin/helios-rpc-wrapper.sh +4 -1
  9. package/bin/helios-rpc.js +19 -0
  10. package/daemon/adapters/helios-rpc-adapter.js +5 -12
  11. package/daemon/context-enrichment.js +27 -0
  12. package/daemon/helios-api.js +310 -58
  13. package/daemon/helios-company-daemon.js +179 -53
  14. package/daemon/lib/blast-radius-analyzer.js +75 -0
  15. package/daemon/lib/domain-bootstrap-orchestrator.js +267 -0
  16. package/daemon/lib/forensic-log.js +113 -0
  17. package/daemon/lib/goal-research-pipeline.js +644 -0
  18. package/daemon/lib/harada/cascade-judge.js +84 -1
  19. package/daemon/lib/harada/cascade-research-dispatcher.js +282 -0
  20. package/daemon/lib/harada/pillar-dispatcher.js +23 -2
  21. package/daemon/lib/hbo-bridge.js +73 -5
  22. package/daemon/lib/headroom-middleware.js +129 -0
  23. package/daemon/lib/headroom-proxy-manager.js +319 -0
  24. package/daemon/lib/intelligence/department-page-generator.js +46 -1
  25. package/daemon/lib/interpretation-engine.js +92 -0
  26. package/daemon/lib/mental-model-cache.js +96 -0
  27. package/daemon/lib/project-factory.js +47 -0
  28. package/daemon/lib/session-log-reader.js +93 -0
  29. package/daemon/lib/standard-work-bootstrap.js +87 -1
  30. package/daemon/lib/task-completion-processor.js +12 -0
  31. package/daemon/package.json +2 -1
  32. package/daemon/routes/agents.js +51 -6
  33. package/daemon/routes/channels.js +116 -2
  34. package/daemon/routes/crm.js +85 -0
  35. package/daemon/routes/dashboard.js +62 -16
  36. package/daemon/routes/dept.js +10 -1
  37. package/daemon/routes/email-triage.js +19 -10
  38. package/daemon/routes/hbo.js +367 -13
  39. package/daemon/routes/hed.js +133 -0
  40. package/daemon/routes/inbox.js +466 -10
  41. package/daemon/routes/project.js +392 -9
  42. package/daemon/schema-definitions.js +10 -0
  43. package/daemon/schema-migrations-hbo.js +10 -0
  44. package/daemon/schema-migrations-proj.js +22 -0
  45. package/extensions/__tests__/codebase-index.test.ts +73 -0
  46. package/extensions/__tests__/extension-command-registration.test.ts +35 -0
  47. package/extensions/__tests__/git-push-guard.test.ts +68 -0
  48. package/extensions/context-compaction.ts +104 -76
  49. package/extensions/cortex/__tests__/cortex-core.test.ts +100 -0
  50. package/extensions/email/actions/draft-response.ts +21 -1
  51. package/extensions/email/auth/accounts.ts +5 -11
  52. package/extensions/email/auth/inbox-dog.ts +5 -2
  53. package/extensions/email/backfill.ts +20 -13
  54. package/extensions/email/providers/gmail.ts +164 -0
  55. package/extensions/email/providers/google-calendar.ts +34 -5
  56. package/extensions/helios-browser/__tests__/browser-routing.test.ts +57 -0
  57. package/extensions/helios-browser/backends/playwright.ts +3 -1
  58. package/extensions/helios-governance/__tests__/governance-gates.test.ts +40 -0
  59. package/extensions/helios-governance/__tests__/tournament-consumer.test.js +66 -0
  60. package/extensions/hema-dispatch-v3/headroom-compress.ts +103 -0
  61. package/extensions/hema-dispatch-v3/index.ts +33 -65
  62. package/extensions/interview/__tests__/server.test.ts +117 -0
  63. package/extensions/lib/helios-root.cjs +46 -0
  64. package/extensions/subagent-mesh/__tests__/handlers.test.ts +98 -0
  65. package/extensions/warm-tick/warm-tick-maintenance.ts +156 -0
  66. package/lib/__tests__/bulk-ingest.live.test.ts +66 -0
  67. package/lib/__tests__/crash-fixes.test.ts +49 -0
  68. package/lib/__tests__/maintenance-mission-wiring.test.ts +35 -0
  69. package/lib/broker/__tests__/jit-subscription.test.js +44 -1
  70. package/lib/broker/__tests__/lifecycle-channels.test.js +25 -1
  71. package/lib/compression/__tests__/ccr-store.test.js +138 -0
  72. package/lib/compression/__tests__/pipeline.test.js +280 -0
  73. package/lib/compression/__tests__/smart-crusher.test.js +242 -0
  74. package/lib/compression/dist/server.js +34 -1
  75. package/lib/compression/dist/start-server.js +77 -0
  76. package/lib/graph/learning/headroom-learn-bridge.js +175 -0
  77. package/lib/hbo-core-store.ts +71 -0
  78. package/lib/mission-loop/__tests__/research-handler.test.ts +143 -0
  79. package/lib/skill-sync.js +6 -1
  80. package/lib/startup-integrity.js +9 -2
  81. package/lib/triage-core/__tests__/classifier-fixture.test.ts +254 -0
  82. package/lib/triage-core/__tests__/classifier-post-norm.test.ts +1 -1
  83. package/lib/triage-core/__tests__/classifier.test.ts +45 -7
  84. package/lib/triage-core/__tests__/correction-detector.test.ts +36 -0
  85. package/lib/triage-core/__tests__/d6-dunbar-boost.test.ts +5 -5
  86. package/lib/triage-core/__tests__/orchestrator-pipeline.test.ts +107 -0
  87. package/lib/triage-core/__tests__/orchestrator.test.ts +113 -1
  88. package/lib/triage-core/__tests__/signals.test.ts +357 -0
  89. package/lib/triage-core/__tests__/sql-parity.test.ts +216 -0
  90. package/lib/triage-core/backfill-cost-estimator.ts +91 -0
  91. package/lib/triage-core/backfill-orchestrator.ts +119 -0
  92. package/lib/triage-core/classifier.ts +38 -6
  93. package/lib/triage-core/cos/cross-channel-escalation.ts +2 -3
  94. package/lib/triage-core/cos/response-debt.ts +2 -2
  95. package/lib/triage-core/graph/__tests__/batch-persistence.test.ts +283 -0
  96. package/lib/triage-core/graph/batch-persistence.ts +66 -2
  97. package/lib/triage-core/graph/betweenness-worker.js +75 -0
  98. package/lib/triage-core/graph/graph-rank-sql.ts +67 -0
  99. package/lib/triage-core/graph/persistence.ts +1 -1
  100. package/lib/triage-core/graph/schema-v2.ts +2 -0
  101. package/lib/triage-core/graph/schema.cypher +1 -0
  102. package/lib/triage-core/graph/triage-query.ts +1 -1
  103. package/lib/triage-core/learning.ts +15 -20
  104. package/lib/triage-core/mental-model/bedrock-config.ts +78 -0
  105. package/lib/triage-core/mental-model/cos-integration.ts +1 -1
  106. package/lib/triage-core/mental-model/entity-extractor.ts +51 -4
  107. package/lib/triage-core/mental-model/identity-resolver.ts +5 -5
  108. package/lib/triage-core/mental-model/model-assembler-sql.ts +200 -0
  109. package/lib/triage-core/mental-model/model-assembler.ts +16 -3
  110. package/lib/triage-core/orchestrator.ts +4 -4
  111. package/lib/triage-core/scheduled-sends.ts +39 -2
  112. package/lib/triage-core/signals/comms-style.ts +1 -1
  113. package/lib/triage-core/signals/cross-channel-escalation.ts +2 -2
  114. package/lib/triage-core/signals/favee-type.ts +6 -1
  115. package/lib/triage-core/signals/goal-relevance.ts +31 -2
  116. package/lib/triage-core/signals/personal-importance.ts +1 -1
  117. package/lib/triage-core/signals/referral-chain.ts +0 -1
  118. package/lib/triage-core/signals/relationship-decay.ts +4 -0
  119. package/lib/triage-core/signals/relationship-health.ts +6 -1
  120. package/lib/triage-core/signals/trajectory-signal.ts +38 -3
  121. package/lib/triage-core/tournament-runner.js +11 -1
  122. package/lib/triage-core/triage-llm-factory.ts +110 -0
  123. package/lib/triage-core/triage-local-llm.ts +145 -0
  124. package/lib/triage-core/triage-sql-store.ts +337 -0
  125. package/lib/triage-core/types.ts +2 -2
  126. package/lib/unified-graph.atomic.test.ts +52 -0
  127. package/lib/unified-graph.failure-categories.test.ts +55 -0
  128. package/package.json +10 -3
  129. package/prebuilds/darwin-arm64/better_sqlite3.node +0 -0
  130. package/prebuilds/linux-x64/better_sqlite3.node +0 -0
  131. package/prebuilds/win32-x64/better_sqlite3.node +0 -0
  132. package/skills/helios-bookkeeping/SKILL.md +321 -0
  133. package/skills/helios-briefer/SKILL.md +44 -0
  134. package/skills/helios-client-relations/SKILL.md +322 -0
  135. package/skills/helios-personal-triager/SKILL.md +45 -0
  136. package/skills/helios-recruitment/SKILL.md +317 -0
  137. package/skills/helios-relationship-nudger/SKILL.md +77 -0
  138. package/skills/helios-researcher/SKILL.md +44 -0
  139. package/skills/helios-scheduler/SKILL.md +58 -0
  140. package/skills/helios-tax-analyst/SKILL.md +280 -0
  141. package/lib/triage-core/orchestrator.ts.bak-r005-r006-r008 +0 -1823
@@ -0,0 +1,133 @@
1
+ 'use strict';
2
+
3
+ const { HEDEngine } = require('../lib/hed-engine');
4
+
5
+ /**
6
+ * HED API routes — /api/hed/*
7
+ * Follows the standard Helios router pattern: returns true if handled, false otherwise.
8
+ * Initialized lazily inside startApi() via createHedRoutes(mgQuery).
9
+ */
10
+
11
+ function jsonOk(res, data, status = 200) {
12
+ res.writeHead(status, {
13
+ 'Content-Type': 'application/json',
14
+ 'Access-Control-Allow-Origin': '*',
15
+ 'Access-Control-Allow-Methods': 'GET, POST, PATCH, OPTIONS',
16
+ 'Access-Control-Allow-Headers': 'Content-Type, Accept',
17
+ });
18
+ res.end(JSON.stringify(data));
19
+ }
20
+
21
+ function jsonErr(res, status, message) {
22
+ res.writeHead(status, {
23
+ 'Content-Type': 'application/json',
24
+ 'Access-Control-Allow-Origin': '*',
25
+ 'Access-Control-Allow-Methods': 'GET, POST, PATCH, OPTIONS',
26
+ 'Access-Control-Allow-Headers': 'Content-Type, Accept',
27
+ });
28
+ res.end(JSON.stringify({ error: message }));
29
+ }
30
+
31
+ function readBody(req) {
32
+ return new Promise((resolve, reject) => {
33
+ let body = '';
34
+ req.on('data', chunk => { body += chunk; });
35
+ req.on('end', () => {
36
+ try { resolve(body ? JSON.parse(body) : {}); }
37
+ catch (e) { reject(new Error('Invalid JSON body')); }
38
+ });
39
+ req.on('error', reject);
40
+ });
41
+ }
42
+
43
+ function createHedRoutes(mgQuery) {
44
+ const engine = new HEDEngine(mgQuery);
45
+
46
+ return async function hedRoute(req, res, ctx, pathname, method) {
47
+ // Only handle /api/hed paths
48
+ if (!pathname.startsWith('/api/hed')) return false;
49
+
50
+ const mg = ctx?.mgQuery ?? mgQuery;
51
+ const _engine = ctx?.mgQuery ? new HEDEngine(ctx.mgQuery) : engine;
52
+
53
+ try {
54
+ // POST /api/hed — create a new HED
55
+ if (method === 'POST' && pathname === '/api/hed') {
56
+ const body = await readBody(req);
57
+ const { companyId, title, intent, worldStateSnapshot, operations, goalId } = body;
58
+ if (!companyId || !title || !operations?.length) {
59
+ jsonErr(res, 400, 'companyId, title, and operations are required');
60
+ return true;
61
+ }
62
+ const result = await _engine.createHED({ companyId, title, intent, worldStateSnapshot, operations, goalId });
63
+ jsonOk(res, result, 201);
64
+ return true;
65
+ }
66
+
67
+ // POST /api/hed/:id/approve — HITL approval
68
+ const approveMatch = method === 'POST' && pathname.match(/^\/api\/hed\/([^/]+)\/approve$/);
69
+ if (approveMatch) {
70
+ const hedId = approveMatch[1];
71
+ const body = await readBody(req);
72
+ const { approvedBy } = body;
73
+ await _engine.approveHED(hedId, approvedBy || 'human');
74
+ jsonOk(res, { hedId, approved: true });
75
+ return true;
76
+ }
77
+
78
+ // GET /api/hed/:id/review — aggregated review report
79
+ const reviewMatch = method === 'GET' && pathname.match(/^\/api\/hed\/([^/]+)\/review$/);
80
+ if (reviewMatch) {
81
+ const hedId = reviewMatch[1];
82
+ const operations = await _engine.getOperations(hedId);
83
+ const findings = operations.map(op => ({
84
+ opId: op.id,
85
+ status: op.status,
86
+ reviewVerdict: op.reviewVerdict || 'pending'
87
+ }));
88
+ const aligned = findings.filter(f => f.reviewVerdict === 'ALIGNED').length;
89
+ const deviated = findings.filter(f => f.reviewVerdict === 'DEVIATED').length;
90
+ const failed = findings.filter(f => f.reviewVerdict === 'FAILED').length;
91
+ jsonOk(res, {
92
+ hedId,
93
+ findings,
94
+ summary: { aligned, deviated, failed, pending: findings.length - aligned - deviated - failed }
95
+ });
96
+ return true;
97
+ }
98
+
99
+ // PATCH /api/hed/:hedId/operations/:opId — update operation status
100
+ const opPatchMatch = method === 'PATCH' && pathname.match(/^\/api\/hed\/([^/]+)\/operations\/([^/]+)$/);
101
+ if (opPatchMatch) {
102
+ const opId = opPatchMatch[2];
103
+ const body = await readBody(req);
104
+ const { status, summary, sessionKey, verdict } = body;
105
+ if (status === 'done' || status === 'completed') {
106
+ await _engine.completeOperation(opId, { summary, sessionKey, verdict });
107
+ }
108
+ jsonOk(res, { opId, updated: true });
109
+ return true;
110
+ }
111
+
112
+ // GET /api/hed/:id — get HED + all operations
113
+ const hedMatch = method === 'GET' && pathname.match(/^\/api\/hed\/([^/]+)$/);
114
+ if (hedMatch) {
115
+ const hedId = hedMatch[1];
116
+ const hed = await _engine.getHED(hedId);
117
+ if (!hed) { jsonErr(res, 404, 'HED not found'); return true; }
118
+ const operations = await _engine.getOperations(hedId);
119
+ jsonOk(res, { ...hed, operations });
120
+ return true;
121
+ }
122
+
123
+ } catch (err) {
124
+ console.error('[hed-routes] error:', err.message);
125
+ jsonErr(res, 500, err.message);
126
+ return true;
127
+ }
128
+
129
+ return false;
130
+ };
131
+ }
132
+
133
+ module.exports = { createHedRoutes };