Actual output / 2026-09-24 / First-party demonstration

Local AI: an inspectable JavaScript function

A controlled run of Donatello's local model: both attempts, a targeted correction, 12 regression checks, actual timings and hardware. Not an automatic-route UI test.

Tested with the local inference component from Donatello Agent 0.9.87, using IBM Granite 4.1 3B Instruct · Q4_K_M. This isolated operator harness is not a run of the desktop chat interface. No Donatello account was connected; 0 Donatello credits were used.

The preview below is an operator-created viewer. The original model output and verification records are preserved separately for inspection.

Try the original output

This isolated preview cannot access your Donatello account. Use fictional sample details only; this is not a real business or contact service.

Open full-window demo ↗

Exact request

Write only JavaScript source, without Markdown fences. Define function slugify(value). It must reject non-string input with TypeError, trim whitespace, lowercase, use Unicode NFKD normalization and remove combining accent marks, replace each run of characters other than ASCII a-z and digits 0-9 with a single hyphen, and trim hyphens from both ends. Empty or punctuation-only strings return an empty string. Do not use dependencies or external services. Do not export the function.

Follow-up requests

The previous response was incorrect: require("unicode-normalization") is an external dependency and JavaScript trim("-") does not remove hyphens. Return the complete corrected function only, no Markdown. Use the built-in value.normalize("NFKD"). Remove leading and trailing hyphens using a regular expression. Preserve the TypeError for non-strings. Do not use require or import.

Checks and limits

  • Operator regression checks: 12/12 cases passed on the unchanged corrected function.
  • Actual local completion times: 4463 ms first attempt; 4169 ms correction. Model-server startup is recorded separately.
  • Windows 10.0.26200; AMD Ryzen 7 4800H with Radeon Graphics; 16 logical CPUs; 15 GiB system RAM rounded. Not a minimum RAM requirement.
  • Model file SHA-256 matched the Agent manifest; runtime bound to loopback with --offline; this harness made no cloud-model calls.

Timing separates model startup and completion in each inference record. It excludes operator review and is not comparable to full project completion time.

  • This is a narrow local-inference example, not an end-to-end desktop chat or automatic-fallback test.
  • The operating-system network was not disabled. Offline runtime and loopback requests do not prove that every Agent tool works offline.
  • Single-machine, single-task timing samples are not a general performance benchmark.
  • ASCII URL slugs only; scripts without ASCII transliteration may produce empty output.
  • The first generation was incorrect and required a targeted follow-up.

Human and operator interventions

  • Codex built an isolated harness around the production Agent LocalModelManager, supplying only the Electron application path. No installed chat/profile was changed.
  • The operator reviewed the first answer, found an external dependency and incorrect hyphen trimming, and supplied an explicit correction prompt. Both raw answers are preserved.
  • The operator tested the corrected output without editing it.
  • The interactive inspector and test JSON were written by the operator; only the displayed slugify function was generated by the local model.

Download and verify the actual files

Generated source is preserved unchanged. Operator-created test records and presentation wrappers are identified above. Compare each file's SHA-256 with this record.

attempt-1.txt

368 bytes

181a175462b99605dd4325e841a41fb49894feff05a6a09adfd32b4c120edd2b

slugify.js

327 bytes

11ea84f149ce9e9cd60ebf17636ef99d4c930590d89285070ca201ab5ee942dc

inference-1.json

1,739 bytes

115257c6b97ee9c5c4958f242bb1d95098a4e80bc4ce71f0feef86cdb4c7587f

inference-2.json

2,551 bytes

0397a1e17d0670be2b981f97b23d8adafe9d778e69da98a2b4dcfeb372c05129

tests.json

1,317 bytes

fe0d48aece7ae5662f279d1197e8b2f5df30c801449ff8c1bcf2bce8fcbb193e

Download provenance manifest (JSON)

All Agent cases and methodology · Download and learn about Agent