portable-agent-layer 0.70.0 → 0.72.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.
Files changed (81) hide show
  1. package/README.md +5 -1
  2. package/assets/schema/pal-settings.schema.json +4 -0
  3. package/assets/skills/onboarding/SKILL.md +109 -0
  4. package/assets/skills/projects/SKILL.md +11 -2
  5. package/assets/templates/pal-settings.json +1 -0
  6. package/package.json +5 -1
  7. package/src/cli/index.ts +39 -12
  8. package/src/cli/migrate.ts +1 -1
  9. package/src/cli/personal-context.ts +67 -0
  10. package/src/cli/server.ts +13 -7
  11. package/src/cli/setup-identity.ts +13 -1
  12. package/src/cli/skill.ts +1 -1
  13. package/src/hooks/CompactRecover.ts +28 -86
  14. package/src/hooks/LedgerUnapplied.ts +3 -28
  15. package/src/hooks/LoadContext.ts +33 -60
  16. package/src/hooks/SecurityValidator.ts +16 -109
  17. package/src/hooks/handlers/agenda.ts +223 -0
  18. package/src/hooks/handlers/failure-principle.ts +19 -44
  19. package/src/hooks/handlers/inject-retrieval.ts +6 -2
  20. package/src/hooks/handlers/session-intelligence.ts +13 -70
  21. package/src/hooks/lib/agenda-store.ts +41 -0
  22. package/src/hooks/lib/capture-store.ts +103 -0
  23. package/src/hooks/lib/compact-recall.ts +89 -0
  24. package/src/hooks/lib/failure-principle.ts +98 -0
  25. package/src/hooks/lib/ledger-hook.ts +35 -0
  26. package/src/hooks/lib/ledger.ts +48 -1
  27. package/src/hooks/lib/paths.ts +0 -1
  28. package/src/hooks/lib/projects.ts +16 -1
  29. package/src/hooks/lib/security-gate.ts +159 -0
  30. package/src/hooks/lib/serves.ts +60 -0
  31. package/src/hooks/lib/session-context.ts +74 -0
  32. package/src/hooks/lib/stop.ts +14 -0
  33. package/src/hooks/lib/telos-goals.ts +144 -0
  34. package/src/hooks/lib/telos-topics.ts +68 -0
  35. package/src/hooks/lib/token-usage.ts +3 -1
  36. package/src/hooks/lib/wall-clock.ts +58 -0
  37. package/src/tools/agent/algorithm-reflect.ts +28 -97
  38. package/src/tools/agent/analyze.ts +19 -120
  39. package/src/tools/agent/handoff-note.ts +40 -70
  40. package/src/tools/agent/project.ts +47 -136
  41. package/src/tools/agent/relationship-note.ts +27 -46
  42. package/src/tools/agent/synthesize.ts +1 -1
  43. package/src/tools/agent/thread.ts +43 -123
  44. package/src/tools/control-room/data.ts +332 -0
  45. package/src/tools/control-room/matrix.ts +182 -0
  46. package/src/tools/control-room/server.ts +150 -0
  47. package/src/tools/control-room/ui/agenda.tsx +43 -0
  48. package/src/tools/control-room/ui/agents.tsx +67 -0
  49. package/src/tools/control-room/ui/app.css +857 -0
  50. package/src/tools/control-room/ui/app.tsx +74 -0
  51. package/src/tools/control-room/ui/board.tsx +82 -0
  52. package/src/tools/control-room/ui/format.ts +31 -0
  53. package/src/tools/control-room/ui/handoffs.tsx +37 -0
  54. package/src/tools/control-room/ui/index.html +19 -0
  55. package/src/tools/control-room/ui/ledger.tsx +137 -0
  56. package/src/tools/control-room/ui/matrix.tsx +117 -0
  57. package/src/tools/control-room/ui/panel.tsx +60 -0
  58. package/src/tools/control-room/ui/signal.tsx +161 -0
  59. package/src/tools/ledger/view.ts +3 -0
  60. package/src/tools/lib/algorithm-reflect.ts +84 -0
  61. package/src/tools/lib/analyze-report.ts +120 -0
  62. package/src/tools/lib/handoff-note.ts +88 -0
  63. package/src/tools/lib/note-flags.ts +59 -0
  64. package/src/tools/lib/project-isc.ts +151 -0
  65. package/src/tools/lib/relationship-reflect.ts +402 -0
  66. package/src/tools/lib/self-model.ts +499 -0
  67. package/src/tools/lib/session-usage.ts +216 -0
  68. package/src/tools/lib/skill-doctor.ts +457 -0
  69. package/src/tools/lib/thread.ts +119 -0
  70. package/src/tools/lib/token-report.ts +173 -0
  71. package/src/tools/lib/transcript-usage.ts +42 -0
  72. package/src/tools/lib/usage-buckets.ts +329 -0
  73. package/src/tools/relationship-reflect.ts +48 -412
  74. package/src/tools/self-model.ts +76 -558
  75. package/src/tools/session-summary.ts +8 -215
  76. package/src/tools/skill-doctor.ts +9 -444
  77. package/src/tools/token-cost.ts +18 -428
  78. package/assets/templates/ledger-page.html +0 -213
  79. package/src/cli/setup-telos.ts +0 -52
  80. package/src/hooks/lib/setup.ts +0 -60
  81. package/src/tools/ledger/server.ts +0 -111
