xiaoju
4ea1e0d8a4
chore: publish 0.5.0-alpha.4 — unified env() API
2026-05-15 10:19:38 +00:00
xiaoju
f74b482cc0
chore: version 0.5.0-alpha.3, add publish-all script
...
- scripts/publish-all.mjs: pins workspace:^ before npm publish, restores after
- Workaround for bun publish workspace:^ resolution bug in pre mode
小橘 🍊
2026-05-15 01:37:27 +00:00
xiaomo
89abfdc257
Merge pull request 'feat(dashboard): show system prompt per role' ( #269 ) from feat/show-system-prompt into main
2026-05-15 01:28:12 +00:00
xiaoju
77e395b913
chore: version 0.5.0-alpha.1
...
小橘 🍊
2026-05-15 01:27:54 +00:00
xingyue
b65a006d45
feat(dashboard): show system prompt per role in workflow detail
...
- Add systemPrompt to WorkflowRoleDescriptor (protocol)
- Propagate systemPrompt through buildDescriptor and validateWorkflowDescriptor
- Display system prompt as collapsible <details> in RoleCard
2026-05-15 09:27:03 +08:00
xiaoju
9576d69032
chore: enter changeset pre mode (alpha), version 0.5.0-alpha.0
...
小橘 🍊
2026-05-15 01:22:44 +00:00
xiaoju
4582274ba4
feat(protocol): AgentFn<Opt> type + createAgentAdapter bridge
...
Add AgentFn<Opt = void> as the formal agent boundary type:
- Input: ThreadContext (fixed), Output: string (fixed)
- Opt: agent-specific structured options (e.g. { workspace } for Cursor)
Add createAgentAdapter<Opt>(agent, extract) → AdapterFn bridge in
workflow-util-agent, plus createSimpleAgentAdapter for Opt = void.
Also fixes: workflow-cas composite flag + cursor tsconfig reference.
Refs #252
2026-05-14 08:41:22 +00:00
xingyue
9276689cb6
chore: switch to npmjs registry, publish v0.4.5
...
- Remove Gitea npm registry, use npmjs.org
- changeset publish works natively with npmjs
- release script: build + test + changeset publish
- Remove custom release.sh, all via changesets
2026-05-13 21:20:18 +08:00
xingyue
b4584cbaa6
chore: publish v0.4.3 — include src/ in published packages
...
bun runtime resolves the 'bun' exports condition to ./src/index.ts,
but src/ was not in the files array so consumers got ENOENT.
2026-05-13 21:11:17 +08:00
xingyue
1cf963a1fb
chore: publish v0.4.2 — fix workspace deps, remove publish.sh
...
- workspace:* → workspace:^ (resolves to ^x.y.z instead of exact)
- Remove publish.sh, use changesets workflow
- changeset config: access public (Gitea compat)
- release script: build + test + changeset publish
2026-05-13 21:07:29 +08:00
xingyue
ce5bc50210
chore: publish v0.4.1
...
小橘 <xiaoju@shazhou.work >
2026-05-13 20:59:59 +08:00
xingyue
522afdd4bd
feat: adopt changesets + fix exports, bump to 0.4.0
...
- Install @changesets/cli with fixed mode (all @uncaged/* packages sync version)
- Fix package exports: add bun condition, point import to dist/
- Bump all packages to 0.4.0 via changeset version
- Auto-generated CHANGELOG.md for each package
- Ignore workflow-dashboard (private)
- Add npm scripts: changeset, version, release
- publish.sh: support workspace:^ prefix matching
Closes #241 , Closes #242
2026-05-13 20:56:21 +08:00
xingyue
ca644dabaa
chore: bump all packages to 0.4.0, fix exports for publish
...
- All @uncaged/* packages → 0.4.0
- Internal deps: workspace:* → workspace:^ (resolves to ^0.4.0 on publish)
- Fix exports: add 'bun' condition for local dev (src), 'import' for consumers (dist)
- Remove stale 'main: src/index.ts' from 6 packages
- Fix publish.sh topo sort to match workspace:^ prefix
星月 <xingyue@shazhou.work >
2026-05-13 20:46:00 +08:00
xingyue
aede8f7613
chore: publish v0.3.21
...
小橘 <xiaoju@shazhou.work >
2026-05-13 17:10:39 +08:00
xingyue
6cce5e2593
chore: publish v0.3.20
...
小橘 <xiaoju@shazhou.work >
2026-05-13 17:00:43 +08:00
xingyue
d3a7ed9062
chore: publish v0.3.19
...
小橘 <xiaoju@shazhou.work >
2026-05-13 16:56:55 +08:00
xiaoju
bb1293f6b9
fix: add exports field to 6 packages for proper type resolution
...
Packages without exports.types pointed main/types to src/ which
doesn't exist in published tarballs. Now all packages have:
exports."." = { types: dist/index.d.ts, import: src/index.ts }
Bump to 0.3.18.
2026-05-13 08:29:36 +00:00
xiaoju
497f03c747
chore: bump all packages to 0.3.17
2026-05-13 08:04:32 +00:00
xiaoju
cfe4543d39
refactor!: remove deprecated Agent types, introduce Adapter-first API
...
BREAKING CHANGES:
- Remove AgentFn, AgentFnResult, AgentBinding from workflow-protocol
- Remove wrapAgentAsAdapter from workflow-util-agent
- workflowAsAgent → workflowAdapter (old name kept as deprecated re-export)
New APIs:
- createTextAdapter(producer) — bridges text-producing functions to AdapterFn
- TextProducerFn, TextAdapterResult types
- workflowAdapter() — direct AdapterFn for child workflow delegation
All agent packages (cursor, hermes, llm) now return AdapterFn directly,
no wrapping needed. Bundle entries simplified accordingly.
小橘 🍊 (NEKO Team)
2026-05-13 08:03:27 +00:00
xiaoju
061926b86a
chore: fix all biome lint errors
...
- Auto-fix string concatenation → template literals
- Remove unused imports
- Prefix unused function with underscore
- Format fixes across multiple files
2026-05-13 07:26:11 +00:00
xiaoju
d5d7be6100
chore: add files field to all packages, bump to 0.3.16
...
Excludes tsconfig.json and source files from published packages.
Fixes TypeScript errors when consuming packages via bun.
2026-05-13 07:19:49 +00:00
xiaoju
1566a43395
chore: bump all packages to 0.3.15
2026-05-13 07:04:12 +00:00
xiaoju
f0d1bb9ae8
chore: bump all to 0.3.11
...
小橘 🍊
2026-05-13 03:28:33 +00:00
xiaoju
04cfd33f99
chore: bump all to 0.3.10 (regenerate lockfile)
...
小橘 🍊
2026-05-13 03:27:05 +00:00
xiaoju
a8c00f169b
chore: bump all packages to 0.3.9 (fix workspace:* dep resolution)
...
小橘 🍊
2026-05-13 03:25:50 +00:00
xiaoju
8e63f99eb6
chore: bump all public packages to 0.3.6
...
小橘 🍊
2026-05-13 03:18:25 +00:00
xiaoju
bd110b76e1
chore: remove accidental self-referencing symlinks
...
小橘 🍊
2026-05-13 02:44:24 +00:00
xiaoju
ec4599a230
refactor: extract wrapAgentAsAdapter to util-agent, support childThread in RoleFn ( #222 )
2026-05-13 02:37:32 +00:00
xiaoju
bebf4aad45
feat(protocol): add AdapterFn/RoleFn/AdapterBinding, refactor createWorkflow to use AdapterBinding ( #222 )
...
- Add RoleFn<T>, AdapterFn, AdapterBinding types to workflow-protocol
- Mark AgentFn, AgentFnResult, AgentBinding as @deprecated
- Refactor createWorkflow to accept AdapterBinding instead of AgentBinding
- Adapter returns typed meta directly — no more extract call in workflow loop
- Add buildThreadInput (ThreadContext-based), keep buildAgentPrompt as deprecated wrapper
- Update template bundle-entries to wrap AgentFn as AdapterFn
- Update solve-issue tests to use AdapterFn directly
2026-05-13 02:27:36 +00:00
xingyue
0c02cb7574
chore: publish v0.3.5
...
小橘 <xiaoju@shazhou.work >
2026-05-13 09:34:41 +08:00
xingyue
4493fd8979
chore: publish v0.3.4
...
小橘 <xiaoju@shazhou.work >
2026-05-12 20:35:02 +08:00
xingyue
3846dc12a9
chore: bump all public packages to 0.3.3
2026-05-12 12:58:17 +08:00
xingyue
4c4dabb7a3
chore: bump all public packages to 0.3.2
2026-05-12 12:55:21 +08:00
xiaoju
98122b446d
feat: Phase 3 — agent observability for Merkle call stack
...
- StartStep gains parentState: string | null (from StartNodePayload)
- buildAgentPrompt injects Parent Context section when parentState is set
- CLI thread show outputs parentState (top-level) and childThread (per step)
- 2 new prompt tests + thread show assertion updates
Refs #197 , #194
小橘 🍊 (NEKO Team)
2026-05-12 02:23:15 +00:00
xiaomo
f723daa014
Merge pull request 'feat( #194 ): Phase 2 — Engine layer Merkle call stack' ( #202 ) from feat/194-merkle-call-stack-phase2 into main
2026-05-12 02:11:24 +00:00
xiaoju
1e9900bed3
feat( #194 ): Phase 2 — Engine layer Merkle call stack wiring
...
- Protocol: AgentFnResult = string | { output, childThread }, RoleOutput.childThread,
ThreadContext.bundleHash for parent state lookup
- Runtime: create-workflow normalizes AgentFnResult, propagates childThread in RoleOutput
- Engine: ExecuteThreadOptions.parentStateHash, appendStateForStep writes childThread,
putStartNode uses parentStateHash
- workflowAsAgent: reads parent head state from threads.json, passes parentStateHash
to child, returns { output, childThread: rootHash }
- Integration test: 4 cases verifying bidirectional Merkle links (306 lines)
Phase 2 of #194 (Merkle Call Stack). Closes #196 .
小橘 <xiaoju@shazhou.work >
2026-05-12 02:10:06 +00:00
xiaomo
aebff8b906
Merge pull request 'refactor: replace Moderator function with ModeratorTable in WorkflowDefinition' ( #201 ) from refactor/200-moderator-table into main
2026-05-12 02:06:03 +00:00
xingyue
db45089922
refactor: replace Moderator function with ModeratorTable in WorkflowDefinition ( #200 )
...
- WorkflowDefinition.moderator → WorkflowDefinition.table (ModeratorTable)
- Moderator type + tableToModerator no longer exported from protocol/runtime
- tableToModerator internalized in workflow-execute engine layer
- WorkflowDescriptor gains graph: WorkflowGraph (auto-extracted from table)
- buildDescriptor extracts serializable graph edges from ModeratorTable
- validateWorkflowDescriptor validates graph structure
- All templates (develop, solve-issue) export table directly
- CLI init scaffold updated to use ModeratorTable
- 99 tests pass, 0 failures
2026-05-12 10:01:30 +08:00
xiaoju
e37dbc3f35
wip: Phase 1 protocol + CAS types for Merkle call stack
...
小橘 <xiaoju@shazhou.work >
2026-05-12 01:35:45 +00:00
xiaoju
376dd87b6b
chore: bump to v0.3.1, fix workspace:* in published packages
...
v0.3.0 was published with workspace:* deps (npm doesn't resolve them).
Re-published as v0.3.1 with concrete version refs.
Local monorepo deps restored to workspace:*.
小橘 <xiaoju@shazhou.work >
2026-05-11 11:00:49 +00:00
xiaoju
4d8469a649
chore: bump all packages to v0.3.0
...
Published to Gitea npm registry (git.shazhou.work).
小橘 <xiaoju@shazhou.work >
2026-05-11 10:52:35 +00:00
xiaoju
ec13c19505
Merge pull request 'refactor: replace maxRounds with supervisor check interval' ( #186 ) from refactor/185-remove-max-rounds into main
2026-05-11 09:01:24 +00:00
xiaoju
2b587612d5
refactor: replace maxRounds with supervisor check interval
...
Removes maxRounds as a hard stop limit from the entire stack. The supervisor
(already configured via workflow.yaml supervisorInterval) is now the sole
termination authority.
Changes across 27 files in 11 packages:
- workflow-protocol: StartStep.meta is now empty, StartNodePayload drops maxRounds
- workflow-cas: isStartPayload no longer checks maxRounds
- workflow-execute: engine, worker, fork-thread all stripped of maxRounds plumbing
- cli-workflow: --max-rounds flag removed from CLI and HTTP API
- workflow-runtime: build-context and create-workflow no longer reference maxRounds
- workflow-dashboard: UI no longer sends maxRounds
- workflow-template-develop/solve-issue: moderator no longer checks rounds remaining
- All tests updated
Fixes #185
2026-05-11 08:51:35 +00:00
xingyue
2342a6e3bd
fix: login.tsx use new gateway endpoint path
2026-05-11 16:46:38 +08:00
xiaoju
1742ced6df
refactor: simplify ExtractFn to (schema, contentHash)
...
- Remove extractPrompt from RoleDefinition
- Remove ExtractContext type
- ExtractFn now takes (schema, contentHash) instead of (schema, prompt, ExtractContext)
- createExtract reads CAS content by hash, keeps ReAct loop with cas_get
- Coder schema uses .describe() for phase hash hint
- All role definitions, CLI templates, and skill output updated
Refs #180 , closes #174 , closes #181
2026-05-11 07:54:09 +00:00
xiaoju
da6bcb10d6
feat(workflow): add declarative ModeratorTable type and migrate templates
...
Migrate workflow-template-develop and workflow-template-solve-issue
moderators to use the declarative ModeratorTable/tableToModerator
pattern. Update workflow-runtime re-exports and workflow-execute
engine to use renamed types.
Fixes #172
2026-05-11 06:25:39 +00:00
xiaoju
6fc97fc8c8
feat(workflow-protocol): add declarative moderator table types and tableToModerator
...
Add ModeratorCondition, FALLBACK, ModeratorTransition, ModeratorTable types
and tableToModerator converter function. Export from workflow-protocol and
re-export from workflow-runtime for backward compat.
Refs #172
2026-05-11 06:22:24 +00:00
xiaoju
26cf51366f
feat: Phase 3 — engine read path + runtime context builder
...
- Add buildThreadContext(headHash, cas) to workflow-runtime
- Expand extract phase to return { meta, contentPayload, refs[] }
- Add parseCasThreadNode() to workflow-cas for node type parsing
- Update createWorkflow to write ContentMerkleNode with artifact refs
- Tests: 4 pass (build-context + extract-refs)
- Biome format pass on all files
Refs #155 , closes #158
小橘 <xiaoju@shazhou.work >
2026-05-09 08:00:24 +00:00
xiaoju
6f000512d2
feat: Phase 1 — CAS thread storage types + helpers
...
- Add StartNode, StateNode, ContentMerkleNode types to workflow-protocol
- Add collectRefs() to workflow-cas — extracts CAS hashes from StateNode payload
- Add findReachableHashes() to workflow-cas — recursive mark traversal via refs[]
- Tests: 7 pass (collect-refs + reachable)
Refs #155 , closes #156
小橘 <xiaoju@shazhou.work >
2026-05-09 07:30:47 +00:00
xiaoju
064696c558
docs: update architecture docs and package READMEs for post-split structure
...
- Rewrite docs/architecture.md with 15-package map, dependency graph, updated engine paths
- Update CLAUDE.md monorepo structure section
- Add READMEs for: workflow-protocol, workflow-runtime, workflow-util, workflow-cas, workflow-register, workflow-execute, workflow-reactor
- Fix agent READMEs: update deps from @uncaged/workflow to actual packages
- Mark workflow-as-agent plan as outdated
Fixes #153
小橘 <xiaoju@shazhou.work >
2026-05-09 04:39:57 +00:00