chore: add agents/reports to gitignore and update agent infrastructure with timestamp streaming, write budget, and codename generation

- Add `agents/reports/` to `.gitignore` to prevent generated agent report files from being tracked
- Implement `_TimestampStream` class and `install_timestamps()` function in `agents/agent.py` for prefixing stdout/stderr with timestamps and elapsed time
- Export `install_timestamps`, `set_write_budget`, `clear_write_budget`, and `set_shell_restricted` from `agents/base.py`; add `_RUN_LOCK`, `AGENT_ICONS` dictionary, and `WRITE_BUDGET = 20` constant
- Add `report_codename()` function and `CODENAME_ADJECTIVES`/`CODENAME_ANIMALS` tuples to `agents/core/__init__.py` for generating random agent report codenames
- Expand `WRITE_TOOLS` tuple in `agents/core/__init__.py` to include `replace_lines`, `insert_lines`, and `delete_lines`; remove `SWARM_TOOLS` from `payloads_for` exclusion list
- Update `CLAUDE.md` and `AGENTS.md` documentation with dataset column initialization rules and new agent infrastructure details
- Reorder route table in `README.md` to list `/uploads` before `/messages` and document Swagger/ReDoc/OpenAPI schema endpoints
This commit is contained in:
2026-06-12 03:37:12 +00:00
parent 7fc9b0f715
commit 31841fece4
80 changed files with 2095 additions and 323 deletions
+3 -3
View File
@@ -302,7 +302,7 @@
.pagination-btn:hover {
background: var(--accent);
color: #fff;
color: var(--white);
border-color: var(--accent);
text-decoration: none;
}
@@ -346,12 +346,12 @@
.pagination-page-active {
background: var(--accent);
color: #fff;
color: var(--white);
}
.pagination-page-active:hover {
background: var(--accent-hover);
color: #fff;
color: var(--white);
}
.pagination-ellipsis {
+1 -1
View File
@@ -99,7 +99,7 @@
font-size: 1rem;
font-weight: 700;
background: var(--accent);
color: #fff;
color: var(--white);
border-radius: var(--radius);
}
+1 -1
View File
@@ -757,7 +757,7 @@ img {
button.comment-form-submit {
padding: 0.375rem 0.5rem;
background: var(--accent);
color: #fff;
color: var(--white);
font-weight: 600;
font-size: 0.8125rem;
line-height: 1.4;
+6 -6
View File
@@ -190,8 +190,8 @@ devii-terminal .devii-winctl button:hover {
}
devii-terminal .devii-winctl button[data-win="close"]:hover {
background: #c23b3b;
color: #fff;
background: var(--danger);
color: var(--white);
}
/* Toolbar */
@@ -299,7 +299,7 @@ devii-terminal .devii-agent h4,
devii-terminal .devii-agent h5,
devii-terminal .devii-agent h6 {
margin: 0.4em 0 0.2em;
color: #fff;
color: var(--white);
line-height: 1.3;
}
devii-terminal .devii-agent p {
@@ -365,7 +365,7 @@ devii-terminal .md-copy:focus-visible {
}
devii-terminal .md-copy:hover {
border-color: var(--devii-accent);
color: #fff;
color: var(--white);
}
devii-terminal .md-copy.md-copied {
color: var(--devii-accent);
@@ -406,7 +406,7 @@ devii-terminal .devii-copy:focus-visible {
devii-terminal .devii-copy:hover {
opacity: 1;
border-color: var(--devii-accent);
color: #fff;
color: var(--white);
}
devii-terminal .devii-copy.md-copied {
opacity: 1;
@@ -453,7 +453,7 @@ devii-terminal .devii-agent .md-table td {
}
devii-terminal .devii-agent .md-table thead th {
background: var(--devii-bar-bg);
color: #fff;
color: var(--white);
font-weight: 600;
}
devii-terminal .devii-agent .md-table tbody tr:nth-child(even) {
+6 -6
View File
@@ -165,7 +165,7 @@
}
.method-badge {
color: #fff;
color: var(--white);
}
.method-get { background: var(--info); }
@@ -375,7 +375,7 @@ textarea.param-input {
font-weight: 700;
padding: 0.15rem 0.5rem;
border-radius: var(--radius);
color: #fff;
color: var(--white);
}
.response-2xx { background: var(--success); }
@@ -431,7 +431,7 @@ textarea.param-input {
.format-option.active {
background: var(--accent);
color: #fff;
color: var(--white);
}
.format-fixed {
@@ -506,7 +506,7 @@ pre.code-pre {
padding: 0;
margin: 0 0 0.75rem;
overflow: hidden;
background: #282c34;
background: var(--bg-secondary);
border: 1px solid var(--border);
border-radius: var(--radius);
font-family: "SF Mono", Monaco, "Cascadia Code", "JetBrains Mono", monospace;
@@ -566,7 +566,7 @@ pre.code-has-copy > .code-copy-btn {
}
pre.code-has-copy > .code-copy-btn:hover {
color: #fff;
color: var(--white);
border-color: var(--accent, #6366f1);
}
@@ -638,7 +638,7 @@ pre.code-has-copy > .code-copy-btn:hover {
.docs-search-snippet mark {
background: var(--accent, #6366f1);
color: #fff;
color: var(--white);
padding: 0 0.125rem;
border-radius: 3px;
}
+2 -2
View File
@@ -36,7 +36,7 @@
.feed-nav-btn.active {
background: var(--accent);
color: #fff;
color: var(--white);
}
.feed-nav-actions {
@@ -331,7 +331,7 @@
}
.feed-fab:hover {
background: #c62828;
background: var(--danger);
transform: scale(1.05);
box-shadow: 0 6px 20px rgba(229, 57, 53, 0.5);
}
+2 -2
View File
@@ -153,8 +153,8 @@
}
.fw-host .fw-winctl button[data-win="close"]:hover {
background: #c23b3b;
color: #fff;
background: var(--danger);
color: var(--white);
}
.fw-host .fw-body {
+1 -1
View File
@@ -227,7 +227,7 @@
margin: 0;
padding: 1rem;
overflow-x: auto;
background: #1a1a2e;
background: var(--bg-card);
font-size: 0.8125rem;
line-height: 1.5;
}
+1 -1
View File
@@ -54,7 +54,7 @@
font-size: 1.125rem;
border-radius: var(--radius-lg);
background: var(--accent);
color: #fff;
color: var(--white);
font-weight: 700;
}
+1 -1
View File
@@ -150,7 +150,7 @@
border-radius: var(--radius);
margin: 0.5rem 0;
border: 1px solid var(--border);
background: #000;
background: var(--bg-primary);
}
.rendered-content a[href^="http"]::after {
+2 -2
View File
@@ -148,7 +148,7 @@
.message-bubble.mine {
align-self: flex-end;
background: var(--accent);
color: #fff;
color: var(--white);
border-bottom-right-radius: 4px;
}
@@ -203,7 +203,7 @@
height: 36px;
padding: 0;
background: var(--accent);
color: #fff;
color: var(--white);
border-radius: 50%;
display: flex;
align-items: center;
+1 -1
View File
@@ -244,7 +244,7 @@
font-size: 0.875rem;
font-weight: 600;
background: var(--accent);
color: #fff;
color: var(--white);
border-radius: var(--radius);
}
+1 -1
View File
@@ -182,7 +182,7 @@ a.profile-stat-value:hover {
.profile-tab.active {
background: var(--accent);
color: #fff;
color: var(--white);
}
.profile-posts {
+2 -2
View File
@@ -101,7 +101,7 @@
.pf-node-row.active {
background: var(--accent);
color: #fff;
color: var(--white);
}
.pf-node-row.pf-selected {
@@ -111,7 +111,7 @@
.pf-node-row.pf-selected.active {
background: var(--accent);
color: #fff;
color: var(--white);
}
.pf-node-row.pf-dragging {
+1 -1
View File
@@ -24,7 +24,7 @@
.projects-tab.active {
background: var(--accent);
color: #fff;
color: var(--white);
}
.projects-header {
+3 -3
View File
@@ -49,17 +49,17 @@
.service-status.running {
background: var(--topic-devlog, #10b981);
color: #fff;
color: var(--white);
}
.service-status.stopped {
background: var(--topic-discussion, #ef4444);
color: #fff;
color: var(--white);
}
.service-status.stalled {
background: var(--topic-question, #f59e0b);
color: #fff;
color: var(--white);
}
.service-controls {