@@ -0,0 +1,67 @@
1
+ import type { AgentsRow, AgentsView } from "../data";
2
+ import { Panel, Pending, useLoaded } from "./panel";
3
+
4
+ function Row({ r, max }: { r: AgentsRow; max: number }) {
5
+ return (
6
+ <tr>
7
+ <td>
8
+ {r.slug}
9
+ <span className="bar">
10
+ <i style={{ width: `${(r.actions / max) * 100}%` }} />
11
+ </span>
12
+ </td>
13
+ <td className="num">{r.actions}</td>
14
+ <td>
15
+ <span className="runtimes">
16
+ {Object.entries(r.runtimes).map(([runtime, n]) => (
17
+ <span key={runtime} className="tag">
18
+ {runtime} {n}
19
+ </span>
20
+ ))}
21
+ </span>
22
+ </td>
23
+ <td className="num">{r.machines}</td>
24
+ <td className="num">{r.actors}</td>
25
+ <td className="num">{r.sessions}</td>
26
+ </tr>
27
+ );
28
+ }
29
+
30
+ export function Agents() {
31
+ const view = useLoaded<AgentsView>("/api/agents");
32
+ const max =
33
+ view.state === "ready" ? Math.max(1, ...view.data.projects.map((p) => p.actions)) : 1;
34
+ return (
35
+ <Panel
36
+ index="04 · activity"
37
+ title="Agents at work"
38
+ span={7}
39
+ order={3}
40
+ aside={view.state === "ready" ? `since ${view.data.since.slice(0, 10)}` : ""}
41
+ >
42
+ <Pending value={view} />
43
+ {view.state === "ready" && view.data.projects.length === 0 && (
44
+ <div className="empty">No recorded actions in the window.</div>
45
+ )}
46
+ {view.state === "ready" && view.data.projects.length > 0 && (
47
+ <table>
48
+ <thead>
49
+ <tr>
50
+ <th>project</th>
51
+ <th className="num">actions</th>
52
+ <th>runtimes</th>
53
+ <th className="num">machines</th>
54
+ <th className="num">actors</th>
55
+ <th className="num">sessions</th>
56
+ </tr>
57
+ </thead>
58
+ <tbody>
59
+ {view.data.projects.map((r) => (
60
+ <Row key={r.slug} r={r} max={max} />
61
+ ))}
62
+ </tbody>
63
+ </table>
64
+ )}
65
+ </Panel>
66
+ );
67
+ }