@acpfx/echo 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +21 -0
- package/manifest.yaml +42 -0
- package/package.json +16 -0
- package/src/index.ts +24 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# @acpfx/echo
|
|
2
|
+
|
|
3
|
+
## 0.2.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- d757640: Initial release: type-safe contracts, Rust orchestrator, manifest-driven event filtering
|
|
8
|
+
|
|
9
|
+
- Rust schema crate as canonical event type source of truth with codegen to TypeScript + Zod
|
|
10
|
+
- Node manifests (manifest.yaml) declaring consumes/emits contracts
|
|
11
|
+
- Orchestrator event filtering: nodes only receive declared events
|
|
12
|
+
- Rust orchestrator with ratatui TUI (--ui flag)
|
|
13
|
+
- node-sdk with structured logging helpers
|
|
14
|
+
- CI/CD with GitHub Actions and changesets
|
|
15
|
+
- Platform-specific npm packages for Rust binaries (esbuild-style distribution)
|
|
16
|
+
|
|
17
|
+
### Patch Changes
|
|
18
|
+
|
|
19
|
+
- Updated dependencies [d757640]
|
|
20
|
+
- @acpfx/core@0.2.0
|
|
21
|
+
- @acpfx/node-sdk@0.2.0
|
package/manifest.yaml
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
name: echo
|
|
2
|
+
description: Echoes all received events back (testing/debugging)
|
|
3
|
+
consumes:
|
|
4
|
+
- audio.chunk
|
|
5
|
+
- audio.level
|
|
6
|
+
- speech.partial
|
|
7
|
+
- speech.delta
|
|
8
|
+
- speech.final
|
|
9
|
+
- speech.pause
|
|
10
|
+
- agent.submit
|
|
11
|
+
- agent.delta
|
|
12
|
+
- agent.complete
|
|
13
|
+
- agent.thinking
|
|
14
|
+
- agent.tool_start
|
|
15
|
+
- agent.tool_done
|
|
16
|
+
- control.interrupt
|
|
17
|
+
- control.state
|
|
18
|
+
- control.error
|
|
19
|
+
- lifecycle.ready
|
|
20
|
+
- lifecycle.done
|
|
21
|
+
- log
|
|
22
|
+
- player.status
|
|
23
|
+
emits:
|
|
24
|
+
- audio.chunk
|
|
25
|
+
- audio.level
|
|
26
|
+
- speech.partial
|
|
27
|
+
- speech.delta
|
|
28
|
+
- speech.final
|
|
29
|
+
- speech.pause
|
|
30
|
+
- agent.submit
|
|
31
|
+
- agent.delta
|
|
32
|
+
- agent.complete
|
|
33
|
+
- agent.thinking
|
|
34
|
+
- agent.tool_start
|
|
35
|
+
- agent.tool_done
|
|
36
|
+
- control.interrupt
|
|
37
|
+
- control.state
|
|
38
|
+
- control.error
|
|
39
|
+
- lifecycle.ready
|
|
40
|
+
- lifecycle.done
|
|
41
|
+
- log
|
|
42
|
+
- player.status
|
package/package.json
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@acpfx/echo",
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"bin": {
|
|
6
|
+
"acpfx-echo": "./dist/index.js"
|
|
7
|
+
},
|
|
8
|
+
"main": "./dist/index.js",
|
|
9
|
+
"dependencies": {
|
|
10
|
+
"@acpfx/core": "0.2.0",
|
|
11
|
+
"@acpfx/node-sdk": "0.2.0"
|
|
12
|
+
},
|
|
13
|
+
"scripts": {
|
|
14
|
+
"build": "esbuild src/index.ts --bundle --platform=node --format=esm --outfile=dist/index.js --packages=external"
|
|
15
|
+
}
|
|
16
|
+
}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Echo node — trivial test node that reads NDJSON stdin and echoes each event
|
|
3
|
+
* back to stdout unchanged. Emits lifecycle.ready on startup.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import { emit, onEvent, handleManifestFlag } from "@acpfx/node-sdk";
|
|
7
|
+
|
|
8
|
+
handleManifestFlag();
|
|
9
|
+
|
|
10
|
+
emit({ type: "lifecycle.ready", component: "echo" });
|
|
11
|
+
|
|
12
|
+
const rl = onEvent((event) => {
|
|
13
|
+
// Echo back unchanged
|
|
14
|
+
emit(event);
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
rl.on("close", () => {
|
|
18
|
+
process.exit(0);
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
process.on("SIGTERM", () => {
|
|
22
|
+
rl.close();
|
|
23
|
+
process.exit(0);
|
|
24
|
+
});
|