github TypeScript re-analysis due

autogrammar/todo2code

github

Dependency-free Python SDK for todo2code A2A and the local TypeScript runtime

maintainer
autogrammar
license
Apache-2.0
first seen
2026-08-15
last seen
2026-09-02
releases · 30d
0
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 28 tools
transport stdio · http counts 28 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • analyze_communication
  • apply_source_patch
  • apply_todo
  • close_code_change
  • compare_workspace
  • diagnose
  • diff
  • diff_files
  • diff_git
  • evaluate_code_change
  • extract_ast
  • extract_communication
  • extract_config
  • extract_docs
  • extract_git
  • extract_markdown
  • extract_nl
  • intake_command
  • intake_query
  • link
  • pipeline
  • propose_code_change
  • propose_source_patch
  • propose_todo
  • reality
  • render_code_change
  • render_todo
  • summarize
skills & danger signals github-tarball
code evidence vHEAD · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 273

filesystem 101

  • fs (weak) autogrammar-todo2code-fe096a9/examples/sdk/typescript.mjs :1 import { readFile } from 'node:fs/promises';
  • fs (weak) autogrammar-todo2code-fe096a9/scripts/assert-demollm-run.mjs :1 import { readFile } from 'node:fs/promises';
  • fs (weak) autogrammar-todo2code-fe096a9/scripts/generate-response-schemas.mjs :3 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/scripts/github-event-log.mjs :2 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/scripts/live-contract-check.mjs :17 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/scripts/live-model-comparison.mjs :14 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/scripts/normalize-generated-analysis-roots.mjs :3 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/scripts/research/audit-changelog-sample.mjs :4 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/scripts/research/rerank-embedding-shortlist.mjs :3 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/scripts/sync-generated-readme-metadata.mjs :3 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/scripts/verify-env-contract.mjs :2 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/scripts/verify-generated-analysis.mjs :4 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/scripts/verify-module-boundaries.mjs :2 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/scripts/verify-no-llm-imports.mjs :2 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/scripts/verify-structured-responses.mjs :3 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/scripts/verify-workflow-yaml.mjs :2 import { promises as fs } from 'node:fs';
  • fs autogrammar-todo2code-fe096a9/src/cli.ts :3 import { promises as fs } from 'node:fs';
  • fs autogrammar-todo2code-fe096a9/src/communication/intake-service.ts :2 import { promises as fs } from 'node:fs';
  • fs autogrammar-todo2code-fe096a9/src/communication/intake-store.ts :2 import { promises as fs } from 'node:fs';
  • fs autogrammar-todo2code-fe096a9/src/communication/llm.ts :1 import { promises as fs } from 'node:fs';
  • fs autogrammar-todo2code-fe096a9/src/comparison/workspace.ts :2 import { promises as fs } from 'node:fs';
  • fs autogrammar-todo2code-fe096a9/src/config/env.ts :1 import { promises as fs } from 'node:fs';
  • fs autogrammar-todo2code-fe096a9/src/core/content-cache.ts :1 import { promises as fs } from 'node:fs';
  • fs autogrammar-todo2code-fe096a9/src/core/ignore.ts :11 import { promises as fs } from 'node:fs';
  • fs autogrammar-todo2code-fe096a9/src/core/io.ts :1 import { promises as fs } from 'node:fs';
  • fs autogrammar-todo2code-fe096a9/src/core/security.ts :1 import { promises as fs } from 'node:fs';
  • fs autogrammar-todo2code-fe096a9/src/diff/git.ts :9 import { promises as fs } from 'node:fs';
  • fs autogrammar-todo2code-fe096a9/src/evaluation/gold-cli.ts :2 import { promises as fs } from 'node:fs';
  • fs autogrammar-todo2code-fe096a9/src/evaluation/gold-extraction.ts :1 import { promises as fs } from 'node:fs';
  • fs autogrammar-todo2code-fe096a9/src/evaluation/gold.ts :1 import { promises as fs } from 'node:fs';
  • fs autogrammar-todo2code-fe096a9/src/extractors/ast/php.ts :1 import { promises as fs } from 'node:fs';
  • fs autogrammar-todo2code-fe096a9/src/extractors/ast/python.ts :1 import { promises as fs } from 'node:fs';
  • fs autogrammar-todo2code-fe096a9/src/extractors/docs-llm.ts :1 import { promises as fs } from 'node:fs';
  • fs autogrammar-todo2code-fe096a9/src/extractors/markdown-llm.ts :1 import { promises as fs } from 'node:fs';
  • fs autogrammar-todo2code-fe096a9/src/extractors/markdown-paths.ts :2 import { promises as fs } from 'node:fs';
  • fs autogrammar-todo2code-fe096a9/src/extractors/nl-llm.ts :1 import { promises as fs } from 'node:fs';
  • fs autogrammar-todo2code-fe096a9/src/interfaces/a2a-history.ts :1 import { promises as fs, type Dirent } from 'node:fs';
  • fs autogrammar-todo2code-fe096a9/src/interfaces/a2a-task-store.ts :2 import { promises as fs } from 'node:fs';
  • fs autogrammar-todo2code-fe096a9/src/interfaces/mcp-resources.ts :1 import { promises as fs } from 'node:fs';
  • fs autogrammar-todo2code-fe096a9/src/llm/subllm.ts :2 import { constants as fsConstants, promises as fs, statSync } from 'node:fs';
  • fs autogrammar-todo2code-fe096a9/src/operations/artifact.ts :1 import { promises as fs } from 'node:fs';
  • fs autogrammar-todo2code-fe096a9/src/pipeline/event-log-persistence.ts :3 import { promises as fs } from 'node:fs';
  • fs autogrammar-todo2code-fe096a9/src/pipeline/event-log.ts :2 import { promises as fs } from 'node:fs';
  • fs autogrammar-todo2code-fe096a9/src/services/branch-snapshot.ts :2 import { promises as fs } from 'node:fs';
  • fs autogrammar-todo2code-fe096a9/src/services/workspace-preflight.ts :2 import { promises as fs } from 'node:fs';
  • fs autogrammar-todo2code-fe096a9/src/summary/summarizer.ts :1 import { promises as fs } from 'node:fs';
  • fs autogrammar-todo2code-fe096a9/src/synthesis/code-change-plan.ts :2 import { existsSync, promises as fs } from 'node:fs';
  • fs autogrammar-todo2code-fe096a9/src/synthesis/tasks-llm.ts :1 import { promises as fs } from 'node:fs';
  • fs autogrammar-todo2code-fe096a9/src/synthesis/todo-patch.ts :2 import { promises as fs } from 'node:fs';
  • fs autogrammar-todo2code-fe096a9/src/tf/classifier.ts :1 import { promises as fs } from 'node:fs';
  • fs autogrammar-todo2code-fe096a9/src/watch/watcher.ts :14 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/test/a2a-intake.test.ts :3 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/test/a2a.test.ts :2 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/test/ast-go.test.ts :6 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/test/ast-languages.test.ts :3 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/test/ast-php.test.ts :3 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/test/ast.test.ts :2 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/test/cli-help.test.ts :3 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/test/cli-intake.test.ts :3 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/test/cli-summary.test.ts :3 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/test/cli-todo.test.ts :3 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/test/cli-watch.test.ts :3 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/test/code-change-plan.test.ts :3 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/test/communication-identity.test.ts :2 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/test/communication-intake.test.ts :3 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/test/communication-llm.test.ts :2 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/test/communication.test.ts :3 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/test/configuration.test.ts :2 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/test/docs-llm-repair.test.ts :8 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/test/docs-source-dsl-apis.test.ts :2 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/test/docs.test.ts :2 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/test/extraction-cache.test.ts :2 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/test/generated-analysis-roots.test.ts :3 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/test/generated-analysis.test.ts :3 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/test/generated-readme.test.ts :3 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/test/generated-remediation-projections.test.ts :2 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/test/git-branch-snapshot.test.ts :3 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/test/git-workspace-preflight.test.ts :3 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/test/git.test.ts :3 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/test/gold-evaluation.test.ts :2 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/test/grounded-contracts.test.ts :2 import { readFile } from 'node:fs/promises';
  • fs (weak) autogrammar-todo2code-fe096a9/test/ignore.test.ts :2 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/test/io.test.ts :2 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/test/markdown.test.ts :2 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/test/mcp.test.ts :2 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/test/nl-llm.test.ts :5 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/test/openrouter.test.ts :2 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/test/operation-plan.test.ts :2 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/test/pipeline-event-log.test.ts :2 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/test/pipeline.test.ts :4 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/test/python-runtime.test.ts :3 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/test/runtime-cycle.test.ts :2 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/test/sdk.test.ts :3 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/test/security.test.ts :2 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/test/semantic-reranker.test.ts :3 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/test/subllm.test.ts :2 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/test/tensorflow.test.ts :2 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/test/todo-patch.test.ts :2 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/test/watch.test.ts :5 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/test/workflow-validation.test.ts :3 import { promises as fs } from 'node:fs';
  • fs (weak) autogrammar-todo2code-fe096a9/test/workspace.test.ts :3 import { promises as fs } from 'node:fs';

