1 分•作者: sivaaditya•2 个月前
返回首页
最新
1 分•作者: jaenyf•2 个月前
我发现 TypeScript 的 js/node 环境缺少一个时间提供者(Time-Provider),就像 .NET 框架自带的时间提供者一样。
为此,我构建了一个小型库(@time-provider),专门为 js/node 环境量身定制。
显然,这样做的目的是避免使用全局猴子补丁(monkey-patching)配合 fake-timers,或者重写你的时钟接口,同时仍然可以使用你的日期库(原生或自定义)。
我提供了四种时钟策略:系统(真实时间)、固定手动(显式推进时间)和顺序(时间戳序列回放)。
我还对性能进行了基准测试,发现比 jest/sinon 略有优势。
该项目尚处于早期阶段,随着实际使用情况的出现,API 可能会进行调整。
我非常乐意听取您的反馈!请多保重。
您可以在 GitHub 上查看:https://github.com/jaenyf/time-provider
Jaenyf
1 分•作者: MehrdadKhnzd•2 个月前
1 分•作者: vismit2000•2 个月前
1 分•作者: charbz•2 个月前
1 分•作者: javatuts•2 个月前
1 分•作者: goranmoomin•2 个月前
1 分•作者: aidangrimshaw•2 个月前
1 分•作者: CharlesW•2 个月前
1 分•作者: tash_2s•2 个月前
1 分•作者: stockkid•2 个月前
3 分•作者: e-dant•2 个月前
1 分•作者: andsoitis•2 个月前
2 分•作者: acmnrs•2 个月前
1 分•作者: abj908•2 个月前
Erik Meijer 撰写了关于人工智能工作流形式化验证的论文《Guardians of the Agents》,Nada Amin 在 Guardians 存储库中实现了它。我构建了这个插件,将静态安全验证引入 OpenCode。
工作原理:
1. 拦截:利用 OpenCode 的 TypeScript 插件系统(“tool.execute.before”)在候选工具调用(bash、read、edit、write)执行前进行拦截。
2. Sidecar 验证:将工具参数传递给运行 guardians.verify() 的本地 Python 守护进程。
3. 形式化验证(约 1.5 毫秒):评估 Z3 路径包含(阻止路径遍历,如 ../../../../../etc/passwd)、秘密污点跟踪(防止 .env 数据流向输出文件或 shell 命令)以及安全自动机(强制执行先读后写的规则)。
4. 执行前中止:如果检测到违规,插件将抛出异常,在磁盘上产生任何副作用之前阻止执行,迫使代理进行自我纠正。
该存储库直接将 metareflection/guardians 链接为 Git 子模块(guardians-core),保持核心验证器不受影响,并与上游更新同步。
存储库和设置说明:https://github.com/albertjoseph0/opencode-plugin-guardians
非常欢迎您提出想法或反馈!
1 分•作者: amarbirsingh•2 个月前
1 分•作者: weakened_malloc•2 个月前
1 分•作者: vladimir_si•2 个月前
这个故事本可能永远不会发生,尽管我早就有了开发调试器的想法。一直没有一个触发点。但有一天,一个足够强大的触发点出现了,我搁置了项目,开始构建调试器,发誓再也不要遭受那样的痛苦了。
一点背景:我正在为人工智能解决方案开发者构建一个平台,这样任何人都可以舒适地进入并开展自己的初创项目。要实现这一点,还有很多工作要做。
我应该提到,我完全是基于原则使用代理编码来构建这个项目的。不是“感觉编码”——那是给那些只闻到“可能性”气息的业余爱好者用的——而是真正的代理编码,拥有一个结构清晰的工作流程,代理别无选择,只能遵守我设定的规则,在我构建的边界内行事。原则上,我没有亲手写过这个项目的任何一行代码。
于是,我正在进行日常工作,修复 Prompt Studio 工具中的一个 bug。我现在甚至不记得那个 bug 具体是什么了——它顽固地抵抗了我和我 Opus 的共同努力。但它拖延了太久,以至于我当时感到的是愤怒,而不仅仅是疲惫。就在那时我意识到:如果我当初没有进行这种低效的苦苦挣扎,而是直接去构建那个调试器,我现在早就解决了这个 bug。但我还是坚持了下来,坚持了下来,直到我赢了。
不用说,我的项目被搁置了,我开始构建调试器。由于这个想法已经酝酿了很长时间,第一个 Python 原型——六个模块——很快就被集成到平台中,作为一个内置的调试子系统。然后就到了实际测试的时候。我告诉代理:“使用 Revizor 来检查它自己。”接下来的三分半钟里,发生了以下情况:
代理启动了 Revizor,激活了其中的所有跟踪点,发现了几个 bug(4 或 5 个,我不记得确切数字了),修复了它们,并使用 Revizor 自己的工具运行了 199 个测试——全部通过!我惊呆了,无法用言语形容。
那时我明白了:平台的第一款产品不应该是 Prompt Studio——而应该是 Revizor。我用 Go 重写了它,并开始使用这个二进制文件,淘汰了那个作为原型的旧子系统。
随着时间的推移,Revizor 获得了扩展其功能的新工具。现在,在代理的指导下,它可以在一瞬间检查代码中的跟踪点,添加或删除它们。代理们将使用 Revizor 描述为“X 光视野”。这是其中一个代理的真实评论:
Revizor 今天节省了多少时间?
● 大约 15-20 分钟。trace_search "elevation" 在 2 秒内显示了 5 个跟踪点的完整链条,确认了 elevation 的正确工作——如果没有它,我需要深入研究代码和日志,添加临时的 print() 语句,然后重启服务器。但真正的价值不在于那几分钟——而在于确定性:我不是在猜测它是否有效。我看到了。
不要相信代理:它总是夸大任何任务所谓的耗时。但它所说的“我不是在猜测——我看到了”是有价值的。如果在我当初与导致我构建它的那个 bug 搏斗时就已经有了这个调试器,调试工作本可以快很多倍。
现在我无法想象没有它而工作。我邀请您免费试用:有一个免费的社区版,一个无限制的 14 天试用期,以及——最重要、也是我所有产品一贯秉承的——周日无限版,专为那些在周末进行个人项目或开源工作的人士设计。
使用任何主流提供商(目前有六种选择)登录即可下载。
关于安全:平台不收集或存储任何个人数据——只存储您的内部 ID 和您的身份验证提供商的哈希值,以便下次识别您。Revizor 本身除了每天的许可证检查 ping 和周日无限版的同步时间外,不会从您的机器发送任何信息。企业许可证提供完全的静默。
试用 Revizor:https://ais-platform.dev/revizor
1 分•作者: oldgun•2 个月前
1 分•作者: failingforward•2 个月前