@assemblyline-agents/ffmpeg 5.0.10 → 6.0.1

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/README.md CHANGED
@@ -21,20 +21,22 @@ apt-get update && apt-get install -y ffmpeg
21
21
  assembly-line add ffmpeg agent
22
22
  ```
23
23
 
24
- The generated connection enables every reviewed media operation without
25
- requiring an approval surface:
26
-
27
- ```ts
28
- import { defineFfmpegConnection } from "@assemblyline-agents/ffmpeg";
29
-
30
- export default defineFfmpegConnection({
31
- workspaceRoot: "/workspace/media"
32
- });
24
+ The selected plugin enables every reviewed media operation. Require approval
25
+ for editing operations with typed connection exceptions:
26
+
27
+ ```yaml
28
+ capabilities:
29
+ ffmpeg:
30
+ connections:
31
+ ffmpeg:
32
+ approval:
33
+ trim_media: always
34
+ transcode_media: always
35
+ concat_media: always
36
+ replace_audio: always
37
+ reframe_vertical: always
33
38
  ```
34
39
 
35
- Set `access: "approval-required"` if editing operations should pause for
36
- approval.
37
-
38
40
  The connection exposes:
39
41
 
40
42
  - `probe_media`
@@ -45,7 +47,7 @@ The connection exposes:
45
47
  - `extract_frames`
46
48
  - `reframe_vertical`
47
49
 
48
- All input and output paths must resolve inside `workspaceRoot`, including
50
+ All input and output paths must resolve inside the plugin-owned workspace root, including
49
51
  symlink targets. The deployment owner can select trusted `ffmpegCommand` and
50
52
  `ffprobeCommand` paths; agents cannot replace those executables or add
51
53
  unreviewed flags.
@@ -54,8 +56,8 @@ unreviewed flags.
54
56
  clips to a common size, frame rate, codec, and audio layout before stitching
55
57
  when they come from different devices or platforms.
56
58
 
57
- `extract_frames` returns paths only by default. Set `previewFrames` explicitly
58
- (one to twelve) only when the user requests or approves a frame-based
59
+ `extract_frames` returns paths only by default. A custom plugin implementation
60
+ may set `previewFrames` from one through twelve when the user requests or approves a frame-based
59
61
  approximation. Assembly Line never invokes frame sampling as a fallback for native
60
62
  video understanding, and agents must not claim that sampled stills are
61
63
  equivalent to watching temporal video.