shell / exec 35

  • shell (weak) autogrammar-todo2code-fe096a9/scripts/research/audit-changelog-sample.mjs :3 import { execFileSync } from 'node:child_process';
  • shell (weak) autogrammar-todo2code-fe096a9/scripts/verify-generated-analysis.mjs :3 import { execFile } from 'node:child_process';
  • shell autogrammar-todo2code-fe096a9/src/cli.ts :2 import { execFile } from 'node:child_process';
  • shell autogrammar-todo2code-fe096a9/src/comparison/workspace.ts :1 import { execFile } from 'node:child_process';
  • shell autogrammar-todo2code-fe096a9/src/diff/git.ts :8 import { execFile } from 'node:child_process';
  • shell autogrammar-todo2code-fe096a9/src/extractors/ast/external.ts :1 import { execFile } from 'node:child_process';
  • shell autogrammar-todo2code-fe096a9/src/extractors/git.ts :1 import { execFile } from 'node:child_process';
  • shell autogrammar-todo2code-fe096a9/src/llm/subllm.ts :1 import { execFile } from 'node:child_process';
  • shell autogrammar-todo2code-fe096a9/src/pipeline/event-log-persistence.ts :1 import { execFile } from 'node:child_process';
  • shell autogrammar-todo2code-fe096a9/src/semantic/reranker-llm.ts :1 import { execFile } from 'node:child_process';
  • shell autogrammar-todo2code-fe096a9/src/services/branch-snapshot.ts :1 import { spawn } from 'node:child_process';
  • shell autogrammar-todo2code-fe096a9/src/services/workspace-preflight.ts :1 import { spawn } from 'node:child_process';
  • shell (weak) autogrammar-todo2code-fe096a9/test/ast-go.test.ts :5 import { execFile } from 'node:child_process';
  • shell (weak) autogrammar-todo2code-fe096a9/test/ast-languages.test.ts :2 import { execFile } from 'node:child_process';
  • shell (weak) autogrammar-todo2code-fe096a9/test/ast-php.test.ts :2 import { execFile } from 'node:child_process';
  • shell (weak) autogrammar-todo2code-fe096a9/test/cli-help.test.ts :2 import { execFile } from 'node:child_process';
  • shell (weak) autogrammar-todo2code-fe096a9/test/cli-intake.test.ts :2 import { execFile } from 'node:child_process';
  • shell (weak) autogrammar-todo2code-fe096a9/test/cli-summary.test.ts :2 import { execFile } from 'node:child_process';
  • shell (weak) autogrammar-todo2code-fe096a9/test/cli-todo.test.ts :2 import { execFile } from 'node:child_process';
  • shell (weak) autogrammar-todo2code-fe096a9/test/cli-watch.test.ts :2 import { execFile, spawn } from 'node:child_process';
  • shell (weak) autogrammar-todo2code-fe096a9/test/code-change-plan.test.ts :2 import { execFile } from 'node:child_process';
  • shell (weak) autogrammar-todo2code-fe096a9/test/communication-intake.test.ts :2 import { execFile } from 'node:child_process';
  • shell (weak) autogrammar-todo2code-fe096a9/test/communication.test.ts :2 import { execFile } from 'node:child_process';
  • shell (weak) autogrammar-todo2code-fe096a9/test/generated-analysis-roots.test.ts :2 import { execFile } from 'node:child_process';
  • shell (weak) autogrammar-todo2code-fe096a9/test/generated-analysis.test.ts :2 import { execFile } from 'node:child_process';
  • shell (weak) autogrammar-todo2code-fe096a9/test/generated-readme.test.ts :2 import { execFile } from 'node:child_process';
  • shell (weak) autogrammar-todo2code-fe096a9/test/git-branch-snapshot.test.ts :2 import { execFile } from 'node:child_process';
  • shell (weak) autogrammar-todo2code-fe096a9/test/git-workspace-preflight.test.ts :2 import { execFile } from 'node:child_process';
  • shell (weak) autogrammar-todo2code-fe096a9/test/git.test.ts :2 import { execFile } from 'node:child_process';
  • shell (weak) autogrammar-todo2code-fe096a9/test/pipeline.test.ts :2 import { execFile } from 'node:child_process';
  • shell (weak) autogrammar-todo2code-fe096a9/test/python-runtime.test.ts :2 import { execFile } from 'node:child_process';
  • shell (weak) autogrammar-todo2code-fe096a9/test/sdk.test.ts :2 import { execFile } from 'node:child_process';
  • shell (weak) autogrammar-todo2code-fe096a9/test/semantic-reranker.test.ts :2 import { execFile } from 'node:child_process';
  • shell (weak) autogrammar-todo2code-fe096a9/test/workflow-validation.test.ts :2 import { execFile, spawn } from 'node:child_process';
  • shell (weak) autogrammar-todo2code-fe096a9/test/workspace.test.ts :2 import { execFile } from 'node:child_process';