@@ -0,0 +1,51 @@
1
+ {
2
+ "kind": "ffmpeg",
3
+ "role": "connection",
4
+ "packageName": "@assemblyline-agents/ffmpeg",
5
+ "helper": "defineFfmpegConnection",
6
+ "protocol": "mcp",
7
+ "transport": "stdio",
8
+ "provider": "ffmpeg",
9
+ "description": "Workspace-scoped media inspection, trimming, transcoding, stitching, audio replacement, frame extraction, and vertical reframing through FFmpeg.",
10
+ "capabilities": [
11
+ "mcp",
12
+ "live-tools",
13
+ "stdio"
14
+ ],
15
+ "scopes": [],
16
+ "subject": "environment",
17
+ "tools": {
18
+ "allow": [
19
+ "probe_media",
20
+ "trim_media",
21
+ "transcode_media",
22
+ "concat_media",
23
+ "replace_audio",
24
+ "extract_frames",
25
+ "reframe_vertical"
26
+ ]
27
+ },
28
+ "readToolPatterns": [
29
+ "probe_media"
30
+ ],
31
+ "writeToolPatterns": [
32
+ "trim_media",
33
+ "transcode_media",
34
+ "concat_media",
35
+ "replace_audio",
36
+ "extract_frames",
37
+ "reframe_vertical"
38
+ ],
39
+ "setup": [
40
+ {
41
+ "kind": "connection",
42
+ "name": "ffmpeg-developer-configuration",
43
+ "required": true,
44
+ "message": "Install ffmpeg and ffprobe on the Assembly Line runtime host. The plugin keeps all media paths inside its configured workspace root and exposes typed operations instead of arbitrary FFmpeg flags."
45
+ }
46
+ ],
47
+ "requiredConfig": [],
48
+ "optionalConfig": [],
49
+ "requiredCredentials": [],
50
+ "optionalCredentials": []
51
+ }
@@ -0,0 +1,9 @@
1
+ module.exports = {
2
+ "connections": {
3
+ "ffmpeg": {
4
+ "contract": "./ai.assemblyline/connections/ffmpeg.json",
5
+ "definition": "@assemblyline-agents/ffmpeg",
6
+ "factory": "defineFfmpegConnection"
7
+ }
8
+ }
9
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,KAAK,+BAA+B,EACrC,MAAM,2BAA2B,CAAC;AAKnC,MAAM,WAAW,uBAAwB,SAAQ,+BAA+B;IAC9E,qEAAqE;IACrE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kEAAkE;IAClE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mEAAmE;IACnE,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,uBAAuB,2IAuBtE;AAED,eAAO,MAAM,kBAAkB,kDAA0C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAGL,KAAK,+BAA+B,EACrC,MAAM,2BAA2B,CAAC;AAKnC,MAAM,WAAW,uBAAwB,SAAQ,+BAA+B;IAC9E,qEAAqE;IACrE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kEAAkE;IAClE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mEAAmE;IACnE,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,uBAAuB,2IAuBtE;AAED,eAAO,MAAM,kBAAkB,kDAA0C,CAAC"}
package/dist/index.js CHANGED
@@ -1,7 +1,8 @@
1
+ import connectionContract_ffmpeg from "../ai.assemblyline/connections/ffmpeg.json" with { type: "json" };
1
2
  import { resolve } from "node:path";
2
3
  import { fileURLToPath } from "node:url";
3
- import { connectionPluginMetadata, definePlugin, defineStdioMcpPluginConnection } from "@assemblyline-agents/core";
4
- const PLUGIN = connectionPluginMetadata("ffmpeg");
4
+ import { definePlugin, defineStdioMcpPluginConnection } from "@assemblyline-agents/core";
5
+ const PLUGIN = connectionContract_ffmpeg;
5
6
  const MCP_SERVER_PATH = fileURLToPath(new URL("./mcp-server.js", import.meta.url));
6
7
  export function defineFfmpegConnection(options) {
7
8
  const { workspaceRoot: configuredWorkspaceRoot, ffmpegCommand = "ffmpeg", ffprobeCommand = "ffprobe", ...connection } = options;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EACL,wBAAwB,EACxB,YAAY,EACZ,8BAA8B,EAE/B,MAAM,2BAA2B,CAAC;AAEnC,MAAM,MAAM,GAAG,wBAAwB,CAAC,QAAQ,CAAE,CAAC;AACnD,MAAM,eAAe,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAWnF,MAAM,UAAU,sBAAsB,CAAC,OAAgC;IACrE,MAAM,EACJ,aAAa,EAAE,uBAAuB,EACtC,aAAa,GAAG,QAAQ,EACxB,cAAc,GAAG,SAAS,EAC1B,GAAG,UAAU,EACd,GAAG,OAAO,CAAC;IACZ,MAAM,aAAa,GAAG,OAAO,CAAC,uBAAuB,IAAI,UAAU,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1F,MAAM,UAAU,GAAG;QACjB,eAAe;QACf,kBAAkB;QAClB,aAAa;QACb,kBAAkB;QAClB,aAAa;QACb,mBAAmB;QACnB,cAAc;KACf,CAAC;IACF,OAAO,8BAA8B,CAAC,MAAM,EAAE;QAC5C,GAAG,UAAU;QACb,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ;QAC/C,IAAI,EAAE,UAAU,CAAC,IAAI,IAAI,UAAU;QACnC,GAAG,EAAE,UAAU,CAAC,GAAG,IAAI,aAAa;KACrC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,yBAAyB,MAAM,4CAA4C,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACzG,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EACL,YAAY,EACZ,8BAA8B,EAE/B,MAAM,2BAA2B,CAAC;AAEnC,MAAM,MAAM,GAAG,yBAAgE,CAAC;AAChF,MAAM,eAAe,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAWnF,MAAM,UAAU,sBAAsB,CAAC,OAAgC;IACrE,MAAM,EACJ,aAAa,EAAE,uBAAuB,EACtC,aAAa,GAAG,QAAQ,EACxB,cAAc,GAAG,SAAS,EAC1B,GAAG,UAAU,EACd,GAAG,OAAO,CAAC;IACZ,MAAM,aAAa,GAAG,OAAO,CAAC,uBAAuB,IAAI,UAAU,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1F,MAAM,UAAU,GAAG;QACjB,eAAe;QACf,kBAAkB;QAClB,aAAa;QACb,kBAAkB;QAClB,aAAa;QACb,mBAAmB;QACnB,cAAc;KACf,CAAC;IACF,OAAO,8BAA8B,CAAC,MAAM,EAAE;QAC5C,GAAG,UAAU;QACb,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ;QAC/C,IAAI,EAAE,UAAU,CAAC,IAAI,IAAI,UAAU;QACnC,GAAG,EAAE,UAAU,CAAC,GAAG,IAAI,aAAa;KACrC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@assemblyline-agents/ffmpeg",
3
- "version": "5.0.10",
3
+ "version": "6.0.1",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -10,11 +10,13 @@
10
10
  },
11
11
  "dependencies": {
12
12
  "@modelcontextprotocol/sdk": "^1.30.0",
13
- "@assemblyline-agents/core": "5.0.10"
13
+ "@assemblyline-agents/core": "6.0.1"
14
14
  },
15
15
  "description": "Official Assembly Line workspace-scoped FFmpeg connection plugin.",
16
16
  "files": [
17
- "dist"
17
+ "dist",
18
+ "plugin.json",
19
+ "ai.assemblyline"
18
20
  ],
19
21
  "engines": {
20
22
  "node": ">=22.19.0"
package/plugin.json ADDED
@@ -0,0 +1,11 @@
1
+ {
2
+ "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
3
+ "name": "ffmpeg",
4
+ "version": "6.0.1",
5
+ "description": "Official Assembly Line workspace-scoped FFmpeg connection plugin.",
6
+ "extensions": {
7
+ "ai.assemblyline": {
8
+ "entry": "./ai.assemblyline/index.cjs"
9
+ }
10
+ }
11
+ }