network 9

  • net (weak) autogrammar-todo2code-fe096a9/examples/backend/src/server.ts :6 import { createServer, type IncomingMessage, type Server, type ServerResponse } from 'node:http';
  • net (weak) autogrammar-todo2code-fe096a9/examples/frontend/src/api.ts :31 const response = await fetch(url.toString(), { headers: { accept: 'application/json' } });
  • net autogrammar-todo2code-fe096a9/src/interfaces/a2a-card.ts :2 import type { IncomingMessage, ServerResponse } from 'node:http';
  • net autogrammar-todo2code-fe096a9/src/interfaces/a2a.ts :2 import http, { type IncomingHttpHeaders, type IncomingMessage, type ServerResponse } from 'node:http';
  • net autogrammar-todo2code-fe096a9/src/llm/openrouter.ts :96 const response = await fetch(`${transport.apiBase}/models`, {
  • net autogrammar-todo2code-fe096a9/src/web/diff-ui.ts :43 ery.set(key,value)}const response=await fetch('/api/runs?'+query.toString(),{headers:requestHeaders(false)});const payload=await response.json();if(!response.ok)throw new Error(typeof payload.error===
  • net (weak) autogrammar-todo2code-fe096a9/test/a2a-intake.test.ts :4 import type { Server } from 'node:http';
  • net (weak) autogrammar-todo2code-fe096a9/test/a2a.test.ts :3 import type { Server } from 'node:http';
  • net (weak) autogrammar-todo2code-fe096a9/test/sdk.test.ts :4 import type { Server } from 'node:http';

secrets 2

  • secrets (weak) autogrammar-todo2code-fe096a9/sdk/typescript/examples/basic.ts :14 const token = process.env.T2C_A2A_TOKEN ?? null;
  • secrets (weak) autogrammar-todo2code-fe096a9/test/subllm.test.ts :72 process.env.T2C_UNRELATED_SECRET = 'placeholder-not-forwarded';

tool registrations 28

  • intake_command autogrammar-todo2code-fe096a9/src/interfaces/mcp-tools.ts :14
  • intake_query autogrammar-todo2code-fe096a9/src/interfaces/mcp-tools.ts :20
  • extract_nl autogrammar-todo2code-fe096a9/src/interfaces/mcp-tools.ts :26
  • extract_git autogrammar-todo2code-fe096a9/src/interfaces/mcp-tools.ts :32
  • extract_ast autogrammar-todo2code-fe096a9/src/interfaces/mcp-tools.ts :36
  • extract_config autogrammar-todo2code-fe096a9/src/interfaces/mcp-tools.ts :39
  • extract_markdown autogrammar-todo2code-fe096a9/src/interfaces/mcp-tools.ts :42
  • extract_docs autogrammar-todo2code-fe096a9/src/interfaces/mcp-tools.ts :48
  • extract_communication autogrammar-todo2code-fe096a9/src/interfaces/mcp-tools.ts :53
  • analyze_communication autogrammar-todo2code-fe096a9/src/interfaces/mcp-tools.ts :59
  • link autogrammar-todo2code-fe096a9/src/interfaces/mcp-tools.ts :69
  • diagnose autogrammar-todo2code-fe096a9/src/interfaces/mcp-tools.ts :74
  • summarize autogrammar-todo2code-fe096a9/src/interfaces/mcp-tools.ts :77
  • diff autogrammar-todo2code-fe096a9/src/interfaces/mcp-tools.ts :83
  • diff_files autogrammar-todo2code-fe096a9/src/interfaces/mcp-tools.ts :96
  • diff_git autogrammar-todo2code-fe096a9/src/interfaces/mcp-tools.ts :106
  • reality autogrammar-todo2code-fe096a9/src/interfaces/mcp-tools.ts :115
  • compare_workspace autogrammar-todo2code-fe096a9/src/interfaces/mcp-tools.ts :122
  • propose_todo autogrammar-todo2code-fe096a9/src/interfaces/mcp-tools.ts :136
  • render_todo autogrammar-todo2code-fe096a9/src/interfaces/mcp-tools.ts :145
  • apply_todo autogrammar-todo2code-fe096a9/src/interfaces/mcp-tools.ts :157
  • propose_code_change autogrammar-todo2code-fe096a9/src/interfaces/mcp-tools.ts :166
  • render_code_change autogrammar-todo2code-fe096a9/src/interfaces/mcp-tools.ts :179
  • propose_source_patch autogrammar-todo2code-fe096a9/src/interfaces/mcp-tools.ts :186
  • apply_source_patch autogrammar-todo2code-fe096a9/src/interfaces/mcp-tools.ts :195
  • close_code_change autogrammar-todo2code-fe096a9/src/interfaces/mcp-tools.ts :203
  • evaluate_code_change autogrammar-todo2code-fe096a9/src/interfaces/mcp-tools.ts :221
  • pipeline autogrammar-todo2code-fe096a9/src/interfaces/mcp-tools.ts :235

declared dependencies 7

  • typescript@>=5.8.3 <7
  • @types/node@>=20 <25
  • proc-macro2@1
  • quote@1
  • serde@1
  • serde_json@1
  • syn@2